<h1 style="text-align: center">ultralytics-rknn</h1>
这个项目基于 ultralytics-yolov8, 使用其网络和预训练模型移植到Rk3588开发板上,
完成边缘设备端的`检测`, `分类`, `分割`, `姿态`等任务。
### 相关项目地址
[ultralytics](https://github.com/ultralytics/ultralytics.git): 使用的神经网络模型及权重来源 <br>
[rknpu2](https://github.com/rockchip-linux/rknpu2): rk3588驱动项目<br>
[rknn-toolkit2](https://github.com/rockchip-linux/rknn-toolkit2): rk3588模型移植相关项目<br>
### 注意事项
为了能让模型移植到`RK3588`上,对网络输出方式进行简单的修改,下方会叙述修改地方。
### 项目环境
#### 1. 服务器端 (训练/测试/转换环境onnx)
```
python: 3.8 完全按照ultralytics原作者说明的环境
注意: onnx==1.10.0 protobuf==3.12.2
这里刚开始使用protobuf环境在3.19以上出现了,转换环境加载onnx错误的情况
```
#### 2. 转换环境(rknn)
```
均值: 0 0 0
方差: 255 255 255
安装rknn-toolkit2搭建即可。
```
### 3. 测试环境(RK3588)
```
RK3588使用的固件及转换环境均是v1.5.0, 其他版本未测试。
```
## 一. 检测模型迁移
### 模型转换
#### 1. pth 2 onnx
```
1. 运行 mytool/yolov8_det_export.py, 程序即可导出onnx模型
对于一个320尺寸模型,对于双输出。
```
#####
![修改点1](./img/fix_point1.png)
```
代码来源: ultralytics/nn/modules/head.py line: 62
原: dbox = dist2bbox(self.dfl(box), self.anchors.unsqueeze(0), xywh=True, dim=1) * self.strides
改: dbox = dist2bbox(self.dfl(box), self.anchors.unsqueeze(0), xywh=False, dim=1)
取消原先框复原时的乘法操作,这里会导致rknn推理是commit错误 (验证得到)
并且原先直接xywh输出,因为怕同样错误,直接采用x1y1x2y2的双点输出。将xywh=False
```
#####
![修改点2](./img/fix_point2.png)
```
代码来源: ultralytics/nn/modules/head.py line: 73
原: return y if self.export else (y, x)
改: return dbox.permute(0, 2, 1), cls.sigmoid().permute(0, 2, 1)
原先 只返回y,是因为将结果合并,我这里直接基于修改1,直接返回dbox和cls,并且由于原输出为 dbox[1 4 2100]在c++处理时偏移较为麻烦,所以直接
permute将其变换为 [1 2100 4],便于c++后处理步骤
```
### RKNN测试
```
[ cpp代码这边随便写的,只为能够最快测试流程和得到结果 ]
// 交叉编译器自己安装,我这边使用的是aarch64-gcc10.2版本
// 编译
cd ~/test/cpp
mkdir build && cd build
cmake .. && make
// 运行【注意模型位置及图像路径,代码中修改】生产res.jpg
./u2netp_demo
```
### 结果展示(RK3588)
```
基于320尺寸的yolov8n检测网络,FPS可以40到50左右,单帧速度20ms。
```
![测试结果](./img/detect_result2.png)
![测试结果](./img/detect_result.png)
## 二. 分割模型迁移
Waiting...
## 三. 姿态模型迁移
Waiting...
## 四. 跟踪模型迁移
Waiting...
没有合适的资源?快使用搜索试试~ 我知道了~
基于ultralytics-yolov8, 将其检测/分类/分割/姿态等任务移植到rk3588上C++源码+文档说明
共263个文件
hpp:185个
h:61个
so:5个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 1 下载量 178 浏览量
2024-03-21
22:19:09
上传
评论
收藏 11.53MB ZIP 举报
温馨提示
<项目介绍> 基于ultralytics-yolov8, 将其检测/分类/分割/姿态等任务移植到rk3588上C++源码+文档说明 - 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------
资源推荐
资源详情
资源评论
收起资源包目录
基于ultralytics-yolov8, 将其检测/分类/分割/姿态等任务移植到rk3588上C++源码+文档说明 (263个子文件)
libopencv_imgproc.so.3.4 4.42MB
libopencv_core.so.3.4 3.98MB
libopencv_imgcodecs.so.3.4 2.99MB
libopencv_highgui.so.3.4 61KB
yolov8_detect_demo.cpp 7KB
core_c.h 128KB
types_c.h 70KB
imgproc_c.h 51KB
kmeans_index.h 36KB
videoio_c.h 36KB
rknn_api.h 28KB
dist.h 27KB
hierarchical_clustering_index.h 26KB
cvdef.h 22KB
autotuned_index.h 21KB
kdtree_single_index.h 20KB
calib3d_c.h 20KB
kdtree_index.h 19KB
lsh_table.h 18KB
types_c.h 18KB
cv_cpu_helper.h 17KB
lsh_index.h 15KB
result_set.h 15KB
tracking_c.h 11KB
highgui_c.h 11KB
index_testing.h 11KB
any.h 8KB
hdf5.h 7KB
allocator.h 6KB
composite_index.h 6KB
nn_index.h 6KB
objdetect_c.h 6KB
all_indices.h 6KB
cv_cpu_dispatch.h 6KB
saving.h 6KB
simplex_downhill.h 6KB
imgcodecs_c.h 5KB
cvconfig.h 5KB
cap_ios.h 5KB
dynamic_bitset.h 4KB
interface.h 4KB
defines.h 4KB
random.h 4KB
heap.h 4KB
logger.h 4KB
linear_index.h 4KB
ground_truth.h 3KB
matrix.h 3KB
params.h 3KB
cv.h 3KB
object_factory.h 3KB
sampling.h 3KB
photo_c.h 3KB
ios.h 2KB
timer.h 2KB
cvaux.h 2KB
cxcore.h 2KB
highgui.h 2KB
cvwimage.h 2KB
ml.h 2KB
general.h 2KB
config.h 2KB
interface.h 1KB
interface.h 551B
dummy.h 165B
cxmisc.h 129B
imgproc.hpp 232KB
color_detail.hpp 217KB
mat.hpp 158KB
core.hpp 147KB
calib3d.hpp 139KB
intrin_sse.hpp 116KB
intrin_avx.hpp 116KB
mat.inl.hpp 100KB
ml.hpp 91KB
opencl_clamdblas.hpp 80KB
intrin_neon.hpp 70KB
intrin_cpp.hpp 69KB
types.hpp 68KB
features2d.hpp 63KB
intrin_vsx.hpp 55KB
videoio.hpp 54KB
dnn.hpp 50KB
vec_math.hpp 49KB
vsx_utils.hpp 49KB
persistence.hpp 48KB
matx.hpp 46KB
utility.hpp 42KB
sse_utils.hpp 41KB
photo.hpp 37KB
objdetect.hpp 36KB
cuda.hpp 36KB
highgui.hpp 36KB
ocl.hpp 32KB
functional.hpp 32KB
tracking.hpp 32KB
cvstd.hpp 31KB
simd_functions.hpp 30KB
base.hpp 28KB
flann.hpp 26KB
共 263 条
- 1
- 2
- 3
资源评论
- weixin_422579942024-11-07资源内容详细,总结地很全面,与描述的内容一致,对我启发很大,学习了。
奋斗奋斗再奋斗的ajie
- 粉丝: 1200
- 资源: 2908
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功