开放科学(资源服务)标志码(OSID):
目标检测需判断图像中目标的类别及不同目标的边界框位置,是计算机视觉里的主要任务,被广泛应用于视频监控[1-2]、行人检测[3-4]等领域。传统的目标检测方法依赖人工选择的特征进行计算,如HOG[5]、SIFT[6]、Haar[7]等,但计算复杂,运算速度慢,且对目标形变和背景复杂变化的图像检测鲁棒性较差。而深度神经网络依赖其强大的特征提取和特征表示功能,被广泛应用于目标检测任务。
目前主流的目标检测算法有以YOLO[8-10]系列算法、SSD[11-12]系列算法为代表的单阶段算法和以R-CNN[13-14]系列算法为代表的两阶段算法。单阶段算法将目标检测过程看作回归问题来处理,使用一个统一的深度神经网络进行特征提取和目标分类及边界框回归,实现了端到端的推理,具有较快的检测速度,但检测精度没有两阶段算法高;而两阶段目标检测算法先使用区域建议网络(Region Proposal Network,RPN)提取出感兴趣区域,即含有目标的区域,再用深度神经网络对感兴趣区域进行分类及边界框回归,具有更高的检测精度,但其检测速度太慢,达不到实时的要求。
目前对目标检测算法的改进方法主要包括:使用更复杂更深层的骨干网络,以提取更有效的特征;融合多尺度特征,使浅层特征传递到深层,从而提高定位精度;加入新型网络模块,以增强网络的特征提取能力等。FU等[12]提出在SSD检测框架的基础上,采用更深的ResNet-101网络来进行特征提取,并且采用了反卷积层,引入额外的大量语义信息,改进了SSD算法对于小物体的检测能力,但使用更深的基础网络和反卷积层,增加了大量的计算,使得检测速度大幅降低,无法满足实时的要求。JIANG等[15]通过在SSD网络中引入空洞卷积,扩大特征点的感受野,优化网络的特征提取能力,从而提高了网络的检测精度,但增加了模型的复杂度,导致检测速度的降低。XU等[16]提出在YOLO算法中引入注意力机制和改进的特征融合方法,以提高网络的定位精度,形成了Attention-YOLO算法,但检测速度较慢。
以上研究从不同角度提升了目标检测算法的性能。但单纯地使用反卷积或空洞卷积等操作,扩大了特征点的感受野,可能增加背景区域对特征点信息的影响,导致目标定位不准或把背景误检为目标。对不同尺寸和形状的目标自适应地提取感受野,可以有效地避免这个问题。DAI等[17-18]提出了可变形卷积(Deformable Convolution),通过在常规卷积操作上增加平行网络预测常规卷积采样点的偏移,使得每个采样点都具有一定的偏移量,可以学习到自适应的感受野,从而提高网络对不同尺寸和形状的物体进行特征提取的能力。
本文在YOLO算法的基础上,提出基于可变形卷积的改进dcn-YOLO算法。通过构建残差可变形卷积模块res-dcn,并将其嵌入YOLO特征提取头模块和替换YOLO特征提取层,形成两种改进的dcn-YOLO模型,使网络能够自适应地学习不同尺寸和形变目标的特征,提高目标检测的精度。
1 YOLO算法YOLO是一个端到端的深度神经网络模型,其网络结构如图 1所示,主要由Darknet53主干网络、3个FPN[20]多尺度特征提取头加上3个YOLO多尺度检测层组成,其中所有卷积模块都由卷积层、Batch Normalization(BN)层和leaky激活层组成。Residual为残差模块,将上一模块的输入累加到当前层,以实现浅层特征向深层的传递,提高定位精度。整个特征提取网络由常规卷积层组成,使用3×3的卷积核进行特征提取,采用1×1的卷积核进行通道数压缩,动用步长为2的卷积层来减小特征图分辨率,替代池化操作。
![]() |
Download:
|
图 1 YOLO网络结构 Fig. 1 Network structure of YOLO |
YOLO的核心思想是利用整个图像作为网络的输入,将其分成S×S个网格,如果某个目标的中心落在这个网格中,则该网格就负责检测这个目标,如图 2所示。每个网格检测B个目标,每个目标需要预测边界框坐标(x,y,w,h),其中(x,y)为目标边界框中心坐标,(w,h)为边界框的宽和高;一个置信度得分(该位置有目标的置信度)和C个类别得分(该目标属于某类的概率),所以YOLO检测层输出张量大小是S×S×B×(4+1+C)。以输入图像尺寸为416像素×416像素和VOC数据集为例,3个多尺度YOLO检测层尺寸分为13×13×75,26×26×75,52×52×75,分别负责对大、中、小型目标进行检测,提高了YOLO的检测性能。
![]() |
Download:
|
图 2 YOLO的检测过程 Fig. 2 Detection process of YOLO |
虽然YOLO使用了FPN结构进行多尺度检测,有效提高了对目标的检测能力,但同一特征图上的特征点具有相同的感受野,对形变较大的目标提取的特征容易受到背景区域的干扰,导致检测边界框定位不准,同时背景干扰也会导致小目标检测精度不高。
2 改进的dcn-YOLO模型卷积网络对大尺寸多形变目标的建模存在固有的缺陷,这是因为卷积网络只对输入特征图的固定位置进行采样[21]。例如,在同一层特征图中,所有的特征点的感受野是一样的,但由于不同位置可能对应着不同尺度或变形的物体,因此能够对尺度或者感受野大小进行自适应学习精确定位的目标。
可变形卷积可以提高模型对形变目标的建模能力,使用平行卷积层学习offset偏移,使得卷积核在输入特征图上的采样点发生偏移,可集中于人们感兴趣的区域或者目标。即对卷积核中每个采样点的位置都增加了偏移量,可以实现在当前位置附近随意采样而不局限于常规卷积的规则采样点。如图 3所示为常规卷积的采样点和可变形卷积采样点的对比。图 4所示为可变形卷积的计算流程,使用卷积层对输入特征图计算偏移量,偏移量和输出特征图有相同的分辨率,输出通道数为3N(N为卷积核采样点个数),其中2N为预测的x、y方向偏移量,因为不同采样点对特征有不同的贡献,所以还要预测N个采样点的权重。
![]() |
Download:
|
图 3 常规3×3卷积和可变形卷积采样点对比 Fig. 3 Comparison of sampling points between conventional 3×3 convolution and deformable convolution |
![]() |
Download:
|
图 4 可变形卷积的计算流程 Fig. 4 Computational procedure of deformable convolution |
常规的卷积操作主要分为2步:1)在输入的特征图上使用规则网格R进行采样;2)使用卷积核w对采样点进行加权运算。R定义了感受野的大小和扩张,如式(1)所示定义了一个大小为3×3、扩张率为1的卷积核。
$ R=\left\{\left(-1, -1\right), \left(-\mathrm{1, 0}\right), \cdots , \left(\mathrm{0, 1}\right), \left(\mathrm{1, 1}\right)\right\} $ | (1) |
对于在输出的特征图上的每个位置p0,通过式(2)计算输出值y(p0):
$ y\left({p}_{0}\right)=\sum \limits_{{p}_{n}\in R}w\left({p}_{n}\right)\times x({p}_{0}+{p}_{n}) $ | (2) |
其中:pn是对R中所列位置的枚举。
在可变形卷积的操作中,通过对规则网格R增加一个偏移量
$ y\left({p}_{0}\right)=\sum\limits _{{p}_{n}\in R}w\left({p}_{n}\right)\times x({p}_{0}+{p}_{n}+\mathrm{\Delta }{p}_{n})\times \mathrm{\Delta }{m}_{n} $ | (3) |
由于偏移量
$ x\left(p\right)=\sum\limits _{q}G(q, p)\times x\left(q\right) $ | (4) |
$ G(q, p)=g({q}_{x}, {p}_{x})\times g({q}_{y}, {p}_{y}) $ | (5) |
$ g(a, b)=\mathrm{m}\mathrm{a}\mathrm{x}(\mathrm{0, 1}-|a-b\left|\right) $ | (6) |
图 5所示为常规卷积和可变形卷积的特征点感受野之间的对比。2个特征点(分别在大羊和小羊身上)代表不同尺度和形状的目标。对比可知,通过两层卷积运算,常规卷积的特征点都具有固定尺寸的感受野,而可变形卷积可自适应的学习感受野的采样位置更符合物体本身的形状和尺寸,更有利于特征提取。
![]() |
Download:
|
图 5 常规卷积和可变形卷积的特征点感受野对比 Fig. 5 Comparison of receptive fields between conventional convolution and deformable convolution |
本文基于可变形卷积构建res-dcn模块,在常规的卷积网络中,首先使用3×3的卷积进行特征提取,然后使用1×1的卷积进行特征压缩。对于可变形卷积来说,使用1×1的可变形卷积对采样点计算偏移容易导致采样不稳定,因此,本文的res-dcn模块连续使用3个3×3的可变形卷积进行特征提取。最后再将输出和输入按通道数进行拼接,以保留多层次的语义信息。如图 6所示,Deform able conv是由1个可变形卷积、1个BN层和1个leaky激活层组成。其中,concat为按通道数拼接。
![]() |
Download:
|
图 6 res-dcn模块结构 Fig. 6 Module structure of res-dcn |
本文设计了2种改进的dcn-YOLO模型,第1种是在第1个YOLO特征提取头部嵌入res-dcn模块,第2种是将YOLO网络中3个特征提取头的卷积模块替换为res-dcn,以实现对各个尺度都能更好的自适应提取特征。如图 7所示,该设计参考了YOLO-spp[22]的网络结构。YOLO-spp将YOLO网络中的Head-1特征提取头替换为YOLO-spp Head-1,使用1×1,5×5,9×9,13×13的最大池化层,提取不同尺寸感受野的特征,再将特征按通道数进行拼接以融合多尺度的特征,提高了YOLO的检测性能。由此可知,YOLO网络中Head特征提取头模块具有丰富的语义信息。
![]() |
Download:
|
图 7 YOLO-spp Head-1模块结构 Fig. 7 Module structure of YOLO-spp Head-1 |
本文先将dcn-YOLO1模型在Head-1的第2卷积层后使用1
![]() |
Download:
|
图 8 dcn-YOLO1 Head-1模块结构 Fig. 8 Module structure of dcn-YOLO1 Head-1 |
![]() |
Download:
|
图 9 dcn-YOLO2 Head模块结构 Fig. 9 Module structure of dcn-YOLO2 Head |
本文所用到的实验平台是Intel酷睿i79700KCPU,64 GB内存,NVIDIARTX2080Ti11GBGPU,软件环境是ubuntu18.04,pytorch1.3,cuda10.0,cudnn7.5。本文实验使用pascalvoc2007和voc2012公开数据集,共有20类目标;使用voc2007trainval和voc2012trainval作为训练集,共有16 551张图像;使用voc2007test作为测试集,共有4 952张图像;使用平均精度(mAP)和检测速度(FPS)来检验模型的有效性。
3.1 锚盒计算YOLO使用锚盒作为先验框辅助预测目标边界,尺寸合适的锚盒可以使目标检测精度提高。为了获得平均交并比(avg-iou)更大的锚盒,本文使用k-means++算法进行锚盒计算,使用(1-iou)作为聚类距离。算法流程如下:
算法1 k-means++聚类锚盒算法
输入 训练集所有目标的宽高集合S,聚类中心数K
输出 K组锚盒
步骤1 从S中随机取一个值作为初始聚类中心C1
步骤2 计算S中所有样本与已有聚类中心的最小iou距离d(x),概率计算公式如式(7)所示,并选取下一个聚类中心Ci。
$ p=\frac{d{\left(x\right)}^{2}}{\sum \limits_{x\in s}d{\left(x\right)}^{2}} $ | (7) |
步骤3 重复步骤2直到找到K个聚类中心。
步骤4 对数据集中的每个样本xi,计算其到K个聚类中心的iou距离,并将其划分为距离最小的聚类中心所对应的类别。
步骤5 根据划分结果重新计算K个聚类中心,计算式如式(8)所示:
$ {C}_{i}=\frac{1}{\left|{C}_{i}\right|}\sum\limits _{x\in {C}_{i}}x $ | (8) |
步骤6 重复步骤4和步骤5,直到聚类中心位置不再变化,输出最终的聚类中心。
经过聚类,得到了9组锚盒{(28,55),(65,80),(66,179),(145,114),(116,273),(187,196),(334,200),(215,333),(362,360)},avg-iou值为68.26%,比YOLO默认的锚盒提高了4.10%。
3.2 网络训练为了进行充分的对比实验,分别对YOLO模型、计算新锚盒后的YOLO模型、YOLO-spp模型和本文提出的dcn-YOLO1、dcn-YOLO2模型进行训练,并将YOLO网络中所有常规卷积层简单替换为可变形卷积,形成all-dcn-YOLO模型,以对比可变形卷积的特征提取能力。设置训练迭代50 200轮次,批量大小为8,动量为0.9,衰减系数为0.000 5,学习率更新策略见表 1。使用随机水平翻转、裁剪、调整曝光饱和度等数据增强操作。每迭代10轮次后,随机调整输入图像尺寸(从320像素×320像素到608像素×608像素,以32的倍数变化)。
![]() |
下载CSV 表 1 学习率更新策略 Table 1 Learning rate update strategy |
训练完成后,使用voc2007test数据集进行对比测试,将输入的图像尺寸缩放为416像素×416像素,对比结果见表 2。
![]() |
下载CSV 表 2 各YOLO模型纵向对比实验 Table 2 Longitudinal contrast experiment of YOLO models |
从表 2可以看出,使用k-means++聚类的锚盒获得了更高的avg-iou,mAP有略微提升。dcn-YOLO1和dcn-YOLO2的mAP相比原始YOLO算法分别提高了1.67、2.06个百分点,这是因为本文添加的res-dcn模块可以对不同尺寸和形状的目标自适应提取有效特征。虽然dcn-YOLO1和dcn-YOLO2的FPS有一定降低,但仍然能达到实时的效果。此外也可以看出简单地将所有常规卷积替换为可变形卷积,并不能提高模型的检测效果。相反,由于dcn需要使用一个额外的卷积操作预测采样点的偏移量,在前向计算和反向传播的过程中,与标准卷积相比都增加了计算量,因此训练时间和检测时间大大增加,而检测精度却没有提升。这也证明了本文提出的res-dcn模型有效性,即在损失少量计算速度的前提下,有效地提高了检测精度。
表 3列出了各个模型对不同类别的mAP值,其中加粗部分为各对比模型中获得较高mAP的项。从表 3可以看出,本文提出的模型与原YOLO模型相比,18种类别的目标检测精度均有一定提高,尤其是bird和pottedplant等小目标分别比YOLO高出了4.59、3.70个百分点。同时,对boat和cow等尺寸和形状变化较大的目标,精度分别提高了4.16、3.16个百分点。虽然有些类别对YOLO-spp有更高的精度,但提出的模型只略低一点。总体来看,本文提出的算法仍然达到了最高的mAP。
![]() |
下载CSV 表 3 各模型对不同类别的AP对比 Table 3 Comparison of AP of different models for different categories |
图 10所示为YOLO和dcn-YOLO的检测效果,在第1行中,dcn-YOLO预测出了bird更精确的边界框。由于翅膀所占的像素较少,特征不明显,YOLO提取了更多的背景干扰特征,导致定位精度不高。而dcn-YOLO可以自适应地提取到鸟翅膀的特征,所以定位效果更好。在第2行中,YOLO将2个靠近的船只检测为了1只船,而dcn-YOLO很好地区分出了2只船;在第3行中,dcn-YOLO准确地检测出了左上角远处模糊的车辆,也得益于其良好的特征提取能力;第4行中由于小目标特征不明显,YOLO漏检了很多的小船只,而与之相比,dcn-YOLO检测出了更多的目标,取得了更好的检测效果。
![]() |
Download:
|
图 10 YOLO和dcn-YOLO的检测效果对比 Fig. 10 Comparison of detection effect between YOLO and dcn-YOLO |
将提出的模型和目前性能优异的目标检测算法进行了对比,结果见表 4。可以看到dcn-YOLO与YOLO-spp和Attention-YOLO相比,mAP分别高出了0.64、0.70个百分点,而且检测速度远远超过了Attention-YOLO;与单阶段目标检测算法SSD和DSSD相比,dcn-YOLO算法的mAP分别高出了5.20、4.00个百分点,且检测速度远远超过DSSD,达到实时效果;与两阶段检测算法FasterR-CNN和R-FCN相比,dcn-YOLO算法的mAP分别高出了9.40、2.10个百分点。
![]() |
下载CSV 表 4 dcn-YOLO与其他目标检测算法性能对比 Table 4 Performance comparison between dcn-YOLO and other object detection algorithms |
为提高YOLO算法的检测精度,本文基于可变形卷积构建res-dcn模块,使用k-means++聚类出符合数据集尺寸的锚盒,将res-dcn模块分别嵌入和替换YOLO特征提取头,最终得到改进的dcn-YOLO模型。在VOC数据集上的实验结果表明,该模型相比原YOLO算法以及其他主流的目标检测算法,都获得了更好的效果,证明了本文提出模型的有效性。但由于可变形卷积需要更多的计算量,导致模型的运算速度有一定下降,下一步将构建更好的模型,以保证在不降低网络计算速度的前提下,达到更高的检测精度。
[1] |
LI J W, ZHOU X L, CHAN S X, et al. A novel video target tracking method based on adaptive convolutional neural network feature[J]. Journal of Computer-Aided Design & Computer Graphics, 2018, 30(2): 273-281. (in Chinese) 李军伟, 周小龙, 产思贤, 等. 基于自适应卷积神经网络特征选择的视频目标跟踪方法[J]. 计算机辅助设计与图形学学报, 2018, 30(2): 273-281. |
[2] |
SANG J, GUO P, XIANG Z L, et al. Vehicle detection based on faster-RCNN[J]. Journal of Chongqing University, 2017, 40(7): 32-36. (in Chinese) 桑军, 郭沛, 项志立, 等. Faster-RCNN的车型识别[J]. 重庆大学学报, 2017, 40(7): 32-36. |
[3] |
RUI T, FEI J C, ZHOU Y, et al. Pedestrian detection based on deep convolutional neural network[J]. Computer Engineering and Applications, 2016, 52(13): 162-166. (in Chinese) 芮挺, 费建超, 周遊, 等. 基于深度卷积神经网络的行人检测[J]. 计算机工程与应用, 2016, 52(13): 162-166. DOI:10.3778/j.issn.1002-8331.1502-0122 |
[4] |
XIE L J, JI G S, PENG Q, et al. Application of preprocessing convolutional neural network in pedestrian detection[J]. Journal of Frontiers of Computer Science and Technology, 2018, 12(5): 708-718. (in Chinese) 谢林江, 季桂树, 彭清, 等. 改进的卷积神经网络在行人检测中的应用[J]. 计算机科学与探索, 2018, 12(5): 708-718. |
[5] |
NAVNEET D, BILL T. Histograms of oriented gradients for human detection[C]//Proceedings of 2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition. Washington D.C., USA: IEEE Press, 2005.4-8.
|
[6] |
DAVID G. Object recognition from local scale-invariant features[C]//Proceedings of International Conference on Computer Vision. New York, USA: ACM Press, 1999: 1150-1157.
|
[7] |
PAPAGEORGIOU C P, OREN M, POGGIO T. A general framework for object detection[C]//Proceedings of the 6th Computer Vision, Washington D.C., USA: IEEE Press, 1998: 555-562.
|
[8] |
REDMON J, DIVVALA S, GIRSHICK R, et al. You only look once: unified, real-time object detection[C]//Proceedings of IEEE Conference on Computer Vision and Pattern Recognition. Washington D.C., USA: IEEE Press, 2016: 779-788.
|
[9] |
REDMON J, FARHADI A. YOLO9000: better, faster, stronger[C]//Proceedings of IEEE Conference on Computer Vision and Pattern Recognition. Washington D.C., USA: IEEE Press, 2017: 6517-6525.
|
[10] |
REDMON J, FARHADI A. YOLOv3: an incremental improvement[EB/OL]. [2020-07-28]. https://arxiv.org/abs/1804.02767.
|
[11] |
LIU W, ANGUELOV D, ERHAN D, et al. SSD: single shot multibox detector[C]//Proceedings of European Conference on Computer Vision. Berlin, Germany: Springer, 2016: 21-37.
|
[12] |
FU C Y, LIU W, RANGA A, et al. DSSD: deconvolutional single shot detector[EB/OL]. [2020-07-28]. https://arxiv.org/abs/1701.06659.
|
[13] |
REN S Q, HE K M, GIRSHICK R, et al. Faster R-CNN: towards real-time object detection with region proposal networks[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(6): 1137-1149. DOI:10.1109/TPAMI.2016.2577031 |
[14] |
DAI J F, LI Y, HE K M, et al. R-FCN: object detection via region-based fully convolutional networks[C]//Proceedings of 2016 Conference Advances in Neural Information Processing Systems. Barcelona, Spain: MIT Press, 2016: 379-387.
|
[15] |
JIANG J, ZHAI D H. Single-stage object detection algorithm based on atrous convolution and feature enhancement[EB/OL]. Computer Engineering: 1-10[2020-09-27]. https://doi.org/10.19678/j.issn.1000-3428.0058315. (in Chinese) 姜竣, 翟东海. 基于空洞卷积与特征增强的单阶段目标检测算法[J/OL]. 计算机工程: 1-10[2020-09-27]. https://doi.org/10.19678/j.issn.1000-3428.0058315. |
[16] |
XU C J, WANG X F, YANG Y D. Attention-YOLO: YOLO detection algorithm that introduces attention mechanism[J]. Computer Engineering and Applications, 2019, 55(6): 13-23. (in Chinese) 徐诚极, 王晓峰, 杨亚东. Attention-YOLO: 引入注意力机制的YOLO检测算法[J]. 计算机工程与应用, 2019, 55(6): 13-23. |
[17] |
DAI J F, QI H Z, XIONG Y W, et al. Deformable convolutional networks[C]//Proceedings of IEEE International Conference on Computer Vision. Washington D.C., USA: IEEE Press, 2017: 764-773.
|
[18] |
ZHU X Z, HU H, LIN S, et al. Deformable convnets v2: more deformable, better results[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Washington D.C., USA: IEEE Press, 2019: 9308-9316.
|
[19] |
MARK E, LUC VAN G, CHRISTOPHER K W, et al. The pascal visual object classes challenge[J]. International Journal of Computer Vision, 2010, 88(2): 303-338. DOI:10.1007/s11263-009-0275-4 |
[20] |
LIN T, DOLLÁR P, GIRSHICK R, et al. Feature pyramid networks for object detection[EB/OL]. [2020-07-28]. https://arxiv.org/abs/1612.03144.
|
[21] |
REDMON J, FARHADI A. YOLO: real-time object detection[EB/OL]. [2020-07-28]. https://pjreddie.com/darknet/yolo/.
|
[22] |
GUAN H, XUE X Y, AN Z Y. Video object tracking via online convolutional network[J]. Journal of Chinese Computer Systems, 2017, 38(4): 872-875. (in Chinese) 管皓, 薛向阳, 安志勇. 一种利用在线卷积网络的视频目标跟踪方法[J]. 小型微型计算机系统, 2017, 38(4): 872-875. DOI:10.3969/j.issn.1000-1220.2017.04.040 |