https://arxiv.org/pdf/1706.09876.pdf
论文中通过两步来实现多尺度的人脸检测
- Face Scale Estimation
- Single Scale Detection
首先,估计出图片中存在的人脸的尺度,并且计算出每个尺度的置信度,再选取置信度高的,在这些特定的尺度上对人脸进行检测。这样的方法不用在各个尺度下对人脸进行检测,因此在速度上会比较快。
1.Scale Proposal Network(SPN)
第一步的尺度估计用的是一个FCN全卷积网络(可以参考http://blog.csdn.net/fate_fjh/article/details/53446630),网络输出的是一个尺度响应的heatmap(of size w × h × z),在网络的最后是一个global max-pooling layer,通过pooling输出一个1 × 1 × n的直方图向量。SPN可以忽略input size and face location,产生一个固定维度的尺度直方图,从而得到每个尺度对应的confidence。输出数据的长度就等于直方图bins的个数,并且直方图经过sigmoid函数
归一化到[0, 1],用来表示probability.
2.Scaling strategy generation
在上一步中得到的直方图向量可能会有噪声,所以接下来要利用滑动平均滤波来进行处理,最后在利用非极大值抑制算法来寻找极大值。滑动的窗口大小等于检测器覆盖范围的一半。
3.Single-scale RPN
这一部分是人脸检测,用的是Region Proposal Network(RPN)(参考论文:https://arxiv.org/pdf/1506.01497.pdf),只使用一种anchor,并且每次只检测一张脸,所以叫Single-scale RPN.
4.Implementation details
1)global supervision
Loss function:
2)ground truth preparation
人工标注的五官具有一定的主观性,因此将标注的左右眼、鼻子、嘴巴左右端坐标取平均,得到标识框的中心坐标和边长。
如果用0,1来标识是否为人脸,噪声比较多。在比较大的间隔上使用最近邻算法会使SPN的表现drop rapidly甚至是无法收敛。
对于每一个face size s,定义一个高斯函数
3)Receptive field problem
跟RPN不同的是,感受野的限制不会使得网络无法正确检测出较大的目标,因为一张很大的脸的部分特征已近足够估计出完整的脸的大小。