郭 鋒,柳 駿,王裘瀟,徐 海,萬廣雷
(1.國網浙江省電力有限公司 a.設備部,b.臺州供電公司,杭州 310007;2.國網信通產業集團 安徽繼遠軟件有限公司,合肥 230088)
隨著人工智能技術的發展與進步,基于圖像識別技術的無人機巡檢在電力系統獲得了廣泛的應用.與傳統的人工巡檢相比,無人機巡檢技術顯著提高了輸電線路巡檢的工作效率,減少了作業人員的工作量,對于復雜和危險區域的巡檢工作具有獨特的優勢.
基于卷積神經網絡的圖像識別技術在無人機巡檢[1-2]及電力系統故障分析[3-4]方面得到了廣泛的關注與應用[5-6].劉萬軍等[7]通過構建自適應卷積神經網絡增強模型,實現了基于迭代次數和識別結果的權值優化;林剛等[8]提出了一種基于強泛化的卷積神經網絡,通過對濾波器參數的控制實現了對輸電線路覆冰層厚度的有效識別;王淼等[9]通過采用閾值分割和邊緣檢測的方法,實現了絕緣子缺陷的自動偵測識別;王萬國等[10]通過對DPM、SPPnet和Faster R-CNN識別算法的分析對比,最終利用Faster R-CNN實現了電力小部件的定位識別.
隨著問題復雜度的增加,人工神經網絡的學習能力和分類能力也日益提升,即導致卷積神經網絡規模的增加[11-12].為了實現對電力系統電網故障的無人機在線監測,降低系統運行過程中硬件資源消耗,本文利用FPGA硬件資源的可重構特性,研究了一種針對電網巡檢故障識別的低功耗神經網絡加速方法.該方法采用直接映射的方式,將卷積層和全連接層的計算分別映射至獨立的計算核心,實現不同運算特征與硬件資源之間的匹配,從而提高系統資源利用效率.
基于卷積神經網絡的圖像識別技術是一種兼具計算密集型和數據密集型特征的人工智能技術.系統在實際運行過程中,不僅需要消耗大量的計算機資源,且運行過程耗時多、功耗大.通過對卷積神經網絡運行過程的分析發現,其對輸入圖像進行初步處理的卷積層具有計算密集型特征;而位于神經網絡末端的全連接層,則具有數據密集型特征.
將卷積層輸入特征圖像由R、C、M三個特征參數來表示,其中,R與C分別表示圖像的長和寬,M表示特征圖像的數量.卷積核由參數K與S表示,其中,卷積核尺寸為K,卷積步長為S,則輸入特征圖像的長與寬即可表示為RS+K和CS+K,輸入特征圖像的數量為N.
分析卷積運算過程可知,計算機在進行卷積處理的過程中包含了6層基本循環,具有大量的重復運算過程.但各個運算過程具有一定的獨立性,程序的運行順序不會對計算結果產生影響.因此可以利用循環分片與增加計算并行度的方法,提高計算速度和硬件資源的利用效率.
全連接層用于對圖像特征進行分類,假設xi為全連接層的輸入神經元,yj為輸出神經元,對應的權值數據為wij,則yj可表示為
(1)
全連接層的每個輸入神經元均與所有的輸出神經元相連,因此需要使用大量的權值數據.若能夠采用批處理的方式增加權值數據復用度,或利用平衡剪枝技術來消除數據冗余,則可以大幅度提高系統的計算效率.
由于FPGA具有高度的硬件可重構特性,因此本文將卷積神經網絡的不同網絡層進行單獨部署.并根據上文的分析做出有針對性的優化,進而提升軟硬件之間的適配性.
卷積神經網絡加速器由控制模塊、數據傳輸模塊和計算模塊3部分組成.為了提升加速器的運行效率,將前一個計算核心的輸出直接作為后續計算的輸入.此外,通過挖掘網絡層間并行度,可以降低各核心對權值數據的緩存容量需求.
對卷積運算進行循環展開時,將卷積神經網絡中間層及輸出層部分循環進行分片,形成多個子循環,每個子循環的大小分別為Tm和Tn.考慮到輸入圖像參數較大,因此對該層循環進行大小為Th的分片計算.通過對原算法循環進行展開,使得卷積層計算并行度變為Tm×Tn×Th,與之相對應的,權值緩存容量需設定為Tm×N×K2.通過以上循環展開策略,可以使每個權值數據的復用度達到R×C.
全連接層分片循環展開計算過程與之類似,將原先大小為M與N的循環分別進行Tm和Tn的循環展開.設置FPGA上的處理核心數量為Tm,并令各處理核心的輸入和乘法器數量為Tn,使系統的計算并行度變為Tm×Tn.
在全連接層運算并行度為Tm×Tn的情況下,可以將權值緩存的大小也設置為相同值.為了提升計算效率,本文將全連接層的輸入特征數據全部緩存在FPGA上.
全連接層屬于數據密集型計算,計算過程中需要訪問大量的權值數據.為了緩解片外訪存壓力,本文采用平衡剪枝技術對其進行優化.
設有兩個輸出神經元y1、y2,兩個神經元對應的權值數量分別為w1和w2時,當w1>w2,則對y1所對應的權值數據進行裁剪;反之,則對y2對應的權值數據裁剪.在此基礎上,通過多次重訓練彌補精度損失.
對于剪枝后的全連接層可分別設置一個權值矩陣和信息矩陣,用于保存剪枝后的剩余權值及權值矩陣的索引值.全連接層的計算核心結構如圖1所示.與卷積層計算核心相比,該結構增加了雙索引緩存和輸入神經元選擇器.通過該結構,可以有效消除全連接層的計算、存儲、訪存冗余.

