面向无人机场景的深度网络模型压缩与加速设计方法

2024-01-02 08:35张佳奇李魏然王胜科
软件导刊 2023年12期
关键词:剪枝批量卷积

张佳奇,郭 宣,李魏然,王胜科

(1.中国海洋大学 信息科学与技术学院,山东 青岛 266100;2.青岛第九中学,山东 青岛,266000)

0 引言

近年来,随着无人机技术快速发展,无人机低空遥感成为了卫星遥感数据的重要补充,被广泛应用于农业、安防、交通和战场等领域。相较于卫星遥感图像,无人机图像独特的优势主要体现在便携性好、成本较低及能实现多角度拍摄等方面。

目前,无人机目标检测任务通常通过离线处理无人机拍摄的图像或将图像传输至服务器进行处理。然而,第一种方式并未充分利用无人机实时检测分析的优势;第二种方式则依赖于网络,既需要考虑数据传输过程中的隐私保护问题,还需要承担较高成本。此外,由于无人机图像具有高分辨率特点,在实际应用场景中对自然场景的检测算法效果不佳,无法直接应用于工业应用中。因此,改进现有目标检测算法,在无人机上搭载的边缘智能设备,实现在线分析高分辨率图像这一功能是目前一大挑战,也具有重要的实际应用价值。

本文主要对无人机高分辨率图像下的目标检测算法与模型压缩方法进行研究,结合具体硬件平台进行模型部署实验。主要工作如下:①通过分组卷积和通道混洗策略对目标检测算法的主干网络进行轻量化设计,结合通道注意力机制提升网络精度;②在网络剪枝层面,结合具体数据集对目标检测模型进行通道剪枝;③针对无人机单类别检测任务中目标实例尺寸相对固定的特点,对输出部分进行优化,最多可减少30%的参数量。

通过实验与在实际硬件上的运行情况可知,本文方法相较于YOLOv5 算法,在无人机数据集VisDrone 和自建数据集OUC-UAV-DET 上的精度分别提升2%、4%,在英伟达硬件(Xavier)上推理速度约减1 ms。通过通道剪枝方法,能在保持算法精度的同时减少2 ms 的推理速度;对无人机单类别检测任务中输出部分进行相关优化后,推理时间最多能减少2 ms。

1 相关工作

通过对目标检测算法的发展历史进行研究后,将其划分为传统算法阶段和深度学习阶段。2012 年前,传统目标检测阶段主要采用手工提取特征的方法。通过滑窗遍历技术,从整张图像中提取有价值的特征,并利用支持向量机算法[1]或AdaBoost 分类方法[2]分类提取特征。此外,通过对整个图像进行特征提取,能将目标检测看作为回归问题,从而实现快速预测。这两种方法可看作为两个阶段目标检测算法和单阶段目标检测算法的雏形。

早期,将卷积神经网络用到目标检测领域的是Over-Feat[3],在此之前卷积神经网络已在图像分类任务中取得了一定的成果。随后,目标检测主要分为以R-CNN 系列[4-6]为代表的两阶段目标检测算法和以YOLO 系列为代表的单阶段目标检测算法。其中,R-CNN 系列算法通过划分区域来检测对象,并非同时检测整张图像。这种方式具有两个特点:算法需要多次计算才能提取所有对象;在算法执行过程中不同系统接替工作。因此,R-CNN 系列算法属于两阶段算法。

单阶段目标检测算法(You Only Look Once,YOLO)的诞生是目标检测领域的一次突破,即仅用单个神经网络预测图像的类别概率和边界框坐标[7]。由于算法自身只有一个神经网络可实现端到端优化,这种端到端的统一检测设计使得YOLO 架构在推理过程中训练更快,实现实时训练,也保证了接近两阶段目标检测算法的高平均精度。目前,最具代表性的YOLO 框架YOLOv5 已可满足一般使用场景,但在无人机高分辨率图像的场景下,边缘设备上的推理速度无法满足实际应用需求,其网络结构仍有压缩和优化空间。

2016 年来,由于实际应用需要,轻量化的卷积神经网络研究开始逐渐浮现,为视觉深度学习模型在边缘智能设备上的应用提供了可能性。其中,轻量级研究较为经典的工作包括基于深度可分离卷积的MobileNet 系列[8-10]。在ShuffleNetv2[11]中,从内存访问代价和显卡并行性方向分析了如何设计卷积神经网络,才能进一步减少运行时间,并提出轻量化网络设计的4 条准则及CSPNet[12]、VoVNet[13]、RepVGG[14]、GhostNet[15]等 轻量化网络 结构。此外,模型压缩方式还包含神经网络剪枝、知识蒸馏等从大模型中产生小模型的方法。

