王 卓 王玉靜 王慶巖 康守強 V. I. Mikulovich
(1. 哈爾濱理工大學電氣與電子工程學院 哈爾濱 150080 2. 白俄羅斯國立大學 明斯克 220030)
絕緣子作為電力系統中關鍵的絕緣器件,在架空輸電線路中起著機械支撐和防止電流回地的重要作用[1]。作為易出現故障器件之一,受災害、溫度、潮濕等自然因素的影響,絕緣子很容易出現爆缸、金屬護具脫落等物理故障,直接威脅著整個電力系統的輸電穩定性。
對絕緣器件的故障檢測一直是巡檢工作中的重要組成部分。放電檢測法是較為成熟的一種檢測手段。傳統的放電檢測法可以分為電檢測法和非電量檢測法。常見的電檢測法有電壓分布法、敏感電阻法、電場分布法等,雖然應用效果好,但需要登塔;非電量檢測法主要以紅外圖像法和紫外圖像法為發展方向,具有可遠距離、大面積快速檢測的優點,體現了絕緣子檢測精確、高效的發展方向。放電檢測法雖然技術成熟,但易受環境等諸多因素的影響,同時工作量巨大的定期斷網巡檢給人們的生活和工業生產帶來了諸多不便[2]。
近年來,隨著無人機技術和計算機技術的飛速發展,基于航拍圖像的輸電線路中關鍵電氣設備的故障巡檢方式,已經成為線路巡檢的主要發展方向。目前國內外在電力設備檢測方面的研究已經取得了一定的進展[3-4]。
在傳統圖像處理領域,文獻[5]在劃分絕緣子區域的基礎上,計算各部分的方差和紋理信息,并加權求和,有效提高了對絕緣子單一故障的檢測精度。文獻[6]提出一種基于頻率調諧的絕緣子識別與定位算法,通過三通道閾值分割與輪廓識別,實現了從復雜背景的巡檢圖像中準確識別、定位絕緣子。文獻[7]提出一種基于Harris角點匹配與譜聚類的絕緣子故障檢測方法,可有效改善傘裙交錯情況對絕緣子輪廓提取的影響。文獻[8]提出一種基于可見光圖像顏色特征與支持向量機相結合的識別方法,為絕緣子污穢等級識別提供新思路。上述方法基本實現了絕緣子檢測,但是傳統的人工提取特征的方法存在局限性,且計算量大,檢測的精度和速度遠遠達不到實際應用的要求[9]。
隨著神經網絡算法的發展,深度學習取得了突破性進展,由于其強大的表征和建模能力,使得在目標檢測領域顯現出了巨大優越性[10-11]。基于深度學習的目標檢測算法可分為兩類:基于區域建議和基于回歸的算法。基于區域建議的標志性算法有R-CNN(region-convolutional neutral networks)[12]和Fast R-CNN[13],核心思想是先獲得建議區域,然后在當前區域內進行分類,所以也稱為two-stage目標檢測算法[14]。文獻[15]提出Faster R-CNN算法,為了減少選擇性搜索的時間,使用區域建議網絡來提取建議框,在提高檢測精度的同時將檢測時間減少到原來的1/10。文獻[16]使用Faster RCNN算法進行輸電線路檢測,通過正則化優化模型結構以提高檢測速度,對巡檢圖像的多目標檢測獲得了較高的精度和較快速度。基于區域建議的目標檢測算法均需要獨立訓練兩個復雜的網絡,雖然檢測準確率高,但是訓練和測試速度仍然緩慢,無法滿足實際應用要求。
為解決目標檢測算法訓練和檢測速度緩慢的問題,基于回歸的目標檢測算法被提出,標志性算法有SSD(single shot multibox detection)算法[17]和YOLO(you only look once)算法[18],核心思想是用單一的卷積神經網絡(Convolutional Neural Networks,CNN),直接基于整幅圖像預測包圍邊框的位置及所屬類性,也稱為one-stage目標檢測算法。文獻[19]使用SSD算法,將超深度卷積神經網絡(Visual Geometry Group, VGG)替換為MobileNets結構,并刪掉池化層和全連接層,實現了紅外圖像下電力設備異常發熱的快速檢測。文獻[20]提出YOLOv3算法,采用殘差網絡優化網絡結構,最大程度地平衡了檢測精度與速度,對COCO數據集檢測的平均準確率(Mean AVERAGE Precision, MAP)值達到55.3%,檢測時間為29ms。文獻[21]將YOLOv3算法用于絕緣子串的定位與異常識別,用Focal Loss和均衡交叉熵函數改進損失函數,采用多階段遷移學習策略訓練網絡,獲得了91.8%的診斷精度。以上基于回歸的目標檢測算法雖然滿足了實際應用中的速度要求,但是航拍圖像中絕緣子背景復雜,受附近線路、桿塔等多因素干擾,導致模型對絕緣子故障區域的定位及檢測精度受到影響。
為了排除航拍圖像中線路、桿塔等復雜因素對故障區域定位準確性的干擾,提高模型的定位及檢測精度,本文提出一種協同全卷積網絡(Fully Convolutional Networks, FCN)與YOLOv3算法的二階段絕緣子故障檢測方法。第一階段,利用FCN網絡預處理圖像,初步分割出濾除背景的絕緣子區域,排除圖像中無關區域的干擾;第二階段,建立基于YOLOv3算法的絕緣子故障檢測模型,實現絕緣子故障的準確檢測。采用K-means++聚類算法對數據集中的目標重新聚類分析,優化網絡錨點框參數,進一步提高檢測精度。
本文提出一種基于協同深度學習的方法,即FCN和YOLOv3算法相協作,實現二階段絕緣子故障檢測的方法,其流程如圖1所示。

