基于改进YOLOv5的视觉定位算法

2022-06-23 11:00牛洪超胡晓兵
计算机工程与设计 2022年6期
关键词:靶标解码特征

牛洪超,白 松,胡晓兵

(1.四川大学 机械工程学院,四川 成都 610065;2.四川大学 宜宾产业技术研究院,四川 宜宾 644000;3.泸州市科技评估和成果转化中心 科技管理及开发室,四川 泸州 646000)

0 引 言

视觉定位[1]作为机器视觉的研究热点之一,如何实现特定目标在复杂运行环境下的快速检测,是其研究的主要问题之一。目前视觉定位系统[2]中检测方法主要采用传统的特征提取与模板匹配[3]相结合的算法[2],但是这类检测算法对于视点变化与不完整特性的鲁棒性较差,易受外部环境的干扰;近年来,深度学习技术的快速发展为视觉定位提供了一种新的思路,并且相比于传统的特征提取方法,深度学习所提取的特征鲁棒性更好,在各种复杂环境下也具有较好的检测能力,因此本文选用基于深度学习的目标检测算法识别出自定义靶标,通过对检测到的靶标进行解码,以此来获取移动设备的相对位置。目前基于深度学习的一阶段检测算法中,SSD[4]算法对于图片分辨率敏感,且检测效果不佳。YOLO[5,6]系列算法通过利用输入图像所包含的信息直接得出目标的类别和边界框,其检测速度较快,尤其是最新YOLOv5系列在GPU的检测速度最快可达到0.007 s。考虑到靶标简单、便于识别等特点0,本文选择通过改进YOLOv5s模型来进行靶标检测定位的研究。

本文所做的主要工作是首先对YOLOv5网络进行改进,以此来进一步提升检测性能;其次提出快速解码算法,对提取出的靶标进行解码;最后将改进YOLOv5s检测算法与解码算法相结合,设计一套靶标检测系统,检测实验结果表明,此系统取得了实时性与准确性较为平衡的效果。

1 系统总体框架

本文所提出的基于改进YOLOv5s的靶标检测整体框架如图1所示,所采用的靶标是一种类似于二维码的图案,其编码信息可以根据实际需求进行扩展,并且其结构比二维码更加简单,检测与处理速度更快。其总体流程如下:将由图像采集设备(如工业相机)实时采集的现场图片作为改进YOLOv5s算法的输入,通过前向计算,得到图片中的靶标位置信息;提取靶标区域,经过高斯模糊、形态学操作以及透视变换处理后,再由解码算法提取其编码信息;综合靶标的位置信息和编码信息,最终确定设备的空间相对位置或绝对位置。

2 改进的YOLOv5网络与解码算法

2.1 YOLOv5s网络模型

YOLO算法首先将图片进行划分单元格,在每个单元格里进行候选框的判断,若目标的中心落在这个单元格中,则这个单元格就负责预测这个目标,正是这种基于单元格的检测方式,使得YOLO算法的检测速度较为快速。目前YOLO系列算法已更新至YOLOv5,其中YOLOv5s为其系列中最小的模型,其网络结构如图2所示。

图1 系统框架

图2 YOLOv5s网络结构

YOLOv5s网络是在原YOLO系列的基础上,引入了很多最新的模块与训练策略,使得其整体的检测能力都得到了较大的提升。从图2可以得知,YOLOv5由主干网络、颈部网络以及头部网络3部分组成。在主干网络中,主要采用了CSP结构与SPP模块。CSP结构是在残差结构上加上CSPNet[7],将梯度的变化集成到特征图上。CSP结构不仅可以减少整体的计算量,同时也有效增强卷积神经网络的学习能力。SPP模块是通过空间金字塔池化操作来增加网络整体的感受野。颈部网络使用PANet[8]结构,通过上下层信息的交流,增强网络的整体检测能力。头部网络采用3个检测头,分别为20×20、40×40和80×80,用于检测不同大小的物体。

2.2 改进后的YOLOv5s模型

虽然目前YOLOv5s算法在识别准确度与速度上具有很大的优势,但是其主要是针对于COCO数据集,若是用来检测特定目标,需要对其进行改进;同时,特征增强模块PANet注重于深度特征,对小目标的检测能力有所下降,且上采样增加了一些噪声,因此为使YOLOv5s模型更适应本实验,对其进行以下改进与探索,其改进后的模型如图3所示。

