基于改进SSD算法的小目标检测与应用

人工智能技术与咨询

点击蓝字 · 关注我们

来源:《 计算机科学与应用》 ,作者刘洋等

关键词: SSD;深度学习;小目标检测

摘要:

  摘要: 针对通用目标检测方法在复杂环境下检测小目标时效果不佳、漏检率高等问题,本文对SSD小目标检测算法进行改进。利用训练损失的反馈作为判断条件,结合数据增强提高模型对复杂环境的抗干扰能力,降低小目标的漏检率,在网络中引入注意力机制,增加SENet (Squeeze-and-Excitation)模块,对模型中的特征通道进行权重重分配,对无效的特征权重进行抑制,提升有用的特征权重占比。实验结果表明,相比原SSD算法,改进的SSD算法在不引入过多计算量的情况下,能够有效弥补训练过程中小目标监督不到位的不足,在VOC数据集和工地安全帽佩戴数据集上,精度都得到了明显提升。

1. 引言

目标检测是计算机视觉中最具有挑战性的任务,目的是在图像的复杂背景下找到若干目标,并对每一个目标给出一个精确的目标包围盒并判断包围盒中的目标所属的类别 [1]。深度学习的兴起使得目标检测得到加速发展,准确性和实时性都得到了提升,如Girshick等人提出的R-CNN、Fast R-CNN算法 [2] [3]、Ren等人提出的Faster R-CNN算法 [4]、Joseph等人提出的YOLO算法 [5] 以及Liu等人提出的SSD (Single Shot MultiBox Detector)算法 [6] 等。其中,小目标检测是目标检测领域中一个重要的难点问题,实际应用场景复杂、小目标信息不充分,导致小目标的检测效果始终不是很好。小目标检测因而成为计算机视觉领域中的一项具有巨大挑战性的任务。

上述方法仅对常规的目标检测问题效果较好,但所提取出的特征对小目标的表示能力较差,检测效果不佳。MS COCO数据集中将尺寸小于32 × 32像素的目标定义为小目标 [7],大于32 × 32像素小于96 × 96像素的目标定义为中目标,大于96 × 96像素的目标为大目标。Huang等人 [8] 对现阶段的检测器进行调研发现,现阶段的目标检测系统的精度,在小目标上的精度普遍比大目标低10倍,原因主要是由于样本中的小目标分辨率太低,虽然卷积神经网络的特征提取能力对于大中目标已经足够,但是对于小目标还是力不从心,小目标能提供给模型的信息过少也是制约目标检测发展的瓶颈之一。对此,一系列针对小目标检测的方法应运而生,小目标检测因而成为热点研究领域。

Fu等人 [9] 提出DSSD算法,利用ResNet [10] 替换SSD中的VGG [11] 模型,同时为了减少小目标的漏检率,加入反卷积层(Deconvolution),将图像分为更小的格子,但因为ResNet中引入残差连接等,算法的额外开销较大,比SSD算法的速度略慢。Singh等人 [12] 从训练角度切入,在数据层面思考,对数据集进行分析,发现训练样本中的小目标在待检测的图像中占比较小,于是采用一种多尺度的训练方式——图像的尺度归一化(SNIP),在金字塔模型的每一个尺度上进行训练,高效利用训练数据,检测效果得到显著提升,但是计算成本巨大。Lin等人 [13] 利用特征金字塔网络(FPN)融合模型高低层语义信息,增强模型提取的特征对小目标的表达能力。虽然上述方法都在一定程度上提升了小目标的检测精度,由于网络模型冗余导致的算法实时性不足、模型轻量化导致的精度不够、数据量不平衡导致训练不充分等因素,上述方法在实际场景下的检测效果仍然不理想。

本文基于SSD方法,利用数据增强和注意力机制设计一种小目标检测算法,在增加计算量可近似忽略的前提下,提升检测精度。首先,对训练过程进行优化,采用数据增强的方法加强模型对小目标的监督,以每次迭代过程中的各项目标损失占比为判断依据,确定是否在下次迭代过程中增强输入数据,若在当前迭代中小目标贡献的损失占比小于给定阈值,则下次迭代输入为增强图像,反之输入原图像;此外加入SENet模块,提升有效的特征信息权重,抑制作用较小的特征信息权重。实验结果表明,改进后的SSD算法优于原SSD算法,在实际场景下也能有很好的检测效果。

2. SSD算法

2.1. 网络模型

