999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

硬件加速CNN實時圖像處理方法

2020-06-12 09:17:40王威廉康立富
計算機工程與設計 2020年6期
關鍵詞:模型

張 強,孫 靜+,王威廉,康立富

(1.云南大學 信息學院,云南 昆明 650500;2.云南師范大學商學院 數據科學與工程學院,云南 昆明 651701)

0 引 言

一個完整的卷積神經網絡(convolutional neural networks,CNN)包括輸入層、隱藏層和輸出層。隱藏層的每個神經元只與前一層的局部神經元相連,并提取該局部域的特征,其每一個計算層都由多個特征映射組成,每個特征映射是一個平面,平面上所有神經元的權值相等,輸出層接收來自隱藏層的向量,可設計為輸出物體的中心坐標、大小和分類[1]。在現有的可參考文獻中,CNN圖像處理大多是在PC端進行訓練和測試,基于中央處理單元(central processing unit,CPU)的算法只能順序執行,在處理大量數據的計算時,會帶來明顯的時間延遲,即使是高性能計算機也不能完全保證低延時的實時圖像處理。

現場可編程門陣列(field programmable gate arrary,FPGA)具備并行結構,可同時高速并行處理數據,提高圖像處理的實時性,廣泛應用于邊沿檢測、灰度轉換、閾值檢測等實時圖像處理算法中。基于CNN隱藏層參數可共享的特點,利用FPGA進行CNN實時圖像處理的硬件加速,即可解決CNN對PC資源的高依賴、高延時等缺陷[2,3]。本文對CNN圖像處理算法的并行執行能力進行了研究,采用Vivado高層次綜合(high-level synthesis,HLS)實現了將訓練好的CNN模型隱藏層參數共享,并用FPGA加速CNN實時圖像處理。實驗結果表明,本文提出的方法達到了預期目的,該方法識別國家標注技術研究所(mixed national institute of standards and technology,MNIST)庫中10 000例手寫體樣本僅需8.69 s,而傳統PC端識別相同樣本的時間為30 s。此方法具有設計周期短、設計封裝為IP(intellectual property,IP)核后,易跨平臺移植等優勢。

1 CNN算法設計

為便于CNN算法的硬件加速實現圖像實時處理的目的,將CNN算法的隱藏層進行了自定義設計,包括兩個卷積層、兩個池化層及一個全連接層,三者在隱藏層中的執行順序如圖1所示[4]。

圖1 CNN隱藏層流程

本方法設計的CNN一共有兩個卷積層,目的是將局部特征提取出來,leraning-rate_param包含權重值與偏置值的學習率,前者決定分割平面的方向所在,后者決定豎直平面沿著垂直于直線方向移動的距離,二者共同決定訓練出的特征值與真實值之間的差距;激活函數負責將上一層網絡上的輸入映射到輸出端,提供下一層網絡的輸入向量。在卷積層之間、卷積層與全連接層之間都需要激活函數實現向量映射;在兩個激活函數之后皆有分別對應的池化層,目的是對提取的特征值做一次濾波,簡化網絡計算復雜度,提取主要特征;全連接層在整個卷積神經網絡中起到“分類器”的作用,將學到的“分布式特征表示”映射到樣本標記空間,使得輸出層能有更好的圖像視覺效果。

整個實驗過程中可以根據自己的需要調整CNN隱藏層參數,如圖1花括號內英文變量所表示,根據識別效果的收斂性,反饋到卷積層與全連接層中,修改leraning-rate_param、weight_filler、bias_filler等參數來調整CNN的訓練模型以達到更好的訓練與識別效果[5]。

2 CNN算法實現

2.1 數據集準備

卷積神經網絡框架Caffe(convolutional architecture for fast feature embedding)是一種常見的深度學習框架,主要應用在視頻、圖像處理方面的應用上。目前深度學習的框架大多運行在高性能計算機上,以達到更快的訓練與識別速度,在PC端搭建和配置Caffe是訓練CNN模型的基礎,得到訓練好的CNN模型caffemodel.h5即可進行硬件加速CNN實時圖像處理[6]。

在Caffe框架下,可以直接運行MNIST數據庫中手寫體數字數據集的下載腳本get_mnist.sh即可得到如圖2所示的4個壓縮文件,且解壓后皆是以向量與多維度矩陣文件格式存儲的文件。

圖2 MNIST手寫體數據集壓縮包

前兩個壓縮文件分別是CNN訓練時使用的60 000例圖像文件與對應的標簽文件;后兩個壓縮文件分別是測試CNN模型caffemodel.h5時使用的10 000例圖像文件與對應的標簽文件,圖像文件共由5個部分組成,見表1,標簽文件由3個部分組成,見表2。

表1 數據集圖像文件的組成

表2 數據集標簽文件的組成

由于上述4個文件為二進制原始數據文件,不能在Caffe中直接使用,可以直接運行Caffe環境下自帶的create_mnist.sh腳本文件,將原始數據制作成為Caffe可以識別的lmdb格式文件,即可在Caffe中直接使用。

2.2 多分類模型實現

