【翻译】COCO 标记格式

COCO 标记格式

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

数据格式

COCO有几种标注类型:用于目标检测、关键点检测、物体分割、全景分割、密集姿态和图像描述。这些标注使用JSON格式存储。请注意,下载页面上描述的COCO API可以用于访问和操作所有标注。所有标注共享以下基本数据结构:

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

info{
    "year": int, 
    "version": str, 
    "description": str, 
    "contributor": str, 
    "url": str, 
    "date_created": datetime,
}

image{
    "id": int, 
    "width": int, 
    "height": int, 
    "file_name": str, 
    "license": int, 
    "flickr_url": str, 
    "coco_url": str, 
    "date_captured": datetime,
}

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

以下是各种标注类型特定的数据结构描述。

1. 目标检测

每个对象实例标注包含一系列字段,包括对象的类别ID和分割掩码。分割格式取决于实例是否表示单个对象(iscrowd=0,此时使用多边形)或对象集合(iscrowd=1,此时使用RLE)。请注意,单个对象(iscrowd=0)可能需要多个多边形,例如在被遮挡的情况下。人群标注(iscrowd=1)用于标记大量对象(例如一群人)。此外,每个对象都提供一个包围边界框(边界框坐标从图像左上角测量,使用0索引)。最后,标注结构的类别字段存储类别ID到类别和超类别名称的映射。另请参见检测任务。

annotation{
    "id": int, 
    "image_id": int, 
    "category_id": int, 
    "segmentation": RLE or [polygon], 
    "area": float, 
    "bbox": [x,y,width,height], 
    "iscrowd": 0 or 1,
}

categories[{
    "id": int, 
    "name": str, 
    "supercategory": str,
}]

2. 关键点检测

关键点标注包含对象标注的所有数据(包括id、bbox等)和两个附加字段。首先,“keypoints”是一个长度为3k的数组,其中k是为类别定义的关键点总数。每个关键点都有一个0索引的位置x,y和一个可见性标志v,定义为v=0:未标注(此时x=y=0),v=1:已标注但不可见,v=2:已标注且可见。如果关键点落在对象分割内,则认为它是可见的。“num_keypoints”表示给定对象的标注关键点数量(v>0)(许多对象,例如人群和小物体,将有num_keypoints=0)。最后,对于每个类别,类别结构有两个附加字段:“keypoints”,这是一个长度为k的关键点名称数组,以及“skeleton”,通过关键点边缘对列表定义连接性,用于可视化。目前,关键点仅标注在person类别(大多数中/大型非人群实例)上。另请参见关键点任务。

annotation{
    "keypoints": [x1,y1,v1,...], 
    "num_keypoints": int, 
    "[cloned]": ...,
}

categories[{
    "keypoints": [str], 
    "skeleton": [edge], 
    "[cloned]": ...,
}]

"[cloned]": denotes fields copied from object detection annotations defined above.

3. 物体分割

物体标注格式与上述目标检测格式相同且完全兼容(除了iscrowd不必要且默认设置为0)。我们提供JSON和png格式的标注以便于访问,并提供两种格式之间的转换脚本。在JSON格式中,图像中存在的每个类别都用单个RLE标注编码(有关更多详细信息,请参见Mask API)。category_id表示当前物体类别的ID。有关物体类别和超类别的更多详细信息,请参见物体评估页面。另请参见物体任务。

4. 全景分割

对于全景任务,每个标注结构是每图像标注而不是每对象标注。每个每图像标注有两个部分:(1)一个PNG存储类无关的图像分割,(2)一个JSON结构存储每个图像段的语义信息。更详细地:

  1. 要将标注与图像匹配,请使用image_id字段(即annotation.image_id==image.id)。
  2. 对于每个标注,每像素段ID存储为annotation.file_name中的单个PNG。PNG位于与JSON同名的文件夹中,即annotations/name/对应annotations/name.json。每个段(无论是物体还是东西段)都分配一个唯一ID。未标注的像素(void)分配值为0。请注意,当您将PNG加载为RGB图像时,您需要通过ids=R+G256+B256^2 计算ID。
  3. 对于每个标注,每段信息存储在annotation.segments_info中。segment_info.id存储段的唯一ID,并用于从PNG中检索相应的掩码(ids==segment_info.id)。category_id给出语义类别,iscrowd表示该段包含一组对象(仅适用于物体类别)。bbox和area字段提供有关该段的附加信息。
  4. COCO全景任务与检测任务具有相同的物体类别,而物体类别与物体任务中的类别不同(有关详细信息,请参见全景评估页面)。最后,每个类别结构有两个附加字段:isthing区分物体和东西类别,color用于一致的可视化。
annotation{
    "image_id": int, 
    "file_name": str, 
    "segments_info": [segment_info],
}

segment_info{
    "id": int,
    "category_id": int, 
    "area": int, 
    "bbox": [x,y,width,height], 
    "iscrowd": 0 or 1,
}

categories[{
    "id": int, 
    "name": str, 
    "supercategory": str, 
    "isthing": 0 or 1, 
    "color": [R,G,B],
}]

5. 图像描述

这些标注用于存储图像描述。每个描述描述指定的图像,每个图像至少有5个描述(某些图像有更多)。另请参见描述任务。

annotation{
    "id": int, 
    "image_id": int, 
    "caption": str,
}

6. 姿态估计

对于姿态估计(DensePose)任务,每个标注包含一系列字段,包括类别ID、边界框、身体部位掩码和选定点的参数化数据,详细如下。

人群标注(iscrowd=1)用于标记大量对象(例如一群人)。

每个人都提供一个包围边界框(边界框坐标从图像左上角测量,使用0索引)。

标注结构的类别字段存储类别ID到类别和超类别名称的映射。

DensePose 标注存储在dp_*字段中:

标注掩码

  • dp_masks:RLE编码的密集掩码。所有部位掩码的大小为256x256。它们对应于身体的14个语义部分:躯干、右手、左手、左脚、右脚、右上腿、左上腿、右下腿、左下腿、左上臂、右上臂、左下臂、右下臂、头部;

标注点

  • dp_x, dp_y:图像上收集点的空间坐标。坐标按边界框大小缩放为256x256;
  • dp_I:补丁索引,指示点所在的24个表面补丁中的哪个。补丁对应于上述身体部位。某些身体部位分为2个补丁:1, 2 = 躯干,3 = 右手,4 = 左手,5 = 左脚,6 = 右脚,7, 9 = 右上腿,8, 10 = 左上腿,11, 13 = 右下腿,12, 14 = 左下腿,15, 17 = 左上臂,16, 18 = 右上臂,19, 21 = 左下臂,20, 22 = 右下臂,23, 24 = 头部;
  • dp_U, dp_V:UV空间中的坐标。每个表面补丁都有一个单独的2D参数化。
annotation{
    "id": int, 
    "image_id": int, 
    "category_id": int, 
    "is_crowd": 0 or 1, 
    "area": int, 
    "bbox": [x,y,width,height], 
    "dp_I": [float], 
    "dp_U": [float], 
    "dp_V": [float], 
    "dp_x": [float], 
    "dp_y": [float], 
    "dp_masks": [RLE],
}

欢迎关注作者公众号,获取更多技术分享
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值