版权声明:Davidwang原创文章,严禁用于任何商业途径,授权后方可转载。
在AI物体检测识别领域,最先研究的是人脸检测识别,目前技术发展最成熟的也是人脸检测识别。人脸检测识别已经广泛应用于安防、机场车站闸机、人流控制、安全支付等众多社会领域,也广泛应用于直播特效、美颜、Animoji等娱乐领域。
(一)人脸检测概念
人脸检测(Face Detection)是利用计算机在数字图像或视频中自动定位人脸的过程,人脸检测不仅检 测人脸在图像视频中的位置,还应该检测出其大小与方向(姿态)。人脸检测是有关人脸图像分析应用的 基础,包括人脸识别和验证、监控场合的人脸跟踪、面部表情分析、面部属性识别(性别、年龄、微笑、 痛苦)、面部光照调整和变形、面部形状重建、图像视频检索等等。这几年,随着神经网络的发展,人脸 检测成功率与准确率大幅度提高,并逐渐开始实用化,如机场火车站人脸验票、人脸识别身份认证等等。
人脸识别(Face Recognition)是指利用人脸检测技术确定两张人脸是否对应同一个人,人脸识别技术 是对人脸检测技术的扩展和应用,也是很多其他应用的基础。目前,ARCore 仅提供人脸检测,而不提供人 脸识别功能。
人脸跟踪(Face tracking)是指将人脸检测扩展到视频序列,跟踪同一张人脸在视频序列中的位置。理 论上来讲,任何出现在视频中的脸都可以被跟踪,也就是说,在连续视频帧中检测到的人脸可以识别为同 一个人。人脸跟踪不是人脸识别的一种形式,它是根据视频序列中人脸的位置和运动进行推断人脸是否为 同一人的技术。
人脸检测属于模式识别的一类,但人脸检测成功率受到很多因素的影响,影响人脸检测成功率的因素主要有下表 中所述情形。
影响因素 | 描述 |
---|---|
图像大小 | 人脸图像过小会影响检测效果,人脸图像过大会影响检测速度,图像大小反映在实际应用场景 就是人脸离摄像头的距离。 |
图像分辨率 | 越低的图像分辨率越难检测,图像大小与图像分辨率直接影响摄像头识别距离。目前 4K 摄像 头看清人脸的最远距离是 10 米左右,移动手机检测距离要更小一些。 |
光照环境 | 过亮或过暗的光照环境都会影响人脸检测效果。 |
模糊程度 | 实际场景主要是运动模糊,人脸相对于摄像头的移动经常会产生运动模糊。 |
遮挡程度 | 五官无遮挡、脸部边缘清晰的图像有利于人脸检测。有遮挡的人脸会对人脸检测成功率造成影响。 |
采集角度 | 人脸相对于摄像头角度不同也会影响人脸检测效果。正脸最有利于检测,偏离角度越大越不利于检测。 |
随着人工智能持续发展,在全球信息化、云计算、大数据的支持下,人脸检测识别技术也会越来越成 熟,同时应用面会越来越大,可以预见,由以人脸检测为基础的人脸识别将会呈现网络化、多识别融合、 云互联的发展趋势。
(二)人脸检测技术基础
人头部是一个三维结构体,普通在描述人体头部时采用欧拉角来精确的描述头部的姿态,这里的欧拉角源自于笛卡尔左手坐标系,并规定绕 Y 轴逆时针旋转角度为正,绕 Z 轴顺时针旋转角度为正,如下图所示。在人脸检 测中,通常把绕 Y 轴旋转叫做 y 欧拉角,绕 Z 轴旋转叫 r 欧拉角,我们平时做的摇头动作就是 y 欧拉角, 而偏头的动作就是 r 欧拉角,如下图2 所示,绕 X 轴旋转在人脸检测中通常很少用到。
人脸检测的复杂性之一就是人体头部是一个三维结构体,且是一个动态的三维结构体,摄像机捕捉到 的人脸很多时候都不是正面,而是有一定角度且时时处于变化中。当然,人脸检测的有利条件是人脸有很 多特征,如下图所示,可以利用这些特征做模式匹配。但在很多人脸检测技术中(包括ARCore),人脸特征并不是人脸 轮廓检测的前提,换句话说,人脸检测是独立于人脸特征的,且通常是先检测出人脸轮廓再进行特征检测, 因为特征检测需要花费额外的时间,会对人脸检测效率产生影响。
人脸具有对称性,人脸特征会分布在 Y 轴两侧一定角度内,通常来说,人脸特征分布情况符合下表所示规律。
Y 欧拉角 | 人脸特征 |
---|---|
小于-36 度 | 左眼、左嘴角、左耳、鼻底、左脸颊 |
-36 度至-12 度 | 左眼、左嘴角、鼻底、下嘴唇、左脸颊 |
-12 度至 12 度 | 左嘴角、右嘴角、上下嘴唇、鼻底 |
12 度至 36 度 | 右眼、右嘴角、鼻底、下嘴唇、右脸颊 |
大于 36 度 | 右眼、右嘴角、右耳、鼻底、右脸颊 |
人脸检测不仅需要找出人脸轮廓,还需要检测出人脸姿态(包括人脸位置与方向)。为了解决人脸姿 态问题,一般的做法是制作一个三维人脸正面“标准模型”,这个模型需要非常精细,因为它将影响到人 脸姿态估计的精度。在有了这个三维标准模型之后,对人脸姿态检测的思路是在检测到人脸轮廓后对标准 模型进行旋转,以期标准模型上的特征点与检测到的人脸特征点重合。从这个思路我们可以看到,对姿态 检测其实是个不断尝试的过程,然后选取特征点吻合得最好的标准模型姿态作为人脸姿态。简单的说就是 先制作一个人皮面具,努力尝试将人皮面具套在人脸上,如果成功则人皮面具的姿态必定是人脸的姿态。
如前所述,虽然人脸的结构是确定的,还有很多特征点可供校准,但由于姿态和表情的变化、不同人 的外观差异、光照、遮挡等影响,准确的检测处于各种条件下的人脸仍然是较为困难的事情。幸运的是, 随着深度神经网络的发展,在一般环境条件下,目前人脸检测准确率有了非常大的提高,甚至在某些条件 下超过了人类。
参考文献
1、《ARCore之路-Unity开发从入门到实践》