跳至内容

定向边框(OBB)数据集概述

使用定向边界框(OBB)训练精确的物体检测模型需要一个全面的数据集。本指南解释了与Ultralytics YOLO 模型兼容的各种 OBB 数据集格式,深入介绍了这些格式的结构、应用和格式转换方法。

支持的 OBB 数据集格式

YOLO OBB 格式

YOLO OBB 格式通过四个角点指定边界框,其坐标在 0 和 1 之间归一化:

class_index, x1, y1, x2, y2, x3, y3, x4, y4

YOLO 在内部处理损失和产出。 xywhr 格式,表示边界框的中心点(xy)、宽度、高度和旋转角度。

OBB 格式示例

一个例子 *.txt 标签文件,其中包含一个类 0 OBB 格式,可以是这样的

0 0.780811 0.743961 0.782371 0.74686 0.777691 0.752174 0.776131 0.749758

使用方法

要使用这些 OBB 格式训练模型:

示例

from ultralytics import YOLO

# Create a new YOLOv8n-OBB model from scratch
model = YOLO('yolov8n-obb.yaml')

# Train the model on the DOTAv2 dataset
results = model.train(data='DOTAv1.yaml', epochs=100, imgsz=640)
# Train a new YOLOv8n-OBB model on the DOTAv2 dataset
yolo detect train data=DOTAv1.yaml model=yolov8n.pt epochs=100 imgsz=640

支持的数据集

目前支持以下带有定向边框的数据集:

  • DOTA v2:DOTA(用于航空图像中物体检测的大规模数据集)第 2 版强调从航空角度进行检测,包含 170 万个实例和 11,268 幅图像的定向边界框。

  • DOTA8:完整 DOTA 数据集的 8 幅图像子集,适用于测试工作流程和 OBB 培训的持续集成 (CI) 检查。 ultralytics 存放处。

加入自己的 OBB 数据集

对于那些希望使用定向边界框引入自己的数据集的用户,请确保与上述 "YOLO OBB 格式 "兼容。将您的注释转换为这种所需的格式,并在相应的 YAML 配置文件中详细说明路径、类和类名。

转换标签格式

将 DOTA 数据集格式转换为YOLO OBB 格式

使用该脚本可以将标签从 DOTA 数据集格式转换为YOLO OBB 格式:

示例

from ultralytics.data.converter import convert_dota_to_yolo_obb

convert_dota_to_yolo_obb('path/to/DOTA')

这种转换机制对 DOTA 格式的数据集非常有用,可确保与Ultralytics YOLO OBB 格式保持一致。

必须验证数据集与模型的兼容性,并遵守必要的格式约定。结构合理的数据集对于训练具有定向边界框的高效物体检测模型至关重要。



创建于 2023-11-12,更新于 2024-01-25
作者:glenn-jocher(6)

评论