国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于FPGA的卷積神經(jīng)網(wǎng)絡(luò)圖像識別算法研究

2023-11-30 04:55:18崔劼
無線互聯(lián)科技 2023年18期
關(guān)鍵詞:卷積神經(jīng)網(wǎng)絡(luò)算法

作者簡介:崔劼(1988— ),男,山西太原人,講師,碩士;研究方向:計算機(jī)網(wǎng)絡(luò)。

摘要:文章探討了基于FPGA的卷積神經(jīng)網(wǎng)絡(luò)圖像識別算法的設(shè)計和實現(xiàn)。由于卷積神經(jīng)網(wǎng)絡(luò)在圖像識別中的優(yōu)秀表現(xiàn),文章結(jié)合FPGA的低功耗和高并行性,期望在嵌入式系統(tǒng)和邊緣計算設(shè)備上獲得更高的性能。通過系統(tǒng)架構(gòu)設(shè)計、硬件資源優(yōu)化以及算法的軟件實現(xiàn),文章成功地在FPGA上實現(xiàn)了卷積神經(jīng)網(wǎng)絡(luò)的圖像識別算法。初步實驗結(jié)果顯示,本設(shè)計在保持高識別精度的同時,實現(xiàn)了更高的處理速度和更好的能效。

關(guān)鍵詞:FPGA;卷積神經(jīng)網(wǎng)絡(luò);網(wǎng)絡(luò)圖像識別;算法

中圖分類號:TP391.41? 文獻(xiàn)標(biāo)志碼:A

0? 引言

卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)已經(jīng)被廣泛應(yīng)用于各種圖像識別任務(wù)中,并取得了優(yōu)異的效果。然而,這些模型往往需要大量的計算資源和電力,這對于許多實時應(yīng)用和移動設(shè)備來說是一個重大挑戰(zhàn)。為了克服這些挑戰(zhàn),本文提出了一種基于現(xiàn)場可編程門陣列(Field-Programmable Gate Array,F(xiàn)PGA)的卷積神經(jīng)網(wǎng)絡(luò)圖像識別算法。FPGA 是一種可以被用戶在硬件級別進(jìn)行配置的半導(dǎo)體設(shè)備,它具有高度的并行性和可重配置性,能夠高效地執(zhí)行大量并行計算,尤其適合實現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)。本文將詳細(xì)介紹這種基于FPGA的卷積神經(jīng)網(wǎng)絡(luò)的設(shè)計和實現(xiàn)過程,以及在實際圖像識別任務(wù)中的應(yīng)用和性能分析。

1? 卷積神經(jīng)網(wǎng)絡(luò)理論

1.1? 卷積神經(jīng)網(wǎng)絡(luò)基本結(jié)構(gòu)

卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)是一種特殊的深度學(xué)習(xí)模型,主要用于處理具有網(wǎng)格結(jié)構(gòu)的數(shù)據(jù),例如:圖像。其主要特點是通過使用卷積操作,捕捉并處理局部數(shù)據(jù)的相關(guān)性,使其在處理圖像等高維度數(shù)據(jù)時具有很高的效率。一個典型的卷積神經(jīng)網(wǎng)絡(luò)由多個層次構(gòu)成,這些層次可以大致分為卷積層、激活層、池化層和全連接層。卷積層是卷積神經(jīng)網(wǎng)絡(luò)的核心組成部分。在這一層,網(wǎng)絡(luò)會對輸入數(shù)據(jù)進(jìn)行一系列的卷積操作,生成特征映射(Feature Map)。每個卷積操作都會應(yīng)用一個濾波器(也叫卷積核)到輸入數(shù)據(jù)上,濾波器可以學(xué)習(xí)并捕捉到數(shù)據(jù)中的局部特征[1]。激活層通常會緊接在卷積層之后。這一層會對卷積層的輸出應(yīng)用一個非線性函數(shù),如ReLU、Sigmoid或Tanh等。非線性激活函數(shù)可以增加網(wǎng)絡(luò)的表達(dá)能力,使其能夠?qū)W習(xí)并表示更復(fù)雜的模式。池化層用于降低數(shù)據(jù)的空間維度,減少模型的參數(shù)和計算量,同時還可以提高模型的平移不變性。常見的池化操作包括最大池化、平均池化等。全連接層通常位于網(wǎng)絡(luò)的最后幾層,用于進(jìn)行高級的推理和分類。全連接層會將前一層的所有輸出連接到每一個神經(jīng)元上,形成一個向量,通過一個或多個全連接層,進(jìn)行非線性變換,最后輸出預(yù)測結(jié)果。具體如圖1所示。

