为什么香港中文大学研发的人脸识别算法能够击败人类?

这里的击败是全面超越,包括之前某些不如人类的特殊情况下: > The best systems can beat human performance …
关注者
1,838
被浏览
112,789

18 个回答

@大碗

@笨猫猪

提到的清华2006年那个系统的完成人是我同实验室的直系师兄。这个系统09年以后一直是我负责改进。还参加了最新的frvt2012。此外题主说的那篇paper我上周组会刚讲过。因此自认为有点发言权。

先给出观点,如果数据没有注水的话,这个绝对是突破性的成果。lfw上超过人脸意味着在人脸识别80%的应用环境下机器的性能可以超过人脸。而06年的结果只意味着在身份证比对、小型办公场所签到等极少应用下机器的性能超过人脸。

1.2006年全面超过人脸时的条件是实验室内部拍摄条件、正面姿态、正面光照。这种条件下的人脸识别错误率的进展大约是每3年下降10倍。FRVT2012中期结果中最好的单位(不出意外应该是日本的NEC公司)的错误率已经达到了我们06年系统的1%左右。而我手上的系统相比06年大约提升了十几倍,目前在中期结果中排名6-7名。

2.lfw数据库直接是从雅虎网上抓的照片。难度在业界属于顶尖。该库09年公布后至今没有难度更大的静态照片库出现。难度相当但数据量更大的库倒是有两三个。我们06年的系统跑lfw也就70+的水平。而我们实验室的最高水平(也是国内除face++外的最高水平)大约是92左右。大概相当于2012年底的state-of-the-art。

3.2014年的三个逆天结果,deepface的97.25%、face++的97.27%、gaussianface的98.52%,前两者都用了deep learning。第一个训练数据400万。第二个算法细节不明,但deeplearning向来吃样本,想来训练库也是百万量级。唯有gaussianface的训练库仅2万余。

4.arxiv和CVPR等顶会完全不矛盾。先发上来只是为了不让别人抢先。估计未来的顶刊顶会上很快会出现这个结果。

5.算法细节太过技术,难以在这里深入浅出,就不多介绍了。只提一篇paper。Blei的latent dirichlet allocation,2003年的jmlr,引用量近万。本文对人脸的贡献方式大概相当于lda对文档分类的贡献方式,懂行的人自然知道这句话的分量。当然lda珠玉在前,deep learning风头正劲,所以真正的历史地位,本文自然不可能赶上lda。但一篇正常pami的水准肯定是有的。

=============================5月21日更新================================

居然上了知乎日报好激动~那就再说一下我对GaussianFace的理解了。只说我认为最有突破性的地方吧。具体推导过程一来论文中有,二来比较复杂,三来我自己还没重复实验不确保细节理解都正确,这里就从略了。

1.解决的问题是模式认证问题,就是说输入两个向量x_1x_2(可以是人脸照片或别的),输出相似度s(x_1,x_2)表示这两个向量属于同一类的概率。(人脸识别中就是两张照片是同一个人的概率)。训练集有一堆向量,有些属于同一类,有些不属于同一类。目标就是根据训练集来猜这个函数s(x_1,x_2).

2.GaussianFace以前成功的算法分两类:metric learning和bayesian framework。它们都是假设这个函数具有一个参数的形式s_\theta (x_1,x_2)。然后利用训练集估计出一个最好的\theta

2.1 metric learning中s_\theta (x_1,x_2)是显式的,比如是二次型的形式,\theta就是中间的那个矩阵。

2.2 bayesian frameworks_\theta (x_1,x_2)是隐式的,认为训练、测试样本都有同一个随机model生成,\theta代表这个model的各种参数,由训练集根据最大似然/最大后验/beyesian方法估计得到。然后在给定model的情况下推导s_\theta (x_1,x_2)的最优表达式。

3.这两类问题都有一个硬伤:训练集样本和测试集样本分布情况不同(比如拍摄条件不同、人种不同等等)时,由训练集估计的\theta对测试集不适用,这样这些训练集就用不上了,只会添乱。

4.GaussianFace声称的牛逼之处在于,用他们的算法,训练集只需少量和测试集分布一致的样本+大量其他样本,算法就能从这些其他样本中获益。

5.他们的关键在于,不认为s(x_1,x_2)具有参数形式,而是认为它是一个随机函数。

6.一个函数,在不严谨的说法下,可以看成一个无穷维的向量。

7.一个有限维随机向量可以假设符合多维正态分布-即gaussian分布。类似的,一个无穷维向量,或一个函数,可以假设服从无穷维正态分布-即gaussian过程。

8.决定gaussian分布的参数为均值\mu和协方差矩阵\Sigma。同样,决定gaussian过程的参数为均值函数\mu(\cdot )和协方差函数\Sigma(\cdot,\cdot)。文章中假设\mu(\cdot)\equiv 0,因此参数只剩协方差函数。

9.通过训练集估计\Sigma(\cdot,\cdot)的算法是个优化过程,定性的说,就是尽量同时让1.那个和测试集分布一致的少量训练集的出现概率尽可能高。2.其他训练集对这个训练集提供的信息尽可能多。整个优化过程相当麻烦,我也不确保细节都理解正确。总之这个\Sigma(\cdot,\cdot)是可以估计出结果的。

10.有了\Sigma(\cdot,\cdot)s(x_1,x_2)就有了明确的先验分布,接着就用普通Bayesian方法,给定测试样本时可以将不相关的变量都积分消除,得到最终的相似度。这一步用了些近似处理,细节不表。

