1. 程式人生 > >YOLOv2在自己的資料集上訓練以及測試

YOLOv2在自己的資料集上訓練以及測試

0.前言

因為yolo的作者不斷更新自己的版本,讓人使用和修改起來很不方便。因此這裡儲存一個自己的版本,並記錄如何在自己的資料集上訓練正框檢測模型。

1.YOLOv2程式碼備份:

2.修改檔案:

  1. voc.data檔案:修改’classes’為待檢測的類別數(不包括背景),修改’train’為‘train.txt’檔案的路徑,用來存放所有訓練資料的路徑,修改’names’為’voc.names’的路徑,用來存在前面各個類別的名稱,修改’backup’為存放模型引數檔案的路徑。

  2. tiny-yolo.cfg檔案:這裡以tiny-yolo.cfg檔案為例,說明如何修改網路配置檔案。在最下面’[region]’層引數中,修改’classes’為待檢測的類別數目,修改最後一個’[convolutional]’層的filter數目為num * (1 + classes + coords),其中’num’,’classes’,’coords’均來自’[region]’層。

  3. 在’data’目錄下新建自己的資料目錄,如’mix_data’,在’mix_data’下新建’images’目錄,裡面存放所有的訓練和測試影象(一般建議jpg格式),新建’labels’目錄,裡面存放每一張影象對應的label檔案,影象和對應的label檔案要求檔名一樣,label檔案的格式為txt形式,裡面每一行儲存一個object的標籤,格式為’class_id x y w h’,其中x, y, w, h都是用影象大小歸一化的。

  4. 在’data’目錄下新建’train.txt’檔案和’test.txt’檔案,分別存放訓練和測試的影象檔案路徑,建議都用絕對路徑。同時新建’voc.names’檔案,存放各個類別的名稱。

3. 編譯darknet

根據官網的提示,編譯darknet, 執行訓練指令和測試指令。