以上4種層級是構(gòu)成卷積神經(jīng)網(wǎng)絡(luò)的基本元素,通過組合不同類型和數(shù)量的層級,可以構(gòu)建出各種不同結(jié)構(gòu)和功能的卷積神經(jīng)網(wǎng)絡(luò),用于解決不同的任務(wù)。

1.2? 卷積神經(jīng)網(wǎng)絡(luò)工作原理

卷積神經(jīng)網(wǎng)絡(luò)操作分為兩個步驟,首個步驟是正向傳播:原始數(shù)據(jù)通過一連串累積的卷積層和池化層,進(jìn)入全連接層并經(jīng)過輸出層給出結(jié)果。第二個步驟是反向傳播:通過損失函數(shù)計算正向傳播的結(jié)果和真實值之間的差異,利用梯度下降法逐層更新網(wǎng)絡(luò)中的權(quán)重和偏差,其操作流程如圖2所示。

2? 基于FPGA的卷積神經(jīng)網(wǎng)絡(luò)設(shè)計

2.1? 系統(tǒng)架構(gòu)設(shè)計

本系統(tǒng)架構(gòu)采用軟硬件協(xié)同設(shè)計的方式,由FPGA的可編程邏輯(PL)部分和ARM處理器(PS)部分組成的片上系統(tǒng)實現(xiàn)。系統(tǒng)中PS端負(fù)責(zé)對整個系統(tǒng)的存儲和流程進(jìn)行控制,而PL端負(fù)責(zé)執(zhí)行卷積神經(jīng)網(wǎng)絡(luò)的計算操作。在FPGA的PL端,設(shè)計了卷積層模塊、池化層模塊和全連接層模塊,用于執(zhí)行圖像的數(shù)據(jù)運算。而FPGA的PS端則負(fù)責(zé)圖像控制、權(quán)值和偏置的緩存模塊以及PL側(cè)的參數(shù)配置。系統(tǒng)中的直接內(nèi)存存?。―MA)模塊主要負(fù)責(zé)將圖像和預(yù)先訓(xùn)練好的權(quán)重數(shù)據(jù)從外部存儲的DDR3中讀取出來,傳輸?shù)絇S端。FPGA驅(qū)動DMA模塊將參數(shù)傳輸?shù)狡系腞AM中,并將需要進(jìn)行卷積運算的數(shù)據(jù)暫時存放到緩存模塊中,為PL端的加速計算提供支持[2]。接下來,F(xiàn)PGA將RAM中的圖像特征參數(shù)以及權(quán)值和偏置數(shù)據(jù)傳輸?shù)絇L端進(jìn)行加速計算。等到卷積神經(jīng)網(wǎng)絡(luò)的所有層的運算都完成后,系統(tǒng)會將中間的數(shù)據(jù)緩存到RAM中,再將這些數(shù)據(jù)從RAM寫回到PS端的DDR3中。整個系統(tǒng)使用AXI總線進(jìn)行模塊間的通信和數(shù)據(jù)傳輸,將結(jié)果傳輸?shù)絇C端進(jìn)行顯示。這樣的設(shè)計使得整個系統(tǒng)在運行過程中能夠高效地處理大量的數(shù)據(jù),從而實現(xiàn)對卷積神經(jīng)網(wǎng)絡(luò)的有效加速。

2.2? 硬件資源優(yōu)化

