原文地址:https://bbs.elecfans.com/jishu_2489772_1_1.html?
作者:@大菠蘿Alpha
因為Omni3576搭載了Rockchip RK3576處理器,該處理器采用先進的8nm制程工藝,集成了6 TOPS算力的 NPU。NPU跟RK3588一致,所以這款Omni3576必須試試AI相關功能。
一、RKNN簡介
RKNN-Toolkit2工具在 PC 平臺上提供 C 或 Python 接口,簡化模型的部署和運行。用戶可以通過該工具輕松完成以下功能:模型轉換、量化、推理、性能和內存評估、量化精度分析以及模型加密。RKNN 軟件棧可以幫助用戶快速地將 AI 模型部署到 Rockchip 芯片。整體的框架如下:
為了使用 RKNPU,首先需要在計算機(最新的Kit支持X86和ARM,也就是說基本上可以在Omni3576部署RKNN-Toolkit2工具)上運行 RKNN-Toolkit2工具,將訓練好的模型轉換為 RKNN 格式模型,之后使用 RKNN C API或 Python API在開發板上進行部署。
二、RKNN-Toolkit2工具部署
本人在WSL(Ubuntu22.04 x64)上部署RKNN-Toolkit2工具,其內置python版本為3.12,因為版本新,踏了好幾個坑。
Python 3.12.3 (main, Feb 4 2025, 14:48:35) [GCC 13.3.0] on linuxType "help", "copyright", "credits" or "license" for more information.
(一)下載
下述命令從github下載rknn-toolkit2,大約8G。
git clone https://github.com/airockchip/rknn-toolkit2.git
(二)安裝依賴包
pip3 install -r rknn-toolkit2/packages/x86_64/requirements_cp312-2.2.0.txt --break-system-packages -i https://mirrors.aliyun.com/pypi/simple/
坑1:因為 Python 3.11+ 引入了外部管理環境 (externally-managed environment) 的概念,用于阻止用戶直接在系統 Python 環境中安裝第三方包。解決這個問題的方式很多種,本文直接采用了一種比較暴力的方式--break-system-packages;
坑2:新的rknn-toolkit2工具包增加了對ARM64的支持,所以在packages/目錄下增加了2個文件夾,一個arm64,一個x86_64,在安裝依賴的時候記得加上文件夾,否則找不到依賴文件的txt。
跳過了2個坑,終于完成全部依賴安裝:
查看下pip的包:
root@Think:~$ pip listPackage Version------------------------ -------------attrs 23.2.0Automat 22.10.0Babel 2.10.3bcrypt 3.2.2blinker 1.7.0certifi 2023.11.17chardet 5.2.0click 8.1.6cloud-init 24.4.1colorama 0.4.6coloredlogs 15.0.1command-not-found 0.3configobj 5.0.8constantly 23.10.4cryptography 41.0.7dbus-python 1.3.2distro 1.9.0distro-info 1.7+build1fast-histogram 0.14filelock 3.18.0flatbuffers 25.2.10fsspec 2025.5.0httplib2 0.20.4humanfriendly 10.0hyperlink 21.0.0idna 3.6incremental 22.10.0Jinja2 3.1.2jsonpatch 1.32jsonpointer 2.0jsonschema 4.10.3launchpadlib 1.11.0lazr.restfulclient 0.14.6lazr.uri 1.0.6markdown-it-py 3.0.0MarkupSafe 2.1.5mdurl 0.1.2mpmath 1.3.0netifaces 0.11.0networkx 3.4.2numpy 1.26.4nvidia-cublas-cu12 12.1.3.1nvidia-cuda-cupti-cu12 12.1.105nvidia-cuda-nvrtc-cu12 12.1.105nvidia-cuda-runtime-cu12 12.1.105nvidia-cudnn-cu12 9.1.0.70nvidia-cufft-cu12 11.0.2.54nvidia-curand-cu12 10.3.2.106nvidia-cusolver-cu12 11.4.5.107nvidia-cusparse-cu12 12.1.0.106nvidia-nccl-cu12 2.20.5nvidia-nvjitlink-cu12 12.9.41nvidia-nvtx-cu12 12.1.105oauthlib 3.2.2onnx 1.18.0onnxruntime 1.22.0opencv-python 4.11.0.86packaging 25.0pip 24.0protobuf 4.25.4psutil 7.0.0pyasn1 0.4.8pyasn1-modules 0.2.8pycurl 7.45.3Pygments 2.17.2PyGObject 3.48.2PyHamcrest 2.1.0PyJWT 2.7.0pyOpenSSL 23.2.0pyparsing 3.1.1pyrsistent 0.20.0pyserial 3.5python-apt 2.7.7+ubuntu4pytz 2024.1PyYAML 6.0.1requests 2.31.0rich 13.7.1rknn-toolkit2 2.3.2ruamel.yaml 0.18.10ruamel.yaml.clib 0.2.12scipy 1.15.3service-identity 24.1.0setuptools 68.1.2six 1.16.0sympy 1.14.0systemd-python 235torch 2.4.0tqdm 4.67.1triton 3.0.0Twisted 24.3.0typing_extensions 4.10.0ubuntu-pro-client 8001unattended-upgrades 0.1urllib3 2.0.7wadllib 1.3.6wheel 0.42.0zope.interface 6.1
(三)安裝RKNN-ToolKit2
RKNN-ToolKit2的whl文件就在步驟(一)下載好了,執行如下命令:
pip3 install rknn-toolkit2/packages/x86_64/rknn_toolkit2-2.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl --break-system-packages
安裝好后會有如下提示:
Installing collected packages: rknn-toolkit2Successfully installed rknn-toolkit2-2.3.2
也可以py看看是否出錯,若無則OK:
三、rknn_model_zoo下載安裝
rknn_model_zoo是瑞芯微官方提供的 RKNPU 支持的各種主流算法的部署示例,最新的示例支持 mobilenet 模型部署和 yolo 模型部署,直接依托rknn_model_zoo部署 yolov10。
(一)下載ZOO
直接從github下載rknn_model_zoo,文件不大,幾百M。
git clone https://github.com/airockchip/rknn_model_zoo.git
(二)下載模型
執行如下命令下載ONNX模型用于轉換。
chmod a+x download_model.sh./download_model.sh
(三)模型轉換
RKNN 模型轉換是將通用深度學習模型(如 TensorFlow、PyTorch、ONNX 等)轉換為 Rockchip 芯片(如 RK3568、RK3588 等)專用推理格式的過程。執行如下命令將ONNX模型轉換成RKNN模型。
python3 convert.py ../model/yolov10n.onnx rk3576
默認轉換好的模型放在../model/下。
四、應用構建編譯
RKNN-Toolkit2工具包帶有CPP和python版本demo,先用cpp試試,雖然比較喜歡python。
(一)交叉環境
RK3576是ARM64框架,直接WSL中安裝對應的的編譯器。
sudo apt install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
安裝好了后再驗證下:
aarch64-linux-gnu-gcc --versionaarch64-linux-gnu-gcc (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0Copyright (C) 2023 Free Software Foundation, Inc.This is free software; see the source for copying conditions. There is NOwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
設置環境變量,用于下步應用編譯。
export GCC_COMPILER=/usr/bin/aarch64-linux-gnu
(二)應用編譯
執行 rknn_model_zoo 目錄下的 build-linux.sh 腳本,生成可執行程序。
交叉編譯完成后在rknn_model_zoo目錄下會生成一個install目錄,包含編譯出來的程序和庫文件,可以看看輸出文件:
file install/rk3576_linux_aarch64/rknn_yolov10_demo/rknn_yolov10_demoinstall/rk3576_linux_aarch64/rknn_yolov10_demo/rknn_yolov10_demo: ELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=79627693334711274cf7fc2df9172d87998830ef, for GNU/Linux 3.7.0, not stripped
五、測試運行
將可執行文件、RKNN庫以及labels_list文件還有測試jpg文件傳輸到Omni3576開發板。
測試的圖片如下:
執行./rknn_yolov10_demo yolov10.rknn bus.jpg命令,相關信息都打印出來了。
最后,生成的out文件如下:
一點感受:RKNN SDK工具還是很豐富,應用部署起來比較簡單快捷,第一次使用總體感覺不錯。
聲明:本文由電子發燒友社區發布,轉載請注明以上來源。如需平臺(包括:試用+專欄+企業號+學院+技術直播+共建社區)合作及入群交流,請咨詢18925255684(微信同號:elecfans123),謝謝!
-
測試
+關注
關注
8文章
5705瀏覽量
128845 -
AI
+關注
關注
88文章
35136瀏覽量
279708 -
開發板
+關注
關注
25文章
5680瀏覽量
104682
發布評論請先 登錄
【新品體驗】幸狐Omni3576邊緣計算套件免費試用
【幸狐Omni3576邊緣計算套件試用體驗】開箱與系統安裝
【幸狐Omni3576邊緣計算套件試用體驗】Debian系統安裝和性能測試
【幸狐Omni3576邊緣計算套件試用體驗】開發板基礎體驗:大模型和推流測試
【幸狐Omni3576邊緣計算套件試用體驗】介紹、開箱
【幸狐Omni3576邊緣計算套件試用體驗】系統連接測試
【幸狐Omni3576邊緣計算套件試用體驗】資源傳輸與 Home Assistant 連接
【幸狐Omni3576邊緣計算套件試用體驗】DeepSeek 部署及測試
【幸狐Omni3576邊緣計算套件試用體驗】車牌識別
【幸狐Omni3576邊緣計算套件試用體驗】人臉識別
【幸狐Omni3576邊緣計算套件試用體驗】測試USB 攝像頭
【幸狐Omni3576邊緣計算套件試用體驗】移植libmodbus庫到Omni3576開發板
【幸狐Omni3576邊緣計算套件試用體驗】幸狐Omni3576開發板移植YOLOV10和推理測試
幸狐Omni3576邊緣計算套件開箱與系統體驗

評論