原文地址: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文章
6031浏览量
130723 -
AI
+关注
关注
89文章
38120浏览量
296665 -
开发板
+关注
关注
25文章
6125浏览量
113371
发布评论请先 登录
【新品体验】幸狐Omni3576边缘计算套件免费试用
【幸狐Omni3576边缘计算套件试用体验】开箱与系统安装
【幸狐Omni3576边缘计算套件试用体验】Debian系统安装和性能测试
【幸狐Omni3576边缘计算套件试用体验】开发板基础体验:大模型和推流测试
【幸狐Omni3576边缘计算套件试用体验】介绍、开箱
【幸狐Omni3576边缘计算套件试用体验】系统连接测试
【幸狐Omni3576边缘计算套件试用体验】资源传输与 Home Assistant 连接
【幸狐Omni3576边缘计算套件试用体验】DeepSeek 部署及测试
【幸狐Omni3576边缘计算套件试用体验】车牌识别
【幸狐Omni3576边缘计算套件试用体验】人脸识别
【幸狐Omni3576边缘计算套件试用体验】测试USB 摄像头
【幸狐Omni3576边缘计算套件试用体验】移植libmodbus库到Omni3576开发板
【幸狐Omni3576边缘计算套件试用体验】幸狐Omni3576开发板移植YOLOV10和推理测试
幸狐Omni3576边缘计算套件开箱与系统体验

幸狐Omni3576开发板移植YOLOV10和推理测试
评论