(本篇主要为原理介绍以及效果和结果的讨论,源代码解析在下一篇)
一.实现方法
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 利用AdaBoast算法得到准确的矩阵特征组合(强分类器)