gluoncv|gluoncv yolo3训练自己的数据集
gluoncv yolo3训练自己的数据集
1. 将所有的原始数据(每外包的标注数据)转化为统一的标注数据, raw2uniform.py
统一前:
C:\wild-k8-050-127.jpgh940 388 966 407C:\wild-k8-050-127.jpgr902 362 940 401
统一后:
wild-k2-820-044.jpgcar752 362 769 376wild-k2-820-044.jpgvan800 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 433q 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.pytrain_dataset = gdata.VOCDetection(splits=[(2018, 'train'),])val_dataset = gdata.VOCDetection(splits=[(2018, 'val')])
更改训练类别
# gluoncv/data/pascal_voc/detection.pyCLASSES = ['car']
推理的时候 【gluoncv|gluoncv yolo3训练自己的数据集】推理的时候修改--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/
推荐阅读
- 绘本讲师训练营【24期】14/21阅读原创《小黑鱼》
- 绘本讲师训练营【18期】14/21《我的情绪小怪兽》故事会新体验
- 合理情绪疗法之试用|李克富思维训练营56/90
- 绘本讲师训练营7期9/21阅读原创《蜗牛屋|绘本讲师训练营7期9/21阅读原创《蜗牛屋 》
- 拆书方法训练营
- 阿菘的ScalersTalk第五轮新概念朗读持续力训练Day15|阿菘的ScalersTalk第五轮新概念朗读持续力训练Day15 20191025
- 特种兵训练第四天
- 2018-09-03(李克富视角点评训练营81/90)|2018-09-03(李克富视角点评训练营81/90) 那只蛙从“井”爬出来又进入了“隧道”
- 学员+3组杨子涓+202002RIA训练营W3D2+苏格拉底提问法
- 绘本讲师训练营【28期】15/21阅读原创《活了100万次的猫》