OpenCV人脸检测的速度

转载 2012年03月25日 18:17:21

OpenCV人脸检测的速度

帖子由 alkmaar » 2012-03-20 10:19

各位大虾好,小弟有一个关于OpenCV人脸检测的问题想请教一下:
我用摄像头打开480x640的窗口,然后使用OpenCV的人脸检测函数cvHaarDetectObjects进行人脸检测。函数配置如下:

faces = cvHaarDetectObjects( detectImg, (CvHaarClassifierCascade*)cascade, storage, search_scale_factor, 3, flags, minFeatureSize ); 

其中, search_scale_factor是1.1, flags = CV_HAAR_FIND_BIGGEST_OBJECT | CV_HAAR_DO_ROUGH_SEARCH; 也就是说只找一张人脸。 minFeatureSize是(20,20)。
这样的配置在有人脸的情况下可以实时检测,大概就是十几ms的样子。

现在有一个问题是:当窗口没有人脸的时候,这个人脸检测函数貌似要搜索整幅图直至最终确定没有人脸。这种情况下大概需要近一秒的时间。小弟想问一下:这种情况正常吗?我以前看到别人的人脸检测demo程序在有没有人脸的情况下视频窗口都是实时活动的,不会像我的程序这样,在没有人脸的时候,当前帧得卡住,一直等到cvHaarDetectObjects执行完。请问,是不是我的函数配置有问题啊?

烦请大虾不吝赐教,谢谢啊。


我来回复楼下评论各位:(2014-08-06)

search_scale_factor 弄大一点,比如1.3
minFeatureSize是(20,20)弄大一点,比如50 * 50


这个opencv内部检测过程,我武断的推理一下,就是先找大的,先大的套一个框,框内部图像内容通过直方图等方法检测是否可能是脸。


大的找不到咋办,把框弄小一点(我估计那个1.1的参数用在这里),先套在一个位置检查,不行就把框步进移动一下,得到新框范围接着检查。


如果步进完了还没有咋办,再用1.1参数缩小一点。直到小于minFeatureSize终止检测。


所以,如果图像里面有头像,速度比较快,因为很快找到。如果图像里面没有头像,就每次都检测完所有的框,就会很卡。


一些捡的比较快的技术,就是用了历史来检测,例如上一帧在x, y附件有脸,这一帧或几帧后也在x, y附近先找。找不到再适当放大一点,缩小一点啥的。


如果都找不到,就放慢检测速度,比如这帧检测检查大框,下帧检测中框,再下次检测小框。总之就是避免卡。


因为脸首次检测灵敏度慢点没问题的,检测到了后跟踪的好,其用户体验才是真的好。


可惜,opencv流行的用法只会蛮力,没头像时贼卡。


还有一个最简单的方式,把图像缩小,尽可能缩小(就是勉强满足检测灵敏度就行),再给opencv检测(显示时还是大图,小图若检测到脸,需要按比例找到在大图中的位置)。这个方法我用过,好用,配合那个参数调整,基本不会觉得卡的。




相关文章推荐

使用Opencv的dnn模块进行深度学习人脸识别(速度较慢)

这里给出了一个样例,如何使用Opencv的dnn模块进行人脸识别,因为在编译Opencv时似乎没有加上WITH_CUDA,所以导致forward()的传播速度巨慢,但是不影响我们进行实验。准备工作1、...

人脸检测的三种提速尝试

提升图片中提取出人脸的速率的三种尝试。

怎么把人脸检测的速度做到极致

转载自: 【技术共享】怎么把人脸检测的速度做到极致   http://mp.weixin.qq.com/s?__biz=MzA3NDU3MTc1Ng==&mid=2651165778&idx=1&...

算法优化——如何将人脸检测的速度做到极致

“人脸检测”是从图像中确定人脸的位置和大小,如下图所示;“人脸识别”是识别图像中的人脸是张三还是李四,是身份识别。   人脸检测最经典的方法是Haar+AdaBoost。

人脸检测opencv

  • 2017-09-08 15:27
  • 47.71MB
  • 下载

大家是否有办法提高haarObjectDetect的速度?在人脸检测方面,我尝试用肤色检测缩小范围

大家是否有办法提高haarObjectDetect的速度?在人脸检测方面,我尝试用肤色检测缩小范围 版主: ollydbg23, bebekifis, chai2010 发表回复 ...

j基于opencv的人脸检测

  • 2015-05-05 20:33
  • 106KB
  • 下载

opencv实现图片与视频中的人脸检测

opencv实现图片与视频中的人脸检测 第一章:反思与总结 上一篇博客我相信自己将人脸检测中的AdaBoost算法解释的非常清晰了,以及如何训练人脸检测的模版
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)