• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于ZYNQ平臺(tái)的卷積神經(jīng)網(wǎng)絡(luò)加速器設(shè)計(jì)與實(shí)現(xiàn)

      2024-04-13 06:08:38陳思浩吳黎明彭克錦許志杰
      自動(dòng)化與信息工程 2024年1期
      關(guān)鍵詞:卷積神經(jīng)網(wǎng)絡(luò)

      陳思浩 吳黎明 彭克錦 許志杰

      本文引用格式:陳思浩,吳黎明,彭克錦,等.基于ZYNQ平臺(tái)的卷積神經(jīng)網(wǎng)絡(luò)加速器設(shè)計(jì)與實(shí)現(xiàn)[J].自動(dòng)化與信息工程,2024, 45(1):30-34.

      CHEN SiHao, WU LiMing, PENG KeJin, et al. Design and implementation of convolutional neural network accelerator based on ZYNQ platform[J]. Automation & Information Engineering, 2024,45(1):30-34.

      摘要:針對(duì)卷積神經(jīng)網(wǎng)絡(luò)模型規(guī)模較大,以及嵌入式系統(tǒng)計(jì)算資源有限的問(wèn)題,提出一種基于ZYNQ平臺(tái)的卷積神經(jīng)網(wǎng)絡(luò)加速器設(shè)計(jì)方案。采用軟硬件協(xié)同設(shè)計(jì)的原則,首先,在FPGA端設(shè)計(jì)圖像、參數(shù)輸入模塊;然后,利用FPGA并行計(jì)算技術(shù)實(shí)現(xiàn)卷積層和池化層運(yùn)算,并通過(guò)攝像頭采集手寫數(shù)字圖像與LCD顯示結(jié)果;最后,在嵌入式平臺(tái)上實(shí)現(xiàn)手寫數(shù)字識(shí)別。實(shí)驗(yàn)結(jié)果表明,卷積層和池化層的運(yùn)算速度比ARM平臺(tái)提高了2.68倍。

      關(guān)鍵詞:卷積神經(jīng)網(wǎng)絡(luò);ZYNQ平臺(tái);硬件加速;FPGA

      中圖分類號(hào):TN912.3? ? ? ? ? ?文獻(xiàn)標(biāo)志碼:A? ? ? ? ? ?文章編號(hào):1674-2605(2024)01-0005-05

      DOI:10.3969/j.issn.1674-2605.2024.01.005

      Design and Implementation of Convolutional Neural Network Accelerator Based on ZYNQ Platform

      CHEN Sihao? WU Liming? PENG Kejin? XU Zhijie

      (School of Electromechanical Engineering, Guangdong University of Technology, Guangzhou 510006, China)

      Abstract: A convolutional neural network accelerator design scheme based on the ZYNQ platform is proposed to address the issues of large-scale convolutional neural network models and limited computing resources in embedded systems. Adopting the principle of software hardware collaborative design, first, design image and parameter input modules on the FPGA side; Then, using FPGA parallel computing technology to implement convolutional and pooling layer operations, and capturing handwritten digital images and LCD display results through a camera; Finally, implement handwritten digit recognition on an embedded platform. The experimental results show that the computational speed of the convolutional and pooling layers is 2.68 times faster than that of the ARM platform.

      Keywords: convolutional neural networks; ZYNQ platform; hardware acceleration; FPGA

      0 引言

      隨著人工智能技術(shù)的迅速發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network, CNN)作為一種深度學(xué)習(xí)模型,廣泛應(yīng)用于圖像識(shí)別[1]、目標(biāo)檢測(cè)[2]和語(yǔ)音處理[3]等領(lǐng)域。然而,傳統(tǒng)的嵌入式系統(tǒng)無(wú)法滿足CNN的復(fù)雜性和大規(guī)模計(jì)算的需求。圖形處理器(graphics processing unit, GPU)雖然可以加速CNN,但其存在體積大、功耗高等問(wèn)題。為此,研究人員將硬件加速

      器應(yīng)用于CNN的計(jì)算中,以提高其計(jì)算性能和能效。因此,在保證性能的前提下,體積更小、功耗更低的硬件平臺(tái)成為CNN加速領(lǐng)域的熱門發(fā)展方向[4-7]。

      基于現(xiàn)場(chǎng)可編程門陣列(field-programmable gate array, FPGA)的加速平臺(tái)因具有可編程性強(qiáng)、并行計(jì)算能力強(qiáng)等特點(diǎn),成為研究熱點(diǎn)[8-10]。但直接在FPGA上實(shí)現(xiàn)CNN計(jì)算是一項(xiàng)復(fù)雜的任務(wù),需考慮諸多因素,如外設(shè)控制、內(nèi)存帶寬、開(kāi)發(fā)難度和開(kāi)發(fā)周期等。

      為此,本文提出一種基于ZYNQ平臺(tái)的卷積神經(jīng)網(wǎng)絡(luò)加速器設(shè)計(jì)方案,在FPGA端設(shè)計(jì)加速器模塊,通過(guò)攝像頭采集手寫數(shù)字圖像與LCD顯示結(jié)果,實(shí)現(xiàn)手寫數(shù)字的識(shí)別。該方案根據(jù)軟硬件協(xié)同設(shè)計(jì)的原則,利用ZYNQ平臺(tái)上FPGA的并行計(jì)算能力和ARM的通用計(jì)算能力,對(duì)CNN模型中的卷積層和池化層進(jìn)行IP核設(shè)計(jì),提升了手寫數(shù)字的識(shí)別速度。

      1 系統(tǒng)設(shè)計(jì)

      1.1 系統(tǒng)組成

      硬件系統(tǒng)主要由OV5640攝像頭、FPGA、ARM、LCD顯示屏和DDR存儲(chǔ)器等組成,如圖1所示。

      ZYNQ平臺(tái)是硬件系統(tǒng)的核心部分,它集成了FPGA和ARM,通過(guò)雙片BRAM(Block RAM)與AXI總線實(shí)現(xiàn)PS與PL之間的通信,進(jìn)而實(shí)現(xiàn)嵌入式開(kāi)發(fā)[11-13]。這種組成方式允許開(kāi)發(fā)人員在單個(gè)芯片上同時(shí)運(yùn)行硬件計(jì)算和嵌入式軟件,具有較強(qiáng)的靈活性,可滿足不同應(yīng)用場(chǎng)景對(duì)計(jì)算資源和實(shí)時(shí)性的需求。

      硬件系統(tǒng)運(yùn)行流程如下:

      1) 在ARM端對(duì)OV5640攝像頭進(jìn)行配置,通過(guò)OV5640攝像頭采集手寫數(shù)字圖像;

      2) 手寫數(shù)字圖像傳入FPGA端的OV5640圖像采集IP核,并將8位圖像數(shù)據(jù)拼接為24位圖像數(shù)據(jù);

      3) FPGA端的圖像預(yù)處理IP核對(duì)24位圖像數(shù)據(jù)進(jìn)行灰度和二值化處理;

      4) FPGA端的卷積與池化IP核提取手寫數(shù)字圖像特征后,通過(guò)AXI總線將池化后的數(shù)據(jù)傳入ARM,進(jìn)行全連接運(yùn)算與結(jié)果分類;

      5) 分類結(jié)果顯示在LCD上。

      1.2 CNN結(jié)構(gòu)

      CNN利用了局部連接和參數(shù)重用的特性,其每層都單獨(dú)使用一組卷積核,有助于從局部相關(guān)數(shù)據(jù)中提取有用的特征[14-17]。CNN主要包括輸入層、卷積層、池化層、全連接層等,結(jié)構(gòu)如圖2所示。

      考慮到嵌入式芯片的計(jì)算資源有限,為充分發(fā)揮FPGA端和ARM端的性能,本文對(duì)經(jīng)典的CNN結(jié)構(gòu)進(jìn)行改進(jìn),在盡量精簡(jiǎn)結(jié)構(gòu)的同時(shí),保留了CNN的卷積層。改進(jìn)后的CNN結(jié)構(gòu)包含1個(gè)卷積層、1個(gè)池化層和2個(gè)全連接層,以實(shí)現(xiàn)手寫數(shù)字的識(shí)別。輸出層有10個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)對(duì)應(yīng)1個(gè)手寫數(shù)字,因此改進(jìn)后的CNN結(jié)構(gòu)沒(méi)有使用SoftMax函數(shù)。如果需要部署更復(fù)雜的CNN,只需在加速器模塊中導(dǎo)入新的權(quán)重參數(shù),并復(fù)用卷積層和池化層IP核即可。

      2 加速器模塊設(shè)計(jì)

      加速器模塊主要由圖像輸入模塊、參數(shù)輸入模塊、卷積運(yùn)算模塊和池化運(yùn)算模塊組成,結(jié)構(gòu)框圖如圖3所示。

      在FPGA上部署神經(jīng)網(wǎng)絡(luò)一般采用硬件描述語(yǔ)言(hardware description language, HDL)和高層次綜合(high-level synthesis, HLS)工具兩種方法。雖然傳統(tǒng)的HDL編程耗時(shí)比HLS長(zhǎng),但它可以精確定義每個(gè)時(shí)序硬件電路的行為和功能,能更好地利用FPGA資源。因此,本文采用HDL設(shè)計(jì)加速器模塊。

      2.1 圖像輸入模塊

      圖像輸入模塊主要由降采樣部分和數(shù)據(jù)存儲(chǔ)單元組成??紤]到采集的手寫數(shù)字圖像需清晰地顯示在800×600像素的LCD上,在輸入卷積運(yùn)算模塊前,需對(duì)其進(jìn)行降采樣操作。

      根據(jù)卷積層的輸入大小,先對(duì)采集的手寫數(shù)字圖像進(jìn)行倍數(shù)放大,卷積層輸入圖像的大小為28×28像素,將手寫數(shù)字圖像先放大4倍,即圖像大小為112×112像素;再進(jìn)行降采樣操作,即每隔4個(gè)點(diǎn)取1個(gè)點(diǎn),如圖4所示。

      數(shù)據(jù)存儲(chǔ)單元采用BRAM來(lái)實(shí)現(xiàn)。本文設(shè)計(jì)一個(gè)28 bit的BRAM來(lái)存儲(chǔ)手寫數(shù)字圖像數(shù)據(jù)。降采樣后的手寫數(shù)字圖像數(shù)據(jù)以列優(yōu)先的順序?qū)懭隑RAM,每次寫入1個(gè)像素點(diǎn)的數(shù)據(jù),即1 bit。

      讀端口和寫端口通過(guò)不同的使能信號(hào)控制。讀端口的使能信號(hào)一直為高電平,可連續(xù)從BRAM中讀取卷積窗口大小的數(shù)據(jù)。讀取數(shù)據(jù)時(shí),一次性讀取一行數(shù)據(jù)的前5個(gè)數(shù)據(jù),每次讀取后,數(shù)據(jù)指針向后移動(dòng)1位,這樣可確保連續(xù)讀取5×5的數(shù)據(jù),滿足卷積計(jì)算的需求,如圖5所示。

      寫入數(shù)據(jù)時(shí),通過(guò)行計(jì)數(shù)器控制寫使能信號(hào),每采集1個(gè)像素點(diǎn),就向BRAM寫入1位數(shù)據(jù)。當(dāng)BRAM存儲(chǔ)完整圖像的一行數(shù)據(jù)后,再切換至下一行。

      讀寫兩個(gè)端口使用不同的地址進(jìn)行控制,不僅能避免讀寫沖突,還能夠高效地實(shí)時(shí)讀取BRAM中卷積窗口大小的數(shù)據(jù),為后續(xù)的卷積運(yùn)算提供數(shù)據(jù)支持。

      2.2? 參數(shù)輸入模塊

      參數(shù)輸入模塊使用6個(gè)ROM來(lái)存儲(chǔ)卷積層中每個(gè)卷積核5×5窗口內(nèi)不同位置的參數(shù)值和偏置值,其存儲(chǔ)方式與圖像輸入模塊存儲(chǔ)圖像數(shù)據(jù)相似。

      2.3 卷積運(yùn)算模塊

      卷積運(yùn)算模塊作為實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)前向傳播的核心模塊,利用一維卷積來(lái)計(jì)算圖像與每個(gè)卷積核對(duì)應(yīng)的響應(yīng)值。其中,每個(gè)卷積核對(duì)應(yīng)一個(gè)卷積窗口的權(quán)重參數(shù)。卷積運(yùn)算模塊中包含多個(gè)乘累加器,如圖6所示。

      控制單元根據(jù)行計(jì)數(shù)和卷積核索引來(lái)控制乘累加器的操作。每個(gè)乘累加器負(fù)責(zé)一個(gè)卷積核與圖像數(shù)據(jù)矩陣的乘加計(jì)算。首先,乘累加器從BRAM和ROM中同步讀取1個(gè)圖像數(shù)據(jù)矩陣和相應(yīng)的卷積核參數(shù);然后,依次將對(duì)應(yīng)的圖像數(shù)據(jù)與卷積核參數(shù)相乘;最后,將結(jié)果相加。一個(gè)完整的卷積計(jì)算需要連續(xù)讀取5行的圖像數(shù)據(jù)與一個(gè)卷積核的5×5參數(shù),共進(jìn)行25次乘加運(yùn)算。為提高計(jì)算效率,每個(gè)乘累加器將25次乘加運(yùn)算并行化為5次流水線操作,充分利用每個(gè)時(shí)鐘周期的計(jì)算資源,提升了卷積層的計(jì)算吞吐量。

      2.4 池化運(yùn)算模塊

      池化運(yùn)算模塊采用2×2的池化窗口對(duì)每個(gè)2×2塊數(shù)據(jù)進(jìn)行最大值池化。池化運(yùn)算模塊主要包括比較器和FIFO兩部分,計(jì)算過(guò)程如圖7所示。

      比較器接收來(lái)自卷積運(yùn)算模塊的2×2塊數(shù)據(jù),每次比較該塊內(nèi)第一組的兩點(diǎn)數(shù)據(jù),輸出最大值,存入FIFO中。當(dāng)?shù)诙M2×2塊數(shù)據(jù)進(jìn)入比較器時(shí),將該塊內(nèi)的值與FIFO保存的最大值進(jìn)行比較,更新最大值。每處理完一組2×2塊數(shù)據(jù)后,輸出的最大值即為該組數(shù)據(jù)池化的結(jié)果。

      為獲得池化結(jié)果的正確順序,需控制比較器和FIFO的讀寫時(shí)序。比較器每完成一次2×2塊數(shù)據(jù)的最大值計(jì)算后,將結(jié)果立即寫入FIFO,同時(shí)FIFO讀端口被使能輸出結(jié)果。讀寫兩端口在不同的時(shí)鐘邊沿分別工作,保證數(shù)據(jù)的有序輸出。最后,通過(guò)串聯(lián)多個(gè)2×2塊數(shù)據(jù)的最大值計(jì)算,實(shí)現(xiàn)整個(gè)輸入特征圖的最大池化。

      池化后的低維特征圖作為ARM后端程序的輸入,經(jīng)過(guò)VDMA傳輸?shù)紸RM,提供給全連接層進(jìn)行? ? 計(jì)算。

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

      本實(shí)驗(yàn)采用領(lǐng)航者ZYNQ開(kāi)發(fā)板,其主芯片ZYNQ采用XC7Z020CLG400-2,ARM端采用頻率為666 MHz的雙核Cortex-A9處理器,F(xiàn)PGA端的時(shí)鐘頻率為200 MHz,開(kāi)發(fā)環(huán)境為Vivado2020和Vitis2020。ZYNQ開(kāi)發(fā)板帶有攝像頭模塊接口和RGB LCD接口??紤]到適合手寫數(shù)字識(shí)別的應(yīng)用場(chǎng)景,開(kāi)發(fā)了攝像頭和LCD等模塊來(lái)模擬真實(shí)識(shí)別場(chǎng)景。上板驗(yàn)證效果如圖8所示。

      在開(kāi)發(fā)工具Vivado2020中,生成器件的資源使用情況報(bào)告如表1所示。

      通過(guò)多次實(shí)驗(yàn)分析加速器模塊的仿真時(shí)序圖,計(jì)算卷積與池化運(yùn)行所需的時(shí)間,在Vitis中通過(guò)時(shí)間獲取函數(shù)得到全連接層的運(yùn)算時(shí)間,即可得到FPGA加速后的CNN運(yùn)行總時(shí)間,并將其與僅在ARM端運(yùn)行的CNN進(jìn)行對(duì)比,結(jié)果如表2所示。

      由表2可知,相較于僅在ARM端運(yùn)行的CNN, FPGA加速后的CNN在識(shí)別精度損失較小的情況下,網(wǎng)絡(luò)運(yùn)行時(shí)間減少了2.68倍。

      4 結(jié)論

      本文基于ZYNQ平臺(tái)提出了一種卷積神經(jīng)網(wǎng)絡(luò)加速器設(shè)計(jì)方案。在FPGA端設(shè)計(jì)了圖像數(shù)據(jù)與參數(shù)數(shù)據(jù)存儲(chǔ)模塊,實(shí)現(xiàn)高效的存儲(chǔ)與讀取,為卷積計(jì)算提供數(shù)據(jù)支持。采用并行設(shè)計(jì)的思路實(shí)現(xiàn)卷積和最大池化的運(yùn)算,在保證識(shí)別精確度的同時(shí),卷積層和池化層的運(yùn)行速度提高了2.68倍。與其他神經(jīng)網(wǎng)絡(luò)的加速方案相比,該加速方案具有功耗低、體積小、容易部署、通用性強(qiáng)等特點(diǎn),具有一定的實(shí)際應(yīng)用意義。

      參考文獻(xiàn)

      [1] NARAYAN A, MUTHALAGU R. Image character recognition using convolutional neural networks[C]//2021 Seventh Interna-tional conference on Bio Signals, Images, and Instrumentation (ICBSII). IEEE, 2021:1-5.

      [2] YAN X, SHUAI C, ZHENG H. A Yolov3-based multi-target detection system for complex scenes[C]//2021 2nd International Seminar on Artificial Intelligence, Networking and Information Technology (AINIT). IEEE, 2021:327-332.

      [3] HSU Y, LEE Y, BAI M R. Learning-based personal speech enhancement for teleconferencing by exploiting spatial-spectral features[C]//ICASSP 2022-2022 IEEE International Confe-rence on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2022:8787-8791.

      [4] USHIROYAMA A, WATANABE M, WATANABE N, et al. Convolutional neural network implementations using Vitis AI [C]//2022 IEEE 12th Annual Computing and Communication Workshop and Conference (CCWC). IEEE, 2022: 0365-0371.

      [5] ADIONO T, SUTISNA N. FPGA based hardware accelerator design for convolution process in convolutional neural network [C]//2021 International Conference on Electrical Engineering and Informatics (ICEEI). IEEE, 2021:1-5.

      [6] XIONG Z M. A survey of FPGA based on graph convolutional neural network accelerator[C]//2020 International Conference on Computer Engineering and Intelligent Control (ICCEIC). IEEE, 2020:92-96.

      [7] LI L, CHEN X, GAO W. Implementation of convolutional neural network accelerator based on ZYNQ[C]//2022 IEEE International Conference on Advances in Electrical Engineering and Computer Applications (AEECA). IEEE, 2022:158-165.

      [8] PISHARODY J N, PRANAV K B, RANJITHA M, et al. FPGA implementation and acceleration of convolutional neural net-works[C]//2021 6th International Conference for Convergence in Technology (I2CT). IEEE, 2021:1-4.

      [9] 江瑜,朱鐵柱,蔣青松,等.基于FPGA的卷積神經(jīng)網(wǎng)絡(luò)硬件加速器設(shè)計(jì)[J].電子器件,2023,46(4):973-977.

      [10] 黃沛昱,趙強(qiáng),李煜龍.基于FPGA的卷積神經(jīng)網(wǎng)絡(luò)硬件加速器設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用與軟件,2023,40(3):38-44.

      [11] 馮光順,應(yīng)三叢.ZYNQ的卷積神經(jīng)網(wǎng)絡(luò)硬件加速通用平臺(tái)設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2019,19(3):3-6;9.

      [12] 劉晛,吳瑞琦,高尚尚,等.基于ZYNQ的通用型卷積神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)與實(shí)現(xiàn)[J].電子器件,2023,46(1):121-125.

      [13] 繆丹丹,張鵬,張?chǎng)斡睿?基于ZYNQ平臺(tái)的通用卷積加速器設(shè)計(jì)[J].國(guó)外電子測(cè)量技術(shù),2022,41(11):72-77.

      [14] 季長(zhǎng)清,高志勇,秦靜,等.基于卷積神經(jīng)網(wǎng)絡(luò)的圖像分類算法綜述[J].計(jì)算機(jī)應(yīng)用,2022,42(4):1044-1049.

      [15] 譚亞紅,史耀.完備變分模態(tài)分解和多傳感器卷積神經(jīng)網(wǎng)絡(luò)的軸承故障診斷方法[J].機(jī)床與液壓,2022,50(14):182-188.

      [16] 劉斌,龍健寧,程方毅,等.基于卷積神經(jīng)網(wǎng)絡(luò)的物流貨物圖像分類研究[J].機(jī)電工程技術(shù),2021,50(12):79-82;175.

      [17] 許富景,陳長(zhǎng)穎,杜少成.基于改進(jìn)CNN的壓縮感知自然圖像重建方法[J].中國(guó)測(cè)試,2022,48(9):7-16.

      作者簡(jiǎn)介:

      陳思浩,男,1998年生,在讀研究生,主要研究方向:智能測(cè)控。E-mail: edwardchenx@foxmail.com

      吳黎明,男,1962年生,碩士,教授,主要研究方向:智能測(cè)控。E-mail: jkyjs@gdut.edu.cn

      彭克錦,男,1999年生,在讀研究生,主要研究方向:智能測(cè)控。E-mail: 1334152998@qq.com

      許志杰,男,1999年生,在讀研究生,主要研究方向:智能測(cè)控。E-mail: 1422411797@qq.com

      猜你喜歡
      卷積神經(jīng)網(wǎng)絡(luò)
      基于卷積神經(jīng)網(wǎng)絡(luò)溫室智能大棚監(jiān)控系統(tǒng)的研究
      基于深度卷積神經(jīng)網(wǎng)絡(luò)的物體識(shí)別算法
      深度學(xué)習(xí)算法應(yīng)用于巖石圖像處理的可行性研究
      基于深度卷積網(wǎng)絡(luò)的人臉年齡分析算法與實(shí)現(xiàn)
      軟件工程(2016年8期)2016-10-25 15:47:34
      基于卷積神經(jīng)網(wǎng)絡(luò)的樹葉識(shí)別的算法的研究
      五指山市| 呼和浩特市| 衡东县| 沁水县| 潼南县| 天全县| 阿荣旗| 西平县| 皋兰县| 道真| 云南省| 平定县| 白山市| 绥棱县| 天津市| 出国| 互助| 望谟县| 德昌县| 龙州县| 贵定县| 清新县| 乐山市| 文登市| 中江县| 桂平市| 凭祥市| 泽州县| 重庆市| 星座| 娱乐| 曲麻莱县| 双鸭山市| 昭苏县| 卫辉市| 永春县| 米林县| 黄山市| 修文县| 桐乡市| 遵义市|