Ultralytics YOLO模型的Oriented Bounding Boxes数据集格式指南

在进行Oriented Bounding Boxes(OBB)对象检测时,需要一个详尽的数据集。本文将解释与UltralyticsYOLO模型兼容的各种OBB数据集格式,提供对它们结构、应用和格式转换方法的见解。

支持的OBB数据集格式

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

class_index x1 y1 x2 y2 x3 y3 x4 y4

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

例如,对于上述图像,包含一个类别为0的物体的*.txt标签文件,采用OBB格式,可能如下所示:

0 0.780811 0.743961 0.782371 0.74686 0.777691 0.752174 0.776131 0.749758

要使用这些OBB格式训练模型,可以采用以下方法:

以下是使用Python和命令行界面(CLI)训练模型的示例。

from ultralytics import YOLO # 创建一个新的YOLO11n-OBB模型 model = YOLO("yolo11n-obb.yaml") # 在DOTAv1数据集上训练模型 results = model.train(data="DOTAv1.yaml", epochs=100, imgsz=1024) # 使用CLI训练新的YOLO11n-OBB模型 yolo obb train data=DOTAv1.yaml model=yolo11n-obb.pt epochs=100 imgsz=1024

支持的数据集

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

  • DOTA-v1:DOTA数据集的第一个版本,提供了一系列带有定向边界框的航拍图像,用于对象检测。
  • DOTA-v1.5:DOTA数据集的中间版本,提供了额外的注释和改进,用于增强对象检测任务。
  • DOTA-v2:DOTA(航拍图像中的对象检测大型数据集)的第二个版本,强调从航拍视角进行检测,包含带有定向边界框的1.7百万个实例和11,268张图像。
  • DOTA8:完整的DOTA数据集的一个小的8图像子集,适用于测试工作流程和Ultralytics存储库中的OBB训练的持续集成(CI)检查。

整合自己的OBB数据集

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

从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)是一种边界框注释,其中框可以旋转以更紧密地对齐被检测的物体,而不仅仅是与轴对齐。这在航拍或卫星图像中特别有用,因为物体可能不会与图像轴对齐。在UltralyticsYOLO模型中,OBB由YOLO OBB格式中的四个角点表示。这样可以更准确地进行对象检测,因为边界框可以旋转以更好地适应物体。

可以使用Ultralytics的convert_dota_to_yolo_obb函数将DOTA数据集标签转换为YOLO OBB格式。这种转换确保与UltralyticsYOLO模型的兼容性,使能够利用OBB功能进行增强的对象检测。以下是一个快速示例:

from ultralytics.data.converter import convert_dota_to_yolo_obb convert_dota_to_yolo_obb("path/to/DOTA")

此脚本将重新格式化DOTA注释为与YOLO兼容的格式。

在具有定向边界框(OBB)的数据集上训练YOLO11模型,需要确保数据集处于YOLO OBB格式,然后使用Ultralytics API来训练模型。以下是Python和CLI的示例:

from ultralytics import YOLO # 创建一个新的YOLO11n-OBB模型 model = YOLO("yolo11n-obb.yaml") # 在自定义数据集上训练模型 results = model.train(data="your_dataset.yaml", epochs=100, imgsz=640) # 在自定义数据集上训练新的YOLO11n-OBB模型 yolo obb train data=your_dataset.yaml model=yolo11n-obb.yaml epochs=100 imgsz=640

这确保模型利用详细的OBB注释,提高了检测精度。

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

  • DOTA-v1:DOTA数据集的第一个版本,提供了一系列带有定向边界框的航拍图像,用于对象检测。
  • DOTA-v1.5:DOTA数据集的中间版本,提供了额外的注释和改进,用于增强对象检测任务。
  • DOTA-v2:这个数据集包括1.7百万个带有定向边界框的实例和11,268张图像,主要关注航拍对象检测。
  • DOTA8:DOTA数据集的一个小的8图像子集,用于测试和持续集成(CI)检查。

这些数据集适用于OBB提供显著优势的场景,例如航拍和卫星图像分析。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485