YOLO 格式 Format Guide

    用于 YOLO 目标检测模型的标注格式

    Annotation

    Specification

    YOLO 标注格式是一种简单的基于文本的标签格式,用于训练 YOLO(You Only Look Once)目标检测模型。数据集中的每张图像都有一个对应的 .txt 标注文件,文件名与图像相同(仅扩展名不同)。标注文件中的每一行代表一个边界框,包含五个以空格分隔的值:类别索引(整数)、中心点 x 坐标、中心点 y 坐标、框宽度和框高度。所有坐标均归一化到 [0, 1] 范围内,相对于图像尺寸。

    归一化约定意味着中心点 x 坐标和宽度除以图像宽度,中心点 y 坐标和高度除以图像高度。这使得标注与分辨率无关——无论图像如何缩放,同一个标注文件都能正确使用。类别索引是从零开始的整数,映射到单独配置文件(通常是 data.yaml)中定义的类别名称。没有目标的图像对应的标注文件为空或不存在。

    对于分割任务,YOLO 格式扩展为多边形标注,每行包含类别索引后跟定义多边形顶点的 x,y 坐标对。对于旋转边界框(OBB),格式使用类别索引后跟四个 x,y 角点坐标对。对于姿态估计,关键点以 x,y,可见度 三元组的形式附加在边界框之后。Ultralytics YOLOv8 框架已将这些扩展格式标准化,涵盖检测、分割、分类、姿态估计和旋转边界框任务。

    When to Use YOLO 格式

    当使用 YOLO 系列模型进行训练时应使用 YOLO 格式——包括 YOLOv5、YOLOv7、YOLOv8、YOLOv9、YOLOv10、YOLO11 或通过 Ultralytics 框架使用的 RT-DETR。YOLO 是实时应用中最流行的目标检测架构,该标注格式得到所有主要标注工具的支持,包括 Label Studio、CVAT、Roboflow、Labelbox 和 V7。如果你的应用场景涉及实时目标检测,YOLO 格式和训练流水线很可能是最快的部署路径。

    当你的工作流以 YOLO 系列模型为中心,且偏好每张图像对应一个文本文件的简洁方式时,应选择 YOLO 格式而非 COCO 格式。YOLO 格式更容易手动检查、编辑和进行版本控制,因为每个标注都是一个小型文本文件,而非一个大型 JSON 文件。它也避免了 COCO 嵌套 JSON 结构(包含独立的 category、annotation 和 image 字典)的复杂性。

    当需要存储丰富的标注元数据(标注者 ID、置信度分数、标注时间戳),任务需要超出 YOLO 多边形格式支持范围的非矩形标注,或你正在训练期望 COCO、VOC 或其他标注格式的非 YOLO 系列模型时,YOLO 格式不太适用。

    Schema / Structure

    text
    YOLO Detection Format (per line):
    <class_id> <x_center> <y_center> <width> <height>
    
    Where:
      class_id  - Integer class index (0-based)
      x_center  - Bounding box center X (normalized 0.0-1.0)
      y_center  - Bounding box center Y (normalized 0.0-1.0)
      width     - Bounding box width (normalized 0.0-1.0)
      height    - Bounding box height (normalized 0.0-1.0)
    
    YOLO Segmentation Format (per line):
    <class_id> <x1> <y1> <x2> <y2> ... <xn> <yn>
    
    Dataset Directory Structure:
    dataset/
    ├── data.yaml            # Class names and paths
    ├── train/
    │   ├── images/
    │   │   ├── img001.jpg
    │   │   └── img002.jpg
    │   └── labels/
    │       ├── img001.txt
    │       └── img002.txt
    ├── val/
    │   ├── images/
    │   └── labels/
    └── test/
        ├── images/
        └── labels/
    YOLO 标注格式规范,包含检测、分割和目录结构

    Example Data

    yaml
    # data.yaml - Dataset configuration
    path: ./dataset
    train: train/images
    val: val/images
    test: test/images
    names:
      0: person
      1: car
      2: bicycle
      3: traffic_light
    
    # --- labels/img001.txt ---
    # Two people and one car detected in the image
    0 0.4531 0.3275 0.1200 0.4500
    0 0.7125 0.4100 0.0950 0.3800
    1 0.2800 0.5500 0.3200 0.2800
    
    # --- labels/img002.txt ---
    # One bicycle and one traffic light
    2 0.6200 0.6800 0.1500 0.2200
    3 0.1500 0.1200 0.0400 0.0800
    YOLO 数据集配置文件(data.yaml)和目标检测标注文件

    Ertas Support

    Ertas Data Suite 支持 YOLO 格式数据集的计算机视觉训练数据准备。你可以导入 YOLO 格式的标注数据集,进行数据质量检查,包括标注验证(验证坐标范围、类别索引有效性和边界框合理性),并在保持 YOLO 目录结构的同时导出清理后的数据集。PII 脱敏可应用于关联的元数据文件,同时保持标注完整性。

    Related Resources

    Ship AI that runs on your users' devices.

    Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.