gluoncv yolo3训练自己的数据集

gluoncv yolo3训练自己的数据集

1. 将所有的原始数据(每外包的标注数据)转化为统一的标注数据, raw2uniform.py

统一前:


C:\wild-k8-050-127.jpg    h    940 388 966 407

C:\wild-k8-050-127.jpg    r    902 362 940 401

统一后:


wild-k2-820-044.jpg    car    752 362 769 376

wild-k2-820-044.jpg    van    800 353 820 376

2. 将总的标注数据转换成单个的,一张图片一个txt的标注数据,2single_txt_label.py

3. 将每一个txt文件转换为xml文件,txt2xml.py

以下同keras_yolo3项目

1. 在JPEGImages文件夹下放所有的图片

2. 在LabelSets文件夹下放每一个张图片的txt 标签文件,长这样:


q 269 142 511 433

q 104 664 472 757

第一个代表类别,第二个代表坐标

3. 用DATA/目录下的txt_toXML2.py 生成xml文件,每个xml文件对应一张图片,名字与图片的名字对应

4. 用DATA/目录下的generate_Main.py将数据分割成训练集,测试集,验证集,训练验证集

训练阶段
准备自制的数据

数据文件夹格式应该与pascal voc一样:


VOCtemplate

└── VOC2018

    ├── Annotations

    │   └── 000001.xml

    ├── ImageSets

    │   └── Main

    │       └── train.txt

    └── JPEGImages

        └── 000001.jpg

xml包含框位置,train.txt包含图片与对应xml索引

将文件放在与VOC2007,VOC2012并列的位置


~/.mxnet/datasets/voc/VOC2007

~/.mxnet/datasets/voc/VOC2012

~/.mxnet/datasets/voc/VOC2018

更改读数据的路径

# train_yolov3.py

train_dataset = gdata.VOCDetection(splits=[(2018, 'train'),])             

val_dataset = gdata.VOCDetection(splits=[(2018, 'val')])

更改训练类别

# gluoncv/data/pascal_voc/detection.py

CLASSES = ['car']

推理的时候

推理的时候修改--pretrained这个参数,指向训练好的参数

自制数据:https://gluon-cv.mxnet.io/build/examples_datasets/detection_custom.html

原文:http://www.huanghanqing.com/2018/11/18/gluoncv-yolo3%E8%AE%AD%E7%BB%83%E8%87%AA%E5%B7%B1%E7%9A%84%E6%95%B0%E6%8D%AE%E9%9B%86/

你可能感兴趣的:(gluoncv yolo3训练自己的数据集)