嘿!您似乎在 United States,您想使用我们的 English 网站吗?
Switch to English site
Skip to main content

一个人的脸部特征可以传达很多信息,如性别,大致年龄,性别以及情感等,因此,在过去三十多年的时间里有大量学者热衷于对人脸检测与人脸识别的研究。

人脸检测(Face Detection)是指在输入图像中确定所有人脸(如果存在) 的位置、大小和位姿的过程。人脸检测作为人脸信息处理中的一项关键技术,近年来已成为模式识别与计算机视觉领域内一项受到普遍重视,研究十分活跃的课题。人脸识别或辨认、人脸定位以及人脸追踪等都与人脸检测密切相关。

人脸定位的目的是确定图像中人脸的位置。假设一幅图像中只存在一张脸,则面部特征检测的目的是检测特征的存在和位置,如眼睛、鼻子(鼻孔) (眉毛) (嘴) (嘴唇)耳朵等。人脸识别或辨认是将输入图像与数据库中的图像比对,如果存在,报告匹配结果。人脸识别的目的是检验输入图像中的个体的身份,而人脸追踪方法是实时地、连续地估计在图像序列中的人脸的位置和可能的方向。面部表情识别涉及识别人类的情感状态(高兴、悲伤、厌恶等) 。很明显,在任何解决上述问题的自动识别系统中,人脸检测是第一步。

人脸检测应用

人脸检测可用于生物特征识别,通常做为人脸识别系统的一部分。人脸检测也可以用于视频监听、人机交互和图像数据库管理。一些最新的数码相机使用人脸检测来自动对焦。人脸检测也获得了市场的兴趣。电视机上可以集成摄像头来检测任何走过的人脸,然后计算该用户的种族、性别和年龄范围。一旦获得这些信息,可以针对性的播放广告。

人脸检测也可以用于节约能源。人们看电视或电脑的时候往往会做其他工作,这时候普通的显示器不能自动降低亮度来节省能源。智能系统可以识别用户的面部朝向,当用户不看屏幕时,可以自动降低亮度;在用户重新看屏幕时,再增加亮度。

随着近些年来国际形势的变化,特别是 9.11 事件之后,各国对自身重要设施的安保性能越发重视,也积极研发了一些自动人脸识别系统并投入实用。比如,美国 Identix 公司的 FaceIt系统,该系统基于局部特征分析(LFA),能在不同的光照,肤色,姿态,表情情况下得到良好的检测性能。我国的生物特征认证与安全技术研究中心(CBSR)则在 2004 年成功研制出了基于人脸、指纹、虹膜三种识别方法的快速通关系统(MRTD),取得了国际先进的整体性能。

人脸检测主要难点

人脸的自动检测是一类具有很大挑战性的问题,其主要难点在于:

(1)人脸是一类高度非刚性的目标,存在相貌,表情,肤色等差异;

(2)人脸上可能会存在一些附属物,诸如,眼镜,胡须等;

(3)人脸的姿态变化万千,并且可能存在遮挡物;

(4)待检测图像性质的差异。比如:待检图像的分辨率;摄录器材的质量等;

(5)光源的种类和角度。不同种类和角度的光源会对待检测的人脸产生不同性质的反射和不同区域的阴影。

人脸检测算法实现

到2000年为止,已经出现非常多的技术应用于检测人脸,但是都存在处理速度太慢或可靠性低的问题。直到2001年Viola和Jones提出了基于Haar特征的级联分类器用于对象检测,并于2002年由Lienhart和Maydt经过改进,状况才得到改变。这种对象检测器即快速又可靠,并且可以直接在OpenCV中使用这种分类器。还有一种是基于LBP特征的级联分类器,速度比Haar分类器快好几倍。Haar分类器的训练是独立于人脸检测过程的。分类器的训练分为两个阶段: 

A. 创建样本,用OpenCV自带的creatsamples.exe完成。 

B. 训练分类器,生成xml文件,由OpenCV自带的haartraining.exe完成。

OpenCV中的这两种分类器都已经是训练好的,可以直接使用。检测流程如下:

Viola-Jones人脸检测算法的主要贡献:

1. 提出积分图像(integral image),从而可以快速计算Haar-like特征。

Haar-like型特征是Viola等人提出的一种简单矩形特征,因为类似Haar小波而得名。Haar型特征的定义是黑色矩形和白色矩形在图像子窗口中对应的区域的权重灰度级总和之差。算子数量庞大时上述计算量显得太大,Viola等人发明了积分图方法,使得计算速度大大加快。

2. 利用Adaboost学习算法进行特征选择和分类器训练,把弱分类器组合成强分类器。

在离散Adaboost算法中,Haar-like特征算子计算结果减去某阈值,便可视为一个人脸检测器。因为其准确率不高,称为弱分类器。Adaboost算法的循环中,首先利用各种弱分类器对训练图片库进行分类,准确度最高的弱分类器保留下来,同时提高判断错误的图片的权重,进入下一循环。最终将每次循环所保留的弱分类器组合起来,成为一个准确的人脸检测器,称为强分类器。

3. 采用分类器级联提高效率。

瀑布型级联检测器是针对人脸检测速度问题提出的一种检测结构。瀑布的每一层是一个由adaboost算法训练得到的强分类器。设置每层的阈值,是的大多数人脸能够通过,在此基础上尽量抛弃反例。位置越靠后的层越复杂,具有越强的分类能力。 这样的检测器结构就想一系列筛孔大小递减的筛子,每一步都能筛除一些前面筛子楼下的反例,最终通过所有筛子的样本被接受为人脸。

关于opencv

OpenCV 是 Intel 开源计算机视觉库 (Computer Version) 。它由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法。

OpenCV 拥有包括 300 多个 C 函数的跨平台的中、高层 API 。它不依赖于其它的外部库 —— 尽管也可以使用某些外部库。 OpenCV 对非商业应用和商业应用都是免费的。同时 OpenCV 提供了对硬件的访问,可以直接访问摄像头,并且 opencv 还提供了一个简单的 GUI(graphics user interface) 系统 :highgui 。 我们就通过 OpenCV 提供的一些方法来构造出这个人脸检测 ( face detection ) 程序。

点击了解更多: OpenCV用于人脸检测【二】