4.2 改进的SSD

上一章我们了解到,物体识别检测算法是在传统CNN算法基础上加上目标区域建议策略和边框回归算法得到的。前辈们的工作主要体现在目标区域建议的改进策略上,从最开始的穷举建议框,到划分图像区域,再到从特征图上生成建议框,算法的改进带来的收益越来越大。本节的主要内容是结合上一章讲的DenseNet和前面讲的SSD目标检测算法,将DenseNet作为SSD算法的基础网络,用于提取深度特征,再结合SSD算法中的目标边框建议策略和边框回归算法,重新构建一个端到端的物体识别检测网络。

4.2.1 基础网络改进

在寻找进一步提高检测准确性的方法时,尤其是对于小对象来说,除了提高预测边界框的空间分辨率外,更明显的目标是使用更好的特征网络和增加更多的上下文信息。以前的SSD版本是基于VGG网络,但很多研究人员使用更深的网络取得了更好的精确度。

大多数目标检测方法,包括Fast R-CNN,YOLO等使用最顶层的卷积层来学习检测不同尺度的物体。尽管这些方法很实用,但是单层模型对于所有可能存在的目标尺寸和形状来说,拟合的能力有些捉襟见肘。有很多种方法可以利用ConvNet中的多个层来提高检测精度。一种方法就是合并不同层的特征图,由于组合特征映射具有来自不同抽象级别输入图像的特征,所以合并特征更具有描述性。但是,组合特征映射不仅显著增加模型的内存占有量,而且也降低了模型的速度。另一种方法使用ConvNet中的不同层来预测不同比例的对象。由于不同层的节点具有不同的接受域,因此从具有较大接受域的层预测较大对象并使用具有较小接受域的层来预测小对象是很自然的。然而,为了很好地检测小物体,这些方法需要使用具有小接受域和密集特征图的浅层信息,这可能导致小物体检测性能低下,因为浅层具有较少的关于物体的语义信息。通过使用跳跃连接,我们可以在特征映射中注入更多的语义信息,从而帮助预测小物体。

我们的改进是使用DenseNet代替原始SSD结构中的VGG,以提高目标检测准确性。图4-9显示了以DenseNet为基础网络的SSD。在这种结构下,我们在conv5_x之后添加不同尺寸的特征图层,并预测conv3_x,conv5_x和其他特征图上的目标置信度和边框偏移量。

图4-9 SSD基础网络改进图

4.2.2 预测网络改进

在原始SSD中,目标函数直接作用于选定的特征映射,并且由于梯度的大小,L2归一化层被用于conv4_3层。研究表明,改进每个任务的子网络可以提高检测准确性。遵循这个原则,我们为每个预测层添加一个密集连接块,如图4-10中模块c所示。我们还尝试原始SSD方法(a)和带有跳跃连接(b)以及两个连续密集块(d)的版本。从实验结果来看,用DenseNet作为SSD的基础网络以及用DenseBlock作为预测网络相比原始SSD有更好的准确度。

图4-10 预测块及变种

4.3 训练网络

我们遵循与SSD一样的训练策略。首先,我们必须匹配一组Default Box来定位目标真实边框。对于每个目标真实边框,我们将其与最佳重叠的Default Box以及IoU大于阈值(例如0.5)的任何Box匹配,Box尺寸如表4-1所示。在未匹配的Box中,我们根据置信度损失来选择某些Box作为负样本,并使正负样本的比例为1:3。然后我们联合定位损失函数(如Smooth L1)和置信度损失(如Softmax),并最小化损失函数。最后采用随机光度测量失真和随机翻转裁剪区域来完成大量数据增强。


实验都基于DenseNet,它是在ILSVRC CLS-LOC数据集上预先训练的。遵循R-FCN的建议,我们将conv5阶段的有效步幅从32像素改为16个像素,以增加特征图的分辨率。在conv5阶段中第一个带有步幅2的卷积层被修改为1。然后遵循trous算法,对于卷积核大小大于1的conv5阶段中的所有卷积层,我们将它们的扩张幅度从1增加到2。跟SSD一样,我们使用DenseNet块生成一些额外的层,以弥补逐渐减少的特征图。

