基于改进YOLOv4与JetsonTX2的无人机实时目标检测方法

2022-05-09 03:19刘爱东郭智超徐君明丛林虎
兵器装备工程学报 2022年4期
关键词:卷积聚类精度

刘爱东,郭智超,徐君明,丛林虎

(海军航空大学, 山东 烟台 264001)

1 引言

小型旋翼无人机由于其目标小、操作方便、成本低等优势,在军事渗透、军事运输、扰乱敌方基地、战场环境侦查等军事应用方面起着至关重要的作用[1]。随之而来其带来的安全隐患和威胁也逐渐增多,如何快速高效地探测到无人机已成为国内外许多专家学者研究的重点议题。

在无人机探测方法中较为常用的有雷达探测方式、声纹探测方式、无线电探测方式及光电探测方式。由于存在反射面小、噪声较小、所处环境复杂等因素,传统探测方式在小型无人机探测方面存在较大缺陷[2]。近些年来随着深度学习技术的成熟发展,研究者们已不断将基于深度学习的目标检测技术应用在对无人机的光电探测中,以便于达到对其精准实时探测。

基于深度学习的目标检测算法主要分为两类。一类是基于候选框的检测算法,如Girshick提出的RCNN,以及后期改进的Fast R-CNN[3],何凯明团队分别在2016年与2017年提出性能更优的Faster R-CNN模型[4]和Mask R-CNN模型[5]。这些算法在检测精度方面性能较优,但实时性较差,常被用于如医疗影像等主要针对检测精度的领域,对于处于飞行中的无人机则无法满足探测要求。另一类是基于回归的检测算法,如Redomn等提出的YOLO和YOLOv2算法[6-7],以及2018年提出的YOLOv3算法[8],虽然其检测速率较快,但检测精度仍有很大进步空间,Anguelov等提出的SSD算法在小目标检测时又存在较大不足[9]。Bochkovskiy等在YOLOv3的基础上对其全面优化升级,提出了精度更高、实时性更好的YOLOv4算法[10]。

但在实际的无人机光电探测系统中,需要以嵌入式平台为检测模型的运行平台,并将其部署至探测系统中。相对于台式计算机,嵌入式设备具有算力有限、存储容量小等劣势,且无人机所处环境复杂,YOLOv4模型参数量较高,将其部署至嵌入式设备将面临加载时间长、运行速率慢等问题[11]。针对检测模型在嵌入式设备难部署的问题,严开忠等使用深度可分离卷积代替模型的普通卷积运算进而达到降低模型参数量的目的[12];常飞翔等通过模型剪枝压缩与裁剪大尺度检测分支的方式达到了减少参数量的目的[13]。

本文为了解决在无人机目标检测中所面临的问题,使视觉探测技术更好地部署在反无人机应用领域,提出一种全新的YOLOv4改进模型。该模型创新点如下:为了提升模型效率,使用Mobilenetv3轻量级网络作为YOLOv4特征提取网络;在PANet特征加强网络中通过深度可分离卷积代替普通卷积;使用TensorRT优化器通过后训练量化方式对模型进行int8位量化进而降低网络参数量;采用K-means++算法代替K-means算法来提高聚类效果,同时降低聚类代价函数。最终将经过优化好的模型部署至JetsonTX2平台上实现对无人机目标的实时检测。

2 YOLOv4目标检测模型

2.1 YOLOv4模型结构

YOLOv4是YOLOv3模型的改进版本。YOLOv4以CSPDarknet 53为基础网络对图像进行初步特征提取,基础网络中通过引入CSPNet(跨阶段局部网络)[14]来减少模型推理计算,增强CNN的学习能力。

采用SPP(空间金字塔池化)来增加网络感受野[15],通过对layer107分别进行5×5、9×9、13×13的最大池化,分别得到layer108、layer110和layer112,将其进行concate融合操作得到layer 113,最后通过1×1降维得到512个通道的layer 114。

YOLOv4以PANet作为网络的特征融合模块[16],创建了一条自底向上的路径增强,通过shortcut连接缩短路径;同时采用自适应特征池化技术,将所有特征层级的特征融合至每个建议区域中,避免了任意分配的结果;最后通过全连接融合对原有的分割支路引入一个前景二分类的全连接支路,通过融合这两条支路的输出得到更加精确的分割结果,进而提供更准确的mask预测。

YOLOv4的YOLO Head(即网络预测部分)则沿用YOLOv3算法的磁头,以基于锚的检测步骤和3个检测粒度级别进行检测。图1为YOLOv4网络结构框图。

