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

示例:`assets/drp.rknn` 在测试图上的检测框输出(仓库自带)
特性
- RK3588 Linux 一键编译脚本
build_rk3588_yolov5.sh - 测试脚本
test_rk3588_yolov5.sh - 自定义
.rknn模型与labels_list.txt - 可调后处理宏:
OBJ_CLASS_NUM、NMS_THRESH、BOX_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_deployNOTE:「本地」指 RK3588 开发板本身,非 PC 交叉编译后再推送(除非自行改造流程)。
2. 编译安装
bash
bash build_rk3588_yolov5.sh3. 测试
bash
bash test_rk3588_yolov5.sh默认调用 install/rk3588_yolov5 与 assets/ 下示例模型、图片。
部署自定义模型
- 将导出的
.rknn模型放入assets/ - 修改
assets/labels_list.txt(每行一个类别名) - 添加测试图片到
assets/ - 修改
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- 重新编译:
bash
bash build_rk3588_yolov5.sh- 编辑
test_rk3588_yolov5.sh指定模型与图片,例如:
bash
cd install
./rk3588_yolov5 assets/drp.rknn assets/drp.pngbash
bash test_rk3588_yolov5.sh清理
bash
bash clean_all.sh注意事项
- 切换自训练模型时须对齐 anchor 等后处理参数,否则解析错误。
- 官方预训练多为 80 类 COCO;自训练需改
OBJ_CLASS_NUM及 NMS/BOX 阈值。 - Demo 依赖 librga;若找不到库,设置
LD_LIBRARY_PATH包含 librga 路径。 - 激活函数:Demo 附带模型使用 ReLU(相对 SiLU 精度略降、性能上升)。
常见问题
Q: 能在 PC 上编译吗?
仓库脚本面向板端 native 编译;Android/AArch64 交叉编译可参考仓库 README 原版 airockchip 说明(build-linux_<TARGET>.sh 等)。
Q: 博客有更长的图文教程吗?
本站博文 RK3588 部署 YOLOv5 全流程 含更完整踩坑记录。