在設(shè)計基于FPGA的卷積神經(jīng)網(wǎng)絡(luò)系統(tǒng)時,硬件資源的優(yōu)化是至關(guān)重要的一環(huán),涉及并行計算、數(shù)據(jù)流優(yōu)化、硬件資源復(fù)用、精度和位寬優(yōu)化以及網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化等多個方面。(1)并行計算。本次設(shè)計為充分發(fā)揮出FPGA的計算優(yōu)勢,在卷積神經(jīng)網(wǎng)絡(luò)的設(shè)計中,將多個卷積和池化運算分布到各個處理單元并行進(jìn)行。本研究設(shè)計了獨立的、可并行處理的卷積核處理單元,從而實現(xiàn)每個單元能對輸入數(shù)據(jù)的一個子集進(jìn)行處理,再將各個單元的處理結(jié)果進(jìn)行整合。這既優(yōu)化了并行計算對硬件資源的占用程度,也顯著提高了系統(tǒng)處理速度。(2)數(shù)據(jù)流優(yōu)化。在卷積神經(jīng)網(wǎng)絡(luò)中,大量的存儲和讀取操作使得數(shù)據(jù)流管理成為優(yōu)化的重要環(huán)節(jié)[3]。本設(shè)計采用直接內(nèi)存訪問(Direct Memory Access,DMA)技術(shù),減少了數(shù)據(jù)在各部分間的傳輸,降低了延遲并提高了數(shù)據(jù)的吞吐量。本研究將需要頻繁訪問的數(shù)據(jù)存儲在片上存儲器(On-Chip Memory)中,以此來減少對外部存儲器(Off-Chip Memory)的訪問,進(jìn)一步提高系統(tǒng)效率。(3)硬件資源復(fù)用。在不同的卷積層之間,本研究設(shè)計了共享的處理單元,從而最大化地利用硬件資源,既維持了處理效率,也有效地節(jié)省了硬件資源。(4)精度和位寬優(yōu)化。在卷積神經(jīng)網(wǎng)絡(luò)中,數(shù)據(jù)的精度和位寬對于硬件資源的占用和計算效率有著直接影響。因此,本設(shè)計對數(shù)據(jù)的精度和位寬進(jìn)行了優(yōu)化。具體來說,通過采用定點數(shù)替代浮點數(shù)進(jìn)行運算,在盡可能減小數(shù)據(jù)的位寬的同時,也減輕了硬件資源的負(fù)擔(dān),提高了運算效率[4]。(5)網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化??紤]到網(wǎng)絡(luò)結(jié)構(gòu)對硬件資源占用的影響,對網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行了精心設(shè)計和優(yōu)化。本設(shè)計根據(jù)硬件資源的限制和實際需求,采用如剪枝和量化等技術(shù)來降低網(wǎng)絡(luò)的復(fù)雜度和硬件資源的需求。如本設(shè)計通過對神經(jīng)網(wǎng)絡(luò)進(jìn)行剪枝,移除一些不重要的神經(jīng)元和連接,以降低網(wǎng)絡(luò)的復(fù)雜性和計算負(fù)擔(dān)。再如本設(shè)計選擇更小的卷積核和更小的步長,在減少卷積層的計算量的同時,也能提高圖像特征的提取精度。

2.3? 軟件實現(xiàn)

