趙曉冬,車 軍,張洵穎,程雪梅
(1.西北工業(yè)大學無人系統(tǒng)技術研究院,西安 710072;2.航空工業(yè)西安飛行自動控制研究所,西安 710076;3.西北工業(yè)大學365研究所,西安 710072)
在現(xiàn)代戰(zhàn)爭當中,精確制導武器的成功研制,促使定點攻擊作戰(zhàn)技術邁上新的臺階。光學制導技術作為精確制導的重要組成部分,是決定其作戰(zhàn)性能的重要因素。光學制導包括可見光電視、紅外、激光、光纖及復合制導等,其中可見光電視、紅外和復合制導都屬于圖像處理與機器視覺的范疇。可見光電視制導由彈上成像系統(tǒng)負責完成目標的探測與識別,較為成熟的包括“GBU-15”制導炸彈、“KAB-1500KR”以及“AGM-144”反坦克彈等制導武器。紅外制導利用熱成像探測原理,實現(xiàn)目標的檢測與識別,較為成熟的包括“薩姆-7”、“紅纓-5”和美國“戰(zhàn)斧”巡航導彈BlockIV等。復合制導采用多模式復合方式,取長補短,具有代表性的有美國的RAM航空彈和AARGM導彈,分別采用雷達與紅外復合、微波與紅外復合的制導方式。
在精確制導武器末制導過程中,國內(nèi)軍事上人工智能算法依舊處于無法落地的階段。美國洛克希德·馬丁公司的遠程反艦導彈LRASM,已經(jīng)成功完成了多次靶試任務。LRASM基于一款較為成熟的空間導彈進行研制,旨在依靠自身人工智能處理器,在艦隊中檢測并摧毀特定軍事目標。該型導彈于2017年12月成功擊中海上移動目標,標志著其技術已完全成熟,達到列裝標準。同年2月,俄羅斯武器制造商與國防官員宣布開發(fā)內(nèi)置人工智能的新一代武器,該類智能武器可自主選擇目標。2019年6月,以色列拉斐爾公司已成功將人工智能集成到Spice炸彈中,在實現(xiàn)目標自主識別的基礎上,加入了人工智能及場景匹配技術。憑借人工智能和深度學習技術,該武器可以識別移動的地面目標,并成功將其與其他物體及地形進行區(qū)分。
針對末制導視覺處理方面的經(jīng)典算法研究成果較多,包括差分圖像法[1]、光流場算法[2]、統(tǒng)計模型算法[3]、小波變換算法[4]等。差分法是指利用多幀圖像計算出差分圖像,并將其對應像素進行相乘,用以消除偽運動圖像信息;光流場算法利用基于特征信息的光流場進行運動目標檢測,同時利用圖像分割獲得目標的完整輪廓形狀;統(tǒng)計模型首先對運動場進行粗略估計,并根據(jù)馬爾可夫場理論,構造間斷點,實現(xiàn)目標檢測;小波變換利用在多尺度上計算由方向、尺度等參數(shù)構成的向量來實現(xiàn)目標檢測。其中,差分圖像法與光流法在工程實現(xiàn)當中應用較多。在信息化作戰(zhàn)方面,智能化電子戰(zhàn)的概念不斷涌現(xiàn)。利用人工智能感知技術獲取戰(zhàn)場信息,并將信息應用到精確制導武器末制導階段當中,是一種全新概念的作戰(zhàn)方式。從算法理論到工程應用的鴻溝,直接影響武器裝備智能化的升級程度。智能化技術的逐步發(fā)展,為制導武器的智能升級帶來了新的技術突破口。智能化技術將顯著提升信息化系統(tǒng)的作戰(zhàn)能力,若能有效突破精確制導系統(tǒng)的智能化技術應用瓶頸,將使現(xiàn)有的制導系統(tǒng)可以更好地適應復雜戰(zhàn)場環(huán)境以及激烈對抗條件下的多類別目標精確打擊需求。
基于深度學習的軍事目標檢測識別技術可以有效、自動、快速地識別戰(zhàn)場目標,是作戰(zhàn)雙方利用智能技術理解戰(zhàn)場態(tài)勢的基礎。智能技術在軍事應用當中需要具備三大核心要素,包括深度學習算法設計、高性能智能計算平臺以及大規(guī)模的數(shù)據(jù)訓練集。首先建立深層次的神經(jīng)網(wǎng)絡模型;其次在規(guī)模龐大的數(shù)據(jù)集上進行預訓練,并在戰(zhàn)場數(shù)據(jù)集上進行模型的再次訓練與微調(diào);最終以實時處理模式在高性能計算平臺上實現(xiàn)網(wǎng)絡的實時推理計算,對多類型目標進行實時計算識別。
目前,基于卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks, CNN)的自主目標檢測識別算法大致分為兩類。一是基于區(qū)域建議的算法,包括區(qū)域建議卷積神經(jīng)網(wǎng)絡[5](Region-CNN,R-CNN)、Fast R-CNN[6]、Faster R-CNN[7]和區(qū)域建議全卷積神經(jīng)網(wǎng)絡[8](Region-based Fully Convolution Network,R-FCN),這類算法將目標識別與目標定位劃分成2個步驟,分別完成,錯誤率低,但識別速度較慢;二是基于回歸的算法,包括只看一次(You Only Look Once,YOLO)算法[9]、YOLO9000算法[10]、單點多盒探測(Single Shot MultiBox Detector,SSD)算法[11]、去卷積單點探測(Deconvolu-tional Single Shot Detector,DSSD)算法[12]、YOLOv2算法和YOLOv3算法[13]等,該類算法直接產(chǎn)生目標類別概率和坐標,符合實時性要求,準確率也基本可以達到區(qū)域建議算法的準確率級別,可以在確保精度的同時,獲得更高的時間效率。R-CNN算法開創(chuàng)了深度學習自主目標識別的先河,F(xiàn)aster R-CNN在R-CNN的基礎上,直接提取候選區(qū)域特征圖,并融入?yún)^(qū)域建議網(wǎng)絡(Region Proposal Network,RPN),實現(xiàn)整個識別過程的網(wǎng)絡統(tǒng)一,從而實現(xiàn)端到端之間的映射,大幅提升算法速度。在YOLO系列算法當中,YOLOv3算法采用Darknet53的基礎網(wǎng)絡結構,在檢測速度與精度兩方面均獲得了優(yōu)于SSD系列算法的檢測結果。目前,科研人員對于YOLOv3算法的落地應用擁有極高的研究熱情。
由于智能算法復雜度較高,所以智能算法對于計算需求有著較高要求,這與嵌入式受限資源條件下的應用存在顯著的矛盾,基于神經(jīng)網(wǎng)絡壓縮的算法[14-15]應運而生。網(wǎng)絡壓縮算法將原本復雜度較高、參數(shù)冗余較多的網(wǎng)絡,基于最優(yōu)理論,在網(wǎng)絡精度損失較小的情況下,壓縮為復雜度較低、參數(shù)規(guī)模較小的網(wǎng)絡結構,使其更加適應于資源受限條件下的硬件推理。目前,基于網(wǎng)絡壓縮的算法大致分為基于剪枝思想[16-17]的、基于張量分解思想的、基于權值共享思想的、基于權重量化思想[18-20]的、基于低比特或二值化思想[21-24]的壓縮算法等。總而言之,網(wǎng)絡壓縮通過優(yōu)化思想,減少網(wǎng)絡參數(shù),降低對硬件的資源需求,在對網(wǎng)絡性能影響較小的情況下,實現(xiàn)智能算法在硬件端的實時推理部署。
本文首先基于復雜背景及小目標,分析了當前主流的自主檢測識別網(wǎng)絡,包括基于區(qū)域建議的方法和基于回歸的方法,并對網(wǎng)絡進行性能評估,使用MAC統(tǒng)計及參數(shù)需求量對其硬件需求進行定量評估,構成智能算法硬件嵌入式平臺的基礎輸入要求。其次,提出了基于卷積神經(jīng)網(wǎng)絡的壓縮算法,并對算法進行普適性分析。最后,基于嵌入式GPU平臺,實現(xiàn)了基于TensorRT路線的神經(jīng)網(wǎng)絡加速,然后推理分析了經(jīng)優(yōu)化算法優(yōu)化后的網(wǎng)絡結構,并對網(wǎng)絡精度損失情況和網(wǎng)絡加速比情況進行了評價。
對目前主流的深度學習自主識別算法進行參數(shù)及MAC計算量統(tǒng)計,如表1所示??梢钥闯?,針對不同的神經(jīng)網(wǎng)絡,所需要的硬件資源各不相同。MAC數(shù)目越多,代表硬件上所需的乘累加操作越多;權值合計越大,代表硬件上所需的存儲空間越大。
表1 深度學習識別算法參數(shù)及MAC計算量統(tǒng)計Tab.1 Deep learning recognition algorithms parameters and MAC calculated quantity statistics
從性能方面講,在所有算法當中,YOLOv3算法從速度和精度兩方面均獲得了較為驚艷的效果。Darknet53借鑒殘差結構,采用類似ResNet的跳線連接方式,性能相比ResNet系列更加優(yōu)異。目前在各類落地應用當中,YOLO系列算法更多采用Tiny網(wǎng)絡,該網(wǎng)絡層數(shù)較少,MAC統(tǒng)計量約為YOLOv3算法的1/13。Tiny網(wǎng)絡容易實現(xiàn)硬件應用,且仿真較為容易,但是網(wǎng)絡精度相對較低,無法適應精度要求較高的多目標分類場合。于是,如何實現(xiàn)檢測精度較高的YOLOv3算法的真正落地,是目前亟待解決的難題;此外,類似YOLOv3這類深層網(wǎng)絡算法如何在嵌入式端落地,也是目前亟待解決的難題。
YOLOv3網(wǎng)絡結構共計107層,網(wǎng)絡最終輸出三部分特征圖,如圖1所示,分別為Conv_6、Conv_14和Conv_22卷積節(jié)點,在此基礎上,進行分類與位置回歸。這3個卷積節(jié)點分別稱之為小尺度yolo層、中尺度yolo層和大尺度yolo層。13×13×255尺度用于檢測較為大型的目標,26×26×255用于檢測較為中型的目標,52×52×255用于檢測較為小型的目標。三層特征輸出層的詳細輸入、輸出和卷積核參數(shù)如表2所示。
圖1 YOLOv3網(wǎng)絡結構的三部分特征輸出Fig.1 Three-part feature outputs of YOLOv3 network structure
表2 YOLOv3網(wǎng)絡輸出特征圖詳細參數(shù)Tab.2 Detailed parameters of YOLOv3 network output characteristic diagram
為神經(jīng)網(wǎng)絡設定合適的裁剪濾波器,從網(wǎng)絡結構中剔除掉相對不重要的參數(shù),將剩余網(wǎng)絡結構進行微調(diào)或重新訓練,可以在較短時間內(nèi)有效對神經(jīng)元或權重連接實現(xiàn)裁剪,網(wǎng)絡裁剪過程如圖2所示。
圖2 神經(jīng)網(wǎng)絡裁剪結構對比圖Fig.2 Contrast diagram of pruning structure of neural network
利用閾值方法對網(wǎng)絡權重進行整體裁剪,是網(wǎng)絡裁剪算法中最常用的步驟。假設閾值為ω,保留每層中filter權重絕對值之和大于閾值ω的權重。閾值法裁剪方式如式(1)所示,其中i和j代表卷積核的維度
(1)
式(1)很難從全局進行分析,并且不能將訓練融入裁剪當中,從而導致網(wǎng)絡精度降低。文獻[25]采用一種基于注意力模塊的剪枝濾波器,稱為SEBlock,由全局池化層、全連接層和激活函數(shù)組成。將通過注意力模塊的輸出稱為縮放因子,其變換過程描述如式(2)所示
F(X〈n,W,H,C〉)=sig(FC2(ReLU(GAP(X〈n,W,H,C〉))))
(2)
其中,X〈n,W,H,C〉代表輸入,F(xiàn)C代表全連接層,GAP代表全局池化層,ReLU和sig代表激活函數(shù)。
為了更好地使得裁剪過程自適應,本文提出將SEBlock與BN層縮放因子同時進行正則化訓練裁剪的方法,算法策略如下所述:
1)通過SEBlock計算縮放因子,獲得能夠反映通道重要性的參數(shù),結合通道在樣本數(shù)據(jù)集下的平均值進行綜合分析,更準確地反映通道重要性。
2)利用L1正則方法,在網(wǎng)絡原本代價函數(shù)的基礎上,將步驟1)計算出的縮放因子,與BN 層的縮放因子同時歸入目標方程,進行稀疏化訓練,如式(3)所示
(3)
3)依照步驟2)進行訓練裁剪后,對網(wǎng)絡進行微調(diào),從而恢復裁剪后網(wǎng)絡的檢測精度。
網(wǎng)絡裁剪的目標是在保持網(wǎng)絡精度的前提下,保留重要權重,去掉不重要權重,其核心在于如何在裁剪的同時,更好地保持精度。文中所提出的自適應稀疏化訓練方式可以在裁剪的同時,最大程度上保證網(wǎng)絡精度。整個裁剪過程訓練流程圖如圖3所示,首先利用式(3)對網(wǎng)絡進行稀疏化訓練,隨后裁剪掉稀疏的網(wǎng)絡連接,其次對裁剪后的網(wǎng)絡進行微調(diào),獲得剪枝后的網(wǎng)絡。此外,該訓練過程還可重復進行,并不斷迭代,以便獲得最優(yōu)結果。
圖3 裁剪過程訓練流程圖Fig.3 Pruning process training flow chart
本文提出的網(wǎng)絡裁剪算法可以明顯保持裁剪后的網(wǎng)絡精度,針對本文裁剪算法已經(jīng)經(jīng)過測試的網(wǎng)絡結構包括VGG、ResNet、Darknet53和DenseNet網(wǎng)絡,該網(wǎng)絡裁剪算法針對CNN具備普適性。
最主流的權重量化方式包括Fp16量化和Int8量化,其中Fp16相比Fp32減少50%的位寬,Int8相比Fp32減少75%的位寬。線性Int8量化將權重數(shù)據(jù)量化到(-127~127)的范圍當中,這種映射稱為不飽和映射,將導致精度損失較大。本文將采用飽和映射進行量化,這也是TensorRT技術采用的量化方式。飽和映射的過程是尋找閾值|T|,將±|T|映射到±127范圍當中,超過閾值之外的,直接映射到±127,飽和映射過程示意圖如圖4所示。
圖4 飽和映射過程示意圖Fig.4 Schematic diagram of saturation mapping process
本文采用的保精度量化算法策略如下所述:
1)從驗證集當中,選取子集當作校準集,用于校準Int8量化帶來的精度損失;
2)在選取的校準集上進行Fp32推理,對于網(wǎng)絡的所有層,分別收集相關的激活值,列出直方圖;
3)針對不同閾值實施遍歷操作,選取可以使得KL散度取得最小值的閾值,最終獲得一系列的閾值,并且所有層均返回一個閾值,稱之為校準表(Calibration Table),最終利用校準表實現(xiàn)神經(jīng)網(wǎng)絡Int8的保精度量化過程。
本文采用的網(wǎng)絡量化算法可以明顯保持量化后的網(wǎng)絡精度,針對本文所采用的量化算法,已經(jīng)經(jīng)過測試的網(wǎng)絡結構包括VGG、ResNet、Darknet53、AlexNet和GoogleNet網(wǎng)絡,該網(wǎng)絡量化算法針對CNN具備普適性。
TensorRT技術屬于英偉達的不開源神經(jīng)網(wǎng)絡加速技術,為神經(jīng)網(wǎng)絡部署提供基于GPU平臺的加速解決方案。目前,TensorRT技術最擅長CNN優(yōu)化,TensorRT技術程序部署流程如圖5所示。
圖5 TensorRT程序部署流程Fig.5 Program deployment process based on TensorRT
TensorRT通過對網(wǎng)絡進行合并與量化,形成更為緊湊、硬件資源需求更小的網(wǎng)絡結構,能夠確保在減小資源使用率的同時,使得網(wǎng)絡結構性能損失程度較小。TensorRT技術首先通過優(yōu)化技術生成如圖5所示的中間層engine,隨后利用該優(yōu)化后的engine對網(wǎng)絡結構進行部署,實現(xiàn)各類受限資源條件下的神經(jīng)網(wǎng)絡實時應用。
對于如圖6所示的原始網(wǎng)絡,TensorRT技術可將其垂直方向優(yōu)化為如圖7所示的優(yōu)化后網(wǎng)絡結構,從而有效實現(xiàn)網(wǎng)絡推理加速,水平方向的優(yōu)化與垂直方向類似。此外,結合網(wǎng)絡裁剪技術,可在推理過程當中獲得更高的加速比。
圖6 原始網(wǎng)絡結構Fig.6 Original network structure
圖7 垂直方向優(yōu)化后的網(wǎng)絡結構Fig.7 Vertical optimized network structure
為了驗證本文提出和采用的網(wǎng)絡壓縮算法在嵌入式端的加速能力,選取Nvidia Jetson Xavier作為驗證平臺,并與TensorRT優(yōu)化進行比對。Xavier是英偉達的異構嵌入式GPU平臺,CPU具備8核ARM64架構,GPU具備512顆CUDA核心。在公有數(shù)據(jù)集VOC2007與VOC2012上進行數(shù)據(jù)訓練,利用獲得的權重計算初始精度mAP值。隨后利用裁剪與量化算法進行優(yōu)化,并利用經(jīng)算法優(yōu)化后的權重計算新的mAP值。經(jīng)過20次裁剪與量化仿真測試,選取最優(yōu)仿真結果,同時,對未開源的TensorRT技術進行技術應用,仿真驗證結果如表3所示。
表3 YOLOv3算法嵌入式端仿真驗證結果Tab.3 Simulation and verification results of YOLOv3 on embedded GPU platform
YOLOv3算法的部分網(wǎng)絡裁剪結果如表4所示。由表4可以看出,裁剪算法針對不同的卷積層會進行相應的裁剪,有些層通道數(shù)目變小,有些層通道數(shù)目不變。網(wǎng)絡裁剪將直接改變網(wǎng)絡結構,裁剪結果與訓練數(shù)據(jù)集密切相關。
表4 YOLOv3算法部分網(wǎng)絡裁剪結果Tab.4 Partial network pruning results of YOLOv3
YOLOv3算法裁剪前后的精度與幀頻對比結果如表5所示,表中結果均是分別在相應條件下運行10次程序后選取的最優(yōu)結果??梢钥闯?,針對不同的裁剪力度,精度下降情況和幀頻變化均不同,裁剪力度越大,精度下降越快,幀頻越高。
表5 YOLOv3算法裁剪前后精度與幀頻對比Tab.5 Accuracy and frame frequency comparison of YOLOv3 before and after pruning
從表3~表5的仿真驗證結果可以看出,裁剪與量化的方式可以在網(wǎng)絡精度損失較少的情況下,使得嵌入式平臺上的網(wǎng)絡推理獲得理想的加速比。原版darknet在異構嵌入式平臺的幀頻為8幀/s,經(jīng)TensorRT技術優(yōu)化后可獲得3倍的速度提升。經(jīng)本文提出的網(wǎng)絡壓縮算法,可以在精度損失小于5%的前提下,獲得3倍以上的速度提升。
相比不開源的TensorRT技術,本文算法思想可以實現(xiàn)自主可控的神經(jīng)網(wǎng)絡壓縮及嵌入式應用。此外,基于本文思想,結合復雜算法實現(xiàn)裁剪與量化,將使得目標檢測識別網(wǎng)絡精度下降幅度更小。
本文提出了針對卷積神經(jīng)網(wǎng)絡的壓縮算法,并進行了相應的嵌入式平臺應用。相比不開源的針對GPU平臺的TensorRT優(yōu)化技術,本文算法思想可以合理進行各類硬件平臺的技術復用。針對神經(jīng)網(wǎng)絡的定量硬件資源評估,以及針對GPU嵌入式平臺所進行的裁剪和量化實驗分析表明:
1)各類自主目標識別神經(jīng)網(wǎng)絡算法的硬件資源需求量可通過計算獲得,針對目標算法,可以利用資源計算分析來合理設計硬件。
2)基于英偉達目前的TensorRT技術,利用8bit量化技術,在嵌入式GPU平臺可以實現(xiàn)神經(jīng)網(wǎng)絡3倍的推理速度提升。由于此項技術為不開源技術,所以精度損失程度未知。從公開資料來看,網(wǎng)絡精度損失較小。
3)基于本文所提出和采用的網(wǎng)絡裁剪及量化優(yōu)化算法,在網(wǎng)絡精度損失小于5%的前提下,獲得了3倍以上的推理速度提升。本文算法與針對GPU平臺的不開源TensorRT技術相比,為針對不同平臺的神經(jīng)網(wǎng)絡優(yōu)化技術應用提供了新的技術思路。
經(jīng)驗證,本文的優(yōu)化算法思想可直接應用于FPGA平臺。本文的下一步研究方向是基于FPGA平臺的硬件優(yōu)化[26-27]。在具備國產(chǎn)自主性、低功耗的FPGA平臺,利用網(wǎng)絡優(yōu)化技術實現(xiàn)神經(jīng)網(wǎng)絡的實時應用部署,為制導武器末制導人工智能機器視覺技術的軍事應用提供進一步的技術解決方案。