我们在VOC 2007和VOC 2012的训练集上联合训练了模型。对于原始的SSD模型,我们对321×321输入的模型使用32的批处理大小,对于513×513输入的模型使用20的批处理大小,并且对于前40k的迭代开始0.001的学习率。然后,我们在60K迭代时将其降至0.0001,70K降至0.00001。我们将这个训练好的SSD模型作为网络的预训练模型。对于第一阶段,我们将前10k次迭代的学习率设为0.001,然后以0.0001的学习率继续训练10k次迭代。对于第二阶段,我们对整个网络进行微调,对于第一个20k迭代,学习率为0.001,并且在接下来的20k迭代中将其减小到0.0001。

表4-2显示了被选中的VGG结构和DenseNet结构中特征层,深度depth就是网络中被选中层的位置。网络只考虑卷积层和池化层。注意这个网络的第一个预测层的深度很重要,虽然DenseNet包含101层,但我们需要使用密集层来预测较小的对象,只能选择conv3_x块中的最后一层。表4-2表示VGG与DenseNet中被选中用于预测的层所在的位置。

4.4 实验结果对比与分析

如下图4-7所示,左侧是原始SSD检测出的图像,右侧是改进后的SSD检测出的图像。很显然,改进后的SSD网络对小物体比较敏感,能够对小物体产生很好的拟合。类似的对比见图4-8和图4-9。

图4-7 SSD(左)和改进SSD(右)的检测效果

图4-8 检测小目标效果图(1)

图4-9 检测小目标效果图(2)

表4-3显示了在PASCAL VOC2007数据集上测试的结果。SSD300和SSD512采用最新的SSD扩展数据增强技术,它已经比许多其他最先进的检测器更好。通过将VGGNet替换为DenseNet,如果输入图像很小,则性能相似。例如,SSD-Res类似于SSD-VGG,尽管DenseNet似乎能够更快地收敛(例如,我们只使用VGGNet一半的迭代时间来训练我们的SSD版本)。有趣的是,当我们增加输入图像尺寸时,DenseNet比VGGNet好大约1%。我们推测,DenseNet具有较大的输入图像尺寸是非常重要的,因为它比VGGNet更深,因此对象在某些非常深的层(例如conv5_x)中仍然具有强大的空间信息。更重要的是,我们看到通过添加跳过连接,我们的DSSD321和DSSD513比没有这些额外层的准确率要好1到1.5%。这证明了我们提出的方法的有效性。值得注意的是,即使模型不需要任何手工的上下文区域信息,DSSD513也比尝试包含上下文信息的其他方法好得多。此外,我们的单模型精度比当前最先进的探测器R-FCN提高1%。

总之,SSD在测试任务中都显示出对具有特定背景和小对象的类的巨大改进。例如,飞机,船,牛和羊有非常特殊的背景,比如飞机后的天空,牛后的草地等。这表明SSD中小物体检测的弱点可以通过所提出的模型来解决,并且对于具有独特上下文的类来说,性能更好。

为了了解我们添加到SSD中结构的有效性,我们在VOC2007上运行具有不同设置的模型,并在表4-4中记录它们的评估。PM即为Prediction模块。使用321像素作为输入的纯SSD是76.4%mAP。这个数字实际上比VGG模型差。通过添加预测模块,我们可以看到结果正在改进,最好的情况是在预测之前使用一个残差块作为中间层。这个想法是为了避免允许目标函数的梯度直接流入剩余网络的主干。如果在预测之前叠加两个PM,我们看不到太大的差异。

4.5 本章小结

本章首先阐述了物体检测算法的原理,并重点介绍了SSD检测算法的原理,即在基础网络上加上检测区域建议和边框回归策略。原始SSD的缺点在于预测层太浅,不能很好的拟合小目标。我们将第三章介绍的DenseNet作为SSD的基础网络,并使用“跳跃连接”的方式在预测层上进行深度特征提取。利用DenseNet拥有良好的上下文信息的优势,成功改造了SSD,提高了速度和精度。使其对小目标也有很好的拟合。

