MATLAB图像数据集的制作,使用labelImg制作自己的数据集(VOC2007格式)用于Faster-RCNN训练...
一、数据集文件夹
新建一个文件夹,用来存放整个数据集,或者和voc2007一样的名字:VOC2007
然后像voc2007一样,在文件夹里面新建如下文件夹:
二、将训练图片放到JPEGImages
将所有的训练图片放到该文件夹里,然后将图片重命名为VOC2007的“000005.jpg”形式
三、标注图片,标注文件保存到Annotations
使用labelIImg 标注自己的图片
2、按照网页上的使用方法使用
(1)安装PyQt4和Lxml
(2)在labelImage 的目录下 shift+右键打开cmd 运行一下命令:
pyrcc4 -o resources.py resources.qrc
python labelImg.py
注:这个时候,就会出现labelimage的窗口
(3)labelimg窗口的使用方法:
• 修改默认的XML文件保存位置,可以用“Ctrl+R”,改为自定义位置,这里的路径不能包含中文,否则无法保存。
• 源码文件夹中使用notepad++打开data/predefined_classes.txt,可以修改默认类别,比如改成bus、car、building三个类别。
•“Open Dir”打开需要标注的样本图片文件夹,会自动打开第一张图片,开始进行标注
• 使用“Create RectBox”开始画框
• 完成一张图片后点击“Save”,此时XML文件已经保存到本地了。
• 点击“Next Image”转到下一张图片。
• 标注过程中可随时返回进行修改,后保存的文件会覆盖之前的。
• 完成标注后打开XML文件,发现确实和PASCAL VOC所用格式一样。
每个图片和标注得到的xml文件,JPEGImages文件夹里面的一个训练图片,对应Annotations里面的一个同名XML文件,一 一 对应,命名一致
标注自己的图片的时候,类别名称请用小写字母,比如汽车使用car,不要用Car
pascal.py中读取.xml文件的类别标签的代码:
cls = self._class_to_ind[obj.find('name').text.lower().strip()]
写的只识别小写字母,如果你的标签含有大写字母,可能会出现KeyError的错误。
四、ImageSets\Main里的四个txt文件
在ImageSets里再新建文件夹,命名为Main,在Main文件夹中生成四个txt文件,即:
test.txt是测试集
train.txt是训练集
val.txt是验证集
trainval.txt是训练和验证集
VOC2007中,trainval大概是整个数据集的50%,test也大概是整个数据集的50%;train大概是trainval的50%,val大概是trainval的50%。
txt文件中的内容为样本图片的名字(不带后缀),格式如下:
根据已生成的xml,制作VOC2007数据集中的trainval.txt ; train.txt ; test.txt ; val.txt
trainval占总数据集的50%,test占总数据集的50%;train占trainval的50%,val占trainval的50%;
上面所占百分比可根据自己的数据集修改,如果数据集比较少,test和val可少一些
代码如下:
%注意修改下面四个值
xmlfilepath='E:\Annotations';
txtsavepath='E:\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)); end end fclose(ftrainval); fclose(ftrain); fclose(fval); fclose(ftest);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
MATLAB图像数据集的制作,使用labelImg制作自己的数据集(VOC2007格式)用于Faster-RCNN训练...相关推荐
- 将数据集做成VOC2007格式用于Faster-RCNN训练
0.文件夹名 首先,确定你的数据集所放的文件夹名字,例如我的叫logos. (或者和voc2007一样的名字:VOC2007) 1.图片命名 虽然说图片名对训练没什么影响,但建议还是按VOC2007那 ...
- 目标检测simple Faster R-CNN训练自己的数据集
一.复现 刚开始接触目标检测,自己动手复现的第一个开源项目是github上chenyuntc的simple faster rcnn.历经千辛万苦最后貌似因为服务器显卡内存不够,在训练时一直出现一个错误 ...
- Faster RCNN训练自己数据集报错记录及解决
Faster R-CNN源码网址:https://github.com/dBeker/Faster-RCNN-TensorFlow-Python3.5点击打开链接 环境:python3.6 tenso ...
- Faster RCNN训练FLIR红外线数据集
1. Fater RCNN检测网络下载 网络学习视频 [源码地址]https://github.com/bubbliiiing/faster-rcnn-pytorch 2. FLIR 数据集准备 数据 ...
- faster rcnn 训练自己的数据集---踩坑记录!!!
1.下载代码: git clone https://github.com/jwyang/faster-rcnn.pytorch.git 也可以暴力下载<--直接download压缩包--> ...
- faster rcnn在自己的数据集上训练
本文是一个总结,参考了网上的众多资料,汇集而成,以供自己后续参考. 一般说来,训练自己的数据,有两种方法:第一种就是将自己的数据集完全改造成VOC2007的形式,然后放到py-faster-rcnn/ ...
- 【MATLAB深度学习】采用Faster R-CNN实现车辆目标检测
本文展示了如何使用MATLAB训练Faster R-CNN目标检测器,实现对车辆的检测.本例使用一个包含295张图像的小标记数据集.每个图像包含一个或两个已标记的车辆目标.一个小的数据集对于探索 Fa ...
- 使用Faster R-CNN(linux-pytorch)训练自己的数据集过程记录
目录 准备工作 源码下载 配置环境 制作VOC数据集 data目录结构 训练 编译CUDA依赖环境 预训练模型 修改pascal_voc.py文件 进行训练 遇到的问题 主要参考文章 准备工作 源码下 ...
- Caffe版Faster R-CNN可视化——网络模型,图像特征,Loss图,PR曲线
可视化网络模型 Caffe目前有两种常用的可视化模型方式: 使用Netscope在线可视化 Caffe代码包内置的draw_net.py文件可以可视化网络模型 Netscope能可视化神经网络体系 ...
最新文章
- C# 控件置于最顶层、最底层
- Android 国际化问题
- Intelij idea工具设置片,用64位工作,用32位运行
- Dubbo环境搭建-ZooKeeper注册中心
- 基于深度学习的CTR模型DeepCTR 更新啦!
- 有1,2,3,4四个数字,能组成多少个互不相同且无重复数字的三位数 都是多少
- Mybatis Interceptor 拦截器原理 源码分析
- The “data“ option should be a function that returns a per-instance value in component definitions
- python多线程同步机制condition
- 度量术语之二:应用类和开发类生产率(实际度量案例)
- socket编程简单Demo讲解及源码分享(C# Winform 内网)
- Oracle中的包、存储过程、函数被锁定解决方案
- 摆脱设备操作桎梏 汉锐股份教育录播系统解密
- 基于jQuery的AJAX和JSON的实例
- macbook 查看本机ip地址
- win10清理_卸载全家桶之后:用win10自带杀软,怎么清理电脑垃圾?
- w ndows英文读音,Windows是什么意思
- 微信(WeChat web page)
- 适用于LeetCode的TypeScript编程调试环境
- 社招:海康威视一面2021.04.21