利用深度卷積神經網絡(CNN)進行圖像分類是通過使用多個卷積層來從輸入數據中提取特征,最后通過分類層做決策來識別出目標物體。
典型的大規模CNN網絡通常包含數百萬個神經單元和數百萬個連接,需要超過十億次的操作才能處理一個輸入,因此整個過程比較耗時。
PipeCNN是一個開源的基于OpenCL的深度卷積神經網絡加速器,采用板載ARM+FPGA異構計算的方式來加速CNN運算中計算密集型運算。卷積、全連接等復雜運算利用FPGA的豐富片上并行計算資源進行加速,保證了實時性。ARM上運行數據流讀取和顯示工作,保證了程序的靈活和可擴展性。
本文將演示如何在友晶LabCloudFPGA硬件在線實驗云平臺(下文簡稱LabCloud平臺)上用PipeCNN進行ImageNet圖像分類加速。
01在Lab Cloud上運行PipeCNN步驟搭建環境
Lab Cloud平臺已經安裝有OpenCL環境 。(可在終端下發如下三條命令進行驗證)
資源下載
1. 可以直接在云節點打開終端,輸入如下命令進行源碼下載:
gitclonehttps://github.com/doonny/PipeCNN.git
若有些院校Lab Cloud只連了局域網,則可以通過鏈接https://github.com/doonny/PipeCNN下載到自己的電腦上:
然后通過Lab Cloud平臺的文件上傳功能傳至云節點。
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 路徑下執行 make fpga,最終在PipeCNN-master/project_intel 路徑下會產生一個conv.aocx文件:
編譯host
編譯host時還需要繼續修改project_intel/Makefile文件去指定當前opencv路徑。
1. 對于當前Lab Cloud 上對應的DE_Cloud板卡環境需要修改如下:
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路徑下(已經在該路徑下的忽略此步驟),則需要進入main.cpp修改文件路徑到當前正確路徑。
4. 刪掉PipeCNN-master/project_xilinx文件夾和PipeCNN-master/project_intel/conv文件(刪掉多余文件以便將剩下文件傳輸到云平臺開發板)。
5.然后點擊SoC傳輸將PipeCNN-master文件夾和ILSVRC2012_img_test.zip文件傳到DE_Cloud開發板的LXDE桌面:
6. 將ILSVRC2012_img_test.zip解壓到/home/root路徑(
若圖片解壓到其他路徑下,則需要進入main.cpp修改文件路徑到當前正確路徑。):
7. 點擊SoC桌面進入DE_Cloud開發板的 LXDE桌面:
8. 按照下圖打開Linux的終端:
9. 用命令cd OpenCL 切換到OpenCL文件夾,用命令source ./init_opencl.sh進行OpenCL runtime初始化:
10. 切換路徑到PipeCNN-master/project_intel/下執行make host就會在當前路徑下生成run.exe文件(在這個過程中會有warning提示,可以忽略):
執行PipeCNN
1. 配置FPGA使用命令aocl program /dev/acl0 conv.aocx。
2. 運行host使用命令make run。
運行結束,便可以得到分類結果。
02Lab Cloud平臺簡介
LabCloud FPGA 硬件在線實驗云平臺
-
FPGA
+關注
關注
1643文章
21975瀏覽量
614435 -
圖像分類
+關注
關注
0文章
96瀏覽量
12114 -
cnn
+關注
關注
3文章
354瀏覽量
22648 -
卷積神經網絡
+關注
關注
4文章
369瀏覽量
12199
原文標題:在FPGA硬件在線實驗云平臺LabCloud上用PipeCNN進行ImageNet圖像分類加速
文章出處:【微信號:友晶FPGA,微信公眾號:友晶FPGA】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
想要學習在DSP的平臺上進行圖像處理,求推薦入門教材。
在嵌入式平臺上怎么實現μC/GUI的移植?
如何在嵌入式Linux系統平臺上設計建立圖像視頻?
在RK3288平臺上如何采用裸機實現LVDS和MIPI接口的LCD顯示?
如何使用神經網絡模型加速圖像數據集的分類
Xilinx FPGA如何通過深度學習圖像分類加速機器學習
如何在LabVIEW平臺上使用USB模塊進行圖像采集與處理系統的設計

高通AI Hub:輕松實現Android圖像分類

評論