陳嘉琛,俞曜辰,陳中,韓衛
(1. 東南大學吳健雄學院,南京211189;2. 東南大學電氣工程學院,南京210096;3. 深圳市多翼電智科技有限公司, 南京211100)
近年來,隨著無人機巡檢輸電線路缺陷技術研究的不斷深入,該技術的應用場景不僅限于實驗室運行的理論場景,又逐漸向實際應用的現實場景轉變,但此過程卻逐漸暴露出許多問題。試運行現場樣本量較為固定,測試樣本與訓練樣本相似,且需較長計算時間,而實際應用現場巡檢范圍廣,拍攝樣本種類多變且數量較少,所以試運行現場使用的一些基礎圖像識別算法逐漸顯現出較多問題,例如過擬合、對硬件要求高、計算耗時長等,導致實際應用缺陷診斷效果不佳。因此,研究適應輸電線路巡檢實際應用現場的改進圖像識別算法對巡檢技術發展具有重要意義。
目前,機器學習圖像識別算法大致分為兩類,分別為基于候選區域的機器學習圖像識別算法和基于回歸的機器學習圖像識別算法[1 - 3]。基于候選區域的機器學習圖像識別算法,主流的有更快的基于區域的卷積網絡(faster region-based convolutional network,Faster R-CNN)[2]、掩膜基于區域的卷積神經網絡(mask region-based convolutional network,Mask R-CNN)等,此類算法擁有訓練模型識別精度高的優點;基于回歸的機器學習圖像識別算法較為典型的有YOLO系列等,此類算法擁有訓練模型檢測速度快的優點,但此兩類算法的訓練模型均存在對硬件要求高、計算耗時過長等問題。為了解決這些算法存在的問題,文獻[4 - 9]分別提出了對YOLOv3的多種改進方法。其中文獻[4]在YOLOv3的網絡結構中添加卷積層模塊,并粗略調整特征圖上的錨框大小;文獻[5]對YOLOv3網絡重新組合,使之包含多錨點檢測機制和卷積投票網兩個模塊以用于評價空氣質量;文獻[7]提出了一種通過k-means維度聚類改進YOLOv3網絡的方法,應用于不同場景下共享單車運行狀態的檢測。文獻[10]提出了對Faster R-CNN的改進方法,采用深度殘差網絡(residual network50,ResNet50)對原圖逐層進行特征提取,得到最高層特征圖后,使用反池化法得到低特征圖,最后兩者融合進行邊框回歸得到結果。
上述文獻對于圖像識別算法的改進大多以提升識別精度為目標,但輸電線路巡檢現場樣本種類復雜和車載計算機計算能力有限的問題依舊存在,且目前涉及此類問題的解決辦法也存在一定局限。文獻[11]提出了在內存和算力受限的條件下,利用輕量化網絡代替YOLOv3的特征提取網絡以實現目標高效檢測。但此方法所應用的遙感目標檢測領域目標簡單單一,不同于電力設備的種類繁多、大小不一,因此該輕量化網絡實際應用于輸電線路巡檢可能導致缺陷診斷效果不佳。而文獻[12]利用k-means++算法確定先驗框,基于 YOLOv3 檢測架構構建了一種改進的輕量級網絡以進行絕緣子缺陷檢測,但是這種方法只應用于絕緣子這一種電力設備,沒有全面考慮到巡檢現場各類電力設備。
綜上,針對目前利用機器學習圖像識別算法進行電力系統巡檢存在的問題,本文提出了一種基于改進的YOLOv3框架識別輸電線路設備故障缺陷算法模型,對基于回歸的深度學習算法YOLOv3進行改進,以適應輸電線路巡檢實際應用現場。該模型對基于Darknet- 53框架的YOLOv3算法進行了改進,對YOLOv3進行了通道減少、框架瘦身的剪枝處理,并于特定卷積層后添加了SPP模塊,從而進一步優化了YOLOv3的輕量化性能,與文獻[12]輕量級算法不同之處在于改進更加簡明,對圖像預處理要求不高。輕量化處理后的該模型覆蓋輸電線路中的電力設備種類較為齊全,適用于輸電線路巡檢現場中因無人機拍攝圖片數量較少、角度偏差等原因造成的有效樣本圖片數量不足的情況,減少了對車載服務器的計算力需求,即降低了實現YOLOv3算法的硬件要求。
YOLOv3神經網絡的結構由Darknet- 53卷積神經網絡和檢測網絡兩部分組成,其中Darknet- 53網絡結構用于提取特征。圖1展示了Darknet- 53的結構,其使用了連續的3 × 3和1 × 1卷積層以及大量殘差的跳層連接,這種特征使其在精度與ResNet-152[13]接近的同時,提高了檢測速度。YOLOv3神經網絡的識別結果以識別框的形式展現,每個識別框包括3類信息,分別為識別框的位置(中心坐標(x,y)、框的高度h和寬度w)、此識別框的置信度(confidence)以及識別圖像的類別。