图3 改进后的YOLOv5网络

(1)主干网络的改进(引入V-CSPNet模块)

目前基于深度学习的目标检测模型都是以CNN分类网络作为特征提取器,其中残差网络ResNet是最常用的特征提取网络,但是残差网络所提取的特征不具有细粒度,且其感受野也受到一定的限制。而DenseNet[9]网络是一种通过密集连接的方式将不同的层进行聚合,以此来整合了不同的感受野,使其可以提取出更细更深的特征。与ResNet网络相比,DenseNet网络是通过密集连接的方式来聚合特征,而残差网络则是通过求和的方式,原始的信息在相加的时候会被覆盖掉,而利用拼接的方式可以将原始的信息持续传下去。同时,研究表明:具有多个感受野的抽象特征可以捕获不同尺度的视觉信息,因此DenseNet保留和积累了更多不同感受野的特征,比ResNet具有更好、更多样化的特征表达能力。因此在提取特征能力上比ResNet更强,而且参数与计算量更少,但是由于DenseNet中密集连接所导致高内存访问成本与能量消耗,使得其预测速度较慢。针对上述问题,最近提出的网络模型VOVNet[10]在DenseNet基础上,删除密集连接,只在最后一层聚合前面所有层的信息,这不仅继承了DenseNet的优点,同时有效解决了内存访问问题和充分利用了GPU的并行计算能力,其性能表现也超越DenseNet与ResNet。其中VOVNet网络中的OSA(one-shot aggregation)模块如图4(a)所示。

图4 主干网络的改进

本文使用改进的V-CSPNet模块替代YOLOv5主干网络中的BottlenCSP1模块。其做法是在OSA模块的基础上融入跨阶段局部网络(CSPNet)与残差结构。CSPNet是WANG等提出的一种可增强CNN学习能力的新型网络,可以消除较高的计算结构,降低内存成本,本文将CSPNet的思想与其相结合的主要目的是使该架构能够实现更丰富的梯度组合,同时减少计算量。这个目的是通过将基础层的特征图分割成两部分,然后通过提出的跨阶段分层(cross-stage hierarchy)结构进行合并来实现,通过分割梯度流,使梯度流在不同的网络路径中传播,进一步提升模型提取特征的能力。残差网络结构可以使得模型训练的更深更细,且在一定程度上防止过拟合现象的产生。

(2)特征增强模块的改进

颈部网络主要起到特征增强的作用,常用的两种结构如图5所示。

图5 常用的特征增强模块

FPN[11]结构利用不同的卷积层去进行预测,实现了多尺度目标的检测,且这种自顶向下的结构,将深层语义信息传送到浅层网络层中,有效提高了对小目标的检测能力;但是FPN结构对大中型目标的检测不够重视,从而限制了模型性能的进一步提升。在YOLOv5中,采用的是PANet结构,在FPN基础上又增加了一条信息流,如图5(b)所示。此方法可以有效提升大中型目标的检测能力。但是由于该方法侧重于深度特征图的增强,削弱了对小目标的检测强度。为解决上述的缺点,本文提出一种用于目标检测的新颖特征增强模型,其结构如图6所示。

从图6可以看出:改进后的PANet网络,是通过两个串联的特征金字塔网络和一条跨层连接结构组成,以此来实现更丰富的多尺度上下文特征融合。左边是原YOLOv5s网络中的PANet结构,本文用 {C3,C4,C5} 表示主干网络第3、第4、第5阶段生成的特征图,分别对应于对输入图像下采样8倍、16倍和32倍;通过PANet结构输出为 {P3,P4,P5}, 增加的信息流结构产生 {Q3,Q4,Q5}, 对应于3个检测头,用于最终的目标检测。除了双金字塔结构外,改进后的PANet网络还包含一条独立的自底向上的跨层结构,称为A1模块。

如上所述:原来的FPN结构可以很好处理小目标,而PANet结构可以很好地用于大目标和中等目标的检测。为了在不同尺度的目标检测上取得良好的整体性能,我们提出改进的PANet结构,由增加的信息流与A1模块组成。为了保证对小目标的检测能力,通过引入一条自顶而下的结构,将丰富的深层信息进一步传送至底层,增强底层的信息表达能力,得到用于预测的特征 {Q3,Q4,Q5}。 为缓解上采样与降采样所造成的信息损失,引入一条跨层结构,将主干网络中的输出{C3}作为输入,送入到最后一层{Q3}中,用来指导小目标特征的生成,融合更多尺度的特征。改进后的PANet网络在保留PANet网络的优点之上,进一步增强对小目标的检测能力,丰富每一层的特征以及减少信息的损失,使得特征增强模块具有更强的增强作用,便于后面检测头的预测处理。