基于神经网络的目标检测论文之目标检测方法:改进的SSD目标检测算法相关推荐

  1. 目标检测论文解读复现之五:改进YOLOv5的SAR图像舰船目标检测

    目标检测论文解读复现 文章目录 目标检测论文解读复现 前言 一.摘要 二.网络模型及核心创新点 三.应用数据集 四.实验效果(部分展示) 五.实验结论 六.投稿期刊介绍 前言 此前出了目标改进算法专栏 ...

  2. 一文看尽 27 篇 CVPR 2021 2D 目标检测论文

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨二玖 编辑丨极市平台 导读 本文对我们汇总的 CVPR 2021 检测大类中的2D目标检测领域的 ...

  3. 一文看尽 27 篇 CVPR2021 2D 目标检测论文

    6月25日,CVPR 2021 大会结束,共接收了 7039 篇有效投稿,最终有 1366 篇被接收为 poster,295 篇被接收为 oral,其中录用率大致为 23.6%,略高于去年的 22.1 ...

  4. 高光谱目标检测论文学习(4)——Hierarchical Suppression Method for Hyperspectral Target Detection

    前言 这篇论文是一篇稍微老一点的论文,发表于TGRS2016,主要讲了一种对CEM的改进方法,也是一篇基本思路比较简单的顶会论文.主要想通过这篇论文体会一下如何对现有经典方法进行改进. 思路 我们首先 ...

  5. 基于Grad-CAM与KL损失的SSD目标检测算法

    基于Grad-CAM与KL损失的SSD目标检测算法 人工智能技术与咨询 来源:<电子学报>,作者侯庆山等 摘 要: 鉴于Single Shot Multibox Detector (SSD ...

  6. [RCNN]-[YOLO]-[SSD]目标检测算法

    原文链接:http ://chuansong.me/n/353443351445 转载自深度学习大讲堂公众号    开始本文内容之前,我们先来看一下上边左侧的这张图,从图中你看到了什么物体?他们在什么 ...

  7. [论文阅读] (26) 基于Excel可视化分析的论文实验图表绘制总结——以电影市场为例

    <娜璋带你读论文>系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢.由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学 ...

  8. 直线检测论文(霍夫变换,LSD,DWP,L-CNN,AFM,HAWP,PPGNet,TP-LSD,M-LSD,LETR)

    记录一手最近看的直线检测论文. 直线检测 线段和连接点是低级视觉中的重要视觉特征,为高级视觉任务提供基本信息,如姿势估计.运动结构.3D重建,图像匹配.线框到图像的转换和图像校正. 传统方法 霍夫变换 ...

  9. 免费论文检测 论文查重 软件 系统 论文免费检测 论文抄袭检测大师

    现在论文抄袭.学术打假成为学术界.媒体关注的话题.有的学者心存侥幸,有的学者对学术严谨性未加重视等,以至于被相关人士揭发举报,最终身败名裂.而许多毕业生因为种种原因,并未对论文抄袭现象加以重视,最后不 ...

最新文章

  1. conda-forge,conda,-c的理解
  2. 使用DWR实现自己主动补全 相似百度搜索框的自己主动显示效果
  3. 水木-搜索引擎技术版
  4. 计算机学机械制图吗,机械制图与计算机绘图(少学时·任务驱动模式)
  5. python3.6.5安装教程-Ubuntu16.04安装python3.6.5步骤详解
  6. python基础装饰器_Python基础 装饰器及练习
  7. Swift傻傻分不清楚系列(十二) 属性
  8. java实现压缩图片的方法
  9. [vue-element] ElementUI使用表格组件时有遇到过问题吗?
  10. listview 模仿用户点击事件。
  11. 如何将微商管理模式流程化
  12. mysql binlog 日志
  13. 计算机二级C常考题型归纳
  14. 【零基础】speech driven animation中文安装使用指南
  15. SEO快速排名,关键词快速排名软件,到底靠谱不靠谱
  16. nginx开启Gzip压缩
  17. cocos2d-x游戏开发屏幕横竖屏切换
  18. 解决Incorrect string value: '\\xD6\\xD0\\xB9\\xFA\\xB1\\xEA...' for column 'VARIABLE_V
  19. 一些事没人做,一些人没事做(转)
  20. RTK点放样用CORS有多简便?附全流程

热门文章

  1. python调用百度AI提取图片文字
  2. IAAS 云平台 Apache CloudStack 2016 年展望
  3. Ubuntu18.04通过ros通信联调Carla0.9.13+罗技G29 ros_g29控制实车vehicle_status话题的转发与消息类型的转换twist——cmd并写入同一个launch
  4. IDE集成开发环境介绍与安装
  5. vue拖拽组件超好用!!!
  6. bioinformatics databases
  7. Xshell和Xftp 安装步骤
  8. 一篇文章教会你利用Python网络爬虫获取素材图片
  9. Java语言,有n个人围成一圈,顺序排号1...n。从第一个人开始报数(从1到3报数),凡报到3的人立刻退出圈子,输入参数为n,计算并返回最后留下的是第几号。
  10. strsep()函数:字符串切割