万里长征第一步,就是要制作自己的数据集,过程还是比较繁琐的,特别是标注的过程,这篇博客先介绍如果制作voc2007自己的数据集用于faster-rcnn训练,下一篇博客介绍如何用faster-rcnn训练自己的数据。

1、准备图像 
图像要用.jpg或者jpeg格式的,如果是png或者其它格式,自己转换一下就好,图像名称要用000001.jpg,只有和VOC2007数据集图像名称一致,才能最大限度的减少后面训练的麻烦,大家可以从网上下载一些批量重命名工具,我是用MATLAB代码实现转换的,我把MATLAB代码放在这里,如果大家需要请自行修改路径使用

%实现把图像重命名为VOC2007数据集一样的图像名
%D1是原始图像存放的文件夹,imwrite中的路径是保存的文件夹
%作者:UPC Yongbiao Gao Heroin 蒲衣翁
%csdn博客地址:http://blog.csdn.net/gybheroin
clc
clear
D1=dir('G:\Deep Feature extra\按年份数据\2011\2011test\*.jpg');for i=1:length(D1)iI=imread(['G:\Deep Feature extra\按年份数据\2011\2011test\',D1(i).name]);re=imresize(I,[600,400]);%注意,这里我把图像归一化大小了,可选if(i<10)imwrite(re,['G:\fasterrcnn\data\',['00000',num2str(i),'.jpg']]);endif(10<=i&&i<100)imwrite(re,['G:\fasterrcnn\data\',['0000',num2str(i),'.jpg']]);endif(100<=i&&i<1000)imwrite(re,['G:\fasterrcnn\data\',['000',num2str(i),'.jpg']]);endif(1000<=i&&i<10000)iimwrite(re,['G:\fasterrcnn\data\',['00',num2str(i),'.jpg']]);endif(10000<=i&&i<100000)iimwrite(re,['G:\fasterrcnn\data\',['0',num2str(i),'.jpg']]);end
end

2、图像目标框标注 
图像标注的工具网上应该有一些,但是博主喜欢自己动手丰衣足食,所以就用c#+emgucv自己写了一个标注软件,我把vs工程放在csdn资源上,想用我写的软件的同学请自行下载,代码中图像路径需要自己修改一下就行了:http://download.csdn.net/detail/gybheroin/9847647 
图像标注软件界面如下:(一个小时写出来的东西,简陋一些,但是功能是没问题)

使用方法:在文本框中输入类别标签,鼠标在图像中拖动实现矩形框,保存按钮保存了标注的标签,如果框选错误,就点击取消按钮,重新标注。 
标注文件格式如下,分别是图像名称,类别名称,目标框左上角和右下角坐标:

000001.jpg person 118 48 273 572
000002.jpg person 106 52 291 557
000003.jpg person 119 49 289 554
000004.jpg person 114 45 270 566
000005.jpg person 96 35 328 564
000006.jpg person 104 50 316 586

3、做成xml 
做xml的代码我是使用了别人的资源,如果不嫌弃麻烦,可以自己写一个的,我参考的资源地址:http://download.csdn.net/detail/sinat_30071459/9531172

把图像放在一个文件夹中,把标注好的文件放在一个文件夹中,能自动生成xml文件,生成的xml文件格式如下: 

4、生成txt索引文件 
需要四个索引文件,分别是trainval.txt,train.txt,val.txt,test.txt,分别存放训练验证集,训练集,验证集,测试集,VOC2007中,训练验证集占50%,测试集占50%,训练集占训练验证集50%,验证集占训练验证集50。但是我标注的数据集比较小一点,所以我把相应的比例做了修改,大家可以参考我写的MATLAB代码:


%实现生成VOC的训练验证测试四个文本文件,我这个是按照顺序实现的,没有打乱顺序,如果需要请自行修改
%trainval占0.7,test占0.3.train占trainval的0.5,val占trainval的0.5
%这个地方是我自己设置的,标准的voc2007应该都是50%
%作者:UPC Yongbiao Gao Heroin 蒲衣翁
%csdn博客地址:http://blog.csdn.net/gybheroinclc
clear
train_val_percent=0.7;
test_percent=0.3;D=dir('imgg/*.jpg');
ftrainval=fopen('trainval.txt','w');
ftest=fopen('test.txt','w');
ftrain=fopen('train.txt','w');
fval=fopen('val.txt','w'); for i=1:length(D)*train_val_percentfprintf(ftrainval,'%s\n',D(i).name(1:end-4));
end
for i=length(D)*train_val_percent+1:length(D)fprintf(ftest,'%s\n',D(i).name(1:end-4));
end
for i=1:length(D)*train_val_percent*0.6fprintf(ftrain,'%s\n',D(i).name(1:end-4));
end
for i=length(D)*train_val_percent*0.6+1:length(D)*train_val_percentfprintf(fval,'%s\n',D(i).name(1:end-4));
end

然后新建一个文件夹ImageSets,再新建一个文件夹Main,把四个文件放进去。新建一个文件夹minedataset,把ImageSets,Annotation(存放了所有的xml文件)和JPEGImages(存放了所有训练验证测试图像)放进去,这样数据准备算是完成。

原文

深度学习Caffe实战笔记(19)Windows平台 Faster-RCNN 制作自己的数据集相关推荐

  1. 深度学习Caffe实战笔记(6)Windows caffe平台用Siamese网络跑自己的数据

    终于到了介绍如何使用Siamese网络跑自己的数据了,在网上.论坛上.群里关于用Siamese网络的资料很多,但是实战的资料很少,难道是因为太容易了吗?反正博主查阅了各种地方,几乎没有找到Siames ...

  2. 深度学习推荐系统实战笔记

    小广告 (欢迎大家关注我的公众号"机器学习面试基地",之后将在公众号上持续记录本人从非科班转到算法路上的学习心得.笔经面经.心得体会.未来的重点也会主要放在机器学习面试上!) 序 ...

  3. 使用latex画好看的深度学习模型图(基于Windows平台)

    论文里需要画出简洁美观的深度学习模型图,如果采用PPT或者Visio一笔一笔画那么是一项非常耗时耗力的任务.想到现在深度学习这么火热,应该有相关的自动画图工具.在网上找了一些工具,最后确定了一款功能非 ...

  4. 深度学习caffe实战(一)验证码识别

    狭义上讲验证码识别是将验证码图像转化成字符串值,传统方法常常先对验证码图像进行字符分割,再对验证码进行识别,劣势在于字符分割方法往往针对不同风格的验证码需要做修改,某些验证码加入噪声或线条,字符位置不 ...

  5. 深度学习目标检测模型全面综述:Faster R-CNN、R-FCN和SSD

    为什么80%的码农都做不了架构师?>>>    Faster R-CNN.R-FCN 和 SSD 是三种目前最优且应用最广泛的目标检测模型,其他流行的模型通常与这三者类似.本文介绍了 ...

  6. 计算机视觉与深度学习 | 相机抖动下的目标提取(Faster R-CNN+粒子群优化+图像配准)

    ################################################ 博主github:https://github.com/MichaelBeechan 博主CSDN:h ...

  7. 深度学习项目实战-关键点定位视频课程

    课程目标 快速掌握如何使用caffe框架完成一个深度学习的实际项目 适用人群 深度学习爱好者,全民皆可入门 课程简介 深度学习项目实战-关键点定位课程以人脸关键点检测为背景,选择多阶段检测的网络架构, ...

  8. (d2l-ai/d2l-zh)《动手学深度学习》pytorch 笔记(2)前言(介绍各种机器学习问题)以及数据操作预备知识Ⅰ

    开源项目地址:d2l-ai/d2l-zh 教材官网:https://zh.d2l.ai/ 书介绍:https://zh-v2.d2l.ai/ 笔记基于2021年7月26日发布的版本,书及代码下载地址在 ...

  9. TensorFlow 2.0深度学习案例实战

    向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程   公众号:datayx 基于TensorFlow 2.0正式版, 理论与实战结合,非常适合入门学习! 这是一本面向人工 ...

最新文章

  1. shutdown -s -t XXX
  2. SpringMVC Controller介绍(转)
  3. HTML5的data-*自定义属性
  4. Python编程:制作电子相册
  5. Fusioncharts图表组件在宿舍评分统计中的应用
  6. 单例设计模式-懒汉式(线程安全)
  7. java vector_Java Vector lastElement()方法与示例
  8. pythonpath manager_python 路径操作工具 pathlib,比 os 模块好用太多
  9. Mac Nginx 配置 Tomcat 配置 jdk环境变量 Nginx部署服务遇到的坑(1)
  10. (79)FPGA版本如何管理?
  11. 中国恒大、恒大物业在香港暂停交易
  12. linux系统awk、sed,Linux系统 linux awk sed
  13. [转载]MySQL锁机制
  14. delphi2007 indy发邮件报could not load ssl library问题的解决
  15. Rmarkdown教程
  16. 21cn邮箱服务器,21cn邮箱客户端
  17. 慕课网懒懒交流会AngularJs专场学习笔记
  18. 【树莓派初始化】教你从0开始搭建树莓派的使用环境
  19. 如果你在犹豫要不要去外包公司,不妨看看这篇文章
  20. 通过VM虚拟机安装linux系统(centos版本)

热门文章

  1. boost::safe_numerics模块实现相等的constexpr的测试程序
  2. boost::range_reverse_iterator相关的测试程序
  3. boost::mpl::aux::msvc_is_class相关用法的测试程序
  4. boost::endian模块实现算术缓冲区的测试程序
  5. boost::coroutine模块实现相同的边缘的测试程序
  6. boost::contract模块实现条件是否的测试程序
  7. VTK:图片之Gradient
  8. Qt Designer手册
  9. C++ gnome sort 侏儒排序的实现算法(附完整源码)
  10. C++实现堆排序(附完整源码)