Yolo標註

本指南將詳細說明在 Ultralytics YOLOv11 模型訓練前,如何準備標記資料集。內容包含資料收集與整理、標註工具選擇、標籤格式規範、資料集目錄結構與配置檔準備,協助您順利完成資料前處理工作。

前置準備

資料收集

  • 多樣性:收集與實際應用場景相符的影像資料,確保涵蓋不同光線、角度、背景與環境條件。
  • 格式與品質:建議統一使用 .jpg.png 等常見格式,確保影像解析度足夠,使欲標註之目標清晰可見。

資料清理

  • 篩選不良影像:移除模糊、過暗、解析度過低或不相關的影像。
  • 統一尺寸與比例:雖然 YOLO 對不同尺寸具備彈性,但保持影像一致性有助於訓練穩定。

標註工具選擇

選擇一款易於使用且能輸出 YOLO 格式標籤的標註工具:

請在選擇工具後確定該工具支援 YOLO 格式輸出,或能方便地轉換標註格式。

YOLO 標籤格式說明

每張影像對應一個 .txt 標籤檔案。標籤檔中每行代表一個物件的邊界框資訊,格式如下:

class_id center_x center_y width height

  • class_id: 類別索引(從0開始)。
  • center_x, center_y: 物件框中心座標,相對於整張影像的寬高進行歸一化(範圍0~1)。
  • width, height: 物件框寬度與高度,同樣以影像尺寸做歸一化(範圍0~1)。

計算示例

假設影像大小為 1920x1080 (寬x高),已知物件框左上角 (x_min, y_min) = (320, 200),右下角 (x_max, y_max) = (480, 400) 且其 class_id = 0

  1. 計算寬高與中心點:

    • bbox_width = x_max - x_min = 480 - 320 = 160
    • bbox_height = y_max - y_min = 400 - 200 = 200
    • center_x = x_min + bbox_width/2 = 320 + 160/2 = 400
    • center_y = y_min + bbox_height/2 = 200 + 100 = 300
  2. 歸一化(相對於 1920x1080):

    • center_x_norm = 400 / 1920 ≈ 0.2083
    • center_y_norm = 300 / 1080 ≈ 0.2778
    • width_norm = 160 / 1920 ≈ 0.0833
    • height_norm = 200 / 1080 ≈ 0.1852

標籤行為:
0 0.2083 0.2778 0.0833 0.1852

資料集目錄結構

Ultralytics YOLO 系列(包括 YOLOv11)通常使用下列資料夾結構:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
coco8
├── images
│   ├── train
│   │   ├── 000000000009.jpg
│   │   ├── 000000000025.jpg
│   │   ├── 000000000030.jpg
│   │   └── 000000000034.jpg
│   └── val
│   ├── 000000000036.jpg
│   ├── 000000000042.jpg
│   ├── 000000000049.jpg
│   └── 000000000061.jpg
├── labels
│   ├── train
│   │   ├── 000000000009.txt
│   │   ├── 000000000025.txt
│   │   ├── 000000000030.txt
│   │   └── 000000000034.txt
│   ├── train.cache
│   ├── val
│   │   ├── 000000000036.txt
│   │   ├── 000000000042.txt
│   │   ├── 000000000049.txt
│   │   └── 000000000061.txt
│   └── val.cache
├── LICENSE
└── README.md
  • images:存放影像,分別放入 trainvaltest 目錄。
  • labels:對應 images 中的結構存放標籤檔,每張影像對應一個同名 TXT 檔案。

類別名稱檔 (classes.txt)

建立 classes.txt 列出所有物件類別名稱(每行一個):

class_id=0 對應 personclass_id=1 對應 car,以此類推。

設定資料集描述檔

Ultralytics YOLO 使用 .yaml 檔描述資料集路徑和類別資訊。例如 mydataset.yaml

yaml

  • train: path/to/datasets/mydataset/images/train
  • val: path/to/datasets/mydataset/images/val
  • test: path/to/datasets/mydataset/images/test

資料增強與平衡

在訓練前可考慮使用資料增強(data augmentation)技術,如:

翻轉、旋轉、縮放
顏色抖動(亮度、對比度、飽和度、色相變化)
隨機裁切、模糊、噪聲
透過增強手段可提高模型的泛化能力。同時檢視各類別的資料量,若某些類別樣本過少,考慮額外收集或增強,以避免訓練後類別不平衡。

總結

收集並清理資料,確保影像品質及多樣性。
使用合適的標註工具產生 YOLO 格式的標籤檔 (TXT)。
確保標籤格式正確,並已經過歸一化處理。
按照 YOLO 要求的目錄結構放置影像和標籤檔。
建立並填寫 classes.txt 及 .yaml 配置檔案。
考慮資料增強,以提升模型訓練表現與泛化能力。
準備就緒後,即可開始使用 Ultralytics YOLOv11 進行訓練、驗證及測試。
完成以上步驟後,您將具備完善的 YOLOv11 資料標記和組織基礎,為後續的模型訓練與優化奠定良好基礎。