yolov5训练出pt模型文件,转换成rknn格式并测试。

一、任务介绍

        我的任务是在服务器GPU上训练yolov5后,转换到使用NPU的平台上,对数据集进行测试,查看MAP等模型性能的损失,目前阶段还没有开展检测速度的评估。

        主要分为三个步骤

        1、在服务器GPU上训练出yolov5的模型文件,best.pt,然后使用yolov5中的export转换成onnx格式。

        2、在linux虚拟机上配置python环境并安装格式转换工具rknn-toolkit2,完成onnx格式转换rknn格式。

        3、在NPU上配置rknn_yolov5_demo,修改postrocess.h、main.cc等文件,添加label保存功能。编写sh脚本,实现对一个数据集文件夹检测。

二、具体步骤

2.1、第一步、使用GPU训练yolov5,并把pt文件转换成onnx格式

        训练过程不是格式转换的重点,这里不赘述,只说一些格式转换过程中的注意事项。

2.1.1、首选训练pt的python环境需要向使用的yolov5版本看齐,不必和后面rknn-toolkit2使用的python版本相同。

        比如:我使用的是yolov5-7.0版本、python版本使用的是python 3.10

        而配置rknn-toolkit2环境时使用的python版本是python 3.6

2.1.2、修改yolov5/models/yolo.py文件

        删掉class Detect(nn.Module)类的forward函数(yolo.py文件的第56行,当然yolov5版本不同行数可能会有变化)中一部分,修改结果:

                

        注意:训练的过程中不要使用这个修改的yolo.py训练,这个修改只是rknn格式转换过程中的要求。

2.1.3、运行yolov5/export.py文件

        将你训练yolov5得到的best.pt文件复制到yolov5目录下

### 将YOLOv8 PT模型转换为RKNN格式的方法 要将YOLOv8的PT模型转换为RKNN格式,可以按照以下方式操作: #### 方法一:通过`yolo export`命令直接导RKNN格式 可以直接利用Ultralytics库中的`export`功能完成模型转换。此方法无需先生成ONNX文件,而是直接生成RKNN文件。 运行如下命令即可实现: ```bash yolo export model=<path_to_your_best_pt> format=rknn ``` 这里需要注意的是,在指定参数时应确保路径无误,且环境已安装好支持RKNN的相关依赖项[^3]。 #### 方法二:借助Python脚本进行转换 另一种常见的方式是从官方仓库获取示例代码基于其调整适应自己的需求。具体步骤如下所示: 1. **克隆rknn_model_zoo项目** 首先需要下载rknn_model_zoo源码到本地机器上以便访问其中包含的各种实用工具。 ```bash git clone https://github.com/airockchip/rknn_model_zoo.git cd rknn_model_zoo/examples/yolov8/python/ ``` 2. **执行转换脚本** 接下来调用所提供的python程序来进行实际转化过程。假设输入是一个名为'yolov8n.onnx'的标准onnx版本网络结构定义文档以及目标硬件平台设置为rk3588,则可采用下面这条指令启动进程: ```bash python convert.py yolov8n.onnx rk3588 ``` 上述两条途径均能有效达成由pytorch(.pt)形式向rknn专属优化过的专有架构转变的目的[^4]。 此外值得注意的一点在于无论是哪种方案都强烈建议事先确认所使用的框架版本号匹配情况良好以免遇到不必要的麻烦[^2]。 ```python import torch from ultralytics import YOLO model = YOLO('best.pt') success = model.export(format='rknn') # 导RKNN模型 if not success: raise Exception("Export failed.") print("Model exported successfully!") ``` 以上代码片段展示了如何使用 Ultralytics 的 API 来简化整个导流程。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值