yolov5训练,转onnx过程(后续会继续更新转rk模型)

发布于:2025-08-08 ⋅ 阅读:(18) ⋅ 点赞:(0)

好久没更新了,之前其实自己学习yolov5、yolov8AI边缘部署的时候已经做过一点笔记了,但是都没发博客,之后将从零开始重新构建之前的笔记,并进行博客分享。

1.数据集处理

1.1 组织目录结构

. 工作路径

├── datasets

│ └── person_data

│     ├── images

│     │ ├── train

│     │ │ └── demo_001.jpg

│     │ └── val

│     │     └── demo_002.jpg

│     └── labels

│         ├── train

│         │ └── demo_001.txt(要处理为yolo的格式)

│         └── val

│             └── demo_002.txt (要处理为yolo的格式)

└── yolov5

1.2 yolo格式

类别 中心点的xy坐标 w h   (后面四个数值都是x除以整个图h y除于整个图w w除以整个图w h除以整个图h)

1.3创建 dataset.yaml

复制`yolov5/data/coco128.yaml`一份,比如为`coco_person.yaml`

在里面进行修改以下内容(按照自己要的效果进行修改)

path: ../datasets/person_data  # 数据所在目录

train: images/train  # 训练集图片所在位置(相对于path)

val:  images/val # 验证集图片所在位置(相对于path)

test: # 测试集图片所在位置(相对于path)(可选)

nc: 5  # 类别数量

names: ['pedestrians','riders','partially-visible-person','ignore-regions','crowd'] # 类别标签名

1.4 获取训练数据

pip install labelImg    (这份指令进行安装)

labelImg          (这份指令进行启动,然后就能在里面按照自己的需求进行标注了)

2.拉取yolov5以及转化为指定的版本

2.1 在GitHub上拉取yolov5

2.1.1配置密钥

流程如下:

(可以先尝试使用git clone https://github.com/ultralytics/yolov5.git这个指令,应该是不需要进行配置密钥的,我记得当时是直接进行拉取下来的,也可以跟着我一步步来做)

step1:

   ssh-keygen -t ed25519 -C "3031661393@qq.com"(邮箱改为你自己的)

 

这里就能知道ed25519

step2:

 使用这个指令cat ~/.ssh/id_ed25519.pub就能获取类似下面的内容:
ssh-ed25519  AAAAC3NzaC1lZDI1NTE5AAAAIHkZ1Ku7QudZs4gKFqVXzKlm1AfIDeTBI3o8kdePxUCr 3031661393@qq.com

把整个内容放到key里面(界面位置为https://github.com/settings/keys,也就是化到你的头像框,然后点击设置,里面有个ssh and GpG key的)

然后把前面两个空填写完进行创建即可。

step3:

git clone git@github.com:ultralytics/yolov5.git

通过指令就能把yolov5拉取过来了。

step4:

cd yolov5

git checkout a80dd66

通过这个指令能把yolov5转化为指定的版本。

3.开始进行训练与测试

(进行训练的时候需要保证有对应的环境包括:pytorch cudnn cuda,如果是租借的autodl云服务器(使用vscode连接)就不需要下载,都是已经配置好了的,只需要按自己的需求选就行了)

我选择的是这个配置的,不用gpu的话使用无卡启动0.01/h,还是很实惠的

3.1输入指令进行训练

python ./train.py --data ./data/coco_person.yaml --cfg ./models/yolov5s_person.yaml --weights ./weights/yolov5s.pt --batch-size 32 --epochs 120 --workers 0 --name s_120 --project yolo_person_s

有可能内存不够,就需要调整一下batch-size的大小(里面相关的作用不清楚是什么直接扔去问一下ai)

(如果想进行可视化可以用这个指令tensorboard --logdir=./yolo_person_s,后面等于的东西看上面指令设置的)

3.2开始进行测试

python detect.py --source ./data/images/ --weights weights/yolov5s.pt --conf-thres 0.4

4.转onnx模型

4.1搭建环境

pip install seaborn
pip install onnx-graphsurgeon
pip install onnx-simplifier==0.3.10
pip install opencv-python
apt update
apt install -y libgl1-mesa-glx

在liunx环境中使用这部分指令。

4.2 开始进行转onnx模型

 python export.py --weights ./yolov5s.pt --include onnx --simplify
 --dynamic

使用这个指令就能进行转了,主要就是注意对应的配置路径即可。


网站公告

今日签到

点亮在社区的每一天
去签到