周仿榮,方明,馬御棠,潘浩
(1.云南電網(wǎng)有限責(zé)任公司電力科學(xué)研究院,昆明 650217;2.云南電網(wǎng)有限責(zé)任公司,昆明 650051)
隨著電網(wǎng)規(guī)模的不斷擴大,巡線的工作量增加,傳統(tǒng)的人工巡檢方式成本高,效率低,且實施具有一定的危險性。近年來,國家電網(wǎng)以及各個電力研究機構(gòu)投入了大量的人力物力進行無人機電力巡檢的研究,包括無人機飛控技術(shù)以及輸電線路巡檢航拍圖像的目標(biāo)識別及故障檢測技術(shù)研究。采用無人機巡檢具有低成本、高效率、適應(yīng)復(fù)雜環(huán)境的能力更強的優(yōu)點,能快速采集輸電線路的圖像和視頻信息,大大降低巡線工作的難度和危險性,在輸電線路巡檢中有著廣闊的應(yīng)用前景[1,2]?;谏疃葘W(xué)習(xí)的缺陷識別方法能自動對非結(jié)構(gòu)化數(shù)據(jù)進行有效地分析,利用深度學(xué)習(xí)算法對巡檢采集的圖片進行快速處理,實現(xiàn)輸電線路設(shè)備異常狀態(tài)的自動檢測與識別,這對于提升電網(wǎng)智能化具有重要意義[3]。
無人機通過搭載攝像頭采集輸電線路的狀態(tài)信息,但仍需要人工對采集的影像進行辨識。為了進一步提高機巡的自動化程度,許多學(xué)者提出了基于圖像的輸電線路設(shè)備和缺陷的識別方法。目前應(yīng)用于輸電線路目標(biāo)檢測的算法大多數(shù)需要依賴于人工提取圖像特征,再通過Hough 變換、Canny 算子、Gabor 算子等方法來分割出圖像中的目標(biāo)[4-6]。這些算法的效果取決于特征的提取情況,一方面,特征提取是一項復(fù)雜的工作,需要很強的專業(yè)知識;另一方面,輸電線路缺陷繁多,人工提取的特征不足以表達,導(dǎo)致傳統(tǒng)算法的檢測目標(biāo)類型單一。一些算法采取了支持向量機、神經(jīng)網(wǎng)絡(luò)等淺層學(xué)習(xí)算法配合預(yù)測目標(biāo)類型[7-9],但仍需要先對圖像特征進行提取。
近年來,基于深度學(xué)習(xí)的機器視覺技術(shù)得到了極大的發(fā)展,相應(yīng)的圖像目標(biāo)檢測算法也取得了很好的表現(xiàn)。2012 年AlexNet 在圖像識別大賽中取得不凡的表現(xiàn)之后,以卷積神經(jīng)網(wǎng)絡(luò)(CNN)為核心的深度學(xué)習(xí)算法成為圖像分類和目標(biāo)檢測的主要研究方向[10]?;谏疃葘W(xué)習(xí)的目標(biāo)檢測算法可分為“雙階法”和“單階法”,“雙階法”準(zhǔn)確率高,代表算法有SPP Net[11]和Faster R-CNN[12];“單階法”速度快,代表算法有YOLO[13-14]和SSD[15]?!半p階法”在電力系統(tǒng)設(shè)備的圖像檢測中已經(jīng)有一定的研究[16-18],但仍處于理論研究階段,且其檢測速度慢,不能滿足實時檢測的需求。而在日常無人機巡檢工作中,會產(chǎn)生大量圖像和視頻數(shù)據(jù),這對于目標(biāo)檢測算法的速度要求非常高[3,19]。因此,本文建立基于YOLO 算法的輸電線路機巡影像缺陷識別模型,利用實際工程運維中得到的巡檢圖像進行訓(xùn)練,并通過參數(shù)調(diào)整提高缺陷檢測模型的實際應(yīng)用能力,能夠?qū)崿F(xiàn)輸電線路機巡影像的缺陷實時檢測,具有較高的工程實用性。
YOLO 算法直接在輸出層回歸目標(biāo)位置和目標(biāo)類別,實現(xiàn)端到端的訓(xùn)練與檢測,這與最初基于區(qū)域建議的雙階目標(biāo)檢測方法不同。YOLO v3 增加了多尺度預(yù)測,使得網(wǎng)絡(luò)對于尺寸變化范圍大的目標(biāo)檢測能力更強,具有較高的檢測速度與識別精度[14]。本文基于YOLO v3模型對輸電線路巡檢圖像中的設(shè)備缺陷進行檢測與識別,模型框架如圖1 所示。
對于任意一張機巡圖片,首先將尺寸調(diào)整到統(tǒng)一大小,并將圖片劃分為S×S 個區(qū)域,再通過多個卷積層提取圖片特征,對于每一個區(qū)域,如果一個電力設(shè)備缺陷的中心落在這個區(qū)域內(nèi),則該區(qū)域負(fù)責(zé)預(yù)測這個缺陷,隨后通過回歸調(diào)整該設(shè)備缺陷的中心位置以及缺陷的大小,模型預(yù)測的輸出結(jié)果為S×S×(B×5+C),即S×S 個區(qū)域,每個區(qū)域輸出B 個不同尺寸的缺陷預(yù)測選框的位置和C 個缺陷類型信息,而對于每個缺陷預(yù)測選框有4 個坐標(biāo)值以及1 個置信度值。最后,模型采用極大值抑制以去除重復(fù)的選框,最終預(yù)測得到巡檢圖片中實際包含的電力設(shè)備缺陷類型及位置。
圖1 YOLO v3模型框架
本模型首先將輸入的巡檢圖像按照三個尺度劃分檢測區(qū)域,分別有19×19,38×38,76×76 個檢測區(qū)域。隨后將樣本庫中獲得的9個缺陷先驗尺寸按照大小分配給三個尺度的檢測區(qū)域,即每個區(qū)域內(nèi)有3 個先驗缺陷檢測錨框。對于每一個尺度的檢測區(qū)域,如果缺陷的中心落在一個區(qū)域內(nèi),則該區(qū)域就負(fù)責(zé)預(yù)測這個物體,如圖2 所示。
圖2 目標(biāo)預(yù)測
模型直接對整張輸入圖片進行特征提取,對大目標(biāo)和小目標(biāo)都能實現(xiàn)較好的檢測效果。本文采用DarkNet-53 卷積神經(jīng)網(wǎng)絡(luò)框架來提取巡檢圖像的特征,該框架由53 個卷積層組成,每個卷積層后都有帶泄露的線性分段函數(shù)(Leaky ReLu)作為激活函數(shù)以適應(yīng)非線性情況,其中有5 個卷積核的步長為2,對卷積結(jié)果進行上采樣得到多尺度的特征圖。特征提取模型如圖3 所示。
圖3 特征提取網(wǎng)絡(luò)
模型輸入一張任意RGB 色彩模式的巡檢圖像,對于卷積層,第l 個層卷積操作后輸出的特征向量可由公式(1)表示:
其中:xil-1為第l-1 層的第i 個特征圖,為第j 個卷積核,*表示卷積操作,為偏置項,f(*)表示激活函數(shù),此處選擇Leaky ReLu 函數(shù)作為卷積層激活函數(shù),即:
本模型不采用池化層,而是在部分卷積層采用步長為2 的卷積核,與這些卷積核進行卷積操作之后,圖片的特征向量大小變?yōu)樵瓉淼?/4,特征向量的深度隨著卷積窗口的增加而逐漸加深。
本模型在訓(xùn)練前首先對樣本的缺陷大小進行聚類,得到9 個先驗錨框,每個尺度的特征圖負(fù)責(zé)檢測3 個尺度的錨框。將DarkNet-53 卷積神經(jīng)網(wǎng)絡(luò)提取得到的圖像特征向量輸入到全連接層,由全連接層進行邏輯回歸,最終輸出維度為N×N×(3×(4+1+20))的預(yù)測向量,即對于三個尺度的特征圖,每個有N×N 個區(qū)域,每個區(qū)域3 個預(yù)測框的位置信息和置信度以及缺陷類型信息組成一個105 維的特征向量。
1.3.1 缺陷類型預(yù)測
本文共設(shè)計了20 種設(shè)備缺陷類型,每一個框都采用一組20 維的向量來表示缺陷類型,若預(yù)測為第n 種缺陷,則向量中的第n 個值為1,其余的值為0。每一個預(yù)測框都有一個置信度,包括該區(qū)域內(nèi)有目標(biāo)的可能性、缺陷類型和IOU 值三個部分,如公式(3):
本模型根據(jù)Darknet 網(wǎng)絡(luò)提取到的特征來判斷一個區(qū)域內(nèi)有第l 類故障的可能性為P(Classi),預(yù)測區(qū)域面積與實際區(qū)域面積的交并比為
式中:A 和B 分別表示設(shè)備缺陷的實際區(qū)域和預(yù)測區(qū)域的面積,交并比即為預(yù)測區(qū)域和實際區(qū)域的交集與其并集的比值。
為了克服直接預(yù)測的不穩(wěn)定問題,本模型采用相對位置來預(yù)測缺陷的位置,即預(yù)測缺陷中心相對于區(qū)域左上角頂點的偏移來進行定位,如圖4。
圖4 目標(biāo)定位方法
中心點位置的學(xué)習(xí)公式為:
其中,(cx,cy)為區(qū)域左上角的位置坐標(biāo),(tx,ty)為預(yù)測位置與實際位置的偏差。
預(yù)測錨框大小的調(diào)整公式為:
其中,pw和ph表示先驗錨框的大小,tw和th表示預(yù)測錨框與實際錨框的大小偏差。
在對錨框參數(shù)進行學(xué)習(xí)時,首先對框內(nèi)的區(qū)域進行一個目標(biāo)評分得到置信度,若錨框置信度過低則直接忽略該錨框,對于置信度高于0.5 的選框,若相互之間的IOU 較高且預(yù)測同一個對象,則只保留置信度最高的錨框進行學(xué)習(xí),以提高學(xué)習(xí)速度。
通過上述步驟將會得到過多的錨框,因此需要進行合理選擇以消除重復(fù)的錨框。本文選擇極大值抑制方法對重復(fù)錨框進行消除。首先對置信度過低的錨框進行抑制,這些錨框中很可能不包含需要檢測的目標(biāo)。隨后將剩余的選框按照預(yù)測缺陷的類別進行分類,對于預(yù)測同一類缺陷的目標(biāo),首先選擇置信度最高的一個,如果其他錨框與之的IOU 高于0.5,則將閾值較低的錨框抑制,低于0.5 則不做處理;再對剩下的未被抑制的錨框重復(fù)該操作。循環(huán)結(jié)束后,剩余的錨框即被認(rèn)為是最終預(yù)測的缺陷目標(biāo)。
深度學(xué)習(xí)算法需要通過大量的數(shù)據(jù)訓(xùn)練來實現(xiàn)較好的檢測效果,本章節(jié)介紹模型訓(xùn)練過程的主要工作。本文基于DarkNet 深度學(xué)習(xí)框架搭建仿真模型[20],計算機配置為Ubuntu 14.0操作系統(tǒng),32 核Xeon CPU,GTX 1080Ti 顯卡,64G 內(nèi)存。
本文利用從某省獲得的5000 張巡檢圖像組成訓(xùn)練樣本庫,其中4000 張圖片組成訓(xùn)練集,另外1000 張圖片組成測試集。樣本圖片按照Pascal VOC 標(biāo)準(zhǔn)[21]進行標(biāo)準(zhǔn),標(biāo)記對象包括架空線路缺陷、桿塔缺陷、絕緣子缺陷、金具缺陷,組成一個輸電線路典型缺陷的樣本庫。巡檢圖像的尺寸不完全一致,考慮到在無人機巡檢過程中拍攝目標(biāo)往往會位于圖片中間位置,為了避免尺寸不一導(dǎo)致圖像的壓縮和形變,方便模型進行統(tǒng)一的數(shù)據(jù)處理,本文將訓(xùn)練圖片從中心剪裁至3:2 大小并調(diào)整像素為4800×3200,去除邊緣的無關(guān)部分。
本文利用聚類算法得到缺陷的先驗尺寸。模型的初始參數(shù)對于訓(xùn)練收斂速度和訓(xùn)練效果具有十分明顯的影響,一個好的初始值能加快模型的收斂。本文對樣本圖像進行分析,發(fā)現(xiàn)不同圖片中故障的形態(tài)雖然有較大差異,但同一類故障的大小卻很接近,比如絕緣子故障和桿塔故障普遍尺寸較大,導(dǎo)線故障的區(qū)域較小等。因此本文對缺陷大小使用k 聚類,得到9個聚類中心。這9 個聚類中心的值作為缺陷檢測模型的先驗錨框的尺寸,使得錨框的選擇能夠更好的匹配輸電線路中缺陷的尺寸,加快模型的收斂,提高缺陷檢測的精度。
表1 先驗尺寸大小
本模型的損失函數(shù)由三部分組成:坐標(biāo)損失函數(shù)、類別損失函數(shù)、置信度損失函數(shù),對三個尺度的預(yù)測結(jié)果分別進行計算,最后相加得到整個網(wǎng)絡(luò)的損失函數(shù)。坐標(biāo)損失函數(shù)表示為:
類別損失函數(shù)為:
置信度損失函數(shù)為:
其中,S2表示網(wǎng)格區(qū)域數(shù),B 表示每個區(qū)域內(nèi)的錨框數(shù),表示若區(qū)域i 中的第j 個錨框負(fù)責(zé)預(yù)測目標(biāo)則為1,否則為0,則相反。
通過對巡檢圖像進行分析發(fā)現(xiàn),大部分圖像上只存在不超過四處缺陷,而每張圖片產(chǎn)生的網(wǎng)格區(qū)域數(shù)量則遠大于缺陷數(shù)量,因此本文通過參數(shù)λnoobj來調(diào)整有目標(biāo)的區(qū)域和沒有目標(biāo)的區(qū)域的損失權(quán)重,經(jīng)過實驗,本文選擇權(quán)重λnoobj=0.1。
在模型的設(shè)計中,缺陷類型有20 類,而坐標(biāo)參數(shù)只有4 個,若直接相加則會導(dǎo)致坐標(biāo)參數(shù)對損失函數(shù)的影響太小。為了增加位置坐標(biāo)對損失函數(shù)的影響以加快收斂,本文為坐標(biāo)損失函數(shù)增加權(quán)重λcoord=5。最終的損失函數(shù)表示為:
本章節(jié)基于YOLO 算法在輸電線路巡檢圖像數(shù)據(jù)集上進行仿真試驗,并與其他深度學(xué)習(xí)算法進行性能比較,探究YOLO 算法在輸電線路巡檢應(yīng)用的優(yōu)勢與不足。
本文采用的數(shù)據(jù)集可分為訓(xùn)練集和測試集兩個部分,各自包含的故障類型與對應(yīng)的數(shù)量如表2 所示。
表2 缺陷數(shù)量統(tǒng)計結(jié)果
訓(xùn)練集中,四類故障所占的比例分別為33.29%、25.69%、21.90%、19.12%;測試集中,四類故障所占的比例分別為32.29%、27.27%、23.10%、17.34%。從統(tǒng)計結(jié)果可以看到,四類故障的數(shù)量相當(dāng),能夠較好的滿足模型訓(xùn)練和測試的需求。
本文采用查全率(recall)、查準(zhǔn)率(precise)和平均精度(map) 來對輸電線路缺陷檢測模型的檢測效果進行評價。
查全率是指正確檢測出的目標(biāo)占所有需要檢測出的目標(biāo)的比例。對于任意一個置信度高于設(shè)定閾值的檢測框,如果與某一標(biāo)記目標(biāo)的交并比大于0.5,且預(yù)測的類別與該目標(biāo)相符,則認(rèn)為檢測的目標(biāo)正確。統(tǒng)計所有檢測正確檢測框的數(shù)量記為NTP,實際需要檢測的目標(biāo)數(shù)量為NG,查全率的計算公式為:
同樣,記所有置信度滿足要求的檢測框數(shù)量為ND,查準(zhǔn)率的計算公式為:
平均精度結(jié)合查全率和查準(zhǔn)率,通常情況下作為一個更全面的指標(biāo)來評價一個模型的好壞。
本文使用訓(xùn)練好的模型對實際運維中采集得到的巡檢圖像進行缺陷定位與識別試驗,當(dāng)預(yù)測目標(biāo)與實際目標(biāo)的交并比大于0.5 時,認(rèn)為預(yù)測準(zhǔn)確。本文訓(xùn)練了目前效果較好的幾個模型來作為對比,實驗結(jié)果如表3 所示。
從實驗結(jié)果可以看出,單階法的SSD 和YOLO v3 雖然在性能上稍差于雙階法的Faster RCNN,但在計算速度上有著明顯的優(yōu)勢,YOLO v3 的預(yù)測所需時間僅為Faster RCNN 的1/9 左右。經(jīng)過改進后的YOLO v3 模型在輸電線路巡檢圖像上的性能也有了很大提高,其查準(zhǔn)率已經(jīng)遠超過Faster RCNN 模型的查準(zhǔn)率,查全率也相差不多,但仍保持著單階法在速度上的優(yōu)勢。
表3 模型效果對比
目前,應(yīng)用于輸電線路缺陷檢測的目標(biāo)檢測算法主要為Faster RCNN 等方法,這些方法的識別精度較高,但檢測速度較慢,無法實現(xiàn)無人機巡檢中產(chǎn)生的大量視頻數(shù)據(jù)進行識別。本文提出基于YOLO v3 的輸電線路缺陷快速檢測方法,其檢測速度接近50 幀每秒,能夠滿足視頻檢測的需求。同時,在本文的數(shù)據(jù)集中,基于YOLO v3 的輸電線路缺陷快速檢測方法實現(xiàn)了78.2% 的檢出率,僅比基于Faster RCNN 的檢測方法低5.4%。因此,本文認(rèn)為基于YOLO v3 的輸電線路檢測方法可以彌補Faster RCNN算法的不足,實現(xiàn)基于視頻圖像的輸電線路缺陷快速檢測。