利用深度卷積神經(jīng)網(wǎng)絡(luò)(CNN)進行圖像分類是通過使用多個卷積層來從輸入數(shù)據(jù)中提取特征,最后通過分類層做決策來識別出目標物體。
典型的大規(guī)模CNN網(wǎng)絡(luò)通常包含數(shù)百萬個神經(jīng)單元和數(shù)百萬個連接,需要超過十億次的操作才能處理一個輸入,因此整個過程比較耗時。
PipeCNN是一個開源的基于OpenCL的深度卷積神經(jīng)網(wǎng)絡(luò)加速器,采用板載ARM+FPGA異構(gòu)計算的方式來加速CNN運算中計算密集型運算。卷積、全連接等復雜運算利用FPGA的豐富片上并行計算資源進行加速,保證了實時性。ARM上運行數(shù)據(jù)流讀取和顯示工作,保證了程序的靈活和可擴展性。
本文將演示如何在友晶LabCloudFPGA硬件在線實驗云平臺(下文簡稱LabCloud平臺)上用PipeCNN進行ImageNet圖像分類加速。
01在Lab Cloud上運行PipeCNN步驟搭建環(huán)境
Lab Cloud平臺已經(jīng)安裝有OpenCL環(huán)境 。(可在終端下發(fā)如下三條命令進行驗證)
資源下載
1. 可以直接在云節(jié)點打開終端,輸入如下命令進行源碼下載:
gitclonehttps://github.com/doonny/PipeCNN.git
若有些院校Lab Cloud只連了局域網(wǎng),則可以通過鏈接https://github.com/doonny/PipeCNN下載到自己的電腦上:
然后通過Lab Cloud平臺的文件上傳功能傳至云節(jié)點。
2. 通過鏈接https://pan.baidu.com/s/1jIl6qkm?_at_=1744271894249#list/path=%2FPipeCNN下載data_alex文件夾(包含image.dat,fc8.dat,weights.dat三個文件),并將該文件夾放到PipeCNN-master/project_intel/data路徑下。
3. 測試圖像使用的是ImageNet(ILSVRC2012_img_test.zip,300張照片)
下載鏈接:https://pan.baidu.com/s/1Agx0qZs55aZWM58c-Wng8A提取碼: tera
編譯kernel
1. 進入PipeCNN-master/project_intel/device/RTL路徑下,打開終端,輸入 make:
2. 按照下圖修改project_intel/Makefile:
USE_OPENCV=1
PLATFORM=arm32
FLOW=hw
切換路徑到
/root/intelFPGA/18.1/hld/board/de_cloud
3. 按照下圖修改PipeCNN-master/project_intel/device/hw_param.cl文件:
VEC_SIZE 8
LANE_NUM 8
choose net 改為 ALEXNET
4. 按照下圖修改PipeCNN-master/project_intel/device/conv_pipe.cl文件:
5. 進入 PipeCNN-master/project_intel 路徑下執(zhí)行 make fpga,最終在PipeCNN-master/project_intel 路徑下會產(chǎn)生一個conv.aocx文件:
編譯host
編譯host時還需要繼續(xù)修改project_intel/Makefile文件去指定當前opencv路徑。
1. 對于當前Lab Cloud 上對應(yīng)的DE_Cloud板卡環(huán)境需要修改如下:
OCV_LIBS后面添加 -lopencv_imgcodecs
修改路徑 /usr/local/lib
修改路徑 /usr/local/include
2. 將PipeCNN-master/project_intel/host/layer_config.h文件當中的char型定義全部改成signed char型(一共4處修改)。
3.data_alex文件夾若不是放在PipeCNN-master/project_intel/data路徑下(已經(jīng)在該路徑下的忽略此步驟),則需要進入main.cpp修改文件路徑到當前正確路徑。
4. 刪掉PipeCNN-master/project_xilinx文件夾和PipeCNN-master/project_intel/conv文件(刪掉多余文件以便將剩下文件傳輸?shù)皆破脚_開發(fā)板)。
5.然后點擊SoC傳輸將PipeCNN-master文件夾和ILSVRC2012_img_test.zip文件傳到DE_Cloud開發(fā)板的LXDE桌面:
6. 將ILSVRC2012_img_test.zip解壓到/home/root路徑(
若圖片解壓到其他路徑下,則需要進入main.cpp修改文件路徑到當前正確路徑。):
7. 點擊SoC桌面進入DE_Cloud開發(fā)板的 LXDE桌面:
8. 按照下圖打開Linux的終端:
9. 用命令cd OpenCL 切換到OpenCL文件夾,用命令source ./init_opencl.sh進行OpenCL runtime初始化:
10. 切換路徑到PipeCNN-master/project_intel/下執(zhí)行make host就會在當前路徑下生成run.exe文件(在這個過程中會有warning提示,可以忽略):
執(zhí)行PipeCNN
1. 配置FPGA使用命令aocl program /dev/acl0 conv.aocx。
2. 運行host使用命令make run。
運行結(jié)束,便可以得到分類結(jié)果。
02Lab Cloud平臺簡介
LabCloud FPGA 硬件在線實驗云平臺
-
FPGA
+關(guān)注
關(guān)注
1645文章
22050瀏覽量
618562 -
圖像分類
+關(guān)注
關(guān)注
0文章
96 -
cnn
+關(guān)注
關(guān)注
3文章
354瀏覽量
22743 -
卷積神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
4文章
369瀏覽量
12305
原文標題:在FPGA硬件在線實驗云平臺LabCloud上用PipeCNN進行ImageNet圖像分類加速
文章出處:【微信號:友晶FPGA,微信公眾號:友晶FPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
想要學習在DSP的平臺上進行圖像處理,求推薦入門教材。
在嵌入式平臺上怎么實現(xiàn)μC/GUI的移植?
在MTK平臺上實現(xiàn)2ME需要哪些功能?
在Intel PXA27X平臺上如何去實現(xiàn)MPEG-4視頻編碼的功能?
如何在嵌入式Linux系統(tǒng)平臺上設(shè)計建立圖像視頻?
在RK3288平臺上如何采用裸機實現(xiàn)LVDS和MIPI接口的LCD顯示?
用CPLD實現(xiàn)嵌入式平臺上的實時圖像增強

如何使用神經(jīng)網(wǎng)絡(luò)模型加速圖像數(shù)據(jù)集的分類
Xilinx FPGA如何通過深度學習圖像分類加速機器學習
高通AI Hub:輕松實現(xiàn)Android圖像分類

在友晶DE1-SOC開發(fā)板實現(xiàn)Chirikov標準映射求解器

評論