吳之昊, 熊衛(wèi)華, 任嘉鋒, 姜 明
1(浙江理工大學(xué) 機(jī)械與自動控制學(xué)院, 杭州 310018)
2(杭州電子科技大學(xué) 計算機(jī)學(xué)院, 杭州 310018)
電力設(shè)備維護(hù)作為電力系統(tǒng)運(yùn)行中非常重要的一部分, 對整個電網(wǎng)的安全運(yùn)行起到關(guān)鍵的作用.其中,部分電力設(shè)備例如架空輸電線路和箱式變壓器一般架設(shè)在在室外, 受到風(fēng)吹日曬的金屬部件極有可能產(chǎn)生銹蝕, 而架設(shè)于輸電隧道的輸電電纜由于潮濕、多塵、密閉的環(huán)境也很有可能產(chǎn)生銹蝕, 從而威脅電力設(shè)備的正常運(yùn)行, 危害整個電力系統(tǒng)的安全, 因此需要有效的對電力設(shè)備銹蝕故障進(jìn)行識別和檢測.
目前, 電力設(shè)備的維護(hù)檢查一般通過人工巡檢的方式完成, 由于架空線路和輸電隧道架設(shè)的特殊性, 線路巡查通常會對工人的生命安全造成一定的威脅.隨著無人機(jī)和監(jiān)控攝像頭的大量使用, 通過圖像識別技術(shù)代替人工進(jìn)行安全檢查已經(jīng)成為目前較為有效的線路巡檢方案[1].文獻(xiàn)[2,3]等針對銹蝕故障的顏色特征,分別通過HSI 空間和RGB 模型進(jìn)行銹蝕區(qū)域的識別分割和檢測.
隨著深度學(xué)習(xí)的日益發(fā)展, 以基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測方法在很多層面上都超越了傳統(tǒng)數(shù)字圖像處理方法.在銹蝕故障檢測方面, 也有很多學(xué)者對基于深度學(xué)習(xí)的識別方法進(jìn)行了研究.李輝等[4]將HIS 模型和深度學(xué)習(xí)進(jìn)行了結(jié)合, 為電力輸電線路銹蝕故障檢測提出了新思路.Nash W 等[5]則進(jìn)一步對銹蝕場景進(jìn)行了分割和提取, 但檢測結(jié)果未達(dá)到預(yù)期.周自強(qiáng)等[6]則引入了遷移學(xué)習(xí)來解決小數(shù)據(jù)樣本的問題, 也提高了一定的檢測效果.
目前的目標(biāo)檢測算法依賴于大型卷積神經(jīng)網(wǎng)絡(luò),算法模型一般存在參數(shù)量過大、檢測速度過慢等問題,不能滿足電力設(shè)備故障檢測的實時響應(yīng)要求.因此本文在已取得較好目標(biāo)檢測效果的SSD[7]算法的基礎(chǔ)上,結(jié)合MobileNet[8]系列網(wǎng)絡(luò)結(jié)構(gòu)提出一種輕量級的電力設(shè)備銹蝕目標(biāo)檢測算法.同時引入了基于注意力機(jī)制的上采樣策略和多尺度特征融合方法在壓縮模型的同時維持較高的檢測精度.
基于深度學(xué)習(xí)的目標(biāo)檢測方法從R-CNN[9]提出后就成為了目前主流的目標(biāo)檢測算法, 并發(fā)展出了Fast R-CNN[10], Faster R-CNN[11]等two-stage 算法和SSD,YOLO[12]等one-stage 算法.其中, one-stage 算法通過將分類與回歸問題進(jìn)行統(tǒng)一可以在只經(jīng)過單次檢測就能得到最終的檢測結(jié)果, 擁有更快的檢測速度, 因此更適合在工業(yè)現(xiàn)場和機(jī)器人系統(tǒng)中進(jìn)行應(yīng)用.
SSD (Single Shot MultiBox Detector)目標(biāo)檢測算法是2016 年Liu W 等提出的一種one-stage 的深度學(xué)習(xí)的目標(biāo)檢測算法[7], 并添加了多尺度檢測的方式提高不同尺度下的目標(biāo)檢測能力.SSD 目標(biāo)識別算法采用VGG-16 作為特征提取網(wǎng)絡(luò), 去除了末端的2 個全連接層, 改用3 個卷積層進(jìn)一步提取特征, 同時減小特征圖的尺寸.為了提高對尺度變化較大的目標(biāo)的泛化能力,SSD 使用了6 個不同尺度的特征圖進(jìn)行檢測.而在預(yù)選框(prior box)生成策略上, SSD 借鑒了Faster R-CNN的anchor 策略, 在不同尺度的特征圖上分別生成4 至6 個不同大小和不同長寬比的anchor 框作為邊框回歸的預(yù)選框, 非常好的適應(yīng)了不同長寬比的目標(biāo)物體, 有效的提高了檢測的效果.圖1 為標(biāo)準(zhǔn)SSD 的算法結(jié)構(gòu)圖.
圖1 SSD 的算法結(jié)構(gòu)
注意力機(jī)制(attention)的本質(zhì)來自于人類只根據(jù)需求觀察特定部分的視覺機(jī)制.2014 年Google DeepMind團(tuán)隊提出了循環(huán)注意力模型[13], 將Attention 機(jī)制引入RNN 用于圖像分類并取得了良好的效果.2018 年, Hu J 等提出了SENet[14], 通過在通道間添加注意力機(jī)制來標(biāo)定不同通道的重要程度, 然后依靠添加不同的權(quán)重去提升高效特征并抑制低效特征.
SENet 通過Squeeze 和Excitation 兩個操作對每個同通道的相互依賴關(guān)系進(jìn)行建模.其中Squeeze 操作是進(jìn)行了一個全局池化, 相當(dāng)于采用了全局感受野來令其具有全局信息特征.隨后Excitation 操作通過全連接層和Sigmoid 函數(shù)來表征每個特征通道的相關(guān)性.最后通過Reweight 操作將輸出的權(quán)重通過逐點相乘加權(quán)到先前的特征上, 令原始特征得以重標(biāo)定.注意力機(jī)制的算法結(jié)構(gòu)如圖2 所示.
圖2 注意力機(jī)制的算法結(jié)構(gòu)
本文提出的基于輕量級SSD 的電力設(shè)備銹蝕目標(biāo)檢測算法在標(biāo)準(zhǔn)SSD 的基礎(chǔ)上結(jié)合MobileNet 的深度可分離卷積進(jìn)行輕量化操作, 同時為保證檢測精度不受影響, 利用注意力機(jī)制和concat 方式對多尺度特征進(jìn)行融合.完整算法結(jié)構(gòu)如圖3 所示.
標(biāo)準(zhǔn)SSD 采用擴(kuò)展的VGG-16 網(wǎng)絡(luò)作為特征提取網(wǎng)絡(luò), VGG-16 采用的是密集連接的標(biāo)準(zhǔn)卷積方式.而深度可分離卷積是MobileNet 的基本組成塊, 利用了分解卷積的方法對過參數(shù)化的標(biāo)準(zhǔn)卷積進(jìn)行壓縮.首先采用1×1 大小的卷積核先對每一個通道進(jìn)行卷積操作, 再使用3×3 大小的卷積核進(jìn)行通道間的信息交流.通過將標(biāo)準(zhǔn)卷積中的乘法分解為加法的方式在不損失精度的情況下有效的減少大量參數(shù).同時將激活函數(shù)由ReLU 更換為性能更加優(yōu)越的h-swish 函數(shù).圖4為標(biāo)準(zhǔn)卷積和深度可分離卷積的結(jié)構(gòu)對比圖.
圖3 基于輕量級SSD 的電力設(shè)備銹蝕目標(biāo)檢測算法結(jié)構(gòu)
圖4 標(biāo)準(zhǔn)卷積和深度可分離卷積的結(jié)構(gòu)對比
標(biāo)準(zhǔn)SSD 目標(biāo)檢測算法為了提升小目標(biāo)的檢測效果使用了多尺度的特征進(jìn)行同時檢測, 但是由于沒有做到特征的融合, 導(dǎo)致小目標(biāo)檢測中并不能達(dá)到很好的預(yù)期效果.同時, 雖然使用深度可分離卷積可以大量的減少參數(shù)量, 但是由于失去了大部分可調(diào)參數(shù), 在一定程度上犧牲了檢測精度.因此本文采用了多尺度融合思想, 將標(biāo)準(zhǔn)SSD 中單獨(dú)檢測的多尺度特征進(jìn)行上采樣融合.在融合策略上, 由于FPN[15]使用的Elementwise add 特征融合方式對單通道特征圖的特征相似度要求較高, 但是經(jīng)過上采樣的高層特征圖未必可以做到內(nèi)容匹配.而concat 特征組合方式則更加注重不同通道內(nèi)的特征信息, 同時再利用一個注意力模型對組合特征進(jìn)行相關(guān)性標(biāo)定, 以此可以選擇更具有價值的特征信息.但是由于采用concat 的方式, 所以通道數(shù)增加了一倍, 因此采用一個卷積層將其通道降為原先的一半,同時起到特征融合的作用.基于注意力機(jī)制的上采樣策略結(jié)構(gòu)如圖5 所示.
圖6(a)圖為待檢測的原圖, 其銹蝕目標(biāo)部分為的防火門控制箱的外殼, 圖6(b)圖為獲得的原始特征圖,圖6(c)圖為采用Elementwise add 方式進(jìn)行融合后的特征圖, 圖6(d)圖為本文特征融合方法進(jìn)行融合后的特征圖, 可以看到本文方法可以有效的抑制低能特征,提取高能特征, 從而提高檢測效果.
圖5 基于注意力機(jī)制的上采樣策略
圖6 Elementwise add 與本文方法產(chǎn)生的特征圖
由于利用目標(biāo)檢測技術(shù)對電力設(shè)備進(jìn)行故障檢測仍處于發(fā)展階段, 目前暫無公開的數(shù)據(jù)集用于電力設(shè)備銹蝕的目標(biāo)檢測目, 因此本文就已有的電力設(shè)備銹蝕圖像提出RustDetection 數(shù)據(jù)集, 該數(shù)據(jù)集圖片由架空輸電線路、電纜隧道、電表電箱等多種電力設(shè)備銹蝕故障圖片組成, 通過實地采集、網(wǎng)絡(luò)獲取等多種方式, 結(jié)合數(shù)據(jù)增加方法最終采用了600 張銹蝕圖片作為訓(xùn)練集, 200 張作為測試集, 并通過LabelImg 標(biāo)注軟件對銹蝕區(qū)域進(jìn)行標(biāo)定, 按照VOC2012 數(shù)據(jù)集的格式進(jìn)行處理, 圖7 為標(biāo)簽標(biāo)定的效果.
圖7 RustDetection 數(shù)據(jù)集
由于本文提出的銹蝕檢測的數(shù)據(jù)集樣本量不大,若直接使用該數(shù)據(jù)集進(jìn)行訓(xùn)練會導(dǎo)致網(wǎng)絡(luò)不能很快的收斂, 最終的檢測效果也不好.因此本文先利用包含共21 類的17 125 張圖片的VOC2012 通用公共數(shù)據(jù)集上進(jìn)行預(yù)訓(xùn)練, 再采用遷移學(xué)習(xí)的方法, 對本文提出的RustDetection 數(shù)據(jù)集進(jìn)行微調(diào)訓(xùn)練.
在訓(xùn)練階段, 輸入的圖像首先經(jīng)過縮放將輸入大小變?yōu)?00×300×3 的RGB 圖像, 并對其作歸一化處理后進(jìn)行訓(xùn)練, 訓(xùn)練階段在NVIDIA GTX 1080Ti GPU 上進(jìn)行.
網(wǎng)絡(luò)訓(xùn)練采用遷移學(xué)習(xí), 首先將搭建好的網(wǎng)絡(luò)模型在VOC2012 數(shù)據(jù)集上進(jìn)行300 輪訓(xùn)練, 并已經(jīng)在該數(shù)據(jù)集上擁有較好的檢測效果后移除多分類子網(wǎng)絡(luò)部分結(jié)構(gòu), 添加二分類子網(wǎng)絡(luò), 該二分類子網(wǎng)絡(luò)由6 個卷積層構(gòu)成, 分別用于6 個尺度下的目標(biāo)預(yù)測, 對該部分的參數(shù)采用Kaiming 初始化方法進(jìn)行初始化, 相比較隨機(jī)初始化而言, 該種參數(shù)初始化方法可以有效的避免激活函數(shù)的輸出值趨向于0, 從而保證網(wǎng)絡(luò)的訓(xùn)練可以順利進(jìn)行.隨后將完整的算法模型在本文提出的RustDetection 數(shù)據(jù)集上同樣采用階段性學(xué)習(xí)率的方式進(jìn)行訓(xùn)練, 即在訓(xùn)練初始階段采用大學(xué)習(xí)率, 在后期調(diào)整為小學(xué)習(xí)率, 這樣可以加速模型收斂, 加快訓(xùn)練速度.
在測試和驗證階段, 目標(biāo)圖像首先通過已經(jīng)訓(xùn)練好的算法模型, 整個模型最后輸出11 620 個候選框信息, 每個候選框包括2 個分類值(銹蝕、背景)和4 個坐標(biāo)值(候選框的中心點坐標(biāo)和長寬), 隨后過濾掉所有被識別為背景的候選框, 對剩下的目標(biāo)候選框進(jìn)行非極大值抑制, 最后選出IOU 最大的候選框作為目標(biāo)框, 完成銹蝕目標(biāo)的識別.
具體的檢測結(jié)果如圖8 所示, 其中圖8(a)為電纜隧道內(nèi)的防火門控制箱銹蝕目標(biāo)檢測結(jié)果, 圖8(b)為檢修電源箱的銹蝕目標(biāo)檢測結(jié)果, 圖8(c)為輸電線路的銹蝕目標(biāo)檢測結(jié)果, 圖8(d)為電表箱的銹蝕目標(biāo)檢測結(jié)果.銹蝕區(qū)域由彩色框進(jìn)行標(biāo)注, 左上角為該區(qū)域的分類標(biāo)簽.
為了進(jìn)一步的驗證本文提出算法在模型體量、檢測速度和檢測精度上的優(yōu)勢, 本文將分別采用VGG-16 和ResNet-50 為主干網(wǎng)絡(luò)的標(biāo)準(zhǔn)SSD 模型和本文提出基于注意力上采樣策略的輕量級SSD 模型進(jìn)行對比.本文的判別標(biāo)準(zhǔn)主要由準(zhǔn)確率(Precision), 召回率(Recall)和AP 值(Average Precision)組成, 其中準(zhǔn)確率和召回率的計算如式(1), 式(2)所示:
式中, TP 表示正樣本判定正確的個數(shù), FP 數(shù)值表示正樣本判定錯誤的個數(shù), FN 數(shù)值表示負(fù)樣本判定錯誤的個數(shù).而AP 值的計算采用VOC2007 的11-Point方法進(jìn)行計算, 11-Point 方法是結(jié)合Recall 為 [0, 0.1, 0.2,0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0], 分別找到這11 個點下的最大精度值x, 隨后按照式(3)計算平均精度:
表1 為不同的算法模型在本文RustDetection 數(shù)據(jù)集下的檢測效果對比.
圖8 銹蝕目標(biāo)檢測結(jié)果
表1 不同網(wǎng)絡(luò)模型的檢測效果對比(%)
由表1 可見, 若只采用輕量級的MobileNet 結(jié)構(gòu)對SSD 模型進(jìn)行輕量化處理, 其檢測效果會因為參數(shù)損失而變差, 而本文方法由于添加了上采樣和特征融合模塊, 可以做到有效的提升檢測效果, 甚至超越了原標(biāo)準(zhǔn)SSD 算法.不同算法結(jié)構(gòu)的模型參數(shù)量、權(quán)重大小和在Intel Core i5-7200U CPU 上的檢測時間對比如表2 所示.
表2 不同模型大小對比
綜上所述, 本文方法相較于只采用輕量級的Mobile-Net 的SSD 模型在上采樣網(wǎng)絡(luò)上擴(kuò)張了網(wǎng)絡(luò)結(jié)構(gòu), 增加了53.4%的參數(shù)量, 但是相比較擁有龐大參數(shù)量的以VGG-16 為主干網(wǎng)絡(luò)的標(biāo)準(zhǔn)SSD 模型在參數(shù)量減少63.6%, 速度提升46.7%的情況下提升10.47%的準(zhǔn)確度和5.99%的平均精度, 相比較以ResNet-50 為主干網(wǎng)絡(luò)的標(biāo)準(zhǔn)SSD 也可以做到在參數(shù)量減少66%的情況下, 提升2.98%的準(zhǔn)確度和0.43%的平均精度.
本文提出了一種基于輕量級SSD 目標(biāo)檢測模型的電力設(shè)備銹蝕目標(biāo)檢測方法, 該方法針對目標(biāo)檢測模型參數(shù)量巨大, 設(shè)備計算能力要求高等特點, 提出了一種輕量級的SSD 目標(biāo)檢測模型, 并采用了一種基于注意力模型的上采樣策略對輕量化后的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行優(yōu)化, 彌補(bǔ)了由于減少參數(shù)帶來的精度損失.本文提出的模型可以做到在大幅削減參數(shù)量的同時保證96.96%的檢測準(zhǔn)確度和71.35%的平均精度, 同時檢測時間僅為980 ms, 若設(shè)備允許可以使用GPU 加速,檢測時間僅需240 ms, 可以滿足電力系統(tǒng)安全監(jiān)控的現(xiàn)實需求.本文的進(jìn)一步工作為將網(wǎng)絡(luò)模型移植和加載進(jìn)入終端設(shè)備, 做到工業(yè)現(xiàn)場的實時監(jiān)測.