YOLO 簡單訓練自己的資料集
使用工具
作業系統
GPU
安裝 YOLO Darknet 環境與測試
安裝YOLO
- 下載 YOLO 官方的程式碼
- 進入該資料集
- (Optional) GPU 版本需修改編譯設定檔 Makefile,將 GPU 與 CUDNN 設定為 1
- 開始編譯
測試
- 下載預訓練好的權重
- 測試辨識,即會得到一張預測結果圖 predictions.jpg
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
訓練自己的資料集(以分類汽車、機車、行人, 訓練yolov3-tiny為例)
將資料轉換成 YOLO 的格式
圖片資料夾
- image
- 00001.jpg
- 00002.jpg
.
.
- 08000.jpg
標籤資料夾
- label
- 00001.xml
- 00002.xml
.
.
- 08000.xml
下載voc2yolo.py
,此檔案可將voc格式轉換成yolo格式(下載連結)
修改voc2yolo.py
裡的圖片與標籤資料夾的路徑
運行voc2yolo.py
將voc的格式轉換成YOLO的格式,得到以下的資料夾
YOLO格式的標籤與圖片的資料夾
- yolo
- 00001.jpg
- 00001.txt
- 00002.jpg
- 00002.txt
.
.
- 08000.jpg
- 08000.txt
準備訓練資料
資料夾架構
- cfg_own_data
- obj.data
- obj.names
- train.txt
- valid.txt
- yolov3-tiny.cfg
- obj.data:設定類別數目、訓練與驗證圖片位置的紀錄檔、obj.names的位置、儲存權重的資料夾
- obj.names:設定類別的名稱
下載write_train_valid_txt.py
,此檔案可將資料集隨機打散成訓練集和測試集(下載連結)
修改write_train_valid_txt.py
的圖片路徑
運行write_train_valid_txt.py
即可隨機打亂資料分成train.txt與valid.txt
- train.txt
- valid.txt
- yolov3-tiny.cfg
從 cfg 資料夾中複製 yolov3-tiny.cfg 到這個資料夾中,並修改訓練設定
1.
- 第一個 Detector,filters 通常設為
- 第二個 Detector
開始訓練
在 darknet 資料夾下,創一個資料夾放訓練時輸出的權重檔
下載在ImageNet預訓練好的模型 darknet53.conv.74
開始訓練
每 100 個 batch 會輸出一次 weight檔,下圖為訓練過程的 log

若圖片數量至上千張,average loss error 達 0.06 即可停止;
若圖片數量只有幾百張,average loss error 達 0.6 即可停止
測試訓練結果
