高铁新建人脸识别系统,如何做到整容也可以识别逃犯?

如今人脸识别系统已经广泛应用于我们的生活中,如数码相机、门禁系统、机场的安全设施 、桌面软件、互联网应用(如Facebook)等等[1]。然而今日的一则关于“高铁人脸识别抓逃犯”的新闻一出[2],在评论中又引发了一阵阵怀疑。怀疑的中心问题在于,人脸识别系统真的能准确无误地在数以亿计的面孔中找出匹配的嫌疑人吗?

降维:减少冗余信息

完整的人脸识别系统一般由多个模块组成,在进行人脸识别之前首先要进行人脸检测(即在一张完整的图片中探测到人脸区域),以及图片的预处理、归一化等步骤(例如自动把倾斜的照片摆正)。本文就来介绍一下人脸识别的过程。(至于人脸检测的问题留待以后再议,就看评论中群众的呼声了。)

我们知道数码图片的基本表示方式是位图(bitmap)。一张大小 360x480 的黑白照片,每个像素点的取值范围是 0-255 之间的整数,通过简单的乘法原理可以算出,它可能产生 256 172800 种不同的照片。然而在这个天文数字的可能性中,不可能每一张照片都是人脸。事实上,符合正常人类脸部特征的照片只占这些可能性中极小的一部分。也就是说,如果以这样的方式表示图片,并且每张图片都是人脸的话,那么信息就是极其冗余的:位图用了 172800 个像素——也可以称为 172800 个特征——来表示一张人脸图片。由于人脸的规律性,我们其实可以用很少量的特征来表示,比如20个、50个、或100个。当然,如果我们只用20、50、100个特征表示人脸,这里的每个特征的意义就不再是一个像素点了。

上一段其实解释了数据挖掘中一个很重要的概念——降维(dimension reduction)。用数学的语言来说,人脸识别中最主要的工作就是把这些 172800 维空间中的向量转换为 20、50、100 维空间中的一组向量。这样转换的好处是什么呢?下面我们用一个具体例子来说明。

主成分分析:提取有代表性的脸型轮廓

现在有 40 个人的人脸图片,每人 10 张,一共 400 张图片(ORL Database [3])。为简单起见,我们把这组图片降到5维,也就是只用 5 个特征来表示一张人脸图片。上面提到,如果只用5个特征,那每个特征本身就不能是一个像素点这么简单。那么这5个特征是什么呢?如下所示:

我们可以看到,这5个特征中的每一个都是一张酷似人脸轮廓的图片。OK,那么怎么用这 5 个特征表示一开始那400张人脸图片呢?我们用(线性)叠加的方式。假设(仅仅是假设)某张图片有这般组成:

原始图片 ≈ Eigenface1 ×0.1 +Eigenface2 ×0.3 +Eigenface3 ×(-0.7)+Eigenface4 ×0 +Eigenface5 ×2

那么这张图片就可以用(0.1,0.3,-0.7,0,2)这个向量(5维向量)表示。(这个公式中似乎有些奇怪的东西?看不懂没关系,我们后面再解释。)

到此为止我们用到的降维方法叫做主成分分析(PCA:Principle Component Analysis)[4],如果你用过任何数学软件或统计软件(如 Matlab、SPSS),里面肯定有这个功能。从字面意思上讲,通过把图片的表示从很高维的空间降到5维,我们提取出了这组人脸图片的“主要成分”(说白了就是人脸)。第一个特征(Eigenface1)刻画出了人脸最主要的构架,后面的几个特征(Eigenface2-5)再慢慢的细化。像素点可以称为低级(low-level)特征,相应地,“主要成分”可以成为高级(high-level)特征。同一个人的照片可以千变万化,为了实现人脸识别,我们当然不能一个一个像素点地去比对,而应该通过这些“主要成分”考察人脸图片是怎么构造/叠加出来的。不同的面孔有不同的构造方式,比如有的用 Eigenface2 的权重大一些,有的用 Eigenface3 的权重大一些,这样就实现了不同人面孔之间的区分。

关于上面的公式,我们还注意到以下两点:

1.左边和右边是约等号,也就是说,当我们用这 5 个特征以不同权重叠加起来,得到的是原始图片的一张近似图片。其实这就是生成这5个特征时采用的标准:用叠加的方式试图复原所有原始图片时产生的误差总和最小。虽然这里面有信息损失,但这5个特征反映出来的的确是400张图片里最关键的部分。如果需要,我们可以近似地把原始图片复原出来,比如这400张图片里的第一张:

2.每个特征有个奇怪的名字:Eigenface + 序号。如果你在大学学过线性代数并且到今天还没忘的话,或许你会联想到线性代数里的一个概念:特征向量和特征值(Eigenvector and Eigenvalue)。没错,这些 Eigenface(或许可以译作特征脸或本征脸)实际上就是原始图片协方差矩阵的特征向量(更多数学免去)。很奇妙吧?通过求特征向量就能做基本的人脸识别或文本分析,你是否也感到了数学之美?

堪比铁路网上订票系统?

当然,主成分分析用于实际中的人脸识别系统还是远远不够的。上世纪90年代的计算机科学家们又利用统计理论开发出了更好的方法,如线性判别分析(Linear/Fisher Discriminant Analysis)[6]。这是另一种降维方法,与主成分分析相比,同一个人的照片在转换后的低维空间中会更加紧凑,从而提高识别精度。跟 Eigenface 类似, 线性判别分析生成的特征也有一个名字,叫做费舍脸(Fisherface),以伟大的统计学家罗纳德•费舍(Ronald Fisher)命名。