SSD的主要特点是在不同尺度上进行检测与识别,其网络模型分为基础网络和附加网络,在基础网络的末端添加了几个特征层作为附加网络用于预测不同尺度目标以及包围盒的偏移量和置信度。该算法以VGG-16模型作为特征提取网络并将其全连接层替换为卷积层,网络输入RGB三通道图像,附加网络附加4个卷积层。为提高目标检测精度,SSD算法在不同的尺度上进行检测,如图1所示,图像输入网络后从左至右得到6层不同尺寸的特征图(feature map) Conv4_3、Conv7、Conv8_2、Conv9_2、Conv10_2、Conv11_2,尺寸分别为38 × 38、19 × 19、10 × 10、5 × 5、3 × 3、1 × 1,借鉴Faster RCNN算法中的锚点思想,在特征图上生成不同尺度不同宽高比的先验框,而后通过非极大抑制(NMS)等方法输出最终目标类别和定位结果。

Figure 1. SSD network model

图1. SSD网络模型

2.2. SSD优缺点分析

作为单步检测器,SSD算法以回归的方式进行分类和定位,并结合Faster RCNN中的锚点思想进行预测,其算法中的先验框可以使得模型更快的收敛,降低训练成本。若没有采用锚点,则直接回归预测目标的坐标位置,模型难以收敛且计算成本巨大。同时SSD算法选取了模型中的六个特征图进行多尺度检测,各个卷积层所输出的特征图包含的信息是不同的,深层特征尺寸小,包含的语义信息更丰富,适合检测大目标,而浅层特征尺寸大,细节纹理特征信息更为丰富,对小目标的检测很有帮助,其采用的多尺度检测一定程度上是有利于提升小目标的检测精度的。

虽然SSD采用了多尺度的检测机制,利用VGG-16作为网络模型,通过Conv4_3的大尺度特征图来预测小目标,但是该层离顶层距离仍然较远,一个32 × 32的目标经过卷积后在Conv4_3特征图上大小仅为4 × 4,如此少的像素信息难以对目标进行预测。另一方面,虽然采用了六个特征图进行预测,但是特征与特征之间都是独立的,实际上,模型的底层高分辨率特征由于经过的卷积运算较少,包含更多的纹理和细节信息,但包含的语义信息不足,难以区分目标和背景,而高层低分辨率特征语义信息丰富,但卷积下采样过程中丢失了大量细节信息。同时,浅层特征图中包含大量通道,不同通道对于网络的判断也有差别,有些通道包含的信息更为丰富,有些则不那么重要,SSD算法并没有在通道上进行注意力关注。综上,SSD算法在实际应用场景下,对于小目标的检测效果并不理想。

3. 算法改进

3.1. 数据增强

Mosaic方法 [14] 是由Bochkovskiy等人提出的一种数据增强方法,可以当作是Cutmix [15] 方法的改进版。Cutmix算法对一张图像进行操作,在待增强图像上随机生成一个裁剪框,在裁剪框内填充训练集中其它数据中相应的位置像素,可以提高训练的效率。而Mosaic方法在Cutmix基础上再加入两张图像,如图2所示,采用4张图像进行混合,极大程度地丰富了训练图像的背景以及上下文信息,可以一定程度降低小目标的漏检率,同时4张图像的混合使得mini-batch不需要太大,可降低硬件需求。

Figure 2. Mosaic data enhancement example

图2. Mosaic数据增强示例

3.2. 训练优化

目标在现实生活中其实是随处可见的,比如远距离的交通标志,空中大背景下的小鸟等。MS COCO数据集中设定小于32 × 32大小的目标即为小目标,小目标虽然是很常见的,但其分布却是不可预测的。MS COCO数据集中,有41.43%的目标是小目标,远远高于其他两种尺度的目标。然而,包含小目标的图像只占训练集所有图像的51.82%,而包含大尺度目标和中等尺度目标的图像占比分别为70.07%和82.28%。也就是说,现有的环境下,待检测的大部分目标都是小目标,但是几乎一半的图像是不包含小目标的。这种训练样本的不平衡,也就导致训练的不平衡,严重阻碍了训练过程的推进。因此,考虑结合数据增强的策略从训练过程中去改善这种不平衡。模型在训练过程中大中小目标都是会反馈一定的损失进行优化驱动的,而在这一过程中,小目标所贡献的损失往往偏低,这样一来,训练好的模型对于大中目标的检测效果自然更好,这里提出一种优化方法,根据小目标所贡献的损失占总损失的比例来进行训练优化,如图3所示。假定某次迭代d中,来自小目标贡献的损失占总损失的比例小于给定阈值μ(即表示这次迭代小目标受到的监督不足),则第d + 1次迭代采用数据增强后的图像输入,反之,则采用原常规训练图像(此处阈值根据经验设置,经过多次不同阈值的设置对比,取0.1最为合适)。对于目标o,其面积So可以近似于它的包围盒宽高之积ho × woS表示第d次迭代中的小目标,MS COCO数据集规定面积小于32 × 32的目标即为小目标, LdSLSd 为第d次迭代下小目标的总损失, LdLd 为第d次迭代下的总损失, μdSμSd 为小目标的损失比。这种优化方法能够损失分布不均匀以及训练样本不平衡的问题。

