深度学习在人脸识别中的应用 —— 优图祖母模型的「进化」

物联网

  图2:基于几何特征的人脸识别

  这样的朴素想法具有特征维数少的优点,所以不会遭遇维数灾难问题。然而由于稳定性差、区分能力弱和难以自动化等原因,这种做法很早就被抛弃。研究人员们发现,设计各种几何特征,折腾大半天还不如直接比较像素区域的差别准确,也就是所谓的模板匹配技术。然而,直接比对像素误差有个很容易想到的缺点,不同人脸区域对区分人的身份的重要性并不一样。事实上研究[2]表明眉毛和眼睛是区分人身份最重要的区域,其次是嘴巴,而大片脸颊区域所包含的身份信息是有限的。如图 3 所示,人类最难鉴别身份的是去掉眉毛和眼睛的人脸。

物联网

  图3:不同区域对人脸识别的重要性

  为了解决这样的问题,很长时间人脸识别都非常依赖于判别性特征的学习,最有代表性的工作莫过于 fisherfaces[3],所谓判别性信息就是那种独一无二特征,就好像图 4 中所示,成龙的大鼻子,姚晨的大嘴,李勇的招牌马脸,姚明的魔性笑容。总而言之,只要能找到你独特的「气质」就能更好的认识你。

物联网

  图4:具有判别性的人脸

  判别性特征的想法非常直观有效也取得了一定成功,但是由于人脸的像素特征非常不稳定,不同拍摄设备和拍摄场景、不同的光照条件和拍摄角度等都会造成相同人脸的像素差异巨大。想要在各种复杂影响因素下找到一张人脸稳定且独特的特征就很难了。为了解决这些问题,研究人员开始研究比简单像素值更加稳定的图像描述子。其中比较主流的一种描述子 Gabor 描述子借鉴了人类大脑的视觉皮层中对视觉信息进行预处理的过程。大脑皮层中对视觉信息加工处理的操作主要有两种,一种是在简单细胞中进行的线性操作,一种是在复杂细胞中进行的非线性汇聚。如图 5 所示的是 MIT 大脑和认知科学学院人工智能实验室的主任 Poggio 教授提出的一个叫 HMAX[4] 的类脑视觉信息处理流程:

物联网

  图5: HMAX 图像信息处理过程

  这其中的简单单元「S1 units」和「S2 units」进行了一种叫做 Gabor 小波滤波的操作。而复杂单元「C1 units」和「C2 units」进行了一种叫做 Max Pooling 的取局部区域最大值的操作。事实上除却直接使用事先设定的 Gabor 滤波器,HMAX 等价于一个四层的神经网络,实际上已经初步具备了现代深度模型的雏形。

  在深度学习诞生前的「浅」时代,人脸识别研究人员不断改进预处理过程、使用更好的描述子,提取更有判别性的特征,这些都在慢慢的提高计算机识别人脸的能力。然而直到深度学习横空出世前,「浅」时代的各种人脸识别方法,对人类本身所具有的人脸识别能力仍然望尘莫及。

  拥抱——人脸识别的「深」时代

  要赋予计算机完整的人脸识别能力,除了能认识人外其实还有几步非常重要的预处理过程。如图 6 所示,完整的人脸自动识别算法需要能自己从图像里找到哪有人脸,学界称之为人脸检测?哪里是眼睛鼻子嘴,学界称之为人脸特征点定位?最后才是提取前面说到的具有判别性的特征进行身份的识别,即狭义上的人脸识别。

物联网

  图6:完整的自动人脸识别流程

  在深度学习出现以前关于人脸检测、特征点定位和人脸识别这三个子任务的研究都是相对独立的展开的。从上个世纪 90 年代开始到 2010 年左右,经过不断的摸索,研究人员们对每个子任务都发现了一些比较有效的特征与方法的组合来解决问题如图 7 所示。然而由于研究人员需要根据每个子任务本身的特点设计不同的特征,选择不同的机器学习方法,因此技术的发展相对缓慢。

  从 2012 年左右,受深度学习在整个机器视觉领域迅猛发展的影响,人脸识别的「深」时代正式拉开序幕。短短的四年时间里,基于深度卷积神经网络的方法不断在这三个子任务中刷新人工智能算法的世界记录。人脸识别「浅」时代让人眼花缭乱的各种技术和方法仿佛一页之间成为历史。人脸识别研究人员,不需要在挖空心思的设计特征,也不需要担心后面需要什么样的学习算法。所有的经验的积累过程转换为了深度神经网路算法自动学习过程。这正式深度学习算法最大的优点:自动学习对特定任务最有用的特征!