综上,本文使用分组卷积与通道混洗策略对检测算法YOLOv5 的主干网络进行轻量化设计,既使用通道注意力机制提升网络精度,又在网络剪枝层面结合具体数据集对检测模型进行通道剪枝。此外,对于无人机单类别检测任务,针对其目标实例尺寸相对固定的特点优化了模型的输出部分。

2 轻量化目标检测算法

2.1 基于统计的语义相似度算法

本文对YOLOv5 的主干网络进行改进,主要基于分组卷积通道混洗策略和深度可分离卷积。图1 展示了网络的整体结构,该网络去除了Fcous 结构,使用S1、S2 模块替代YOLOv5 中的C3 模块,在颈部采用更简单的直接相加方式进行特征融合。

Fig.1 Overall structure of the network图1 网络整体结构

YOLOv5 在输入层后引入一种名为Focus 的结构,如图2 所示。该结构对特征图进行间隔取样得到4 个图像,并将它们连接起来以使通道数量增加4 倍;然后通过卷积操作生成新的特征图,以便在下采样后保留所有空间信息。实际上,在浅层网络中该结构的效果并不显著,主要从减少计算量和参数量角度所设计。

Fig.2 Fcous module图2 Fcous模块

为此,本文使用3×3 的卷积网络替代Focus 结构,尽管Focus 结构的设计初衷是为了减少计算量和参数量,但实验证明使用卷积替代Focus 可获得更好的效果。特别是,对于不含GPU 和NPU 加速的芯片,频繁的切片操作会增加缓存占用、加重计算负担,导致在部署时,许多推理框架无法高效适配Focus的高性能算子。

本文使用3×3 卷积网络在改造目标检测网络时,充分考虑了网络轻量化设计的4 个准则[11]:①使用相同的通道尺寸可最小化内存访问量;②避免过度使用分组卷积;③避免网络过于碎片化;④不能忽略元素间的操作(例如shortcut、Add)。

YOLOv5 的主干网络主要由C3 层组成,该层是CSP 结构改进后的版本,在与CSP 近乎相似的损耗上能取得更好的结果。然而,YOLOv5 因多次使用高通道数通道的C3层,将导致中间层通道之间的阶跃差距较大。根据准则①可知,高通道数的C3 层对CPU 性能并不友好。为了解决这个问题,本文将整个特征图按通道分为c'、c -c'两个部分,主要有以下优点:将整个特征图分为两组,这种分组方式与分组卷积不同,不会增加卷积时的组数,符合准则②;经过特征图分组后,将c'组通过短连接通道,而c -c'组经过一系列卷积层后,使输入输出通道数保持一致,符合准则①。

在特征融合部分,本文依然采用特征金字塔网络和路径聚合结构。为了满足准则①中的最优化内存访问和使用,在路径聚合结构采用相同的通道数进行特征图融合,使用特征图直接相加的方式实现特征图融合。

2.2 高效的通道注意力模块

注意力机制在深度神经网络中可被看作是一个对象选择过程。SENet[16]开创了通道注意力的先河,核心是一个用来收集全局信息的压缩和激励模块。

首先,全局空间信息通过全局平均池化层汇集到压缩模块中,激励模块使用全连接层和非线性激活函数获得注意力向量;然后,输入特征的每个通道通过乘以注意力向量进行加权。此外,SE 模块能起到强调重要通道并抑制噪音的作用,缺点是在压缩模块中,全局平均池化无法很好的提取复杂的全局信息。同时,在激励模块中,两个全连接层增加了模型复杂性。

对于本文而言,通道注意力机制的重要作用是降低模型的复杂性。为了在被分割后的混洗通道中恢复被打乱的通道信息,促进通道间信息的交流,提升模型检测性能。本文受SENet 启发,在S1 与S2 模块中添加通道注意力eSE模块,如图3 所示。同时,为了提升SE 模块的执行效率,本文将SENet 中两个全连接层替换为一个点卷积,以降低模型的复杂性,提升执行效率。由特征图的可视化(见图4,彩图扫OSID 可见,下同)可见,注意力机制对模型存在积极影响。

Fig.3 eSE module图3 eSE 模块

Fig.4 Visualization results of feature maps图4 特征图可视化结果

3 目标检测算法剪枝

3.1 基于批量归一化层的通道剪枝

剪枝技术可分为结构化剪枝和非结构化剪枝。其中,非结构化剪枝技术可有效平衡参数数量和模型性能,但由于网络拓扑结构的变化,需要特殊硬件设备支持其正确运行。相比之下,结构化剪枝技术可显著减少网络中滤波器组和特征通道数量,使模型高效运行,无需复杂的算法设计和特殊的硬件。为此,本文采用批量归一化层系数评估每个通道网络参数的重要性,以实现对网络的结构化剪枝。