图1 YOLOv4网络结构框图

2.1 YOLOv4损失函数

YOLOv4损失函数由边界框损失、置信度损失和分类损失3部分组成。相较于YOLOv3算法,YOLOv4在边界框损失函数上做出了创新,用CIoU损失函数代替了MSE。传统的MSE函数采用对目标的长宽开根号的方式降低尺度对回归准确性的影响,但在进行目标框的回归时有时候并不能将不同质量的预测结果区分开来,同时对目标的尺度相当敏感。CIoU考虑到了重叠面积、中心点距离、长宽比3个因素[17]。

YOLOv4检测模型的损失函数定义如下:

1) 边界框损失函数(LCIoU):

(1)

(2)

(3)

其中:ωgt和hgt为真实框的宽高,ω和h为预测框的宽高,α是用作trade-off的参数,ν是用来衡量长宽比一致性的参数,主要用来衡量候选框和目标框的一致性。ρ表示欧式距离的计算,c是预测框与真实框的包围最小框的对角线长度,b,bgt分别代表预测框与真实框的中心点。

2) 置信度损失函数(Lconf):

(4)

3) 分类损失函数(Lcla):

(5)

3 YOLOv4模型优化

3.1 YOLOv4网络优化

3.1.1主干网络优化

尽管CSPDarknet相对于Darknet性能有所提升,但其仍属于重量级网络,无法满足嵌入式平台低算力低存储的条件限制,所以本文使用轻量级Mobilenetv3网络结构(如表1所示)代替CSPDarknet网络作为YOLOv4模型的特征提取网络。

其中在该列表中自左至右分别表示:每个特征层的尺度大小、每次特征层即将经历的block结构、bneck内逆残差结构上升后的通道数、输入bneck时特征层的通道数、是否在该网络层引入注意力机制、激活函数的种类、每一次block结构所用的步长。

表1 Mobilenetv3网络结构Table 1 Mobilenetv3 network structure

Mobilenetv 3结合了“深度可分离卷积”、“逆残差结构”、“squeeze and excitation结构的轻量级注意力模型”3种思想,将最后一个卷积层删除并前移最后一个平均池化层,同时该网络在结构中使用了h-swish激活函数,代替swish函数。将Mobilenetv3作为YOLOv4特征提取网络,不仅能减少运算量和模型参数量,还可提高网络的计算效率[18-19]。图2为改进YOLOv4网络结构框图。

3.1.2PANet特征加强网络优化

PANet为YOLOv4检测模型的特征加强网络,通过使用自底向上的路径增强、自适应特征池化、全连接融合等方式准确地保存空间信息,正确定位像素点。

深度可分离卷积由Chollet F于2017年提出,可以在较小影响精度的同时减小网络参数量和计算量[20]。该方式将普通的卷积操作分解为2个过程,首先将一个卷积核分裂成两个独立的核,而后对于不同的输入通道采取不同的卷积核进行卷积,分别被称为逐通道卷积和逐点卷积,该方式同时考虑到了通道和区域改变,实现了通道与区域的分离。图3和图4分别表示普通卷积与深度可分离卷积的工作方式。

图2 改进YOLOv4网络结构框图

图3 普通卷积工作方式示意图

图4 深度可分离卷积工作方式示意图

对于普通卷积方式,假设有N×H×W×C的输入,同时有k个3×3的卷积核,如果设置pad=1且stride=1,则其输出为N×H×W×k。对于深度可分离卷积,Depthwise是将N×H×W×C的输入划分为Group=C组,然后每一组做3×3卷积,相当于提取了每个通道的空间特征;Pointwise表示对N×H×W×C的输入做个普通的1×1卷积,相当于搜集了每个点的特征。普通卷积的参数量为N×3×3×k,计算量为C×W×H×3×3×k;深度了分离卷积的参数量为N×3×3+N×1×1×k,计算量为H×W×C×3×3+H×W×C×k。

计算量代价比如下:

(6)

参数量代价比如下:

(7)

PANet网络的参数量主要集中在其3×3普通卷积运算中,本文中我们将使用效率更高的深度可分离卷积代替PANet中的普通卷积来进一步降低参数量与计算量,进而提升YOLOv4的运行效率。

3.2 K-means++聚类

目标检测中,为了让预测框与真实框取得更好的IOU值以便于更精准地定位目标,需要提前标定锚点框对目标进行聚类。传统YOLOv4算法使用K-means聚类算法对训练集中的目标进行聚类,其衡量相似度的指标为每一个对象与聚类中心欧氏距离,把对象点归到最相似的类中,再计算每个类的聚类中心,重复此过程直至结果不再改变。聚类结果通过对象和聚类中心的距离公式来评价,其公式如下:

