算法优化二——如何提高人脸检测正确率
来源:互联网 发布:禁闭岛影评 知乎 编辑:程序博客网 时间:2024/05/18 20:32
零、检测
接上篇博文继续探讨人脸检测的相关内容,本文会给出Opencv中自带的人脸检测的相关对比以及Opnev检测中常用的标注等相关操作。人脸检测是一个非常经典的问题,但是还是有一些常见的问题出现在实际使用当中:
(1)误检(把非人脸的物体当作人脸)较多,非人脸图像当作人脸送入后续算法,会引起一系列不良后果。
(2)漏检问题,例如戴墨镜、大胡子、逆光条件、黑种人、倾斜姿态较大的脸无法检测到。
一、人脸检测分类器对比
Haar特征,毫无疑问Haar特征用在人脸检测里具有里程碑式的意义。博主针对正面人脸分类器进行了实验,总共有4个,alt、alt2、alt_tree、default。对比下来发现alt和alt2的效果比较好,alt_tree耗时较长,default是一个轻量级的,经常出现误检测。针对alt和alt2两者,在同一个视频的对比中检测部分alt要略微好于alt2。接下来是一些具体的对比:
(1)检测时间上对比
(2)检测结果上对比:
二、detectMultiScale函数
选择最终的人脸分类器后,若想在这个基础上继续优化,那就试试这个detectMultiScale函数。具体可以查看Opencv源码,下面给出这个函数的讲解:
void detectMultiScale( const Mat& image, CV_OUT vector<Rect>& objects, double scaleFactor = 1.1, int minNeighbors = 3, int flags = 0, Size minSize = Size(), Size maxSize = Size() );
函数介绍:
参数1:image–待检测图片,一般为灰度图像加快检测速度;
参数2:objects–被检测物体的矩形框向量组;
参数3:scaleFactor–表示在前后两次相继的扫描中,搜索窗口的比例系数。默认为1.1即每次搜索窗口依次扩大10%;
参数4:minNeighbors–表示构成检测目标的相邻矩形的最小个数(默认为3个)。 如果组成检测目标的小矩形的个数和小于 min_neighbors - 1 都会被排除。如果min_neighbors 为 0, 则函数不做任何操作就返回所有的被检候选矩形框;
参数5:flags–要么使用默认值,要么使用CV_HAAR_DO_CANNY_PRUNING,函数将会使用Canny边缘检测来排除边缘过多或过少的区域, 因为这些区域通常不会是人脸所在区域;
参数6、7:minSize和maxSize用来限制得到的目标区域的范围。如果视频中误检到很多无用的小方框,那么就把minSize的尺寸改大一些,默认的为30*30。
三、视频标注
视频标注中必不可少的就是画框和文字标注:
//视频画框for (vector<Rect>::const_iterator r = faces.begin(); r != faces.end(); r++) rectangle(img, cvPoint(r->x, r->y), cvPoint(r->x + r->width - 1, r->y + r->height - 1), Scalar(255, 0, 255), 3, 8, 0);//文字标注putText(imgForShow, p.first, Point(BBox.x, BBox.y), FONT_HERSHEY_PLAIN, 2, Scalar(255, 0, 0));
- 算法优化二——如何提高人脸检测正确率
- 如何提高ABBYY FineReader的识别正确率
- 如何提高人脸检测速度
- 算法优化——如何将人脸检测的速度做到极致
- 如何优化人脸检测-我的一点经验
- 机器学习: Viola-Jones 人脸检测算法解析(二)
- opencv提高之人脸检测
- 如何提高算法
- 如何优化广告提高点击率
- 四叉树碰撞检测算法优化
- 如何提高神秘顾客检测质量
- 如何提高软件安全性检测效率(中)
- 用摄像头进行人脸和人眼实时检测的优化 算法
- Web前端性能优化——如何提高页面加载速度
- Web前端性能优化——如何提高页面加载速度
- Web前端性能优化——如何提高页面加载速度
- 算法移植优化(三)android dlib 人脸检测使用
- 人脸检测(二)
- bzoj1216(堆,呵呵的模拟)
- UGUI - 制作Slider进度条
- Spark2.0源码阅读环境搭建 开发环境搭建
- 数据结构实验之栈八:栈的基本操作
- 由于惰性加载一些页面,导致排序时,不能加载其它的页面。因此需要滚动才能加载。
- 算法优化二——如何提高人脸检测正确率
- Lock与ReentrantLock
- python 文件操作学习 Tkinter GUI
- jquery应用一(导航菜单)
- Gson解析
- Cent os 6.3上安装rlwrap
- [BZOJ4565][Haoi2016]字符合并(状压dp)
- gradle下载更新依赖库失败的解决办法 - 依赖库下载加速1000%
- UpdateDriverForPlugAndPlayDevices在64位操作系统执行失败解决方案