转载自:https://blog.csdn.net/gaohuazhao/article/details/60871886

另外,可参考:https://blog.csdn.net/dcxhun3/article/details/52923310

相信看这篇文章的人都在做深度学习吧,此数据集是为目标检测做的数据集,有错误处请海涵

代码见我的github上:https://github.com/EddyGao/make_VOC2007
第一步:首先了解VOC2007数据集的格式

1)JPEGImages文件夹

文件夹里包含了训练图片和测试图片,混放在一起

2)Annatations文件夹

文件夹存放的是xml格式的标签文件,每个xml文件都对应于JPEGImages文件夹的一张图片

3)ImageSets文件夹

Action存放的是人的动作,我们暂时不用

Layout存放的人体部位的数据。我们暂时不用

Main存放的是图像物体识别的数据,分为20类,当然我们自己制作就呵呵呵不一定了,如果你有精力,Main里面有test.txt , train.txt, val.txt ,trainval.txt.这四个文件我们后面会生成

Segmentation存放的是可用于分割的数据

4)其他的文件夹不解释了,分割XXX等用的

如果你下载了VOC2007数据集,那么把它解压,把各个文件夹里面的东西删除,保留文件夹名字。如果没下载,那么就仿照他的文件夹格式,自己建好空文件夹就行。

第二步:搞定JPEGSImages文件夹

1)把你的图片放到JPEGSImages里面,在VOC2007里面,人家的图片文件名都是000001.jpg类似这样的,我们也统一格式,把我们的图片名字重命名成这样的,如果你的文件太多怎么办,请看我的另一篇文章http://blog.csdn.net/gaohuazhao/article/details/60324715
能批量重命名文件

第三步:搞定Annatations文件夹

网上很多教程,但是我觉得都很麻烦,直到我遇到了一位大神做的软件,手动标注,会自动生成图片信息的xml文件

1)在这里下载:https://github.com/tzutalin/labelImg,至于怎么用相信你打开就知道了。(https://github.com/puzzledqs/BBox-Label-Tool

2)保存的路径就是我们的Annatations文件夹,别保存别的地方去了,,,

3)一张张的慢慢画框。。。。。。。。。大约过了几个小时,好继续下一步

第四步:搞定ImageSets文件夹中的Main文件夹中的四个文件

直接上一个代码给你:

  1. import os
  2. import random
  3. trainval_percent = 0.66
  4. train_percent = 0.5
  5. xmlfilepath = 'Annotations'
  6. txtsavepath = 'ImageSets\Main'
  7. total_xml = os.listdir(xmlfilepath)
  8. num=len(total_xml)
  9. list=range(num)
  10. tv=int(num*trainval_percent)
  11. tr=int(tv*train_percent)
  12. trainval= random.sample(list,tv)
  13. train=random.sample(trainval,tr)
  14. ftrainval = open('ImageSets/Main/trainval.txt', 'w')
  15. ftest = open('ImageSets/Main/test.txt', 'w')
  16. ftrain = open('ImageSets/Main/train.txt', 'w')
  17. fval = open('ImageSets/Main/val.txt', 'w')
  18. for i  in list:
  19. name=total_xml[i][:-4]+'\n'
  20. if i in trainval:
  21. ftrainval.write(name)
  22. if i in train:
  23. ftrain.write(name)
  24. else:
  25. fval.write(name)
  26. else:
  27. ftest.write(name)
  28. ftrainval.close()
  29. ftrain.close()
  30. fval.close()
  31. ftest .close()

OK,制作完成,就是这么简单,那么解释一下这四个txt文档是干嘛的,看名字就知道,就是分分多少图片作为训练,多少图片作为测试,,,,

