蔣 姍,孫 淵,嚴道森
(上海電機學院機械學院,上海 200120)
高壓線路輸電距離長,沿線的自然環境多樣,地理環境復雜,輸電線路易在惡劣環境中受到損害. 如果監控不到位,發生故障無法及時處理,必將導致重大事故發生,嚴重威脅和影響電力系統的正常穩定運行,甚至造成系統大規模癱瘓的嚴重后果. 對輸電線路進行定期巡視檢查是保證電力系統穩定運行的重要前提. 絕緣子類型多、 數量大、 分布廣, 是高壓輸電線路中重要的組成部分,在巡檢過程中,輸電線路上的絕緣子是重要的檢測目標. 人工巡檢效率低下、 危險系數高、 檢測結果不穩定,難以滿足日常監控巡檢要求,應用無人機巡檢在一定程度上提高了電力巡檢的效率[1]. 但絕緣子的航拍圖像在訓練前期篩選十分繁瑣,且受拍攝條件制約,使絕緣子在整幅圖像中占比小,導致人工判別強度大、 效率低. 在電網智能巡檢的大背景下,伴隨著圖像處理和深度學習的不斷發展,利用深度學習技術對絕緣子進行自動定位和檢測成為趨勢.
針對絕緣子檢測問題,目前國內外最常見的解決方法為傳統特征提取和基于神經網絡的深度學習方法. 傳統特征處理使用HOG、 SURF等方法提取圖像等特征,然后訓練SVM、 Adaboost等特征分類器. Zhao等[2-3]提取圖像的SURF特征以及基于相關系數的直覺模糊集,使用聚類算法識別絕緣子. Wu等[4]通過將絕緣子輪廓局部紋理分布的內外差異最大化建立了一種新的輪廓模型來提取絕緣子. 徐向軍等[5]使用廣義霍夫變換提取絕緣子盤片的輪廓特征. Zhai等[6]將玻璃和陶瓷獨特的顏色特征與空間特征相結合,識別絕緣子位置. 但傳統方法的檢測精度十分依賴于特征提取方式,訓練、 檢測速度均很緩慢,復雜度高、 泛化性差,應用場景非常局限,無法很好地應用于背景復雜的絕緣子檢測中.
2014年,Girshick[7]設計了R-CNN算法,使目標檢測與識別技術取得了巨大突破,掀起了基于深度學習的目標檢測與識別的熱潮. 在其基礎上發展的Fast R-CNN[8]、 Faster R-CNN[9]、 Mask R-CNN[10]、 YOLO[11]、 SSD[12]更是受到諸多研究者追捧. Miao等[13]采用SSD模型將特征提取方式由傳統手動改變為自動提取. Tao等[14]基于CNN深度卷積網絡提出了一種聯級架構,在多種條件下實現了絕緣子的檢測. Gao等[15]利用全卷積網絡進行絕緣子定位,實現絕緣子端到端檢測. 但因輸電線路環境復雜,背景干擾大,導致絕緣子在圖像中不突出,增加對絕緣子檢測處理難度. 直接用現有算法檢測航拍圖像中的絕緣子部件不能獲得滿意的效果,必須結合絕緣子圖像的特性,對其檢測方法進行更深入的探索. 文獻[16]深度剖析了目前常用的目標檢測算法,檢測速度與準確性的比較結果中顯示,YOLO、 SSD等新型算法雖然速度較快,但檢測精度無法滿足對電網元器件的檢測要求.
在權衡檢測速度和檢測準確度后,決定采用檢測準確度更高的Faster R-CNN算法作為基礎算法進行絕緣子圖像的檢測. Faster R-CNN算法[17]在特征提取過程中僅對圖像中的高級卷積特征信息進行利用,速度快、 需要內存少. 雖然高層特征全局性信息豐富,但僅關注深層網絡中最后一層的特征,會忽略淺層卷積特征的細節信息,這些淺層的細節信息可以提升檢測的精度,對檢測絕緣子這種小目標尤顯重要[18]. 基于該事實,本研究提出一種改進Faster R-CNN算法,將其運用于絕緣子的自動識別與檢測當中.
區域建議網絡(region proposal network,RPN)是Faster R-CNN算法中最具有意義的一部分,它的運用使Faster R-CNN算法成為了第一個真正意義上的端到端的深度學習檢測算法[19]. 如圖1所示,代替selective search,RPN網絡使用Anchor機制來生成候選框,首先在特征圖上以每個位置點為中心生成3種尺度,3種長寬比共9個不同大小的參考框,然后采用大小為3 × 3的窗口在特征圖上滑動做卷積操作,當滑窗滑到每個位置上的候選區域時,會對其進行預測. 因RPN的最后一個卷積層有512個卷積核,故每個滑窗生成的特征向量為512維[20]. 接著這些特征向量被輸入兩個大小為1 × 1的平行全連接層,分別為分類層和回歸層. 分類層的輸出為置信度,用于判別該區域為背景還是檢測目標; 回歸層的輸出為坐標偏移量,用于對參考框的邊界坐標進行微調.
RPN并非像傳統的圖像金字塔將圖像多尺度縮放再提取每個尺度下的圖像特征,而是采用特征圖上的位置點在原圖尺度上鋪設參考框,在減少計算量的同時能夠更加準確地設置參考框.
Faster R-CNN利用候選區域網絡RPN提取圖像特征,但RPN僅利用圖像的最后一層特征. 雖然能夠快速定位較大目標,但對于在圖像中目標尺寸變化劇烈、 分布位置不確定、 占比小的絕緣子而言,對其檢測更需要語義信息稀疏,能提供細節特征的淺層信息. 為解決使用Faster R-CNN網絡底層特征無法利用的問題,更好地檢測監控圖像中的絕緣子,將FPN金字塔結構引入Faster R-CNN網絡特征提取過程,使其與候選區域網絡RPN融合,改進原有RPN; 然后采用雙線性插值法替換原RoI Pooling操作,修正二次取整量化的偏差,使檢測框的坐標更加精準.
1.2.1FPN特征金字塔網絡
特征金字塔網絡(feature pyramid networks,FPN)由三個部分構成, 如圖2所示. 第一部分為自下而上的普通卷積神經網絡前饋過程提取特征圖; 第二個部分自上而下將第一部分所得特征圖中語義信息更強的高層特征圖進行上采樣,加強高層特征,使相鄰各層的特征圖大小相同; 第三部分采用橫向連接方式將前兩步的特征圖結合. 通過這三個部分,將高層和低層特征結合,令每個尺度下的特征都擁有豐富的語義信息.

