盧錦玲,黃鼎越,艾 洲
(1. 華北電力大學 電力工程系,河北 保定 071003;2. 廣西電網(wǎng)有限責任公司 信息中心,廣西 南寧 530023)
絕緣子是高壓輸電線路上的重要元件,其運維質(zhì)量直接關(guān)系到線路運行的安全穩(wěn)定[1,2]。
隨著電網(wǎng)規(guī)模持續(xù)擴大,無人機巡檢正逐步代替耗時低效的傳統(tǒng)人工巡檢[3]。
巡線員手動遙控無人機進行航拍時,往往會受到外界因素(如噪聲、電磁干擾、光線不均等)的影響,導致航拍圖像成像退化。同時,航拍圖像中存在復(fù)雜的非檢測目標,比如農(nóng)田、森林、多回路輸電線路上使用的輸電線路小部件等。以上這些因素會對航拍圖像的絕緣子缺陷識別造成嚴重干擾[4]。因此,復(fù)雜背景下的航拍圖像絕緣子自爆缺陷識別成為重點研究的問題[5]。
對于絕緣子的缺陷識別,傳統(tǒng)方式是先定位、后識別,其主要步驟為:首先獲取絕緣子輪廓,然后按照人工設(shè)定的判斷標準來判定絕緣子是否存在缺陷,最后判定缺陷類型。
在利用傳統(tǒng)數(shù)字圖像處理技術(shù)對具有復(fù)雜背景的絕緣子航拍紅外圖像進行檢測的研究中,文獻[6]采用了Otsu檢測算法并獲得了預(yù)期的結(jié)果,其缺點是計算時間較長。
文獻[7]采用固定寬度且互為正交方向的梯度算子對航拍圖像上的導線進行檢測,并且根據(jù)格式塔感知理論對檢測出的導線進行了篩選、分類和擬合,同時對輸電線路上的絕緣子進行了檢測;但文中算法未考慮航拍傾斜角度、軌跡因素對檢測結(jié)果準確率的干擾。
文獻[8]對導線上懸掛的異物進行識別并取得較好的實驗效果,具體步驟是:首先運用霍夫變換構(gòu)造的梯度累加器進行計數(shù),然后利用圖像分割技術(shù)實現(xiàn)輸電線上的異物定位和分類。但是,文中忽視了線路上的金具對實驗結(jié)果的干擾。
文獻[9]提出了“偏離度”的概念,并采用霍夫變換的方法進行了導線斷股的檢測。該算法的缺點是計算時間較長。
文獻[10]通過訓練 SVM(支持向量機)決策樹分類方法來提取具有固定幾何形狀的線路金具(如絕緣子)的特征。文中算法可以對線路金具進行粗略的識別。該算法對拍攝圖像的無人機飛行軌跡有較嚴格的要求,且對小目標的識別效果不佳。
上述文獻各種算法的基本思路是:通過事先提出的幾個先驗假設(shè)條件來簡化絕緣子缺陷檢測模型,然后基于絕緣子的幾何形狀特征進行圖像處理。然而在實際檢測過程中,絕緣子的形狀、外觀和尺寸不盡相同,加之圖像背景復(fù)雜,這就造成絕緣子漏檢的情況常有發(fā)生。
在絕緣子自爆缺陷識別領(lǐng)域中,相比于傳統(tǒng)數(shù)字圖像識別算法,有著更強泛化性和可以實現(xiàn)端到端學習的深度學習算法得到了廣泛應(yīng)用。按處理的步驟,可將其分成 2類,即雙階段(two-stage)方法和單階段(one-stage)方法。
雙階段方法的步驟是:首先對絕緣子所在區(qū)域進行定位;然后對該區(qū)域進行進一步處理,最終實現(xiàn)對航拍圖上絕緣子自爆情況的檢測。
文獻[11]以改進的卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)級聯(lián)架構(gòu)來實現(xiàn)絕緣子的定位,獲得了較高的識別準確率;然而,該方法對目標的識別速度有限,并不能達到實時跟隨目標并檢測的效果,因此不適合將該模型部署在機載輸電線路故障檢測裝置上進行輸電線路巡檢。
文獻[12]利用輸電線路巡檢圖像數(shù)據(jù),集中學習各種絕緣子特征;然后采用Faster R-CNN算法針對旋轉(zhuǎn)后的航拍圖片進行絕緣子缺陷識別;該方法的缺點是檢測速度慢。
文獻[13]將改進后的Faster R-CNN算法應(yīng)用于不同尺度航拍圖像的絕緣子輪廓特征融合;同時,改進了最大池化層結(jié)構(gòu),提升了圖像中如絕緣子等的電力小部件檢測出的坐標精度。
單階段的方法能夠直接對航拍圖上絕緣子自爆情況進行檢測。
與Faster R-CNN相比,文獻[14]在保證精度的前提下,改進了YOLO (you only look once)算法,使得推理時間縮短;但是算法對如絕緣子等的電力小部件識別率有限。
文獻[15]首先采用聚類算法對訓練數(shù)據(jù)進行處理,得到絕緣子數(shù)據(jù)集;然后通過改進后的SSD(single shot multibox detector)算法實現(xiàn)特征融合,實現(xiàn)了航拍圖片上的絕緣子缺陷識別。由于算法使用的迭代次數(shù)過多,導致其運算速度受到影響。
文獻[16]通過給YOLO算法增加SPP模塊的方法來提高絕緣子識別的精確度,并完成了快速定位。
文獻[17]通過改進Tiny-YOLOv3目標檢測算法使得神經(jīng)網(wǎng)絡(luò)模型輕量化,同時彌補了檢測精度不夠高的缺陷;但是算法對于小目標物體檢測效果不佳,甚至會出現(xiàn)漏檢的情況。
為實現(xiàn)在復(fù)雜多變圖像背景條件下的絕緣子缺陷識別,本文將缺陷識別問題轉(zhuǎn)換成二級目標檢測問題,提出了一種基于級聯(lián)卷積神經(jīng)網(wǎng)絡(luò)的缺陷識別方法。檢測過程分為兩個步驟:(1)使用改進后YOLOV3目標檢測算法定位絕緣子。(2)將定位到的絕緣子作為第二階段檢測網(wǎng)絡(luò)的輸入,從而檢測出絕緣子中存在的所有缺陷。
Faster R-CNN算法實現(xiàn)步驟為:(1)使用RPN(region proposal network)網(wǎng)絡(luò)生成候選區(qū)域。(2)使用CNN進行特征提取,并進行分類和回歸邊界框。在所產(chǎn)生的候選區(qū)域,由于提議網(wǎng)絡(luò)和檢測網(wǎng)絡(luò)之間不共享卷積參數(shù),所以實時目標檢測難以實現(xiàn)。
針對 two-stage目標檢測算法普遍存在檢測速度慢的缺陷,文獻[18]為了能提高目標檢測的速度,提出了 YOLO和 SSD系列的 one-stage目標檢測框架。該類算法能夠在一個步驟內(nèi)完成目標的分類和定位,不需要單獨的候選區(qū)域選擇網(wǎng)絡(luò)。
文獻[19]提出了YOLOV1的算法。該算法利用特征提取了網(wǎng)絡(luò)的最后一層特征圖,進而完成了對目標所屬的類別和回歸邊界框的分類。由于YOLOV1僅在一個尺度的特征圖上進行預(yù)測,且一個網(wǎng)絡(luò)中只預(yù)測了2個邊界框,因此其對小目標物體和相互靠近物體的檢測效果不佳。
文獻[20]借鑒Faster- RCNN設(shè)定Anchor Box(先驗框)的方法,通過預(yù)測先驗框的偏移量并結(jié)合全卷積網(wǎng)絡(luò)來降低網(wǎng)絡(luò)訓練的難度。
隨著YOLO系列的不斷迭代,特征提取網(wǎng)絡(luò)的能力也在不斷增強。YOLOV2克服了YOLOV1召回率低和定位錯誤率高的缺點,提高了物體分類的精度。
相比于YOLOV2,在網(wǎng)絡(luò)結(jié)構(gòu)方面,YOLOV3結(jié)合了GoogleNet的多分支卷積和ResNet的直連方式,進一步提高了準確率。文獻[21]將 CIoU(comp- lete intersection over union,重疊度)作為先驗框選取的依據(jù),在運用LOSS損失函數(shù)后,不僅加快了Anchor Box回歸的速率,而且提高了定位進度。通過這種方法得到的預(yù)測結(jié)果更加符合真實情況。
在 YOLO系列的目標檢測算法中,Anchor Box的尺寸是手動選擇的;因此Anchor Box的尺寸與目標物體的尺寸并不相符。為優(yōu)化訓練目標邊界框回歸的速度,Anchor Box的尺寸應(yīng)該盡量接近所檢測的目標物體的尺寸。
本文中,為了獲取k(k取值為6)個Anchor Box比較好的聚類中心:在每個尺度的特征圖上預(yù)設(shè)3種大小的Anchor Box,在兩個尺寸上進行回歸,并且使用歐幾里得距離來度量數(shù)據(jù)對象之間的距離。
如果通過Anchor(錨)來計算歐幾里得距離,則在計算較大的 Anchor Box時會產(chǎn)生較大的誤差;因此,使用CIoU來計算數(shù)據(jù)對象之間的距離。
CIoU是一種非常適用于檢測特定數(shù)據(jù)集中對應(yīng)對象準確度的標準,其計算如下所示:
式中:IoU為真實框A與預(yù)測框B的交并比,是目標檢測中最常用的指標。
式中:權(quán)重函數(shù)α表示用于平衡比例的參數(shù);橫縱比υ表示預(yù)測框和真實框的寬和高之間的比例相似性;ρ2(b,bgt)表示預(yù)測框與真實框中心點的歐式距離;c表示能同時包括預(yù)測框與真實框最小閉包區(qū)間對角線的距離。
從CIoU邊界框損失函數(shù)可以看出,它包含了預(yù)測框和真實框重疊區(qū)域面積的IoU損失、預(yù)測框和真實框中心點之間歸一化后的距離損失、預(yù)測框和真實框的寬和高的縱橫比損失3個部分。通過迭代,CIoU邊界框損失函數(shù)可以將預(yù)測框不斷向真實框移動,還盡可能地保證了預(yù)測框和真實框的寬ω和高h的縱橫比更為接近,從而加快了預(yù)測框的回歸收斂速度。需要說明的是,當通過長寬歸一化處理后的值處于區(qū)間[0,1]時,ω2+h2常常很小,因此需將其替換為1。
因此,相對于其他損失函數(shù)而言,CIoU是一個非常好的距離度量指標。
在網(wǎng)絡(luò)層數(shù)較多的神經(jīng)網(wǎng)絡(luò)訓練過程中,為了預(yù)防梯度爆炸和梯度消失情況的發(fā)生,需要人為選擇參數(shù)初始值、Drop out比例、學習率和L2正則化中的權(quán)重衰減系數(shù)等一系列超參數(shù),以克服訓練神經(jīng)網(wǎng)絡(luò)時收斂速度慢的問題。
由于每一次超參數(shù)的更改都意味著需要花費大量的時間去重新訓練網(wǎng)絡(luò)模型,所以選擇一系列合適的參數(shù)對訓練出好的網(wǎng)絡(luò)模型至關(guān)重要。
BN(Batch Normalization,批歸一化):將神經(jīng)網(wǎng)絡(luò)中每層的神經(jīng)元分為一組,將每一組內(nèi)的輸入值通過標準化映射,獲取輸出值的標準正態(tài)分布。該步驟有防止梯度爆炸、梯度消失和加速網(wǎng)絡(luò)收斂的作用,可使神經(jīng)網(wǎng)絡(luò)模型訓練更加容易和穩(wěn)定,其算法步驟如下。
輸入:批處理輸入x:B={xi,…,m}。
輸出:規(guī)范化后的網(wǎng)絡(luò)響應(yīng){yi=BNγ,β(xi)}。
式中:γ是尺度因子;β是平移因子。
公式(10)計算了每一組數(shù)據(jù)卷積計算結(jié)果的均值。公式(11)計算了每一組數(shù)據(jù)卷積計算結(jié)果的方差。公式(12)為利用上述 2步結(jié)果對該組內(nèi)訓練數(shù)據(jù)進行的歸一化操作。
公式(13)為尺度變換和偏移操作:通過線性變換,先將xi乘以γ來調(diào)整數(shù)值大小,然后加上β來增加偏移得到y(tǒng)i。
由于使用批歸一化后的xi大致服從正態(tài)分布,所以會影響神經(jīng)網(wǎng)絡(luò)的特征表達能力。
深度可分離卷積由 Pointwise(PW)卷積與Depthwise(DW)卷積組成,其組成結(jié)構(gòu)如圖1所示。
圖1 深度可分離卷積流程圖Fig. 1 The process diagram of depthwise separable convolution
為了減少計算量,運用一種輕量級的深層神經(jīng)網(wǎng)絡(luò)MobileNet的計算方式。
在常規(guī)的卷積操作中,卷積核的數(shù)量與上一層特征圖的數(shù)量相同,所以卷積操作無法擴展特征圖的維度,未能有效地運用不同通道在相同空間位置上的圖像特征信息;因此,利用PW卷積將特征圖組合成新的特征圖。
PW卷積的運算類似于常規(guī)卷積運算。卷積核大小為1× 1×M,M為上一層特征圖的維數(shù)。PW卷積運算在深度方向上將上一層的特征圖進行加權(quán)求和,并且生成新的特征圖;獲取的輸出特征圖個數(shù)等于本層卷積核的個數(shù)。
設(shè)原圖大小為DF×DF,維數(shù)為M,卷機核大小為DK×DK,通道數(shù)位N。
于是,普通卷積運算的計算量為:
深度可分離卷積的計算量為:
深度可分離卷積的計算量與普通卷積的計算量的比值為:
可以看出,將傳統(tǒng)卷積轉(zhuǎn)變?yōu)樯疃染矸e和逐點卷積2個部分,能夠有效減少計算量。
對于使用該方法帶來的“隨著卷積層數(shù)增加而出現(xiàn)梯度消失”問題,可采用殘差結(jié)構(gòu)解決。
普通的殘差結(jié)構(gòu)使用 1×1的卷積運算將高維空間映射到低維空間。該操作會壓縮特征圖,損害特征表達。因此,在特征提取過程中,采用倒殘差模塊:先通過1×1卷積將低維空間映射到高維空間,即擴張通道數(shù);然后用3×3的DW卷積提取高維空間特征;最后通過1×1的PW卷積層將深度卷積結(jié)果映射到新的通道空間。
本文中使用的倒殘差模塊的內(nèi)部網(wǎng)絡(luò)機構(gòu),如圖2所示。圖2中,Leaky ReLU為本文中使用的激活函數(shù)。模塊的工作原理如圖3所示。
圖2 倒殘差模塊網(wǎng)絡(luò)內(nèi)部結(jié)構(gòu)Fig. 2 The network internal structure ofinverted residual block
圖3 深度可分離卷積運算流程圖Fig. 3 The process diagram of depth separable convolution calculation
RFB模塊的設(shè)計理念是受人類視覺感受野結(jié)構(gòu)啟發(fā)的結(jié)果。RFB結(jié)合了多分路卷積(Inception)和空洞卷積的思想,加強了其在使用輕量級主干網(wǎng)絡(luò)時對特征的提取能力。
根據(jù)感受野在CNN中的定義,在運用神經(jīng)網(wǎng)絡(luò)對同一個特征圖進行卷積的效果進行比較時,人們發(fā)現(xiàn):采用不同大小的卷積核比采用相同大小的卷積核進行特征提取的效果更好。
RFB采用多分支結(jié)構(gòu),在每個分支中分別采用不同大小的卷積核。在每個分支中,分別采用的瓶頸(Bottleneck)結(jié)構(gòu)可以有效減少訓練參數(shù),從而降低網(wǎng)絡(luò)訓練的復(fù)雜度。
此外,RFB模塊還運用了 ResNet中的直連(shortcut)結(jié)構(gòu)。這是因為,雖然網(wǎng)絡(luò)的深度對網(wǎng)絡(luò)的識別效果影響很大,但單純增加網(wǎng)絡(luò)深度往往并不能提高網(wǎng)絡(luò)的識別能力,甚至會因梯度的發(fā)散而損害網(wǎng)絡(luò)模型的效果。直連結(jié)構(gòu)能很好地解決這一問題。
在本文RFB模塊中,為了減少網(wǎng)絡(luò)的參數(shù)量,在每個分支中使用1×1的卷積核對高維特征圖進行降維;用兩個3×3的卷積層代替5×5的卷積層;使用連續(xù)的1×7和7×1的非對稱卷積的方式代替7×7的卷積層。
RFB模塊的結(jié)構(gòu)如圖4所示。本文在模塊中的每個分支上分別使用了膨脹系數(shù)為1、3、5、7的空洞卷機。
圖4 RFB模塊結(jié)構(gòu)圖Fig. 4 The structure diagram of RFB block
在每個分支上加一層空洞卷積??斩淳矸e實現(xiàn)了在不增加參數(shù)的情況下提供更大的感受野。對于分辨率較高的圖像,相鄰像素間的冗余信息相對較多,可以利用空洞卷積進行優(yōu)化。
空洞卷積原理:在原始卷積的基礎(chǔ)上增加一個參數(shù)——空洞率,記為r;通過此參數(shù)控制卷積核擴張的程度,并將原卷積核中未被占用的區(qū)域填充0。
空洞卷積核的有效高和寬為如公式(17)和(18)所示:
式中:fh表示原始卷積核的高;fw表示原始卷積核的寬。
具體而言,卷積核在進行一般卷積運算時,與特征圖的相鄰像素點做乘法運算,而空洞卷積運算允許卷積核與固定間隔r的像素點做乘法運算;于是在不增加額外運算量的同時,還增大感受野。
通過 RFB模塊的實驗發(fā)現(xiàn),對比膨脹系數(shù)為1(普通卷積)和2的空洞卷積操作(如圖5所示),使用 RFB模塊明顯效果更好,執(zhí)行的速度也很快。
圖5 空洞卷積Fig. 5 Dilated convolution
本文構(gòu)造的特征提取網(wǎng)絡(luò)整體結(jié)構(gòu),如圖6所示。在圖6中,Conv3為大小為3×3的卷積核,Conv1為大小為1×1的卷積核。ARB為使用深度可分離卷積的倒殘差模塊:使用步長為2的ARB代替了最大池化層來進行特征的下采樣。通過在13×13的特征層中進行上采樣,將特征圖放大到26×26,并與前層的大小為 26×26的特征圖進行疊加,最終在13×13和13×13這2個尺度上進行預(yù)測。
圖6 特征提取網(wǎng)絡(luò)整體結(jié)構(gòu)Fig. 6 The overall structure of feature extraction network
將絕緣子缺陷檢測問題轉(zhuǎn)換成兩個級聯(lián)的目標檢測問題。主要步驟為:首先,使用目標檢測方法來定位絕緣子位置;然后,再次使用目標檢測方法來定位輸電線路上存在缺陷絕緣子的位置。
級聯(lián)卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),如圖7所示。
圖7 級聯(lián)網(wǎng)絡(luò)結(jié)構(gòu)Fig. 7 The structure of cascaded CNN
實驗計算的硬件配置:Intel(R)Core(TM)i9-9880H,主頻為4.0 GHz,內(nèi)存為32 GB;顯卡芯片為NVIDIA GeForce GTX 1650 MAX-Q,顯存為4 GB;GPU加速庫為CUDA10.1和CUDNN7.6.5。
實驗計算的軟件配置:深度學習框架為pytorch,編程語言為Python,操作系統(tǒng)為Ubuntu 16.04 LTS。
本文使用的數(shù)據(jù)集包括:有自爆缺陷的絕緣子圖片247張,正常的絕緣子圖片601張。
由于訓練樣本的大小有限,因此使用數(shù)據(jù)擴增的方式避免模型訓練時的過度擬合。
訓練方法:隨機抽取上述數(shù)據(jù)集中80%的圖片作為訓練集,其余20%作為測試集。訓練時,batch size為16。訓練優(yōu)化器使用adam優(yōu)化算法。學習率為0.001,權(quán)重衰減系數(shù)為0.0005,動量為0.9。
數(shù)據(jù)樣本準備過程如圖8所示。
圖8 數(shù)據(jù)樣本準備過程Fig. 8 The process of data sample preparation
以精度(Precision,以下簡稱 P)和召回率(Recall,以下簡稱R)分別為垂直軸和水平軸坐標,通過為不同的閾值選擇相應(yīng)的精度和召回率來繪制精度-召回率曲線。
平均精度(AP)的值為精度-召回率曲線和坐標軸所包圍的面積。mAP是多個驗證集的平均AP,是用作衡量目標檢測中檢測精度的指標。
精度的計算:
式中:P為精度;TP是把陽性樣本檢測出為陽性的數(shù)量;FP把陰性樣本檢測出為陽性的數(shù)量。
召回率的計算:
式中:R召回率;FN為把陽性樣本檢測出為陰性的數(shù)量。
通過上述公式,可以繪制精度-召回率曲線來計算單個類別的 AP值,并且可以計算所有類別的AP值的平均值以獲得整個模型的mAP值。
對級聯(lián)YOLOV3算法、有無RFB模塊的改進算法的計算精度進行比較,結(jié)果如圖9所示。
圖9 3種算法的精度-召回率曲線比較結(jié)果Fig. 9 The comparison result of precision-recall curves of three algorithms
在訓練模型時,改進后模型使用的損失函數(shù)與YOLOV3相同,主要有:預(yù)測目標的位置、目標的大小、目標類別以及置信度。
表1列出了Tiny-YOLOV3、YOLOV3及本文改進的網(wǎng)絡(luò)模型在 VOC2007數(shù)據(jù)集上的平均準確度及處理一張圖片所需要的計算量。
表1 不同目標檢測算法處理VOC2007數(shù)據(jù)集性能對比Tab. 1 Performance comparison of different target detection algorithms for VOC2007 dataset
從表1中的數(shù)據(jù)上可以看出:與Tiny-YOLOV3、YOLOV3算法相比,本文改進后的網(wǎng)絡(luò)模型在準確度方面均有明顯的提升;在模型尺寸處理方面,本文模型尺寸有所減少,同時在計算量方面占優(yōu)勢。
評估檢測速度的常用指標是每秒幀數(shù)(FPS),即每秒可以處理的圖片數(shù)。
表2給出了各算法檢測速度對比結(jié)果。由表2可以看出,對不同的檢測算法采用級聯(lián)架構(gòu)后,YOLOV3的FPS為僅為8.3,檢測速度不夠理想。與之相比,本文所提出的改進算法在檢測速度與mAP方面性能優(yōu)勢明顯。與不使用RFB模塊的情況相比,在使用RFB模塊后,本文改進算法的FPS提升了8.3,mAP上升了5.6%;這表明該算法在一定程度上減少了對特征提取網(wǎng)絡(luò)進行輕量化改進后的性能損失。
表2 3種不同絕緣子缺陷檢測算法性能對比Tab. 2 Performance comparison of three different insulator defect detection algorithms
取背景分別為農(nóng)田和森林的圖像樣本進行實驗。
樣本圖的檢測結(jié)果,如圖10所示。改進后的算法可以定位出絕緣子在航拍圖像上的準確位置,而且準確地識別出圖像的絕緣子。
圖10 實驗樣本Fig. 10 Test samples
圖11為改進后的算法對絕緣子缺陷檢測的結(jié)果。從圖11可以看出,即使在復(fù)雜的航拍圖像的背景條件下,改進后的算法也能捕捉到圖像上的絕緣子位置,并且對絕緣子發(fā)生自爆的位置進行精確定位。
圖11 絕緣子缺陷識別結(jié)果圖Fig. 11 The diagram of insulator defect detection results
本文針對航拍圖像中輸電線路絕緣子缺陷檢測速度慢且易出現(xiàn)誤判的問題,提出了一種基于級聯(lián)卷積神經(jīng)網(wǎng)絡(luò)的目標檢測算法來判斷絕緣子的運行狀態(tài),得到以下結(jié)論。
(1)通過深度可分離卷積和減少卷積層的方式對YOLOV3目標檢測算法進行了輕量化改進,模型尺寸和計算量方面都占明顯優(yōu)勢,絕緣子的檢測速度相較于傳統(tǒng)的YOLOV3算法有了明顯的提高。
(2)采用級聯(lián)結(jié)構(gòu)之后,通過使用倒殘差結(jié)構(gòu)和RFB模塊設(shè)計,使得算法在檢測速度與精度方面有較好的優(yōu)勢:不僅在檢測速度達到了高實時性,而且對絕緣子自爆缺陷識別的平均準確度比YOLOV3算法提升了6.2%。