转载:VOC2007数据集制作的更多相关文章

  1. 图像分割实验:FCN数据集制作,网络模型定义,网络训练(提供数据集和模型文件,以供参考)

    论文:<Fully Convolutional Networks for Semantic Segmentation> 代码:FCN的Caffe 实现 数据集:PascalVOC 一 数据 ...

  2. 使用py-faster-rcnn训练VOC2007数据集时遇到问题

    使用py-faster-rcnn训练VOC2007数据集时遇到如下问题: 1. KeyError: 'chair' File "/home/sai/py-faster-rcnn/tools/ ...

  3. 【Python图像特征的音乐序列生成】数据集制作的一些tricks

    关于数据集的制作,我决定去掉很多不必要的东西,比如和弦,于是我选择了melody部分的旋律. 有了midi文件,我现在要abc序列,所以我要通过midi2abc转换一下文件. 批处理程序效果如下: 文 ...

  4. faster-rcnn 目标检测 数据集制作

    本文的目标是制作目标检测的数据集 使用的工具是 python + opencv 实现目标 1.批量图片重命名,手动框选图片中的目标,将目标框按照一定格式保存到txt中 图片名格式(批量) .jpg . ...

  5. (转载)ecshop制作成手机网站的方法

    ecshop用手机访问的时候,会自动跳转到  /mobile 目录下,ecshop自带的wap模板是用wml制作的,如果按这种情况,又需要制作一套模板,太麻烦,现在都是智能手机时代,wml模板已经不能 ...

  6. 转载“用USBOOT制作DOS启动盘”

    使用软件: Usboot和MaxDOS_5.6s_U盘版. 由于我的U盘容量比较小,暂时只能做DOS启动功能,其它功能如Windows PE,等我以后测试成功后再补充说明. U盘是啥? 读音优盘,可以 ...

  7. 转载使用Flurl制作可复用的分页组件

    使用Flurl制作可复用的分页组件 使用ASP.NET MVC查询时,一直使用MvcPaging组件,虽然需要自定义MvcPaging.Pager才能达到我想要的效果,但在没有较好的URL库时,还是这 ...

  8. YOLO 从数据集制作到训练

    1.图片数据集收集 共 16种 集装箱船 container ship 散货船 bulker 油船 tanker 游轮 / 客轮 / 邮轮 passenger liner 渔船 fishing boa ...

  9. Mask-RCNN数据集制作

    转自https://blog.csdn.net/pingushen2100/article/details/80513043 一.Mask-RCNN数据集 1.1 训练Mask-RCNN用的到的文件有 ...

随机推荐

  1. Java 服务端监控方案(四. Java 篇)

    http://jerrypeng.me/2014/08/08/server-side-java-monitoring-java/ 这个漫长的系列文章今天要迎来最后一篇了,也是真正与 Java 有关的部 ...

  2. css3的transform,translate和transition之间的区别与作用

    transform 和 translate transform的中文翻译是变换.变形,是css3的一个属性,和其他width,height属性一样 translate 是transform的属性值,是 ...

  3. python之列表和生成器表达式篇

    一.协程函数的应用 写一个装饰器用于让协程函数不需要输入再执行一次next()函数 分析: 在装饰器中生成该协程函数的生成器, 并且执行一次next()函数 def firstNext(func): ...

  4. angular.copy()

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  5. win10下搭建storm环境

    原文:https://blog.csdn.net/lu_wei_wei/article/details/80843365 1.下载storm; http://mirror.bit.edu.cn/apa ...

  6. 下一代微服务 ~ Service Mesh

    微服务(Microservices) 微服务(Microservices)是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成.系统中的各个微服务可被独立部署,各个微服务之间是松耦合的.每个微服 ...

  7. iOS链接库的冲突

    最近在打包的时候,遇到一个坑.特此记录一下 起因是发现 Unity 5.4 版本,使用c#写的下载,下载速度无法突破 2M/s,同样的网络,后来横向对比使用原来 Cocos2d 开始的游戏,可以达到 ...

  8. mysql select into 不支持

    不支持的 select * into order_new from orders 改为 Create table order_new(select * from orders)  

  9. git强制提交本地分支覆盖远程分支

    git push origin 分支名 --force eg: cd 代码目录 git push origin master --force 运行结果: Total 0 (delta 0), reus ...

  10. Switch语句的参数是什么类型的?

    在Java5以前,switch(expr)中,exper只能是byte,short,char,int类型. 从Java5开始,java中引入了枚举类型,即enum类型. 从Java7开始,exper还 ...