머신러닝을 위해 많은 데이터 포맷이있는데, 그 중에 COCO Dataset은 object detection, segmentation, keypoint detection 등을 위한 데이터 포맷(형식)이다.
COCO Dataset은 크게 5가지로 구분된 정보를 담고 있다.
아래 예시 이미지를 보자.
Info는 데이터셋에 대한 데이터셋 버전, 설명, 생성 날짜 등 high-level한 정보를 포함하고 있다.
예시)
{
"info": {
"description": "COCO 2017 Dataset",
"url": "http://cocodataset.org",
"version": "1.0",
"year": 2017,
"contributor": "COCO Consortium",
"date_created": "2017/09/01"
},
이미지의 라이센스 목록이 포함되어 있습니다.
예시)
"licenses": [
{
"url": "http://creativecommons.org/licenses/by-nc-sa/2.0/",
"id": 1,
"name": "Attribution-NonCommercial-ShareAlike License"
},
...
],
데이터셋에 속하는 전체 이미지 목록과 같다. 이미지 각각의 파일명, width, height 등의 정보가 포함되어 있다.
예시)
"images": [
...
{
"license": 1,
"file_name": "000000324158.jpg",
"coco_url": "http://images.cocodataset.org/val2017/000000324158.jpg",
"height": 334,
"width": 500,
"date_captured": "2013-11-19 23:54:06",
"flickr_url": "http://farm1.staticflickr.com/169/417836491_5bf8762150_z.jpg",
"id": 324158
},
...
],
한 이미지에는 여러 객체가 존재할 수 있기 때문에, Annotation은 이미지가 아닌 객체를 기준으로 작성되어 있다.
예시)
"annotations": [
...
{
"segmentation": [
[
216.7,
211.89,
216.16,
217.81,
215.89,
220.77,
...
212.16
]
],
"area": 759.3375500000002,
"iscrowd": 0,
"image_id": 324158,
"bbox": [
196.51,
183.36,
23.95,
53.02
],
"category_id": 18,
"id": 10673
},
...
{
"segmentation": [
[
44.2,
167.74,
48.39,
162.71,
...
167.58
]
],
"area": 331.9790999999998,
"iscrowd": 0,
"image_id": 324158,
"bbox": [
44.2,
161.19,
36.78,
13.78
],
"category_id": 3,
"id": 345846
},
...
],
데이터셋에 존재하는 Category에 대한 정보(id, name)가 담겨 있다.
예시)
"categories": [
{
"supercategory": "person",
"id": 1,
"name": "person"
},
...
]
}