目标检测学习笔记-MS COCO数据集

1.MS COCO数据集简介

MS COCO是一个非常大型且常用的数据集,其中包括了目标检测,分割,图像描述等。其主要特性如下:

  • Object segmentation: 目标级分割
  • Recognition in context: 图像情景识别
  • Superpixel stuff segmentation: 超像素分割
  • 330K images (>200K labeled): 超过33万张图像,标注过的图像超过20万张
  • 1.5 million object instances: 150万个对象实例
  • 80 object categories: 80个目标类别
  • 91 stuff categories: 91个材料类别
  • 5 captions per image: 每张图像有5段情景描述
  • 250,000 people with keypoints: 对25万个人进行了关键点标注
    在这里插入图片描述
    在这里插入图片描述

下面是官文介绍论文中统计的对比图。通过对比图可以看到,coco数据集不仅类别更多,每个类别标注的目标也更多。,
在这里插入图片描述

2.MS COCO数据集下载

以coco2017数据集为例,主要下载三个文件

  • 2017 Train images [118K/18GB]:训练过程中使用到的所有图像文件
  • 2017 Val images [5K/1GB]:验证过程中使用到的所有图像文件
  • 2017 Train/Val annotations [241MB]:对应训练集和验证集的标注json文件
    下载后都解压到coco2017目录下,可以得到如下目录结构:
├── coco2017: 数据集根目录
     ├── train2017: 所有训练图像文件夹(118287张)
     ├── val2017: 所有验证图像文件夹(5000张)
     └── annotations: 对应标注文件夹
     		  ├── instances_train2017.json: 对应目标检测、分割任务的训练集标注文件
     		  ├── instances_val2017.json: 对应目标检测、分割任务的验证集标注文件
     		  ├── captions_train2017.json: 对应图像描述的训练集标注文件
     		  ├── captions_val2017.json: 对应图像描述的验证集标注文件
     		  ├── person_keypoints_train2017.json: 对应人体关键点检测的训练集标注文件
     		  └── person_keypoints_val2017.json: 对应人体关键点检测的验证集标注文件夹
     		  

3.数据集的使用

3.1 准备工作

下载上述三个数据集文件依次根据目录结构放入对应的地方。

3.2 使用python的json库查看json文件中存储的标注形式

在这里插入图片描述

单步调试可以看到读入进来后是个字典的形式,包括了info、licenses、images、annotations以及categories信息:
在这里插入图片描述

其中:

  • images是一个列表(元素个数对应图像的张数),列表中每个元素都是一个dict,对应一张图片的相关信息。包括对应图像名称、图像宽度、高度等信息。
    在这里插入图片描述

  • annotations是一个列表(元素个数对应数据集中所有标注的目标个数,注意不是图像的张数),列表中每个元素都是一个dict对应一个目标的标注信息。包括目标的分割信息(polygons多边形)、目标边界框信息[x,y,width,height](左上角x,y坐标,以及宽高)、目标面积、对应图像id以及类别id等。iscrowd参数只有0或1两种情况,一般0代表单个对象,1代表对象集合。
    在这里插入图片描述

  • categories是一个列表(元素个数对应检测目标的类别数)列表中每个元素都是一个dict对应一个类别的目标信息。包括类别id、类别名称和所属超类。
    在这里插入图片描述

对于每个类别:
超类 一些类别的统称
id:stuff91类中的索引,仔细看并不是1 ~ 80。所以如果后面要去训练80个类别的目标检测的话,需要做一个映射,把这些索引映射到1 ~ 80当中。

3.3使用pycocotools读取标注文件

# Linux 系统安装pycocotools
pip install pycocotools
# Windows系统安装pycocotools
pip install pycocotools-windows

在这里插入图片描述

在这里插入图片描述
代码如下所示:

import os
from pycocotools.coco import COCO
from PIL import Image, ImageDraw

import matplotlib
matplotlib.use('Agg')  
import matplotlib.pyplot as plt

json_path = "/home/tlx01/tlx_stu/zhy/learn/coco2017/instances_val2017.json"
img_path = "/home/tlx01/tlx_stu/zhy/learn/coco2017/val2017"

# load coco data
coco = COCO(annotation_file=json_path)

# get all image index info
ids = list(sorted(coco.imgs.keys()))
print("number of images: {}".format(
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值