林唯賢
(中國(guó)石油大學(xué)(華東)計(jì)算機(jī)與通信工程學(xué)院,青島 266580)
紅外熱像儀很早就應(yīng)用于電力設(shè)備的檢修上,但是,目前電力系統(tǒng)中最主要的狀態(tài)檢測(cè)方式是由技術(shù)人員手持熱像儀現(xiàn)場(chǎng)診斷或者采集圖片分析.對(duì)于規(guī)模龐大的變電站,僅靠人工診斷任務(wù)繁重、效率低,并且具有一定的安全風(fēng)險(xiǎn).據(jù)統(tǒng)計(jì),電力系統(tǒng)故障事故中高達(dá)90%是由于電力設(shè)備故障引起,而發(fā)生故障的電力設(shè)備中將在故障早期階段呈現(xiàn)出異常的過(guò)熱癥狀[1],因此為保證電力系統(tǒng)安全運(yùn)行,對(duì)電力設(shè)備的狀態(tài)檢修、故障診斷提出了更高的要求.紅外成像技術(shù)是通過(guò)探測(cè)器檢測(cè)目標(biāo)物體表面發(fā)射出來(lái)紅外輻射,將它轉(zhuǎn)化成與之相應(yīng)的電信號(hào),再通過(guò)專門(mén)的電信號(hào)處理系統(tǒng),獲得物體表面的溫度分布,因此紅外成像技術(shù)十分適用于電力設(shè)備因異常過(guò)熱癥狀所導(dǎo)致故障狀態(tài)檢測(cè).
隨著深度學(xué)習(xí)和新型傳感器于信息技術(shù)的融合得到廣泛研究和認(rèn)可,并應(yīng)用于實(shí)際場(chǎng)景中[2],因此,可以通過(guò)巡檢機(jī)器人搭載低功耗嵌入式設(shè)備來(lái)實(shí)現(xiàn)實(shí)時(shí)視頻處理的無(wú)人電力設(shè)備智能巡檢,降低作業(yè)人員的安全風(fēng)險(xiǎn),代替繁重的人工巡檢,以提高巡檢的自動(dòng)化智能化.低功耗的嵌入式設(shè)備可以搭載實(shí)時(shí)視頻框架來(lái)實(shí)現(xiàn)監(jiān)控、巡檢等任務(wù),但是嵌入式設(shè)備有限的硬件資源使得無(wú)人離線巡檢、監(jiān)控等任務(wù)難以推廣.在本文中,我們基于深度可分離卷積設(shè)計(jì)一個(gè)高效的卷積模塊,并改進(jìn)主流的目標(biāo)檢測(cè)算法,可在嵌入式設(shè)備上實(shí)現(xiàn)實(shí)時(shí)電力設(shè)備目標(biāo)檢測(cè).
本文分為四個(gè)章節(jié),第1 節(jié)描述現(xiàn)有的紅外圖像目標(biāo)檢測(cè)算法和深度學(xué)習(xí)模型壓縮優(yōu)化;第2 節(jié)描述適用于單個(gè)嵌入式設(shè)備的高效卷積神經(jīng)網(wǎng)絡(luò)設(shè)計(jì);第3 章節(jié)為實(shí)驗(yàn)評(píng)估;第4 章節(jié)給出了結(jié)論和展望.
要實(shí)現(xiàn)視頻實(shí)時(shí)電力設(shè)備檢測(cè)的首要步驟就是將視頻流解碼成幀,運(yùn)用目標(biāo)檢測(cè)算法從圖像中檢測(cè)出電力設(shè)備.
傳統(tǒng)的方法是從紅外圖像中找出感興趣的區(qū)域,中區(qū)域中提取信息進(jìn)行分析匹配.使用傳統(tǒng)方法關(guān)鍵在于,獲得感興趣的區(qū)域的質(zhì)量決定了能否較好的獲得電力設(shè)備狀態(tài)的信息.Huda 等[3]使用簡(jiǎn)單的閾值分割來(lái)獲得感興趣區(qū)域.Jaffery 等[4]對(duì)紅外圖像采用數(shù)學(xué)形態(tài)學(xué)處理和閾值分割的方法來(lái)獲得感興趣區(qū)域.門(mén)洪等[5]先對(duì)紅外圖像采用變換結(jié)合的方法來(lái)增強(qiáng)圖片,增強(qiáng)后的圖片采用CA 算法進(jìn)行邊緣提取并使用二值化處理,最后和OTSU 算法分割后的紅外圖像進(jìn)行融合.Korman 等[6]提出FAsT-Match(Fast Affine Template Matching),在二維放射變換下減小SAD 誤差,達(dá)到近似全局最優(yōu)的快速仿射變換匹配算法.可以看出,目前的電力設(shè)備紅外圖像檢測(cè)的算法較少,傳統(tǒng)的方法需要人工提取和設(shè)計(jì)每個(gè)設(shè)備的特征,將這些特征應(yīng)用到分類器來(lái)獲得匹配結(jié)果,但是人工提取和設(shè)計(jì)特征消耗大量的時(shí)間和經(jīng)歷,且傳統(tǒng)算法不很好的將目標(biāo)和背景區(qū)分出來(lái).
深度學(xué)習(xí)能夠克服傳統(tǒng)方法的缺陷,通過(guò)逐層的特征變換,將蘊(yùn)含于數(shù)據(jù)中的信息映射到新的特征空間上,讓計(jì)算機(jī)自動(dòng)的學(xué)習(xí)到高層的特征[7],隨著數(shù)據(jù)量的增加而增強(qiáng)學(xué)習(xí)的效果,獲得更高的匹配精度,這些特征并且擁有較好的魯棒性.
R-CNN(Region CNN)[8]最先使用深度學(xué)習(xí)進(jìn)行目標(biāo)檢測(cè).R-CNN 提取某些區(qū)域,對(duì)這些區(qū)域提取特征,相比較傳統(tǒng)目標(biāo)檢測(cè)算法使用人工設(shè)計(jì)的特征,RCNN 使用海量數(shù)據(jù)來(lái)訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò),并使用卷積神經(jīng)網(wǎng)絡(luò)來(lái)提取特征.SPP-Net[9]提出金字塔池化,接在最后一個(gè)卷積層,實(shí)現(xiàn)網(wǎng)絡(luò)模型輸入任意圖片并且輸出固定大小.Fast-R-CNN[10]訓(xùn)練方式簡(jiǎn)單,基于多任務(wù)的損失函數(shù)設(shè)計(jì),不需要再設(shè)計(jì)SVMs.Faster-RCNN[11]使用RPN 候選框提取網(wǎng)絡(luò),之后是用Fast-RCNN 進(jìn)行目標(biāo)檢測(cè),訓(xùn)練時(shí)RPN 和Fast-R-CNN 共享卷積層權(quán)重降低時(shí)間消耗并提高候選框的質(zhì)量.YOLO(You Only Look Once)[12]對(duì)目標(biāo)檢測(cè)使用回歸方式,采用一個(gè)單對(duì)單的卷積神經(jīng)網(wǎng)絡(luò)模型來(lái)實(shí)現(xiàn)端對(duì)端(End-to-End)的目標(biāo)檢測(cè),YOLO9000[13]可以識(shí)別超過(guò)9000中目標(biāo)類別.
深度神經(jīng)網(wǎng)絡(luò)復(fù)雜、訓(xùn)練大、計(jì)算量、參數(shù)量大,模型的部署需要非常強(qiáng)大的硬件設(shè)備,嵌入式設(shè)備由于硬件限制只能部署淺層神經(jīng)網(wǎng)絡(luò),目標(biāo)檢測(cè)精度受到限制.要實(shí)現(xiàn)工程化,需要研究深度網(wǎng)絡(luò)模型的壓縮、降低內(nèi)存占用、降低功耗、減少計(jì)算量和參數(shù)量.剪枝(Pruning)是對(duì)網(wǎng)絡(luò)連接的裁剪,只保留重要性高的連接,對(duì)模型的參數(shù)進(jìn)行量化(Quantization)以減少模型的體積,還可以使用哈夫曼編碼(Huffman Coding)壓縮模型[14].卷積神經(jīng)網(wǎng)絡(luò)計(jì)算大部分集中在卷積操作,因此壓縮模型、提高效率需要設(shè)計(jì)新型的網(wǎng)絡(luò)結(jié)構(gòu),谷歌公司提出的MobileNet[15]根據(jù)Sifre[16]提出深度可分離卷積(Depthwise Separable Convolutions)將常規(guī)的卷積分解,對(duì)每個(gè)通道單獨(dú)計(jì)算后再進(jìn)行線性組合,顯著降低了模型的計(jì)算量和參數(shù)量.
在這一部分內(nèi)容介紹設(shè)計(jì)高效的深度神經(jīng)網(wǎng)絡(luò),基于深度可分離卷積與組逐點(diǎn)群卷積和目標(biāo)檢測(cè)算法部署在Jeston TX1 上,以實(shí)現(xiàn)離線紅外熱像儀實(shí)時(shí)電力設(shè)備檢測(cè).
常規(guī)的卷積神經(jīng)網(wǎng)絡(luò)大部分計(jì)算都集中在卷積操作上,因此減少網(wǎng)絡(luò)模型的復(fù)雜都、減少模型的計(jì)算量和減少模型大小的關(guān)鍵是設(shè)計(jì)高效的卷積層.深度可分離卷積[16](Depthwise Separable Convolutions),它是分解卷積的一種形式,它將常規(guī)卷積分解為Depthwise卷積和稱為Pointwise 卷積的1×1 卷積.Depthwise 卷積將單個(gè)濾波器應(yīng)用于每個(gè)輸入通道中.隨后Pointwise卷積使用1×1 卷積來(lái)組合Depthwise 卷積.常規(guī)卷積在一個(gè)步驟將過(guò)濾并將輸入合并成一組新的輸出.而深度可分離卷積將常規(guī)卷積分成兩層,一層用于過(guò)濾,另一層用于合并.這種分解的卷積層在減少模型的計(jì)算量和模型大小效果顯著.
常規(guī)的卷積層輸入一個(gè)特征圖(Feature Map)F的大小為f×f×m生成一個(gè)f×f×n的特征圖G.其中f是輸入的特征圖的寬度和高度,m是輸入通道數(shù),n 是輸出通道數(shù).常規(guī)的卷積層通過(guò)卷積核K參數(shù)化,K的大小為k×k×m×n,k為空間維度.
假設(shè)Padding 和Stride 為1,常規(guī)卷積的計(jì)算公式為:
所以常規(guī)的卷積計(jì)算消耗為:
常規(guī)卷積操作具有通過(guò)卷積核過(guò)濾特征并結(jié)合特征來(lái)生成新的效果.深度可分離卷積將常規(guī)卷積分成兩個(gè)步驟來(lái)減少計(jì)算量和壓縮模型體積.深度可分離卷積由Depthwise 卷積和Pointwise 卷積這兩層組成,depthwise 卷積對(duì)每個(gè)輸入通道使用單個(gè)Filter,隨后使用1×1 卷積也就是Pointwise 卷積來(lái)創(chuàng)建一個(gè)深度層輸出的線性組合.對(duì)這兩個(gè)層都使用batchnorm 和ReLU.
Depthwise 卷積對(duì)每個(gè)輸入通道使用單個(gè)Filter 計(jì)算公式為:
所以Depthwise 卷積的計(jì)算量為:
Depthwise 卷積相對(duì)于常規(guī)卷積只過(guò)濾輸入通道不會(huì)將它們組合起來(lái)成一個(gè)新的特征.因此,為了得到這些新特征,需要使用Pointwise 卷積也就是1×1 卷積將Depthwise 卷積的輸出再進(jìn)行結(jié)合.
所以深度可分離卷積的計(jì)算量為Depthwise 卷積計(jì)算量與Pointwise 卷積計(jì)算量之和:
所以深度可分離卷積與常規(guī)卷積的計(jì)算量之比為:
本文基于Depthwise 卷積與Pointwise Group 卷積和Channel Shuffle[17]的基礎(chǔ)上設(shè)計(jì)一個(gè)高效的卷積模塊.圖1(a)表示常規(guī)的卷積操作,常規(guī)的卷積層后面接BatchNorm[18]和ReLU,圖1(b)表示Depthwise 卷積與Pointwise 卷積的使用方式,一般在Depthwise 卷積與Pointwise 卷積后面連接BatchNorm 和ReLU.
圖1(c)是本文設(shè)計(jì)的卷積模塊.Depthwise 卷積沒(méi)有改變通道數(shù)的能力,上一層通道數(shù)量少,則Depthwise 卷積只能在低維空間中提取特征,效果不顯著.為了改善這個(gè)問(wèn)題,在每個(gè)Depthwise 層前加一個(gè)Pointwise 卷積用來(lái)提升維度,獲得更多的特征.
圖1 卷積模塊對(duì)比
如表1所示,MobileNets 在Pointwise 卷積也就是1×1 卷積中花費(fèi)94.86%的計(jì)算時(shí)間也包含了整個(gè)網(wǎng)絡(luò)74.59%的參數(shù).
Pointwise 卷積耗時(shí)且容易造成有限的通道之間充滿約束損失精度,使用Pointwise Group 卷積,也就是帶組的卷積核為1×1的卷積來(lái)建立通道稀疏連接.在多層Pointweise 卷積堆疊,模型的信息流被分割在各個(gè)組內(nèi),引入Channel Shuffle[17],使各組間信息能相互交流,并且降低卷積運(yùn)算的跨通道計(jì)算量和錯(cuò)誤率.第二個(gè)Pointwise Group 卷積用來(lái)降維,激活函數(shù)在高位空間能夠有效增加非線性,而在低維空間會(huì)破壞特征[19],于是如圖1(c)第二個(gè)Pointwise Group 卷積后接一個(gè)Linear Bottleneck.卷積神經(jīng)網(wǎng)絡(luò)大部分計(jì)算都集中在卷積操作上,設(shè)計(jì)出來(lái)的卷積模塊包含一個(gè)Depthwise卷積與兩個(gè)1×1 卷積,因此該卷積模塊與常規(guī)的卷積計(jì)算量之比為:
表1 MobileNets 各網(wǎng)絡(luò)層類型的資源
如今先進(jìn)的目標(biāo)檢測(cè)算法都會(huì)生成一系列假設(shè)的候選框,從這些候選框中提取特征,最后將這些特征輸入到分類器中來(lái)判斷候選框分目標(biāo)類別.對(duì)于資源有限的嵌入式設(shè)備來(lái)說(shuō),這些目標(biāo)檢測(cè)的方法計(jì)算量大,耗時(shí)長(zhǎng),對(duì)于單個(gè)嵌入式設(shè)備難以實(shí)現(xiàn)實(shí)時(shí)檢測(cè).
SSD(Single Shot MultiBox Detector)[20]取消中間的候選框和像素特征的重采樣過(guò)程,保證速度的同時(shí)保證了檢測(cè)的精度.SSD 輸出一系列離散化的候選框,候選框生成在不同層上的特征圖且長(zhǎng)寬比不同,經(jīng)過(guò)卷積神經(jīng)網(wǎng)絡(luò)的前饋操作,SSD 生成一系列固定大小的候選框,使用小卷積Filter 來(lái)預(yù)測(cè)候選框位置中的目標(biāo)類別和偏移即候選框中包含目標(biāo)種類的概率,最后通過(guò)極大值抑制方法得到最終的預(yù)測(cè)結(jié)果.
為了使SSD 適用于嵌入式設(shè)備,我們對(duì)SSD 進(jìn)行改進(jìn).如圖2所示SSD 以VGG-16網(wǎng)絡(luò)為基礎(chǔ),第6 層和第7 層由全連接層改為卷積層,后接三個(gè)卷積層與平均池化層作為特征提取層.我們改進(jìn)的SSD 使用Mobilenet 取代VGG-16 作為SSD的基礎(chǔ)網(wǎng)絡(luò)結(jié)構(gòu),并且保留Conv7,并將第7 至第10 層標(biāo)準(zhǔn)的卷積層換成2.2 節(jié)所提出的卷積模塊,并且不斷調(diào)整S S D網(wǎng)絡(luò)的參數(shù),調(diào)整迭代次數(shù)和學(xué)習(xí)率等超參數(shù),以獲得最優(yōu)的檢測(cè)精度.
圖2 改進(jìn)SSD 與SSD 結(jié)構(gòu)對(duì)比
實(shí)驗(yàn)數(shù)據(jù)集由變電站采集而來(lái),包含紅外圖像11835 張.為了增加訓(xùn)練樣本的數(shù)量以及數(shù)據(jù)樣本的多樣性,對(duì)采集到紅外圖像數(shù)據(jù)集進(jìn)行增強(qiáng),將數(shù)據(jù)集中的圖像水平和豎直方向分別平移0,+1,+2,+4,+6,+8,-1,-2,-4,-8個(gè)像素,圖像內(nèi)正時(shí)針、逆時(shí)針旋轉(zhuǎn)0o,15o,30o,45o,用人工標(biāo)注方法對(duì)數(shù)據(jù)集進(jìn)行標(biāo)注,將數(shù)據(jù)集分為訓(xùn)練集、驗(yàn)證集、測(cè)試集三部分.
Jetson TX1 擁有先進(jìn)嵌入式計(jì)算機(jī)視覺(jué)系統(tǒng),表2 列出了Jeston TX1的硬件資源.本文的實(shí)驗(yàn)將使用單個(gè)TX1 進(jìn)行開(kāi)發(fā),部署本文設(shè)計(jì)的改進(jìn)的輕量級(jí)SSD 算法.
表2 Jetson TX1 硬件資源
本次實(shí)驗(yàn)通過(guò)讀取紅外熱像儀的視頻流解碼成幀,在Jeston TX1 平臺(tái)運(yùn)行視頻目標(biāo)檢測(cè)算法,對(duì)各類目標(biāo)檢測(cè)算法的速度方面進(jìn)行比較,電力設(shè)備的檢測(cè)例子如圖3所示.
表3 目標(biāo)檢測(cè)算法速度ms/幀
表3 顯示用我們改進(jìn)的SSD 算法與Tiny YOLO YOLOv2、SSD、SSD 與MoblieNets 結(jié)合的目標(biāo)檢測(cè)算法在Jeston TX1 平臺(tái)上讀取紅外熱像儀進(jìn)行電力設(shè)備檢測(cè)單幀圖像耗時(shí)的比較.YOLOv2 和SSD 都是目前主流的目標(biāo)檢測(cè)算法,由于計(jì)算量大耗時(shí)多,不適用于單個(gè)Jeston TX1 上部署模型.Tiny YOLO 在YOLO的基礎(chǔ)上,刪除了中間的網(wǎng)絡(luò)層來(lái)達(dá)到加速的目的,代價(jià)是網(wǎng)絡(luò)層數(shù)少,損失精度大.MobileNets-SSD 改進(jìn)了卷積模塊,降低了計(jì)算花費(fèi)和參數(shù)量.而我們改進(jìn)的SSD 算法,設(shè)計(jì)了高效的卷積模塊,保留了網(wǎng)絡(luò)的深度的同時(shí)顯著的提升了速度并且提高各組間信息的交流降低卷積運(yùn)算的跨通道計(jì)算量.
圖3 檢測(cè)結(jié)果
小型高效的深度神經(jīng)網(wǎng)絡(luò)模型對(duì)于檢測(cè)、識(shí)別等計(jì)算機(jī)視覺(jué)任務(wù)具有重要意義,消費(fèi)類產(chǎn)品很多都是基于嵌入式的終端產(chǎn)品,計(jì)算資源有限,對(duì)于實(shí)時(shí)視頻檢測(cè)任務(wù)來(lái)說(shuō)是一個(gè)巨大的挑戰(zhàn).我們基于深度可分離卷積設(shè)計(jì)了高效的卷積模塊,并改良了主流的目標(biāo)檢測(cè)算法.實(shí)驗(yàn)證明,在TX1 上我們的模型能滿足電力設(shè)備實(shí)時(shí)檢測(cè)的要求,保持網(wǎng)絡(luò)深度的同時(shí)顯著的提高了運(yùn)行速度.接下來(lái)的研究工作是如何提高模型的精度.