본문 바로가기
IT_Study/AI_Study

[Object Detection] 02. VOC and COCO dataset

by 두번째얼룩 2022. 8. 3.

이번 포스트에서는 Object Detection History를 리뷰하는 과정에서 나온 VOC, COCO라는 키워드에 대해서 알아보려고 한다. 

첫 번째로 VOC는 Visual Object Classe의 약자로, Pascal VOC Challenges라는 이름하에 Object detection 관련 경연이었다. Classification/Detection, Segmentation, Action Classification, Person Layout Taster로 Task를 구분하여 진행하였다. 

현재 이 경연은 더 이상 진행하지 않는 것으로 보인다. 2005년부터 2012년까지 진행되었으며, 'VOC07'은 07년도 VOC 경연 결과, 'VOC12'는 12년도 VOC 경연 결과로 생각하면 된다. 경연을 위한 Image dataset이 존재하며, 이를 표현하는 방식도 정형화되어 VOC Data format으로 명명되어 사용된다. 우리가 관심 있는 Classification/Detection Task의 Image dataset이 어떻게 구성되어 있는 지를 살펴보면 아래 그림과 같이 20개의 Class로 구성되어 있다. 

VOC Dataset Classes[1]

크게 Vehicles, Household, Animals, Person 이렇게 4가지 Category로 나뉘고, 그 안에서 종류에 따라 다시 세분화 된다. 

VOC Dataset Classes [2]

PASCAL VOC Format은 아래와 같이 구성되어 있다. XML 파일로 구성되어 있으며, filename, image size, name, bndbox 등으로 구성되어 있다. VOC Image dataset을 이용하려면 아래 format을 기반으로 코딩을 수행해야한다. 이와 다른 형태로 입력을 받는 경우, 변환이 필요하다. 

<annotation>
    <folder>VOC2007</folder>
    <filename>000001.jpg</filename>
    <source>
        <database>The VOC2007 Database</database>
        <annotation>PASCAL VOC2007</annotation>
        <image>flickr</image>
        <flickrid>341012865</flickrid>
    </source>
    <owner>
        <flickrid>Fried Camels</flickrid>
        <name>Jinky the Fruit Bat</name>
    </owner>
    <size>
        <width>353</width>
        <height>500</height>
        <depth>3</depth>
    </size>
    <segmented>0</segmented>
    <object>
        <name>dog</name>
        <pose>Left</pose>
        <truncated>1</truncated>
        <difficult>0</difficult>
        <bndbox>
            <xmin>48</xmin>
            <ymin>240</ymin>
            <xmax>195</xmax>
            <ymax>371</ymax>
        </bndbox>
    </object>
    <object>
        <name>person</name>
        <pose>Left</pose>
        <truncated>1</truncated>
        <difficult>0</difficult>
        <bndbox>
            <xmin>8</xmin>
            <ymin>12</ymin>
            <xmax>352</xmax>
            <ymax>498</ymax>
        </bndbox>
    </object>
</annotation>

 

두 번째로는 COCO는 Common Object in Context의 약자로, COCO라는 이름하에 경연이 존재한다. 2021년도 경연이 존재하는 것으로 보아 계속 진행되는 것으로 보인다. COCO는 아래와 같은 특징을 가진다고 한다. 

What is COCO[3]

COCO TASK도 마찬가지로 Detection, Keypoints, Panoptic, DensePose와 같이 4가지로 구분되어 진행된다. Detection의 경우, Bounding box를 이용한 검출이나 object segmentation 수행과 같이 2가지 Task로 구분된다. COCO Dataset은 VOC보다 많은 91개의 Classes를 가지고 있다. 

(Backbone으로 사용된 Darknet 프레임에는 80개로 되어있으나, COCO DATASET 논문에 나와있는 클래스 개수는 91개라고 한다. 누락된 클래스:: stop sign, hat, shoe, eye glasses, plate, mirror, window, desk, door, blender, hair brush)

Dataset Example[3]

COCO Format은 아래와 같이 구성되어 있다. JSON 파일로 구성되어 있으며, Images, categories, annotations, bbox, area, height, width 등으로 구성되어 있다. COCO Image dataset을 이용하려면 아래 format을 기반으로 코딩을 수행해야한다. 이와 다른 형태로 입력을 받는 경우, 변환이 필요하다. 

COCO Dataformat for Object detection

이번 포스트에서는 두 가지의 dataset에 대해서 살펴보았다. 직접 dataset을 만들기는 어렵기 때문에, 기존에 만들어진 dataset을 이용해야 할 일이 많다. dataset을 사용하기 위해서는 data format에 대해서 알아야 하고, 필요시 이를 변환하는 코드를 작성해야 할 수 도 있다. 필자는 경연 초기에는 coco dataset format으로 사용하기 시작하였고, 이를 기반으로 csv로 변환하는 코드를 작성하여 사용하였다. 

다음 포스트에는 mAP에 대해서 알아보도록 하겠다. 

 

* Reference

[1]: http://host.robots.ox.ac.uk/pascal/VOC/voc2012/index.html

 

The PASCAL Visual Object Classes Challenge 2012 (VOC2012)

2006 10 classes: bicycle, bus, car, cat, cow, dog, horse, motorbike, person, sheep. Train/validation/test: 2618 images containing 4754 annotated objects. Images from flickr and from Microsoft Research Cambridge (MSRC) dataset The MSRC images were easier th

host.robots.ox.ac.uk

[2]: The PASCAL Visual Object Classes (VOC) Challenge
Everingham, M., Van Gool, L., Williams, C. K. I., Winn, J. and Zisserman, A.
International Journal of Computer Vision, 88(2), 303-338, 2010

[3] : https://cocodataset.org/#home

댓글