圖2 FPN結構圖Fig.2 FPN structure
1.2.2FPN和FasterR-CNN的融合
將FPN融入Faster R-CNN檢測框架中,整體框圖和算法流程如圖3所示.

圖3 RPN算法流程圖Fig.3 RPN algorithm flowchart
算法流程為:
1) 自下向上. 把原始圖像輸入ResNet提取深層特征圖. 由于ResNet-50的網絡層數太淺,無法提取深層次的語義信息,故選取ResNet-101提取目標特征. 將ResNet輸出相同尺寸特征的若干層作為同一階段,由淺至深劃分為conv1至conv5. 由于conv1輸出的特征圖分辨率太高,內存占用量大,因此將conv1層舍棄,只使用conv2至conv5. 在各階段的語義信息最強的是每一階段的最后一層,故將每階段的最后一層作為輸出,為避免反向傳播梯度消失問題,將其經過ReLu非線性函數激活后作為每一階段的參考特征圖{C2, C3, C4, C5}.
2) 自上向下. 首先用1 × 1的卷積核將不同層次的特征圖更改為相同通道數256,由于相鄰層級特征圖的尺寸為2倍,自上而下將較深層特征圖上采樣放大至原長寬的2倍,再與下一層級的特征圖加法迭代. 得到{P2, P3, P4, P5},形成FPN特征金字塔,實現底層語義信息的增強.
不同于原始Faster R-CNN僅使用conv4一個層級來提取感興趣區域,本研究將FPN的4個層級融合,得到的低層級特征圖不僅具有高語義特征,還兼具高分辨率的特性. 值得一提的是,本算法雖將整個FPN的4個層級全部用于提取RoI,但檢測多尺度目標、 小尺寸目標的能力仍遠高于采用單一尺度共享特征圖的Faster R-CNN,且其所占的內存空間卻沒有因此增加很多,復雜程度幾乎與其相等.
在FPN的每個層級上密集滑動一個同樣設計的網絡頭來檢測可能的感興趣位置,由文獻[21]知, 若FPN每層級使用不同的RPN網絡會降低網絡泛化性,而FPN不同層的特征圖是多尺度的,故將FPN所有層級的錨點都用于一個頭部,在保證精度的同時簡化網絡,使網絡頭部在所有FPN層級上共享參數. 但共享參數會使訓練樣本激增,導致建議框冗余. 為解決該問題,本研究在FPN每層特征圖中加入非極大值抑制,限定特定層級的單尺度建議框重疊,再將置信度分數降序排列,將排名靠前的建議框作為RoI的輸入,規避因建議框冗余令訓練速度變慢的問題.
原Faster R-CNN網絡使用RoI pooling提取特征,其輸入為單尺度特征圖,但加入FPN后會得到多尺度的特征圖,這時需要使RoI根據輸入特征圖的尺度選擇相應的金字塔層級Pk,具體的分配方式如下.

