蘇凱第,趙巧娥
(山西大學(xué) 電力與建筑學(xué)院,山西 太原 030006)
電力輸電線路多分布于高山丘陵等地形復(fù)雜、氣候惡劣的環(huán)境,這給線路巡檢帶來很大的困難[1-4]。近年來,隨著無人機(jī)技術(shù)的成熟,無人機(jī)已經(jīng)被應(yīng)用于輸電線路絕緣子檢測。受限于圖像識別技術(shù),早期的絕緣子檢測方法是:采用邊緣識別特征方法提取絕緣子外形,然后用橢圓方程對輪廓進(jìn)行擬合,最后通過解析計(jì)數(shù)法判斷絕緣子片的缺失情況[5-9]。另外,也有采用圖像濾波算法截取絕緣子邊緣實(shí)現(xiàn)對絕緣子圖像識別的方法[10,11]。這些方法計(jì)算復(fù)雜且效率較低。
隨著人工智能技術(shù)的發(fā)展,AI機(jī)器視覺也逐步應(yīng)用到輸電線路絕緣子檢測中。目前的研究大多基于神經(jīng)網(wǎng)絡(luò)算法。文獻(xiàn)[12]先使用BING算法預(yù)測圖中所有可能是絕緣子的區(qū)域,然后利用CNN算法配合加權(quán)合并算法精確定位絕緣子位置。文獻(xiàn)[13]將絕緣子檢測前景目標(biāo)和背景圖像分開,分別進(jìn)行神經(jīng)網(wǎng)絡(luò)訓(xùn)練,將訓(xùn)練結(jié)果融合,從而提取絕緣子特征。文獻(xiàn)[14]將絕緣子圖像寬高比進(jìn)行K-means聚類,從而優(yōu)化Faster R-CNN算法以提高絕緣子的檢測速率。文獻(xiàn)[15]通過在原有的Faster R-CNN模型中加入額外的CNN模型用于圖像分類,提高了絕緣子缺陷的檢測速率。文獻(xiàn)[16]對神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程進(jìn)行改進(jìn),提出在CNN中加入隨機(jī)森林法則以加強(qiáng)訓(xùn)練效果。文獻(xiàn)[17]通過在ROI池化層中加入遮擋掩膜以提升檢測準(zhǔn)確率。利用目前的研究成果已經(jīng)可以通過神經(jīng)網(wǎng)絡(luò)識別技術(shù)直接處理無人機(jī)拍攝的絕緣子圖像,并使用深度學(xué)習(xí)算法對目標(biāo)進(jìn)行特征識別學(xué)習(xí);但是成果應(yīng)用時仍然存在無法兼顧目標(biāo)檢測準(zhǔn)確性和快速性的問題。
YOLO系列算法是一種深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)圖像識別算法[18,19]。YOLOv5算法作為單階段檢測算法的代表,具有代碼量少、程序簡單、檢測速率快、檢測準(zhǔn)確度高等優(yōu)點(diǎn),已成為目前與工程技術(shù)使用最接近的圖像識別算法。本文基于YOLOv5結(jié)構(gòu),對原算法中的卷積操作和殘差操作進(jìn)行改進(jìn),以解決目前主流絕緣子圖像識別算法檢測時間長、對計(jì)算機(jī)硬件資源消耗過大的問題。
卷積操作模塊由卷積核搭配 Leaky ReLU激活函數(shù)構(gòu)成。本文對該結(jié)構(gòu)進(jìn)行改進(jìn),改進(jìn)前后的卷積操作模塊如圖1所示。在原有的單通道基礎(chǔ)上引入卷積核處理結(jié)果,并對2個通道的結(jié)果矩陣相乘得到融合特征。
圖1 卷積操作模塊及改進(jìn)Fig. 1 Convolution operation module and improvement
本文使用sigmoid激活函數(shù)代替Leaky ReLU激活函數(shù)。sigmoid激活函數(shù)S(x)可以對特征差別復(fù)雜或特征相差不大的目標(biāo)進(jìn)行有效分類。
殘差網(wǎng)絡(luò)用來預(yù)測目標(biāo)在特征圖中的位置以構(gòu)建特征金字塔。改進(jìn)前后的殘差模塊如圖2所示,圖3為改進(jìn)后子模塊說明。
圖2 殘差模塊及其改進(jìn)Fig. 2 Residual error module and its improvement
圖3 子模塊說明Fig. 3 Sub-module description
改進(jìn)前的殘差網(wǎng)絡(luò)僅可以處理目標(biāo)與背景色差明顯的圖像。在絕緣子識別中,圖像背景較為復(fù)雜,難以通過背景色差進(jìn)行有效判別,因此對殘差邊也進(jìn)行卷積處理。圖2中主干部分的n個CSMA操作用于提高目標(biāo)特征的提取準(zhǔn)確率,緩解因?qū)W習(xí)深度增加而導(dǎo)致圖像梯度消失的問題。
絕緣子目標(biāo)采用改進(jìn)的YOLOv5算法進(jìn)行檢測識別,改進(jìn)后算法結(jié)構(gòu)如圖4所示。
圖4 改進(jìn)的YOLOv5算法結(jié)構(gòu)Fig. 4 Improved YOLOv5 algorithm structure
依據(jù)改進(jìn)后的殘差網(wǎng)絡(luò)可以生成如圖5所示的特征金字塔。圖5中,特征金字塔對圖像中的絕緣子目標(biāo)采樣通過 FPN+PAN結(jié)構(gòu)完成。經(jīng)過特征金字塔采樣后得到絕緣子目標(biāo)特征圖。使用Pytorch函數(shù)對目標(biāo)特征進(jìn)行融合,為預(yù)測框的繪制提供信息支撐。3個不同尺寸的特征圖需要使用不同數(shù)量的卷積核操作,卷積核數(shù)量與模塊對應(yīng)關(guān)系如表1所示。
圖5 特征金字塔Fig. 5 Feature Pyramid
表1 各特征融合模塊中卷積核使用情況Tab. 1 Convolution kernel usage in each feature fusion module
由特征金字塔得到3個不同尺寸的特征圖。以輸入圖像左上角為坐標(biāo)原點(diǎn)建立圖像坐標(biāo)系,使用文獻(xiàn)[20]提出的加權(quán)平均法繪制目標(biāo)的回歸預(yù)測框。
預(yù)測框與真實(shí)框的誤差為損失值。本文使用Closs表示損失值。
式中:xt、yt、wt、ht為標(biāo)注框參數(shù);xc、yc為預(yù)測框與標(biāo)注框最小外接矩形參數(shù)。I描述預(yù)測框與真實(shí)框的重合程度。損失值用于優(yōu)化訓(xùn)練,保存在損失結(jié)果中。
式中:A(·)表示面積;PI代表預(yù)測框;TI代表標(biāo)注框。
本文對神經(jīng)網(wǎng)絡(luò)進(jìn)行了加深處理,會直接導(dǎo)致訓(xùn)練時間增加。多次循環(huán)訓(xùn)練法可以解決該問題:使用相同的數(shù)據(jù)集、相同的訓(xùn)練參數(shù)進(jìn)行多次訓(xùn)練;在當(dāng)次訓(xùn)練中讀取上一次訓(xùn)練結(jié)果權(quán)重;根據(jù)權(quán)重預(yù)先估計(jì)絕緣子位置,加速絕緣子預(yù)測框繪制從而加快訓(xùn)練速度。在當(dāng)次訓(xùn)練中,讀取上一次的圖像損失值,優(yōu)化圖像識別精度。
本文使用的絕緣子圖像數(shù)據(jù)集來源于國家電網(wǎng)公司–中國電力線路絕緣體數(shù)據(jù)集。該數(shù)據(jù)集提供了600幅無人機(jī)拍攝的絕緣子圖像。
本文對數(shù)據(jù)集采用旋轉(zhuǎn)、翻轉(zhuǎn)、加入干擾色塊等操作進(jìn)行數(shù)據(jù)集擴(kuò)充,將600張圖像擴(kuò)充為7 375張。取出原來的600幅絕緣子圖像作為驗(yàn)證數(shù)據(jù)集,用于深度學(xué)習(xí)的巡檢數(shù)據(jù)集圖像共6 775張。訓(xùn)練集和驗(yàn)證集按照4:1的比例進(jìn)行劃分,共得到訓(xùn)練數(shù)據(jù)集圖像5 420張和測試數(shù)據(jù)集圖像1 355張。
數(shù)據(jù)集圖像使用Make Sense標(biāo)注工具進(jìn)行手動分類標(biāo)注,分別為正常絕緣子和破損絕緣子。標(biāo)注完成后,將圖像輸出為.txt格式的坐標(biāo)文檔,完成數(shù)據(jù)集準(zhǔn)備操作。
實(shí)驗(yàn)的硬件配置條件為:Inter Xeon E5-2660,2.2 GHz雙路CPU,32G內(nèi)存,RTX2060 GPU主機(jī)。軟件環(huán)境為:Anaconda, Pytorch版本為1.8,Python版本為3.8,編程軟件使用VS2019;運(yùn)行環(huán)境為Windows10系統(tǒng)。
本文使用平均精度AP(average-precision)作為結(jié)果評價(jià)指標(biāo)。AP計(jì)算公式如式(6)。
式中:P(·)為精確率;R(·)為召回率;TP表示絕緣子的圖片被準(zhǔn)確識別為絕緣子;FP表示絕緣子的圖片沒有標(biāo)注為絕緣子;FN表示不是絕緣子的圖片被標(biāo)注為絕緣子。
算法參數(shù)均按照表2進(jìn)行設(shè)置。分別對改進(jìn)前和改進(jìn)后的算法進(jìn)行4次訓(xùn)練。改進(jìn)前的4次訓(xùn)練時長和圖像檢測情況記錄如表3所示;改進(jìn)后的算法4次訓(xùn)練結(jié)果如表4所示。
表2 訓(xùn)練參數(shù)設(shè)置Tab. 2 Training parameter settings
表3 改進(jìn)前算法訓(xùn)練及檢測結(jié)果Tab. 3 Multiple training and detection results of the algorithm before the improvement
表4 改進(jìn)后算法訓(xùn)練及檢測結(jié)果Tab. 4 Multiple training and detection results of the algorithm after the improvement
對比表3和表4可以看到:算法改進(jìn)后,圖像檢測速度逐次增加,準(zhǔn)確度均有很大提升,單張圖片的平均耗時逐漸下降,訓(xùn)練時間大幅下降。
在對第1次訓(xùn)練結(jié)果學(xué)習(xí)后,本文所提改進(jìn)算法的第2次訓(xùn)練時間顯著縮短,圖像識別平均精度AP也有明顯提升。第3次、第4次訓(xùn)練時間基本相同。與第3次訓(xùn)練結(jié)果相比,第4次的AP值提升不大,故可以認(rèn)為改進(jìn)算法在第4次訓(xùn)練時已經(jīng)達(dá)到最優(yōu);此時原算法并未達(dá)到最優(yōu)狀態(tài)。
改進(jìn)算法的第1次訓(xùn)練結(jié)果有明顯的漏檢現(xiàn)象,如圖6(a)所示;第2次訓(xùn)練后,漏檢現(xiàn)象消除;此后的檢測均完成對絕緣子的準(zhǔn)確識別。檢測結(jié)果出現(xiàn)同一絕緣子多次標(biāo)注的現(xiàn)象,如圖 7(a)(b)(c)所示。該現(xiàn)象是預(yù)測回歸時,I閾值選擇不合適造成的。從圖7(d)可以看出,在I閾值選擇為0.7時,預(yù)測框重疊的現(xiàn)象消除。
圖6 改進(jìn)算法絕緣子漏檢現(xiàn)象Fig. 6 The improved algorithm for missing detection of insulators
圖7 改進(jìn)算法絕緣子檢測預(yù)測框重疊現(xiàn)象Fig. 7 The improved algorithm for insulator detection prediction frame overlap
本文基于YOLOv5算法,針對電力巡檢無人機(jī)航拍圖像中的絕緣子設(shè)計(jì)了識別模型。對原算法中卷積操作部分和殘差網(wǎng)絡(luò)進(jìn)行改進(jìn),提升了目標(biāo)檢測準(zhǔn)確性。
實(shí)驗(yàn)結(jié)果表明,本文所提改進(jìn)方法可以對航拍巡檢圖像中無遮擋絕緣子目標(biāo)進(jìn)行有效識別,可以準(zhǔn)確定位故障絕緣子片。識別平均準(zhǔn)確率可達(dá)98.9%,單張圖片平均識別速度為0.061 s。