融合注意力机制的R-YOLOv5 电力检修车机械臂识别网络
2023-03-17张劲松陈明举邓元实
张劲松, 陈明举,2∗, 邓元实, 王 鸿
(1.四川轻化工大学 人工智能四川省重点实验室, 四川 宜宾 644005;2.四川轻化工大学 企业信息化与物联网测控技术四川省高校重点实验室, 四川 宜宾 644005;3.国网四川省电力公司电力科学研究院, 四川 成都 610095)
0 引言
长期以来,变电站在进行电力作业[1]的过程中,时常发生安全事故,不但会带来经济损失,而且会对电力作业人员造成人身伤害。 究其原因,主要是电力施工人员作业操作不规范、检修作业时监管不到位和安全意识薄弱。 传统的监管方法主要依靠视频监控和人员车辆定位[2],对人员操作的依赖性较强,当外界环境干扰过大时,可能会影响数据的传输,导致操作人员出现误判情况。 随着人工智能科学技术的蓬勃发展,深度学习具有学习能力强、适用范围广的特点,已经广泛应用于各个领域,实现了人脸识别[3]、人体姿态估计[4]和目标检测[5]等功能,并且取得了较好的成果。
在电力场景中,章文旭[6]提出了一种基于多特征融合的目标跟踪算法,并与YOLOV3 结合,对电力施工现场的作业人员实现了跟踪定位、安全帽佩戴检测和判断是否进入危险区域等功能,一定程度上保障了电力作业人员的安全。 王时威[7]提出了一种双流Faster-RCNN 检测方法和超宽带信号分类定位方法,实现了对电力作业人员穿戴的检测和误入危险区域警告的功能,在一定程度上避免了安全事故的发生。 黄文杰等[8]将Alphapose 与ResNet 结合,实现了对电力作业人员的穿戴检测,一定程度上能够起到规范电力作业人员着装的作用。 但是目前的这些方法只适用于电力作业人员,而在实际的电力作业场景中,电力检修车也是不可或缺的一部分,在不同的作业环境中,为了保障施工安全,电力检修车的作业姿态也有具体的要求。 因此,设计一种针对电力检修车的安全监测方法是一个亟待解决的问题,而目前却比较缺乏对该方面的研究。
由于电力检修车主要使用机械臂进行电力作业,本文将电力检修车的机械臂作为研究对象。 研究中存在2 个难点:一是电力检修车机械臂具有较大横纵比和带旋转角度的特点,常规的目标检测算法检测效果不佳,采用旋转目标检测算法可以提升检测效果,但旋转目标检测算法会出现边界问题,产生较大的损失值,导致算法性能下降;二是要考虑实际作业中算法的实时性。 针对这2 个问题,本文采用长边定义法与环形平滑标签相结合的方法解决了边界问题;采用YOLOv5 结合注意力机制的方法保证了检测算法的准确度和实时性。
1 R-YOLOv5 网络
1.1 R-YOLOv5 网络设计
当前大多数旋转目标检测算法集中于遥感领域。 Sun 等[9]提出了一种以RetinaNet[10]为基础的R4Det 算法,设计了一个递归特征金字塔(Recursive Feature Pyramid,RFP) 和特征精炼模块(Feature Refinement Module,FRM),并增加了递归连接块(Recursive Connection Block,RCB),提高了检测精度;李 赛 凤[11]在 Faster-RCNN 算 法 的 基 础, 以ResNet50 和特征金字塔网络( Feature Pyramid Network,FPN)结合作为主干网络完成特征提取,并使用RoI Align 替换RoI pooling,提升了模型的检测性能。
不论是单阶段目标检测算法还是二阶段旋转目标检测算法,大多不能同时做到精确检测和快速检测,且不能很好地解决旋转角度带来的损失问题。YOLO 系列算法[12-15]经过了YOLOv1 到YOLOv5 的版本迭代,无论实在检测的精度还是检测的速度上都有很好的表现。 本文将以YOLOv5 网络为基础,实现对电力检修车机械臂和机械臂旋转角度的检测和预测,YOLOv5 网络结构如图1 所示。
图1 YOLOv5 V6.0 网络结构Fig.1 YOLOv5 V6.0 network structure diagram
本文的R-YOLOv5 网络主要对Input 和Prediction 部分进行设计。 Input 即输入端,主要是对输入的图片数据进行处理,具体的处理方式为调节亮度和饱和度、旋转平移、缩放裁剪和翻转拼接。 由于R-YOLOv5 网络针对旋转目标进行检测,所以采用带角度的数据标签进行标注。
Backbone 部分主要由特征提取的主干网络CSPDarkNet 和快速空间金字塔池化(Spatial Pyramid Pooling-Fast,SPPF)组成,包含CSP1_X 和CSP2_X 结构。 CSP1_X 应用于CSPDarkNet 中,能够加强对图片的特征提取能力,结构示意如图2 所示;CSP2_X应用于Neck 中;SPPF 相比于SPP 增加了2 个CBS模块,提高了网络的训练效率,结构示意如图3所示。
图2 CSP1_X 结构示意Fig.2 CSP1_X structural diagram
图3 SPPF 结构示意Fig.3 SPPF structure diagram
Neck 部分主要由FPN 和判别器组成,CSP2_X能够加强特征融合能力,使网络提取到的特征更加丰富,结构示意如图4 所示。 Prediction 部分实现对大、中、小3 种不同尺度的目标检测功能,本文的RYOLOv5 网络在Prediction 部分增加了180 个角度分类通道,完成对目标旋转角度的预测。
图4 CSP2_X 结构示意Fig.4 CSP2_X structure diagram
1.2 数据标签优化
通常情况下,基于深度学习的目标检测算法采取的数据标注方式为水平框标注。 针对本文研究对象具有大横纵比和带有旋转角度的特点,采用旋转框的标注方式进行数据标注,旋转框数据标注方式能够更加准确地框选本文的检测目标,减少框入多余的语义信息,避免主干网络提取到不必要的目标特征,提高目标的检测精度和减少网络训练的时间。水平标注框和旋转标注框对本文研究对象的标注效果对比如图5 所示。
图5 水平标注框与旋转标注框效果对比Fig.5 Comparison between horizontal bounding box and rotating bounding box
虽然通过旋转标注框能够减少特征提取时的冗余信息,提高网络的检测精度和训练效率,但是旋转框的数据标注方式会在网络训练时出现边界问题,包括边的交换(Exchangability of Edges,EoE)问题和角度的周期(Periodicity of Angular,PoA)问题。 EoE 问题是当目标进行旋转时,矩形框的长和宽会发生互换,造成角度发生90°的误差,如图6(a)所示。 PoA问题是因为用于训练的数据标注参数具有周期性,在周期发生跳跃时,边界部分会使损失值突增,在图6(b)中,假设θ∈[-90°,90°),目标顺时针旋转,红色框预测得到的旋转角度θ为88°,目标的真实标注角度为89°时,误差值为1°;绿色框预测得到的旋转角度θ为89°,目标的真实标注角度为-90°时,误差值则为179°,然而在实际情况下误差值仅为1°。
图6 EoE 问题和PoA 问题示意Fig.6 Schematic diagram of EoE problem and PoA problem
针对θ的边界问题,本文采用长边定义法与环形平滑标签(Circular Smooth Label ,CSL)[16]相结合的方法来解决θ的边界问题。 长边定义法解决边的变化问题,环形平滑标签解决角度的周期问题。
2 基于R-YOLOv5 电力检修车机械臂状态识别网络
2.1 基于长边定义法与CSL 的数据损失问题优化
长边定义法是一种五参数标注方法[17],确定了角度的定义问题,避免了边的交换性问题。 长边定义法的表示方法为(180°,-regression-based,[x,y,w,h,θ]),(x,y)为旋转矩形框的中心坐标,w和h分别为矩形框的短边和长边,θ为长边h和x轴的夹角,θ∈[-90°,90°)。 长边定义法示意如图7 所示。
图7 长边定义法Fig.7 Long edge definition method
由于本文采取长边定义法定义角度,避免了EoE 问题,因此只需要考虑旋转目标的PoA 问题。本文采用CSL 将θ的回归问题转变为分类问题,把不同范围内的角度划分为不同的类别,这样就把一个连续问题进行了离散化,规避了θ的边界情况。但是离散化处理必然会产生精度损失,将角度范围划分为1°一类时,在预测角度带有小数时,会产生精度损失。 为了评估该损失带来的影响,计算精度最大损失和平均损失(服从均匀分布),公式如下:
当角度范围划分为1°一类(ω=1)时,精度最大损失和期望损失为0.50 和0.25。 采用2 个横纵比为1 ∶9 的旋转矩形框进行测试后,2 个旋转矩形框的交并比分别下降了0. 05 和0. 02,本文的研究对象横纵比几乎很难达到1 ∶9,所以该方法带来的精度损失是可以接受的。 为了使分类损失能够用来预测结果和角度标签的距离,设计了一种One-hot 编码方法,假设真实的角度标签是0°,当网络的角度预测值为1°和-90°时的精度损失值是相同的。One-hot 编码方法示意如下。
图8 One-hot Lable 示意Fig.8 Schematic diagram of One-hot Lable
基于One-hot Lable,引入了CSL,CSL 示意如图9 所示。
图9 CSL 示意Fig.9 Schematic diagram of CSL
CSL 的表达式如下:
式中,g(x)为窗口函数。g(x)要具备周期性、单调性和对称性等条件,半径r决定窗口的大小。 本文采用Gaussian 函数作为窗口函数,将窗口半径设置为6,g(x)的函数表达式如下:
式中,a,b,c是常数,本文中设置a为1,b为0,c为4;x是角度信息。
2.2 HardSwish 激活函数
在一个神经网络中,无论神经网络的深度有多深,假如所有的特征传递都承接上一层网络输入函数的线性变化,模型就变得很容易验证,网络的逼近能力也很有限。 激活函数在神经元中加入了非线性成分,让深层神经网络具有更强的表达力,并应用于非线性模型中。 经常使用的激活函数有Sigmoid,Tanh,ReLU 和Softmax。
R-YOLOv5 网络中Conv 层的激活函数为SiLU,SiLU 激活函数是Swish 激活函数[18]的变体,Swish函数的表达式如下:
当式(6)中的β取值为1 时,Swish 激活函数变为了SiLU 激活函数,SiLU 的表达式如下:
SiLU 激活函数具有无上界有下界、平滑和非单调的特点,性能和效果都比ReLU 激活函数更好。本文使用HardSwish 激活函数[15]替换网络中Conv层的SiLU 激活函数,HardSwish 激活函数具有更强的非线性功能,能够提高模型的精度,通过实验证明,HardSwish 激活函数确实能够提高模型精度。 修改后网络结构如图10 所示。
图10 CBH 模块Fig.10 CBH module
HardSwish 的函数表达式如式(9),函数图像如图11 所示。
图11 HardSwish 函数图像Fig.11 HardSwish function graph
2.3 融合注意力机制的R-YOLOv5 网络
注意力机制[19]最初使用在机器翻译领域,并取得了不错的成果。 随着深度学习的蓬勃发展,注意力机制也被大量应用于计算机视觉[20-21]领域。 注意力机制在读取图像的同时,会得到要着重注意的目标区域,进一步注重该区域的信息,忽略不必要的信息,能够更好地分配电脑的计算能力。 注意力机制一般可以分为3 类:第1 类是通道注意力(Channel Attention,CA);第2 类是空间注意力(Spatial Attention,SA);第3 类是通道注意力和空间注意力的混合模型。 常用的注意力机制有SE[22](Squeeze and Excitation),CBAM[23](Convolutional Block Attention Module)。
SE 模块结构简单,可以应用于多种网络,但是SE 只通过建模通道间的联系来确定其余通道的权重,没有重视位置信息,而Attention maps 对生成空间的选择很依赖位置信息。 CBAM 先使用CA,再使用SA,既关注了全局信息,又关注了局部信息,能够有效地提取目标突出特征,提高模型检测精度,CBAM 结构示意如图12 所示。
图12 CBAM 结构示意Fig.12 CBAM structure diagram
由图12 可以看出,CBAM 将经过主干网络提取得到的目标特征图最大池化和平均池化后,得到2 个1×1×C的特征图,通过MLP 网络映射每个通道的权重并相加,由Sigmoid 生成通道注意特征图F′。特征图F′继续进行最大池化和平均池化处理,产生2 个H×W×1 的特征图,经过concat 操作变为H×W×2的特征图,再用一个7×7 的卷积核进行卷积,生成H×W×1 的特征图后,由Sigmoid 生成空间注意特征图。 最后将空间注意特征图与目标特征图相乘,得到最终输出的特征图。
本文将CBAM 注意力机制设置在R-YOLOv5 网络的Neck 部分与Prediction 部分之间,如图13 所示,CBAM 对主干网络提取到的3 个尺度上的特征图再进行通道上和空间上的特征提取,使得该模型的特征提取能力进一步加强。
图13 CBAM 位置图Fig.13 CBAM location map
3 实验结果及分析
3.1 实验环境
本文实验采用的电脑配置如下:CPU 为Intel(R)Xeon(R)CPU E5-2695 v4 @2.10 GHz;RAM 为256 GB;操作系统为Windows 10 Pro;GPU 为NVIDIA TITAN Xp 12 GB。 软 件 使 用 CUDA10. 2, Anaconda3,PyCharm Community,Python3. 8 和Microsoft Visual Studio2017 等,深度学习框架为Pytorch。
3.2 实验数据
由于目前并没有公开的电力检修车数据集,因此本文使用自制的数据集进行实验。 自制数据集的数据标注格式参考遥感目标检测数据集DOTA,采用RoLableImg 标注软件对数据集中的电力检修车机械臂进行标注,将标注完成的xml 文件通过公式转化为DOTA 数据集的txt 格式,转化公式如下:
式中,(xi,yi)为转换后的坐标。 经过转化后的数据格式为:
本文数据集共有1 200 张曲臂电力检修车图片,设置的2 个目标类别为arma 和armb,机械臂arma 和armb 的标识如图14 所示。
图14 机械臂标识Fig.14 Mechanical arm identification
本文数据集的训练集、验证集和测试集比例设置为4 ∶1 ∶1,虽然数据集中arma 和armb 的数量基本上处于平衡状态,但是为了防止数据过少带来过拟合问题,本文对数据集中的训练集和验证集进行数据增强处理,增强前的训练集和验证集图片数量分别为800 和200。 增强后的训练集和验证集图片数量分别为2 979 和762。
3.3 参数设定
由于本文研究对象的横纵比较大,而YOLOv5的初始anchor 尺寸为[10,13,16,30,33,23],[30,61,62,45,59,119],[116,90,156,198,373,326]明显不适合本文数据集。 因此本文采用K-means 聚类[24]的方法根据数据集中目标的标注信息重新生成anchor,得到的新anchor 尺寸为[315,45,381,53,315,75],[488,49,499,81,732,76],[620,118,772,191,923,163]。
为了验证本文Rotated-YOLOv5l-CBAM 算法的检测性能,本文共设置了4 组对比实验。 对比的算法分别为 Rotated-YOLOv5l-Base, Rotated-Faster-RCNN,Rotated-Reppoints 和RoI Transformer。 针对Rotated-YOLOv5l-CBAM 和Rotated-YOLOv5-Base 设置300 个训练epoch,anglelossgain=0.8,angle BCELoss positive_weight= 1.0,momentum= 0.937,weight_decay= 0.000 5,lr0= 0.001,优化器设置为adam;针对Rotated-Faster-RCNN,Rotated-Reppoints和RoI Transformer 设置80 个训练epoch,lr=0.002 5,优化器选择SGD,weight_decay=0.000 1。
3.4 结果与分析
本文选择单个类别平均精度(Average Precision,AP)、总类别平均精度均值(mean Average Precision,mAP)、错检率(误检+漏检)Perror和平均帧率(mean Frames Per Second,mFPS)为模型的评价指标。 AP 和mAP 的计算如下:
式(15)中,AP为P-R 曲线与坐标轴围成的面积大小;p为精确度(Precision);r为召回率(Recall);式(16)中的N是数据集中的类别个数。 表1 为各个模型在测试集上的 AP 和 mAP 值, Rotated-YOLOv5l-CBAM, Rotated-YOLOv5l-Base, Rotated-Faster-RCNN 和Rotated-Reppoints 在下文中分别简称为R-YOLOv5l-CBAM,R-YOLOv5l-Base,R-Faster-RCNN 和R-Reppoints。单位:%
表1 各模型精度指标Tab.1 Precision index of each model
由表1 可知,Rotated-YOLOv5l-CBAM 模型在测试集中arma 和armb 单个类别平均精度分别为89.79%和79.98%,总类别平均精度为84. 88%,均优于其余模型。 相较于Rotated-Reppoints 模型,总类别平均精度提升了9.23%。 在测试集中加入50 张其他车辆图片作为干扰,使用各模型对测试集中的图片以及电力检修车作业视频进行检测,各模型的模型大小、Perror和mFPS 如表2 所示,各模型对机械臂的检测效果如图15 所示。
表2 各模型的大小、错检率及帧率Tab.2 Size,false detection rate and FPS of each model
图15 各模型检测效果Fig.15 Detection effect of each model
由表2 和图15 可以看出,在5 个模型中,R-YOLOv5l-CBAM 模型的错检率为13. 6%,均低于其余模型,且相较于R-Reppoints 错检率下降了45.6%,对机械臂的检测效果也最好,没有受到干扰图片的影响,其余4 个模型存在漏检、检测框不准和被干扰的问题;模型大小为71. 1 MB,仅为RoI Transformer 模型的17%;mFPS 在33 帧/秒左右,检测速度约为RoI Transformer 模型的5 倍,兼顾了检测的准确度和实时性。 角度预测样本如图16 所示。以图16 为例,各模型对机械臂arma 和armb 的角度预测结果如表3 所示。
图16 角度预测样本Fig.16 Sample picture of angle prediction
表3 各模型角度预测结果Tab.3 Angle prediction results of each model单位:
图16 中电力检修车机械臂arma 和armb 的实际标注角度分别为10°和37°。 由表3 可以看出,RYOLOv5l-CBAM 模型的角度预测结果相较于其他模型的预测结果更接近机械臂实际角度。
4 结束语
本文设计了一种针对电力检修车机械臂的检测及机械臂旋转角度预测的R-YOLOv5 算法。 以YOLOv5 算法为基础,采用长边定义法与环形标签相结合的数据标注方式,解决了目标旋转时角度θ产生的EoA 问题和PoA 问题,避免了网络损失值的突变问题;将网络中的SiLU 激活函数替换为Hard-Swish 激活函数,并在网络的Neck 部分和Prediction部分之间的3 个尺度上加入了CBAM 注意力机制,使得模型对目标图像的特征提取能力进一步加强。通过实验对比,本文设计的检测算法的平均检测精度相较于R-YOLOv5l-Base,R-Faster-RCNN,R-Reppoints 和RoI Transformer 均有提升,且模型大小较小,检测速度能够满足实时检测要求。 该模型在本文的电力检修车数据集上进行测试时,可以实现对电力检修车机械臂arma 和armb 的检测及机械臂角度预测,能为电力作业场景中电力检修车的预警工作提供参考,避免安全事故带来的经济损失和人员伤亡。