Yolov9 實作練習

內容全參考影片 : https://www.youtube.com/watch?v=tMwyxKttZd0&t=60s

首先建立一個Conda的虛擬環境,之後進入後先下載labelImg

(Labelimg) C:\Users\pudy6>pip install labelImg

如果labelImg閃退,建議不用進到虛擬環境,直接去下載LabelImg

建立一個dataset資料夾

dataset
├─images
│  ├─test(測試集)
│  ├─train(訓練集)
│  └─val(驗證集)
└─labels
    ├─test
    ├─train
    └─val

8:1:1

點擊Open Dir打開訓練集的圖片資料夾。

接著要選擇剛剛資料夾中的Label資料夾

要改成YOLO的格式,就可以開始框了

建議開啟這兩個。

接著下載yolov9的專案包,解壓縮後進入資料夾。

我將yolov9-main改為yolov9,依據個人喜好。

(Labelimg) C:\Users\pudy6\Desktop\yolov9>pip install -r requirements.txt

接著安裝相關套件,然後進入到PyTorch依據自己的版本下載。

安裝的過程我們可以先將dataset搬到data底下。

接著更改coco.yaml這支檔案我將它改名為datasets.yaml。

train.py 參數解析:

參數你目前設定值說明
--weightsyolov9-c-converted.pt預訓練權重(模型初始值)
--datadata/datasets.yaml資料集配置(train/val 路徑與類別)
--hypdata/hyps/hyp.scratch-high.yaml超參數設定(學習率、增強等)
--epochs100訓練回合數
--batch-size4每次訓練批次(因為 GPU 6GB 限制)
--img512訓練圖片大小(寬高)
--device0使用 GPU 0(RTX 2060)
--workers1資料載入執行緒數量(Windows 建議設低)
--cache開啟預先載入影像,加快訓練速度
--optimizer預設 SGD最佳化器(可改為 Adam / AdamW)
--freeze[0]不凍結層(全部訓練)
--single-clsFalse多類別訓練
--projectruns/train輸出資料夾
--nameexp7訓練結果名稱
--save-period-1不定期保存模型(僅保存最佳/最後)
--novalFalse每個 epoch 都驗證
--patience100提前停止條件(未改)

超參數檔(hyp.scratch-high.yaml)主要內容:

超參數你目前設定說明
lr00.01初始學習率
lrf0.01最終學習率比例
momentum0.937動量(影響更新穩定性)
weight_decay0.0005權重衰減(防止過擬合)
box7.5邊界框損失權重
cls0.5類別損失權重
obj0.7物件置信度損失權重
iou_t0.2IoU 閾值
fl_gamma0.0Focal Loss 參數
hsv_h/s/v0.015 / 0.7 / 0.4顏色增強(色相、飽和度、亮度)
translate0.1平移比例
scale0.9縮放比例
mixup0.15圖像混合比例
copy_paste0.3分割貼上比例

調整完後就可以開始訓練。

二、驗證指令 val.py

(Labelimg) C:\Users\pudy6\Desktop\yolov9>python val.py

跑完後你會在runs\val\exp2看到驗證後的圖像。

YOLOv9 訓練相關問題

❌ 問題 1:File not found: data/hyps/hyp.scratch-low.yaml

原因: 檔案路徑錯誤或名稱不一致。

✅ 解法:
確定你有這些檔案:

yolov9/data/hyps/hyp.scratch-low.yaml
yolov9/data/hyps/hyp.scratch-high.yaml

如果沒有,從官方 repo 重新下載或複製一份。

Table Of Contents

stackpenguin

SearchButton