王健 王凱 劉剛 周文青 周子凱
(華南理工大學 電力學院,廣東 廣州 510640)
為了確保電力系統(tǒng)穩(wěn)定運行,巡檢人員需定期對架空輸電線路進行巡視。由于架空輸電線路分布廣,所處地形復(fù)雜多變等因素,傳統(tǒng)人工巡檢方式受到了極大的限制[1- 2]。
針對此問題,無人機智能巡檢獲得了廣泛的應(yīng)用,無人機攜帶拍攝裝置沿著輸電線路走廊飛行,近距離拍攝電力部件,這種方式雖然在某種程度上提高了巡檢效率,但其產(chǎn)生大量的圖像仍需借助人工分析以獲取相應(yīng)的缺陷信息。人工分析費時費力,還容易出現(xiàn)漏檢、誤檢情況。針對此問題,有必要研究一種智能化的缺陷檢測技術(shù)[3- 5]。
目前,架空輸電線路的缺陷檢測主要分為基于人工特征設(shè)計的檢測方法和基于深度學習模型的檢測方法。前者集中于手工特征的設(shè)計,如文獻[6]針對高壓絕緣子裂紋缺陷,通過第二代小波變換提取圖像局部突變特征,以實現(xiàn)局部裂紋缺陷檢測;文獻[7]使用離散正交S變換提取絕緣子特征,并借助支持向量機實現(xiàn)了絕緣子的定位;文獻[8]借助核主元分析法融合不同顏色空間的顏色特征,完成了絕緣子污穢等級的劃分。手工設(shè)計特征不僅繁瑣,還存在弱魯棒性的問題[9],無法實現(xiàn)端對端的缺陷檢測。于是有人提出了基于深度學習算法的缺陷檢測,如文獻[10]采用深層卷積神經(jīng)網(wǎng)絡(luò)自動提取圖像樣本特征,并對網(wǎng)絡(luò)進行改進,實現(xiàn)了絕緣子自爆缺陷的識別;文獻[11- 12]對比分析了DPM、SPPnet、Faster R-CNN等深度學習算法在絕緣子、防震錘等電力部件上的識別性能。
這些方法雖然能夠較為精確地識別研究對象,但仍然存在以下不足:①未考慮模糊圖像識別精度低問題,無人機現(xiàn)場采集圖像時由于自身的飛行和抖動使得相當一部分圖像清晰度下降,增加了檢測難度;②以上研究大多集中于絕緣子、防震錘等體積較大的電力部件,而對于銷釘、螺絲、螺栓這種令巡檢人員十分棘手的小型電力部件的研究相對匱乏。
根據(jù)以上問題,文中針對銷釘常見缺陷,借助深度學習算法RetinaNet實現(xiàn)銷釘缺陷的自動識別。對于無人機現(xiàn)場采集到的模糊圖像識別精度低問題,文中通過生成對抗網(wǎng)絡(luò)(GAN)的生成器和鑒別器之間的博弈來改善此類圖像質(zhì)量,提高圖像的清晰度,增強局部紋理等細節(jié)信息;由于用于GAN訓(xùn)練的模糊-清晰圖像對在現(xiàn)實情況下是很難獲得的,為此,文中對馬爾可夫過程生成的軌跡矢量進行子像素插值形成模糊核,隨后對無人機采集得到的清晰圖像和生成的模糊核作卷積運算,以形成模糊-清晰圖像對。最后通過實驗分析文中所提出的方法的識別性能。
GAN主要包含生成器和鑒別器[13]。其中,生成器接收噪聲生成樣本,其目標是讓鑒別器無法區(qū)分真實數(shù)據(jù)和生成的數(shù)據(jù),目標函數(shù)如式(1)所示;鑒別器用于接受真實樣本和生成樣本,并試圖區(qū)分它們,其目標函數(shù)如式(2)所示。兩者互相博弈以獲取最優(yōu)輸出。
(1)
(2)
式中,D(x)為鑒別器的輸出結(jié)果,Pr和Pg分別為真實數(shù)據(jù)和生成數(shù)據(jù)的分布情況。
損失函數(shù)作為GAN不可或缺的一部分,直接決定了網(wǎng)絡(luò)性能的好壞,根據(jù)GAN架構(gòu)將損失函數(shù)表示為對抗損失和內(nèi)容損失之和:
(3)
在對抗損失函數(shù)選擇的問題上,為了提高模型訓(xùn)練的穩(wěn)定性和模型架構(gòu)選擇的魯棒性[14],生成高質(zhì)量的圖像,文中使用WGAN-GP作為最終的優(yōu)化目標函數(shù),具體損失計算式如下:
(4)
式中,DθD(GθG(IB))表示生成網(wǎng)絡(luò)輸出的重構(gòu)圖像GθG(IB)被預(yù)測為真實圖像的概率,IB為生成的圖像。
內(nèi)容損失大都以均方誤差(MSE)作為優(yōu)化的目標函數(shù),這樣生成的圖像雖然有較高的峰值信噪比,但往往會丟失高頻細節(jié)信息,導(dǎo)致模糊偽像的產(chǎn)生,使得圖像趨于平滑。于是,文中采用感知損失(PL)來替代均方誤差[15- 16]。PL基于生成圖像卷積特征圖和目標圖像卷積特征圖之間的差異,使生成圖像和目標圖像在語義和風格上更加接近,其定義如下:
(5)
式中,φi,j、Wi,j和Hi,j分別是VGG-19網(wǎng)絡(luò)第i個最大池化層之前通過第j個卷積獲得的特征映射及其特征圖的寬度和高度,IS為輸入圖像。
為了確保生成器能夠處理模糊圖像,輸出所需的清晰數(shù)據(jù),文中將噪聲輸入改為模糊圖像輸入,構(gòu)建了如圖1所示的生成器網(wǎng)絡(luò)架構(gòu)。生成器架構(gòu)包含3個前向卷積單元、9個殘差單元和2個反卷積單元。每個卷積單元由卷積層、實例歸一化層和激活層組成,卷積層中卷積核大小依次為7×7、7×7和3×3。為了進一步加快網(wǎng)絡(luò)的訓(xùn)練速率,增加網(wǎng)絡(luò)的非線性擬合能力,卷積層后緊接著使用了歸一化層,并且在激活層使用了線性整流函數(shù)(ReLU)??紤]到淺層網(wǎng)絡(luò)無法提升網(wǎng)絡(luò)識別效果,而常規(guī)網(wǎng)絡(luò)的堆疊又會使得梯度消失現(xiàn)象更加明顯[17],于是文中使用殘差塊提取更加抽象的特征,每個殘差塊由兩個卷積層、實例歸一化和一個激活層組成。為了獲取重構(gòu)的清晰圖像,網(wǎng)絡(luò)最后部分采用了反卷積結(jié)構(gòu),通過獲取的特征圖重構(gòu)圖像。
鑒別器接收真實數(shù)據(jù)和生成的數(shù)據(jù),并對兩者進行區(qū)分,相當于二分類器,其網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示[18]。結(jié)構(gòu)中包含4個卷積層,卷積核大小依次采用3×3、3×3、3×3、1×1,卷積層后緊跟激活層,為了提高神經(jīng)網(wǎng)絡(luò)模型的表達能力,激活函數(shù)采用帶泄露線性整流函數(shù)(LReLU),其表達式如下:
t=max(0,b)+amin(0,b)
(6)
式中,a是一個常數(shù),文中取值為0.2。
圖1 生成器結(jié)構(gòu)Fig.1 Structure of generator
圖2 鑒別器結(jié)構(gòu)Fig.2 Structure of discriminator
由于鑒別器用于二分類任務(wù),輸出層使用Sigmoid函數(shù)進行數(shù)值的轉(zhuǎn)化。
深度學習算法主要分為兩大類,分別是以Faster R-CNN為代表的“雙階段算法”和以SSD、YOLO為代表的“單階段算法”,后者檢測速度往往優(yōu)于前者,但檢測精度偏低。為了進一步提高“單階段算法”的識別精度,文獻[19]在損失函數(shù)方面進行了改進,并構(gòu)建了以特征金字塔網(wǎng)絡(luò)(FPN)為主要框架的RetinaNet,其結(jié)構(gòu)如圖3所示。由圖可知,RetinaNet是由FPN和特定任務(wù)的網(wǎng)絡(luò)組成的“單階段檢測器”。其中,F(xiàn)PN主要負責計算輸入圖像的卷積特征圖,并實現(xiàn)特征圖的多尺度融合,具體來說就是將低分辨率、高語義信息的頂層特征和高分辨率、缺少語義信息的低層特征進行自上而下、自下而上的橫向連接;特定任務(wù)的網(wǎng)絡(luò)則分別在主干網(wǎng)絡(luò)的輸出上執(zhí)行卷積對象分類任務(wù)和邊框回歸任務(wù)。
圖3 智能檢測算法RetinaNet的結(jié)構(gòu)Fig.3 Structure of intelligent detection algorithm RetinaNet
“單階段”目標檢測算法的低精度歸因于候選區(qū)域的“類別不平衡”,對于部分數(shù)據(jù),由于待檢測目標在整幅圖像中占據(jù)不大的比例,而背景所占的比例遠遠超過了前景物占據(jù)的比例,這樣使得包含背景的候選區(qū)域占據(jù)主導(dǎo)地位。針對此問題,RetinaNet采用如下的分類損失函數(shù):
FL(pt)=-αt(1-pt)γlnpt
(7)
(8)
式中:αt為平衡因子;γ為起調(diào)節(jié)作用的參數(shù),γ∈[0,5];p∈[0,1],表示模型將類別預(yù)測為正類(c=1)的概率。
由式(8)損失函數(shù)的特性可知,預(yù)測概率值pt越高,損失值會越低,反之亦然,如此便起到了對占據(jù)主導(dǎo)地位的包含背景的候選區(qū)域的反饋抑制作用??紤]到RetinaNet在檢測精度方面均優(yōu)于雙階段檢測器Faster R-CNN和單階段檢測器SSD、YOLOv1,因此,文中選取RetinaNet作為最終的缺陷識別框架[19]。
在電力系統(tǒng)中,金具起著支持、固定和接續(xù)導(dǎo)線以及將導(dǎo)線和絕緣子連接成串的作用。然而,由于多數(shù)電力金具長期工作于戶外,不僅要承受外部惡劣環(huán)境(如雷雨的侵蝕、風力的作用等)帶來的不利影響,還要承受外部機械負荷張力和電力系統(tǒng)內(nèi)部的電力負荷的作用,從而導(dǎo)致金具上的部分銷釘出現(xiàn)缺失現(xiàn)象。銷釘?shù)拈L期缺失,會降低金具與電力部件連接的緊密程度,從而影響電網(wǎng)的穩(wěn)定運行。圖4列出了無人機巡檢航拍圖中缺失狀態(tài)和正常狀態(tài)下的銷釘示例圖。
無人機現(xiàn)場采集圖像時,由于無法保證與采集對象相對靜止,會造成部分圖像模糊化。另外,外界的風力、光照、濕度等不可控因素會進一步加劇圖像模糊程度。如果直接對這類模糊圖像進行識別,往往無法保證較高的識別率。針對此問題,文中提出了一種基于GAN的無人機巡檢航拍圖的去模糊方法,以提高圖像清晰度。另外,考慮到用于GAN訓(xùn)練的數(shù)據(jù)集除了需要清晰圖像外,還需要與之相對應(yīng)的模糊圖像,于是,文中結(jié)合馬爾可夫過程以及子像素插值[20]生成運動模糊核,根據(jù)無人機采集到的清晰圖像生成GAN去模糊用的訓(xùn)練集,相應(yīng)的流程圖如圖5所示,具體過程如下:
1)采用馬爾可夫過程生成軌跡矢量,隨后對軌跡矢量進行子像素插值以獲取運動模糊核,對無人機采集得到的清晰圖像和生成的運動模糊核做卷積運算,生成用于GAN訓(xùn)練的一組數(shù)據(jù);
2)分批次加載模糊圖像和清晰圖像并隨機排序,根據(jù)加載的圖像對鑒別器進行優(yōu)化,達到指定優(yōu)化次數(shù)(5次)后停止鑒別器的優(yōu)化,比較生成圖像和清晰圖像之間的差異(使用VGG-19提取的特征進行比較),轉(zhuǎn)而優(yōu)化生成器,重復(fù)執(zhí)行上述過程直至GAN訓(xùn)練結(jié)束;
3)將難以檢測的模糊圖像輸入到訓(xùn)練好的生成器,輸出重構(gòu)的圖像,最后通過訓(xùn)練好的RetinaNet缺陷檢測模型完成缺陷的識別。
圖5 無人機航拍模糊圖像的缺陷檢測流程圖
Fig.5 Defect detection flowchart for aerial photography of drones
實驗是在基于Keras的深度學習平臺上開展,為了提高卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練速率,在服務(wù)器上安裝了帶有張量核的RTX 2080顯卡,并且配置CUDA來加速計算。
針對金具上小部件銷釘?shù)某R娙毕?,實驗用的?shù)據(jù)根據(jù)銷釘所處的狀態(tài)分為正常類和缺失類。為了對輸出模型進行有效測試,將數(shù)據(jù)樣本按照4∶1的比例隨機劃分為訓(xùn)練集和測試集,其中訓(xùn)練集包括501幅正常類圖像、507幅缺失類圖像,測試集則由101幅正常類圖像和100幅缺失類圖像組成。
為了避免RetinaNet算法的網(wǎng)絡(luò)權(quán)重初始化帶來的不確定性,實驗中調(diào)用了在ImageNet數(shù)據(jù)集進行預(yù)訓(xùn)練的ResNet-50作為FPN網(wǎng)絡(luò)的主要框架。由于損失函數(shù)值能夠直觀地反映出模型在訓(xùn)練過程中的收斂狀況,同時考慮到電力系統(tǒng)缺陷檢測領(lǐng)域中缺陷類的正確識別的意義遠超過正常類,于是文中通過觀測模型收斂速率、缺失類別的平均準確率來優(yōu)化銷釘缺陷檢測模型,最終獲得如下的超參數(shù)優(yōu)化組合:學習率為10-5,優(yōu)化器為Adam,調(diào)節(jié)因子γ=2,平衡因子αt=0.25。
在上述參數(shù)設(shè)置下訓(xùn)練網(wǎng)絡(luò)結(jié)束后,使用測試集對輸出模型進行測試,得到正常類別和缺陷類別的平均準確率分別為84.2%和86.8%,均超過了80%,整體的平均準確率達到了85.5%;在檢測速度方面,對于每一幅分辨率為600×600的圖像,平均檢測時間為0.072 s。由此可見,無論是檢測的準確度還是檢測的實時性,深度學習算法RetinaNet在小部件銷釘識別上可以表現(xiàn)出較好的性能。
為了進一步提高識別率,筆者反復(fù)使用訓(xùn)練好的模型對測試集進行測試,深入分析了測試集的標注結(jié)果,發(fā)現(xiàn)測試結(jié)果出現(xiàn)了“兩極分化現(xiàn)象”:對于清晰圖像,模型擁有較強的泛化能力,即能夠在清晰圖像中獲得很好的標注結(jié)果,不僅準確地找到了銷釘所處的位置,還能夠給出正確的類別,如圖6所示;而對于清晰度不是很高的圖像,測試結(jié)果不盡人意。圖7給出了部分識別結(jié)果不夠理想的模糊圖像,從圖中可以看出該類圖像的清晰度遠低于圖6中的圖像,雖然模型可以找到銷釘?shù)奈恢茫糠謭D像也給出了正確的標簽,但圖像的模糊性增加了前景物和背景的區(qū)分難度,使得模型不僅容易將桿塔上的螺絲(這類螺絲是不需要銷釘進行固定的)錯誤識別為銷釘缺失類別,還會造成錯誤的分類。另外,模型在識別這類模糊圖像時,會出現(xiàn)多個錨框重疊、相互遮擋的現(xiàn)象。
Fig.7 Some blurred images with unsatisfactory identified results
為使訓(xùn)練好的GAN能夠改善無人機現(xiàn)場采集到的模糊圖像的質(zhì)量,在訓(xùn)練GAN時,文中使用模糊圖像替代噪聲作為網(wǎng)絡(luò)的輸入,而輸出為與輸入的模糊圖像完全對應(yīng)的清晰圖像。
這種圖像對在現(xiàn)實情況下是很難通過無人機采集得到的,因為無人機操作人員無法在同一時刻獲得兩張清晰度不同但圖像內(nèi)容完全一致的數(shù)據(jù)。針對此問題,文中采用馬爾可夫隨機過程生成運動軌跡,并對運動軌跡進行子像素插值,得到如圖8所示的部分模糊核。由于馬爾可夫運動軌跡生成過程是一個隨機過程,因此這種方法可以產(chǎn)生各種非線性的模糊核。
Fig.8 Fuzzy kernel generated by combining Markov process and sub-pixel interpolation
對于同一幅清晰圖像,選取不同的模糊核進行卷積運算,會生成不同類型的模糊圖像。為了提高GAN訓(xùn)練的穩(wěn)定性以及圖像的生成效果,在眾多的模糊核中隨機選取一種與清晰圖像做卷積運算,得到用于GAN訓(xùn)練的一組數(shù)據(jù)。
訓(xùn)練集構(gòu)建完成后,分批次加載模糊圖像和清晰圖像并隨機排序,按照前面提及的訓(xùn)練方式依次訓(xùn)練GAN中的生成器和鑒別器,待達到指定訓(xùn)練次數(shù)后,將無人機現(xiàn)場采集到的模糊圖像輸入到生成器中進行重構(gòu),部分結(jié)果如圖9所示。從圖中可以看出,無論是背景還是待檢測對象,模糊圖像都會給人造成一種虛化的感覺,這種虛化不僅會增加背景與前景物之間的區(qū)分難度,還會掩蓋小型部件(如螺絲、螺栓和銷釘)的一些局部紋理、邊緣等特征。使用文中訓(xùn)練好的生成器對模糊圖像進行處理后,發(fā)現(xiàn)處理后的圖像的局部特征信息得到了明顯的放大,如螺絲和銷釘?shù)募y理特征與處理前相比更加的清晰化。另外,經(jīng)過生成器重構(gòu)后的數(shù)據(jù),會給人一種舒適的感官感受,明顯增強了背景和前景物之間的區(qū)分度。
圖9 圖像重構(gòu)結(jié)果對比Fig.9 Comparison of reconstructed results of images
為了進一步驗證文中提出方法的有效性,采用訓(xùn)練好的生成器對原測試集中的模糊數(shù)據(jù)進行重構(gòu),將重構(gòu)后的數(shù)據(jù)與原測試集中清晰圖像組合作為新的測試集,然后使用4.1節(jié)中訓(xùn)練好的模型進行檢測,得到的查準率-查全率曲線[21- 22](PRC)如圖10所示。從圖中可以看出,無論是正常類別還是缺失類別,使用GAN的文中方法的查全率均有所提高,其中,缺失類別提高了將近6個百分點,即從原先的91%增加到97.3%,正常類別則增加了4個百分點。圖10(a)中,結(jié)合GAN后繪制出的曲線與橫、縱坐標圍成的區(qū)域面積為0.876,即缺失類別的平均準確率為87.6%,這與原先的86.8%相比,平均準確率有小幅度的增加。同理,根據(jù)圖10(b)中的PRC計算而得的平均準確率發(fā)現(xiàn),文中方法對正常類別的平均準確率增加了大約8個百分點,即由原先的84.2%增加到92.5%。然而,由于在數(shù)據(jù)層面有GAN的存在,檢測速率有所下降,即對于每一幅分辨率為600×600的圖像,所用的平均檢測時間從原來的0.072 s增加至0.307 s。
經(jīng)生成器處理后的模糊圖像的識別結(jié)果如圖11所示,從圖中可以看出,原先檢測難度較大的模糊圖像經(jīng)過GAN處理后,RetinaNet模型都能夠給出較好的檢測結(jié)果,表明文中方法可以在某種程度上提高模糊圖像的清晰度,增強圖像中待檢測物的局部紋理、邊緣等特征描述,有利于RetinaNet模型提取更加豐富的特征。
圖10 兩種方法的PRC比較Fig.10 Comparison of PRC between two methods
圖11 經(jīng)生成器處理后的模糊圖像的識別結(jié)果
Fig.11 Recognition results of blurred images processed by generator
針對銷釘常見缺陷,文中借助深度學習算法RetinaNet實現(xiàn)銷釘缺陷的自動識別??紤]到無人機現(xiàn)場采集到的部分圖像存在清晰度偏低的問題,而深度學習算法對此類模糊數(shù)據(jù)往往無法表現(xiàn)出較好的性能,文中借助GAN來提高圖像的清晰度,從而提高此類數(shù)據(jù)的識別精度。最后,針對GAN訓(xùn)練的圖像數(shù)據(jù)對在現(xiàn)實情況下很難獲得的問題,文中借助馬爾可夫過程生成的軌跡矢量和子像素插值來實現(xiàn)模糊-清晰圖像對的構(gòu)建,得出如下結(jié)論:
(1)在小部件銷釘常見缺陷的識別問題上,直接采用深度學習算法RetinaNet進行檢測,容易出現(xiàn)“兩極分化現(xiàn)象”,即對于大多數(shù)的清晰圖像,不僅可以準確地找到銷釘所處的位置,還能夠給出正確的類別,而對于部分模糊數(shù)據(jù),會出現(xiàn)分類錯誤、多個錨框重疊、相互遮擋的現(xiàn)象;
(2)生成對抗網(wǎng)絡(luò)在某種程度上提高模糊圖像清晰度的同時,還可以增強圖像中待檢測物的局部紋理、邊緣等特征信息,有利于RetinaNet模型提取更加豐富的特征,從而進一步提高模糊圖像的識別率;
(3)對馬爾可夫隨機過程生成的運動軌跡進行子像素插值,可以產(chǎn)生各種非線性的模糊核,不同種類的模糊核可以模擬出各種模糊程度的圖像。