配置orangepi5pro运行rknn版本的yolov5
摘要
配置orangepi5pro运行rknn版本的yolov5,使用npu进行目标检测.
关键信息
- 板卡:orangepi5pro
- 芯片:RK3588S
- 环境:rknn2
- 转换工具:rknn-tool-kit2:1.5.0
- 系统:ubuntu20.04
原理简介
npu简介
NPU(Neural Processing Unit,神经处理单元)是一种专门设计用于加速人工智能计算的硬件加速器。它通常集成在SoC(System on Chip)中,包含多个神经网络处理器和优化内存,能够高效执行神经网络的训练和推理任务.
rknn简介
[https://blog.csdn.net/zhoujinwang/article/details/130563729]
[https://gitcode.com/rockchip-linux/rknpu2]
[https://gitcode.com/airockchip/rknn-toolkit2/tree/master/rknpu2]
[https://gitcode.com/airockchip/rknn_model_zoo/overview]
- RKNN software stack can help users to quickly deploy AI models to Rockchip chips.
RKNN-Toolkit2 is not compatible with RKNN-Toolkit
Currently only support on:
Ubuntu 18.04 python 3.6/3.7
Ubuntu 20.04 python 3.8/3.9
Ubuntu 22.04 python 3.10/3.11
Latest version:1.6.0(Release version)
RKNN介绍 |
---|
![]() |
In order to use RKNPU, users need to first run the RKNN-Toolkit2 tool on the computer, convert the trained model into an RKNN format model, and then inference on the development board using the RKNN C API or Python API.
RKNN-Toolkit2 is a software development kit for users to perform model conversion, inference and performance evaluation on PC and Rockchip NPU platforms.
RKNN-Toolkit-Lite2 provides Python programming interfaces for Rockchip NPU platform to help users deploy RKNN models and accelerate the implementation of AI applications.
RKNN Runtime provides C/C++ programming interfaces for Rockchip NPU platform to help users deploy RKNN models and accelerate the implementation of AI applications.
RKNPU kernel driver is responsible for interacting with NPU hardware. It has been open source and can be found in the Rockchip kernel code.
实现
- 转换yolov5的pytorch版本的pt模型到rk3588的npu专用模型rknn
# 仅支持amd64
docker pull arcturusnetworks/rknn-toolkit2:1.5.0
cd ./models
docker run -it --rm -v $PWD:/models arcturusnetworks/rknn-toolkit2:1.5.0 bash
# 转换 *.pt 到 *.onnx
# 图片大小640*640
cd yolov5 && python3 export.py --rknpu --imgsz 640 640 --weight /models/yolov5_jiapingzhe_exp19.pt
# 转换 *.onnx 到 *.rknn
cd /src/examples/onnx/yolov5/ && python3 convert.py -i /models/yolov5_jiapingzhe_exp19.onnx
- 部署模型
cd ~
git clone https://gitcode.com/airockchip/rknn_model_zoo.git
# 1. 修改目标类别数,修改如下
vim ~/rknn_model_zoo/examples/yolov5/include/postprocess.h
# 2. 修改目标类别文本,内容如下
vim ~/rknn_model_zoo/examples/yolov5/model/coco_80_labels_list.txt
cd ~/rknn_model_zoo
# 3. 编译
bash ./build-linux.sh -t rk3588 -a aarch64 -d yolov5
# 4.运行(需要sudo才能访问npu硬件)
cd ~/rknn_model_zoo/install/rk3588_linux_aarch64/rknn_yolov5_demo
sudo chmod +x ./rknn_yolov5_demo
sudo ./rknn_yolov5_demo model/yolov5_jiapingzhe_exp19.rknn model/yolov5_test3.jpg
postprocess.h
#define OBJ_CLASS_NUM 37 // 目标类别数
coco_80_labels_list.txt
0: zero
1: one
2: two
3: three
4: four
5: five
6: six
7: seven
8: eight
9: nine
10: a
11: b
12: c
13: d
14: e
15: f
16: g
17: h
18: i
19: j
20: k
21: l
22: m
23: n
24: p
25: q
26: r
27: s
28: t
29: u
30: v
31: w
32: x
33: y
34: z
35: shibie
36: qifei
效果
运行效果 |
---|
![]() |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」