黨宏社,薛 萌,郭 琴
(1.陜西科技大學電氣與控制工程學院,西安 710021;2.西安西瑞控制技術(shù)股份有限公司,西安 710021)
隨著人們對用電量的需求逐年增加,輸電線路長度也不斷增長[1],電網(wǎng)的覆蓋面逐漸擴大,途經(jīng)的地理環(huán)境也越來越復雜,許多輸電線都搭建在人煙稀少的自然環(huán)境中,常年受到自然環(huán)境的侵害[2]。由于長時間暴露在野外環(huán)境中,絕緣子經(jīng)常會遭受惡劣天氣和氣候的影響發(fā)生掉片故障,損害整個輸電線路的使用和運行壽命。相關(guān)數(shù)據(jù)顯示,每年由絕緣子故障引發(fā)的事故超過電網(wǎng)故障的一半[3],因此定期對輸電線路進行巡檢是電力系統(tǒng)工作人員的一項重要的工作[4]。
目前輸電線路巡檢主要分為人工巡檢和機器人巡檢兩種方式。對于地理環(huán)境惡劣的地區(qū),人工巡檢的難度較大,并具有一定的危險性[5],而機器人能夠代替人對不易到達或是自然環(huán)境惡劣的地區(qū)進行巡檢。其中直升機巡檢由于仍要搭載人員對線路進行拍攝巡檢,自動化程度不是很高[6];懸掛式機器人巡檢需要和線路接觸,因此會對線路產(chǎn)生一定的影響[7]。與之相比,無人機巡檢僅需人員站在地面操控無人機[8],操作更加簡便靈活,也不會對線路產(chǎn)生影響,因此得到了廣泛應(yīng)用。
隨著深度學習技術(shù)的發(fā)展,基于卷積神經(jīng)網(wǎng)絡(luò)的目標檢測算法也層出不窮[9]。與傳統(tǒng)圖像處理方法相比,通過卷積神經(jīng)網(wǎng)絡(luò)對特征進行提取的目標檢測算法不需要人工設(shè)計分類特征的選取[10],并且對于顏色、背景、紋理等干擾因素的魯棒性較好。Huang[11]等人提出了一種基于多特征融合的深度學習模型來識別航拍絕緣子故障,通過將手動提取的顏色和LBP紋理特征與卷積神經(jīng)網(wǎng)絡(luò)提取的高級特征融合,實現(xiàn)對絕緣子檢測,再通過故障分類網(wǎng)絡(luò)對絕緣子進行故障檢測。Yang[12]等人提出一種利用深度卷積神經(jīng)網(wǎng)絡(luò)檢測絕緣子自爆的方法。林志城[13]等人分別使用Mask-RCNN、Retina-net、YOLOv3三種目標檢測算法通過多模型融合,將檢測結(jié)果中置信度和重疊率高的預測目標框進行融合,提高了絕緣子自爆故障的檢測精度。陳俊杰[14]等人構(gòu)建了基于Faster R-CNN的絕緣子檢測模型,對3種材質(zhì)的絕緣子進行了故障檢測,并能夠準確定位故障點。
目前的無人機巡檢是將采集到海量圖像傳送回地面端后進行離線檢測,因而會造成發(fā)現(xiàn)故障的滯后性[15],因此研究能夠在采集過程中進行實時性檢測的輕量型的絕緣子故障檢測算法是十分必要的,而現(xiàn)有技術(shù)大多通過使用特征融合手段或加深網(wǎng)絡(luò)層數(shù)來對模型的檢測精度進行提升,存在檢測速度較慢的缺點,模型文件體積也較大,不適合嵌入式使用。
基于上述分析,提出一種改進的YOLOv4目標檢測方法,通過對比MobileNet系列網(wǎng)絡(luò)的參數(shù)量,選擇MobileNetv2作為模型的骨干網(wǎng)絡(luò),并將模型后續(xù)頸部網(wǎng)絡(luò)與頭部網(wǎng)絡(luò)中的3×3與5×5標準卷積替換為深度可分離卷積,使模型輕量化。使用K-means聚類對絕緣子數(shù)據(jù)集的錨框進行聚類,得到更加適合本檢測目標的9種先驗框尺寸。將h-swish函數(shù)引入頸部網(wǎng)絡(luò)中的PANet結(jié)構(gòu)中作為激活函數(shù),減少模型后半部分對特征進行反復提取過程中的信息損失,從而在滿足檢測精度的前提下提升檢測速度,同時大大減少了模型參數(shù),為檢測算法的嵌入式應(yīng)用與絕緣子圖片的邊采集邊檢測提供了可能。
改進的YOLOv4輕量型檢測算法總體流程圖如圖1所示。首先對輸入圖像進行預處理,將圖像尺寸調(diào)整為416×416的大小,然后輸入到改進的YOLOv4模型中,結(jié)合K-means聚類得到的9種先驗框尺寸,輸出3種不同尺度下的預測結(jié)果,通過置信度篩選和非極大值抑制即可得到最終的絕緣子串和掉片故障的檢測結(jié)果。
圖1 改進的YOLOv4絕緣子故障檢測算法總體流程圖Fig.1 Flow chart for improved YOLOv4 insulator fault detection algorithm
1.1.1 骨干網(wǎng)絡(luò)的輕量化
YOLOv4算法屬于目標檢測中的單階段式算法,能同時對目標的類別與位置進行回歸[16],因此檢測速度較快。YOLOv4采用了CSPDarknet53[17]作為骨干網(wǎng)絡(luò)對輸入圖像進行特征提取。為了將骨干網(wǎng)絡(luò)輕量化,使用MobileNet系列網(wǎng)絡(luò)重新構(gòu)建骨干網(wǎng)絡(luò)。MobileNet是Google針對手機等嵌入式設(shè)備提出的一種輕量型卷積神經(jīng)網(wǎng)絡(luò)[18],目前已經(jīng)進行了3個版本的更迭。分別使用MobileNetv1、v2、v3作為YOLOv4的骨干網(wǎng)絡(luò)來構(gòu)建目標檢測模型,并統(tǒng)計各自的參數(shù)量,結(jié)果如表1所示:
由表1可知使用MobileNetv2的參數(shù)量最少,不到原網(wǎng)絡(luò)的2/3,因此選擇MobileNetv2[19]作為骨干網(wǎng)絡(luò)。MobileNet采用的深度可分離卷積(depthwise separable convolutions,dw)[20]能夠在特征提取效果少量降低的情況下極大減少運算量,從而提升運算速度。
表1 使用不同骨干網(wǎng)絡(luò)的模型參數(shù)量對比Table 1 Parameters comparison of the different backbone
此外,借鑒殘差網(wǎng)絡(luò)ResNet[21]的結(jié)構(gòu)特點,使用具有線性瓶頸的逆殘差結(jié)構(gòu)(InvertedResidual)構(gòu)建骨干網(wǎng)絡(luò)的單個卷積塊,具體結(jié)構(gòu)如圖2所示。
圖2 具有線性瓶頸的逆殘差結(jié)構(gòu)Fig.2 The inverted residual with linear bottleneck
逆殘差結(jié)構(gòu)是中間大兩端小的紡錘狀,并且具有一條殘差邊[22]。首先通過1×1卷積升維,之后進行深度可分離卷積進行特征提取,最后再通過1×1 卷積降維,并使用殘差邊將輸入連接過來相加。卷積核尺寸越小則張量維度越低,計算量就越少[23],但全部使用低緯張量會造成特征提取效果變差,因此通過先升維進行特征提取,再將提取到的特征進行降維,既保證了特征提取效果,又減少了運算量。被壓縮到低維空間的特征由于是從高維空間提取來的,所包含的有效信息較多,因此在進行1×1的降維之后,使用線性激活函數(shù)進行激活。
重新構(gòu)建的骨干網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示,括號中表示經(jīng)過本層操作后輸出的特征圖尺寸,其中CBR6模塊是對輸入依次進行卷積,批歸一化和ReLU6激活操作,(52,52,32)、(26,26,96)與(13,13,320)這3層將作為頸部網(wǎng)絡(luò)的輸入。
圖3 改進后的骨干網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.3 Improved backbone network structure chart
1.1.2 頭部網(wǎng)絡(luò)與頸部網(wǎng)絡(luò)的輕量化
雖然使用MobileNetv2作為骨干網(wǎng)絡(luò)能夠減少參數(shù),但在模型后續(xù)的頭部與頸部中均存在大量的卷積運算,為了進一步將模型輕量化,將頸部中的CBR(Conv,Batch Normolization,Relu)模塊、下采樣以及頭部YoloHead中的3×3與5×5標準卷積改為深度可分離卷積,并統(tǒng)計參數(shù)量,結(jié)果如表2所示,dw表示深度可分離卷積。
表2 使用深度可分離卷積后的模型參數(shù)對比Table 2 Comparison of model parameters after using dw
由表2可知使用了dw的模型參數(shù)再一次減少,與改進前的YOLOv4相比參數(shù)量僅占原來的17%左右,變得更加輕量化,能夠進一步加快運算的速度。
原YOLOv4算法使用了具有80種類別的COCO數(shù)據(jù)集[24]進行訓練與測試,而本文所檢測的目標種類較單一,因此為了使模型收斂更快[25],使用K-means算法對數(shù)據(jù)集中的真實標注框尺寸進行聚類,得到較符合本文檢測目標的先驗框的尺寸。使用K-means算法得到先驗框尺寸的流程圖如圖4所示。
圖4 K-means聚類得到9種先驗框尺寸流程圖Fig.4 Flow chart for K-means clustering obtains 9 priori box sizes
在所有標注框尺寸數(shù)據(jù)中隨機選取9個聚類中心,分別計算其他標注框尺寸到聚類中心的距離。采用IOU距離[26]代替歐氏距離進行衡量,如式(1)所示。
D(i,center)=1-IOU(i,center)
(1)
式中,D(i,center)表示第i個標注框尺寸到聚類中心center的距離,IOU(i,center)表示第i個標注框尺寸與聚類中心框的重合程度,取值為[0,1]。兩個標注框越相似,重合面積就越大,IOU值越大,因此對IOU取負號再加1,這樣得到的IOU距離就越小。將標注框分配給距離最小的聚類中心后,按照當前分類結(jié)果計算每一類數(shù)據(jù)的坐標均值,即可得到新的聚類中心。若新的聚類中心發(fā)生變化,則重新計算其他標注框到聚類中心的距離并重新分類,直到聚類中心不再變化。聚類中心分布結(jié)果如圖5所示,其中實心點為數(shù)據(jù)集中實際的標注框尺寸,空心點為聚類結(jié)果。
圖5 聚類中心分布結(jié)果Fig.5 Results of clustering center distribution
最終得到的9種先驗框尺寸如下:[(44,68)、(57,414)、(84,18)],[(84,27)、(123,35)、(166,61)],[(282,60)、(286,108)、(306,359)]。
模型頸部網(wǎng)絡(luò)使用了PANet結(jié)構(gòu)[27]對不同層的特征圖進行特征的反復提取,具體結(jié)構(gòu)如圖6所示,圖中的數(shù)字分別表示對應(yīng)特征圖的寬與高尺寸。
圖6 本模型使用的PANet結(jié)構(gòu)Fig.6 PANet structure used inproposed model
PANet通過上采樣和下采樣將不同尺寸的特征圖融合在一起并進行卷積運算,得到了豐富的多尺寸特征融合后的信息。為了將提取到的特征更有效地傳遞,使用h-swish激活函數(shù)[28]對融合后的特征進行激活,h-swish的計算公式如式(2)所示。
(2)
與常規(guī)的ReLU函數(shù)相比,h-swish函數(shù)在靠近原點的負半軸有一段負值,這樣的形狀特點能夠緩解ReLU造成的神經(jīng)元壞死,從而保留更多有用的信息。h-swish與ReLU函數(shù)圖像如圖7所示。
圖7 ReLU與h-swish函數(shù)圖像Fig.7 ReLU and h-swish function graph
模型所使用的PANet是在對多尺度特征進行反復融合與提取,包含有大量有效特征信息,若使用ReLU激活函數(shù)則會將負值輸入全部抑制為0,從而丟失許多有用信息,因此選擇h-swish函數(shù)能夠?qū)μ卣鬟M行更有效的傳遞。
改進后的網(wǎng)絡(luò)整體結(jié)構(gòu)如圖8所示。骨干網(wǎng)絡(luò)由一系列逆殘差模塊Inverted_Res組成,dwCBR模塊包括深度可分離卷積(dwConv)、批歸一化和ReLU6激活。SPP(Spatial Pyramid Pooling)是空間金字塔池化[29],對輸入分別進行1×1、5×5、9×9和13×13這四種不同尺寸的最大池化,并將四種輸出結(jié)果進行通道上的堆疊。PANet結(jié)構(gòu)中的dwCBh模塊包括深度可分離卷積、批歸一化和h-swish激活,CBh模塊包括卷積、批歸一化和h-swish激活,下采樣DownSampling與頭部網(wǎng)絡(luò)YoloHead中的3×3卷積均為深度可分離卷積。
圖8 改進后的YOLOv4模型整體結(jié)構(gòu)圖Fig.8 Improved YOLOV4 model structure
實驗的硬件環(huán)境如下:CPU為Intel i5-8300H 2.30 GHz,內(nèi)存大小16GBx2,GPU為NVIDIA GeForce GTX 1050。軟件環(huán)境采用windows10操作系統(tǒng),pytorch1.1深度學習框架,CUDA=9.1.126,編程語言為python3.6。
實驗數(shù)據(jù)集源于github上由國家電網(wǎng)公司提供的852張無人機高空拍攝的桿塔絕緣子圖片,其中600張為正常絕緣子,252張為具有掉片故障的絕緣子。輸電線路常見掉片故障原因包括雷擊、污穢及絕緣子劣化。在雷雨或潮濕天氣下,雷電活動可能使絕緣子串遭受雷擊,而潮濕天氣可能使積污絕緣子發(fā)生污閃。當絕緣子串遭受雷擊或污閃時,劣化絕緣子將被擊穿,此時會有較大電流通過使其發(fā)生爆炸,從而造成掉片故障。本文數(shù)據(jù)集中掉片故障原因包括雷擊和污閃造成的爆裂,絕緣子種類包括瓷質(zhì)絕緣子、玻璃絕緣子和復合型絕緣子3類,并且具有森林、城鎮(zhèn)、湖泊、田地等各種不同背景。用labelImg標注軟件對圖片進行標注,并對852張原始照片進行旋轉(zhuǎn)、鏡像、亮度及顏色調(diào)整進行數(shù)據(jù)集的擴增,最終得到3 804張照片。將數(shù)據(jù)集分為8∶1∶1三份,分別用于模型的訓練、驗證與測試。
采用遷移學習的思想[30],將在VOC2007數(shù)據(jù)集上預訓練好的特征提取網(wǎng)絡(luò)權(quán)重遷移至該模型進行微調(diào)。訓練時的超參數(shù)設(shè)置如下:初始學習率0.001,批處理量16。凍結(jié)訓練世代50,總訓練世代100。對學習率進行Adam優(yōu)化,并在50世代之后降低到0.000 1,非極大值抑制的閾值設(shè)置為0.3,置信度為0.5。
訓練得到的損失曲線如圖9所示,對圖9(a)的y軸進行了對數(shù)化處理,能在顯示總體趨勢的同時展示出訓練后期的損失值變化。由圖9可知損失值隨著訓練的進行逐漸下降,最終趨于穩(wěn)定,模型得到收斂。
圖9 訓練過程的損失曲線Fig.9 Loss curve during training
將本文提出的3種改進分別運用在原算法中進行模型的訓練與測試,結(jié)果如表3所示。表中AP(average precision)表示檢測的平均精度,insulator AP與defect AP分別表示絕緣子串AP與掉片故障AP,mAP(mean average precision)表示平均精度均值,是取所有類別AP值的均值,F(xiàn)PS是每秒可以處理的圖片幀數(shù)。
由表3可知,將MobileNetv2作為骨干網(wǎng)絡(luò)的模型檢測速度最快,能達到12.23FPS。使用K-means與h-swish均能夠小幅度提升模型的mAP,但h-swish會導致檢測速度下降更多,原因是盡管h-swish的計算并不過于復雜,但仍比ReLU計算麻煩。結(jié)合了3種改進方法的模型檢測速度與原來相比得到了提高,能夠達到10.51FPS,同時mAP能達到94.08%。
表3 模型改進前后性能對比Table 3 Performance comparison before and after model improvement
為了更客觀地評價本文模型,選擇了目前主流的目標檢測算法Faster-RCNN和SSD與本研究方法進行了縱向?qū)Ρ?,實驗結(jié)果如表4所示。
表4 該模型與主流算法的性能對比Table 4 Performance comparison between mainstream algorithms andthe proposed model
由表4可知,F(xiàn)aster-RCNN的mAP最高,達到了94.80%,但檢測速度較慢,為8.17FPS,模型文件的大小也有108MB。SSD的mAP是最低的,為92.28%,但檢測速度和模型文件大小都比Faster-RCNN與YOLOv4好。本研究模型與YOLOv4相比mAP有了略微的下降,但仍比SSD算法高,并且檢測速度有了顯著的提升,達到最快的10.51FPS,模型文件也是最小的46.4MB,僅占YOLOv4的1/5。
本研究算法的部分測試結(jié)果如圖10所示,示例結(jié)果中有12張包含瓷質(zhì)絕緣子,3張包含玻璃絕緣子,5張包含復合絕緣子,6張包含雷擊及污閃造成的掉片故障。
圖10 檢測效果圖Fig.10 Detection effect pictures
由圖10可知算法對于不同種類的絕緣子、不同原因及位置的掉片故障均能夠較好檢測出來,并且對于不同背景的魯棒性較好。
在現(xiàn)實中,雨、雪、霧天氣會造成無人機拍攝到的圖像質(zhì)量下降,為了檢驗?zāi)P驮谔厥馓鞖庀碌聂敯粜裕瑥臄?shù)據(jù)集中隨機選擇圖片并模擬了雨、雪、霧3種天氣下的狀態(tài)并使用本研究模型進行檢測,結(jié)果如圖11所示。
圖11 雨、雪、霧天氣下的檢測效果Fig.11 Detection effect under rain,snow and fog weather
隨機選擇的圖片中含有不同顏色的瓷質(zhì)絕緣子及掉片故障,由圖可知在雨、雪、霧3種天氣的影響下,本文模型對于絕緣子串的檢測效果幾乎不受影響,但對于掉片故障的檢測效果變差,如圖11(b)中圓圈標出的故障未被檢測出來,可見惡劣天氣會導致模型檢測效果變差。
提出了一種改進的YOLOv4目標檢測方法,使用MobileNetv2的逆殘差結(jié)構(gòu)與深度可分離卷積重新構(gòu)建了模型的骨干網(wǎng)絡(luò)、頸部網(wǎng)絡(luò)與頭部網(wǎng)絡(luò),減少了模型參數(shù);使用K-means得到更適合本文檢測目標的9種錨框比例,降低了錨框的調(diào)整難度;使用h-swish函數(shù)作為PANet中的激活函數(shù),減少模型后半段特征信息損失。實驗結(jié)果表明,與主流算法相比本文模型的檢測速度和模型文件大小均較優(yōu),檢測速度可達到每秒10幀,能夠滿足實時性檢測,模型文件大小為46.4 MB,為檢測算法的嵌入式應(yīng)用及巡檢時邊采集邊檢測提供了可能。在模擬的惡劣天氣情況下,掉片故障的檢測效果下降,因此在實際應(yīng)用時若遇到惡劣天氣,仍需工作人員進行二次判斷以保證電網(wǎng)安全。在后續(xù)工作中需進行數(shù)據(jù)集的完善,增加檢測的故障種類,并提升模型在不同天氣下的檢測精度。