圖1 絕緣子故障檢測方法流程Fig.1 Flow chart of insulator fault detection method
一階段絕緣子數據集包含絕緣子無故障正樣本和故障負樣本;二階段訓練集2為濾除背景的絕緣子圖像,測試/實際診斷數據為新獲取的航拍絕緣子圖像。
訓練和測試的具體流程為:
(1)將訓練集1輸入VGG16特征提取網絡,通過三次上采樣得到原圖相同尺寸的特征圖,建立FCN權重模型。
(2)圖像分割:將待分割圖像輸入到同一網絡,調用FCN權重模型對一階段測試集中的絕緣子圖像進行分割,輸出絕緣子分割結果。
(3)邏輯運算:將一階段測試集圖像與測試集分割圖進行邏輯與運算,得到去除背景區域的絕緣子圖像,邏輯運算示意圖如圖2所示。

圖2 邏輯運算示意圖Fig.2 Schematic diagram of logic operation
(4)將步驟(3)的輸出作為訓練集2輸入到Darknet-53特征提取網絡,采用級聯的方式得到三種尺度的特征圖,建立YOLOv3權重模型。
(5)故障檢測:將測試/實際檢測數據輸入同一YOLOv3網絡,調用YOLOv3權重模型對圖像進行絕緣子故障檢測,輸出故障檢測結果。
由于目前還沒有絕緣子圖像的公開數據集,為了驗證本文絕緣子故障檢測方法,自主建立了航拍絕緣子故障數據庫。以無人機航拍的方式獲取了大量絕緣子圖像數據,并用labelimg工具對絕緣子故障進行人工標記,定義I-1為均壓環脫落故障,I-2為玻璃絕緣子爆缸故障。
由于絕緣子為非易損器件且電力部門發現后會及時維修,故障數據較難采集,導致完好的正樣本與故障的負樣本在數量上嚴重不均衡,實際拍攝包含四季中晴天、陰雨天等多條線路樣本,且正樣本數量遠大于負樣本數量,數據集見表1。

表1 航拍絕緣子數據集Tab.1 Aerial insulator data set
由表1可知,I-1和I-2故障負樣本一共280張,完好正樣本數量遠超故障負樣本數量,而某一類樣本少會導致算法難以充分學習該類別的信息[22]。為了避免部分正樣本圖像重復拍攝及故障樣本不足導致無法獲取充足特征信息的問題,一方面刪除了部分不可用正樣本數據,從中篩選1 500張;另一方面對I-1和I-2故障負樣本進行了數據增強處理,分別做亮度調整、旋轉和翻轉的形態學操作,模擬不同拍攝角度,不同光線等情形,增強后的故障負樣本數量共計1 400張,I-1和I-2故障分別為935張、465張,進一步提高模型的泛化能力,數據增強結果如圖3所示。

圖3 數據增強Fig.3 Data enhancement
航拍絕緣子圖像中通常包含復雜的環境背景,為了避免背景區域對絕緣子故障檢測的干擾,一階段,訓練一個FCN語義分割模型用于初步分割絕緣子。
FCN算法為了實現對圖像像素級的分類,以CNN分類網絡為基礎,首先,通過五次卷積、池化操作提取特征,得到含有深層語義信息的特征圖;然后,采用反卷積代替CNN最后的全連接層,對最后一個卷積層的特征圖進行上采樣,以恢復圖像的尺寸,從而預測每一個像素,同時保留了輸入圖像的空間信息;最后,利用Softmax分類器獲得各個像素點的二分類結果,實現像素級預測。絕緣子的分割流程如圖4a所示。

