張洵穎,趙曉冬,裴茹霞,張麗娜
(1.西北工業(yè)大學(xué)無人系統(tǒng)技術(shù)研究院,西安710072;2.西安格儒電子科技有限公司,西安710077)
在現(xiàn)代戰(zhàn)爭(zhēng)當(dāng)中,無人車通過搭載各類型傳感器,可以實(shí)現(xiàn)戰(zhàn)場(chǎng)信息的實(shí)時(shí)監(jiān)測(cè)。無人車上較為常見的傳感器類型包括可見光傳感器和紅外傳感器,通過可見光數(shù)據(jù)集和紅外數(shù)據(jù)集分析,可以實(shí)現(xiàn)地面目標(biāo)種類和位置的識(shí)別。機(jī)器視覺技術(shù)的發(fā)展,為無人車高精度自動(dòng)識(shí)別地面目標(biāo)提供了新的技術(shù)實(shí)現(xiàn)途徑。機(jī)器視覺技術(shù)通過將視覺模塊引入機(jī)器,可以使得機(jī)器獲得豐富的外界信息,從而大大提升機(jī)器與外界環(huán)境之間的交互能力。通過將無人車技術(shù)與機(jī)器視覺技術(shù)結(jié)合,可以顯著提升無人車的自主目標(biāo)識(shí)別水平。
研究機(jī)器視覺技術(shù)在無人車上的應(yīng)用,不僅具有重要的理論意義,也同時(shí)具有極為廣泛的軍事應(yīng)用價(jià)值。目前已經(jīng)應(yīng)用于軍事化的無人車,普遍缺乏智能因素的支持。若能有效解決智能算法在無人車上的技術(shù)創(chuàng)新及應(yīng)用問題,將使得無人車可以更好地適應(yīng)復(fù)雜環(huán)境下的多類別地面目標(biāo)智能識(shí)別需求,從而提升無人車的軍事化智能程度。
隨著人工智能技術(shù)的和大數(shù)據(jù)的發(fā)展,基于深度學(xué)習(xí)的目標(biāo)識(shí)別方法取得了矚目成績(jī)。基于卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)的目標(biāo)識(shí)別算法,其識(shí)別準(zhǔn)確率已經(jīng)超越人眼水平。目前主流的基于CNN 的識(shí)別算法,大致分為兩大類,基于區(qū)域建議的方法和基于回歸的方法。前者錯(cuò)誤率低,識(shí)別速度較慢;后者直接產(chǎn)生目標(biāo)的類別概率和坐標(biāo),更加符合實(shí)時(shí)性要求,同時(shí)準(zhǔn)確率也可以滿足需求。
基于區(qū)域建議的識(shí)別算法包括區(qū)域建議型卷積神經(jīng)網(wǎng)絡(luò)(Region-CNN,R-CNN)[1],以及在此基礎(chǔ)上不斷改進(jìn)得到的Fast R-CNN[2]和Faster RCNN[3]。R-CNN 系列算法的發(fā)展,體現(xiàn)了深度學(xué)習(xí)自主識(shí)別算法從開創(chuàng)到實(shí)現(xiàn)端對(duì)端之間映射的發(fā)展過程。隨著算法不斷發(fā)展,又相繼出現(xiàn)了區(qū)域建議型全卷積神經(jīng)網(wǎng)絡(luò)(Region-based Fully Convolution Network,R-FCN)[4]及其改進(jìn)算法?;诨貧w的方法包括只看一次(You Only Look Once,YOLO)[5]系列算法及單點(diǎn)多盒探測(cè)(Single Shot MultiBox Detector,SSD)[6]系列算法,以及在此基礎(chǔ)上不斷改進(jìn)得到的YOLO9000[7]、去卷積單點(diǎn)探測(cè)(Deconvolutional Single Shot Detector,DSSD)[8]、YOLO V2、YOLO V3[9]和YOLO V4 等算法。相比SSD 系列算法,YOLO 系列算法從檢測(cè)速度與精度兩方面獲得了均衡的識(shí)別結(jié)果。
智能算法復(fù)雜度的高低,直接決定了智能算法對(duì)于硬件資源需求的大小。典型的深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)在相應(yīng)參數(shù)結(jié)構(gòu)下的計(jì)算數(shù)量統(tǒng)計(jì)情況如表1所示。其中,乘積累加(Multiply Accumulate,MAC)運(yùn)算數(shù)目和權(quán)值大小是極為重要的兩項(xiàng)參數(shù),可直接反映硬件資源的需求量。MAC數(shù)目合計(jì)越大,代表所需的硬件乘累加操作越多;權(quán)值大小合計(jì)越大,代表所需存儲(chǔ)空間越大。
表1 典型CNN的參數(shù)及MAC計(jì)算數(shù)量統(tǒng)計(jì)Table 1 Statistics of parameters and MAC calculation quantity of typical CNNs
從表1 可以看出,神經(jīng)網(wǎng)絡(luò)對(duì)于硬件資源的較高需求與嵌入式硬件資源特點(diǎn)存在顯著矛盾。為了解決這一矛盾,不斷改進(jìn)的神經(jīng)網(wǎng)絡(luò)算法[10-14]及基于神經(jīng)網(wǎng)絡(luò)的壓縮算法[15-17]應(yīng)運(yùn)而生。網(wǎng)絡(luò)壓縮算法通過各種數(shù)學(xué)模型、基于優(yōu)化思想,在精度損失較小的情況下減少網(wǎng)絡(luò)參數(shù),從而降低算法對(duì)于硬件的資源需求量,最終協(xié)助完成智能算法在嵌入式平臺(tái)的部署。經(jīng)典的研究成果主要包括神經(jīng)網(wǎng)絡(luò)裁剪、神經(jīng)網(wǎng)絡(luò)量化、核的稀疏化、低秩分解、輕量化網(wǎng)絡(luò)設(shè)計(jì)、低位量化等。核的稀疏化是指在訓(xùn)練過程當(dāng)中對(duì)權(quán)重更新進(jìn)行誘導(dǎo),采用更加緊致的存儲(chǔ)方式,其在硬件上的執(zhí)行效率不高;低秩分解是指將卷積核視為張量,并對(duì)張量進(jìn)行分解從而消除冗余信息,其對(duì)全連接層效果較為明顯,對(duì)于卷積層效果不佳;輕量化網(wǎng)絡(luò)設(shè)計(jì)通常采用不同卷積方式,減少模型參數(shù);低位量化使得網(wǎng)絡(luò)精度損失較為明顯,無法在提高推理速度的同時(shí)保持精度。最適于硬件實(shí)現(xiàn)的方法主要包括神經(jīng)網(wǎng)絡(luò)裁剪和神經(jīng)網(wǎng)絡(luò)量化。
本文首先分析評(píng)估了目前基于CNN 的各類識(shí)別算法對(duì)于硬件資源的需求量,具體包括基于區(qū)域建議的方法和基于回歸的方法,指出YOLO V3算法在精度和速度兩方面更加適用于高精度識(shí)別要求時(shí)的硬件加速。其次,對(duì)YOLO V3算法的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行了具體分析,提出了雙正則項(xiàng)自適應(yīng)裁剪優(yōu)化算法和面向FPGA 的神經(jīng)網(wǎng)絡(luò)INT8量化優(yōu)化算法。最后,基于Xilinx 公司UltraScale+MPSoC 系列的XCZU7EV 器件驗(yàn)證平臺(tái),以及無人車拍攝的真實(shí)可見光數(shù)據(jù)集和紅外數(shù)據(jù)集,實(shí)現(xiàn)了識(shí)別及優(yōu)化算法的仿真驗(yàn)證,并對(duì)兩類數(shù)據(jù)集的精度損失情況和硬件加速比情況進(jìn)行了總結(jié)評(píng)價(jià)。
針對(duì)目前主流的基于CNN的識(shí)別算法,進(jìn)行硬件資源計(jì)算量的統(tǒng)計(jì),具體統(tǒng)計(jì)情況如表2所示。
表2 基于CNN的識(shí)別算法資源計(jì)算量統(tǒng)計(jì)Table 2 Resource calculation statistics of recognition algorithms based on CNN
從表2 可以看出,針對(duì)不同的識(shí)別算法網(wǎng)絡(luò)結(jié)構(gòu),硬件資源需求各不相同。從實(shí)際識(shí)別性能角度講,YOLO V3算法從精度和速度兩方面均衡的角度取得了較為理想的效果。目前在實(shí)際應(yīng)用中更多采用YOLO V3系列的Tiny網(wǎng)絡(luò),資源計(jì)算量約為完整算法的1/13,識(shí)別性能較差,無法適應(yīng)高精度識(shí)別要求時(shí)的多目標(biāo)分類場(chǎng)合應(yīng)用。所以如何將YOLO V3 這類識(shí)別效果較為理想的復(fù)雜網(wǎng)絡(luò)算法應(yīng)用至嵌入式平臺(tái)領(lǐng)域,是亟待解決的難題。
YOLO V3 網(wǎng)絡(luò)共計(jì)107 層,在特征提取時(shí)采用了Darknet53 的網(wǎng)絡(luò)結(jié)構(gòu),同時(shí)借鑒殘差網(wǎng)絡(luò)的思想建立層間的連接。YOLO V3 網(wǎng)絡(luò)獨(dú)有的組合式卷積形式如圖1所示。
圖1 YOLO V3網(wǎng)絡(luò)的組合式卷積形式Fig.1 Combined convolution form of YOLO V3 network
其中,Conv2D 層、BatchNorm 層及LeakyRelu層,可視為統(tǒng)一的卷積處理層,一起構(gòu)成YOLO V3網(wǎng)絡(luò)獨(dú)有的最小組件。
當(dāng)網(wǎng)絡(luò)輸入圖像的大小分別為416 × 416 和608×608 時(shí),所需的硬件詳細(xì)資源統(tǒng)計(jì)量如表3所示。表3 中所列舉出的詳細(xì)的資源統(tǒng)計(jì)量,代表了YOLO V3網(wǎng)絡(luò)對(duì)于硬件資源的需求,可作為硬件設(shè)計(jì)的參考。
表3 YOLO V3網(wǎng)絡(luò)硬件資源及其在兩種輸入分辨率下的資源大小一覽Table 3 Hardware resource statistics of YOLO V3 network
YOLO V3 網(wǎng)絡(luò)的三層輸出特征圖參數(shù)如表4所示,在輸出特征層的基礎(chǔ)上,結(jié)合上采樣獲得最終并置層,并進(jìn)行多目標(biāo)的分類與位置回歸。其中,輸出層1用于檢測(cè)較為大型的目標(biāo),輸出層2用于檢測(cè)較為中型的目標(biāo),輸出層3 用于檢測(cè)較為小型的目標(biāo)。
表4 YOLO V3網(wǎng)絡(luò)三層輸出特征圖參數(shù)Table 4 Parameters of three layer output characteristic diagram for YOLO V3 network
YOLO V3 網(wǎng)絡(luò)的邊界框預(yù)測(cè)示意圖如圖2所示,當(dāng)預(yù)測(cè)邊界時(shí),假設(shè)cx和cy是相對(duì)于特征圖預(yù)先劃分方格左上角的距離,并且每個(gè)單元格的長(zhǎng)度是1,即cx= 1,cy= 1。邊框預(yù)測(cè)計(jì)算過程如公式(1)所示,計(jì)算結(jié)果為邊界框坐標(biāo)值bx、by、bw和bh,即邊界框相對(duì)于特征圖的位置和大小。
圖2 邊界框預(yù)測(cè)示意圖Fig.2 Bounding box prediction sketch map
為了加速學(xué)習(xí)過程,同時(shí)簡(jiǎn)化參數(shù)的數(shù)據(jù)處理過程,在網(wǎng)絡(luò)學(xué)習(xí)過程中,真正的學(xué)習(xí)目標(biāo)是tx、ty、tw和th。其中,pw和ph代表預(yù)設(shè)的anchor box 映射到特征圖中的寬和高,即手動(dòng)設(shè)置的anchor 寬和高。tx和ty代表預(yù)測(cè)的坐標(biāo)偏移值,tw和th代表尺度縮放,分別經(jīng)過sigmoid函數(shù),輸出0~1之間的偏移量,與cx和cy相加后得到邊界框中心點(diǎn)的位置bx和by。tw和th分別與pw和ph作用后得到邊界框的寬bw和高bh。Sigmoid 函數(shù)σ(tx)和σ(ty)分別將變量tx和ty映射到[0,1]區(qū)間內(nèi),從而確保目標(biāo)中心處于預(yù)測(cè)網(wǎng)格單元中,防止偏移。
神經(jīng)網(wǎng)絡(luò)裁剪過程如圖3所示,通過剪枝、剪神經(jīng)元的方式,借助最優(yōu)計(jì)算,可以在對(duì)網(wǎng)絡(luò)裁剪的同時(shí),保持網(wǎng)絡(luò)模型的精度。
圖3 網(wǎng)絡(luò)結(jié)構(gòu)裁剪前后的對(duì)比示意圖Fig.3 Comparison of network structure before and after pruning
較為基礎(chǔ)的裁剪方法是裁剪濾波器。裁剪濾波器是一種先裁剪后重新訓(xùn)練的方法,通過閾值設(shè)定裁剪掉每層當(dāng)中較低權(quán)值的連接,從而有效降低模型復(fù)雜度。
裁剪濾波器的表示方式如公式(2)所示,其中ω代表閾值,i和j代表卷積核的維度。對(duì)每層中濾波器權(quán)重絕對(duì)值大于經(jīng)驗(yàn)閾值ω的權(quán)重項(xiàng)進(jìn)行保留。
裁剪濾波器實(shí)現(xiàn)較為容易,但是裁剪后的網(wǎng)絡(luò)性能相對(duì)較差,經(jīng)驗(yàn)閾值較難設(shè)定。為了使得裁剪過程與訓(xùn)練過程協(xié)同計(jì)算,本文提出一種自適應(yīng)的網(wǎng)絡(luò)裁剪算法,通過將注意力模塊[18]與BatchNorm層縮放因子組合,以正則化方式實(shí)現(xiàn)自適應(yīng)的最優(yōu)裁剪。
注意力模塊由全局池化層、全連接層和激活函數(shù)組成。將注意力模塊的輸出稱為注意力縮放因子,注意力模塊變換過程如公式(3)所示。
(1)通過公式(3)計(jì)算注意力縮放因子,獲得能夠衡量通道重要性的參數(shù),縮放因子越小,代表對(duì)應(yīng)通道越不重要;
(2)將注意力縮放因子與BatchNorm 層縮放因子同時(shí)作為優(yōu)化約束策略,在L1 正則框架下,將兩類縮放因子同時(shí)歸入目標(biāo)函數(shù),并進(jìn)行稀疏化訓(xùn)練。目標(biāo)函數(shù)如公式(4)所示,第一項(xiàng)代表網(wǎng)絡(luò)代價(jià)函數(shù),第二項(xiàng)代表注意力縮放因子正則項(xiàng),第三項(xiàng)代表BN層縮放因子正則項(xiàng),α和β分別代表兩項(xiàng)正則項(xiàng)在優(yōu)化過程中的系數(shù);
(3)進(jìn)行訓(xùn)練與裁剪的協(xié)同計(jì)算,并反復(fù)迭代從而獲得最優(yōu)的裁剪后網(wǎng)絡(luò)。裁剪與訓(xùn)練協(xié)同計(jì)算流程如圖4所示,通過微調(diào),可以較快收斂到最優(yōu)網(wǎng)絡(luò);通過反復(fù)迭代,可獲得更高的壓縮比。
圖4 裁剪與訓(xùn)練協(xié)同計(jì)算流程圖Fig.4 Collaborative computing flow chart of pruning and training
網(wǎng)絡(luò)裁剪的核心目的是在保持網(wǎng)絡(luò)精度的前提下,對(duì)網(wǎng)絡(luò)進(jìn)行壓縮。本文所提出的神經(jīng)網(wǎng)絡(luò)自適應(yīng)裁剪算法,可以顯著保持裁剪后的網(wǎng)絡(luò)精度,適用于ARM 或FPGA 等各類嵌入式平臺(tái)部署前的網(wǎng)絡(luò)裁剪。
目前最為高效的基于FPGA的神經(jīng)網(wǎng)絡(luò)量化方式是INT8 量化。INT8 量化是指將訓(xùn)練時(shí)使用的32bit 計(jì)算模式,用較少的8bit 模式進(jìn)行存儲(chǔ)和推理計(jì)算。相比Fp32 浮點(diǎn)型運(yùn)算,INT8 量化方式可以減少4 倍的位寬。INT8 量化算法分為不飽和映射和飽和映射兩種方式,不飽和映射是指將權(quán)重?cái)?shù)據(jù)量化到[-127,127]范圍中,這種方式將導(dǎo)致精度的較大損失。飽和映射是指通過各類算法計(jì)算,獲得最優(yōu)閾值并將映射到±127 范圍中。超過閾值的部分,將被直接映射到±127。飽和映射示意圖如圖5所示。
圖5 飽和映射示意圖Fig.5 Schematic diagram of saturation mapping
這兩種基于映射的量化算法,都不能獲得最優(yōu)的INT8量化結(jié)果,原因在于統(tǒng)一的、最優(yōu)的閾值很難通過優(yōu)化算法進(jìn)行選擇,因此精度容易出現(xiàn)較大損失。本文提出一種面向FPGA 的神經(jīng)網(wǎng)絡(luò)INT8 量化方法,其主要思想是將原始32bit 權(quán)值模型量化為與其差值最小的2 的冪次方形式或0,并通過不斷迭代訓(xùn)練的方式,逐步全局收斂到最優(yōu)量化結(jié)果。其權(quán)重量化范圍的具體選擇策略如下:
(1)通過公式(5)計(jì)算量化過程參數(shù),其中,s代表具有最大絕對(duì)值的權(quán)值,m代表量化位寬上限,b代表量化位寬,Pij代表量化后的2 的冪次方形式或0,Wij為卷積核,i和j代表卷積核的維度;
(3)在訓(xùn)練過程中,采用兩組相同權(quán)重同步訓(xùn)練、每組組內(nèi)逐步細(xì)分分組訓(xùn)練的方式。首先,將兩組相同權(quán)值同步分為相同的兩部分,并在各組內(nèi)根據(jù)經(jīng)驗(yàn)閾值設(shè)定不同的量化步長(zhǎng)及訓(xùn)練參數(shù),基于公式(5)同時(shí)對(duì)兩組細(xì)分后的一部分做量化;
(4)在每輪量化完成后,對(duì)比兩組量化后的參數(shù),將量化后不一致的權(quán)重部分重新視為未量化部分,進(jìn)行新一輪的迭代求解過程,從而獲得局部更優(yōu)的量化結(jié)果,在此基礎(chǔ)上,進(jìn)行反向訓(xùn)練更新;
(5)在各組內(nèi)參數(shù)反向更新時(shí),只更新未做量化的部分;反復(fù)迭代步驟3 和步驟4,直到各組內(nèi)所有參數(shù)全部量化完成。量化后的所有權(quán)值,可直接在FPGA 上進(jìn)行移位計(jì)算,大大加速了神經(jīng)網(wǎng)絡(luò)在FPGA上的執(zhí)行效率,可以獲得較高的加速比。
本文提出的神經(jīng)網(wǎng)絡(luò)INT8 量化算法,可以顯著保持量化后的網(wǎng)絡(luò)精度。全精度浮點(diǎn)運(yùn)算直接替換為移位操作的方式更加適用于FPGA平臺(tái)上的量化加速。
為了驗(yàn)證本文提出并應(yīng)用的神經(jīng)網(wǎng)絡(luò)壓縮算法在硬件平臺(tái)上的加速能力,硬件仿真驗(yàn)證平臺(tái)采用Xilinx公司UltraScale+MPSoC系列的XCZU7EV器件來實(shí)現(xiàn)基于CNN 的無人車地面目標(biāo)識(shí)別加速器硬件研制及程序部署。在該硬件實(shí)現(xiàn)中,控制程序運(yùn)行在XCZU7EV 片內(nèi)集成的Cortex-A53 上,計(jì)算加速邏輯利用FPGA 實(shí)現(xiàn),驗(yàn)證平臺(tái)參考結(jié)構(gòu)圖與實(shí)物圖分別如圖6~7所示。
圖6 驗(yàn)證平臺(tái)參考結(jié)構(gòu)圖Fig.6 Reference structure diagram of verification platform
圖7 智能算法硬件加速器Fig.7 Intelligent algorithm hardware accelerator
在基于無人車拍攝的真實(shí)可見光數(shù)據(jù)集和紅外數(shù)據(jù)集訓(xùn)練的基礎(chǔ)上,對(duì)本文所提出的神經(jīng)網(wǎng)絡(luò)優(yōu)化算法進(jìn)行驗(yàn)證。其中,可見光數(shù)據(jù)集包括訓(xùn)練集7200 張,測(cè)試集800 張;紅外數(shù)據(jù)集包括訓(xùn)練集3250 張,測(cè)試集350 張。數(shù)據(jù)集中的所有圖像,均進(jìn)行了目標(biāo)位置及種類標(biāo)注??梢姽鈹?shù)據(jù)集和紅外數(shù)據(jù)集,各自共計(jì)5 個(gè)種類,分別包括坦克、汽車、越野車、裝甲車和卡車。
首先,利用初始權(quán)重計(jì)算其對(duì)應(yīng)的mAP值。然后,利用裁剪及量化優(yōu)化算法進(jìn)行算法優(yōu)化,并針對(duì)算法優(yōu)化后的權(quán)重,重新計(jì)算新的mAP值。在算法優(yōu)化過程中,經(jīng)過10 次裁剪與量化仿真測(cè)試,選取最優(yōu)的仿真結(jié)果進(jìn)行具體參數(shù)的設(shè)置及應(yīng)用,網(wǎng)絡(luò)裁剪及量化前后的精度仿真驗(yàn)證結(jié)果如表5所示。表5 中的結(jié)果均是多次程序執(zhí)行后所選取的最優(yōu)結(jié)果,圖像輸入分辨率為416×416。
表5 YOLO V3算法裁剪量化前后精度及速度對(duì)比Table 5 Accuracy and Speed Comparison of YOLO V3 before and after Pruning and Quantification
從表5 中的驗(yàn)證結(jié)果可以看出,針對(duì)可見光和紅外數(shù)據(jù)集,未裁剪和未INT8 量化時(shí)的幀頻數(shù)為1,在不同的裁剪系數(shù)和INT8 量化組合形式下,幀頻數(shù)的提升倍數(shù)有所不同。此外,隨著裁剪力度的不同,裁剪及量化后精度的變化情況均有所不同,且不同的數(shù)據(jù)集,表現(xiàn)出了不同的變化情況。網(wǎng)絡(luò)裁剪會(huì)直接改變網(wǎng)絡(luò)的結(jié)構(gòu),自適應(yīng)裁剪算法針對(duì)不同的卷積層,根據(jù)最優(yōu)原則自適應(yīng)地進(jìn)行網(wǎng)絡(luò)裁剪。有些卷積層的通道數(shù)目變小,有些卷積層的通道數(shù)目則保持不變。
針對(duì)可見光數(shù)據(jù)集,裁剪力度為20%、40%和60% 時(shí),精度變化分別為+0.998%、+1.29% 和+2.02%;針對(duì)紅外數(shù)據(jù)集,裁剪力度為20%、40%和60%時(shí),精度變化分別為+0.06%、-0.36%和-3.01%。在裁剪力度為20%、40%和60%時(shí),幀速率可達(dá)9、12和15幀/s。
基于可見光數(shù)據(jù)集的典型場(chǎng)景目標(biāo)識(shí)別結(jié)果如圖8~9所示。其中,圖8 為裁剪及量化前的識(shí)別結(jié)果,圖9 是裁剪60%及INT8 量化后的識(shí)別結(jié)果。
圖8 裁剪及量化前的可見光目標(biāo)識(shí)別結(jié)果Fig.8 Target recognition results of visible light image before pruning and quantification
基于紅外數(shù)據(jù)集的典型場(chǎng)景目標(biāo)識(shí)別結(jié)果如圖10~11所示。其中,圖10為裁剪及量化前的識(shí)別結(jié)果,圖11 是裁剪60%及INT8 量化后的識(shí)別結(jié)果。
經(jīng)過裁剪的網(wǎng)絡(luò),某一類的AP 值變化情況,與mAP 值的變化情況不一定呈現(xiàn)一致狀態(tài)。由圖可以看出,盡管在裁剪60%的前提下,mAP 下降了3.01%,但是truck類別的AP值上升,所以相比未裁剪和量化前的目標(biāo)識(shí)別結(jié)果,裁剪后多識(shí)別出了truck類目標(biāo)。mAP值的下降,說明其中多數(shù)類別的AP值呈下降趨勢(shì)。
圖9 裁剪60%及INT8量化后的可見光目標(biāo)識(shí)別結(jié)果Fig.9 Target recognition results of visible light image after pruning with 60%ratio and INT8 quantification
圖10 裁剪及量化前的紅外目標(biāo)識(shí)別結(jié)果Fig.10 Target recognition results of infrared image before pruning and quantification
圖11 裁剪60%及INT8量化后的紅外目標(biāo)識(shí)別結(jié)果Fig.11 Target recognition results of infrared image after pruning with 60%ratio and INT8 quantification
針對(duì)416 × 416 分辨率的輸入圖像,采用基于Xilinx 公司UltraScale+MPSoC 系列的XCZU7EV 器件驗(yàn)證平臺(tái),利用本文提出的裁剪及量化算法優(yōu)化后的YOLO V3網(wǎng)絡(luò)進(jìn)行實(shí)時(shí)推理,在保證精度的情況下,網(wǎng)絡(luò)實(shí)時(shí)推理速率可達(dá)到15 幀/s。與原始YOLO V3 網(wǎng)絡(luò)在基于GPU 的嵌入式Jetson TX2 平臺(tái)上執(zhí)行的3.3幀/s結(jié)果相比,經(jīng)過裁剪及量化,推理速率獲得了4.5 倍的加速比,能夠滿足無人車地面目標(biāo)識(shí)別的精度要求與實(shí)時(shí)性要求。
本文提出了針對(duì)CNN的壓縮優(yōu)化算法,并完成了硬件加速器平臺(tái)的開發(fā)及驗(yàn)證。本文所提出并應(yīng)用的神經(jīng)網(wǎng)絡(luò)裁剪及量化算法技術(shù),可以實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)壓縮及硬件平臺(tái)嵌入式應(yīng)用?;谒岢龅牟眉艏傲炕惴ǎY(jié)合嵌入式硬件平臺(tái)部署應(yīng)用,有助于實(shí)現(xiàn)自主可控的神經(jīng)網(wǎng)絡(luò)加速器研制。此外,本文提出的網(wǎng)絡(luò)壓縮優(yōu)化思想,可擴(kuò)展并應(yīng)用于各類智能硬件平臺(tái),從而方便地實(shí)現(xiàn)算法擴(kuò)展及復(fù)用,仿真驗(yàn)證分析結(jié)果表明:
(1)基于CNN 的目標(biāo)識(shí)別算法,其硬件資源計(jì)算需求量均可通過計(jì)算獲得。針對(duì)某一具體算法,在嵌入式硬件部署前,可以通過資源計(jì)算分析,合理進(jìn)行資源配置,從而選擇更優(yōu)、更適合的嵌入式硬件平臺(tái)。
(2)本文所提出和采用的神經(jīng)網(wǎng)絡(luò)自適應(yīng)裁剪算法、面向FPGA 的神經(jīng)網(wǎng)絡(luò)INT8 量化算法,在網(wǎng)絡(luò)精度損失較小的前提下,相比原始網(wǎng)絡(luò)在Jetson TX2平臺(tái)上執(zhí)行的3.3幀/s結(jié)果,獲得了4.5倍的推理速度提升。本文的優(yōu)化算法思想,對(duì)針對(duì)不同硬件平臺(tái)的神經(jīng)網(wǎng)絡(luò)優(yōu)化技術(shù)應(yīng)用,提供了新的技術(shù)思路。
本文的下一步研究方向,是基于FPGA 平臺(tái)的進(jìn)一步程序優(yōu)化及硬件優(yōu)化[18-21],并探索更為先進(jìn)的針對(duì)CNN的算法級(jí)優(yōu)化技術(shù),更好地實(shí)現(xiàn)深度學(xué)習(xí)目標(biāo)識(shí)別算法的應(yīng)用部署,為無人車地面目標(biāo)識(shí)別提供進(jìn)一步的技術(shù)解決方案。