(1)
其中:w、h分別為RoI的寬和高; 224為預訓練圖像大小; 設k0=5,為映射到的RoI的目標水平. 若RoI的尺寸變小為224的二分之一,則將會被映射到更精細的級別,此時k=4.
1.2.3改進的RoIPooling
RoI Pooling層可以提高檢測準確率,加快訓練、 測試速度,但其在生成候選框和確定對應網格位置時會進行兩次取整量化操作. 第一步在原始RoI Pooling層對框選的兩個采樣點進行取整,使產生的采樣點對齊標準的坐標點,而后續的池化操作要再次進行取整. 由于經過CNN得出的特征圖比原圖像縮小了16倍,所以在對應過程中需要使用x/16進行計算,極易出現小數. 兩步取整操作造成的特征圖上的坐標點偏差對應原圖上的像素偏差足有16倍,像素偏移將導致圖像和特征圖不匹配,令特征圖上的RoI和原圖無法對應,對后層的回歸定位產生影響.
為避免兩次取整量化對浮點數舍入操作,引入雙線性差值對對齊方式改進,將RoI對應的特征圖某一區域均分成2 × 2區域塊,再將各區域塊四等分,將每個小網格中心作為采樣點. 如圖4所示,頂點a、b、c、d和均分的2 × 2區域中的16個采樣點坐標均不是整數. 雙線性差值評估在確定采樣點后直接映射到特征圖上,對每個的采樣點在x、y兩個方向上進行評估,完成差值后進行最大池化操作,如此類推得出最終的特征圖. 整個操作不對具體的坐標數值進行操作,坐標計算過程中保留小數,規避RoI兩次取整操作的離散量化誤差,使最終檢測框位置更加準確.

圖4 通過雙線性插值的改進RoI Pooling Fig.4 Improved RoI Pooling through bilinear interpolation
為訓練RPN網絡,將重疊交并比IoU正負閾值設定為0.7和0.3. 置信度高于0.7為正樣本,低于0.3為負樣本,介于0.3和0.7之間的不參與訓練. 設置損失函數指導訓練,如下式所示:

(2)

(3)

以下函數表達式說明邊框回歸是根據坐標的比例值來判斷回歸是否完成,而不是適用各個坐標的具體數值,

(4)
其中:x、xa、x*為預測框、 錨定框、 真實框的坐標值;x、y為框的中心點坐標;w、h為框的長寬.
Lcls采用了對數損失,Lreg采用smoothL1損失,如下式所示.

(5)

