定向边界框(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)、宽度、高度和旋转角度。

对于上图,包含 0 类对象的 OBB 格式 *.txt 标签文件示例如下:
0 0.780811 0.743961 0.782371 0.74686 0.777691 0.752174 0.776131 0.749758数据集 YAML 格式#
Ultralytics 框架使用 YAML 文件格式定义用于训练 OBB 模型的数据集和模型配置。以下是用于定义 OBB 数据集的 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.ziptrain、val 和 test 均可接受目录、目录列表,或列出图像路径的 *.txt 文件(以 ./ 开头的路径将相对于 *.txt 文件解析)。使用 *.txt 文件可以在目录的子集上训练、跳过未标注图像,或将来自多个来源的图像合并到一个数据划分中。
path: datasets/dota8 # dataset root
train: train.txt # a directory, a list e.g. [images/a, images/b], or a *.txt file
val: val.txt
names:
0: plane使用方法#
要使用这些 OBB 格式训练模型:
from ultralytics import YOLO
# Load a pretrained YOLO26n-OBB model
model = YOLO("yolo26n-obb.pt")
# Train the model on the DOTAv1 dataset
results = model.train(data="DOTAv1.yaml", epochs=100, imgsz=1024)支持的数据集#
目前,支持以下带旋转边界框的数据集。大多数这些数据集也托管在 Ultralytics Platform 上,你可以在该平台上浏览图像和标注、查看数据集统计信息,并克隆这些数据集用于云端训练。
- DOTA-v1:DOTA 数据集的第一个版本,提供了全面的航空图像以及用于目标检测的定向边界框。
- DOTA-v1.5:DOTA 数据集的中间版本,相比 DOTA-v1 提供了更多标注和改进,可用于更高质量的目标检测任务。
- DOTA-v2:DOTA(大规模航空图像目标检测数据集)的第 2 版,重点关注航空视角下的检测,包含 170 万个实例和 11,268 张图像,其中带有定向边界框。
- DOTA8:完整 DOTA 数据集的一个包含 8 张图像的小型子集,适合测试工作流以及
ultralytics仓库中 OBB 训练的持续集成(CI)检查。 - DOTA8 Multispectral:一个包含 8 张图像和 10 个通道的 TIFF 子集,用于在 Ultralytics Platform 上测试多光谱 OBB 训练。
- DOTA128:DOTA 数据集的一个包含 128 张图像的子集,所有图像都位于 train 文件夹中(同时用于 train 和 val),在测试 OBB 模型时兼顾了规模和多样性。
引入你自己的 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 格式保持一致。
务必验证数据集与你的模型的兼容性,并遵循必要的格式约定。结构正确的数据集是训练高效目标检测模型(尤其是使用定向边界框的模型)的关键。
常见问题#
定向边界框(OBB)是一种边界框标注类型,边界框可以旋转以更贴合检测对象,而不只是与坐标轴对齐。这在航空或卫星图像中尤其有用,因为其中的对象可能不会与图像坐标轴对齐。在Ultralytics YOLO模型中,OBB 使用 YOLO OBB 格式通过四个角点表示。这样可以实现更精确的目标检测,因为边界框可以旋转以更好地贴合对象。
你可以使用 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 的格式。
使用 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 标注来提升检测精度。
目前,Ultralytics 支持以下用于 OBB 训练的数据集:
- DOTA-v1:DOTA 数据集的第一个版本,提供了全面的航空图像以及用于目标检测的定向边界框。
- DOTA-v1.5:DOTA 数据集的中间版本,相比 DOTA-v1 提供了更多标注和改进,可用于更高质量的目标检测任务。
- DOTA-v2:该数据集包含 170 万个带定向边界框的实例和 11,268 张图像,主要用于航空目标检测。
- DOTA8:DOTA 数据集的一个包含 8 张图像的小型子集,用于测试和持续集成(CI)检查。
- DOTA128:一个包含 128 张图像的子集,所有图像都位于 train 文件夹中(同时用于 train 和 val)。与 DOTA8 相比,它提供了更多样性,同时仍便于进行 OBB 模型的初步开发和实验。
这些数据集针对 OBB 能够带来显著优势的场景进行了设计,例如航空和卫星图像分析。



