人脸检测算法:Single stage Headless Face Detector
学习人脸检测算法,其实主要是为了前一段时间参加了云从科技的人头计数比赛,然后就看了一些针对人脸检测算法的论文,在这里总结一下。
整个算法和SSD类似,均为one-stage,并且直接在featuremap金字塔上做预测,每个featuremap中的anchor尺度不同,这一点完全和SSD的思路一样。
总体结构:
上为SSH的流程图。在分类网络各层feature map后面连接三个检测分支,通过全卷积而非全连接层做人脸检测和bbox分类。三个分支的stride分别为8,16,32.检测分支有连个全卷积网络分别用于分类和bbox回归。
SSH在anchor 上的操作基本上和RPN一致,区别在于仅用了一个长宽比,即每个feature map上的anchor总数为W×H×k,k为尺度。
检测分支如图3所示,包含一个context module用于提升有效感受野,context module的输出通道数目X在分支M1设置为128,M2M3为256。二者结果concat之后,接两个1×1的卷积,用于bbox回归和分类。具体的输出维度为2×k,和4×k。
Scale Invariance Design:
如图2所示,三个检测分支中,M2使用的是VGG中conv5-3的feature map。M1基于feature map的融合,使用更大尺度的conv4-3融合双线性插值上采样后的conv5-3.同时使用1×1的卷积将channels减少到128,以减少计算量。M3用于检测最大尺度的人脸,在conv5-3上使用stride2的Maxpooling,将feature map的stride变为32×32。再接检测分支M3.
context module