Tensorflow+Faster-RCNN 训练自己的数据集

tensorflow+Faster-Rcnn 训练自己的数据集

你好! 这是你第一次写博客
好不容易写的,转载请加地址 谢谢哈

一、 数据集制作
1、 将图片尺寸统一改为与原始图像集差不多大小(500*333),将宽修改为500即可(图片过大会报错!!!);具体代码如下:

file_path = ‘F:\Faster-RCNN-TensorFlow-Python3.5-master\data\VOCdevkit2007\VOC2007\JPEGImages’;% 图像文件夹路径
img_path_list = dir(strcat(file_path,’*.jpg’));%获取该文件夹中所有jpg格式的图像
img_num = length(img_path_list);%获取图像总数量
for j =1:img_num%逐一读取图像
image_name = img_path_list(j).name;% 图像名
image = imread(strcat(file_path,image_name));
J = imresize(image,[500 333]);
imwrite(J,strcat(file_path,image_name));

end

2、 将修改后的图像集替换G:\Faster-RCNN-TensorFlow-Python3.5-master \data\VOCdevkit2007\VOC2007\JPEGImages文件里的图片,并删除Annotations里的xml文件;

3、 对图片进行批量重命名;(可以使用MATLAB或者任何方法,我用的是好压)

在这里插入图片描述
在这里插入图片描述
4、 修改运行labelImg对图像进行手动打标签;
1) 打开G:\labelImg-master\data目录下的predefined_classes,修改为自己的类别
注意:修改的类别必须是小写字母
2) 运行labelImg.py文件,对待训练图像打标签。
3) 打标签完成后,检查Annotations下xml文件是否对应。

在这里插入图片描述
4) matlab运行txt生成文件,生成训练集、测试集图片对应的图片名称
在这里插入图片描述
代码如下:

clear;clc;

file = dir(‘Annotations’);
len = length(file)-2;

num_trainval=sort(randperm(len, floor(1len/2)));%trainval集占所有数据的1/2,可以根据需要设置
num_train=sort(num_trainval(randperm(length(num_trainval), floor(1
length(num_trainval)/2))));%train集占trainval集的1/2,可以根据需要设置
num_val=setdiff(num_trainval,num_train);%trainval集剩下的作为val集

num_test=setdiff(1:len,num_trainval);%所有数据中剩下的作为test集

path = ‘ImageSets\Main’;

fid=fopen(strcat(path, ‘trainval.txt’),‘a+’);
for i=1:length(num_trainval)
s = sprintf(’%s’,file(num_trainval(i)+2).name);
fprintf(fid,[s(1:length(s)-4) ‘\n’]);
end
fclose(fid);

fid=fopen(strcat(path, ‘train.txt’),‘a+’);
for i=1:length(num_train)
s = sprintf(’%s’,file(num_train(i)+2).name);
fprintf(fid,[s(1:length(s)-4) ‘\n’]);
end
fclose(fid);

fid=fopen(strcat(path, ‘val.txt’),‘a+’);
for i=1:length(num_val)
s = sprintf(’%s’,file(num_val(i)+2).name);
fprintf(fid,[s(1:length(s)-4) ‘\n’]);
end
fclose(fid);

fid=fopen(strcat(path, ‘test.txt’),‘a+’);
for i=1:length(num_test)
s = sprintf(’%s’,file(num_test(i)+2).name);
fprintf(fid,[s(1:length(s)-4) ‘\n’]);
end

原文:https://blog.csdn.net/liuweizj12/article/details/53233900 ,感谢这个博主提供的代码

5、 修改G:\Faster-RCNN-TensorFlow-Python3.5-master\lib\datasets文件夹下的pascal_voc.py中的类别,修改或添加训练类别。
6、 修改F:\Faster-RCNN-TensorFlow-Python3.5-master\lib\config文件夹下的config.py文件,修改参数
7、将 F:\Faster-RCNN-TensorFlow-Python3.5-master\data\cache里面文件删除
8、 运行train.py文件,产生检测模型。观察loss值变化情况。

在这里插入图片描述

9、F:\Faster-RCNN-TensorFlow-Python3.5-master\data\demo图片更换

10、修改demo.py中以下四处,第一处修改为自己的类别。第二处修改为自己训练生成的模型。第三处修改为待识别图像的编号。 第四处为识别的种类。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

11.运行demo.py文件
运行成功则出现以下图片:

在这里插入图片描述

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值