0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

电子发烧友论坛 2025-06-24 08:04 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

原文地址: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),谢谢!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 测试
    +关注

    关注

    8

    文章

    6031

    浏览量

    130723
  • AI
    AI
    +关注

    关注

    89

    文章

    38120

    浏览量

    296665
  • 开发板
    +关注

    关注

    25

    文章

    6125

    浏览量

    113371
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【新品体验】Omni3576边缘计算套件免费试用

    Core3576 核心为边缘计算提供强大的算力,搭载八核64位CPU、ARM Mali-G52 MC3 GPU,并集成6 TOPS算力的NPU,具备强大的计算和图形处理能力。
    发表于 01-21 14:51

    Omni3576边缘计算套件试用体验】开箱与系统安装

    RKDevTool并进入刷机状态,具体参考官方教程。 导入下载后的固件,因为计划安装在emmc上,所以选择了emmc版本的固件。 烧写完成后重启Omni3576开发板即可,不要像教程一样再通过
    发表于 03-03 22:47

    Omni3576边缘计算套件试用体验】Debian系统安装和性能测试

    首先感谢电子发烧友组织本次试用活动,感谢提供的Omni3576开发板。 一、开箱 1.1 包装和外观 这次的Omni3576板子比想象中
    发表于 03-06 22:05

    Omni3576边缘计算套件试用体验】开发板基础体验:大模型和推流测试

    一. 前言 首先感谢发烧友的试用活动,让我有机会把玩这款最新的OmniRK3576开发板,这里还非常感谢@开罗大佬帮忙协调高配置带外壳的版本,对于这样经典的板子,花点钱搞个高配的还
    发表于 03-08 11:38

    Omni3576边缘计算套件试用体验】介绍、开箱

    Omni3576 边缘计算套件测评 Luckfox Omni3576 主控采用 Rockchip RK3576 处理器,该处理器采用
    发表于 03-15 16:40

    Omni3576边缘计算套件试用体验】系统连接测试

    ifconfig 查询设备 ip 地址 总结 本文介绍了 Omni3576 边缘计算套件上电测试与系统连接测试,包括串口连接、SSH
    发表于 03-16 14:27

    Omni3576边缘计算套件试用体验】资源传输与 Home Assistant 连接

    Omni3576 边缘计算套件测评】资源传输与 Home Assistant 连接 本文介绍了
    发表于 03-18 16:47

    Omni3576边缘计算套件试用体验】RKNN 推理测试与图像识别

    Omni3576 边缘计算套件测评】RKNN 推理测试与图像识别 本文介绍了
    发表于 03-20 16:14

    Omni3576边缘计算套件试用体验】DeepSeek 部署及测试

    和人性化等特点。 长时间运行 DeepSeek 程序,开发板未见明显发热,内存占用小,且处理速度快,取得了令人满意的测试效果。 总结 本文介绍了
    发表于 03-21 19:31

    Omni3576边缘计算套件试用体验】车牌识别

    模型样本数量、提高识别分辨率、更新算法模型、扩充迭代次数等。 ​ ​ 总结 本文介绍了 Omni3576 边缘计算套件实现车牌识别的项目设计和部署方案,包括模型介绍、推理
    发表于 04-01 02:45

    Omni3576边缘计算套件试用体验】人脸识别

    Omni3576 边缘计算套件实现人脸特征识别的项目设计和部署方案,包括算法介绍、推理测试端部署、程序运行和效果展示等,并分析了结果和误差产生原因,给出了相应的解决方案,为智能识
    发表于 04-01 21:46

    Omni3576边缘计算套件试用体验】测试USB 摄像头

    Omni3576开发板上,可以通过dmesg查看系统认出了摄像头。 [709.147600] usb 1-1.1: new high-speed USB device number 6 using
    发表于 04-09 23:50

    Omni3576边缘计算套件试用体验】移植libmodbus库到Omni3576开发板

    ,找到UART2的针脚即可。在Omni3576开发板的硬件手册中找到。 UART2默认波特率是9600,强迫症改成115200方便后续测试。 stty -F /dev/ttyS2
    发表于 05-19 22:48

    Omni3576边缘计算套件试用体验】Omni3576开发板移植YOLOV10推理测试

    运行 将可执行文件、RKNN库以及labels_list文件还有测试jpg文件传输到Omni3576开发板测试的图片如下: 执行./rknn_y
    发表于 05-24 12:27

    Omni3576边缘计算套件开箱与系统体验

    一、开箱 收到快递后,一个白色的盒子,侧面标识Luckfox-Omni3576,其后的04032代表4G RAM和32G emmc。   打开盒子,本体显示,非常漂亮的开发板,采用核心和底板分离式
    的头像 发表于 03-05 17:03 1178次阅读
    <b class='flag-5'>幸</b><b class='flag-5'>狐</b><b class='flag-5'>Omni3576</b>边缘计算套件开箱与系统体验