提高Haar分类器的检测效率
2016-11-22 21:18
190 查看
这一章我简略的探讨下Haar分类器的检测效率。
我尝试过的几种方法:
1)尝试检测算法与跟踪算法相结合,原本以为Camshift是个轻量级的算法,但是正如我后来看到的,建立反向投影图的效率实在不高,在PC上效果不错,但是在ios上速度很慢,这个我后来发现可能是因为ios浮点运算效率不高的原因。但是即便速度能上去,靠Camshift跟踪算法太依赖肤色了,导致脖子,或是手什么的干扰很严重,这个调起来很费神,也不一定能调好。
2)修改OpenCV中Haar检测函数的参数,效果非常明显,得出的结论是,搜索窗口的搜索区域是提高效率的关键。
3)根据2)的启发,我打算利用YCbCr颜色空间,粗估肤色区域,以减少人脸的搜索面积,但是后来苦于没能高效率的区分出肤色区域,放弃了该方法。
4)换了策略,考虑到视频中人脸检测的特殊性,上一帧人脸的位置信息对下一帧的检测有很高的指导价值,所以采有帧间约束的方法,减少了人脸搜索的区域,并且动态调整Haar检测函数的参数,得到了较高的效率。
5)其他关于算法之外的优化需要根据不同的处理器做具体的优化。
我尝试过的几种方法:
1)尝试检测算法与跟踪算法相结合,原本以为Camshift是个轻量级的算法,但是正如我后来看到的,建立反向投影图的效率实在不高,在PC上效果不错,但是在ios上速度很慢,这个我后来发现可能是因为ios浮点运算效率不高的原因。但是即便速度能上去,靠Camshift跟踪算法太依赖肤色了,导致脖子,或是手什么的干扰很严重,这个调起来很费神,也不一定能调好。
2)修改OpenCV中Haar检测函数的参数,效果非常明显,得出的结论是,搜索窗口的搜索区域是提高效率的关键。
3)根据2)的启发,我打算利用YCbCr颜色空间,粗估肤色区域,以减少人脸的搜索面积,但是后来苦于没能高效率的区分出肤色区域,放弃了该方法。
4)换了策略,考虑到视频中人脸检测的特殊性,上一帧人脸的位置信息对下一帧的检测有很高的指导价值,所以采有帧间约束的方法,减少了人脸搜索的区域,并且动态调整Haar检测函数的参数,得到了较高的效率。
5)其他关于算法之外的优化需要根据不同的处理器做具体的优化。
相关文章推荐
- 浅析人脸检测之Haar分类器方法
- 浅析人脸检测之Haar分类器方法
- 【人脸检测】Haar分类器原理2——AdaBoost级联分类器
- 浅析人脸检测之Haar分类器方法
- 浅析人脸检测之Haar分类器方法
- 【OpenCV】浅析人脸检测之Haar分类器方法
- 人脸检测之Haar分类器
- 浅析人脸检测之Haar分类器方法:Haar特征、积分图、 AdaBoost 、级联
- 目标检测之训练opencv自带的分类器(opencv_haartraining 或 opencv_traincascade)
- 用opencv自带的Haar分类器进行人脸检测(二)
- 浅析人脸检测之Haar分类器方法
- 浅析人脸检测之Haar分类器方法:Haar特征、积分图、 AdaBoost 、级联
- 浅析人脸检测之Haar分类器方法
- 人脸检测分类器haarcasade_frontalface_alt_xml文件中数据含义
- 浅析人脸检测之Haar分类器方法
- 浅析人脸检测之Haar分类器方法:Haar特征、积分图、 AdaBoost 、级联
- 浅析人脸检测之Haar分类器方法:Haar特征、积分图、 AdaBoost 、级联
- 浅析人脸检测之Haar分类器方法
- 浅析人脸检测之Haar分类器方法:Haar特征、积分图、 AdaBoost 、级联
- OpenCV学习笔记(三十三)——用haar特征训练自己的分类器(再做手势检测)