카테고리 없음

[Dataset] COCO 2017 dataset 쉽게 다운받는법, 터미널 명령어로 다운받기, 특징, 포맷, 종류

도도걸만단 2024. 11. 6. 19:56
반응형

급하신 분은 하단 다운받는법으로 바로 가셔요

COCO 2017 데이터셋은 컴퓨터 비전 분야에서 가장 널리 사용되는 대규모 공개 데이터셋 중 하나로, 객체 탐지(Object Detection), 인스턴스 분할(Instance Segmentation), 키포인트 검출(Keypoint Detection), 이미지 캡셔닝(Image Captioning) 등 다양한 비전 과제의 표준 벤치마크로 활용됩니다


 

 

Object Detection

  • 객체 검출, 감지로 하나의 이미지 안에서 찾는 물체의 개수에 따라 Single-Object Detection과 Multi-Object Detection이 있습니다.
  • Object Detection에서 이미지를 입력했을때 Classification(분류)뿐 아니라 Localization(bounding box)까지 찾아줍니다.
  • COCO dataset은 Object Detection, Segmentation, Keypoint Detection 등을 위해 제공된 dataset.

 

COCO dataset 특징 :

  • 다양한 크기의 물체가 존재하며 높은 비율로 작은 물체들이 존재한다.
  • COCO Dataset은 크게 5가지로 구분된 정보를 담고 있다.
  • 80개의 classes

COCO dataset 종류 :

  • Image
    • 2014 Train images [83K/13GB]
    • 2014 Val images [41K/6GB]
    • 2014 Test images [41K/6GB]
    • 2015 Test images [81K/12GB]
    • 2017 Train images [118K/18GB]
    • 2017 Val images [5K/1GB]
    • 2017 Test images [41K/6GB]
    • 2017 Unlabeled images [123K/19GB]
  • Annotation
    • 2014 Train/Val annotations [241MB]
    • 2014 Testing Image info [1MB]
    • 2015 Testing Image info [2MB]
    • 2017 Train/Val annotations [241MB]
    • 2017 Stuff Train/Val annotations [1.1GB]
    • 2017 Panoptic Train/Val annotations [821MB]
    • 2017 Testing Image info [1MB]
    • 2017 Unlabeled Image info [4MB]

 

COCO dataset 포맷 :

  1. Info
  2. License
  3. Images
    • file_name: 이미지 파일의 경로명
    • id: 해당 이미지의 id
    • height: 이미지의 높이
    • width: 이미지의 너비
  4. Annotations
    • id: 해당 정보의 id
    • image_id: 해당 정보를 가진 이미지의 id
    • bbox: segmentation, detection 등 bounding box의 점들 (좌상단, 우하단)
    • is_crowd: pose_esitimation이면 1 아니면 0
    • category_id: 어느 카테고리에 속하는지에 따라 달라지는 id
    • area: 해당 segmentation의 면적
    • segmentation: segmentation 되어지는 범위의 점들

Info&License : COCO 데이터셋이나 COCO 데이터셋의 포맷을 이용한 다른 데이터셋들의 정보를 나타내는 것

Images&Annotations : 실질적인 정보

 

 

주요 특징

  • 정식 명칭: Microsoft COCO (Common Objects in Context)
  • 이미지 수: 약 330,000장 전체, 2017 버전 기준 약 164,000장(Train/Val/Test 포함)
  • 라벨링 인스턴스: 약 250만 개(전체), 2017 버전 기준 약 180만 개
  • 클래스(카테고리) 수: 80개(주요 객체 클래스)
  • 주요 과제:
    • 객체 탐지 (Bounding Box)
    • 인스턴스 분할 (Segmentation Mask)
    • 키포인트 검출 (예: 사람의 관절)
    • 이미지 캡셔닝 (자연어 설명)

데이터셋 구성

세트명이미지 수용도

 

train2017 118,287 모델 학습
val2017 5,000 검증
test2017 40670 테스트/평가
  • train2017: 주로 모델 학습용으로 사용
  • val2017: 하이퍼파라미터 튜닝 및 성능 검증
  • test2017: 공식 벤치마크 제출용, 정답 라벨은 비공개

어노테이션(라벨) 정보

  • 객체 바운딩 박스(Bounding Box)
  • 인스턴스 분할 마스크(Segmentation Mask)
  • 키포인트(Keypoints): 주로 사람 관절 위치
  • 이미지 캡션: 각 이미지에 대한 자연어 설명

