coco数据集

  1. 类别:80类
  2. 3种标注类型,使用json文件存储,每种类型包含了训练和验证
    object instances (目标实例): 也就是目标检测object detection
    object keypoints (目标上的关键点)
    image captions(看图说话)

    要求做的是目标检测,so,我主要做object instances这一块的内容整理。对于其他两块内容的话,网上很多大佬整理得蛮详细的,CSDN一下(其实三者都差不多)。

coco 数据集的特点

推荐一篇博文:Dataset - COCO Dataset 数据特点,写得很详细。object instances 、object keypoints、 image captions的标注形式介绍都有。

json标注文件的格式

在python里面,读取出json标注格式文件,实际上是一个dict,如下所示:

{"info": info,"licenses": [license],"images": [image],"annotations": [annotation],"categories": [category]
}

包含5个字段信息:info, licenses, images, annotations,categories。上面3种标注类型共享的字段信息有:info、image、license。不共享的是annotation和category这两种字段,他们在不同类型的JSON文件中是不一样的。

object instances中,概述一下其中每个字段的结构与包含的信息:
(1)images字段列表元素的长度等同于划入训练集(或者测试集)的图片的数量;
(2)annotations字段列表元素的数量等同于训练集(或者测试集)中bounding box的数量;
(3)categories字段列表元素的数量等同于类别的数量,coco为80(2017年);


以下的各个字段,都是object instances中的。

info字段

info字段结构

info: {"year": int,# 年份"version": str,# 版本"description": str, # 数据集描述"contributor": str,# 提供者"url": str,# 下载地址"date_created": datetime
}

info字段的信息一般如下,在写程序时一般用不到:

"info":{"description":"This is stable 1.0 version of the 2014 MS COCO dataset.","url":"http:\/\/mscoco.org","version":"1.0","year":2014,"contributor":"Microsoft COCO group","date_created":"2015-01-27 09:11:52.357475"
},

licenses字段

licenses字段结构

license{"id": int,"name": str,"url": str,
}

licenses字段的信息如下,在写程序时一般用不到:

{"url":"http:\/\/creativecommons.org\/licenses\/by-nc-sa\/2.0\/","id":1,"name":"Attribution-NonCommercial-ShareAlike License"
}

images字段

images字段结构:

image{"id": int,# 图片的ID编号(每张图片ID是唯一的)"width": int,#宽"height": int,#高"file_name": str,# 图片名"license": int,"flickr_url": str,# flickr网路地址"coco_url": str,# 网路地址路径"date_captured": datetime # 数据获取日期
}

Images是包含多个image实例的数组,对于一个image类型的实例:

{"license":3,"file_name":"COCO_val2014_000000391895.jpg","coco_url":"http:\/\/mscoco.org\/images\/391895","height":360,"width":640,"date_captured":"2013-11-14 11:18:45","flickr_url":"http:\/\/farm9.staticflickr.com\/8186\/8119368305_4e622c8349_z.jpg","id":391895
}

每一个image的实例是一个dict。其中有一个id字段,代表的是图片的id,每一张图片具有唯一的一个独特的id。

annotations字段

annotations字段是包含多个annotation实例的一个列表,annotation类型本身又包含了一系列的字段,如这个目标的category id和segmentation mask。segmentation格式取决于这个实例是一个单个的对象(即iscrowd=0,将使用polygons格式)还是一组对象(即iscrowd=1,将使用RLE格式)。如下所示:

annotation{"id": int, # 对象ID,因为每一个图像有不止一个对象,所以要对每一个对象编号(每个对象的ID是唯一的)"image_id": int,# 对应的图片ID(与images中的ID对应)"category_id": int,# 类别ID(与categories中的ID对应)"segmentation": RLE or [polygon],# 对象的边界点(边界多边形,此时iscrowd=0)。#segmentation格式取决于这个实例是一个单个的对象(即iscrowd=0,将使用polygons格式)还是一组对象(即iscrowd=1,将使用RLE格式)"area": float,# 区域面积"bbox": [x,y,width,height], # 定位边框 [x,y,w,h]"iscrowd": 0 or 1 #见下
}

