好久没更新了,之前其实自己学习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
使用这个指令就能进行转了,主要就是注意对应的配置路径即可。