王彤 李琦
摘要 以深度学习为基础的YOLO目标检测技术因检测速度快,而广泛应用于实时目标检测领域中,但其检测准确率不高,尤其是对小物体的检测能力较差。针对上述问题,本文提出一种改进模型——R-YOLO。该模型将残差单元引入YOLO目标检测,既可以通过增加网络的深度,提高网络的准确性,又可以利用残差网络的快捷连接方式,以保证检测的实时性。同时结合CBNet结构,增强语义信息,进一步提高R-YOLO的准确性。最后在改进的YOLO模型中通过特征金字塔融合,结合不同阶段卷积层输出的特征信息,使得融合后的特征图同时具有深层次的语义信息和浅层次的位置信息,以提高对小物体的检测准确性。在Pascal数据集上的实验显示R-YOLO在准确率上较YOLO提高了7.6个百分点,对小物体的检测结果更准确。结果表明,残差单元和特征金字塔融合的引入有效改进了YOLO网络模型的检测性能。
关 键 词 深度学习;目标检测;YOLO;残差网络;特征融合;CBNet
中图分类号 TP319.4 文献标志码 A
Research on improved YOLO target detection algorithm based on residual network and feature fusion
WANG Tong, LI Qi
(School of Electronics and Information Engineering, Hebei University of Technology, Tianjin 300401, China)
Abstract The YOLO target detection technology based on deep learning is widely used in the field of real-time target detection with its fast detection speed, but its detection accuracy is not high, especially for small objects. In response to the above problems, this paper proposes an improved model-R-YOLO. The model introduces the residual unit into YOLO target detection, which can not only increase the depth of the network to improve the accuracy of the network, but also use the fast connection method of the residual network to ensure the real-time detection. Combined with the CBNet structure, the semantic information is enhanced and the accuracy of R-YOLO is further improved. Finally, through feature pyramid fusion in the YOLO model, combined with the feature information output by the convolutional layers at different stages, the fused feature map has both deep semantic information and shallow location information to improve detection accuracy of small objects. Experiments on the Pascal data set show that R-YOLO is 7.6 percentage points higher in accuracy than YOLO, and the detection results for small objects are more accurate. The results show that the introduction of residual unit and feature pyramid fusion effectively improves the detection performance of the YOLO network model.
Key words deep learning; target detection; YOLO; residual network; feature fusion; CBNet
0 引言
隨着科技的进步,以深度学习为基础的目标检测技术广泛应用于交通、军事和医疗等领域,已成为研究热点。传统的目标检测算法需要人为的提取特征,这种方式受目标物体姿态、光照和背景等环境因素影响,很难达到一个统一的标准。通过滑动窗口思想进行目标提取的方式,因其运算量巨大,检测速度较慢。直到卷积神经网络的出现,实现了更好、更快、更准确地完成对图像的识别和检测。并随着网络的不断加深,深度卷积神经网络采用非线性变换,通过数据驱动的方式,学习图像中更全面的特征信息,使得目标特征具有更好的泛化能力,促进了图像处理中识别和检测效能的提升[1-2]。
深度学习目标检测技术的发展主要集中在2个方向:一个是R-CNN(Region-CNN)和FAST R-CNN等的two stage算法,另一个是YOLO[3](You Only Look Once)和SSD[4](Single Shot MultiBox Detector)等的one stage算法。R-CNN[5-6]模型由生成候选框、特征提取、目标分类和回归定位4个部分构成,是第一个将深度学习应用于目标检测的方法。在此基础上,将模块整合提出了FAST R-CNN[7],2016年又提出了基于RPN思想的FASTER R-CNN[8],它们都采用分类器和定位器去进行检测[9],这种方式需要将模型应用于多个位置和不同比例的区域,依据评分的结果进行监测分析[10],速度相对较慢。YOLO目标检测算法在一个神经网络模型里同时实现对目标范围和目标类别的检测,使得目标检测速度得到大幅提升。在Pascal数据集上的测试中,虽然YOLO算法对目标物体检测速度很快,但与FAST R-CNN相比,YOLO的准确率相对较低,尤其在对小物体的检测上效果不理想,针对这个问题,很多学者基于各类YOLO模型进行了改进[11-15],以提高YOLO的检测性能。
本文基于YOLO-v1模型进行改进,针对其检测准确率不高的问题,提出了3点改进措施:1)运用残差网络的快捷连接方式,加深其网络结构,在保证检测速度的前提下,提高了准确率;2)结合CBNet网络形式丰富特征层的特征信息,提高检测准确率;3)是将特征融合思想引入模型中,将各阶段的输出特征进行金字塔融合,使得特征中既包含浅层次的位置信息,又包含深层次的语义信息,提高对小目标的检测准确性。
1 YOLO目标检测算法
YOLO算法采用的是CNN分类器,将单个神经网络应用于整个图像,通过卷积运算,提升图像处理的效率,因此具有端到端与实时性的检测能力。其检测原理如图1所示。
每个边界框都对应着一个置信度,如式(1)所示,其中[PrObject]表示单元格中是否包含目标,[IOUtruthpred]表示预测与真实边界框的交并比。如果一个目标的类别置信度的中心点坐标在一个单元格中,这个单元格就是包含这个目标,也就是说由该单元格负责预测这个目标。
测试过程中,每个网格输出的最终概率如公式(2)所示,[PrClassiObject]表示网格中包含并属于第i个类别的概率。最后将得分较高的边界框采取非极大值抑制方式得到最终的检测结果。
YOLO网络和GoogleNet的结构非常类似,其模型结构如图2所示。
这种直接在输出层回归目标边界框的位置及类别的方法,无需再生成候选区域,在目标的检测准确性上会有一定的下降,并且随着卷积层数的加深,对小目标的特征信息不断丢失,使得在小目标上的检测性能较差。
2 改进的YOLO目标检测算法
针对YOLO算法中存在的问题,本文结合残差网络与特征融合提出了一种改进模型——R-YOLO。本文將网络进一步加深,以提高网络检测准确率,并结合CBNet网络形式和特征融合,改善对小目标的检测性能。随着网络深度的增加,使得反向传播越来越困难,性能开始出现退化。因此在改进中增加网络的深度,不是单纯靠卷积层的堆叠,而是运用残差单元,以优化网络性能。
2.1 在YOLO模型中引入残差网络
在目标检测中,网络深度对于检测性能具有非常重要的意义[16],因此本文进一步增加了YOLO网络的深度。但是单纯加深网络深度很可能造成网络性能的退化,残差网络很好地解决了这一问题。深度残差网络是2015年提出的深度卷积网络,在图像分类、检测、定位上的表现十分出色。相对于将每一层的卷积做连乘计算的普通网络,残差网络的前向过程是线性的,通过快捷连接方式进行身份映射,对每一个堆叠的层都采用残差学习。将残差单元应用在深度卷积神经网络中,基于跳层连接[17],缓解了网络模型在训练过程中反向传播中的梯度消失现象,从而使得深层网络不再难以训练,解决了随网络加深的性能退化问题[18]。残差单元的定义如公式(3)所示。
式中:x和y是残差单元的输入和输出向量;函数[Fx,Wi]表示要学习的剩余映射。对于图3中具有两层的示例,用σ表示ReLU函数。执行操作F+x,在加法之后采用ReLU函数进行激活(即[σy])。这样的快捷连接没有增加额外参数,计算复杂性也没有增加。x和F应具有相同的尺寸。当x和F的尺寸不同时,需要运用线性投影Ws进行尺寸的匹配,如式(4)所示。
本文结合残差单元加深YOLO的网络结构。在YOLO模型中的第3个和第4个池化层后分别加入2个三层残差单元,前面网络提取的特征跳过中间三层的卷积计算,直接与残差单元最后一层卷积层的输出相加传送给后面的网络,提高网络的检测准确率。两个残差单元结构如图4所示。
第1个残差单元中,第1层卷积层使用1×1卷积核将256维通道数降为128维,然后第2层卷积层再通过3×3卷积核提取图像特征信息,最后通过一个1×1的卷积核将128维的数据扩充为256维,结合前面网络输出的256维数据进行输出。第2个残差单元中,第1层卷积层使用1×1卷积核将1 024通道数降为256维,第2层卷积层再通过3×3的卷积核提取图像特征信息,最后再用一个1×1的卷积核将256维度扩充为1 024维,结合前面网络输出的1 024维数据进行输出。
残差网络在通过快捷连接方式,直接越过下一层跳转至更深层,为提取特征阶段提供丰富的语义信息,从而有效提取目标特征,提高了网络检测性能,同时不增加计算复杂度,致使检测速度并没有下降。因此,在YOLO中嵌入残差单元,加深了网络深度的同时没有造成性能的退化,提高了特征提取网络的检测性能。
2.2 在YOLO中引入CBNet结构
CBNet(复合主干网络)由多个相同的主干网络并行构成(如图5所示),前面(k-1)个主干网络为辅助主干网络,最后一个为领导主干网络。每个辅助主干网络特征层的输出,都作为并行网络中该层的输入,通过复合连接块进行连接,这样将不同层级的特征融合到一起,产生更加丰富的语义信息,提高目标检测器的性能。
本文采用相邻的高级组合的双层主干网络形式,将辅助网络中每一阶段的输出都复合连接到领导主干网络该模块的输入。
2.3 在YOLO模型中引入特征金字塔融合
图像中存在不同尺寸的目标,而不同大小的目标具有不同的特征,利用浅层特征可以区分简单的目标,利用深层特征可以区分复杂的目标。许多有关目标检测的研究发现[19],由于低层特征的分辨率较高,能够提取更多的位置、细节等信息,但是语义信息低,噪声多;高层特征包含的语义信息较多,但是分辨率低。因此,YOLO在进行检测的过程中,随着网络层数的加深,每一层会丢掉图像本身的一些特征信息,最终学习到小目标特征较少,检测能力较差。
由于足够底层的特征对于检测小物体很有帮助,因此将网络中前几层的特征图进行融合能够提高网络的检测性能。但是在合并过程中,不同层的特征图尺寸不同,因此有人采取最大池化的方法,将特征图调整到同一个尺寸,再进行合并。但是这种方式在压缩过程中,会丢掉特征图本身的一些信息。
为避免融合过程中的特征信息丢失,提高对小目标的检测能力,本文在YOLO模型中引入特征金字塔融合(如图6)。这种方式将顶层特征通过上采样和低层特征做融合,能够很好地保留低层特征图中原有的特征信息,具有很好地泛化能力。其中1×1的卷积核用来减少特征图的个数,但并不改变特征图的大小。融合过程中采用上采样进行尺寸的匹配,每次融合后再采用3×3的卷积核来消除上采样的混叠效应。
结合特征融合改进的YOLO网络模型,在基于残差网络的YOLO模型基础上,将第1层、第6层和第30层的输出进行contact并行连接,先将第30层的7×7大小的特征图采用1×1的卷积核进行上采样,扩充为56×56大小,与第6层输出的56×56大小的特征图融合,融合结果再进行上采样,扩充为224×224大小的特征图,与第一层卷积的224×224的输出结果进行融合,融合结果送入全连接层中输出结果,进行分类。使用特征金字塔融合,不仅可以获得性能的提升,同时可以获得速度的提升。
2.4 R-YOLO的网络结构
R-YOLO的网络结构如图6所示,上半部分为主干网络结构,下半部分为辅助网络结构,主干网络内部参数如表1所示,辅助网络内部参数同主干网络对应阶段。主干网络模型总共由30个卷积层、4个池化层、一个融合模块和2个全连接层组成,在第3个和第4个池化层后加入残差单元,加深网络结构;我们将主干网络中融合模块前的结构视为辅助网络,将每一阶段的结果复合连接到主干网络上,形成一个双层主干网络,将主干网络中的第2层、第6层和第30层的输出特征图进行融合,提高网络检测性能。
2.5 R-YOLO的损失函数
在训练过程中,常常使用损失函数作为其目标函数对算法进行优化。R-YOLO算法采用均方差作为损失函数的计算依据,共包含定位误差和分类误差,由于较小的边界框相比较大的边界框对坐标误差更加敏感,所以选取网络中边界框宽和高的平方根进行预测,预测值为[x,y,w,h]。另外,在众多边界框中,只选择与ground truth的IOU最大的边界框来负责预测该目标,则认定其他的边界框不存在目标。当边界框中没有目标的时候,该边界框只存在置信度误差项,不存在定位误差。最终的损失函数计算如式(5)所示。其中x,y是边界框的中心坐标,w和h是边界框的宽和高,C代表边界框中含有目标的置信度,[lobji]指的是第i个单元格存在目标,[lobjij]指的是第i个单元格存在目标,且该单元格中的第j个边界框负责预测该目标,[λcoord]为定位误差的权重,[λnoobj]为边界框中不包含目标的权重。因此公式中第1项和第2项分别是对边界框的中心坐标以及高与宽的误差计算,即[Lossb-box],第3项和第4项是对输入图像中包含目标和不包含目标的边界框的置信度误差计算,即[Lossconfidence],而最后一项是对包含目标的单元格的分类误差计算,即[Lossclass]。
3 实验结果与分析
本文的实验环境采用Windows10,64位操作系统,Intel Core i7-10750H六核处理器,NVIDIA RTX2060独立显卡,16G内存的计算机。框架采用pytorch1.0.1框架。
训练网络时使用Pascal VOC2012数据集,从中随机抽取的22 129张图像,实验中的参数设置:batch_size大小为128,迭代次数8 000次,momentum设置为0.09,weight decay(惩罚项:所有权重的平方乘以一个衰减常量之和)初始值为0.01,初始权重统一设置为均值为0、方差为0.02的随机数,坐标预测权重与分类预测权重一致,激活函数使用Leaky ReLU。将训练好的模型在Pascal VOC2007数据集进行测试,选取5 032个样本,batch_size设为30,迭代500次,得出结果并进行分析。
3.1 R-YOLO训练过程中准确率和损失变化的结果与分析
图8和图9是R-YOLO训练过程中随着训练迭代次数的增加其准确率和损失函数变化的曲线,随着迭代次数的增加,对权重不断地更新,准确率越来越高,损失越来越小。结果说明,在一定迭代次数范围内,训练迭代次数越多,模型学习到的特征信息越多,对权重的更新越接近正确值,准确率会越高。迭代前期,损失迅速下降,准确率迅速上升,在迭代次数达到5 000时,准确率基本维持在了0.96左右,损失也基本达到了一个比较稳定的状态。
3.2 R-YOLO目标检测实例
R-YOLO和YOLO两种算法结构在Pascal VOC数据集上训练后进行实验的检测结果如图10所示,左侧是YOLO检测结果图,右侧是R-YOLO检测结果图。图中R-YOLO的检测结果明显优于YOLO的检测结果,能够更准确地识别出图中的牛和飞机,对于小物体的定位误差更小。实验表明,基于残差网络与特征融合改进的R-YOLO目标检测算法,提高了原始YOLO模型的检测效率。
3.3 R-YOLO目标检测算法的实验结果与分析
本章对R-YOLO、Fast R-CNN、Faster R-CNN、YOLO和YOLO-v2在Pascal VOC 2007数据集上进行性能分析,主要对mAP(平均检测准确率)和FPS(帧数)进行对比。结果如表2所示。从表中可以看出,相比Fast R-CNN,YOLO的mAP稍微略低一些,但是速度却快很多。Faster R-CNN在Fast R-CNN的基础上大大提高了检测速度,但却伴随着mAP的下降,盡管如此,速度还是远远不及YOLO。R-YOLO的mAP和速度都高于Fast R-CNN和YOLO。与YOLO-v2相比,mAP有相对提升,但速度略有不足。结果表明,综合mAP和FPS,R-YOLO在保证检测速度的前提下,优化了YOLO的准确性,因此采用残差网络和特征融合对YOLO进行优化是有效的。
表3中分别给出了YOLO、YOLO-v2和R-YOLO对20个类别的检测准确率。结果表明,R-YOLO较YOLO目标检测算法,对每个类型物体的检测准确率均有相对提升,较YOLO-v2也有一定的优势。
以上所有实验结果说明了R-YOLO网络结构在准确率上优于相比较的其他网络,速度与YOLO相当,YOLO中嵌入了残差网络和特征融合模块并结合了双主干网络形式,网络深度加深了,却没有降低检测速度。说明了对YOLO的改进是有效的,残差单元、特征融合模块和双主干网络结构的运用,在提高网络准确性的同时没有增加网络计算的复杂度。
4 结论
本文针对YOLO目标检测算法准确性问题,结合残差单元、CBNet网络和特征融合进行了改进。在YOLO网络模型中引入残差单元,保证检测速度的同时提高了检测准确率;运用双主干网络结构,丰富特征层的语义信息;同时,将部分卷积层的输出进行特征融合,结合深层与浅层的图像特征信息,提高了对小物体的检测能力。在Pascal数据集上进行训练与测试,结果中对小物体的检测有明显的改善,当R-YOLO网络训练达到稳定状态时,准确率较原始模型提高了7.6个百分点。实验表明,R-YOLO网络模型有效提升了YOLO网络的检测性能。
参考文献:
[1] RAZAVIAN A S,AZIZPOUR H,SULLIVAN J,et al. CNN features off-the-shelf:an astounding baseline for recognition[C]//2014 IEEE Conference on Computer Vision and Pattern Recognition Workshops. Columbus,OH,USA. IEEE:512-519.
[2] 吴帅,徐勇,赵东宁. 基于深度卷积网络的目标检测综述[J]. 模式识别与人工智能,2018,31(4):335-346.
[3] REDMON J,DIVVALA S,GIRSHICK R,et al. You only look once:unified,real-time object detection[C]//2016 IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas,NV,USA. IEEE,:779-788.
[4] LIU W,ANGUELOV D,ERHAN D,et al. SSD:single shot MultiBox detector[M]//Computer Vision – ECCV 2016. Cham:Springer International Publishing,2016:21-37.
[5] GIRSHICK R,DONAHUE J,DARRELL T,et al. Rich feature hierarchies for accurate object detection and semantic segmentation[C]//2014 IEEE Conference on Computer Vision and Pattern Recognition. Columbus,OH,USA. IEEE,:580-587.
[6] 何之源. 21个项目玩转深度学习:基于TensorFlow的实践详解[M]. 北京:电子工业出版社,2018.
[7] GIRSHICK R. Fast R-CNN[C]//2015 IEEE International Conference on Computer Vision. Santiago,Chile. IEEE,:1440-1448.
[8] JIANG H Z,LEARNED-MILLER E. Face detection with the faster R-CNN[C]//2017 12th IEEE International Conference on Automatic Face & Gesture Recognition. Washington,DC,USA. IEEE,:650-657.
[9] MONT?FAR G,PASCANU R,CHO K,et al. On the number of linear regions of deep neural networks[EB/OL]. 2014:arXiv:1402. 1869[stat. ML]. https://arxiv. org/abs/1402. 1869
[10] NAIR V,HINTON G E. Rectified linear units improve restricted boltzmann machines[C]// Proceedings of the 27th International Conference on Machine Learning,Israel,Haifa,2010(June):21-24.
[11] 王璽坤,姜宏旭,林珂玉. 基于改进型YOLO算法的遥感图像舰船检测[J]. 北京航空航天大学学报,2020,46(6):1184-1191.
[12] 周慧娟,张强,刘羽,等. 基于YOLO2的地铁进站客流人脸检测方法[J]. 计算机与现代化,2019(10):76-82.
[13] 任飞凯. 基于卷积神经网络人脸识别研究与实现[D]. 南京:南京邮电大学,2019.
[14] VAN ETTEN A. You only look twice:rapid multi-scale object detection in satellite imagery[EB/OL]. 2018:arXiv:1805. 09512[cs. CV]. https://arxiv. org/abs/1805. 09512
[15] REDMON J,FARHADI A. YOLO9000:better,faster,stronger[C]// 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). July 21-26,2017. Honolulu,HI. IEEE,2017.
[16] 周曉彦,王珂,李凌燕. 基于深度学习的目标检测算法综述[J]. 电子测量技术,2017,40(11):89-93.
[17] REN S Q,HE K M,GIRSHICK R,et al. Object detection networks on convolutional feature maps[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence,2017,39(7):1476-1481.
[18] BAY H,TUYTELAARS T,GOOL L V. SURF:Speeded up robust features[C]// European Conference on Computer Vision,Graz:Springer-Verlag,2006:404-417.
[19] HUANG G,LIU Z,VAN DER MAATEN L,et al. Densely connected convolutional networks[C]// 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). July 21-26,2017. Honolulu,HI. IEEE,2017:245-253.