paper:DSFD: Dual Shot Face Detector
link:DSFD paper
code:to add when publication
摘要
- 人脸检测任务目前存在的问题:尺度、姿势、遮挡、表情、外观、照明等具有高度可变性;
- 论文创新点:
- 继承SSD的检测框架,引入feature enhance module,用于传输原始特征图来将单发检测器扩展到双射检测器;
- 采用通过两组anchor计算的progressive anchor loss(PAL)来有效促进特征;
- 通过在DSFD中集成创新的数据增强技术和锚设计策略来提出一种改进的锚点匹配方法(IAM),为了能给回归器提供更好地初始化;
- 在popular benchmark上的实验:WIDER FACE(easy:0.966, medium:0.957, hard:0.904);FDDB(discontinues:0.991, continues:0.862)
Dateset
- FDDB(FaceDetection Data Set and Benchmark)由美国马萨诸塞大学(UMass)于2010年建立,该数据集包含2845张图像,5171个人脸。其中包含大量遮挡、复杂的姿态以及低分辨率的人脸。结果公布分为公开方法(publishedmethods)和非公开方法(unpublished methods)两个榜单。优图此次参与的是公开方法(公布论文)的评测。FDDB是早期评估各类人脸检测算法最重要的数据集之一;
- WIDER FACE由香港中文大学于2016年建立,该数据集包含32203张图像,393703个人脸,其中大量受到光照、遮挡、化妆、表情变化、小脸等因素影响。这些数据中40%为训练集(Training)、10%为验证集(Validation)、50%为测试集(Testing)。WIDERFACE一经提出,便引起了广泛关注,成为近几年来人脸检测领域最权威的数据集之一;
引言
- 目前表现最好的人脸检测器可分为两类:基于应用于Faster-RCNN的RPN采用两阶段检测策略,RPN生成高质量region proposal,然后由Fast-RCNN检测器进一步确认;基于单镜头检测器SSD的一阶段检测方法,脱离RPN的思想直接预测bbox和confidence;
- 尽管人脸检测器取得了不错的进展,但是还存在三个方面的问题:
- 特征学习:目前FPN被广泛应用在人脸检测器中为了获取更丰富的特征,但是FPN只聚合高层和底层输出层之间的特征图,没有关注当前层的特征信息,同时忽略了anchor之间的上下文信息;
- 损失函数设计:目标检测的常规损失函数包括回归损失函数和用于识别的分类损失函数,focal loss的提出能够进一步解决类别不平衡问题,分层loss能够利用所有的原始增强特征;但是这些损失函数没有考虑不同级别特征图的渐进学习能力;
- 锚点匹配:基本策略是有规律地使用具有不同比例和横纵比的bbox的集合来生成每一个特征图的预设锚点,现有工作分析了一系列合理的锚点尺度和锚点补偿策略,用以增加正例锚点的数量;但是这种方式忽略了数据增强中的随机采样,连续的面部尺寸和大量离散的锚点尺度仍然使得正负锚点之间的比率差异很大;
- 为了解决上述上个问题,文中提出基于SSD pipeline的双射人脸检测器:
- 结合PyramidBox中的low-level FPN和RFBNet中的Receptive Feild Block提出一种新颖的特征增强模块,可利用不同层级的特征信息,从而获得更多的有辨识度和鲁棒性的特征;
- 在PyramidBox的层次loss和pyramid anchor思想的推动下提出了渐进锚点损失PAL,通过使用一组较小的锚来计算辅助监督损失,有效促进特征,较小的锚拓展在高层特征图上时候能具有更多用于分类的语义信息和用于检测的高分辨率信息;
- 提出一种改进的锚点匹配策略,在DSFD中集成了锚点分区策略和基于锚点的数据增强技术,尽可能匹配锚点和ground truth face,为回归器提供更好地初始化;
- 在流行的benchmark上进行综合实验,FDDB和WIDER FACE,以此证明我们提出的DSFD网络的优越性;
- 下图检测效果显示较小的anchor应用和改进的anchor匹配策略能够消除尺度和遮挡带来的检测障碍:
![](https://i-blog.csdnimg.cn/blog_migrate/ba46c0a88c4f283dda6cb511d25c877b.png)
相关研究内容
- Overfeat、CascadeCNN、MTCNN等将CNN作为图像金字塔上的滑动窗口来构建特征金字塔,使用图像金字塔导致速度慢内存效率低;大多数two stage的检测器在单一尺度上提取特征;
- 多尺度特征对于微小物体检测表现更好,比如:SSD、MS-CNN、SSH、S3FD等检测框架在多层特征结构上预测bbox;FCN、Hypercolums、Parsenet在分割中融合了多层特征;
- FPN是一种自上而下的架构可以将高级语义信息集成到所有尺寸中,FPN的应用可以显著提高目标检测的效果,但是FPN没有考虑到当前层的信息,忽略了anchor之间的上下文关系;
- 目标检测loss的常规设计策略是分类loss
softmax loss
和bbox回归lossL2 loss
的加权求和;smooth L1 loss
能够避免梯度保障;focal loss
动态缩放cross entropy loss,能够缓解one stage检测器中的类别不平衡问题;RepLoss设计用于行人检测,可以提高遮挡场景下的检测性能;FANet创建了分层特征金字塔,根据其架构提出了层次loss; - 为了使模型更加鲁棒,大多数检测方法都会进行数据增强,例如颜色扭曲,水平翻转,随机裁剪和多尺度训练;anchor compensation strategy能够使得小脸在训练期间匹配足够的anchor;随机裁剪策略能够生成大量被遮挡的人脸用于训练;
Dual Shot Face Detector
![](https://i-blog.csdnimg.cn/blog_migrate/1256a0f5be92fa66daa49e110f178233.png)
DSFD Pipeline
- DSFD使用拓展的VGG16backbone,在分类层之前添加辅助结构;使用conv3_3、conv4_3、conv5_3、conv_fc7、conv6_2、conv7_2作为第一个镜头的检测层,生成作为原始特征图的of1,of2,of3,of4,of5,of6,使用FEM将原始特征图转换为六个增强的特征图:ef1,ef2,ef3,ef4,ef5,ef6,以此构建成第二个镜头的检测层;
- 设计上和S3FD以及PyramidBox不同,在FEM中利用了感受野增广以及新的anchor设计策略后,没有必要设计三种尺度的stride、anchor和receptive field去满足等比例间隔原则;
- 原始镜头和增强镜头使用的loss function不同,分别为FSL、SSL;
FEM:Feature Enhance Module
![](https://i-blog.csdnimg.cn/blog_migrate/3039ff840aa46d55a3ddd22cf2a8bc82.png)
- FEM的提出是为了让原始特征图更具辨识度和鲁棒性,针对当前anchor a ( i , j , l ) a(i,j,l) a(i,j,l),FEM利用不同维度信息包括:当前层anchor a ( i − 1 , j − 1 , l ) , a ( i − 1 , j , l ) , ⋯   , a ( i , j + 1 , l ) , a ( i + 1 , j + 1 , l ) a(i-1,j-1,l),a(i-1,j,l),\cdots,a(i,j+1,l),a(i+1,j+1,l) a(i−1,j−1,l),a(i−1,j,l),⋯,a(i,j+1,l),a(i+1,j+1,l)以及上一层anchor a ( i , j , l + 1 ) a(i,j,l+1) a(i,j,l+1);与anchor相关联的特征图单元可以用公式(1)表示:
![](https://i-blog.csdnimg.cn/blog_migrate/e2faecc24fd010c612fd504ee619dc96.png)
- 疑问:第一个公式等号左边应该是 a ( i , j , l ) a(i,j,l) a(i,j,l),其中 C i , j , l C_i,j,l Ci,j,l表示第 l l l层特征图的坐标为 ( i , j ) (i,j) (i,j)的单元, f f f表示扩张卷积、逐元素乘积、上采样操作的结合; γ \gamma γ和 δ \delta δ分别表示当前层信息和上层信息;FEM中先使用 1 ∗ 1 1*1 1∗1卷积归一化输入的特征图,然后对up layer的输入进行上采样和当前layer输入执行元素乘积,最后将N个FM分成三份分别作为包含不同扩张卷积层数的子网络中,最后concat操作合并子网结果,得到增强特征图;
PAL:Progressive Anchor Loss
- 文中采用multi-task loss,能够促进双射模型中原始和增强特征图的训练任务,首先second shot anchor-based multi-task Loss被定义为 L S S L ( p i , p i ∗ , t i , g i , a i ) = 1 N ( ∑ i L c o n f ( p i , p i ∗ ) + β ∑ i p i ∗ L l o c ( t i , g i , a i ) ) L_{SSL}\left ( p_{i},p_{i}^{*},t_{i},g_{i},a_{i}\right )=\frac{1}{N}\left ( \sum _{i}L_{conf}\left ( p_{i},p_{i}^{*} \right )+\beta \sum _{i}p_{i}^{*}L_{loc}\left ( t_{i},g_{i},a_{i} \right ) \right ) LSSL(pi,pi∗,ti,gi,ai)=N1(∑iLconf(pi,pi∗)+β∑ipi∗Lloc(ti,gi,ai)),其中N为匹配密集框的数目, L c o n f L_{conf} Lconf为人脸和背景两类的softmax loss, L l o c L_{loc} Lloc是使用anchor a i a_i ai时预测框 t i t_i ti和真实框 g i g_i gi之间参数化的smooth L1 loss,当 p i ∗ = 1 p_i^*=1 pi∗=1时 L l o c l o s s L_{loc} loss Llocloss被激活, β \beta β是平衡两者之间的权重;
- 同一个level上的原始特征图比增强特征图具有较少的用语分类的语义信息,但是有更多用于检测的高分辨率定位信息;因此作者认为原始特征图可以用于检测和分类较小的人脸,由此基于一组较小的anchor提出first shot multi-task loss L F S L ( p i , s p i ∗ , t i , g i , s a i ) = 1 N ( ∑ i L c o n f ( p i , s p i ∗ ) + β ∑ i p i ∗ L l o c ( t i , g i , s a i ) ) L_{FSL}\left ( p_{i},sp_{i}^{*},t_{i},g_{i},sa_{i}\right )=\frac{1}{N}\left ( \sum _{i}L_{conf}\left ( p_{i},sp_{i}^{*} \right )+\beta \sum _{i}p_{i}^{*}L_{loc}\left ( t_{i},g_{i},sa_{i} \right ) \right ) LFSL(pi,spi∗,ti,gi,sai)=N1(∑iLconf(pi,spi∗)+β∑ipi∗Lloc(ti,gi,sai));
- 双射loss使用加权求和的方式组合成PAL: L P A L = L F S L ( s a ) + L S S L ( a ) L_{PAL}=L_{FSL}(sa)+L_{SSL}(a) LPAL=LFSL(sa)+LSSL(a),First shot的anchor size是Second shot的一半,但是在DSFD的测试阶段只会用到Second shot的输出,不会引入额外的计算成本
IAM:Improved Anchor Matching
![](https://i-blog.csdnimg.cn/blog_migrate/12f22776d9f6462d6b5cd7715e38fa7f.png)
- 在训练期间需要计算正负anchors确定哪一个anchor对应人脸框,当前anchor匹配策略是在anchor和ground truth之间双向进行的,因此在增强阶段为了使得anchor和人脸匹配,anchor设计和人脸采样是相互协作的;
- 根据人脸比例统计,设置anchor比率1.5:1,其中原始特征的anchor size为增强特征的一半;在数据增强阶段,有2/5的概率使用基于anchor的采样策略,在图像中随机选择人脸,然后裁剪包含人脸的子图,并设定子图和选择人脸之间大小比率为 640 / r a n d ( 16 , 32 , 64 , 128 , 256 , 512 ) 640/rand(16,32,64,128,256,512) 640/rand(16,32,64,128,256,512),剩下的3/5采用SSD的数据增强方法;
DSFD的实验表现
- 基于WIDER FACE作者进行了一系列实验,在保证实验参数相同,只修改指定组件的情况下进行对比实验;
![](https://i-blog.csdnimg.cn/blog_migrate/76d2435a5b8b4ee46389e7c172336246.png)
![](https://i-blog.csdnimg.cn/blog_migrate/421717e7ba95107eacc4a70ff30504d0.png)
- 表234可以得出结论:
- FEM很重要,在对hard人脸进行检测时,使用强大的辨识度更高的FEM能够提高特征表达能力;
- 基于PAL训练所有12中不同尺度的就按此特征图能够提升检测性能;
- IAM能够提供更好地初始化anchor和ground truth人脸用于从人脸回归anchor;
- 为了进一步提高检测性能,采用了扩大检测坐标expansion和同时为分类和回归分支增加卷积层DeepHead的方法,能够提升DSFD的检测性能,扩大训练批量大小LargeBS可以提升hard检测的性能;DSFD在WIDER FACE和FDDB的表现如图:
![](https://i-blog.csdnimg.cn/blog_migrate/827808231dd8348e2ee0f2b2c6ed246f.png)
- DSFD在WIDER FACE的验证集和测试集中的三个子集上都取得了最佳检测性能;
![](https://i-blog.csdnimg.cn/blog_migrate/69d9fc7ff127771a3db6d492d0ee8d99.png)
- DSFD在不连续和连续的ROC曲线上都取得最佳性能,第一行表示没有对未标注人脸进行额外标注的实验结果,第二行为标注后的结果;
DSFD的总结
- 特征增强模块结合了FPN和RFB的特点,不仅利用了不同层级之间的信息同时还引入扩张卷积获取更大感受野的特征,从而获得了更多辨识度高鲁棒性强的特征;
- 在早期层使用较小的锚点引入辅助监督,能够有效利用这些特征;
- 提出IAM匹配anchor和ground truth face尽可能地为回归器提供更好的初始化;