VisDrone ๋ฐ์ดํฐ ์ธํธ
VisDrone ๋ฐ์ดํฐ ์ธํธ๋ ์ค๊ตญ ํ์ง๋ํ๊ต ๋จธ์ ๋ฌ๋ ๋ฐ ๋ฐ์ดํฐ ๋ง์ด๋ ์ฐ๊ตฌ์์ AISKYEYE ํ์ด ๋ง๋ ๋๊ท๋ชจ ๋ฒค์น๋งํฌ์ ๋๋ค. ์ฌ๊ธฐ์๋ ๋๋ก ๊ธฐ๋ฐ ์ด๋ฏธ์ง ๋ฐ ๋น๋์ค ๋ถ์๊ณผ ๊ด๋ จ๋ ๋ค์ํ ์ปดํจํฐ ๋น์ ์์ ์ ์ํด ์ ์คํ๊ฒ ์ฃผ์์ด ๋ฌ๋ฆฐ ์ค์ธก ๋ฐ์ดํฐ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
Watch: ๋๋ก ์ด๋ฏธ์ง ๋ถ์์ ์ํ VisDrone ๋ฐ์ดํฐ ์ธํธ์ ๋ชจ๋ธ ํ๋ จ ๋ฐฉ๋ฒ Ultralytics YOLO
VisDrone์ ๋๋ก ์ ์ฅ์ฐฉ๋ ๋ค์ํ ์นด๋ฉ๋ผ๋ก ์ดฌ์ํ 261,908 ํ๋ ์์ 288๊ฐ ๋น๋์ค ํด๋ฆฝ๊ณผ 10,209๊ฐ์ ์ ์ ์ด๋ฏธ์ง๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค. ์ด ๋ฐ์ดํฐ ์ธํธ๋ ์์น(์ค๊ตญ ์ ์ญ์ 14๊ฐ ๋์), ํ๊ฒฝ(๋์ ๋ฐ ๋์ด), ๋ฌผ์ฒด(๋ณดํ์, ์ฐจ๋, ์์ ๊ฑฐ ๋ฑ), ๋ฐ๋(๋๋ฌธ๋๋ฌธ ๋ถ๋น๋ ์ฅ๋ฉด) ๋ฑ ๋ค์ํ ์ธก๋ฉด์ ํฌ๊ดํฉ๋๋ค. ๋ฐ์ดํฐ ์ธํธ๋ ๋ค์ํ ์๋๋ฆฌ์ค์ ๋ ์จ ๋ฐ ์กฐ๋ช ์กฐ๊ฑด์์ ๋ค์ํ ๋๋ก ํ๋ซํผ์ ์ฌ์ฉํ์ฌ ์์ง๋์์ต๋๋ค. ์ด๋ฌํ ํ๋ ์์๋ ๋ณดํ์, ์๋์ฐจ, ์์ ๊ฑฐ, ์ธ๋ฐ์์ ๊ฑฐ ๋ฑ 260๋ง ๊ฐ๊ฐ ๋๋ ๋์์ ๊ฒฝ๊ณ ์์์ ์๋์ผ๋ก ์ฃผ์์ ๋ฌ์์ต๋๋ค. ์ฌ ๊ฐ์์ฑ, ์ค๋ธ์ ํธ ํด๋์ค, ์คํด๋ฃจ์ ๊ณผ ๊ฐ์ ์์ฑ๋ ์ ๊ณต๋์ด ๋ฐ์ดํฐ ํ์ฉ๋๋ฅผ ๋์ผ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ ์ธํธ ๊ตฌ์กฐ
VisDrone ๋ฐ์ดํฐ ์ธํธ๋ 5๊ฐ์ ์ฃผ์ ํ์ ์งํฉ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ผ๋ฉฐ, ๊ฐ ์งํฉ์ ํน์ ์์ ์ ์ค์ ์ ๋๊ณ ์์ต๋๋ค:
- ์์ 1: ์ด๋ฏธ์ง์์ ๋ฌผ์ฒด ๊ฐ์ง
- ์์ 2: ๋์์์์ ๊ฐ์ฒด ๊ฐ์ง
- ์์ 3: ๋จ์ผ ๊ฐ์ฒด ์ถ์
- ์์ 4: ๋ค์ค ๊ฐ์ฒด ์ถ์
- ์์ 5: ๊ตฐ์ค ๊ณ์ฐ
์ ํ๋ฆฌ์ผ์ด์
VisDrone ๋ฐ์ดํฐ ์ธํธ๋ ๋ฌผ์ฒด ๊ฐ์ง, ๋ฌผ์ฒด ์ถ์ , ๊ตฐ์ค ๊ณ์ฐ๊ณผ ๊ฐ์ ๋๋ก ๊ธฐ๋ฐ ์ปดํจํฐ ๋น์ ์์ ์์ ๋ฅ ๋ฌ๋ ๋ชจ๋ธ์ ํ๋ จํ๊ณ ํ๊ฐํ๋ ๋ฐ ๋๋ฆฌ ์ฌ์ฉ๋ฉ๋๋ค. ์ด ๋ฐ์ดํฐ ์ธํธ์ ๋ค์ํ ์ผ์ ๋ฐ์ดํฐ, ๊ฐ์ฒด ์ฃผ์ ๋ฐ ์์ฑ์ ๋๋ก ๊ธฐ๋ฐ ์ปดํจํฐ ๋น์ ๋ถ์ผ์ ์ฐ๊ตฌ์์ ์ค๋ฌด์์๊ฒ ์ ์ฉํ ๋ฆฌ์์ค์ ๋๋ค.
๋ฐ์ดํฐ ์ธํธ YAML
๋ฐ์ดํฐ ์ธํธ ๊ตฌ์ฑ์ ์ ์ํ๋ ๋ฐ๋ YAML(๋ ๋ค๋ฅธ ๋งํฌ์
์ธ์ด) ํ์ผ์ด ์ฌ์ฉ๋ฉ๋๋ค. ์ฌ๊ธฐ์๋ ๋ฐ์ดํฐ ์ธํธ์ ๊ฒฝ๋ก, ํด๋์ค ๋ฐ ๊ธฐํ ๊ด๋ จ ์ ๋ณด์ ๋ํ ์ ๋ณด๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. Visdrone ๋ฐ์ดํฐ ์ธํธ์ ๊ฒฝ์ฐ, ๋ฐ์ดํฐ ์ธํธ์ VisDrone.yaml
ํ์ผ์ ๋ค์ ์์น์์ ์ ์ง๋ฉ๋๋ค. https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/VisDrone.yaml.
ultralytics/cfg/datasets/VisDrone.yaml
# Ultralytics YOLO ๐, AGPL-3.0 license
# VisDrone2019-DET dataset https://github.com/VisDrone/VisDrone-Dataset by Tianjin University
# Documentation: https://docs.ultralytics.com/datasets/detect/visdrone/
# Example usage: yolo train data=VisDrone.yaml
# parent
# โโโ ultralytics
# โโโ datasets
# โโโ VisDrone โ downloads here (2.3 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/VisDrone # dataset root dir
train: VisDrone2019-DET-train/images # train images (relative to 'path') 6471 images
val: VisDrone2019-DET-val/images # val images (relative to 'path') 548 images
test: VisDrone2019-DET-test-dev/images # test images (optional) 1610 images
# Classes
names:
0: pedestrian
1: people
2: bicycle
3: car
4: van
5: truck
6: tricycle
7: awning-tricycle
8: bus
9: motor
# Download script/URL (optional) ---------------------------------------------------------------------------------------
download: |
import os
from pathlib import Path
from ultralytics.utils.downloads import download
def visdrone2yolo(dir):
from PIL import Image
from tqdm import tqdm
def convert_box(size, box):
# Convert VisDrone box to YOLO xywh box
dw = 1. / size[0]
dh = 1. / size[1]
return (box[0] + box[2] / 2) * dw, (box[1] + box[3] / 2) * dh, box[2] * dw, box[3] * dh
(dir / 'labels').mkdir(parents=True, exist_ok=True) # make labels directory
pbar = tqdm((dir / 'annotations').glob('*.txt'), desc=f'Converting {dir}')
for f in pbar:
img_size = Image.open((dir / 'images' / f.name).with_suffix('.jpg')).size
lines = []
with open(f, 'r') as file: # read annotation.txt
for row in [x.split(',') for x in file.read().strip().splitlines()]:
if row[4] == '0': # VisDrone 'ignored regions' class 0
continue
cls = int(row[5]) - 1
box = convert_box(img_size, tuple(map(int, row[:4])))
lines.append(f"{cls} {' '.join(f'{x:.6f}' for x in box)}\n")
with open(str(f).replace(f'{os.sep}annotations{os.sep}', f'{os.sep}labels{os.sep}'), 'w') as fl:
fl.writelines(lines) # write label.txt
# Download
dir = Path(yaml['path']) # dataset root dir
urls = ['https://github.com/ultralytics/assets/releases/download/v0.0.0/VisDrone2019-DET-train.zip',
'https://github.com/ultralytics/assets/releases/download/v0.0.0/VisDrone2019-DET-val.zip',
'https://github.com/ultralytics/assets/releases/download/v0.0.0/VisDrone2019-DET-test-dev.zip',
'https://github.com/ultralytics/assets/releases/download/v0.0.0/VisDrone2019-DET-test-challenge.zip']
download(urls, dir=dir, curl=True, threads=4)
# Convert
for d in 'VisDrone2019-DET-train', 'VisDrone2019-DET-val', 'VisDrone2019-DET-test-dev':
visdrone2yolo(dir / d) # convert VisDrone annotations to YOLO labels
์ฌ์ฉ๋ฒ
์ด๋ฏธ์ง ํฌ๊ธฐ๊ฐ 640์ธ 100๊ฐ์ ์ํฌํฌ์ ๋ํด VisDrone ๋ฐ์ดํฐ ์ธํธ์์ YOLO11n ๋ชจ๋ธ์ ํ๋ จํ๋ ค๋ฉด ๋ค์ ์ฝ๋ ์ค๋ํซ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฌ์ฉ ๊ฐ๋ฅํ ์ธ์์ ์ ์ฒด ๋ชฉ๋ก์ ๋ชจ๋ธ ํ๋ จ ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์.
์ด์ฐจ ์์
์ํ ๋ฐ์ดํฐ ๋ฐ ์ฃผ์
VisDrone ๋ฐ์ดํฐ ์ธํธ์๋ ๋๋ก ์ ์ฅ์ฐฉ๋ ์นด๋ฉ๋ผ๋ก ์บก์ฒํ ๋ค์ํ ์ด๋ฏธ์ง์ ๋์์์ด ํฌํจ๋์ด ์์ต๋๋ค. ๋ค์์ ๋ฐ์ดํฐ ์ธํธ์ ๋ช ๊ฐ์ง ๋ฐ์ดํฐ ์์์ ํด๋น ์ฃผ์์ ๋๋ค:
- ์์ 1: ์ด๋ฏธ์ง์์ ๊ฐ์ฒด ๊ฐ์ง - ์ด ์ด๋ฏธ์ง๋ ๊ฐ์ฒด์ ๊ฒฝ๊ณ ์์๊ฐ ์ฃผ์์ผ๋ก ํ์๋ ์ด๋ฏธ์ง์์ ๊ฐ์ฒด๋ฅผ ๊ฐ์งํ๋ ์์๋ฅผ ๋ณด์ฌ์ค๋๋ค. ์ด ๋ฐ์ดํฐ ์ธํธ๋ ๋ค์ํ ์์น, ํ๊ฒฝ ๋ฐ ๋ฐ๋์์ ์ดฌ์๋ ๋ค์ํ ์ด๋ฏธ์ง๋ฅผ ์ ๊ณตํ์ฌ ์ด ์์ ์ ์ํ ๋ชจ๋ธ ๊ฐ๋ฐ์ ์ฉ์ดํ๊ฒ ํฉ๋๋ค.
์ด ์๋ VisDrone ๋ฐ์ดํฐ ์ธํธ์ ํฌํจ๋ ๋ฐ์ดํฐ์ ๋ค์์ฑ๊ณผ ๋ณต์ก์ฑ์ ๋ณด์ฌ์ฃผ๋ฉฐ ๋๋ก ๊ธฐ๋ฐ ์ปดํจํฐ ๋น์ ์์ ์์ ๊ณ ํ์ง ์ผ์ ๋ฐ์ดํฐ์ ์ค์์ฑ์ ๊ฐ์กฐํฉ๋๋ค.
์ธ์ฉ ๋ฐ ๊ฐ์ฌ
์ฐ๊ตฌ ๋๋ ๊ฐ๋ฐ ์์ ์ VisDrone ๋ฐ์ดํฐ์ธํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ค์ ๋ ผ๋ฌธ์ ์ธ์ฉํด ์ฃผ์ธ์:
@ARTICLE{9573394,
author={Zhu, Pengfei and Wen, Longyin and Du, Dawei and Bian, Xiao and Fan, Heng and Hu, Qinghua and Ling, Haibin},
journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},
title={Detection and Tracking Meet Drones Challenge},
year={2021},
volume={},
number={},
pages={1-1},
doi={10.1109/TPAMI.2021.3119563}}
๋๋ก ๊ธฐ๋ฐ ์ปดํจํฐ ๋น์ ์ฐ๊ตฌ ์ปค๋ฎค๋ํฐ๋ฅผ ์ํ ๊ท์คํ ๋ฆฌ์์ค์ธ VisDrone ๋ฐ์ดํฐ์ธํธ๋ฅผ ๋ง๋ค๊ณ ์ ์ง ๊ด๋ฆฌํ๋ ์ค๊ตญ ์ฒ์ง๋ํ๊ต ๋จธ์ ๋ฌ๋ ๋ฐ ๋ฐ์ดํฐ ๋ง์ด๋ ์ฐ๊ตฌ์์ AISKYEYE ํ์ ๊ฐ์ฌ์ ๋ง์์ ์ ํฉ๋๋ค. VisDrone ๋ฐ์ดํฐ ์ธํธ์ ์ ์์์ ๋ํ ์์ธํ ๋ด์ฉ์ VisDrone ๋ฐ์ดํฐ ์ธํธ GitHub ๋ฆฌํฌ์งํ ๋ฆฌ์์ ํ์ธํ ์ ์์ต๋๋ค.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
VisDrone ๋ฐ์ดํฐ์ธํธ๋ ๋ฌด์์ด๋ฉฐ ์ฃผ์ ๊ธฐ๋ฅ์ ๋ฌด์์ธ๊ฐ์?
VisDrone ๋ฐ์ดํฐ ์ธํธ๋ ์ค๊ตญ ์ฒ์ง๋ํ๊ต์ AISKYEYE ํ์ด ๋ง๋ ๋๊ท๋ชจ ๋ฒค์น๋งํฌ์ ๋๋ค. ๋๋ก ๊ธฐ๋ฐ ์ด๋ฏธ์ง ๋ฐ ๋น๋์ค ๋ถ์๊ณผ ๊ด๋ จ๋ ๋ค์ํ ์ปดํจํฐ ๋น์ ์์ ์ ์ํด ์ค๊ณ๋์์ต๋๋ค. ์ฃผ์ ๊ธฐ๋ฅ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ๊ตฌ์ฑ: 261,908 ํ๋ ์์ ๋์์ ํด๋ฆฝ 288๊ฐ์ 10,209๊ฐ์ ์ ์ ์ด๋ฏธ์ง.
- ์ฃผ์: ๋ณดํ์, ์๋์ฐจ, ์์ ๊ฑฐ, ์ธ๋ฐ์์ ๊ฑฐ์ ๊ฐ์ ๊ฐ์ฒด์ ๋ํ 260๋ง ๊ฐ ์ด์์ ๋ฐ์ด๋ฉ ๋ฐ์ค.
- ๋ค์์ฑ: ๋ค์ํ ๋ ์จ์ ์กฐ๋ช ์กฐ๊ฑด์์ ๋์์ ์๊ณจ์ 14๊ฐ ๋์์์ ์์ง๋์์ต๋๋ค.
- ์์ : ์ด๋ฏธ์ง ๋ฐ ๋น๋์ค์ ๊ฐ์ฒด ๊ฐ์ง, ๋จ์ผ ๊ฐ์ฒด ๋ฐ ๋ค์ค ๊ฐ์ฒด ์ถ์ , ๊ตฐ์ค ์ ๊ณ์ฐ ๋ฑ 5๊ฐ์ง ์ฃผ์ ์์ ์ผ๋ก ๋๋ฉ๋๋ค.
VisDrone ๋ฐ์ดํฐ์ธํธ๋ฅผ ์ฌ์ฉํ์ฌ Ultralytics ์ผ๋ก YOLO11 ๋ชจ๋ธ์ ํ๋ จํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ๋์?
์ด๋ฏธ์ง ํฌ๊ธฐ๊ฐ 640์ธ 100๊ฐ์ ์ํฌํฌ์ ๋ํด VisDrone ๋ฐ์ดํฐ ์ธํธ์์ YOLO11 ๋ชจ๋ธ์ ํ๋ จํ๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ธ์:
์ด์ฐจ ์์
์ถ๊ฐ ๊ตฌ์ฑ ์ต์ ์ ๋ชจ๋ธ ๊ต์ก ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์.
VisDrone ๋ฐ์ดํฐ ์ธํธ์ ์ฃผ์ ํ์ ์งํฉ๊ณผ ๊ทธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
VisDrone ๋ฐ์ดํฐ ์ธํธ๋ 5๊ฐ์ ์ฃผ์ ํ์ ์งํฉ์ผ๋ก ๋๋๋ฉฐ, ๊ฐ ์งํฉ์ ํน์ ์ปดํจํฐ ๋น์ ์์ ์ ๋ง๊ฒ ์กฐ์ ๋ฉ๋๋ค:
- ์์ 1: ์ด๋ฏธ์ง์์ ๋ฌผ์ฒด ๊ฐ์ง.
- ์์ 2: ๋์์์์ ๊ฐ์ฒด ๊ฐ์ง.
- ์์ 3: ๋จ์ผ ๊ฐ์ฒด ์ถ์ .
- ์์ 4: ๋ค์ค ๊ฐ์ฒด ์ถ์ .
- ์์ 5: ๊ตฐ์ค ๊ณ์ฐ.
์ด๋ฌํ ํ์ ์งํฉ์ ๊ฐ์, ๊ตํต ๋ชจ๋ํฐ๋ง, ๊ณต๊ณต ์์ ๊ณผ ๊ฐ์ ๋๋ก ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฅ๋ฌ๋ ๋ชจ๋ธ์ ํ๋ จํ๊ณ ํ๊ฐํ๋ ๋ฐ ๋๋ฆฌ ์ฌ์ฉ๋ฉ๋๋ค.
VisDrone ๋ฐ์ดํฐ ์ธํธ์ ๊ตฌ์ฑ ํ์ผ์ Ultralytics ์์ ์ด๋์์ ์ฐพ์ ์ ์๋์?
VisDrone ๋ฐ์ดํฐ ์ธํธ์ ๊ตฌ์ฑ ํ์ผ์
๋๋ค, VisDrone.yaml
๋ ๋ค์ ๋งํฌ์ Ultralytics ๋ฆฌํฌ์งํ ๋ฆฌ์์ ์ฐพ์ ์ ์์ต๋๋ค:
VisDrone.yaml.
๋ด ์ฐ๊ตฌ์ VisDrone ๋ฐ์ดํฐ์ธํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ด๋ป๊ฒ ์ธ์ฉํ ์ ์๋์?
์ฐ๊ตฌ ๋๋ ๊ฐ๋ฐ ์์ ์ VisDrone ๋ฐ์ดํฐ์ธํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ค์ ๋ ผ๋ฌธ์ ์ธ์ฉํด ์ฃผ์ธ์:
@ARTICLE{9573394,
author={Zhu, Pengfei and Wen, Longyin and Du, Dawei and Bian, Xiao and Fan, Heng and Hu, Qinghua and Ling, Haibin},
journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},
title={Detection and Tracking Meet Drones Challenge},
year={2021},
volume={},
number={},
pages={1-1},
doi={10.1109/TPAMI.2021.3119563}
}