8.3 DSSD
DSSD的核心思想:
- backbone使用ResNet替换了VGG,增强了特征提取能力。
- 添加了转置卷积层,增加上下文信息。
问题:SSD算法检测小目标困难。
DSSD算法将SSD算法基础网络从VGG-16更改为ResNet-101,增强网络特征提取能力,其次参考FPN算法思路利用去Deconvolution结构将图像深层特征从高维空间传递出来,与浅层信息融合,联系不同层级之间的图像语义关系,设计预测模块结构,通过不同层级特征之间融合特征输出预测物体类别信息。
DSSD算法中有两个特殊的结构:
- Prediction模块;
利用提升每个子任务的表现来提高准确性,并且防止梯度直接流入ResNet主网络。 - Deconvolution模块。
增加了三个Batch Normalization层和三个3×3卷积层,其中卷积层起到了缓冲的作用,防止梯度对主网络影响太剧烈,保证网络的稳定性。
Prediction模块
图2 Prediction模块SSD直接从多个卷积层中单独引出预测函数,预测量多达7000多,梯度计算量也很大。MS-CNN方法指出,改进每个任务的子网可以提高准确性。根据这一思想,DSSD在每一个预测层后增加残差模块,并且对于多种方案进行了对比,如图2所示。结果表明,增加残差预测模块后,高分辨率图片的检测精度比原始SSD提升明显。
Deconvolution模块
图3 Deconvolution模块为了整合浅层特征图和deconvolution层的信息,作者引入deconvolution模块,如图3所示。作者受到论文Learning to Refine Object Segments的启发,认为用于精细网络的deconvolution模块的分解结构达到的精度可以和复杂网络一样,并且更有效率。作者对其进行了一定的修改:
- 在每个卷积层后添加批归一化(batch normalization)层;
- 使用基于学习的deconvolution层而不是简单地双线性上采样;
- 作者测试了不同的结合方式,元素求和(element-wise sum)与元素点积(element-wise product)方式,实验证明元素点积计算能得到更好的精度。
网友评论