人脸检测算法总结:S3FD——Single Shot Scale-invariant Face Detector
S3FD是中科院自动化所的一篇文章,当时一出现就刷新了wider face榜单,比上一篇提到的SSH略高一点。这个算法主要是解决小人脸的检测问题,思路和SSD类似(之前提到的SSH也和SSD类似),多个不同的featuremap预测不同的人脸,但是没有想FPN一样,将featuremap 连接。
Introduction
S3FD算法受启发于anchor-based检测算法,通过一些预定义的anchor来分类并且回归检测目标,这些预定义的不同尺度、长宽比的anchor在feature map上密集采样可以得到目标的所有可能分布区域。anchor可以向FasterRCNN一样定义于一个feature map,也可以和SSD定义在多个feature map上,anchor的spatial size(空间位置)和stride 决定了anchor的位置和采样间隔。anchor-based检测器在复杂场景下更加鲁棒,检测速度和目标大小无关,但唯一的弱点是:目标越小,检测器的性能会急速下降。
如上图所示,anchor-based检测方法存在问题的原因
- 1人脸太小导致的特征较少
- 2人脸大小和anchor以及感受野的大小不匹配
- 3默认的离散anchor尺度,真实人脸尺度gt确是连续的,anchor对真实人脸gt的匹配度不够,造成了小人脸和非尺度范围内的人脸匹配度不高。
- 4小尺度anchor会在背景上引来过多的非人脸的干扰。
Biased framework
anchor-based检测器漏检小目标的原因如下:
- 1预定义的anchor,即使是位于最低的特征层,其stride依然过大,小尺度人脸目标依赖于这些最底层的特征,经过下采样只有,目标特征信息损失过大
- 2小尺度目标,感受野,anchor的尺度不匹配。
为了解决上述问题,提出了scale-equitable-face detection framework。将anchor预定义于不同feature map,stride尺度从4-128pix。以确保不同尺度的人脸目标可以提取足够多的特征用于下一步检测。此外,依照有效感受野,在不同featuremap上为anchor定义尺度范围为16-512pix,并采用等比例采样方式,确保不同feature map上anchor的采样密度一致,anchor的尺度也匹配对应featuremap感受野尺度。
anchor matching s