YOLOv8-OBB 旋转目标检测训练自己的数据

数据集制作

标注工具: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.推理

  • 17
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乐亦亦乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值