胡 楠,黃志歡
(1.武漢大學(xué)測繪遙感信息工程國家重點實驗室,湖北 武漢 430079;2.中國南方電網(wǎng)超高壓輸電公司柳州局,廣西 柳州 545000)
隨著中國社會和經(jīng)濟的快速發(fā)展以及人民日益增長的電力需求,中國的電網(wǎng)輸電線路總里程也在不斷的增加,為了保證這些需求,巡檢任務(wù)的工作量和工作難度也在與日俱增[1]。由于電力設(shè)備的數(shù)量眾多且有些設(shè)備所處位置偏僻,這使得維護這些設(shè)備需要更多的人力物力財力,所以應(yīng)用無人機對電力線路進行巡檢并且得到越來越多的有關(guān)電力塔和電力線的信息顯得越來越有現(xiàn)實意義。傳統(tǒng)的人工巡檢方式會有一些問題,例如,巡檢周期長,效率低下,人工巡檢方式需要巡檢人員徒步走過輸電線路;在遇到山區(qū)中的輸電線路時,巡檢人員不僅要面對復(fù)雜地形,也會遇到惡劣天氣,危險性高。這些原因都導(dǎo)致人工巡檢難以滿足電網(wǎng)運維的要求。所以,隨著無人機技術(shù)的日益成熟以及無人機所攜帶成像設(shè)備的進步,在建設(shè)智慧城市,智能電網(wǎng)和增強輸電線路供電可靠性的大背景下,應(yīng)用無人機對輸電線路進行巡檢用來代替人工巡檢已成為大勢所趨[2]。智能巡檢可以通過標(biāo)注無人機搭載相機所拍攝的海量電力巡檢圖像,來訓(xùn)練深度學(xué)習(xí)模型,然后再利用該模型的參數(shù),對其他無人機電力巡檢影像進行相應(yīng)預(yù)測,從而達(dá)到巡檢目的。
在前人所做的工作中,有采用傳統(tǒng)方法,進行基于模式識別的監(jiān)督分類和非監(jiān)督分類,從而達(dá)成對于無人機巡檢影像的像素級分類[3],但是這些傳統(tǒng)的遙感影像分類方法所提取的特征都比較淺層次,只是依據(jù)數(shù)據(jù)的統(tǒng)計特征和數(shù)據(jù)之間的統(tǒng)計關(guān)系來進行分類,分類的精度往往不是很高;有采用深度學(xué)習(xí)方法,比如SegNet[4],通過對電力巡檢影像進行像素級標(biāo)注,將網(wǎng)絡(luò)進行訓(xùn)練,從而對無人機巡檢影像進行分類,但是這種方法局限性較大。通過這種方法,只能了解在該電力巡檢影像中,各個位置的地物屬性,不能完美地達(dá)到人工巡檢所達(dá)到的效果;還有采用Yolo[1]網(wǎng)絡(luò),通過訓(xùn)練該網(wǎng)絡(luò)進行電力巡檢多目標(biāo)識別,從而找到故障發(fā)生地點的方法。
本文提供了一種全新的方法來進行基于深度學(xué)習(xí)的電力巡檢。該方法啟發(fā)于目前比較火熱的人體姿態(tài)識別(人體關(guān)鍵點檢測)網(wǎng)絡(luò)[5]。眾所周知,電力塔相對于人姿態(tài)固定,各個部件之間位置穩(wěn)定,將用于人體姿態(tài)識別(關(guān)鍵點檢測)的網(wǎng)絡(luò)用于電力塔姿態(tài)檢測(電力塔關(guān)鍵點檢測)一定是可行的[6]。通過對無人機巡檢影像進行關(guān)鍵點標(biāo)注,進行訓(xùn)練,最終得到的模型可以很好地預(yù)測電力塔上各個關(guān)鍵點的位置,從而達(dá)到更好的電力巡檢的目的。
現(xiàn)如今,深度學(xué)習(xí)的研究成果已經(jīng)被廣泛地應(yīng)用于語音識別、模式識別、目標(biāo)檢測以及關(guān)鍵點檢測等各個領(lǐng)域。為了更好地理解本文所使用的深度學(xué)習(xí)網(wǎng)絡(luò)HRNet,本部分將簡要介紹深度學(xué)習(xí)網(wǎng)絡(luò)的發(fā)展史。
1986年RUMELHART等[7]提出了BP(Backpropagation)神經(jīng)網(wǎng)絡(luò)。BP神經(jīng)網(wǎng)絡(luò)是一種按誤差逆?zhèn)鞑ニ惴ㄓ?xùn)練的多層前饋網(wǎng)絡(luò),它的學(xué)習(xí)規(guī)則是通過使用最速下降法,經(jīng)過反向傳播來不斷調(diào)整整個網(wǎng)絡(luò)的權(quán)值和閾值,最后使網(wǎng)絡(luò)的誤差平方和最小。BP神經(jīng)網(wǎng)絡(luò)模型的拓?fù)浣Y(jié)構(gòu)有3個層:輸入層、隱層以及輸出層。BP神經(jīng)網(wǎng)絡(luò)的優(yōu)點在于它實現(xiàn)了從一個輸入到輸出的映射功能,并且這種功能是可以通過數(shù)學(xué)理論證明的。BP神經(jīng)網(wǎng)絡(luò)可以實現(xiàn)任何復(fù)雜非線性映射,這也使得BP神經(jīng)網(wǎng)絡(luò)特別適合用來解決內(nèi)部機制非常復(fù)雜的問題。但是BP網(wǎng)絡(luò)的學(xué)習(xí)率是固定的,網(wǎng)絡(luò)收斂的速度受學(xué)習(xí)率影響,所以在面對特別復(fù)雜的問題的時候,BP網(wǎng)絡(luò)往往需要較長時間去解決。
卷積神經(jīng)網(wǎng)絡(luò)CNN(Convolution Neural Networks)是深度學(xué)習(xí)的代表算法之一。它是一種多層的監(jiān)督學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)。卷積神經(jīng)網(wǎng)絡(luò)的每一層成為特征圖,輸入層的特征圖是不同顏色通道的3D矩陣。在卷積神經(jīng)網(wǎng)絡(luò)中,每個神經(jīng)元都和前一層的部分相鄰神經(jīng)元相連,這樣就可以在特征圖中執(zhí)行不同類型的轉(zhuǎn)換,例如池化。卷積神經(jīng)網(wǎng)絡(luò)的核心在于隱含層的卷積層和池采樣層,通過這2個層,卷積神經(jīng)網(wǎng)絡(luò)能夠很好地提取特征從而完成各種任務(wù)。與其他傳統(tǒng)方法相比,卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)勢在于通過多層的卷積結(jié)構(gòu)可以獲得輸入數(shù)據(jù)的高層特征,并且與傳統(tǒng)的淺層網(wǎng)絡(luò)比較,更多的卷積層數(shù)代表了更強大的表達(dá)能力。并且通過改變卷積神經(jīng)網(wǎng)絡(luò)最后幾層的結(jié)構(gòu),卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)可以適用于其他幾個相關(guān)任務(wù),例如目標(biāo)檢測。下面筆者將簡要介紹幾個經(jīng)典的卷積神經(jīng)網(wǎng)絡(luò)。
1989年LECUN等[8]提出了LeNet的最初版本。LENET的最初版本包括2個卷積層,2個全連接層,共計60 000個學(xué)習(xí)參數(shù)。1998年在LeNet的基礎(chǔ)上,LECUN等構(gòu)建了手寫數(shù)字識別網(wǎng)絡(luò)LeNet-5,并且取得了成功。LeNet-5利用卷積、池化、參數(shù)共享等提取手寫數(shù)字的深度特征,最后使用全連接層進行分類識別。
2012年KRIZHEVSKY等[9]提出的AlexNet在ILSVRC比賽中以顯著優(yōu)勢獲得了冠軍。AlexNet第一次采用了ReLU、dropout、GPU加速等技巧,參數(shù)量為6 000萬個。AlexNet的網(wǎng)絡(luò)結(jié)構(gòu)共有8層,其中有5個卷積層以及3個全連接層。AlexNet的特點在于,它使用ReLU作為卷積神經(jīng)網(wǎng)絡(luò)的激活函數(shù),成功解決了Sigmoid在網(wǎng)絡(luò)較深時候的梯度彌散問題。在訓(xùn)練時,AlexNet使用dropout方式,隨機忽略一些神經(jīng)元,這將會有效避免訓(xùn)練出來的模型過擬合。
2014年ZHANG等[10]針對卷積神經(jīng)網(wǎng)絡(luò)如何實現(xiàn)目標(biāo)定位問題,提出了將Region proposal和CNN結(jié)合的算法R-CNN,第一次實現(xiàn)了應(yīng)用卷積神經(jīng)網(wǎng)絡(luò)進行目標(biāo)檢測。但是R-CNN并不完美,它的缺點如下:①R-CNN會對輸入圖像進行縮放,這將會導(dǎo)致圖像失真;②候選區(qū)域過多,并且每個候選區(qū)域都會被送入卷積神經(jīng)網(wǎng)絡(luò)提取特征,導(dǎo)致在應(yīng)用R-CNN的時候計算量過大,訓(xùn)練時間太長;③訓(xùn)練測試單獨運行且復(fù)雜,占用很大的硬盤空間,對硬件要求很高。
2014年由Google公司提出的GoogleNet[11]在ImageNet 2014比賽中獲得了冠軍。GoogleNet是一個擁有22層的深度網(wǎng)絡(luò),在主干卷積環(huán)節(jié)有3個inception模塊,模塊與模塊之間應(yīng)用3×3的最大池化層隔開。GoogleNet的特點如下:①采用性價比極高的1×1的卷積核來減少計算;②第一次提出了batch normalization,這有效避免了梯度消失,從而加快了收斂速度;③去除卷積神經(jīng)網(wǎng)絡(luò)最后的全連接層,大大減少了計算量。
2015年,GIRSHICK[12]提出了Fast R-CNN。Fast R-CNN用感興趣池化層(Region of Interest,ROI)代替空間最大池化層,實現(xiàn)了端到端訓(xùn)練。雖然Fast R-CNN實現(xiàn)了端到端訓(xùn)練,但是訓(xùn)練和預(yù)測所需要的時間仍然不能實現(xiàn)實時性檢測的要求。所以REN等[13]在Fast R-CNN的基礎(chǔ)上提出了Faster R-CNN,在卷積層后添加區(qū)域提取網(wǎng)絡(luò)RPN(Region Proposal Network),速度有了提高。
2017年HE等[14]在Faster R-CNN的基礎(chǔ)上再次進行修改,提出了Mask R-CNN算法。該網(wǎng)絡(luò)通過添加Mask分支,同時實現(xiàn)了目標(biāo)檢測、語義分割以及關(guān)鍵點識別任務(wù)。Mask R-CNN網(wǎng)絡(luò)可以用于人體關(guān)鍵點檢測任務(wù)。在下一部分將詳細(xì)介紹用于電力塔關(guān)鍵點檢測的HRNet網(wǎng)絡(luò)。
利用深度學(xué)習(xí)網(wǎng)絡(luò)對人體關(guān)鍵點進行檢測的方法主要有2種思路,它們各自都有自己的優(yōu)缺點。
1.2.1 Bottom-up方法
該方法首先是預(yù)測圖片中人物的所有關(guān)鍵點,然后再把識別出來的各個關(guān)鍵點分別組合為屬于某個人體的完整關(guān)鍵點,最后通過這些關(guān)鍵點的骨骼,得到最終的人體姿態(tài)。目前使用該思路的方法很多,比如OpenPose[15],就是通過對人體四肢關(guān)鍵點位置的預(yù)測,以及已有的方向進行連接,最后學(xué)習(xí)人體各個身體部位的位置和聯(lián)系,從而對人體上的關(guān)鍵點進行識別和檢測。
1.2.2 Top-down方法
這種方法在一般情況下不是獨立存在而是和人體目標(biāo)檢測模塊同時存在,所以采用該思路的方法比Bottom-up的方法準(zhǔn)確度更高一些。應(yīng)用該思路的方法會首先通過目標(biāo)檢測模塊得到人體目標(biāo)的位置,然后確定了人體目標(biāo)的位置以后再分別對已經(jīng)檢測出來的目標(biāo)進行關(guān)鍵點檢測。但是采用此思路的方法也容易受到人體目標(biāo)檢測框的影響,造成漏檢和錯檢,最后也會影響到對人體關(guān)鍵點檢測的結(jié)果。
本文所采用HRNet[15]的思路為第一種,是一種Bottom-up的方法。現(xiàn)存的Bottom-up方法大多數(shù)都是從高分辨率到低分辨率網(wǎng)絡(luò)(high-to-low resolution network)產(chǎn)生的低分辨率表征中恢復(fù)高分辨率表征。但是HRNet取得好成果的原因就在于HRNet能在整個過程中都保持高分辨率的表征。這對于人體關(guān)鍵點檢測這個嚴(yán)重依賴于高分辨率表征的任務(wù)來說是非常重要的。
HRNet的第一階段就是高分辨率子網(wǎng),然后逐個添加低分辨率子網(wǎng)用以形成更多的階段,并行連接多分辨率子網(wǎng)。在整個訓(xùn)練的過程中反復(fù)交換并行多分辨率子網(wǎng)中的特征和信息最終完成重復(fù)的多尺度融合的目的。
HRNet的優(yōu)勢在于它不像現(xiàn)存的其他網(wǎng)絡(luò)那樣進行串聯(lián)連接而是并行連接高低分辨率子網(wǎng),這樣在訓(xùn)練的過程中能夠保持圖像的高分辨率而不是通過低到高的過程恢復(fù)分辨率。因此,采用HRNet預(yù)測的熱圖在空間上相對來說會更加精確。HRNet的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。HRNet包括4個階段,主體為4個并行的子網(wǎng),當(dāng)分辨率降低到原圖像的50%時,相應(yīng)的寬度增加一倍。HRNet共有8個交換單元,最終訓(xùn)練過程中進行了8次多尺度融合。