11.GaussianFace相比与之前算法最大的区别在于,认为相似度函数是随机的而非确定的。这样从模型上认可了不同样本可能具有不同的相似度函数。因此从原理上克服了第3点提到的问题。

12.缺点在于,\Sigma(\cdot,\cdot)的估计只能通过kernel的形式,空间复杂度为样本数的平方,这个限定了在一般实验室中,训练样本数只能限制在10^4量级。

谢邀。

文章细节

@梁亦聪

@邹哥亮

有分析了。

重点是强调了训练的generalization,通俗来讲就是在A数据库上训练的模型,在B数据库上测试毫无压力。关于这个“训练的问题”有篇很有意思的论文:

Unbiased Look at Dataset Bias 之前有人讨论过:

转:卖萌的大牛你桑不起啊 ——记CVPR2011一篇极品文章

算法的细节以后看了再评论。我主要想答“计算机超过人类”这点。

其实个人感觉这个“outperforms humans for the first time” 有点标题党。

实际上在2006年的大规模人脸测试

Face Recognition Vendor Test 2006

上,来自清华丁晓青老师研究组的TS2-NORM算法就已经超过人的识别率了。测试报告参见:

nist.gov/customcf/get_p

如图所示,曲线越往左下角靠表示性能越好。黑色的是人类,可以看出有两个算法(V-NORM,ST-NORM)已经很接近人类的性能,而TS2-NORM就已经比人类好了。

这个实验采用的是80对人脸图像,分别是在可控光照和不可控光照下拍摄的,人需要在两秒之内判断每一对人脸是否来自同一个人(给出1到5的打分,1表示十分确定是同一个人,5表示十分确定不是同一个人)。一共有26个参与者参加了实验。

需要注意的是,这些图片仅包含光照变化,而且都是高清的。本题报道的论文是在LFW(

vis-www.cs.umass.edu/lf

)这个库上测试的。这个库是“非约束人脸识别”的一个最著名的标准库。库里的图像参见

vis-www.cs.umass.edu/lf

,这些图像是网络上收集的,包含了很大的变量,例如光照、姿势、表情、遮挡、分辨率。可以说这个实验比2006那个要难很多

但是,题主问的这篇也不是“第一篇”声称自己超过人类的。之前Facebook的Deepface也声称自己超过了人类:

facebook.com/publicatio

我个人感觉这些算法声称“超过人类”,都有点为了夺眼球的意思(但是引发大众关注、讨论是很好的)。从LFW的结果页面来看:

vis-www.cs.umass.edu/lf

人类在LFW库上最好的识别结果是99.2%,题主提到的论文对比的是97.53%那个结果。两者不同是因为采用的图像裁剪、对齐方法不同(仅仅裁剪出含人脸的部分)。这个对齐方法对识别的影响是很大的。

那么回到问题上来,现在的人脸识别算法是否已经超越了人类呢

我个人觉得还没有那么乐观。

正如题目这篇论文 Surpassing Human-Level Face Verification Performance on LFW with GaussianFace

arxiv.org/abs/1404.3840

的讨论部分提到的,人脸其实比较善于识别“熟悉人脸”,比如一个人可以在很昏暗的环境下快速认出自己的朋友、可以从人群里快速找到自己的家人……2006年的那个测试和LFW上的这些测试,对于人类来讲,都是“不熟悉的人脸”,其实是很不公平的。有点像用计算机的长处去比了人类的短处

自动人脸识别技术发展了40多年,False reject rate从1993年的79%降到2010年的0.3%(false accept rate=0.1%),LFW库上的算法识别率从2007年的60%升到2014年的97~98%,可见是取得了巨大进步的。

现在人类到底是如何识别人脸的,机制还不是很清楚。但是,总体来说人脸识别算法还是在一步一步接近人类识别的

----- 补充回答 ----------

在这里要提供一些 真正的人类识别人脸 的能力的资料!!!

关于人类对人脸识别的一些有趣现象,大家可以看这篇科普性的文章:Face Recognition by Humans: Nineteen Results All Computer Vision Researchers Should Know About

IEEE Xplore Abstract

人对于“熟悉”人脸的识别能力可以看一个例子(图来自于上面这篇文章):

即便是在分辨率如此低的情况下,要认出4是克林顿,10是查尔斯王子 也不是很难吧?

这篇综述有讲关于“熟悉人脸”识别的研究: Familiar and unfamiliar face recognition: A review

http://www.tandfonline.com/doi/pdf/10.1080/09658210902976969

另外,总是有人提到自己是脸盲,可以到这里测试一下自己认脸的能力:

testmybrain.org/tests/s

严重的脸盲是连自己的脸也认不出的,据一个严重的患者说每次在公共卫生间大家排着队等时,从镜子里看到很多人脸,不知道哪一张是自己的,需要先做一个鬼脸才知道哪个是自己的人脸……

与此相对的,是一些 超级认脸者,就是从来不会忘记曾经见过的人脸!!!(这样其实也很痛苦吧……) 英国的Channel 4曾经做过一档节目,在请了一些这样的超级认脸者来PK,在英国一个火车站,找了一些志愿者穿上一模一样的套头衫,戴上套头然后混在火车站人群里面,请这些认脸者来观察;观察结束后,这些志愿者混入一些没有出现在火车站的志愿者中,脱去套头衫,然后请认脸者把他们挑出来~

hiddentalent.channel4.com