人脸识别:人脑认知与计算机算法详解

视觉皮层是第一个被现代神经解剖学就定义的功能皮层区域,其解剖特征和功能特征都是高度的结构化的。同时,视觉皮层占有的皮层表面积/体积又很大,这客观上方便了视觉皮层的解剖结构和认知功能的研究。因此,不难理解地,视觉皮层和视觉功能是我们在神经科学方面研究最为深入、理解最为透彻的。

人脑的视觉信号传导通路,在进入大脑皮层之前是高度的结构化的、分工明确的。而且一般认为,视觉信息在进入大脑皮层前,人脑几乎被把它做任何实质意义上的处理,也不从中提取有用的信息。

人脸识别:人脑认知与计算机算法详解

视觉通路,视觉信息进入大脑皮层(Primary Visual Cortex) 前的情况

视觉信息一旦进入大脑皮层(从Primary Visual Cortex初级视觉皮层进入),就体现出其结构化的特征。视觉信息的空间位置跟初级视觉皮层的位置对应起来,总体上表现为空间相邻的位置对应的初级视觉皮层位置也相邻,这种拓扑结构的对应被称为视网膜拓扑映射(Retinotopy)。 信息经由初级视觉皮层处理之后,其发出方向就变得复杂起来,总体上分出两个主要的层次结构流:腹侧通路(Ventral Pathway)和背侧通路(Dorsal Pathway),前者的损伤导致人的物体识别功能受损,因此被也被称为What通路,后者的损失导致人的空间判别和视觉注意能力受损,因此也被称为Where通路。

人脸识别:人脑认知与计算机算法详解

What 通路和Where 通路

特别地,根据猕猴(Macaque Monkey)视皮层的解剖结果,人们重建了其各个视皮层之间的分级结构:

人脸识别:人脑认知与计算机算法详解

人脸识别:人脑认知与计算机算法详解

猕猴视觉皮层分级结构图

在比较低级的视觉皮层区域,还发现其中的神经元对特定的模式刺激放电频率增加,这种模式可能是物体的视角,也可能是熟悉物体的形状。这些发现为理解大脑物体识别的层次模式提供了越来越全面的信息,从而,我们逐渐理解了人脑物体识别的分级结构模型:

人脸识别:人脑认知与计算机算法详解

人脑物体识别的分层模型

从初级到更高级的视觉皮层,视觉信息逐级传递。人脑理解的内容越来越复杂化、抽象化,由“模式”变成具体的物,再到物的特性和物与物之间的关系。进入到初级视觉皮层的信号是非常的繁杂和全面的,显然地,人脑并不需要所有的这些信号,而是只需要提取其中的有用信号就可以了,否则会给大脑的视觉理解带来太大的压力,基于层次结构特征,人脑发展出了视觉编码压缩方式,把通过视觉通路传递过来的信号,跟自己的经验比对,比照经验中的常见图像模式,经过比对之后,找到最为匹配的模式(线、角、圆……;斑马线,转角……),并以该模式取代实际的事物。这就好比给视觉信号做了一次编码,以人脑的内禀信号取代实际信号对视觉图像做了极大的压缩,并为后续的快速处理做好了基础。另外,在整个层次模型的处理过程中,信息流在层级间几乎完全表现为“前馈”式 [7]。这为计算机模拟方法的可行性和快速性提供了基础。

上面提到的无疑是人脑的通用物体识别架构,基于这些知识设计了模拟大脑皮层结构的层次物体识别模型 ( Hierarchical Models of Object Recognition in/and Cortex, HMAX):

人脸识别:人脑认知与计算机算法详解

HMAX Model

可见这实际上是一种早期形式的深度神经网络,它的每一层也是需要根据具体的任务情况进行训练。

在做人脸识别训练方面,人脑认知与计算机算法的第一个不同在于,人类接受的人脸图像训练是多角度的、动态的,而目前计算机算法在训练之中使用的基本上是静态的图片。现有的图像训练数据库,无论是常用的一类公开数据集LFW, CASIA-WebFace, 还是Google和Facebook使用的闭源数据库,即便对同一个人有很多张不同时间和场景的图片,他们都只是截取了有限的角度。