:单个的对象(iscrowd=0)可能需要多个polygon来表示,比如这个对象在图像中被挡住了。而iscrowd=1时(将标注一组对象,比如一群人)的segmentation使用的就是RLE格式。

什么是RLE格式:

RLE:Run Length Encoding(行程长度压缩算法)
在机器视觉领域的深度学习中,每个数据集都有一份标注好的数据用于训练神经网络。
为了节省空间,很多数据集的标注文件使用RLE的格式,比如 kaggle 挑战赛的 Airbus Ship Detection Challenge。
但是神经网络的输入一定是一张图片,为此必须把RLE格式的文件转变为图像格式。

注意啊,iscrowd=0那么segmentation就是polygon格式;只要iscrowd=1那么segmentation就是RLE格式。另外,每个对象(不管是iscrowd=0还是iscrowd=1)都会有一个矩形框bbox,矩形框左上角的坐标和矩形框的长宽会以数组的形式提供,数组第一个元素就是左上角的横坐标值。polygon格式比较简单,这些数按照相邻的顺序两两组成一个点的xy坐标,如果有n个数(必定是偶数),那么就是n/2个点坐标。

area是area of encoded masks,是标注区域的面积。如果是矩形框,那就是高乘宽;如果是polygon或者RLE,那就复杂点。

在一个annotation的实例中有两个id,其中image_id指的是这个annotation属于哪一张图片,即前面提到的图片的id,另外一个“id”指的是这个annotation的一个id。

注意: annotation的image_id是不唯一的,代表的是,这个annotation是指向image_id图片的标注,因为图片的标注不止一个,可能有好几个标注。

一个annotation为segmentation是polygon格式的实例:

{"segmentation": [[510.66,423.01,511.72,420.03,510.45......]],"area": 702.1057499999998,"iscrowd": 0,"image_id": 289343,"bbox": [473.07,395.93,38.65,28.67],"category_id": 18,"id": 1768
}

categories字段

categories是一个包含多个category实例的列表,而一个category结构体描述如下:

{"supercategory": str,# 主类别"id": int,# 类对应的id (0 默认为背景)"name": str # 子类别
}

categories类型实例:

{"supercategory": "person","id": 1,"name": "person"
},
{"supercategory": "vehicle","id": 2,"name": "bicycle"
}

参考链接:

  • COCO 数据集格式了解
  • MSCOCO数据标注详解
  • COCO 标注详解

更新2021.10.13

有大半年没有更新博客了,这段时间一直准备春招,实习,秋招,到今天基本上可以结束坐等开奖了;
目前手里有近10个CV算法工程师意向书:字节,商汤,百度,顺丰,华为,小红书,拼多多,小马智行,海康威视,腾讯等。
接下来会花很多时间在小红书上整理这一过程所有的经验以及技巧,包括:丰富简历内容,如何打比赛(大佬止步),如何刷题,刷什么题,刷到什么程度,面试技巧,面经整理,hr面技巧,如何反问面试官,如何argue薪资等等等,大家有需要可以关注一波哈,内容保证丰富!助力大家秋招收割offer到手软!

大家如果是刚研一或者已经研二或者是大二或者大三赶紧关注一波,关注我秋招不踩坑!

小红书号:371845174(Activewaste,博客同名)

后面也会在小红书分享好用工具,插件,装逼神器等,手把手教学,大家关注起来哈!
我看有粉丝评论私信求更新的,大受鼓舞哈哈哈哈,后面会继续更新论文笔记,供大家参考互相学习!!!
另外我比较少上csdn,大家给我私信要联系方式或者评论问问题有时没看到(一个月没上,200+的通知),大家直接去小红书私信提问,或者催我撒!

