目标检测学习笔记--DSSD算法
1. 论文笔记
1.1 YOLO网络结构
论文链接:http://cn.arxiv.org/pdf/1506.02640
1.2 SSD网络结构
论文链接:http://cn.arxiv.org/pdf/1512.02325v5
SSD具有如下主要特点:
(1)从YOLO中继承了将detection转化为regression的思路,同时一次即可完成网络训练
(2)基于Faster RCNN中的anchor,提出了相似的prior box
(3)加入基于特征金字塔(Pyramidal Feature Hierarchy)的检测方式
YOLO在卷积层后接全连接层,即检测时只利用了最高层feature maps(包括Faster RCNN也是如此);而SSD采用了特征金字塔结构进行检测,即检测时利用了conv4-3,conv-7(FC7),conv6-2,conv7-2,conv8_2,conv9_2这些大小不同的feature maps,在多个feature maps上同时进行softmax分类和位置回归。
SSD使用低层feature map检测小目标,使用高层feature map检测大目标,这也应该是SSD的突出贡献了。
1.3 DSSD网络结构
论文链接:http://cn.arxiv.org/pdf/1701.06659v1
2. 模型理解
DSSD在常用的目标检测算法中加入了更好的特征提取网络和上下文信息,相比于利用一层feature map的YOLO、Faster RCNN等,和利用多层feature map的SSD,DSSD充分利用了各层之间的信息结合。
YOLO算法把检测的图片划分为14*14的格子,每个格子都会提取出目标检测框,但最初时,每个格子只会提取出一个目标框,当两个目标落入一个格子中,会出现漏检。SSD利用Faster RCNN中Anchor的思路,将图片分成更小的格子(即在浅层上来更好地匹配小目标),再在这些格子中使用Anchor,即在格子中加上6到9个不同的检测框,有效地降低了漏检概率。但是SSD在浅层提取的feature map表征能力不够强,即浅层的feature map中每个格子包含的类的置信度不够高,同样会出现误检和漏检,因此SSD对小目标不够鲁棒。
由于SSD算法的浅层feature map的表征能力不够导致对小目标不够鲁棒,因此,DSSD使用了ResNet-101基础网络和Deconvolution反卷积层,使浅层feature map具有更好的表征能力,更好地提高对小目标的检测能力,而且ResNet比VGG的收敛速度快很多。
DSSD将基础网络VGG换成ResNet,通过加深网络来增强网络的表征能力。但实验结果显示,图片大小不够时(321321),ResNet的SSD和VGG的SSD效果相当,整体稍差些,当输入图像为512512时,ResNet的优势才明显体现。
SSD的直接从数个卷积层中分别引出预测函数,预测量多达7000多,梯度计算量也很大。MS-CNN方法指出,改进每个任务的子网可以提高准确性。根据这一思想,作者在每一个预测层后增加残差模块,并且对于多种方案进行了对比,如下图所示。结果表明,增加残差预测模块后,高分辨率图片的检测精度比原始SSD提升明显。
在反卷积模块中,实验结果显示,使用prod点积的操作的效果更好。
DSSD的训练方式沿用了SSD的训练方法,通过caffe实现。
总而言之,DSSD就是将ResNet、Prediction Module、Deconvolution Module结合起来构成的基于SSD的目标检测算法。
3. 模型运行进展
在github上找到DSSD模型的caffe版程序代码,虽然有SSD的keras版程序源码,但是DSSD在SSD的基础上所做的改变较大,基准网络从VGG换成了Resnet-101,而且增加了反卷积层,如果在SSD的代码上做出改变难度很大。而且目前对Caffe与Keras的使用不熟悉,很难完成Caffe到Keras的代码转换。
DSSD_Caffe:https://github.com/chengyangfu/caffe/tree/dssd
SSD_Keras:https://github.com/pierluigiferrari/ssd_keras#overview
4、其他知识点
RPN网络:RPN网络的作用是输入一张图像,输出一批矩形候选区域,类似于以往目标检测中的Selective Search一步。网络结构是基于卷积神经网络,但输出包含二类softmax和bbox回归的多任务模型。网络结果如下(以ZF网络为参考模型):
Anchor机制:anchor是rpn网络的核心。刚刚说到,需要确定每个滑窗中心对应感受野内存在目标与否。由于目标大小和长宽比例不一,需要多个尺度的窗。Anchor即给出一个基准窗大小,按照倍数和长宽比例得到不同大小的窗。例如论文中基准窗大小为16,给了(8、16、32)三种倍数和(0.5、1、2)三种比例,这样能够得到一共9种尺度的anchor,如图
因此,在对6040的map进行滑窗时,以中心像素为基点构造9种anchor映射到原来的1000600图像中,映射比例为16倍。那么总共可以得到60409大约2万个anchor。
目标检测学习笔记--DSSD算法相关推荐
- 《南溪的目标检测学习笔记》——模型预处理的学习笔记
1 介绍 在目标检测任务中,模型预处理分为两个步骤: 图像预处理:基于图像处理算法 数值预处理:基于机器学习理论 关于图像预处理,请参考<南溪的目标检测学习笔记>--图像预处理的学习笔记 ...
- 《南溪的目标检测学习笔记》——目标检测模型的设计笔记
1 南溪学习的目标检测模型--DETR 南溪最赞赏的目标检测模型是DETR, 论文名称:End-to-End Object Detection with Transformers 1.2 decode ...
- 《南溪的目标检测学习笔记》——夏侯南溪的CNN调参笔记,加油
1 致谢 感谢赵老师的教导! 感谢张老师的指导! 2 调参目标 在COCO数据集上获得mAP>=10.0的模型,现在PaddleDetection上的Anchor-Free模型[TTFNet]的 ...
- [初窥目标检测]——《目标检测学习笔记(2):浅析Selective Search论文——“Selective Search for object recognition”》
[初窥目标检测]--<目标检测学习笔记(2):浅析Selective Search论文--Selective Search for object recognition> 本文介绍 前文我 ...
- 9月1日目标检测学习笔记——文本检测
文章目录 前言 一.类型 1.Top-Down 2.Bottom-up 二.基于深度学习的文本检测模型 1.CTPN 2.RRPN 3.FTSN 4.DMPNet 5.EAST 6.SegLink 7 ...
- 《南溪的目标检测学习笔记》——COCO数据集的学习笔记
1 COCO数据集 COCO数据集下载链接:COCO_download 1.1 数据概览 数据集大小 train: 118287张 train+val: 123287张 val: 5000张 目标数量 ...
- 《南溪的目标检测学习笔记》的笔记目录
1 前言 这是<南溪的目标检测学习笔记>的目录~ 2 学习目标检测的思路--"总纲" <南溪的目标检测学习笔记>--目标检测的学习笔记 我在这篇文章中介绍了 ...
- 目标检测学习笔记——SSD以及改进模型DSSD的原理解读及SSD的Tensorflow代码实现(图文并茂)
目录 1.SSD的知识思维脑图 2.简介 2.1.SSD出现的背景 2.2.SSD的模型思想 2.2.1.多尺度特征图预测(Multi-Scale Feature Maps Prediction) 2 ...
- 深度神经网络及目标检测学习笔记
这是一段实时目标识别的演示, 计算机在视频流上标注出物体的类别, 包括人.汽车.自行车.狗.背包.领带.椅子等. 今天的计算机视觉技术已经可以在图片. 视频中识别出大量类别的物体, 甚至可以初步理解图 ...
最新文章
- php操作MySQL
- Markdown = PPT ?这个工具给力!
- 详细讲解C++ 类的继承
- 前端:JS/38/canvas状态的保存和恢复(canvas常用状态大全),canvas画布中图像的变形
- PHP 连接MySQL数据库
- Oracle 网络配置与管理
- 在nhibernate 1.2 中使用sqlite时应注意sqlite的ado.net的提供者 .
- java关闭窗口的6种方法
- 百度地图 - js获取行政区边界范围
- 计算机信息统计试题,计算机概率统计复习试题.doc
- 华为手机上的计算机怎么没了,华为手机怎么连接电脑 华为手机连接不上电脑怎么回事 华为手机连接USB没反应...
- VRP基础,命令行基础,文件系统基础,系统管理(2017年12月13日 09:51:51)
- 微信小程序开发相关资料
- CodecContext-gop_size 是什么
- rna聚类分析_新技术助力单细胞RNA测序数据聚类分析
- java端口扫描器_简单端口扫描器java的设计与实现.doc
- 2021-04-15 三级管npn和pnp的区别
- 亚马逊广告CPC优化技巧 投放就有效
- 雅居乐陈卓林第二人生业主文化节收官,记录下这些天的温情与感动
- 微信团队分享:微信支付代码重构带来的移动端软件架构上的思考