前 言
本文是創龍科技推出的 RK3562 單板機 NPU 開發手冊,聚焦神經網絡處理器的 AI 模型部署與實戰應用。文檔基于 RKNN 推理框架,詳細介紹 NPU 開發流程,含模型轉換、應用開發及 yolov5_object_detect 目標檢測案例。創龍科技通過清晰的環境配置、案例測試與關鍵代碼解析,助力開發者快速掌握 INT4/INT8 等量化模型部署技能,充分發揮 RK3562 單板機 1TOPS 算力優勢,適配智能識別、邊緣計算等嵌入式 AI 場景。
開發環境
Windows開發環境:Windows7 64bit、Windows10 64bit、
Linux開發環境:VMware16.2.5、Ubuntu20.04.6 64bit
sysroot:rk3562-Tronlong-Desktop-20.04-sysroot-[版本號].tar.gz
系統版本:Tronlong-Desktop20.04(類Ubuntu)、Linux-5.10.209、U-Boot-2017.09
備注:本文基于2GByte LPDDR4X、16GByte eMMC配置單板機進行演示。
術語表
為便于閱讀,下表對文檔出現的關鍵術語進行解釋;對于廣泛認同釋義的術語,在此不做注釋。

注意事項
(1)無特殊說明情況下,本文默認從eMMC啟動系統,使用DEBUG作為調試串口。
(2)請先參考《應用開發手冊》“開發環境搭建說明”章節完成應用開發環境搭建,并參考《系統使用手冊》附錄“系統組件安裝說明”安裝OpenCV。
(3)我司提供的NPU開發案例位于產品資料“4-軟件資料Demoplatform-demos”目錄,具體說明如下。

