Meet YOLO26: next-gen vision AI.

Link to this section旋转目标检测框 (OBB) 数据集概述#

训练精确的 object detection 模型并使用旋转目标检测框 (OBB) 需要一个完整的数据集。本指南介绍了与 Ultralytics YOLO 模型兼容的各种 OBB 数据集格式,并提供了有关其结构、应用和格式转换方法的见解。

Link to this section支持的 OBB 数据集格式#

Link to this sectionYOLO OBB 格式#

YOLO OBB 格式通过其四个角点的坐标来定义边界框,坐标值在 0 到 1 之间进行归一化。其格式如下:

class_index x1 y1 x2 y2 x3 y3 x4 y4

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

Oriented bounding box annotation format examples

上述图像的 *.txt 标签文件示例,其中包含一个 OBB 格式的类别 0 对象,可能如下所示:

0 0.780811 0.743961 0.782371 0.74686 0.777691 0.752174 0.776131 0.749758

Link to this section数据集 YAML 格式#

Ultralytics 框架使用 YAML 文件格式来定义训练 OBB 模型所需的数据集和模型配置。以下是用于定义 OBB 数据集的 YAML 格式示例:

ultralytics/cfg/datasets/dota8.yaml
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# DOTA8 dataset (8 images from the DOTAv1 split) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/obb/dota8
# Example usage: yolo train model=yolov8n-obb.pt data=dota8.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── dota8 ← downloads here (1 MB)

# 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: dota8 # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 images

# Classes for DOTA 1.0
names:
  0: plane
  1: ship
  2: storage tank
  3: baseball diamond
  4: tennis court
  5: basketball court
  6: ground track field
  7: harbor
  8: bridge
  9: large vehicle
  10: small vehicle
  11: helicopter
  12: roundabout
  13: soccer ball field
  14: swimming pool

# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/dota8.zip

Link to this section用法#

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

示例
from ultralytics import YOLO

# Create a new YOLO26n-OBB model from scratch
model = YOLO("yolo26n-obb.yaml")

# Train the model on the DOTAv1 dataset
results = model.train(data="DOTAv1.yaml", epochs=100, imgsz=1024)

Link to this section支持的数据集#

目前支持以下带旋转边界框的数据集:

  • DOTA-v1:DOTA 数据集的第一个版本,提供了一套全面的航空影像,包含用于目标检测的旋转边界框。
  • DOTA-v1.5:DOTA 数据集的中间版本,在 DOTA-v1 的基础上提供了额外的标注和改进,以增强目标检测任务。
  • DOTA-v2:DOTA (大规模航空影像目标检测数据集) 第 2 版,侧重于从航空视角进行检测,包含 170 万个实例和 11,268 张带旋转边界框的图像。
  • DOTA8:完整 DOTA 数据集的一个小型 8 图子集,适用于在 ultralytics 仓库中测试工作流程和 OBB 训练的持续集成 (CI) 检查。
  • DOTA128:DOTA 数据集的一个 128 图子集,train 文件夹中的所有图像(同时用于训练和验证),为测试 OBB 模型提供了大小和多样性之间的良好平衡。

Link to this section整合你自己的 OBB 数据集#

对于那些希望引入自己的旋转边界框数据集的用户,请确保其与上述“YOLO OBB 格式”兼容。将你的标注转换为此所需格式,并在对应的 YAML 配置文件中详细说明路径、类别和类别名称。

Link to this section转换标签格式#

Link to this sectionDOTA 数据集格式转换为 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 格式对齐。

务必验证数据集与你的模型是否兼容,并遵循必要的格式约定。结构良好的数据集对于训练高效的旋转边界框目标检测模型至关重要。

Link to this section常见问题解答#

Link to this section什么是旋转目标检测框 (OBB) 以及它们如何在 Ultralytics YOLO 模型中使用?#

旋转目标检测框 (OBB) 是一种边界框标注类型,其中框可以旋转以更紧密地与被检测对象对齐,而不是仅仅与坐标轴对齐。这在航空或卫星影像中特别有用,因为物体可能不会与图像轴对齐。在 Ultralytics YOLO 模型中,OBB 由 YOLO OBB 格式中的四个角点表示。这允许更准确的目标检测,因为边界框可以旋转以更好地贴合物体。

Link to this section如何将我现有的 DOTA 数据集标签转换为 YOLO OBB 格式以用于 Ultralytics YOLO26?#

你可以使用 Ultralytics 中的 convert_dota_to_yolo_obb 函数将 DOTA 数据集标签转换为 YOLO OBB 格式。这种转换确保了与 Ultralytics YOLO 模型的兼容性,使你能够利用 OBB 功能来增强目标检测。这是一个简短示例:

from ultralytics.data.converter import convert_dota_to_yolo_obb

convert_dota_to_yolo_obb("path/to/DOTA")

此脚本会将你的 DOTA 标注重新格式化为 YOLO 兼容格式。

Link to this section如何使用旋转目标检测框 (OBB) 在我的数据集上训练 YOLO26 模型?#

训练带有 OBB 的 YOLO26 模型需要确保你的数据集采用 YOLO OBB 格式,然后使用 Ultralytics API 进行模型训练。以下是 Python 和 CLI 中的示例:

示例
from ultralytics import YOLO

# Create a new YOLO26n-OBB model from scratch
model = YOLO("yolo26n-obb.yaml")

# Train the model on the custom dataset
results = model.train(data="your_dataset.yaml", epochs=100, imgsz=640)

这确保了你的模型利用详细的 OBB 标注来提高检测 accuracy

Link to this section目前 Ultralytics YOLO 模型中支持哪些数据集进行 OBB 训练?#

目前,Ultralytics 支持以下数据集进行 OBB 训练:

  • DOTA-v1:DOTA 数据集的第一个版本,提供了一套全面的航空影像,包含用于目标检测的旋转边界框。
  • DOTA-v1.5:DOTA 数据集的中间版本,在 DOTA-v1 的基础上提供了额外的标注和改进,以增强目标检测任务。
  • DOTA-v2:该数据集包含 170 万个带旋转边界框的实例和 11,268 张图像,主要关注航空目标检测。
  • DOTA8:DOTA 数据集的一个小型 8 图子集,用于测试和 continuous integration (CI) 检查。
  • DOTA128:一个 128 图子集,train 文件夹中的所有图像(同时用于训练和验证),与 DOTA8 相比提供了更多样性,同时仍便于初始 OBB 模型开发和实验。

这些数据集专为 OBB 具有显着优势的场景量身定制,例如航空和卫星图像分析。

Link to this section我可以使用自己的旋转边界框数据集进行 YOLO26 训练吗?如果可以,怎么做?#

可以,你可以使用自己的旋转边界框数据集进行 YOLO26 训练。确保你的数据集标注已转换为 YOLO OBB 格式,这涉及通过四个角点定义边界框。然后,你可以创建一个指定数据集路径、类别和其他必要详细信息的 YAML 配置文件。有关创建和配置数据集的更多信息,请参阅 Supported Datasets 部分。

评论