YOLOv8 自訓練指南
YOLOv8 是一個多功能的 AI 視覺處理平台,不僅可用於物件偵測,還能處理圖像分類、分割、追蹤,以及姿態估計等任務。以下介紹 YOLOv8 自訓練時可使用的工具與相關流程。
1. 資料標記工具
Roboflow:線上數據管理平台,提供圖像標註、數據清理、轉換和管理功能,可輸出 YOLO 格式數據,並支援資料增強。
LabelImg:本地端圖像標註工具,可安裝於電腦並進行標註。
Labelme:適用於圖像分割任務,能產生 Mask 圖像。
Label Studio:開源數據標記工具,提供簡單 UI,支援圖像與影片標記。
CVAT:互動式影片與圖像標註工具。
Makesense.ai:免費線上標記工具,瀏覽器即可使用。
2. 資料集準備
資料夾結構:YOLOv8 的資料集通常包含以下資料夾:
train/
:存放訓練圖片與標籤檔。valid/
:存放驗證圖片與標籤檔。test/
(非必要):存放測試圖片與標籤檔。各資料夾內需有
images/
(圖片) 與labels/
(標籤檔)。
標籤格式:使用 YOLOv5 PyTorch TXT 格式,標籤檔以 TXT 格式儲存,包含類別與邊界框資訊。
資料分割:圖片分割比例通常為
8:2
(訓練集:驗證集) 或其他適當比例。
3. YAML 參數設定檔
data.yaml
用於描述資料集位置與類別資訊,包含以下內容:
path: /path/to/dataset
train: train/images
val: valid/images
test: test/images # 非必要
nc: 類別數量
names: ['class1', 'class2', 'class3']
4. 模型訓練
選擇模型:
yolov8n
(nano) - 適合資源受限環境。yolov8s
(small) - 速度與精度均衡。yolov8m
(medium) - 適合中等規模應用。yolov8l
(large) - 高精度模型。yolov8x
(extra-large) - 最精確但計算需求最高。
訓練方式:
命令行模式:
yolo detect train data=data.yaml model=yolov8n.pt epochs=100 imgsz=640
Python 程式碼模式:
from ultralytics import YOLO model = YOLO('yolov8n.pt') model.train(data='data.yaml', epochs=100, imgsz=640)
訓練參數:
data
:資料集 YAML 檔路徑。model
:選擇的 YOLOv8 預訓練模型。epochs
:訓練輪數。imgsz
:輸入圖像大小。device
:使用 CPU 或 GPU。batch
:批次大小。workers
:數據加載器的工作數。
5. 模型驗證與測試
驗證:
訓練過程中,模型會定期在驗證集上評估性能,以調整參數並防止過擬合。
測試:
訓練完成後,使用測試集評估最終性能。
測試方式:
命令行模式:
yolo detect predict model=best.pt source=test/images
Python 程式碼模式:
results = model.predict(source='test/images')
輸出結果:
包含帶有邊界框的圖像、標籤資訊與效能指標。
6. Ultralytics HUB
Ultralytics HUB 是一個 AI 平台,支援創建、訓練與部署機器學習模型,並可與 Roboflow 結合,方便管理數據與分析結果。
總結
YOLOv8 提供完整的自訓練流程,從資料標註到模型訓練與測試,均有相應工具可使用。
Roboflow 簡化資料標註與準備流程。
Ultralytics HUB 協助模型管理與部署。
多種訓練方式 可依需求選擇命令行或 Python API。
使用者可根據需求選擇適合的工具與流程來訓練 YOLOv8 模型。
沒有留言:
張貼留言