楊焰飛,曹 陽
重慶理工大學 電氣與電子工程學院,重慶 400054
鋼化玻璃絕緣子作為電網高壓輸電線路最常用的絕緣子之一,其運行狀況直接影響到電網的可靠性及安全性,由絕緣子引發(fā)的故障在電力系統故障中占比最高。玻璃絕緣子易發(fā)生自爆,若不對其進行及時排查并采取補救措施,恐引發(fā)嚴重后果[1]。
無人機航拍圖像輔助電力巡檢的技術日趨成熟,但對于通過無人機獲得的海量圖片,目前大多數仍采用人工判讀的方式,費時費力,因此對其通過圖像處理技術進行絕緣子自動定位具有重要意義[2]。傳統目標檢測一般 通 過 如 模 板 匹 配[3]、SIFT[4](scale-invariant feature transform)特征提取等方法獲取目標特征,并利用支持向量機等[5]機器學習方法進行分類,從而完成檢測任務,檢測準確率低且耗時長,并不適用于絕緣子檢測。國內外對絕緣子的檢測研究已有一定進展,方挺等[6]利用基于粒子群優(yōu)化參數的蟻群算法實現了對簡單背景下玻璃絕緣子自爆的定位,該方法只適用于背景簡單的圖像,對于復雜背景下的檢測并不理想;商俊平等[7]利用最大類間方差法提取絕緣子串輪廓,該方法對拍攝角度要求較高,若拍攝絕緣子形狀不統一容易錯檢。
深度卷積神經網絡能夠從大量數據集中自動學習目標特征,在可見光領域得到迅速發(fā)展[8],在電力巡檢領域同樣得到廣泛應用。左國玉等[9]提出一種跨鏈接卷積神經網絡的絕緣子檢測方法,該方法在Faster-RCNN的基礎上,將RPN的不同層進行跨鏈接來生成候選區(qū)域,檢測精度較高、但存在算法復雜度較高、對設備要求高、檢測時間長等問題。趙文清等[10]提出一種注意力機制和Faster-RCNN相結合的絕緣子檢測方法,該方法在特征提取階段引入基于注意力機制的擠壓與激勵網絡SE-Net,雖然降低了漏檢率,但引入SE-Net后會使Faster-RCNN的檢測速度進一步降低。顏宏文等[11]以YOLOv3為主體,利用Focal Loss函數代替YOLOv3損失函數中的交叉熵損失,一定程度上解決了復雜度及類別不均衡的問題,但整體上并未對網絡結構做出太大改變。高強等[12]在YOLOv3的基礎上,提出目標分解及聚合表達的改進算法,提升了網絡對各目標所在區(qū)域識別的準確度,但同樣僅對損失函數做出改變,并未對網絡結構進行改進。
為此,本文提出一種基于改進YOLOv3卷積神經網絡的絕緣子檢測模型,對于形態(tài)不同的絕緣子均能得到較好的檢測結果。
實驗中的絕緣子圖像于500 kV高壓輸電線路的電力巡檢中,通過大疆Phantom 4 Pro無人機拍攝獲得,其相機參數為fc6310,拍攝圖像尺寸為5 472×3 078像素,JPG格式。包含了晴天正午、晴天傍晚及陰天等特殊光照條件,共獲得1 000張圖像,其中存在絕緣子被塔身遮擋等特殊情況。圖1為幾種典型的絕緣子示例圖。
在制作數據集時,直接按照原圖像尺寸輸入會導致參數過多,因此首先通過像素變換將數據集圖像尺寸統一縮減為416×416像素的大小。盡可能多地加入不同尺度、不同表現形式的絕緣子,有利于避免訓練過程中出現過擬合現象,從而提高網絡的泛化能力。如圖2所示為訓練集樣本預處理中的數據增廣過程,即通過對圖像進行翻轉、剪裁和平移等操作增加樣本多樣性。
圖2 數據預處理示意圖Fig.2 Schematic diagram of data preprocessing
在最終得到的1 242幅絕緣子圖像中隨機選取1 000幅圖像,利用標注軟件LabelImg進行標注作為訓練集。LabelImg是基于Python語言編寫用于深度學習的數據集制作的標注工具,用于記錄圖像中目標的類別名與位置信息,并將這些信息儲存在XML格式的文件中。
1 000幅圖像中,共有1 618個絕緣子目標,其長高度分布如圖3(a)所示,橫坐標表示標記框寬度占原圖寬度的比例,縱坐標為高度占比。圖3(b)為目標框像素與原圖像素比值的統計直方圖,目標框平均像素為31 961.09,與原圖像素大小的比值平均為0.108 01。圖3(c)、(d)、(e)分別為目標框高度、寬度及高寬比的統計直方圖,橫坐標分別為高度、寬度及高寬比,縱坐標為數量占比。
由圖3(a)、(b)可知,目標框存在多樣性,但總體占原圖比例較小,屬于小目標,背景信息較多。由圖3(c)、(d)、(e)可知,目標框高度分布較為均勻,寬度較小,寬高比較小,因此總體上目標框呈現為瘦高型。
圖3 數據集中的目標框信息統計圖Fig.3 Statistical chart of target frame information in dataset
YOLOv3[13]在YOLOv1、v2的基礎上改進形成,同時吸取了其他一些網絡的優(yōu)點,是目前綜合考慮檢測實時性及準確性效果較為優(yōu)秀的單階段(one stage)檢測網絡。YOLOv3為全卷積網絡[14](FCN),采用Darknet-53的前52層,在保證分類精度的同時減少了網絡層數,使計算速度得到了較大提升。為加強算法對小目標的檢測精度,YOLOv3參照特征金字塔網絡結構[15](feature pyramid networks for object detection,FPN),將Darknet-53的輸出特征圖通過兩次上采樣與淺層輸出特征融合,其網絡結構如圖4所示。
圖4 YOLOv3網絡結構圖Fig.4 Network structure diagram of YOLOv3
圖中Res_unit為殘差單元,Resn為殘差模塊,n表示該殘差模塊中殘差單元的數量,DBL為網絡最小單元,包含二維卷積(Darknet Conv2D)、歸一化(batch normalization,BN)及非線性激活函數(Leaky ReLU)三個操作,Concat為張量拼接操作,其作用為將淺層特征輸出與上采樣后的特征圖進行張量拼接,拼接后會擴充張量維度,y1、y2、y3為三個用于預測的特征圖。
在目標檢測領域,一般用精確率和召回率對目標檢測算法性能進行評定[16],準確率針對預測結果,表示預測為正的樣本中真實正樣本的占比,計算公式如下:
式中,P表示精確率,TP表示算法將正類預測為正類的個數,FP表示將負類預測為正類的目標個數,即錯誤檢測出的目標;召回率針對原來的樣本,表示樣本中正例樣本有多少被正確預測了,其計算公式為:
式中,FN表示將正類預測為負類的目標個數,即漏檢個數。通常情況下兩者難以兼得,因此需要綜合考慮這兩個參數,用AP值來衡量算法性能,AP計算公式如下:
式中,N表示測試集樣本數,P(k)為識別k個樣本時精確率P的值,ΔR(k)表示識別樣本個數從k-1變化到k時,召回率R的變化情況。對于多分類(C類)檢測任務,通常用平均值mAP對模型進行評價,其公式如下:
Resnet結構能夠加速訓練并提升性能,Inception模塊能夠在同一層上獲取稀疏或非稀疏特征,因此Szeged等[17]將兩個模塊優(yōu)勢結合起來,設計出了Inception-Resnet網絡,而其成功主要在于它的Inception-Resnet模塊。
YOLOv3通過從Darknet-53的第25、42層采集淺層特征,并與網絡深層特征進行上采樣后拼接得到輸出結果。此處可參照Inception-Resnet網絡的思想,引入兩個Inception-Resnet模塊,通過付出增加少量網絡參數的代價,在保證計算資源使用率的條件下,拓展網絡寬度,并增加了網絡對多尺度目標檢測的適應性。引入的Inception-Resnet模塊如圖5所示。將引入Inception-Resnet模塊后的YOLOv3模型稱為YOLOv3_In_Res,其網絡結構如圖6所示。
圖5 Inception-Resnet模塊Fig.5 Inception-Resnet module
圖6 YOLOv3_In_Res網絡結構圖Fig.6 YOLOv3_In_Res network structure diagram
原始YOLOv3的損失函數由位置損失、置信度損失和分類損失三部分構成,具體公式如下:
式中,第①部分位置損失使用均方誤差,②、③部分置信度和分類使用交叉熵誤差;λcoord、λobj和λnoobj為每項損失所占比重,通過改變其大小能夠控制位置、置信度、分類損失達到更好的平衡;S×S表示特征圖大小,B表示每個網格會產生幾個候選框;YOLOv3沿用v1一直以來的思想,每個真實框只對應一個預測框判斷第i個網格中第j個預測框是否分配到真實框,若有分配則返回值為1,否則為0與之相反;x i、yi、wi、h i、pi為位置、置信度、分類信息預測值,為標簽值(真實值);其中表示目標屬于第c類的概率真值標簽。
均方誤差對目標的尺度相當敏感,尤其是對小目標的預測,通過對w、h開根號的方式能夠一定程度上降低尺度對回歸準確性的影響,但并不能根治。Rezatofighi等[18]提出Giou損失函數,適用于各種目標檢測算法,該函數能夠很好地替代原始YOLOv3損失函數中的位置損失部分(均方誤差),提高預測精度。因此本文直接引用Giou損失作為位置損失。Giou及其損失計算公式如下:
式中,Iou為預測框與真實框的交并比;Ac為同時包含真實框與預測框的最小框面積,U為并集面積。由于本文只有絕緣子一類檢測目標,因此考慮刪去第③部分的條件類別概率損失,最終采用的損失函數計算公式如下所示:
原始YOLOv3基于通用目標檢測數據集COCO生成如下三組錨點框:([10,13],[16,30],[33,23])、([30,61],[62,45],[59,119])、([116,90],[156,198],[373,326]),分別對應三個特征圖(13×13,26×26,52×52)。從圖3(e)中可看出絕緣子目標框外形以瘦高為主,原始的錨點框并不適用于該單類絕緣子數據集。因此本文利用k-means算法對數據集的真實框進行聚類,獲得新的錨點框。其中一次聚類結果如圖7所示。
圖7 K-means可視化Fig.7 K-means visualization
通過10次聚類后求取平均值并取整,得到的最終結果為([43,260],[54,393],[42,37])、([100,62],[21,105],[74,166])、([160,220],[343,233],[243,351])。
本文選用TensorFlow開源框架,測試環(huán)境為AMDRyzen 7 1700 EightCPU,主頻3 GHz,內存16 GB,GPU為NVIDIAGeForceRTX 2070,操作系統為Win10,CUDA10.1版本,編譯語言為Python3.7。訓練中輸入網絡的圖片大小為416×416像素;batch size設置為2;初始學習率設為10-4,經過多次迭代后學習率下降為10-6;共訓練70個epochs,每個epoch迭代93次,迭代次數為13 020(70×93×2)。
為了對本文提出算法進行更好的評估,利用同一組數據對YOLOv3原網絡及本文YOLOv3_In_Res網絡進行了相同批次的訓練并進行測試。損失變化曲線如圖8~11所示,縱坐標為損失值,橫坐標為迭代次數batch size(0~6 510)。
圖8 YOLOv3 prob_loss曲線Fig.8 YOLOv3 prob_loss curve
如圖8所示,由于只有絕緣子一個類,prob_loss很小,經過少數迭代后迅速下降到幾乎為0,進一步論證了上一節(jié)中可刪去條件類別概率損失的作法,在減少計算量的同時能夠使總損失收斂速度更快。圖9(a)、(b)為置信度損失對比,收斂后原YOLOv3算法的損失波動范圍為0.4~0.8,YOLOv3_In_Res為0.12~0.3;圖10(a)、(b)為位置損失對比,在0.1~1的范圍內均存在波動,但總體上YOLOv3_In_Res的位置損失比原YOLOv3更低。圖11(a)、(b)為總損失對比,原YOLOv3算法的總損失收斂區(qū)間為0.55~1.22;YOLOv3_In_Res的總損失收斂區(qū)間為(0.29~0.63),改進后的總損失得到了明顯的下降。
圖9 YOLOv3算法置信度損失對比Fig.9 Confidence loss comparison of YOLOv3 algorithm
圖10 YOLOv3算法Giou損失對比Fig.10 Giou loss comparison of YOLOv3 algorithm
圖11 YOLOv3算法總損失對比Fig.11 Total loss comparison of YOLOv3 algorithm
分別篩選出兩個算法訓練后得到了損失最低的模型,并利用同一組測試數據對其進行測試,測試集包含52張絕緣子圖像,經測試,YOLOv3模型檢測總耗時5.12 s,YOLOv3_In_Res耗時5.48 s,檢測耗時并未明顯增加。得到的mAP統計圖如圖12所示(只有絕緣子一類,因此mAP=AP)。
如圖12(a),YOLOv3的絕緣子AP值為69.69%,而改進后的YOLOv3_In_Res的絕緣子AP值為71.93%,改進后的YOLOv3_In_Res的mAP比原算法提高了2.24個百分點,表明在絕緣子目標檢測任務中,YOLOv3_In_Res的檢測精度比原始YOLOv3更高。檢測結果對比如圖13所示。
圖12 mAP統計對比圖Fig.12 mAP statistical comparison chart
圖13 絕緣子檢測結果對比圖Fig.13 Comparison of insulator detection results
如圖13所示,原始YOLOv3算法與YOLOv3_In_Res算法均能對不同形態(tài)的絕緣子進行檢測,但原始YOLOv3算法對圖像中出現塔桿等與絕緣子類似物體時出現了誤檢的情況,且框精度不高,而YOLOv3_In_Res算法則克服了以上問題,降低了誤檢率且提高了畫框精度。
本文對無人機航拍圖像絕緣子自動檢測算法進行研究,通過分析絕緣子圖像數據集,針對無人機巡檢拍攝圖像的特點并結合當前分類精度較高的Inception-Resnet-v2網絡對YOLOv3算法進行改進,并利用改進后的算法與原算法進行對比實驗。得出結論如下:
(1)改進后的YOLOv3_In_Res算法比原始YOLOv3算法在絕緣子數據集上mAP提高了2.24個百分點。
(2)加入Inception-Resnet模塊能夠在保證運算速率的條件下,拓展網絡寬度,提高資源利用率,增加網絡對多尺度目標檢測的適應,使目標檢測模型性能得到提升。
(3)本文提出的YOLOv3_In_Res算法能夠更好地適應無人機拍攝的絕緣子圖像數據集的數據特征。
通過將YOLOv3算法成功應用到無人機巡檢圖像的絕緣子檢測領域,并取得了不錯的效果,說明了深度學習在電力巡檢中電力元器件檢測的可行性,對后續(xù)將深度學習應用到如絕緣子自爆等明顯缺陷的檢測具有重要的指導意義。