高弋淞, 陳蔚卓, 王 吉, 黃煜博, 楊 易, 王利偉
1(海南電網(wǎng)有限責(zé)任公司 海口供電局, ???570102)
2(天津航天中為數(shù)據(jù)系統(tǒng)科技有限公司 天津市智能遙感信息處理技術(shù)企業(yè)重點實驗室, 天津 300450)
現(xiàn)代社會對電力的日益依賴增加了有效監(jiān)測和維護電力線的重要性.電力部門通常會定期或不定期的對輸電線路進行安全巡檢, 以便及時發(fā)現(xiàn)輸電線路中存在的缺陷, 并及時排除安全隱患.其中輸電線路周圍的施工車輛是一個重要的安全隱患.因為施工車輛可能會破壞輸電線路, 嚴重威脅電網(wǎng)的完全運行以及施工人員的人身安全, 從而帶來極大的經(jīng)濟損失或人員傷亡.
隨著無人機技術(shù)的成熟發(fā)展和生產(chǎn)成本的降低,越來越多的電力公司開始開展無人機輸電線路巡檢[1,2].采用無人機線路巡檢對環(huán)境適應(yīng)性強, 巡線速度快, 應(yīng)急反應(yīng)迅速, 能夠降低勞動強度的同時大大降低成本, 并且能夠使許多工作在完全帶電的環(huán)境下迅速完成, 確保用電安全.但是由于輸電線路周圍施工車輛出現(xiàn)頻率相對較低、資料較難收集等因素, 利用無人機對施工車輛檢測的研究較少.再加上無人機在獲取目標的過程中, 通常距離目標較遠, 導(dǎo)致施工車輛的目標較小, 且角度和距離不固定, 同時一些復(fù)雜的背景信息例如河流、房屋等可能會被拍入, 因此增加了對施工車輛的檢測難度.
對于施工車輛識別的研究, 文獻[3]采用Hough 變換直線檢測的方法提取包含施工車輛的區(qū)域.文獻[4]通過對視頻進行背景建模和運動檢測, 檢測目標物體.文獻[5]采用背景差分的方法獲取目標的位置.然而, 這些方法都是通過靜止的固定相機采集圖像或者視頻,其視角比較固定, 獲取的施工車輛的大小、角度、背景等都較為確定, 其應(yīng)用受到一定的限制.文獻[6]針對無人機收集的圖像, 根據(jù)施工車輛的顏色、直線特征縮小圖像識別的區(qū)域范圍, 然后結(jié)合方向梯度直方圖特征與支持向量機檢測施工車輛.然而, 該方法涉及的特征層次較淺, 并且無法滿足實時檢測的需求.
本文針對無人機獲取的輸電線路施工車輛, 提出了一個基于Android 平臺的施工車輛目標檢測系統(tǒng).首先針對無人機獲取的數(shù)據(jù)采用數(shù)據(jù)增廣的方法, 增加樣本的多樣性和數(shù)量, 然后使用壓縮和量化的SSD_MobileNet 模型完成對施工車輛的訓(xùn)練, 接下來將訓(xùn)練好的模型集成到Android 平臺, 最終實現(xiàn)在Andorid 端對施工車輛的實時檢測功能.
基于Android 平臺的施工車輛目標檢測框架如圖1所示.施工車輛目標檢測分為服務(wù)器端和Android 端,其中服務(wù)端完成對施工車輛數(shù)據(jù)的訓(xùn)練, 其過程分為數(shù)據(jù)增廣、模型量化訓(xùn)練、模型保存和模型轉(zhuǎn)換.Android 端集成服務(wù)器端訓(xùn)練的模型, 完成對目標施工車輛的實時檢測.
圖1 目標檢測框架
無人機獲取的輸電線路施工車輛的樣本數(shù)量比較有限, 通常采用數(shù)據(jù)增廣的方法, 增加施工車輛的數(shù)據(jù)量, 同時也可以降低模型對某種屬性的依賴, 提高模型的泛化能力[7].常用的數(shù)據(jù)增廣的方法有平移、縮放、水平變換等, 然而這些方法使得圖像的變化通常比較小.無人機在線路巡檢過程中, 處于不同的環(huán)境下, 所獲取的施工車輛圖像的背景差異很大, 并受到不同噪聲的干擾, 這為施工車輛的檢測帶來了很大的困難.本文通過賦予兩張圖像不同的權(quán)重, 使不同的樣本相互疊加, 產(chǎn)生更多的樣本.而新的數(shù)據(jù)的背景更加復(fù)雜,并且圖像的噪聲也隨之增加, 多樣性更加豐富.疊加方法如式(1)所示.
其中, imgnew為疊加后的圖像; i mg1和 img2分別為數(shù)據(jù)集中的兩張圖像; α 和 β為兩張圖像的權(quán)重參數(shù).
本文使用的目標檢測神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)為SSDMobileNet, 其結(jié)構(gòu)如圖2 所示.模型的特征提取網(wǎng)絡(luò)部分使用MobileNet[8]網(wǎng)絡(luò)結(jié)構(gòu), 在原來網(wǎng)絡(luò)的基礎(chǔ)上去掉最后的全局平均池化、全連接層和Softmax 層;然后使用SSD[9]算法模型結(jié)構(gòu), 對MobileNet 提取的特征層從6 個不同尺度進行深層次的特征提取, 并從6 個不同尺度信息中檢測目標的位置, 這樣可以更好的預(yù)測目標的位置及分類, 最后使用非極大值抑制法(Non-Maximum Supperssion, NMS)對重復(fù)的結(jié)果進行過濾, 得到最終的檢測結(jié)果.
1.2.1 MobileNet 模型結(jié)構(gòu)
MobileNet[8]采用可分離卷積(depthwise separable)為其主要組成結(jié)構(gòu).可分離卷積由3×3 深度卷積(depthwise convolution)和1×1 追點卷積(Pointwise convolution)組成.相比傳統(tǒng)的3×3 卷積, 可分離卷積能夠在性能不變的前提下, 參數(shù)量和計算量都相對降低.
1.2.2 SSD 模型結(jié)構(gòu)
SSD[9]是端到端的直接預(yù)測目標的類型和位置的單階段目標檢測網(wǎng)絡(luò), 沒有使用全連接層, 因此模型參數(shù)有所減少.它集合Faster-RCNN 算法的anchors 機制以及YOLO 算法的回歸思想, 使得算法可以提取不同縱橫比圖像的特征, 并降低訓(xùn)練的參數(shù)量, 從而保證準確率的同時, 提高算法的實時性.
1.2.3 模型壓縮
為了提高模型識別速率, 達到目標實時性檢測的要求, 需要對模型進行適當(dāng)?shù)膲嚎s, 減少神經(jīng)網(wǎng)絡(luò)的參數(shù).本文通過設(shè)置壓縮比, 較少特征提取網(wǎng)絡(luò)每一層的特征數(shù)量, 從而較小網(wǎng)路的參數(shù)和計算量.
圖2 SSD-MobileNet 模型結(jié)構(gòu)
1.2.4 模型量化
本文采用訓(xùn)練時量化方法, 其相比于訓(xùn)練后量化,能夠得到更高的精度[10].在訓(xùn)練時, 利用Tensorflow[11]的量化庫, 在訓(xùn)練和預(yù)測時通過在模型圖中自動插入模擬量化操作來實現(xiàn).并采用逐通道量化方法, 將模型的權(quán)重和激活輸出做8 bit 量化, 這樣不僅可以將模型的尺寸降低4 倍, 而精度損失很小.
服務(wù)器端采用英偉達的TITAN XP 顯卡, 使用Tensorflow[11]神經(jīng)網(wǎng)絡(luò)框架, 圖像輸入大小為500×500, 網(wǎng)絡(luò)訓(xùn)練采用Xavier 初始化權(quán)重, 一次迭代20 張(batchsize)圖片, 共100 000 次迭代(steps), 網(wǎng)絡(luò)采用隨機梯度下降法(SGD)優(yōu)化神經(jīng)網(wǎng)絡(luò), 初始化學(xué)習(xí)率(base learning rate)設(shè)置為0.002, 學(xué)習(xí)率下降方式采用warm up[12].
Android 平臺通過調(diào)用tensorflow lite 接口, 加載服務(wù)器端訓(xùn)練好的SSD_MobileNet 模型.當(dāng)無人機在飛行過程中, 將獲取的圖像信息傳輸給Android 端設(shè)備.圖像通過SSD_MobileNet 模型計算出所對應(yīng)的目標的位置.Android 端實時顯示無人機獲取的目標圖像, 并顯示施工車輛目標檢測的位置.
為了獲得豐富的無人機視角下的施工車輛數(shù)據(jù),使用無人機采集了樹木、紅土地、房屋等不同背景下輸電線路周圍的包含吊車、挖掘機等多種施工車輛.從巡檢的視頻中, 共采集了157 張輸電線路周圍的施工車輛圖像, 每張圖像包含的施工車輛數(shù)目不一定.本文采用隨機劃分方法劃分訓(xùn)練集和測試集, 其中訓(xùn)練集包含105 張圖像, 測試集包含張52 張圖像.使用LabelImage 工具箱, 用矩形標注框?qū)?shù)據(jù)進行手工標記, 然后保存為XML 文件數(shù)據(jù), 并與圖片一一對應(yīng).
兩個不同背景下的施工車輛按照式(1)疊加后生成的圖像如圖3 所示, 其中將 α 和 β的值分別設(shè)置為0.8 和0.2.從圖3 中可以看出, 通過疊加后的圖像的背景比原始圖像中的背景更加復(fù)雜, 圖像相比變得模糊,圖像中的噪聲也有所增加.圖4 所示為原始圖像疊加不同的背景生產(chǎn)的圖像, 通過對比可以看出, 不同的圖像疊加后產(chǎn)生的新圖像之間的噪聲是不同的, 圖像的多樣性增加了.
圖3 數(shù)據(jù)增廣
本文將圖像的模型的壓縮比設(shè)置為0.3, 使用相同的網(wǎng)絡(luò)和參數(shù)分別訓(xùn)練原始數(shù)據(jù)和增廣后的數(shù)據(jù), 其結(jié)果如表1 所示.通過對比可以看到, 通過數(shù)據(jù)增廣后訓(xùn)練的模型, 在相同的測試集上測試的精確率和召回率都有所提升, 從而驗證了本文提出來的數(shù)據(jù)增廣方法對于施工車輛的檢測是有效的.
圖4 不同背景的圖像增廣效果圖
表1 原始數(shù)據(jù)和數(shù)據(jù)增廣后的數(shù)據(jù)效果對比(%)
將SSD-MobileNet 網(wǎng)絡(luò)的壓縮值設(shè)置為0.7、0.5和0.3, 分別進行10 萬次迭代, 然后在不同Android 設(shè)備上測試幀率, 結(jié)果如表2 所示.從表中可以看出, 不同Android 設(shè)備處理圖像的時間有所不同, 這與設(shè)備的性能有關(guān), 在驍龍845 設(shè)備上運行的速度要更快一些, 在驍龍710 設(shè)備上運行的速度相比較慢一些.當(dāng)壓縮比為0.5 和0.3 時, 能夠達到幀率10 幀/s 以上, 基本上能夠滿足目標實時檢測的需求.
表2 不同Android 設(shè)備下的施工車輛識別幀率(幀/s)
本文測試了不同壓縮比對識別施工車輛召回率和精準率的影響, 結(jié)果如表3 所示.當(dāng)壓縮比為0.7 時精確度最高, 當(dāng)壓縮比為0.3 時, 召回率的最高.當(dāng)壓縮比越大, 網(wǎng)絡(luò)每一層的特征層數(shù)越多, 學(xué)習(xí)特征的能力越強, 考慮到在Android 端速度的影響, 當(dāng)壓縮比為0.7 時, 不能夠滿足實時性的要求.當(dāng)壓縮比為0.5 時的效果比壓縮比0.3 的效果要差一些, 可能的原因是數(shù)據(jù)量比較小, 較大的模型無法很好的學(xué)習(xí)目標的特征.通過對比不同的壓縮比的速度、精確率和召回率.最終選擇當(dāng)壓縮比為0.3 時的網(wǎng)絡(luò)模型.
表3 不同壓縮比下的精確率和召回率的對比(%)
如圖5 所示為無人機獲取的圖像檢測出的施工車輛, 使用SSD-MobileNet 網(wǎng)絡(luò)模型, 從無人機的視角能夠正確檢測出一些目標較大的、與背景有差異的施工車輛的位置.如圖6 所示矩形框為無法正確檢測出施工車輛的位置, 圖6(a)中的施工車輛距離無人機較遠, 施工車輛在圖像中很小, 當(dāng)圖像壓縮至分辨率500×500 時, 施工車輛在圖像中占的像素更小, 導(dǎo)致神經(jīng)網(wǎng)絡(luò)無法有效提取目標的特征, 使得無法檢測出施工車輛的位置.如圖6(b)所示, 施工車輛的顏色與背景非常的相似, 再加上目標很小, 使得神經(jīng)網(wǎng)絡(luò)將施工車輛誤判為背景, 同樣導(dǎo)致施工車輛的漏檢.
圖5 施工車輛檢測結(jié)果
圖6 施工車輛漏檢圖
本文提出了一個基于Android 平臺的實時檢測輸電線路施工車輛的方法.使用SSD-MobileNet 網(wǎng)絡(luò)模型, 通過數(shù)據(jù)增廣處理, 提高了施工車輛檢測的性能,并將模型集成到Android 設(shè)備, 實現(xiàn)對施工車輛的實時檢測.通過對比實驗, 最終確定SSD-MobileNet 模型的壓縮比為0.3 時, 在Android 設(shè)備端能夠達到實時檢測施工車輛的要求.但目前仍存在車輛漏檢問題, 對于一些與背景非常相似和小目標的施工車輛的檢測效果較差, 在以后的工作中, 需要通過優(yōu)化SSD-MobileNet 神經(jīng)網(wǎng)絡(luò), 提高對小目標施工車輛的檢測效果.