全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

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

时间:2025-06-24 08:04

人气:

作者:admin

标签: 测试  AI  开发板 

导读:因为Omni3576搭载了RockchipRK3576处理器,该处理器采用先进的8nm制程工艺,集成了6TOPS算力的NPU。NPU跟RK3588一致,所以这款Omni3576必须试试AI相关功能。一、RKNN简介RKNN-Toolkit2工具在PC平台上提...

原文地址: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 芯片。整体的框架如下:
d818ef9e-508e-11f0-986f-92fbcf53809c.jpg

为了使用 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个坑,终于完成全部依赖安装:
d824b964-508e-11f0-986f-92fbcf53809c.jpg

查看下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:
d8300cba-508e-11f0-986f-92fbcf53809c.jpg

三、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

d83aa648-508e-11f0-986f-92fbcf53809c.jpg

(三)模型转换

RKNN 模型转换是将通用深度学习模型(如 TensorFlow、PyTorch、ONNX 等)转换为 Rockchip 芯片(如 RK3568、RK3588 等)专用推理格式的过程。执行如下命令将ONNX模型转换成RKNN模型。

python3 convert.py ../model/yolov10n.onnx rk3576

d843d952-508e-11f0-986f-92fbcf53809c.jpg
默认转换好的模型放在../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 脚本,生成可执行程序。
d854f624-508e-11f0-986f-92fbcf53809c.jpg

交叉编译完成后在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开发板。
测试的图片如下:
d86033c2-508e-11f0-986f-92fbcf53809c.jpg

执行./rknn_yolov10_demo yolov10.rknn bus.jpg命令,相关信息都打印出来了。
d86e80b2-508e-11f0-986f-92fbcf53809c.jpg

最后,生成的out文件如下:
d87bd6f4-508e-11f0-986f-92fbcf53809c.png

一点感受:RKNN SDK工具还是很丰富,应用部署起来比较简单快捷,第一次使用总体感觉不错。


d8ad4298-508e-11f0-986f-92fbcf53809c.png

d8b48256-508e-11f0-986f-92fbcf53809c.png

声明:本文由电子发烧友社区发布,转载请注明以上来源。如需平台(包括:试用+专栏+企业号+学院+技术直播+共建社区)合作及入群交流,请咨询18925255684(微信同号:elecfans123),谢谢!

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信