圖1 Darknet- 53結構Fig.1 Structure of Darknet- 53
SPP模塊利用了空間金字塔池化模型[14],將圖片從精細空間劃分到粗糙空間中,并聚集其局部特征。SPP模塊結構圖如圖2所示,本文所使用的SPP模塊包含了4個并行的內核大小分別為1×1,5×5,9×9,13×13的最大值池化(Maxpool)層,對于輸入大小為512×512的特征圖,通過SPP模塊,特征映射被轉化成了一個(169+81+25+1)×512的矩陣,輸入到后面的1×1卷積層中,擴展為一維矩陣,從而形成固定大小的特征向量輸出。

圖2 SPP模塊結構圖Fig.2 SPP module structure
卷積神經網絡的剪枝技術大致分為權重剪枝和結構化剪枝兩類。權重剪枝是指修剪不太重要的、較小的權重連接,此方法修剪權重連接后使得神經網絡體系不規則,導致難以存儲新的模型,且對硬件要求極高,故不被經常采用。結構化剪枝是指在保留規則的神經網絡體系前提下,通過稀疏訓練和結構化稀疏正則化[15]等手段刪除存有大量冗余參量、對預測結果影響小的卷積層通道,以減少迭代計算次數。出于對需要完整模型結構的考慮,本文采用的是結構化剪枝。
在無人機巡檢輸電線路的過程中,無人機所拍的圖片數據大小常常是不固定的,若如YOLOv3原網絡中的對圖片進行切割變形,很可能會丟失重要信息,影響訓練結果。針對這一問題,本文算法中所使用的YOLOv3-SPP網絡[16]在卷積計算方面對YOLOv3網絡進行了改進。此網絡在保留YOLOv3網絡基本框架的前提下,在每個檢測頭前的第5層和第6層卷積層之間集成了SPP模塊。YOLOv3-SPP網絡通過SPP模塊在同一層內獲得多尺度特征,減少了YOLOv3網絡的計算量。而針對因SPP模塊的引入而額外產生的特征通道,本文采取通道剪枝來減少和細化,具體操作將在2.2中介紹。
YOLOv3網絡屬于大型卷積神經網絡[17],在添加SPP模塊后,如圖3所示,網絡仍較為復雜,每一次迭代計算會產生幾千萬個計算權重。然而,并不是所有的卷積層通道都會投入訓練過程,所以網絡中存在許多冗余的、對短期預測結果影響非常小的卷積層通道,導致了計算效率的下降。這些冗余的通道就是導致引言中所述的輸電線路巡檢現場部分問題的重要原因。它們使網絡變得龐大復雜,對硬件性能要求隨之上升,且短期內訓練效果極差,故不適合在巡檢現場使用。

圖3 YOLOv3網絡結構Fig.3 YOLOv3 network structure
因此,本文創新性地選擇了一種結構化剪枝的方法,具體操作步驟如下。
首先,對網絡模型進行稀疏訓練,判定被剪通道的重要性。對自批標準化層(Batch Normalization,BN層)[18]中的縮放因子進行L1正則化操作,得到BN層的可訓練尺度比例因子。

