本篇主题: 静态人脸与动态人脸
在做人脸识别训练方面,人脑认知与计算机算法的第一个不同在于,人类接受的 人脸图像训练是多角度的、动态的 ,而目前 计算机算法在训练之中使用的基本上是静态的图片 [1]。现有的图像训练数据库,无论是常用的一类公开数据集LFW, CASIA-WebFace, 还是Google和Facebook使用的闭源数据库,即便对同一个人有很多张不同时间和场景的图片,他们都只是截取了有限的角度。
人类在要认识一个陌生人时,不免需要多观察几眼,特别是对于一个长的美貌/化妆过的人脸,由于更接近平均人脸,外在特征(external features: hair, face, outline)和内在特征(internal fe5atures: eyes, nose, mouth) [2] 相对来说不明显,一般需要动态观察更久才能记住。
实验室条件下的受限环境刺激和训练证明,人类识别/记住一个陌生人脸,使用动态图像比使用静态图片更有优势 [3, 4]:
不难想象的,动态人脸能提供来自更多角度的更多可供识别的信息,即使实验场景下,这些动态人脸提供的信息跟真实场景中的还有一定的差距,但是动态人脸刺激相比于静态人类刺激的优势在实验场景下可观测的。
在计算机算法方面,近年来随着深度学习的引入,主流人脸识别算法对训练图像的数量提出了越来越高的需求,动则达到数百万以上,Google 的FaceNet更是达到令人嗔目结舌的20亿数量级[5, 6],但是不开放。传统学术界的实验室算法受限于使用公开数据集,为了达到更好的效果不得不另辟蹊径,在有限的图像上获取更多信息,也就是Data Augmentation [7]. 最简单的Face Data Augmentation无疑是变换图像的左右,但是这种做法有可能已经改变了人脸的内在特征。需要权衡带来的好处(图像数量增加)与缺陷(部分特征可能被抵消)。另一类算法通过模拟人脸在其他视角的图像做Face Data Augmentation. 最初来源于人脸摆正(face frontalization)[8]。
[8] 中算法通过Face Landmark Detector处理目标图像和三维模型图像(二维化之后),得到一组对应的Landmark. 而二维化之后的三维模型上的Landmark({Xi, Yi})在三维模型中具有对应的坐标({Xi, Yi, Zi}). 据此可以估测相机参数,进行相机标定 [9]。从而可以模拟模型与目标图像一样的角度,反过来得出目标图像中像素在摆正之后的位置。
不难理解的,该套算法稍加变化,就可以使用一张人脸图片得出多个角度的人脸图片,即既可以用来做人脸摆正,也可以生成侧脸图像 [10, 11]:
这种做法虽然没有增加投入到训练算法中的信息,但大大增加了算法的识别率并降低了误识率(FAR, False Acceptance Rate):
当然,生成不同角度的图像更原本就有同一个场景的连续变化视角的图像(视频)对人脸识别来说还是有一些不同的。更为接近自然场景中人脑的人脸识别任务的,是视频中人脸图像的识别。但是目前由于受限于人脸视频的稀缺性(搜集一个人脸的视频比搜集其图片要繁琐的多,同时视频中的特征标定也是一个严重的问题),深度学习/深度神经网络在视频人脸图像的研究还却如。目前在这个领域使用的一般是基于模型的传统算法[12-14]。视频中人脸的分辨率跟目前人脸图像数据及中的分辨率还有一定差距,同时视频图像的噪声更大,场景的复杂度好更高。因此视频中人脸识别跟静态图像中人类识别几乎是用的是完全不同的方法。在结合这两者,应用大量视频图像做人脸识别算法训练之前还得解决以上一系列的技术问题。