1NPU開發說明
NPU(Neural network Processing Unit),即神經網絡處理器。RK3562內部已集成高能效神經網絡處理器NPU,支持神經網絡推理硬件加速,能夠流暢運行AI算法。主要參數如下:
(1)支持INT4/INT8/INT16/FP16等;
(2)支持多種框架,如TensorFlow、MXNet、PyTorch、Caffe等;
(3)1TOPS算力。
備注:更多詳細信息請查看“6-開發參考資料數據手冊SBC-TL3562單板機元器件”目錄下的文檔。
為簡化開發者在AI模型部署與優化過程中的工作量,瑞芯微官方提供了核心開發工具包RKNN-Toolkit2。工具包針對不同類型的AI模型和應用場景,提供了從模型轉換、量化到推理部署的一站式解決方案。
RKNN-Toolkit2是瑞芯微官方推出的用于模型轉換、量化、推理和性能評估的開發工具包,支持將預訓練的深度學習模型轉換為瑞芯微NPU(神經網絡處理單元)專用的RKNN格式,并在其芯片平臺上高效部署。
開發流程如下:
a)模型訓練:用戶根據需求自行訓練模型或使用官方提供的模型;
b)模型轉換:使用RKNN-Toolkit2將預訓練模型轉換為RK3562 NPU可使用的RKNN模型;
c)應用開發:基于RKNN API開發應用程序。
圖 1NPU開發流程圖
關于RKNN-Toolkit2環境搭建、模型轉換使用說明、混合量化、精度問題排查的詳細介紹,可查看yolov5_object_detect案例"toolsrknn-toolkit2.tar.gz"壓縮包的"rknn-toolkit2doc?2_Rockchip_RKNPU_User_Guide_RKNN_SDK_V2.0.0beta0_CN.pdf"文檔。
關于RKNN-Toolkit2模型轉換API接口說明,可查看yolov5_object_detect案例"toolsrknn-toolkit2.tar.gz"壓縮包的"rknn-toolkit2doc?2_Rockchip_RKNPU_User_Guide_RKNN_SDK_V2.0.0beta0_CN.pdf"文檔。
關于RKNN API的詳細使用說明,可查看yolov5_object_detect案例"toolsrknn-toolkit2.tar.gz"壓縮包的"toolrknn-toolkit2doc?4_Rockchip_RKNPU_API_Reference_RKNNRT_V2.0.0beta0_CN.pdf"文檔。
2yolov5_object_detect案例
2.1案例說明
本案例基于RKNN API實現對圖片中目標對象的識別,并將識別結果以加水印的方式添加至圖像,并保存為圖片文件。案例循環測試10次,統計出推理的平均處理耗時。
備注:本案例基于瑞芯微官方例程實現,進行了目錄的重構及編譯的簡化,功能邏輯未進行修改。官方例程位于LinuxSDK源碼"external/rknpu2/examples/rknn_yolov5_demo/"目錄下。
圖 2
程序處理流程圖如下:
圖 3
2.2案例測試
在進行案例測試前,請先參考《系統使用手冊》中的“系統組件安裝說明”章節,完成OpenCV組件的安裝。
請通過網線將單板機千兆網口LAN1連接至路由器。請將案例bin目錄下的所有文件拷貝至單板機系統任意目錄下。
圖 4
在可執行文件所在目錄,執行如下命令,對圖片目標對象進行模型推理。
備注:模型運行的時間會有抖動。
Target# ./yolov5_object_detect yolov5s-640-640_rk3562.rknn car.jpg
圖 5
從輸出信息可知,本案例程序識別出測試圖片包含person、car、bus、truck等對象,運行1次模型耗時為76.223000ms;循環運行10次模型平均耗時為52.386902ms。
案例程序對測試圖片的目標對象標記成功后將輸出名稱為out.jpg的標記圖片至當前目錄,請將out.jpg文件拷貝至Windows下,并使用PC端相關軟件對比查看car.jpg與out.jpg,測試結果如下所示。
圖 6
從out.jpg圖片可知,案例程序能正確框選出人物、汽車等物體,同時顯示person、car等文字標簽和置信度,標記對象的數量及信息等與程序打印信息一致。
本程序能夠支持識別的目標數據集類型說明位于案例bin目錄下的coco_80_labels_list.txt文件,用戶可根據相關目標類型進行測試驗證。
圖 7
2.3案例編譯
將案例src源碼目錄拷貝至Ubuntu工作目錄下,進入源碼目錄,執行如下命令配置環境變量,并修改CMake配置文件CMakeLists.txt,請根據實際情況修改為sysroot解壓路徑。
Host# source /home/tronlong/RK3562/environment
Host# vim CMakeLists.txt
圖 8
修改內容如下:
set(SDK_ROOT_PATH "/home/tronlong/RK3562")
圖9
執行如下命令,新建一個build目錄,用于存放編譯過程產生的相關文件,并進入build目錄。
Host# mkdir-pbuild
Host# cd build
圖 10
執行如下命令進行案例編譯,編譯完成將會在build目錄下生成編譯過程產生的相關文件。
Host# cmake ../
Host# make -j8
Host# make install
圖 11
build目錄存放編譯過程產生的相關文件,src目錄存放案例相關文件,包括測試圖片car.jpg、類別數據集coco_80_labels_list.txt、RKNN模型yolov5s-640-640_rk3562.rknn和可執行程序yolov5_object_detect等文件,如下圖所示。
圖 12
由于篇幅過長等原因,部分內容均不逐一展示,如需獲取完整版詳細資料,請關注Tronlong創龍科技微信公眾號或官網,或者評論區留言,感謝您的支持!
-
神經網絡
+關注
關注
42文章
4839瀏覽量
107981 -
源碼
+關注
關注
8文章
687瀏覽量
31384 -
單板機
+關注
關注
1文章
43瀏覽量
18893 -
NPU
+關注
關注
2文章
379瀏覽量
21200
發布評論請先 登錄
RK3562 單板機多媒體開發完全手冊:視頻輸入輸出與 GStreamer 案例詳解(二)
RK3562 單板機圖形用戶界面開發完全手冊:Qt Creator 配置與 LVGL 案例詳解(二)
RK3562 單板機圖形用戶界面開發完全手冊:Qt Creator 配置與 LVGL 案例詳解(一)
RK3562 單板機 Linux 應用開發實戰手冊:LED/CAN/TCP/UART 案例與 Python 開發(二)
RK3562 單板機 Linux-RT 系統開發指南:內核配置、實時性優化與案例詳解
RK3562 單板機系統開發完全手冊:U-Boot/Kernel/Rootfs 開發與性能優化
3562 單板機 Linux 系統固化完全指南:從 SD 卡啟動到 eMMC 永久部署
RK3562單板機系統使用與開發手冊:基礎操作、升級部署與工具鏈配置(一)
瑞芯微RK3562核心板的性能和應用
NPU性能深度評測:瑞芯微RK3588、RK3576、RK3568、RK3562
RK3562 單板機神經網絡開發指南:NPU 推理框架與目標檢測實戰
評論