批量归一化可将每个层的神经元输出标准化,以维持激活值的分布稳定,从而加快模型训练速度,有效抑制过拟合现象发生。批量归一化的主要优点之一是有助于稳定深度神经网络训练。深度神经网络对权重的初始化非常敏感,不良的初始权重会导致训练难以收敛,而批量归一化可减少神经网络对权重初始化的敏感性,使训练过程更稳定。此外,通过批量归一化还可有效改善神经网络的性能。在训练过程中,由于输入分布的变化,网络可能产生不准确的预测结果,而批量归一化可有效减少内部协变量偏移,从而提升神经网络预测的准确性。

批量归一化层的计算公式如式(1)所示,每个通道的输出值zout与系数γ呈正相关,在γ接近于0 时激活值非常小。本文假设去掉γ趋于0 的通道,对于模型的影响不大,并且实际实验结果也符合预想。

由于不同数据集批量归一化层系数分布的规律不同,可通过增加约束方法使其符合要求。在OUC-UAV-DET数据集上训练发现,批量归一化层的系数呈正态分布,但其期望并不在0 附近,无法直接根据γ进行剪枝。因此,本文在损失函数中添加L1 正则约束,尝试将批量归一化层的系数分布期望调整到0附近。

其中:第一项是正常训练的损失函数;第二项是正则化约束;g(s)=|s|;λ为正则系数。

在反向传播时,损失函数的导数由式(3)所示。

在添加正则项后,随着训练进行,批量归一化层参数正态分布的期望趋向于0,此时可进行剪枝操作。在设定γ阈值时,应不能大于任何通道批量归一化层的最大γ,通过该阈值可有效剪除低于阈值的通道。通常情况下,剪枝结束后还需要重新训练模型以恢复模型精度。

3.2 针对单类目标检测的输出层剪枝

YOLOv5 结构在网络的3 个或4 个不同阶段输出检测结果。其中,3 个输出层对应的输出由上至下分别通过P3、P4 和P5 进行表示,第4 个输出根据具体情况可能会由P2 或P6 进行表示。当输入图像大小为640×640 时,经过8倍下采样的P3 检测层特征图大小为80×80,特征图中每个像素点可检测原始大小在8×8 像素以上的目标。以此类推,P4 经过16 倍下采样负责检测16×16 以上的目标,P5 经过32 倍下采样负责检测16×16 以上的目标。图5 为对原始的YOLOv5输出层剪枝后的输出结构。

在VisDrone 数据集、OUC-UAV-DET 数据集中,某些类别的样本尺寸相对固定。本文认为在检测尺寸相对固定的类别时,对多个尺度的特征进行融合并不能提升模型性能。为此,本文针对YOLO 的输出层进行剪枝,表1 为YOLOv5s 模型通过裁剪掉输出层对参数量和计算量的影响。

4 实验结果与分析

4.1 数据集

本文使用的数据集包括VisDrone 数据集和中国海洋大学无人机目标检测(OUC-UAV-DET)数据集。

VisDrone 航拍小目标数据于2018 年提出,旨在为无人机应用场景下的物体检测提供一个相对通用和全面的大规模数据集。该数据集包含10 209 张静态图像(6 471 张用于训练,548 张用于验证,1 610 张用于测试及1 580 张未标注的图像),主要关注人类和车辆,并定义了直立行人、非站立状态的人、小汽车、货车、公共汽车、卡车、面包车、自行车、遮阳蓬三轮车和三轮车共10 个感兴趣的对象类别。

中国海洋大学无人机目标检测(OUC-UAV-DET)数据集由中国海洋大学视觉实验室采集和标注。该数据集主要在校园、海滩和街道等人车密集的场所拍摄,采用大疆无人机作为图像采集设备。目前,该数据集包括2 071张高分辨率的静态图像,包括人、自行车、汽车、面包车、货车、自行车、公共汽车、摩托车和船共9类目标。

4.2 实验环境

本文训练的GPU 为2080Ti(显存12 GB),部署时使用英伟达的Jetson AGX Xavier 平台,算力为30 Tops,最大功耗为30 W。实验的操作系统为Ubuntu18.4,安装了包括TensorRT 8.5.2、cuDNN 8.6.0、CUDA 11.4.19、OpenCV 4.5.4等软件库的JetPack5.1软件包。

4.3 实验评价指标

在目标检测中,平均值(Average Precision,AP)、均值平均精度(mean Average Percision,mAP)是两个重要的衡量指标[17,18],mAP 为AP 值除以类别数,由式(1)所示。mAP@50 值指交并比阈值为0.5 的mAP,mAP@50∶95 指交并比阈值分别在0.5 与0.95 之间每隔0.05 的mAP 的平均值,AP 为准确率—召回率曲线下的面积。