클래스(카테고리) 예시

  • 사람, 자전거, 자동차, 오토바이, 비행기, 버스, 기차, 트럭, 보트, 신호등, 소화전, 벤치, 새, 고양이, 개, 말, 소, 코끼리, 곰, 기린, 가방, 우산, 핸드백, 넥타이, 여행가방, 프리스비, 스키, 스노보드, 스포츠공, 연, 야구방망이, 야구글러브, 스케이트보드, 서핑보드, 테니스라켓, 병, 와인잔, 컵, 포크, 나이프, 스푼, 그릇, 바나나, 사과, 샌드위치, 오렌지, 브로콜리, 당근, 핫도그, 피자, 도넛, 케이크, 의자, 소파, 화분, 침대, 식탁, 변기, TV, 노트북, 마우스, 리모컨, 키보드, 휴대폰, 전자레인지, 오븐, 토스터, 싱크대, 냉장고, 책, 시계, 꽃병, 가위, 곰인형, 헤어드라이어, 칫솔 등 80개1.

평가 방식

  • 객체 탐지: mAP(mean Average Precision) 50-95 등 다양한 IoU 임계값에서 평가
  • 분할/키포인트: mAR(mean Average Recall), keypoint mAP 등

활용 예시 및 응용

  • 딥러닝 기반 객체 탐지(YOLO, Faster R-CNN, SSD 등)
  • 인스턴스 분할(Mask R-CNN 등)
  • 자세 추정(OpenPose 등)
  • 이미지 캡셔닝, VQA(Visual Question Answering) 등12

다운로드 및 참고

  • 공식 웹사이트: [cocodataset.org]
  • 데이터 크기: 약 20GB(이미지+라벨)
  • YAML 등 구성 파일을 통해 경로, 클래스 정보 등 정의 가능1

 


1. 저장할 디렉토리 만들기

mkdir -p ~/data/coco2017
cd ~/data/coco2017

 

2. 필요한 파일 목록

 

COCO 2017 구성 :

train2017.zip 학습 이미지 (~19GB)
val2017.zip 검증 이미지 (~1GB)
annotations_trainval2017.zip annotation json (~250MB)

3. 다운로드

# train images
wget http://images.cocodataset.org/zips/train2017.zip

# val images
wget http://images.cocodataset.org/zips/val2017.zip

# annotations
wget http://images.cocodataset.org/annotations/annotations_trainval2017.zip

wget이 없으면: sudo apt install wget

4. 압축 해제

unzip train2017.zip
unzip val2017.zip
unzip annotations_trainval2017.zip

압축 해제하면 디렉토리 구조 :

coco2017/
├── train2017/
├── val2017/
└── annotations/
    ├── instances_train2017.json
    ├── instances_val2017.json
    └── ...

 

용량 아끼고 싶으면 .zip 파일 삭제 :

rm *.zip

비슷한 stereo dataset

🖼️ COCO와 유사한 결 일상적, 복잡한 장면, 사람/사물 다양
📷 Stereo 이미지 좌/우 쌍 이미지 제공
📏 큰 규모 수천~수만 장 이상
📦 Fine-tuning 가능한 annotation or depth 가능하면 depth, disparity, segmentation 포함

 

 

1. Falling Things (FAT Dataset)

 — NVidia

 

COCO-like 장면에 다양한 사물이 등장 + Stereo RGB + Depth 제공

씬 타입 실내 (탁자 위, 책상, 방 등)
객체 COCO 클래스 기반 21종 (컵, 박스, 병 등)
제공 Stereo RGB + Depth + 6D Pose + Segmentation
규모 60,000 쌍 (30k 장면)
출처 NVidia, 링크

COCO 사물 + stereo + depth로 fine-tuning에 매우 적합

실내 중심, domain은 simulation

 


 

2. Argoverse Stereo Dataset 🚘

 COCO처럼 다양한 장면 (사람, 차, 간판) + 실제 거리 시점

 

씬 타입 실외 도시 (도보, 차량, 사람, 배경 다양)
제공 Stereo RGB + Camera Calibration + Ego Motion
규모 22,000 stereo pairs
객체 다양성 COCO만큼 다양하진 않지만, 실제 거리 기반 장면 제공
출처 Argoverse Stereo

실사 기반 COCO 유사 + stereo

depth GT는 없음 → pseudo-depth 필요

 

3. ApolloScape Stereo 🏙️

 

💡 COCO-like 실외 장면 + 거리/보행자/건물 등 다양

항목설명

제공 Stereo RGB + semantic labels + disparity
객체 도시 COCO 스타일 (차, 사람, 도로, 신호등 등)
규모 ~140K images (~70k stereo pairs)
출처 ApolloScape

 큰 규모 + scene 다양성

다운/구성은 다소 번거로움

 

 

🥇 1 Falling Things (FAT) COCO 기반 객체 + depth + stereo + clean
🥈 2 ApolloScape Stereo real-scene COCO-style urban, 대규모
🥉 3 Argoverse Stereo 실사 기반, 적당한 크기, 다양한 환경

 