Caffe環境下新建兩個腳本,一個是訓練用的CNN網絡結構腳本two_conv_train.prototxt,另一個是訓練用的CNN參數腳本two_conv_train_solver.prototxt,前者按照圖1所示流程編寫,后者主要設置訓練次數、模型參數、最大迭代次數及模型輸出參數等,具體參數設置參照表3[7]。

表3 CNN網絡訓練參數

設置完成后,可直接運行two_conv_train_ex_solver.prototxt腳本,經過多次調參并訓練完成后,可得到two_conv_train_iter_70000.caffemodel.h5。在PC端利用Intel i7-8700 CPU測試訓練好的CNN網絡模型,可達到0.99的準確率,耗時30 s。如圖3所示,此caffemodel.h5模型即為優化后的CNN模型文件,可以在硬件加速CNN實時圖像處理中得以應用[8]。

圖3 PC端CNN識別手寫體結果

2.3 模型參數提取

根據上述得到的caffemodel.h5模型,編寫提參腳本直接提取模型參數的權重值和偏置值,并與卷積核數保持對應一致,各卷積層與全連接層的權重值與偏置值的個數見表4。

表4 隱藏層內各子分類的權重值

將caffemodel.h5模型讀取出的權重值和偏置值參數保存為conv1p.txt、conv2p.txt、FC.txt3個文檔,分別對應卷積層1、卷積層2、全連接層的模型參數,在Vivado HLS中以C++語言讀取模型參數的文本文檔,供硬件加速CNN實時圖像處理使用。

3 硬件加速實現

3.1 卷積層的硬件化

本方法設計的CNN網絡具有兩個卷積層、兩個池化層、一個全連接層、兩次激活函數,包含6個5*5的卷積核,所以在每一個卷積層內采用6個循環遍歷卷積核行、卷積核列、圖像通道、圖像高度、圖像寬度、卷積核的點,可用圖4所示代碼表示[9]。

圖4 硬件化的CNN模型設計

每一層卷積層內一共使用了5個乘法器并行實現,在CNN的硬件加速中,將乘法器固化成硬件的核,以方便后續調用,每一個乘法器的核心代碼如圖5所示[10]。乘法器可固化為硬件核,本質上是將輸入的數據直接以寄存器的方式賦值,從上至下使用了4個for循環進行矩陣的轉換,且添加了兩個#pragmaHLSPIPELINE一級流水的約束關鍵字,通過允許并發執行操作來減少函數或循環的啟動間隔。整個卷積層使用6個for循環實現卷積核與圖像的卷積運算,再使用5個乘法器核并行實現累加得到該卷積層的結果,并輸出到激活函數[11]。

圖5 基于Vivado HLS的乘法器原型設計

3.2 CNN的硬件加速實現

在Vivado HLS中用C++編寫讀取caffemodel.h5模型參數文檔,用于輸入圖像在卷積層中的調用,從輸入層導入MNIST手寫體數據集之后,各層間的流程如圖6所示。

將28*28大小的輸入數據用卷積層1的參數進行卷積,并作為結構體c1輸出;將結構體c1的輸入向量經過Relu函數處理,得到大于0的數據再通過池化層1處理得到結構體s2。

同理再一次將結構體s2輸入到第二層卷積層卷積、激活函數Relu處理及池化層2處理,得到的結果數據保存為結構體s4;將s4輸入到全連接層進行全局變量提取,再經過輸出層處理即可得到識別出的手寫體數字[12]。

圖6 硬件加速CNN的模型設計

3.3 基于Vivado HLS測試CNN的硬件加速

硬件加速CNN的TestBench文件的編寫,遵從Vivado HLS格式規范,按照如圖7所示的流程進行編寫。

圖7中,輸入層的數據集是來自MNIST的手寫體測試數據集,分別是t10k-images-idx3-ubyte與t10k-label-idx1-ubyte兩個二進制數據文件,讀取的數據集參數即可直接進入硬件加速CNN算法中運算[13]。測試數據集在硬件加速CNN算法中的運算,是將卷積層的各個卷積核利用FPGA并行實現的方式,在相同時鐘周期到來時,全部卷積核同時與測試數據集參數執行完卷積運算,得到的卷積結果也可以在相同時鐘周期內完成激活函數、池化層的運算,進而在下一個時鐘周期來臨時,可繼續進行再一次的卷積、激活函數、池化的循環運算,直到輸出結果并結束運算。將經FPGA并行實現CNN圖像處理得到的輸出結果進行標簽判斷,將正確的識別結果與錯誤的識別結果及數量輸出,完成整個硬件加速CNN的圖像處理。

圖7 硬件加速CNN仿真文件編寫流程

4 實驗結果與分析

在Vivado HLS中編譯C++編寫的硬件加速CNN圖像處理的算法,可以直接轉換成RTL級硬件電路,同時封裝為可以在Vivado中直接調用的Verilog IP核,方便日后硬件加速CNN圖像處理算法移植到高性能處理平臺Zynq片上系統(system on chip,SOC)中。

4.1 結 果

在Vivado HLS中利用C++語言編寫硬件加速CNN圖像處理算法,通過運行硬件加速CNN算法識別MNIST數據庫中的手寫體數字,得出如圖8所示的結果,同時Vivado HLS串口打印出實現本方法的時間消耗見表5,FPGA模塊資源消耗見表6。

