十万个为什么

为什么计算机可以认出人长得什么样子

如今一些网站推出了新登录方式,使用者不再需要输入用户名和密码,只要用摄像头自拍一张照片,计算机就可以通过你的脸知道你是哪一位用户。这是怎么做到的呢?

对于每个人来说,通过脸部长相区分出你我他是再简单不过的事情。不过,我们在识别人脸的时候,大脑里究竟是怎么工作的,科学家到现在为止也不是完全清楚,但这并没有阻挡计算机成为“面相师”。

计算机没有分辨不同人脸的天赋,只拥有和大量数据打交道的能力,所以在计算机眼中,无论帅哥还是美女的照片,都是一堆数字而已。照片上的每一个点的颜色值都以数字的形式储存在计算机程序里,所有的任务都是通过计算这些数据实现的。

计算机首先要做的是用一个“人脸模板”在图片数据中上下左右移动和计算,根据计算结果,在照片中锁定出人脸的位置和大小,把照片里人脸部分抓出来,并且把大小调整到标准状态。在找到了人脸之后,下一步就是判断这张脸是谁的。为了识别人脸,计算机会建立一个数据库,里面储存着每个人第一次登录时的照片。计算机需要把现在正在看的这张脸和数据库里成千上万的人脸进行比对。为了做好人脸比对这最关键的一步,研究人员想了很多主意。

一种办法是先在各张脸上找到眼睛、鼻子和嘴的位置。虽然人类一眼就可以看出来,不过计算机是需要通过一定的方法计算出来的。然后,通过测量两只眼睛之间的距离、鼻子大小等尺寸信息,来比较这张照片是不是符合数据库里某一个人的面部信息。

还有一种精确度更高的“特征脸”方法。我们能够看出李雷长得像李雷,韩梅长得像韩梅,一定是通过他们脸上一些特征辨认出来的,可是有的时候又说不出到底是什么特征。计算机可以发挥自己“算术好”的优点,把数据库里大量人脸数据合成到一起进行计算,算出几十张“特征脸”,然后每一张真人脸都是可以由这些特征脸按比例组合而成,就像鸡尾酒可以由几种不同的酒调和而成一样,只要两张脸中含有的各张特征脸的“调和比例”很接近,就可以判断是同一个人的。

当然,计算机也会有认不出人脸的时候,照片里的人戴着口罩或者戴着墨镜,照片里只有半边脸,或者照片里的光线太暗或者太亮,都可能让人脸识别系统失灵,为了让计算机的“眼力”更好,科学家还有很多工作要做。