“刷脸进站”是怎么做到的?

一年一度的春运很快就要来了。出门打拼的人都知道,每年春运都是一场关于拥挤的记忆,人头涌动的车厢,排成长龙的检票口,仿佛永远都不会消退的人潮。

为了减少拥挤,我们开发了新技术来提高进出站的效率,比如今年,北京西站就新设立了可以“刷脸”的机器。手持车票和二代身份证的旅客只要拿掉口罩、墨镜等遮挡面部的物品,往这机器前面一站,5秒钟即可顺利放行。

比起传统的靠工作人员识别放行,这些机器最大的优势在于节省人力,而且方便快捷。当然,这也对计算机“看脸识人”的本事提出了很高的要求,如何确认眼前这个人就是身份证上的那位呢?这涉及到模式识别、图像处理、计算机视觉、统计学习、神经网络、小波分析、子空间理论和流形学习等众多学科,还有一系列以“特征脸方法”为代表的识别算法。

这类算法的思路主要是利用一种叫“主成分分析”的数学方法,对二维的人脸图片进行降维和提取特征,将其转化为一组向量集,进而转化为数学运算来处理。它首先需要准备一些基本的人脸模型(称为“训练集”),将其向量化后获得基本的特征向量。这些特征向量在返回成图像时看上去仍像人脸,拥有人脸的基本特征,所以它们也被称为“特征脸”。

在具体的识别过程中,算法会把需要识别的人脸图像向量化、数字化,然后从参考用的训练集数据中找出与当前要识别的人脸数据对应的几个特征值,构成一组特征向量基,以达到表征原数据的目的。

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

但基础的特征脸算法比较适合处理静态的正面图像,为了应付旅客在拍照时可能出现的不同姿态,研究者又开发出了“弹性图匹配”的思路。它把所有人脸图像看作具有相似的拓扑结构,不注重角度、长度等量化的性质,而侧重于变换后的图形的不变性质。所以它还有一个形象的名称,叫“橡皮泥几何”。在这种方法中,所有的人脸可以表示成类似的拓扑图,它的节点是一些基准点(如眼睛,鼻尖等),它的边是这些基准点之间的连线。

为了识别一张新的人脸,需要从该人脸中找到基准点,提取出一个人脸图,令这幅图和现有的弹性束图之间的相似度最大。经过匹配后,新的弹性束图将被提取出来,然后再把它放入“特征脸方法”中进行识别。在弹性匹配的过程中,网格的形状会随着特征点的搜索而不断变化,因此对姿态的变化也具有一定的自适应性。

其实,在“刷脸进站”出现之前,人脸识别技术已经越来越多出现在我们的生活中,比如很多智能手机里附带了按“面孔”整理相册的功能,这就是一项借助“特征脸方法”对照片中出现的人脸进行归类的算法。可以想象,在不远的未来,人脸识别技术会更加融入我们的生活中,让生活更加便捷。