常见数据集(VOC和COCO数据集制作)

COCO数据集简介

   MS COCO的全称是Microsoft Common Objects in Context,起源于微软于2014年出资标注的Microsoft COCO数据集。COCO数据集是一个大型的、丰富的物体检测,分割和字幕数据集。这个数据集以scene understanding为目标,主要从复杂的日常场景中截取,图像中的目标通过精确的segmentation进行位置的标定。图像包括91类目标,328,000影像和2,500,000个label。数据集主要解决3个问题:目标检测,目标之间的上下文关系,目标的2维上的精确定位。

官网地址:http://cocodataset.org

COCO数据集格式

COCO_2017/
├── val2017 # 总的验证集
├── train2017 # 总的训练集
├── annotations # COCO标注
│ ├── instances_train2017.json # object instances(目标实例) —目标实例的训练集标注
│ ├── instances_val2017.json # object instances(目标实例) —目标实例的验证集标注
│ ├── person_keypoints_train2017.json # object keypoints(目标上的关键点) —关键点检测的训练集标注
│ ├── person_keypoints_val2017.json # object keypoints(目标上的关键点) —关键点检测的验证集标注
│ ├── captions_train2017.json # image captions(看图说话) —看图说话的训练集标注
│ ├── captions_val2017.json # image captions(看图说话) —看图说话的验证集标注
COCO数据集制作

   COCO一共有5种不同任务分类,分别是目标检测、关键点检测、语义分割、场景分割和图像描述。COCO数据集的标注文件以JSON格式保存,官方的注释文件有仨 captions_type.json instances_type.json person_keypoints_type.json,其中的type是 train/val/test+year。

框架准备
新建文件夹COCO
在COCO下新建images/ 和annotations/
使用labelme标注数据集
在anaconda中安装labelme 输入命令pip install labelme。
安装成功后输入labelme,打开labelme。
点击open Dir选择你要标注的文件夹。
点击Create Polygons开始标注数据集。
将标注好生成的josn文件保存至指定文件夹。
改写josn文件。

Pascal VOC 数据集简介

PASCAL VOC挑战赛 (The PASCAL Visual Object Classes )是一个世界级的计算机视觉挑战赛, PASCAL全称:Pattern Analysis, Statical Modeling and Computational Learning,是一个由欧盟资助的网络组织。很多模型都基于此数据集推出.比如目标检测领域的yolo,ssd等等。

VOC数据集格式

├── Annotations
├── ImageSets
│ ├── Action
│ ├── Layout
│ ├── Main
│ │ ├─ train.txt
│ │ ├─ val.txt
│ │ ├─ trainval.txt
│ └── Segmentation
├── JPEGImages
├── SegmentationClass
└── SegmentationObject

VOC数据集制作

按上图创建文件夹
使用pip命令安装labelimg
如上COCO数据集标注,将标注好的数据放入Annotations文件夹下
生成4个txt文件

import os
import random
def _main():
    trainval_percent = 0.1
    train_percent = 0.9
    xmlfilepath = 'F:/jupyter/process/VOC2007/Annotation/'
    total_xml = os.listdir(xmlfilepath)

    num = len(total_xml)
    list = range(num)
    tv = int(num * trainval_percent)
    tr = int(tv * train_percent)
    trainval = random.sample(list, tv)
    train = random.sample(trainval, tr)

    ftrainval = open('F:/jupyter/process/VOC2007/ImageSets/Main/trainval.txt', 'w')
    ftest = open('F:/jupyter/process/VOC2007/ImageSets/Main/test.txt', 'w')
    ftrain = open('F:/jupyter/process/VOC2007/ImageSets/Main/train.txt', 'w')
    fval = open('F:/jupyter/process/VOC2007/ImageSets/Main/val.txt', 'w')

    for i in list:
        name = total_xml[i][:-4] + '\n'
        if i in trainval:
            ftrainval.write(name)
            if i in train:
                ftest.write(name)
            else:
                fval.write(name)
        else:
            ftrain.write(name)

    ftrainval.close()
    ftrain.close()
    fval.close()
    ftest.close()


if __name__ == '__main__':
    _main()

数据集转换

VOC和COCO数据集转换可以使用paddleX和paddleDection中集成好的工具,当然大佬可以自己写。

VOC和COCO数据集的制作方法很多,本文使用的labelme和labelimg只是众多工具中的两个。

萌新求指正

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值