第38卷第1期2021年1月
计算机应用与软件
Computer Applications and Software
Vol.38 No.1
Jan.2021
基于PDSSD改进型神经网络的小目标检测算法
王鹏1陆振宇1詹天明2戴玉亮1芦佳1
1(南京信息工程大学电子与信息工程学院江苏南京210044)
2(南京审计大学信息工程学院江苏南京211815)
摘要SSD卷积神经网络一直对较小目标检测精度不佳。对此在SSD网络结构的基础上引入空洞卷积(Dilated Convolution) ,并组建空洞金字塔模块(Pyramid Dilated Convolution)和特征空洞金字塔模块(Feature Pyramid Dilated Convolution)融入SSD中,提升了网络浅层特征层的语义信息,提高了深层特
征层的感受野和特征提取能力,构建了新型网络结构Pyramid Dilated SSD(PDSSD)。实验结果表明,PDSSD在PASCAL-VOC数据集上的检测mAP(Mean Average Precision)值高达82. 1%,检测精度和小目标检测能力明显高于SSD,并且网络训练速度和mAP值领先于其他主流算法。
关键词目标检测P D S S D空洞卷积空洞金字塔特征空洞金字塔
中图分类号TP3 文献标志码A DOI:10.3969/j.issn.1000-386x.2021.01.025
SMALL OBJECT DETECTION ALGORITHM BASED ON
PDSSD IMPROVED NEUAL NETWORK
Wang Peng1Lu Zhenyu1Zhan Tianming2Dai Yuliang1Lu Jia1
1(School o f Electronic and Information Engineering, Nanjing University o f Information Science and Technology, Nanjing 210044, Jiangsu, China)
2 ( School o f Information Engineering, Nanjing Audit University,Nanjing 21 H I5,Jiangsu,China)
Abstract The SSD convolutional neural netw^ork is used to detect small objects with poor accuracy.Ba
sed on the SSDnetwork structure,we introduce t he dilated convolution,and construct the pyramid dilated convolution and feature pyramid dilated convolution into SSD.It improves the semantic i nformation of the sha receptive field and feature extraction ability of the deep feature layer,and constructs a n digested SSD(PDSSD).The experimental results showthat the mean average precision(mAP)of VOC dataset is as high as82. 1%,the detection accuracy and small target detection ability of PDSSD are significantly higher than SSD,and the network training speed and mAP value are ahead of other mainstream algorithms. Keywords Object detection PDSSD Dilated convolution Pyramid dilated convolution Feature pyramid dilated convolution
〇引言
随着科技的发展和进步,人们日常生活中接触的 设备越来越智能化,图像识别作为智能设备的一个重 要因素也获得了长足的发展和进步。根据不同对象自动采取相对应的解决方案是一个智能设备必不可少的 能力,而拥有一个高精准率的图像识别算法对于智能 化设备来说在定位对象方面如虎添翼。图像识别是计 算机对一幅图像进行分析和计算之后,识别出所需要 的目标和对象的技术,在算法上可以分为目标检测,目标分类和通过数据库匹配输出目标身份三个部分。目
收稿日期:019-08-05。国家自然科学基金项目(61773220);国家重点研发计划项目(2016YFC02033
01);江苏省自然科学基金项目(BK20150523)。王鹏,硕士生,主研领域:目标检测,目标分类,图像识别。陆振宇,教授。詹天明,副教授。戴玉亮,硕士生。芦佳,硕士生。
150计算机应用与软件2021 年
标检测作为图像识别的首要部分有着举足轻重的地 位,必须将目标成功检测才能进行识别,目标检测的精 度对最终目标识别的精度有很大的影响,因此目标检 测也一直是计算机视觉领域的热门话题之一。
1994年以来,目标检测算法的研究从未间断。时 至今日目标检测领域已经诞生了很多算法,如H aai•特征加上A d a b o o s t特征检测[1<,通过基于级联分类模 型的分类器和矩形特征来实现目标检测,由于H aai•特征仅仅使用了很弱的特征,用H a a•特征做分类的检测 器也是弱分类器,且H a a r特征的精度靠的是多个弱分 类器来实行一票否决式推举来提高命中率,因此H a a 特征分类的性能有限,分类器的个数只能通过不断尝 试才能确定。除此之外,还有H o g特征和S v m算 法[4_6]。H〇检测器沿用了最原始的多尺度金字塔加 上滑窗的思路进行检测,并在图像提取中引入了区块 (B l o k)的概念,将相邻的细胞单元归并为一个B l o k,并在B l o k内对细胞单元特征进行局部归一化,这样 可以进一步增强其光照不变性以及非线性表达能力。虽然H〇特征能较好地捕捉局部形状信息,对几何和 光学变化都有很好的不变性,但对被遮挡的目标以及 动作幅度过大的目标检测都不是很理想。这些传统的 算法都可以实现目标检测,但是效果不是很理想,不能 满足要求极高的目标检测任务。随着硬件条件的提 升,目前深
度学习在目标检测领域有了突破性的发展,并且深度学习算法效果已经全面超越了传统算法,因此深度学习算法更适合用于目标检测。
近年来,随着目标检测在各个领域的广泛运用,在 深度学习方面诞生了很多基于卷积神经网络(C N N)的新算法。在这些算法中最引人注目的有两个分支,一是双阶段检测 R e gi〇n-b ased-C N N(R-C N N)[7]。R-C N N是深度学习在目标检测领域真正意义上的第 一个算法,其思路与传统目标检测类似,先寻目标可 能出现的候选区域,再使用C N N预测相对应的类别,最后对这些候选区域使用边界框回归模型进行修正。随着研究的不断深入,在R-C N N的基础上出现了M ask R-C N N[8]、Fast R-C N N[9]、Faster R-C N N[10]等一 系列算法。另一个分支是单阶段预测,直接预测每一个 默认框的置信度和偏移量算法,包括Single Shot M u ltibox D e te cto r(SSD)[1]、D econvolutional SS D(D S S D)[2]、You Only b o k Once(YO LO v1)[13]、YOLO v2[14]、YOLO v3[15]等。Y0L0v2和Y0L0v3是Y O L O v l的改良版,在精度 和速度上都有了很大的提升。S S D相对于Y O L O速度 更快但精确度低一点,D S S D是S S D作者对S S D的升级,将基础网络VGG16[1]改为了 R e n et l01[17],并在 原特征层后添加了反卷积网络。DSSD与SSD相比虽 然提高了精度,但是训练速度有大幅度的下降。SSD 是2016年提出的网络结构,在当时拥有远超其他算法 的速度以及拔的识别效果,虽然与最近提出的一些 算法相比,识别效果已经略微落后,但是不可否认的是 SSD拥有很高的可以被改进的潜力。最近提出的一些 机制能够有效地对神经网络进行优化,例如空洞卷积、注意力机制和残差网络等。将SSD网络运用于目标 检测
最主要的缺点在于图像中小目标的检测。针对 SSD在目标检测方面的缺点,选择融合最近提出的一 些算法来对SSD进行改进。
空洞卷积[1 -2]可以降低图像尺寸提高感受野,并 且在很多研究者的实验中证明了加入空洞卷积的神经 网络在池化、提取特征以及感受野方面有一定的提升。除此之外还有残差网络[23^],可以提高网络提取特征 的能力,大量的实验证明了残差具有提高神经网络提 取特征的能力,但同时会损耗大量的时间。基于以上 的几种方法,选择将空洞卷积对SSD进行强化,将空 洞卷积组成空洞金字塔模块(P D C模块)结合到SSD 的低层网络特征层中,可以提高底层网络的语义信息 和感受野,将空洞卷积组成特征空洞金字塔模块(FP-D C模块)结合到SSD的网络特征层可以提高网络提 取目标特征的能力。在PASCAL-V O C数据集上的测 试结果表明,本文所提PDSSD方法比目前主流的算法 具有更高的识别精度和训练速度。
1 SSD简介
1.1网络结构
SSD使用简化的VGG16作为基础网络,与传统 VGG16相比,SSD利用A s o u算法将VGG16中的两 个全连接层fc6和fc7层转化成了 conv6和conv7两个 卷积层。并利用c〇n7层与3 x3和1x1大小的卷积 核的不断卷积形成特征金字塔结构。然后从特征金字 塔中选出 conv7、conv8 _2、conv9 _2、convl0_2、co
nvl1_2 层,以及VGG16中的conv4_3层作为特征层。
1.2 Prior Box
特征层生成的Prior B ox通过Softmax分类和边界 框回归能获得真实目标的位置。Prior Box是以特征层 上每个点的中心生成一系列的同心的box,正方形的 Prior B o x的最小边长为\in,最大边长为槡m in X m a x ,
第1期
王鹏,等:基于
PD S SD 改进型神经网络的小目标检测算法
151
通过设置纵横比(叫9奶)可以产生两个矩形,长和宽为
槡 a spect _ra tio X 5m in 和 1/槡 a spect ^ra tio n X 5min ,每个特征
层对应的P rio r B o x 的《5_和^由式(1)决定:
P ^P n
+^^/^-l
) ^ E [/m ]⑴
m - I
式中:m 是特征层的数量。由于数据集图片样本的多 样性,本文采用了 S S D 作者在D S S D 中改进的方法,添 加了一组纵横比,原
S S D 网络使用的纵横比为(1. 0,
2.0,
3.0,1/2,1/3),现在变为(1,1.6,2.0,3.0)。
1.3
loss 函数
S S D 的lo s s 函数包含预测类别损失和预测位置偏
移量损失两部分,其中总损失函数公式如下:
[(>,,,)二七乙隱“%,)+〇
,,))⑵
式中:^表示被挑选出来的包含正样本和负样本在内 的默认框的总数;表示输入的图像;c 为每一类的置 信度;表示预测的框M 表示标签的框;A 〇( •)表示 位置偏移量损失,即默认框与标签所标记的框之间的 位置偏移和网络所预测出来的位置偏移量之间的损 失;4〇f( •)是预测类别损失即多类别Softm ax l o s ; 表示位置偏移量损失的比率,初始值设为1。A 〇( •) 定义为:
N
A
〇〇((,,)= X
Z
x \s m o o th L 1(((i - g ")
i e P
o s m e \c x ^c y ^h \
(3)
g r = (g T -c ),<
(4 )
g
j = (g 7-d c ) /d h l
(5)gj = !〇g |
g ;=i〇g ( d
,
h ,
g
(6
()
smooth h 1 (x )
h ; I < 1
其他
(B )
、d \h
|-0. 5;2
I I
-0.5
式中:o s 表示正样本;g ;c 表示中心点坐标c 的损失;
g f 表示中心点坐标C
的损失;g 表示宽度^的缩放损
失;g 表示高度h
的缩放损失;h 表示预测的坐标偏移
量;g 表示默认框与标签的坐标偏移量;d h 、d h 、dC c 和
dhc
表示默认框的长、宽和中心坐标;m o t ^
表示L
正则化。4〇f( •)定义为:
K
;
。)=- X ;1〇g (ch )- X 1〇g (0) (9)i e P o s e 1 e x p (c h )
式中:N
e
表示负样本;c 为每一类的置信度;C 表示背
景的概率;Ch 表示预测默认框i 为类别P 的Softma 概 率;h e |0,1丨,;=1表示默认框〖匹配到第)个类别
为P 的标签所标记的框,h =0表示没有匹配到合适的
标签所标记的框。
2
PDSSD 模型
本文使用的PDSSD 网络结构如图1所示,在
VGG 16中的conv 4_3特征层和conv 7特征层后加入了特
征空洞金字塔模块(FPDC 模块),
并将SSD 中c _B _
2 层通过空洞金字塔模块(PDC 模块)产生的PDB _2层 代替原来的cnvB _2层。PDB _2层通过不断卷积产 生的 PD 9_2、
PD 10_2、
PD 11_2 层也取代原 c 〇nvB _2、 conv 9_2、conv 10_2、conv 11 _2 层作为新特征层。
X
e x p (c)
(10)
图1
PDSSD
模型
2.1空洞金字塔模块及其结构优化
SSD 网络在检测小目标的方面一直表现不佳,原
因如RRC [25]和RON[26]所述。SSD 在检测目标时,使
用浅层的特征层来检测小目标,用深层的特征层来检 测大目标,然而浅层所能提取的特征信息远远低于深 层的特征层,因此SSD 对小目标的检测性能会不太理 想。基于此,认为提升浅层部分的感受野和信息能够 有效地提升SSD 网络对小目标的检测。不仅如此,提 升浅层部分的感受野对于深层部分的检测精度也有一 定的提升。最近提出的空洞卷积是解决这个问题的很 好的选择,空洞卷积能够在卷积核大小不变的前提下 进行扩张,提高卷积核的感受野,并且能保证输出的特 征层的大小不变。
ASSP [27]和 Pyramid Dilated Deeper ConvLSTM [2B ]正则化改进算法
等都使用了空洞金字塔的结构,并在图像语义分割和 视频流检测上获得了不错的成果,证明了空洞金字塔 结构用于捕获多尺度的信息以及更高密度的提取特征
班
#p ®®
152
计算机应用与软件
2021 年
时有一定的提升。基于此,我们也使用了类似的结构, 并在受到了 D S S D 和残差网络的启发后做出了一些改 进。D S S D 在加入反卷积网络时,将两个矩阵进行了点 和,丰富了特征层的信息,因此在将S S D 中的c 〇n v _8 层融合了空洞金字塔模块之后又尝试与层本 身进行了矩阵相加。整体结构如图2所示。
图2空洞金字塔模块
在空洞金字塔模块中,输入的图片分别进行扩展 尺度为3、5、10的空洞卷积,然后将三个空洞卷积的结 果用c o n c a t 算法结合到一起与大小为1x 1 X 512、步 长为1的卷积核进行卷积,卷积的结果与原输入图片 大小为1 x 1 X 512、步长为1的卷积核卷积的结果进 行矩阵相加得到输出。
假设用(心表示输入空洞金字塔结构 的三维图像,其中'^〇、%、C 〇表示输入图像的长、宽、 通道数。设((T x ^):1为空洞卷积核,((T X x e )S 2为卷 积核,为空洞卷积的扩展尺度,为卷积核大小,C 为 通道数,1为空洞卷积时的步长,2为卷积时的步长, ⑧代表卷积,*代表空洞卷积,㊉代表矩阵相加,•丨 表示将图片经过C o n c a t 算法的操作,
表示空
洞卷积后生成的图片,:T 代表最终输出的图片。
= F ®(#x1x l 28)2=l ®(炉x 3 x 256 ))5:21I x 3 x 256 ) r = 3
/5 =1(11)
= F ®(#
x1x l 28)2=l ®
(炉
x 3 x 256 )
)52
= 13 x 3 x 256 ) r = 5
)5 =1(12)= F 0®(只 1x1x l 28)2 =1®(炉x 3 x 256 \))2
= 13 x 3 x 256 ) r = 10
)s 1 =1
(13)T =
(I F ,F ,F |® (只1xl x 512 ) )h l )㊉(F ®(#x 1x 512)s =)
(14)
每一个核大小为c 、扩展尺度为r 的空洞卷积都能 提供[(-1 )2r - 1 ]大小的视野,人眼在观察到物体的 一些背景之后才能更加突出物体的特征,使用不同扩 展尺度的空洞卷积并且将这些空洞卷积放到一起就能 够模拟出人眼观察物体的情形。而且空洞卷积具有使 输出的图片大小不变的特性,这样能够提高感受野并提 高特征提取密度的方式,很适合用来提升S S D 的性能。
在测试不同扩展尺度时,由于S S D 卷积层大小以
10、5、3的大小依次下降,尝试将扩展尺度与S S D 额外 添加层的大小对应起来设为3、5、10后发现与A S S P 将 尺度设为 6、12、18,以及 P yram id D ila te d D eeper C o nvL -
S T M 将尺度设为1、4、8
的测试结果相比准确度更高,
并且使用数值更大的扩展尺度测试效果反而会下降。 因此最后将其扩展尺度设为3、5、10。将
conV 8
层经过
空洞金字塔模块后产生的层替代原S S D 网络的额外 添加层conv 8,这样可以使S S D 剩余的添加层的输入 由原来的F 。® ((T x x (:)2变为八在提取特征时也能获 得比之前更高的感受野,对整体网络的检测效果有较 明显的提升。由于空洞卷积的性质,能用较少的参数 获得更多的视野,再加上模块中使用了很多1 x 1的卷
积进行降维和升维,有效地减少了模块的计算参数,因
此即使在S S D 加入了空洞金字塔模块后,整体网络的 训练速度也没有损失多少。
2.2特征空洞金字塔模块
S S D 网络一共有6
个特征层,由浅到深分别是
conv 4—3、conv 7、conv 8—2、conv 9—2、c o v l 0—2、c o n v l 1 一2。
其中使用conv 8_2经过空洞金字塔模块后产生的
P D 8_2层代替了 S S D 原
来的c 〇n v 8_2特征层,所以
conv 9 _2、cov 10_2、conv 11 _2三个深层的特征层也转化
为了 PD 9_2、P D 10_2、P D 11_2。虽然加入了空洞金字 塔之后的S S D 网络的检测能力有了不少的提升,但由 于S S D 使用浅层特征层检测小目标的原理,C 〇nv 4_3 和c
n V
两个最浅的特征层提取小目标的能力仍然不
强,因此提出针对特征层优化的特征空洞金字塔模块, 如图3所示。
与空洞金字塔模块相比特征空洞金字塔没有在
c o n c a t 算法之后与原矩阵进行相加,并且由实验测试
之后将空洞卷积的扩张尺度扩大为6、12、18。由于特 征层会直接输入到预测算法,将c o n c a t 算法后的结果
与原矩阵相加意义不大而且会增加计算量,因此直接
将
c o n c a t 算法后的结果作为新的特征层。在不改变特
征层大小的前提下,进一步扩大特征的感受野和语义 信息可以有效地提高原conv 4_3层和conv 7层对小目
标的提取能力。
第1期王鹏,等:基于
PDSSD改进型神经网络的小目标检测算法153
3实验
3.1实验步骤
实验步骤如图4所示。
图4实验步骤
3.2实验数据集
实验时使用的数据是P A S C A L-V O C数据集,p a sc a l-VO C是一个用于计算机视觉项目中图像分类、检 测和分割的一整套标准化的优秀的数据集。P A S C A L-V O C数据集文档详细,使用非常方便,在计算机视觉 领域研究论文中应用非常广,是图像领域分类、检测和 分割算法性能检验的标准数据集之一。
2005年至2012年每年欧盟资助的P A S C A L组织 都会举行一个世界级的计算机视觉挑战赛P A S C A L V O C挑战赛,这个比赛使用的数据集就是P A S C A L-V O C数据集。
P A S C A L-V O C数据集包括 V O C2007 和 V O C2012 两个版本,V O C2012是V O C2007的升级版,包括了11 530幅图片,两个版本标注的内容都包含了人、动 物、车、家具等20种类别。V O C2007包含9 963幅标 注过的图片,由训练、验证和测试三部分组成,V O C2012由训练和测试两部分组成。在实验时将V O C2012和V O C2007的训练部分组合在一起作为训 练集,由于训练集直接参与模型调参的过程,不能反映 模型的真实性能,并且需要验证集帮助调整参数和防 止过拟合,因此凭借着充足的数据量借鉴留出法将V O C2012和V O C2007的测试部分的四分之三作为测试集,四分之一作为验证集。因此有1 000多幅训练集图片,2 000多幅验证集图片,5 000多幅测试集
图片。
3.3实验环境和模型评估指标
实验时使用的机器为TITAN X,编程语言是Python 3.6,框架是 Tensorflow1.4。
实验时评价网络性能好坏的标准采用的是AP 值、mAP值和FPS。其中A P值是用于评价模型性能指标之一,可由精度(precision)和召回率(recall)组成的P R曲线图中曲线与xy轴所围成的图形面积计算得知。精度(precision)表示检测正确的数据个数除以总的检测个数,召回率(recall)表示检测正确的数据个数除以标签之中所有正数据个数。mAP值是所有的AP 值的和除以检测的类别,也是鉴定多目标检测网络性能的主要指标。FPS代表网络训练时的速度表示每秒钟网络处理的图片数。
3.4空洞金字塔模块扩张尺度
实验在构建好SSD网络后,先加入了空洞金字塔模块并测试不同的扩张尺度来确定最优尺度,为保证实验准确,每次实验的学习率设为0. 000 1,Batchsize 设为8。尝试的扩张尺度并不是随意取值,而是以目
前主流的空洞卷积最优尺度以及被认为可以获得较好的结果的一些尺度,将只加入空洞金字塔模块的SSD 称为PDSSD-a,括号内为扩张尺度,在以输入图片大小为300 x300的前提下,实验结果如表1所示。
表1P D S S D-a300在不同扩张尺度下的结果网络结构mAP/ %Batchsize学习率FPS
SSD30075.5280.000136 PDSSD-300
(6,12,18)77.1380.000134
PDSSD-300
(2,4,8)76.9580.000134
PDSSD-300
(3,5,10)
77.9280.。00134
PDSSD-300
(2,3,5)
76.4480.Q00134
越大的扩张尺度不代表越高的精度,而过小的扩张精度提升有限,为了保证准确,在输入为512 x512的条件下进行一次实验,结果如表2所示。
表2P D S S D-a512在不同扩张尺度下的结果网络结构mAP/ %Batchsize学习率FPS
SSD51277.6480.000117
PDSSD-a512
(6,12,18)78.8980.00011
6
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论