彭 闖,張紅民,王永平
(重慶理工大學電氣與電子工程學院,重慶 400054)
絕緣子是高壓輸電線路中的重要部件,起著絕緣與支撐導體的作用,因此,高壓線路無人機巡檢中,絕緣子是重點的查看對象之一。目前,運用圖像處理技術對輸電線路中的絕緣子檢測方面,很多學者開展了大量的研究工作。早期的研究中,主要是通過對輸電線路中的絕緣子在顏色、形態(tài)以及紋理方面上的特征進行提取,再通過閾值分割或者分類器進行分類來對絕緣子進行識別[1-6]。這類方法提取的特征一般較為淺層,魯棒性較差,且識別速度不高,難以滿足檢測實時性的要求。
近年來,隨著深度學習技術的快速發(fā)展,出現(xiàn)了很多基于深度學習的目標檢測算法,其在識別精度與識別速度上均優(yōu)于傳統(tǒng)的方法。其中,以R-CNN[7]系列為代表的兩階段(two stage)目標檢測算法和以SSD[8]和YOLO[9]系列為代表的一階段(one stage)目標檢測算法相對較多。不少學者也將其應用到了電力行業(yè)中。文獻[10]對比了R-CNN、Fast R-CNN和Faster R-CNN等兩階段目標檢測算法在絕緣子檢測方面的表現(xiàn)。文獻[11]通過改變Faster R-CNN算法的主干網(wǎng)絡,對比了不同主干網(wǎng)絡結構模型在絕緣子檢測效果方面的影響。文獻[12]將Faster-RCNN應用于電力小部件的識別,并通過anchor框與真實框的距離來去除無效的anchor框,從而提高了識別速度。文獻[13]將Faster-RCNN應用于絕緣子的識別,繼而完成后續(xù)的自爆缺陷的識別。
比較而言,一階段目標檢測算法以其端到端的檢測特點,在檢測速度上占有一定的優(yōu)勢。故本研究以一階段檢測算法中的YOLOv3算法[14]為基礎,通過認真分析無人機巡檢圖像中高壓絕緣子串在圖像中的特點,去掉了YOLOv3網(wǎng)絡結構中大特征圖檢測環(huán)節(jié),并且配置更加合理的anchor先驗框,在不犧牲識別精度情況下進一步提升了算法的識別速度。
YOLO算法的提出,為目標檢測問題提供了新的思路,其對目標位置的檢測采用了直接回歸的思想,大大提高了檢測速度,為實時檢測提供了可能。盡管在檢測速度上YOLO算法優(yōu)于以Faster R-CNN[15]為代表的兩階段目標檢測算法,但是在檢測精度上卻差強人意。針對這個問題,研究人員又陸續(xù)提出了通過改進的YOLOv2、YOLO9000[16]以及YOLOv3,其中,YOLOv3不僅保持了YOLO系列算法的速度優(yōu)勢,在檢測精度上也絲毫不遜于Faster R-CNN以及一階段算法SSD,是一種兼具檢測精度與檢測速度的優(yōu)秀算法。
在YOLOv3中,為了加強分類的準確性,在YOLOv2中的darknet-19主干網(wǎng)絡的基礎上,進一步對網(wǎng)絡進行了加深,提出了darknet-53主干網(wǎng)絡[14],見圖1。
darknet-53保留了darknet-19中的一些優(yōu)點,如在每個卷積層后均添加了Batch Normilazation層,激活函數(shù)使用Leaky Relu函數(shù)。除此之外,為了克服網(wǎng)絡加深帶來的梯度消失問題,darknet-53借鑒了restnet的思想,在網(wǎng)絡中加入了殘差模塊[17],圖1左側的數(shù)字表示的是重復殘差模塊的數(shù)量。此外,在對特征圖進行下采樣的過程中,darknet-53沒有使用darknet-19中所使用的Maxpooling操作,而是采用以步長為二的卷積操作,每一次操作均將特征圖縮小兩倍,而整個主干網(wǎng)絡共有五次特征圖縮小操作,故最后輸出的特征圖是輸入圖像的1/32。darknet-53在保證實時性的基礎上,較好的提高了分類的性能。
圖1 Darknet-53主干網(wǎng)絡示意圖Fig.1 Darknet-53 backbone network diagram
在YOLOv3中,為了提高對小目標的檢測精度,借鑒了FPN(feature pyramid networks)[18]思想,在多個尺度的特征圖上對目標進行檢測,如圖2。
圖2 YOLOv3結構圖Fig.2 YOLOv3 structure diagram
在YOLOv3中,為了滿足32倍的下采樣,輸入圖像尺度為416×416×3,并且在52×52、26×26以及13×13三個特征圖上進行目標檢測,其中大特征圖對小目標的檢測能力較強,小特征圖對大目標的檢測能力較強。在大特征圖的生成過程中,concat操作融合了小特征圖,進一步提高了對小目標的檢測能力。在每個特征圖中,每個網(wǎng)格單元對3個box負責預測,每個box需要預測矩形框的4個坐標值,1個置信度值以及80個類別,所以每個網(wǎng)格單元需要預測的參數(shù)量為255個(3×(4+1+80))。
在YOLOv3中,依然借鑒了FasterR-CNN中anchor框思想,并且沿用了YOLOv2中的采用k-means聚類的思想來得到先驗anchor框。在YOLOv3中,一共聚類出9種anchor框尺寸,分別為10×13、16×30、33×23、30×61、62×45、59×119、116×90、156×198、373×326。其中,每個尺度的特征圖采用3個尺寸的anchor框,大特征圖采用尺度較小的3個anchor框,小特征圖采用尺度大的3個anchor框,按此規(guī)律,anchor框的分配如表1。
表1 anchor框分配Table 1 Anchor distribution
YOLOv3的測試是在COCO數(shù)據(jù)集上進行的。為了使網(wǎng)絡模型更加適合于無人機巡檢中圖像中的絕緣子串的識別,通過認真分析絕緣子串目標圖像的特點,在原始YOLOv3網(wǎng)絡結構與超參數(shù)的基礎上,進行了相對應的改進。
盡管絕緣子串的長度跟地區(qū)的污穢等級以及絕緣子的類型有關,但是在高壓輸電線路中,高的電壓等級使得絕緣子串的長度較長,因而在高壓輸電線路無人機巡檢圖像中,絕緣子串所占圖像的比例較大。針對這一特點,筆者在檢測尺度上進行了精簡,舍去了在52×52特征圖上的檢測環(huán)節(jié),如圖3。
圖3 兩尺度檢測結構圖Fig.3 Two-scale detection structure diagram
在目標檢測中,尺度較大的特征圖主要用于對小目標的檢測,而在高壓輸電線路無人機巡檢圖像中,絕緣子串目標通常較大,所以減少在尺度最大的52×52特征圖上的檢測環(huán)節(jié)并不會對絕緣子串的檢測精度產(chǎn)生較大的影響。與此同時,減少一個特征尺度的檢測過程,使得網(wǎng)絡結構更加精簡,同時也減少了預測參數(shù)的數(shù)量,會使檢測速度有所提高,節(jié)省出來的時間能用于后續(xù)的故障診斷的處理等。
由于絕緣子串的長寬比例較大,其跟COCO數(shù)據(jù)集中的目標在外形上差距較大,若繼續(xù)使用默認的anchor框尺寸,并不是很合理。為了使檢測過程更加貼合實際,筆者對YOLOv3網(wǎng)絡結構中的表征anchor框尺度的超參數(shù)進行了修改。
筆者依舊借鑒了k-means算法來確定適合于絕緣子串的anchor框的尺寸。由于本研究僅僅在兩個尺度上對絕緣子串進行檢測,所以在利用k-means算法聚類時將聚類中心數(shù)目設置為6,即在每個特征尺度上分配3個anchor框進行目標檢測。
傳統(tǒng)的k-means算法通過歐式距離的度量來進行聚類,但是在目標檢測中,每個anchor框中心位置是被每個柵格所固定的,我們要確定的只是框的長和寬。而聚類的目的正是為了使anchor框和離其最近的真值框(ground truth框)有更大的IOU值,所以在聚類的時候采用如下公式來進行度量[19]。
d(box,centroid)=1-IOU(box,centroid)
利用該公式,在聚類過程中,使得anchor框到聚類中心的距離盡可能小的同時,IOU的值盡可能大。最后通過聚類,得出的六個anchor框的尺寸分別為98×28、38×155、244×48、287×76、288×114、290×182,聚類過程中的平均IOU值為72.42%。
實驗環(huán)境見表2。
表2 實驗環(huán)境Table 2 Experimental configuration
實驗采用了1 200張無人機航拍圖像,每張圖像的分辨率為1 152×684。對數(shù)據(jù)的標注采用了labelimg軟件,在標注過程中標注格式選擇為YOLO格式,標簽為insulator。
圖4和圖5分別展示了原始網(wǎng)絡結構和本實驗網(wǎng)絡結構在訓練過程中的損失曲線和mAP曲線。由于本實驗時對網(wǎng)絡進行了精簡,并且對anchror框進行了重新聚類,所以在訓練開始前需要更改darknet文件目錄中的cfg文件。首先在cfg文件中刪除掉第三個yolo層,然后將yolo層中anchors參數(shù)用上述聚類出的anchor框尺寸進行替換。另外,由于所用的實驗平臺性能一般,為了使訓練過程中不會因為GPU內存不足而報錯,本實驗中將batch參數(shù)設置64,subdivisions參數(shù)設置為32。為了進一步擴充訓練集,對cfg文件中的數(shù)據(jù)增強參數(shù)進行了設置,飽和度調整參數(shù)saturation設置為1.8,曝光調整參數(shù)exposure設置為1.5,色調調整參數(shù)設置為0.2。由于識別的種類只有一種,故將迭代次數(shù)設置為了4 000。
圖4 原始網(wǎng)絡訓練過程Fig.4 Original parameter training process
圖5 本網(wǎng)絡訓練過程Fig.5 Parameter training process in this article
對比兩種網(wǎng)絡的訓練過程可知,原始網(wǎng)絡的mAP曲線上下起伏較大,最終在經(jīng)過4 000次迭代后,本網(wǎng)絡的mAP值87.9%,優(yōu)于原始網(wǎng)絡的86.3%。
在模型訓練過程中,網(wǎng)絡會保存多組權重參數(shù),其中參數(shù)的性能表現(xiàn)并不是越往后面越好,因為隨著訓練批次的增加,網(wǎng)絡存在過擬合現(xiàn)象。故需要對每種模型的權重參數(shù)在測試集上進行測試,選取評價指標最好的那一組權重參數(shù)作為該網(wǎng)絡的權重參數(shù)。對兩個網(wǎng)絡均選取表現(xiàn)最好的權重參數(shù),然后測試每個網(wǎng)絡在不同IOU閾值下的AP值(平均精確度)、Recall值(召回率)以及檢測速度。結果如表3和表4。
表3 IOU閾值為0.5Table 3 0.5 IOU threshold
表4 IOU閾值為0.75Table 4 0.75 IOU threshold
從表3和表4可見,本網(wǎng)絡在AP上及Recall上與原始網(wǎng)絡相當,但是在檢測速度上,本網(wǎng)絡領先優(yōu)勢較大,對每張圖像的檢測速度能提升8至10毫秒,說明本網(wǎng)絡在沒有較大犧牲檢測精度的基礎上,對檢測的速度進行了一定的提升,能較好地應用于對高壓輸電線路中絕緣子串的識別,為今后無人機巡檢的在線診斷打下基礎。
圖6和圖7為本方法對含多個絕緣子串目標的巡檢圖像和含單個絕緣子串目標的巡檢圖像的測試效果圖。從圖6和圖7可見,本方法對前景絕緣子串目標的識別效果較好,而對后景絕緣子串目標的識別效果較差。之所以對后景絕緣子串目標識別效果較差,一方面是由于本方法去掉了大特征圖的檢測環(huán)節(jié),故對小目標的識別效果較差,而后景絕緣子串目標通常較??;另一方面,由于本研究目的是為后續(xù)基于可見光圖像的絕緣子串故障識別打下基礎,而后景絕緣子串目標通常存在比較嚴重的遮擋,對后續(xù)絕緣子串的故障識別的參考意義不大,故進行圖像標注的過程中對存在嚴重遮擋的絕緣子串目標并未進行標注,因此對存在嚴重遮擋的后景絕緣子串目標的識別效果較差。
圖6 多目標圖像檢測效果Fig.6 Multi-object image detection effect
圖7 單目標圖像檢測效果Fig.7 Single-object image detection effect
以YOLOv3算法為基礎,針對高壓輸電線路絕子串在巡檢圖像中所占比例較大且長寬比較大的特點,通過去除大特征圖檢測環(huán)節(jié)的方式精簡了檢測的網(wǎng)絡,同時使用k-means算法聚類出適合于檢測高壓輸電線路絕緣子的先驗anchor框。通過實驗結果對比可知,本網(wǎng)絡結構在僅僅損失輕微AP值與Recall值的基礎上,對檢測速度提升較大,提高了絕緣子檢測的實時性,為無人機圖像巡檢中故障實時診斷打下了堅實的基礎。