趙航航,江一,林睿,顧超越,李喆
(1. 中國南方電網(wǎng)有限責(zé)任公司超高壓輸電公司廣州局,廣東 廣州 510000;2.上海交通大學(xué) 電子信息與電氣工程學(xué)院,上海 200240)
我國電力系統(tǒng)架空輸電線路規(guī)模龐大、環(huán)境復(fù)雜、氣候多變,為保證電力系統(tǒng)安全穩(wěn)定運(yùn)行,防止事故發(fā)生,需要定期巡檢排查隱患[1]。由于地理?xiàng)l件復(fù)雜、巡檢環(huán)境惡劣,依靠人工檢測不僅費(fèi)時(shí)費(fèi)力,而且檢測效率低,難以滿足要求[2]。無人機(jī)具有操作簡單、響應(yīng)靈敏、飛行靈活、電池壽命長、成本低等優(yōu)點(diǎn),已成為電力巡檢的常規(guī)方式[3-4]。
利用無人機(jī)進(jìn)行輸電線路巡檢,不僅提高了輸電線路運(yùn)行維護(hù)的效率和質(zhì)量,而且降低了勞動(dòng)強(qiáng)度和成本,保證了線路巡檢人員的人身安全。目前,電力公司主要由人工對巡線結(jié)束后無人機(jī)采集的巡檢照片進(jìn)行識(shí)別,并對線路中的設(shè)備缺陷進(jìn)行排查。鑒于照片數(shù)量多但缺陷比例低,工作人員容易疲勞,造成漏檢。無人機(jī)作為電力系統(tǒng)的邊緣設(shè)備,具有一定的自主識(shí)別能力,提高了電力檢測的效率和質(zhì)量。
近年來,研究者針對無人機(jī)電力巡檢及缺陷圖像檢測方面作了不少相關(guān)研究[6-9],文獻(xiàn)[6]提出了建立野外路徑導(dǎo)航模型和桿塔缺陷庫,搭建了圖形化巡視功能模型,基于智能算法規(guī)劃巡檢路線,并利用北斗系統(tǒng)定位桿塔,有效提高了巡檢效率。文獻(xiàn)[7]結(jié)合深度學(xué)習(xí)算法和現(xiàn)場可編程門陣列硬件加速方法,設(shè)計(jì)了一種基于圖像識(shí)別的絕緣子前端定位系統(tǒng),目標(biāo)檢測算法采用單發(fā)多盒探測器(single shot multibox detector,SSD)算法,經(jīng)檢測可準(zhǔn)確完成對絕緣子的定位,有效提高了巡線效率。文獻(xiàn)[8]選取SSD算法,通過實(shí)驗(yàn)選取最佳骨干網(wǎng)絡(luò)并采用特征融合方法優(yōu)化算法,平均準(zhǔn)確率(mean average precision,MAP)達(dá)到90.21%。文獻(xiàn)[9]提出了基于YOLOv3-tiny的航拍絕緣子自爆自動(dòng)檢測算法,引入跳躍連接思想改進(jìn)了主干網(wǎng)絡(luò),并優(yōu)化了Anchor box參數(shù),改進(jìn)后MAP達(dá)到92.57%。
深度學(xué)習(xí)算法具有精度高、泛化能力強(qiáng)的特點(diǎn),適用于電力檢測中的故障和缺陷識(shí)別,然而龐大的計(jì)算量和復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu),使其無法直接在性能較差的嵌入式設(shè)備中運(yùn)行;因此為了在諸如巡檢無人機(jī)等設(shè)備上應(yīng)用深度學(xué)習(xí)算法,有必要簡化其網(wǎng)絡(luò)模型,從而減少算法識(shí)別所需的計(jì)算量和存儲(chǔ)空間。許多研究者開展了相關(guān)研究,提出了不少有效的壓縮方法[10-13]。文獻(xiàn)[10]對模型裁剪、輕量化網(wǎng)絡(luò)設(shè)計(jì)、知識(shí)蒸餾、量化等模型壓縮方法的性能、優(yōu)缺點(diǎn)進(jìn)行了分析總結(jié)。文獻(xiàn)[11]提出了Lasso+奇異值分解的融合壓縮法,以VGG-16作初始模型,經(jīng)過實(shí)驗(yàn)表明,該方法在保證準(zhǔn)確率的同時(shí)不僅降低了模型規(guī)模,也提升了模型的實(shí)時(shí)性。文獻(xiàn)[12]首先對權(quán)值參數(shù)進(jìn)行聚類,再在參數(shù)的聚類質(zhì)心基礎(chǔ)上添加隨機(jī)擾動(dòng)進(jìn)行參數(shù)重構(gòu),重構(gòu)模型不僅將準(zhǔn)確度提升1%~3%,且將模型體量壓縮至原來的1/4。文獻(xiàn)[13]提出一種結(jié)合半波高斯量化與交替更新的混合壓縮方法,由CIFAR-10和ImageNet數(shù)據(jù)集上實(shí)驗(yàn)證明,在模型壓縮比約為30的前提下模型精度分別提升0.87%和2.00%,加速比提高到原來的10倍。
本文介紹了應(yīng)用于電力異物檢測系統(tǒng)的深度學(xué)習(xí)模型的壓縮加速方法,旨在以盡可能低的成本,減少模型規(guī)模和模型推理計(jì)算量。壓縮方法包括模型剪枝、層融合、奇異值分解等。這些方法的特點(diǎn)是對模型識(shí)別精度影響較小,只對訓(xùn)練后的模型進(jìn)行操作而不進(jìn)行再訓(xùn)練,處理后的模型可以直接在邊緣設(shè)備中運(yùn)行。
目標(biāo)檢測算法分為一階段和二階段2種。一階段目標(biāo)檢測算法網(wǎng)絡(luò)結(jié)構(gòu)簡單,算力要求低,檢測速度快,但檢測精度較差,代表算法為SSD[14]、YOLO[15]系列;二階段目標(biāo)檢測算法算力要求高,結(jié)構(gòu)復(fù)雜,但檢測精度更高。輸電線路巡檢圖像有著背景復(fù)雜、檢測目標(biāo)尺度小、干擾因素多等特點(diǎn),需要精度高和網(wǎng)絡(luò)結(jié)構(gòu)較為復(fù)雜的深度學(xué)習(xí)算法。Faster 區(qū)域卷積神經(jīng)網(wǎng)絡(luò)( regional convolutional neural networks,R-CNN)是一種典型的2級(jí)檢測算法,主要有3個(gè)主要部分組成,即區(qū)域建議網(wǎng)絡(luò)、前置特征提取網(wǎng)絡(luò)和基于感興趣區(qū)域的分類器,F(xiàn)aster-RCNN的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。Faster-RCNN檢測精度高且檢測速度較快,適用于輸電線路設(shè)備檢測。
圖1 Faster-RCNN的網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Faster R-CNN architecture
本文的特征提取采用VGG-16[16]網(wǎng)絡(luò),在其基礎(chǔ)上添加了批量標(biāo)準(zhǔn)化(batch normalization,BN)層。在神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中,BN層可以加速網(wǎng)絡(luò)收斂和控制擬合,但增加了一些運(yùn)算操作和參數(shù);因此在推理過程中,可以通過合并BN層和卷積層的參數(shù)來減少運(yùn)算量,壓縮[17]模型部分。
BN層融合的數(shù)學(xué)原理如下:
卷積層輸出
Y=WX+bconv.
(1)
式中:W為權(quán)重;X為數(shù)據(jù);bconv為卷積層的偏差。
BN層輸入
(2)
式中:m為均值;σ為方差;s為標(biāo)度;bbn為偏差;ε為滑動(dòng)系數(shù)。
(3)
巡檢無人機(jī)作為嵌入式設(shè)備,其計(jì)算力和內(nèi)存容量有限,若想將缺陷檢測算法應(yīng)用于巡檢無人機(jī)上,必須對其進(jìn)行一定程度的壓縮與加速。本文研究模型壓縮算法,在基本保證精度不下降的基礎(chǔ)上,盡可能減少模型參數(shù)大小和算法推理速度,進(jìn)一步提升電力缺陷檢測系統(tǒng)的實(shí)用性。
1.2.1 剪枝
神經(jīng)網(wǎng)絡(luò)的運(yùn)算量由卷積層主導(dǎo)[18],研究人員提出了卷積核剪枝方法,以減少卷積的運(yùn)算量。去除無效的卷積核對模型的精度影響不大,但可以有效減少推理所需的計(jì)算量。最近人們提出了一種深神經(jīng)網(wǎng)絡(luò)的抽獎(jiǎng)假設(shè),研究人員證實(shí):稀疏子神經(jīng)網(wǎng)絡(luò)相較于原神經(jīng)網(wǎng)絡(luò),不僅有著更小的規(guī)模和計(jì)算量,且具有與原模型相似、甚至更高的測試精度[19]。
1.2.2 奇異值分解壓縮
全連接層占據(jù)了模型參數(shù)的大部分,因此壓縮全連接層有可能獲得顯著的壓縮增益。采用基于矩陣的奇異值分解(singular value decomposition,SVD)算法,在全連接層之前增加1個(gè)中間層來壓縮全連接層的參數(shù)。當(dāng)正確選擇壓縮參數(shù)時(shí),可憑借較小的精度損失換得極高的壓縮比。SVD分解的原理簡述如下。
全連通層的權(quán)值矩陣為Am×n,矩陣A的奇異值分解式
A=UΣVT.
(4)
式中:U為m×n的矩陣,m、n為常數(shù);Σ為m×n的矩陣,除主對角線上的元素外,其他元素為0,主對角線上的每個(gè)元素稱為奇異值;V為n×n的矩陣;U和V為酉矩陣。
將奇異值分解算法的平衡系數(shù)以r表示,采用奇異值分解算法在全連通層前插入中間層。中間層神經(jīng)元數(shù)目(即平衡系數(shù))為r,中間層、全連接層的壓縮權(quán)矩陣分別為U′、V′。U′是矩陣U的前r列,矩陣V′為由矩陣Σ中的前r列奇異值和矩陣V的前r行組成的平方矩陣。壓縮后,全連通層的參數(shù)個(gè)數(shù)由m×n變?yōu)閞×(n×n)。
矩陣U、Σ、V的計(jì)算方法如下。
對AAT進(jìn)行特征分解,得到的特征值和特征向量滿足
(5)
對ATA進(jìn)行特征分解,得到的特征值和特征向量滿足
(ATA)vi=λivi.
(6)
式中:vi為特征向量;λi為特征值。將所有特征向量組合成n×n的矩陣,即為矩陣V。
矩陣Σ的對角線是按降序排列的奇異值σi,其余位置為0,其中奇異值σi由式(7)計(jì)算得到。
σiui=Avi.
(7)
本文實(shí)驗(yàn)所使用的軟硬件配置如下:Ubuntu16.04 64位操作系統(tǒng)、Intel i7-8700K CPU、NVIDIA GTX 1080Ti GPU、深度學(xué)習(xí)框架Caffe和編程語言Python。
本實(shí)驗(yàn)旨在研究每一步的壓縮或加速效應(yīng)。選取無人機(jī)巡檢輸電線路圖像檢測作為應(yīng)用場景,包括鳥巢、絕緣子、連接螺栓。樣本由巡檢無人機(jī)或變電站固定攝像頭拍攝,圖像分辨率為1 500×900像素。電力領(lǐng)域尚無可用的公共數(shù)據(jù)集,數(shù)據(jù)量有限,故利用圖像水平翻轉(zhuǎn)、微調(diào)圖像亮度、對比度等方式,增強(qiáng)模型泛化能力。具體樣本數(shù)量及分布見表1,訓(xùn)練后生成檢測模型,部分檢測結(jié)果如圖2所示。
圖2 測試結(jié)果Fig.2 Test results
表1 數(shù)據(jù)集構(gòu)成Tab.1 Data set composition
首先將每個(gè)BN層與卷積層融合,該步在數(shù)學(xué)上與原模型是等價(jià)的,所以不會(huì)造成任何精度損失。
由于caffe模型的結(jié)構(gòu)限制,需要對卷積核的權(quán)值進(jìn)行2次遍歷。第1次遍歷的目的是找到權(quán)重低于閾值的濾波器(它們被視為空閑濾波器),根據(jù)遍歷結(jié)果,修改模型對應(yīng)的prototxt文件(即網(wǎng)絡(luò)結(jié)構(gòu)文件)。第2次遍歷將清除空閑濾波器,并對模型進(jìn)行SVD。SVD是刪除冗余參數(shù)的操作,對于不同的模型,即使網(wǎng)絡(luò)結(jié)構(gòu)相同,使用SVD壓縮后也可能產(chǎn)生不同的效果;因此對于特定的模型,需要嘗試不同的SVD平衡系數(shù)r以確定最佳的壓縮效果。
VGG-16具有13個(gè)卷積層,相應(yīng)地包含13個(gè)BN層,BN層中的參數(shù)數(shù)目很少。實(shí)驗(yàn)發(fā)現(xiàn),BN層合并后,模型尺寸減小了10 KB,計(jì)算量略有下降。實(shí)驗(yàn)測試發(fā)現(xiàn):權(quán)重小于10-9的卷積濾波器很難起到推理的作用,因此將被移除;遍歷各卷積層后,各層濾波器權(quán)重低于該閾值的空閑濾波器數(shù)量見表2。
表2 每層空閑過濾器的數(shù)量Tab.2 The number of idle filters
去除空閑濾波器后,測試集上的識(shí)別精度和置信度沒有顯著變化;從算法模型規(guī)模上看,去掉空閑濾波器后,模型大小下降340 KB,壓縮效果不明顯,但在減少計(jì)算量方面效果比較明顯,見表3。卷積層的計(jì)算量
表3 每層計(jì)算量減少值Tab.3 Reduction of calculation amount of each layer
CA=(I×J)(M×N)KL.
(8)
式中:I×J表示卷積核的大小,I、J為常數(shù),在VGG-16中為3×3;M×N表示輸出特征映射的大小,M、N為常數(shù);K為輸入通道的數(shù)目;L為輸出通道的數(shù)量。
模型的原始計(jì)算量為3.67×1012,而該操作減少了計(jì)算量6.73×1011,卷積層上的計(jì)算量減少了18.3%。
在模型的全連通層上進(jìn)行SVD,平衡系數(shù)r隨模型的變化而變化,因此通過實(shí)驗(yàn)嘗試了一系列的平衡系數(shù)r值。模型的尺寸由模型結(jié)構(gòu)決定,檢測目標(biāo)類別和數(shù)量對其影響很小,不同平衡系數(shù)對應(yīng)的模型尺寸如圖3所示。VGG-16有2個(gè)全連接層,故有2個(gè)r值(r1和r2),隨著r1和r2的減小,模型的大小顯著減小。
圖3 不同平衡系數(shù)對應(yīng)的模型尺寸Fig.1 3. Model size corresponding to different balance coefficient
圖4給出了模型的識(shí)別效果的變化圖例:當(dāng)r1和r2均取為16時(shí),模型識(shí)別的效果沒有顯著變化,仍可以準(zhǔn)確檢測目標(biāo),如圖4(a)所示;當(dāng)r1和r2均取為8時(shí),鳥巢檢測矩形框的位置有所移動(dòng),且產(chǎn)生多個(gè)矩形框,如圖4(b)所示;當(dāng)r1和r2均取為4時(shí),發(fā)生誤識(shí)別,如圖4(c)所示;當(dāng)r1和r2分別取為2和4時(shí),該算法基本失去檢測能力,如圖4(d)所示。
圖4 具有不同平衡系數(shù)r的模型檢測效果Fig.4 Detection effects of the model with with different balance coefficients
由上述實(shí)驗(yàn)可知:對于本實(shí)驗(yàn)所使用的模型,r1和r2均取為16時(shí),可以在基本不影響識(shí)別性能的情況下有效地壓縮模型,此時(shí)識(shí)別效果幾乎與原模型相同,而模型規(guī)模已經(jīng)從約550 MB下降至約71 MB。對于不同的模型,需要通過多次實(shí)驗(yàn)來尋找合適的r值,以保證在基本不損失精度的情況下盡可能的壓縮模型規(guī)模。
本文介紹了一些深度學(xué)習(xí)模型壓縮和加速的方法,所有方法都不需要重新訓(xùn)練模型。
通過將BN層與卷積層合并,可以略微減少模型的參數(shù)個(gè)數(shù)和計(jì)算量,同時(shí)識(shí)別精度不受影響;適當(dāng)?shù)募糁梢杂行У販p少計(jì)算量而基本不影響識(shí)別精度,本文使用剪枝技術(shù)將卷積層的計(jì)算復(fù)雜度降低了18%。利用SVD對模型進(jìn)行壓縮可以明顯減少模型參數(shù)量,從而顯著減小算法模型的規(guī)模。本文使用SVD,在保證識(shí)別性能的前提下,使模型的規(guī)模減少了87%。
為了保證模型的識(shí)別率盡可能不受影響,本文只選擇了幾種易于控制、對精度影響較小的優(yōu)化方法,這些方法不需要再訓(xùn)練即可減少大量工作量。在深度學(xué)習(xí)領(lǐng)域尚有很多有效的方法,如果能夠針對電力行業(yè)的特點(diǎn)進(jìn)行特別優(yōu)化,則相應(yīng)的優(yōu)化模型能夠達(dá)到更好的壓縮和加速效果。