圖4 絕緣子圖像分割的全卷積網絡結構Fig.4 Full convolution network structure for insulator image segmentation
本文以VGG16為基礎網絡,C1~C5卷積層提取淺層圖像特征,如邊緣、紋理等,C6~C8卷積層提取深層語義特征,得到1/32尺寸的熱圖。直接32倍上采樣得到FCN-32s模型,由于只使用了深層特征,無法充分利用淺層的空間位置信息,導致分割結果粗糙、分割邊界不連續。為了解決上述問題,充分利用淺層圖像信息,補充特征細節,本文設計了兩種跳躍結構:①將C8特征2倍上采樣和P4特征融合,對融合結果16倍上采樣得到FCN-16s模型。②將以上所得2倍上采樣和P3特征融合,對融合結果8倍上采樣得到FCN-8s模型,跳躍結構如圖4b所示。
圖4 中C1和C2分別表示連續的兩個卷積層,C3、C4、C5分別表示連續的三個卷積層,C6、C7、C8分別表示一個卷積層,P1、…、P5表示池化層,“2×”表示二倍上采樣,H和W分別表示長和寬。
由于計算資源的限制,且航拍設備拍攝獲得的圖像樣本尺寸不一,大大增加了絕緣子定位難度。根據圖像短邊長度,等比例對所有圖像的分辨率統一歸一化處理,調整為500×500大小。
第二階段故障檢測以YOLOv3算法為主體,其特征提取網絡由Darknet-53修改所得,網絡結構如圖5所示。

圖5 Darknet-53網絡結構Fig.5 Darknet-53 network structure
相比二代算法采用的Darknet-19,網絡深度大大加深,網絡的表達能力加強,但這也產生了梯度消失、梯度爆炸和性能退化的問題,為解決以上問題,Darknet-53采用了以下措施:
(1)采用批量歸一化(Batch Normalization, BN)和激活函數(LeakyReLU)。
(2)采用步長為2的卷積代替池化層進行降采樣操作。
(3)借鑒殘差網絡ResNet的思想,使用5組重復的殘差單元(Residual),在卷積層之間以跳躍連接的形式,將單元的輸入與輸出相加,構造一個恒等映射,防止信息丟失。
通過以上方式,解決了梯度消失、梯度爆炸和性能退化的問題。梯度BN還可以使訓練更加穩定和加快網絡收斂速度,其計算公式為

式中,x為BN輸入;y為輸出;γ和β為可學習參數。
為了有效提高網絡的表達能力,該算法采用非飽和的LeakyReLU激活函數,當輸入為負時,給其一個很小的坡度ai,可以減少靜默單元的出現,使神經元保持學習,其計算公式為

損失函數作為判定深度神經網絡預測效果的重要參數之一,很大程度上決定模型的收斂效果,損失收斂越快、數值越小說明模型性能越好。YOLOv3采用誤差的二次方和作為損失函數,整合了目標定位偏移量損失、目標置信度損失及目標分類損失,其計算公式為

在一階段得到去除背景的分割絕緣子圖像的基礎上,二階段YOLOv3算法的故障檢測網絡結構如圖6所示,輸入RGB三通道圖像,經Darknet-53特征提取網絡,采用步長為2的卷積核進行5次下采樣,分別在3~5次下采樣后輸出尺寸為52×52、26×26、13×13的特征圖。為了充分利用特征信息,對于大小為13×13、26×26的特征圖,執行2倍上采樣,并借鑒特征金字塔的思想進行不同尺寸特征圖的張量拼接,最終在三個尺度的特征圖上獨立執行回歸預測目標類別與形狀。

圖6 YOLOv3算法網絡結構Fig.6 YOLOv3 algorithmic network structure
在檢測階段,對于輸入的航拍絕緣子圖像,預測一個三維張量,包括目標、目標邊界框和目標類別。YOLO層將特征圖劃分成S×S的網格(不同尺度的特征圖,S值不同),為每個網格預測三個不同的邊界框,并且張量大小可以表示為S×S×[3×(5+C)],5包含目標框的坐標信息(x,y,w,h)和置信度,C表示預測類別數,所以對于每個維度輸出結果為S×S×[3×(5+2)],最終通過閾值設定及非極大值抑制,輸出最高置信度的邊界框。
YOLO二代算法開始引入了Faster R-CNN中所使用的錨點框(anchor boxes)的思想,它是一組固定尺寸的候選框,往往根據訓練集目標框尺寸事先設定。YOLOv3的默認錨點框參數是根據COCO數據集聚類得到的9個固定參數,不一定適合特定場景下的數據集。本文根據航拍絕緣子數據自身特點,設計出更適合絕緣子數據的錨點框參數,分別使用K-means和K-means++聚類算法對數據進行聚類分析,計算樣本框與錨點框之間的平均交并比(avg IOU),以聚類值與樣本真實值之間的平均損失為目標函數,目標函數值越小,表明結果越準確,其目標函數D為

