陳 朋 何建彬 陳 諾 俞天緯 宦若虹③
(*浙江工業(yè)大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 杭州 310023)
(**浙江工業(yè)大學(xué)信息工程學(xué)院 杭州 310023)
目標(biāo)檢測(cè)是一項(xiàng)計(jì)算機(jī)視覺(jué)領(lǐng)域中結(jié)合圖像分割和圖像識(shí)別的重要技術(shù)。傳統(tǒng)目標(biāo)檢測(cè)的區(qū)域選擇策略沒(méi)有針對(duì)性,時(shí)間復(fù)雜度高,窗口冗余,對(duì)于多樣性變化的特征沒(méi)有好的魯棒性。因此在邊緣端設(shè)備上實(shí)現(xiàn)目標(biāo)檢測(cè),需要實(shí)時(shí)性更好、計(jì)算復(fù)雜度更低的目標(biāo)檢測(cè)方法。
隨著深度學(xué)習(xí)的發(fā)展,目標(biāo)檢測(cè)領(lǐng)域取得了很多突破性的研究成果,其檢測(cè)的精度和速度都有了較好的效果。文獻(xiàn)[1-3]提出了區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(region-based convolutional neural network,R-CNN)和Fast R-CNN 網(wǎng)絡(luò),使得神經(jīng)網(wǎng)絡(luò)在目標(biāo)檢測(cè)上獲得了較大的突破。但Fast R-CNN 也暴露出了區(qū)域候選的計(jì)算瓶頸問(wèn)題,文獻(xiàn)[4]在此基礎(chǔ)上提出了Faster R-CNN,引入一個(gè)區(qū)域候選網(wǎng)絡(luò)(region proposal networks,RPN),并優(yōu)化了算法。但是Faster R-CNN 在實(shí)時(shí)性上仍然有所限制,其在圖形處理器(graphics processing unit,GPU)上的幀速率僅有5 fps,因此YOLO[5]提出了one-stage 的概念,此方法將物體分類和物體定位在一個(gè)步驟中完成,提高了實(shí)時(shí)性,但是準(zhǔn)確率和漏檢率有待提高。SSD[6]綜合了Faster R-CNN 和YOLO 的優(yōu)點(diǎn),采用多尺度的特征圖來(lái)得到準(zhǔn)確率與實(shí)時(shí)性更高的網(wǎng)絡(luò)模型。
另一方面,目前卷積神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn)主要搭建在GPU 上,GPU 能夠使卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練得到很好的加速,但是能耗較大,不易作為邊緣端硬件平臺(tái),限制了其應(yīng)用場(chǎng)景?,F(xiàn)場(chǎng)可編程門(mén)陣列(field programmable gate array,FPGA)是一種可編程、可定制的芯片,具有并行處理的能力,以及高性能、高靈活性等優(yōu)點(diǎn)[7],可以被運(yùn)用到CNN 的加速中[8]。Xilinx 公司推出了用于高性能需求的異構(gòu)平臺(tái)ZYNQ 系列芯片,配合Cortex 系列的處理器,搭配可編輯邏輯部分,使得芯片架構(gòu)靈活、運(yùn)行功耗低、可重構(gòu)性和可移植性強(qiáng)。同時(shí)Xilinx 公司還推出了高層次綜合工具Vivado HLS 和Vitis,使得卷積神經(jīng)網(wǎng)絡(luò)在FPGA 上的開(kāi)發(fā)周期大大縮短。2015 -2019年的FPGA 會(huì)議[9-13]提出的各種加速器和加速器的框架,都表明FPGA 適用于卷積神經(jīng)網(wǎng)絡(luò)的移植。文獻(xiàn)[14]提出了全棧編譯器深度神經(jīng)網(wǎng)絡(luò)虛擬機(jī)(deep neural network virtual machine,DNNVM),采用啟發(fā)式子圖同構(gòu)算法枚舉所有潛在可獲利的融合機(jī)會(huì),利用管線和數(shù)據(jù)布局進(jìn)行硬件資源優(yōu)化,并搜索整個(gè)計(jì)算圖的最佳執(zhí)行策略。文獻(xiàn)[15]提出了一種特定于域的FPGA 覆蓋處理器(overlay processor unit,OPU),用于加速CNN 網(wǎng)絡(luò)。文獻(xiàn)[16]提出了基于舍入和移位操作量化方案的8 位優(yōu)化的塊浮點(diǎn)算法(block-floating-point,BFP),將能源和硬件效率提高了3 倍。文獻(xiàn)[17]提出了一種將原始網(wǎng)絡(luò)壓縮為定點(diǎn)形式的數(shù)據(jù)量化策略,并設(shè)計(jì)了可配置的硬件體系架構(gòu),使得網(wǎng)絡(luò)模型在FPGA 上具有較好的效果。
綜上所述,本文基于FPGA 對(duì)視頻實(shí)時(shí)目標(biāo)檢測(cè)算法進(jìn)行優(yōu)化實(shí)現(xiàn)。本文主要工作如下。
(1) 提出了結(jié)合通道注意力機(jī)制與深度可分離卷積的神經(jīng)網(wǎng)絡(luò)模型(attention-based depthwise seperable single shot multibox detector,AtDS-SSD),減少了計(jì)算量,增強(qiáng)了高層特征圖的語(yǔ)義信息。
(2) 提出一種基于FPGA 的算法網(wǎng)絡(luò)量化編譯方案,將本文算法移植到FPGA 上,在保證其對(duì)目標(biāo)檢測(cè)準(zhǔn)確率的基礎(chǔ)上減少算法的復(fù)雜度,降低功耗。
本文系統(tǒng)總體框架如圖1 所示,由AtDS-SSD 網(wǎng)絡(luò)模型的生成、量化、編譯以及部署4 個(gè)部分構(gòu)成。
圖1 系統(tǒng)總體框架
SSD 采用回歸方法獲取目標(biāo)對(duì)象的位置,并根據(jù)目標(biāo)對(duì)象位置周?chē)奶卣鬟M(jìn)行目標(biāo)分類,因此需要將特征圖分割成若干個(gè)相同大小的網(wǎng)格,對(duì)每個(gè)網(wǎng)格分別進(jìn)行預(yù)測(cè)分類,并通過(guò)非極大值抑制方法得到最終的檢測(cè)結(jié)果。
標(biāo)準(zhǔn)的SSD 神經(jīng)網(wǎng)絡(luò)運(yùn)行時(shí)間較久,不滿足實(shí)時(shí)性需求,并且模型參數(shù)計(jì)算量較大。為了滿足實(shí)時(shí)性需求,并減少參數(shù)計(jì)算量,本文使用深度可分離卷積替換原有的常規(guī)卷積層,將常規(guī)卷積分離成深度卷積和點(diǎn)卷積兩部分,使得計(jì)算復(fù)雜度更適合邊緣設(shè)備。深度可分離卷積是輕量級(jí)神經(jīng)網(wǎng)絡(luò)MobileNet 的重要組成部分,所以使用MobileNet 作為主體網(wǎng)絡(luò)替換原始SSD 網(wǎng)絡(luò)中的VGG 16。同時(shí)本文結(jié)合通道注意力機(jī)制增強(qiáng)高層語(yǔ)義特征信息,補(bǔ)償了由于模型參數(shù)計(jì)算量減少與實(shí)時(shí)性提升導(dǎo)致的精度下降,具有重要意義。
圖2 展示了AtDS-SSD 卷積神經(jīng)網(wǎng)絡(luò)的總體結(jié)構(gòu),包含3 部分:第1 部分為MobileNet 基礎(chǔ)網(wǎng)絡(luò),通過(guò)深度可分離卷積減少基礎(chǔ)網(wǎng)絡(luò)的計(jì)算量;第2 部分為通道注意力機(jī)制,通過(guò)增加很小的計(jì)算消耗,提升網(wǎng)絡(luò)性能;第3 部分為SSD 的類別預(yù)測(cè)與位置回歸。本文對(duì)網(wǎng)絡(luò)結(jié)構(gòu)的優(yōu)化在保證實(shí)時(shí)目標(biāo)檢測(cè)需求的同時(shí),減少邊緣端設(shè)備的計(jì)算量,有助于將網(wǎng)絡(luò)模型移植到資源有限、低功耗和低成本的嵌入式應(yīng)用場(chǎng)景。
圖2 AtDS-SSD 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)示意
1.1.1 深度可分離卷積
深度可分離卷積是MobileNet 的重要組成部分,將標(biāo)準(zhǔn)卷積核分離成一個(gè)逐通道處理的深度卷積核和一個(gè)跨通道處理的點(diǎn)卷積核,有效縮小模型參數(shù)計(jì)算量的同時(shí)仍然保持較高的準(zhǔn)確率。
標(biāo)準(zhǔn)卷積示意圖如圖3 所示,其中F為輸入,維度為Df × Df,通道為M;將F映射到G作為輸出,維度為Dg × Dg,通道為N。以常規(guī)卷積的卷積核進(jìn)行卷積,需要N個(gè)卷積核,每個(gè)卷積核的維度為Dk × Dk,通道為M,總體計(jì)算復(fù)雜度為
圖3 標(biāo)準(zhǔn)卷積
深度可分離卷積示意圖如圖4 所示,由深度卷積部分與點(diǎn)卷積部分組成。深度卷積部分有M個(gè)Dk × Dk ×1 的卷積核,將產(chǎn)生M個(gè)輸出張量,作為點(diǎn)卷積部分的輸入。點(diǎn)卷積部分有N個(gè)1×1× M的卷積核,生成N個(gè)Dg × Dg的輸出張量。該方法總體計(jì)算復(fù)雜度CCDepth為
圖4 深度可分離卷積
深度可分離卷積計(jì)算量CCDepth與常規(guī)卷積計(jì)算量CCconv的比率為
以AtDS-SSD 中的CONV11 層舉例,輸出N=1024 通道的特征圖,卷積層卷積核的尺寸為3 ×3,則模型的參數(shù)計(jì)算量?jī)H為標(biāo)準(zhǔn)卷積參數(shù)計(jì)算量的11.21%,大幅減小了模型參數(shù)的計(jì)算量。
1.1.2 通道注意力機(jī)制
通道注意力機(jī)制通過(guò)對(duì)通道間的依賴關(guān)系進(jìn)行建模,可以自適應(yīng)調(diào)整各通道的特征響應(yīng)值,僅在犧牲少量計(jì)算量的情況下,可以極大地提升網(wǎng)絡(luò)性能。
注意力機(jī)制模塊由壓縮(squeeze)、激勵(lì)(excitation)及注意(attention)操作3 部分組成,如圖5 所示。
圖5 通道注意力機(jī)制
Squeeze 操作是對(duì)輸入X(維度為C×H×W)進(jìn)行壓縮,使用全局平均池化將輸入特征圖的全局信息壓縮為通道描述符,具體的計(jì)算公式如式(4)所示。
其中,(i,j) 為輸入X的坐標(biāo),輸出Z為C ×1×1的矩陣。
Excitation 操作是對(duì)各通道的依賴程度進(jìn)行建模,本文使用ReLU 非線性激活函數(shù)和Sigmoid 激活函數(shù)的門(mén)限機(jī)制來(lái)實(shí)現(xiàn)。其中為了限制模型的復(fù)雜度,增強(qiáng)模型的泛化能力,使用了2 個(gè)全連接層去學(xué)習(xí),根據(jù)輸入數(shù)據(jù)可以調(diào)節(jié)各個(gè)通道特征的權(quán)重。具體計(jì)算公式如式(5)所示。
其中,W1和W2為通道權(quán)重,W1的維度是C′ × C,W2的維度是C × C′,C′=,通過(guò)ReLU 激活函數(shù)和Sigmoid 函數(shù)進(jìn)行訓(xùn)練學(xué)習(xí),最終得到的S的維度為C ×1×1。
Attention 操作為特征加權(quán)的過(guò)程,將原始的輸入X替換為經(jīng)過(guò)注意力模塊獲得的特征X′,并將其引入到原網(wǎng)絡(luò)中進(jìn)行目標(biāo)檢測(cè)。通過(guò)對(duì)各個(gè)通道的數(shù)據(jù)乘上不同的權(quán)重,從而增強(qiáng)對(duì)關(guān)鍵通道數(shù)據(jù)的信息。具體計(jì)算公式如式(6)所示。
由于嵌入式平臺(tái)的資源有限,將卷積神經(jīng)網(wǎng)絡(luò)移植到嵌入式平臺(tái)需要進(jìn)行模型壓縮,其中量化模型是一種常用方法。與GPU 及中央處理器(centrol processing unit,CPU)相比較,FPGA 在模型量化上可以更為靈活,故本文采用模型量化的網(wǎng)絡(luò)壓縮方法。
由于卷積神經(jīng)網(wǎng)絡(luò)中不同層的數(shù)據(jù)動(dòng)態(tài)范圍通常很大,因此,對(duì)所有層進(jìn)行統(tǒng)一的定點(diǎn)量化可能會(huì)導(dǎo)致很大的性能損失。為了解決這個(gè)問(wèn)題,本文對(duì)每一層都單獨(dú)進(jìn)行定點(diǎn)量化,將32 位浮點(diǎn)型數(shù)據(jù)轉(zhuǎn)換為8 位整型數(shù)據(jù)。
量化的方案如圖1 中的量化部分所示,將訓(xùn)練好的浮點(diǎn)模型和校準(zhǔn)數(shù)據(jù)集輸入到量化校準(zhǔn)模塊中,獲得定點(diǎn)模型。量化結(jié)束以后得到的定點(diǎn)模型不一定是最優(yōu)狀態(tài),所以對(duì)初步量化好以后的模型進(jìn)行數(shù)據(jù)準(zhǔn)確性測(cè)試。將測(cè)試結(jié)果與浮點(diǎn)模型進(jìn)行精度對(duì)比,當(dāng)精度損失較大時(shí),需要進(jìn)行量化微調(diào);當(dāng)精度損失較小時(shí),即可得到最終的定點(diǎn)模型。
其中量化校準(zhǔn)模塊如圖6 所示,本文將每層的特征圖和網(wǎng)絡(luò)參數(shù)收集到量化校準(zhǔn)模塊中,對(duì)所有參數(shù)進(jìn)行對(duì)數(shù)取整,得到取整后的數(shù)據(jù)直方圖。根據(jù)直方圖中連續(xù)八位占比最大的區(qū)間,可以不同地在每一層中找到最佳零點(diǎn)的位置,隨后根據(jù)零點(diǎn)位置對(duì)所有參數(shù)進(jìn)行移位操作,并進(jìn)行八位定點(diǎn)量化。在上述步驟中浮點(diǎn)參數(shù)過(guò)大或過(guò)小容易造成八位定點(diǎn)數(shù)據(jù)溢出,對(duì)于過(guò)大的數(shù)據(jù),保留符號(hào),將其絕對(duì)值設(shè)置為最大值;對(duì)于過(guò)小的數(shù)據(jù),將其設(shè)置為0。本文逐層確定每一層的零點(diǎn)位置,得到最佳量化結(jié)果的定點(diǎn)模型,用測(cè)試數(shù)據(jù)集進(jìn)行測(cè)試,根據(jù)測(cè)試結(jié)果可以選擇是否進(jìn)行下一步的量化微調(diào)。
圖6 量化校準(zhǔn)模塊
量化微調(diào)模塊是將量化以后的網(wǎng)絡(luò)模型轉(zhuǎn)換回浮點(diǎn)格式進(jìn)行微調(diào),期間需要使用到訓(xùn)練數(shù)據(jù)集,且中間參數(shù)如梯度、權(quán)重、激活等浮點(diǎn)數(shù)將會(huì)重新訓(xùn)練。將重新訓(xùn)練的結(jié)果再次量化為定點(diǎn)數(shù)據(jù),量化微調(diào)后的定點(diǎn)模型再與最初的浮點(diǎn)模型進(jìn)行精度對(duì)比。重復(fù)上述步驟,直到量化之后的網(wǎng)絡(luò)模型的精度損失在可接受范圍內(nèi)。
校準(zhǔn)數(shù)據(jù)集的主要作用是定義模型動(dòng)態(tài)輸入的范圍,因此本文選取的校準(zhǔn)數(shù)據(jù)集包含了模型輸入的所有類別。
模型編譯使用的是Xilinx 的Vitis AI 編譯工具,該編譯工具是編譯器系列的統(tǒng)一接口,用于優(yōu)化DPU 的神經(jīng)網(wǎng)絡(luò)計(jì)算。每個(gè)編譯器都將網(wǎng)絡(luò)模型映射到高度優(yōu)化的DPU 指令序列中。Vitis AI 編譯工具如圖1 中的編譯模塊所示,主要由解析器、優(yōu)化器和代碼生成器3 個(gè)部分組成。
解析器將模型中的網(wǎng)絡(luò)描述符映射到指令中。Vitis 編譯工具可以根據(jù)不同的FPGA 型號(hào)選擇相應(yīng)的指令集。通過(guò)指令調(diào)度FPGA 上的資源,進(jìn)行塊分區(qū)和內(nèi)存映射。塊分區(qū)的主要作用是將網(wǎng)絡(luò)模型和網(wǎng)絡(luò)參數(shù)在片上存儲(chǔ),對(duì)每一層的計(jì)算都進(jìn)行分區(qū),充分利用卷積神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)本地化并減少數(shù)據(jù)輸入輸出,實(shí)現(xiàn)高效且減少功耗的作用。內(nèi)存映射主要作用是將外部?jī)?nèi)存空間分配用于主機(jī)和網(wǎng)絡(luò)加速器之間的通信。塊分區(qū)和內(nèi)存映射結(jié)束后,FPGA 便可以通過(guò)指令集完成網(wǎng)絡(luò)模型的計(jì)算。
優(yōu)化器優(yōu)化網(wǎng)絡(luò)模型,其中包括計(jì)算節(jié)點(diǎn)的融合(例如將BN 層融合到預(yù)卷積中),充分復(fù)用FPGA 上的數(shù)據(jù),通過(guò)固有的并行性進(jìn)行有效的指令調(diào)度或數(shù)據(jù)的充分利用,可用于處理CNN 的高存儲(chǔ)復(fù)雜性。
最后通過(guò)代碼生成器生成可執(zhí)行文件,該文件包含了網(wǎng)絡(luò)模型、參數(shù)與權(quán)重等信息,可將其部署到FPGA 上。
本文完成了以下2 組實(shí)驗(yàn)。(1)VGG-SSD、MobileNet-SSD 以及AtDS-SSD 3 種卷積網(wǎng)絡(luò)模型在GPU 上目標(biāo)檢測(cè)的平均精度均值比較以及運(yùn)行時(shí)間比較;(2)AtDS-SSD 網(wǎng)絡(luò)模型在GPU 與FPGA 上的功能驗(yàn)證以及性能比較。通過(guò)上述實(shí)驗(yàn)來(lái)驗(yàn)證基于FPGA 結(jié)合注意力機(jī)制與深度可分離卷積的網(wǎng)絡(luò)模型在邊緣端設(shè)備進(jìn)行目標(biāo)檢測(cè)的綜合優(yōu)勢(shì)。
本文涉及到的3 種卷積網(wǎng)絡(luò)模型都由服務(wù)器訓(xùn)練生成,硬件平臺(tái)的處理器為Intel i9-10900X,顯卡為NVIDIA RTX 2080Ti,部署TensorFlow 深度學(xué)習(xí)框架,通過(guò)NVIDIA CUDA 運(yùn)算平臺(tái)調(diào)用顯卡進(jìn)行卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)訓(xùn)練。本文采用PASCAL VOC 2007 和PASCAL VOC 2012 訓(xùn)練數(shù)據(jù)集進(jìn)行訓(xùn)練,PASCAL VOC 2007 測(cè)試數(shù)據(jù)集進(jìn)行測(cè)試,該數(shù)據(jù)集包括20 個(gè)類別,即aeroplane、bicycle、bird、boat、bottle、bus、car、cat、chair、cow、diningtable、dog、horse、motorbike、person、pottedplant、sheep、sofa、train、tvmonitor,共22 163 張訓(xùn)練圖片和4952 張測(cè)試圖片。
本文在訓(xùn)練過(guò)程中將輸入圖片的分辨率調(diào)整為300 ×300,批尺寸(Batchsize)設(shè)置為32。訓(xùn)練完成后對(duì)各個(gè)網(wǎng)絡(luò)模型的目標(biāo)檢測(cè)準(zhǔn)確性和損失值進(jìn)行對(duì)比,各個(gè)網(wǎng)絡(luò)結(jié)構(gòu)訓(xùn)練過(guò)程中損失值的變化如圖7所示,其中縱坐標(biāo)為損失值,橫坐標(biāo)為訓(xùn)練的迭代次數(shù),各個(gè)網(wǎng)絡(luò)結(jié)構(gòu)訓(xùn)練過(guò)程中準(zhǔn)確率的變化如圖8所示,其中縱坐標(biāo)為準(zhǔn)確率,橫坐標(biāo)為訓(xùn)練的迭代次數(shù)。
圖7 網(wǎng)絡(luò)的損失值的變化
圖8 網(wǎng)絡(luò)的準(zhǔn)確率的變化
從圖7 中可以看出,loss 值隨著訓(xùn)練的迭代次數(shù)增加逐漸減少,一直到loss 值幾乎不變的時(shí)候,表明訓(xùn)練已經(jīng)達(dá)到最優(yōu)值,可以停止訓(xùn)練。圖8 可以看出MobieNet-SSD 與AtDS-SSD 的準(zhǔn)確率都低于VGG-SSD 網(wǎng)絡(luò),是因?yàn)閂GG-SSD 進(jìn)行檢測(cè)分類的最大特征張量的尺寸是30 ×30,而MobieNet-SSD 與AtDS-SSD 進(jìn)行檢測(cè)分類的最大特征張量的尺寸是19 ×19,所以對(duì)小目標(biāo)分類檢測(cè)更加弱,準(zhǔn)確率有所下降,但實(shí)時(shí)性增強(qiáng),速率更快。同時(shí)AtDS-SSD 相比較于MobileNet-SSD,通過(guò)結(jié)合通道注意力模塊增強(qiáng)了高層特征語(yǔ)義消息,補(bǔ)償了由于參數(shù)計(jì)算量的減少帶來(lái)的精度損失。
本實(shí)驗(yàn)在NVIDIA RTX 2080Ti 上分別使用VGG-SSD 神經(jīng)網(wǎng)絡(luò)、輕量級(jí)神經(jīng)網(wǎng)絡(luò)MobileNet-SSD和結(jié)合通道注意力機(jī)制和深度可分離卷積的AtDSSSD 神經(jīng)網(wǎng)絡(luò)對(duì)PASCAL VOC 2007 測(cè)試數(shù)據(jù)集進(jìn)行目標(biāo)檢測(cè)并比較。在目標(biāo)檢測(cè)中,通常采用平均精度均值(mean average precision,mAP)指標(biāo)對(duì)精度進(jìn)行評(píng)估,實(shí)驗(yàn)結(jié)果如表2 所示。從檢測(cè)結(jié)果可以看出,本文提出的AtDS-SSD 網(wǎng)絡(luò)模型在目標(biāo)檢測(cè)的平均精度均值上相較于VGG-SSD 網(wǎng)絡(luò)降低了11.02%,但是相較于MobieNet-SSD 網(wǎng)絡(luò),AtDS-SSD的準(zhǔn)確率提升了1.2%。
表2 VOC 測(cè)試集中部分目標(biāo)檢測(cè)的平均準(zhǔn)確率
此外,為檢測(cè)算法的實(shí)時(shí)性,本文對(duì)比了VGGSSD、MobileNet-SSD 和AtDS-SSD 卷積神經(jīng)網(wǎng)絡(luò)的檢測(cè)速度,具體檢測(cè)結(jié)果如表3 所示。由于VGG-SSD在實(shí)時(shí)性效果上遠(yuǎn)低于其他兩個(gè)網(wǎng)絡(luò),因此不適合將其移植到FPGA 上。而結(jié)合注意力機(jī)制與可分離卷積的AtDS-SSD 卷積神經(jīng)網(wǎng)絡(luò)在檢測(cè)速度上可以滿足實(shí)時(shí)性需求,且在精度上相較于MobileNet-SSD網(wǎng)絡(luò)略有優(yōu)化,使其實(shí)時(shí)性和檢測(cè)精度達(dá)到了更好的平衡,適用于邊緣端設(shè)備進(jìn)行目標(biāo)檢測(cè)。
表3 VOC 測(cè)試集中檢測(cè)速率對(duì)比
本實(shí)驗(yàn)對(duì)AtDS-SSD 在NVIDIA RTX 2080Ti 和ZCU 102 上的運(yùn)行結(jié)果進(jìn)行討論。
首先在不同硬件平臺(tái)上對(duì)AtDS-SSD 神經(jīng)網(wǎng)絡(luò)進(jìn)行功能驗(yàn)證。功能驗(yàn)證主要是將ZCU 102 上計(jì)算得到的預(yù)測(cè)數(shù)據(jù)與NVIDIA RTX 2080Ti 上計(jì)算得到的預(yù)測(cè)數(shù)據(jù)進(jìn)行對(duì)比,保證網(wǎng)絡(luò)模型的輸出能達(dá)到目標(biāo)檢測(cè)的基本功能。
本實(shí)驗(yàn)針對(duì)單目標(biāo)檢測(cè)和多目標(biāo)檢測(cè)都進(jìn)行了功能驗(yàn)證。單目標(biāo)結(jié)果如圖9 所示。圖9(a)為單目標(biāo)在NVIDIA RTX 2080Ti 上的檢測(cè)結(jié)果,目標(biāo)位置檢測(cè)精準(zhǔn)且分類正確,置信度為87.0%;圖9(b)為單目標(biāo)在ZCU 102 上的檢測(cè)結(jié)果,目標(biāo)位置檢測(cè)精準(zhǔn)且其分類正確,置信度為80.8%,結(jié)果與NVIDIA RTX 2080Ti 相差不大。多目標(biāo)檢測(cè)如圖10所示。圖10(a)為多目標(biāo)在NVIDIA RTX 2080Ti 上的檢測(cè)結(jié)果,目標(biāo)位置檢測(cè)精準(zhǔn)且其分類正確;圖10(b)為多目標(biāo)在ZCU 102 上的檢測(cè)結(jié)果,目標(biāo)位置檢測(cè)精準(zhǔn)且其分類正確,但是置信度略低于NVIDIA RTX 2080Ti 的運(yùn)行結(jié)果。上述結(jié)果表明,在NVIDIA RTX 2080Ti 與ZCU 102 上運(yùn)行最后的檢測(cè)結(jié)果產(chǎn)生的偏差不影響最終結(jié)果的呈現(xiàn)。
圖9 單目標(biāo)檢測(cè)結(jié)果
圖10 多目標(biāo)檢測(cè)結(jié)果
本實(shí)驗(yàn)對(duì)AtDS-SSD 神經(jīng)網(wǎng)絡(luò)在NVIDIA RTX 2080Ti 和ZCU 102 上的性能和功耗進(jìn)行測(cè)量與對(duì)比,其結(jié)果如表4 所示。在NVIDIA RTX 2080Ti 上進(jìn)行目標(biāo)檢測(cè)需要的功耗為77 W,而在ZCU 102 上進(jìn)行測(cè)試,功耗為8.56 W,設(shè)計(jì)功耗低,非常適合用于邊緣端設(shè)備處理實(shí)時(shí)目標(biāo)檢測(cè)。而且在ZCU 102上使用多線程模式對(duì)輸入圖像進(jìn)行測(cè)試時(shí),幀率達(dá)到311.7 fps,高于NVIDIA RTX 2080Ti 平臺(tái)。
表4 GPU 和FPGA 性能對(duì)比
本文提出了結(jié)合通道注意力機(jī)制與深度可分離卷積的AtDS-SSD 網(wǎng)絡(luò),減少了計(jì)算復(fù)雜度,增強(qiáng)了高層特征圖的語(yǔ)義信息。提出了一種對(duì)基于FPGA的算法網(wǎng)絡(luò)原始模型進(jìn)行量化編譯方案,將本文算法移植到FPGA 上,相較于現(xiàn)有邊緣實(shí)時(shí)目標(biāo)檢測(cè)系統(tǒng),綜合兼顧了目標(biāo)檢測(cè)的實(shí)時(shí)性和準(zhǔn)確性,使得2 種參數(shù)得到了更好提升,且降低了功耗,提高了計(jì)算能效。實(shí)驗(yàn)結(jié)果表明,本文對(duì)視頻實(shí)時(shí)目標(biāo)檢測(cè)的優(yōu)化與實(shí)現(xiàn)滿足了邊緣端設(shè)備計(jì)算實(shí)時(shí)性的要求,同時(shí)也解決了功耗問(wèn)題。