图6 改进后的PANet结构

(3)优化损失函数

本文中只含有一个类别,不存在分类误差,利用Distance-IOU[12]和Focal Loss[13]来设计改进算法的损失函数。在目标检测框的损失方面,相比于YOLOv2与YOLOv3使用的Intersection Over Union(IOU) Loss,DIOU综合分析了边界框的重叠与中心点距离等因素,可以实现更快更有效更稳定进行回归。DIOUB,Bgt可以表示为

(1)

式中:B表示预测框,Bgt表示真实框,b,bgt分别表示预测框与目标框的中心点,ρ2(b,bgt) 表示的是计算两个中心点间的欧氏距离。c代表是能够包围B和Bgt的最小矩形框的对角线距离。则DIOULoss可以表示为

DIOULoss=1-DIOUB,Bgt

(2)

在训练数据集中包含大量简单的负样本(背景),占总损失的大部分比例,将会导致模型的优化方向更多的偏向负样本,这也是一阶段算法的精度落后于二阶段算法的主要原因,因此本文为缓解样本的类别不均衡问题,采用Focal Loss来对目标的置信度进行评价,则Lossconf可以表示为

(3)

式中:ygt表示真实目标的置信度,yp表示预测目标的置信度,其中α取0.25,γ取1.5。

则总损失Losstotal可以表示为

Losstotal=DIOULoss+Lossconf

(4)

(4)生成合适的anchors

采用YOLOv5s中改进的K-means聚类算法对数据集进行重新聚类,生成合适的anchors。最终聚类算法所产生的anchors为[32,32],[51,52],[70,70],[90,90],[108,109],[130,131],[167,166],[210,211],[261,262]。

2.3 后处理与解码算法

经过改进YOLOv5s目标检测算法提取出来的靶标图像可能存在光照、遮挡以及倾斜等干扰因素,需要对其进行后处理来保证后续的解码操作。其后处理与解码操作总体流程如图7所示,后处理操作主要用于保证靶标的完整性和清晰度,首先对检测算法所提取的区域,通过长宽比与面积来判断区域内的靶标图案是否完整,再进行扩充边界,利用高斯模糊、二值化与开运算提高靶标的清晰度,最后找出最大轮廓与透视变换操作进行校正处理。其中扩充边界主要是因为目标检测提取的靶标有时无法显示出边界且为保证后续变换的准确度,在检测框的基础上对其扩充适当的边界(本文中各边扩充值为10像素)。解码操作主要是对处理后的靶标图案进行解码,提取出靶标内部的9个方格,读取每个方格中心点的像素值,再设置阈值,低于阈值的为1,高于阈值的为0,以此输出二进制信息。

图7 后处理与解码操作

3 实验过程与分析

3.1 数据预处理

本实验数据均在户外与实验室环境下拍摄获得,共4200张图片。为增加样本的多样性,所采集的数据种类如图8所示。对于收集好的数据集,使用LabelImg软件对每张靶标图片进行位置与类别信息的标注,将标注好的数据集划分为训练集与测试集,其中训练集共3360张,测试集共840张。

图8 数据集类型

为提高模型的泛化性和鲁棒性,针对训练数据集使用了Mosaic[14]数据增强。即将训练集中2张或者4张图片进行随机裁剪,然后再拼接到一张图片上作为训练数据,增加了训练过程中batch的数量和样本多样性,减少训练过程中batch_size的大小,降低对硬件的要求,同时增加了很多的困难样本用于提高模型的检测能力。

在训练过程中,通过数据加载器对训练集进行加载,采用上述增强技术进行处理,增强后的训练集数据如图9所示。

图9 Mosaic图像增强

3.2 实验讨论

3.2.1 网络训练

本文实验的硬件环境为CPU Core(TM) 1.80 GHz,GPU NVIDIA GeForce RTX 2080Ti,内存16 G,软件环境为python 3.7,Torch 1.6.0。整个过程中采用SGD算法来改变参数,每批次的数据量设为8,训练集中全部样本的训练次数(epoch)为200次。

