VisDroneããŒã¿ã»ãã
VisDroneããŒã¿ã»ããã¯ãäžåœå€©æŽ¥å€§åŠæ©æ¢°åŠç¿ã»ããŒã¿ãã€ãã³ã°ç 究宀ã®AISKYEYEããŒã ã«ãã£ãŠäœæããã倧èŠæš¡ãã³ãããŒã¯ã§ããããã®ããŒã¿ã»ããã«ã¯ããããŒã³ããŒã¹ã®ç»åããã³ãããªè§£æã«é¢é£ããããŸããŸãªã³ã³ãã¥ãŒã¿ããžã§ã³ã¿ã¹ã¯ã®ããã®ã泚ææ·±ã泚éãä»ããããã°ã©ã³ããã¥ã«ãŒã¹ããŒã¿ãå«ãŸããŠããã
èŠããã ïŒ ãããŒã³ç»å解æã®ããã®VisDroneããŒã¿ã»ããã§Ultralytics YOLO ã¢ãã«ãèšç·Žããæ¹æ³
VisDroneã¯ãæ§ã ãªãããŒã³æèŒã«ã¡ã©ã§æ®åœ±ããã261,908ãã¬ãŒã ã®288ã®ãããªã¯ãªãããš10,209ã®éæ¢ç»åã§æ§æãããŠããããã®ããŒã¿ã»ããã¯ãå ŽæïŒäžåœå šåã®14éœåžïŒãç°å¢ïŒéœåžãšèŸ²æïŒã察象ç©ïŒæ©è¡è ãè»äž¡ãèªè»¢è»ãªã©ïŒãå¯åºŠïŒçããªã·ãŒã³ãšæ··éããã·ãŒã³ïŒãªã©ãå¹ åºãåŽé¢ãã«ããŒããŠãããããŒã¿ã»ããã¯ãæ§ã ãªã·ããªãªã倩åãç §ææ¡ä»¶äžã§ãæ§ã ãªãããŒã³ãã©ãããã©ãŒã ã䜿çšããŠåéãããããããã®ãã¬ãŒã ã«ã¯ãæ©è¡è ãè»ãèªè»¢è»ãäžèŒªè»ãªã©ã®ã¿ãŒã²ããã®260äžä»¥äžã®ããŠã³ãã£ã³ã°ããã¯ã¹ãæåã§æ³šéãããŠãããããè¯ãããŒã¿æŽ»çšã®ããã«ãã·ãŒã³ã®å¯èŠæ§ããªããžã§ã¯ãã¯ã©ã¹ããªã¯ã«ãŒãžã§ã³ãªã©ã®å±æ§ãæäŸãããŠããã
ããŒã¿ã»ããæ§é
VisDroneããŒã¿ã»ããã¯5ã€ã®ãµãã»ããã«åãããŠããããããããç¹å®ã®ã¿ã¹ã¯ã«çŠç¹ãåœãŠãŠããïŒ
- ã¿ã¹ã¯ 1ïŒç»åäžã®ç©äœæ€åº
- ã¿ã¹ã¯2ïŒãããªå ã®ç©äœæ€åº
- ã¿ã¹ã¯3ïŒåäžãªããžã§ã¯ãã®ãã©ããã³ã°
- ã¿ã¹ã¯4ïŒãã«ããªããžã§ã¯ãã»ãã©ããã³ã°
- ã¿ã¹ã¯5ïŒçŸ€è¡ã®ã«ãŠã³ã
ã¢ããªã±ãŒã·ã§ã³
VisDroneããŒã¿ã»ããã¯ãç©äœæ€åºãç©äœè¿œè·¡ã矀è¡ã«ãŠã³ããªã©ã®ãããŒã³ããŒã¹ã®ã³ã³ãã¥ãŒã¿ããžã§ã³ã¿ã¹ã¯ã«ããããã£ãŒãã©ãŒãã³ã°ã¢ãã«ã®ãã¬ãŒãã³ã°ãšè©äŸ¡ã«åºã䜿çšãããŠããŸãããã®ããŒã¿ã»ããã®å€æ§ãªã»ã³ãµãŒããŒã¿ããªããžã§ã¯ãã¢ãããŒã·ã§ã³ãå±æ§ã¯ããããŒã³ããŒã¹ã®ã³ã³ãã¥ãŒã¿ããžã§ã³åéã®ç 究è ãå®å家ã«ãšã£ãŠè²ŽéãªãªãœãŒã¹ãšãªã£ãŠããã
ããŒã¿ã»ãã YAML
YAML (Yet Another Markup Language) ãã¡ã€ã«ã¯ããŒã¿ã»ããã®èšå®ãå®çŸ©ããããã«äœ¿ãããããã®ãã¡ã€ã«ã«ã¯ãããŒã¿ã»ããã®ãã¹ãã¯ã©ã¹ããã®ä»ã®é¢é£æ
å ±ãå«ãŸããŠããã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
䜿çšæ¹æ³
VisDroneããŒã¿ã»ããã§YOLO11nã¢ãã«ãç»åãµã€ãº640ã§100ãšããã¯åŠç¿ãããã«ã¯ã以äžã®ã³ãŒãã¹ããããã䜿çšããŸãã䜿çšå¯èœãªåŒæ°ã®å æ¬çãªãªã¹ãã«ã€ããŠã¯ãã¢ãã«ã®ãã¬ãŒãã³ã°ããŒãžãåç §ããŠãã ããã
åè»ã®äŸ
ãµã³ãã«ããŒã¿ãšæ³šé
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 Dataset GitHubãªããžããªãã芧ãã ããã
ããããã質å
VisDroneããŒã¿ã»ãããšãã®äž»ãªç¹åŸŽã¯ïŒ
VisDroneããŒã¿ã»ããã¯ãäžåœå€©æŽ¥å€§åŠã®AISKYEYEããŒã ã«ãã£ãŠäœæããã倧èŠæš¡ãã³ãããŒã¯ã§ããããããŒã³ããŒã¹ã®ç»åããã³ãããªè§£æã«é¢é£ããããŸããŸãªã³ã³ãã¥ãŒã¿ããžã§ã³ã¿ã¹ã¯ã®ããã«èšèšãããŠãããäž»ãªç¹åŸŽã¯ä»¥äžã®éãïŒ
- æ§æïŒ288ãããªã¯ãªããã261,908ãã¬ãŒã ã10,209éæ¢ç»åã
- 泚éïŒæ©è¡è ãè»ãèªè»¢è»ãäžèŒªè»ãªã©ã®ãªããžã§ã¯ãã®ããŠã³ãã£ã³ã°ããã¯ã¹ã¯260äžä»¥äžã
- å€æ§æ§ïŒ14ã®éœåžãéœåžãšèŸ²æã®ç°å¢ãç°ãªã倩åãšç §ææ¡ä»¶ã®äžã§åéãããã
- ã¿ã¹ã¯ïŒç»åãåç»ã«ãããç©äœæ€åºãåäžç©äœããã³è€æ°ç©äœã®è¿œè·¡ã矀è¡èšæ°ã
VisDroneããŒã¿ã»ããã䜿çšããŠãUltralytics ã§YOLO11 ã¢ãã«ããã¬ãŒãã³ã°ããã«ã¯ã©ãããã°ããã§ããïŒ
VisDroneããŒã¿ã»ããã§YOLO11 ã¢ãã«ãç»åãµã€ãº640ã§100ãšããã¯åŠç¿ãããã«ã¯ã以äžã®æé ã«åŸããŸãïŒ
åè»ã®äŸ
ãã®ä»ã®èšå®ãªãã·ã§ã³ã«ã€ããŠã¯ãã¢ãã«ã»ãã¬ãŒãã³ã°ã®ããŒãžãåç §ããŠãã ããã
VisDroneããŒã¿ã»ããã®äž»ãªãµãã»ãããšãã®çšéã¯ïŒ
VisDroneããŒã¿ã»ããã¯äž»ã«5ã€ã®ãµãã»ããã«åãããŠããããããããç¹å®ã®ã³ã³ãã¥ãŒã¿ããžã§ã³ã¿ã¹ã¯çšã«èª¿æŽãããŠããïŒ
- ã¿ã¹ã¯1ïŒç»åäžã®ç©äœæ€åº
- ã¿ã¹ã¯2ïŒãããªå ã®ãªããžã§ã¯ãæ€åºã
- ã¿ã¹ã¯3ïŒåäžãªããžã§ã¯ãã®ãã©ããã³ã°
- ã¿ã¹ã¯4ïŒãã«ããªããžã§ã¯ããã©ããã³ã°
- ã¿ã¹ã¯5ïŒçŸ€è¡ã®æ°ãæ°ããã
ãããã®ãµãã»ããã¯ãç£èŠã亀éç£èŠãå ¬å ±å®å šãªã©ã®ãããŒã³ããŒã¹ã®ã¢ããªã±ãŒã·ã§ã³ã«ããããã£ãŒãã©ãŒãã³ã°ã¢ãã«ã®èšç·Žãšè©äŸ¡ã«åºã䜿çšãããŠããã
Ultralytics ãVisDroneããŒã¿ã»ããã®èšå®ãã¡ã€ã«ã¯ã©ãã«ãããŸããïŒ
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}
}