在进行Oriented Bounding Boxes(OBB)对象检测时,需要一个详尽的数据集。本文将解释与UltralyticsYOLO模型兼容的各种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
目前,以下带有定向边界框的数据集得到支持:
对于希望引入自己的带有定向边界框的数据集的用户,请确保与上述提到的“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训练:
这些数据集适用于OBB提供显著优势的场景,例如航拍和卫星图像分析。