整理的人脸系列学习经验:包括人脸检测、人脸关键点检测、人脸优选、人脸对齐、人脸特征提取等过程总结,有需要的可以参考,仅供学习,请勿盗用。https://blog.csdn.net/TheDayIn_CSDN/article/details/93199307
Tiny-DSOD解读
论文地址:https://arxiv.org/pdf/1807.11013.pdf
代码代地址(caffe):https://github.com/lyxok1/Tiny-DSOD
思路
需要寻找前后端人脸检测器模型,主要考虑在移动端部署,所以查看了新出的Tiny-DSOD模型,想尝试下性能,后续给出文章实验部分。
一、论文简介
Tiny-DSOD提出了两种高效结构:基于depthwise dense block的网络主干,基于depthwise-FPN的前端网络。
主要工作:
1)将depthwise卷积和dense block结合,提出depthwise dense block(DDB)模块;
2)将depthwise卷积和FPN结合,提出D-FPN;
3)提出的DDB和D-FPN,搭建了Tiny-DSOD模型,取得了优于Tiny-YOLO、SqueezeDet、MobileNet-SSD等的效果。
1、主干网络Depthwise Dense Blocks Based Backbone
主干网络结构如下
把深度可分离卷积(depth-wise separable convolution)引入到普通的Dense block,提出了两种DDB units,DDB-a和DDB-b
作者通过实验证明,DDB-b的性能远好于DDB-a,所以我们以b为例进行介绍。
(1)把输入channel压缩到growth rate g(对应DDB-b图的蓝色框部分,1x1的Conv)
(2)进行深度可分离卷积(对应DDB-b图的绿色部分,3x3的DW Conv)
(3)深度可分离卷积的输出直接concatenate到输入,无需额外的1×1projection。
2、Front end结构
整体网络结构:plain connection+dense connection
一般认为,深度学习模型浅层学习了目标的结构和分辨率的信息,高层学习了语义信息,而SSD和DSOD都是提取了六个feature map 进行预测,那么前面的,比如上图的38x38和19x19比较低层,此时网络还没学到足够的语义信息。
所以作者设计一个名为depthwise FPN(D-FPN)的轻量级FPN,用于将信息流从较深和较小的feature maps重定向到较浅的。由下采样(a downsampling path)和反向的上采样(a reverse upsampling path)组成,这种反向的上采样已经被很多文章证明其有效性,但是大部分都是用反卷积来实现,这大大增加了模型的复杂度,也使得模型难以收敛。作者使用简单的双线性插值层(a simple bilinear interpolation layer)和a depth-wise convolution对the top feature maps进行上采样,如下图右侧所示。
3、实验结果
Ablation Study on PASCAL VOC2007 test
(1) DDB-b 优于DDB-a
(2) D-FPN的有效性
(3) Overall growth rate增加, Accuracy上升
(4) 资源 (parameter-size & FLOPs) 和准确率(mAP) 的Trade-off-----Row(5)&(6)