• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于FPGA的YOLOv5s網(wǎng)絡(luò)高效卷積加速器設(shè)計(jì)*

    2024-03-26 06:31:50王林林周文勃
    電訊技術(shù) 2024年3期
    關(guān)鍵詞:加速器卷積特征

    劉 謙,王林林,周文勃

    (1.中國(guó)科學(xué)院國(guó)家空間科學(xué)中心,北京 100190;2.中國(guó)科學(xué)院大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,北京 100049)

    0 引 言

    近年來,卷積神經(jīng)網(wǎng)絡(luò)目標(biāo)識(shí)別算法在人臉識(shí)別、自動(dòng)駕駛以及物體識(shí)別等民用領(lǐng)域獲得了巨大的成功。目前國(guó)內(nèi)航天技術(shù)也逐漸向智能化轉(zhuǎn)變,在航天設(shè)備上應(yīng)用智能化的目標(biāo)檢測(cè)系統(tǒng)受到越來越多的關(guān)注。然而星載硬件計(jì)算資源十分匱乏,如何將基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測(cè)算法部署到資源有限的宇航級(jí)芯片上是亟需解決的一項(xiàng)技術(shù)難題[1]。

    現(xiàn)場(chǎng)可編程門陣列(Field Programmable Gate Array,FPGA)作為航天常用主控器件,具有功耗低、可重構(gòu)以及并行計(jì)算能力強(qiáng)等優(yōu)點(diǎn),利用其高度的并行計(jì)算能力能夠以較低的功耗實(shí)現(xiàn)高效的卷積計(jì)算,在卷積加速方面能夠表現(xiàn)出獨(dú)特的優(yōu)勢(shì)[2]。因此,本文提出采用FPGA作為硬件加速單元實(shí)現(xiàn)基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測(cè)加速系統(tǒng)。

    目前基于FPGA的卷積加速器研究主要集中在3×3標(biāo)準(zhǔn)卷積加速的優(yōu)化上,對(duì)于目標(biāo)檢測(cè)常用的YOLO網(wǎng)絡(luò)的網(wǎng)絡(luò)加速優(yōu)化研究還較少。由于目標(biāo)檢測(cè)網(wǎng)絡(luò)較卷積計(jì)算有著更加復(fù)雜的結(jié)構(gòu),因此研究如何實(shí)現(xiàn)高效的網(wǎng)絡(luò)加速更具有意義。在YOLO目標(biāo)檢測(cè)網(wǎng)絡(luò)中卷積一般為兩種,分別是1×1卷積和3×3卷積。對(duì)于YOLO目標(biāo)檢測(cè)網(wǎng)絡(luò)的加速,文獻(xiàn)[3-4]中提出的加速結(jié)構(gòu)分別對(duì)1×1卷積和3×3卷積進(jìn)行了硬件設(shè)計(jì),兩種卷積計(jì)算單元相互獨(dú)立,計(jì)算資源互不共享。由于卷積神經(jīng)網(wǎng)絡(luò)目標(biāo)檢測(cè)算法每次只對(duì)一種卷積進(jìn)行計(jì)算,因此此類結(jié)構(gòu)中總有一部分計(jì)算單元會(huì)空閑,從而使硬件利用率較低。而文獻(xiàn)[5]中提出卷積復(fù)用的方法,將1×1卷積權(quán)重放置在3×3卷積核權(quán)重第5位,剩余8位權(quán)重置零。該方法用3×3卷積直接代替1×1卷積,雖然大幅提高了硬件利用率,但是1×1卷積計(jì)算時(shí)每計(jì)算1次會(huì)產(chǎn)生8次無效計(jì)算和無效數(shù)據(jù)傳輸,因此造成了1×1卷積計(jì)算效率低下。文獻(xiàn)[6]中提出了一種策略,將3×3卷積轉(zhuǎn)換成1×1卷積進(jìn)行計(jì)算,并對(duì)YOLOv5s網(wǎng)絡(luò)實(shí)現(xiàn)了加速計(jì)算,但是該方法卻犧牲了部分并行性,計(jì)算性能較差。文獻(xiàn)[7]采用了基于Winograd算法的硬件加速結(jié)構(gòu)完成了對(duì)3×3、5×5以及11×11尺寸的卷積加速,并取得了較好的加速效果,但該方法并不支持1×1卷積的計(jì)算。由于YOLOv5目標(biāo)檢測(cè)網(wǎng)絡(luò)中具有大量的1×1卷積計(jì)算,因此該方法并不適合用于加速YOLOv5目標(biāo)檢測(cè)網(wǎng)絡(luò)。

    為解決以上文獻(xiàn)中所提結(jié)構(gòu)的缺點(diǎn),本文提出了一種將1×1卷積和3×3卷積計(jì)算單元復(fù)用共享的結(jié)構(gòu)。在大幅提高硬件利用率的同時(shí),既可以計(jì)算1×1卷積也可以計(jì)算3×3卷積,同時(shí)1×1卷積計(jì)算時(shí)也不會(huì)產(chǎn)生無效計(jì)算和無效數(shù)據(jù)傳輸,解決了文獻(xiàn)[3-7]中加速器結(jié)構(gòu)硬件利用率低、計(jì)算效率低以及不支持1×1卷積計(jì)算等問題。此外,該硬件加速器還利用了層融合、多維度并行卷積加速、模型量化降低資源消耗等方法以較低的FPGA資源消耗獲得了較高的計(jì)算能力,實(shí)現(xiàn)了卷積神經(jīng)網(wǎng)絡(luò)目標(biāo)檢測(cè)的高效計(jì)算。最后本文以通用目標(biāo)檢測(cè)算法YOLOv5s算法為基礎(chǔ),并以天體表面隕石坑的識(shí)別為主,驗(yàn)證了所提出的加速器結(jié)構(gòu)的有效性。

    1 YOLOv5s目標(biāo)檢測(cè)算法

    YOLOv5目標(biāo)檢測(cè)算法由Ultralytics LLC公司于2020年5月提出,是目前優(yōu)秀的目標(biāo)檢測(cè)算法之一。通過YOLOv5算法能夠?qū)崿F(xiàn)多目標(biāo)高精度的目標(biāo)檢測(cè),可以解決傳統(tǒng)目標(biāo)檢測(cè)算法要求檢測(cè)背景簡(jiǎn)單以及需要被檢測(cè)目標(biāo)特征明顯類型單一等問題。YOLOv5目標(biāo)檢測(cè)網(wǎng)絡(luò)結(jié)構(gòu)共有5個(gè)主流版本,分別是YOLOv5n、YOLOv5s、YOLOv5m、YOLOv5l和YOLOv5x。

    本文綜合速度、精度等方面的因素采用了YOLOv5s,并對(duì)YOLOv5s算法結(jié)構(gòu)進(jìn)行了微調(diào):

    一是將原算法模型的激活層由SiLU替換為L(zhǎng)eaky ReLU。由于SiLU激活函數(shù)中包括指數(shù)、乘法、除法和加法計(jì)算,其計(jì)算復(fù)雜度高,而Leaky ReLU激活函數(shù)中僅包含一個(gè)乘法計(jì)算計(jì)算復(fù)雜度低,因此采用Leaky ReLU激活函數(shù)能夠在一定程度上降低計(jì)算量。

    二是保留了YOLOv5s-5.0中的FOCUS結(jié)構(gòu)和YOLOv5s-6.0中的SPPF結(jié)構(gòu),SPPF結(jié)構(gòu)中只采用了一種尺寸5×5的Maxpool,相較于SPP結(jié)構(gòu)中3種不同尺寸(5×5、9×9、13×13)的Maxpool在FPGA上僅需要設(shè)計(jì)一種尺寸Maxpool,能夠簡(jiǎn)化FPGA對(duì)Maxpool的設(shè)計(jì)。

    以上算法修改均能夠有效減少FPGA資源使用,且對(duì)算法本身影響不大。調(diào)整后的YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。

    圖1 調(diào)整后YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Network architecture of adjusted YOLO V5s

    2 網(wǎng)絡(luò)模型層融合與量化

    2.1 網(wǎng)絡(luò)模型層融合

    YOLOv5s算法中CBS計(jì)算過程包括卷積、BN(Batch Normalization)和Leaky ReLU三部分。在模型訓(xùn)練過程中BN層能夠解決梯度消失和梯度爆炸的問題,并可以加快網(wǎng)絡(luò)的收斂提高訓(xùn)練效率,同時(shí)也可以提高網(wǎng)絡(luò)穩(wěn)定性。而在前向推理過程中BN層卻降低了模型的性能,所以在推理過程中可以通過層融合的方式將BN層融合到卷積層中,從而達(dá)到降低計(jì)算量、提高模型性能的效果[8]。卷積層BN層融合過程如下:

    在BN層中μ表示輸入的均值如式(1)所示,式中x表示輸入特征圖中的元素,m表示輸入特征圖中元素的個(gè)數(shù)。δ2為輸入的方差,如式(2)所示。

    (1)

    (2)

    BN計(jì)算公式如式(3)所示,式中γ為尺度因子,β為偏移因子。尺度因子優(yōu)化了特征數(shù)據(jù)分布的寬窄,偏移因子則優(yōu)化了數(shù)據(jù)的偏移量,在模型訓(xùn)練過程中這兩個(gè)參數(shù)自動(dòng)學(xué)習(xí),訓(xùn)練結(jié)束后數(shù)值固定。ε為一個(gè)大于0且極小的數(shù)值,用于防止方差δ2為0的異常情況出現(xiàn)。式(4)為卷積計(jì)算公式,其中W表示卷積核,X表示輸入特征圖,B表示偏置,Y表示輸出特征圖。將式(4)代入到BN計(jì)算中得到卷積和BN計(jì)算的總公式(5),式中Y′表示卷積和BN計(jì)算后的輸出特征圖。

    (3)

    Y=WX+B

    (4)

    (5)

    將式(5)展開可得出新的卷積核W′如式(6)所示,新的偏置B′如式(7)所示。

    (6)

    (7)

    層融合的方法通過提前計(jì)算獲得新的卷積核W′和偏置B′,從而將BN層融合到卷積層中,有效降低了模型推理階段FPGA上的計(jì)算量,減少FPGA片上DSP48E、LUT等資源的消耗。同時(shí)由于計(jì)算步驟減少,所以也能夠在一定程度上減小推理延時(shí),提高系統(tǒng)整體性能。

    2.2 網(wǎng)絡(luò)模型量化

    在深度學(xué)習(xí)領(lǐng)域量化是一種常用的能夠有效降低存儲(chǔ)空間和計(jì)算成本的方法[9],可以有效壓縮模型大小。在FPGA上采用量化方法用低位寬的定點(diǎn)乘法器、加法器代替高位寬的浮點(diǎn)乘法器、加法器可以大幅降低FPGA邏輯資源的使用,提高資源緊缺情況下FPGA上的計(jì)算能力。本文對(duì)模型進(jìn)行了量化,將32位單精度浮點(diǎn)轉(zhuǎn)換為16位定點(diǎn)數(shù),在FPGA中設(shè)計(jì)16位定點(diǎn)乘法器、加法器來完成卷積層的計(jì)算。

    3 FPGA硬件加速器設(shè)計(jì)

    3.1 加速器體系架構(gòu)

    根據(jù)圖1中YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu)框圖可以看出其內(nèi)部由基礎(chǔ)模塊構(gòu)成,包括卷積Conv模塊、ADD模塊、Maxpool模塊、Silce模塊、上采樣模塊和Concat模塊。其中卷積分為兩類,分別為1×1卷積和3×3標(biāo)準(zhǔn)卷積,在YOLOv5s算法中一共了包含43層1×1卷積和19層3×3標(biāo)準(zhǔn)卷積,該部分是YOLOv5s算法中計(jì)算最復(fù)雜的部分,需要在FPGA設(shè)計(jì)并行計(jì)算單元以達(dá)到計(jì)算加速效果。本文對(duì)YOLOv5s算法中計(jì)算量較大的模塊在FPGA上進(jìn)行了硬件加速設(shè)計(jì),包括Conv1×1卷積、Conv3×3卷積、ADD、Maxpool和上采樣模塊。

    加速器整體架構(gòu)如圖2所示,該架構(gòu)中包括CPU和FPGA兩個(gè)部分。其中CPU部分為雙核ARM Cortex-A9 MPCore,該部分外掛DDR3內(nèi)存,用于緩存特征圖和權(quán)重?cái)?shù)據(jù)以及運(yùn)算過程中產(chǎn)生的中間數(shù)據(jù),外掛NAND FLASH用于存儲(chǔ)輸入的圖像文件和權(quán)重文件以及存儲(chǔ)計(jì)算后的輸出文件。UART接口用于監(jiān)控加速器各個(gè)階段的計(jì)算耗時(shí),輸出所識(shí)別到的隕石坑在圖像中的坐標(biāo)信息。CPU部分主要進(jìn)行圖像和權(quán)重等文件的讀取、將圖像和權(quán)重文件轉(zhuǎn)存到DDR3、配置FPGA端加速器以及處理YOLOv5s中簡(jiǎn)單的計(jì)算如Silce和Concat。

    圖2 系統(tǒng)整體架構(gòu)Fig.2 Overall system architecture

    FPGA端設(shè)計(jì)有主計(jì)算單元和輔計(jì)算單元兩個(gè)部分。其中主計(jì)算單元包括3×3卷積緩存模塊、1×1卷積緩存模塊、通用并行計(jì)算模塊和ADD計(jì)算模塊。在主計(jì)算單元中由于涉及的數(shù)據(jù)量較大且數(shù)據(jù)傳輸延時(shí)較長(zhǎng),所以在主計(jì)算單元中采用雙緩存乒乓機(jī)制用于掩蓋數(shù)據(jù)傳輸所消耗的時(shí)間。輔計(jì)算單元包括Maxpool計(jì)算模塊和上采樣計(jì)算模塊。

    CPU和FPGA之間通過AXI(Advanced eXtensible Interface)總線交互數(shù)據(jù),采用了1個(gè)AXI-GP接口和4個(gè)AXI-HP接口。其中AXI-GP接口用于FPGA和CPU之間的控制信號(hào)傳輸,實(shí)現(xiàn)加速器的偏移地址配置以及其他參數(shù)配置。而AXI-HP接口負(fù)責(zé)計(jì)算過程中DDR3內(nèi)存與FPGA的高速數(shù)據(jù)交換,AXI-HP接口和DDR之間具有專有控制器可以直接實(shí)現(xiàn)FPGA與內(nèi)存的高速數(shù)據(jù)交換,由于不需要經(jīng)過CPU從而大大提高了數(shù)據(jù)傳輸效率,適合大數(shù)據(jù)吞吐量的應(yīng)用場(chǎng)景。

    3.2 存儲(chǔ)設(shè)計(jì)

    3.2.1 循環(huán)分塊策略

    由于FPGA的片上存儲(chǔ)BRAM(Block Random Access Memory)資源十分有限,而卷積計(jì)算過程中的權(quán)重、偏置以及特征圖會(huì)占用大量的存儲(chǔ)資源,所以無法直接將整個(gè)特征圖存儲(chǔ)到FPGA的片上存儲(chǔ)中。因此本文采用對(duì)特征圖進(jìn)行循環(huán)分塊的設(shè)計(jì)策略,將片外DDR3中存儲(chǔ)的完整特征圖分為數(shù)個(gè)小塊,分批次存儲(chǔ)到FPGA片上存儲(chǔ)BRAM中進(jìn)行后續(xù)的卷積計(jì)算,解決了FPGA片上存儲(chǔ)資源不足的問題。循環(huán)分塊過程如圖3所示,分塊后的小特征圖存儲(chǔ)在雙緩存結(jié)構(gòu)中。

    圖3 循環(huán)分塊過程Fig.3 Cyclic chunking process

    3.2.2 雙緩存與緩存分割

    為進(jìn)一步提高整個(gè)系統(tǒng)的吞吐量,掩蓋AXI總線和內(nèi)存之間的傳輸延時(shí),本文設(shè)計(jì)了一種雙緩存機(jī)制,使加速器可以在AXI總線傳輸特征圖的過程中同時(shí)進(jìn)行卷積計(jì)算。雙緩存結(jié)構(gòu)如圖4所示,當(dāng)計(jì)算單元讀取緩存1中的數(shù)據(jù)進(jìn)行卷積計(jì)算的過程中,緩存2可以同時(shí)用于接收AXI總線中的數(shù)據(jù),而緩存2用于計(jì)算時(shí),緩存1則可以用于接收數(shù)據(jù),以此往復(fù)。該結(jié)構(gòu)可以使計(jì)算單元一直處于工作狀態(tài),從而在一定程度上提高整個(gè)系統(tǒng)的工作效率。

    圖4 雙緩存結(jié)構(gòu)示意Fig.4 Dual cache architecture schematic

    此外,由于FPGA中的BRAM僅能配置為雙端口進(jìn)行讀寫,讀寫速率受端口數(shù)量的限制。為解決此類問題,本文采用數(shù)組分割的方式,將分割后的數(shù)組存儲(chǔ)在不同的BRAM中,用數(shù)個(gè)小容量緩存代替一個(gè)大容量緩存,從而可以實(shí)現(xiàn)多個(gè)端口同時(shí)讀寫數(shù)據(jù)提高數(shù)據(jù)吞吐量,為后續(xù)并行計(jì)算結(jié)構(gòu)提供充足的數(shù)據(jù)量。

    3.3 卷積計(jì)算結(jié)構(gòu)設(shè)計(jì)

    本文中1×1卷積和3×3卷積采用了復(fù)用的計(jì)算單元,需要計(jì)算單元盡可能兼容兩種卷積計(jì)算,因此本文設(shè)計(jì)了輸入-輸出通道并行的加速結(jié)構(gòu),該結(jié)構(gòu)中計(jì)算單元的硬件結(jié)構(gòu)與卷積核尺寸無關(guān)。其計(jì)算單元中包含64個(gè)數(shù)據(jù)處理單元(Processing Element,PE),PE由8個(gè)輸入并行數(shù)據(jù)選擇器、4個(gè)乘法器、1個(gè)加法樹以及1個(gè)累加結(jié)構(gòu)構(gòu)成。每個(gè)PE單元具有8個(gè)輸入通道其中1×1卷積和3×3卷積各4個(gè)通道,通過數(shù)據(jù)選擇器選擇其中4個(gè)通道至后續(xù)的運(yùn)算結(jié)構(gòu),因此實(shí)現(xiàn)了1×1卷積和3×3卷積的計(jì)算資源共享。PE計(jì)算單元結(jié)構(gòu)如圖5所示。

    圖5 PE結(jié)構(gòu)示意Fig.5 PE architecture schematic

    在YOLOv5s算法中的通道數(shù)最大達(dá)到了1 024,受限于FPGA資源無法將1 024個(gè)通道全部在FPGA上實(shí)現(xiàn)并行,所以實(shí)際輸入的特征圖通道數(shù)遠(yuǎn)大于PE單元的設(shè)計(jì)輸入通道,因此,輸入的特征圖只能分批進(jìn)入PE單元中進(jìn)行計(jì)算。此外,對(duì)于3×3卷積每一個(gè)通道的每一個(gè)輸出數(shù)據(jù)也都會(huì)進(jìn)行9次卷積核內(nèi)計(jì)算,且輸出通道的計(jì)算結(jié)果是分批輸入特征圖卷積累加的結(jié)果,因此在PE單元中增加了累加結(jié)構(gòu)用于將不同批次進(jìn)入PE單元的輸出數(shù)據(jù)以及3×3卷積核內(nèi)計(jì)算數(shù)據(jù)進(jìn)行累加,實(shí)現(xiàn)完整的多通道卷積計(jì)算。為提高PE結(jié)構(gòu)的運(yùn)行頻率和吞吐量,本文在PE單元的硬件結(jié)構(gòu)中插入了中間寄存器進(jìn)行了6級(jí)流水設(shè)計(jì),使加速器可以在高時(shí)鐘頻率下穩(wěn)定工作。

    3.4 Leaky ReLU激活函數(shù)計(jì)算單元設(shè)計(jì)

    在YOLOv5s中最后一層卷積不需要激活函數(shù),所以由累加器輸出的特征圖還需要通過數(shù)據(jù)選擇器,選擇特征圖是否經(jīng)過激活函數(shù)。激活函數(shù)根據(jù)調(diào)整后的算法結(jié)構(gòu)采用Leaky ReLU,該激活函數(shù)較SiLU激活函數(shù)具有電路結(jié)構(gòu)簡(jiǎn)單的優(yōu)點(diǎn),適合在計(jì)算資源緊張的嵌入式環(huán)境應(yīng)用,其計(jì)算公式如式(8),本文中a采用0.01。

    (8)

    由于Leaky ReLU激活函數(shù)計(jì)算簡(jiǎn)單,計(jì)算延時(shí)低僅需要1個(gè)時(shí)鐘周期,故本文中一共設(shè)計(jì)了4個(gè)并行Leaky ReLU計(jì)算單元對(duì)應(yīng)在4個(gè)AXI輸出接口之前,其結(jié)構(gòu)電路如圖6所示。

    圖6 Leaky ReLU結(jié)構(gòu)示意Fig.6 Leaky ReLU architecture schematic

    3.5 ADD模塊設(shè)計(jì)

    ADD本質(zhì)是將兩個(gè)輸入層相加,該部分要求輸入層的通道數(shù)、特征圖尺寸完全相等。由于ADD單元的計(jì)算結(jié)構(gòu)與卷積計(jì)算單元有著較大的差異,難以實(shí)現(xiàn)與卷積計(jì)算共享硬件資源的計(jì)算結(jié)構(gòu),因此本文對(duì)ADD結(jié)構(gòu)進(jìn)行了單獨(dú)的硬件加速設(shè)計(jì)。ADD硬件加速模塊的結(jié)構(gòu)如圖7所示。

    圖7 ADD結(jié)構(gòu)示意Fig.7 ADD architecture schematic

    該部分同樣采用雙緩存結(jié)構(gòu)用于提高吞吐量。為降低尋址難度,該部分采用一維形式分塊,將n×n特征圖所有的數(shù)據(jù)按照Tp個(gè)特征點(diǎn)分批為n×n/Tp次,同時(shí)按照Tn個(gè)通道將輸入通道N按N/Tn次分批處理,將Tn個(gè)通道的Tp個(gè)特征點(diǎn)數(shù)據(jù)一次性由DDR3傳輸?shù)紽PGA端并緩存到片上BRAM中,充分利用AXI-HP總線的突發(fā)傳輸模式有效降低傳輸延時(shí),其中Tn為32,Tp為400。其加法計(jì)算部分采用三級(jí)流水,分別為讀數(shù)據(jù)階段、加法計(jì)算階段和寫數(shù)據(jù)階段,用于提高系統(tǒng)工作頻率。

    3.6 Maxpool模塊設(shè)計(jì)

    Maxpool在算法中主要起到減小特征圖尺寸,控制過擬合的作用[10]。對(duì)于最大池化模塊Maxpool的處理,首先按照Maxpool的窗口尺寸將特征圖分為5×5的小塊,然后將5×5分塊的特征圖存儲(chǔ)到輸入緩存中,之后通過比較器樹比較5×5特征圖中25個(gè)特征點(diǎn)的大小,取最大值并將該值作為輸出特征圖中的一個(gè)特征點(diǎn)存入到輸出緩存中。其處理過程和計(jì)算單元結(jié)構(gòu)圖如圖8所示。

    圖8 5×5 Maxpool結(jié)構(gòu)示意Fig.8 5×5 Maxpool architecture schematic

    3.7 上采樣模塊設(shè)計(jì)

    YOLOv5s中所使用的上采樣模塊作用是將輸入特征圖擴(kuò)大4倍,即1個(gè)輸入特征點(diǎn)對(duì)應(yīng)4個(gè)輸出特征點(diǎn)。該部分在FPGA上實(shí)現(xiàn)的結(jié)構(gòu)較為簡(jiǎn)單,僅僅涉及緩存的讀寫,具體操作是將輸入緩存中的1個(gè)特征點(diǎn)取出并轉(zhuǎn)存到輸出緩存中對(duì)應(yīng)的4個(gè)特征點(diǎn)上。

    4 實(shí)驗(yàn)與分析

    4.1 實(shí)驗(yàn)環(huán)境和平臺(tái)

    本實(shí)驗(yàn)在YOLOv5s模型訓(xùn)練階段采用了自制數(shù)據(jù)集,使用了124張來自月球和火星的隕石坑圖片,圖片尺寸為640×640,用于驗(yàn)證小樣本數(shù)據(jù)集下目標(biāo)檢測(cè)算法的有效性。采用的訓(xùn)練平臺(tái)硬件環(huán)境為Intel i7-1100 CPU,RTX3080 GPU,16 GB內(nèi)存。

    在加速效果測(cè)試中,為比較不同平臺(tái)間的差異采用了兩種平臺(tái),分別為實(shí)驗(yàn)平臺(tái)1,Xilinx公司ZC706開發(fā)板,該開發(fā)板采用的主芯片型號(hào)為XC7Z045,XC7Z045芯片集成雙核ARM Cortex-A9 CPU和Kintex-7 FPGA,FPGA中具備900個(gè)DSP48E單元、218 600個(gè)LUT邏輯資源以及545個(gè)BRAM36K存儲(chǔ)資源;實(shí)驗(yàn)平臺(tái)2,微相公司ZYNQ開發(fā)板,該開發(fā)板主芯片為XC7Z020,XC7Z020芯片集成雙核ARM Cortex-A9 CPU和Artix-7 FPGA,FPGA中具備220個(gè)DSP48E單元、53 200個(gè)LUT邏輯資源以及140個(gè)BRAM36K存儲(chǔ)資源。

    4.2 實(shí)驗(yàn)結(jié)果與分析

    XC7Z045芯片中FPGA片上資源使用情況如表1所示,其中DSP48E1一共使用了65%,主要用于組成卷積計(jì)算結(jié)構(gòu)中的乘法器和加法器以及ADD模塊中的加法器;BRAM36K使用了58.07%,主要用于FPGA片上對(duì)特征圖、權(quán)重等的緩存,以及構(gòu)成雙緩沖結(jié)構(gòu)等;而LUT、LUTRAM以及FF等資源主要用于加速器邏輯控制、加速器內(nèi)部流水線構(gòu)成等。

    表1 XC7Z045芯片資源占用率Tab.1 XC7Z045 chip resource usage

    XC7Z020芯片中FPGA片上資源使用情況如表2所示,各部分資源的作用與XC7Z045相似。

    表2 XC7Z020芯片資源占用率Tab.2 XC7Z020 chip resource usage

    實(shí)驗(yàn)表明,該目標(biāo)檢測(cè)系統(tǒng)能夠正確讀取FLASH中的圖像和權(quán)重文件并進(jìn)行YOLOv5s算法的計(jì)算,能夠準(zhǔn)確識(shí)別出圖像中的天體隕石坑位置。部分天體隕石坑的識(shí)別結(jié)果如圖9所示,矩形框所框出的位置為隕石坑所在位置。表3對(duì)原始YOLOv5s網(wǎng)絡(luò)和本文中的YOLOv5s網(wǎng)絡(luò)的檢測(cè)效果做了對(duì)比,可見本文中的YOLOv5s網(wǎng)絡(luò)保持了與原始網(wǎng)絡(luò)效果相近,雖然指標(biāo)有一定的損失,但是本文網(wǎng)絡(luò)更加適合在FPGA上實(shí)現(xiàn),與文獻(xiàn)[6]相比在相同硬件平臺(tái)下,采用本文中的加速器結(jié)構(gòu)和YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu)獲得了數(shù)倍的計(jì)算性能提升,其利遠(yuǎn)大于弊。

    表3 與原始網(wǎng)絡(luò)的識(shí)別效果對(duì)比Tab.3 Recognition results compared with the original network

    圖9 隕石坑識(shí)別結(jié)果Fig.9 Crater identification results

    通過實(shí)驗(yàn)將本文中所提出的FPGA加速結(jié)構(gòu)與RTX2060、樹莓派兩種平臺(tái)在功耗、速度以及芯片架構(gòu)、能效等方面做了比較,結(jié)果見表4。在FPGA平臺(tái)下的能效(單位:J/picture)是CPU平臺(tái)的11~41倍,是GPU平臺(tái)的2.3倍。通過分析可以得出,FPGA平臺(tái)上實(shí)現(xiàn)的YOLOv5s算法在能效方面較CPU和GPU平臺(tái)具有顯著優(yōu)勢(shì),能夠?qū)崿F(xiàn)低功耗情景下的高性能計(jì)算。

    表4 不同平臺(tái)間計(jì)算速度對(duì)比Tab.4 Comparison of computing speed between platforms

    在加速器方面,將本文中提出的加速結(jié)構(gòu)與其他文獻(xiàn)中加速結(jié)構(gòu)在計(jì)算性能、能效以及DSP利用率等方面進(jìn)行了比較,結(jié)算如表5所示。表中GOPS表示加速器每秒乘法和加法的總計(jì)算次數(shù),GOPS·W-1表示能效比,GOPS·DSP-1表示DSP效率。通過對(duì)比可以看出,本文所提出的加速器結(jié)構(gòu)在計(jì)算能力、能效比、DSP效率等方面均有著較好的表現(xiàn),平臺(tái)2(XC7Z020平臺(tái))與文獻(xiàn)[6]在相同算法、相同硬件平臺(tái)情況下其計(jì)算性能提高了4.46倍,能效比提高了3.69倍,DSP利用效率提高了4.49倍。此外,平臺(tái)1(XC7Z045平臺(tái))與平臺(tái)2(XC7Z020平臺(tái))相比,平臺(tái)1實(shí)現(xiàn)了更強(qiáng)的計(jì)算能力,原因是平臺(tái)1硬件資源較多可以實(shí)現(xiàn)更高的并行度,但在能效比和DSP效率上兩者基本保持一致,受不同平臺(tái)的影響較小,因此本文中的加速結(jié)構(gòu)可以在不同硬件平臺(tái)上進(jìn)行移植,同樣可以實(shí)現(xiàn)較高的能效和DSP利用率。通過以上對(duì)比可知,本文所提出的YOLOv5s網(wǎng)絡(luò)FPGA加速結(jié)構(gòu)具有資源使用量少、效率高等特點(diǎn),在相同器件上能夠提供更強(qiáng)的計(jì)算能力。

    表5 加速性能對(duì)比Tab.5 Accelerated performance comparison

    5 結(jié)束語(yǔ)

    本文研究了基于YOLOv5s目標(biāo)檢測(cè)網(wǎng)絡(luò)的加速設(shè)計(jì),并提出了一種適用于YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu)的FPGA硬件加速結(jié)構(gòu),實(shí)現(xiàn)了對(duì)YOLOv5s算法各個(gè)階段的加速工作,完成了對(duì)天體隕石坑的目標(biāo)識(shí)別檢測(cè)。此外,還提出了一種1×1卷積和3×3卷積硬件計(jì)算資源共享的結(jié)構(gòu),實(shí)驗(yàn)表明該結(jié)構(gòu)較其他結(jié)構(gòu)在能效、資源利用效率等方面具有一定的優(yōu)勢(shì),在資源受限的領(lǐng)域具有重要的意義,為日后的航天器智能化提供了新思路。

    本文中的加速結(jié)構(gòu)已經(jīng)在不同的FPGA平臺(tái)上獲得了較理想的加速效果,因此下一步研究工作可以聚焦在采用宇航級(jí)FPGA芯片的驗(yàn)證工作上,實(shí)現(xiàn)可以實(shí)際應(yīng)用于航天領(lǐng)域的目標(biāo)檢測(cè)系統(tǒng)。

    猜你喜歡
    加速器卷積特征
    輪滑加速器
    化學(xué)工業(yè)的“加速器”
    基于3D-Winograd的快速卷積算法設(shè)計(jì)及FPGA實(shí)現(xiàn)
    全民小康路上的“加速器”
    如何表達(dá)“特征”
    從濾波器理解卷積
    電子制作(2019年11期)2019-07-04 00:34:38
    不忠誠(chéng)的四個(gè)特征
    基于傅里葉域卷積表示的目標(biāo)跟蹤算法
    抓住特征巧觀察
    等待“加速器”
    长白| 天峨县| 乐山市| 朝阳市| 抚顺市| 道真| 武山县| 株洲市| 临汾市| 庆阳市| 合阳县| 萝北县| 北宁市| 金乡县| 虞城县| 桃园县| 千阳县| 方山县| 大宁县| 墨竹工卡县| 桂平市| 石门县| 蛟河市| 天水市| 乌拉特中旗| 阳新县| 黄石市| 福清市| 曲靖市| 丹棱县| 凤山市| 清流县| 乐都县| 克什克腾旗| 陇南市| 普兰县| 澎湖县| 中卫市| 宝丰县| 舞钢市| 司法|