RKNN SDK 快速上手指南
開發(fā)板:ArmSoM-W3,ArmSoM-Sige7,ArmSoM-Sige5,ArmSoM-AIM7
OS:Debian11/12
目的:本文介紹如何使用rk的npu sdk。
作為瑞芯微8nm高性能AIOT平臺,RK3576/RK3588 NPU性能可謂十分強大,6TOPS設計能夠實現(xiàn)高效的神經網絡推理計算。這使得RK3576/RK3588在圖像識別、語音識別、自然語言處理等人工智能領域有著極高的性能表現(xiàn)。
此外,RK3576/RK3588 的NPU還支持多種學習框架,包括TensorFlow,Pytorch、Caffe、MXNet等在人工智能開發(fā)中流行的深度學習框架,能夠為開發(fā)者提供豐富的工具和庫,使他們能夠方便地進行模型訓練和推理,可輕松應對各種大數據運算場景。??
rk3576 npu
RK3576/RK3588 NPU典型應用?
計算機視覺(Computer Vision):NPU可用于圖像識別、目標檢測、人臉識別等任務。在安防監(jiān)控、自動駕駛、醫(yī)療影像分析等領域中有著廣泛的應用。
自然語言處理(Natural Language Processing,NLP):NPU可加速文本分類、情感分析、機器翻譯等任務,使得處理大規(guī)模文本數據變得更高效。
語音識別與處理(Speech Recognition and Processing):在語音識別、語音合成等方面,NPU可以提高處理速度和準確性,應用于智能語音助手、語音交互系統(tǒng)等場景。
智能家居與物聯(lián)網(IoT):NPU的低功耗特性使其適用于智能家居設備、智能監(jiān)控攝像頭、智能穿戴設備等物聯(lián)網應用,從而實現(xiàn)設備的智能化和自動化。
醫(yī)療健康:在醫(yī)學影像分析、疾病診斷、基因組學等領域,NPU可以加速大規(guī)模數據的處理和分析,幫助醫(yī)療工作者更準確地診斷疾病和制定治療方案。
智能交通:在智能交通系統(tǒng)中,NPU可用于車輛識別、交通流量監(jiān)控、智能交通信號燈控制等任務,提升交通系統(tǒng)的效率和安全性。
Rockchip NPU SDK?
rockchip的npu sdk分為兩個部分,PC端使用的是rknn-toolkit2,可以在PC端進行模型轉換,推理以及性能評估。具體來說是把主流的模型如Caffe、TensorFlow、TensorFlow Lite、ONNX、DarkNet、PyTorch 等轉換為RKNN模型,并可以在PC端使用這個RKNN模型進行推理仿真,計算時間和內存開銷。板端還有一部分,就是rknn runtime環(huán)境,包含一組C API庫以及與NPU進行通信的驅動模塊,可執(zhí)行程序等。
RKNN軟件棧可以幫助用戶快速將AI模型部署到瑞芯微芯片上。整體框架如下:
為了使用 RKNPU,用戶需要首先在計算機上運行 RKNN-Toolkit2 工具,將訓練好的模型轉換為 RKNN 格式的模型,然后使用 RKNN C API 或 Python API 在開發(fā)板上進行推理。
RKNN-Toolkit2是一款軟件開發(fā)套件,供用戶在PC和瑞芯微NPU平臺上進行模型轉換、推理和性能評估。
RKNN-Toolkit-Lite2為瑞芯微NPU平臺提供Python編程接口,幫助用戶部署RKNN模型,加速AI應用落地。
RKNN Runtime為Rockchip NPU平臺提供C/C++編程接口,幫助用戶部署RKNN模型,加速AI應用的落地。
RKNPU內核驅動負責與NPU硬件交互。它已經開源,可以在Rockchip內核代碼中找到。
提示
RKNPU2 SDK v2.0.0-beta (for RK3576/RK3562/RK3566/RK3568/RK3588/RV1103/RV1106) https://github.com/airockchip/rknn-toolkit2
Model zoo: https://github.com/airockchip/rknn_model_zoo
docs: https://github.com/airockchip/rknn-toolkit2/tree/master/doc
RK3576/RK3588 NPU使用案例分享?
導出rknn模型步驟
請參考 https://github.com/airockchip/rknn_model_zoo/tree/main/models/CV/object_detection/yolo
注意事項?
使用rknn-toolkit2版本大于等于1.4.0。
切換成自己訓練的模型時,請注意對齊anchor等后處理參數,否則會導致后處理解析出錯。
官網和rk預訓練模型都是檢測80類的目標,如果自己訓練的模型,需要更改include/postprocess.h中的OBJ_CLASS_NUM以及NMS_THRESH,BOX_THRESH后處理參數。
demo需要librga.so的支持,編譯使用請參考 https://github.com/airockchip/librga
由于硬件限制,該demo的模型默認把 yolov5 模型的后處理部分,移至cpu實現(xiàn)。本demo附帶的模型均使用relu為激活函數,相比silu激活函數精度略微下降,性能大幅上升。
Android Demo?
編譯?
首先導入ANDROID_NDK_PATH,例如export ANDROID_NDK_PATH=~/opts/ndk/android-ndk-r18b,然后執(zhí)行如下命令:
./build-android.sh -t -a [-b ]# 例如: ./build-android.sh -t rk3568 -a arm64-v8a -b Release
推送執(zhí)行文件到板子?
連接板子的usb口到PC,將整個demo目錄到 /data:
adb rootadb remountadb push install/rknn_yolov5_demo /data/
運行?
adb shellcd /data/rknn_yolov5_demo/export LD_LIBRARY_PATH=./lib./rknn_yolov5_demo model//yolov5s-640-640.rknn model/bus.jpg
Aarch64 Linux Demo?
編譯?
首先導入GCC_COMPILER,例如export GCC_COMPILER=~/opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu ,然后執(zhí)行如下命令:
./build-linux.sh -t -a -b ]# 例如: ./build-linux.sh -t rk3588 -a aarch64 -b Release
推送執(zhí)行文件到板子?
將 install/rknn_yolov5_demo_Linux 拷貝到板子的/userdata/目錄.
如果使用rockchip的EVB板子,可以使用adb將文件推到板子上:
adb push install/rknn_yolov5_demo_Linux /userdata/
如果使用其他板子,可以使用scp等方式將install/rknn_yolov5_demo_Linux拷貝到板子的/userdata/目錄
運行?
adb shellcd /userdata/rknn_yolov5_demo_Linux/export LD_LIBRARY_PATH=./lib./rknn_yolov5_demo model//yolov5s-640-640.rknn model/bus.jpg
Note: Try searching the location of librga.so and add it to LD_LIBRARY_PATH if the librga.so is not found on the lib folder. Using the following commands to add to LD_LIBRARY_PATH.
export LD_LIBRARY_PATH=./lib:
視頻流Demo運行命令參考如下:?
h264視頻
./rknn_yolov5_video_demo model//yolov5s-640-640.rknn xxx.h264 264
注意需要使用h264碼流視頻,可以使用如下命令轉換得到:
ffmpeg -i xxx.mp4 -vcodec h264 xxx.h264
h265視頻
./rknn_yolov5_video_demo model//yolov5s-640-640.rknn xxx.hevc 265
注意需要使用h265碼流視頻,可以使用如下命令轉換得到:
ffmpeg -i xxx.mp4 -vcodec hevc xxx.hevc
rtsp視頻流
./rknn_yolov5_video_demo model//yolov5s-640-640.rknn 265
注意?
需要根據系統(tǒng)的rga驅動選擇正確的librga庫,具體依賴請參考: https://github.com/airockchip/librga
rk3562 目前僅支持h264視頻流
rtsp 視頻流Demo僅在Linux系統(tǒng)上支持,Android上目前還不支持
視頻流輸入的h264名稱不能為"out.h264",會被覆蓋
演示視頻?
https://www.bilibili.com/video/BV1jt421M7Pj/
審核編輯 黃宇
-
開發(fā)板
+關注
關注
25文章
4704瀏覽量
95783 -
NPU
+關注
關注
2文章
246瀏覽量
18315 -
rk3576
+關注
關注
1文章
20瀏覽量
65
發(fā)布評論請先 登錄
相關推薦
評論