圖1 HRNet的網(wǎng)絡(luò)結(jié)構(gòu)[16]
應(yīng)用無人機對電力線路進行巡檢所拍攝的電力巡線影像紋理豐富,且影像尺寸相對于COCO數(shù)據(jù)集中的影像較大。應(yīng)用無人機巡檢影像對電力塔實施關(guān)鍵點提取的流程如圖2所示。

圖2 數(shù)據(jù)處理流程圖
為了驗證HRNet對于電力巡檢影像電力塔關(guān)鍵點檢測的精度,本文對于無人機低空遙感技術(shù)獲得的電力巡檢影像進行電力塔關(guān)鍵點檢測。圖像來源于2016年11月廣東省江門市,電力塔高度約為60 m,在實際數(shù)據(jù)采集過程中飛行模式的安全距離為30 m,航線覆蓋的地面寬度大約為70 m。本次電力巡檢數(shù)據(jù)采集所使用的無人機型號為KC2000型無人機,無人機上所搭載的相機為SONYA-7R2型單反電力巡檢影像大小為6 000×4 000。本次影像數(shù)據(jù)采集的地面平均分辨率為5 cm。在本次所采集的電力巡檢影像中挑出61張含同一類型電力塔的影像應(yīng)用COCO-Annotator工具進行標(biāo)注。其中49張作為訓(xùn)練集,12張作為驗證集。部分訓(xùn)練集和驗證集的電力桿塔影像數(shù)據(jù)如圖3所示。可以看出,在訓(xùn)練集和驗證集中都有部分影像包含一個以上電力塔。本次所選用的電力塔上包含17個關(guān)鍵點,這將會在2.3中進行詳細(xì)描述。

