Faster-RCNN+ZF用自己的数据集训练模型(Python版本)
来源:互联网 发布:java数据类型和运算符 编辑:程序博客网 时间:2024/06/05 17:37
一,做自己的数据集
0.文件夹名
类外面的文件夹命名不重要,例如我的叫153(或者和voc2007一样的名字:VOC2007),其他的都可以
1.图片命名
2.自己的数据BoundingBox
%% %该代码根据已生成的xml文件,制作/VOC2007/imageset/Main/数据集中的trainval.txt;train.txt;test.txt和val.txt %trainval占总数据集的50%,test占总数据集的50%;train占trainval的50%,val占trainval的50%; %上面所占百分比可根据自己的数据集修改,如果数据集比较少,test和val可少一些 %% %注意修改下面四个值 xmlfilepath='D:\candy\VOC2007\VOC2007\Annotations'; %xml的源文件夹所在位置 txtsavepath='D:\candy\VOC2007\VOC2007\imageset\Main\'; %trainval.txt;train.txt;test.txt和val.txt的保存位置 trainval_percent=0.8;%trainval占整个数据集的百分比,剩下部分就是test所占百分比 train_percent=0.7;%train占trainval的百分比,剩下部分就是val所占百分比 %% xmlfile=dir(xmlfilepath); numOfxml=length(xmlfile)-2;%减去.和.. 总的数据集大小 trainval=sort(randperm(numOfxml,floor(numOfxml*trainval_percent))); test=sort(setdiff(1:numOfxml,trainval)); trainvalsize=length(trainval);%trainval的大小 train=sort(trainval(randperm(trainvalsize,floor(trainvalsize*train_percent)))); val=sort(setdiff(trainval,train)); ftrainval=fopen([txtsavepath 'trainval.txt'],'wt'); ftest=fopen([txtsavepath 'test.txt'],'wt'); ftrain=fopen([txtsavepath 'train.txt'],'wt'); fval=fopen([txtsavepath 'val.txt'],'wt'); for i=1:numOfxml if ismember(i,trainval) fprintf(ftrainval,'%s\n',xmlfile(i+2).name(1:end-4)); if ismember(i,train) fprintf(ftrain,'%s\n',xmlfile(i+2).name(1:end-4)); else fprintf(fval,'%s\n',xmlfile(i+2).name(1:end-4)); end else fprintf(ftest,'%s\n',xmlfile(i+2).name(1:end-4)); end end fclose(ftrainval); fclose(ftrain); fclose(fval); fclose(ftest);
trainval.txt;train.txt;test.txt和val.txt文件以及/VOC2007/JPEGImages/下的JPG图像都已经准备完毕
3,训练
A.py-faster-rcnn/models/pascal_voc/ZF/faster_rcnn_alt_opt/stage1_fast_rcnn_train.pt修改
B.py-faster-rcnn/models/pascal_voc/ZF/faster_rcnn_alt_opt/stage1_rpn_train.pt修改
C.py-faster-rcnn/models/pascal_voc/ZF/faster_rcnn_alt_opt/stage2_fast_rcnn_train.pt修改
D.py-faster-rcnn/models/pascal_voc/ZF/faster_rcnn_alt_opt/stage2_rpn_train.pt修改
E.py-faster-rcnn/models/pascal_voc/ZF/faster_rcnn_alt_opt/faster_rcnn_test.pt修改
F.py-faster-rcnn/lib/datasets/pascal_voc.py修改
上面要改的地方是
修改训练集文件夹:训练所需文件所在地方
用你的数据集直接替换原来VOC2007内的Annotations,ImageSets和JPEGImages即可,以免出现各种错误。
修改标签:
修改成你的数据集的标签就行。
(去掉lower应该也行)
建议训练的标签还是用小写的字母,如果最终需要用大写字母或中文显示标签,可参考:
http://blog.csdn.net/sinat_30071459/article/details/51694037
G.py-faster-rcnn/lib/datasets/imdb.py修改
该文件的append_flipped_images(self)函数修改为:(3)设置训练参数为防止与之前的模型搞混,训练前删除相应上次训练文件
A 把output文件夹删除或改个其他名
B 把py-faster-rcnn/data/cache中的文件删除
C 把py-faster-rcnn/data/VOCdevkit2007/annotations_cache中的文件删除(如果有的话)。
A 至于学习率等之类的设置,可在py-faster-rcnn/models/pascal_voc/ZF/faster_rcnn_alt_opt中的solve文件设置
B 迭代次数可在py-faster-rcnn\tools的train_faster_rcnn_alt_opt.py中修改:
分别为4个阶段(rpn第1阶段,fast rcnn第1阶段,rpn第2阶段,fast rcnn第2阶段)的迭代次数。可改成你希望的迭代次数。
如果改了这些数值,最好把py-faster-rcnn/models/pascal_voc/ZF/faster_rcnn_alt_opt里对应的solver文件(有4个)也修改,stepsize小于上面修改的数值。
(4).开始训练
进入py-faster-rcnn,执行:
这样,就开始训练了。
4,测试
修改py-faster-rcnn\tools\demo.py
A 改成自己的数据集标签;
B 上面ZF的caffemodel改成自己的caffemodel,拷贝过去一般不用变
C 改成你的测试图片,同时测试图片放在py-faster-rcnn\data\demo中
在py-faster-rcnn下,执行:
测试结果会保存在py-faster-rcnn下面- Faster-RCNN+ZF用自己的数据集训练模型(Python版本and MATLAB版本)
- Faster-RCNN+ZF用自己的数据集训练模型(Python版本)
- Faster-RCNN+ZF用自己的数据集训练模型(Python版本)
- Faster-RCNN+ZF用自己的数据集训练模型(Python版本)
- Faster-RCNN+ZF用自己的数据集训练模型(Python版本)
- Faster-RCNN+ZF用自己的数据集训练模型(Python版本)
- Faster-RCNN+ZF用自己的数据集训练模型(Python版本)
- Faster-RCNN+ZF用自己的数据集训练模型(Python版本)
- Faster-RCNN+ZF用自己的数据集训练模型(Python版本)
- Faster-RCNN+ZF用自己的数据集训练模型(Python版本)
- Faster-RCNN+ZF用自己的数据集训练模型(Python版本)
- Faster-RCNN+ZF用自己的数据集训练模型(Python版本)
- Faster-RCNN+ZF用自己的数据集训练模型(Matlab版本)
- [置顶] Faster-RCNN+ZF用自己的数据集训练模型(Matlab版本)
- Faster-RCNN+ZF用自己的数据集训练模型(Matlab版本)
- Faster-RCNN+ZF用自己的数据集训练模型(Matlab版本)
- Faster-RCNN+ZF用自己的数据集训练模型(Matlab版本)
- Faster-RCNN+ZF用自己的数据集训练模型 转
- 图片的二次采样
- app调试命令记录
- java.lang.UnsupportedClassVersionError:Unsupported major.minor version 52.0
- 使用aop代理获取不到Annotation注解问题
- Windows7 内部版本7601 此Windows副本不是正版
- Faster-RCNN+ZF用自己的数据集训练模型(Python版本)
- 人工智障学习笔记——机器学习(16)降维小结
- JQuery 显示隐藏动画( show(),hide(),toggle() )
- Web.xml详解:
- 每天学习API之三 ,zepto源码type, isFunction,isObject,isWindow,isDocument,isPlainObject,isArray,likeArray
- 搭建一台深度学习工作站
- 初学C#之label无法显示int型
- 【android】android使用命令模拟按键
- 任务调度平台XXL-JOB使用