前 言
本文主要介紹基于創(chuàng)龍科技TL3562-MiniEVM評估板的NPU開發(fā)案例,適用開發(fā)環(huán)境如下。
Windows開發(fā)環(huán)境:Windows 7 64bit、Windows 10 64bit
虛擬機:VMware16.2.5
開發(fā)環(huán)境:Ubuntu20.04.6 64bit
U-Boot:U-Boot-2017.09
Kernel:Linux-5.10.209
LinuxSDK:rk3562-ubuntu20.04-sdk-[版本號](基于rk3562_linux_release_v1.2.0)
無特殊說明情況下,本文默認(rèn)使用USB TO UART0作為調(diào)試串口,使用系統(tǒng)啟動卡(Micro SD方式)啟動系統(tǒng),通過路由器與PC機進行網(wǎng)絡(luò)連接,請確保PC機、Ubuntu系統(tǒng)可正常訪問互聯(lián)網(wǎng)。
NPU(Neural network Processing Unit),即神經(jīng)網(wǎng)絡(luò)處理器。RK3562內(nèi)部已集成高能效神經(jīng)網(wǎng)絡(luò)處理器NPU,支持神經(jīng)網(wǎng)絡(luò)推理硬件加速,能夠流暢運行AI算法。主要參數(shù)如下:
(1) 支持INT4/INT8/INT16/FP16等;
(2) 支持多種框架,如TensorFlow、MXNet、PyTorch、Caffe等;
(3) 1TOPS算力。
備注:更多詳細(xì)信息請查看“6-開發(fā)參考資料數(shù)據(jù)手冊核心板元器件CPU”目錄下的文檔。
NPU開發(fā)流程如下:
(1) 模型訓(xùn)練:用戶根據(jù)需求自行訓(xùn)練模型或使用官方提供的模型;
(2) 模型轉(zhuǎn)換:使用RKNN-Toolkit2將預(yù)訓(xùn)練模型轉(zhuǎn)換為RK3562 NPU可使用的RKNN模型;
(3) 應(yīng)用開發(fā):基于RKNN API開發(fā)應(yīng)用程序。

圖 1 NPU開發(fā)流程圖
我司提供的NPU開發(fā)案例位于產(chǎn)品資料“4-軟件資料Demoplatform-demos”,具體說明如下。

關(guān)于RKNN-Toolkit2環(huán)境搭建、模型轉(zhuǎn)換使用說明、混合量化、精度問題排查的詳細(xì)介紹,可查看yolov5_object_detect案例"toolrknn-toolkit2doc"目錄下的"02_Rockchip_RKNPU_User_Guide_RKNN_SDK_V2.0.0beta0_CN.pdf"文檔。
關(guān)于RKNN-Toolkit2模型轉(zhuǎn)換API接口說明,可查看yolov5_object_detect案例"toolrknn-toolkit2doc"目錄下的"02_Rockchip_RKNPU_User_Guide_RKNN_SDK_V2.0.0beta0_CN.pdf"文檔。
關(guān)于RKNN API的詳細(xì)使用說明,可查看yolov5_object_detect案例"toolrknn-toolkit2doc"目錄下的"04_Rockchip_RKNPU_API_Reference_RKNNRT_V2.0.0beta0_CN.pdf"文檔。
評估板簡介
創(chuàng)龍科技 TL3562-MiniEVM 是一款基于瑞芯微 RK3562J/RK3562 處理器設(shè)計的四核 ARM Cortex-A53 + 單核 ARM Cortex-M0 國產(chǎn)工業(yè)評估板,主頻高達 2.0GHz。評估板由核心板和評估底板組成,核心板 CPU、ROM、RAM、電源、晶振等所有元器件均采用國產(chǎn)工業(yè)級方案,國產(chǎn)化率 100%,評估底板大部分元器件亦采用國產(chǎn)工業(yè)級方案,國產(chǎn)化率約 99%(按元器件數(shù)量占比,數(shù)據(jù)僅供參考)。核心板經(jīng)過專業(yè)的 PCB Layout 和高低溫測試驗證,支持選配屏蔽罩,質(zhì)量穩(wěn)定可靠,可滿足各種工業(yè)應(yīng)用環(huán)境要求。
評估板引出 2 路 Ethernet、2 路 USB、Micro SD、UART 等通信接口,同時引出 2 路 M IPI CSI、LVDS LCD、MIPI LCD、HDMI OUT、MIC IN、SPK OUT、HP OUT 多媒體接口,支
持 1080P@60fps H.264 視頻編碼、4K@30fps H.265 視頻解碼。
評估板體積小巧,尺寸為 85x130mm,可作為卡片式電腦使用,且便于產(chǎn)品集成,方便用戶快速進行產(chǎn)品方案評估與技術(shù)預(yù)研。

評估板硬件資源圖解 1

評估板硬件資源圖解 2
案例說明
本案例基于RKNN API實現(xiàn)對圖片中目標(biāo)對象的識別,并將識別結(jié)果以加水印的方式添加至圖像,并保存成圖片文件。案例循環(huán)測試10次,統(tǒng)計出推理的平均處理耗時。
備注:本案例基于瑞芯微官方例程實現(xiàn),進行了目錄的重構(gòu)及編譯的簡化,功能邏輯未進行修改。
程序處理流程圖如下:

圖 2
案例測試
請通過網(wǎng)線將評估板千兆網(wǎng)口ETH0 RGMII連接至路由器。