實現(xiàn)基于FPGA的卷積神經(jīng)網(wǎng)絡(luò)不僅需要優(yōu)化硬件資源,也需要高效的軟件。在本次設(shè)計中,軟件的主要職責(zé)是控制硬件運行,包括卷積神經(jīng)網(wǎng)絡(luò)的流程控制、數(shù)據(jù)管理以及與硬件的接口等。(1)卷積神經(jīng)網(wǎng)絡(luò)的流程控制:本次研究使用了Python編寫了卷積神經(jīng)網(wǎng)絡(luò)的控制程序,用于實現(xiàn)網(wǎng)絡(luò)的前向傳播和反向傳播過程。該程序?qū)⒏鱾€層面的運算過程進(jìn)行了封裝,使得系統(tǒng)可以用簡單的調(diào)用實現(xiàn)復(fù)雜的網(wǎng)絡(luò)運算。同時,為了更好地與硬件配合,本研究還設(shè)計了一套調(diào)度策略,可以自動地根據(jù)網(wǎng)絡(luò)結(jié)構(gòu)和數(shù)據(jù)流決定各個硬件單元的運行順序。(2)數(shù)據(jù)管理:在設(shè)計中,數(shù)據(jù)管理是由軟件部分完成的。本設(shè)計使用了高效的數(shù)據(jù)結(jié)構(gòu)和算法來實現(xiàn)數(shù)據(jù)的存儲、訪問和傳輸,包括權(quán)值、偏置以及中間結(jié)果等。在數(shù)據(jù)的存儲和訪問中,本設(shè)計使用了優(yōu)化的數(shù)據(jù)結(jié)構(gòu)和存儲策略,以提高數(shù)據(jù)的訪問效率和減少延遲。在數(shù)據(jù)的傳輸中,使用了DMA(Direct Memory Access)技術(shù),從而實現(xiàn)直接在內(nèi)存和硬件之間傳輸數(shù)據(jù),以提高數(shù)據(jù)的傳輸速率和減少CPU的負(fù)載。(3)硬件接口:為了實現(xiàn)軟硬件的協(xié)同,設(shè)計了一套硬件接口,從而讓軟件直接操作硬件。主要功能如硬件的低級訪問,包括啟動硬件、停止硬件、配置參數(shù)、讀寫數(shù)據(jù)等[5]。

3? 基于FPGA的卷積神經(jīng)網(wǎng)絡(luò)圖像識別算法測試

3.1? 測試樣本的選擇

在基于FPGA的卷積神經(jīng)網(wǎng)絡(luò)圖像識別算法測試中,本次研究選擇了固定測試樣本來評估網(wǎng)絡(luò)模型的性能和泛化能力,通過與其他圖像識別方法對比來驗證本算法的優(yōu)勢。(1)在數(shù)據(jù)集選擇上,選擇了ImageNet數(shù)據(jù)集作為訓(xùn)練和測試的數(shù)據(jù)源。該數(shù)據(jù)集包含了大量的圖像樣本,涵蓋了多個物種和類別。對于測試的目的,從ImageNet數(shù)據(jù)集中選取了包含約1 500個圖片、約2萬個分類的子集。(2)在樣本劃分上,將選取的子集進(jìn)行劃分,其中約70%的樣本用于訓(xùn)練集,用于訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)模型的參數(shù)。剩余的約30%的樣本用作測試集,用于評估模型在未見過的數(shù)據(jù)上的性能。本研究通過選擇包含多個類別和豐富樣本的ImageNet數(shù)據(jù)集,能夠全面評估基于FPGA的卷積神經(jīng)網(wǎng)絡(luò)圖像識別算法的分類準(zhǔn)確率和性能。同時,通過訓(xùn)練集和測試集的劃分,可以進(jìn)行模型的訓(xùn)練和驗證,并對模型的泛化能力進(jìn)行評估。

3.2? 測試結(jié)果

在本次圖像識別測試任務(wù)中,進(jìn)行了3種算法的測試結(jié)果比較,包括支持向量機(jī)(Support Vector Machine,SVM)、卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)以及本文提出的算法。如表1所示,可以看到本算法在分類準(zhǔn)確率方面表現(xiàn)最好,達(dá)到了0.95的準(zhǔn)確率,略高于CNN和SVM算法。然而,本算法的運行時間為15s,比CNN算法的25s要快,但比SVM算法的10s要慢一些。在功耗方面,本算法和CNN算法相對較低,而SVM算法的功耗最低。綜合考慮分類準(zhǔn)確率、運行時間和功耗等指標(biāo),可以初步得出結(jié)論:本算法在圖像識別任務(wù)中具有較高的分類準(zhǔn)確率,并在運行時間和功耗方面表現(xiàn)良好。

4? 結(jié)語