圖3 訓(xùn)練影像和驗證影像示意圖
COCO(Common Object in Context)是微軟公司提供的,用來進行圖像識別以及目標(biāo)檢測,關(guān)鍵點識別的數(shù)據(jù)集。微軟公司通過大量使用Amazon Mechanical Truk來收集數(shù)據(jù)標(biāo)注COCO數(shù)據(jù)集。COCO數(shù)據(jù)集現(xiàn)在有3種類型的標(biāo)注,分別是object instances(目標(biāo)實例)、object keypoints(目標(biāo)關(guān)鍵點)以及image captions(看圖說話),最后使用JSON文件來儲存。在本篇文章使用的HRNet網(wǎng)絡(luò)中,主要應(yīng)用object keypoints(目標(biāo)關(guān)鍵點)這種標(biāo)注類型來訓(xùn)練HRNet。所有的3種標(biāo)注類型都共享下面的結(jié)構(gòu)類型包括info、image、license。但是在annotation中不同的標(biāo)注類型的annotation不同。下面將詳細(xì)介紹本文應(yīng)用COCOannotator所標(biāo)注的數(shù)據(jù)。
如圖4所示,展示了研究所使用的object keypoints(目標(biāo)關(guān)鍵點)標(biāo)注格式中的annotation部分。所有的圖像中標(biāo)注的關(guān)鍵點都會被儲存在keypoints字段中。keypoints是一個長度為3×k的數(shù)組,其中k是keypoints的總數(shù)量,在本文所標(biāo)記的關(guān)鍵點數(shù)據(jù)中k為17。每一個關(guān)鍵點都是一個長度為3的數(shù)組,第1個元素和第2個元素是x和y的坐標(biāo)值,第3個元素是標(biāo)志位v,v等于0表示這個位置的關(guān)鍵點沒有標(biāo)注;v等于1表示這個關(guān)鍵點被標(biāo)注了,但是存在遮擋;v等于2時表示這個關(guān)鍵點在標(biāo)注的同時也可見。