圖 3
請將案例bin目錄下的所有文件拷貝至評估板文件系統(tǒng)任意目錄下。

圖 4
在可執(zhí)行文件所在目錄,執(zhí)行如下命令,對圖片目標(biāo)對象進行模型推理。
備注:模型運行的時間會有抖動。
Target# ./yolov5_object_detect yolov5s-640-640_rk3562.rknn car.jpg

圖 5
從輸出信息可知,本案例程序識別出測試圖片包含person、car、bus、truck等對象,運行1次模型耗時為73.843000ms;循環(huán)運行10次模型平均耗時為47.365303ms。
案例程序?qū)y試圖片的目標(biāo)對象標(biāo)記成功后將輸出名稱為out.jpg的標(biāo)記圖片至當(dāng)前目錄,請將out.jpg文件拷貝至Windows下,并使用PC端相關(guān)軟件對比查看car.jpg與out.jpg,測試結(jié)果如下所示。

圖 6

圖 7 car.jpg

圖 8 out.jpg
從out.jpg圖片可知,案例程序能正確框選出人物、汽車等物體,同時顯示person、car文字標(biāo)簽和置信度,標(biāo)記對象的數(shù)量及信息等與程序打印信息一致。
本程序能夠支持識別的目標(biāo)數(shù)據(jù)集類型說明位于bin目錄下的coco_80_labels_list.txt文件,用戶可根據(jù)相關(guān)目標(biāo)類型進行測試驗證。

圖 9
案例編譯
將案例src源碼目錄拷貝至Ubuntu工作目錄下,請先確保已參考《Ubuntu系統(tǒng)使用手冊》文檔安裝LinuxSDK。進入源碼目錄,執(zhí)行如下命令配置環(huán)境變量,并修改CMake配置文件CMakeLists.txt,請根據(jù)實際情況修改為LinuxSDK源碼路徑。
Host# source /home/tronlong/RK3562/Ubuntu/rk3562-ubuntu20.04-sdk-v1.0/environment
Host# vim CMakeLists.txt

圖 10

圖 11
新建一個build目錄,用于存放編譯過程產(chǎn)生的相關(guān)文件。
Host# mkdir-p build

圖 12
進入build目錄,執(zhí)行如下命令進行案例編譯,編譯完成將會在build目錄下生成編譯過程產(chǎn)生的相關(guān)文件,并在src目錄下生成install目錄,該目錄下存放案例相關(guān)文件。
Host# cd build
Host# cmake ../
Host# make -j8
Host# make install

圖 13

圖 14
build目錄存放編譯過程產(chǎn)生的相關(guān)文件,install目錄存放案例相關(guān)文件,包括測試圖片car.jpg、類別數(shù)據(jù)集coco_80_labels_list.txt、RKNN模型yolov5s-640-640_rk3562.rknn和可執(zhí)行程序yolov5_object_detect等文件,如下圖所示。

圖 15
關(guān)鍵代碼
(1) 加載圖片RGB數(shù)據(jù)。

圖 16
(2) 加載模型并初始化RKNN。

圖 17
(3) 前處理,對圖像進行縮放和裁剪以適配模型輸入。

圖 18
(4) 設(shè)置模型運行輸入輸出參數(shù),NPU運行模型,獲取模型輸出,統(tǒng)計運行耗時。

圖 19
(5) 進行后處理,得到目標(biāo)識別結(jié)果。

圖20
(6) 使用目標(biāo)識別結(jié)果給圖片添加水印,并保存為圖片文件。

圖 21
(7) 重復(fù)運行10次模型并統(tǒng)計平均耗時。

圖 22
審核編輯 黃宇
-
瑞芯微
+關(guān)注
關(guān)注
25文章
531瀏覽量
52167 -
NPU
+關(guān)注
關(guān)注
2文章
319瀏覽量
19492 -
RK3562
+關(guān)注
關(guān)注
0文章
59瀏覽量
298
發(fā)布評論請先 登錄
新品發(fā)布 ▏國產(chǎn)工業(yè)級核心+1TOPS算力,瑞芯微RK3562_Mini開發(fā)板打造靈活工業(yè)解決方案

國產(chǎn)!瑞芯微RK3506 3核ARM+Cortex-A7 + ARM Cortex-M0 工業(yè)評估板說明書

基于瑞芯微RK3576國產(chǎn)ARM八核2.2GHz A72 工業(yè)評估板——Docker容器部署方法說明

基于瑞芯微RK3562 四核 ARM Cortex-A53 + 單核 ARM Cortex-M0工業(yè)評估板——Linux應(yīng)用開發(fā)手冊

瑞芯微RK3576,8核2.2GHz+6T算力NPU工業(yè)評估板規(guī)格書

國產(chǎn)!瑞芯微3576-Mini(8核2.2GHz)工業(yè)評估板規(guī)格書

瑞芯微RK3576,8核2.2GHz+6T算力NPU工業(yè)核心板說明書

瑞芯微RK3506(3核ARM+Cortex-A7 + ARM Cortex-M0)工業(yè)核心板選型資料

瑞芯微米爾RK3562國產(chǎn)核心板,ARM中量級多面手
國產(chǎn)!瑞芯微RK3576(八核@2.2GHz+6T NPU)工業(yè)核心板規(guī)格書
國產(chǎn)!瑞芯微RK3576(八核@2.2GHz+6T NPU)工業(yè)開發(fā)板規(guī)格書
新一代低價開發(fā)板芯片RK3562來啦! — 觸覺智能RK3562開發(fā)板

評論