• 
    

    
    

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

      基于PYNQ的圖像分類識(shí)別技術(shù)研究與實(shí)現(xiàn)

      2022-01-09 05:19:42谷文成渠吉慶蔣志鵬孫科學(xué)
      關(guān)鍵詞:池化層特征參數(shù)卷積

      陳 禹,谷文成,渠吉慶,蔣志鵬,張 瑛,孫科學(xué),2*

      (1.南京郵電大學(xué) 電子與光學(xué)工程學(xué)院、微電子學(xué)院,江蘇 南京 210023;2.射頻集成與微組裝技術(shù)國家地方聯(lián)合工程實(shí)驗(yàn)室,江蘇 南京 210023)

      0 引 言

      人工智能(artificial intelligence,AI)在計(jì)算機(jī)科學(xué)技術(shù)高速發(fā)展的今天逐漸成為各國的重點(diǎn)研究領(lǐng)域,其發(fā)展水平將很大程度決定一個(gè)國家的技術(shù)戰(zhàn)略高度[1]。作為人工智能的一個(gè)重要研究領(lǐng)域,圖像識(shí)別技術(shù)起源于20世紀(jì)40年代,由于當(dāng)時(shí)基礎(chǔ)理論與硬件性能不足未能得到快速發(fā)展。到了90年代,支持向量機(jī)和人工神經(jīng)網(wǎng)絡(luò)的結(jié)合促進(jìn)了圖像識(shí)別技術(shù)的發(fā)展,其中卷積神經(jīng)網(wǎng)絡(luò)算法的出現(xiàn)使得人臉識(shí)別、圖像分類、特征提取等領(lǐng)域出現(xiàn)了眾多顯著的成果[2-5]。

      卷積神經(jīng)網(wǎng)絡(luò)雖然性能卓越,但由于卷積過程伴隨著龐大的計(jì)算量,因此對(duì)設(shè)備的計(jì)算能力有很高的要求?,F(xiàn)在主流的硬件平臺(tái)包括CPU、GPU、FPGA和ASIC芯片[6-7],其中CPU擁有很高的靈活性,但由于自身設(shè)計(jì)架構(gòu)的局限性,難以支持并行運(yùn)算從而導(dǎo)致處理效率不足;而GPU價(jià)格昂貴,功耗太高,無法應(yīng)用于嵌入式移動(dòng)終端[8];專用集成電路(application-specific integrated circuit,ASIC)可以實(shí)現(xiàn)計(jì)算力和功耗的平衡,但是其定制化的特點(diǎn)導(dǎo)致通用性差、成本高昂且可遷移性低[9];而現(xiàn)場可編程邏輯門陣列(field programmable gate array,F(xiàn)PGA)配置了眾多邏輯單元可用于深度學(xué)習(xí)算法的并行計(jì)算,其計(jì)算力強(qiáng)、功耗低、開發(fā)周期短,在面向嵌入式移動(dòng)終端的應(yīng)用場景上可以發(fā)揮其獨(dú)有的尺寸、性能和功耗上的綜合優(yōu)勢[10-12],且FPGA由于可重新編程的特點(diǎn),可以為不同的應(yīng)用場景提供相應(yīng)的支持[13-15]。

      因此,無論是為了高效地完成人工智能技術(shù)的應(yīng)用,還是為了部署靈活低功耗的嵌入式移動(dòng)終端設(shè)備,基于FPGA平臺(tái)的系統(tǒng)都可以在保障計(jì)算性能的同時(shí)控制能耗。文中設(shè)計(jì)的PYNQ圖像分類識(shí)別系統(tǒng)一方面可以大幅降低能耗,另一方面可以通過軟件操作來實(shí)現(xiàn)對(duì)不同數(shù)據(jù)集的分類識(shí)別,有效提高系統(tǒng)靈活性,降低部署成本。

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

      首先,對(duì)整體系統(tǒng)進(jìn)行分析,通過軟硬件協(xié)同設(shè)計(jì)思路明確功能模塊,完成任務(wù)劃分。在處理系統(tǒng)(process system,PS)部分,通過Jupyter Notebook平臺(tái)基于Python實(shí)現(xiàn)上位機(jī)程序二進(jìn)制特征參數(shù)的讀取以及對(duì)硬件的控制。在可編程邏輯(programmable logic,PL)部分,實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)的模塊設(shè)計(jì)和系統(tǒng)通路搭建。

      PYNQ圖像分類識(shí)別系統(tǒng)能夠處理的圖像尺寸應(yīng)在PYNQ有限的片上資源限制下實(shí)現(xiàn)靈活處理的設(shè)計(jì)要求,文中將通過MNIST數(shù)據(jù)集與CIFAR-10數(shù)據(jù)集驗(yàn)證系統(tǒng)的通用性,通過Jupyter Notebook開發(fā)環(huán)境進(jìn)行系統(tǒng)測試。由于移動(dòng)端嵌入式平臺(tái)對(duì)系統(tǒng)的可移植性以及整體功耗有較高的要求,因此本系統(tǒng)需要對(duì)這兩個(gè)方面進(jìn)行針對(duì)性設(shè)計(jì),其中對(duì)于系統(tǒng)功耗的設(shè)計(jì)要求不高于5 W以滿足低功耗設(shè)計(jì)要求。圖像分類識(shí)別系統(tǒng)的構(gòu)成示意圖如圖1所示。

      圖1 圖像分類識(shí)別系統(tǒng)構(gòu)成示意圖

      2 卷積神經(jīng)網(wǎng)絡(luò)的研究與設(shè)計(jì)

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

      卷積神經(jīng)網(wǎng)絡(luò)有前向傳播和反向傳播兩種傳播方式,網(wǎng)絡(luò)結(jié)構(gòu)主要由卷積層(convolutional layer)、池化層(pooling layer)、激活函數(shù)層(activation function layer)、Dropout層、批規(guī)范化層(batch normalization layer)和全連接層(fully connected)構(gòu)成[16-17]。其中,卷積層和全連接層主要完成特征提取,而池化層和Dropout的主要目的是防止過擬合現(xiàn)象的出現(xiàn)。

      2.2 卷積神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)流程

      圖像分類識(shí)別系統(tǒng)中需要在電腦端完成卷積神經(jīng)網(wǎng)絡(luò)模型的設(shè)計(jì)與訓(xùn)練,最終處理得到特征參數(shù)二進(jìn)制文件。

      (1)針對(duì)MNIST數(shù)據(jù)集的網(wǎng)絡(luò)設(shè)計(jì)。

      MNIST數(shù)據(jù)集的輸入圖片為28*28分辨率的灰度圖,網(wǎng)絡(luò)模型中第一個(gè)卷積層應(yīng)用ReLU激活函數(shù),然后是一個(gè)最大池化層。第二個(gè)卷積層通過ReLU激活函數(shù)和最大池化層對(duì)其進(jìn)行處理,最后使用兩個(gè)全連接層處理。MNIST卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)模型如圖2所示。

      圖2 MNIST數(shù)據(jù)集模型架構(gòu)

      建模過程中,采用自適應(yīng)估計(jì)算法(adaptive moment estimation,Adam)來調(diào)節(jié)連接權(quán)值和偏置,最終測試識(shí)別準(zhǔn)確率為99.06%。

      (2)針對(duì)CIFAR-10數(shù)據(jù)集的網(wǎng)絡(luò)設(shè)計(jì)。

      CIFAR-10數(shù)據(jù)集的輸入圖片為32*32分辨率的彩色圖,對(duì)模型的第一個(gè)卷積層添加ReLU激活函數(shù),然后是最大池化層。第二個(gè)卷積層同樣通過ReLU激活函數(shù)最大池化層進(jìn)行處理。在兩個(gè)卷積層和池化層之后是全連接層,最后是輸出層。 CIFAR-10卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)模型如圖3所示。

      圖3 CIFAR-10數(shù)據(jù)集模型架構(gòu)

      由于CIFAR-10數(shù)據(jù)集的計(jì)算量大幅提高,因此使用深度更高的網(wǎng)絡(luò)進(jìn)行學(xué)習(xí)訓(xùn)練就對(duì)硬件性能有較高的要求。由于文中所用電腦的硬件性能有限并且CIFAR-10數(shù)據(jù)集主要用于驗(yàn)證系統(tǒng)的通用性特點(diǎn),因此所設(shè)計(jì)的網(wǎng)絡(luò)為輕量級(jí)結(jié)構(gòu)。最終CIFAR-10數(shù)據(jù)集測試準(zhǔn)確率為72.93%。

      (3)特征參數(shù)的提取與格式轉(zhuǎn)換。

      在搭建神經(jīng)網(wǎng)絡(luò)模型后需要對(duì)網(wǎng)絡(luò)中卷積層與全連接層的權(quán)重參數(shù)與偏執(zhí)參數(shù)進(jìn)行提取與格式轉(zhuǎn)換。在神經(jīng)網(wǎng)絡(luò)程序中定義參數(shù)提取函數(shù),根據(jù)維度的不同定義子函數(shù),在提取函數(shù)中對(duì)參數(shù)進(jìn)行維度確認(rèn)并通過子函數(shù)完成參數(shù)提取,其中數(shù)據(jù)的先后讀取順序必須保持順序相同,針對(duì)不同維度的數(shù)據(jù),由維度從高到低存儲(chǔ),以便在PYNQ環(huán)境中運(yùn)行正常。代碼頂部先通過sess=tf.InteractiveSession()聲明會(huì)話,對(duì)提取到的特征參數(shù)通過tofile函數(shù)定義保存路徑及格式。完成特征參數(shù)的提取及格式轉(zhuǎn)換后,得到二進(jìn)制格式的特征參數(shù)文件。

      3 基于PYNQ的圖像分類識(shí)別系統(tǒng)實(shí)現(xiàn)

      3.1 IP核模塊設(shè)計(jì)

      (1)卷積層IP核模塊參數(shù)配置。

      在卷積運(yùn)算中卷積核與輸入數(shù)據(jù)進(jìn)行相乘再累加的操作,卷積核通過給定的步長參數(shù)進(jìn)行位移。因此在HLS的卷積層函數(shù)編程中首先需要定義輸入輸出參數(shù)以及卷積核及其步長等參數(shù),輸入輸出特征參數(shù)數(shù)據(jù)類型為多維矩陣,使用指針地址形式傳入數(shù)據(jù)的首地址。卷積層參數(shù)設(shè)置如表1所示。

      (2)卷積層IP核模塊設(shè)計(jì)。

      在卷積層IP核模塊設(shè)計(jì)中,設(shè)計(jì)流程嚴(yán)格遵循HLS開發(fā)工具的相關(guān)要求,首先添加頭文件和C代碼文件。在C代碼文件中,需要首先設(shè)定函數(shù)Conv為IP核的頂層函數(shù),在此函數(shù)中的各個(gè)特征參數(shù)定義在表1中已給出。在定義參數(shù)后需要對(duì)IP核模塊的各個(gè)參數(shù)接口進(jìn)行設(shè)計(jì)配置。

      表1 卷積層參數(shù)設(shè)置

      然后選擇卷積層C代碼程序作為實(shí)現(xiàn)目標(biāo),設(shè)置仿真綜合的時(shí)鐘周期,對(duì)工程進(jìn)行C仿真測試,編譯并執(zhí)行程序,驗(yàn)證無誤后進(jìn)行算法綜合與C/RTL協(xié)同仿真,綜合結(jié)束后生成性能報(bào)告。最后通過HLS執(zhí)行Export>RTL將IP核模塊以RTL形式生成即可看到IP核模塊的BLOCK,如圖4所示。

      圖4 卷積層IP核通用電路

      (3)最大池化層IP核模塊設(shè)計(jì)。

      與設(shè)計(jì)卷積層函數(shù)相同,最大池化層IP核模塊設(shè)計(jì)需要在HLS中定義輸入輸出參數(shù)以及卷積核及其步長等參數(shù),輸入輸出特征參數(shù)數(shù)據(jù)類型為多維矩陣,同樣使用指針地址形式傳入數(shù)據(jù)的首地址。完成最大池化層IP核模塊的設(shè)計(jì)后,可以將設(shè)計(jì)好的IP核加載到VIVADO軟件中進(jìn)行下一步的硬件通路設(shè)計(jì)。

      3.2 整體通路配置

      (1)ZYNQ芯片參數(shù)配置。

      在VIVADO中導(dǎo)入卷積層IP核模塊以及最大池化層IP核模塊后,還需要配置ZYNQ芯片完成通路搭建。操作步驟如下:①對(duì)片上資源I/O設(shè)備接口進(jìn)行初始化;②對(duì)PS端與PL端的接口進(jìn)行配置;③設(shè)定時(shí)鐘規(guī)范,在時(shí)鐘配置上,本課題的PS部分時(shí)鐘頻率為650 MHz,PL部分時(shí)鐘頻率配置為100 MHz。

      (2)系統(tǒng)I/O口配置。

      文中設(shè)計(jì)的系統(tǒng)需要USB、SD接口、URAT等I/O設(shè)備,在VIVADO中對(duì)其進(jìn)行接口配置,在ZYNQ芯片的I/O外設(shè)選項(xiàng),可以直觀地看到ZYNQ可以提供的外設(shè)接口圖形化的配置界面。

      3.3 驅(qū)動(dòng)程序與上位機(jī)程序設(shè)計(jì)

      (1)卷積層與最大池化層驅(qū)動(dòng)程序設(shè)計(jì)。

      PYNQ開發(fā)平臺(tái)的一個(gè)顯著特點(diǎn)是其PS部分搭載的操作系統(tǒng)支持開發(fā)者直接使用Python編程語言對(duì)硬件模塊進(jìn)行控制操作,Xilinx官方提供的函數(shù)庫文件可以方便開發(fā)者通過Python開發(fā)硬件。

      由于文中設(shè)計(jì)的卷積層IP核模塊是面向片上存儲(chǔ)器的物理地址并且需要在操作系統(tǒng)中通過Python腳本程序?qū)τ布M(jìn)行操控,因此數(shù)組的虛擬地址與物理地址就可能會(huì)產(chǎn)生差異,所以在新定義數(shù)組時(shí)必須保證分配的是連續(xù)內(nèi)存物理地址。在Xilinx官方提供的庫函數(shù)中,Xlnk可以用于分配連續(xù)物理地址以及提供物理指針,而Xlnk可以使用Python的Numpy第三方函數(shù)庫來分配數(shù)組,但在對(duì)各個(gè)特征參數(shù)寫入物理地址前,需要在驅(qū)動(dòng)中對(duì)各個(gè)特征參數(shù)進(jìn)行初始化復(fù)制。

      在完成特征參數(shù)的初始化后就需要通過PYNQ的pynq.Overlay模塊將數(shù)據(jù)寫入至待寫入的物理內(nèi)存地址中。通過Overlay中的download()方法將VIVADO中生成的比特流文件下載至PL部分,wirte(offset,value)函數(shù)將要寫入的數(shù)據(jù)value(int數(shù)據(jù)類型或字節(jié)數(shù)據(jù)類型)寫入offset地址。由于在卷積層IP核模塊中,輸入輸出特征、權(quán)值和偏執(zhí)通過指針傳入首地址,因此在驅(qū)動(dòng)程序中需要通過physical_address函數(shù)傳入分配的物理地址。最大池化層IP核模塊的驅(qū)動(dòng)程序設(shè)計(jì)方法與卷積層IP核模塊的設(shè)計(jì)方法相同,故不再贅述。

      (2)上位機(jī)程序設(shè)計(jì)。

      為了能夠在Liunx操作系統(tǒng)和Jupyter Notebook中控制系統(tǒng)正常工作,需要通過Python語言設(shè)計(jì)編寫上位機(jī)控制程序,上位機(jī)程序包括主函數(shù)和系統(tǒng)的初始化。

      主函數(shù)中,首先讀取灰度圖/RGB圖,接著調(diào)用驅(qū)動(dòng)函數(shù),然后定義參考值max并賦值,最后將輸出分類概率值與max對(duì)比,將最高概率值賦值為max并作為結(jié)果輸出。系統(tǒng)初始化的程序結(jié)構(gòu)如圖5所示。

      圖5 初始化程序結(jié)構(gòu)

      4 系統(tǒng)測試

      圖像分類識(shí)別系統(tǒng)搭載在PYNQ-Z2開發(fā)板上,在進(jìn)行測試驗(yàn)證前需要對(duì)開發(fā)板硬件環(huán)境以及軟件環(huán)境正確配置,將OVERLAY燒寫至開發(fā)板中并利用Python編程語言實(shí)現(xiàn)控制操作。采用MNIST及CIFAR-10數(shù)據(jù)集對(duì)系統(tǒng)進(jìn)行性能測試,驗(yàn)證文中設(shè)計(jì)并與桌面CPU和GPU性能及功耗進(jìn)行對(duì)比分析。測試結(jié)果如表2所示。

      表2 平臺(tái)橫向參數(shù)對(duì)比

      由表2可以看出,在MNIST數(shù)據(jù)集的識(shí)別率方面,PYNQ圖像分類識(shí)別系統(tǒng)與E5-2692和K20平臺(tái)幾乎相同,在CIFAR-10數(shù)據(jù)集的識(shí)別率上則仍有較大差距,但在功耗和成本方面本課題所設(shè)計(jì)的系統(tǒng)具備較明顯的優(yōu)勢。與各平臺(tái)的實(shí)現(xiàn)方式相比,PYNQ圖像分類識(shí)別系統(tǒng)不需要針對(duì)不同的數(shù)據(jù)集對(duì)系統(tǒng)進(jìn)行重構(gòu),通過上位機(jī)程序讀取不同測試集的特征參數(shù),就可以實(shí)現(xiàn)不同測試集的正常分類識(shí)別。測試表明系統(tǒng)的分類識(shí)別功能與通用性符合設(shè)計(jì)要求。

      5 結(jié)束語

      設(shè)計(jì)了一種基于PYNQ開發(fā)平臺(tái)的圖像分類識(shí)別系統(tǒng),該系統(tǒng)以軟硬件協(xié)同設(shè)計(jì)理論作為指導(dǎo)思想,在基于ZYNQ架構(gòu)的PYNQ-Z2平臺(tái)上設(shè)計(jì)了PS部分的驅(qū)動(dòng)和上位機(jī)程序,在PL部分設(shè)計(jì)了自定義IP核模塊并完成系統(tǒng)搭建。最后在Jupyter Notebook平臺(tái)通過兩個(gè)數(shù)據(jù)集進(jìn)行功能與性能測試,通過測試可知,該系統(tǒng)可以在低功耗的前提下實(shí)現(xiàn)對(duì)不同數(shù)據(jù)集的分類識(shí)別。

      為了進(jìn)一步提高系統(tǒng)的性能,下一步可以嘗試更多的算法實(shí)現(xiàn),例如針對(duì)卷積神經(jīng)網(wǎng)絡(luò)模型的搭建,可以使用二值化卷積神經(jīng)網(wǎng)絡(luò)對(duì)數(shù)據(jù)進(jìn)行壓縮以降低存儲(chǔ)消耗,此外還可以嘗試YOLO算法作為識(shí)別方法。

      猜你喜歡
      池化層特征參數(shù)卷積
      故障診斷中信號(hào)特征參數(shù)擇取方法
      基于3D-Winograd的快速卷積算法設(shè)計(jì)及FPGA實(shí)現(xiàn)
      卷積神經(jīng)網(wǎng)絡(luò)模型研究分析*
      基于特征參數(shù)化的木工CAD/CAM系統(tǒng)
      基于卷積神經(jīng)網(wǎng)絡(luò)的紙幣分類與點(diǎn)鈔
      基于深度學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)的人體行為識(shí)別研究
      科技傳播(2020年6期)2020-05-25 11:07:46
      從濾波器理解卷積
      電子制作(2019年11期)2019-07-04 00:34:38
      基于全卷積神經(jīng)網(wǎng)絡(luò)的SAR圖像目標(biāo)分類*
      基于傅里葉域卷積表示的目標(biāo)跟蹤算法
      基于PSO-VMD的齒輪特征參數(shù)提取方法研究
      通许县| 高平市| 巴青县| 扎兰屯市| 游戏| 河津市| 大渡口区| 翁源县| 肥东县| 黎川县| 宜丰县| 应用必备| 贡山| 定西市| 深州市| 泗水县| 盐城市| 准格尔旗| 大连市| 高安市| 曲阜市| 砀山县| 晋中市| 资源县| 嘉兴市| 连南| 平安县| 青岛市| 中方县| 香港| 綦江县| 龙门县| 东乌| 喜德县| 车险| 潞西市| 沙河市| 确山县| 萨嘎县| 镇赉县| 宣恩县|