본문 바로가기
나만 보는 정리노트/ComputerVision

[Dataset] COCO 데이터셋이란?

by SeoKhan 2022. 12. 27.

COCO 데이터셋 예시

다음과 같은 이미지 및 라벨을 제공하는 것이 COCO 데이터셋이다.

이를 활용하여 Object Detection / Localization / Segmentation / Line Detection 등 다양한 분야에 사용된다.

 

coco 데이터셋의 포맷을 보면 크게

  1. Info
  2. License
  3. Images
  4. Annotations

와 같은 네가지로이루어진다.

여기서 Info와 License는 COCO 데이터셋이나 COCO 데이터셋의 포맷을 이용한 다른 데이터셋들의 정보를 나타내는 것이며, 실질적인 정보는 Images와 Annotations에 들어있다.

 

Images에는 다음과 같은 정보가 들어있다.

  • file_name: 이미지 파일의 경로명
  • id: 해당 이미지의 id
  • height: 이미지의 높이
  • width: 이미지의 너비

이와 같이 네 가지 정보가 기본적으로 들어가며 COCO 데이터셋 포맷을 이용한 다른 데이터에선 추가적으로 다른 정보가 들어갈 수 있으니 항상 해당 데이터셋의 annotations 폴더 내의 train와 val의 json 파일을 보면서 images에 추가된 정보가 있는지 참고하여 추가된 정보가 있으면 맞춰주도록 하자.

 

이어서 Annotations에는 다음과 같은 정보가 들어있다.

  • id: 해당 정보의 id
  • image_id: 해당 정보를 가진 이미지의 id
  • bbox: segmentation, detection 등 bounding box의 점들 (좌상단, 우하단)
  • is_crowd: pose_esitimation이면 1 아니면 0
  • category_id: 어느 카테고리에 속하는지에 따라 달라지는 id
  • area: 해당 segmentation의 면적
  • segmentation: segmentation 되어지는 범위의 점들

segmentation 정보는 LETR 같은 모델에선 line이라는 정보로 대체되고 area는 1로 설정되는 등 모델별로 사용되는 정보가 상이할 수 있으니, 꼭 어떤 데이터들을 사용하는지 확인하고 그에 맞춰주도록 하자.

 
 
 
 
Reference.
[1] https://dacon.io/forum/405930