VOC数据集制作2——ImageSets\Main里的四个txt文件

一、数据集文件数据分析

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);


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值