对图像进行多尺度的resize,构成图像金字塔,顶端金字塔最小应该大于12 * 12。这样网络的输入尺寸虽然固定,但是可以处理不同尺寸的人脸。
由于网络同时执行人脸检测和对齐,因此在这里我们在训练过程中使用四种不同的数据类型:
在人脸分类任务中使用使用positives & negatives; 在候选框bbox预测任务中使用positives & partface; 在人脸landmark预测任务中使用landmarkfaces
得到5个通道的特征图:第一个通道代表置信度:凡是大于0.7的留下来然后。反算回去:IDX(特征图的索引)*步长=进入P网络图的尺寸,然后除以原图的比例,得到建议框(为正方形),另外四个通道为位置的偏移:XX * / W = X关(偏移)得到原框X.然后通过非大值抑制,将多余的框去掉。
由于得到的原框大小可能为长方形,所以需要PIL等工具在原图上接一个正方形,然后在等比例缩放,得到的24×24的人脸不会变形。然后重新确定位置的偏移,得到新的框,再做NMS
三个任务:
此为二分类问题,对于每个输入,我们采用交叉熵损失函数:
这里是网络预测样本为人脸的概率,表示真实人脸标签数据
对于每个候选窗口,我们预测它与最近的真实标签之间的偏移(左上、宽度、高度),为回归任务,采用欧几里得损失函数(L2范数损失函数):
这里为网络输出的边框回归
如同边框回归,关键点定位也是回归问题,最小化损失函数
通过损失函数分配实现:根据不同的输入计算上述三种损失值
这里N是样本数,表示任务重要性,P-Net,R-Net(),O-Net()。P-Net and R-Net的landmark任务重要性小于O-Net,说明前两个stage重在滤除非人脸bbox
为样本探测器,非人脸情况下,只需计算交叉熵损失。
此外,在每个mini-batch中,对前向传播中所有样本的损失进行排序,选择前70%,作为hard sample,然后只将硬样本的梯度用于反向传播.