COCO数据集标注格式详解----object instances相关推荐

  1. COCO pose数据集标注文件详解

    COCO pose数据集标注文件详解 注意:使用python3来描述数据集中的内容 导入python 使用val2014来举例: from pycocotools.coco import COCO i ...

  2. VOC和COCO数据集标注格式的介绍

    COCO数据集标注格式的介绍: https://blog.csdn.net/m0_37970224/article/details/89211122 VOC数据集标注格式的介绍: https://bl ...

  3. COCO数据集标注格式

    原文链接:<https://zhuanlan.zhihu.com/p/29393415> COCO的 全称是Common Objects in COntext,是微软团队提供的一个可以用来 ...

  4. MS COCO数据集标注格式解析

    COCO是微软提供的一个图像识别的数据集.其中包括3个tasks,分别是object instances, object keypoints, 和image captions,存储格式为JSON. 基 ...

  5. Java字节码(.class文件)格式详解(一)

    原文链接:http://www.blogjava.net/DLevin/archive/2011/09/05/358033.html 小介:去年在读<深入解析JVM>的时候写的,记得当时还 ...

  6. php serialize取值,PHP 序列化(serialize)格式详解

    PHP 序列化(serialize)格式详解(转) 1.前言 PHP (从 PHP 3.05 开始)为保存对象提供了一组序列化和反序列化的函数:serialize.unserialize.不过在 PH ...

  7. php serialize mysql_php 序列化(serialize)格式详解

    1.前言 PHP (从 PHP 3.05 开始)为保存对象提供了一组序列化和反序列化的函数:serialize.unserialize.不过在 PHP 手册中对这两个函数的说明仅限于如何使用,而对序列 ...

  8. PHP 序列化(serialize)格式详解

      1.前言 PHP (从 PHP 3.05 开始)为保存对象提供了一组序列化和反序列化的函数:serialize.unserialize.不过在 PHP 手册中对这两个函数的说明仅限于如何使用,而对 ...

  9. C语言:JSON格式详解

    C语言:JSON格式详解 C语言:cJSON库用法详解 C语言:使用cJSON库构造JSON C语言:使用cJSON库解析JSON字符串 JSON 简介 JSON全称 JavaScript Objec ...

最新文章

  1. 对云风 cstring 第二次解析
  2. Java 内存泄漏排查,新技能+1
  3. php函数设置默认值,php函数如何设置默认值作为对象?
  4. Golang 的跨平台交叉编译浅析
  5. 1070: [SCOI2007]修车
  6. hibernate jpa_教程:Hibernate,JPA –第1部分
  7. 数字图像处理--图像旋转变换的推导
  8. node ajax配置文件,如何存储Node.js部署设置/配置文件?
  9. java处理获取到的Elasticsearch数据
  10. Python字符串常用方法(split,partition,maketrans,strip...)
  11. java的if else if_java,if else和if else if else区别?
  12. crontab 每天凌晨12点定时器_清运队长每天凌晨3点转运垃圾,因为垃圾分类工作时间大大减少了...
  13. 【Hibernate步步为营】--最后的集合映射
  14. 新浪微博营销的方式与技巧都有哪些呢?
  15. 深度学习——目标定位
  16. iOS5完美越狱箭在弦上 Android更赚钱
  17. Go 每日一库之 testify
  18. 搜索引擎优化 SEO攻略大全
  19. Springboot实现微信小程序注册登录及微信登录
  20. 2016年计算机二级应用试题,计算机二级office真题及答案

热门文章

  1. 计算机视觉面试c++
  2. debian+linux百度云,Linux Centos/Ubuntu/Debian系统图形化界面挂BT、PT一键包(rtorrent+rutorrent)...
  3. 服务器托管机房机柜租用的费用都有哪些
  4. 蓝桥杯嵌入式省赛第七届:模拟液位检测告警系统”
  5. 用C++和SFML写游戏-Game类的创建(2)
  6. php 分割中文字符串(1个字,多个字)
  7. 西门子变频器散热降温问题的解决
  8. 岁月神偷啊时光杀手啊
  9. 发送邮件使家中NAS自动下载资源
  10. 广联达无领导小组面试题 新鲜出炉