Yolo標註
本指南將詳細說明在 Ultralytics YOLOv11 模型訓練前,如何準備標記資料集。內容包含資料收集與整理、標註工具選擇、標籤格式規範、資料集目錄結構與配置檔準備,協助您順利完成資料前處理工作。
前置準備
資料收集
- 多樣性:收集與實際應用場景相符的影像資料,確保涵蓋不同光線、角度、背景與環境條件。
- 格式與品質:建議統一使用
.jpg
或.png
等常見格式,確保影像解析度足夠,使欲標註之目標清晰可見。
資料清理
- 篩選不良影像:移除模糊、過暗、解析度過低或不相關的影像。
- 統一尺寸與比例:雖然 YOLO 對不同尺寸具備彈性,但保持影像一致性有助於訓練穩定。
標註工具選擇
選擇一款易於使用且能輸出 YOLO 格式標籤的標註工具:
LabelImg:簡易 GUI 工具,支援直接產生 YOLO 格式標籤檔案。
GitHub:https://github.com/tzutalin/labelImgLabelme:可標註多邊形、矩形等形狀,後續可轉換至 YOLO 格式。
GitHub:https://github.com/wkentaro/labelmeCVAT:強大且支援團隊協作的線上標註工具。
GitHub:https://github.com/opencv/cvatRoboflow:線上標註與增強平臺,可直接匯出 YOLO 格式標籤。
網站:https://roboflow.com/
請在選擇工具後確定該工具支援 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
。
計算寬高與中心點:
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
歸一化(相對於
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 | coco8 |
images
:存放影像,分別放入train
、val
、test
目錄。labels
:對應images
中的結構存放標籤檔,每張影像對應一個同名 TXT 檔案。
類別名稱檔 (classes.txt)
建立 classes.txt
列出所有物件類別名稱(每行一個):
class_id=0
對應 person
,class_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 資料標記和組織基礎,為後續的模型訓練與優化奠定良好基礎。