張亞婉,巫耿宇,黃迪帷,何胤康
(廣州華立學院,廣東廣州 511320)
隨著智能電網建設的推進,無人機已經逐步代替了人工進行電力巡檢,目前無人機僅僅作為數據采集端,巡檢過程收集到的大量絕緣子圖片信息還需要經過人工判斷,才能得知線路是否存在故障。無人機巡檢路程長、拍攝圖片多,人的眼睛注視太久會產生疲勞,容易造成漏標或誤標等現象的發生。我國電網建設發展迅速,日常使用絕緣子數量逐年增加,各種絕緣子帶來的問題也隨之增多[1-2],因此,運用合適的圖像識別算法對無人機巡檢過程進行圖像處理很有必要。
現階段應用較為廣泛的深度學習目標檢測技術有FastR-CNN[3]、FasterR-CNN[4]、SSD[5]、YOLO[6-7]算法等,前兩種算法生成一系列候選框(anchor box),通過卷積網絡在候選框中進行分類,對目標進行檢測和識別。SSD、YOLO兩種算法直接把目標邊框定位變成回歸問題進行解決,不用產生候選框,檢測速度比前者快了很多。YOLO 采用回歸算法,速度比Faster R-CNN快了3倍。文獻[8]使用了YOLOv3網絡與ECO 算法的結合,能夠有效地檢測和跟蹤絕緣子,但是訓練后定位的檢測框準確率較低。文獻[9]把Faster R-CNN 算法應用在無人機巡檢過程中對絕緣子進行檢測,檢測效果準確率較高,但是檢測用時過長,無人機巡檢輸電線路的實時性不能被滿足。文獻[10]提出一種基于U-net[11]網絡的絕緣子檢測技術,檢測效果相對較好,由于檢測功能的絕緣子圖像背景較簡單,要做到無人機在復雜背景下的準確檢測和定位比較困難。
該文提出一種改進YOLO 算法的絕緣子目標檢測方法,對無人機拍攝絕緣子圖像標注后制作數據集,通過卷積網絡進行訓練,能夠準確檢測出有缺陷的絕緣子。在YOLO 算法原有網絡的基礎上,通過融合絕緣子特征的金字塔結構,用K-means++對數據集進行聚類分析,挑選符合要求的先驗框,通過NMS去除冗雜檢測框,使檢測結果更加準確,以完成對絕緣子定位及類別的劃分。
基于圖像金字塔結構大多都出現在圖像檢測領域深度學習網絡中。在深度學習目標檢測中金字塔結構檢測效果好,可以提取圖片以及成像的空間特征。基于YOLOv3 的特征提取網絡結構,主要由53個卷積層組成,YOLOv3 網絡結構圖如圖1 所示。

圖1 YOLOv3網絡結構圖
通過無人機巡檢拍攝的圖片中絕緣子尺寸和絕緣子缺陷通常都很小,只有原圖的2%~5%,原有YOLO 算法僅僅使用最后一層特征圖,并沒有辦法有效檢測出絕緣子,該文將算法中的淺層特征圖與高層特征圖相結合,底層的特征圖所含細節更多,結合之后能夠提升在圖中目標過小的絕緣子的檢測水平,YOLO 金字塔檢測結構如圖2 所示。

圖2 YOLO 金字塔檢測結構
該文提取相對底層的26 像素×26 像素圖像,通過1×1 的卷積層將特征矩陣的深度從512 壓縮到64,再通過Pass Through Layer 層將特征矩陣的寬高變成原來的一半,深度變為原來的4倍,輸出的13×13×256特征矩陣與高層特征矩陣13×13×1 024在深度方向進行拼接,作為最終的預測方向。PassThrough Layer層示意圖如圖3 所示。

圖3 PassThroughLayer層示意圖
該層將特征矩陣中相同的部分提取出來;將一個特征矩陣分為四部分,將每部分中相同的數值進行分離,得到4 個特征圖,每一個特征圖包含原有圖像中相同的一部分。經過變換后原有特征矩陣的寬、高為原來的一半,深度為原來的4 倍。
首先用labeling 制作訓練所需數據集,利用聚類算法K-means++對絕緣子訓練集的高寬比進行聚類分析,從而確定最終的anchor box 高寬比,再使用改進后的YOLOv3 算法進行訓練。在改進的YOLOv3算法中,在低層提取的特征圖與高層語義信息結合的過程中,利用非極大值(NMS)過濾掉比例較低的數值,以此在原圖像中更為準確地框中絕緣子。絕緣子檢測流程圖如圖4 所示。

圖4 絕緣子檢測流程圖
YOLO 算法定位需要用先驗框對目標區域進行尺寸預測,原來的YOLO 算法使用K-means 聚類計算先驗框尺寸,其聚類結果很大可能會受到K個聚類中心的影響,故該文選擇不用K-means 算法而改用K-means++算法[12],實驗結果表明,K-means++算法穩定性更強,確保了初始聚類中心的離散性,增強了先驗框分布的合理性,能夠更好地指導網絡訓練。K-means++算法流程圖如圖5 所示。