圖4 COCO數(shù)據(jù)格式
如圖5所示,可以看到電力塔17個關(guān)鍵點的位置。從表1中可以得到這17個關(guān)鍵點JSON數(shù)據(jù)中的名稱。如圖6所示,可以看到應(yīng)用COCO-annotator標(biāo)注電力塔關(guān)鍵點數(shù)據(jù)的實例。

圖5 電力塔關(guān)鍵點所在位置

表1 電力塔關(guān)鍵點以及數(shù)據(jù)中對應(yīng)名稱

表1(續(xù))

圖6 軟件中數(shù)據(jù)標(biāo)注實例
從表2中可以得到本次訓(xùn)練HRNet的計算機環(huán)境。本次訓(xùn)練網(wǎng)絡(luò)所有的部分均在Ubuntu系統(tǒng)中完成。

表2 計算機環(huán)境配置
在訓(xùn)練網(wǎng)絡(luò)的過程中,由于HRNet網(wǎng)絡(luò)所需要的顯存和內(nèi)存都較大,所以Batchsize被設(shè)置得很小,數(shù)據(jù)訓(xùn)練每1次為1個epoch,一共訓(xùn)練了210 epoch。具體的網(wǎng)絡(luò)參數(shù)如表3、表4所示。

表3 網(wǎng)絡(luò)1的相關(guān)參數(shù)

