VOC数据集制作2——ImageSets\Main里的四个txt文件
2016-11-19 20:12
3187 查看
一、数据集文件数据分析
ImageSets里Main文件夹,用到4个文件:
- train.txt 是用来训练的图片文件的文件名列表
- val.txt是用来验证的图片文件的文件名列表
- trianval.txt是用来训练和验证的图片文件的文件名列表
- test.txt 是用来测试的图片文件的文件名列表
分析VOC2007数据集发现:
train.txt 中有2501个数据
val.txt 中有2510个数据
trainval.txt 中有5011个数据
test.txt 中有4952个数据
JPEGImages共有9963 个图片
所以,得到以下结论:
trainval大概是整个数据集的50%,
test 也大概是整个数据集的50%;
train 大概是trainval的50%,
val 大概是trainval的50%
二、生成四个txt文件代码:
matlab代码:
clear;clc;
file = dir('Annotations');
len = length(file)-2;
num_trainval=sort(randperm(len, floor(1*len/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
fclose(fid);
ImageSets里Main文件夹,用到4个文件:
- train.txt 是用来训练的图片文件的文件名列表
- val.txt是用来验证的图片文件的文件名列表
- trianval.txt是用来训练和验证的图片文件的文件名列表
- test.txt 是用来测试的图片文件的文件名列表
分析VOC2007数据集发现:
train.txt 中有2501个数据
val.txt 中有2510个数据
trainval.txt 中有5011个数据
test.txt 中有4952个数据
JPEGImages共有9963 个图片
所以,得到以下结论:
trainval大概是整个数据集的50%,
test 也大概是整个数据集的50%;
train 大概是trainval的50%,
val 大概是trainval的50%
二、生成四个txt文件代码:
matlab代码:
clear;clc;
file = dir('Annotations');
len = length(file)-2;
num_trainval=sort(randperm(len, floor(1*len/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
fclose(fid);
相关文章推荐
- 制作VOC数据集,根据groundtruth文件生成xml文件
- 制作VOC类型数据集,生成txt,生成lmdb
- VOC数据集里面的txt文件的做法
- MED-V使用教程之二制作Image文件
- UBI 文件系统的支持和image制作
- bat制作抓取logcat,保存以时间命名的txt文件至设备目录
- VOC数据集制作1——框图工具 安装与配置
- caffe训练,图像文件夹制作的文件txt列表
- txt - xml 转化的事例,java main 方法,完整带配置文件,可灵活转化
- Matlab程序设计:批量读取文件(Image, excel, txt .etc)
- mke2fs 制作ext2文件系统image
- caffe学习笔记(四)--制作自己的数据集train.txt和val.txt,生成LMDB文件
- 文件系统以及mkyaffsimage工具的制作(2010-09-06 10:25:29)
- mke2fs 制作ext2文件系统image
- mke2fs 制作ext2文件系统image
- yaffs2文件镜像制作工具yaffs2image
- 拷贝别人的dll文件制作成image问题
- Linux操作系统下如何制作Image映像文件
- 文件系统以及mkyaffsimage工具的制作
- 2、Python djang 框架下的word Excel TXT Image 等文件的下载