(8)

其中:boxi为第i个样本的预测框,centroidj为第j个聚类中心,d为表示二者之间的距离。

K-means算法原理,应用广泛,但也存在诸多局限性,如:收敛较慢、时间复杂度高、需要事先确定超参数K、不能保证全局最优等。由于拍摄的无人机图像的复杂性和特殊性,本文将采用聚类效果更优的K-means++算法对原K-means算法随机初始化质心的方法进行优化,其思想为:初始聚类中心间的距离要尽可能远。K-means++算法具体如下:

1) 从输入的数据点集合中随机选择一个点作为第一个聚类中心。

2) 对于数据集中的每一个点x,计算它与已选择的最近的聚类中心的距离D(x)。

4) 重复第2步知道选择出K个聚类中心。

5) 利用这k个质心来作为初始化质心去运行标准的K-Means算法。

针对本文自建无人机数据集,将K-means++算法K值设为9,实验所得锚框的尺度分别为(8,9.7)、(10.8,14.5)、(13.5,17.5)、(14,25.4)、(16,21.1)、(19.6,21,5)、(21.1,28.7)、(30,39)、(46.8,62.2),最终锚框聚类精度可从81.27%提升至84.59%。图5为本实验K-means++聚类效果图。

3.3 TensorRT量化

常用的模型压缩方法包括:网络剪枝、知识蒸馏和模型量化,由于将YOLOv4模型基础网络替换为了轻量级的 Mobilenetv 3网络,若继续对其模型剪枝则极有可能破坏模型完整度,进而对检测精度造成较大影响,所以本文将采用模型量化的方式降低检测模型的参数量与规模大小[21]。

图5 K-means++聚类效果图

量化方式共有2种:后训练量化(PTQ)与量化感知训练(QAT)。而后训练量化方式分为混合量化、8位整型量化、半精度浮点量化。PTQ直接对普通训练后的模型进行量化,过程简单,不需要在训练阶段考虑量化问题,对于参数冗余量高的大模型精度损失较小,对于参数冗余量低的小模型精度损失较高低;而QAT需要在训练阶段就对量化误差进行建模,这种方法一般能够获得较低的精度损失,但应用复杂,缺少统一的规范,支持的框架较少。

经综合考虑,本文将使用pytorch1.14.0深度学习框架和TensorRT加速引擎采用后训练量化方法将模型权重float32型的YOLOv4.weights从转为int8型的YOLOv4-int8-608.trt,并通过张量融合、内核调整、多流执行等一系列操作对模型进行整体优化。

图6为TensorRT整体优化结构框图。

图6 TensorRT优化结构框图

1) 精度校准:通过将模型量化为INT8,同时保持准确性,将吞吐量最大化。

2) 层/张量融合:通过融合内核中的节点优化GPU内存和带宽的使用。

3) 内核自动调整:基于目标GPU平台选择最佳数据层和算法。

4) 动态张量内存:最小化内存占用并有效地重新使用张量的内存。

5) 多流执行:并行处理多个输入流的可扩展设计。

4 实验验证与结果分析

4.1 实验软硬件环境

本检测模型训练所需计算机配置有intel第九代酷睿i7-9700处理器,32GB RAM的服务器,外配有1080Ti显卡。测试所需嵌入式设备采用NVIDIA公司推出的边缘计算设备JetsonTX2,除了高性能NVIDIA PascalTM显卡,还配有HMP Dual Denver 2/2MB L2+Quad ARM A57/2MB L2处理器,8GB RAM,59.7 GB/s 的显存带宽。

模型训练的PC机上所需的软件环境包括Ubuntu18.04操作系统、 PyCharm编译软件、python3.6.3编程语言、pytorch1.12.0深度学习框架、CUDA10.0以及Cudnn7.4.1、OPENCV软件包等。测试平台JetsonTX2上的软件环境包括:Ubuntu18.04操作系统、python3.6.3编程语言、pytorch1.14.0深度学习框架、各种资源软件包等。

4.2 实验数据集

该无人机数据集为自建数据集,无人机图像由GigE工业相机拍摄,共1 036张,按照4∶1∶1的比例划分为训练集、测试集与验证集。为了提升训练效果,在数据集中添加少量负样本,并选取了包含了不同天气条件、不同距离、不同角度、不同背景环境下拍摄的图像。使用labelimg工具将挑选的图片手动加以标注并以VOC格式存储,Annotations文件夹中的xml文件负责记录检测目标的类别信息和位置信息,JPEGImages文件负责存储检测目标的图像。图7为数据集样本示例图。

