钟映春,郑海阳*,张文祥,王波,罗志勇
1. 广东工业大学自动化学院,广州 510006; 2. 广东省机械技师学院机电工程系,广州 510450;3. 广州市优飞信息科技有限公司,广州 510630
电网安全运行对于国家和社会都具有极为重要的意义,对输电线路进行巡检是确保电网安全的关键措施之一(闫春江 等,2018)。近年来,为了提高巡检效率和人员的安全性,广泛采用无人机进行电力输电线的巡检。
工程车辆是包括挖掘机、起重机等在内的大型机械,这些车辆在施工现场得到广泛应用。当工程车辆在高压输电线网下方或附近进行施工时,由于经常需要举升挖斗或起重臂,极有可能出现挖斗或起重臂进入电网安全距离的情况,引起击穿短路等安全事故。为了防止这类情况的发生,非常有必要对无人机航拍图像中在高压输电线网附近作业的工程车辆进行准确识别,以尽早给出预警信号。
目前对图像中工程车辆的识别方法主要包括经典模式识别方法和深度学习方法(武金婷 等,2019)。在经典模式识别方法中,邵宇等人(2013)提出了一种基于视频序列的工程车辆识别算法,结合方向梯度直方图(histogram of oriented gradients, HOG)和支持向量机(support vector machine, SVM)来对智能监控中的工程车辆进行识别,张全发等人(2013)则在此基础上提出使用Hough变换直线检测的方法来提高对智能监控中工程车辆的检测率,但是这种方法只有在背景环境较为单一的条件下才能够保证较高的识别准确率。在深度学习方法方面,闫春江等人(2018)将PBAS(pixel-based adaptive segmenter)算法和VGGNet-16(Visual Geometry Group network-16)网络模型相结合,提出一种基于深度学习的工程车辆入侵的检测方法,能够在提高检测速度的同时保持较高的检测准确率,但是对于背景比较复杂的场景,依旧存在一定的漏检率。目前关于无人机航拍图像中工程车辆识别的研究甚为罕见。Zhang等人(2018)提出使用Faster R-CNN(faster region-convolutional neural network)来对无人机航拍图像中的工程车辆进行识别,该方法能够实现较好的目标识别准确率,但是其推理时间较长,且要求有足够大的数据集对模型进行训练。
胶囊网络是Sabour等人(2017)为解决卷积神经网络(convolutional neural networks,CNN)池化操作丢失图像大量特征信息而提出的一种网络结构。为了提取图像中更多的特征,Phaye等人(2018)提出将特征提取网络改进为3层特征提取网络。Zhang等人(2019)提出了CNN-CapsNet,将CapsNet和VGG16(Simonyan和Zisserman,2015)或Inception3(Szegedy等,2016)结合,以提取图像更多的特征,但是增加了网络复杂度。Yang等人(2020)则是将胶囊网络和Res2Net相结合,利用Res2Net提取图像更多的特征。Bhamidi和El-Sharkawy(2020)结合了胶囊网络和残差网络,提出了一种3层残差胶囊网络,实现了对复杂数据更好的识别效果。为了测量胶囊网络分类时预测结果的不确定指数,Afshar等人(2020)提出将胶囊网络与贝叶斯算法相结合,该方法提高了胶囊网络的计算成本。动态路由算法是胶囊网络的核心算法,Wang和Liu(2018)改进了动态路由算法中耦合系数的初始化方式和更新方式,有效提升了胶囊网络的分类性能。Hinton等人(2018)提出将胶囊网络改进为基于EM(expectation maximization)路由算法的矩阵型胶囊网络,输出用矩阵表示,可以更好地表征图像的特征。Zhao等人(2019)则将动态路由算法中的softmax函数替换为max-min函数,在目标特征较为简单的图像识别中可以提高分类准确率。Basu等人(2020)则提出了一种将胶囊网络的挤压函数去除,并在胶囊网络中加入池化层的改进胶囊网络,提高了胶囊网络的识别准确率。目前胶囊网络在小型数据集的相关领域得到了广泛应用,如文本识别(Wu 等,2020)、白细胞分类(Baydilli和 Atila,2020)、行为检测(Ha和Chen,2021)和心脏图像分割(刘畅 等, 2021)等。
针对当前各种算法在识别无人机电力巡检航拍图像中的工程车辆过程中,存在识别准确率低、参数规模大以及训练集样本需求大等问题,本文提出一种改进的胶囊网络方法对无人机巡检航拍图像中工程车辆进行识别,主要包括对其网络结构和动态路由算法进行改进,并探索网络层数、动态路由算法中关键参数等因素对识别准确率、效率和参数规模的影响。
本文设计的无人机航拍图像中工程车辆识别算法总体架构如图1所示。
图1 总体架构设计Fig.1 Design of research architecture
从图1可见,无人机航拍图像中工程车辆识别改进算法的总体架构包括构建数据集、构建图像识别模型以及测试、对比和评估3大过程。
构建数据集包括图像标注、图像分块、图像尺寸归一化和图像分组等过程。
构建图像识别模型阶段对原始胶囊网络算法进行了两个方面的改进:改进网络结构和改进动态路由算法。同时构建了经典模式识别算法模型和YOLOv5算法模型,用于后续对比实验。
测试、对比和评估阶段如下:1)确定两种改进的有效性;2)探索胶囊网络层数、动态路由算法关键参数等对算法识别性能的影响;3)将本文算法获取的胶囊网络最优模型分别与经典模式识别方法、YOLOv5(you only look once v5)方法进行对比。
本文的图像使用大疆“御”Mavic 2无人机搭载LID-20c哈苏航拍相机采集,航拍图像分辨率为2 592×1 944 像素,共采集包含不同场景的2 069幅图像。本文采用PowerLabelImg进行图像标注。航拍图像中的工程车辆主要有挖掘机Excavator、起重机Crane以及塔吊机Tower crane等3种类别。
无人机航拍图像经过标注,得到工程车辆的ground-truth以及对应存储的工程车辆类别信息和位置信息,根据这些信息从无人机航拍原图像中裁剪出ground-truth对应的图像子块,并对所有图像子块进行图像尺寸归一化处理,得到对应分辨率为64×64 像素的无人机航拍图像子块,任选其中一个样例如图2所示。
图2 图像分块和归一化案例Fig.2 A case of image subblock and normalization
本文构建了两个数据集。第1个数据集由图像分块和归一化后的图像子块构建,主要用于胶囊网络实验以及后续对比实验,简称为数据集1,共有1 890幅图像子块,将该数据集按照4 ∶1的比例随机分为训练集和测试集。第2个数据集不需要经过图像分块和归一化,直接由经过标注的无人机航拍高分辨率原图像构建而成,简称为数据集2。按照4 ∶1的比例将数据集2随机分为训练集和测试集。
CNN由于池化操作而使得大量图像信息丢失,因此存在对空间信息不敏感、无旋转不变性等问题,胶囊网络可以有效解决此问题。胶囊网络对64×64像素的彩色图像子块进行处理的网络结构如图3所示。胶囊网络主要由3部分组成,分别为特征提取层、主胶囊层和数字胶囊层,其中数字胶囊层是胶囊网络的核心层,其通过动态路由算法实现对目标的分类。
图3 原始胶囊网络结构Fig.3 Architecture of original capsule network
胶囊网络去除了CNN中常用的池化层,首先通过单层的特征提取网络提取图像特征;接着通过主胶囊层,将提取出来的特征转换为向量表示,作为数字胶囊层的输入;数字胶囊层通过动态路由算法,不断更新输入向量,经过一定的迭代次数后,数字胶囊层输出一组向量,有多少个类别则对应多少个输出向量,每个输出向量的模值代表了图像中某一实体属于某一类别的概率。胶囊网络使用动态路由机制代替池化操作,从而避免了图像信息的大量丢失,适用于数据集较小的目标识别场景。工程车辆识别的无人机航拍图像数据集较小且获取困难,因此考虑使用胶囊网络对无人机航拍图像中的工程车辆进行识别。
胶囊网络在某些复杂数据集中具有良好的识别效果(Xi等,2017),在识别航拍图像中的工程车辆过程中,可以通过对胶囊网络进行改进以进一步提高其目标识别准确率。
3.2.1 网络结构的改进
无人机航拍工程车辆图像数据集具有较为复杂的图像特征,因此本文将胶囊网络的单层卷积特征提取网络改进为多层卷积特征提取网络,以提取图像中更复杂的特征。
考虑到网络深度的增加会使得网络的参数大幅增加,将严重影响神经网络训练的效率。本文提出采用密集连接型网络的跳跃式连接方式,实现不同层之间的特征级联(Huang 等,2017)。具有3层密集连接型的胶囊网络结构如图4所示。
图4 3层密集连接型胶囊网络结构Fig.4 Architecture of 3-level densely connected capsule network
由图4可以看出,3层密集连接型网络依旧由3部分组成,分别是特征提取网络、主胶囊层以及数字胶囊层。特征提取网络由3个连续的多层密集连接型网络结构块构成,对应输出3个特征图;与原始胶囊网络方法类似,主胶囊层由3个子块构成,分别以特征提取网络得到的3个特征图作为输入,对应输出3个8维的向量组,对这3个向量组进行级联得到主胶囊层的第4个输出向量组;在数字胶囊层中,通过动态路由算法分别对主胶囊层的4个输出进行路由计算,得到存储着图像特征信息的另外4组向量,将这4组向量进行级联即得到最终的输出结果。
本文将原始胶囊网络分别改进为3层、5层、7层的密集连接型胶囊网络,以探索网络层数对识别效果的影响。分别设计3层、5层、7层的密集连接型胶囊网络卷积核,如图5所示。
图5 不同层数胶囊网络的卷积核Fig.5 Convolution kernel of capsule network with different layers
3.2.2 动态路由算法的改进
softmax函数在原始胶囊网络的动态路由算法中主要用于更新子胶囊与父胶囊之间的耦合系数,加强两者之间的连接。其原理是,假设动态路由过程共有n个输出,动态路由过程中softmax的具体计算过程为:
对于第i个输入胶囊,有logits系数
bi=[bi1,bi2,bi3,…]
(1)
对bi进行softmax计算,则得到耦合系数
(2)
包含工程车辆的无人机航拍图像的背景较为复杂,容易对识别过程造成较大的干扰。研究表明,在耦合系数的更新过程中,在logits系数bi中加入leak值可以有效地减少背景噪声的干扰(Zhao等,2018),针对工程车辆识别背景噪声较大的问题,本文提出将多层密集连接型胶囊网络中动态路由过程的softmax函数替换为leaky-softmax函数。
同样假设动态路由过程共有n个输出,leaky-softmax函数的具体计算过程为:
对于第i个输入胶囊,对应的有leak值li为
li=[0,0,0,…]
(3)
将logits系数bi和leak值li进行级联,则得到
lbi=[bi1,bi2,bi3,…,0,0,0,…]
(4)
对应地,有
(5)
lci是对lbi进行softmax计算后得到的结果。则对应的耦合系数ci取lci的前n项,有
ci=[lci[0],lci[1],lci[2],…,lci[n-1]]
(6)
由耦合系数的最终取值可知,通过在logits系数加入leak值,有望减少耦合系数中的干扰成分,从而减少噪声干扰,提高识别准确率。
此外,在动态路由算法中有两个关键参数:路由系数r和挤压系数λ,其中路由系数r是指动态路由算法进行路由计算的迭代次数,挤压系数λ是指动态路由算法中用于归一化的挤压函数中的一个可变参数。这些参数可能会影响识别准确率或者效率等。本文将探索这些参数对胶囊网络性能的影响。
实验硬件平台:CPU为i7-6700K,32 GB内存,GPU为英伟达公司的GTX1070显卡,8 GB显存,硬盘1 TB,1 920个CUDA核心,内存带宽256 GB/s。
实验软件平台:Linux操作系统,深度学习专用编程框架CUDA9.0以及cuDNN7.0,高层神经网络API库Keras,TensorFlow和Python 3.6。
本文采用mAP(mean average precision)、检测速率等指标作为对各个算法性能的主要评价指标。
AP(average precision)值常用于评价目标识别算法对某一类别识别效果,主要由精确度(precision)和召回率(recall)共同确定,即
p=TP/(TP+FP)
(7)
r=TP/(TP+FN)
(8)
(9)
式中,P为精确度,r为召回率,TP为预测正确的正样本数量,FP为预测为正样本的负样本数量,FN为预测为负样本的正样本数量,则TP+FP表示所有被预测为正样本的样本数量,TP+FN表示所有样本中的ground-truth数量。
mAP是所有类别的AP值的平均值,本文以mAP作为主要评价指标之一。
为了评价算法的识别效率,本文使用每秒帧率(frames per second,FPS),即每秒处理图像数来作为检测速度的评估指标,FPS越大,算法的识别效率越好。
为了避免训练阶段中配置信息不同带来的测试结果误差,本文均采用相同的迭代次数与学习率调整方式,共进行50轮迭代训练,学习率为0.000 1。
本文主要对比以下4种算法的性能:
1)原始胶囊网络方法。
2)多层密集连接型胶囊网络方法,简称改进1算法。
3)原始胶囊网络方法+leaky_softmax函数,简称改进2算法。
4)将改进1和改进2融合在一起,简称改进3算法。
4.3.1 确定对原始算法的两个改进的有效性
为了评估改进后算法能否提高识别准确率或者效率,设定改进1算法和改进3算法均为3层密集连接型胶囊网络,4种算法均设置为路由系数r=3,挤压系数λ=1。本文在数据集1上进行如下实验:
1)采用数据集1中的训练集对原始胶囊网络、改进1算法、改进2算法和改进3算法等4种算法分别进行训练,记录随着epoch数的增加4种算法验证准确率的变化曲线。
2)对比评估4种算法在训练阶段的数据结果,分析算法的性能。
实验结果如表1所示。
表1 4种算法性能对比Table 1 Comparison of four algorithms’ performance
从表1可见,4种算法的识别准确率具有以下关系:
mAP3>mAP1>mAP2>mAPorg
(10)
式中,mAPorg为原始胶囊网络的识别准确率,mAP1为改进1算法的识别准确率,其余符号以此类推。
从表1和式(10)可见:1)本文提出的2种改进方法的识别准确率均高于原始算法,说明本文提出的两种改进是有效的;2)改进1的准确率比改进2的准确率高,说明多层密集连接的改进效果比动态路由改进的效果更好;3)改进3的准确率比改进1和改进2都高,说明将两种改进结合在一起可以进一步提升胶囊网络的识别准确率,但是识别效率有所降低。
4.3.2 网络层数对胶囊网络识别性能的影响
为了探索网络层数对胶囊网络性能的影响,设置路由系数r=3,挤压系数λ=1,本文在数据集1中进行了如下实验:
令改进1算法和改进3算法中网络的层数分别为1层(原始胶囊网络)、3层、5层和7层,而后分别对各个算法进行训练和测试。实验结果如图6所示。
图6 网络层数对算法性能的影响Fig.6 Effect of network layers on algorithm performance((a)change curves of mAP;(b) changes curve of FPS;(c) change curves of parameter scale)
由图6(a)可见,首先,网络层数对识别准确率有很大影响,二者之间存在非单调非线性的关系。在本文的应用场景中,5层的网络识别准确率最高;其次,动态路由算法的改进与否不会影响识别准确率跟随网络层数的变化趋势。由图6(b)可见,首先,网络层数与识别效率之间是单调递减的关系。层数越多,效率越低;其次,动态路由算法的改进与否对于胶囊网络的识别效率影响不大。由图6(c)可见,网络结构的改进并不一定会增加胶囊网络的参数规模,但是随着多层密集连接型胶囊网络层数的增加,参数规模会逐步增加。同时结合mAP变化曲线可知,胶囊网络的目标识别准确率并不会随着参数规模的增大而提高,两者之间没有明显的关联性。
4.3.3 动态路由算法中关键参数对胶囊网络性能的影响
为了探索动态路由算法中的路由系数r和挤压系数λ对胶囊网络算法识别性能的影响,令λ=1时,r=3、r=5;再令λ=0.5时,r=3、r=5,胶囊网络中的动态路由算法分别采用softmax函数和leaky_softmax函数,采用数据集1进行训练和测试。实验结果如图7所示。
图7 动态路由算法中关键参数对胶囊网络性能的影响Fig.7 Effects of key parameters in dynamic routing algorithms on capsule network performance((a)change curves of mAP when λ=1;(b)change curves of mAP when λ=0.5)
对图7实验结果进行分析:1)当挤压系数λ固定不变时,softmax型胶囊网络和leaky_softmax型胶囊网络在路由系数r=5时的mAP大体上均要高于r=3时的mAP,只有在λ=0.5且网络层数为7时,r=3时的mAP要高于r=5时;2)挤压系数λ不同取值对算法目标识别准确率会有一定的影响,但是并没有固定的规律,当路由系数和网络层数分别取不同值时,挤压系数的改变对目标识别准确率的影响效果是不同的;3)在本文所做的测试实验中,当r=5、λ=1时,leaky_softmax型的5层密集连接型胶囊网络的目标识别准确率为94.56%,在本文的实验中为最优值,命名此时的胶囊网络算法模型为本文中的最优算法模型。
4.3.4 本文最优算法与其他算法的性能对比
为了评估本文的最优算法与经典模式识别方法以及YOLOv5方法之间的性能差异,分别在数据集1和数据集2上进行了如下实验:
1)使用数据集1中的训练集对HOG+局部二值模式(local binary pattern,LBP)+SVM的经典模式识别方法进行训练;使用数据集2中的训练集对YOLOv5方法进行训练,获得对应的模型。YOLOv5选择进行对比的版本是YOLOv5x,YOLOv5x在YOLOv5各个版本中mAP最高,但是对应的参数规模也最大。
2)使用数据集1和数据集2中的测试集分别测试各个模型,记录识别mAP和FPS。
实验结果如表2所示,本文最优算法的mAP性能最好,但是识别效率FPS最低,参数规模中等偏小。
表2 与其他算法性能对比Table 2 Comparing performance with other algorithms
在mAP性能方面,原始胶囊网络的识别准确率为89.49%,比YOLOv5x高了17.88%,同时也比经典模式识别方法高0.77%;本文最优算法模型有效提升了原始胶囊网络的识别准确率mAP,达到了94.56%,相比原始胶囊网络提高了5.07%。可见,胶囊网络算法经过两个方面的改进,并探索网络层数和动态路由算法的两个关键参数的最佳搭配后,其识别性能得到显著改进。
对比各个算法的FPS值可见,原始胶囊网络的FPS为28.77帧/s,相比较于经典模式识别方法提升了8.55帧/s;经过改进后的胶囊网络随着网络层数的增加FPS有所下降,本文最优算法模型的FPS为10.05帧/s,相比原始胶囊网络下降了20.78帧/s。可见,增加层数的代价主要是识别效率降低。
对比各个算法的epoch数以及网络的参数规模可知,YOLOv5x训练过程中收敛所需要的epoch数为150,而胶囊网络仅为20,可见,本文算法能够较快达到收敛。YOLOv5x算法的参数规模为87.71 M,原始胶囊网络的参数规模为27.96 M,本文最优算法模型为28.48 M,二者都远低于YOLOv5x算法的参数规模。这说明,虽然最优算法模型中胶囊网络的层数增加,但是由于采用跳跃式连接的网络机制,其参数规模与原始胶囊网络的参数规模相近。
任意选取采用本文最优算法模型识别工程车辆的两个案例如图8所示。对本文最优算法在不同光照、角度等外界因素影响下的鲁棒性进行分析。首先从图8(a)(b)可以看出,无人机航拍图像的背景颜色与工程车辆相近,对于工程车辆的识别具有较大干扰,但是在测试案例中仍识别出了挖掘机;其次图8(a)(b)是在不同光照条件下的工程车辆识别结果,均识别出了工程车辆;图8(c)(d)是对旋转不同角度的塔吊机进行识别,对于不同角度的塔吊机,本文算法均能够将其识别出来。因此本文算法在不同光照、角度以及背景等外界因素的影响下仍具有较好的鲁棒性。
图8 最优算法模型识别的两个案例Fig.8 Two recognizing cases by optimal algorithm in this paper((a)recognition of extractor under light condition 1; (b) recognition of extractor under light condition 2; (c) recognition of tower crane under angle 1; (d) recognition of tower crane under angle 2)
采用人工提取图像特征的经典模式识别方法和YOLOv5等深度学习算法识别无人机电力巡检航拍图像中的工程车辆,难以达到实际应用的要求,为此本文提出采用胶囊网络识别无人机电力巡检航拍图像中的工程车辆并提出两种改进方法。本文的主要贡献有:1)采用多层密集连接型方法改进原始胶囊网络结构;2)采用leaky-softmax函数改进原始胶囊网络的动态路由算法;3)本文还探索了网络层数和动态路由算法关键参数与识别准确率的相互关系,以找到识别准确率最高时的参数。
实验结果表明:1)经过本文改进的胶囊网络模型在最佳参数情况下的mAP达到94.56%,显著优于原始胶囊网络、人工提取图像特征的模式识别方法和YOLOv5x识别算法。2)当网络层数较少时,mAP随网络层数增加而增加。达到峰值后,mAP随网络层数增加而减少。在识别航拍图像中的工程车辆时,5层胶囊网络的识别准确率最高;此外,识别准确率随网络层数的变化趋势不受动态路由算法改进的影响。3)胶囊网络层数增加会降低识别效率,但是并不会显著增加参数规模,且参数规模增加,目标识别准确率不一定增加,说明参数规模与目标识别准确率无关。
需要指出的是,胶囊网络在进行目标检测的过程中,识别效率有待提高,因此下一步将把胶囊网络算法与端到端的目标检测方法结合,以提高算法的识别效率。