사물 중심 (COCO 느낌, fine-tuning + GT) FAT Dataset
거리, 건물, 실외 도시 + large scale ApolloScape
real-world urban + 중간 크기, 깔끔한 구조 Argoverse Stereo

 

 


Falling Things (FAT) Dataset

 

  • 💡 COCO 클래스 기반 사물들 (컵, 병, 깡통, 책 등)이 3D 공간에서 떨어지는 시뮬레이션
  • 📷 Stereo RGB, depth map, segmentation mask, 6D pose, camera pose 포함
  • 📁 장면 수: 61,500 stereo pairs
  • 🧠 학습 용도: stereo matching, depth estimation, 6D pose estimation 등
  •  다운로드 방법
  • 공식 링크

 

 


 

📥 다운로드 경로 (예: 터미널에서):

wget http://research.nvidia.com/sites/default/files/pubs/2018-06_Falling-Things/fat_dataset.tar

또는 더 작은 subset (예: 일부 카테고리만):

wget http://research.nvidia.com/sites/default/files/pubs/2018-06_Falling-Things/fat_subset1.tar

 

구성 구조 (압축 해제 시 예시)

fat/
├── train/
│   ├── camera_poses/
│   ├── rgb/
│   ├── depth/
│   ├── mask/
│   └── labels/
├── test/
├── val/
└── classes.txt

 

  • rgb/ → stereo left/right 이미지 (파일명 구분자로 좌우 구분)
  • depth/ → 실수형 z-depth (.png)
  • mask/ → object segmentation
  • camera_poses/ → stereo extrinsics/intrinsics 있음

 


 

사용 예시: PyTorch Dataset 샘플 (좌우 쌍 + depth)

from PIL import Image
import os
import torch
from torch.utils.data import Dataset

class FATStereoDataset(Dataset):
    def __init__(self, root):
        self.left_images = sorted(os.listdir(os.path.join(root, "rgb/left")))
        self.right_images = sorted(os.listdir(os.path.join(root, "rgb/right")))
        self.depth_maps = sorted(os.listdir(os.path.join(root, "depth")))

        self.root = root

    def __len__(self):
        return len(self.left_images)

    def __getitem__(self, idx):
        left_path = os.path.join(self.root, "rgb/left", self.left_images[idx])
        right_path = os.path.join(self.root, "rgb/right", self.right_images[idx])
        depth_path = os.path.join(self.root, "depth", self.depth_maps[idx])

        left = Image.open(left_path).convert("RGB")
        right = Image.open(right_path).convert("RGB")
        depth = Image.open(depth_path)

        return left, right, depth

 

해상도 기본 640×480 (NVIDIA 제공)
정렬 여부 카메라 pose 정확하게 정렬되어 있음 (calib 있음)
fine-tuning용으로 ✅ stereo NVS, depth, pose, segmentation에 모두 적합

 

다운로드 링크 FAT Dataset Page
압축 해제 명령 tar -xvf fat_dataset.tar
활용 stereo fine-tuning, depth, pose 등
특징 COCO-like 클래스, 완전한 GT 포함

 

 

 

📦 크기 수천~수만 장 이상 (fine-tuning에 충분한 크기)
🖼️ 장면 다양성 COCO처럼 사람, 사물, 실내·실외, 복잡한 장면 포함
📐 시점 차이 x, z 방향 warp이 충분히 있는 stereo 쌍
🧠 활용 stereo matching / depth 추정 / NVS fine-tuning

 

 


 

🏆 비교 요약

항목크기다양성COCO 유사성시점 차이(x/z)현실감평가

FAT 중간 (60K 쌍) 적당 (COCO 클래스 기반) ✅ 매우 유사 ✅ (시뮬레이션 기반 z 이동 강함) ❌ 인공환경 ⭐⭐⭐⭐☆
Holopix50k ✅ 매우 큼 (49K 쌍) ✅ 매우 다양 ✅ 인물/사물/풍경 등 ❓(시점 좁음: 모바일 baseline 작음) ✅ 매우 현실적 ⭐⭐⭐⭐☆
Flickr1024 ❌ 작음 (1K 쌍) ✅ 다양 ✅ 건물/인물 등 ❌ 좁은 baseline (거의 2D) ✅ 현실적 ⭐⭐☆☆☆
UASOL ✅ 매우 큼 (160K 장) ❌ 실외 위주 ❌ COCO와 멀다 ✅ 넓은 baseline (x/z 매우 큼) ✅ 실사 ⭐⭐⭐⭐☆

 

 

추천 순위

COCO 스타일 사물 중심 NVS 🥇 FAT
실제 환경에서의 일반화/다양성 🥇 Holopix50k
실외 중심 NVS, 거리, 차량 등 🥈 UASOL
작지만 고퀄, 연구용 데모 🥉 Flickr1024 (보조용으로만)

 

 