本論文對基于FPGA的卷積神經(jīng)網(wǎng)絡(luò)圖像識別算法進(jìn)行了深入研究和實驗評估。系統(tǒng)架構(gòu)設(shè)計、硬件資源優(yōu)化及實驗結(jié)果分析等,展示了該算法在圖像識別任務(wù)中的優(yōu)勢。結(jié)果表明,基于FPGA的卷積神經(jīng)網(wǎng)絡(luò)算法在分類準(zhǔn)確率、運行時間和功耗等方面具有良好的性能。筆者希望本研究對推動圖像識別技術(shù)的發(fā)展和應(yīng)用做出一定的貢獻(xiàn)。

參考文獻(xiàn)

[1]賈亮,徐善博,邢軼博.基于FPGA的卷積神經(jīng)網(wǎng)絡(luò)圖像識別算法研究[J].電腦與電信,2022(12):58-61,97.

[2]靳晶晶,王佩.基于卷積神經(jīng)網(wǎng)絡(luò)的圖像識別算法研究[J].通信與信息技術(shù),2022(2):76-81.

[3]孫文靜.基于卷積神經(jīng)網(wǎng)絡(luò)DL算法的文字圖像識別研究[J].長江信息通信,2022(1):50-52.

[4]鄧永強(qiáng),楊瓊娃.卷積神經(jīng)網(wǎng)絡(luò)和CFR算法的艦船靜態(tài)圖像識別[J].艦船科學(xué)技術(shù),2021(24):193-195.

[5]葉建龍,胡新海.基于卷積神經(jīng)網(wǎng)絡(luò)的圖像識別算法研究[J].安陽師范學(xué)院學(xué)報,2021(5):14-18.

[6]馬曉光,蔣占軍.卷積神經(jīng)網(wǎng)絡(luò)圖像識別算法的FPGA加速優(yōu)化研究[J].蘭州交通大學(xué)學(xué)報,2021(5):51-57.

(編輯? 王永超)

Research on convolutional neural network image recognition algorithm based on FPGA

Cui? Jie

(Shanxi Vocational University of Engineering Science and Technology, Jinzhong 030619, China)

Abstract:? This paper discusses the design and implementation of the convolution neural network image recognition algorithm based on FPGA. Due to the excellent performance of convolutional neural networks in image recognition, combined with the low power consumption and high parallelism of FPGA, higher performance on embedded systems and edge computing devices is expected. Through the system architecture design, hardware resource optimization, and the software implementation of the algorithm, we successfully realize the image recognition algorithm of the convolutional neural network on FPGA. Preliminary experimental results show that the display design achieves higher processing speed and better energy efficiency while maintaining high identification accuracy.

Key words: FPGA; convolutional neural network; network image recognition; algorithm

猜你喜歡
卷積神經(jīng)網(wǎng)絡(luò)算法
基于MapReduce的改進(jìn)Eclat算法
Travellng thg World Full—time for Rree
進(jìn)位加法的兩種算法
基于深度卷積神經(jīng)網(wǎng)絡(luò)的物體識別算法
深度學(xué)習(xí)算法應(yīng)用于巖石圖像處理的可行性研究
基于深度卷積網(wǎng)絡(luò)的人臉年齡分析算法與實現(xiàn)
軟件工程(2016年8期)2016-10-25 15:47:34
基于卷積神經(jīng)網(wǎng)絡(luò)的樹葉識別的算法的研究
一種改進(jìn)的整周模糊度去相關(guān)算法
丰顺县| 申扎县| 民县| 阿合奇县| 汾西县| 台南市| 大邑县| 鲁山县| 鄂尔多斯市| 北碚区| 海阳市| 方正县| 白河县| 上杭县| 海南省| 大同县| 南阳市| 湘潭市| 屯门区| 富裕县| 古田县| 绥江县| 安岳县| 柳江县| 台前县| 安丘市| 亳州市| 伊吾县| 寿宁县| 井研县| 临湘市| 抚远县| 托克逊县| 甘孜县| 东山县| 麦盖提县| 安阳县| 边坝县| 容城县| 萝北县| 齐河县|