图7 数据集样本示例图

4.3 训练过程

本模型及前期预处理在搭载1080Ti显卡的高性能PC机上训练,其训练参数设置:Batch Size(批处理大小)设置为8,Learning Rate(学习率)设为学习率,Match Threshold(置信度阈值)设为0.5,Weight Delay(权重衰减值)设为0.000 5,Momentum(动量值)设为0.9,并进行1 000的迭代训练,并得到最终的训练权重文件。将训练好的文件加以测试,最后以Map(平均精度)、FPS(检测速率)、参数量为评价指标。

4.4 实验效果

为了更好地验证实验效果,将改进YOLOv4模型在PC机上训练好后部署JetonTX2平台上,选取不同复杂条件下的无人机图像进行测试,测试效果如图8。

由图8~图11的检测效果对比图可知,改进后的YOLOv4算法部署至JetsonTX2后,对于小无人机目标检测效果很好,精度高达98%;对于模糊图像与复杂背景图像中的无人机检测处于较高水平,分别为83%与85%;该模型对于夜间无人机检测效果最差,精度为76%,仍有极大的提升空间,也表明光线条件对无人机目标检测影响最大。

图8 无人机小目标图像检测效果图

图9 模糊无人机图像检测效果图

图10 夜间无人机图像检测效果图

图11 复杂背景无人机图像检测效果图

4.5 性能对比

为了对模型进行直面与客观的分析,分别将原YOLOv4、改进YOLOv4、YOLOv4-tiny算法在PC机上使用相同的训练集和训练方法进行训练,从中选取100张测试集分别在PC机和JetsonTX2上进行测试,每种模型进行10次测试后取其平均值,最后通过模型参数量、平均精度mAP、检测速率进行性能对比,结果如表2所示。

表2 模型性能参数对照表Table 2 Model performance comparisonTable

由性能对照表可知:改进后的YOLOv4模型相对于原YOLOv4模型,参数量有了极大地下降,从61.38 M下降到了11.19 M;而在检测速率有了极大的提升,在JetsonTX2上检测速率从3.5 FPS提升至23.9 FPS;同时保持了较高的检测精度,达到了87.1%。和YOLOv4-tiny相比,改进YOLOv4虽然检测速率略低,但由于YOLOv4-tiny检测精度太低,在JetsonTX2平台上只有68.2%的精准度,无法满足实际需求。所以经综合性能对比,改进YOLOv4模型的性能满足实际需求。

5 结论

本文设计了一种基于JetsonTX2与改进YOLOv4的无人机实时目标检测方法,解决了传统YOLOv4模型部署到嵌入式平台后对无人机探测中存在的实时性差、加载速率慢、效率低下等问题。针对模型参数量和计算量较大的问题,首先采用了Mobilenetv3轻量级视觉网络代替YOLOv4基础网络CSPDarknet,而后在YOLOv4的加强特征网络PANet中引入深度可分离卷积,最后通过TensorRT工具将训练好的模型的权重量化为int8型并对模型优化。为了使目标点取得更好地聚类效果,以便于对无人机跟精准地定位,采用K-means++聚类算法得到最优锚框尺度。最后在JetsonTX2上的测试结果显示,对无人机的检测精度可达89.9%,检测速率从改进前的3.5 FPS提升至24.9 FPS。和原YOLOv4模型相比,改进的YOLOv4模型极大地减小了模型参数量,提高了模型加载速度,在检测速率上有了较大提升,同时又能对无人机保持较高的检测精度。在模糊图像条件下或光线较差的情况下对无人机的检测效果还有待提升,下一步将尝试引入支持并行计算的transformer注意力机制,同时对模型进行量化感知训练,进一步提升嵌入式平台目标检测模型的效率。

猜你喜欢
卷积聚类精度
基于不同快速星历的GAMIT解算精度分析
数字化无模铸造五轴精密成形机精度检验项目分析与研究
基于全卷积神经网络的猪背膘厚快速准确测定
基于FPGA的卷积神经网络加速优化方法
基于图像处理与卷积神经网络的零件识别
基于数据降维与聚类的车联网数据分析应用
基于深度卷积网络与空洞卷积融合的人群计数
基于模糊聚类和支持向量回归的成绩预测
近似边界精度信息熵的属性约简
基于密度的自适应搜索增量聚类法