人工智能如何“认出”人脸

作者: 核桃编程

人工智能如何“认出”人脸0

人脸计算机视觉技术的一个重要应用就是人脸识别。提到人脸识别,你一定不陌生。我们已经在越来越多的场景中看到了人脸识别的应用。例如,解锁手机,乘坐火车等。

那么,人工智能是怎么“认出”人与人之间的不同的呢?总不可能是拍两张照片直接比较是不是同一张照片吧!毕竟只要换个表情、转一下头,得到的照片就不一样了。

人类是根据每个人长相的差异对人脸进行辨认的。这个人的眼睛大一些,那个人的鼻梁高一些,不同的五官组成了不同的脸。

人工智能没法像人一样凭直觉判断两张脸像还是不像。对它来说,要分辨人脸,必须对人脸照片的数据加以精确分析。

进行人脸识别的第一步就是找到人脸的位置,这就是定位和检测。现在最常用的定位人脸的方法是HOG(方向梯度直方图)。

人工智能如何“认出”人脸1
人脸识别常用的68个特征点

这个名字虽然拗口,但实际上它就是一种能够检测物体轮廓的算法。首先,我们把彩色图像变成黑白图像,虽然有无颜色并不影响我们辨认人脸,但是去掉颜色可以减少对识别的干扰。然后,我们把图像分成一个个小格子,用箭头表示小格子中图像明暗是如何变化的,最终就可以得到HOG。虽然对人类来说,HOG特征不好辨认,但是对计算机来说,在HOG中,人脸的五官等关键信息会变得更加明显。这样,计算机就可以很快找到人脸。为了在HOG中找到人脸,我们需要利用数学算法找到图中和已知的人脸HOG最像的部分。这些HOG特征需要从其他已知的面部数据中训练提取。

找到人脸之后,人工智能又会面临一个新的问题。在采集人脸信息时一般只有正面的图像,正所谓“横看成岭侧成峰,远近高低各不同”,即使是同一张脸,从不同的角度看起来也不一样。除了方向和角度,表情、光线等都会让人脸图像发生变化。但是,你如果使用支持人脸解锁功能的手机就会发现,即使解锁手机时侧着头,也同样可以解锁成功。那么,如何鉴别变形前后是不是同一张人脸呢?

通常情况下,人脸有很多相同点。科学家们由此想到,可以用人脸上一些普遍存在的特征点作为人脸的基准,适当调整扭曲图像中的人脸,让被识别的人脸“正”起来。

经过反复研究,科学家们找到了下巴、眉毛、鼻子等特征点,其中最常用的有68个。有了这些特征点,我们就可以知道眼睛和嘴巴在哪儿了,然后按照一定规律对图像进行旋转、缩放等,使得眼睛和嘴巴尽可能地靠近中心,让各个特征点尽可能和正面的情况对齐,这样就可以把脸变得“正”起来。当然,我们也可以给人脸标注更多的特征点,让人工智能的定位更加精确——有些公司的人脸识别系统有上百个特征点。

把特征点对齐之后,就要进行最关键的一步了——判断这到底是谁的脸。这就要将我们刚得到的人脸数据同之前采集的人脸库中的数据加以比较,找到最像的那个。如何判断像不像呢?可以比较两张图像中耳朵的大小、鼻子的长度、眼睛之间的距离等。

如果要精确地进行数值化比较,人工智能也许比我们更“懂”人脸。利用卷积神经网络,人工智能可以自动检测出人脸上的大量数据。常见的做法是测量128组数据,对计算机来说也就是128个数字。鉴于神经网络的特点,我们无法理解这128个数字到底是什么意思,但这并不重要,人工智能可以理解。只要利用一定的数学方法找到和这128个数字最接近的另一组数字,计算机就可以迅速成功地找到这张人脸的主人。

(爱丽丝摘自人民邮电出版社《写给青少年的人工智能:应用》一书,视觉中国供图)

经典小说推荐

杂志订阅

友情链接