?

基于ZYNQ平臺的卷積神經網絡加速器設計與實現

2024-04-13 06:08陳思浩吳黎明彭克錦許志杰
自動化與信息工程 2024年1期
關鍵詞:卷積神經網絡

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

本文引用格式:陳思浩,吳黎明,彭克錦,等.基于ZYNQ平臺的卷積神經網絡加速器設計與實現[J].自動化與信息工程,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.

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

關鍵詞:卷積神經網絡;ZYNQ平臺;硬件加速;FPGA

中圖分類號:TN912.3? ? ? ? ? ?文獻標志碼:A? ? ? ? ? ?文章編號: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 引言

隨著人工智能技術的迅速發展,卷積神經網絡(convolutional neural network, CNN)作為一種深度學習模型,廣泛應用于圖像識別[1]、目標檢測[2]和語音處理[3]等領域。然而,傳統的嵌入式系統無法滿足CNN的復雜性和大規模計算的需求。圖形處理器(graphics processing unit, GPU)雖然可以加速CNN,但其存在體積大、功耗高等問題。為此,研究人員將硬件加速

器應用于CNN的計算中,以提高其計算性能和能效。因此,在保證性能的前提下,體積更小、功耗更低的硬件平臺成為CNN加速領域的熱門發展方向[4-7]。

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

為此,本文提出一種基于ZYNQ平臺的卷積神經網絡加速器設計方案,在FPGA端設計加速器模塊,通過攝像頭采集手寫數字圖像與LCD顯示結果,實現手寫數字的識別。該方案根據軟硬件協同設計的原則,利用ZYNQ平臺上FPGA的并行計算能力和ARM的通用計算能力,對CNN模型中的卷積層和池化層進行IP核設計,提升了手寫數字的識別速度。

1 系統設計

1.1 系統組成

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

ZYNQ平臺是硬件系統的核心部分,它集成了FPGA和ARM,通過雙片BRAM(Block RAM)與AXI總線實現PS與PL之間的通信,進而實現嵌入式開發[11-13]。這種組成方式允許開發人員在單個芯片上同時運行硬件計算和嵌入式軟件,具有較強的靈活性,可滿足不同應用場景對計算資源和實時性的需求。

硬件系統運行流程如下:

1) 在ARM端對OV5640攝像頭進行配置,通過OV5640攝像頭采集手寫數字圖像;

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

3) FPGA端的圖像預處理IP核對24位圖像數據進行灰度和二值化處理;

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

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

1.2 CNN結構

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

考慮到嵌入式芯片的計算資源有限,為充分發揮FPGA端和ARM端的性能,本文對經典的CNN結構進行改進,在盡量精簡結構的同時,保留了CNN的卷積層。改進后的CNN結構包含1個卷積層、1個池化層和2個全連接層,以實現手寫數字的識別。輸出層有10個節點,每個節點對應1個手寫數字,因此改進后的CNN結構沒有使用SoftMax函數。如果需要部署更復雜的CNN,只需在加速器模塊中導入新的權重參數,并復用卷積層和池化層IP核即可。

2 加速器模塊設計

加速器模塊主要由圖像輸入模塊、參數輸入模塊、卷積運算模塊和池化運算模塊組成,結構框圖如圖3所示。

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

2.1 圖像輸入模塊

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

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

數據存儲單元采用BRAM來實現。本文設計一個28 bit的BRAM來存儲手寫數字圖像數據。降采樣后的手寫數字圖像數據以列優先的順序寫入BRAM,每次寫入1個像素點的數據,即1 bit。

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

寫入數據時,通過行計數器控制寫使能信號,每采集1個像素點,就向BRAM寫入1位數據。當BRAM存儲完整圖像的一行數據后,再切換至下一行。

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

2.2? 參數輸入模塊

參數輸入模塊使用6個ROM來存儲卷積層中每個卷積核5×5窗口內不同位置的參數值和偏置值,其存儲方式與圖像輸入模塊存儲圖像數據相似。

2.3 卷積運算模塊

卷積運算模塊作為實現神經網絡前向傳播的核心模塊,利用一維卷積來計算圖像與每個卷積核對應的響應值。其中,每個卷積核對應一個卷積窗口的權重參數。卷積運算模塊中包含多個乘累加器,如圖6所示。

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

2.4 池化運算模塊

池化運算模塊采用2×2的池化窗口對每個2×2塊數據進行最大值池化。池化運算模塊主要包括比較器和FIFO兩部分,計算過程如圖7所示。

比較器接收來自卷積運算模塊的2×2塊數據,每次比較該塊內第一組的兩點數據,輸出最大值,存入FIFO中。當第二組2×2塊數據進入比較器時,將該塊內的值與FIFO保存的最大值進行比較,更新最大值。每處理完一組2×2塊數據后,輸出的最大值即為該組數據池化的結果。

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

池化后的低維特征圖作為ARM后端程序的輸入,經過VDMA傳輸到ARM,提供給全連接層進行? ? 計算。

3 實驗分析與結果

本實驗采用領航者ZYNQ開發板,其主芯片ZYNQ采用XC7Z020CLG400-2,ARM端采用頻率為666 MHz的雙核Cortex-A9處理器,FPGA端的時鐘頻率為200 MHz,開發環境為Vivado2020和Vitis2020。ZYNQ開發板帶有攝像頭模塊接口和RGB LCD接口??紤]到適合手寫數字識別的應用場景,開發了攝像頭和LCD等模塊來模擬真實識別場景。上板驗證效果如圖8所示。

在開發工具Vivado2020中,生成器件的資源使用情況報告如表1所示。

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

由表2可知,相較于僅在ARM端運行的CNN, FPGA加速后的CNN在識別精度損失較小的情況下,網絡運行時間減少了2.68倍。

4 結論

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

參考文獻

[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].電子器件,2023,46(4):973-977.

[10] 黃沛昱,趙強,李煜龍.基于FPGA的卷積神經網絡硬件加速器設計[J].計算機應用與軟件,2023,40(3):38-44.

[11] 馮光順,應三叢.ZYNQ的卷積神經網絡硬件加速通用平臺設計[J].單片機與嵌入式系統應用,2019,19(3):3-6;9.

[12] 劉晛,吳瑞琦,高尚尚,等.基于ZYNQ的通用型卷積神經網絡設計與實現[J].電子器件,2023,46(1):121-125.

[13] 繆丹丹,張鵬,張鑫宇,等.基于ZYNQ平臺的通用卷積加速器設計[J].國外電子測量技術,2022,41(11):72-77.

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

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

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

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

作者簡介:

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

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

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

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

猜你喜歡
卷積神經網絡
基于卷積神經網絡溫室智能大棚監控系統的研究
基于深度卷積神經網絡的物體識別算法
深度學習算法應用于巖石圖像處理的可行性研究
基于深度卷積網絡的人臉年齡分析算法與實現
基于卷積神經網絡的樹葉識別的算法的研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合