-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
ed86a78
commit bdd1b9c
Showing
23 changed files
with
2,639 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
# YOLOv5 π by Ultralytics, AGPL-3.0 license | ||
# Argoverse-HD dataset (ring-front-center camera) http://www.cs.cmu.edu/~mengtial/proj/streaming/ by Argo AI | ||
# Example usage: python train.py --data Argoverse.yaml | ||
# parent | ||
# βββ yolov5 | ||
# βββ datasets | ||
# βββ Argoverse β downloads here (31.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/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 utils.general import download, 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 | ||
dir = Path(yaml['path']) # dataset root dir | ||
urls = ['https://argoverse-hd.s3.us-east-2.amazonaws.com/Argoverse-HD-Full.zip'] | ||
download(urls, dir=dir, delete=False) | ||
# 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 VisDrone annotations to YOLO labels |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
# YOLOv5 π by Ultralytics, AGPL-3.0 license | ||
# Global Wheat 2020 dataset http://www.global-wheat.com/ by University of Saskatchewan | ||
# Example usage: python train.py --data GlobalWheat2020.yaml | ||
# parent | ||
# βββ yolov5 | ||
# βββ datasets | ||
# βββ GlobalWheat2020 β downloads here (7.0 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/GlobalWheat2020 # dataset root dir | ||
train: # train images (relative to 'path') 3422 images | ||
- images/arvalis_1 | ||
- images/arvalis_2 | ||
- images/arvalis_3 | ||
- images/ethz_1 | ||
- images/rres_1 | ||
- images/inrae_1 | ||
- images/usask_1 | ||
val: # val images (relative to 'path') 748 images (WARNING: train set contains ethz_1) | ||
- images/ethz_1 | ||
test: # test images (optional) 1276 images | ||
- images/utokyo_1 | ||
- images/utokyo_2 | ||
- images/nau_1 | ||
- images/uq_1 | ||
|
||
# Classes | ||
names: | ||
0: wheat_head | ||
|
||
|
||
# Download script/URL (optional) --------------------------------------------------------------------------------------- | ||
download: | | ||
from utils.general import download, Path | ||
# Download | ||
dir = Path(yaml['path']) # dataset root dir | ||
urls = ['https://zenodo.org/record/4298502/files/global-wheat-codalab-official.zip', | ||
'https://github.com/ultralytics/yolov5/releases/download/v1.0/GlobalWheat2020_labels.zip'] | ||
download(urls, dir=dir) | ||
# Make Directories | ||
for p in 'annotations', 'images', 'labels': | ||
(dir / p).mkdir(parents=True, exist_ok=True) | ||
# Move | ||
for p in 'arvalis_1', 'arvalis_2', 'arvalis_3', 'ethz_1', 'rres_1', 'inrae_1', 'usask_1', \ | ||
'utokyo_1', 'utokyo_2', 'nau_1', 'uq_1': | ||
(dir / p).rename(dir / 'images' / p) # move to /images | ||
f = (dir / p).with_suffix('.json') # json file | ||
if f.exists(): | ||
f.rename((dir / 'annotations' / p).with_suffix('.json')) # move to /annotations |
Oops, something went wrong.