利用matlab将自己的数据制作为标准VOC数据集格式
来源:互联网 发布:京东校招算法工程师 编辑:程序博客网 时间:2024/05/17 04:31
在使用各种深度网络的时候,需要根据自己的需求,自己的数据fine-tuning自己的模型,首要的一步就是讲自己的数据制作成标准VOC数据集,本文记录自己利用matlab制作标准VOC数据集的方法。
1、将自己的图片数据规范命名
VOC标准数据集中图片名称都为“000001.jpg”…”000013.jpg”…都为6位数字,jpg格式。
根据以下代码将自己图片规范命名:
%假设图片放置于"images\"下,需要将其规范命名到"image-convert\"下imgs = dir(['images\',*.jpg]);for i = 1:length(imgs) imgPath = ['images\',imgs(i).name]; img = imread(imgPath); imgPathTrans = ['image-convert\',num2str(i,'%06d'),'.jpg']; imwrite(img,imgPathTrans);end
生成的图片名称:
2、在图片中标注目标
这个部分代码写的很粗糙,只够满足当时需求
imgs = dir(['img-convert\','*.jpg']);len = length(imgs);fid = fopen('groundtruth.txt','w');for i = 1:len imagename = imgs(i).name; image = imread(['img-convert\',imagename]); while 1 [img,rect] = imcrop(image); rect = round(rect); label = input('please input lable:','s'); fprintf(fid,'%s %s %d %d %d %d\n',imagename,label,rect(1),rect(2),rect(1)+rect(3),rect(2)+rect(4)); isEnd = input('is this picture select over?','s'); if isEnd=='s' break; end endendfclose(fid);
生成的文件格式:
3、利用groundtruth文件生成XML文件
到这一步,可以开始构建标准VOC的文件夹了,文件夹形式如下:
其中Annotations、ImageSets和JPEGImages是VOC数据集格式。
然后利用网上查到的代码,下载地址:将txt转成VOC标准数据集XML
利用此代码可以根据groundtruth文件生成标准XML文件:
每个图片会在Annotations下生成一个XML文件,如图:
于此同时,这个过程会把img-convert里的图片拷贝到JPEGImages文件夹下。
4、生成训练、验证数据集配置文件
这一步也是从网上找到的代码,将已有的样本分配为训练集和验证集,代码如下:
%%%该代码根据已生成的xml,制作VOC2007数据集中的trainval.txt;train.txt;test.txt和val.txt%trainval占总数据集的50%,test占总数据集的50%;train占trainval的50%,val占trainval的50%;%上面所占百分比可根据自己的数据集修改,如果数据集比较少,test和val可少一些%%%注意修改下面四个值xmlfilepath='Annotations';txtsavepath='ImageSets\Main\\';trainval_percent=0.5;%trainval占整个数据集的百分比,剩下部分就是test所占百分比train_percent=0.5;%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'],'w');ftest=fopen([txtsavepath 'test.txt'],'w');ftrain=fopen([txtsavepath 'train.txt'],'w');fval=fopen([txtsavepath 'val.txt'],'w');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)); endendfclose(ftrainval);fclose(ftrain);fclose(fval);fclose(ftest);
将生成的四个文件放置在ImageSets\Main 文件夹下,即完成标准VOC数据集的制作。
1 0
- 利用matlab将自己的数据制作为标准VOC数据集格式
- YOLOv2训练:制作VOC格式的数据集
- YOLOv2训练自己的数据集(VOC格式)
- YOLOv2训练自己的数据集(VOC格式)
- YOLOv2训练自己的数据集(VOC格式)
- VOC数据集制作
- 将自己的数据集制作成TFRecord格式
- YOLO模型训练自己数据-VOC格式数据集制作-ubuntu c++文件夹内图片批量读取与重命名
- VOC数据集具体格式
- VOC数据集具体格式
- PASCAL VOC 数据集格式
- Faster RCNN 训练自己的数据集(Matlab,python版本)及制作VOC2007格式数据集
- 【Darknet】【yolo v2】训练自己数据集的一些心得----VOC格式
- 制作自己的数据集tfrecord格式
- RCNN系列实验的PASCAL VOC数据集格式设置
- RCNN系列实验的PASCAL VOC数据集格式设置
- RCNN系列实验的PASCAL VOC数据集格式设置
- Yolo-v2训练voc及自己的数据集
- linux环境下配置tomcat HTTPS协议
- Android组件10—TabHost
- oracle initialization or shutdown in progress解决方法
- Android Studio导入外部Eclipse项目中用到的so库
- java poi技术操作excel之读取Excel
- 利用matlab将自己的数据制作为标准VOC数据集格式
- MFC-菜单的动态(增加 插入 删除 响应)
- Android组件11—Notification
- [UML]对象图和包图
- java中queue的使用
- memcached常用总结
- hdoj-【1171 Big Event in HDU】
- Gstreamer 命令行
- 2016 西普杯丶河北CTF预选赛(1/6)