結合Github上國家電網的公開數據[22]和3個華中地區變電廠的監控截圖圖像作為實驗數據,去除重合率達到70%以上的和少量不包含電器元件的圖像后,最終選擇3 267幅圖像. 以7∶2∶1的比例將其分為訓練集、 測試集和驗證集. 實驗采用TensorFlow深度學習平臺; 網絡學習率為0.001,迭代次數為4萬次,IoU正負閾值設定為0.7和0.3.
原網絡和改進網絡對絕緣子的檢測結果如圖5和圖6所示. 在絕緣子背景復雜、 互相遮擋的情況下,改進算法依然能對絕緣子進行高精度檢測.

圖5 Faster R-CNN算法檢測結果Fig.5 Detection results of Faster R-CNN algorithm

圖6 本算法檢測結果Fig.6 Detection results of the algorithm presented in this paper
從圖5(a)可看出, 原算法可檢測圖像中央占比較大的絕緣子,但無法識別占比小的絕緣子. 而通過對絕緣子標記框在整體圖像中占比統計發現,圖像中占比僅為1%的絕緣子數量占總數量的三分之一,如果漏檢將會造成絕緣子檢測準確率嚴重下降. 而在圖6(a)中,改進算法可以對圖中占比不同的絕緣子完成檢測,即使是右下角尺寸較小的絕緣子也能夠進行準確識別. 通過圖5(b)和圖6(b)的對比也能夠展現這種在絕緣子檢測目標尺度劇烈變化,在圖像中占比不同的情況下,改進網絡的檢測效果要遠優于Faster R-CNN.

表1 相同數量候選區域下改進RPN與原RPN對比
改進算法與原算法相比在多個方面都得到了提升. 針對絕緣子檢測目標在圖像中尺寸變化幅度大、 目標重疊遮擋情況,通過融合FPN網絡增加對小目標物體的敏感度,并改進了最大池化層,緩解了重疊絕緣子目標檢測框被誤刪的情況. 如表1所示, 在提供相同數量的候選框的條件下,與FPN融合的改進RPN在控制時間復雜度的同時提高精度,提供的候選區域質量更高.
表2表明,在常規尺寸的絕緣子檢測中傳統的Faster R-CNN網絡的平均檢測準確率可以達到一定精度,檢測速度較快,但其無法正確檢測圖片中小尺寸的絕緣子檢測. 而通過與其他網絡進行檢測實驗可以發現,對于小目標的檢測均存在精度過低的問題,即使是檢測精度最高的SSD網絡,對較小絕緣子目標的檢測精度也只能達到54.32%. 將FPN與Faster R-CNN融合后,對比原網絡雖然增加了少許的檢測時間,但大幅提升了小尺寸絕緣子的檢測精度,極大地減少了絕緣子的漏檢問題,為絕緣子故障檢測提供了理論基礎.

表2 不同網絡結構的檢測結果對比
圖7為改進前后的P-R模型曲線. 從圖中可見,改進后的檢測模型曲線更加平滑,且更加靠近右上角,與兩組標軸的積分面積即平均精度AP值更大,提高了近28%.

圖7 重疊絕緣子示意圖Fig.7 Comparison of P-R curves before and after algorithm improvement
基于Faster R-CNN網絡,提出一種將FPN融合Faster R-CNN的絕緣子檢測算法,避免了人工檢測絕緣子的束縛,將淺層和深層特征相結合,提取多尺度特征,豐富了語義信息,在控制時間復雜度的同時提升了對尺寸變化大的絕緣子的檢測精度,獲得了較滿意的檢測效果. 采用一種基于雙線性插值的對齊池化方式避免了RoI Pooling中兩次池化操作帶來的位置偏移,提高了檢測框的坐標精度. 利用soft-NMS算法替代NMS規避因目標重疊遮擋而誤刪重疊檢測框的情況,減少了圖像中小尺寸絕緣子的漏檢情況,使最后得出的絕緣子檢測框更為精確. 但絕緣子一般成對出現,不同拍攝角度會出現不同程度的對象遮擋,再加上輸電網絡背景復雜,互相遮擋的絕緣子目標還存在一定程度上的漏檢問題,下一步, 將在此基礎上對檢測框進行調整,進一步讓不同場景下的絕緣子器件得到更好的檢測識別.