)
声明没有自己数据集训练模型的部分后面会出所以前提是已经有训练好的模型权重文件。pt不过没有自己数据训练好的也没关系可以使用官方已经预训练好的权重文件。该文章的部署的流程就是环境准备—安装相关工具—模型转换—板端推理环境工具准备Linux环境配置一、配置conda环境为什么要用conda呢conda是一个封闭虚拟环境 像容器docker一样在里面安装包配置环境不会串台解决不同项目依赖打架、库版本冲突、Python 版本切换、非 Python 软件安装等1、下载anaconda通常配置conda要先安装anacondaanaconda自带 conda 几百个预装好科学计算库numpy、pandas、matplotlib 等因为conda 本身不是 Python 自带。Windows/WSL 原生没有不能直接敲conda命令 装 Anaconda 之后终端就有了conda命令可以做虚拟环境、切换 Python 版本。使用以下命令下载# 清华镜像下载速度快wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.shbash Miniconda3-latest-Linux-x86_64.sh协议看完输入yes安装路径直接回车默认initialize anaconda3 ?→yes安装完成关闭终端重新开一个终端2、验证conda版本我这里是用vscode远程SSH的服务器conda -V#注意V是大写的关机时自动base环境(可选)conda config --set auto_activate_base false3、创建conda环境创建用于边缘部署的conda的环境并激活环境conda create -n rknn3.8 python3.8 -y #创建conda activate rknn3.8 #激活二、下载依赖(可选)在刚刚创建的conda环境里安装依赖、包、开发工具提示符前面出现(rknn3.8)代表进入环境后续所有 pip 操作都要在此环境。pip install ultralytics8.3.0 # yolo的官方管理平台pip install onnxsim onnxruntime #后续模型转换ONNX会用到三、安装rknn-toolkit2工具rknn-toolkit2工具是瑞芯微提供的将模型转为rknn的工具该工具可以在官网下载压缩包传到Ubuntu上去也可以点击这个连接获取我的是rknn-toolkit2-2.3.2版本的1、安装 rknn-toolkit2 依赖库传到Ubuntu后进入到rknn-toolkit2-2.3.2/rknn-toolkit2/packages 文件夹下面打开终端执行以下命令激 活conda环境。conda activate rknn3.11终端命令行前面出现rknn3.11即进入前面新建的python3.11的conda环境成功在安装rknn-toolkit2 之前需要先安装相关依赖库执行以下命令之前需要先检查自己是 否进入到rknn-toolkit2/packages 文件夹了没有进入需要先进入packages文件夹。pip install-r x86_64/requirements_cp311-2.3.2.txt-i https://pypi.tuna.tsinghua.edu.cn/simple/这用的截图是官方文档的截图因为我已经安过了当出现如下所示Successfullyinstalled 即安装成功相关依赖库2、安装 rknn-toolkit2 工具依旧在conda环境py3.11下进到rknn-toolkit2/packages 目录执行以下命令pip install x86_64/rknn_toolkit2-2.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl安装完成后会在最后一行出现红框所示Successfully installed rknn-toolkit2-2.3.2 即安装 成功。依旧是官方文档截图四、安装RKNNToolkitLite2RKNNToolkitLite2是板子上推理用的工具 为 Rockchip NPU 平台提供 Python 编程接口帮助用户部署 RKNN 模 型加速 AI 应用的落地。之前上传到Ubuntu的rknn-toolkit2-2.3.2 文件夹进到rknn-toolkit2-2.3.2/rknn_toolkit_lit e2/packages 目录将rknn_toolkit_lite2-2.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl传到板子上adb push rknn_toolkit_lite2-2.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl /userdata可以使用adb推也可以用scp传传到板子上的userdata目录下传完后进到userdata目录输入以下命令进行安装。cd /userdatapip install rknn_toolkit_lite2-2.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl五、安装交叉编译工具链交叉编译工具链是SDK 编译出来的也可以直接用现成的后期指路一个将交叉编译器拷贝到家目录新建的toolchain目录下可以执行ls -l进行查看 可执行权限等等。 如果没有可执行权限可以执行以下命令给可执行权限交叉编译工具链会持续更新以实际目录工具链名字为准chmod ax atk-dlrv1126b-toolchain-aarch64-buildroot-linux-gnu-x86_64_20251202-v1.0.run打开ubuntu终端执行以下命令进行安装编译工具链./atk-dlrv1126b-toolchain-aarch64-buildroot-linux-gnu-x86_64_20251202-v1.0.run当弹出提示“$. source /opt/atk-dlrv1126b-toolchain/environment-setup”时表示已经安装 完成。模型转换一、pt 转onnx这里使用的转换项目代码是瑞芯微官方的转换代码同时参考了以下的帖子大家可以去参考原文【YOLO11部署至RK3588】模型训练→转换RKNN→开发板部署_yolo11 rknn-CSDN博客首先要获得权重pt文件可以直接用官网的预训练权重自己有就用自己训练的后期会出自己用yolo训练模型生产pt文件该项目的名称是ultralytics_yolo11-main,下面是它的项目文件结构我们将pt文件放在与ultralytics同一目录下然后进入到 ultralytics/cfg/default.yaml 中将model 文件路径改为自己的默认为 yolo11n.pt。支持检测、分割、姿态、旋转框检测模型我这里是best.pt修改完后在终端输入以下命令export PYTHONPATH./python ./ultralytics/engine/exporter.py可以看到我们在当前路径下得到了ONNX模型best.onnx用netron打开该模型如下所示因为我的是4个类别所以是9个输出实际的输出要以自己的类别为准二、onnx转rknn进行rknn转换就用到之前安装的rknn-toolkit2工具了, 这里还是用瑞芯微官方提供的转换代码rknn_model_zoo进入到example/yolo11/python修改convert.py和yolo11.pyDEFAULT_RKNN_PATH是生产rknn模型保存的路径保存在model下就可以了修改完成后在当前rknn3.11环境下的终端输入python convert.py ../model/best.onnx rv1126b转换为rknn模型的输出依然是9个输出转换完成后需要先将c目录给交叉编译出来然后将编译出来的文件夹推送到开发板中。在编译之前要修改以下文件进入examples/yolo11/cpp修改postprocess.h如下内容然后进入rknn_model_zoo-2.3.2初始目录需要先将编译器使能如果使用的rv1126b开发板执行 以下命令编译例程。cd ../../../export GCC_COMPILER/opt/atk-dlrv1126b-toolchain/bin/aarch64-buildroot-linux-gnu./build-linux.sh -t rv1126b -a aarch64 -d yolo11编译完成会在modelzoo目录下的install/rv1126b_linux_aarch64/rknn_yolo11_demo 生成可执行文件和打包模型等文件现在需要修改最后的文件就可以传到板子上进行版上推理了修改rknn_yolo11_demo/model下面的coco_80_labels_list.txt文件以及如下图所示的文件将生成可执行文件和打包模型等文件推到板子上没有adb 就用scpadb push install/rv1126b_linux_aarch64/rknn_yolo11_demo/ /userdata/aidemo板端推理在开发板终端执行以下命令使用1.jpg进行推理执行结果如下图cd /userdata/aidemo/rknn_yolo11_demo./rknn_yolo11_demo model/yolo11.rknn model/1.jpg左侧是原模型的效果右侧是板端推理的效果以上就是整个流程跑通的效果只是验证了本地图片的检测结果精度有点降低 。后续会更新捕获视频进行检测的效果和流程