tf-faster-rcnn 训练自己的数据,并运行demo测试
(主要参考:https://blog.csdn.net/char_QwQ/article/details/80980505
https://blog.csdn.net/hitzijiyingcai/article/details/81636455)
一.划分训练验证以及测试集,生成四个txt文档
上一篇博客已经介绍如何标记数据,获得xml文件(https://blog.csdn.net/weixin_41440103/article/details/86433850),现在对其进行划分,我们采用python3代码,具体如下:
import os import random trainval_percent = 0.5 train_percent = 0.5 xmlfilepath = '/home/hqd/桌面/VOC2010/Annotations' txtsavepath = '/home/hqd/桌面/VOC2010/ImageSets/Main' total_xml = os.listdir(xmlfilepath) num=len(total_xml) list=range(num) tv=int(num*trainval_percent) tr=int(tv*train_percent) trainval= random.sample(list,tv) train=random.sample(trainval,tr) ftrainval = open(txtsavepath+'/trainval.txt', 'w') ftest = open(txtsavepath+'/test.txt', 'w') ftrain = open(txtsavepath+'/train.txt', 'w') fval = open(txtsavepath+'/val.txt', 'w') for i in list: name=total_xml[i][:-4]+'\n' if i in trainval: ftrainval.write(name) if i in train: ftrain.write(name) else: fval.write(name) else: ftest.write(name) ftrainval.close() ftrain.close() fval.close() ftest .close()
二.替换及更改
1.首先,在tf-faster-rcnn/lib/datasets目录下的pascal_voc.py里第36行更改自己的类别,'background’切记不可删掉,把后面的原来的20个label换成自己的,不用更改类别数目,也没有地方可以更改。
2.然后把你的xml文件放置在tf-faster-rcnn/data/VOCdevkit2007/VOC2007/Annotations路径下,记得把原来的删掉;同时把你的jpg文件放在tf-faster-rcnn/data/VOCdevkit2007/VOC2007/JPEGImages路径下,xml和jpg替换完了,现在该txt了,把之前matlab生成是四个txt文档放在tf-faster-rcnn/data/VOCdevkit2007/VOC2007/ImageSets/Layout 和 tf-faster-rcnn/data/VOCdevkit2007/VOC2007/ImageSets/Main。
3.了节省时间并排除错误,我把迭代次数只设置了20次,把./experiments/scripts/train_faster_rcnn.sh里的第22行把ITERS=70000改成ITERS=20,同时记得把./experiments/scripts/test_faster_rcnn.sh的ITERS也改
4.在开始训练之前,还需要把之前训练产生的模型以及cache删除掉,分别在tf-faster-rcnn/output/vgg16/voc_2007_trainval/default路径下和tf-faster-rcnn/data/cache路径下.
5.修改tools/demo.py.这里的数字是类别+1
net.create_architecture("TEST",2, tag='default',anchor_scales=[8, 16, 32])
5.就可以开始训练了:
./experiments/scripts/train_faster_rcnn.sh 0 pascal_voc vgg16
三.可以做额外的修改.
四.demo测试
1.修改tools/demo.py
(1)修改测试图片的名字,并在data/demo里添加测试图片
(2)将训练结果里/output/vgg16/voc_2007_trainval/default的其中一个文件后缀修改为ckpt,然后将这四个文件拷贝到/data/output/vgg16/voc_2007_trainval+voc_2012_trainval/default下
(3)修改class
(4)修改为自己训练的模型
(5)修改类别
(6)终端运行代码
python ./tools/demo.py --net vgg16
假如不想那么麻烦输入参数,可以在demo的parse_args()里修改默认参数
parser.add_argument(‘–net’, dest=’demo_net’, help=’Network to use [myvgg1024]’,
choices=NETS.keys(), default=’myvgg1024’)
这样只需要输入 ./tools/demo.py 就可以了
- faster-rcnn训练和测试自己的数据(VGG/ResNet)以及遇到的问题
- tf-faster-rcnn demo测试与训练总结
- py-faster-rcnn 安装、测试和训练自己的数据
- py-faster-rcnn(caffe)配置和运行,训练自己的数据
- 深度学习Caffe实战笔记(21)Windows平台 Faster-RCNN 训练好的模型测试数据
- Py-faster-rcnn实现自己的数据train和demo
- 用自己的数据训练Faster-RCNN,tensorflow版本(二)
- 用自己的数据(kitti)训练测试faster rcnn(一)
- faster-rcnn 中训练自己的数据出现的错误
- Py-faster-rcnn实现自己的数据train和demo
- Ubuntu16.04 caffe py-faster-rcnn安装以及训练自己的数据
- 使用自己的数据训练Faster-RCNN
- faster rcnn训练自己地数据时遇到地问题
- faster rcnn训练自己地数据时遇到地问题
- py-faster-rcnn用自己的数据训练模型
- py-faster-rcnn 训练自己的数据
- faster rcnn训练自己地数据时遇到地问题
- 使用caffe框架利用faster-rcnn来训练自己的数据集
- faster rcnn训练自己地数据时遇到地问题
- faster rcnn训练自己地数据时遇到地问题