(本篇主要为原理介绍以及效果和结果的讨论,源代码解析在下一篇)
一.实现方法
VS2010可视化程序界面设计:采用MFC
人脸检测部分:采用OpenCV 2.4.9
1 检测方法
采用基于统计的人脸检测方法——Haar分类器。
Haar分类器=Haar-like特征+AdaBoost + 级联 +积分图
①Haar-like特征做检测。
②使用AdaBoost算法训练区分人脸和非人脸的强分类器。
(此处利用自己的白视频照片做训练集,来进行训练,后附上自己的训练过程)
③使用筛选式级联把强分类器级联到一起,提高准确率。
④使用积分图对Haar-like特征求值进行加速
1.1 得到Haar-like特征,区分人脸和非人脸部分
Lienhart等人提出的Haar-like特征如下图
获取Haar-like特征:
拿出其中任意一个矩形框去移位滑动,扫描人脸的区域,用白色部分像素值减去黑色部分像素值,结果即为人脸此区域的量化特征值,扫描完全脸,即得到人脸的量化特征值(矩阵特征),做初步弱分类器。
需要检测时,再对待检测图片做相同操作,最终将所得量化特征值进行对比,相同则为人脸,不同则为非人脸区域,且越不同越好。
1.2 利用AdaBoas

本文介绍了基于OpenCV 2.4.9和MFC实现人脸检测的方法,包括Haar分类器原理、AdaBoost训练、级联分类器、积分图加速以及可视化界面设计。通过自训练的xml文件,实现在白背景视频上优秀的人脸检测效果,但在其他场景下表现不佳。提出改进算法效率的三种策略。
最低0.47元/天 解锁文章
2755