圖1 全連接層計算核心結構
考慮到卷積層與全連接層輸入特征數據量的差異,本文對卷積層和全連接層采取不同的批處理模式,以提高計算的效率.
卷積層輸入數據量較多,各卷積層對不同前饋輸入數據按照非批處理模式依次計算.而全連接層輸入數據量較少,可以等待卷積層完成計算后,再以批處理的方式對其進行集中處理.
半批處理模式下,假設全連接層進行一次批處理的數據量為G,則權值數據的復用度將增加G倍.因此采用半批處理技術時,全連接層計算核心的緩存大小為該層輸入特征數據的尺寸乘以G.
計算機硬件設計領域,通常采用Roofline模型用來分析系統的性能.本文利用Roofline模型,通過構建組合優化模型來確定最優并行策略.
設FPGA部署的網絡模型共有α個網絡層、β個卷積層,則全連接層有α-β個.卷積層計算核心的并行優化設計參數為Tm、Tn、Th;全連接層計算核心的并行優化設計參數為Tm、Tn、B,其中,B為批處理的大小,因此變量函數表示為
x=(Tmi,Tni,Thi,B),i∈[1,α]
(2)
實際加速器部署中,各運算核心除了滿足循環展開的限制條件外,還需滿足FPGA平臺硬件資源的限制.
首先,各個計算并行度要滿足其對應的循環大小的限制;其次,各個計算核心的內積單元計算利用率需滿足σ≥0.8.
FPGA緩存的約束條件需要考慮緩存容量和訪問并發度兩方面因素.首先,各計算核心的緩存總容量需要滿足目標FPGA平臺的片上塊存儲器生產器(BRAM)容量約束,即
(3)
式中:θBRAM為BRAM的容量大小;E為權值緩存大??;F為輸入緩存大??;I為索引緩存容量;i∈[1,β]時用于卷積層的權值緩存計算;i∈[β+1,α]時用于全連接層的權值緩存計算.
設全連接層每個索引緩存數據大小為a,則索引緩存容量為
Ii=aTmiTni
(4)
數據的訪問并發度受FPGA平臺BRAM的數量約束,可表示為
(5)
式中:JBRAM為FPGA平臺上BRAM的數量;A為權值緩存的訪問并發度;D為輸入緩存的訪問并發度;Z為全連接層的索引緩存訪問并發度.
由Roofline模型可知,計算機平臺的計算量和訪問量決定了其理論計算性能的上限.本文設置目標函數為f1和f2,其中f1用于表征計算吞吐量,f2用于表征系統的訪存比,其表達式分別為
(6)
(7)
式中:Ui、Vi、Hi、Li及Ki分別為Tmi、Tni、Thi、Ei及Fi的上限值;Tmj、Tnj、Thj分別為第j個層間流水級對應的循環展開的大小;w為硬件的工作頻率;P為卷積層輸入數據的訪存總量;Q為輸出數據的訪存總量;Wconv為卷積層的權值數據;Wfc為全連接層的權值數據的片外訪存量;NINDEX為全連接層索引數據訪存總量.
為了求解上述組合優化模型,本文采用遺傳算法對變量空間進行搜索求解.將并行變量以整型數組的形式編碼為染色體,變量個數為染色體長度,設置遺傳算法的交叉概率為0.75,變異概率為0.15.種群大小設置為變量個數的150倍,進化代數為500.此外,使用FPGA進行片上系統設計的過程中,還需綜合考慮硬件資源開銷、時鐘頻率限制等影響因素.因此在使用遺傳算法的基礎上,還需要對結果進行篩選,以確定系統的最優性能.
為了驗證模型的有效性,本文分析了LetNet-5和AlexNet卷積神經網絡在同類型FPGA平臺上優化前后的工作性能,以說明文中提出的設計方案的性能.
本文使用了Rainman Accelerator加速卡,其具有Cortex-A9雙核處理器,1 GB DDR4板載內存和1 GB Flash存儲器,支持使用RainBuilder編譯器開發平臺對其進行開發.在Rainman FPGA平臺上,按照本文所提出的優化方案對LetNet-5和AlexNet卷積神經網絡進行部署,優化參數分別如表1和表2所示.同時以未優化的卷積神經網絡作為對照組,對無人機采集到的同一組電網巡檢故障圖片進行特征識別分析.

