-
Notifications
You must be signed in to change notification settings - Fork 709
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #231 from CASIA-IVA-Lab/dev
Optimized the jagged edges issue in segmentation.
- Loading branch information
Showing
166 changed files
with
30,588 additions
and
13 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
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
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
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
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,73 @@ | ||
# Ultralytics YOLO π, AGPL-3.0 license | ||
# Pre-commit hooks. For more information see https://github.com/pre-commit/pre-commit-hooks/blob/main/README.md | ||
|
||
exclude: 'docs/' | ||
# Define bot property if installed via https://github.com/marketplace/pre-commit-ci | ||
ci: | ||
autofix_prs: true | ||
autoupdate_commit_msg: '[pre-commit.ci] pre-commit suggestions' | ||
autoupdate_schedule: monthly | ||
# submodules: true | ||
|
||
repos: | ||
- repo: https://github.com/pre-commit/pre-commit-hooks | ||
rev: v4.4.0 | ||
hooks: | ||
- id: end-of-file-fixer | ||
- id: trailing-whitespace | ||
- id: check-case-conflict | ||
# - id: check-yaml | ||
- id: check-docstring-first | ||
- id: double-quote-string-fixer | ||
- id: detect-private-key | ||
|
||
- repo: https://github.com/asottile/pyupgrade | ||
rev: v3.4.0 | ||
hooks: | ||
- id: pyupgrade | ||
name: Upgrade code | ||
|
||
- repo: https://github.com/PyCQA/isort | ||
rev: 5.12.0 | ||
hooks: | ||
- id: isort | ||
name: Sort imports | ||
|
||
- repo: https://github.com/google/yapf | ||
rev: v0.33.0 | ||
hooks: | ||
- id: yapf | ||
name: YAPF formatting | ||
|
||
- repo: https://github.com/executablebooks/mdformat | ||
rev: 0.7.16 | ||
hooks: | ||
- id: mdformat | ||
name: MD formatting | ||
additional_dependencies: | ||
- mdformat-gfm | ||
- mdformat-black | ||
# exclude: "README.md|README.zh-CN.md|CONTRIBUTING.md" | ||
|
||
- repo: https://github.com/PyCQA/flake8 | ||
rev: 6.0.0 | ||
hooks: | ||
- id: flake8 | ||
name: PEP8 | ||
|
||
- repo: https://github.com/codespell-project/codespell | ||
rev: v2.2.4 | ||
hooks: | ||
- id: codespell | ||
args: | ||
- --ignore-words-list=crate,nd,strack,dota | ||
|
||
# - repo: https://github.com/asottile/yesqa | ||
# rev: v1.4.0 | ||
# hooks: | ||
# - id: yesqa | ||
|
||
# - repo: https://github.com/asottile/dead | ||
# rev: v1.5.0 | ||
# hooks: | ||
# - id: dead |
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,12 @@ | ||
# Ultralytics YOLO π, AGPL-3.0 license | ||
|
||
__version__ = '8.0.120' | ||
|
||
from ultralytics.hub import start | ||
from ultralytics.vit.rtdetr import RTDETR | ||
from ultralytics.vit.sam import SAM | ||
from ultralytics.yolo.engine.model import YOLO | ||
from ultralytics.yolo.nas import NAS | ||
from ultralytics.yolo.utils.checks import check_yolo as checks | ||
|
||
__all__ = '__version__', 'YOLO', 'NAS', 'SAM', 'RTDETR', 'checks', 'start' # allow simpler import |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
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,73 @@ | ||
# Ultralytics YOLO π, AGPL-3.0 license | ||
# Argoverse-HD dataset (ring-front-center camera) http://www.cs.cmu.edu/~mengtial/proj/streaming/ by Argo AI | ||
# Example usage: yolo train data=Argoverse.yaml | ||
# parent | ||
# βββ ultralytics | ||
# βββ 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 ultralytics.yolo.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 | ||
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) | ||
# 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 @@ | ||
# Ultralytics YOLO π, AGPL-3.0 license | ||
# Global Wheat 2020 dataset http://www.global-wheat.com/ by University of Saskatchewan | ||
# Example usage: yolo train data=GlobalWheat2020.yaml | ||
# parent | ||
# βββ ultralytics | ||
# βββ 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 ultralytics.yolo.utils.downloads import download | ||
from pathlib import 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 / 'global-wheat-codalab-official' / p).rename(dir / 'images' / p) # move to /images | ||
f = (dir / 'global-wheat-codalab-official' / p).with_suffix('.json') # json file | ||
if f.exists(): | ||
f.rename((dir / 'annotations' / p).with_suffix('.json')) # move to /annotations |
Oops, something went wrong.