共计 5617 个字符,预计需要花费 15 分钟才能阅读完成。
编者按:这是一个看脸的世界,尤其在这个刷脸就能够影响银行卡余额的时代,如何准确地看脸已经成为关系到民生大计的重大问题。二十年来专注于人脸的中科院计算所研究员、中科视拓董事长兼CTO山世光博士,将带着大家从技术和应用两个层面,回顾人脸检测与识别领域一年来的进展。大讲堂特别在文末提供文中提到所有文章的下载连接。
过去一年与以往几年相比,在方法和技术层面的一个核心趋势是:人脸识别相关技术已经全面深度化。相比其他视觉或机器学习任务,人脸识别的特殊性远没有我们之前认为的大,所以我认为过去一年特异于人脸识别的新方法和新技术并不是特别多。但是,在应用方面,人脸识别正可谓“花月正春风”,甚至可以说它引领了计算机视觉的落地应用,不过后面会提到要谨防倒春寒。
我们知道,一套全自动的人脸识别系统大概包括三个不同的步骤:1.人脸检测,即从画面中框出图像中出现的人脸;2.特征点定位,即标记出人脸上的眼睛、鼻子、嘴等关键点;
3.狭义的人脸识别,即完成输入人脸与系统已见过、记忆过的人脸的比对。
在这里,我先总体上概括一下这三个步骤上的年度进展:
1. 人脸检测
在人脸检测方面,目前主流的方法是通用目标检测中的R-CNN等这类方法,Cascade CNN则是比较特异于人脸检测的方法,它将传统的滑动窗口方法与深度学习相结合,也取得了不亚于R-CNN系列方法的性能。人脸检测曾被认为是一个已经解决的问题,事实上并不是,在人脸分辨率极低、姿态很大、背光、偏光、极低照度等恶劣光照条件下,还是会有很多漏检。有鉴于此,去年出现了一个新的人脸检测Benchmark,应该会对人脸检测领域产生重要促进作用。2. 特征点定位
对于第二个步骤,即特征点定位,我们感觉去年的一个趋势是从过去流行的基于深度特征学习的Cascaded Shape Regression策略,到引入RNN这样的循环神经网络策略,并试图解决大姿态条件下的特征点定位问题。3. 狭义人脸识别
对于第三个步骤,即狭义的人脸识别或人脸比对,个人认为技术上并没有太多新的进步,主流的方法仍然是采用各种深度卷积神经网络(DCNN),特别是ResNet,来学习更有判别力的特征。实战中性能的提升主要还是来自越来越多的人脸数据,不同场景下的人脸识别技术均取得了很大的进步,并在快速进入市场。当然,这个领域需要新的benchmark来度量技术的本质进步情况。
原有数据集从人脸检测的角度来看,在过去的几年里,学术界大多数还是在用FDDB做测试用的benchmark。目前,在这个共有2845幅图像、5171个人脸的数据集上,在共输出100个误检的情况下,用Fast R-CNN可以轻松取得90%以上的检测率或称召回率。工业界有些报道号称已经做到了95%,所以它基本上趋于饱和了。当然,值得特别注意的是,这个检测率在不少时候是有歧义的,有些团队报告的是10折平均的结果,有些报告的是一次性全部检测的结果,这两个结果是不可比的:10折平均的结果可能会偏高1-3个百分点。
Wider Face数据集2016年人脸检测领域的一个重要变化是出现了一个新的Benchmark:香港中文大学贡献了一个规模更大、数据变化更丰富的新数据集——Wider Face。其中包括1.6万测试图像,共19.4万个标注人脸。更重要的是,如上图所示,数据集中的人脸有大小、姿态、光照、遮挡以及表情等各方面非常复杂的变化。特别的,其中50%的人脸高度小于50个像素,甚至大量高度小于20个像素的Tiny face。
Wider Face将测试图像分为“难”、“中”、“易”三种不同的难度等级。从目前State of the art方法的检测曲线不难看出,在最“难”的测试子集上,目前只能做到80%的检测率和80%的精度,对检测任务而言,这是相当低的结果了。可见,在该数据集上,现有方法的性能在“难”等级下还有非常长的路可以走。
小人脸检测:Tiny Face针对小人脸检测问题,去年出现了TinyFace方法,该方法希望能够找到更小的人脸。在过去,典型人脸检测系统能够检测到的最小人脸是20*20像素,而在很多现实应用中,最小的人脸可能是16*16,甚至是10*10这样的级别,TinyFace方法试图探究如何找到这些非常小的人脸。其实,该方法并没有太多技术创新,它本质上采用了图像金字塔把小脸变大,再进行人脸检测,同时引入了大容量的网络如ResNet101,以及多尺度融合等技术,充分利用更多的上下文信息,并在Wider Face的Hard子集上取得了82.3%的精度,大大超过了之前的其他方法。但值得注意的是,高精度的代价是检测速度非常慢!
从面部特征点定位的角度看,过去一年的主要技术路线仍然是把特征定位问题转化为瀑布式的形状回归问题进行求解。和过去几年一样,其中仍然是采用深度学习的特征,并用递归方式求解回归问题。
2016年,该领域的一个有趣进展是引入了循环神经网络RNN,对Cascaded Shape Regression中stage-by-stage refine的策略进行建模,特别是通过把上一级的隐层输出作为下一层的输入等手段,在300W这样的数据集上面取得了比较大的进步。
大姿态人脸特征点定位2016年另一个值得关注的面部特征点定位方法是密西根州立大学的Xiaoming Liu团队的工作。他们发表在CVPR2016上的工作特别针对大姿态人脸的特征点定位问题,采用深度改进后的3DMM方法对人脸进行三维建模,然后将建模后人脸的三维信息与二维图像相结合,再做形状回归。在大姿态人脸上,取得了显著优于已有方法的定位精度。
狭义的人脸识别方面的进展1. 什么是狭义人脸识别所谓的狭义人脸识别指的是:首先采用前述的人脸检测和特征定位对所有人脸进行对齐,然后裁剪出眉眼鼻嘴形成的核心人脸区域,之后从中提取人脸特征进行存储或与已知人脸的特征进行相似度计算的过程。
2. 核心技术
里面的核心是“如何提取具有区分能力的特征”,2012年以来,采用深度卷积神经网络进行特征学习已经成为人脸识别领域的标准技术。过去一年来,这方面主要的进步还是来自更大规模实战数据以及残差卷积神经网络ResNet的应用。
3. 数据增广
此外,对于一些难以获取大量数据的场景,研究人员也在想法设法采用半自动或自动的方法“增广”数据集,包括基于三维人脸模型合成人脸或者采用GAN这类方法生成数据,这里的3D人脸模型既可能是采用专用设备采集的,也可能是采用3D MM等方法自动重建的。值得注意的是,尽管GAN很火热,也能合成出一些视觉效果不错的人脸图像,但其合成的增广人脸数据是否能够用来增广特定人的数据并提高特征学习的效果,目前尚不得而知。此外,面向移动终端和嵌入式应用等实际应用需求,也有大量工作是进行模型压缩和计算加速的。
表情识别接下来简单说说表情识别。感觉表情识别一直不温不火,进步并不明显,这其中的核心障碍我认为还是来自数据收集的困难。从早期的Posed Expression,到后来的自发表情(spontaneous expression)数据,大量真实自然表情数据的收集都非常不容易。不过,尽管表情数据集的规模相比人脸识别的数据规模小得多,深度学习还是快速渗透进来,并已经在7类基本表情识别和几十个面部动作单元(AU)的检测方面均取得了不小的进步。如何利用较小规模的标注表情数据集进行更加鲁棒的表情识别是非常值得关注的!
EmotioNet数据集2016年出现了一个包含百万图像的数据集——EmotioNet 。在该数据集上,可以采用深度学习这类方法做更多表情强度的估计和动作单元强度的估计。不过,需要特别注意的是,尽管这个表情数据集规模非常大,但它并不是完全由手工标注,而是通过半自动的方式标注的,所以可能存在很多噪声。如何利用好这样的数据也是值得关注的。
“Data is king!Math is Queen?”最后介绍一下工业界一年来的技术和应用进展情况。我想工业界已经越来越深刻的体会到了“Data is king!”这个著名论断在深度学习时代的正确性。甚至于有人开始怀疑:“Math is Queen”是否还正确。从学术界的观点来说,Math的重要性是显然的,也是未来技术突破的基石,但工业界确实目前更多的在享受着大数据带来的红利。
过去一两年,与人脸识别核心技术创新的乏善可陈相比,人脸识别的应用进展切实进入了“高铁”时代!我们知道,人脸识别有很多应用场景,不同场景的成熟度差异很大。
1. 第一种场景,1:1 的人证合一验证系统。典型的应用是:刷身份证读取卡内照片,将其与现场采集的用户人脸去做比对,看是否身份证的合法持有人。这个任务在三四年前大多数人脸识别专家还认为几乎是不可能完成的任务,但就在最近一两年,通过上万甚至几十万人此类应用数据的训练,在被识别人配合的情况下,最好的系统已经可以在0.01%的误识率时达到95%以上的正确验证率。也就是说,一万个人来冒充某个人A,只有一个可以冒充成功,而A本人在95%的情况下可以被正确识别出来。如果允许误识率更高一些,比如到0.1%,识别率甚至可以进一步提高到99%以上(对配合用户)。这种场景还是1:1验证中最有挑战性的:因为身份证卡内照片只有102*126像素,而且被压缩成了1K字节存储在身份证内,而且其中人脸已经有多年的老化。
2. 第二种场景,1:N静态照片比对系统。典型应用场景是公安人员对不明身份嫌疑人照片进行公安大库照片比对,以确定其身份。这种应用甚至在几年前就已经基本成熟,当N为千万甚至数亿量级条件下,首选识别率可以做到90%或更高,需要注意的是,区别于后面要提到的1:N+1场景,这类1:N场景不需要设置拒识率。这方面,我们的人脸识别技术在几年前就已经被合作伙伴上海银晨科技产业化,应用于护照人脸和多个省公安厅的大库比对中,并取得了相当多的实战成功案例。就在最近,学术界也出现了大规模人脸识别测试库MegaFace,其中人脸数量达到了100万规模,最好的系统目前首选识别率能够做到83.29%(注:2017年4月结果),是我的一个博士李绍欣在腾讯优图完成的。MegaFace主要是生活照或新闻照,所以难度要更大一些。
3. 第三种场景是1:N+1动态人脸识别场景。区别于前面的1:N场景,这类场景是需要拒识非目标人的,所以是N+1。这种场景实际上还可以细分为三类:目标人配合场景(比如无卡考勤或门禁),目标人不配合场景(比如黑名单卡口人脸布控),以及处于二者之间的、被识别人既不配合也不刻意回避的场景(比如VIP识别系统)。不妨分别称之为A场景,C场景和B场景。4. 三类场景的技术成熟度差异
这三类场景的技术成熟度差别很大:在N等于10000人、误识率不高于1%时,A场景识别率可以做到98%以上,B场景可以做到70%~90%,C场景恐怕只能做到80%以下,某些条件下甚至可能低的不忍直视。需要特别强调的是,这里误识率1%看起来有点高,但在N等于1万人时,大概相当于1:1场景下的百万分之一的误识率,实际上已经非常有挑战了。
此外,年末岁初,百度的人脸识别系统在《最强大脑》上也着实火了一把,在老化人脸识别场景下超过了人类的《最强大脑》,这确实也代表了人脸识别发展水平的一个侧面。据了解,百度人脸识别团队为此收集了大量类似毕业照场景的人脸进行训练。在基于大数据的深度学习面前,也许这个问题并没有想象的那么难。我们曾找了几个类似的例子进行测试,发现即使是直接用没有刻意对这种场景训练的Seeta企业版人脸识别系统,也可以把要找的人放在前几位。
近年来人脸识别的进步是有目共睹的,但人脸识别远不是一个已经解决了的问题,它还存在如下一些问题:1. 在开放环境下,如何确保识别的鲁棒性的问题例如,即使目前最好的系统,恐怕也还做不到在家庭环境下,让一个矮小的机器人随时随地准确地识别出一个家庭的5-6个成员,这涉及到视角、光照、距离、遮挡等等诸多因素带来的鲁棒性问题。
2. 人脸防骗技术
这是一场魔高一尺、道高一丈的博弈“游戏”,风险确实是存在的,尽管可能并没有央视报道的那么夸张。
3. 黑名单动态布控系统
对于人脸识别最大的实战应用场景,即黑名单动态布控系统,也就是前面所说的3C场景,目前N等于1万人,错误接收率等于1%,条件较好的时候首选识别率可以做到80%左右。但实际需求是在开放监控场景下,N等于100万人,误识率要求低于0.01%,甚至要对各种试图逃避识别的目标人达到首选识别率90%以上——这是极具挑战的任务,难度比现在能做到的要高4~5个数量级。是否能在两三年内做到我个人持谨慎的怀疑态度,这个过程中工业界需要保持冷静,避免因过度承诺而失去用户信任,带来人脸识别应用的“倒春寒”。
简单总结一下:1. 学术界的挑战从学术界来讲,人脸识别研究已经进入了一个“无所适从”的历史阶段,我们希望不要把我们自己从码农变成数工,但事实上新方法能带来的增益短期内难以抗衡工业界用大数据带来的性能增益,甚至导致了工业界技术上的“领先”,这一点大家去看LFW和FDDB之类竞赛的结果就可以明显地看出这个趋势。
2. 学术界的机会
而因为商业原因,学术界对工业界的实际进展难以把控。当然,学术界的机会恰恰在工业界不愿意关注的地方,比如在数据少甚至没有标注数据的情况下,如何可以仍然有效的学习模型?在有数据但数据脏乱差的情况下如何鲁棒的训练模型?
总之,人脸识别作为计算机视觉领域最落地的技术之一,是CV技术应用的排头兵,确实已经引爆了众多用户对计算机视觉应用的浓厚兴趣,这或许是更值得我们欣喜的。
转载自https://mp.weixin.qq.com/s?__biz=MzI1NTE4NTUwOQ==&mid=2650326590&idx=1&sn=c195e063bc4bcd60edb6b7a83a751067
666
@gegey 图片好像挂了,我自己都看不到,晚上回去修复下