3.2.2 评价指标

我们用召回率(recall)、查准率(precision)、平均准确率(AP)、解码精度和推理时间来对实验结果进行评估。其中召回率与查准率的定义如下

(5)

(6)

其中:TP为包含目标的数据集中正确检测出来的数量;FN为包含目标的数据集中没有被检测出来的数量;FP为在识别出的正样本数据集中被错误识别为正样本的数量。

AP值:根据靶标的查准率与召回率绘制曲线,AP值表示的就是这条曲线与坐标轴之间的面积。本文中求值时,IOU设置范围为0.5~0.95,也就是以 (0.5,0.55,0.6,0.65,0.7,0.75,0.8,0.85,0.9,0.95) IOU值的AP的平均值当成AP,进行这样IOU增量平均的原因是:只以0.5IOU为阀值不一定是最好的模型,可能仅仅在0.5阀值表现得很好,在其它阀值处表现得很差,为了更好地评估整体模型的准确度,从而计算一个模型在各个IOU值的AP, 取其平均值。

3.2.3 实验分析

改进前后的YOLOv5s的对比实验,本文的实验结果如表1所示。表1与图10列出了YOLOv5s与改进后YOLOv5s两个模型在平均准确率、AP值、训练损失以及检测时间的对比结果。

表1 改进前后YOLOv5s对比

图10 两种模型的平均准确率AP与训练损失值对比

从表1与图10可知:改进后的YOLOv5s模型AP值达到96.70%,其检测时间为0.010 s,相比于YOLOv5s,其AP值提升了3.35%,其检测时间基本一致,且改进后的YOLOv5s最终损失稳定在0.018 96,比YOLOv5s有着更低的平衡损失,模型收敛更加稳定。两者的对比实验效果如图11所示。

图11 检测效果

从图11中可以看出:第一组与第二组图中YOLOv5s模型均有遮挡的靶标没有检测出来,改进后的YOLOv5s均检测出来;第三组图中YOLOv5s对于遮挡型靶标给出的置信度较低,因此可知,比起原YOLOv5s,改进后的YOLOv5s模型检测效果更好,及时检测到靶标,对于停车定位等操作有着重要的意义。

3.2.4 在VOC数据集上模型对比实验

为验证改进后的YOLOv5模型的有效性,同时验证其实验结果并非由于数据集过小所造成的偶然性造成的,本文在PASCAL VOC 2007和PASCAL VOC 2012数据集进行对比实验,其实验结果见表2。

表2 模型实验对比

从表2可以看出,当IOU值设为0.5时,改进后的YOLOv5s的平均准确率为81.00%,相比于YOLOv5s模型提升2.7%;当IOU值设为0.5至0.95时,改进后的YOLOv5s模型的平均准确率为56.69%,相比于YOLOv5s模型提升4.34%。上述结果表明,该改进算法产生的目标检测结果具有较高的准确率,能够较好地解决目标检测问题。

4 结束语

本文提出了一种基于卷积神经网络的自定义靶标定位检测算法,该算法将目标检测算法与目标解码算法相结合,充分利用了自定义靶标的优势,有助于解决传统视觉定位的难点和不足,具有很高的社会和经济价值。一方面,通过对YOLOv5s网络进行改进获得适合的目标检测模型,所做的改进为:在主干网络中加入改进的OSA模块;在PANet模块的基础上引入信息流与跨层连接;改进损失函数与合适的anchor。另一方面,使用后处理算法进行降噪、去模糊和透视变换,以减少外部因素的干扰,使检测能力更加完善,最后通过解码算法输出目标中包含的信息。实验结果表明,在光照、遮挡、模糊等复杂环境下,该算法能够快速识别自定义目标并输出中所包含的信息,其速度和准确性都取得了较好的效果,检测速度比二维码更加快速,可做到实时效果,方便部署到工业检测和定位控制领域。将来,我们期望在实际部署模型时进行性能优化,尤其是在准确性方面以及部署平台的性能优化方面。

猜你喜欢
靶标解码特征
纳米载体可缓解农药对靶标作物的负作用
根据方程特征选解法
《解码万吨站》
离散型随机变量的分布列与数字特征
“百灵”一号超音速大机动靶标
解码eUCP2.0
纳米除草剂和靶标生物的相互作用
不忠诚的四个特征
NAD C368解码/放大器一体机
Quad(国都)Vena解码/放大器一体机