Figure 3. Training optimization pipeline

图3. 训练优化流程图

3.3. 模型优化

SENet (Squeeze-and-Excitation Networks) [16] 是Hu等人结合注意力机制提出的一种网络结构,Hu等人曾凭借该结构夺得ImageNet2017竞赛图像分类任务冠军。该网络的核心思想在于,通过学习的方式,自动获取网络中每一个特征通道的重要程度,而网络也可以依据这个重要程度去提升有用的特征通道重要性并且抑制对于当前任务用处不大的通道重要性。输入特征X,经过一系列卷积池化操作得到特征通道数为C的特征U。首先对特征U进行压缩(Squeeze)操作,沿着空间维度进行特征压缩,得到通道级的全局特征,这个特征某种程度上具备全局感受野,且输出的维度与输入的特征通道数相匹配,表示在特征通道上响应的全局分布,可以让较浅的层获得更为全面的感受野。而后进行激励(Excitation)操作,学习各个通道之间的关系,通过参数w为每个特征通道生成权重。最后再进行权重的重新分配,完成在通道维度上对于特征的重标定,使得模型对于各个通道的特征更有判别能力。

因此,考虑到SSD算法模型中不同的通道对于小目标的检测也有着不同影响,也可以通过增强有效通道的特征权重,抑制无效通道的特征权重,从而提升SSD算法对于小目标检测的精度。所以选择在Conv4_3、Conv7、Conv8_2、Conv9_2、Conv10_2、Conv11_2层之后加入SE模块对特征图的特征通道进行权重重分配,改进后的结构图如图4所示。

4. 实验

实验平台采用如下配置:Ubuntu18.04操作系统,基于Pytorch1.3框架搭建实验,GPU显卡型号为RTX2080ti,为充分展现实验效果,采用两套数据集,分别为Pascal VOC数据集以及SHWD数据集(工地场景安全帽数据集),其中,为避免产生过拟合等由于数据量不充足造成的问题,选用VOC2007和VOC2012数据集的训练集作为训练集,在VOC2012数据集的测试集上进行测试。SHWD数据集提供了用于安全帽佩戴和人头检测的数据,包括7581张图像,其中9044个佩戴安全帽的样本和111514个正常头部样本。

实验采用VOC2007数据集和VOC2012数据集进行训练,选取目前几个比较流行的目标检测方法进行对比,包括YOLO系列、SSD系列、RCNN系列,可以看出算法的平均精度得到了有效的提高,如表1所示。

Figure 4. Improved network structure diagram

图4. 改进后的网络结构图

Table 1. Comparison of mAP indexes of several target detection algorithms

表1. 几种目标检测算法mAP指标对比

具体各类的精度如表2所示,在VOC2007验证集上进行验证,将本文改进的SSD算法与原算法对比。可以得知,改进后的模型在bird、bottle、plants、chair等不同小目标类别上相比于原SSD算法均有着不同程度的提高。

算法名称

数据集

mAP(%)

aero

bike

bird

boat

bottle

bus

car

cat

chair

SSD

07 + 12

77.6

79.9

85.1

76.1

71.7

54.0

85.6

85.9

87.1

58.6

Ours

07 + 12

80.6

83.8

87.7

79.1

75.2

59.2

88.9

87.7

88.3

64.2

cow

table

dog

horse

motorbike

person

plant

ship

sofa

train

tv

SSD

83.6

76.3

85.2

87.3

86.2

79.1

50.3

78.9

77.6

87.5

77.1

Ours

85.0

77.6

86.4

88.6

86.8

81.9

57.9

81.7

82.1

88.7

81.2

Table 2. Comparison of different types of AP indexes

表2. 不同类别的AP指标对比

图5是原SSD算法与本文改进算法的效果对比,可以看出,原SSD算法对于chair、bottle、plant等小尺寸目标检测效果较差,漏检率较高,而改进后的SSD算法一定程度上降低了小目标的漏检率,并且提升了检测小目标的精度。

Figure 5. Comparison of SSD algorithm and improved SSD algorithm

图5. SSD算法效果与改进SSD算法效果对比

