SSD系列算法扩展与优化
DSSD DSOD FSSD RSSD
# SSD算法缺陷
1)存在重复框的问题;
2)对小目标检测不够鲁棒(因为浅层feature map的表征能力不够强)
因此,针对以上问题,对传统SSD算法进行了扩展和优化;优化主要从两部分下手,一个是从主干网络,比如将传统的VGG16换成ResNet、DenseNet、MobileNet等;另一个则是从预测网络着手,寻找更好的特征表征方式来提高模型性能,比如通过反卷积引入上下文信息,丰富不同feature map层之间的关系连接等。
下面我们来介绍四种比较典型的优化算法:
#DSSD算法
##简介
该算法于2017年CVPR上发表,依然是SSD的作者提出,算法的主要改进在两个地方:1)将主干网络改成ResNet;2)在预测网络中引入反卷积(Deconv),加入上下文特征信息,从而使得模型性能有了较大的提升;
简单来说,DSSD = ResNet + Deconv;
##原理
上图中可以看到,在6个尺度的feature map层都做了很大的改动,除了1x1的feature map层,其他5个层都分别引入了上一层通过反卷积得到的特征,然后将这个反卷积得到的特征与原始特征进行求和,作为相应预测层的输入,从而对后续prior box的提取,box框的类别以及位置的预测工作提供了很好的表征特征。
##性能
通过改进之后,DSSD的性能有了明显的提升,mAP提高到了85-89点多。
#DSOD算法
##简介
DSOD算法于2017年ECCV提出的一个改进算法,它是在原始SSD框架的基础上结合DenseNet得到的,DSOD算法可以从零开始训练数据,不需要预训练模型,而且可以和fine-tune的模型媲美;
关于预训练模型,它的***好处***是1)开源模型多,可以直接用于模型迁移,2)而且需要的训练数据也相对较少,能够快速的得到训练模型,当然***缺点***也有很多,1)模型比较大,参数多,模型结构灵活性差,难以改变网络结构,计算量大,限制应用场合;2)分类和检测模型的损失函数和类别分布不一样,优化空间存在差异;3)尽管微调可以减少不同目标类别分布的差异性,但是差异太大时,微调效果不明显;
正是因为这些缺点,文章作者才突发奇想,认为是否可以不需要预训练,就能够得到完美的检测模型,所以DSOD的主要核心思想,就是如何从零开始训练一个好的目标检测网络,或者说是否能够从零开始训练一个目标检测网络,如果可以的话,训练这样的一个网络有什么规律或原则可以去遵守。
简单来说,DSOD = SSD + DenseNet;
##原理
设计原则:
1.基于候选区域提取的方法无法从零开始训练,结果不收敛,只有基于proposal的方法才可以从零训练(关于这个结论是作者文中提到的(当然不一定对,哈哈),至于原因作者猜测是ROI Pooling的作用);
2.denseNet中通过更多的skip connection来实现信号的传递;
3.增加dense blocks的数量;
4.对Stem Block层进行了优化,采用3个3x3的卷积层和1个2x2的最大池化层;
5.6个尺度的feature map作为预测层的输入,在进行融合;
##性能
相对于SSD算法提升明显,但效果比DSSD逊色了很多;
#FSSD算法
##简介
FSSD算法借鉴了FPN的思想,改进了主干网络,然后将feature map较小的层进行调整重构了一组金字塔feature map,从而使得算法的精度有了明显的提升,但速度仍然在线;
##原理
可以看到,它将那些feature map较小的层通过上采样得到同一尺寸的feature,然后concat起来,以此作为base feature,生成金字塔feature map,最后再把这些特征进行融合,作为预测层的输入,这样一来既融入了上下文特征,又实现了多尺度。
##性能
效果相较SSD有提升,但不明显,性能弱于DSSD和DSOD;
#RSSD算法
##简介
通过rainbow connection的方式(Pooling + deconvolution)融合不同层的特征,不仅增加feature map层之间的连接,也增加feature map层的数量,从而提高了后续的预测和回归的输入特征;
RSSD算法解决了传统SSD算法的两大缺点:重复框和小物体的问题;
##原理
可以看到,每一层的feature map数量有很多,其中有原始通过Pooling下采样得到的,还有通过反卷积得到的,然后一起融合,所以上图我们看到非常厚的feature map;
##性能
算法性能确实有所提升,但是缺憾是速度下降了;
SSD系列算法扩展与优化相关推荐
- 目标检测—SSD系列算法原理介绍
一.SSD系列算法原理介绍 1.1 SSD算法介绍: ➢Single Shot MultiBox Detector (one-stage方法) ●Wei Liu在EC ...
- 计算机视觉目标检测算法总结4——其他SSD系列算法
RSSD算法 rainbow concatenation方式(pooling加deconvolution)融合不同层的特征,在增加不同层之间feature map关系的同时也增加了不同层的featur ...
- SSD系列算法原理讲解----(1)SSD系列算法介绍(主干网络、多尺度Feature Map预测)(笔记)
SSD系列算法原理介绍 SSD算法介绍: Single Shot MultiBox Detector(One-stage方法) - Wei Liu在ECCV 2016提出 - 直接回归目标类别和位置 ...
- 谱聚类算法(Spectral Clustering)优化与扩展
谱聚类算法(Spectral Clustering)优化与扩展 谱聚类(Spectral Clustering, SC)在前面的博文中已经详述,是一种基于图论的聚类方法,简单形象且理论基础充分,在社交 ...
- 【百度飞浆】RCNN系列算法优化策略与案例
RCNN系列算法优化策略与案例 目录 1 两阶段检测进阶模型介绍 2 两阶段检测进阶模型优化策略 3 工业应用:铝压铸件质检 目录 1 两阶段检测进阶模型介绍 2 两阶段检测进阶模型优化策略 3 工业 ...
- 智能算法系列之粒子群优化算法
本博客封面由ChatGPT + DALL·E 2共同创作而成. 文章目录 前言 1. 算法思想 2. 细节梳理 2.1 超参数的选择 2.2 一些trick 3. 算法实现 3.1 问题场景 3. ...
- ## ***电池SOC仿真系列-基于扩展卡尔曼(EKF)算法的SOC估计(内含代码等资料)***
## ***电池SOC仿真系列-基于扩展卡尔曼(EKF)算法的SOC估计(内含代码等资料)*** ## 1 研究背景 电池的荷电状态(SOC)代表的是电池当前的剩余容量,数值定义是电池剩余电量与电池额 ...
- SSD系列、Retinanet、Efficientdet、RCNN系列知识点整理
接着前面的YOLO系列继续做一些简单的关键点整理,便于博主快速回忆起来. 1.SSD(2016) https://arxiv.org/pdf/1512.02325.pdf 类似前面整理YOLO系列,先 ...
- 目标检测 YOLO系列算法
文章目录 1. YOLO算法 1.1 Yolo算法思想 1.2 Yolo的网络结构 1.2.1 网络输入 1.2.2 网络输出 1.7X7网格 2x30维向量 1.3 Yolo模型的训练 1.3.1训 ...
最新文章
- 现行技术体系的问题总结
- 黄聪:DEDECMS联动调用时提示“你设定了字段为联动类型,但系统中没找到与你定义的字段名相同的联动组名!”...
- xp mysql字符集与乱码_解决MYSQL中文乱码问题三种方法
- 我国将于今年春季发射空间站核心舱 空间站进入全面实施阶段
- hibernate.hbm2ddl.auto配置及意义
- “穿透”与“征兆”:长篇小说《环形女人》(一)
- 都江堰很美-佩服古人_Crmhf的一天
- css改变谷歌浏览器的滚动条样式
- python 机器学习——从感知机算法到各种最优化方法的应用(python)
- 光声光谱技术和激光、红外技术的优劣势对比
- mysql 超级管理员权限_取得超级管理员权限
- Android实现手机和电脑屏幕共享
- vue常见面试题(附带答案) 超实用!!建议收藏!!
- 开学季,如何申请免费学生云服务器
- java微信获取素材列表_微信公众号开发之获取素材列表并保存
- 大型网站图片服务器架构的演进
- 试述HDFS中的名称节点和数据节点的具体功能
- linux 清除bios 密码吗,如何设置/清除 BIOS 硬盘密码
- 随机池化(Stochastic Pooling)
- Spring4实战读书笔记