人脸识别:人脑认知与计算机算法详解

典型人脸数据集图片

人类在要认识一个陌生人时,不免需要多观察几眼,特别是对于一个长的美貌/化妆过的人脸,由于更接近平均人脸,外在特征(external features: hair, face, outline)和内在特征(internal features: eyes, nose, mouth) 相对来说不明显,一般需要动态观察更久才能记住。

实验室条件下的受限环境刺激和训练证明,人类识别/记住一个陌生人脸,使用动态图像比使用静态图片更有优势:

人脸识别:人脑认知与计算机算法详解

静态人脸v.s动态人脸

人脸识别:人脑认知与计算机算法详解

静态人脸v.s动态人脸任务的反应时间,反应时间越短越好

不难想象的,动态人脸能提供来自更多角度的更多可供识别的信息,即使实验场景下,这些动态人脸提供的信息跟真实场景中的还有一定的差距,但是动态人脸刺激相比于静态人类刺激的优势在实验场景下可观测的。

在计算机算法方面,近年来随着深度学习的引入,主流人脸识别算法对训练图像的数量提出了越来越高的需求,动则达到数百万以上,Google 的FaceNet更是达到令人嗔目结舌的20亿数量级,但是不开放。传统学术界的实验室算法受限于使用公开数据集,为了达到更好的效果不得不另辟蹊径,在有限的图像上获取更多信息,也就是Data Augmentation。 最简单的Face Data Augmentation无疑是变换图像的左右,但是这种做法有可能已经改变了人脸的内在特征。需要权衡带来的好处(图像数量增加)与缺陷(部分特征可能被抵消)。另一类算法通过模拟人脸在其他视角的图像做Face Data Augmentation. 最初来源于人脸摆正(face frontalization)。

人脸识别:人脑认知与计算机算法详解

人脸摆正算法流程

人脸摆正中算法通过Face Landmark Detector处理目标图像和三维模型图像(二维化之后),得到一组对应的Landmark. 而二维化之后的三维模型上的Landmark({Xi, Yi})在三维模型中具有对应的坐标({Xi, Yi, Zi}). 据此可以估测相机参数,进行相机标定。从而可以模拟模型与目标图像一样的角度,反过来得出目标图像中像素在摆正之后的位置。

人脸识别:人脑认知与计算机算法详解

相机标定,得出图像坐标(二维)跟世界坐标(三维)之间的对应关系

人脸识别:人脑认知与计算机算法详解

通过相机标定,可以将图像坐标在不同视角之间变换

不难理解的,该套算法稍加变化,就可以使用一张人脸图片得出多个角度的人脸图片,即既可以用来做人脸摆正,也可以生成侧脸图像:

人脸识别:人脑认知与计算机算法详解

通过相机标定和3D模型模拟,生成其他视角的人脸图像

这种做法虽然没有增加投入到训练算法中的信息,但大大增加了算法的识别率并降低了误识率(FAR, False Acceptance Rate):

人脸识别:人脑认知与计算机算法详解

仅仅是通过现有图片生成多个角度(pose)的图片,然后投入训练算法,就能大大增加性能

当然,生成不同角度的图像更原本就有同一个场景的连续变化视角的图像(视频)对人脸识别来说还是有一些不同的。更为接近自然场景中人脑的人脸识别任务的,是视频中人脸图像的识别。但是目前由于受限于人脸视频的稀缺性(搜集一个人脸的视频比搜集其图片要繁琐的多,同时视频中的特征标定也是一个严重的问题),深度学习/深度神经网络在视频人脸图像的研究还却如。目前在这个领域使用的一般是基于模型的传统算法。视频中人脸的分辨率跟目前人脸图像数据及中的分辨率还有一定差距,同时视频图像的噪声更大,场景的复杂度好更高。因此视频中人脸识别跟静态图像中人类识别几乎是用的是完全不同的方法。在结合这两者,应用大量视频图像做人脸识别算法训练之前还得解决以上一系列的技术问题。


分享到:


相關文章: