主要是熟悉caffe是怎么读取数据和用脚本来运行caffe,毕竟自己建立数据集来处理还是遇到这样那样的问题。
1准备数据集
首先,在caffe文件下data下面(如下路径)建立自己数据集的文件myimage,分train和val两个文件夹,train文件夹里面存放fish和owl的图片各60张(本实验数据集收集自VOC2012),val是验证集存放fish和owl图片各12张用于验证(different于train)
对图片进行编号的操作,采用matlab程序,这里给出自己的程序,修改路径即可,可以按照自己编号的喜好去编写
clear;
clc;
path='/home/jiaxuan2/caffe-master/data/myimage/val';
%addpath(pwd);
fild_path=[path,'*.JPEG'];
str=dir(fild_path);%获取目录下的文件名
strx=struct2cell(str);
file_length=length(strx(1,:));%图片数量
cd(path);
% for i=1:file_length
% newname=sprintf('fish%d.JPEG',i);
% movefile(strx{1,i},newname);
% % movefile(str(i).name,newname);
% end
for i=1:file_length
if i<=12
newname=sprintf('fisht%d.JPEG',i);%新命名的形式
movefile(strx{1,i},newname);%赋予图片新的名字
else
newname=sprintf('owlt%d.JPEG',i-12);
movefile(strx{1,i},newname);
end
en
接着还需要一个txt的label文件,到数据集文档路径下,运行
find -name \*.JPEG|cut -d '/' -f2-3>train_b.txt
就可以自动生成txt,一共生成两个txt,分别是train_b.txt和val_b.txt之所以设置这样是因为接下来还要对每个图片名称进行标记分类,对fish标记为类别1,对owl标记为类别2,自己写了matlab进行编号
clear;
clc;
num1=1;
num2=2;
path='/home/jiaxuan2/caffe-master/data/myimage';
filename=[path,'/train_b.txt'];
fidin=fopen(filename);%打开原来的txt文件,如果fidin为正数则成功打开,否则不成功
fidout=fopen(