zoukankan      html  css  js  c++  java
  • 目标检测 – 解析VOC和COCO格式并制作自己的数据集

    http://www.xyu.ink/3612.html

      相对其他计算机视觉任务,目标检测算法的数据格式更为复杂。为了对数据进行统一的处理,目标检测数据一般都会做成VOC或者COCO的格式。
      VOCCOCO都是既支持检测也支持分割的数据格式,本文主要分析PASCAL VOCCOCO数据集中物体识别相关的内容,并学习如何制作自己的数据集。

    VOC格式

    目录结构

      VOC格式数据集一般有着如下的目录结构:

      其中JPEGImages目录中存放的是源图片的数据,(当然图片并不一定要是.jpg格式的,只是规定文件夹名字叫JPEGImages);
      Annotations目录中存放的是标注数据,VOC的标注是xml格式的,文件名与JPEGImages中的图片一一对应;
      ImageSets/Main目录中存放的是训练和验证时的文件列表,每行一个文件名(不包含扩展名),例如train.txt是下面这种格式的:

    XML标注格式

      xml格式的标注格式如下:

    制作自己的VOC数据集

      制作自己数据集的步骤为:

      ① 新建一个JPEGImages的文件夹,把所有图片放到这个目录。(或者使用ln -s把图片文件夹软链接到JPEGImages);

      ② 由原来的数据格式生成xml,其中posetruncateddifficult没有指定时使用默认的即可。bounding box的格式是[x1,y1,x2,y2],即[左上角的坐标, 右下角的坐标]x是宽方向上的,y是高方向上的。

      ③ 随机划分训练集和验证集,训练集的文件名列表存放在ImageSets/Main/train.txt,验证集的文件名列表存放在ImageSets/Main/val.txt

    参考代码

      附一个由csvvoc格式的脚本:

    COCO格式

    目录结构

      COCO格式数据集的目录结构如下:

      这里的train2017val2017称为set_nameannnotations文件夹中的json格式的标注文件名要与之对应并以instances_开头,也就是instances_{setname}.json

    json标注格式

      与VOC一个文件一个xml标注不同,COCO所有的目标框标注都是放在一个json文件中的。
    这个json文件解析出来是一个字典,格式如下:

      制作自己的数据集的时候infolicenses是不需要的。只需要中间的三个字段即可。

      其中images是一个字典的列表,每个图片的格式如下:

      自己的数据集只需要写file_name,height,widthid即可。id是图片的编号,在annotations中也要用到,每张图是唯一的。

      categories表示所有的类别,格式如下:

      annotations是检测框的标注,一个bounding box的格式如下:

      其中segmentation是分割的多边形,如果不知道直接填写[[x1, y1, x2, y1, x2, y2, x1, y2]]就可以了,area是分割的面积,bbox是检测框的[x, y, w, h]坐标,category_id是类别id,与categories中对应,image_id图像的id,idbboxid,每个检测框是唯一的。

    参考代码

      附一个VOC转COCO格式的参考代码

    参考链接

    https://cocodataset.org/#format-data

  • 相关阅读:
    Codeforces 631A Interview【模拟水题】
    Codeforces 651E Table Compression【并查集】
    Codeforces 651D Image Preview【二分+枚举】
    Codeforces 651C Watchmen【模拟】
    Codeforces 651B Beautiful Paintings【贪心】
    18.06.26 16年期末10:游览规划
    18.06.25 POJ4129 16年期末09:变换的迷宫
    18.06.25 POJ4150 16年期末07:上机
    18.06.25 16年期末06 42点
    18.06.25 16年期末01-05集合
  • 原文地址:https://www.cnblogs.com/shuimuqingyang/p/14211163.html
Copyright © 2011-2022 走看看