式中,B為樣本目標真實框;P為聚類中心;n為樣本總數;k為聚類中心個數;nk為第k個聚類中心中樣本的個數;IIOU(B,P)為目標真實框和中心框的交并比。分別在設備驟類中心個數值K=1~20間對航拍絕緣子數據聚類分析,目標函數D的變化曲線如圖7所示。
由圖7可以看出,隨著K值的增加,兩種聚類算法損失函數Loss值逐漸減小,且K-means++聚類算法相比K-means算法,Loss值更小。然而,錨點框數量的增加會大大降低網絡計算速度,增加計算成本,且當K=9時曲線趨于平穩,故選取K=9時的聚類結果優化網絡的錨點框參數。

圖7 目標函數變化曲線Fig.7 Change curve of objective function
根據K-means++算法得到的9個錨點框參數,得到航拍絕緣子故障數據目標真實框和錨點框參數的分布如圖8所示。

圖8 目標真實框與錨點框的分布Fig.8 Distribution of target real box and anchor box
圖8 中橫縱坐標分別表示寬度和高度,“●”表示絕緣子目標真實框分布,“■”表示YOLOv3默認的9個錨點框分布,不能完全擬合真實的數據分布,“★”表示K-means++算法得到的錨點框分布。可以看出,“★”數據分布距離真實框分布更近,更能擬合真實的數據分布,進一步降低了錨點框與真實框的偏差。
實驗平臺的硬件配備Inter(R) E5-2620 V4核心處理器,雙Nvidia GeForce GTX 1080Ti顯卡,32G內存。在Ubuntu 16.04操作系統、Darknet深度學習框架下進行實驗。
為驗證跳躍結構對分割性能的提升效果,本文分別以FCN-32s、FCN-16s、FCN-8s模型對絕緣子數據集進行訓練,得到針對絕緣子區域的分割模型,以像素準確率(PA)、平均像素準確率(MPA)、平均交并比(MIoU)和頻權交并比(FWIoU),作為評價指標,評價模型性能,結果見表2。

表2 不同分割方法的性能對比Tab.2 Performance comparison of different segmentation methods
從表2可以看出,相比于FCN-32s方法,由于FCN-16s方法融合了淺層P4卷積特征,各項指標均有顯著提高;相比于FCN-16s方法,本文使用的FCN-8s方法進一步融合了淺層P3卷積特征,其像素準確率、平均交并比、頻權交并比分別為99.91%、96.73%、98.26%,三項參數均高于FCN-32s和FCN-16s方法,平均像素準確率略微下降,說明本文方法能有效提高分割性能。
各指標計算公式為

式中,pii為正確預測;pij為原本為i類被預測為j類;k+1為類別數。
使用K-means++算法聚類絕緣子故障數據所得參數訓練YOLOv3網絡,網絡的默認最大迭代次數為50 200次,學習率決定著權值更新的速度,過大會導致振蕩,過小會使下降速度過慢,所以深度學習一般根據訓練迭代次數設置動態變化的學習率,通常設置較大的初始學習率,使模型前期快速學習,到達一定迭代次數后,模型無法進一步收斂,此時應該降低學習率。本文在多次訓練過程中,通過觀察平均交并比的變化趨勢,發現訓練到20 000次附近時,曲線無法繼續收斂,所以分別在迭代到20 000次和25 000次時,設置衰減學習率,進一步擬合。最終,平均交并比函數的變化趨勢如圖9所示,可以看出,隨著迭代次數的增加,平均交并比逐漸增大,在30 000次迭代之后,比值在0.85處趨于穩定,達到理想訓練效果。