從識別結果中可以看出,標簽數一共有7種,識別正確的也是7種,錯誤識別的標簽是0個,與CNN在PC端的測試準確率0.99基本吻合,可見本方法在識別效果上與PC端的效果幾乎一致。

圖8 硬件加速CNN識別手寫體數字結果

4.2 結果分析

從本方法識別MNIST數據庫中10 000例手寫體數據樣本所消耗的時間來看,PC端利用Intel i7-8700 CPU測試訓練好的網絡耗時30 s,本次實驗結果產生的8.69 s耗時降低了77.7%的時長,單例樣本的識別時長為0.87 ms,低于人眼舒適放松時長1/24 s[14]。此外,表6所示塊狀RAM和FF模塊占用率達到20%左右,數字信號處理器模塊、顯示查找表占用率達到了67%左右,而本方法在Vivado HLS中選擇的芯片是Zynq 7020,所以均在Zynq 7020可編程邏輯(progarmmable logic,PL)承受范圍內,較好的實現了硬件加速CNN實時圖像處理。

表5 硬件加速CNN圖像處理所消耗的時間

表6 硬件加速CNN圖像處理的各模塊資源消耗情況

5 結束語

本方法實現了CNN圖像處理的硬件加速,8.69 s的耗時、Zynq 7020芯片硬件模塊占用率在20%至68%之間,相比PC端30 s的時間消耗、PC端資源的高依賴,硬件加速CNN圖像處理具有高實時性、低成本的優點。同時將硬件加速CNN圖像處理的C++程序封裝打包為Verilog IP,方便以后移植到Zynq SOC中去,應用到更多的領域。

本文在Vivado HLS中,設計實現了硬件加速CNN圖像處理,通過測試驗證得到與PC端相似的識別效果,彌補了CNN圖像處理對PC資源高依賴、高延時的缺陷,為CNN圖像處理的硬件加速推廣應用提供了可參考的方法。

猜你喜歡
模型
一半模型
一種去中心化的域名服務本地化模型
適用于BDS-3 PPP的隨機模型
提煉模型 突破難點
函數模型及應用
p150Glued在帕金森病模型中的表達及分布
函數模型及應用
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
3D打印中的模型分割與打包
主站蜘蛛池模板: 国产欧美另类| 爱色欧美亚洲综合图区| 亚洲无码熟妇人妻AV在线| 精品91视频| 日韩视频福利| 日本黄色不卡视频| 午夜小视频在线| 国产成人久视频免费| 黄色在线不卡| 毛片在线播放a| 色AV色 综合网站| 美美女高清毛片视频免费观看| 国产菊爆视频在线观看| 一级毛片在线免费视频| 亚洲Av激情网五月天| 精品久久国产综合精麻豆| 99热国产在线精品99| 久热99这里只有精品视频6| 久久99精品国产麻豆宅宅| 3p叠罗汉国产精品久久| 丝袜无码一区二区三区| 国产第一页免费浮力影院| 亚洲欧洲AV一区二区三区| 国产乱人免费视频| 91精品免费久久久| 日韩精品专区免费无码aⅴ| 国产又色又刺激高潮免费看| 免费观看国产小粉嫩喷水| 欧美激情视频一区| 四虎综合网| 久久婷婷五月综合色一区二区| 91网红精品在线观看| 国产欧美日韩在线一区| 国产在线精品香蕉麻豆| 亚洲精品少妇熟女| 波多野结衣视频网站| 9久久伊人精品综合| 亚洲人成网18禁| 国产成人免费手机在线观看视频| 狠狠五月天中文字幕| 欧美激情一区二区三区成人| 成人一级黄色毛片| 久久午夜夜伦鲁鲁片无码免费| 9cao视频精品| 97视频在线观看免费视频| 久久久精品无码一二三区| 成人午夜久久| 久久免费精品琪琪| 中文字幕在线欧美| 亚洲毛片网站| 免费毛片网站在线观看| 欧美日韩免费观看| 被公侵犯人妻少妇一区二区三区| 国产精品免费电影| AV天堂资源福利在线观看| 日本一区二区三区精品视频| 亚洲欧美人成电影在线观看| 91在线视频福利| 国产99精品久久| 国产成人乱码一区二区三区在线| 欧洲av毛片| 久久精品国产精品一区二区| 久久毛片免费基地| 亚卅精品无码久久毛片乌克兰| 中国美女**毛片录像在线| 日本欧美视频在线观看| 97无码免费人妻超级碰碰碰| 扒开粉嫩的小缝隙喷白浆视频| 美女无遮挡免费视频网站| 91香蕉视频下载网站| 久久毛片网| 国内老司机精品视频在线播出| 国产精品久久精品| 亚洲国产无码有码| 成人韩免费网站| 亚洲av无码成人专区| 日韩一区二区三免费高清| 日本草草视频在线观看| 永久毛片在线播| 国产精品国产三级国产专业不| 国产精品无码久久久久久| 第九色区aⅴ天堂久久香|