黃巨挺,高宏力,戴志坤
(西南交通大學機械工程學院,成都 610031)
輸電線路需要日常維護與故障檢修以保證供電的穩(wěn)定與安全,人工巡檢電力線可能會比較危險并且耗費大量的時間。隨著無人機技術(shù)的發(fā)展,采用無人機巡檢系統(tǒng)取代人工,可以節(jié)省大量時間、人力和財力,而電力線的檢測是系統(tǒng)中最重要的一部分;然而由于缺乏特定的電力線檢測和預警系統(tǒng),有大量低空飛行無人機或直升機與輸電線路碰撞的事故發(fā)生[1]。因此實現(xiàn)飛行器對于輸電線路的準確高效識別是非常有必要的。
輸電線路識別可以使用雷達、紅外傳感、電磁傳感以及機器視覺技術(shù)。近幾年機器視覺技術(shù)發(fā)展迅速,尤其是深度卷積神經(jīng)網(wǎng)絡(luò)(Deep Convolutional Neural Network,DCNN)在圖像識別[2-4]、目標檢測[5-6]以及語義分割[7-9]等領(lǐng)域有著良好性能;另外由于相機價格便宜、質(zhì)量輕、易于在飛行器上裝載,因此本文將采用機器視覺技術(shù)實現(xiàn)輸電線路識別。機器視覺技術(shù)是對于飛行器采集到的圖片進行處理,檢測圖片中是否存在輸電線路。如果識別到電線,則可以進行后續(xù)的電線位置定位并向低空飛行器發(fā)送預警信息以防止碰撞事故,為無人機后續(xù)沿輸電線路巡檢和運動規(guī)劃做準備。這些都需要電線識別有較高的精度和效率,而機器視覺中的傳統(tǒng)圖像處理方法存在精度低和受環(huán)境影響大的問題;深度學習方法則是依賴于豐富的電線數(shù)據(jù)集,在保持較好識別精度時,由于網(wǎng)絡(luò)結(jié)構(gòu)較深而令檢測效率會下降。
無論是無人機巡檢輸電線路還是搭載在低空飛行器上的電力線檢測預警系統(tǒng),都需要飛行器對電力線的自動實時識別,因此需要一種能夠在飛行器移動端高效運行的電線視覺識別方法,以此保證飛行器能夠在低空飛行過程中及時識別飛行器下方的輸電線路,以進行運動規(guī)劃和躲避電線。
通常無人機采集的輸電線圖片中背景復雜,電線較細,寬度只有5~10個像素,對其準確識別具有挑戰(zhàn)性。一些背景可能具有與線路類似的形狀和邊緣,比如河流、樹枝以及房屋邊沿等;另外背景可能與線路顏色相近、對比度較低,這種情況下,肉眼可能也難以準確識別出電線。
已有的關(guān)于輸電線路識別的工作分為兩類。
一類是基于傳統(tǒng)數(shù)字圖像處理技術(shù)的線檢測方法。Zhu等[10]基于電力線與背景有較大對比度以及電力線通常為直線且與其他電力線平行等限制條件,使用一種改進的雙邊濾波方法來提高線結(jié)構(gòu)的對比度,然后使用Radon 變換進行直線檢測,最后通過電力線之間的平行關(guān)系約束條件來確定電力線;Du 等[11]設(shè)計了一種新的貝葉斯分類器,將圖像像素顏色作為信息源來計算概率,通過Hough 變換獲得啟發(fā)性知識來確定傳統(tǒng)貝葉斯分類器的先驗概率與后驗概率;Song 等[12]提出一種有序的從局部到整體的電力線檢測算法,首先用匹配濾波器和高斯一階導數(shù)來獲得一個邊緣圖,然后使用形態(tài)學濾波篩選出所有線性段,最后基于圖論將候選線性段組合成完整的電力線;韋盛[13]采用邊緣繪制(Edge Drawing)算法檢測圖像邊緣,然后采用邊緣繪制的線提取算法提取輸電線邊緣,最后使用K均值聚類算法去除干擾直線。
另一類是基于語義分割卷積神經(jīng)網(wǎng)絡(luò)的深度學習方法,現(xiàn)有的語義分割神經(jīng)網(wǎng)絡(luò)為全卷積網(wǎng)絡(luò)(Fully Convolutional Network,F(xiàn)CN)[7]、SegNet[8]、U-Net[14]以 及DeepLab 系 列[15-17]等。針對輸電線路的語義分割,王栩文[18]在DeepLabV3+基礎(chǔ)上,針對輸電線細長的特點設(shè)計了更復雜的解碼器,提出了DeepLabV3+Decoder 網(wǎng)絡(luò)模型,未在移動端設(shè)備進行實驗。Madaan 等[19]設(shè)計了適用于移動端電力線識別的網(wǎng)絡(luò)結(jié)構(gòu),使用空洞卷積技術(shù)[17]提取多尺度特征,設(shè)計多個神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),通過Grid Search 找到準確率與效率最優(yōu)的網(wǎng)絡(luò)結(jié)構(gòu)。Zhang等[20]實現(xiàn)了電線邊緣的精細化檢測,首先使用牛津大學視覺幾何組(Visual Geometry Group,VGG)發(fā)布的VGG-16 網(wǎng)絡(luò)作為主干結(jié)構(gòu)提取特征并使用雙線性插值逐層上采樣融合低階特征,然后獲取最后一層特征圖的結(jié)構(gòu)化信息,最后將網(wǎng)絡(luò)輸出的融合結(jié)果與結(jié)構(gòu)化信息結(jié)合獲取更加細化的電線邊緣。Choi 等[21]提出了一種基于弱監(jiān)督學習方法的電線檢測算法,能夠使用圖像級別的標簽訓練像素級別分割電線的網(wǎng)絡(luò),降低了電線標注的人力消耗。該算法分兩個階段:第一階段是基于塊級別標注進行訓練的卷積神經(jīng)網(wǎng)絡(luò),用于生成可能帶有噪聲的標注圖像;第二階段則是一個帶有電線分割精細化模塊的可迭代訓練的FCN 語義分割網(wǎng)絡(luò),最后得到像素級分割電線圖像。
傳統(tǒng)檢測方法檢測精度低,受環(huán)境干擾很大,在環(huán)境較為復雜時,很容易漏檢與誤檢,該類方法的很多研究都是在較強限制條件和假設(shè)下進行,如閾值等參數(shù)或人工設(shè)計的濾波器需要隨環(huán)境變化而調(diào)整。卷積神經(jīng)網(wǎng)絡(luò)使用級聯(lián)的卷積結(jié)構(gòu)提取低層次和高層次特征,擁有強大的學習能力。卷積神經(jīng)網(wǎng)絡(luò)的端到端訓練方式能夠自動從數(shù)據(jù)中學習表征,相較依賴于手工制作特征的系統(tǒng)有更好的性能,因此基于卷積神經(jīng)網(wǎng)絡(luò)的深度學習方法比基于傳統(tǒng)數(shù)字圖像處理技術(shù)的線檢測方法更加適用于檢測復雜背景下的電力線,有更強的泛化能力。現(xiàn)有的前沿語義分割神經(jīng)網(wǎng)絡(luò)如DeepLabv3+等是針對多分類目標分割,并且擁有很深的卷積網(wǎng)絡(luò)結(jié)構(gòu),因此王栩文的DeepLabv3+Decoder 模型的預測速度無法滿足實時電線分割任務(wù)需要。Zhang 等[20]提出的電線邊緣檢測方法需要額外的算力用于提取結(jié)構(gòu)化信息,尚未在移動端平臺上運行;Madaan 等[19]提出的網(wǎng)絡(luò)結(jié)構(gòu)未采用下采樣操作,所有卷積核都是操作于和輸入圖片尺寸相同的特征圖上,所以預測效率仍然有提升的空間;Choi 等[21]提出的電線檢測算法旨在降低電線圖像的標注成本,主要采用深層網(wǎng)絡(luò)FCN 進行分割,然后在假設(shè)局部電線為直線的基礎(chǔ)上,對分割結(jié)果進行圖像后處理,不適合在移動端運行。
針對上述的傳統(tǒng)電線檢測方法精度較低、復雜環(huán)境下容易產(chǎn)生誤檢以及現(xiàn)有的基于神經(jīng)網(wǎng)絡(luò)的電線檢測算法效率不高等問題,本文提出了一種適用于移動端高效實時識別輸電線路的語義分割卷積神經(jīng)網(wǎng)絡(luò),命名為WireDetection。整體網(wǎng)絡(luò)為U 型的編碼解碼結(jié)構(gòu),能夠自動提取低階和高階的特征,編碼過程采用了最大池化下采樣,解碼部分逐層上采樣恢復圖像細節(jié)。整體網(wǎng)絡(luò)框架只有9 層卷積層,采用最大池化索引的非線性上采樣方式以節(jié)省內(nèi)存空間,所以相比現(xiàn)有前沿的多分類語義分割網(wǎng)絡(luò),WireDetection 整體結(jié)構(gòu)精簡,也不需要額外的特征信息提取操作,能夠在移動端平臺有較好的表現(xiàn)。本文的數(shù)據(jù)集為真實情況下無人機采集的輸電線路圖片,并做了像素級標記。最后分別在同源與不同源的測試集上驗證模型性能,并在一個移動端GPU(Graphics Processing Unit)上測試模型的運行速度。實驗結(jié)果表明本文模型在不同測試集上相比現(xiàn)有的電線檢測算法都有更好的分割性能以及更快的識別速度。
現(xiàn)有的飛行器采集的已標記的輸電線路公開數(shù)據(jù)集稀少。目前有ETU(Eski?ehir Technical University)的公開數(shù)據(jù)集[22],是從土耳其21個不同區(qū)域以及不同天氣情況下獲取的錄像中篩選出的較為清晰的幀圖像,但是數(shù)據(jù)量較少只有100 張已經(jīng)標記的有效圖片,并且輸電線路圖片背景較單一。還有Zhang 等[20]制作的山地背景與城市背景的電線數(shù)據(jù)集,但是電線的像素標記不完整,只有電線邊緣的像素被標記。
本文的輸電線路數(shù)據(jù)集是通過大疆(Da Jiang Innovations,DJI)無人機采集,命名為WireDataset。DJI Mavic Mini 無人機以30 frame/s 拍攝分辨率為1 920×1 080 的圖片。無人機在電線上方10 m內(nèi)拍攝圖片。如圖1所示,電線在圖片中的方向和位置多樣,圖片背景更加多樣:1)電線與背景對比度較低;2)背景中包含與電線有相似像素值或相似形狀的物體。
圖1 WireDataset中的樣例圖片F(xiàn)ig.1 Example images in WireDataset
原始圖片大小為1 920×1 080,其中包含電線的512×512像素的區(qū)域被截取來制作數(shù)據(jù)集,數(shù)據(jù)集的標記使用公開的圖片標記工具LabelMe[23]。為了提高模型的泛化能力以及模型的魯棒性,數(shù)據(jù)集進行了數(shù)據(jù)增強。在數(shù)據(jù)增強之前,隨機選取100 張圖片作為測試集。使用Python 的Augmentor 庫對每張圖片在-45°~45°間進行隨機旋轉(zhuǎn),然后隨機左右翻轉(zhuǎn)、上下翻轉(zhuǎn)。最后擴增圖片數(shù)量為原來的48 倍,總共19 200 張圖片。原始數(shù)據(jù)集包括標簽可從鏈接https://github.com/Juting-HUANG/Power-Line-Dataset下載。
本文使用WireDataset 測試集評估提出的模型。另外選取了Zhang等[20]制作的山地背景電線數(shù)據(jù)集中170張圖片,重新標記作為測試集,命名為PLDM(Power Line Dataset of Mountain scene),用來評估模型在不同源數(shù)據(jù)集上的性能。
本文提出的模型采用編碼-解碼的U型結(jié)構(gòu),整體結(jié)構(gòu)如圖2 所示,其中編碼部分網(wǎng)絡(luò)參考VGG-16[3]網(wǎng)絡(luò)結(jié)構(gòu),VGG-16 由13 層卷積層、5 層下采樣最大池化層以及3 層全連接層組成。為了適用于移動端運行,對整體網(wǎng)絡(luò)結(jié)構(gòu)進行了如下調(diào)整:1)保留了前4 個模塊;2)去除了第4 個模塊的下采樣層,并且每個模塊只保留一個卷積層;3)減少前3個模塊中卷積層的通道數(shù)至原來的1/2 以及第4 個模塊卷積層的通道數(shù)至原來的1/4。進行這樣的調(diào)整有以下幾個原因:1)三次下采樣獲取的高階特征能夠滿足輸電線路檢測的二分類分割;2)為了獲取輸電線路相對背景的局部特征,通道數(shù)減少的四層卷積網(wǎng)絡(luò)已經(jīng)足夠深[19],并且使整體網(wǎng)絡(luò)參數(shù)量減少為1.96 MB,同時提高了預測速度,適用于移動端運行;另外在每一個卷積層后加入批量歸一化層[24],以此提升訓練速度和模型性能。
圖2 WireDetection整體網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Overall network architecture of WireDetection
解碼部分與編碼部分結(jié)構(gòu)類似,相互對稱,但是取消了卷積層部分的偏置以及非線性ReLU(Rectified Linear Unit)[25],以提高訓練過程中的優(yōu)化速度[26]。模型參考了SegNet的最大池化索引的上采樣方式進行逐層恢復圖像細節(jié),利于邊緣分割更加精細化[8]。
目前平臺已承接全國用戶規(guī)模達10 000個,300家企業(yè)及代理商接入系統(tǒng)平臺,8個區(qū)域數(shù)據(jù)中心;全國合作運營光纖傳輸網(wǎng)絡(luò)范圍達到14 000多公里,覆蓋全國200多個城市,目前是裝備制造業(yè)中最大的分布云網(wǎng)絡(luò)平臺綜合服務(wù)提供商和運營商。
最后輸出的特征經(jīng)過一個1×1 卷積層,獲得一個2 通道特征圖。經(jīng)過一個softmax運算獲得一個2通道的像素級別概率圖用于計算加權(quán)交叉熵損失。
本文模型解碼階段采用最大池化索引上采樣的方式。編碼部分每一次進行最大池化下采樣操作后,保存池化索引,然后傳遞到對稱的上采樣層。這種上采樣方式只存儲最大池化索引,占用很少的額外內(nèi)存空間,相比轉(zhuǎn)置卷積[7]的上采樣方式減少了端到端訓練的參數(shù)量,適用于內(nèi)存資源有限的移動端設(shè)備上運行的模型;相比雙線性插值的上采樣方式[17],避免了邊界信息的丟失,有利于電線尺寸較小結(jié)構(gòu)的分割。
圖3 最大池化索引上采樣Fig.3 Max-pooling indices based up-sampling
輸電線在圖片中通常很細,因此電線像素與背景像素的比例很不平衡。本文數(shù)據(jù)集中的電線像素在圖像中的占比小于10%。需要修改標準的交叉熵損失公式,使用median frequency balancing 方法[27]對背景與電線的損失進行權(quán)重分配來解決圖形分割中樣本不平衡問題,使得網(wǎng)絡(luò)對于占比較少的類別給予更多的關(guān)注。損失函數(shù)修改如下:
其中:C+和C-分別表示電線和背景像素的標注集合;P表示像素pc預測為相應(yīng)類別的概率;w1和w2分別為電線與背景像素的權(quán)重系數(shù)。通過如下公式來計算:
其中:H和W分別表示一張圖片的高和寬,N表示訓練集中圖片總數(shù)表示第n張圖片的第i個像素,medianFreq表示所有Freqc的中位值。對于二分類分割任務(wù),c=0或1,Nc=2 所以medianFreq的計算如下:
實驗中采用tensorflow 框架構(gòu)建WireDetection 模型,采用NVIDIA TitanX GPU 硬件訓練模型,GPU NVIDIA JetsonTX2硬件進行模型性能的測試。訓練過程中使用Adam 優(yōu)化算法來更新網(wǎng)絡(luò)參數(shù),設(shè)置初始學習率λ=0.001,模型的所有卷積層使用Xavier 初始化方法來初始化權(quán)重并設(shè)置偏置為0。批量歸一化層的γ值采用期望值為1、標準差為0.002 的正態(tài)分布初始化,β值初始化為0。訓練過程中,每個批次大小設(shè)置為4。
本文使用平均交并比(mean Intersection over Union,mIoU)、類平均準確率(Class Average Accuracy,CA_Acc)、召回率(Recall,R)、精度(Precision,P)、F1 分數(shù)以及平均精度(Average Precision,AP)來定量分析模型的像素級分割效果。交并比(Intersection over Union,IoU)表示一類真實值像素集合和預測值像素集合的交集與并集的比值;平均交并比mIoU為各類交并比的平均值;召回率是被正確預測正例占所有真實正例的比例;類平均準確率為不同類別召回率的平均值;精度是被正確預測的正例占所有預測為正例的比例;F1 分數(shù)為召回率和準確率的調(diào)和平均數(shù),通常用來衡量一個二分類模型的準確性;平均精度通過計算PR(Precision-Recall)曲線下的面積來獲得,適合用來評估一個不平衡分類問題中的分類模型性能[19]。假設(shè)類別數(shù)量為n,pij表示類別為i預測為j的像素數(shù)量。所有的定量指標如下所示:
其中:TP(True Positive)表示標記為電線的像素被正確識別,F(xiàn)N(False Negative)表示標記為電線的像素被錯誤識別為背景,TN(True Negative)表示標記為背景的像素被正確識別,F(xiàn)P(False Positive)表示標記為背景的像素被錯誤識別為電線。
Madaan 等[19]設(shè)計了多個針對移動端電線檢測的神經(jīng)網(wǎng)絡(luò)模型,本文復現(xiàn)了其中運行速度最快的模型,并命名為Dilated ConvNet。除了Dilated ConvNet,實驗也將WireDetection 與DeepLabv3+、SegNet 以及FCN-8s 進行對比。這些網(wǎng)絡(luò)結(jié)構(gòu)較深,能夠提取更多特征信息,有較好的分割精度。將WireDetection 與這些網(wǎng)絡(luò)進行對比,側(cè)重于分割精度的對比,以驗證本文模型不僅在移動端具有很好的運行效率,而且可以達到較好精度,也可以驗證構(gòu)建一個針對電線分割的模型是必要的。為了驗證最大池化上采樣和加權(quán)損失函數(shù)的效果,增加了對照實驗。將WireDetection 中的上采樣方式分別替換為雙線性上采樣和反卷積上采樣,以及將損失函數(shù)替換為標準的交叉熵損失函數(shù),將對照組分別命名為WDBilinear,WD-Deconv和WD-CrossEntropy。
3.3.1 定量分析
首先在WireDataset測試集上進行模型分割性能的評估,圖4 展示了不同模型的PR 曲線并標記了每個模型的平均精度,WireDetection有最高的平均精度,與FCN-8s的分割性能相近。
圖4 WireDataset測試集上的PR曲線Fig.4 PR curves on test set of WireDataset
不同模型的評價指標值如表2 所示。為了進一步探究本文建立數(shù)據(jù)集的豐富性和模型的泛化性,模型經(jīng)過WireDataset 訓練集訓練后,也在PLDM 上進行了分割性能的測試,如圖5和表3所示。
從圖4和圖5可以看出,所有測試的模型在不同源數(shù)據(jù)集上的性能有所下降,但是WireDetection 和FCN-8s 相比其他模型依然有更好的分割性能。
圖5 PLDM上的PR曲線Fig.5 PR curves on PLDM
從表2 和表3 可以看出,WireDetection 在不同測試集上達到的精度、F1 分數(shù)和mIoU 均要略低于分割性能最好的FCN-8s。但是如表1所示,F(xiàn)CN-8s模型參數(shù)量為420.75 M,遠大于WireDetection 的1.47 M 參數(shù)量。DeepLabv3+和FCN-8s 占用過多內(nèi)存而無法在Jetson TX2 上運行,不適用于移動端的電線檢測任務(wù)。另一方面,相較于針對電線語義分割的模型Dilated ConvNet,WireDetection 的分割效果更好并且運行速度最快,是Dilated ConvNet的兩倍,達到8.2 frame/s。
表1 不同模型的預測速度和參數(shù)量Tab.1 Detection speed and number of parameter of different models
表2 不同模型在WireDataset測試集上的定量評估Tab.2 Quantitative assessment of different models on test set of WireDataset
表3 不同模型在PLDM上的定量評估Tab.3 Quantitative assessment of different models on PLDM
本文模型相較于采用雙線性插值上采樣和采用標準交叉熵損失函數(shù),在同源和非同源數(shù)據(jù)集上都有更好的分割表現(xiàn);相較于采用反卷積上采樣,分割性能相近,但是預測速度更快且參數(shù)量更少。實驗結(jié)果表明,本文采用的上采樣方式和損失函數(shù)更加適用于輸電線的分割。
3.3.2 定性分析
圖6 展示了模型在WireDataset 測試集上的部分分割結(jié)果。WireDetection 能夠很好地分辨出低對比背景下或有相似物體如汽車和房屋邊緣背景下的電線。可以發(fā)現(xiàn),圖中識別得到的部分電線出現(xiàn)中斷,這是由于卷積核提取的是局部特征信息,當電線某一部分所處的背景對于電線識別干擾較大時,比如相近顏色的汽車或者地面上相似的裂縫在背景中,會產(chǎn)生局部像素分類的偏差,從而出現(xiàn)電線的部分中斷。
圖6 WireDetection測試集分割結(jié)果Fig.6 Segmentation results on test set of WireDetection
圖7 展示了模型在PLDM 上的部分分割結(jié)果。相較于使用雙線性上采樣的DeepLabv3+以及WD-Bilinear,使用最大池化索引上采樣的WireDetection 和SegNet以及反卷積上采樣的FCN-8s 和WD-Deconv 對細小結(jié)構(gòu)的分割更加準確。因為圖片是在無人機相距電線上方約30 m 的距離采集的,電線在圖片中很細,但是WireDetection 和FCN-8s 依然能夠較好地識別出電線。相比Dilated ConvNet,WireDetection 的錯誤識別像素更少。WireDetection 能夠在移動端達到較好的識別速度的同時,保持較好的分割精度。圖7 能看出,采用標準交叉熵損失函數(shù)訓練的WD-CrossEntropy 泛化性能較差,不能在非同源數(shù)據(jù)集上有效分割電線。
圖7 PLDM分割結(jié)果Fig.7 Segmentation results on PLDM
但是由于測試集PLDM 中部分與電線顏色相近的背景如樹枝等的圖片未在訓練集中出現(xiàn),分割結(jié)果中錯誤的正例(FP)增加,精度下降。如圖6 所示,WireDetection 能夠很好地區(qū)分WireDataset 的測試集中與電線相近的背景,表明WireDetection 模型具有較好的學習能力。因此,當訓練集中擴充足夠多的學習樣本后,WireDetection 模型對于相似背景的分割精度會逐漸提升。
針對傳統(tǒng)數(shù)字圖像技術(shù)檢測電力線精度較低和現(xiàn)有神經(jīng)網(wǎng)絡(luò)電線檢測方法效率不高的問題,本文提出了一個適用于移動端識別輸電線路的語義分割神經(jīng)網(wǎng)絡(luò)。該模型采用了U型的編碼與解碼結(jié)構(gòu),編碼部分采用最大池化層提取高階特征,解碼部分采用最大池化索引的非線性上采樣方式逐層融合多尺度特征,網(wǎng)絡(luò)整體結(jié)構(gòu)精簡。采用加權(quán)損失函數(shù)解決電線像素與背景像素不平衡的問題,提高模型的優(yōu)化性能。本文構(gòu)建了擁有多種復雜背景的電線數(shù)據(jù)集WireDataset,重新標注了山地背景的公開數(shù)據(jù)集作為額外的測試集。相較于現(xiàn)有的電線語義分割模型,本文模型對輸入圖片預測速度有很大提升,并且有更好的分割性能,可以用于移動設(shè)備的實時電線分割。本文模型在不同源數(shù)據(jù)集上,分割性能有所下降,接下來需要進一步擴充訓練集,并開展電線的定位工作,將使用多視角定位方法獲取與電線距離。