技术开发 频道

计算机到底是怎么识别人脸的?

  【IT168 技术】人脸识别技术经历了近四十年的发展,在近年来逐步涌现出了一批可以投入实际应用的成果。如谷歌眼镜中的身份识别、智能手机上的人脸解锁等功能正渐渐影响着我们的生活,而指定人脸识别等应用更是早早地进入了安防领域的最前线。那么,计算机到底是怎么识别人脸的呢?

计算机到底是怎么识别人脸的?

  在这项技术的发展过程中曾经出现过大量的识别算法。这些算法的涉及面非常广泛,包括模式识别、图像处理、计算机视觉、人工智能、统计学习、神经网络、小波分析、子空间理论和流形学习等众多学科。但归根结底,很多算法都是以“特征脸方法”为基础展开的。

  这个方法主要是利用主分量分析,对人脸进行降维和提取特征。它实际上相当于把所有的人脸向量化,数字化,然后从参考用的那些人脸数据(称为训练集)中找出与当前要识别的人脸数据对应的几个特征值,构成一组特征向量基,以达到表征原数据的目的。因为由主分量分析提取出来的特征向量在返回成图像时,看上去仍像人脸,所以这些特征向量也被称为“特征脸”。

计算机到底是怎么识别人脸的?

  从上图中我们可以看到,任何一幅人脸图象减去平均人脸后都可投影到该子空间,得到一组权值向量。该方法实际上是计算了此向量和训练集中每个人的权值向量之间的欧式距离,取最小距离所对应的人脸图像的身份作为测试人脸图像的身份。打个比方,这就像是警察局里指认嫌疑人时所用的“拼脸”方法,它以一个基础脸型为底,将合适的眼睛、眉毛等五官放上去,最终组成一个与嫌疑人最像的人脸图。计算机所做的事情也大致如此,只是它的“眼睛”、“眉毛”等五官更加抽象。

  在此的基础上,又开发出了“弹性图匹配”的方法。它把所有人脸图像看做具有相似的拓扑结构,不注重角度,长度等量化的性质,而侧重于变换后图形的不变性质。所以它还有一个很形象的名称,叫“橡皮泥几何”。在这种方法中,所有的人脸可以表示成类似的拓扑图,图中的节点是一些基准点(如眼睛,鼻尖等),图中的边则是这些基准点之间的连线。

计算机到底是怎么识别人脸的?

  为了识别一张新的人脸,需要从该人脸中找到基准点,提取出一个人脸图,令这幅图和现有的人脸束图之间的相似度最大。经过弹性图匹配后,新的人脸束图将被提取出来,用它作为特征进行识别,并计算测试人脸和现有人脸束图之间的所有相似度,相似度最大的人脸的身份即为测试人脸的身份。

  这个方法在弹性匹配的过程中,网格的形状会随着特征点的搜索而不断变化,因此对姿态的变化也具有一定的自适应性。但它在搜索过程中以代价函数优化的计算量巨大,识别速度较慢。

  以上都是静态图像的情况。在视频监控、信息安全和出入控制等应用中,基于视频的人脸识别是一个非常重要的问题,也是目前人脸识别的热点和难点。一个典型的基于视频静态图像的人脸识别系统一般都是自动检测人脸区域,从视频中提取特征,最后,如果人脸存在则识别出人脸的身份。

  现在,在上述方法的基础上加入了人脸跟踪方法。在这类系统中,通过利用姿态和从视频中估计到的深度信息合成一个虚拟的正面人脸。这个阶段的另外一个能提高识别率的方法是利用视频中充裕的帧图像,对每一帧图像进行识别。这等于是把大量的静态识别结果堆叠起来,然后使用“投票”机制选出最受支持的结果。

  近两年,视频人脸识别技术有了进一步的发展,这个阶段的特点是同时采用空间信息(在每帧中)和时间信息(比如人脸特征的运动轨迹),做出更准确的判断。和前述的“投票”的不同之处在于,此类方法可以在时间和空间的联合空间中描述人脸和识别人脸,因此更加精准。

  可以想象,在不远的未来,人脸识别技术会悄无声息地融入我们的生活。比如参加宴会时,我们要它帮助识别陌生人,以更好地展开交际。整理资料时,它又可以帮助我们用最快的速度将影像文件按人归档。将这些细小的变化累加起来,将让我们的生活更加便捷。

0
相关文章