表4 網(wǎng)絡(luò)2的相關(guān)參數(shù)
為了驗證所檢測出來的關(guān)鍵點是否正確以及精確,COCO數(shù)據(jù)集提供了一種OKS(Object Keypoint Similarity)指標(biāo),這個指標(biāo)受目標(biāo)檢測中的IoU指標(biāo)啟發(fā),目的就是計算檢測出來的電力塔關(guān)鍵點與所標(biāo)注的真值關(guān)鍵點的相似度,其計算方法如下:

式(1)中:p為真值中電力塔的id序號;i為keypoint的序號;dpi為真值中每個電力塔和預(yù)測中電力塔的關(guān)鍵點的歐氏距離;Sp為當(dāng)前電力塔的尺度因子,這個值等于此電力塔在真值中所占面積的平方根;σi為第i個關(guān)鍵點的歸一化因子,這個因子是通過對數(shù)據(jù)集中所有的真值計算標(biāo)準(zhǔn)差得到,反映出當(dāng)前關(guān)鍵點標(biāo)注時候的標(biāo)準(zhǔn)差,σ越大表示這個點越難標(biāo)注;vpi為第p個電力塔的第i個關(guān)鍵點是否可見。
在COCO數(shù)據(jù)集類型中,還會應(yīng)用AP(Average Precision)以及AR(Average Recall)來檢測關(guān)鍵點準(zhǔn)確度。對于AP來說,已知某一張圖像上的電力塔OKS分?jǐn)?shù),那么給第一個閾值t,如果當(dāng)前的OKS的值大于t,那就說明當(dāng)前這個電力塔的關(guān)鍵點和公共監(jiān)測出來并且正確,如果小于它,這說明檢測失敗或者漏檢。因此對于圖像中所有的OKS,統(tǒng)計其中大于t的個數(shù),并最終件其所占所有OKS的比值,就會得到最終的AP值。表5中AP50表示IoU大于0.5時的平均精確度,AP75表示IoU大于0.75時的平均精確度,APM表示中等目標(biāo)(322<area<962)的平均精確度,APL表示大目標(biāo)(area>962)的平均精確度。

表5 關(guān)鍵點檢測最終結(jié)果
最終對于無人機巡線影像進行電力塔關(guān)鍵點預(yù)測的JSON進行可視化,部分結(jié)果如圖7所示,可以看到,17個電力塔上的關(guān)鍵點已經(jīng)預(yù)測成功且2個網(wǎng)絡(luò)的平均正確率達(dá)到了89.6%和90.8%,關(guān)鍵點位置精度較高。從表5中也可以看到網(wǎng)絡(luò)的寬度對于電力塔關(guān)鍵點識別是有著細(xì)微影響的。網(wǎng)絡(luò)寬度越寬,精確率越高。

圖7 電力塔關(guān)鍵點檢測可視化
本文主要對無人電力巡線中最重要的地物——電力塔進行了關(guān)鍵點檢測,探索了在使用HRNet進行關(guān)鍵點檢測中寬度對于平均精度的影響。通過實驗,表明了HRNet不僅僅可以應(yīng)用于對于人體關(guān)鍵點的檢測,也可以完美地完成對于電力巡線電力塔關(guān)鍵點檢測,且精度較高達(dá)到90%左右,相對傳統(tǒng)方法能也更加快速,這將會對無人機智能電力塔巡線增加更多可能。
在未來的研究中,應(yīng)該豐富對于電力塔標(biāo)注的種類,不僅僅對酒杯塔進行關(guān)鍵點檢測,也增加干字塔、貓頭塔的影像和標(biāo)注,最終讓無人機智能電力巡線更加完整。