NVS fine-tuning with COCO-like images, 다양한 물체, depth supervision FAT
실제 촬영된, scene 다양성 + 사람/물체 풍부 Holopix50k (단, depth 없음 → pseudo-depth 필요)
실외 기반 대규모 시점 변화 연구 UASOL

 

 


최종 추천

 

🎯 FAT: 레이블, depth, object mask 등 완비 → “학습 가능한” stereo COCO 대체

 

🎯 Holopix50k: 사람·일상·실내외 다양성 최강 → “실제 배경 기반의 generalization용”

 


Holopix50k vs VKITTI2: Fine-tuning 적합성 비교

두 데이터셋을 비교 분석한 결과, fine-tuning에 더 적합하고 COCO와 유사한 데이터셋에 대한 정보를 아래와 같이 정리해 드립니다.

Holopix50k

주요 특징:

  • 규모: 49,368쌍의 스테레오 이미지(약 100,000개 이미지)
  • 유형: 모바일 폰으로 촬영한 실제 사용자 생성 스테레오 이미지
  • 이미지 해상도: 대부분 2048×1536 픽셀의 고해상도
  • 용량: 약 50GB
  • 주석: 깊이 정보 및 스테레오 시차 맵 포함

COCO와의 유사성:

  • 실제 세계의 다양한 장면, 조명 조건, 피사체를 포함
  • 자연스러운 이미지 변화와 불완전성 포함
  • 일반적인 실생활 시나리오 포함

Fine-tuning 적합성:

  • ✅ 실제 이미지로 자연스러운 변화를 학습 가능
  • ✅ 다양한 콘텐츠가 모델의 일반화 능력 향상
  • ✅ 스테레오 쌍이 깊이 인식 생성 기능 가능
  • ✅ 모바일로 촬영된 이미지는 소비자 응용 프로그램과 잘 맞음

VKITTI2

주요 특징:

  • 규모: 약 21,000개 프레임
  • 유형: Unity 게임 엔진으로 만든 합성 운전 장면
  • 이미지 해상도: 1242×375 픽셀 (KITTI 형식과 일치)
  • 용량: 약 1.2TB
  • 주석: 의미 분할, 인스턴스 분할, 깊이 맵, 광학 흐름 등 풍부한 주석 포함

COCO와의 유사성:

  • COCO와 달리 합성 이미지 사용
  • COCO가 일반적인 물체 카테고리를 다룬다면, VKITTI2는 운전 장면에 특화됨
  • COCO보다 이미지 수는 적지만 더 상세한 픽셀별 주석 제공

Fine-tuning 적합성:

  • ✅ 완벽한 그라운드 트루스 주석을 통한 지도 학습 가능
  • ✅ 제어된 환경 변화로 특정 요소 분리 가능
  • ❌ 합성과 실제 이미지 간의 도메인 간극 존재
  • ❌ 운전 시나리오로 제한된 도메인

연구 커뮤니티에서의 인기도

  • Holopix50k: 2020년 출시 이후 약 150-200회 인용, 스테레오 깊이 추정, 새로운 뷰 합성, 스테레오 쌍을 이용한 3D 재구성 연구에 활용
  • VKITTI2: 약 300-350회 인용, 자율 주행 연구 커뮤니티에서 널리 채택, 도메인 적응 연구, 합성-실제 전이 학습, 인식 알고리즘 벤치마킹에 활용

결론: 어떤 데이터셋이 더 적합한가?

Holopix50k가 다음과 같은 이유로 VAE와 diffusion 모델의 fine-tuning에 더 적합하고 COCO와 더 유사합니다:

  1. 실제 이미지 사용: COCO처럼 실제 세계의 이미지를 사용하여 자연스러운 이미지 특성 학습 가능
  2. 다양성: 다양한 장면, 조명, 피사체를 포함하여 COCO와 유사한 다양성 제공
  3. 스테레오 정보: fine-tuning 시 깊이 인식 모델 학습에 유용
  4. 범용성: 특정 도메인(자율주행)에 제한되지 않고 일반적인 응용에 활용 가능

단, VKITTI2가 필요한 경우는:

  • 자율주행이나 운전 관련 도메인에 특화된 모델을 개발할 때
  • 완벽한 주석과 제어된 환경에서의 학습이 필요한 경우
  • 다양한 날씨와 조명 조건에 대한 제어된 변화를 학습해야 할 때

종합적으로 볼 때, 일반적인 COCO 스타일의 데이터셋을 찾는다면 Holopix50k가 더 적합하고, 자율주행 특화 모델을 개발한다면 VKITTI2가 더 적합합니다.

반응형