본문 바로가기

인공지능 공부

COCO 데이터셋 조사 및 커스텀 데이터 만들기

영상 기반 객체 탐지 기술을 조사하다보면 COCO dataset을 이용한 기술이 많은 것을 알 수 있다. 이 COCO dataset은 뭘까?

 

1. COCO 데이터셋 조사 

 

우선 cocodataset.org 사이트에 접속해서 알아봤다.

 

첫 화면에서 내가 궁금해했던 내용이 등장한다.

굳이 번역해보면, 

 

COCO는 객체 탐지, 세그멘테이션, 캡셔닝을 위한 대규모의 데이터셋이다. COCO는 다음과 같은 특징을 가지고 있다.

 - 객체 세그멘테이션

 - 컨텍스트 내의 인식

 - 슈퍼픽셀 stuff segmentation(뭔지 모르겠는데)

 - 330K 개의 이미지(200k이상이 레이블되어있다)

 - 1.5 백만개의 객체 수

 - 80개의 객체 카테고리

 - 91개의 stuff 카테고리 (객체와 stuff의 차이가 뭘까? "task addresses thing classes (person, car, elephant), this task focuses on stuff classes" 라는 문구를 이용하여 추정해보자.)

 - 이미지마다 5개의 캡션이 달려있음

 - keypoints가 달려있는 250,000 사람들의 이미지

 

뉴스란에도 흥미가 가는 내용이 있다. 

 FiftyOne이라는 오픈소스 툴이 코코데이터 리소스에 접근하고 가시화를 해주면서 동시에 평가 툴 또한 재공해준다는 것이다. 알고리즘을 개발하게 된다면 주의깊게 볼만한 툴인 것 같다. 커스텀 데이터셋에 대한 평가 툴로 활용할 수도 있을듯..

 

 실제로 어떤 데이터가 있는지 확인해보자. 

COCO 2017 데이터셋에 들어있는 카테고리다. 매우 다양한 카테고리의 객체들에 대한 데이터를 가지고 있다.

출처: https://www.superannotate.com/blog/coco-dataset-introduction

 

카테고리를 골라서 서치를 하면 이런 형태의 결과물이 나온다. 이미지 위에 객체별 세그멘테이션 되어있는 이 형태가 바로 COCOdataset의 구성요소이다.

 

2. 커스텀 COCO Dataset 만들기

 

일단 툴이 있는지 먼저 조사해본다. 

https://github.com/jsbroks/coco-annotator

 

GitHub - jsbroks/coco-annotator: :pencil2: Web-based image segmentation tool for object detection, localization, and keypoints

:pencil2: Web-based image segmentation tool for object detection, localization, and keypoints - GitHub - jsbroks/coco-annotator: :pencil2: Web-based image segmentation tool for object detection, lo...

github.com

이런게 있긴 한데.. 이슈를 보니 잘 작동안하는 모양...

 

옆자리 동료를 보니 비슷한 작업을 하고 있다.

https://github.com/PaddlePaddle/PaddleSeg

 

GitHub - PaddlePaddle/PaddleSeg: Easy-to-use image segmentation library with awesome pre-trained model zoo, supporting wide-rang

Easy-to-use image segmentation library with awesome pre-trained model zoo, supporting wide-range of practical tasks in Semantic Segmentation, Interactive Segmentation, Panoptic Segmentation, Image ...

github.com

이 툴을 이용해서 작업하고 있는데 이걸로 편하게 작업할 수 있을 것 같다. 진행해보자. 

 

위 툴이 아니라면 

GIMP 등으로 레이어를 만들고 원본 이미지와 세그먼트를 입력한 레이어 이미지를 저장하고 이걸 파싱해서 자동으로 coco format으로 만들어주는 pycoco 같은걸 이용하면 되는 것 같은데.. 이 과정이 상당히 귀찮아보인다. 

 

https://ukayzm.github.io/cocodataset/

https://blog.naver.com/prkim99/221981158599

 https://www.youtube.com/watch?v=jftZBfMZj8k&ab_channel=MatthewHowlett

 

 

이상으로 COCO 데이터셋 조사 및 커스텀 데이터 만들기 포스팅을 마친다.