
3D傳感器所拍摄到的信息比传统的2D鏡頭(仅捕捉立体环境中某个视角)包含更丰富的3D几何信息。在人脸識別应用机会高度发展的时候,3D傳感器自然被赋予相当期待来精进人脸識別。
在人脸識別应用上,目前常用的3D傳感器包括使用双摄影机推估深度的立体鏡頭,利用红外线飞行时间侦测物体远近的ToF鏡頭、或是打出特殊编码画面的结构光等。最鲜明的例子为iPhone上的人脸識別功能,可以識別数个使用者(实为较简易的人脸验证工作),但是个中技术细节以及场域限制等,并未完全了解。在3D人脸識別中,究竟何种作法可以通用在一般3D傳感器呢?特别是近年3D点云的技术突破,如何顺势带来更多人脸应用的自由度?
3D人脸識別最直接的优点即在低亮度的环境中,依然可以使用点云来表式立体信息,进而識別人脸,甚至提供多个角度的識別效果,无需正对镜头;或是利用深度来判断是否为实际人脸,避免使用相片造假。
在公开數據中,尚未显明何为最佳的識別方法,我们判断是因为3D人脸數據取得不易,无法进行大规模(公开)研究。但在这几年的学术研究上(从学界或是工业界所公开的论文中)我们发现,绝大部分为2.5D的識別,并未真实释放3D丰富的几何信息。也就是单单利用深度图(depth map,即画面物件位置相对于鏡頭的距离),或是结合既有的RGB三个频道,沿用即有的2D卷积运算技术。2.5D做法有先天上的限制,无法真正释放3D几何信息的技术能量。
在过去的发展中,有人尝试使用3D的曲率或是利用2.5D信息来侦测重要的脸部特征位置。比较有趣的是将人脸与3D图学模型结合之后,可以自动产生各种表情、角度的人脸进而优化训练數據库,或是将不同人的3D人脸,组合为新的人脸进而创造出更多的人脸训练數據。或是针对低价位、点云数目较少的3D傳感器(通常为移動或终端设计),拍摄多张画面,接著对齐这些稀疏3D人脸点云,融合为较丰富的点云,进而改进識別效果。
在学术上目前尚未显明最佳做法,但是绝对有几个技术深耕的方向。比如说,为了达到最佳的3D人脸識別,至少需要多少的点云个数,取得成本以及效能上的平衡?虽然3D点云的计算可以利用先前提过的点云(point-based)或是立体像素(voxel-based)演算法,但是如何设计才是最有效呢?特别是接下来的識別应用许多得再终端落地,低耗能的运算似乎成了必要的条件。在近来的3D点云计算研究中,我们发现可以提供相当的抗旋转的特性,那对于3D人脸識別也有这样的特质吗? 还是依旧依循过去的2D人脸識別,得先找到眼、鼻等重要位置再校正到固定位置呢?
目前大部分的研究都是使用2.5D信息,使用3D点云在人脸識別上可以真正提升多少識別率?当然,最关键的是3D人脸識別的成本函数设计(cost functions),这与2D的識別情境不尽相同。如前所示,3D數據收集标注成本想对耗时困难,在數據有限的情形下,有没有机会利用大量的2D人脸影像来辅助3D人脸識別?类似的案例在其他3D侦测、语意切割上都看到不错的成效。
参考这几年2D人脸識別发展的成功轨迹:包括影像卷积網絡的提升,大量的训练數據(因为容易取得),以及开发适合人脸識別的成本函数等,产业界绝对也有机会善用极具潜力的3D视觉傳感器来精进人脸識別。
延伸阅读:人脸識別—从理论到产品