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