VOC数据集的格式与生成代码

为了在SSD网络中训练自己的数据集,我们要将其转化为VOC数据集的格式

1、在data文件夹下面按照VOC的格式建立文件夹

voc格式如下:

VOCdevkit

  VOC2007

    Annotations(存放.xml文件)

    ImageSets

      Layout  

      Main   (里面是目标检测用到的test.txt, train.txt, val.txt, trainval.txt)

      Segmentation

    JPEGImages(存放目标检测用到的图片)

    SegmentationClass

    SegmentationObject

我们从中提取出目标检测用到的文件以及文件夹,并且以visdrone为例,可以建立如下的文件夹:

VOCdevkit

  VOC2007(这里没有改名字是为了运行目标检测的代码时不修改代码中的文件名)

    Annotations(存放.xml文件)

      train(存放train的.xml文件)

      test

      trainval

      val

    JPEGImages(存放目标检测用到的图片)

      train(存放train的图片)

      test

      trainval

      val

    ImageSets

      Main 

        test.txt

        trainval.txt

        train.txt

        val.txt    

2、代码链接如下

链接:https://pan.baidu.com/s/1ItGRJrc-VcJpSy9wDlx86A
提取码:c977 

3、具体步骤

  • 下载代码,将数据集中的内容放到相应的文件夹中
  • 修改rename.py文件中的路径,分别对val和train文件执行rename操作
  • 执行txt2XML.py文件,分别将val和train中的txt文件转换成xml文件
  • 执行trainnamelist.py,会在Main文件夹下的train.txt文件中生成一些内容,这些是选中的作为train的图片的编号。同理,修改路径,再次执行trainnamelist.py,得到val.txt文件
  • 下面再重新调整文件夹,将val和train的xml合并到一个文件夹(Annotations)下面,同样将val和train的txt文件合并到一个文件夹(JPEGImages)下面,将train.txt和val.txt文件放到Main文件夹下面,将Main文件夹放到ImageSets下面。到这里基本上就把需要的东西准备好了
  • 但是由于visdrone里面存在这样两个类'ignored regions', 'others',可以执行VOC.py将两个类删掉,注意改一下路径。
原文地址:https://www.cnblogs.com/liliwang/p/12984560.html