杨敏巍 袁海东 杨帅 高家乐
北方自动控制技术研究所,030006
·1·
●论著●
摘要:本文分析了目标检测算法YOLOv5网络结构的优缺点,提出了一种轻量化网络模型YOLOv5s-lite,对原来的YOLOv5s进行了模型加速,用分组卷积、深度可分离卷积和通道混洗操作代替网络中部分普通卷积,并在自制的螺栓模板数据集上验证了检测性能和模型复杂度,在基本不改变检测精度的情况下将网络模型减小了将近一半。
关键词:YOLOv5;轻量化;YOLOv5s-lite;模型加速
随着人工智能研究的逐渐深入和高新技术的不断进步,在工业上,越来越多的作业场景开始采用智能机器人代替人工完成各种危险系数高、难度系数高、工作强度大的任务。安全生产长期以来一直是我国的一项基本国策,是保护劳动者的安全、健康和国家财产,促进社会生产力发展的基本保证。在电力角钢塔组塔过程中为了提高施工人员的安全系数,保证工作的效率和质量,可以结合人工智能技术采用自动化设备代替人工紧固角钢塔主材螺栓,最大限度减少高空作业时间。
智能机器人一般采用的嵌入式开发平台,控制单元算力有限,在选择算法时不仅需要考虑准确率还需要考虑实时性。YOLOv5基于YOLO 各代算法进行优化,提供了 YOLOv5s、YOLOv5m、YOLOv5l和YOLOv5x四个版本,不同的是网络结构的宽度和深度,网络结构越宽,提取的特征越充分,但特征重复性较高,模型的计算负担较大;网络结构越深,非线性表达能力越强,但过深的网络结构会使网络梯度不稳定。
YOLOv5网络结构分析
YOLOv5的网络结构分为输入端Input、主干网络Backbone、颈部网络Neck 和检测头Head四个部分,普通卷积层CBS是网络的基础单元,由标准卷积、批量归一化层和激活函数组成,其他结构均由此构成。YOLOv5的激活函数是SiLU函数,根据输入的具体值进行加权,比常用的激活函数Sigmoid和ReLU效果好。
Input部分是整个的输入端,标准尺寸为 640×640,但初始输入图片的尺寸可能与此不同,故需要将原始图片进行处理后再送入网络。传统的缩放填充方式有一定的缺陷,存在信息冗余,影响推理速度,YOLOv5网络模型提出了一种新的缩放填充方式,自适应图片大小,减少了无关信息的输入,在检测阶段选用该方法提高推理速度。
Backbone部分用切片操作代替普通的下采样,将数据进行切割、拼接,并组合起来,尺寸变为原来的一半,通道数变为原来的4倍,然后用CBS(3×3)改变特征图的通道数,这种操作类似于邻近下采样,保留了原始图片的特征信息。主干网络采用了CSPDarknet53。YOLOv5网络模型设计了C31_x和C32_x两种小型的结构,x表示残差单元(Res Unit)和普通单元(Unit)的数量。C31_x 的主干部分由Res Unit堆叠而成,分支部分是CBS的堆叠,C32_x全部由CBS堆叠而成,最后将主干部分和分支部分向量拼接(Concat),通过一个CBS(1×1)输出特征图。
Neck结构主要由SPP模块、特征金字塔网络FPN和路径聚合网络PAN组成。SPP模块首先经过CBS(1×1)变为四个分支,分支1直接由输入连到输出,分支2、3、4分别经过5×5、9×9和13×13的最大池化层,最后将4个分支由Concat操作组合起来,用一个CBS(1×1) 融合特征信息。SPP模块实现了多尺度特征融合却没有改变特征图的尺寸和通道数。FPN与PAN的结合不仅提高了网络的特征提取能力,还改善了多尺度检测问题。
Head结构有不同尺寸的检测头,与Neck部分最后输出的特征图相对应。特征图的尺寸越小,感受野越大,检测目标也越大。三个检测头的尺寸分别为20×20×255,40×40×255 和80×80×255,用于检测大型目标、中型目标和小型目标。
轻量化模型 YOLOv5s-lite
YOLOv5s是YOLOv5 算法的最小版本,参数量和浮点运算数比其他版本要小得多,但占据的内存空间依旧较大,直接部署到计算能力有限的嵌入式系统上会影响数据处理速度,故可利用常用的模型加速方法对 YOLOv5s进行轻量化。
经典的模型加速方法有网络剪枝、权重量化、轻量化设计等。常用的轻量化卷积方式有非对称卷积、分组卷积、深度可分离卷积和频率卷积。在尽量不降低YOLOv5s算法检测准确率的情况下为了使其在嵌入式系统上占用更少的内存空间,需要尽可能减少参数量和计算量。
YOLOv5s所有普通卷积层的卷积核尺寸均为1×1和3×3,尺寸已经很小,如果全部用1×1卷积核会降低模型精度。3×3卷积核除了提取特征信息,还可以在Focus结构中融合切片后的特征信息并改变特征图的通道数,此外将滑动步长设置为2时还可以实现下采样。1×1卷积核除了基本的提取特征信息和改变特征图的通道数外,在
C3结构中还可以融合主干部分和分支部分的特征信息。但YOLOv5s网络结构中存在大量的3×3标准卷积和1×1标准卷积,存在参数冗余,故可以减少标准卷积的数量。
本文提出了轻量化模型YOLOv5s-lite,它保留了原YOLOv5s的整个结构框架,对C3结构中的部分标准卷积进行轻量化。首先将Unit和Res Unit结构中的1×1标准卷积改为分组卷积,3×3标准卷积改为3×3深度可分离卷积,C31_x、C32_x 中Unit和Res Unit结构前的1×1标准卷积也改为分组卷积,组数设置为16,不改变其他标准卷积,下图为新提出的轻量化模型YOLOv5s-lite的网络结构。
分组卷积可以有效减少网络模型的参数量和计算量,但各组之间的特征信息独立,无法交换组间信息,通道混洗操作则可以将每组特征分散到其他组,使输出特征图包含所有组别的信息,通过张量变换实现分散,效率极高,故在每个分组卷积后添加一个通道混洗操作实现各组特征信息的融合。
轻量化模型 YOLOv5s-tiny 的性能检测实验
本文采用mAP@0.5和mAP@0.5:0.95 两个评价指标来评估网络模型的检测精度,用参数量P 和浮点运算数F来评估模型的复杂度。
将新提的轻量化模型YOLOv5s-lite分别与原YOLOv5s、YOLOv3和SSD作比较,实验结果如下表所示,相对于原来的YOLOv5s,YOLOv5s-lite的mAP@0.5降低了0.02,mAP@0.5:0.95 降低了0.03,P减少了36.2%,F减少了42.1%;与YOLOv3算法相比,YOLOv5s-lite的 mAP@0.5提高了0.20,mAP@0.5:0.95提高了0.22,P减少了92.7%,F减少了71.0%;与SSD 算法相比,YOLOv5s-lite的mAP@0.5提高了0.27,mAP@0.5:0.95提高了0.29,P减少了 81.5%,F减少了69.1%,新提出的 YOLOv5s-lite在基本不降低原 YOLOv5s的mAP值的情况下将网络模型缩小了将近一半。
表 1实验结果
算法类型 | mAP@0.5 | mAP@0.5:0.95 | P/Million | F/G |
YOLOv5s-lite | 0.94 | 0.73 | 4.52 | 9.5 |
YOLOv5s | 0.96 | 0.76 | 7.08 | 16.4 |
YOLOv3 | 0.74 | 0.51 | 61.50 | 32.80 |
SSD | 0.67 | 0.44 | 24.41 | 30.74 |
结论
本文对经典的单阶段目标检测算法YOLOv5进行了分析,并在此基础上提出了轻量化网络模型 YOLOv5s-lite,自制了螺栓模板,构建了螺栓数据集,并在该数据集上计算了YOLOv5s-lite和几种经典单阶段算法的检测精度和模型复杂度,经验证该模型在基本不降低mAP值的情况将网络的参数量和计算量减少了36.2%和42.1%,将网络模型缩小了将近一半,减少了内存占用。
参考文献
[1]罗隆福,叶威,王健.基于深度学习的高铁接触网顶紧螺栓的缺陷检测[J].铁道科学与工程学报,2021,18(3):605-614.
[2]尹瑞多,郭刚祥,陈元杰.基于 3D视觉的螺栓定位算法[J].中国计量大学学报, 2021,32(3):304–309.
[3]许涣.论加强火力发电厂安全生产管理[J].华北电业,2019 (6):64-65.
[4]董洪义.深度学习之PyTorch物体检测实战[M].机械工业出版社,2020.
·1·