黃悅?cè)A,陳照源,陳慶,張磊,劉恒沖,張家瑞
(三峽大學(xué)電氣與新能源學(xué)院,湖北省宜昌市 443002)
目前,國家電網(wǎng)有限公司已采用無人機對輸電線路中關(guān)鍵故障,如絕緣子自爆、防震錘脫落、鳥巢等進(jìn)行檢測[1-2]。
當(dāng)前無人機巡檢采集的圖像數(shù)據(jù)以導(dǎo)入線下服務(wù)器智能分析或人工分析為主,從而延長了檢修結(jié)果的反饋時間,導(dǎo)致不能及時恢復(fù)線路正常,造成更嚴(yán)重的損失。隨著邊緣計算技術(shù)的快速發(fā)展,服務(wù)趨向邊緣節(jié)點化,巡檢無人機搭載邊緣計算設(shè)備可在輸電線路側(cè)進(jìn)行實時檢測,提高巡檢工作效率[3]。但在實際應(yīng)用中部署于邊緣計算設(shè)備的算法,暴露出故障檢測速度慢、精度易受圖像模糊影響等缺陷。
目前,應(yīng)用在邊緣計算模塊的檢測算法主要為速度占據(jù)優(yōu)勢的單階段目標(biāo)檢測算法[4],代表算法有YOLOv3[5]、YOLOv4[6]、YOLOv5[7]、SSD(single shot multi-box detector)[8]等。該類算法無需預(yù)先提取候選區(qū)域,而是直接對網(wǎng)絡(luò)進(jìn)行端到端的訓(xùn)練,相比于雙階段目標(biāo)檢測算法[4],表現(xiàn)出網(wǎng)絡(luò)結(jié)構(gòu)簡單、實時性好等優(yōu)點。文獻(xiàn)[9-10]基于改進(jìn)的SSD算法對絕緣子自爆、鳥巢進(jìn)行了檢測,取得較高精度,但算法體積太大,難以應(yīng)用于邊緣設(shè)備中進(jìn)行實時檢測。文獻(xiàn)[11-14]以YOLO為基礎(chǔ)算法,在巡檢圖像清晰的場景下,通過模型壓縮改進(jìn)對絕緣子故障、鳥巢、防震錘、桿塔進(jìn)行了檢測,取得了良好的實時檢測效果,但對模糊圖像數(shù)據(jù)檢測時效果不佳。較好平衡速度和精度的YOLOv5s算法,在應(yīng)用于實時目標(biāo)檢測的場景中表現(xiàn)出明顯優(yōu)勢[15],但其依然難以處理模糊圖像。
針對上述問題,本文在YOLOv5s算法的基礎(chǔ)上,首先利用Ghost模塊的輕量化技術(shù),引入經(jīng)Ghost模塊改進(jìn)后的Bottleneck模塊,降低模型參數(shù)量與計算量;然后,用平滑處理后的KL(Kullback-Leibler)散度損失函數(shù)替換目標(biāo)框均方誤差定位損失函數(shù),降低模型對目標(biāo)圖像形變或模糊產(chǎn)生的精度損失,進(jìn)一步提高模型魯棒性;最后,在無人機搭載的邊緣計算設(shè)備中進(jìn)行輸電線路實時檢測,驗證本文所提方法能有效、精確地進(jìn)行故障檢測。
高壓輸電線路通常架設(shè)于地形復(fù)雜、通信條件惡劣的環(huán)境,面臨著實時巡檢圖像遠(yuǎn)距離傳輸困難、前端數(shù)據(jù)處理效率低等問題。為了提高輸電線路的巡檢效率與實時性,本文構(gòu)建了基于邊緣計算的輸電線路故障實時檢測框架,如圖1所示。首先,以無人機搭載云臺相機、邊緣計算設(shè)備進(jìn)行輸電線路巡檢,獲取實時巡檢圖像數(shù)據(jù);然后,采用邊緣計算智能處理模式,通過邊緣計算設(shè)備內(nèi)嵌的輕量化深度學(xué)習(xí)模型對巡檢數(shù)據(jù)進(jìn)行智能分析,具體按照巡檢圖像數(shù)據(jù)篩選與傳輸、改進(jìn)的YOLOv5s算法檢測圖像數(shù)據(jù)、故障檢測結(jié)果反饋等步驟完成在巡檢工作現(xiàn)場的故障實時檢測與預(yù)警;最后,將輸電線路故障進(jìn)行輸出及保存,巡檢人員根據(jù)故障定位及時進(jìn)行修復(fù)。
圖1中YOLOv5s算法在提升檢測效率的同時也兼顧了精度,更適合部署在邊緣計算設(shè)備上,用于輸電線路故障實時檢測[16]。YOLOv5s模型結(jié)構(gòu)如圖2所示,YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu)主要由Backbone(主干網(wǎng)絡(luò))、Neck(多尺度特征融合網(wǎng)絡(luò))和Head(預(yù)測分類器)三個部分組成。Backbone用于提取圖像的識別特征,包括邊緣、紋理、位置信息等特征;Neck部分采用路徑聚合網(wǎng)絡(luò)(path aggregation network,PANet)[17]充分融合Backbone提取的不同層圖像特征,并對特征圖進(jìn)行再處理和合理利用;Head部分通過從Backbone提取的特征圖或從Neck中融合的特征圖來檢測目標(biāo)對象的位置和類別。YOLOv5s算法在實時檢測中具備一定優(yōu)勢,但在處理圖像形變、模糊的檢測時仍無法保證精確性;同時模型中大量Conv模塊進(jìn)行卷積操作增加了計算成本,使其難以應(yīng)用于算力有限的邊緣設(shè)備中。因此,本文從模型輕量化和模型魯棒性增強兩個方面提出改進(jìn)。
圖1 基于邊緣計算的輸電線路故障實時檢測框架Fig.1 Real-time detection framework for transmission line faults applying edge computing
在BottleneckCSP模塊中通過Conv卷積大量的計算產(chǎn)生豐富冗余的特征圖,如圖3所示。這些冗余相似特征圖在提升檢測算法精度的同時,也造成了計算量的增加。
圖3 特征圖可視化Fig.3 Visualization of feature map
原YOLOv5中Bottleneck模塊使用Conv卷積生成特征圖的過程如圖4所示。給定輸入數(shù)據(jù)X∈Rc×h×w,其中:c為輸入數(shù)據(jù)通道數(shù);h、w分別為輸入數(shù)據(jù)高度和寬度;R為數(shù)據(jù)特征集合。經(jīng)Conv卷積計算輸出n個特征:
圖4 Conv卷積生成特征過程Fig.4 Conv to generate feature process
Y=X*ω+b
(1)
式中:Y表示輸出的n個高度h′、寬度w′的特征圖;*為卷積操作;b為偏差項;ω代表卷積核k×k的卷積濾波器。Conv卷積中的每秒浮點運算量F1及參數(shù)量P1可表示為:
F1=n×h′×w′×c×k×k
(2)
P1=n×c×k×k
(3)
圖4通過Conv卷積獲取全部特征數(shù)據(jù)的過程導(dǎo)致檢測模型計算量過大,難以直接部署于無人機終端的邊緣計算設(shè)備。本文提出采用Ghost模塊[18]重構(gòu)檢測模型獲取特征的卷積計算操作方法,如圖5所示。Ghost模塊先通過Conv卷積生成部分特征圖,然后將其經(jīng)過線性變換生成足夠多的特征圖,最后將這兩部分特征按通道數(shù)進(jìn)行拼接輸出,以匹配給定的輸出通道數(shù)n(特征個數(shù))。
圖5 Ghost原理示意圖Fig.5 Principle diagram of Ghost
Ghsot模塊操作過程中,設(shè)一部分有m(m≤n)個特征圖Y′由Conv卷積生成:
Y′=X*ω′+b
(4)
式中:ω′為卷積濾波器。此時產(chǎn)生的每秒浮點運算量F2及參數(shù)量P2為:
F2=m×h′×w′×c×k×k
(5)
P2=m×c×k×k
(6)
剩下的n-m個特征圖需要對m個特征線性變換t-1次得到,其中t=n/m,而減掉的“1”為圖5中對m個相同特征線性計算的“1”次。利用式(7)可生成m×t=n個特征圖,通過對特征y′i的每個基礎(chǔ)特征進(jìn)行Φi,j線性運算,還需要運算m×(t-1)次,再與特征圖Y′直接拼接成n個特征(該過程不產(chǎn)生計算成本)。線性操作為:
yi,j=Φi,j(y′i),i∈[1,m],j∈[1,t]
(7)
式中:y′i表示Y′中的第i個特征圖;Φi,j(·)表示對第i個特征圖進(jìn)行第j個線性操作;yi,j為此過程生成的第j個特征圖。
設(shè)線性運算內(nèi)核大小為d×d,上述線性過程產(chǎn)生的每秒浮點運算量F3及參數(shù)量P3為:
F3=(t-1)×h′×w′×m×d×d
(8)
P3=(t-1)×m×d×d
(9)
則根據(jù)式(2)、(3)、(5)、(6)、(8)、(9)可算出Ghost模塊與Conv卷積的計算量之比TF及參數(shù)量之比TP:
(10)
(11)
取k×k與d×d大小相同,且t?c,可將式(10)、(11)進(jìn)一步化簡為:
(12)
可見,使用Ghost模塊的計算量和參數(shù)量與Conv卷積之比約為1/t。
綜上,在生成圖3特征數(shù)據(jù)的過程中,相較于全部使用Conv卷積,Ghost模塊利用式(7)所示的線性變換代替了部分Conv卷積過程,可降低參數(shù)量與計算量。由此造成的特征數(shù)據(jù)減少,最終通過拼接特征操作,來匹配給定的輸出通道數(shù)n(特征個數(shù)),彌補了特征數(shù)據(jù)損失。因此,Ghost模塊只減少了Conv卷積的參數(shù)量和計算量,而不損失影響檢測模型精度的特征數(shù)量,達(dá)到輕量化檢測模型的效果,同時保證了檢測模型精度。如圖2模塊改進(jìn)部分,采用Ghost模塊代替了Bottleneck模塊中Conv卷積,既能保證特征冗余性不影響YOLOv5s檢測模型精度,又能提升邊緣設(shè)備中模型故障檢測速度。
無人機巡檢的過程中易出現(xiàn)相機抖動或飛行速度突變等不穩(wěn)定情況,造成巡檢目標(biāo)圖像變模糊和形變,輸入邊緣計算設(shè)備檢測會導(dǎo)致實時檢測精度降低[19]。通過改進(jìn)模型結(jié)構(gòu)提升模型魯棒性來降低圖像模糊和形變的不良影響,又會導(dǎo)致檢測模型網(wǎng)絡(luò)復(fù)雜度增加,造成邊緣計算模塊檢測速度變慢而失去實時應(yīng)用價值。因此,在不改變檢測模型結(jié)構(gòu)的條件下采用損失函數(shù)改進(jìn)是最優(yōu)選擇。目標(biāo)置信度損失Lconf、目標(biāo)類別損失Lcla、目標(biāo)框定位損失Lloc共同構(gòu)成YOLOv5s算法的損失函數(shù)L,其表達(dá)式為:
L=Lconf+Lcla+Lloc
(13)
目標(biāo)框損失函數(shù)Lloc的均方誤差損失形式,會使損失值對目標(biāo)框變化很敏感,進(jìn)而影響檢測模型訓(xùn)練后的魯棒性效果??紤]到KL損失可對目標(biāo)框的移動與位置間的方差進(jìn)行學(xué)習(xí)[20],來降低損失函數(shù)L的值,提升模型的魯棒性,故本文將Lloc采用KL損失,其定義如下:
(14)
式中:QD(x)為真實標(biāo)簽坐標(biāo)概率分布;PΩ(x)為預(yù)測坐標(biāo)概率分布;x為坐標(biāo)樣本取值;xe為預(yù)測坐標(biāo)位置;xg為目標(biāo)框坐標(biāo)真值;Ω表示一組要學(xué)習(xí)的參數(shù);σ為分布的標(biāo)準(zhǔn)差;D為表達(dá)xg的參數(shù)合集。QD(x)與PΩ(x)概率分布重合度越高模型魯棒性越好。
由于常數(shù)項H[QD(x)]和ln(2π)/2對求導(dǎo)沒有影響,式(14)可簡化為:
(15)
分別對式(15)中的xe和σ求偏導(dǎo):
(16)
(17)
其中σ作為變量在求導(dǎo)公式分母上,為了防止因σ起始值過大,造成模型訓(xùn)練初始階段反向傳播過程中產(chǎn)生梯度爆炸,進(jìn)而導(dǎo)致模型無法正常收斂的情況,令α=ln(σ2),并代入式(15)中,可得:
(18)
式中:e為自然對數(shù)的底。當(dāng)|xg-xe|>1時,對KL損失進(jìn)行平滑處理,可進(jìn)一步增強模型魯棒性,則目標(biāo)框回歸損失函數(shù)LKL為:
(19)
在模型訓(xùn)練過程中,經(jīng)過平滑處理后的損失函數(shù)LKL對突然產(chǎn)生差異變化的圖像數(shù)據(jù)不會產(chǎn)生驟變,從而得到魯棒性更好的檢測模型,提升對模糊圖像或發(fā)生形變的目標(biāo)圖像檢測精度。
本文使用的輸電線路巡檢圖像數(shù)據(jù)集來源于某省檢修公司日常無人機巡檢工作。預(yù)先對樣本做影視分割、隨機馬賽克、鏡像、旋轉(zhuǎn)等處理,以擴(kuò)大訓(xùn)練數(shù)據(jù)集規(guī)模,提高模型訓(xùn)練后的泛化能力。最終得到1 575張故障圖像數(shù)據(jù)集,部分故障圖像如圖6所示。采用Labelimg工具對圖像進(jìn)行標(biāo)注,完成訓(xùn)練數(shù)據(jù)集制作,其分布如表1所示。
圖6 數(shù)據(jù)集圖示Fig.6 Data set diagram
表1 數(shù)據(jù)集分布Table 1 Distribution of the data set
訓(xùn)練模型使用的服務(wù)器平臺CPU為Inter i7-9700K,64 GB內(nèi)存,GPU為Nvidia GeForce RTX3080,顯存大小為12 GB,操作系統(tǒng)是Ubuntu18.04,安裝cuda10.1和cudnn7.6.4,深度學(xué)習(xí)框架為Pytorch1.9.0。為驗證所提方法在輸電線路邊緣檢測中的適用性和有效性,將改進(jìn)的YOLOv5s模型部署于邊緣計算設(shè)備中進(jìn)行測試與驗證,測試設(shè)備選用華為Atlas 200 DK,包括智能芯片昇騰310(Ascend 310)和Hi3559 Camera模塊,如圖7所示。
圖7 邊緣計算設(shè)備Fig.7 Edge computing device
訓(xùn)練圖像的分辨率大小統(tǒng)一為640×640,訓(xùn)練時采用動量項為0.9的異步隨機梯度下降法,在每一批訓(xùn)練的Batch size中包含64張圖片。在前150輪(Epoch)將訓(xùn)練中的學(xué)習(xí)率設(shè)為0.001,在后150輪將訓(xùn)練的學(xué)習(xí)率降到0.000 1。為防止模型過擬合,將權(quán)重衰減正則項設(shè)為0.000 5,經(jīng)過300輪的模型迭代訓(xùn)練,得到最終模型權(quán)重。
不同模型訓(xùn)練的損失函數(shù)值(Loss)收斂曲線如圖8所示。相比于原始模型,改進(jìn)模型初始Loss降低到11更有利于模型收斂,這是因為改進(jìn)后的損失函數(shù)降低了其在反向傳播過程中的干擾使得初始Loss更小。隨著迭代次數(shù)的增加,改進(jìn)模型的Loss迭代到100輪就下降到2左右,并最終收斂到1左右,而原始模型的最終Loss收斂在2.5左右。數(shù)據(jù)表明,改進(jìn)模型在目標(biāo)框定位損失函數(shù)選擇上的優(yōu)化,使得模型收斂性更優(yōu),訓(xùn)練效果更好。
圖8 Loss曲線Fig.8 Loss curve
改進(jìn)模型與原始模型的平均精度均值(mean average precision,mAP)曲線如圖9所示??梢钥闯?,原始模型、改進(jìn)模型分別迭代到50、30輪后mAP上升到0.6,分別最終穩(wěn)定在0.79、0.84。結(jié)果表明,與原始模型相比,改進(jìn)模型具備更快的檢測收斂速度、更高的檢測精度。
圖9 mAP曲線Fig.9 mAP curve
F1值為精確率和召回率的調(diào)和平均值,可表征兩者達(dá)到最高并取得平衡的狀態(tài),能更好地反映模型檢測性能,F(xiàn)1值曲線如圖10所示。改進(jìn)模型的F1數(shù)值隨著迭代次數(shù)增加逐漸高于原始模型,并最終穩(wěn)定到0.81,高于初始模型的0.78。因此,改進(jìn)模型在兼顧精確率和召回率的檢測效果上有明顯優(yōu)勢。
圖10 F1曲線Fig.10 F1 curve
進(jìn)一步地,為驗證在YOLOv5s模型上不同改進(jìn)策略的檢測效果,分別設(shè)置如表2所示的改進(jìn)策略并進(jìn)行測試。編號1為原始YOLOv5s模型,Ghost模塊改進(jìn)是為了提高模型的檢測速度,而KL散度損失在于提高模型的檢測精度,因此,編號3、4模型比編號1、2模型在mAP值上有顯著提升,其檢測精度相比原YOLOv5s模型提升了5%以上。
表2 不同改進(jìn)策略的對比實驗Table 2 Comparative experiment of different improvement strategies
為驗證KL散度損失函數(shù)改進(jìn)在檢測模型實際應(yīng)用過程中對模糊目標(biāo)圖像檢測的優(yōu)越性,本文利用絕緣子自爆、防震錘脫落、鳥巢的模糊圖像樣本對本文實時檢測模型與YOLOv3、YOLOv4、YOLOv5s、SSD實時檢測模型進(jìn)行測試對比。不同模型對模糊或形變巡檢故障圖像檢測的效果如圖11所示。相比較而言,圖11(a)—(d)所示的4個模型的檢測結(jié)果均出現(xiàn)了漏檢情況,而圖11(e)中本文模型可在模糊圖像中準(zhǔn)確檢測出絕緣子自爆、防震錘脫落、鳥巢三類故障目標(biāo),表現(xiàn)出了更強的檢測性能。因此,基于KL散度損失函數(shù)改進(jìn)的模型對于模糊或形變的圖像有較好檢測效果。
圖11 模糊故障圖像檢測結(jié)果Fig.11 Detection results of blurred fault image
為進(jìn)一步驗證基于Ghost卷積模塊改進(jìn)的YOLOv5s模型在邊緣計算設(shè)備中故障檢測速度的優(yōu)勢,將表3所示的主流實時檢測模型部署于華為Atlas 200 DK邊緣設(shè)備端進(jìn)行測試。所有模型均使用相同的數(shù)據(jù)樣本和參數(shù)進(jìn)行訓(xùn)練,測試得到模型參數(shù)量、mAP、每秒傳輸幀數(shù)(frame per second,F(xiàn)PS)結(jié)果如表3所示。
表3 主流模型性能對比Table 3 Performance comparison of mainstream models
分析表3的數(shù)據(jù)可知,YOLOv4模型檢測的mAP值85.32%最高,但其模型參數(shù)量246.17 MB最大、FPS最小從而檢測速度較慢,YOLOv4模型以及與之類似的SSD、YOLOv3模型均不適合部署在邊緣計算設(shè)備中進(jìn)行實時檢測。而YOLOv5s和本文方法檢測精度雖略低于YOLOv4,但其檢測速度是YOLOv4的3.1倍,能同時滿足較高檢測精度和檢測實時性要求。采用Ghost模塊改進(jìn)的本文模型與YOLOv5s相比,模型參數(shù)量從7.46 MB減少到4.39 MB,F(xiàn)PS從23 frame/s提升到34 frame/s,更適合算力和內(nèi)存有限的邊緣計算設(shè)備。本文模型在無人機搭載的邊緣計算模塊中進(jìn)行檢測時,能夠保證輸電線路故障有較高檢測精度的同時具有較好的實時性。
為了提高輸電線路無人機巡檢邊緣計算實時檢測的精度與實時性,本文研究了基于邊緣計算和改進(jìn)YOLOv5s算法的輸電線路故障實時檢測方法。
1)與原始YOLOv5s模型相比,引入的Ghost模塊壓縮使得模型輕量化,減少了計算量,提升了故障檢測速度。
2)利用KL散度分布損失替換原始均方誤差損失作為目標(biāo)框定位損失函數(shù),增強了模型魯棒性,提升了搭載該模型的巡檢無人機對模糊圖像的檢測能力。
實時故障檢測類模型對輸電線路中微小故障的檢測能力較為有限,此問題還需進(jìn)一步研究。