PR 曲线由改变IOU 阈值产生的多组准确率与召回率,在平面坐标系下对应的点连接而成。目前,主流计算PR 曲线下面积(即AP)的方式有VOC 数据集和COCO 数据集的计算方式。本文使用COCO 方式进行AP 计算,实验时延指推理时间与非极大值抑制耗时的总和。

4.4 结果分析

表2 为本文方法与原始YOLOv5 的比较结果。由此可知,本文方法相较于YOLOv5n 及其他模型精度更高,推理速度更快,更适用于无人机实时检测场景,体现了本文设计网络的优越性。表3 的消融实验证明,添加高效的注意力模块(eSE)和使用ADD 进行特征融合,能有效提升模型的mAP,降低时延。表4 为使用批量归一化层的通道剪枝方法后,YOLOv5s 在OUC-UAV-DET 数据集上的测试结果。由此可知,当阈值为0.65 时模型精度大幅下跌,且速度提升已不明显,因此本文选用0.6为剪枝阈值。

Table 2 Model evaluation on the VisDrone dataset表2 VisDrone数据集模型评估

Table 3 Ablation experiments表 3 消融实验

Table 4 Channel pruning results on the OUC-UAV-DET dataset表4 OUC-UAV-DET 数据集通道剪枝结果

由表5 可知,单类目标的YOLO 输出层剪枝在Vis-Drone 数据集和OUC-UAV-DET 数据集上的可行性,在只保留P3 层的情况下模型精度并未下降,只在P3 层输出时的检测效果甚至更好,证实了在检测尺寸相对固定的类别时,对多个尺度的特征进行融合并不能提升模型性能。

Table 5 Comparison of vehicle detection using different output layers表5 车辆检测使用不同输出层比较

4.5 边缘设备部署结果分析

模型转换后,模型精度略微下降,可能是由于单精度(fp32)浮点数转半精度(fp16)浮点数所带来的损失。表6为各模型在边缘设备Xavier 上的性能,结果与表2 类似。由此可知,本文改进的轻量化目标检测模型在VisDrone 与OUC-UAV-DET 数据集上的表现优于YOLOv5、YOLOv6及YOLOv7 的轻量版本。表7 展示了推理一张高分辨率的4 000×2 250 图像,从端到端所消耗的时间及帧率。由此可知,本文方法理论上可达到6.1 FPS的预测速度。

Table 6 Model performance on Jetson platform表6 Jetson 平台模型性能

Table 7 Inference speed of the model on Jetson platform(high-resolution image cropping)表7 Jetson 平台模型推理速度(高分辨率图像切图)

5 结语

本文从轻量化网络设计与模型剪枝方向出发,对Vis-Drone 数据集与OUC-UAV-DET 全类别和特定类别进行优化,从模型与算法层面提升了无人机目标检测算法的性能。通过轻量化改造YOLOv5 的主干网络,引入了一种更高效的通道注意力机制提升网络精度。实验证明,该方法在公开无人机数据集VisDrone 和自建数据集OUC-UAVDET 上,能在保持较高精度的基础上具备更快的推理速度。

同时,本文针对无人机单类别检测任务中目标实例尺寸相对固定的特点,采用网络剪枝方法减少网络输出层,结合OUC-UAV-DET 数据集中批量归一化层系数服从正态分布的规律,在损失函数中添加正则项,逐渐将批量归一化层系数分布的期望值趋于0。然后,根据批量归一化层的系数绝对值大小,评估网络中各通道的重要性,并根据阈值对不重要通道进行裁剪。实验证明,两种剪枝方式在相关数据集上取得了良好的成效。

此外,本文在英伟达Jetson 平台上对模型进行部署和测试,结果表明在边缘智能设备上,本文设计的轻量化目标检测模型和剪枝方法均取得了一定成效。基于此次研究,能使人们深入理解和掌握无人机目标检测算法和应用,为无人机目标检测应用提供重要的技术支持。未来,将进一步扩充高分辨率航拍图像的数据量,通过更多实际场景数据提升模型的泛化性,以应对在不同场景的实际检测过程中可能遇到的问题。

猜你喜欢
剪枝批量卷积
人到晚年宜“剪枝”
基于3D-Winograd的快速卷积算法设计及FPGA实现
基于YOLOv4-Tiny模型剪枝算法
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
剪枝
浅议高校网银批量代发
基于AUTOIT3和VBA的POWERPOINT操作题自动批量批改
一种基于卷积神经网络的性别识别方法
考虑价差和再制造率的制造/再制造混合系统生产批量研究