我們在使用mmdetection中神經網絡訓練自己的數據集時,工具中大部分的網絡模型要求使用的數據格式要同COCO,COCO數據集的標註文件是json的格式,但是我們自己標註的annotation文件多是xml文件。接下來我將介紹如何用mmdetection訓練自己標註的數據集。
一、mmdetection的安裝(目前官方只支持Linux系統安裝)
1,安裝環境:
- Ubuntu16.04
- CUDA9.0
- CUDNN8.0
- Pytorch1.1
- Python3.7
2,這裏建議使用單獨的虛擬環境:
1,終端創建虛擬環境:conda create -n 虛擬環境名稱 python=3.7
2,進入虛擬環境: source activate 虛擬環境名稱 (退出指令:source deactivate)
3,利用conda 安裝pytorch 和torchvision
conda install pytorch torchvision -c pytorch
4,下載mmdetection工具並配置虛擬環境:
下載地址:https://github.com/python-bookworm/mmdetection-new
5,安裝依賴庫:
pip install -r requirements.txt
二、配置cascade_rcnn訓練數據:
1,數據準備:
訓練的原始樣本圖片放到mmdetection/data/coco/train2017文件夾下;用於驗證的原始圖片數據放data/coco/val2017
訓練的標註數據(xml)放到mmdetection/data/coco/annotations/train文件夾;用於驗證的標準數據(xml)放
mmdetection/data/coco/annotations/val文件夾;
2,xml轉json:
打開mmdetection/xml2json.py,修改convert()中的文件路徑,運行xml2json.py;
3,網絡參數配置:cascade_rcnn_r50_fpn_1x.py
打開mmdetection/configs/cascade_rcnn_r50_fpn_1x.py:
1,修改num_classes:#分類器的類別數量+1,+1是多了一個背景的類型;
2,修改data_root:#數據集根目錄
3,修改img_scale:#輸入的圖像尺寸
4,修改imgs_per_gpu:#每個gpu計算的圖像數量
5,修改workers_per_gpu:#每個gpu分配的線程數
6,修改ann_file和img_prefix:#數據集annotation路徑和數據集路徑
7,修改optimizer中的lr:#學習率,計算公式:imgs_per_gpu*0.00125
8,修改total_epochs:#訓練輪數
9,work_dir:#log文件和模型文件存儲路徑
4,打開mmdetection/mmdet/datasets/coco.py:
修改CLASSES中類別:#修改成自己的類別
三、運行train.py開始訓練模型:
終端運行指令:python tools/train.py configs/cascade_rcnn_r50_fpn_1x.py
注:python的版本爲3.6或3.7。