SSD系列算法优化及扩展
对于SSD,通常的优化策略,主要强调对主干网络的改进,和后续预测网络的改进(优化输入的feature map)。
DSSD:
- 2017年的CVPR,WeiLiu
- SSD算法对小目标不够鲁棒的最主要的原因是浅层feature map的表征能力不够强
- 加入上下文信息
- 更好的基础网络(ResNet)和Deconvolution层,skip连接来给浅层feature map更好的表征能力
反卷积结合之前的feature map通过相加来完成。由图可看出引入反卷积。通过反卷积可以提出更多的上下文信息,并结合上写文信息用于后续输入。以及后续Bounding box的位置回归和类别分类。
DSOD:
- 2017年的ICCV2017
- DSOD可以从0开始训练数据,不需要预训练模型,而且效果可以和fine-tune的模型媲美
- SSD + DenseNet = DSOD
- 可以从零开始训练得到一个好的目标检测网络么
- 如果可以,设计这样的网络有没有什么原则可以遵循
DSOD:
- 预训练模型优点:
* 开源模型多,可以直接将它们用于目标检测
* 可以快速得到最终的模型,需要的训练数据也相对较少 - 预训练模型缺点:
* 预训练模型大,参数太多,模型结构灵活性差,难以改变网络结构,计算量大,限制其应用场合
* 分类和检测任务的损失函数和类别分布式不一样的,优化空间存在差异
* 尽管微调可以减少不同目标类别分布的差异性,但是差异太大时,微调效果依然不理想
DSOD设计原则
- 基于候选区域提取的方法无法从零开始训练,不收敛,只有proposal-free方法可以从零开始训练并收敛(ROI Pooling)
- DenseNet中更多的skip connections 实现supervised signals传递
- 增加dense blocks数量区别原先固定数量
- Stem Block优化(3个3 *3卷积层和1个2 *2最大池化层)
- 6个尺度特征图进行目标检测,再融合(如何利用特征图)
总的来说是基于DenseNet和SSD框架。