表1 LetNet-5卷積神經網絡并行優化參數

表2 AlexNet卷積神經網絡并行優化參數
在優化后的Rainman FPGA平臺上對目標檢測模型進行訓練,實驗結果如圖2所示.LetNet-5與AlexNet卷積神經網絡的運行峰值吞吐量可達750億次/s和900億次/s.與之相比,優化前的峰值吞吐量僅有560億次/s和600億次/s,運行峰值吞吐量分別提高了34%和50%.可以看出,原有的神經網絡模型層間流水計算過程占用了大量資源.通過挖掘層間計算的并行性,對神經網絡進行分片計算,能夠充分挖掘FPGA平臺的計算性能.

圖2 系統峰值吞吐量對比
由于卷積層、全連接層之間計算特征與硬件特征之間的差異,LetNet-5和AlexNet在原平臺上進行模型訓練時,計算資源的利用率僅有25%和83%,能效為16億次/W和20億次/W.采用本文方案優化后,通過直接映射的方式將各層網絡映射到獨立的計算核心,并根據卷積層與全連接層不同的運算特征對其進行單獨優化,使得網絡層和硬件資源的運算得以匹配,從而整體上提高加速器的運行效率.如圖3所示,優化后的LetNet-5和AlexNet資源利用效率可達到90%和95%,資源利用率為原來的3.6倍和1.14倍.如圖4所示,優化后的能效分別為31億次/W和36億次/W,是優化前的1.94倍和1.8倍.

圖3 優化前后資源利用率對比

圖4 優化前后能效對比
為了比較優化后LetNet-5和AlexNet卷積神經網絡進行電網故障識別方面的速度和準確率,本文將電網巡檢的4種典型故障作為卷積神經網絡的訓練樣本,對網絡進行訓練,并統計訓練完成時間.
每種故障選擇200張圖片進行訓練,訓練完成后,每種故障選擇50張圖片,由系統對故障進行識別,并統計故障識別的準確率.
表3為優化前后系統訓練圖片處理的平均時間對比.由表3中數據可知,優化后LetNet-5網絡對單張圖片處理的時間約為原來的0.2~0.25倍,即處理效率約為優化前的4~5倍;AlexNet網絡對單張圖片的處理時間約為原來的0.35~0.5倍,即處理效率約為優化前的2~3倍.

表3 優化前后計算時間比較
表4為優化前后故障識別率對比.由表4數據可知,對于異物搭掛和倒桿、斷桿兩種故障,優化前后識別率基本保持不變或略有提高,均在90%以上.這是由于這兩種故障一般都具有明顯的故障特征,容易被計算機識別.對于絕緣子破損和金具脫落這兩種故障,優化后的LetNet-5網絡和AlexNet網絡比優化前的識別率提高約10%,說明本文的優化方案能夠在保持原有的識別精度上進一步提高系統識別的準確率.

表4 優化前后故障識別率對比
本文研究了一種應用于FPGA平臺的低功耗卷積神經網絡電網巡檢故障圖像識別方法,得出主要結論如下:
1)本文提出的循環分片和增加并行度的方法提高了計算機資源的利用率.采用重訓練的平衡剪枝技術緩解全連接層片外訪存壓力,同時卷積層采用非批處理模式,全連接層以批處理的方式對數據進行集中處理,對FPGA的計算性能進行了優化.
2)在Rainman FPGA硬件平臺上進行模型訓練分析表明,優化后的LetNet-5和AlexNet卷積神經網絡的運行峰值吞吐量比優化前分別提高了34%和50%,資源利用率可達到原來的3.6倍和1.14倍,優化后的能效是優化前的1.94倍和1.8倍.
3)優化后的LetNet-5網絡對圖片處理效率約為原來的4~5倍,AlexNet網絡對圖片處理效率約為優化前的2~3倍.同時,兩種網絡均能夠在保持原有識別精度的基礎上進一步提高系統識別的準確率.