급하신 분은 하단 다운받는법으로 바로 가셔요
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 포맷 :
- Info
- License
- Images
- file_name: 이미지 파일의 경로명
- id: 해당 이미지의 id
- height: 이미지의 높이
- width: 이미지의 너비
- 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 등
- 다운로드 방법
- 공식 링크
- NVlabs/FAT GitHub
- 직접 다운로드 링크 (원본 .tar 파일):
- 👉 https://research.nvidia.com/publication/2018-06_Falling-Things
📥 다운로드 경로 (예: 터미널에서):
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와 더 유사합니다:
- 실제 이미지 사용: COCO처럼 실제 세계의 이미지를 사용하여 자연스러운 이미지 특성 학습 가능
- 다양성: 다양한 장면, 조명, 피사체를 포함하여 COCO와 유사한 다양성 제공
- 스테레오 정보: fine-tuning 시 깊이 인식 모델 학습에 유용
- 범용성: 특정 도메인(자율주행)에 제한되지 않고 일반적인 응용에 활용 가능
단, VKITTI2가 필요한 경우는:
- 자율주행이나 운전 관련 도메인에 특화된 모델을 개발할 때
- 완벽한 주석과 제어된 환경에서의 학습이 필요한 경우
- 다양한 날씨와 조명 조건에 대한 제어된 변화를 학습해야 할 때
종합적으로 볼 때, 일반적인 COCO 스타일의 데이터셋을 찾는다면 Holopix50k가 더 적합하고, 자율주행 특화 모델을 개발한다면 VKITTI2가 더 적합합니다.