YOLO Detection(最常用:目標偵測)
📌 label 檔格式(.txt)
每張圖片對應一個同名 .txt
class_id x_center y_center width height
範例
圖片:img001.jpg
標註:img001.txt
內容:
0 0.52 0.48 0.30 0.40
1 0.25 0.60 0.10 0.20
class id 從 0 開始
錯:1,2,3
對:0,1,2
YOLO Segmentation(分割)
class_id x1 y1 x2 y2 x3 y3 ...
範例:
0 0.1 0.2 0.3 0.4 0.5 0.6 0.2 0.1
限Python 10以下, 因此要建立不同的環境
官方下載
https://www.python.org/downloads/release/python-3100/
Windows installer (64-bit)
安裝時一定要勾
✔ Add Python to PATH
✔ Install launcher for all users
驗證
python --version
安裝虛擬環境
conda create --name labelImg_py309 python=3.9 -y
# 進入虛擬環境
conda activate labelImg_py309
# 離開虛擬環境
conda deactivate
安裝labelImg
pip install labelImg
進行人工標註
預先準備classes.txt
labels 目錄內要建立一個標註檔,檔名為classes.txt
啟動方法
labelImg [IMAGE_PATH] [PRE-DEFINED CLASS FILE]
或者用下列指令啟動後再選images與labels目錄
labelImg
緊密包裹:標註框應儘量緊密包圍物件,避免包含太多背景。
處理不同尺寸:YOLO 建議使用「郵箱模式 (Letterbox)」調整圖片,即在保持原始長寬比的同時,在邊緣填充像素以符合模型輸入尺寸(如 640x640),避免物體變形。
數據量:通常每個類別需要至少 1,500 張照片,總共至少 10,000 個標註物件,以獲得較好的訓練效果。
遮擋處理:若物件被部分遮擋,仍應標註其預期大小。
常見的標註工具包括 LabelImg (選用 YOLO 格式)、CVAT、Roboflow 等。
YOLO標註格式
class_id x_center y_center width height
範例:
一行 = 一個物件
0 0.50 0.45 0.20 0.30
1 0.70 0.60 0.15 0.25
class id 注意事項:
YOLO是用數字,不是文字
YOLO專案標準資料結構
mages = 圖片
labels = 標註txt
dataset/
├── images/
│ ├── train/
│ ├── val/
├── labels/
│ ├── train/
│ ├── val/
└── data.yaml
YOLO 環境建置
For YOLO
conda create --name yolo312 python=3.12 -y
conda activate yolo312
pip install ultralytics