【Microsoft COCO数据集介绍以及简单使用】

  • 文前白话
  • 1、MSCOCO数据集介绍
  • 2、COCO数据集格式说明
  • 3、数据集下载
  • 4、COCO API
  • ① pycocotools
  • ② 其它的COCO API
  • Reference


文前白话

本文介绍Microsoft COCO 数据集内容、格式、下载方式以及使用官方COCO API 处理训练、预测过程中数据以及可视化功能使用等等。

coco数据集目标检测下载 coco数据集详解_数据集

1、MSCOCO数据集介绍

MSCOCO数据集是微软开发维护的大型图像数据集,数据集标注类型对应任务包括物体检测、关键点检测、实例分割、 stuff分割 (没有特定形状的物体) ,全景分割人体关键点, 人体密度检测 等等。

数据特点:

目标级分割
图像情景识别
超像素分割
超过33万张图象,标注过的图像超过20+万张
150万个对象实例
80 Object categories (80个目标类别)
91个 stuff 类别

每张图图像有5段情景描述 对25万个人进行了关键点标注

coco数据集目标检测下载 coco数据集详解_深度学习_02

与pascal VOC 数据集对比:

coco数据集目标检测下载 coco数据集详解_pycocotools_03

COCO数据集在类别上,包含了VOC数据集的种类

在训练自己的数据集,可以先用COCO数据集预训练好的权重(训练比较耗时间,硬件GPU训练有一定的要求),再做一个迁移学习,可以达到一个更好的效果。

2、COCO数据集格式说明

关于COCO数据集官方给出的标注文件的格式说明:
具体参见官方链接: https://cocodataset.org/#format-data.

根据官方文档:预测的结果格式以列表的形式保存,列表中的每个元素对应一个检测目标(每个元素都是字典类型),每个目标(列表)中记录了四个信息:

  • image_id 记录该目标所属图像的id —— (int类型)
  • category_id 记录预测该目标的类别索引 ,注意这里索引是对应stuff中91个类别的索引信息**(int类型)** - (可以根据实际情况自己修改)
  • bbox 记录预测该目标的边界框信息,注意对应目标的[xmin,ymin,width,height]——(listfloat]类型)其中,xmin,ymin 目标边界框左上角的 x,y 坐标;width,height 对应目标的宽度和高度
  • score 记录预测该目标的概率(float类型

coco数据集目标检测下载 coco数据集详解_coco数据集目标检测下载_04

3、数据集下载

数据集官方网址:https://cocodataset.org/ 数据集介绍论文地址:https://arxiv.org/pdf/1504.00325.pdf.

coco数据集目标检测下载 coco数据集详解_coco数据集目标检测下载_05


数据集下载参赛选用参考:(自己跑无所谓,哪一个都可以)

coco数据集目标检测下载 coco数据集详解_数据集_06

针对于目标检测的需求,要下载的数据:

coco数据集目标检测下载 coco数据集详解_深度学习_07

  • 2017 Train images :训练过程所需的图片文件
  • 2017 Val images :验证过程所需的图片文件
  • 2017 Train/Val annotations :对应训练集和验证集的标注json文件

在本地计算机中创建一个新的文件夹存放下载到的数据集:

coco数据集目标检测下载 coco数据集详解_数据集_08

注意: 虽然每个json文件都有"info", “images” , “annotations”, "licenses"关键字,但不同的任务对应的json文件中annotation的形式不同。

coco数据集目标检测下载 coco数据集详解_pycocotools_09

在制作自己的数据集时候,文件夹的格式可以保持一致,标注的信息要提前筛选和检查一遍,避免在标注的过程中出现标定框的高度、宽度为0的情况,影响训练进行。

上述的文件夹框架中,在标注信息文件夹下,训练涉及的主要注意文件是:含有训练集标注信息的json文件 和 验证集的验证集标注信息的json文件。

自己训练的时候,没有必要自己划分测试集。只有特别需求的时候,比如参加什么比赛有要求,防止人为修改参数在模型和数据、结果之间作弊。一般通过训练集得到模型,用验证集进行验证就可以满足基本要求了

4、COCO API

① pycocotools

coco数据集目标检测下载 coco数据集详解_数据集_10

pycocotools:帮助使用python加载、解析和可视化coco中的标注文件

示例:

coco数据集目标检测下载 coco数据集详解_COCO数据集_11

通过pycocotools可以读取图片以及对应的并标签信息,将预测的结果在原图中显示出来。

coco数据集目标检测下载 coco数据集详解_深度学习_12


coco数据集目标检测下载 coco数据集详解_COCO数据集_13

coco数据集目标检测下载 coco数据集详解_COCO数据集_14

② 其它的COCO API

  • COCO类:用于加载COCO标注文件并准备所需的数据结构.
  • getAnnlds:获取满足条件的标注信息的ids.
  • getCatlds:获取满足条件的类别的ids.
  • getlmglds:获取满足条件的图片的ids.
  • loadAnns:加载指定ids对应的标注信息.
  • loadCats:加载指定ids对应的类别.
  • loadlmgs:加载指定ids对应的图片.
  • annToMask:将 segmentation 标注信息转换为二值mask.
  • showAnns:显示指定ids的标注信息到对应的图片上.
  • loadRes:加载算法的结果并创建可用于访问数据的APl.
  • download:从mscoco.org 服务器下载COCO图片数据集.