圖9 平均交并比曲線Fig.9 Average intersection ratio curve
為驗證本文方法的有效性,分別從定性和定量兩個方面對YOLOv3、F-YOLOv3和F-YOLOv3-K算法進行性能對比,將協同FCN和YOLOv3算法的模型命名為F-YOLOv3,同時結合K-means++算法優化錨點框參數的協同FCN和YOLOv3算法模型命名為F-YOLOv3-K。
4.4.1 定性對比
在實驗1中,分別用YOLOv3、F-YOLOv3和F-YOLOv3-K算法對測試/實際檢測數據集中的兩類目標進行測試,分別記錄檢測的漏檢與誤檢情況,以及對兩類目標的檢測置信度,絕緣子故障在4張圖例的三種不同方法下的檢測效果及其局部區域放大圖如圖10所示。圖10中紫色矩形標簽I-1表示均壓環脫落故障,綠色矩形標簽I-2表示玻璃絕緣子爆缸故障,紅色菱形框表示漏檢處,黃色圓形框表示誤檢處,藍色線條表示正確檢出。
由圖10可以看出,檢測位置分別以紫色與綠色框標記出I-1和I-2故障目標,并顯示置信度,置信度結果對比見表3,表中,0表示漏檢,×表示誤檢。

表3 置信度結果對比Tab.3 Comparison of confidence results

圖10 三種方法絕緣子故障檢測結果對比Fig.10 Comparison of three methods for insulator fault detection

由表3可以看出,原始YOLOv3算法在圖1、圖2中出現漏檢情況,在圖3、圖4中出現誤檢情況。F-YOLOv3方法解決了圖例中的漏檢與誤檢情況,并大幅提升了檢測置信度,本文最終提出的F-YOLOv3-K方法進一步提升了檢測置信度。通過大量數據對比驗證,該方法有效解決了漏檢與誤檢問題,且檢測的置信度有顯著提升,為進一步驗證所提方法的有效性,本文在定量方面補充了性能對比實驗。
4.4.2 定量對比
為驗證協同深度學習方法對單一模型檢測性能的提升效果,本文使用FCN算法分別協同YOLOv3和YOLOv3的小型網絡YOLOv3-tiny算法,對檢測數據集進行測試。為了具有可比性,實驗均采用相同的處理策略,使用平均交并比(IoU)、單類故障精度(AP)、平均精度(MAP)、召回率(Recall)作為評價指標,評價模型性能,結果見表4。

表4 評價指標對比Tab.4 Comparison of evaluation indexes
YOLOv3-tiny為YOLOv3算法的小型網絡,協同FCN和YOLOv3-tiny算法的模型命名為FYOLOv3-t,協同FCN和YOLOv3算法的模型命名為F-YOLOv3,同時結合K-means++算法優化錨點框參數的協同FCN和YOLOv3算法模型命名為FYOLOv3-K。
從表4可以看出,相比YOLOv3的小型網絡YOLOv3-tiny算法,由于YOLOv3算法特征提取網絡更深,特征更加豐富,所以其檢測精度及平均交并比均有所提高。與原始單一的YOLOv3-tiny3及YOLOv3模型相比,F-YOLOv3-t和F-YOLOv3采用協同FCN的方法,顯著提升了模型的各項指標,說明該方法適用于絕緣子故障檢測。F-YOLOv3-t比YOLOv3-tiny模型的MAP值高7%;F-YOLOv3比YOLOv3模型的MAP值高1.67%,但F-YOLOv3對I-1故障檢測的AP值有下降。F-YOLOv3-K使用Kmeans++算法優化錨點框參數,進一步提升了IOU和MAP值,最終本文提出的F-YOLOV3-K方法的MAP值高達96.88%,其中I-2故障AP值為100%。
本文提出了一種基于協同深度學習的二階段絕緣子故障檢測方法,實現了航拍圖像絕緣子故障的端到端檢測,通過對比實驗分析,得到如下結論:
1)針對YOLOv3網絡中受復雜地貌、桿塔等背景對檢測準確率的干擾問題,一階段,提出了一種基于FCN算法的絕緣子分割算法,有效完成了濾除背景的目的,并以跳躍結構構建了FCN-8s模型,提高了絕緣子分割的準確性和完整性,PA值高達99.91%。
2)根據航拍絕緣子故障目標尺寸特點,使用隨機性更小的K-means++聚類算法對絕緣子數據集聚類分析,優化YOLOv3算法的初始錨點框參數,進一步提高了模型的定位及檢測精度。
3)在自主建立的航拍絕緣子故障數據庫上訓練,構建協同FCN和YOLOv3算法的二階段絕緣子故障檢測模型,并結合K-means++優化錨點框參數。經實驗對比,提出的F-YOLOV3-K方法相比原始YOLOv3算法有效降低了誤檢與漏檢概率,所對比的各項評價指標均有顯著提升,MAP值上升4.65%,達到96.88%。
本文方法僅能檢測圖像中絕緣子的可見故障與缺陷,下一步將深入研究對電弧燒傷、放電等不明顯故障的檢測方法,進一步提升模型性能。