除了在标准公共数据集下进行比较,为了进一步探究算法的实际应用有效性,在相同的实验环境下,通过SHWD数据集中的安全帽佩戴进行训练,将训练完成后的模型进行测试,测试指标如表3所示,可以看出改进后的算法在该数据集上的平均精度是要高于SSD算法的,同时在识别安全帽是否佩戴的两种情况下,精度都是要高于原SSD算法的。如图6所示,图6左侧代表改进SSD算法的效果,图6右侧表示原SSD算法效果。由图6可以看出,工地场景下遮挡情况较多,原SSD算法容易因为遮挡而没有检测到相应目标,甚至可能因为环境光线等因素而出现误判,而改进SSD算法在遮挡情况下仍然成功检测到相应目标。

综合上述实验可得,本文提出的改进SSD算法相较改进前的算法,一定程度上降低了小目标的漏检率,同时精度得到有效提高,对于小目标以及遮挡目标的检测效果也更好,在实际的应用场景下如文中选用的工地环境下,也能得到充分应用,具有一定的实用价值。

算法名称

AP (%)

mAP(%)

佩戴安全帽

未佩戴安全帽

SSD300

86.5

87.6

87.1

SSD512

87.7

88.5

88.1

Ours

90.6

91.1

90.9

Table 3. Comparison of two methods in construction site

表3. 工地场景下两种方法对比

Figure 6. Comparison of two methods in construction site

图6. 工地场景下两种方法效果对比

5. 结语

本文针对小目标检测效果不佳、漏检率高等问题,对SSD算法进行改进,从小目标的训练损失占比切入,对每次迭代过程中的损失占比进行监督,结合一些数据增强方法增强了小目标的训练效果,在计算量增加成本可以忽略不计的情况下提高了检测效果。并在模型中引入SENet模块,筛选通道间的注意力并学习通道之间的相关性,对每层的特征通道进行权重重分配,最终改进的SSD算法在小目标的检测效果上得到了很大的改善,同时在安全帽佩戴数据集上表现优异,在实际场景下也具备一定的应用价值。未来将继续研究训练过程的优化和网络结构的调整以及从多尺度的方面入手,争求进一步提高精度。

赶紧长按上面图片添加关注!

转发,点赞,在看,安排一下

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/481699.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

「上帝粒子」发现10周年

来源:FUTURE | 远见 选编:闵青云 2012年7月4日,欧洲核子研究中心(CERN)宣布发现了「上帝粒子」(希格斯玻色子)。希格斯玻色子是粒子物理学标准模型预言的一种玻色子,正是它的存在&am…

基于对抗生成网络的滚动轴承故障检测方法

人工智能技术与咨询 点击蓝字 关注我们 来源:《人工智能与机器人研究》 ,作者华丰 关键词: 不平衡工业时间序列;异常检测;生成对抗网络;滚动轴承数据 关注微信公众号:人工智能技术与咨询。了解更多咨询&…

社会演化动力学:人类社会复杂性为何不断增加?

来源: 集智俱乐部编译:任卡娜审校:刘培源编辑:邓一雪导语在全新世(the Holocene,11700年前以来)期间,人类社会的规模和复杂性显著地增长。一代又一代的研究者试图提出不同的理论来对…

基于机器学习的网络安全态势感知

人工智能技术与咨询 点击蓝字 关注我们 来源:《计算机科学与应用》 ,作者杨怡等 关键词: 机器学习;态势感知;关联分析;攻击场景重建 摘要: 摘要: 在传统网络防御手段抵御攻击的基础上,提出了一…

「Python」为什么Python里面,整除的结果会是小数?

原文:https://www.cnblogs.com/bEngi1/p/9155297.html  ‘//’明明是整除,为什么结果不是整数,而会出现小数? 首先,关于除法有三种概念:传统除法、精确除法和地板除 1 2 3 4 5 6 7 #1、传统除法&#x…

《Nature》创新技术发现环境变化影响活细胞的RNA形状

来源:生物通通过创新技术,揭示了环境条件对活细胞中RNA动态结构的影响。这项研究是Dame Caroline Dean FRS教授和Yiliang Ding博士团队合作的结果,增加了我们对细胞水平对环境信号的反应的理解。这增加了我们利用这些知识来微调作物或开发基于…

C/C++预处理指令#define,#ifdef,#ifndef,#endif…

原文https://www.cnblogs.com/zi-xing/p/4550246.html 管理 C/C预处理指令#define,#ifdef,#ifndef,#endif… 本文主要记录了C/C预处理指令,常见的预处理指令如下: #空指令,无任何效果 #include包含一个源代码文件 #define定义宏 #undef取消…

面向制造领域人机物三元数据融合的本体自动化构建方法

