1,人脸检测简介
人脸检测的模型主要有两类,一类是知识模型,根据眼睛、嘴、鼻子的相对位置或面部不同部位的颜色深度差异来检测人脸,另一类是统计模型,把海量的人脸数据转换成二维像素矩阵,从统计的观点出发构建人脸模式空间判断人脸是否存在。
2,特征数据
最常用到的三种特征分别为Haar特征、LBP特征及HOG特征,三种特征描述了三种不同的局部信息:
(1) Haar描述的是图像在局部范围内像素值明暗变换信息;
(2)LBP描述的是图像在局部范围内对应的纹理信息;
(3)HOG描述的则是图像在局部范围内对应的形状边缘梯度信息。
其中,OpenCV使用的Haar特征分类器属于第二种模型,训练人脸检测的特征分类器是个非常耗时费力的工作,需要收集大量的正负样本,不过值得庆幸的是OpenCV已经为我们完成了这项工作。关于Haar的具体原理和算法请大家自行百度,简单点说Haar特征分类器是xml文件,记录了面部正面、侧面、左右眼、鼻子、笑脸、上半身等多个Haar特征数据,通过对输入图片进行级联筛选查找人脸
3.人脸检测的实现
在搜索“github opencv”,在“opencv/data/haarcascades”目录下可以看到各种各样的特征分类器(xml文件),从文件名上可以轻易区分出分类器的用途,如“haarcascadesfrontalface_default.xml”是脸部正面特征分类器。https://github.com/opencv/opencv/tr