Advertisement

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启动)后,请点击以选择旋转变换框。
通过特定的快捷组合完成旋转变换操作:
* z: 实现较大角度的逆时针转动
* x: 实现较小幅度的逆时针转动
* c: 实现较小幅度的顺时针转动
* v: 实现较大角度的顺时针转动

高级用法

此外,您可以使用训练好的模型批量预标记当前数据集。

  • 启动自动标注功能;
    • 根据需求选择预设模型或自定义配置。
    • 批量处理所有图片。

标注好的数据格式:

复制代码
 --images

    
     -- 1.png
    
     -- 1.json
    
     -- 2.png
    
     -- 2.json
    
 -- labels
    
         --1.txt
    
         --2.txt

特别注意以下几点:在训练过程中,默认输入的图片应采用 png 图像格式。如果输入的图片不是 png 格式,则需转为 png 格式,并修改相关代码设置以适应需求。为了操作简便,建议将所有图片一次性转码为 png 格式。

训练数据

1. 安装yolov8

参考:https://github.com/ultralytics/ultralytics

Install the ultralytics package using pip, which requires including all dependencies listed in its requirements file, available at https://github.com/ultralytics/ultralytics/blob/main/pyproject.toml, and running the installation in an environment where Python version is at least 3.8 and PyTorch version is at least 1.8.

在上述PyTorch运行环境中,默认情况下可以通过简单的pip命令完成安装操作;此外还可以将代码上传至本地存储空间进行处理。

复制代码
    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
  • 执行转换代码
复制代码
        1. # 转换代码

    
        2. from ultralytics.data.converter import convert_dota_to_yolo_obb
    
        3. # 将 DOTA 数据集格式转换为YOLO OBB 格式,所传参数为dota格式数据集路径
    
        4. 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.推理

全部评论 (0)

还没有任何评论哟~