(1)
式中:δ為平衡損失函數中坐標損失函數系數(coord)與分類損失函數系數(noobj)兩部分的懲罰因子;η為BN層中的可訓練尺度比例因子;Γ為BN層中可訓練尺度比例因子全集;L為損失函數[19]。
L=Lloc+Lclass+Lconfidence
(2)
式中:Lloc為坐標損失;Lclass為分類損失;Lconfidence為置信度損失。
(3)

(4)

(5)

Γ<(x)={η|η∈Γ,η (6) 式中:x為函數變量;η為BN層中的可訓練尺度比例因子;Г為BN層中可訓練尺度比例因子全集。 (7) 式中:ηth為最佳閾值;ε為一個很小的可忽略的數,本文所有的實驗使用ε=10-3。 其次,根據式(1)給出的判斷標準,確定被剪枝通道,開始剪枝。根據式(6)—(7)計算出全局閾值ηth1, 用此閾值控制剪枝過程。在算法中將該閾值設置為剪枝率,一旦通道的可訓練尺度比例因子η的大小低于此閾值,代表此比例因子對應的卷積層通道已經剪除。 最后,再根據式(6)—(7)引入一個局部安全閾值ηth2來判定是否剪枝過度,在算法中將其值設定為特定修剪層中所有值的百分位數,可訓練尺度比例因子η的大小小于該閾值時,停止剪枝,以防止過度迭代剪枝導致模型永久性損毀,并對剪枝模型的參數進行微調以確保完全剪枝。 如圖4所示,本文采用了添加SPP模塊并進行了結構化剪枝的YOLOv3模型,對輸電線路進行了缺陷圖像識別。該新模型在進行圖像識別時,圖像識別速度大大提高,能夠更加適應硬件設備等級低、計算預測時間長的輸電線路巡檢現場。 圖4 修改后的創新模型結構Fig.4 Improved new module structure 本文選取的圖片數據庫來源于江蘇省南京市某段具備無人機巡檢條件的日常巡檢拍攝圖。 本文選取的數據集分為金具、基礎、桿塔及絕緣子4個大類,其中包含32種缺陷類別,例如懸垂線夾銹蝕、U形螺栓銹蝕、防震錘銹蝕、聯板銹蝕、耐張線夾銹蝕、螺絲凸出或掉落、基礎樹木過于繁茂、鳥巢覆蓋、絕緣子斷裂等。由于需要比對樣本量少且質量不一時剪枝模型的優化性,實驗僅選取289張圖片作為訓練樣本,其中圖片大小均不同。使用LabelImg軟件對數據集進行手工標注,對每種缺陷類別進行特殊編號,例如“絕緣子斷裂”編為“05030904”,從而形成每類缺陷的標注位置坐標,并以XML文件的格式存儲到訓練集數據中。 根據上文所述的可訓練尺度比例因子公式(即式(1))與損失函數公式(即式(2)—(5))確定應剪枝通道,并根據最佳閾值公式(即式(6)—(7))選擇最佳剪枝全局閾值ηth1=0.05, 每層中所有通道的局部安全閾值ηth2=0.9, 從而確保至少10%的通道未在同一層中被修剪。 對289張訓練樣本進行訓練,在訓練過程中設定交并比(intersection-over-union,IoU)為0.4,圖像分別率為256×256,一次訓練選取的樣本數(Batch Size)為10,硬件配置如表1所示。 表1 硬件配置Tab.1 Hardware configuration 訓練過程中記錄訓練損失值以及驗證損失值,并根據迭代次數繪制其散點圖。如圖5—6所示,橫軸均表示迭代次數,縱軸分別代表訓練損失值及驗證損失值。 圖5 訓練損失值散點圖Fig.5 Scatter diagram of training loss value 圖6 驗證損失值散點圖Fig.6 Scatter diagram of testing loss value 使用相同的289張圖片組成的數據集分別對YOLOv3原模型和本文提出的創新算法模型訓練迭代10 000步,得到的結果如表2所示,實驗結果表明,本文所使用的改進后的YOLOv3剪枝模型相比YOLOv3原模型,在平均評價值幾乎不變的情況下,大幅減少了每步所需平均迭代時間。 表2 YOLOv3原模型與改進的剪枝模型效果對比表 Tab.2 Comparison between YOLOv3 original and pruning modules 步驟如下。首先對輸電線路缺陷進行特殊編號,1個編號對應1種缺陷故障,例如“絕緣子斷裂”編為“05030904”。接著,使用新采集的非訓練圖片集中的輸電線路圖片對訓練好的改進YOLOv3模型進行測試,算法輸出如圖7所示,圖片中存在的缺陷,被圖像識別算法框選出來。例如圖7中的第一張檢測圖片中存在“聯板銹蝕”缺陷,機器自動用方框選出聯板銹蝕位置,并給出對應的缺陷編號為“05031001”;再如圖中的第8張檢測圖片存在“底部草木覆蓋過密”缺陷,機器自動用方框選出桿塔底部的草木部分,并給出對應的缺陷編號“01010118”,其余檢測圖片均同理,不再贅述。 圖7 算法輸出圖片結果Fig.7 Detection results of defective electrical equipment 本文使用漏檢率、誤檢率及AP值3項指標進行權重計算后的結果作為評價值。具體算法如下。 評價值=(1-漏檢率)×30%+ (1-誤檢率)×20%+KAP×50% (8) 式中:X為漏檢率;Y為誤檢率;KAP為平均精度。 (9) (10) 式中:T為驗證圖片中標注為目標類設備總個數;M1為廠家實際檢測出來且正確的目標類設備總個數;M2為廠家實際檢測出來的目標類設備總個數。 (11) (12) (13) 式中:計算KAP時選取IoU值為0.5;PT為IoU大于0.5的檢測框數量;PF為IoU不大于0.5的檢測框數量;NF為沒有檢測到的地面實況(ground truth)的數量。 然后,選取另外參照計算機作為訓練載體,硬件配置見表3,其硬件水平不如原計算機。該計算機迭代10 000步的結果如表4所示。 表3 參照計算機的硬件配置Tab.3 Hardware configuration of reference computer 表4 硬件設備及使用模型對比表Tab.4 Comparison of hardware device 對比表2和表4的數據可以清楚看到,當硬件設備相同時,剪枝模型沒有受到圖片量大幅減少的影響,其平均評價值雖略低于原模型(幾乎相同),但其迭代時間平均每步減少0.8 s左右,每進行一次10 000次迭代的訓練可節約近3 h,這有效地解決了輸電線路巡檢現場算法訓練樣本數量不足的問題,同時彌補了輸電線路巡檢現場無法對新拍圖片進行即時訓練的缺陷;此外,當迭代次數相同時,剪枝模型對硬件設備的依賴性遠小于原模型,剪枝模型的平均迭代時間差比原模型的平均迭代時間差小接近3 s,證明其大大降低了對硬件設備的要求。 本文提出了一種基于SPP模塊的剪枝YOLOv3模型的輸電線路缺陷識別算法。該方法基于傳統YOLOv3框架,卷積層間添加了SPP模塊,并且對YOLOv3框架進行了剪枝處理。最后針對江蘇省南京市某段線路的無人機日常現場巡檢圖片庫進行了訓練及測試,驗證了算法的工程可行性。在目前輸電線路巡檢照片有效樣本數量有限的實際情況下,仿真結果驗證了改進的算法在有效訓練樣本數量不足情況下的可行性。并且,該算法較傳統YOLOv3算法對硬件設備要求不高,一定程度上減輕了圖像識別算法對GPU依賴程度高的情況。然而,對于較小的金具、基礎附近的雜物,此模型的評價值依舊不高。在此方面,可以繼續改善算法針對此情況的精度,同時將開發可視化WEB界面,用于訓練、識別、查看和分析結果。
3 實驗與結果
3.1 數據集選取及其標注
3.2 剪枝處理
3.3 訓練模型與測試結果







4 結論