gluoncv yolo3訓(xùn)練自己的數(shù)據(jù)集
1. 將所有的原始數(shù)據(jù)(每外包的標(biāo)注數(shù)據(jù))轉(zhuǎn)化為統(tǒng)一的標(biāo)注數(shù)據(jù), raw2uniform.py
統(tǒng)一前:
C:\wild-k8-050-127.jpg h 940 388 966 407
C:\wild-k8-050-127.jpg r 902 362 940 401
統(tǒng)一后:
wild-k2-820-044.jpg car 752 362 769 376
wild-k2-820-044.jpg van 800 353 820 376
2. 將總的標(biāo)注數(shù)據(jù)轉(zhuǎn)換成單個的鹃唯,一張圖片一個txt的標(biāo)注數(shù)據(jù)费彼,2single_txt_label.py
3. 將每一個txt文件轉(zhuǎn)換為xml文件,txt2xml.py
以下同keras_yolo3項(xiàng)目
1. 在JPEGImages文件夾下放所有的圖片
2. 在LabelSets文件夾下放每一個張圖片的txt 標(biāo)簽文件蚪拦,長這樣:
q 269 142 511 433
q 104 664 472 757
第一個代表類別,第二個代表坐標(biāo)
3. 用DATA/目錄下的txt_toXML2.py 生成xml文件冻押,每個xml文件對應(yīng)一張圖片驰贷,名字與圖片的名字對應(yīng)
4. 用DATA/目錄下的generate_Main.py將數(shù)據(jù)分割成訓(xùn)練集,測試集洛巢,驗(yàn)證集括袒,訓(xùn)練驗(yàn)證集
訓(xùn)練階段
準(zhǔn)備自制的數(shù)據(jù)
數(shù)據(jù)文件夾格式應(yīng)該與pascal voc一樣:
VOCtemplate
└── VOC2018
├── Annotations
│ └── 000001.xml
├── ImageSets
│ └── Main
│ └── train.txt
└── JPEGImages
└── 000001.jpg
xml包含框位置,train.txt包含圖片與對應(yīng)xml索引
將文件放在與VOC2007,VOC2012并列的位置
~/.mxnet/datasets/voc/VOC2007
~/.mxnet/datasets/voc/VOC2012
~/.mxnet/datasets/voc/VOC2018
更改讀數(shù)據(jù)的路徑
# train_yolov3.py
train_dataset = gdata.VOCDetection(splits=[(2018, 'train'),])
val_dataset = gdata.VOCDetection(splits=[(2018, 'val')])
更改訓(xùn)練類別
# gluoncv/data/pascal_voc/detection.py
CLASSES = ['car']
推理的時候
推理的時候修改--pretrained這個參數(shù)稿茉,指向訓(xùn)練好的參數(shù)
自制數(shù)據(jù):https://gluon-cv.mxnet.io/build/examples_datasets/detection_custom.html