面向制造领域人机物三元数据融合的本体自动化构建方法 人工智能技术与咨询 点击蓝字 关注我们 摘要 当前,智能制造面临的许多问题都具有不确定性和复杂性,单纯地利用专家经验和机理模型难以有效解决.鉴于此,面向跨层跨域的复杂制造系统网络化协同控制机制,提出一种基于本…

“中国脑计划”:向最后的前沿进发

来源:神经科技编辑:Yezi审阅:mingzlee7大脑是人类智慧的集结,是已知宇宙当中最复杂的产物,但我们对大脑认知却很晚,比如我们常说心想事成、心外无物,在很长的历史时期当中,我们都以为…

基于人机协作的无人集群搜索方法研究

基于人机协作的无人集群搜索方法研究 人工智能技术与咨询 点击蓝字 关注我们 关键词: 无人集群 ; 人机协作 ; 动态规划 ; 多Agent系统 摘要: 人与机器人交互是当前一项研究热点,人与无人集群协作搜索是人机交互的典型场景,通过结…

chatbot1_2 RNN简单实现

chatbot1.2 如何处理多义词的embedding? 每个意思一个向量,多方叠加。在某个切面与其相同意思的向量相近 如何识别和学习词组的向量? 多次出现在一起,认为是词组 如何处理未曾见过的新词? 语境平均,语…

DeepMind创始人Demis Hassabis:AI 的强大,超乎我们的想象

来源:微信公众号“雷锋网”撰文:黄楠、王玥编辑:陈彩娴有人认为 AI 已经穷途末路,但一些绝顶聪明的人还在继续求索。近日,DeepMind 的创始人 Demis Hassabis 作客 Lex Fridman 的播客节目,谈了许多有趣的观…

组网雷达融合处理组件化设计与仿真

人工智能技术与咨询 点击蓝色 关注我们 关键词: 组网雷达 ; 点迹融合 ; 航迹融合 ; 组件化设计 ; 仿真 摘要 数据融合处理是多雷达组网的核心。以典型防空雷达网为参考对象,采用组件化设计方式,将组网数据融合处理过程划分为不同的组件&…

chatbot2 RNN语言模型

基于RNN的语言模型 RNN语言模型理论基础 参考文献 cbow/skip gram 的局限性#### 解决方案 rnn模型细节 数学表示 一个输入一个输出的不是循环神经网络。 RNN语言模型实践 demo1 1A. 优化上一节课的RNN模型 在第一个版本里面,我们将上一节课的代码包装为Class&…

脑机接口:人工智能下一站?

来源:《光明日报》 作者:杨义先、钮心忻,北京邮电大学教授 随着人工智能的发展,脑机接口也逐渐从科幻走进现实。有人希望以此造就“超人”,更多的人则希望能够解决实际问题——让盲人复明、让瘫痪在床的患者重新走路…

仅活了 5 年!谷歌官宣停掉 IoT Core 服务:“现有连接将被关闭”

来源:AI前线整理:冬梅谷歌云 IoT Core 服务推出 5 年后“退役”近日,据外媒报道,谷歌宣布自 2023 年 8 月起,将关闭其物联网(IoT Core)服务,此次官宣 IoT Core 的退役,也…

tensorflow1、2会话、变量、feed、fetch、最小二乘法

第一节课 tensorboard–可以查看训练效果 安装ananconda(略) tensorflow简介 tensorflow结构 是个数据流动的趋势, graph1:默认图 graph2:W*xb->ReLU 2-1 基本计算-会话的使用 import tensorflow as tf # 创建一个常量op,1*…

《Nature》十年努力,“合成”胚胎与大脑和跳动的心脏

来源:生物通研究人员已经用小鼠干细胞创造出了模型胚胎,这些干细胞形成了大脑、跳动的心脏和身体所有其他器官的基础——这是重建生命第一阶段的新途径。小鼠胚胎的小脑由Magdalena Zernicka-Goetz教授领导的研究小组在没有卵子或精子的情况下开发了胚胎…

tensorflow3 非线性回归、mnist、简单神经网络

mnist数据集 手写数字的数据集。60000行训练数据集,10000行测试数据集下载地址:http://yann.lecun.com/exdb/mnist/index.html mnist数据集是形状为[60000,784]的张量,60000张图片,每个图片有784个像素点,这些个像素点…

【院士思维】张钹:我们正处在AI算法不可控的危险状态

来源:清华大学人工智能国际治理研究院8月19日,2022世界机器人大会主论坛正式开幕,期间,有三位院士到场,就“未来机器人:目标、路径和挑战”的主题进行了一场深刻的谈话。三位院士分别为中国科学院院士&…