Skip to content

RK3588 YOLOv5 部署

RK3588 开发板上编译运行 YOLOv5 RKNN 推理 Demo,支持替换自训练模型、修改类别数与 NMS/置信度阈值。后处理默认在 CPU 实现(硬件限制),模型使用 ReLU 激活以兼顾精度与性能。

C++RKNN Toolkit2 ≥1.1.2librga

效果展示

RK3588 YOLOv5 RKNN 推理检测结果

示例:`assets/drp.rknn` 在测试图上的检测框输出(仓库自带)

特性

  • RK3588 Linux 一键编译脚本 build_rk3588_yolov5.sh
  • 测试脚本 test_rk3588_yolov5.sh
  • 自定义 .rknn 模型与 labels_list.txt
  • 可调后处理宏:OBJ_CLASS_NUMNMS_THRESHBOX_THRESH

环境要求

说明
硬件RK3588 开发板(在板子上 clone 与编译
网络开发板需联网并配置 Git
工具链rknn-toolkit2 ≥ 1.1.2
依赖librga.so(见 rockchip-linux/linux-rga

RKNN 模型导出

导出步骤请参考:

快速开始

1. 克隆到开发板

bash
git clone https://github.com/wangqiqi/rk3588_yolov5_deploy.git
cd rk3588_yolov5_deploy

NOTE:「本地」指 RK3588 开发板本身,非 PC 交叉编译后再推送(除非自行改造流程)。

2. 编译安装

bash
bash build_rk3588_yolov5.sh

3. 测试

bash
bash test_rk3588_yolov5.sh

默认调用 install/rk3588_yolov5assets/ 下示例模型、图片。

部署自定义模型

  1. 将导出的 .rknn 模型放入 assets/
  2. 修改 assets/labels_list.txt(每行一个类别名)
  3. 添加测试图片到 assets/
  4. 修改 yolov5/include/postprocess.h 第 7–11 行:
cpp
#define OBJ_NAME_MAX_SIZE 16  // 最长目标名称
#define OBJ_NUMB_MAX_SIZE 64  // 最多目标个数
#define OBJ_CLASS_NUM 1       // 目标类别数 — 按项目修改
#define NMS_THRESH 0.25
#define BOX_THRESH 0.5
  1. 重新编译:
bash
bash build_rk3588_yolov5.sh
  1. 编辑 test_rk3588_yolov5.sh 指定模型与图片,例如:
bash
cd install
./rk3588_yolov5 assets/drp.rknn assets/drp.png
bash
bash test_rk3588_yolov5.sh

清理

bash
bash clean_all.sh

注意事项

  1. 切换自训练模型时须对齐 anchor 等后处理参数,否则解析错误。
  2. 官方预训练多为 80 类 COCO;自训练需改 OBJ_CLASS_NUM 及 NMS/BOX 阈值。
  3. Demo 依赖 librga;若找不到库,设置 LD_LIBRARY_PATH 包含 librga 路径。
  4. 激活函数:Demo 附带模型使用 ReLU(相对 SiLU 精度略降、性能上升)。

常见问题

Q: 能在 PC 上编译吗?
仓库脚本面向板端 native 编译;Android/AArch64 交叉编译可参考仓库 README 原版 airockchip 说明(build-linux_<TARGET>.sh 等)。

Q: 博客有更长的图文教程吗?
本站博文 RK3588 部署 YOLOv5 全流程 含更完整踩坑记录。

源码

© 2026 老周有AI. All rights reserved.