🔥 新作首發 🎮 天堂私服 YOLOv8 物件偵測實戰 — 從資料蒐集、模型訓練到即時偵測 立即閱讀 →
熱門系列
Like Share Discussion Bookmark Smile

J.J. Huang   2026-03-25   Python OpenCV 07.物件偵測與辨識篇   瀏覽次數:次   DMCA.com Protection Status

Python | OpenCV 資料標註

📚 前言

在上一篇 影片資料集建立與品質檢查 中,我們蒐集好了訓練所需的圖片。
接下來要進行的是 資料標註 (Data Annotation),也就是為每張圖片建立「正確答案」,讓模型知道圖片裡有什麼。

標註的品質直接影響模型的學習成效,錯誤或不一致的標註會讓模型學到錯誤的規則。

🔎 標註類型


圖:五種標註類型視覺對比 — 依序為圖片分類、語義分割、物件偵測、實例分割、關鍵點偵測

🏷 依照任務不同,標註方式也不同:

任務類型 英文名稱 標註方式 輸出形式
圖片分類 Image Classification 圖片放入對應類別資料夾 目錄結構即標籤,無額外檔案
語義分割 Semantic Segmentation 逐像素標記類別,同類別視為同一區塊 與原圖同尺寸的遮罩圖
物件偵測 Object Detection 框出矩形並標記類別,一張圖可多個框 每張圖一個 .txt,每行一個框
實例分割 Instance Segmentation 同語義分割,但每個實例有獨立遮罩 每個實例一張遮罩圖
關鍵點偵測 Keypoint Detection 標記特定部位座標,如五官、關節 座標列表,含 x、y 與可見性

🧠 標註格式說明


圖:物件偵測資料標註格式 Pascal VOC、COCO、YOLO 三種標註格式的對比

⚠️ 標註完成後,座標與類別資訊需要存成檔案。不同訓練工具對格式有各自要求,開始標註前先確認格式,避免事後轉換。

項目 Pascal VOC COCO YOLO
檔案類型 .xml(一圖一檔) .json(整個資料集一檔) .txt(一圖一檔)
座標系統 左上角 + 右下角 左上角 + 寬高 中心點 + 寬高
座標數值 像素絕對值 像素絕對值 歸一化(0 ~ 1)
常用工具 LabelImg Roboflow、CVAT LabelImg、CVAT
適用場景 部分舊版工具、傳統模型 大型比賽、研究開發、模型評測 YOLO 系列模型訓練

Pascal VOC 格式範例:

1
2
3
4
5
6
7
8
9
10
<annotation>
<filename>0001.jpg</filename>
<object>
<name>cat</name>
<bndbox>
<xmin>100</xmin><ymin>80</ymin>
<xmax>300</xmax><ymax>230</ymax>
</bndbox>
</object>
</annotation>

COCO 格式範例:

1
2
3
4
5
{
"images": [{"id": 1, "file_name": "0001.jpg", "width": 640, "height": 480}],
"annotations": [{"id": 1, "image_id": 1, "category_id": 0, "bbox": [100, 80, 200, 150]}],
"categories": [{"id": 0, "name": "cat"}]
}

YOLO 格式範例:

1
2
<class_id> <x_center> <y_center> <width> <height>
0 0.5 0.4 0.3 0.2

🛠️ 標註工具介紹

工具 類型 費用 自動標記 核心限制 / 特性 支援格式 適合對象
LabelImg 本地端 完全免費 開源,無任何功能限制 YOLO、Pascal VOC 預算為零、注重資料隱私的個人開發者
CVAT 網頁(可自架) 免費(自架)/ 付費(雲端版) ✅(需掛載模型) 線上版有儲存空間限制;自架(Docker)完全免費 YOLO、COCO、Pascal VOC 等 需要多人協作但不想支付高額月費的團隊
Roboflow 雲端 免費(公開資料集)/ 付費(私人) ✅(Auto-Label,付費功能) 免費版需公開資料集;私人專案與進階功能需付費 YOLOv5、YOLOv8、COCO 等 追求開發效率與資料管理的團隊

⚠️ 注意事項

  • 開始前先確認格式:標完才換格式需要全部重轉,事先確認訓練工具所需的格式,避免事後麻煩。
  • 免費版的資料限制:Roboflow 免費版資料集需公開,涉及商業或隱私資料請在付費前確認授權條款。
  • 格式不能混用:同一資料集的所有圖片必須使用同一種標註格式,不同格式混用會導致訓練失敗。

🎯 結語

了解標註類型、格式與工具之後,下一步就是實際動手標註。
下一篇進入 LabelImg 標註工具實戰,從安裝到操作一步步說明,並附上常見 bug 的修正方式。

📖 如在學習過程中遇到疑問,或是想了解更多相關主題,建議回顧一下 Python | OpenCV 系列導讀,掌握完整的章節目錄,方便快速找到你需要的內容。

註:以上參考了
LabelImg GitHub
CVAT 官方網站
Roboflow 官方網站
COCO Dataset 格式說明