圖5 K-means++算法流程圖
K-means++算法步驟如下:
從數據集中間隨機挑選一個樣本C1,并將其設為初始聚類中心。
算出數據集中每一樣本與選定聚類中心C1 之間的最短距離,設置為D(X);
計算每一個樣本被挑選為下一聚類中心的概率,從中挑取最大概率對應的樣本點作為接下來的聚類中心C2;
重復進行第二步,選取9 個聚類中心C={C1,C2,C3,…,C8,C9}為止,將數據集中每一樣本分配至與本身距離最小的聚類中心對應的簇中。
重新計算聚類中心Ci,即重復前面的第三步和第四步,一直到聚類中心不發生變化為止。
改進后的算法對標簽中絕緣子的寬高比進行聚類后,得到更加適合絕緣子訓練集的先驗框,加快了網絡訓練的速度。
經過K-means++聚類分析后產生了一系列的先驗框,利用重疊區域面積比例IoU 檢驗先驗框的精度。B個先驗框及其對應的置信度S,可以挑取具有最大score 的先驗框x,將其從B集合中刪去并添加到最后的檢驗結果D內。一般情況下,將B中殘余檢測框中與x的IoU 大于閾值Nt的框從B中刪去,反復進行全程,直到B為空,選出精度最好的一個[13]。
原有的YOLO 算法采用的NMS 算法的最大問題就是它將相鄰低置信度檢測框的分數均強逼歸零[14],絕緣子存在遮攔時,可能會產生漏檢,因此,該文采用soft-nms 算法,在算法執行中并非簡單對IoU 大于閾值的檢測框進行刪除,而是減少置信度分數[15]。
為了檢驗改進YOLO 算法在實際無人機巡檢圖中是否有效,該文選取了廣東省內諸多地方無人機巡檢過程中拍到的絕緣子圖像和部分中國電力線路絕緣子數據集(CPLID)中的開源無人機巡檢圖像共2 000 張,使用labeling 對無人機巡檢圖像中的絕緣子以及絕緣子缺陷位置進行標寫,將數據集的60%作為練習集,40%作為測試集,進行練習訓練和測驗。其中,為了提高網絡的泛化能力,將數據集分為兩種類型,一類圖像帶有絕緣子缺陷,另一類圖像為正常絕緣子,兩種類型的圖像在訓練集和測試集中均各占50%。
實驗環境:操作系統為Ubuntu 18.04LTS;顯卡為GPU NVIDIA GeForce GTX 1660Ti;CPU 為Interi5-9300H 2.40 GHz/16 GB。
3.2.1 絕緣子
為了驗證改進后的YOLO 算法在無人機巡檢過程中的效果,將其訓練后的檢測結果與原來的YOLO 算法訓練結果進行比較,可以看出原有的YOLO 算法對于復雜場景的絕緣子定位精準度有所欠缺,并且存在漏檢現象,而改進后的算法在檢測準確度方面有很大的提升。改進前后對比測試效果圖如圖6 所示。

圖6 改進前后對比測試效果圖
3.2.2 改進后先驗框算法
該文采用均值平均精度(MAP)對原有的YOLO算法和改進后的YOLO 算法進行對比(見表1),可以看出改進后的算法MAP 較原來有所提升,絕緣子和絕緣子缺陷定位的準確率也大大提升,可觀察到,修改后的算法生成的先驗框降低了訓練集目標框聚合程度,訓練的準確率得到了大幅度提升。

表1 改進前后算法對比結果
3.2.3 檢測框架的選擇
無人機巡檢目標檢測主流框架有Faster R-CNN、YOLO,表2 為不同監測框架對比結果。可以看出,Faster R-CNN 絕緣子MAP 高達90%,但檢測速度極慢,無法實時反映絕緣子缺陷,相比之下YOLO 算法MAP 接近90%,速度卻是Faster R-CNN 的5 倍之多,因此,選擇快速且精確地YOLOv3 作為無人機巡檢檢測框架。

表2 各種檢查框架對比結果
該文基于YOLO 算法提出一種改進模型,運用K-means++算法加強穩定性,增強先驗框分布的合理性。選擇快速且精確的YOLOv3 作為無人機巡檢檢測框架,有效提高了絕緣子及缺陷的精確定位,相對原有方法,其對絕緣子及缺陷檢測的精準度有所提升。在改進模型中融入了卷積層,簡化了網絡結構,一定程度上減少了添加模塊帶來的額外計算量,提升了模型的檢測速度。結果表明,改進后的YOLO 網絡可以更精確地檢測絕緣子及缺陷,并繼承了原有YOLO 網絡實時性高的特點。下一步將構建更為精細的識別類型,基于多種新型絕緣子數據集檢測缺陷區域,進一步提升檢測準確率。