实际场合中的人脸图片极为复杂,可能有各种姿势、表情,照相时的光线明暗和角度变换更加大了识别的难度。继 Eigenface 和 Fisherface 之后,人脸识别的研究成为计算机领域的热点之一,识别算法逐渐可以适应各种光线、角度或脸部本身的变化。例如下图是卡内基梅隆大学约10年前发布的人脸识别研究数据[7],可以看到同一个人照片呈现出的巨大差异。在这样复杂的环境中现有算法已经能达到大约95%的识别精度[8]。

万一哪个逃犯换了发型、戴了墨镜怎么办呢?比如有人说“我今年入关的时候,为了迷惑他们的识别系统,特意换上了黑框眼镜”,这样行得通吗?根据近年最新的研究[9],即使脸部有大面积遮挡(如下图),也能实现高精度的识别。但是这有个前提,就是说虽然每张图片都可以有所遮挡,但是人脸的每个部位必须在已有的数据中无遮挡的出现过至少一次。

关于高铁新建人脸识别系统的新闻中还提到,“作案后的犯罪分子,即使整容,也能够被识别”。很多人的第一反应是“这也太不可思议了吧?整容之后肉眼都未必认得出来”,这话只说对了一半。的确,整容之后的人脸与整容之前有了很大区别(见“李小璐被误认为范冰冰……是老外脸盲还是女星实在整得太像了? ” [10]),但是从另外一个角度上讲,相比于整容前后的区别,不同个体的脸部区别或许还要更大,而识别系统说到底是要找出相似度最大的人。依据脸部的骨架特点,整容是有限度的调整,而不是把一个人完全变成另一个人,只要不是真的把李小璐整成范冰冰的样子,算法还是有可能识别出来的。

如果上面的内容你都理解了,那么恭喜你已经对当今最先进的人脸识别技术或许有了大致的认识。人脸识别系统是否能准确无误地识别出逃犯,现在还不好说,特别是对于我们这样有着十几亿人口的国家,因为目前任何识别系统应该都没有处理/索引过如此大量的不同个体。高铁新安装的逃犯识别系统效果如何,就像铁路网上订票系统一样,还得通过实践的检验。

原文发布于微信公众号 - 人工智能头条(AI_Thinker)

原文发表时间:2015-04-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

学界 | 深度神经网络比拼人类视觉:信号弱时的物体识别差异

选自arXiv 机器之心编译 参与:Smith 近日,来自德国 Tubingen大学和Potsdam大学的研究人员们共同发布了一项研究成果——深度神经网络和人类...

29750
来自专栏新智元

Science重磅!用光速实现深度学习,跟GPU说再见

深度学习对算力的需求没有止境,但受制于能耗和物理极限,基于硅基的电子元件虽然现在还能支撑,但远处那堵几乎不可逾越的高墙已然显现。

26730
来自专栏量子位

大连理工大学在CVPR18大规模精细粒度物种识别竞赛中获得冠军

近日,引人瞩目的国际计算机视觉与模式识别大会CVPR 2018在美国盐湖城落下帷幕。在为期5天的会议中,除了有精彩的口头报告、墙报张贴以及企业展示之外,还有对极...

13220
来自专栏量化投资与机器学习

【必看】机器学习应用量化投资必须要踩的那些坑(系列55)

29150
来自专栏灯塔大数据

塔荐 | 从神经科学到计算机视觉:人类与计算机视觉五十年回顾

前 言 本文简单的介绍了神经网络近50年的发展历程,从1968年的Hubel和Wiesel开展的猫实验,一直到李飞飞教授等人的成果。从本质上讲解了人工神经网络...

34690
来自专栏新智元

从神经科学到计算机视觉:人类与计算机视觉五十年回顾

【新智元导读】本文简单的介绍了神经网络近50年的发展历程,从1968年的Hubel和Wiesel开展的猫实验,一直到李飞飞教授等人的成果。从本质上讲解了人工神经...

34950
来自专栏企鹅号快讯

不正之风!机器学习论文里都有哪四大投机取巧的写作手法?

AI 科技评论按:由于深度神经网络的成功,机器学习的整个领域也愈发热门、愈发茁壮。机器学习的繁荣以及 arXiv 助推下的知识和技巧快速更新当然是好事,不过这也...

29350
来自专栏人工智能LeadAI

最全常见算法工程师面试题目整理(二)

接着上回写的《最全常见算法工程师面试题目整理(一)》,继续填接下来的坑。 11boost算法的思路是什么样的?讲一下你对adaboost 和 gbdt的了解? ...

64160
来自专栏浮生的专栏

机器学习为更好的火灾现场安全

当勇敢的消防员身处险境试图抢救其他人和他们的财产的时候,他们的生命同样受到了威胁。在这篇文章中,我想分享我在AAIA第15届数据挖掘竞赛中的经验和获奖策略:给火...

25140
来自专栏PPV课数据科学社区

【译文】统计建模的24种应用(上)

在这里,我们讨论统计模型的一般应用情况。不管他们是否源自数据科学,运筹学,工程学,机器学习或统计学,如决策树,logistic回归,贝叶斯模型,马尔可夫模型,数...

34540

扫码关注云+社区

领取腾讯云代金券