Argoverse ๋ฐ์ดํฐ ์ธํธ
Argoverse ๋ฐ์ดํฐ ์ธํธ๋ 3D ์ถ์ , ๋์ ์์ธก, ์คํ ๋ ์ค ๊น์ด ์ถ์ ๊ณผ ๊ฐ์ ์์จ ์ฃผํ ์์ ์ ์ฐ๊ตฌ๋ฅผ ์ง์ํ๊ธฐ ์ํด ์ค๊ณ๋ ๋ฐ์ดํฐ ๋ชจ์์ ๋๋ค. Argo AI์์ ๊ฐ๋ฐํ ์ด ๋ฐ์ดํฐ ์ธํธ๋ ๊ณ ํด์๋ ์ด๋ฏธ์ง, LiDAR ํฌ์ธํธ ํด๋ผ์ฐ๋, ์ง๋ ๋ฐ์ดํฐ๋ฅผ ํฌํจํ ๋ค์ํ ๊ณ ํ์ง ์ผ์ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ฐธ๊ณ
Argoverse ๋ฐ์ดํฐ ์ธํธ *.zip
ํ๋ จ์ ํ์ํ ํ์ผ์ Ford์ Argo AI ์ข
๋ฃ ์ดํ Amazon S3์์ ์ ๊ฑฐ๋์์ง๋ง, ๋ค์์์ ์๋์ผ๋ก ๋ค์ด๋ก๋ํ ์ ์๋๋ก ํ์ต๋๋ค. Google ๋๋ผ์ด๋ธ.
์ฃผ์ ๊ธฐ๋ฅ
- Argoverse์๋ 1,263๊ฐ์ ๊ฐ๋ณ ์ฅ๋ฉด์ ๊ฑธ์ณ 290๋ง ๊ฐ ์ด์์ ๋ผ๋ฒจ์ด ์ง์ ๋ 3D ์ค๋ธ์ ํธ ํธ๋๊ณผ 500๋ง ๊ฐ์ ์ค๋ธ์ ํธ ์ธ์คํด์ค๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
- ์ด ๋ฐ์ดํฐ ์ธํธ์๋ ๊ณ ํด์๋ ์นด๋ฉ๋ผ ์ด๋ฏธ์ง, LiDAR ํฌ์ธํธ ํด๋ผ์ฐ๋, ํ๋ถํ ์ฃผ์์ด ๋ฌ๋ฆฐ HD ์ง๋๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
- ์ฃผ์์๋ ๊ฐ์ฒด์ ๋ํ 3D ๊ฒฝ๊ณ ์์, ๊ฐ์ฒด ํธ๋ ๋ฐ ๊ถค์ ์ ๋ณด๊ฐ ํฌํจ๋ฉ๋๋ค.
- Argoverse๋ 3D ์ถ์ , ๋ชจ์ ์์ธก, ์คํ ๋ ์ค ๊น์ด ์ถ์ ๋ฑ ๋ค์ํ ์์ ์ ์ํ ์ฌ๋ฌ ํ์ ์งํฉ์ ์ ๊ณตํฉ๋๋ค.
๋ฐ์ดํฐ ์ธํธ ๊ตฌ์กฐ
Argoverse ๋ฐ์ดํฐ ์ธํธ๋ ์ธ ๊ฐ์ง ์ฃผ์ ํ์ ์งํฉ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค:
- ์๋ฅด๊ณ ๋ฒ์ค 3D ํธ๋ํน: ์ด ํ์ ์งํฉ์๋ 3D ๊ฐ์ฒด ์ถ์ ์์ ์ ์ค์ ์ ๋ 290K ์ด์์ ๋ ์ด๋ธ์ด ์ง์ ๋ 3D ๊ฐ์ฒด ํธ๋์ด ์๋ 113๊ฐ์ ์ฅ๋ฉด์ด ํฌํจ๋์ด ์์ต๋๋ค. ์ฌ๊ธฐ์๋ LiDAR ํฌ์ธํธ ํด๋ผ์ฐ๋, ์นด๋ฉ๋ผ ์ด๋ฏธ์ง, ์ผ์ ๋ณด์ ์ ๋ณด๊ฐ ํฌํจ๋ฉ๋๋ค.
- ์๋ฅด๊ณ ๋ฒ์ค ๋ชจ์ ์์ธก: ์ด ํ์ ์งํฉ์ 60์๊ฐ์ ์ฃผํ ๋ฐ์ดํฐ์์ ์์งํ 32๋ง 4์ฒ ๊ฐ์ ์ฐจ๋ ๊ถค์ ์ผ๋ก ๊ตฌ์ฑ๋๋ฉฐ, ๋ชจ์ ์์ธก ์์ ์ ์ ํฉํฉ๋๋ค.
- ์๊ณ ๋ฒ์ค ์คํ ๋ ์ค ๊น์ด ์ถ์ : ์ด ํ์ ์งํฉ์ ์คํ ๋ ์ค ๊น์ด ์ถ์ ์์ ์ ์ํด ์ค๊ณ๋์์ผ๋ฉฐ, ์ค์ธก ๊น์ด ์ถ์ ์ ์ํ 10K ์ด์์ ์คํ ๋ ์ค ์ด๋ฏธ์ง ์๊ณผ ํด๋น LiDAR ํฌ์ธํธ ํด๋ผ์ฐ๋๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
์ ํ๋ฆฌ์ผ์ด์
Argoverse ๋ฐ์ดํฐ ์ธํธ๋ 3D ๋ฌผ์ฒด ์ถ์ , ๋์ ์์ธก, ์คํ ๋ ์ค ๊น์ด ์ถ์ ๊ณผ ๊ฐ์ ์์จ ์ฃผํ ์์ ์์ ๋ฅ ๋ฌ๋ ๋ชจ๋ธ์ ํ๋ จํ๊ณ ํ๊ฐํ๋ ๋ฐ ๋๋ฆฌ ์ฌ์ฉ๋ฉ๋๋ค. ๋ฐ์ดํฐ ์ธํธ์ ๋ค์ํ ์ผ์ ๋ฐ์ดํฐ, ๊ฐ์ฒด ์ฃผ์, ์ง๋ ์ ๋ณด๋ ์์จ ์ฃผํ ๋ถ์ผ์ ์ฐ๊ตฌ์์ ์ค๋ฌด์์๊ฒ ์ ์ฉํ ๋ฆฌ์์ค์ ๋๋ค.
๋ฐ์ดํฐ ์ธํธ YAML
๋ฐ์ดํฐ ์ธํธ ๊ตฌ์ฑ์ ์ ์ํ๋ ๋ฐ๋ YAML(๋ ๋ค๋ฅธ ๋งํฌ์
์ธ์ด) ํ์ผ์ด ์ฌ์ฉ๋ฉ๋๋ค. ์ฌ๊ธฐ์๋ ๋ฐ์ดํฐ ์ธํธ์ ๊ฒฝ๋ก, ํด๋์ค ๋ฐ ๊ธฐํ ๊ด๋ จ ์ ๋ณด์ ๋ํ ์ ๋ณด๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. Argoverse ๋ฐ์ดํฐ ์ธํธ์ ๊ฒฝ์ฐ, ๋ฐ์ดํฐ ์ธํธ์ Argoverse.yaml
ํ์ผ์ ๋ค์ ์์น์์ ์ ์ง๋ฉ๋๋ค. https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/Argoverse.yaml.
ultralytics/cfg/datasets/Argoverse.yaml
# Ultralytics YOLO ๐, AGPL-3.0 license
# Argoverse-HD dataset (ring-front-center camera) https://www.cs.cmu.edu/~mengtial/proj/streaming/ by Argo AI
# Documentation: https://docs.ultralytics.com/datasets/detect/argoverse/
# Example usage: yolo train data=Argoverse.yaml
# parent
# โโโ ultralytics
# โโโ datasets
# โโโ Argoverse โ downloads here (31.5 GB)
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: ../datasets/Argoverse # dataset root dir
train: Argoverse-1.1/images/train/ # train images (relative to 'path') 39384 images
val: Argoverse-1.1/images/val/ # val images (relative to 'path') 15062 images
test: Argoverse-1.1/images/test/ # test images (optional) https://eval.ai/web/challenges/challenge-page/800/overview
# Classes
names:
0: person
1: bicycle
2: car
3: motorcycle
4: bus
5: truck
6: traffic_light
7: stop_sign
# Download script/URL (optional) ---------------------------------------------------------------------------------------
download: |
import json
from tqdm import tqdm
from ultralytics.utils.downloads import download
from pathlib import Path
def argoverse2yolo(set):
labels = {}
a = json.load(open(set, "rb"))
for annot in tqdm(a['annotations'], desc=f"Converting {set} to YOLOv5 format..."):
img_id = annot['image_id']
img_name = a['images'][img_id]['name']
img_label_name = f'{img_name[:-3]}txt'
cls = annot['category_id'] # instance class id
x_center, y_center, width, height = annot['bbox']
x_center = (x_center + width / 2) / 1920.0 # offset and scale
y_center = (y_center + height / 2) / 1200.0 # offset and scale
width /= 1920.0 # scale
height /= 1200.0 # scale
img_dir = set.parents[2] / 'Argoverse-1.1' / 'labels' / a['seq_dirs'][a['images'][annot['image_id']]['sid']]
if not img_dir.exists():
img_dir.mkdir(parents=True, exist_ok=True)
k = str(img_dir / img_label_name)
if k not in labels:
labels[k] = []
labels[k].append(f"{cls} {x_center} {y_center} {width} {height}\n")
for k in labels:
with open(k, "w") as f:
f.writelines(labels[k])
# Download 'https://argoverse-hd.s3.us-east-2.amazonaws.com/Argoverse-HD-Full.zip' (deprecated S3 link)
dir = Path(yaml['path']) # dataset root dir
urls = ['https://drive.google.com/file/d/1st9qW3BeIwQsnR0t8mRpvbsSWIo16ACi/view?usp=drive_link']
print("\n\nWARNING: Argoverse dataset MUST be downloaded manually, autodownload will NOT work.")
print(f"WARNING: Manually download Argoverse dataset '{urls[0]}' to '{dir}' and re-run your command.\n\n")
# download(urls, dir=dir)
# Convert
annotations_dir = 'Argoverse-HD/annotations/'
(dir / 'Argoverse-1.1' / 'tracking').rename(dir / 'Argoverse-1.1' / 'images') # rename 'tracking' to 'images'
for d in "train.json", "val.json":
argoverse2yolo(dir / annotations_dir / d) # convert Argoverse annotations to YOLO labels
์ฌ์ฉ๋ฒ
์ด๋ฏธ์ง ํฌ๊ธฐ๊ฐ 640์ธ 100๊ฐ์ ์ํฌํฌ์ ๋ํ Argoverse ๋ฐ์ดํฐ ์ธํธ์์ YOLOv8n ๋ชจ๋ธ์ ํ๋ จํ๋ ค๋ฉด ๋ค์ ์ฝ๋ ์กฐ๊ฐ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฌ์ฉ ๊ฐ๋ฅํ ์ธ์์ ์ ์ฒด ๋ชฉ๋ก์ ๋ชจ๋ธ ํ์ต ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์.
์ด์ฐจ ์์
์ํ ๋ฐ์ดํฐ ๋ฐ ์ฃผ์
Argoverse ๋ฐ์ดํฐ ์ธํธ์๋ ์นด๋ฉ๋ผ ์ด๋ฏธ์ง, LiDAR ํฌ์ธํธ ํด๋ผ์ฐ๋, HD ์ง๋ ์ ๋ณด ๋ฑ ๋ค์ํ ์ผ์ ๋ฐ์ดํฐ๊ฐ ํฌํจ๋์ด ์์ด ์์จ์ฃผํ ์์ ์ ๋ํ ํ๋ถํ ์ปจํ ์คํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ค์์ ๋ฐ์ดํฐ ์ธํธ์ ๋ช ๊ฐ์ง ๋ฐ์ดํฐ ์์์ ํด๋น ์ฃผ์์ ๋๋ค:
- ์๋ฅด๊ณ ๋ฒ์ค 3D ํธ๋ํน: ์ด ์ด๋ฏธ์ง๋ 3D ๊ฐ์ฒด์ 3D ๋ฐ์ด๋ฉ ๋ฐ์ค๋ก ์ฃผ์์ด ๋ฌ๋ฆฐ 3D ๊ฐ์ฒด ์ถ์ ์ ์๋ฅผ ๋ณด์ฌ์ค๋๋ค. ์ด ๋ฐ์ดํฐ ์ธํธ๋ ์ด ์์ ์ ์ํ ๋ชจ๋ธ์ ์ฝ๊ฒ ๊ฐ๋ฐํ ์ ์๋๋ก LiDAR ํฌ์ธํธ ํด๋ผ์ฐ๋์ ์นด๋ฉ๋ผ ์ด๋ฏธ์ง๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ด ์์๋ Argoverse ๋ฐ์ดํฐ ์ธํธ์ ํฌํจ๋ ๋ฐ์ดํฐ์ ๋ค์์ฑ๊ณผ ๋ณต์ก์ฑ์ ๋ณด์ฌ์ฃผ๋ฉฐ, ์์จ์ฃผํ ์์ ์์ ๊ณ ํ์ง ์ผ์ ๋ฐ์ดํฐ์ ์ค์์ฑ์ ๊ฐ์กฐํฉ๋๋ค.
์ธ์ฉ ๋ฐ ๊ฐ์ฌ
์ฐ๊ตฌ ๋๋ ๊ฐ๋ฐ ์์ ์ Argoverse ๋ฐ์ดํฐ ์ธํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ค์ ๋ ผ๋ฌธ์ ์ธ์ฉํด ์ฃผ์ธ์:
@inproceedings{chang2019argoverse,
title={Argoverse: 3D Tracking and Forecasting with Rich Maps},
author={Chang, Ming-Fang and Lambert, John and Sangkloy, Patsorn and Singh, Jagjeet and Bak, Slawomir and Hartnett, Andrew and Wang, Dequan and Carr, Peter and Lucey, Simon and Ramanan, Deva and others},
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
pages={8748--8757},
year={2019}
}
์์จ ์ฃผํ ์ฐ๊ตฌ ์ปค๋ฎค๋ํฐ๋ฅผ ์ํ ๊ท์คํ ๋ฆฌ์์ค์ธ Argoverse ๋ฐ์ดํฐ์ธํธ๋ฅผ ๋ง๋ค๊ณ ์ ์ง ๊ด๋ฆฌํด ์ฃผ์ Argo AI์ ๊ฐ์ฌ์ ๋ง์์ ์ ํฉ๋๋ค. Argoverse ๋ฐ์ดํฐ ์ธํธ์ ์ ์์์ ๋ํ ์์ธํ ๋ด์ฉ์ Argoverse ๋ฐ์ดํฐ ์ธํธ ์น์ฌ์ดํธ๋ฅผ ์ฐธ์กฐํ์ธ์.