配置orangepi5pro运行rknn版本的yolov5

news/2024/9/30 7:32:46

摘要

配置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.

实现

  1. 转换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
  1. 部署模型
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

效果

运行效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/29888.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

windows10 资源管理器 卡死 底部任务栏不显示程序 点击底部任务栏两次会重启资源管理器继续卡死

故障存储段 ,类型 0事件名称: AppHangB1响应: 不可用Cab ID: 0 问题签名:P1: explorer.exeP2: 10.0.19041.1266P3: 418a6e83P4: a874P5: 134217728P6: P7: P8: P9: P10: 附加文件:\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERE85A.tmp.WERInternalMetadata.xml\\?\C…

深入探索JavaScript中的structuredClone:现代深拷贝的解密指南

在 JavaScript 中,实现深拷贝的方式有很多种,每种方式都有其优点和缺点。今天介绍一种原生 JavaScript 提供的structuredClone实现深拷贝。 下面列举一些常见的方式,以及它们的代码示例和优缺点: 1. 使用 JSON.parse(JSON.stringify(obj)) 代码示例:function deepClone(ob…

keycloak~登录皮肤动态切换的尝试

keycloak的登录皮肤theme,可以设置领域全局的,或者每个客户端进行单独设置,这种设计是没有问题的,但有时,一个客户端可能有多种主题,这时,你只能再加个客户端,对应新的主题,但这样不方便日后的统计,因为很多统计维度都是以client为基础的,所以,我们需要在进入登录页…

如何在ArcGIS Pro中添加无标注的底图

在ArcGIS 3.0中,新建一个地图会自带两个图层,分别是 World Topographic Map 和 World _Hillshade,也就是世界地形图和世界山体阴影,这套底图的颜色和符号的使用都非常赏心悦目。 但是我们在制图时,有时候想利用这个底图,却不想使用地图中的标注。而这个标注是没办法通过简…

SOLIDWORKS参数化设计的作用

SOLIDWORKS参数化设计软件,主要解决加工制造型企业普遍存在的系列化产品设计周期长和出图效率低。重复工作多、人员工作强度大的问题。传统的设计模式下大规模定制型产品结构设计周期长,问题多,以及大量重复性工作让工程师疲于应对,这些严重阻碍了公司订单承接能力和技术创…

【IDEA神器插件推荐】国产崛起!地表最强API测试插件

1.前言 在开发SpringBoot网站应用的过程中,前端后端会对接口进行请求测试。相信很多小伙伴都用过Postman,但是在IDE和Postman切换难免令人心烦。所以今天给大家带来一款IDEA内置的接口测试插件。 2.简介 根据插件的简介:Restful Fast Request 是一个类似于 Postman 的 Intel…

智启蒸汽时代:数字孪生锅炉的革新之旅

数字孪生,就是通过数字技术为物理世界中的物体创建一个数字化的“双胞胎”。对于蒸汽工厂锅炉来说,数字孪生系统能够实时模拟锅炉的运行状态,预测可能出现的问题,并通过数据分析和智能决策为工人提供精准的操作建议。在飞速发展的工业4.0时代,数字孪生技术已经深入到我们生…

服务器(Linux系统)清除缓存

echo 1> /proc/sys/vm/drop_caches -- 清空系统缓存; cat /proc/29127/status -- 查看指定进程的状态信息;