Introduction
文章地址:From Facial Parts Responses to Face Detection- A Deep Learning Approach (ICCV 2015)
来自于香港中文大学汤晓鸥实验室做人脸检测的一篇文章,检测的结果简直丧心病狂啊,先贴一张图感受以下:
图1
正如图1中所示,这个人脸检测器对人脸的遮挡非常鲁棒,主要原因是借助了多个facial parts对人脸进行打分,然后得到最终的人脸检测结果.
系统主要包含了3个部分(统称为Faceness Net):
(1)根据attribute-aware深度网络生成人脸部件map图(partness map),如上图(b)中花花绿绿的颜色图,文章共使用了5个部件:hair,eye,nose,mouth,beard.
(2)通过part的结合计算人脸的score.部件与部件之间是有相对位置关系的,比如头发在眼睛上方,嘴巴在鼻子下方,因此利用部件的spatial arrangement可以计算face likeliness(楼主:如果人是倒立的怎么办??). 通过这个打分对原始的人脸proposal进行重排序.
(3)提纯人脸hypotheses
下面我们详细介绍这个网络.
Faceness Net
1. 生成partness map
图2
图2主要显示了生成partness map的总体流程。这里作者一共训练了5个CNN model, 分别是头发,眼睛,鼻子,嘴巴和胡子这5个模型。CNN的具体结构如下图所示,这个网络是全卷积的神经网络.
图3
以hair CNN的训练为例,把头发区域的每个像素标记为正样本,非头发区域的像素标记成负样本,让这个网络来做像素的预测,直接预测出label map。各个facial part所包含的训练数据有以下属性(Table 1),比如头发就有9种,黑发/金发/甚至光头都包含进去了,因此学习是一个多分类的问题,比如说头发要把他分为以下9类中的一种, 优化的目标函数 cross-entropy loss =
∑Ni=1