数据集制作
标注工具:X-AnyLabeling
https://github.com/CVHub520/X-AnyLabeling
下载链接:https://pan.baidu.com/s/1UsnDucBDed8pU1RtaVZhQw?pwd=5kel
数据标注可以参考:https://zhuanlan.zhihu.com/p/665036259
1. 选择导出方式为DOTA标签;
2. 使用方法
基本用法
- 按下快捷键 "O" 来创建一个旋转形状。
- 打开编辑模式(快捷键:"Ctrl+J")并单击选择旋转框。
- 通过快捷键 "zxcv" 旋转所选框,其中:
- z:大角度逆时针旋转
- x:小角度逆时针旋转
- c:小角度顺时针旋转
- v:大角度顺时针旋转
高级用法
此外,您可以使用训练好的模型批量预标记当前数据集。
- 按下快捷键 "Ctrl+A" 打开自动标注模式;
- 选择一个适当的默认模型或加载自定义模型。
- 按下快捷键 "Ctrl+M" 运行所有图像一次。
标注好的数据格式:
--images
-- 1.png
-- 1.json
-- 2.png
-- 2.json
-- labels
--1.txt
--2.txt
注意:yolov8 训练时使用png图像格式,如果不是,需要转换成png,或者更改代码!为方便可以将图片批量处理成png格式!!
训练数据
1. 安装yolov8
参考:https://github.com/ultralytics/ultralytics
Pip install the ultralytics package including all requirements in a Python>=3.8 environment with PyTorch>=1.8.
在满足以上pytorch运行环境下,直接pip安装即可!也可以将代码git到本地!
pip install ultralytics
2. 新建项目文件夹,用于存放数据集以及相关配置文件,权重等。
其中datasets为标注的数据,需要目录格式如下:
--images
--test
--test_1.png
--test_2.png
--train
--train_1.png
--train_2.png
--val
--val_1.png
--val_2.png
--labels
--train_original
--train_1.txt
--train_2.txt
--test_original
--test_1.txt
--test_2.txt
--val_original
--val_1.txt
--val_2.txt
3. 将dota数据格式转换为yolo_obb格式;
- 需要进入convert_dota_to_yolo_obb中修改 class_mapping = {}
如果本地安装,目录如下:
D:\Anaconda3\envs\pytorch2.0\Lib\site-packages\ultralytics\data\converter.py
- 执行转换代码
转换后格式如下:# 转换代码 from ultralytics.data.converter import convert_dota_to_yolo_obb # 将 DOTA 数据集格式转换为YOLO OBB 格式,所传参数为dota格式数据集路径 convert_dota_to_yolo_obb(r'C:\Users\Administrator\Desktop\chip_detection\datasets')
4 . 创建\修改训练配置文件
- 创建DOTAv1.5.yaml,修改数据集路径和names标签名;
# Ultralytics YOLO 🚀, AGPL-3.0 license
# DOTA 1.5 dataset https://captain-whu.github.io/DOTA/index.html for object detection in aerial images by Wuhan University
# Documentation: https://docs.ultralytics.com/datasets/obb/dota-v2/
# Example usage: yolo train model=yolov8n-obb.pt data=DOTAv1.5.yaml
# parent
# ├── ultralytics
# └── datasets
# └── dota1.5 ← downloads here (2GB)
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: C:/Users/Administrator/Desktop/chip_detection/datasets # dataset root dir
train: images/train # train images (relative to 'path') 1411 images
val: images/val # val images (relative to 'path') 458 images
test: images/test # test images (optional) 937 images
# Classes for DOTA 1.5
names:
0: 'a0'
1: 'a1'
2: 'b0'
3: 'b1'
4: 'b2'
# Download script/URL (optional)
# download: https://github.com/ultralytics/assets/releases/download/v0.0.0/DOTAv1.5.zip
- 修改类别各数
D:\Anaconda3\envs\pytorch2.0\Lib\site-packages\ultralytics\cfg\models\v8\yolov8-obb.yaml
5. 开始训练
yolo train model=yolov8n-obb.pt data=DOTAv1.5.yaml batch=8 workers=1
训练结束:
6. 测试
yolo predict model="C:\Users\Administrator\Desktop\chip_detection\runs\obb\train6\weights\best.pt" source="C:\Users\Administrator\Desktop\chip_detection\datasets\images\test\Core_70.png"
7.导出
8.推理