xiaoming32236046 commited on
Commit
53ad959
β€’
1 Parent(s): 1bb6654

Upload 325 files

Browse files
This view is limited to 50 files because it contains too many changes. Β  See raw diff
Files changed (50) hide show
  1. ultralytics/__init__.py +27 -0
  2. ultralytics/__pycache__/__init__.cpython-39.pyc +0 -0
  3. ultralytics/assets/bus.jpg +0 -0
  4. ultralytics/assets/zidane.jpg +0 -0
  5. ultralytics/cfg/__init__.py +613 -0
  6. ultralytics/cfg/__pycache__/__init__.cpython-39.pyc +0 -0
  7. ultralytics/cfg/datasets/Argoverse.yaml +74 -0
  8. ultralytics/cfg/datasets/DOTAv1.5.yaml +36 -0
  9. ultralytics/cfg/datasets/DOTAv1.yaml +35 -0
  10. ultralytics/cfg/datasets/GlobalWheat2020.yaml +53 -0
  11. ultralytics/cfg/datasets/ImageNet.yaml +2024 -0
  12. ultralytics/cfg/datasets/Objects365.yaml +442 -0
  13. ultralytics/cfg/datasets/SKU-110K.yaml +57 -0
  14. ultralytics/cfg/datasets/VOC.yaml +99 -0
  15. ultralytics/cfg/datasets/VisDrone.yaml +72 -0
  16. ultralytics/cfg/datasets/african-wildlife.yaml +24 -0
  17. ultralytics/cfg/datasets/brain-tumor.yaml +22 -0
  18. ultralytics/cfg/datasets/carparts-seg.yaml +43 -0
  19. ultralytics/cfg/datasets/coco-pose.yaml +38 -0
  20. ultralytics/cfg/datasets/coco.yaml +114 -0
  21. ultralytics/cfg/datasets/coco128-seg.yaml +100 -0
  22. ultralytics/cfg/datasets/coco128.yaml +100 -0
  23. ultralytics/cfg/datasets/coco8-pose.yaml +25 -0
  24. ultralytics/cfg/datasets/coco8-seg.yaml +100 -0
  25. ultralytics/cfg/datasets/coco8.yaml +100 -0
  26. ultralytics/cfg/datasets/crack-seg.yaml +21 -0
  27. ultralytics/cfg/datasets/dota8.yaml +34 -0
  28. ultralytics/cfg/datasets/open-images-v7.yaml +660 -0
  29. ultralytics/cfg/datasets/package-seg.yaml +21 -0
  30. ultralytics/cfg/datasets/tiger-pose.yaml +24 -0
  31. ultralytics/cfg/datasets/xView.yaml +152 -0
  32. ultralytics/cfg/default.yaml +127 -0
  33. ultralytics/cfg/models/README.md +40 -0
  34. ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +50 -0
  35. ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +42 -0
  36. ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +42 -0
  37. ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +54 -0
  38. ultralytics/cfg/models/v10/yolov10b.yaml +40 -0
  39. ultralytics/cfg/models/v10/yolov10l.yaml +40 -0
  40. ultralytics/cfg/models/v10/yolov10m.yaml +43 -0
  41. ultralytics/cfg/models/v10/yolov10n.yaml +40 -0
  42. ultralytics/cfg/models/v10/yolov10s.yaml +39 -0
  43. ultralytics/cfg/models/v10/yolov10x.yaml +40 -0
  44. ultralytics/cfg/models/v3/yolov3-spp.yaml +46 -0
  45. ultralytics/cfg/models/v3/yolov3-tiny.yaml +37 -0
  46. ultralytics/cfg/models/v3/yolov3.yaml +46 -0
  47. ultralytics/cfg/models/v5/yolov5-p6.yaml +59 -0
  48. ultralytics/cfg/models/v5/yolov5.yaml +48 -0
  49. ultralytics/cfg/models/v6/yolov6.yaml +53 -0
  50. ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +25 -0
ultralytics/__init__.py ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ultralytics YOLO πŸš€, AGPL-3.0 license
2
+
3
+ __version__ = "8.1.34"
4
+
5
+ from ultralytics.data.explorer.explorer import Explorer
6
+ from ultralytics.models import RTDETR, SAM, YOLO, YOLOWorld, YOLOv10
7
+ from ultralytics.models.fastsam import FastSAM
8
+ from ultralytics.models.nas import NAS
9
+ from ultralytics.utils import ASSETS, SETTINGS as settings
10
+ from ultralytics.utils.checks import check_yolo as checks
11
+ from ultralytics.utils.downloads import download
12
+
13
+ __all__ = (
14
+ "__version__",
15
+ "ASSETS",
16
+ "YOLO",
17
+ "YOLOWorld",
18
+ "NAS",
19
+ "SAM",
20
+ "FastSAM",
21
+ "RTDETR",
22
+ "checks",
23
+ "download",
24
+ "settings",
25
+ "Explorer",
26
+ "YOLOv10"
27
+ )
ultralytics/__pycache__/__init__.cpython-39.pyc ADDED
Binary file (744 Bytes). View file
 
ultralytics/assets/bus.jpg ADDED
ultralytics/assets/zidane.jpg ADDED
ultralytics/cfg/__init__.py ADDED
@@ -0,0 +1,613 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ultralytics YOLO πŸš€, AGPL-3.0 license
2
+
3
+ import contextlib
4
+ import os
5
+ import shutil
6
+ import subprocess
7
+ import sys
8
+ from pathlib import Path
9
+ from types import SimpleNamespace
10
+ from typing import Dict, List, Union
11
+ import re
12
+
13
+ from ultralytics.utils import (
14
+ ASSETS,
15
+ DEFAULT_CFG,
16
+ DEFAULT_CFG_DICT,
17
+ DEFAULT_CFG_PATH,
18
+ LOGGER,
19
+ RANK,
20
+ ROOT,
21
+ RUNS_DIR,
22
+ SETTINGS,
23
+ SETTINGS_YAML,
24
+ TESTS_RUNNING,
25
+ IterableSimpleNamespace,
26
+ __version__,
27
+ checks,
28
+ colorstr,
29
+ deprecation_warn,
30
+ yaml_load,
31
+ yaml_print,
32
+ )
33
+
34
+ # Define valid tasks and modes
35
+ MODES = {"train", "val", "predict", "export", "track", "benchmark"}
36
+ TASKS = {"detect", "segment", "classify", "pose", "obb"}
37
+ TASK2DATA = {
38
+ "detect": "coco8.yaml",
39
+ "segment": "coco8-seg.yaml",
40
+ "classify": "imagenet10",
41
+ "pose": "coco8-pose.yaml",
42
+ "obb": "dota8.yaml",
43
+ }
44
+ TASK2MODEL = {
45
+ "detect": "yolov8n.pt",
46
+ "segment": "yolov8n-seg.pt",
47
+ "classify": "yolov8n-cls.pt",
48
+ "pose": "yolov8n-pose.pt",
49
+ "obb": "yolov8n-obb.pt",
50
+ }
51
+ TASK2METRIC = {
52
+ "detect": "metrics/mAP50-95(B)",
53
+ "segment": "metrics/mAP50-95(M)",
54
+ "classify": "metrics/accuracy_top1",
55
+ "pose": "metrics/mAP50-95(P)",
56
+ "obb": "metrics/mAP50-95(B)",
57
+ }
58
+
59
+ CLI_HELP_MSG = f"""
60
+ Arguments received: {str(['yolo'] + sys.argv[1:])}. Ultralytics 'yolo' commands use the following syntax:
61
+
62
+ yolo TASK MODE ARGS
63
+
64
+ Where TASK (optional) is one of {TASKS}
65
+ MODE (required) is one of {MODES}
66
+ ARGS (optional) are any number of custom 'arg=value' pairs like 'imgsz=320' that override defaults.
67
+ See all ARGS at https://docs.ultralytics.com/usage/cfg or with 'yolo cfg'
68
+
69
+ 1. Train a detection model for 10 epochs with an initial learning_rate of 0.01
70
+ yolo train data=coco128.yaml model=yolov8n.pt epochs=10 lr0=0.01
71
+
72
+ 2. Predict a YouTube video using a pretrained segmentation model at image size 320:
73
+ yolo predict model=yolov8n-seg.pt source='https://youtu.be/LNwODJXcvt4' imgsz=320
74
+
75
+ 3. Val a pretrained detection model at batch-size 1 and image size 640:
76
+ yolo val model=yolov8n.pt data=coco128.yaml batch=1 imgsz=640
77
+
78
+ 4. Export a YOLOv8n classification model to ONNX format at image size 224 by 128 (no TASK required)
79
+ yolo export model=yolov8n-cls.pt format=onnx imgsz=224,128
80
+
81
+ 6. Explore your datasets using semantic search and SQL with a simple GUI powered by Ultralytics Explorer API
82
+ yolo explorer
83
+
84
+ 5. Run special commands:
85
+ yolo help
86
+ yolo checks
87
+ yolo version
88
+ yolo settings
89
+ yolo copy-cfg
90
+ yolo cfg
91
+
92
+ Docs: https://docs.ultralytics.com
93
+ Community: https://community.ultralytics.com
94
+ GitHub: https://github.com/ultralytics/ultralytics
95
+ """
96
+
97
+ # Define keys for arg type checks
98
+ CFG_FLOAT_KEYS = {"warmup_epochs", "box", "cls", "dfl", "degrees", "shear", "time"}
99
+ CFG_FRACTION_KEYS = {
100
+ "dropout",
101
+ "iou",
102
+ "lr0",
103
+ "lrf",
104
+ "momentum",
105
+ "weight_decay",
106
+ "warmup_momentum",
107
+ "warmup_bias_lr",
108
+ "label_smoothing",
109
+ "hsv_h",
110
+ "hsv_s",
111
+ "hsv_v",
112
+ "translate",
113
+ "scale",
114
+ "perspective",
115
+ "flipud",
116
+ "fliplr",
117
+ "bgr",
118
+ "mosaic",
119
+ "mixup",
120
+ "copy_paste",
121
+ "conf",
122
+ "iou",
123
+ "fraction",
124
+ } # fraction floats 0.0 - 1.0
125
+ CFG_INT_KEYS = {
126
+ "epochs",
127
+ "patience",
128
+ "batch",
129
+ "workers",
130
+ "seed",
131
+ "close_mosaic",
132
+ "mask_ratio",
133
+ "max_det",
134
+ "vid_stride",
135
+ "line_width",
136
+ "workspace",
137
+ "nbs",
138
+ "save_period",
139
+ }
140
+ CFG_BOOL_KEYS = {
141
+ "save",
142
+ "exist_ok",
143
+ "verbose",
144
+ "deterministic",
145
+ "single_cls",
146
+ "rect",
147
+ "cos_lr",
148
+ "overlap_mask",
149
+ "val",
150
+ "save_json",
151
+ "save_hybrid",
152
+ "half",
153
+ "dnn",
154
+ "plots",
155
+ "show",
156
+ "save_txt",
157
+ "save_conf",
158
+ "save_crop",
159
+ "save_frames",
160
+ "show_labels",
161
+ "show_conf",
162
+ "visualize",
163
+ "augment",
164
+ "agnostic_nms",
165
+ "retina_masks",
166
+ "show_boxes",
167
+ "keras",
168
+ "optimize",
169
+ "int8",
170
+ "dynamic",
171
+ "simplify",
172
+ "nms",
173
+ "profile",
174
+ "multi_scale",
175
+ }
176
+
177
+
178
+ def cfg2dict(cfg):
179
+ """
180
+ Convert a configuration object to a dictionary, whether it is a file path, a string, or a SimpleNamespace object.
181
+
182
+ Args:
183
+ cfg (str | Path | dict | SimpleNamespace): Configuration object to be converted to a dictionary.
184
+
185
+ Returns:
186
+ cfg (dict): Configuration object in dictionary format.
187
+ """
188
+ if isinstance(cfg, (str, Path)):
189
+ cfg = yaml_load(cfg) # load dict
190
+ elif isinstance(cfg, SimpleNamespace):
191
+ cfg = vars(cfg) # convert to dict
192
+ return cfg
193
+
194
+
195
+ def get_cfg(cfg: Union[str, Path, Dict, SimpleNamespace] = DEFAULT_CFG_DICT, overrides: Dict = None):
196
+ """
197
+ Load and merge configuration data from a file or dictionary.
198
+
199
+ Args:
200
+ cfg (str | Path | Dict | SimpleNamespace): Configuration data.
201
+ overrides (str | Dict | optional): Overrides in the form of a file name or a dictionary. Default is None.
202
+
203
+ Returns:
204
+ (SimpleNamespace): Training arguments namespace.
205
+ """
206
+ cfg = cfg2dict(cfg)
207
+
208
+ # Merge overrides
209
+ if overrides:
210
+ overrides = cfg2dict(overrides)
211
+ if "save_dir" not in cfg:
212
+ overrides.pop("save_dir", None) # special override keys to ignore
213
+ check_dict_alignment(cfg, overrides)
214
+ cfg = {**cfg, **overrides} # merge cfg and overrides dicts (prefer overrides)
215
+
216
+ # Special handling for numeric project/name
217
+ for k in "project", "name":
218
+ if k in cfg and isinstance(cfg[k], (int, float)):
219
+ cfg[k] = str(cfg[k])
220
+ if cfg.get("name") == "model": # assign model to 'name' arg
221
+ cfg["name"] = cfg.get("model", "").split(".")[0]
222
+ LOGGER.warning(f"WARNING ⚠️ 'name=model' automatically updated to 'name={cfg['name']}'.")
223
+
224
+ # Type and Value checks
225
+ check_cfg(cfg)
226
+
227
+ # Return instance
228
+ return IterableSimpleNamespace(**cfg)
229
+
230
+
231
+ def check_cfg(cfg, hard=True):
232
+ """Check Ultralytics configuration argument types and values."""
233
+ for k, v in cfg.items():
234
+ if v is not None: # None values may be from optional args
235
+ if k in CFG_FLOAT_KEYS and not isinstance(v, (int, float)):
236
+ if hard:
237
+ raise TypeError(
238
+ f"'{k}={v}' is of invalid type {type(v).__name__}. "
239
+ f"Valid '{k}' types are int (i.e. '{k}=0') or float (i.e. '{k}=0.5')"
240
+ )
241
+ cfg[k] = float(v)
242
+ elif k in CFG_FRACTION_KEYS:
243
+ if not isinstance(v, (int, float)):
244
+ if hard:
245
+ raise TypeError(
246
+ f"'{k}={v}' is of invalid type {type(v).__name__}. "
247
+ f"Valid '{k}' types are int (i.e. '{k}=0') or float (i.e. '{k}=0.5')"
248
+ )
249
+ cfg[k] = v = float(v)
250
+ if not (0.0 <= v <= 1.0):
251
+ raise ValueError(f"'{k}={v}' is an invalid value. " f"Valid '{k}' values are between 0.0 and 1.0.")
252
+ elif k in CFG_INT_KEYS and not isinstance(v, int):
253
+ if hard:
254
+ raise TypeError(
255
+ f"'{k}={v}' is of invalid type {type(v).__name__}. " f"'{k}' must be an int (i.e. '{k}=8')"
256
+ )
257
+ cfg[k] = int(v)
258
+ elif k in CFG_BOOL_KEYS and not isinstance(v, bool):
259
+ if hard:
260
+ raise TypeError(
261
+ f"'{k}={v}' is of invalid type {type(v).__name__}. "
262
+ f"'{k}' must be a bool (i.e. '{k}=True' or '{k}=False')"
263
+ )
264
+ cfg[k] = bool(v)
265
+
266
+
267
+ def get_save_dir(args, name=None):
268
+ """Return save_dir as created from train/val/predict arguments."""
269
+
270
+ if getattr(args, "save_dir", None):
271
+ save_dir = args.save_dir
272
+ else:
273
+ from ultralytics.utils.files import increment_path
274
+
275
+ project = args.project or (ROOT.parent / "tests/tmp/runs" if TESTS_RUNNING else RUNS_DIR) / args.task
276
+ name = name or args.name or f"{args.mode}"
277
+ save_dir = increment_path(Path(project) / name, exist_ok=args.exist_ok if RANK in (-1, 0) else True)
278
+
279
+ return Path(save_dir)
280
+
281
+
282
+ def _handle_deprecation(custom):
283
+ """Hardcoded function to handle deprecated config keys."""
284
+
285
+ for key in custom.copy().keys():
286
+ if key == "boxes":
287
+ deprecation_warn(key, "show_boxes")
288
+ custom["show_boxes"] = custom.pop("boxes")
289
+ if key == "hide_labels":
290
+ deprecation_warn(key, "show_labels")
291
+ custom["show_labels"] = custom.pop("hide_labels") == "False"
292
+ if key == "hide_conf":
293
+ deprecation_warn(key, "show_conf")
294
+ custom["show_conf"] = custom.pop("hide_conf") == "False"
295
+ if key == "line_thickness":
296
+ deprecation_warn(key, "line_width")
297
+ custom["line_width"] = custom.pop("line_thickness")
298
+
299
+ return custom
300
+
301
+
302
+ def check_dict_alignment(base: Dict, custom: Dict, e=None):
303
+ """
304
+ This function checks for any mismatched keys between a custom configuration list and a base configuration list. If
305
+ any mismatched keys are found, the function prints out similar keys from the base list and exits the program.
306
+
307
+ Args:
308
+ custom (dict): a dictionary of custom configuration options
309
+ base (dict): a dictionary of base configuration options
310
+ e (Error, optional): An optional error that is passed by the calling function.
311
+ """
312
+ custom = _handle_deprecation(custom)
313
+ base_keys, custom_keys = (set(x.keys()) for x in (base, custom))
314
+ mismatched = [k for k in custom_keys if k not in base_keys]
315
+ if mismatched:
316
+ from difflib import get_close_matches
317
+
318
+ string = ""
319
+ for x in mismatched:
320
+ matches = get_close_matches(x, base_keys) # key list
321
+ matches = [f"{k}={base[k]}" if base.get(k) is not None else k for k in matches]
322
+ match_str = f"Similar arguments are i.e. {matches}." if matches else ""
323
+ string += f"'{colorstr('red', 'bold', x)}' is not a valid YOLO argument. {match_str}\n"
324
+ raise SyntaxError(string + CLI_HELP_MSG) from e
325
+
326
+
327
+ def merge_equals_args(args: List[str]) -> List[str]:
328
+ """
329
+ Merges arguments around isolated '=' args in a list of strings. The function considers cases where the first
330
+ argument ends with '=' or the second starts with '=', as well as when the middle one is an equals sign.
331
+
332
+ Args:
333
+ args (List[str]): A list of strings where each element is an argument.
334
+
335
+ Returns:
336
+ (List[str]): A list of strings where the arguments around isolated '=' are merged.
337
+ """
338
+ new_args = []
339
+ for i, arg in enumerate(args):
340
+ if arg == "=" and 0 < i < len(args) - 1: # merge ['arg', '=', 'val']
341
+ new_args[-1] += f"={args[i + 1]}"
342
+ del args[i + 1]
343
+ elif arg.endswith("=") and i < len(args) - 1 and "=" not in args[i + 1]: # merge ['arg=', 'val']
344
+ new_args.append(f"{arg}{args[i + 1]}")
345
+ del args[i + 1]
346
+ elif arg.startswith("=") and i > 0: # merge ['arg', '=val']
347
+ new_args[-1] += arg
348
+ else:
349
+ new_args.append(arg)
350
+ return new_args
351
+
352
+
353
+ def handle_yolo_hub(args: List[str]) -> None:
354
+ """
355
+ Handle Ultralytics HUB command-line interface (CLI) commands.
356
+
357
+ This function processes Ultralytics HUB CLI commands such as login and logout.
358
+ It should be called when executing a script with arguments related to HUB authentication.
359
+
360
+ Args:
361
+ args (List[str]): A list of command line arguments
362
+
363
+ Example:
364
+ ```bash
365
+ python my_script.py hub login your_api_key
366
+ ```
367
+ """
368
+ from ultralytics import hub
369
+
370
+ if args[0] == "login":
371
+ key = args[1] if len(args) > 1 else ""
372
+ # Log in to Ultralytics HUB using the provided API key
373
+ hub.login(key)
374
+ elif args[0] == "logout":
375
+ # Log out from Ultralytics HUB
376
+ hub.logout()
377
+
378
+
379
+ def handle_yolo_settings(args: List[str]) -> None:
380
+ """
381
+ Handle YOLO settings command-line interface (CLI) commands.
382
+
383
+ This function processes YOLO settings CLI commands such as reset.
384
+ It should be called when executing a script with arguments related to YOLO settings management.
385
+
386
+ Args:
387
+ args (List[str]): A list of command line arguments for YOLO settings management.
388
+
389
+ Example:
390
+ ```bash
391
+ python my_script.py yolo settings reset
392
+ ```
393
+ """
394
+ url = "https://docs.ultralytics.com/quickstart/#ultralytics-settings" # help URL
395
+ try:
396
+ if any(args):
397
+ if args[0] == "reset":
398
+ SETTINGS_YAML.unlink() # delete the settings file
399
+ SETTINGS.reset() # create new settings
400
+ LOGGER.info("Settings reset successfully") # inform the user that settings have been reset
401
+ else: # save a new setting
402
+ new = dict(parse_key_value_pair(a) for a in args)
403
+ check_dict_alignment(SETTINGS, new)
404
+ SETTINGS.update(new)
405
+
406
+ LOGGER.info(f"πŸ’‘ Learn about settings at {url}")
407
+ yaml_print(SETTINGS_YAML) # print the current settings
408
+ except Exception as e:
409
+ LOGGER.warning(f"WARNING ⚠️ settings error: '{e}'. Please see {url} for help.")
410
+
411
+
412
+ def handle_explorer():
413
+ """Open the Ultralytics Explorer GUI."""
414
+ checks.check_requirements("streamlit")
415
+ LOGGER.info("πŸ’‘ Loading Explorer dashboard...")
416
+ subprocess.run(["streamlit", "run", ROOT / "data/explorer/gui/dash.py", "--server.maxMessageSize", "2048"])
417
+
418
+
419
+ def parse_key_value_pair(pair):
420
+ """Parse one 'key=value' pair and return key and value."""
421
+ k, v = pair.split("=", 1) # split on first '=' sign
422
+ k, v = k.strip(), v.strip() # remove spaces
423
+ assert v, f"missing '{k}' value"
424
+ return k, smart_value(v)
425
+
426
+
427
+ def smart_value(v):
428
+ """Convert a string to an underlying type such as int, float, bool, etc."""
429
+ v_lower = v.lower()
430
+ if v_lower == "none":
431
+ return None
432
+ elif v_lower == "true":
433
+ return True
434
+ elif v_lower == "false":
435
+ return False
436
+ else:
437
+ with contextlib.suppress(Exception):
438
+ return eval(v)
439
+ return v
440
+
441
+
442
+ def entrypoint(debug=""):
443
+ """
444
+ This function is the ultralytics package entrypoint, it's responsible for parsing the command line arguments passed
445
+ to the package.
446
+
447
+ This function allows for:
448
+ - passing mandatory YOLO args as a list of strings
449
+ - specifying the task to be performed, either 'detect', 'segment' or 'classify'
450
+ - specifying the mode, either 'train', 'val', 'test', or 'predict'
451
+ - running special modes like 'checks'
452
+ - passing overrides to the package's configuration
453
+
454
+ It uses the package's default cfg and initializes it using the passed overrides.
455
+ Then it calls the CLI function with the composed cfg
456
+ """
457
+ args = (debug.split(" ") if debug else sys.argv)[1:]
458
+ if not args: # no arguments passed
459
+ LOGGER.info(CLI_HELP_MSG)
460
+ return
461
+
462
+ special = {
463
+ "help": lambda: LOGGER.info(CLI_HELP_MSG),
464
+ "checks": checks.collect_system_info,
465
+ "version": lambda: LOGGER.info(__version__),
466
+ "settings": lambda: handle_yolo_settings(args[1:]),
467
+ "cfg": lambda: yaml_print(DEFAULT_CFG_PATH),
468
+ "hub": lambda: handle_yolo_hub(args[1:]),
469
+ "login": lambda: handle_yolo_hub(args),
470
+ "copy-cfg": copy_default_cfg,
471
+ "explorer": lambda: handle_explorer(),
472
+ }
473
+ full_args_dict = {**DEFAULT_CFG_DICT, **{k: None for k in TASKS}, **{k: None for k in MODES}, **special}
474
+
475
+ # Define common misuses of special commands, i.e. -h, -help, --help
476
+ special.update({k[0]: v for k, v in special.items()}) # singular
477
+ special.update({k[:-1]: v for k, v in special.items() if len(k) > 1 and k.endswith("s")}) # singular
478
+ special = {**special, **{f"-{k}": v for k, v in special.items()}, **{f"--{k}": v for k, v in special.items()}}
479
+
480
+ overrides = {} # basic overrides, i.e. imgsz=320
481
+ for a in merge_equals_args(args): # merge spaces around '=' sign
482
+ if a.startswith("--"):
483
+ LOGGER.warning(f"WARNING ⚠️ argument '{a}' does not require leading dashes '--', updating to '{a[2:]}'.")
484
+ a = a[2:]
485
+ if a.endswith(","):
486
+ LOGGER.warning(f"WARNING ⚠️ argument '{a}' does not require trailing comma ',', updating to '{a[:-1]}'.")
487
+ a = a[:-1]
488
+ if "=" in a:
489
+ try:
490
+ k, v = parse_key_value_pair(a)
491
+ if k == "cfg" and v is not None: # custom.yaml passed
492
+ LOGGER.info(f"Overriding {DEFAULT_CFG_PATH} with {v}")
493
+ overrides = {k: val for k, val in yaml_load(checks.check_yaml(v)).items() if k != "cfg"}
494
+ else:
495
+ overrides[k] = v
496
+ except (NameError, SyntaxError, ValueError, AssertionError) as e:
497
+ check_dict_alignment(full_args_dict, {a: ""}, e)
498
+
499
+ elif a in TASKS:
500
+ overrides["task"] = a
501
+ elif a in MODES:
502
+ overrides["mode"] = a
503
+ elif a.lower() in special:
504
+ special[a.lower()]()
505
+ return
506
+ elif a in DEFAULT_CFG_DICT and isinstance(DEFAULT_CFG_DICT[a], bool):
507
+ overrides[a] = True # auto-True for default bool args, i.e. 'yolo show' sets show=True
508
+ elif a in DEFAULT_CFG_DICT:
509
+ raise SyntaxError(
510
+ f"'{colorstr('red', 'bold', a)}' is a valid YOLO argument but is missing an '=' sign "
511
+ f"to set its value, i.e. try '{a}={DEFAULT_CFG_DICT[a]}'\n{CLI_HELP_MSG}"
512
+ )
513
+ else:
514
+ check_dict_alignment(full_args_dict, {a: ""})
515
+
516
+ # Check keys
517
+ check_dict_alignment(full_args_dict, overrides)
518
+
519
+ # Mode
520
+ mode = overrides.get("mode")
521
+ if mode is None:
522
+ mode = DEFAULT_CFG.mode or "predict"
523
+ LOGGER.warning(f"WARNING ⚠️ 'mode' argument is missing. Valid modes are {MODES}. Using default 'mode={mode}'.")
524
+ elif mode not in MODES:
525
+ raise ValueError(f"Invalid 'mode={mode}'. Valid modes are {MODES}.\n{CLI_HELP_MSG}")
526
+
527
+ # Task
528
+ task = overrides.pop("task", None)
529
+ if task:
530
+ if task not in TASKS:
531
+ raise ValueError(f"Invalid 'task={task}'. Valid tasks are {TASKS}.\n{CLI_HELP_MSG}")
532
+ if "model" not in overrides:
533
+ overrides["model"] = TASK2MODEL[task]
534
+
535
+ # Model
536
+ model = overrides.pop("model", DEFAULT_CFG.model)
537
+ if model is None:
538
+ model = "yolov8n.pt"
539
+ LOGGER.warning(f"WARNING ⚠️ 'model' argument is missing. Using default 'model={model}'.")
540
+ overrides["model"] = model
541
+ # stem = Path(model).stem.lower()
542
+ stem = model.lower()
543
+ if "rtdetr" in stem: # guess architecture
544
+ from ultralytics import RTDETR
545
+
546
+ model = RTDETR(model) # no task argument
547
+ elif "fastsam" in stem:
548
+ from ultralytics import FastSAM
549
+
550
+ model = FastSAM(model)
551
+ elif "sam" in stem:
552
+ from ultralytics import SAM
553
+
554
+ model = SAM(model)
555
+ elif re.search("v3|v5|v6|v8|v9", stem):
556
+ from ultralytics import YOLO
557
+
558
+ model = YOLO(model, task=task)
559
+ else:
560
+ from ultralytics import YOLOv10
561
+
562
+ # Special case for the HuggingFace Hub
563
+ split_path = model.split('/')
564
+ if len(split_path) == 2 and (not os.path.exists(model)):
565
+ model = YOLOv10.from_pretrained(model)
566
+ else:
567
+ model = YOLOv10(model)
568
+ if isinstance(overrides.get("pretrained"), str):
569
+ model.load(overrides["pretrained"])
570
+
571
+ # Task Update
572
+ if task != model.task:
573
+ if task:
574
+ LOGGER.warning(
575
+ f"WARNING ⚠️ conflicting 'task={task}' passed with 'task={model.task}' model. "
576
+ f"Ignoring 'task={task}' and updating to 'task={model.task}' to match model."
577
+ )
578
+ task = model.task
579
+
580
+ # Mode
581
+ if mode in ("predict", "track") and "source" not in overrides:
582
+ overrides["source"] = DEFAULT_CFG.source or ASSETS
583
+ LOGGER.warning(f"WARNING ⚠️ 'source' argument is missing. Using default 'source={overrides['source']}'.")
584
+ elif mode in ("train", "val"):
585
+ if "data" not in overrides and "resume" not in overrides:
586
+ overrides["data"] = DEFAULT_CFG.data or TASK2DATA.get(task or DEFAULT_CFG.task, DEFAULT_CFG.data)
587
+ LOGGER.warning(f"WARNING ⚠️ 'data' argument is missing. Using default 'data={overrides['data']}'.")
588
+ elif mode == "export":
589
+ if "format" not in overrides:
590
+ overrides["format"] = DEFAULT_CFG.format or "torchscript"
591
+ LOGGER.warning(f"WARNING ⚠️ 'format' argument is missing. Using default 'format={overrides['format']}'.")
592
+
593
+ # Run command in python
594
+ getattr(model, mode)(**overrides) # default args from model
595
+
596
+ # Show help
597
+ LOGGER.info(f"πŸ’‘ Learn more at https://docs.ultralytics.com/modes/{mode}")
598
+
599
+
600
+ # Special modes --------------------------------------------------------------------------------------------------------
601
+ def copy_default_cfg():
602
+ """Copy and create a new default configuration file with '_copy' appended to its name."""
603
+ new_file = Path.cwd() / DEFAULT_CFG_PATH.name.replace(".yaml", "_copy.yaml")
604
+ shutil.copy2(DEFAULT_CFG_PATH, new_file)
605
+ LOGGER.info(
606
+ f"{DEFAULT_CFG_PATH} copied to {new_file}\n"
607
+ f"Example YOLO command with this new custom cfg:\n yolo cfg='{new_file}' imgsz=320 batch=8"
608
+ )
609
+
610
+
611
+ if __name__ == "__main__":
612
+ # Example: entrypoint(debug='yolo predict model=yolov8n.pt')
613
+ entrypoint(debug="")
ultralytics/cfg/__pycache__/__init__.cpython-39.pyc ADDED
Binary file (18.6 kB). View file
 
ultralytics/cfg/datasets/Argoverse.yaml ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ultralytics YOLO πŸš€, AGPL-3.0 license
2
+ # Argoverse-HD dataset (ring-front-center camera) https://www.cs.cmu.edu/~mengtial/proj/streaming/ by Argo AI
3
+ # Documentation: https://docs.ultralytics.com/datasets/detect/argoverse/
4
+ # Example usage: yolo train data=Argoverse.yaml
5
+ # parent
6
+ # β”œβ”€β”€ ultralytics
7
+ # └── datasets
8
+ # └── Argoverse ← downloads here (31.5 GB)
9
+
10
+ # 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, ..]
11
+ path: ../datasets/Argoverse # dataset root dir
12
+ train: Argoverse-1.1/images/train/ # train images (relative to 'path') 39384 images
13
+ val: Argoverse-1.1/images/val/ # val images (relative to 'path') 15062 images
14
+ test: Argoverse-1.1/images/test/ # test images (optional) https://eval.ai/web/challenges/challenge-page/800/overview
15
+
16
+ # Classes
17
+ names:
18
+ 0: person
19
+ 1: bicycle
20
+ 2: car
21
+ 3: motorcycle
22
+ 4: bus
23
+ 5: truck
24
+ 6: traffic_light
25
+ 7: stop_sign
26
+
27
+ # Download script/URL (optional) ---------------------------------------------------------------------------------------
28
+ download: |
29
+ import json
30
+ from tqdm import tqdm
31
+ from ultralytics.utils.downloads import download
32
+ from pathlib import Path
33
+
34
+ def argoverse2yolo(set):
35
+ labels = {}
36
+ a = json.load(open(set, "rb"))
37
+ for annot in tqdm(a['annotations'], desc=f"Converting {set} to YOLOv5 format..."):
38
+ img_id = annot['image_id']
39
+ img_name = a['images'][img_id]['name']
40
+ img_label_name = f'{img_name[:-3]}txt'
41
+
42
+ cls = annot['category_id'] # instance class id
43
+ x_center, y_center, width, height = annot['bbox']
44
+ x_center = (x_center + width / 2) / 1920.0 # offset and scale
45
+ y_center = (y_center + height / 2) / 1200.0 # offset and scale
46
+ width /= 1920.0 # scale
47
+ height /= 1200.0 # scale
48
+
49
+ img_dir = set.parents[2] / 'Argoverse-1.1' / 'labels' / a['seq_dirs'][a['images'][annot['image_id']]['sid']]
50
+ if not img_dir.exists():
51
+ img_dir.mkdir(parents=True, exist_ok=True)
52
+
53
+ k = str(img_dir / img_label_name)
54
+ if k not in labels:
55
+ labels[k] = []
56
+ labels[k].append(f"{cls} {x_center} {y_center} {width} {height}\n")
57
+
58
+ for k in labels:
59
+ with open(k, "w") as f:
60
+ f.writelines(labels[k])
61
+
62
+
63
+ # Download 'https://argoverse-hd.s3.us-east-2.amazonaws.com/Argoverse-HD-Full.zip' (deprecated S3 link)
64
+ dir = Path(yaml['path']) # dataset root dir
65
+ urls = ['https://drive.google.com/file/d/1st9qW3BeIwQsnR0t8mRpvbsSWIo16ACi/view?usp=drive_link']
66
+ print("\n\nWARNING: Argoverse dataset MUST be downloaded manually, autodownload will NOT work.")
67
+ print(f"WARNING: Manually download Argoverse dataset '{urls[0]}' to '{dir}' and re-run your command.\n\n")
68
+ # download(urls, dir=dir)
69
+
70
+ # Convert
71
+ annotations_dir = 'Argoverse-HD/annotations/'
72
+ (dir / 'Argoverse-1.1' / 'tracking').rename(dir / 'Argoverse-1.1' / 'images') # rename 'tracking' to 'images'
73
+ for d in "train.json", "val.json":
74
+ argoverse2yolo(dir / annotations_dir / d) # convert Argoverse annotations to YOLO labels
ultralytics/cfg/datasets/DOTAv1.5.yaml ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ultralytics YOLO πŸš€, AGPL-3.0 license
2
+ # DOTA 1.5 dataset https://captain-whu.github.io/DOTA/index.html for object detection in aerial images by Wuhan University
3
+ # Documentation: https://docs.ultralytics.com/datasets/obb/dota-v2/
4
+ # Example usage: yolo train model=yolov8n-obb.pt data=DOTAv1.5.yaml
5
+ # parent
6
+ # β”œβ”€β”€ ultralytics
7
+ # └── datasets
8
+ # └── dota1.5 ← downloads here (2GB)
9
+
10
+ # 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, ..]
11
+ path: ../datasets/DOTAv1.5 # dataset root dir
12
+ train: images/train # train images (relative to 'path') 1411 images
13
+ val: images/val # val images (relative to 'path') 458 images
14
+ test: images/test # test images (optional) 937 images
15
+
16
+ # Classes for DOTA 1.5
17
+ names:
18
+ 0: plane
19
+ 1: ship
20
+ 2: storage tank
21
+ 3: baseball diamond
22
+ 4: tennis court
23
+ 5: basketball court
24
+ 6: ground track field
25
+ 7: harbor
26
+ 8: bridge
27
+ 9: large vehicle
28
+ 10: small vehicle
29
+ 11: helicopter
30
+ 12: roundabout
31
+ 13: soccer ball field
32
+ 14: swimming pool
33
+ 15: container crane
34
+
35
+ # Download script/URL (optional)
36
+ download: https://github.com/ultralytics/yolov5/releases/download/v1.0/DOTAv1.5.zip
ultralytics/cfg/datasets/DOTAv1.yaml ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ultralytics YOLO πŸš€, AGPL-3.0 license
2
+ # DOTA 1.0 dataset https://captain-whu.github.io/DOTA/index.html for object detection in aerial images by Wuhan University
3
+ # Documentation: https://docs.ultralytics.com/datasets/obb/dota-v2/
4
+ # Example usage: yolo train model=yolov8n-obb.pt data=DOTAv1.yaml
5
+ # parent
6
+ # β”œβ”€β”€ ultralytics
7
+ # └── datasets
8
+ # └── dota1 ← downloads here (2GB)
9
+
10
+ # 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, ..]
11
+ path: ../datasets/DOTAv1 # dataset root dir
12
+ train: images/train # train images (relative to 'path') 1411 images
13
+ val: images/val # val images (relative to 'path') 458 images
14
+ test: images/test # test images (optional) 937 images
15
+
16
+ # Classes for DOTA 1.0
17
+ names:
18
+ 0: plane
19
+ 1: ship
20
+ 2: storage tank
21
+ 3: baseball diamond
22
+ 4: tennis court
23
+ 5: basketball court
24
+ 6: ground track field
25
+ 7: harbor
26
+ 8: bridge
27
+ 9: large vehicle
28
+ 10: small vehicle
29
+ 11: helicopter
30
+ 12: roundabout
31
+ 13: soccer ball field
32
+ 14: swimming pool
33
+
34
+ # Download script/URL (optional)
35
+ download: https://github.com/ultralytics/yolov5/releases/download/v1.0/DOTAv1.zip
ultralytics/cfg/datasets/GlobalWheat2020.yaml ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ultralytics YOLO πŸš€, AGPL-3.0 license
2
+ # Global Wheat 2020 dataset https://www.global-wheat.com/ by University of Saskatchewan
3
+ # Documentation: https://docs.ultralytics.com/datasets/detect/globalwheat2020/
4
+ # Example usage: yolo train data=GlobalWheat2020.yaml
5
+ # parent
6
+ # β”œβ”€β”€ ultralytics
7
+ # └── datasets
8
+ # └── GlobalWheat2020 ← downloads here (7.0 GB)
9
+
10
+ # 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, ..]
11
+ path: ../datasets/GlobalWheat2020 # dataset root dir
12
+ train: # train images (relative to 'path') 3422 images
13
+ - images/arvalis_1
14
+ - images/arvalis_2
15
+ - images/arvalis_3
16
+ - images/ethz_1
17
+ - images/rres_1
18
+ - images/inrae_1
19
+ - images/usask_1
20
+ val: # val images (relative to 'path') 748 images (WARNING: train set contains ethz_1)
21
+ - images/ethz_1
22
+ test: # test images (optional) 1276 images
23
+ - images/utokyo_1
24
+ - images/utokyo_2
25
+ - images/nau_1
26
+ - images/uq_1
27
+
28
+ # Classes
29
+ names:
30
+ 0: wheat_head
31
+
32
+ # Download script/URL (optional) ---------------------------------------------------------------------------------------
33
+ download: |
34
+ from ultralytics.utils.downloads import download
35
+ from pathlib import Path
36
+
37
+ # Download
38
+ dir = Path(yaml['path']) # dataset root dir
39
+ urls = ['https://zenodo.org/record/4298502/files/global-wheat-codalab-official.zip',
40
+ 'https://github.com/ultralytics/yolov5/releases/download/v1.0/GlobalWheat2020_labels.zip']
41
+ download(urls, dir=dir)
42
+
43
+ # Make Directories
44
+ for p in 'annotations', 'images', 'labels':
45
+ (dir / p).mkdir(parents=True, exist_ok=True)
46
+
47
+ # Move
48
+ for p in 'arvalis_1', 'arvalis_2', 'arvalis_3', 'ethz_1', 'rres_1', 'inrae_1', 'usask_1', \
49
+ 'utokyo_1', 'utokyo_2', 'nau_1', 'uq_1':
50
+ (dir / 'global-wheat-codalab-official' / p).rename(dir / 'images' / p) # move to /images
51
+ f = (dir / 'global-wheat-codalab-official' / p).with_suffix('.json') # json file
52
+ if f.exists():
53
+ f.rename((dir / 'annotations' / p).with_suffix('.json')) # move to /annotations
ultralytics/cfg/datasets/ImageNet.yaml ADDED
@@ -0,0 +1,2024 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ultralytics YOLO πŸš€, AGPL-3.0 license
2
+ # ImageNet-1k dataset https://www.image-net.org/index.php by Stanford University
3
+ # Simplified class names from https://github.com/anishathalye/imagenet-simple-labels
4
+ # Documentation: https://docs.ultralytics.com/datasets/classify/imagenet/
5
+ # Example usage: yolo train task=classify data=imagenet
6
+ # parent
7
+ # β”œβ”€β”€ ultralytics
8
+ # └── datasets
9
+ # └── imagenet ← downloads here (144 GB)
10
+
11
+ # 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, ..]
12
+ path: ../datasets/imagenet # dataset root dir
13
+ train: train # train images (relative to 'path') 1281167 images
14
+ val: val # val images (relative to 'path') 50000 images
15
+ test: # test images (optional)
16
+
17
+ # Classes
18
+ names:
19
+ 0: tench
20
+ 1: goldfish
21
+ 2: great white shark
22
+ 3: tiger shark
23
+ 4: hammerhead shark
24
+ 5: electric ray
25
+ 6: stingray
26
+ 7: cock
27
+ 8: hen
28
+ 9: ostrich
29
+ 10: brambling
30
+ 11: goldfinch
31
+ 12: house finch
32
+ 13: junco
33
+ 14: indigo bunting
34
+ 15: American robin
35
+ 16: bulbul
36
+ 17: jay
37
+ 18: magpie
38
+ 19: chickadee
39
+ 20: American dipper
40
+ 21: kite
41
+ 22: bald eagle
42
+ 23: vulture
43
+ 24: great grey owl
44
+ 25: fire salamander
45
+ 26: smooth newt
46
+ 27: newt
47
+ 28: spotted salamander
48
+ 29: axolotl
49
+ 30: American bullfrog
50
+ 31: tree frog
51
+ 32: tailed frog
52
+ 33: loggerhead sea turtle
53
+ 34: leatherback sea turtle
54
+ 35: mud turtle
55
+ 36: terrapin
56
+ 37: box turtle
57
+ 38: banded gecko
58
+ 39: green iguana
59
+ 40: Carolina anole
60
+ 41: desert grassland whiptail lizard
61
+ 42: agama
62
+ 43: frilled-necked lizard
63
+ 44: alligator lizard
64
+ 45: Gila monster
65
+ 46: European green lizard
66
+ 47: chameleon
67
+ 48: Komodo dragon
68
+ 49: Nile crocodile
69
+ 50: American alligator
70
+ 51: triceratops
71
+ 52: worm snake
72
+ 53: ring-necked snake
73
+ 54: eastern hog-nosed snake
74
+ 55: smooth green snake
75
+ 56: kingsnake
76
+ 57: garter snake
77
+ 58: water snake
78
+ 59: vine snake
79
+ 60: night snake
80
+ 61: boa constrictor
81
+ 62: African rock python
82
+ 63: Indian cobra
83
+ 64: green mamba
84
+ 65: sea snake
85
+ 66: Saharan horned viper
86
+ 67: eastern diamondback rattlesnake
87
+ 68: sidewinder
88
+ 69: trilobite
89
+ 70: harvestman
90
+ 71: scorpion
91
+ 72: yellow garden spider
92
+ 73: barn spider
93
+ 74: European garden spider
94
+ 75: southern black widow
95
+ 76: tarantula
96
+ 77: wolf spider
97
+ 78: tick
98
+ 79: centipede
99
+ 80: black grouse
100
+ 81: ptarmigan
101
+ 82: ruffed grouse
102
+ 83: prairie grouse
103
+ 84: peacock
104
+ 85: quail
105
+ 86: partridge
106
+ 87: grey parrot
107
+ 88: macaw
108
+ 89: sulphur-crested cockatoo
109
+ 90: lorikeet
110
+ 91: coucal
111
+ 92: bee eater
112
+ 93: hornbill
113
+ 94: hummingbird
114
+ 95: jacamar
115
+ 96: toucan
116
+ 97: duck
117
+ 98: red-breasted merganser
118
+ 99: goose
119
+ 100: black swan
120
+ 101: tusker
121
+ 102: echidna
122
+ 103: platypus
123
+ 104: wallaby
124
+ 105: koala
125
+ 106: wombat
126
+ 107: jellyfish
127
+ 108: sea anemone
128
+ 109: brain coral
129
+ 110: flatworm
130
+ 111: nematode
131
+ 112: conch
132
+ 113: snail
133
+ 114: slug
134
+ 115: sea slug
135
+ 116: chiton
136
+ 117: chambered nautilus
137
+ 118: Dungeness crab
138
+ 119: rock crab
139
+ 120: fiddler crab
140
+ 121: red king crab
141
+ 122: American lobster
142
+ 123: spiny lobster
143
+ 124: crayfish
144
+ 125: hermit crab
145
+ 126: isopod
146
+ 127: white stork
147
+ 128: black stork
148
+ 129: spoonbill
149
+ 130: flamingo
150
+ 131: little blue heron
151
+ 132: great egret
152
+ 133: bittern
153
+ 134: crane (bird)
154
+ 135: limpkin
155
+ 136: common gallinule
156
+ 137: American coot
157
+ 138: bustard
158
+ 139: ruddy turnstone
159
+ 140: dunlin
160
+ 141: common redshank
161
+ 142: dowitcher
162
+ 143: oystercatcher
163
+ 144: pelican
164
+ 145: king penguin
165
+ 146: albatross
166
+ 147: grey whale
167
+ 148: killer whale
168
+ 149: dugong
169
+ 150: sea lion
170
+ 151: Chihuahua
171
+ 152: Japanese Chin
172
+ 153: Maltese
173
+ 154: Pekingese
174
+ 155: Shih Tzu
175
+ 156: King Charles Spaniel
176
+ 157: Papillon
177
+ 158: toy terrier
178
+ 159: Rhodesian Ridgeback
179
+ 160: Afghan Hound
180
+ 161: Basset Hound
181
+ 162: Beagle
182
+ 163: Bloodhound
183
+ 164: Bluetick Coonhound
184
+ 165: Black and Tan Coonhound
185
+ 166: Treeing Walker Coonhound
186
+ 167: English foxhound
187
+ 168: Redbone Coonhound
188
+ 169: borzoi
189
+ 170: Irish Wolfhound
190
+ 171: Italian Greyhound
191
+ 172: Whippet
192
+ 173: Ibizan Hound
193
+ 174: Norwegian Elkhound
194
+ 175: Otterhound
195
+ 176: Saluki
196
+ 177: Scottish Deerhound
197
+ 178: Weimaraner
198
+ 179: Staffordshire Bull Terrier
199
+ 180: American Staffordshire Terrier
200
+ 181: Bedlington Terrier
201
+ 182: Border Terrier
202
+ 183: Kerry Blue Terrier
203
+ 184: Irish Terrier
204
+ 185: Norfolk Terrier
205
+ 186: Norwich Terrier
206
+ 187: Yorkshire Terrier
207
+ 188: Wire Fox Terrier
208
+ 189: Lakeland Terrier
209
+ 190: Sealyham Terrier
210
+ 191: Airedale Terrier
211
+ 192: Cairn Terrier
212
+ 193: Australian Terrier
213
+ 194: Dandie Dinmont Terrier
214
+ 195: Boston Terrier
215
+ 196: Miniature Schnauzer
216
+ 197: Giant Schnauzer
217
+ 198: Standard Schnauzer
218
+ 199: Scottish Terrier
219
+ 200: Tibetan Terrier
220
+ 201: Australian Silky Terrier
221
+ 202: Soft-coated Wheaten Terrier
222
+ 203: West Highland White Terrier
223
+ 204: Lhasa Apso
224
+ 205: Flat-Coated Retriever
225
+ 206: Curly-coated Retriever
226
+ 207: Golden Retriever
227
+ 208: Labrador Retriever
228
+ 209: Chesapeake Bay Retriever
229
+ 210: German Shorthaired Pointer
230
+ 211: Vizsla
231
+ 212: English Setter
232
+ 213: Irish Setter
233
+ 214: Gordon Setter
234
+ 215: Brittany
235
+ 216: Clumber Spaniel
236
+ 217: English Springer Spaniel
237
+ 218: Welsh Springer Spaniel
238
+ 219: Cocker Spaniels
239
+ 220: Sussex Spaniel
240
+ 221: Irish Water Spaniel
241
+ 222: Kuvasz
242
+ 223: Schipperke
243
+ 224: Groenendael
244
+ 225: Malinois
245
+ 226: Briard
246
+ 227: Australian Kelpie
247
+ 228: Komondor
248
+ 229: Old English Sheepdog
249
+ 230: Shetland Sheepdog
250
+ 231: collie
251
+ 232: Border Collie
252
+ 233: Bouvier des Flandres
253
+ 234: Rottweiler
254
+ 235: German Shepherd Dog
255
+ 236: Dobermann
256
+ 237: Miniature Pinscher
257
+ 238: Greater Swiss Mountain Dog
258
+ 239: Bernese Mountain Dog
259
+ 240: Appenzeller Sennenhund
260
+ 241: Entlebucher Sennenhund
261
+ 242: Boxer
262
+ 243: Bullmastiff
263
+ 244: Tibetan Mastiff
264
+ 245: French Bulldog
265
+ 246: Great Dane
266
+ 247: St. Bernard
267
+ 248: husky
268
+ 249: Alaskan Malamute
269
+ 250: Siberian Husky
270
+ 251: Dalmatian
271
+ 252: Affenpinscher
272
+ 253: Basenji
273
+ 254: pug
274
+ 255: Leonberger
275
+ 256: Newfoundland
276
+ 257: Pyrenean Mountain Dog
277
+ 258: Samoyed
278
+ 259: Pomeranian
279
+ 260: Chow Chow
280
+ 261: Keeshond
281
+ 262: Griffon Bruxellois
282
+ 263: Pembroke Welsh Corgi
283
+ 264: Cardigan Welsh Corgi
284
+ 265: Toy Poodle
285
+ 266: Miniature Poodle
286
+ 267: Standard Poodle
287
+ 268: Mexican hairless dog
288
+ 269: grey wolf
289
+ 270: Alaskan tundra wolf
290
+ 271: red wolf
291
+ 272: coyote
292
+ 273: dingo
293
+ 274: dhole
294
+ 275: African wild dog
295
+ 276: hyena
296
+ 277: red fox
297
+ 278: kit fox
298
+ 279: Arctic fox
299
+ 280: grey fox
300
+ 281: tabby cat
301
+ 282: tiger cat
302
+ 283: Persian cat
303
+ 284: Siamese cat
304
+ 285: Egyptian Mau
305
+ 286: cougar
306
+ 287: lynx
307
+ 288: leopard
308
+ 289: snow leopard
309
+ 290: jaguar
310
+ 291: lion
311
+ 292: tiger
312
+ 293: cheetah
313
+ 294: brown bear
314
+ 295: American black bear
315
+ 296: polar bear
316
+ 297: sloth bear
317
+ 298: mongoose
318
+ 299: meerkat
319
+ 300: tiger beetle
320
+ 301: ladybug
321
+ 302: ground beetle
322
+ 303: longhorn beetle
323
+ 304: leaf beetle
324
+ 305: dung beetle
325
+ 306: rhinoceros beetle
326
+ 307: weevil
327
+ 308: fly
328
+ 309: bee
329
+ 310: ant
330
+ 311: grasshopper
331
+ 312: cricket
332
+ 313: stick insect
333
+ 314: cockroach
334
+ 315: mantis
335
+ 316: cicada
336
+ 317: leafhopper
337
+ 318: lacewing
338
+ 319: dragonfly
339
+ 320: damselfly
340
+ 321: red admiral
341
+ 322: ringlet
342
+ 323: monarch butterfly
343
+ 324: small white
344
+ 325: sulphur butterfly
345
+ 326: gossamer-winged butterfly
346
+ 327: starfish
347
+ 328: sea urchin
348
+ 329: sea cucumber
349
+ 330: cottontail rabbit
350
+ 331: hare
351
+ 332: Angora rabbit
352
+ 333: hamster
353
+ 334: porcupine
354
+ 335: fox squirrel
355
+ 336: marmot
356
+ 337: beaver
357
+ 338: guinea pig
358
+ 339: common sorrel
359
+ 340: zebra
360
+ 341: pig
361
+ 342: wild boar
362
+ 343: warthog
363
+ 344: hippopotamus
364
+ 345: ox
365
+ 346: water buffalo
366
+ 347: bison
367
+ 348: ram
368
+ 349: bighorn sheep
369
+ 350: Alpine ibex
370
+ 351: hartebeest
371
+ 352: impala
372
+ 353: gazelle
373
+ 354: dromedary
374
+ 355: llama
375
+ 356: weasel
376
+ 357: mink
377
+ 358: European polecat
378
+ 359: black-footed ferret
379
+ 360: otter
380
+ 361: skunk
381
+ 362: badger
382
+ 363: armadillo
383
+ 364: three-toed sloth
384
+ 365: orangutan
385
+ 366: gorilla
386
+ 367: chimpanzee
387
+ 368: gibbon
388
+ 369: siamang
389
+ 370: guenon
390
+ 371: patas monkey
391
+ 372: baboon
392
+ 373: macaque
393
+ 374: langur
394
+ 375: black-and-white colobus
395
+ 376: proboscis monkey
396
+ 377: marmoset
397
+ 378: white-headed capuchin
398
+ 379: howler monkey
399
+ 380: titi
400
+ 381: Geoffroy's spider monkey
401
+ 382: common squirrel monkey
402
+ 383: ring-tailed lemur
403
+ 384: indri
404
+ 385: Asian elephant
405
+ 386: African bush elephant
406
+ 387: red panda
407
+ 388: giant panda
408
+ 389: snoek
409
+ 390: eel
410
+ 391: coho salmon
411
+ 392: rock beauty
412
+ 393: clownfish
413
+ 394: sturgeon
414
+ 395: garfish
415
+ 396: lionfish
416
+ 397: pufferfish
417
+ 398: abacus
418
+ 399: abaya
419
+ 400: academic gown
420
+ 401: accordion
421
+ 402: acoustic guitar
422
+ 403: aircraft carrier
423
+ 404: airliner
424
+ 405: airship
425
+ 406: altar
426
+ 407: ambulance
427
+ 408: amphibious vehicle
428
+ 409: analog clock
429
+ 410: apiary
430
+ 411: apron
431
+ 412: waste container
432
+ 413: assault rifle
433
+ 414: backpack
434
+ 415: bakery
435
+ 416: balance beam
436
+ 417: balloon
437
+ 418: ballpoint pen
438
+ 419: Band-Aid
439
+ 420: banjo
440
+ 421: baluster
441
+ 422: barbell
442
+ 423: barber chair
443
+ 424: barbershop
444
+ 425: barn
445
+ 426: barometer
446
+ 427: barrel
447
+ 428: wheelbarrow
448
+ 429: baseball
449
+ 430: basketball
450
+ 431: bassinet
451
+ 432: bassoon
452
+ 433: swimming cap
453
+ 434: bath towel
454
+ 435: bathtub
455
+ 436: station wagon
456
+ 437: lighthouse
457
+ 438: beaker
458
+ 439: military cap
459
+ 440: beer bottle
460
+ 441: beer glass
461
+ 442: bell-cot
462
+ 443: bib
463
+ 444: tandem bicycle
464
+ 445: bikini
465
+ 446: ring binder
466
+ 447: binoculars
467
+ 448: birdhouse
468
+ 449: boathouse
469
+ 450: bobsleigh
470
+ 451: bolo tie
471
+ 452: poke bonnet
472
+ 453: bookcase
473
+ 454: bookstore
474
+ 455: bottle cap
475
+ 456: bow
476
+ 457: bow tie
477
+ 458: brass
478
+ 459: bra
479
+ 460: breakwater
480
+ 461: breastplate
481
+ 462: broom
482
+ 463: bucket
483
+ 464: buckle
484
+ 465: bulletproof vest
485
+ 466: high-speed train
486
+ 467: butcher shop
487
+ 468: taxicab
488
+ 469: cauldron
489
+ 470: candle
490
+ 471: cannon
491
+ 472: canoe
492
+ 473: can opener
493
+ 474: cardigan
494
+ 475: car mirror
495
+ 476: carousel
496
+ 477: tool kit
497
+ 478: carton
498
+ 479: car wheel
499
+ 480: automated teller machine
500
+ 481: cassette
501
+ 482: cassette player
502
+ 483: castle
503
+ 484: catamaran
504
+ 485: CD player
505
+ 486: cello
506
+ 487: mobile phone
507
+ 488: chain
508
+ 489: chain-link fence
509
+ 490: chain mail
510
+ 491: chainsaw
511
+ 492: chest
512
+ 493: chiffonier
513
+ 494: chime
514
+ 495: china cabinet
515
+ 496: Christmas stocking
516
+ 497: church
517
+ 498: movie theater
518
+ 499: cleaver
519
+ 500: cliff dwelling
520
+ 501: cloak
521
+ 502: clogs
522
+ 503: cocktail shaker
523
+ 504: coffee mug
524
+ 505: coffeemaker
525
+ 506: coil
526
+ 507: combination lock
527
+ 508: computer keyboard
528
+ 509: confectionery store
529
+ 510: container ship
530
+ 511: convertible
531
+ 512: corkscrew
532
+ 513: cornet
533
+ 514: cowboy boot
534
+ 515: cowboy hat
535
+ 516: cradle
536
+ 517: crane (machine)
537
+ 518: crash helmet
538
+ 519: crate
539
+ 520: infant bed
540
+ 521: Crock Pot
541
+ 522: croquet ball
542
+ 523: crutch
543
+ 524: cuirass
544
+ 525: dam
545
+ 526: desk
546
+ 527: desktop computer
547
+ 528: rotary dial telephone
548
+ 529: diaper
549
+ 530: digital clock
550
+ 531: digital watch
551
+ 532: dining table
552
+ 533: dishcloth
553
+ 534: dishwasher
554
+ 535: disc brake
555
+ 536: dock
556
+ 537: dog sled
557
+ 538: dome
558
+ 539: doormat
559
+ 540: drilling rig
560
+ 541: drum
561
+ 542: drumstick
562
+ 543: dumbbell
563
+ 544: Dutch oven
564
+ 545: electric fan
565
+ 546: electric guitar
566
+ 547: electric locomotive
567
+ 548: entertainment center
568
+ 549: envelope
569
+ 550: espresso machine
570
+ 551: face powder
571
+ 552: feather boa
572
+ 553: filing cabinet
573
+ 554: fireboat
574
+ 555: fire engine
575
+ 556: fire screen sheet
576
+ 557: flagpole
577
+ 558: flute
578
+ 559: folding chair
579
+ 560: football helmet
580
+ 561: forklift
581
+ 562: fountain
582
+ 563: fountain pen
583
+ 564: four-poster bed
584
+ 565: freight car
585
+ 566: French horn
586
+ 567: frying pan
587
+ 568: fur coat
588
+ 569: garbage truck
589
+ 570: gas mask
590
+ 571: gas pump
591
+ 572: goblet
592
+ 573: go-kart
593
+ 574: golf ball
594
+ 575: golf cart
595
+ 576: gondola
596
+ 577: gong
597
+ 578: gown
598
+ 579: grand piano
599
+ 580: greenhouse
600
+ 581: grille
601
+ 582: grocery store
602
+ 583: guillotine
603
+ 584: barrette
604
+ 585: hair spray
605
+ 586: half-track
606
+ 587: hammer
607
+ 588: hamper
608
+ 589: hair dryer
609
+ 590: hand-held computer
610
+ 591: handkerchief
611
+ 592: hard disk drive
612
+ 593: harmonica
613
+ 594: harp
614
+ 595: harvester
615
+ 596: hatchet
616
+ 597: holster
617
+ 598: home theater
618
+ 599: honeycomb
619
+ 600: hook
620
+ 601: hoop skirt
621
+ 602: horizontal bar
622
+ 603: horse-drawn vehicle
623
+ 604: hourglass
624
+ 605: iPod
625
+ 606: clothes iron
626
+ 607: jack-o'-lantern
627
+ 608: jeans
628
+ 609: jeep
629
+ 610: T-shirt
630
+ 611: jigsaw puzzle
631
+ 612: pulled rickshaw
632
+ 613: joystick
633
+ 614: kimono
634
+ 615: knee pad
635
+ 616: knot
636
+ 617: lab coat
637
+ 618: ladle
638
+ 619: lampshade
639
+ 620: laptop computer
640
+ 621: lawn mower
641
+ 622: lens cap
642
+ 623: paper knife
643
+ 624: library
644
+ 625: lifeboat
645
+ 626: lighter
646
+ 627: limousine
647
+ 628: ocean liner
648
+ 629: lipstick
649
+ 630: slip-on shoe
650
+ 631: lotion
651
+ 632: speaker
652
+ 633: loupe
653
+ 634: sawmill
654
+ 635: magnetic compass
655
+ 636: mail bag
656
+ 637: mailbox
657
+ 638: tights
658
+ 639: tank suit
659
+ 640: manhole cover
660
+ 641: maraca
661
+ 642: marimba
662
+ 643: mask
663
+ 644: match
664
+ 645: maypole
665
+ 646: maze
666
+ 647: measuring cup
667
+ 648: medicine chest
668
+ 649: megalith
669
+ 650: microphone
670
+ 651: microwave oven
671
+ 652: military uniform
672
+ 653: milk can
673
+ 654: minibus
674
+ 655: miniskirt
675
+ 656: minivan
676
+ 657: missile
677
+ 658: mitten
678
+ 659: mixing bowl
679
+ 660: mobile home
680
+ 661: Model T
681
+ 662: modem
682
+ 663: monastery
683
+ 664: monitor
684
+ 665: moped
685
+ 666: mortar
686
+ 667: square academic cap
687
+ 668: mosque
688
+ 669: mosquito net
689
+ 670: scooter
690
+ 671: mountain bike
691
+ 672: tent
692
+ 673: computer mouse
693
+ 674: mousetrap
694
+ 675: moving van
695
+ 676: muzzle
696
+ 677: nail
697
+ 678: neck brace
698
+ 679: necklace
699
+ 680: nipple
700
+ 681: notebook computer
701
+ 682: obelisk
702
+ 683: oboe
703
+ 684: ocarina
704
+ 685: odometer
705
+ 686: oil filter
706
+ 687: organ
707
+ 688: oscilloscope
708
+ 689: overskirt
709
+ 690: bullock cart
710
+ 691: oxygen mask
711
+ 692: packet
712
+ 693: paddle
713
+ 694: paddle wheel
714
+ 695: padlock
715
+ 696: paintbrush
716
+ 697: pajamas
717
+ 698: palace
718
+ 699: pan flute
719
+ 700: paper towel
720
+ 701: parachute
721
+ 702: parallel bars
722
+ 703: park bench
723
+ 704: parking meter
724
+ 705: passenger car
725
+ 706: patio
726
+ 707: payphone
727
+ 708: pedestal
728
+ 709: pencil case
729
+ 710: pencil sharpener
730
+ 711: perfume
731
+ 712: Petri dish
732
+ 713: photocopier
733
+ 714: plectrum
734
+ 715: Pickelhaube
735
+ 716: picket fence
736
+ 717: pickup truck
737
+ 718: pier
738
+ 719: piggy bank
739
+ 720: pill bottle
740
+ 721: pillow
741
+ 722: ping-pong ball
742
+ 723: pinwheel
743
+ 724: pirate ship
744
+ 725: pitcher
745
+ 726: hand plane
746
+ 727: planetarium
747
+ 728: plastic bag
748
+ 729: plate rack
749
+ 730: plow
750
+ 731: plunger
751
+ 732: Polaroid camera
752
+ 733: pole
753
+ 734: police van
754
+ 735: poncho
755
+ 736: billiard table
756
+ 737: soda bottle
757
+ 738: pot
758
+ 739: potter's wheel
759
+ 740: power drill
760
+ 741: prayer rug
761
+ 742: printer
762
+ 743: prison
763
+ 744: projectile
764
+ 745: projector
765
+ 746: hockey puck
766
+ 747: punching bag
767
+ 748: purse
768
+ 749: quill
769
+ 750: quilt
770
+ 751: race car
771
+ 752: racket
772
+ 753: radiator
773
+ 754: radio
774
+ 755: radio telescope
775
+ 756: rain barrel
776
+ 757: recreational vehicle
777
+ 758: reel
778
+ 759: reflex camera
779
+ 760: refrigerator
780
+ 761: remote control
781
+ 762: restaurant
782
+ 763: revolver
783
+ 764: rifle
784
+ 765: rocking chair
785
+ 766: rotisserie
786
+ 767: eraser
787
+ 768: rugby ball
788
+ 769: ruler
789
+ 770: running shoe
790
+ 771: safe
791
+ 772: safety pin
792
+ 773: salt shaker
793
+ 774: sandal
794
+ 775: sarong
795
+ 776: saxophone
796
+ 777: scabbard
797
+ 778: weighing scale
798
+ 779: school bus
799
+ 780: schooner
800
+ 781: scoreboard
801
+ 782: CRT screen
802
+ 783: screw
803
+ 784: screwdriver
804
+ 785: seat belt
805
+ 786: sewing machine
806
+ 787: shield
807
+ 788: shoe store
808
+ 789: shoji
809
+ 790: shopping basket
810
+ 791: shopping cart
811
+ 792: shovel
812
+ 793: shower cap
813
+ 794: shower curtain
814
+ 795: ski
815
+ 796: ski mask
816
+ 797: sleeping bag
817
+ 798: slide rule
818
+ 799: sliding door
819
+ 800: slot machine
820
+ 801: snorkel
821
+ 802: snowmobile
822
+ 803: snowplow
823
+ 804: soap dispenser
824
+ 805: soccer ball
825
+ 806: sock
826
+ 807: solar thermal collector
827
+ 808: sombrero
828
+ 809: soup bowl
829
+ 810: space bar
830
+ 811: space heater
831
+ 812: space shuttle
832
+ 813: spatula
833
+ 814: motorboat
834
+ 815: spider web
835
+ 816: spindle
836
+ 817: sports car
837
+ 818: spotlight
838
+ 819: stage
839
+ 820: steam locomotive
840
+ 821: through arch bridge
841
+ 822: steel drum
842
+ 823: stethoscope
843
+ 824: scarf
844
+ 825: stone wall
845
+ 826: stopwatch
846
+ 827: stove
847
+ 828: strainer
848
+ 829: tram
849
+ 830: stretcher
850
+ 831: couch
851
+ 832: stupa
852
+ 833: submarine
853
+ 834: suit
854
+ 835: sundial
855
+ 836: sunglass
856
+ 837: sunglasses
857
+ 838: sunscreen
858
+ 839: suspension bridge
859
+ 840: mop
860
+ 841: sweatshirt
861
+ 842: swimsuit
862
+ 843: swing
863
+ 844: switch
864
+ 845: syringe
865
+ 846: table lamp
866
+ 847: tank
867
+ 848: tape player
868
+ 849: teapot
869
+ 850: teddy bear
870
+ 851: television
871
+ 852: tennis ball
872
+ 853: thatched roof
873
+ 854: front curtain
874
+ 855: thimble
875
+ 856: threshing machine
876
+ 857: throne
877
+ 858: tile roof
878
+ 859: toaster
879
+ 860: tobacco shop
880
+ 861: toilet seat
881
+ 862: torch
882
+ 863: totem pole
883
+ 864: tow truck
884
+ 865: toy store
885
+ 866: tractor
886
+ 867: semi-trailer truck
887
+ 868: tray
888
+ 869: trench coat
889
+ 870: tricycle
890
+ 871: trimaran
891
+ 872: tripod
892
+ 873: triumphal arch
893
+ 874: trolleybus
894
+ 875: trombone
895
+ 876: tub
896
+ 877: turnstile
897
+ 878: typewriter keyboard
898
+ 879: umbrella
899
+ 880: unicycle
900
+ 881: upright piano
901
+ 882: vacuum cleaner
902
+ 883: vase
903
+ 884: vault
904
+ 885: velvet
905
+ 886: vending machine
906
+ 887: vestment
907
+ 888: viaduct
908
+ 889: violin
909
+ 890: volleyball
910
+ 891: waffle iron
911
+ 892: wall clock
912
+ 893: wallet
913
+ 894: wardrobe
914
+ 895: military aircraft
915
+ 896: sink
916
+ 897: washing machine
917
+ 898: water bottle
918
+ 899: water jug
919
+ 900: water tower
920
+ 901: whiskey jug
921
+ 902: whistle
922
+ 903: wig
923
+ 904: window screen
924
+ 905: window shade
925
+ 906: Windsor tie
926
+ 907: wine bottle
927
+ 908: wing
928
+ 909: wok
929
+ 910: wooden spoon
930
+ 911: wool
931
+ 912: split-rail fence
932
+ 913: shipwreck
933
+ 914: yawl
934
+ 915: yurt
935
+ 916: website
936
+ 917: comic book
937
+ 918: crossword
938
+ 919: traffic sign
939
+ 920: traffic light
940
+ 921: dust jacket
941
+ 922: menu
942
+ 923: plate
943
+ 924: guacamole
944
+ 925: consomme
945
+ 926: hot pot
946
+ 927: trifle
947
+ 928: ice cream
948
+ 929: ice pop
949
+ 930: baguette
950
+ 931: bagel
951
+ 932: pretzel
952
+ 933: cheeseburger
953
+ 934: hot dog
954
+ 935: mashed potato
955
+ 936: cabbage
956
+ 937: broccoli
957
+ 938: cauliflower
958
+ 939: zucchini
959
+ 940: spaghetti squash
960
+ 941: acorn squash
961
+ 942: butternut squash
962
+ 943: cucumber
963
+ 944: artichoke
964
+ 945: bell pepper
965
+ 946: cardoon
966
+ 947: mushroom
967
+ 948: Granny Smith
968
+ 949: strawberry
969
+ 950: orange
970
+ 951: lemon
971
+ 952: fig
972
+ 953: pineapple
973
+ 954: banana
974
+ 955: jackfruit
975
+ 956: custard apple
976
+ 957: pomegranate
977
+ 958: hay
978
+ 959: carbonara
979
+ 960: chocolate syrup
980
+ 961: dough
981
+ 962: meatloaf
982
+ 963: pizza
983
+ 964: pot pie
984
+ 965: burrito
985
+ 966: red wine
986
+ 967: espresso
987
+ 968: cup
988
+ 969: eggnog
989
+ 970: alp
990
+ 971: bubble
991
+ 972: cliff
992
+ 973: coral reef
993
+ 974: geyser
994
+ 975: lakeshore
995
+ 976: promontory
996
+ 977: shoal
997
+ 978: seashore
998
+ 979: valley
999
+ 980: volcano
1000
+ 981: baseball player
1001
+ 982: bridegroom
1002
+ 983: scuba diver
1003
+ 984: rapeseed
1004
+ 985: daisy
1005
+ 986: yellow lady's slipper
1006
+ 987: corn
1007
+ 988: acorn
1008
+ 989: rose hip
1009
+ 990: horse chestnut seed
1010
+ 991: coral fungus
1011
+ 992: agaric
1012
+ 993: gyromitra
1013
+ 994: stinkhorn mushroom
1014
+ 995: earth star
1015
+ 996: hen-of-the-woods
1016
+ 997: bolete
1017
+ 998: ear
1018
+ 999: toilet paper
1019
+
1020
+ # Imagenet class codes to human-readable names
1021
+ map:
1022
+ n01440764: tench
1023
+ n01443537: goldfish
1024
+ n01484850: great_white_shark
1025
+ n01491361: tiger_shark
1026
+ n01494475: hammerhead
1027
+ n01496331: electric_ray
1028
+ n01498041: stingray
1029
+ n01514668: cock
1030
+ n01514859: hen
1031
+ n01518878: ostrich
1032
+ n01530575: brambling
1033
+ n01531178: goldfinch
1034
+ n01532829: house_finch
1035
+ n01534433: junco
1036
+ n01537544: indigo_bunting
1037
+ n01558993: robin
1038
+ n01560419: bulbul
1039
+ n01580077: jay
1040
+ n01582220: magpie
1041
+ n01592084: chickadee
1042
+ n01601694: water_ouzel
1043
+ n01608432: kite
1044
+ n01614925: bald_eagle
1045
+ n01616318: vulture
1046
+ n01622779: great_grey_owl
1047
+ n01629819: European_fire_salamander
1048
+ n01630670: common_newt
1049
+ n01631663: eft
1050
+ n01632458: spotted_salamander
1051
+ n01632777: axolotl
1052
+ n01641577: bullfrog
1053
+ n01644373: tree_frog
1054
+ n01644900: tailed_frog
1055
+ n01664065: loggerhead
1056
+ n01665541: leatherback_turtle
1057
+ n01667114: mud_turtle
1058
+ n01667778: terrapin
1059
+ n01669191: box_turtle
1060
+ n01675722: banded_gecko
1061
+ n01677366: common_iguana
1062
+ n01682714: American_chameleon
1063
+ n01685808: whiptail
1064
+ n01687978: agama
1065
+ n01688243: frilled_lizard
1066
+ n01689811: alligator_lizard
1067
+ n01692333: Gila_monster
1068
+ n01693334: green_lizard
1069
+ n01694178: African_chameleon
1070
+ n01695060: Komodo_dragon
1071
+ n01697457: African_crocodile
1072
+ n01698640: American_alligator
1073
+ n01704323: triceratops
1074
+ n01728572: thunder_snake
1075
+ n01728920: ringneck_snake
1076
+ n01729322: hognose_snake
1077
+ n01729977: green_snake
1078
+ n01734418: king_snake
1079
+ n01735189: garter_snake
1080
+ n01737021: water_snake
1081
+ n01739381: vine_snake
1082
+ n01740131: night_snake
1083
+ n01742172: boa_constrictor
1084
+ n01744401: rock_python
1085
+ n01748264: Indian_cobra
1086
+ n01749939: green_mamba
1087
+ n01751748: sea_snake
1088
+ n01753488: horned_viper
1089
+ n01755581: diamondback
1090
+ n01756291: sidewinder
1091
+ n01768244: trilobite
1092
+ n01770081: harvestman
1093
+ n01770393: scorpion
1094
+ n01773157: black_and_gold_garden_spider
1095
+ n01773549: barn_spider
1096
+ n01773797: garden_spider
1097
+ n01774384: black_widow
1098
+ n01774750: tarantula
1099
+ n01775062: wolf_spider
1100
+ n01776313: tick
1101
+ n01784675: centipede
1102
+ n01795545: black_grouse
1103
+ n01796340: ptarmigan
1104
+ n01797886: ruffed_grouse
1105
+ n01798484: prairie_chicken
1106
+ n01806143: peacock
1107
+ n01806567: quail
1108
+ n01807496: partridge
1109
+ n01817953: African_grey
1110
+ n01818515: macaw
1111
+ n01819313: sulphur-crested_cockatoo
1112
+ n01820546: lorikeet
1113
+ n01824575: coucal
1114
+ n01828970: bee_eater
1115
+ n01829413: hornbill
1116
+ n01833805: hummingbird
1117
+ n01843065: jacamar
1118
+ n01843383: toucan
1119
+ n01847000: drake
1120
+ n01855032: red-breasted_merganser
1121
+ n01855672: goose
1122
+ n01860187: black_swan
1123
+ n01871265: tusker
1124
+ n01872401: echidna
1125
+ n01873310: platypus
1126
+ n01877812: wallaby
1127
+ n01882714: koala
1128
+ n01883070: wombat
1129
+ n01910747: jellyfish
1130
+ n01914609: sea_anemone
1131
+ n01917289: brain_coral
1132
+ n01924916: flatworm
1133
+ n01930112: nematode
1134
+ n01943899: conch
1135
+ n01944390: snail
1136
+ n01945685: slug
1137
+ n01950731: sea_slug
1138
+ n01955084: chiton
1139
+ n01968897: chambered_nautilus
1140
+ n01978287: Dungeness_crab
1141
+ n01978455: rock_crab
1142
+ n01980166: fiddler_crab
1143
+ n01981276: king_crab
1144
+ n01983481: American_lobster
1145
+ n01984695: spiny_lobster
1146
+ n01985128: crayfish
1147
+ n01986214: hermit_crab
1148
+ n01990800: isopod
1149
+ n02002556: white_stork
1150
+ n02002724: black_stork
1151
+ n02006656: spoonbill
1152
+ n02007558: flamingo
1153
+ n02009229: little_blue_heron
1154
+ n02009912: American_egret
1155
+ n02011460: bittern
1156
+ n02012849: crane_(bird)
1157
+ n02013706: limpkin
1158
+ n02017213: European_gallinule
1159
+ n02018207: American_coot
1160
+ n02018795: bustard
1161
+ n02025239: ruddy_turnstone
1162
+ n02027492: red-backed_sandpiper
1163
+ n02028035: redshank
1164
+ n02033041: dowitcher
1165
+ n02037110: oystercatcher
1166
+ n02051845: pelican
1167
+ n02056570: king_penguin
1168
+ n02058221: albatross
1169
+ n02066245: grey_whale
1170
+ n02071294: killer_whale
1171
+ n02074367: dugong
1172
+ n02077923: sea_lion
1173
+ n02085620: Chihuahua
1174
+ n02085782: Japanese_spaniel
1175
+ n02085936: Maltese_dog
1176
+ n02086079: Pekinese
1177
+ n02086240: Shih-Tzu
1178
+ n02086646: Blenheim_spaniel
1179
+ n02086910: papillon
1180
+ n02087046: toy_terrier
1181
+ n02087394: Rhodesian_ridgeback
1182
+ n02088094: Afghan_hound
1183
+ n02088238: basset
1184
+ n02088364: beagle
1185
+ n02088466: bloodhound
1186
+ n02088632: bluetick
1187
+ n02089078: black-and-tan_coonhound
1188
+ n02089867: Walker_hound
1189
+ n02089973: English_foxhound
1190
+ n02090379: redbone
1191
+ n02090622: borzoi
1192
+ n02090721: Irish_wolfhound
1193
+ n02091032: Italian_greyhound
1194
+ n02091134: whippet
1195
+ n02091244: Ibizan_hound
1196
+ n02091467: Norwegian_elkhound
1197
+ n02091635: otterhound
1198
+ n02091831: Saluki
1199
+ n02092002: Scottish_deerhound
1200
+ n02092339: Weimaraner
1201
+ n02093256: Staffordshire_bullterrier
1202
+ n02093428: American_Staffordshire_terrier
1203
+ n02093647: Bedlington_terrier
1204
+ n02093754: Border_terrier
1205
+ n02093859: Kerry_blue_terrier
1206
+ n02093991: Irish_terrier
1207
+ n02094114: Norfolk_terrier
1208
+ n02094258: Norwich_terrier
1209
+ n02094433: Yorkshire_terrier
1210
+ n02095314: wire-haired_fox_terrier
1211
+ n02095570: Lakeland_terrier
1212
+ n02095889: Sealyham_terrier
1213
+ n02096051: Airedale
1214
+ n02096177: cairn
1215
+ n02096294: Australian_terrier
1216
+ n02096437: Dandie_Dinmont
1217
+ n02096585: Boston_bull
1218
+ n02097047: miniature_schnauzer
1219
+ n02097130: giant_schnauzer
1220
+ n02097209: standard_schnauzer
1221
+ n02097298: Scotch_terrier
1222
+ n02097474: Tibetan_terrier
1223
+ n02097658: silky_terrier
1224
+ n02098105: soft-coated_wheaten_terrier
1225
+ n02098286: West_Highland_white_terrier
1226
+ n02098413: Lhasa
1227
+ n02099267: flat-coated_retriever
1228
+ n02099429: curly-coated_retriever
1229
+ n02099601: golden_retriever
1230
+ n02099712: Labrador_retriever
1231
+ n02099849: Chesapeake_Bay_retriever
1232
+ n02100236: German_short-haired_pointer
1233
+ n02100583: vizsla
1234
+ n02100735: English_setter
1235
+ n02100877: Irish_setter
1236
+ n02101006: Gordon_setter
1237
+ n02101388: Brittany_spaniel
1238
+ n02101556: clumber
1239
+ n02102040: English_springer
1240
+ n02102177: Welsh_springer_spaniel
1241
+ n02102318: cocker_spaniel
1242
+ n02102480: Sussex_spaniel
1243
+ n02102973: Irish_water_spaniel
1244
+ n02104029: kuvasz
1245
+ n02104365: schipperke
1246
+ n02105056: groenendael
1247
+ n02105162: malinois
1248
+ n02105251: briard
1249
+ n02105412: kelpie
1250
+ n02105505: komondor
1251
+ n02105641: Old_English_sheepdog
1252
+ n02105855: Shetland_sheepdog
1253
+ n02106030: collie
1254
+ n02106166: Border_collie
1255
+ n02106382: Bouvier_des_Flandres
1256
+ n02106550: Rottweiler
1257
+ n02106662: German_shepherd
1258
+ n02107142: Doberman
1259
+ n02107312: miniature_pinscher
1260
+ n02107574: Greater_Swiss_Mountain_dog
1261
+ n02107683: Bernese_mountain_dog
1262
+ n02107908: Appenzeller
1263
+ n02108000: EntleBucher
1264
+ n02108089: boxer
1265
+ n02108422: bull_mastiff
1266
+ n02108551: Tibetan_mastiff
1267
+ n02108915: French_bulldog
1268
+ n02109047: Great_Dane
1269
+ n02109525: Saint_Bernard
1270
+ n02109961: Eskimo_dog
1271
+ n02110063: malamute
1272
+ n02110185: Siberian_husky
1273
+ n02110341: dalmatian
1274
+ n02110627: affenpinscher
1275
+ n02110806: basenji
1276
+ n02110958: pug
1277
+ n02111129: Leonberg
1278
+ n02111277: Newfoundland
1279
+ n02111500: Great_Pyrenees
1280
+ n02111889: Samoyed
1281
+ n02112018: Pomeranian
1282
+ n02112137: chow
1283
+ n02112350: keeshond
1284
+ n02112706: Brabancon_griffon
1285
+ n02113023: Pembroke
1286
+ n02113186: Cardigan
1287
+ n02113624: toy_poodle
1288
+ n02113712: miniature_poodle
1289
+ n02113799: standard_poodle
1290
+ n02113978: Mexican_hairless
1291
+ n02114367: timber_wolf
1292
+ n02114548: white_wolf
1293
+ n02114712: red_wolf
1294
+ n02114855: coyote
1295
+ n02115641: dingo
1296
+ n02115913: dhole
1297
+ n02116738: African_hunting_dog
1298
+ n02117135: hyena
1299
+ n02119022: red_fox
1300
+ n02119789: kit_fox
1301
+ n02120079: Arctic_fox
1302
+ n02120505: grey_fox
1303
+ n02123045: tabby
1304
+ n02123159: tiger_cat
1305
+ n02123394: Persian_cat
1306
+ n02123597: Siamese_cat
1307
+ n02124075: Egyptian_cat
1308
+ n02125311: cougar
1309
+ n02127052: lynx
1310
+ n02128385: leopard
1311
+ n02128757: snow_leopard
1312
+ n02128925: jaguar
1313
+ n02129165: lion
1314
+ n02129604: tiger
1315
+ n02130308: cheetah
1316
+ n02132136: brown_bear
1317
+ n02133161: American_black_bear
1318
+ n02134084: ice_bear
1319
+ n02134418: sloth_bear
1320
+ n02137549: mongoose
1321
+ n02138441: meerkat
1322
+ n02165105: tiger_beetle
1323
+ n02165456: ladybug
1324
+ n02167151: ground_beetle
1325
+ n02168699: long-horned_beetle
1326
+ n02169497: leaf_beetle
1327
+ n02172182: dung_beetle
1328
+ n02174001: rhinoceros_beetle
1329
+ n02177972: weevil
1330
+ n02190166: fly
1331
+ n02206856: bee
1332
+ n02219486: ant
1333
+ n02226429: grasshopper
1334
+ n02229544: cricket
1335
+ n02231487: walking_stick
1336
+ n02233338: cockroach
1337
+ n02236044: mantis
1338
+ n02256656: cicada
1339
+ n02259212: leafhopper
1340
+ n02264363: lacewing
1341
+ n02268443: dragonfly
1342
+ n02268853: damselfly
1343
+ n02276258: admiral
1344
+ n02277742: ringlet
1345
+ n02279972: monarch
1346
+ n02280649: cabbage_butterfly
1347
+ n02281406: sulphur_butterfly
1348
+ n02281787: lycaenid
1349
+ n02317335: starfish
1350
+ n02319095: sea_urchin
1351
+ n02321529: sea_cucumber
1352
+ n02325366: wood_rabbit
1353
+ n02326432: hare
1354
+ n02328150: Angora
1355
+ n02342885: hamster
1356
+ n02346627: porcupine
1357
+ n02356798: fox_squirrel
1358
+ n02361337: marmot
1359
+ n02363005: beaver
1360
+ n02364673: guinea_pig
1361
+ n02389026: sorrel
1362
+ n02391049: zebra
1363
+ n02395406: hog
1364
+ n02396427: wild_boar
1365
+ n02397096: warthog
1366
+ n02398521: hippopotamus
1367
+ n02403003: ox
1368
+ n02408429: water_buffalo
1369
+ n02410509: bison
1370
+ n02412080: ram
1371
+ n02415577: bighorn
1372
+ n02417914: ibex
1373
+ n02422106: hartebeest
1374
+ n02422699: impala
1375
+ n02423022: gazelle
1376
+ n02437312: Arabian_camel
1377
+ n02437616: llama
1378
+ n02441942: weasel
1379
+ n02442845: mink
1380
+ n02443114: polecat
1381
+ n02443484: black-footed_ferret
1382
+ n02444819: otter
1383
+ n02445715: skunk
1384
+ n02447366: badger
1385
+ n02454379: armadillo
1386
+ n02457408: three-toed_sloth
1387
+ n02480495: orangutan
1388
+ n02480855: gorilla
1389
+ n02481823: chimpanzee
1390
+ n02483362: gibbon
1391
+ n02483708: siamang
1392
+ n02484975: guenon
1393
+ n02486261: patas
1394
+ n02486410: baboon
1395
+ n02487347: macaque
1396
+ n02488291: langur
1397
+ n02488702: colobus
1398
+ n02489166: proboscis_monkey
1399
+ n02490219: marmoset
1400
+ n02492035: capuchin
1401
+ n02492660: howler_monkey
1402
+ n02493509: titi
1403
+ n02493793: spider_monkey
1404
+ n02494079: squirrel_monkey
1405
+ n02497673: Madagascar_cat
1406
+ n02500267: indri
1407
+ n02504013: Indian_elephant
1408
+ n02504458: African_elephant
1409
+ n02509815: lesser_panda
1410
+ n02510455: giant_panda
1411
+ n02514041: barracouta
1412
+ n02526121: eel
1413
+ n02536864: coho
1414
+ n02606052: rock_beauty
1415
+ n02607072: anemone_fish
1416
+ n02640242: sturgeon
1417
+ n02641379: gar
1418
+ n02643566: lionfish
1419
+ n02655020: puffer
1420
+ n02666196: abacus
1421
+ n02667093: abaya
1422
+ n02669723: academic_gown
1423
+ n02672831: accordion
1424
+ n02676566: acoustic_guitar
1425
+ n02687172: aircraft_carrier
1426
+ n02690373: airliner
1427
+ n02692877: airship
1428
+ n02699494: altar
1429
+ n02701002: ambulance
1430
+ n02704792: amphibian
1431
+ n02708093: analog_clock
1432
+ n02727426: apiary
1433
+ n02730930: apron
1434
+ n02747177: ashcan
1435
+ n02749479: assault_rifle
1436
+ n02769748: backpack
1437
+ n02776631: bakery
1438
+ n02777292: balance_beam
1439
+ n02782093: balloon
1440
+ n02783161: ballpoint
1441
+ n02786058: Band_Aid
1442
+ n02787622: banjo
1443
+ n02788148: bannister
1444
+ n02790996: barbell
1445
+ n02791124: barber_chair
1446
+ n02791270: barbershop
1447
+ n02793495: barn
1448
+ n02794156: barometer
1449
+ n02795169: barrel
1450
+ n02797295: barrow
1451
+ n02799071: baseball
1452
+ n02802426: basketball
1453
+ n02804414: bassinet
1454
+ n02804610: bassoon
1455
+ n02807133: bathing_cap
1456
+ n02808304: bath_towel
1457
+ n02808440: bathtub
1458
+ n02814533: beach_wagon
1459
+ n02814860: beacon
1460
+ n02815834: beaker
1461
+ n02817516: bearskin
1462
+ n02823428: beer_bottle
1463
+ n02823750: beer_glass
1464
+ n02825657: bell_cote
1465
+ n02834397: bib
1466
+ n02835271: bicycle-built-for-two
1467
+ n02837789: bikini
1468
+ n02840245: binder
1469
+ n02841315: binoculars
1470
+ n02843684: birdhouse
1471
+ n02859443: boathouse
1472
+ n02860847: bobsled
1473
+ n02865351: bolo_tie
1474
+ n02869837: bonnet
1475
+ n02870880: bookcase
1476
+ n02871525: bookshop
1477
+ n02877765: bottlecap
1478
+ n02879718: bow
1479
+ n02883205: bow_tie
1480
+ n02892201: brass
1481
+ n02892767: brassiere
1482
+ n02894605: breakwater
1483
+ n02895154: breastplate
1484
+ n02906734: broom
1485
+ n02909870: bucket
1486
+ n02910353: buckle
1487
+ n02916936: bulletproof_vest
1488
+ n02917067: bullet_train
1489
+ n02927161: butcher_shop
1490
+ n02930766: cab
1491
+ n02939185: caldron
1492
+ n02948072: candle
1493
+ n02950826: cannon
1494
+ n02951358: canoe
1495
+ n02951585: can_opener
1496
+ n02963159: cardigan
1497
+ n02965783: car_mirror
1498
+ n02966193: carousel
1499
+ n02966687: carpenter's_kit
1500
+ n02971356: carton
1501
+ n02974003: car_wheel
1502
+ n02977058: cash_machine
1503
+ n02978881: cassette
1504
+ n02979186: cassette_player
1505
+ n02980441: castle
1506
+ n02981792: catamaran
1507
+ n02988304: CD_player
1508
+ n02992211: cello
1509
+ n02992529: cellular_telephone
1510
+ n02999410: chain
1511
+ n03000134: chainlink_fence
1512
+ n03000247: chain_mail
1513
+ n03000684: chain_saw
1514
+ n03014705: chest
1515
+ n03016953: chiffonier
1516
+ n03017168: chime
1517
+ n03018349: china_cabinet
1518
+ n03026506: Christmas_stocking
1519
+ n03028079: church
1520
+ n03032252: cinema
1521
+ n03041632: cleaver
1522
+ n03042490: cliff_dwelling
1523
+ n03045698: cloak
1524
+ n03047690: clog
1525
+ n03062245: cocktail_shaker
1526
+ n03063599: coffee_mug
1527
+ n03063689: coffeepot
1528
+ n03065424: coil
1529
+ n03075370: combination_lock
1530
+ n03085013: computer_keyboard
1531
+ n03089624: confectionery
1532
+ n03095699: container_ship
1533
+ n03100240: convertible
1534
+ n03109150: corkscrew
1535
+ n03110669: cornet
1536
+ n03124043: cowboy_boot
1537
+ n03124170: cowboy_hat
1538
+ n03125729: cradle
1539
+ n03126707: crane_(machine)
1540
+ n03127747: crash_helmet
1541
+ n03127925: crate
1542
+ n03131574: crib
1543
+ n03133878: Crock_Pot
1544
+ n03134739: croquet_ball
1545
+ n03141823: crutch
1546
+ n03146219: cuirass
1547
+ n03160309: dam
1548
+ n03179701: desk
1549
+ n03180011: desktop_computer
1550
+ n03187595: dial_telephone
1551
+ n03188531: diaper
1552
+ n03196217: digital_clock
1553
+ n03197337: digital_watch
1554
+ n03201208: dining_table
1555
+ n03207743: dishrag
1556
+ n03207941: dishwasher
1557
+ n03208938: disk_brake
1558
+ n03216828: dock
1559
+ n03218198: dogsled
1560
+ n03220513: dome
1561
+ n03223299: doormat
1562
+ n03240683: drilling_platform
1563
+ n03249569: drum
1564
+ n03250847: drumstick
1565
+ n03255030: dumbbell
1566
+ n03259280: Dutch_oven
1567
+ n03271574: electric_fan
1568
+ n03272010: electric_guitar
1569
+ n03272562: electric_locomotive
1570
+ n03290653: entertainment_center
1571
+ n03291819: envelope
1572
+ n03297495: espresso_maker
1573
+ n03314780: face_powder
1574
+ n03325584: feather_boa
1575
+ n03337140: file
1576
+ n03344393: fireboat
1577
+ n03345487: fire_engine
1578
+ n03347037: fire_screen
1579
+ n03355925: flagpole
1580
+ n03372029: flute
1581
+ n03376595: folding_chair
1582
+ n03379051: football_helmet
1583
+ n03384352: forklift
1584
+ n03388043: fountain
1585
+ n03388183: fountain_pen
1586
+ n03388549: four-poster
1587
+ n03393912: freight_car
1588
+ n03394916: French_horn
1589
+ n03400231: frying_pan
1590
+ n03404251: fur_coat
1591
+ n03417042: garbage_truck
1592
+ n03424325: gasmask
1593
+ n03425413: gas_pump
1594
+ n03443371: goblet
1595
+ n03444034: go-kart
1596
+ n03445777: golf_ball
1597
+ n03445924: golfcart
1598
+ n03447447: gondola
1599
+ n03447721: gong
1600
+ n03450230: gown
1601
+ n03452741: grand_piano
1602
+ n03457902: greenhouse
1603
+ n03459775: grille
1604
+ n03461385: grocery_store
1605
+ n03467068: guillotine
1606
+ n03476684: hair_slide
1607
+ n03476991: hair_spray
1608
+ n03478589: half_track
1609
+ n03481172: hammer
1610
+ n03482405: hamper
1611
+ n03483316: hand_blower
1612
+ n03485407: hand-held_computer
1613
+ n03485794: handkerchief
1614
+ n03492542: hard_disc
1615
+ n03494278: harmonica
1616
+ n03495258: harp
1617
+ n03496892: harvester
1618
+ n03498962: hatchet
1619
+ n03527444: holster
1620
+ n03529860: home_theater
1621
+ n03530642: honeycomb
1622
+ n03532672: hook
1623
+ n03534580: hoopskirt
1624
+ n03535780: horizontal_bar
1625
+ n03538406: horse_cart
1626
+ n03544143: hourglass
1627
+ n03584254: iPod
1628
+ n03584829: iron
1629
+ n03590841: jack-o'-lantern
1630
+ n03594734: jean
1631
+ n03594945: jeep
1632
+ n03595614: jersey
1633
+ n03598930: jigsaw_puzzle
1634
+ n03599486: jinrikisha
1635
+ n03602883: joystick
1636
+ n03617480: kimono
1637
+ n03623198: knee_pad
1638
+ n03627232: knot
1639
+ n03630383: lab_coat
1640
+ n03633091: ladle
1641
+ n03637318: lampshade
1642
+ n03642806: laptop
1643
+ n03649909: lawn_mower
1644
+ n03657121: lens_cap
1645
+ n03658185: letter_opener
1646
+ n03661043: library
1647
+ n03662601: lifeboat
1648
+ n03666591: lighter
1649
+ n03670208: limousine
1650
+ n03673027: liner
1651
+ n03676483: lipstick
1652
+ n03680355: Loafer
1653
+ n03690938: lotion
1654
+ n03691459: loudspeaker
1655
+ n03692522: loupe
1656
+ n03697007: lumbermill
1657
+ n03706229: magnetic_compass
1658
+ n03709823: mailbag
1659
+ n03710193: mailbox
1660
+ n03710637: maillot_(tights)
1661
+ n03710721: maillot_(tank_suit)
1662
+ n03717622: manhole_cover
1663
+ n03720891: maraca
1664
+ n03721384: marimba
1665
+ n03724870: mask
1666
+ n03729826: matchstick
1667
+ n03733131: maypole
1668
+ n03733281: maze
1669
+ n03733805: measuring_cup
1670
+ n03742115: medicine_chest
1671
+ n03743016: megalith
1672
+ n03759954: microphone
1673
+ n03761084: microwave
1674
+ n03763968: military_uniform
1675
+ n03764736: milk_can
1676
+ n03769881: minibus
1677
+ n03770439: miniskirt
1678
+ n03770679: minivan
1679
+ n03773504: missile
1680
+ n03775071: mitten
1681
+ n03775546: mixing_bowl
1682
+ n03776460: mobile_home
1683
+ n03777568: Model_T
1684
+ n03777754: modem
1685
+ n03781244: monastery
1686
+ n03782006: monitor
1687
+ n03785016: moped
1688
+ n03786901: mortar
1689
+ n03787032: mortarboard
1690
+ n03788195: mosque
1691
+ n03788365: mosquito_net
1692
+ n03791053: motor_scooter
1693
+ n03792782: mountain_bike
1694
+ n03792972: mountain_tent
1695
+ n03793489: mouse
1696
+ n03794056: mousetrap
1697
+ n03796401: moving_van
1698
+ n03803284: muzzle
1699
+ n03804744: nail
1700
+ n03814639: neck_brace
1701
+ n03814906: necklace
1702
+ n03825788: nipple
1703
+ n03832673: notebook
1704
+ n03837869: obelisk
1705
+ n03838899: oboe
1706
+ n03840681: ocarina
1707
+ n03841143: odometer
1708
+ n03843555: oil_filter
1709
+ n03854065: organ
1710
+ n03857828: oscilloscope
1711
+ n03866082: overskirt
1712
+ n03868242: oxcart
1713
+ n03868863: oxygen_mask
1714
+ n03871628: packet
1715
+ n03873416: paddle
1716
+ n03874293: paddlewheel
1717
+ n03874599: padlock
1718
+ n03876231: paintbrush
1719
+ n03877472: pajama
1720
+ n03877845: palace
1721
+ n03884397: panpipe
1722
+ n03887697: paper_towel
1723
+ n03888257: parachute
1724
+ n03888605: parallel_bars
1725
+ n03891251: park_bench
1726
+ n03891332: parking_meter
1727
+ n03895866: passenger_car
1728
+ n03899768: patio
1729
+ n03902125: pay-phone
1730
+ n03903868: pedestal
1731
+ n03908618: pencil_box
1732
+ n03908714: pencil_sharpener
1733
+ n03916031: perfume
1734
+ n03920288: Petri_dish
1735
+ n03924679: photocopier
1736
+ n03929660: pick
1737
+ n03929855: pickelhaube
1738
+ n03930313: picket_fence
1739
+ n03930630: pickup
1740
+ n03933933: pier
1741
+ n03935335: piggy_bank
1742
+ n03937543: pill_bottle
1743
+ n03938244: pillow
1744
+ n03942813: ping-pong_ball
1745
+ n03944341: pinwheel
1746
+ n03947888: pirate
1747
+ n03950228: pitcher
1748
+ n03954731: plane
1749
+ n03956157: planetarium
1750
+ n03958227: plastic_bag
1751
+ n03961711: plate_rack
1752
+ n03967562: plow
1753
+ n03970156: plunger
1754
+ n03976467: Polaroid_camera
1755
+ n03976657: pole
1756
+ n03977966: police_van
1757
+ n03980874: poncho
1758
+ n03982430: pool_table
1759
+ n03983396: pop_bottle
1760
+ n03991062: pot
1761
+ n03992509: potter's_wheel
1762
+ n03995372: power_drill
1763
+ n03998194: prayer_rug
1764
+ n04004767: printer
1765
+ n04005630: prison
1766
+ n04008634: projectile
1767
+ n04009552: projector
1768
+ n04019541: puck
1769
+ n04023962: punching_bag
1770
+ n04026417: purse
1771
+ n04033901: quill
1772
+ n04033995: quilt
1773
+ n04037443: racer
1774
+ n04039381: racket
1775
+ n04040759: radiator
1776
+ n04041544: radio
1777
+ n04044716: radio_telescope
1778
+ n04049303: rain_barrel
1779
+ n04065272: recreational_vehicle
1780
+ n04067472: reel
1781
+ n04069434: reflex_camera
1782
+ n04070727: refrigerator
1783
+ n04074963: remote_control
1784
+ n04081281: restaurant
1785
+ n04086273: revolver
1786
+ n04090263: rifle
1787
+ n04099969: rocking_chair
1788
+ n04111531: rotisserie
1789
+ n04116512: rubber_eraser
1790
+ n04118538: rugby_ball
1791
+ n04118776: rule
1792
+ n04120489: running_shoe
1793
+ n04125021: safe
1794
+ n04127249: safety_pin
1795
+ n04131690: saltshaker
1796
+ n04133789: sandal
1797
+ n04136333: sarong
1798
+ n04141076: sax
1799
+ n04141327: scabbard
1800
+ n04141975: scale
1801
+ n04146614: school_bus
1802
+ n04147183: schooner
1803
+ n04149813: scoreboard
1804
+ n04152593: screen
1805
+ n04153751: screw
1806
+ n04154565: screwdriver
1807
+ n04162706: seat_belt
1808
+ n04179913: sewing_machine
1809
+ n04192698: shield
1810
+ n04200800: shoe_shop
1811
+ n04201297: shoji
1812
+ n04204238: shopping_basket
1813
+ n04204347: shopping_cart
1814
+ n04208210: shovel
1815
+ n04209133: shower_cap
1816
+ n04209239: shower_curtain
1817
+ n04228054: ski
1818
+ n04229816: ski_mask
1819
+ n04235860: sleeping_bag
1820
+ n04238763: slide_rule
1821
+ n04239074: sliding_door
1822
+ n04243546: slot
1823
+ n04251144: snorkel
1824
+ n04252077: snowmobile
1825
+ n04252225: snowplow
1826
+ n04254120: soap_dispenser
1827
+ n04254680: soccer_ball
1828
+ n04254777: sock
1829
+ n04258138: solar_dish
1830
+ n04259630: sombrero
1831
+ n04263257: soup_bowl
1832
+ n04264628: space_bar
1833
+ n04265275: space_heater
1834
+ n04266014: space_shuttle
1835
+ n04270147: spatula
1836
+ n04273569: speedboat
1837
+ n04275548: spider_web
1838
+ n04277352: spindle
1839
+ n04285008: sports_car
1840
+ n04286575: spotlight
1841
+ n04296562: stage
1842
+ n04310018: steam_locomotive
1843
+ n04311004: steel_arch_bridge
1844
+ n04311174: steel_drum
1845
+ n04317175: stethoscope
1846
+ n04325704: stole
1847
+ n04326547: stone_wall
1848
+ n04328186: stopwatch
1849
+ n04330267: stove
1850
+ n04332243: strainer
1851
+ n04335435: streetcar
1852
+ n04336792: stretcher
1853
+ n04344873: studio_couch
1854
+ n04346328: stupa
1855
+ n04347754: submarine
1856
+ n04350905: suit
1857
+ n04355338: sundial
1858
+ n04355933: sunglass
1859
+ n04356056: sunglasses
1860
+ n04357314: sunscreen
1861
+ n04366367: suspension_bridge
1862
+ n04367480: swab
1863
+ n04370456: sweatshirt
1864
+ n04371430: swimming_trunks
1865
+ n04371774: swing
1866
+ n04372370: switch
1867
+ n04376876: syringe
1868
+ n04380533: table_lamp
1869
+ n04389033: tank
1870
+ n04392985: tape_player
1871
+ n04398044: teapot
1872
+ n04399382: teddy
1873
+ n04404412: television
1874
+ n04409515: tennis_ball
1875
+ n04417672: thatch
1876
+ n04418357: theater_curtain
1877
+ n04423845: thimble
1878
+ n04428191: thresher
1879
+ n04429376: throne
1880
+ n04435653: tile_roof
1881
+ n04442312: toaster
1882
+ n04443257: tobacco_shop
1883
+ n04447861: toilet_seat
1884
+ n04456115: torch
1885
+ n04458633: totem_pole
1886
+ n04461696: tow_truck
1887
+ n04462240: toyshop
1888
+ n04465501: tractor
1889
+ n04467665: trailer_truck
1890
+ n04476259: tray
1891
+ n04479046: trench_coat
1892
+ n04482393: tricycle
1893
+ n04483307: trimaran
1894
+ n04485082: tripod
1895
+ n04486054: triumphal_arch
1896
+ n04487081: trolleybus
1897
+ n04487394: trombone
1898
+ n04493381: tub
1899
+ n04501370: turnstile
1900
+ n04505470: typewriter_keyboard
1901
+ n04507155: umbrella
1902
+ n04509417: unicycle
1903
+ n04515003: upright
1904
+ n04517823: vacuum
1905
+ n04522168: vase
1906
+ n04523525: vault
1907
+ n04525038: velvet
1908
+ n04525305: vending_machine
1909
+ n04532106: vestment
1910
+ n04532670: viaduct
1911
+ n04536866: violin
1912
+ n04540053: volleyball
1913
+ n04542943: waffle_iron
1914
+ n04548280: wall_clock
1915
+ n04548362: wallet
1916
+ n04550184: wardrobe
1917
+ n04552348: warplane
1918
+ n04553703: washbasin
1919
+ n04554684: washer
1920
+ n04557648: water_bottle
1921
+ n04560804: water_jug
1922
+ n04562935: water_tower
1923
+ n04579145: whiskey_jug
1924
+ n04579432: whistle
1925
+ n04584207: wig
1926
+ n04589890: window_screen
1927
+ n04590129: window_shade
1928
+ n04591157: Windsor_tie
1929
+ n04591713: wine_bottle
1930
+ n04592741: wing
1931
+ n04596742: wok
1932
+ n04597913: wooden_spoon
1933
+ n04599235: wool
1934
+ n04604644: worm_fence
1935
+ n04606251: wreck
1936
+ n04612504: yawl
1937
+ n04613696: yurt
1938
+ n06359193: web_site
1939
+ n06596364: comic_book
1940
+ n06785654: crossword_puzzle
1941
+ n06794110: street_sign
1942
+ n06874185: traffic_light
1943
+ n07248320: book_jacket
1944
+ n07565083: menu
1945
+ n07579787: plate
1946
+ n07583066: guacamole
1947
+ n07584110: consomme
1948
+ n07590611: hot_pot
1949
+ n07613480: trifle
1950
+ n07614500: ice_cream
1951
+ n07615774: ice_lolly
1952
+ n07684084: French_loaf
1953
+ n07693725: bagel
1954
+ n07695742: pretzel
1955
+ n07697313: cheeseburger
1956
+ n07697537: hotdog
1957
+ n07711569: mashed_potato
1958
+ n07714571: head_cabbage
1959
+ n07714990: broccoli
1960
+ n07715103: cauliflower
1961
+ n07716358: zucchini
1962
+ n07716906: spaghetti_squash
1963
+ n07717410: acorn_squash
1964
+ n07717556: butternut_squash
1965
+ n07718472: cucumber
1966
+ n07718747: artichoke
1967
+ n07720875: bell_pepper
1968
+ n07730033: cardoon
1969
+ n07734744: mushroom
1970
+ n07742313: Granny_Smith
1971
+ n07745940: strawberry
1972
+ n07747607: orange
1973
+ n07749582: lemon
1974
+ n07753113: fig
1975
+ n07753275: pineapple
1976
+ n07753592: banana
1977
+ n07754684: jackfruit
1978
+ n07760859: custard_apple
1979
+ n07768694: pomegranate
1980
+ n07802026: hay
1981
+ n07831146: carbonara
1982
+ n07836838: chocolate_sauce
1983
+ n07860988: dough
1984
+ n07871810: meat_loaf
1985
+ n07873807: pizza
1986
+ n07875152: potpie
1987
+ n07880968: burrito
1988
+ n07892512: red_wine
1989
+ n07920052: espresso
1990
+ n07930864: cup
1991
+ n07932039: eggnog
1992
+ n09193705: alp
1993
+ n09229709: bubble
1994
+ n09246464: cliff
1995
+ n09256479: coral_reef
1996
+ n09288635: geyser
1997
+ n09332890: lakeside
1998
+ n09399592: promontory
1999
+ n09421951: sandbar
2000
+ n09428293: seashore
2001
+ n09468604: valley
2002
+ n09472597: volcano
2003
+ n09835506: ballplayer
2004
+ n10148035: groom
2005
+ n10565667: scuba_diver
2006
+ n11879895: rapeseed
2007
+ n11939491: daisy
2008
+ n12057211: yellow_lady's_slipper
2009
+ n12144580: corn
2010
+ n12267677: acorn
2011
+ n12620546: hip
2012
+ n12768682: buckeye
2013
+ n12985857: coral_fungus
2014
+ n12998815: agaric
2015
+ n13037406: gyromitra
2016
+ n13040303: stinkhorn
2017
+ n13044778: earthstar
2018
+ n13052670: hen-of-the-woods
2019
+ n13054560: bolete
2020
+ n13133613: ear
2021
+ n15075141: toilet_tissue
2022
+
2023
+ # Download script/URL (optional)
2024
+ download: yolo/data/scripts/get_imagenet.sh
ultralytics/cfg/datasets/Objects365.yaml ADDED
@@ -0,0 +1,442 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ultralytics YOLO πŸš€, AGPL-3.0 license
2
+ # Objects365 dataset https://www.objects365.org/ by Megvii
3
+ # Documentation: https://docs.ultralytics.com/datasets/detect/objects365/
4
+ # Example usage: yolo train data=Objects365.yaml
5
+ # parent
6
+ # β”œβ”€β”€ ultralytics
7
+ # └── datasets
8
+ # └── Objects365 ← downloads here (712 GB = 367G data + 345G zips)
9
+
10
+ # 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, ..]
11
+ path: ../datasets/Objects365 # dataset root dir
12
+ train: images/train # train images (relative to 'path') 1742289 images
13
+ val: images/val # val images (relative to 'path') 80000 images
14
+ test: # test images (optional)
15
+
16
+ # Classes
17
+ names:
18
+ 0: Person
19
+ 1: Sneakers
20
+ 2: Chair
21
+ 3: Other Shoes
22
+ 4: Hat
23
+ 5: Car
24
+ 6: Lamp
25
+ 7: Glasses
26
+ 8: Bottle
27
+ 9: Desk
28
+ 10: Cup
29
+ 11: Street Lights
30
+ 12: Cabinet/shelf
31
+ 13: Handbag/Satchel
32
+ 14: Bracelet
33
+ 15: Plate
34
+ 16: Picture/Frame
35
+ 17: Helmet
36
+ 18: Book
37
+ 19: Gloves
38
+ 20: Storage box
39
+ 21: Boat
40
+ 22: Leather Shoes
41
+ 23: Flower
42
+ 24: Bench
43
+ 25: Potted Plant
44
+ 26: Bowl/Basin
45
+ 27: Flag
46
+ 28: Pillow
47
+ 29: Boots
48
+ 30: Vase
49
+ 31: Microphone
50
+ 32: Necklace
51
+ 33: Ring
52
+ 34: SUV
53
+ 35: Wine Glass
54
+ 36: Belt
55
+ 37: Monitor/TV
56
+ 38: Backpack
57
+ 39: Umbrella
58
+ 40: Traffic Light
59
+ 41: Speaker
60
+ 42: Watch
61
+ 43: Tie
62
+ 44: Trash bin Can
63
+ 45: Slippers
64
+ 46: Bicycle
65
+ 47: Stool
66
+ 48: Barrel/bucket
67
+ 49: Van
68
+ 50: Couch
69
+ 51: Sandals
70
+ 52: Basket
71
+ 53: Drum
72
+ 54: Pen/Pencil
73
+ 55: Bus
74
+ 56: Wild Bird
75
+ 57: High Heels
76
+ 58: Motorcycle
77
+ 59: Guitar
78
+ 60: Carpet
79
+ 61: Cell Phone
80
+ 62: Bread
81
+ 63: Camera
82
+ 64: Canned
83
+ 65: Truck
84
+ 66: Traffic cone
85
+ 67: Cymbal
86
+ 68: Lifesaver
87
+ 69: Towel
88
+ 70: Stuffed Toy
89
+ 71: Candle
90
+ 72: Sailboat
91
+ 73: Laptop
92
+ 74: Awning
93
+ 75: Bed
94
+ 76: Faucet
95
+ 77: Tent
96
+ 78: Horse
97
+ 79: Mirror
98
+ 80: Power outlet
99
+ 81: Sink
100
+ 82: Apple
101
+ 83: Air Conditioner
102
+ 84: Knife
103
+ 85: Hockey Stick
104
+ 86: Paddle
105
+ 87: Pickup Truck
106
+ 88: Fork
107
+ 89: Traffic Sign
108
+ 90: Balloon
109
+ 91: Tripod
110
+ 92: Dog
111
+ 93: Spoon
112
+ 94: Clock
113
+ 95: Pot
114
+ 96: Cow
115
+ 97: Cake
116
+ 98: Dinning Table
117
+ 99: Sheep
118
+ 100: Hanger
119
+ 101: Blackboard/Whiteboard
120
+ 102: Napkin
121
+ 103: Other Fish
122
+ 104: Orange/Tangerine
123
+ 105: Toiletry
124
+ 106: Keyboard
125
+ 107: Tomato
126
+ 108: Lantern
127
+ 109: Machinery Vehicle
128
+ 110: Fan
129
+ 111: Green Vegetables
130
+ 112: Banana
131
+ 113: Baseball Glove
132
+ 114: Airplane
133
+ 115: Mouse
134
+ 116: Train
135
+ 117: Pumpkin
136
+ 118: Soccer
137
+ 119: Skiboard
138
+ 120: Luggage
139
+ 121: Nightstand
140
+ 122: Tea pot
141
+ 123: Telephone
142
+ 124: Trolley
143
+ 125: Head Phone
144
+ 126: Sports Car
145
+ 127: Stop Sign
146
+ 128: Dessert
147
+ 129: Scooter
148
+ 130: Stroller
149
+ 131: Crane
150
+ 132: Remote
151
+ 133: Refrigerator
152
+ 134: Oven
153
+ 135: Lemon
154
+ 136: Duck
155
+ 137: Baseball Bat
156
+ 138: Surveillance Camera
157
+ 139: Cat
158
+ 140: Jug
159
+ 141: Broccoli
160
+ 142: Piano
161
+ 143: Pizza
162
+ 144: Elephant
163
+ 145: Skateboard
164
+ 146: Surfboard
165
+ 147: Gun
166
+ 148: Skating and Skiing shoes
167
+ 149: Gas stove
168
+ 150: Donut
169
+ 151: Bow Tie
170
+ 152: Carrot
171
+ 153: Toilet
172
+ 154: Kite
173
+ 155: Strawberry
174
+ 156: Other Balls
175
+ 157: Shovel
176
+ 158: Pepper
177
+ 159: Computer Box
178
+ 160: Toilet Paper
179
+ 161: Cleaning Products
180
+ 162: Chopsticks
181
+ 163: Microwave
182
+ 164: Pigeon
183
+ 165: Baseball
184
+ 166: Cutting/chopping Board
185
+ 167: Coffee Table
186
+ 168: Side Table
187
+ 169: Scissors
188
+ 170: Marker
189
+ 171: Pie
190
+ 172: Ladder
191
+ 173: Snowboard
192
+ 174: Cookies
193
+ 175: Radiator
194
+ 176: Fire Hydrant
195
+ 177: Basketball
196
+ 178: Zebra
197
+ 179: Grape
198
+ 180: Giraffe
199
+ 181: Potato
200
+ 182: Sausage
201
+ 183: Tricycle
202
+ 184: Violin
203
+ 185: Egg
204
+ 186: Fire Extinguisher
205
+ 187: Candy
206
+ 188: Fire Truck
207
+ 189: Billiards
208
+ 190: Converter
209
+ 191: Bathtub
210
+ 192: Wheelchair
211
+ 193: Golf Club
212
+ 194: Briefcase
213
+ 195: Cucumber
214
+ 196: Cigar/Cigarette
215
+ 197: Paint Brush
216
+ 198: Pear
217
+ 199: Heavy Truck
218
+ 200: Hamburger
219
+ 201: Extractor
220
+ 202: Extension Cord
221
+ 203: Tong
222
+ 204: Tennis Racket
223
+ 205: Folder
224
+ 206: American Football
225
+ 207: earphone
226
+ 208: Mask
227
+ 209: Kettle
228
+ 210: Tennis
229
+ 211: Ship
230
+ 212: Swing
231
+ 213: Coffee Machine
232
+ 214: Slide
233
+ 215: Carriage
234
+ 216: Onion
235
+ 217: Green beans
236
+ 218: Projector
237
+ 219: Frisbee
238
+ 220: Washing Machine/Drying Machine
239
+ 221: Chicken
240
+ 222: Printer
241
+ 223: Watermelon
242
+ 224: Saxophone
243
+ 225: Tissue
244
+ 226: Toothbrush
245
+ 227: Ice cream
246
+ 228: Hot-air balloon
247
+ 229: Cello
248
+ 230: French Fries
249
+ 231: Scale
250
+ 232: Trophy
251
+ 233: Cabbage
252
+ 234: Hot dog
253
+ 235: Blender
254
+ 236: Peach
255
+ 237: Rice
256
+ 238: Wallet/Purse
257
+ 239: Volleyball
258
+ 240: Deer
259
+ 241: Goose
260
+ 242: Tape
261
+ 243: Tablet
262
+ 244: Cosmetics
263
+ 245: Trumpet
264
+ 246: Pineapple
265
+ 247: Golf Ball
266
+ 248: Ambulance
267
+ 249: Parking meter
268
+ 250: Mango
269
+ 251: Key
270
+ 252: Hurdle
271
+ 253: Fishing Rod
272
+ 254: Medal
273
+ 255: Flute
274
+ 256: Brush
275
+ 257: Penguin
276
+ 258: Megaphone
277
+ 259: Corn
278
+ 260: Lettuce
279
+ 261: Garlic
280
+ 262: Swan
281
+ 263: Helicopter
282
+ 264: Green Onion
283
+ 265: Sandwich
284
+ 266: Nuts
285
+ 267: Speed Limit Sign
286
+ 268: Induction Cooker
287
+ 269: Broom
288
+ 270: Trombone
289
+ 271: Plum
290
+ 272: Rickshaw
291
+ 273: Goldfish
292
+ 274: Kiwi fruit
293
+ 275: Router/modem
294
+ 276: Poker Card
295
+ 277: Toaster
296
+ 278: Shrimp
297
+ 279: Sushi
298
+ 280: Cheese
299
+ 281: Notepaper
300
+ 282: Cherry
301
+ 283: Pliers
302
+ 284: CD
303
+ 285: Pasta
304
+ 286: Hammer
305
+ 287: Cue
306
+ 288: Avocado
307
+ 289: Hamimelon
308
+ 290: Flask
309
+ 291: Mushroom
310
+ 292: Screwdriver
311
+ 293: Soap
312
+ 294: Recorder
313
+ 295: Bear
314
+ 296: Eggplant
315
+ 297: Board Eraser
316
+ 298: Coconut
317
+ 299: Tape Measure/Ruler
318
+ 300: Pig
319
+ 301: Showerhead
320
+ 302: Globe
321
+ 303: Chips
322
+ 304: Steak
323
+ 305: Crosswalk Sign
324
+ 306: Stapler
325
+ 307: Camel
326
+ 308: Formula 1
327
+ 309: Pomegranate
328
+ 310: Dishwasher
329
+ 311: Crab
330
+ 312: Hoverboard
331
+ 313: Meat ball
332
+ 314: Rice Cooker
333
+ 315: Tuba
334
+ 316: Calculator
335
+ 317: Papaya
336
+ 318: Antelope
337
+ 319: Parrot
338
+ 320: Seal
339
+ 321: Butterfly
340
+ 322: Dumbbell
341
+ 323: Donkey
342
+ 324: Lion
343
+ 325: Urinal
344
+ 326: Dolphin
345
+ 327: Electric Drill
346
+ 328: Hair Dryer
347
+ 329: Egg tart
348
+ 330: Jellyfish
349
+ 331: Treadmill
350
+ 332: Lighter
351
+ 333: Grapefruit
352
+ 334: Game board
353
+ 335: Mop
354
+ 336: Radish
355
+ 337: Baozi
356
+ 338: Target
357
+ 339: French
358
+ 340: Spring Rolls
359
+ 341: Monkey
360
+ 342: Rabbit
361
+ 343: Pencil Case
362
+ 344: Yak
363
+ 345: Red Cabbage
364
+ 346: Binoculars
365
+ 347: Asparagus
366
+ 348: Barbell
367
+ 349: Scallop
368
+ 350: Noddles
369
+ 351: Comb
370
+ 352: Dumpling
371
+ 353: Oyster
372
+ 354: Table Tennis paddle
373
+ 355: Cosmetics Brush/Eyeliner Pencil
374
+ 356: Chainsaw
375
+ 357: Eraser
376
+ 358: Lobster
377
+ 359: Durian
378
+ 360: Okra
379
+ 361: Lipstick
380
+ 362: Cosmetics Mirror
381
+ 363: Curling
382
+ 364: Table Tennis
383
+
384
+ # Download script/URL (optional) ---------------------------------------------------------------------------------------
385
+ download: |
386
+ from tqdm import tqdm
387
+
388
+ from ultralytics.utils.checks import check_requirements
389
+ from ultralytics.utils.downloads import download
390
+ from ultralytics.utils.ops import xyxy2xywhn
391
+
392
+ import numpy as np
393
+ from pathlib import Path
394
+
395
+ check_requirements(('pycocotools>=2.0',))
396
+ from pycocotools.coco import COCO
397
+
398
+ # Make Directories
399
+ dir = Path(yaml['path']) # dataset root dir
400
+ for p in 'images', 'labels':
401
+ (dir / p).mkdir(parents=True, exist_ok=True)
402
+ for q in 'train', 'val':
403
+ (dir / p / q).mkdir(parents=True, exist_ok=True)
404
+
405
+ # Train, Val Splits
406
+ for split, patches in [('train', 50 + 1), ('val', 43 + 1)]:
407
+ print(f"Processing {split} in {patches} patches ...")
408
+ images, labels = dir / 'images' / split, dir / 'labels' / split
409
+
410
+ # Download
411
+ url = f"https://dorc.ks3-cn-beijing.ksyun.com/data-set/2020Objects365%E6%95%B0%E6%8D%AE%E9%9B%86/{split}/"
412
+ if split == 'train':
413
+ download([f'{url}zhiyuan_objv2_{split}.tar.gz'], dir=dir) # annotations json
414
+ download([f'{url}patch{i}.tar.gz' for i in range(patches)], dir=images, curl=True, threads=8)
415
+ elif split == 'val':
416
+ download([f'{url}zhiyuan_objv2_{split}.json'], dir=dir) # annotations json
417
+ download([f'{url}images/v1/patch{i}.tar.gz' for i in range(15 + 1)], dir=images, curl=True, threads=8)
418
+ download([f'{url}images/v2/patch{i}.tar.gz' for i in range(16, patches)], dir=images, curl=True, threads=8)
419
+
420
+ # Move
421
+ for f in tqdm(images.rglob('*.jpg'), desc=f'Moving {split} images'):
422
+ f.rename(images / f.name) # move to /images/{split}
423
+
424
+ # Labels
425
+ coco = COCO(dir / f'zhiyuan_objv2_{split}.json')
426
+ names = [x["name"] for x in coco.loadCats(coco.getCatIds())]
427
+ for cid, cat in enumerate(names):
428
+ catIds = coco.getCatIds(catNms=[cat])
429
+ imgIds = coco.getImgIds(catIds=catIds)
430
+ for im in tqdm(coco.loadImgs(imgIds), desc=f'Class {cid + 1}/{len(names)} {cat}'):
431
+ width, height = im["width"], im["height"]
432
+ path = Path(im["file_name"]) # image filename
433
+ try:
434
+ with open(labels / path.with_suffix('.txt').name, 'a') as file:
435
+ annIds = coco.getAnnIds(imgIds=im["id"], catIds=catIds, iscrowd=None)
436
+ for a in coco.loadAnns(annIds):
437
+ x, y, w, h = a['bbox'] # bounding box in xywh (xy top-left corner)
438
+ xyxy = np.array([x, y, x + w, y + h])[None] # pixels(1,4)
439
+ x, y, w, h = xyxy2xywhn(xyxy, w=width, h=height, clip=True)[0] # normalized and clipped
440
+ file.write(f"{cid} {x:.5f} {y:.5f} {w:.5f} {h:.5f}\n")
441
+ except Exception as e:
442
+ print(e)
ultralytics/cfg/datasets/SKU-110K.yaml ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ultralytics YOLO πŸš€, AGPL-3.0 license
2
+ # SKU-110K retail items dataset https://github.com/eg4000/SKU110K_CVPR19 by Trax Retail
3
+ # Documentation: https://docs.ultralytics.com/datasets/detect/sku-110k/
4
+ # Example usage: yolo train data=SKU-110K.yaml
5
+ # parent
6
+ # β”œβ”€β”€ ultralytics
7
+ # └── datasets
8
+ # └── SKU-110K ← downloads here (13.6 GB)
9
+
10
+ # 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, ..]
11
+ path: ../datasets/SKU-110K # dataset root dir
12
+ train: train.txt # train images (relative to 'path') 8219 images
13
+ val: val.txt # val images (relative to 'path') 588 images
14
+ test: test.txt # test images (optional) 2936 images
15
+
16
+ # Classes
17
+ names:
18
+ 0: object
19
+
20
+ # Download script/URL (optional) ---------------------------------------------------------------------------------------
21
+ download: |
22
+ import shutil
23
+ from pathlib import Path
24
+
25
+ import numpy as np
26
+ import pandas as pd
27
+ from tqdm import tqdm
28
+
29
+ from ultralytics.utils.downloads import download
30
+ from ultralytics.utils.ops import xyxy2xywh
31
+
32
+ # Download
33
+ dir = Path(yaml['path']) # dataset root dir
34
+ parent = Path(dir.parent) # download dir
35
+ urls = ['http://trax-geometry.s3.amazonaws.com/cvpr_challenge/SKU110K_fixed.tar.gz']
36
+ download(urls, dir=parent)
37
+
38
+ # Rename directories
39
+ if dir.exists():
40
+ shutil.rmtree(dir)
41
+ (parent / 'SKU110K_fixed').rename(dir) # rename dir
42
+ (dir / 'labels').mkdir(parents=True, exist_ok=True) # create labels dir
43
+
44
+ # Convert labels
45
+ names = 'image', 'x1', 'y1', 'x2', 'y2', 'class', 'image_width', 'image_height' # column names
46
+ for d in 'annotations_train.csv', 'annotations_val.csv', 'annotations_test.csv':
47
+ x = pd.read_csv(dir / 'annotations' / d, names=names).values # annotations
48
+ images, unique_images = x[:, 0], np.unique(x[:, 0])
49
+ with open((dir / d).with_suffix('.txt').__str__().replace('annotations_', ''), 'w') as f:
50
+ f.writelines(f'./images/{s}\n' for s in unique_images)
51
+ for im in tqdm(unique_images, desc=f'Converting {dir / d}'):
52
+ cls = 0 # single-class dataset
53
+ with open((dir / 'labels' / im).with_suffix('.txt'), 'a') as f:
54
+ for r in x[images == im]:
55
+ w, h = r[6], r[7] # image width, height
56
+ xywh = xyxy2xywh(np.array([[r[1] / w, r[2] / h, r[3] / w, r[4] / h]]))[0] # instance
57
+ f.write(f"{cls} {xywh[0]:.5f} {xywh[1]:.5f} {xywh[2]:.5f} {xywh[3]:.5f}\n") # write label
ultralytics/cfg/datasets/VOC.yaml ADDED
@@ -0,0 +1,99 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ultralytics YOLO πŸš€, AGPL-3.0 license
2
+ # PASCAL VOC dataset http://host.robots.ox.ac.uk/pascal/VOC by University of Oxford
3
+ # Documentation: # Documentation: https://docs.ultralytics.com/datasets/detect/voc/
4
+ # Example usage: yolo train data=VOC.yaml
5
+ # parent
6
+ # β”œβ”€β”€ ultralytics
7
+ # └── datasets
8
+ # └── VOC ← downloads here (2.8 GB)
9
+
10
+ # 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, ..]
11
+ path: ../datasets/VOC
12
+ train: # train images (relative to 'path') 16551 images
13
+ - images/train2012
14
+ - images/train2007
15
+ - images/val2012
16
+ - images/val2007
17
+ val: # val images (relative to 'path') 4952 images
18
+ - images/test2007
19
+ test: # test images (optional)
20
+ - images/test2007
21
+
22
+ # Classes
23
+ names:
24
+ 0: aeroplane
25
+ 1: bicycle
26
+ 2: bird
27
+ 3: boat
28
+ 4: bottle
29
+ 5: bus
30
+ 6: car
31
+ 7: cat
32
+ 8: chair
33
+ 9: cow
34
+ 10: diningtable
35
+ 11: dog
36
+ 12: horse
37
+ 13: motorbike
38
+ 14: person
39
+ 15: pottedplant
40
+ 16: sheep
41
+ 17: sofa
42
+ 18: train
43
+ 19: tvmonitor
44
+
45
+ # Download script/URL (optional) ---------------------------------------------------------------------------------------
46
+ download: |
47
+ import xml.etree.ElementTree as ET
48
+
49
+ from tqdm import tqdm
50
+ from ultralytics.utils.downloads import download
51
+ from pathlib import Path
52
+
53
+ def convert_label(path, lb_path, year, image_id):
54
+ def convert_box(size, box):
55
+ dw, dh = 1. / size[0], 1. / size[1]
56
+ x, y, w, h = (box[0] + box[1]) / 2.0 - 1, (box[2] + box[3]) / 2.0 - 1, box[1] - box[0], box[3] - box[2]
57
+ return x * dw, y * dh, w * dw, h * dh
58
+
59
+ in_file = open(path / f'VOC{year}/Annotations/{image_id}.xml')
60
+ out_file = open(lb_path, 'w')
61
+ tree = ET.parse(in_file)
62
+ root = tree.getroot()
63
+ size = root.find('size')
64
+ w = int(size.find('width').text)
65
+ h = int(size.find('height').text)
66
+
67
+ names = list(yaml['names'].values()) # names list
68
+ for obj in root.iter('object'):
69
+ cls = obj.find('name').text
70
+ if cls in names and int(obj.find('difficult').text) != 1:
71
+ xmlbox = obj.find('bndbox')
72
+ bb = convert_box((w, h), [float(xmlbox.find(x).text) for x in ('xmin', 'xmax', 'ymin', 'ymax')])
73
+ cls_id = names.index(cls) # class id
74
+ out_file.write(" ".join(str(a) for a in (cls_id, *bb)) + '\n')
75
+
76
+
77
+ # Download
78
+ dir = Path(yaml['path']) # dataset root dir
79
+ url = 'https://github.com/ultralytics/yolov5/releases/download/v1.0/'
80
+ urls = [f'{url}VOCtrainval_06-Nov-2007.zip', # 446MB, 5012 images
81
+ f'{url}VOCtest_06-Nov-2007.zip', # 438MB, 4953 images
82
+ f'{url}VOCtrainval_11-May-2012.zip'] # 1.95GB, 17126 images
83
+ download(urls, dir=dir / 'images', curl=True, threads=3, exist_ok=True) # download and unzip over existing paths (required)
84
+
85
+ # Convert
86
+ path = dir / 'images/VOCdevkit'
87
+ for year, image_set in ('2012', 'train'), ('2012', 'val'), ('2007', 'train'), ('2007', 'val'), ('2007', 'test'):
88
+ imgs_path = dir / 'images' / f'{image_set}{year}'
89
+ lbs_path = dir / 'labels' / f'{image_set}{year}'
90
+ imgs_path.mkdir(exist_ok=True, parents=True)
91
+ lbs_path.mkdir(exist_ok=True, parents=True)
92
+
93
+ with open(path / f'VOC{year}/ImageSets/Main/{image_set}.txt') as f:
94
+ image_ids = f.read().strip().split()
95
+ for id in tqdm(image_ids, desc=f'{image_set}{year}'):
96
+ f = path / f'VOC{year}/JPEGImages/{id}.jpg' # old img path
97
+ lb_path = (lbs_path / f.name).with_suffix('.txt') # new label path
98
+ f.rename(imgs_path / f.name) # move image
99
+ convert_label(path, lb_path, year, id) # convert labels to YOLO format
ultralytics/cfg/datasets/VisDrone.yaml ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ultralytics YOLO πŸš€, AGPL-3.0 license
2
+ # VisDrone2019-DET dataset https://github.com/VisDrone/VisDrone-Dataset by Tianjin University
3
+ # Documentation: https://docs.ultralytics.com/datasets/detect/visdrone/
4
+ # Example usage: yolo train data=VisDrone.yaml
5
+ # parent
6
+ # β”œβ”€β”€ ultralytics
7
+ # └── datasets
8
+ # └── VisDrone ← downloads here (2.3 GB)
9
+
10
+ # 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, ..]
11
+ path: ../datasets/VisDrone # dataset root dir
12
+ train: VisDrone2019-DET-train/images # train images (relative to 'path') 6471 images
13
+ val: VisDrone2019-DET-val/images # val images (relative to 'path') 548 images
14
+ test: VisDrone2019-DET-test-dev/images # test images (optional) 1610 images
15
+
16
+ # Classes
17
+ names:
18
+ 0: pedestrian
19
+ 1: people
20
+ 2: bicycle
21
+ 3: car
22
+ 4: van
23
+ 5: truck
24
+ 6: tricycle
25
+ 7: awning-tricycle
26
+ 8: bus
27
+ 9: motor
28
+
29
+ # Download script/URL (optional) ---------------------------------------------------------------------------------------
30
+ download: |
31
+ import os
32
+ from pathlib import Path
33
+
34
+ from ultralytics.utils.downloads import download
35
+
36
+ def visdrone2yolo(dir):
37
+ from PIL import Image
38
+ from tqdm import tqdm
39
+
40
+ def convert_box(size, box):
41
+ # Convert VisDrone box to YOLO xywh box
42
+ dw = 1. / size[0]
43
+ dh = 1. / size[1]
44
+ return (box[0] + box[2] / 2) * dw, (box[1] + box[3] / 2) * dh, box[2] * dw, box[3] * dh
45
+
46
+ (dir / 'labels').mkdir(parents=True, exist_ok=True) # make labels directory
47
+ pbar = tqdm((dir / 'annotations').glob('*.txt'), desc=f'Converting {dir}')
48
+ for f in pbar:
49
+ img_size = Image.open((dir / 'images' / f.name).with_suffix('.jpg')).size
50
+ lines = []
51
+ with open(f, 'r') as file: # read annotation.txt
52
+ for row in [x.split(',') for x in file.read().strip().splitlines()]:
53
+ if row[4] == '0': # VisDrone 'ignored regions' class 0
54
+ continue
55
+ cls = int(row[5]) - 1
56
+ box = convert_box(img_size, tuple(map(int, row[:4])))
57
+ lines.append(f"{cls} {' '.join(f'{x:.6f}' for x in box)}\n")
58
+ with open(str(f).replace(f'{os.sep}annotations{os.sep}', f'{os.sep}labels{os.sep}'), 'w') as fl:
59
+ fl.writelines(lines) # write label.txt
60
+
61
+
62
+ # Download
63
+ dir = Path(yaml['path']) # dataset root dir
64
+ urls = ['https://github.com/ultralytics/yolov5/releases/download/v1.0/VisDrone2019-DET-train.zip',
65
+ 'https://github.com/ultralytics/yolov5/releases/download/v1.0/VisDrone2019-DET-val.zip',
66
+ 'https://github.com/ultralytics/yolov5/releases/download/v1.0/VisDrone2019-DET-test-dev.zip',
67
+ 'https://github.com/ultralytics/yolov5/releases/download/v1.0/VisDrone2019-DET-test-challenge.zip']
68
+ download(urls, dir=dir, curl=True, threads=4)
69
+
70
+ # Convert
71
+ for d in 'VisDrone2019-DET-train', 'VisDrone2019-DET-val', 'VisDrone2019-DET-test-dev':
72
+ visdrone2yolo(dir / d) # convert VisDrone annotations to YOLO labels
ultralytics/cfg/datasets/african-wildlife.yaml ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ultralytics YOLO πŸš€, AGPL-3.0 license
2
+ # African-wildlife dataset by Ultralytics
3
+ # Documentation: https://docs.ultralytics.com/datasets/detect/african-wildlife/
4
+ # Example usage: yolo train data=african-wildlife.yaml
5
+ # parent
6
+ # β”œβ”€β”€ ultralytics
7
+ # └── datasets
8
+ # └── african-wildlife ← downloads here (100 MB)
9
+
10
+ # 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, ..]
11
+ path: ../datasets/african-wildlife # dataset root dir
12
+ train: train/images # train images (relative to 'path') 1052 images
13
+ val: valid/images # val images (relative to 'path') 225 images
14
+ test: test/images # test images (relative to 'path') 227 images
15
+
16
+ # Classes
17
+ names:
18
+ 0: buffalo
19
+ 1: elephant
20
+ 2: rhino
21
+ 3: zebra
22
+
23
+ # Download script/URL (optional)
24
+ download: https://ultralytics.com/assets/african-wildlife.zip
ultralytics/cfg/datasets/brain-tumor.yaml ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ultralytics YOLO πŸš€, AGPL-3.0 license
2
+ # Brain-tumor dataset by Ultralytics
3
+ # Documentation: https://docs.ultralytics.com/datasets/detect/brain-tumor/
4
+ # Example usage: yolo train data=brain-tumor.yaml
5
+ # parent
6
+ # β”œβ”€β”€ ultralytics
7
+ # └── datasets
8
+ # └── brain-tumor ← downloads here (4.05 MB)
9
+
10
+ # 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, ..]
11
+ path: ../datasets/brain-tumor # dataset root dir
12
+ train: train/images # train images (relative to 'path') 893 images
13
+ val: valid/images # val images (relative to 'path') 223 images
14
+ test: # test images (relative to 'path')
15
+
16
+ # Classes
17
+ names:
18
+ 0: negative
19
+ 1: positive
20
+
21
+ # Download script/URL (optional)
22
+ download: https://ultralytics.com/assets/brain-tumor.zip
ultralytics/cfg/datasets/carparts-seg.yaml ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ultralytics YOLO πŸš€, AGPL-3.0 license
2
+ # Carparts-seg dataset by Ultralytics
3
+ # Documentation: https://docs.ultralytics.com/datasets/segment/carparts-seg/
4
+ # Example usage: yolo train data=carparts-seg.yaml
5
+ # parent
6
+ # β”œβ”€β”€ ultralytics
7
+ # └── datasets
8
+ # └── carparts-seg ← downloads here (132 MB)
9
+
10
+ # 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, ..]
11
+ path: ../datasets/carparts-seg # dataset root dir
12
+ train: train/images # train images (relative to 'path') 3516 images
13
+ val: valid/images # val images (relative to 'path') 276 images
14
+ test: test/images # test images (relative to 'path') 401 images
15
+
16
+ # Classes
17
+ names:
18
+ 0: back_bumper
19
+ 1: back_door
20
+ 2: back_glass
21
+ 3: back_left_door
22
+ 4: back_left_light
23
+ 5: back_light
24
+ 6: back_right_door
25
+ 7: back_right_light
26
+ 8: front_bumper
27
+ 9: front_door
28
+ 10: front_glass
29
+ 11: front_left_door
30
+ 12: front_left_light
31
+ 13: front_light
32
+ 14: front_right_door
33
+ 15: front_right_light
34
+ 16: hood
35
+ 17: left_mirror
36
+ 18: object
37
+ 19: right_mirror
38
+ 20: tailgate
39
+ 21: trunk
40
+ 22: wheel
41
+
42
+ # Download script/URL (optional)
43
+ download: https://ultralytics.com/assets/carparts-seg.zip
ultralytics/cfg/datasets/coco-pose.yaml ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ultralytics YOLO πŸš€, AGPL-3.0 license
2
+ # COCO 2017 dataset https://cocodataset.org by Microsoft
3
+ # Documentation: https://docs.ultralytics.com/datasets/pose/coco/
4
+ # Example usage: yolo train data=coco-pose.yaml
5
+ # parent
6
+ # β”œβ”€β”€ ultralytics
7
+ # └── datasets
8
+ # └── coco-pose ← downloads here (20.1 GB)
9
+
10
+ # 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, ..]
11
+ path: ../datasets/coco-pose # dataset root dir
12
+ train: train2017.txt # train images (relative to 'path') 118287 images
13
+ val: val2017.txt # val images (relative to 'path') 5000 images
14
+ test: test-dev2017.txt # 20288 of 40670 images, submit to https://competitions.codalab.org/competitions/20794
15
+
16
+ # Keypoints
17
+ kpt_shape: [17, 3] # number of keypoints, number of dims (2 for x,y or 3 for x,y,visible)
18
+ flip_idx: [0, 2, 1, 4, 3, 6, 5, 8, 7, 10, 9, 12, 11, 14, 13, 16, 15]
19
+
20
+ # Classes
21
+ names:
22
+ 0: person
23
+
24
+ # Download script/URL (optional)
25
+ download: |
26
+ from ultralytics.utils.downloads import download
27
+ from pathlib import Path
28
+
29
+ # Download labels
30
+ dir = Path(yaml['path']) # dataset root dir
31
+ url = 'https://github.com/ultralytics/yolov5/releases/download/v1.0/'
32
+ urls = [url + 'coco2017labels-pose.zip'] # labels
33
+ download(urls, dir=dir.parent)
34
+ # Download data
35
+ urls = ['http://images.cocodataset.org/zips/train2017.zip', # 19G, 118k images
36
+ 'http://images.cocodataset.org/zips/val2017.zip', # 1G, 5k images
37
+ 'http://images.cocodataset.org/zips/test2017.zip'] # 7G, 41k images (optional)
38
+ download(urls, dir=dir / 'images', threads=3)
ultralytics/cfg/datasets/coco.yaml ADDED
@@ -0,0 +1,114 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ultralytics YOLO πŸš€, AGPL-3.0 license
2
+ # COCO 2017 dataset https://cocodataset.org by Microsoft
3
+ # Documentation: https://docs.ultralytics.com/datasets/detect/coco/
4
+ # Example usage: yolo train data=coco.yaml
5
+ # parent
6
+ # β”œβ”€β”€ ultralytics
7
+ # └── datasets
8
+ # └── coco ← downloads here (20.1 GB)
9
+
10
+ # 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, ..]
11
+ path: ../datasets/coco # dataset root dir
12
+ train: train2017.txt # train images (relative to 'path') 118287 images
13
+ val: val2017.txt # val images (relative to 'path') 5000 images
14
+ test: test-dev2017.txt # 20288 of 40670 images, submit to https://competitions.codalab.org/competitions/20794
15
+
16
+ # Classes
17
+ names:
18
+ 0: person
19
+ 1: bicycle
20
+ 2: car
21
+ 3: motorcycle
22
+ 4: airplane
23
+ 5: bus
24
+ 6: train
25
+ 7: truck
26
+ 8: boat
27
+ 9: traffic light
28
+ 10: fire hydrant
29
+ 11: stop sign
30
+ 12: parking meter
31
+ 13: bench
32
+ 14: bird
33
+ 15: cat
34
+ 16: dog
35
+ 17: horse
36
+ 18: sheep
37
+ 19: cow
38
+ 20: elephant
39
+ 21: bear
40
+ 22: zebra
41
+ 23: giraffe
42
+ 24: backpack
43
+ 25: umbrella
44
+ 26: handbag
45
+ 27: tie
46
+ 28: suitcase
47
+ 29: frisbee
48
+ 30: skis
49
+ 31: snowboard
50
+ 32: sports ball
51
+ 33: kite
52
+ 34: baseball bat
53
+ 35: baseball glove
54
+ 36: skateboard
55
+ 37: surfboard
56
+ 38: tennis racket
57
+ 39: bottle
58
+ 40: wine glass
59
+ 41: cup
60
+ 42: fork
61
+ 43: knife
62
+ 44: spoon
63
+ 45: bowl
64
+ 46: banana
65
+ 47: apple
66
+ 48: sandwich
67
+ 49: orange
68
+ 50: broccoli
69
+ 51: carrot
70
+ 52: hot dog
71
+ 53: pizza
72
+ 54: donut
73
+ 55: cake
74
+ 56: chair
75
+ 57: couch
76
+ 58: potted plant
77
+ 59: bed
78
+ 60: dining table
79
+ 61: toilet
80
+ 62: tv
81
+ 63: laptop
82
+ 64: mouse
83
+ 65: remote
84
+ 66: keyboard
85
+ 67: cell phone
86
+ 68: microwave
87
+ 69: oven
88
+ 70: toaster
89
+ 71: sink
90
+ 72: refrigerator
91
+ 73: book
92
+ 74: clock
93
+ 75: vase
94
+ 76: scissors
95
+ 77: teddy bear
96
+ 78: hair drier
97
+ 79: toothbrush
98
+
99
+ # Download script/URL (optional)
100
+ download: |
101
+ from ultralytics.utils.downloads import download
102
+ from pathlib import Path
103
+
104
+ # Download labels
105
+ segments = True # segment or box labels
106
+ dir = Path(yaml['path']) # dataset root dir
107
+ url = 'https://github.com/ultralytics/yolov5/releases/download/v1.0/'
108
+ urls = [url + ('coco2017labels-segments.zip' if segments else 'coco2017labels.zip')] # labels
109
+ download(urls, dir=dir.parent)
110
+ # Download data
111
+ urls = ['http://images.cocodataset.org/zips/train2017.zip', # 19G, 118k images
112
+ 'http://images.cocodataset.org/zips/val2017.zip', # 1G, 5k images
113
+ 'http://images.cocodataset.org/zips/test2017.zip'] # 7G, 41k images (optional)
114
+ download(urls, dir=dir / 'images', threads=3)
ultralytics/cfg/datasets/coco128-seg.yaml ADDED
@@ -0,0 +1,100 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ultralytics YOLO πŸš€, AGPL-3.0 license
2
+ # COCO128-seg dataset https://www.kaggle.com/ultralytics/coco128 (first 128 images from COCO train2017) by Ultralytics
3
+ # Documentation: https://docs.ultralytics.com/datasets/segment/coco/
4
+ # Example usage: yolo train data=coco128.yaml
5
+ # parent
6
+ # β”œβ”€β”€ ultralytics
7
+ # └── datasets
8
+ # └── coco128-seg ← downloads here (7 MB)
9
+
10
+ # 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, ..]
11
+ path: ../datasets/coco128-seg # dataset root dir
12
+ train: images/train2017 # train images (relative to 'path') 128 images
13
+ val: images/train2017 # val images (relative to 'path') 128 images
14
+ test: # test images (optional)
15
+
16
+ # Classes
17
+ names:
18
+ 0: person
19
+ 1: bicycle
20
+ 2: car
21
+ 3: motorcycle
22
+ 4: airplane
23
+ 5: bus
24
+ 6: train
25
+ 7: truck
26
+ 8: boat
27
+ 9: traffic light
28
+ 10: fire hydrant
29
+ 11: stop sign
30
+ 12: parking meter
31
+ 13: bench
32
+ 14: bird
33
+ 15: cat
34
+ 16: dog
35
+ 17: horse
36
+ 18: sheep
37
+ 19: cow
38
+ 20: elephant
39
+ 21: bear
40
+ 22: zebra
41
+ 23: giraffe
42
+ 24: backpack
43
+ 25: umbrella
44
+ 26: handbag
45
+ 27: tie
46
+ 28: suitcase
47
+ 29: frisbee
48
+ 30: skis
49
+ 31: snowboard
50
+ 32: sports ball
51
+ 33: kite
52
+ 34: baseball bat
53
+ 35: baseball glove
54
+ 36: skateboard
55
+ 37: surfboard
56
+ 38: tennis racket
57
+ 39: bottle
58
+ 40: wine glass
59
+ 41: cup
60
+ 42: fork
61
+ 43: knife
62
+ 44: spoon
63
+ 45: bowl
64
+ 46: banana
65
+ 47: apple
66
+ 48: sandwich
67
+ 49: orange
68
+ 50: broccoli
69
+ 51: carrot
70
+ 52: hot dog
71
+ 53: pizza
72
+ 54: donut
73
+ 55: cake
74
+ 56: chair
75
+ 57: couch
76
+ 58: potted plant
77
+ 59: bed
78
+ 60: dining table
79
+ 61: toilet
80
+ 62: tv
81
+ 63: laptop
82
+ 64: mouse
83
+ 65: remote
84
+ 66: keyboard
85
+ 67: cell phone
86
+ 68: microwave
87
+ 69: oven
88
+ 70: toaster
89
+ 71: sink
90
+ 72: refrigerator
91
+ 73: book
92
+ 74: clock
93
+ 75: vase
94
+ 76: scissors
95
+ 77: teddy bear
96
+ 78: hair drier
97
+ 79: toothbrush
98
+
99
+ # Download script/URL (optional)
100
+ download: https://ultralytics.com/assets/coco128-seg.zip
ultralytics/cfg/datasets/coco128.yaml ADDED
@@ -0,0 +1,100 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ultralytics YOLO πŸš€, AGPL-3.0 license
2
+ # COCO128 dataset https://www.kaggle.com/ultralytics/coco128 (first 128 images from COCO train2017) by Ultralytics
3
+ # Documentation: https://docs.ultralytics.com/datasets/detect/coco/
4
+ # Example usage: yolo train data=coco128.yaml
5
+ # parent
6
+ # β”œβ”€β”€ ultralytics
7
+ # └── datasets
8
+ # └── coco128 ← downloads here (7 MB)
9
+
10
+ # 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, ..]
11
+ path: ../datasets/coco128 # dataset root dir
12
+ train: images/train2017 # train images (relative to 'path') 128 images
13
+ val: images/train2017 # val images (relative to 'path') 128 images
14
+ test: # test images (optional)
15
+
16
+ # Classes
17
+ names:
18
+ 0: person
19
+ 1: bicycle
20
+ 2: car
21
+ 3: motorcycle
22
+ 4: airplane
23
+ 5: bus
24
+ 6: train
25
+ 7: truck
26
+ 8: boat
27
+ 9: traffic light
28
+ 10: fire hydrant
29
+ 11: stop sign
30
+ 12: parking meter
31
+ 13: bench
32
+ 14: bird
33
+ 15: cat
34
+ 16: dog
35
+ 17: horse
36
+ 18: sheep
37
+ 19: cow
38
+ 20: elephant
39
+ 21: bear
40
+ 22: zebra
41
+ 23: giraffe
42
+ 24: backpack
43
+ 25: umbrella
44
+ 26: handbag
45
+ 27: tie
46
+ 28: suitcase
47
+ 29: frisbee
48
+ 30: skis
49
+ 31: snowboard
50
+ 32: sports ball
51
+ 33: kite
52
+ 34: baseball bat
53
+ 35: baseball glove
54
+ 36: skateboard
55
+ 37: surfboard
56
+ 38: tennis racket
57
+ 39: bottle
58
+ 40: wine glass
59
+ 41: cup
60
+ 42: fork
61
+ 43: knife
62
+ 44: spoon
63
+ 45: bowl
64
+ 46: banana
65
+ 47: apple
66
+ 48: sandwich
67
+ 49: orange
68
+ 50: broccoli
69
+ 51: carrot
70
+ 52: hot dog
71
+ 53: pizza
72
+ 54: donut
73
+ 55: cake
74
+ 56: chair
75
+ 57: couch
76
+ 58: potted plant
77
+ 59: bed
78
+ 60: dining table
79
+ 61: toilet
80
+ 62: tv
81
+ 63: laptop
82
+ 64: mouse
83
+ 65: remote
84
+ 66: keyboard
85
+ 67: cell phone
86
+ 68: microwave
87
+ 69: oven
88
+ 70: toaster
89
+ 71: sink
90
+ 72: refrigerator
91
+ 73: book
92
+ 74: clock
93
+ 75: vase
94
+ 76: scissors
95
+ 77: teddy bear
96
+ 78: hair drier
97
+ 79: toothbrush
98
+
99
+ # Download script/URL (optional)
100
+ download: https://ultralytics.com/assets/coco128.zip
ultralytics/cfg/datasets/coco8-pose.yaml ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ultralytics YOLO πŸš€, AGPL-3.0 license
2
+ # COCO8-pose dataset (first 8 images from COCO train2017) by Ultralytics
3
+ # Documentation: https://docs.ultralytics.com/datasets/pose/coco8-pose/
4
+ # Example usage: yolo train data=coco8-pose.yaml
5
+ # parent
6
+ # β”œβ”€β”€ ultralytics
7
+ # └── datasets
8
+ # └── coco8-pose ← downloads here (1 MB)
9
+
10
+ # 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, ..]
11
+ path: ../datasets/coco8-pose # dataset root dir
12
+ train: images/train # train images (relative to 'path') 4 images
13
+ val: images/val # val images (relative to 'path') 4 images
14
+ test: # test images (optional)
15
+
16
+ # Keypoints
17
+ kpt_shape: [17, 3] # number of keypoints, number of dims (2 for x,y or 3 for x,y,visible)
18
+ flip_idx: [0, 2, 1, 4, 3, 6, 5, 8, 7, 10, 9, 12, 11, 14, 13, 16, 15]
19
+
20
+ # Classes
21
+ names:
22
+ 0: person
23
+
24
+ # Download script/URL (optional)
25
+ download: https://ultralytics.com/assets/coco8-pose.zip
ultralytics/cfg/datasets/coco8-seg.yaml ADDED
@@ -0,0 +1,100 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ultralytics YOLO πŸš€, AGPL-3.0 license
2
+ # COCO8-seg dataset (first 8 images from COCO train2017) by Ultralytics
3
+ # Documentation: https://docs.ultralytics.com/datasets/segment/coco8-seg/
4
+ # Example usage: yolo train data=coco8-seg.yaml
5
+ # parent
6
+ # β”œβ”€β”€ ultralytics
7
+ # └── datasets
8
+ # └── coco8-seg ← downloads here (1 MB)
9
+
10
+ # 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, ..]
11
+ path: ../datasets/coco8-seg # dataset root dir
12
+ train: images/train # train images (relative to 'path') 4 images
13
+ val: images/val # val images (relative to 'path') 4 images
14
+ test: # test images (optional)
15
+
16
+ # Classes
17
+ names:
18
+ 0: person
19
+ 1: bicycle
20
+ 2: car
21
+ 3: motorcycle
22
+ 4: airplane
23
+ 5: bus
24
+ 6: train
25
+ 7: truck
26
+ 8: boat
27
+ 9: traffic light
28
+ 10: fire hydrant
29
+ 11: stop sign
30
+ 12: parking meter
31
+ 13: bench
32
+ 14: bird
33
+ 15: cat
34
+ 16: dog
35
+ 17: horse
36
+ 18: sheep
37
+ 19: cow
38
+ 20: elephant
39
+ 21: bear
40
+ 22: zebra
41
+ 23: giraffe
42
+ 24: backpack
43
+ 25: umbrella
44
+ 26: handbag
45
+ 27: tie
46
+ 28: suitcase
47
+ 29: frisbee
48
+ 30: skis
49
+ 31: snowboard
50
+ 32: sports ball
51
+ 33: kite
52
+ 34: baseball bat
53
+ 35: baseball glove
54
+ 36: skateboard
55
+ 37: surfboard
56
+ 38: tennis racket
57
+ 39: bottle
58
+ 40: wine glass
59
+ 41: cup
60
+ 42: fork
61
+ 43: knife
62
+ 44: spoon
63
+ 45: bowl
64
+ 46: banana
65
+ 47: apple
66
+ 48: sandwich
67
+ 49: orange
68
+ 50: broccoli
69
+ 51: carrot
70
+ 52: hot dog
71
+ 53: pizza
72
+ 54: donut
73
+ 55: cake
74
+ 56: chair
75
+ 57: couch
76
+ 58: potted plant
77
+ 59: bed
78
+ 60: dining table
79
+ 61: toilet
80
+ 62: tv
81
+ 63: laptop
82
+ 64: mouse
83
+ 65: remote
84
+ 66: keyboard
85
+ 67: cell phone
86
+ 68: microwave
87
+ 69: oven
88
+ 70: toaster
89
+ 71: sink
90
+ 72: refrigerator
91
+ 73: book
92
+ 74: clock
93
+ 75: vase
94
+ 76: scissors
95
+ 77: teddy bear
96
+ 78: hair drier
97
+ 79: toothbrush
98
+
99
+ # Download script/URL (optional)
100
+ download: https://ultralytics.com/assets/coco8-seg.zip
ultralytics/cfg/datasets/coco8.yaml ADDED
@@ -0,0 +1,100 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ultralytics YOLO πŸš€, AGPL-3.0 license
2
+ # COCO8 dataset (first 8 images from COCO train2017) by Ultralytics
3
+ # Documentation: https://docs.ultralytics.com/datasets/detect/coco8/
4
+ # Example usage: yolo train data=coco8.yaml
5
+ # parent
6
+ # β”œβ”€β”€ ultralytics
7
+ # └── datasets
8
+ # └── coco8 ← downloads here (1 MB)
9
+
10
+ # 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, ..]
11
+ path: ../datasets/coco8 # dataset root dir
12
+ train: images/train # train images (relative to 'path') 4 images
13
+ val: images/val # val images (relative to 'path') 4 images
14
+ test: # test images (optional)
15
+
16
+ # Classes
17
+ names:
18
+ 0: person
19
+ 1: bicycle
20
+ 2: car
21
+ 3: motorcycle
22
+ 4: airplane
23
+ 5: bus
24
+ 6: train
25
+ 7: truck
26
+ 8: boat
27
+ 9: traffic light
28
+ 10: fire hydrant
29
+ 11: stop sign
30
+ 12: parking meter
31
+ 13: bench
32
+ 14: bird
33
+ 15: cat
34
+ 16: dog
35
+ 17: horse
36
+ 18: sheep
37
+ 19: cow
38
+ 20: elephant
39
+ 21: bear
40
+ 22: zebra
41
+ 23: giraffe
42
+ 24: backpack
43
+ 25: umbrella
44
+ 26: handbag
45
+ 27: tie
46
+ 28: suitcase
47
+ 29: frisbee
48
+ 30: skis
49
+ 31: snowboard
50
+ 32: sports ball
51
+ 33: kite
52
+ 34: baseball bat
53
+ 35: baseball glove
54
+ 36: skateboard
55
+ 37: surfboard
56
+ 38: tennis racket
57
+ 39: bottle
58
+ 40: wine glass
59
+ 41: cup
60
+ 42: fork
61
+ 43: knife
62
+ 44: spoon
63
+ 45: bowl
64
+ 46: banana
65
+ 47: apple
66
+ 48: sandwich
67
+ 49: orange
68
+ 50: broccoli
69
+ 51: carrot
70
+ 52: hot dog
71
+ 53: pizza
72
+ 54: donut
73
+ 55: cake
74
+ 56: chair
75
+ 57: couch
76
+ 58: potted plant
77
+ 59: bed
78
+ 60: dining table
79
+ 61: toilet
80
+ 62: tv
81
+ 63: laptop
82
+ 64: mouse
83
+ 65: remote
84
+ 66: keyboard
85
+ 67: cell phone
86
+ 68: microwave
87
+ 69: oven
88
+ 70: toaster
89
+ 71: sink
90
+ 72: refrigerator
91
+ 73: book
92
+ 74: clock
93
+ 75: vase
94
+ 76: scissors
95
+ 77: teddy bear
96
+ 78: hair drier
97
+ 79: toothbrush
98
+
99
+ # Download script/URL (optional)
100
+ download: https://ultralytics.com/assets/coco8.zip
ultralytics/cfg/datasets/crack-seg.yaml ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ultralytics YOLO πŸš€, AGPL-3.0 license
2
+ # Crack-seg dataset by Ultralytics
3
+ # Documentation: https://docs.ultralytics.com/datasets/segment/crack-seg/
4
+ # Example usage: yolo train data=crack-seg.yaml
5
+ # parent
6
+ # β”œβ”€β”€ ultralytics
7
+ # └── datasets
8
+ # └── crack-seg ← downloads here (91.2 MB)
9
+
10
+ # 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, ..]
11
+ path: ../datasets/crack-seg # dataset root dir
12
+ train: train/images # train images (relative to 'path') 3717 images
13
+ val: valid/images # val images (relative to 'path') 112 images
14
+ test: test/images # test images (relative to 'path') 200 images
15
+
16
+ # Classes
17
+ names:
18
+ 0: crack
19
+
20
+ # Download script/URL (optional)
21
+ download: https://ultralytics.com/assets/crack-seg.zip
ultralytics/cfg/datasets/dota8.yaml ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ultralytics YOLO πŸš€, AGPL-3.0 license
2
+ # DOTA8 dataset 8 images from split DOTAv1 dataset by Ultralytics
3
+ # Documentation: https://docs.ultralytics.com/datasets/obb/dota8/
4
+ # Example usage: yolo train model=yolov8n-obb.pt data=dota8.yaml
5
+ # parent
6
+ # β”œβ”€β”€ ultralytics
7
+ # └── datasets
8
+ # └── dota8 ← downloads here (1MB)
9
+
10
+ # 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, ..]
11
+ path: ../datasets/dota8 # dataset root dir
12
+ train: images/train # train images (relative to 'path') 4 images
13
+ val: images/val # val images (relative to 'path') 4 images
14
+
15
+ # Classes for DOTA 1.0
16
+ names:
17
+ 0: plane
18
+ 1: ship
19
+ 2: storage tank
20
+ 3: baseball diamond
21
+ 4: tennis court
22
+ 5: basketball court
23
+ 6: ground track field
24
+ 7: harbor
25
+ 8: bridge
26
+ 9: large vehicle
27
+ 10: small vehicle
28
+ 11: helicopter
29
+ 12: roundabout
30
+ 13: soccer ball field
31
+ 14: swimming pool
32
+
33
+ # Download script/URL (optional)
34
+ download: https://github.com/ultralytics/yolov5/releases/download/v1.0/dota8.zip
ultralytics/cfg/datasets/open-images-v7.yaml ADDED
@@ -0,0 +1,660 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ultralytics YOLO πŸš€, AGPL-3.0 license
2
+ # Open Images v7 dataset https://storage.googleapis.com/openimages/web/index.html by Google
3
+ # Documentation: https://docs.ultralytics.com/datasets/detect/open-images-v7/
4
+ # Example usage: yolo train data=open-images-v7.yaml
5
+ # parent
6
+ # β”œβ”€β”€ ultralytics
7
+ # └── datasets
8
+ # └── open-images-v7 ← downloads here (561 GB)
9
+
10
+ # 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, ..]
11
+ path: ../datasets/open-images-v7 # dataset root dir
12
+ train: images/train # train images (relative to 'path') 1743042 images
13
+ val: images/val # val images (relative to 'path') 41620 images
14
+ test: # test images (optional)
15
+
16
+ # Classes
17
+ names:
18
+ 0: Accordion
19
+ 1: Adhesive tape
20
+ 2: Aircraft
21
+ 3: Airplane
22
+ 4: Alarm clock
23
+ 5: Alpaca
24
+ 6: Ambulance
25
+ 7: Animal
26
+ 8: Ant
27
+ 9: Antelope
28
+ 10: Apple
29
+ 11: Armadillo
30
+ 12: Artichoke
31
+ 13: Auto part
32
+ 14: Axe
33
+ 15: Backpack
34
+ 16: Bagel
35
+ 17: Baked goods
36
+ 18: Balance beam
37
+ 19: Ball
38
+ 20: Balloon
39
+ 21: Banana
40
+ 22: Band-aid
41
+ 23: Banjo
42
+ 24: Barge
43
+ 25: Barrel
44
+ 26: Baseball bat
45
+ 27: Baseball glove
46
+ 28: Bat (Animal)
47
+ 29: Bathroom accessory
48
+ 30: Bathroom cabinet
49
+ 31: Bathtub
50
+ 32: Beaker
51
+ 33: Bear
52
+ 34: Bed
53
+ 35: Bee
54
+ 36: Beehive
55
+ 37: Beer
56
+ 38: Beetle
57
+ 39: Bell pepper
58
+ 40: Belt
59
+ 41: Bench
60
+ 42: Bicycle
61
+ 43: Bicycle helmet
62
+ 44: Bicycle wheel
63
+ 45: Bidet
64
+ 46: Billboard
65
+ 47: Billiard table
66
+ 48: Binoculars
67
+ 49: Bird
68
+ 50: Blender
69
+ 51: Blue jay
70
+ 52: Boat
71
+ 53: Bomb
72
+ 54: Book
73
+ 55: Bookcase
74
+ 56: Boot
75
+ 57: Bottle
76
+ 58: Bottle opener
77
+ 59: Bow and arrow
78
+ 60: Bowl
79
+ 61: Bowling equipment
80
+ 62: Box
81
+ 63: Boy
82
+ 64: Brassiere
83
+ 65: Bread
84
+ 66: Briefcase
85
+ 67: Broccoli
86
+ 68: Bronze sculpture
87
+ 69: Brown bear
88
+ 70: Building
89
+ 71: Bull
90
+ 72: Burrito
91
+ 73: Bus
92
+ 74: Bust
93
+ 75: Butterfly
94
+ 76: Cabbage
95
+ 77: Cabinetry
96
+ 78: Cake
97
+ 79: Cake stand
98
+ 80: Calculator
99
+ 81: Camel
100
+ 82: Camera
101
+ 83: Can opener
102
+ 84: Canary
103
+ 85: Candle
104
+ 86: Candy
105
+ 87: Cannon
106
+ 88: Canoe
107
+ 89: Cantaloupe
108
+ 90: Car
109
+ 91: Carnivore
110
+ 92: Carrot
111
+ 93: Cart
112
+ 94: Cassette deck
113
+ 95: Castle
114
+ 96: Cat
115
+ 97: Cat furniture
116
+ 98: Caterpillar
117
+ 99: Cattle
118
+ 100: Ceiling fan
119
+ 101: Cello
120
+ 102: Centipede
121
+ 103: Chainsaw
122
+ 104: Chair
123
+ 105: Cheese
124
+ 106: Cheetah
125
+ 107: Chest of drawers
126
+ 108: Chicken
127
+ 109: Chime
128
+ 110: Chisel
129
+ 111: Chopsticks
130
+ 112: Christmas tree
131
+ 113: Clock
132
+ 114: Closet
133
+ 115: Clothing
134
+ 116: Coat
135
+ 117: Cocktail
136
+ 118: Cocktail shaker
137
+ 119: Coconut
138
+ 120: Coffee
139
+ 121: Coffee cup
140
+ 122: Coffee table
141
+ 123: Coffeemaker
142
+ 124: Coin
143
+ 125: Common fig
144
+ 126: Common sunflower
145
+ 127: Computer keyboard
146
+ 128: Computer monitor
147
+ 129: Computer mouse
148
+ 130: Container
149
+ 131: Convenience store
150
+ 132: Cookie
151
+ 133: Cooking spray
152
+ 134: Corded phone
153
+ 135: Cosmetics
154
+ 136: Couch
155
+ 137: Countertop
156
+ 138: Cowboy hat
157
+ 139: Crab
158
+ 140: Cream
159
+ 141: Cricket ball
160
+ 142: Crocodile
161
+ 143: Croissant
162
+ 144: Crown
163
+ 145: Crutch
164
+ 146: Cucumber
165
+ 147: Cupboard
166
+ 148: Curtain
167
+ 149: Cutting board
168
+ 150: Dagger
169
+ 151: Dairy Product
170
+ 152: Deer
171
+ 153: Desk
172
+ 154: Dessert
173
+ 155: Diaper
174
+ 156: Dice
175
+ 157: Digital clock
176
+ 158: Dinosaur
177
+ 159: Dishwasher
178
+ 160: Dog
179
+ 161: Dog bed
180
+ 162: Doll
181
+ 163: Dolphin
182
+ 164: Door
183
+ 165: Door handle
184
+ 166: Doughnut
185
+ 167: Dragonfly
186
+ 168: Drawer
187
+ 169: Dress
188
+ 170: Drill (Tool)
189
+ 171: Drink
190
+ 172: Drinking straw
191
+ 173: Drum
192
+ 174: Duck
193
+ 175: Dumbbell
194
+ 176: Eagle
195
+ 177: Earrings
196
+ 178: Egg (Food)
197
+ 179: Elephant
198
+ 180: Envelope
199
+ 181: Eraser
200
+ 182: Face powder
201
+ 183: Facial tissue holder
202
+ 184: Falcon
203
+ 185: Fashion accessory
204
+ 186: Fast food
205
+ 187: Fax
206
+ 188: Fedora
207
+ 189: Filing cabinet
208
+ 190: Fire hydrant
209
+ 191: Fireplace
210
+ 192: Fish
211
+ 193: Flag
212
+ 194: Flashlight
213
+ 195: Flower
214
+ 196: Flowerpot
215
+ 197: Flute
216
+ 198: Flying disc
217
+ 199: Food
218
+ 200: Food processor
219
+ 201: Football
220
+ 202: Football helmet
221
+ 203: Footwear
222
+ 204: Fork
223
+ 205: Fountain
224
+ 206: Fox
225
+ 207: French fries
226
+ 208: French horn
227
+ 209: Frog
228
+ 210: Fruit
229
+ 211: Frying pan
230
+ 212: Furniture
231
+ 213: Garden Asparagus
232
+ 214: Gas stove
233
+ 215: Giraffe
234
+ 216: Girl
235
+ 217: Glasses
236
+ 218: Glove
237
+ 219: Goat
238
+ 220: Goggles
239
+ 221: Goldfish
240
+ 222: Golf ball
241
+ 223: Golf cart
242
+ 224: Gondola
243
+ 225: Goose
244
+ 226: Grape
245
+ 227: Grapefruit
246
+ 228: Grinder
247
+ 229: Guacamole
248
+ 230: Guitar
249
+ 231: Hair dryer
250
+ 232: Hair spray
251
+ 233: Hamburger
252
+ 234: Hammer
253
+ 235: Hamster
254
+ 236: Hand dryer
255
+ 237: Handbag
256
+ 238: Handgun
257
+ 239: Harbor seal
258
+ 240: Harmonica
259
+ 241: Harp
260
+ 242: Harpsichord
261
+ 243: Hat
262
+ 244: Headphones
263
+ 245: Heater
264
+ 246: Hedgehog
265
+ 247: Helicopter
266
+ 248: Helmet
267
+ 249: High heels
268
+ 250: Hiking equipment
269
+ 251: Hippopotamus
270
+ 252: Home appliance
271
+ 253: Honeycomb
272
+ 254: Horizontal bar
273
+ 255: Horse
274
+ 256: Hot dog
275
+ 257: House
276
+ 258: Houseplant
277
+ 259: Human arm
278
+ 260: Human beard
279
+ 261: Human body
280
+ 262: Human ear
281
+ 263: Human eye
282
+ 264: Human face
283
+ 265: Human foot
284
+ 266: Human hair
285
+ 267: Human hand
286
+ 268: Human head
287
+ 269: Human leg
288
+ 270: Human mouth
289
+ 271: Human nose
290
+ 272: Humidifier
291
+ 273: Ice cream
292
+ 274: Indoor rower
293
+ 275: Infant bed
294
+ 276: Insect
295
+ 277: Invertebrate
296
+ 278: Ipod
297
+ 279: Isopod
298
+ 280: Jacket
299
+ 281: Jacuzzi
300
+ 282: Jaguar (Animal)
301
+ 283: Jeans
302
+ 284: Jellyfish
303
+ 285: Jet ski
304
+ 286: Jug
305
+ 287: Juice
306
+ 288: Kangaroo
307
+ 289: Kettle
308
+ 290: Kitchen & dining room table
309
+ 291: Kitchen appliance
310
+ 292: Kitchen knife
311
+ 293: Kitchen utensil
312
+ 294: Kitchenware
313
+ 295: Kite
314
+ 296: Knife
315
+ 297: Koala
316
+ 298: Ladder
317
+ 299: Ladle
318
+ 300: Ladybug
319
+ 301: Lamp
320
+ 302: Land vehicle
321
+ 303: Lantern
322
+ 304: Laptop
323
+ 305: Lavender (Plant)
324
+ 306: Lemon
325
+ 307: Leopard
326
+ 308: Light bulb
327
+ 309: Light switch
328
+ 310: Lighthouse
329
+ 311: Lily
330
+ 312: Limousine
331
+ 313: Lion
332
+ 314: Lipstick
333
+ 315: Lizard
334
+ 316: Lobster
335
+ 317: Loveseat
336
+ 318: Luggage and bags
337
+ 319: Lynx
338
+ 320: Magpie
339
+ 321: Mammal
340
+ 322: Man
341
+ 323: Mango
342
+ 324: Maple
343
+ 325: Maracas
344
+ 326: Marine invertebrates
345
+ 327: Marine mammal
346
+ 328: Measuring cup
347
+ 329: Mechanical fan
348
+ 330: Medical equipment
349
+ 331: Microphone
350
+ 332: Microwave oven
351
+ 333: Milk
352
+ 334: Miniskirt
353
+ 335: Mirror
354
+ 336: Missile
355
+ 337: Mixer
356
+ 338: Mixing bowl
357
+ 339: Mobile phone
358
+ 340: Monkey
359
+ 341: Moths and butterflies
360
+ 342: Motorcycle
361
+ 343: Mouse
362
+ 344: Muffin
363
+ 345: Mug
364
+ 346: Mule
365
+ 347: Mushroom
366
+ 348: Musical instrument
367
+ 349: Musical keyboard
368
+ 350: Nail (Construction)
369
+ 351: Necklace
370
+ 352: Nightstand
371
+ 353: Oboe
372
+ 354: Office building
373
+ 355: Office supplies
374
+ 356: Orange
375
+ 357: Organ (Musical Instrument)
376
+ 358: Ostrich
377
+ 359: Otter
378
+ 360: Oven
379
+ 361: Owl
380
+ 362: Oyster
381
+ 363: Paddle
382
+ 364: Palm tree
383
+ 365: Pancake
384
+ 366: Panda
385
+ 367: Paper cutter
386
+ 368: Paper towel
387
+ 369: Parachute
388
+ 370: Parking meter
389
+ 371: Parrot
390
+ 372: Pasta
391
+ 373: Pastry
392
+ 374: Peach
393
+ 375: Pear
394
+ 376: Pen
395
+ 377: Pencil case
396
+ 378: Pencil sharpener
397
+ 379: Penguin
398
+ 380: Perfume
399
+ 381: Person
400
+ 382: Personal care
401
+ 383: Personal flotation device
402
+ 384: Piano
403
+ 385: Picnic basket
404
+ 386: Picture frame
405
+ 387: Pig
406
+ 388: Pillow
407
+ 389: Pineapple
408
+ 390: Pitcher (Container)
409
+ 391: Pizza
410
+ 392: Pizza cutter
411
+ 393: Plant
412
+ 394: Plastic bag
413
+ 395: Plate
414
+ 396: Platter
415
+ 397: Plumbing fixture
416
+ 398: Polar bear
417
+ 399: Pomegranate
418
+ 400: Popcorn
419
+ 401: Porch
420
+ 402: Porcupine
421
+ 403: Poster
422
+ 404: Potato
423
+ 405: Power plugs and sockets
424
+ 406: Pressure cooker
425
+ 407: Pretzel
426
+ 408: Printer
427
+ 409: Pumpkin
428
+ 410: Punching bag
429
+ 411: Rabbit
430
+ 412: Raccoon
431
+ 413: Racket
432
+ 414: Radish
433
+ 415: Ratchet (Device)
434
+ 416: Raven
435
+ 417: Rays and skates
436
+ 418: Red panda
437
+ 419: Refrigerator
438
+ 420: Remote control
439
+ 421: Reptile
440
+ 422: Rhinoceros
441
+ 423: Rifle
442
+ 424: Ring binder
443
+ 425: Rocket
444
+ 426: Roller skates
445
+ 427: Rose
446
+ 428: Rugby ball
447
+ 429: Ruler
448
+ 430: Salad
449
+ 431: Salt and pepper shakers
450
+ 432: Sandal
451
+ 433: Sandwich
452
+ 434: Saucer
453
+ 435: Saxophone
454
+ 436: Scale
455
+ 437: Scarf
456
+ 438: Scissors
457
+ 439: Scoreboard
458
+ 440: Scorpion
459
+ 441: Screwdriver
460
+ 442: Sculpture
461
+ 443: Sea lion
462
+ 444: Sea turtle
463
+ 445: Seafood
464
+ 446: Seahorse
465
+ 447: Seat belt
466
+ 448: Segway
467
+ 449: Serving tray
468
+ 450: Sewing machine
469
+ 451: Shark
470
+ 452: Sheep
471
+ 453: Shelf
472
+ 454: Shellfish
473
+ 455: Shirt
474
+ 456: Shorts
475
+ 457: Shotgun
476
+ 458: Shower
477
+ 459: Shrimp
478
+ 460: Sink
479
+ 461: Skateboard
480
+ 462: Ski
481
+ 463: Skirt
482
+ 464: Skull
483
+ 465: Skunk
484
+ 466: Skyscraper
485
+ 467: Slow cooker
486
+ 468: Snack
487
+ 469: Snail
488
+ 470: Snake
489
+ 471: Snowboard
490
+ 472: Snowman
491
+ 473: Snowmobile
492
+ 474: Snowplow
493
+ 475: Soap dispenser
494
+ 476: Sock
495
+ 477: Sofa bed
496
+ 478: Sombrero
497
+ 479: Sparrow
498
+ 480: Spatula
499
+ 481: Spice rack
500
+ 482: Spider
501
+ 483: Spoon
502
+ 484: Sports equipment
503
+ 485: Sports uniform
504
+ 486: Squash (Plant)
505
+ 487: Squid
506
+ 488: Squirrel
507
+ 489: Stairs
508
+ 490: Stapler
509
+ 491: Starfish
510
+ 492: Stationary bicycle
511
+ 493: Stethoscope
512
+ 494: Stool
513
+ 495: Stop sign
514
+ 496: Strawberry
515
+ 497: Street light
516
+ 498: Stretcher
517
+ 499: Studio couch
518
+ 500: Submarine
519
+ 501: Submarine sandwich
520
+ 502: Suit
521
+ 503: Suitcase
522
+ 504: Sun hat
523
+ 505: Sunglasses
524
+ 506: Surfboard
525
+ 507: Sushi
526
+ 508: Swan
527
+ 509: Swim cap
528
+ 510: Swimming pool
529
+ 511: Swimwear
530
+ 512: Sword
531
+ 513: Syringe
532
+ 514: Table
533
+ 515: Table tennis racket
534
+ 516: Tablet computer
535
+ 517: Tableware
536
+ 518: Taco
537
+ 519: Tank
538
+ 520: Tap
539
+ 521: Tart
540
+ 522: Taxi
541
+ 523: Tea
542
+ 524: Teapot
543
+ 525: Teddy bear
544
+ 526: Telephone
545
+ 527: Television
546
+ 528: Tennis ball
547
+ 529: Tennis racket
548
+ 530: Tent
549
+ 531: Tiara
550
+ 532: Tick
551
+ 533: Tie
552
+ 534: Tiger
553
+ 535: Tin can
554
+ 536: Tire
555
+ 537: Toaster
556
+ 538: Toilet
557
+ 539: Toilet paper
558
+ 540: Tomato
559
+ 541: Tool
560
+ 542: Toothbrush
561
+ 543: Torch
562
+ 544: Tortoise
563
+ 545: Towel
564
+ 546: Tower
565
+ 547: Toy
566
+ 548: Traffic light
567
+ 549: Traffic sign
568
+ 550: Train
569
+ 551: Training bench
570
+ 552: Treadmill
571
+ 553: Tree
572
+ 554: Tree house
573
+ 555: Tripod
574
+ 556: Trombone
575
+ 557: Trousers
576
+ 558: Truck
577
+ 559: Trumpet
578
+ 560: Turkey
579
+ 561: Turtle
580
+ 562: Umbrella
581
+ 563: Unicycle
582
+ 564: Van
583
+ 565: Vase
584
+ 566: Vegetable
585
+ 567: Vehicle
586
+ 568: Vehicle registration plate
587
+ 569: Violin
588
+ 570: Volleyball (Ball)
589
+ 571: Waffle
590
+ 572: Waffle iron
591
+ 573: Wall clock
592
+ 574: Wardrobe
593
+ 575: Washing machine
594
+ 576: Waste container
595
+ 577: Watch
596
+ 578: Watercraft
597
+ 579: Watermelon
598
+ 580: Weapon
599
+ 581: Whale
600
+ 582: Wheel
601
+ 583: Wheelchair
602
+ 584: Whisk
603
+ 585: Whiteboard
604
+ 586: Willow
605
+ 587: Window
606
+ 588: Window blind
607
+ 589: Wine
608
+ 590: Wine glass
609
+ 591: Wine rack
610
+ 592: Winter melon
611
+ 593: Wok
612
+ 594: Woman
613
+ 595: Wood-burning stove
614
+ 596: Woodpecker
615
+ 597: Worm
616
+ 598: Wrench
617
+ 599: Zebra
618
+ 600: Zucchini
619
+
620
+ # Download script/URL (optional) ---------------------------------------------------------------------------------------
621
+ download: |
622
+ from ultralytics.utils import LOGGER, SETTINGS, Path, is_ubuntu, get_ubuntu_version
623
+ from ultralytics.utils.checks import check_requirements, check_version
624
+
625
+ check_requirements('fiftyone')
626
+ if is_ubuntu() and check_version(get_ubuntu_version(), '>=22.04'):
627
+ # Ubuntu>=22.04 patch https://github.com/voxel51/fiftyone/issues/2961#issuecomment-1666519347
628
+ check_requirements('fiftyone-db-ubuntu2204')
629
+
630
+ import fiftyone as fo
631
+ import fiftyone.zoo as foz
632
+ import warnings
633
+
634
+ name = 'open-images-v7'
635
+ fraction = 1.0 # fraction of full dataset to use
636
+ LOGGER.warning('WARNING ⚠️ Open Images V7 dataset requires at least **561 GB of free space. Starting download...')
637
+ for split in 'train', 'validation': # 1743042 train, 41620 val images
638
+ train = split == 'train'
639
+
640
+ # Load Open Images dataset
641
+ dataset = foz.load_zoo_dataset(name,
642
+ split=split,
643
+ label_types=['detections'],
644
+ dataset_dir=Path(SETTINGS['datasets_dir']) / 'fiftyone' / name,
645
+ max_samples=round((1743042 if train else 41620) * fraction))
646
+
647
+ # Define classes
648
+ if train:
649
+ classes = dataset.default_classes # all classes
650
+ # classes = dataset.distinct('ground_truth.detections.label') # only observed classes
651
+
652
+ # Export to YOLO format
653
+ with warnings.catch_warnings():
654
+ warnings.filterwarnings("ignore", category=UserWarning, module="fiftyone.utils.yolo")
655
+ dataset.export(export_dir=str(Path(SETTINGS['datasets_dir']) / name),
656
+ dataset_type=fo.types.YOLOv5Dataset,
657
+ label_field='ground_truth',
658
+ split='val' if split == 'validation' else split,
659
+ classes=classes,
660
+ overwrite=train)
ultralytics/cfg/datasets/package-seg.yaml ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ultralytics YOLO πŸš€, AGPL-3.0 license
2
+ # Package-seg dataset by Ultralytics
3
+ # Documentation: https://docs.ultralytics.com/datasets/segment/package-seg/
4
+ # Example usage: yolo train data=package-seg.yaml
5
+ # parent
6
+ # β”œβ”€β”€ ultralytics
7
+ # └── datasets
8
+ # └── package-seg ← downloads here (102 MB)
9
+
10
+ # 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, ..]
11
+ path: ../datasets/package-seg # dataset root dir
12
+ train: images/train # train images (relative to 'path') 1920 images
13
+ val: images/val # val images (relative to 'path') 89 images
14
+ test: test/images # test images (relative to 'path') 188 images
15
+
16
+ # Classes
17
+ names:
18
+ 0: package
19
+
20
+ # Download script/URL (optional)
21
+ download: https://ultralytics.com/assets/package-seg.zip
ultralytics/cfg/datasets/tiger-pose.yaml ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ultralytics YOLO πŸš€, AGPL-3.0 license
2
+ # Tiger Pose dataset by Ultralytics
3
+ # Documentation: https://docs.ultralytics.com/datasets/pose/tiger-pose/
4
+ # Example usage: yolo train data=tiger-pose.yaml
5
+ # parent
6
+ # β”œβ”€β”€ ultralytics
7
+ # └── datasets
8
+ # └── tiger-pose ← downloads here (75.3 MB)
9
+
10
+ # 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, ..]
11
+ path: ../datasets/tiger-pose # dataset root dir
12
+ train: train # train images (relative to 'path') 210 images
13
+ val: val # val images (relative to 'path') 53 images
14
+
15
+ # Keypoints
16
+ kpt_shape: [12, 2] # number of keypoints, number of dims (2 for x,y or 3 for x,y,visible)
17
+ flip_idx: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
18
+
19
+ # Classes
20
+ names:
21
+ 0: tiger
22
+
23
+ # Download script/URL (optional)
24
+ download: https://ultralytics.com/assets/tiger-pose.zip
ultralytics/cfg/datasets/xView.yaml ADDED
@@ -0,0 +1,152 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ultralytics YOLO πŸš€, AGPL-3.0 license
2
+ # DIUx xView 2018 Challenge https://challenge.xviewdataset.org by U.S. National Geospatial-Intelligence Agency (NGA)
3
+ # -------- DOWNLOAD DATA MANUALLY and jar xf val_images.zip to 'datasets/xView' before running train command! --------
4
+ # Documentation: https://docs.ultralytics.com/datasets/detect/xview/
5
+ # Example usage: yolo train data=xView.yaml
6
+ # parent
7
+ # β”œβ”€β”€ ultralytics
8
+ # └── datasets
9
+ # └── xView ← downloads here (20.7 GB)
10
+
11
+ # 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, ..]
12
+ path: ../datasets/xView # dataset root dir
13
+ train: images/autosplit_train.txt # train images (relative to 'path') 90% of 847 train images
14
+ val: images/autosplit_val.txt # train images (relative to 'path') 10% of 847 train images
15
+
16
+ # Classes
17
+ names:
18
+ 0: Fixed-wing Aircraft
19
+ 1: Small Aircraft
20
+ 2: Cargo Plane
21
+ 3: Helicopter
22
+ 4: Passenger Vehicle
23
+ 5: Small Car
24
+ 6: Bus
25
+ 7: Pickup Truck
26
+ 8: Utility Truck
27
+ 9: Truck
28
+ 10: Cargo Truck
29
+ 11: Truck w/Box
30
+ 12: Truck Tractor
31
+ 13: Trailer
32
+ 14: Truck w/Flatbed
33
+ 15: Truck w/Liquid
34
+ 16: Crane Truck
35
+ 17: Railway Vehicle
36
+ 18: Passenger Car
37
+ 19: Cargo Car
38
+ 20: Flat Car
39
+ 21: Tank car
40
+ 22: Locomotive
41
+ 23: Maritime Vessel
42
+ 24: Motorboat
43
+ 25: Sailboat
44
+ 26: Tugboat
45
+ 27: Barge
46
+ 28: Fishing Vessel
47
+ 29: Ferry
48
+ 30: Yacht
49
+ 31: Container Ship
50
+ 32: Oil Tanker
51
+ 33: Engineering Vehicle
52
+ 34: Tower crane
53
+ 35: Container Crane
54
+ 36: Reach Stacker
55
+ 37: Straddle Carrier
56
+ 38: Mobile Crane
57
+ 39: Dump Truck
58
+ 40: Haul Truck
59
+ 41: Scraper/Tractor
60
+ 42: Front loader/Bulldozer
61
+ 43: Excavator
62
+ 44: Cement Mixer
63
+ 45: Ground Grader
64
+ 46: Hut/Tent
65
+ 47: Shed
66
+ 48: Building
67
+ 49: Aircraft Hangar
68
+ 50: Damaged Building
69
+ 51: Facility
70
+ 52: Construction Site
71
+ 53: Vehicle Lot
72
+ 54: Helipad
73
+ 55: Storage Tank
74
+ 56: Shipping container lot
75
+ 57: Shipping Container
76
+ 58: Pylon
77
+ 59: Tower
78
+
79
+ # Download script/URL (optional) ---------------------------------------------------------------------------------------
80
+ download: |
81
+ import json
82
+ import os
83
+ from pathlib import Path
84
+
85
+ import numpy as np
86
+ from PIL import Image
87
+ from tqdm import tqdm
88
+
89
+ from ultralytics.data.utils import autosplit
90
+ from ultralytics.utils.ops import xyxy2xywhn
91
+
92
+
93
+ def convert_labels(fname=Path('xView/xView_train.geojson')):
94
+ # Convert xView geoJSON labels to YOLO format
95
+ path = fname.parent
96
+ with open(fname) as f:
97
+ print(f'Loading {fname}...')
98
+ data = json.load(f)
99
+
100
+ # Make dirs
101
+ labels = Path(path / 'labels' / 'train')
102
+ os.system(f'rm -rf {labels}')
103
+ labels.mkdir(parents=True, exist_ok=True)
104
+
105
+ # xView classes 11-94 to 0-59
106
+ xview_class2index = [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, -1, 3, -1, 4, 5, 6, 7, 8, -1, 9, 10, 11,
107
+ 12, 13, 14, 15, -1, -1, 16, 17, 18, 19, 20, 21, 22, -1, 23, 24, 25, -1, 26, 27, -1, 28, -1,
108
+ 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, 38, 39, 40, 41, 42, 43, 44, 45, -1, -1, -1, -1, 46,
109
+ 47, 48, 49, -1, 50, 51, -1, 52, -1, -1, -1, 53, 54, -1, 55, -1, -1, 56, -1, 57, -1, 58, 59]
110
+
111
+ shapes = {}
112
+ for feature in tqdm(data['features'], desc=f'Converting {fname}'):
113
+ p = feature['properties']
114
+ if p['bounds_imcoords']:
115
+ id = p['image_id']
116
+ file = path / 'train_images' / id
117
+ if file.exists(): # 1395.tif missing
118
+ try:
119
+ box = np.array([int(num) for num in p['bounds_imcoords'].split(",")])
120
+ assert box.shape[0] == 4, f'incorrect box shape {box.shape[0]}'
121
+ cls = p['type_id']
122
+ cls = xview_class2index[int(cls)] # xView class to 0-60
123
+ assert 59 >= cls >= 0, f'incorrect class index {cls}'
124
+
125
+ # Write YOLO label
126
+ if id not in shapes:
127
+ shapes[id] = Image.open(file).size
128
+ box = xyxy2xywhn(box[None].astype(np.float), w=shapes[id][0], h=shapes[id][1], clip=True)
129
+ with open((labels / id).with_suffix('.txt'), 'a') as f:
130
+ f.write(f"{cls} {' '.join(f'{x:.6f}' for x in box[0])}\n") # write label.txt
131
+ except Exception as e:
132
+ print(f'WARNING: skipping one label for {file}: {e}')
133
+
134
+
135
+ # Download manually from https://challenge.xviewdataset.org
136
+ dir = Path(yaml['path']) # dataset root dir
137
+ # urls = ['https://d307kc0mrhucc3.cloudfront.net/train_labels.zip', # train labels
138
+ # 'https://d307kc0mrhucc3.cloudfront.net/train_images.zip', # 15G, 847 train images
139
+ # 'https://d307kc0mrhucc3.cloudfront.net/val_images.zip'] # 5G, 282 val images (no labels)
140
+ # download(urls, dir=dir)
141
+
142
+ # Convert labels
143
+ convert_labels(dir / 'xView_train.geojson')
144
+
145
+ # Move images
146
+ images = Path(dir / 'images')
147
+ images.mkdir(parents=True, exist_ok=True)
148
+ Path(dir / 'train_images').rename(dir / 'images' / 'train')
149
+ Path(dir / 'val_images').rename(dir / 'images' / 'val')
150
+
151
+ # Split
152
+ autosplit(dir / 'images' / 'train')
ultralytics/cfg/default.yaml ADDED
@@ -0,0 +1,127 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ultralytics YOLO πŸš€, AGPL-3.0 license
2
+ # Default training settings and hyperparameters for medium-augmentation COCO training
3
+
4
+ task: detect # (str) YOLO task, i.e. detect, segment, classify, pose
5
+ mode: train # (str) YOLO mode, i.e. train, val, predict, export, track, benchmark
6
+
7
+ # Train settings -------------------------------------------------------------------------------------------------------
8
+ model: # (str, optional) path to model file, i.e. yolov8n.pt, yolov8n.yaml
9
+ data: # (str, optional) path to data file, i.e. coco128.yaml
10
+ epochs: 100 # (int) number of epochs to train for
11
+ time: # (float, optional) number of hours to train for, overrides epochs if supplied
12
+ patience: 100 # (int) epochs to wait for no observable improvement for early stopping of training
13
+ batch: 16 # (int) number of images per batch (-1 for AutoBatch)
14
+ imgsz: 640 # (int | list) input images size as int for train and val modes, or list[w,h] for predict and export modes
15
+ save: True # (bool) save train checkpoints and predict results
16
+ save_period: -1 # (int) Save checkpoint every x epochs (disabled if < 1)
17
+ val_period: 1 # (int) Validation every x epochs
18
+ cache: False # (bool) True/ram, disk or False. Use cache for data loading
19
+ device: # (int | str | list, optional) device to run on, i.e. cuda device=0 or device=0,1,2,3 or device=cpu
20
+ workers: 8 # (int) number of worker threads for data loading (per RANK if DDP)
21
+ project: # (str, optional) project name
22
+ name: # (str, optional) experiment name, results saved to 'project/name' directory
23
+ exist_ok: False # (bool) whether to overwrite existing experiment
24
+ pretrained: True # (bool | str) whether to use a pretrained model (bool) or a model to load weights from (str)
25
+ optimizer: auto # (str) optimizer to use, choices=[SGD, Adam, Adamax, AdamW, NAdam, RAdam, RMSProp, auto]
26
+ verbose: True # (bool) whether to print verbose output
27
+ seed: 0 # (int) random seed for reproducibility
28
+ deterministic: True # (bool) whether to enable deterministic mode
29
+ single_cls: False # (bool) train multi-class data as single-class
30
+ rect: False # (bool) rectangular training if mode='train' or rectangular validation if mode='val'
31
+ cos_lr: False # (bool) use cosine learning rate scheduler
32
+ close_mosaic: 10 # (int) disable mosaic augmentation for final epochs (0 to disable)
33
+ resume: False # (bool) resume training from last checkpoint
34
+ amp: True # (bool) Automatic Mixed Precision (AMP) training, choices=[True, False], True runs AMP check
35
+ fraction: 1.0 # (float) dataset fraction to train on (default is 1.0, all images in train set)
36
+ profile: False # (bool) profile ONNX and TensorRT speeds during training for loggers
37
+ freeze: None # (int | list, optional) freeze first n layers, or freeze list of layer indices during training
38
+ multi_scale: False # (bool) Whether to use multiscale during training
39
+ # Segmentation
40
+ overlap_mask: True # (bool) masks should overlap during training (segment train only)
41
+ mask_ratio: 4 # (int) mask downsample ratio (segment train only)
42
+ # Classification
43
+ dropout: 0.0 # (float) use dropout regularization (classify train only)
44
+
45
+ # Val/Test settings ----------------------------------------------------------------------------------------------------
46
+ val: True # (bool) validate/test during training
47
+ split: val # (str) dataset split to use for validation, i.e. 'val', 'test' or 'train'
48
+ save_json: False # (bool) save results to JSON file
49
+ save_hybrid: False # (bool) save hybrid version of labels (labels + additional predictions)
50
+ conf: # (float, optional) object confidence threshold for detection (default 0.25 predict, 0.001 val)
51
+ iou: 0.7 # (float) intersection over union (IoU) threshold for NMS
52
+ max_det: 300 # (int) maximum number of detections per image
53
+ half: False # (bool) use half precision (FP16)
54
+ dnn: False # (bool) use OpenCV DNN for ONNX inference
55
+ plots: True # (bool) save plots and images during train/val
56
+
57
+ # Predict settings -----------------------------------------------------------------------------------------------------
58
+ source: # (str, optional) source directory for images or videos
59
+ vid_stride: 1 # (int) video frame-rate stride
60
+ stream_buffer: False # (bool) buffer all streaming frames (True) or return the most recent frame (False)
61
+ visualize: False # (bool) visualize model features
62
+ augment: False # (bool) apply image augmentation to prediction sources
63
+ agnostic_nms: False # (bool) class-agnostic NMS
64
+ classes: # (int | list[int], optional) filter results by class, i.e. classes=0, or classes=[0,2,3]
65
+ retina_masks: False # (bool) use high-resolution segmentation masks
66
+ embed: # (list[int], optional) return feature vectors/embeddings from given layers
67
+
68
+ # Visualize settings ---------------------------------------------------------------------------------------------------
69
+ show: False # (bool) show predicted images and videos if environment allows
70
+ save_frames: False # (bool) save predicted individual video frames
71
+ save_txt: False # (bool) save results as .txt file
72
+ save_conf: False # (bool) save results with confidence scores
73
+ save_crop: False # (bool) save cropped images with results
74
+ show_labels: True # (bool) show prediction labels, i.e. 'person'
75
+ show_conf: True # (bool) show prediction confidence, i.e. '0.99'
76
+ show_boxes: True # (bool) show prediction boxes
77
+ line_width: # (int, optional) line width of the bounding boxes. Scaled to image size if None.
78
+
79
+ # Export settings ------------------------------------------------------------------------------------------------------
80
+ format: torchscript # (str) format to export to, choices at https://docs.ultralytics.com/modes/export/#export-formats
81
+ keras: False # (bool) use Kera=s
82
+ optimize: False # (bool) TorchScript: optimize for mobile
83
+ int8: False # (bool) CoreML/TF INT8 quantization
84
+ dynamic: False # (bool) ONNX/TF/TensorRT: dynamic axes
85
+ simplify: False # (bool) ONNX: simplify model
86
+ opset: # (int, optional) ONNX: opset version
87
+ workspace: 4 # (int) TensorRT: workspace size (GB)
88
+ nms: False # (bool) CoreML: add NMS
89
+
90
+ # Hyperparameters ------------------------------------------------------------------------------------------------------
91
+ lr0: 0.01 # (float) initial learning rate (i.e. SGD=1E-2, Adam=1E-3)
92
+ lrf: 0.01 # (float) final learning rate (lr0 * lrf)
93
+ momentum: 0.937 # (float) SGD momentum/Adam beta1
94
+ weight_decay: 0.0005 # (float) optimizer weight decay 5e-4
95
+ warmup_epochs: 3.0 # (float) warmup epochs (fractions ok)
96
+ warmup_momentum: 0.8 # (float) warmup initial momentum
97
+ warmup_bias_lr: 0.1 # (float) warmup initial bias lr
98
+ box: 7.5 # (float) box loss gain
99
+ cls: 0.5 # (float) cls loss gain (scale with pixels)
100
+ dfl: 1.5 # (float) dfl loss gain
101
+ pose: 12.0 # (float) pose loss gain
102
+ kobj: 1.0 # (float) keypoint obj loss gain
103
+ label_smoothing: 0.0 # (float) label smoothing (fraction)
104
+ nbs: 64 # (int) nominal batch size
105
+ hsv_h: 0.015 # (float) image HSV-Hue augmentation (fraction)
106
+ hsv_s: 0.7 # (float) image HSV-Saturation augmentation (fraction)
107
+ hsv_v: 0.4 # (float) image HSV-Value augmentation (fraction)
108
+ degrees: 0.0 # (float) image rotation (+/- deg)
109
+ translate: 0.1 # (float) image translation (+/- fraction)
110
+ scale: 0.5 # (float) image scale (+/- gain)
111
+ shear: 0.0 # (float) image shear (+/- deg)
112
+ perspective: 0.0 # (float) image perspective (+/- fraction), range 0-0.001
113
+ flipud: 0.0 # (float) image flip up-down (probability)
114
+ fliplr: 0.5 # (float) image flip left-right (probability)
115
+ bgr: 0.0 # (float) image channel BGR (probability)
116
+ mosaic: 1.0 # (float) image mosaic (probability)
117
+ mixup: 0.0 # (float) image mixup (probability)
118
+ copy_paste: 0.0 # (float) segment copy-paste (probability)
119
+ auto_augment: randaugment # (str) auto augmentation policy for classification (randaugment, autoaugment, augmix)
120
+ erasing: 0.4 # (float) probability of random erasing during classification training (0-1)
121
+ crop_fraction: 1.0 # (float) image crop fraction for classification evaluation/inference (0-1)
122
+
123
+ # Custom config.yaml ---------------------------------------------------------------------------------------------------
124
+ cfg: # (str, optional) for overriding defaults.yaml
125
+
126
+ # Tracker settings ------------------------------------------------------------------------------------------------------
127
+ tracker: botsort.yaml # (str) tracker type, choices=[botsort.yaml, bytetrack.yaml]
ultralytics/cfg/models/README.md ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ## Models
2
+
3
+ Welcome to the Ultralytics Models directory! Here you will find a wide variety of pre-configured model configuration files (`*.yaml`s) that can be used to create custom YOLO models. The models in this directory have been expertly crafted and fine-tuned by the Ultralytics team to provide the best performance for a wide range of object detection and image segmentation tasks.
4
+
5
+ These model configurations cover a wide range of scenarios, from simple object detection to more complex tasks like instance segmentation and object tracking. They are also designed to run efficiently on a variety of hardware platforms, from CPUs to GPUs. Whether you are a seasoned machine learning practitioner or just getting started with YOLO, this directory provides a great starting point for your custom model development needs.
6
+
7
+ To get started, simply browse through the models in this directory and find one that best suits your needs. Once you've selected a model, you can use the provided `*.yaml` file to train and deploy your custom YOLO model with ease. See full details at the Ultralytics [Docs](https://docs.ultralytics.com/models), and if you need help or have any questions, feel free to reach out to the Ultralytics team for support. So, don't wait, start creating your custom YOLO model now!
8
+
9
+ ### Usage
10
+
11
+ Model `*.yaml` files may be used directly in the Command Line Interface (CLI) with a `yolo` command:
12
+
13
+ ```bash
14
+ yolo task=detect mode=train model=yolov8n.yaml data=coco128.yaml epochs=100
15
+ ```
16
+
17
+ They may also be used directly in a Python environment, and accepts the same [arguments](https://docs.ultralytics.com/usage/cfg/) as in the CLI example above:
18
+
19
+ ```python
20
+ from ultralytics import YOLO
21
+
22
+ model = YOLO("model.yaml") # build a YOLOv8n model from scratch
23
+ # YOLO("model.pt") use pre-trained model if available
24
+ model.info() # display model information
25
+ model.train(data="coco128.yaml", epochs=100) # train the model
26
+ ```
27
+
28
+ ## Pre-trained Model Architectures
29
+
30
+ Ultralytics supports many model architectures. Visit https://docs.ultralytics.com/models to view detailed information and usage. Any of these models can be used by loading their configs or pretrained checkpoints if available.
31
+
32
+ ## Contribute New Models
33
+
34
+ Have you trained a new YOLO variant or achieved state-of-the-art performance with specific tuning? We'd love to showcase your work in our Models section! Contributions from the community in the form of new models, architectures, or optimizations are highly valued and can significantly enrich our repository.
35
+
36
+ By contributing to this section, you're helping us offer a wider array of model choices and configurations to the community. It's a fantastic way to share your knowledge and expertise while making the Ultralytics YOLO ecosystem even more versatile.
37
+
38
+ To get started, please consult our [Contributing Guide](https://docs.ultralytics.com/help/contributing) for step-by-step instructions on how to submit a Pull Request (PR) πŸ› οΈ. Your contributions are eagerly awaited!
39
+
40
+ Let's join hands to extend the range and capabilities of the Ultralytics YOLO models πŸ™!
ultralytics/cfg/models/rt-detr/rtdetr-l.yaml ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ultralytics YOLO πŸš€, AGPL-3.0 license
2
+ # RT-DETR-l object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/rtdetr
3
+
4
+ # Parameters
5
+ nc: 80 # number of classes
6
+ scales: # model compound scaling constants, i.e. 'model=yolov8n-cls.yaml' will call yolov8-cls.yaml with scale 'n'
7
+ # [depth, width, max_channels]
8
+ l: [1.00, 1.00, 1024]
9
+
10
+ backbone:
11
+ # [from, repeats, module, args]
12
+ - [-1, 1, HGStem, [32, 48]] # 0-P2/4
13
+ - [-1, 6, HGBlock, [48, 128, 3]] # stage 1
14
+
15
+ - [-1, 1, DWConv, [128, 3, 2, 1, False]] # 2-P3/8
16
+ - [-1, 6, HGBlock, [96, 512, 3]] # stage 2
17
+
18
+ - [-1, 1, DWConv, [512, 3, 2, 1, False]] # 4-P3/16
19
+ - [-1, 6, HGBlock, [192, 1024, 5, True, False]] # cm, c2, k, light, shortcut
20
+ - [-1, 6, HGBlock, [192, 1024, 5, True, True]]
21
+ - [-1, 6, HGBlock, [192, 1024, 5, True, True]] # stage 3
22
+
23
+ - [-1, 1, DWConv, [1024, 3, 2, 1, False]] # 8-P4/32
24
+ - [-1, 6, HGBlock, [384, 2048, 5, True, False]] # stage 4
25
+
26
+ head:
27
+ - [-1, 1, Conv, [256, 1, 1, None, 1, 1, False]] # 10 input_proj.2
28
+ - [-1, 1, AIFI, [1024, 8]]
29
+ - [-1, 1, Conv, [256, 1, 1]] # 12, Y5, lateral_convs.0
30
+
31
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
32
+ - [7, 1, Conv, [256, 1, 1, None, 1, 1, False]] # 14 input_proj.1
33
+ - [[-2, -1], 1, Concat, [1]]
34
+ - [-1, 3, RepC3, [256]] # 16, fpn_blocks.0
35
+ - [-1, 1, Conv, [256, 1, 1]] # 17, Y4, lateral_convs.1
36
+
37
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
38
+ - [3, 1, Conv, [256, 1, 1, None, 1, 1, False]] # 19 input_proj.0
39
+ - [[-2, -1], 1, Concat, [1]] # cat backbone P4
40
+ - [-1, 3, RepC3, [256]] # X3 (21), fpn_blocks.1
41
+
42
+ - [-1, 1, Conv, [256, 3, 2]] # 22, downsample_convs.0
43
+ - [[-1, 17], 1, Concat, [1]] # cat Y4
44
+ - [-1, 3, RepC3, [256]] # F4 (24), pan_blocks.0
45
+
46
+ - [-1, 1, Conv, [256, 3, 2]] # 25, downsample_convs.1
47
+ - [[-1, 12], 1, Concat, [1]] # cat Y5
48
+ - [-1, 3, RepC3, [256]] # F5 (27), pan_blocks.1
49
+
50
+ - [[21, 24, 27], 1, RTDETRDecoder, [nc]] # Detect(P3, P4, P5)
ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ultralytics YOLO πŸš€, AGPL-3.0 license
2
+ # RT-DETR-ResNet101 object detection model with P3-P5 outputs.
3
+
4
+ # Parameters
5
+ nc: 80 # number of classes
6
+ scales: # model compound scaling constants, i.e. 'model=yolov8n-cls.yaml' will call yolov8-cls.yaml with scale 'n'
7
+ # [depth, width, max_channels]
8
+ l: [1.00, 1.00, 1024]
9
+
10
+ backbone:
11
+ # [from, repeats, module, args]
12
+ - [-1, 1, ResNetLayer, [3, 64, 1, True, 1]] # 0
13
+ - [-1, 1, ResNetLayer, [64, 64, 1, False, 3]] # 1
14
+ - [-1, 1, ResNetLayer, [256, 128, 2, False, 4]] # 2
15
+ - [-1, 1, ResNetLayer, [512, 256, 2, False, 23]] # 3
16
+ - [-1, 1, ResNetLayer, [1024, 512, 2, False, 3]] # 4
17
+
18
+ head:
19
+ - [-1, 1, Conv, [256, 1, 1, None, 1, 1, False]] # 5
20
+ - [-1, 1, AIFI, [1024, 8]]
21
+ - [-1, 1, Conv, [256, 1, 1]] # 7
22
+
23
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
24
+ - [3, 1, Conv, [256, 1, 1, None, 1, 1, False]] # 9
25
+ - [[-2, -1], 1, Concat, [1]]
26
+ - [-1, 3, RepC3, [256]] # 11
27
+ - [-1, 1, Conv, [256, 1, 1]] # 12
28
+
29
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
30
+ - [2, 1, Conv, [256, 1, 1, None, 1, 1, False]] # 14
31
+ - [[-2, -1], 1, Concat, [1]] # cat backbone P4
32
+ - [-1, 3, RepC3, [256]] # X3 (16), fpn_blocks.1
33
+
34
+ - [-1, 1, Conv, [256, 3, 2]] # 17, downsample_convs.0
35
+ - [[-1, 12], 1, Concat, [1]] # cat Y4
36
+ - [-1, 3, RepC3, [256]] # F4 (19), pan_blocks.0
37
+
38
+ - [-1, 1, Conv, [256, 3, 2]] # 20, downsample_convs.1
39
+ - [[-1, 7], 1, Concat, [1]] # cat Y5
40
+ - [-1, 3, RepC3, [256]] # F5 (22), pan_blocks.1
41
+
42
+ - [[16, 19, 22], 1, RTDETRDecoder, [nc]] # Detect(P3, P4, P5)
ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ultralytics YOLO πŸš€, AGPL-3.0 license
2
+ # RT-DETR-ResNet50 object detection model with P3-P5 outputs.
3
+
4
+ # Parameters
5
+ nc: 80 # number of classes
6
+ scales: # model compound scaling constants, i.e. 'model=yolov8n-cls.yaml' will call yolov8-cls.yaml with scale 'n'
7
+ # [depth, width, max_channels]
8
+ l: [1.00, 1.00, 1024]
9
+
10
+ backbone:
11
+ # [from, repeats, module, args]
12
+ - [-1, 1, ResNetLayer, [3, 64, 1, True, 1]] # 0
13
+ - [-1, 1, ResNetLayer, [64, 64, 1, False, 3]] # 1
14
+ - [-1, 1, ResNetLayer, [256, 128, 2, False, 4]] # 2
15
+ - [-1, 1, ResNetLayer, [512, 256, 2, False, 6]] # 3
16
+ - [-1, 1, ResNetLayer, [1024, 512, 2, False, 3]] # 4
17
+
18
+ head:
19
+ - [-1, 1, Conv, [256, 1, 1, None, 1, 1, False]] # 5
20
+ - [-1, 1, AIFI, [1024, 8]]
21
+ - [-1, 1, Conv, [256, 1, 1]] # 7
22
+
23
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
24
+ - [3, 1, Conv, [256, 1, 1, None, 1, 1, False]] # 9
25
+ - [[-2, -1], 1, Concat, [1]]
26
+ - [-1, 3, RepC3, [256]] # 11
27
+ - [-1, 1, Conv, [256, 1, 1]] # 12
28
+
29
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
30
+ - [2, 1, Conv, [256, 1, 1, None, 1, 1, False]] # 14
31
+ - [[-2, -1], 1, Concat, [1]] # cat backbone P4
32
+ - [-1, 3, RepC3, [256]] # X3 (16), fpn_blocks.1
33
+
34
+ - [-1, 1, Conv, [256, 3, 2]] # 17, downsample_convs.0
35
+ - [[-1, 12], 1, Concat, [1]] # cat Y4
36
+ - [-1, 3, RepC3, [256]] # F4 (19), pan_blocks.0
37
+
38
+ - [-1, 1, Conv, [256, 3, 2]] # 20, downsample_convs.1
39
+ - [[-1, 7], 1, Concat, [1]] # cat Y5
40
+ - [-1, 3, RepC3, [256]] # F5 (22), pan_blocks.1
41
+
42
+ - [[16, 19, 22], 1, RTDETRDecoder, [nc]] # Detect(P3, P4, P5)
ultralytics/cfg/models/rt-detr/rtdetr-x.yaml ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ultralytics YOLO πŸš€, AGPL-3.0 license
2
+ # RT-DETR-x object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/rtdetr
3
+
4
+ # Parameters
5
+ nc: 80 # number of classes
6
+ scales: # model compound scaling constants, i.e. 'model=yolov8n-cls.yaml' will call yolov8-cls.yaml with scale 'n'
7
+ # [depth, width, max_channels]
8
+ x: [1.00, 1.00, 2048]
9
+
10
+ backbone:
11
+ # [from, repeats, module, args]
12
+ - [-1, 1, HGStem, [32, 64]] # 0-P2/4
13
+ - [-1, 6, HGBlock, [64, 128, 3]] # stage 1
14
+
15
+ - [-1, 1, DWConv, [128, 3, 2, 1, False]] # 2-P3/8
16
+ - [-1, 6, HGBlock, [128, 512, 3]]
17
+ - [-1, 6, HGBlock, [128, 512, 3, False, True]] # 4-stage 2
18
+
19
+ - [-1, 1, DWConv, [512, 3, 2, 1, False]] # 5-P3/16
20
+ - [-1, 6, HGBlock, [256, 1024, 5, True, False]] # cm, c2, k, light, shortcut
21
+ - [-1, 6, HGBlock, [256, 1024, 5, True, True]]
22
+ - [-1, 6, HGBlock, [256, 1024, 5, True, True]]
23
+ - [-1, 6, HGBlock, [256, 1024, 5, True, True]]
24
+ - [-1, 6, HGBlock, [256, 1024, 5, True, True]] # 10-stage 3
25
+
26
+ - [-1, 1, DWConv, [1024, 3, 2, 1, False]] # 11-P4/32
27
+ - [-1, 6, HGBlock, [512, 2048, 5, True, False]]
28
+ - [-1, 6, HGBlock, [512, 2048, 5, True, True]] # 13-stage 4
29
+
30
+ head:
31
+ - [-1, 1, Conv, [384, 1, 1, None, 1, 1, False]] # 14 input_proj.2
32
+ - [-1, 1, AIFI, [2048, 8]]
33
+ - [-1, 1, Conv, [384, 1, 1]] # 16, Y5, lateral_convs.0
34
+
35
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
36
+ - [10, 1, Conv, [384, 1, 1, None, 1, 1, False]] # 18 input_proj.1
37
+ - [[-2, -1], 1, Concat, [1]]
38
+ - [-1, 3, RepC3, [384]] # 20, fpn_blocks.0
39
+ - [-1, 1, Conv, [384, 1, 1]] # 21, Y4, lateral_convs.1
40
+
41
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
42
+ - [4, 1, Conv, [384, 1, 1, None, 1, 1, False]] # 23 input_proj.0
43
+ - [[-2, -1], 1, Concat, [1]] # cat backbone P4
44
+ - [-1, 3, RepC3, [384]] # X3 (25), fpn_blocks.1
45
+
46
+ - [-1, 1, Conv, [384, 3, 2]] # 26, downsample_convs.0
47
+ - [[-1, 21], 1, Concat, [1]] # cat Y4
48
+ - [-1, 3, RepC3, [384]] # F4 (28), pan_blocks.0
49
+
50
+ - [-1, 1, Conv, [384, 3, 2]] # 29, downsample_convs.1
51
+ - [[-1, 16], 1, Concat, [1]] # cat Y5
52
+ - [-1, 3, RepC3, [384]] # F5 (31), pan_blocks.1
53
+
54
+ - [[25, 28, 31], 1, RTDETRDecoder, [nc]] # Detect(P3, P4, P5)
ultralytics/cfg/models/v10/yolov10b.yaml ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Parameters
2
+ nc: 80 # number of classes
3
+ scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n'
4
+ # [depth, width, max_channels]
5
+ b: [0.67, 1.00, 512]
6
+
7
+ # YOLOv8.0n backbone
8
+ backbone:
9
+ # [from, repeats, module, args]
10
+ - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
11
+ - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
12
+ - [-1, 3, C2f, [128, True]]
13
+ - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8
14
+ - [-1, 6, C2f, [256, True]]
15
+ - [-1, 1, SCDown, [512, 3, 2]] # 5-P4/16
16
+ - [-1, 6, C2f, [512, True]]
17
+ - [-1, 1, SCDown, [1024, 3, 2]] # 7-P5/32
18
+ - [-1, 3, C2fCIB, [1024, True]]
19
+ - [-1, 1, SPPF, [1024, 5]] # 9
20
+ - [-1, 1, PSA, [1024]] # 10
21
+
22
+ # YOLOv8.0n head
23
+ head:
24
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
25
+ - [[-1, 6], 1, Concat, [1]] # cat backbone P4
26
+ - [-1, 3, C2fCIB, [512, True]] # 13
27
+
28
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
29
+ - [[-1, 4], 1, Concat, [1]] # cat backbone P3
30
+ - [-1, 3, C2f, [256]] # 16 (P3/8-small)
31
+
32
+ - [-1, 1, Conv, [256, 3, 2]]
33
+ - [[-1, 13], 1, Concat, [1]] # cat head P4
34
+ - [-1, 3, C2fCIB, [512, True]] # 19 (P4/16-medium)
35
+
36
+ - [-1, 1, SCDown, [512, 3, 2]]
37
+ - [[-1, 10], 1, Concat, [1]] # cat head P5
38
+ - [-1, 3, C2fCIB, [1024, True]] # 22 (P5/32-large)
39
+
40
+ - [[16, 19, 22], 1, v10Detect, [nc]] # Detect(P3, P4, P5)
ultralytics/cfg/models/v10/yolov10l.yaml ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Parameters
2
+ nc: 80 # number of classes
3
+ scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n'
4
+ # [depth, width, max_channels]
5
+ l: [1.00, 1.00, 512] # YOLOv8l summary: 365 layers, 43691520 parameters, 43691504 gradients, 165.7 GFLOPs
6
+
7
+ # YOLOv8.0n backbone
8
+ backbone:
9
+ # [from, repeats, module, args]
10
+ - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
11
+ - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
12
+ - [-1, 3, C2f, [128, True]]
13
+ - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8
14
+ - [-1, 6, C2f, [256, True]]
15
+ - [-1, 1, SCDown, [512, 3, 2]] # 5-P4/16
16
+ - [-1, 6, C2f, [512, True]]
17
+ - [-1, 1, SCDown, [1024, 3, 2]] # 7-P5/32
18
+ - [-1, 3, C2fCIB, [1024, True]]
19
+ - [-1, 1, SPPF, [1024, 5]] # 9
20
+ - [-1, 1, PSA, [1024]] # 10
21
+
22
+ # YOLOv8.0n head
23
+ head:
24
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
25
+ - [[-1, 6], 1, Concat, [1]] # cat backbone P4
26
+ - [-1, 3, C2fCIB, [512, True]] # 13
27
+
28
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
29
+ - [[-1, 4], 1, Concat, [1]] # cat backbone P3
30
+ - [-1, 3, C2f, [256]] # 16 (P3/8-small)
31
+
32
+ - [-1, 1, Conv, [256, 3, 2]]
33
+ - [[-1, 13], 1, Concat, [1]] # cat head P4
34
+ - [-1, 3, C2fCIB, [512, True]] # 19 (P4/16-medium)
35
+
36
+ - [-1, 1, SCDown, [512, 3, 2]]
37
+ - [[-1, 10], 1, Concat, [1]] # cat head P5
38
+ - [-1, 3, C2fCIB, [1024, True]] # 22 (P5/32-large)
39
+
40
+ - [[16, 19, 22], 1, v10Detect, [nc]] # Detect(P3, P4, P5)
ultralytics/cfg/models/v10/yolov10m.yaml ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ultralytics YOLO πŸš€, AGPL-3.0 license
2
+ # YOLOv8 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect
3
+
4
+ # Parameters
5
+ nc: 80 # number of classes
6
+ scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n'
7
+ # [depth, width, max_channels]
8
+ m: [0.67, 0.75, 768] # YOLOv8m summary: 295 layers, 25902640 parameters, 25902624 gradients, 79.3 GFLOPs
9
+
10
+ # YOLOv8.0n backbone
11
+ backbone:
12
+ # [from, repeats, module, args]
13
+ - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
14
+ - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
15
+ - [-1, 3, C2f, [128, True]]
16
+ - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8
17
+ - [-1, 6, C2f, [256, True]]
18
+ - [-1, 1, SCDown, [512, 3, 2]] # 5-P4/16
19
+ - [-1, 6, C2f, [512, True]]
20
+ - [-1, 1, SCDown, [1024, 3, 2]] # 7-P5/32
21
+ - [-1, 3, C2fCIB, [1024, True]]
22
+ - [-1, 1, SPPF, [1024, 5]] # 9
23
+ - [-1, 1, PSA, [1024]] # 10
24
+
25
+ # YOLOv8.0n head
26
+ head:
27
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
28
+ - [[-1, 6], 1, Concat, [1]] # cat backbone P4
29
+ - [-1, 3, C2f, [512]] # 13
30
+
31
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
32
+ - [[-1, 4], 1, Concat, [1]] # cat backbone P3
33
+ - [-1, 3, C2f, [256]] # 16 (P3/8-small)
34
+
35
+ - [-1, 1, Conv, [256, 3, 2]]
36
+ - [[-1, 13], 1, Concat, [1]] # cat head P4
37
+ - [-1, 3, C2fCIB, [512, True]] # 19 (P4/16-medium)
38
+
39
+ - [-1, 1, SCDown, [512, 3, 2]]
40
+ - [[-1, 10], 1, Concat, [1]] # cat head P5
41
+ - [-1, 3, C2fCIB, [1024, True]] # 22 (P5/32-large)
42
+
43
+ - [[16, 19, 22], 1, v10Detect, [nc]] # Detect(P3, P4, P5)
ultralytics/cfg/models/v10/yolov10n.yaml ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Parameters
2
+ nc: 80 # number of classes
3
+ scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n'
4
+ # [depth, width, max_channels]
5
+ n: [0.33, 0.25, 1024]
6
+
7
+ # YOLOv8.0n backbone
8
+ backbone:
9
+ # [from, repeats, module, args]
10
+ - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
11
+ - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
12
+ - [-1, 3, C2f, [128, True]]
13
+ - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8
14
+ - [-1, 6, C2f, [256, True]]
15
+ - [-1, 1, SCDown, [512, 3, 2]] # 5-P4/16
16
+ - [-1, 6, C2f, [512, True]]
17
+ - [-1, 1, SCDown, [1024, 3, 2]] # 7-P5/32
18
+ - [-1, 3, C2f, [1024, True]]
19
+ - [-1, 1, SPPF, [1024, 5]] # 9
20
+ - [-1, 1, PSA, [1024]] # 10
21
+
22
+ # YOLOv8.0n head
23
+ head:
24
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
25
+ - [[-1, 6], 1, Concat, [1]] # cat backbone P4
26
+ - [-1, 3, C2f, [512]] # 13
27
+
28
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
29
+ - [[-1, 4], 1, Concat, [1]] # cat backbone P3
30
+ - [-1, 3, C2f, [256]] # 16 (P3/8-small)
31
+
32
+ - [-1, 1, Conv, [256, 3, 2]]
33
+ - [[-1, 13], 1, Concat, [1]] # cat head P4
34
+ - [-1, 3, C2f, [512]] # 19 (P4/16-medium)
35
+
36
+ - [-1, 1, SCDown, [512, 3, 2]]
37
+ - [[-1, 10], 1, Concat, [1]] # cat head P5
38
+ - [-1, 3, C2fCIB, [1024, True, True]] # 22 (P5/32-large)
39
+
40
+ - [[16, 19, 22], 1, v10Detect, [nc]] # Detect(P3, P4, P5)
ultralytics/cfg/models/v10/yolov10s.yaml ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Parameters
2
+ nc: 80 # number of classes
3
+ scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n'
4
+ # [depth, width, max_channels]
5
+ s: [0.33, 0.50, 1024]
6
+
7
+ backbone:
8
+ # [from, repeats, module, args]
9
+ - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
10
+ - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
11
+ - [-1, 3, C2f, [128, True]]
12
+ - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8
13
+ - [-1, 6, C2f, [256, True]]
14
+ - [-1, 1, SCDown, [512, 3, 2]] # 5-P4/16
15
+ - [-1, 6, C2f, [512, True]]
16
+ - [-1, 1, SCDown, [1024, 3, 2]] # 7-P5/32
17
+ - [-1, 3, C2fCIB, [1024, True, True]]
18
+ - [-1, 1, SPPF, [1024, 5]] # 9
19
+ - [-1, 1, PSA, [1024]] # 10
20
+
21
+ # YOLOv8.0n head
22
+ head:
23
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
24
+ - [[-1, 6], 1, Concat, [1]] # cat backbone P4
25
+ - [-1, 3, C2f, [512]] # 13
26
+
27
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
28
+ - [[-1, 4], 1, Concat, [1]] # cat backbone P3
29
+ - [-1, 3, C2f, [256]] # 16 (P3/8-small)
30
+
31
+ - [-1, 1, Conv, [256, 3, 2]]
32
+ - [[-1, 13], 1, Concat, [1]] # cat head P4
33
+ - [-1, 3, C2f, [512]] # 19 (P4/16-medium)
34
+
35
+ - [-1, 1, SCDown, [512, 3, 2]]
36
+ - [[-1, 10], 1, Concat, [1]] # cat head P5
37
+ - [-1, 3, C2fCIB, [1024, True, True]] # 22 (P5/32-large)
38
+
39
+ - [[16, 19, 22], 1, v10Detect, [nc]] # Detect(P3, P4, P5)
ultralytics/cfg/models/v10/yolov10x.yaml ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Parameters
2
+ nc: 80 # number of classes
3
+ scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n'
4
+ # [depth, width, max_channels]
5
+ x: [1.00, 1.25, 512]
6
+
7
+ # YOLOv8.0n backbone
8
+ backbone:
9
+ # [from, repeats, module, args]
10
+ - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
11
+ - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
12
+ - [-1, 3, C2f, [128, True]]
13
+ - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8
14
+ - [-1, 6, C2f, [256, True]]
15
+ - [-1, 1, SCDown, [512, 3, 2]] # 5-P4/16
16
+ - [-1, 6, C2fCIB, [512, True]]
17
+ - [-1, 1, SCDown, [1024, 3, 2]] # 7-P5/32
18
+ - [-1, 3, C2fCIB, [1024, True]]
19
+ - [-1, 1, SPPF, [1024, 5]] # 9
20
+ - [-1, 1, PSA, [1024]] # 10
21
+
22
+ # YOLOv8.0n head
23
+ head:
24
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
25
+ - [[-1, 6], 1, Concat, [1]] # cat backbone P4
26
+ - [-1, 3, C2fCIB, [512, True]] # 13
27
+
28
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
29
+ - [[-1, 4], 1, Concat, [1]] # cat backbone P3
30
+ - [-1, 3, C2f, [256]] # 16 (P3/8-small)
31
+
32
+ - [-1, 1, Conv, [256, 3, 2]]
33
+ - [[-1, 13], 1, Concat, [1]] # cat head P4
34
+ - [-1, 3, C2fCIB, [512, True]] # 19 (P4/16-medium)
35
+
36
+ - [-1, 1, SCDown, [512, 3, 2]]
37
+ - [[-1, 10], 1, Concat, [1]] # cat head P5
38
+ - [-1, 3, C2fCIB, [1024, True]] # 22 (P5/32-large)
39
+
40
+ - [[16, 19, 22], 1, v10Detect, [nc]] # Detect(P3, P4, P5)
ultralytics/cfg/models/v3/yolov3-spp.yaml ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ultralytics YOLO πŸš€, AGPL-3.0 license
2
+ # YOLOv3-SPP object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov3
3
+
4
+ # Parameters
5
+ nc: 80 # number of classes
6
+ depth_multiple: 1.0 # model depth multiple
7
+ width_multiple: 1.0 # layer channel multiple
8
+
9
+ # darknet53 backbone
10
+ backbone:
11
+ # [from, number, module, args]
12
+ - [-1, 1, Conv, [32, 3, 1]] # 0
13
+ - [-1, 1, Conv, [64, 3, 2]] # 1-P1/2
14
+ - [-1, 1, Bottleneck, [64]]
15
+ - [-1, 1, Conv, [128, 3, 2]] # 3-P2/4
16
+ - [-1, 2, Bottleneck, [128]]
17
+ - [-1, 1, Conv, [256, 3, 2]] # 5-P3/8
18
+ - [-1, 8, Bottleneck, [256]]
19
+ - [-1, 1, Conv, [512, 3, 2]] # 7-P4/16
20
+ - [-1, 8, Bottleneck, [512]]
21
+ - [-1, 1, Conv, [1024, 3, 2]] # 9-P5/32
22
+ - [-1, 4, Bottleneck, [1024]] # 10
23
+
24
+ # YOLOv3-SPP head
25
+ head:
26
+ - [-1, 1, Bottleneck, [1024, False]]
27
+ - [-1, 1, SPP, [512, [5, 9, 13]]]
28
+ - [-1, 1, Conv, [1024, 3, 1]]
29
+ - [-1, 1, Conv, [512, 1, 1]]
30
+ - [-1, 1, Conv, [1024, 3, 1]] # 15 (P5/32-large)
31
+
32
+ - [-2, 1, Conv, [256, 1, 1]]
33
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
34
+ - [[-1, 8], 1, Concat, [1]] # cat backbone P4
35
+ - [-1, 1, Bottleneck, [512, False]]
36
+ - [-1, 1, Bottleneck, [512, False]]
37
+ - [-1, 1, Conv, [256, 1, 1]]
38
+ - [-1, 1, Conv, [512, 3, 1]] # 22 (P4/16-medium)
39
+
40
+ - [-2, 1, Conv, [128, 1, 1]]
41
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
42
+ - [[-1, 6], 1, Concat, [1]] # cat backbone P3
43
+ - [-1, 1, Bottleneck, [256, False]]
44
+ - [-1, 2, Bottleneck, [256, False]] # 27 (P3/8-small)
45
+
46
+ - [[27, 22, 15], 1, Detect, [nc]] # Detect(P3, P4, P5)
ultralytics/cfg/models/v3/yolov3-tiny.yaml ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ultralytics YOLO πŸš€, AGPL-3.0 license
2
+ # YOLOv3-tiny object detection model with P4-P5 outputs. For details see https://docs.ultralytics.com/models/yolov3
3
+
4
+ # Parameters
5
+ nc: 80 # number of classes
6
+ depth_multiple: 1.0 # model depth multiple
7
+ width_multiple: 1.0 # layer channel multiple
8
+
9
+ # YOLOv3-tiny backbone
10
+ backbone:
11
+ # [from, number, module, args]
12
+ - [-1, 1, Conv, [16, 3, 1]] # 0
13
+ - [-1, 1, nn.MaxPool2d, [2, 2, 0]] # 1-P1/2
14
+ - [-1, 1, Conv, [32, 3, 1]]
15
+ - [-1, 1, nn.MaxPool2d, [2, 2, 0]] # 3-P2/4
16
+ - [-1, 1, Conv, [64, 3, 1]]
17
+ - [-1, 1, nn.MaxPool2d, [2, 2, 0]] # 5-P3/8
18
+ - [-1, 1, Conv, [128, 3, 1]]
19
+ - [-1, 1, nn.MaxPool2d, [2, 2, 0]] # 7-P4/16
20
+ - [-1, 1, Conv, [256, 3, 1]]
21
+ - [-1, 1, nn.MaxPool2d, [2, 2, 0]] # 9-P5/32
22
+ - [-1, 1, Conv, [512, 3, 1]]
23
+ - [-1, 1, nn.ZeroPad2d, [[0, 1, 0, 1]]] # 11
24
+ - [-1, 1, nn.MaxPool2d, [2, 1, 0]] # 12
25
+
26
+ # YOLOv3-tiny head
27
+ head:
28
+ - [-1, 1, Conv, [1024, 3, 1]]
29
+ - [-1, 1, Conv, [256, 1, 1]]
30
+ - [-1, 1, Conv, [512, 3, 1]] # 15 (P5/32-large)
31
+
32
+ - [-2, 1, Conv, [128, 1, 1]]
33
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
34
+ - [[-1, 8], 1, Concat, [1]] # cat backbone P4
35
+ - [-1, 1, Conv, [256, 3, 1]] # 19 (P4/16-medium)
36
+
37
+ - [[19, 15], 1, Detect, [nc]] # Detect(P4, P5)
ultralytics/cfg/models/v3/yolov3.yaml ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ultralytics YOLO πŸš€, AGPL-3.0 license
2
+ # YOLOv3 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov3
3
+
4
+ # Parameters
5
+ nc: 80 # number of classes
6
+ depth_multiple: 1.0 # model depth multiple
7
+ width_multiple: 1.0 # layer channel multiple
8
+
9
+ # darknet53 backbone
10
+ backbone:
11
+ # [from, number, module, args]
12
+ - [-1, 1, Conv, [32, 3, 1]] # 0
13
+ - [-1, 1, Conv, [64, 3, 2]] # 1-P1/2
14
+ - [-1, 1, Bottleneck, [64]]
15
+ - [-1, 1, Conv, [128, 3, 2]] # 3-P2/4
16
+ - [-1, 2, Bottleneck, [128]]
17
+ - [-1, 1, Conv, [256, 3, 2]] # 5-P3/8
18
+ - [-1, 8, Bottleneck, [256]]
19
+ - [-1, 1, Conv, [512, 3, 2]] # 7-P4/16
20
+ - [-1, 8, Bottleneck, [512]]
21
+ - [-1, 1, Conv, [1024, 3, 2]] # 9-P5/32
22
+ - [-1, 4, Bottleneck, [1024]] # 10
23
+
24
+ # YOLOv3 head
25
+ head:
26
+ - [-1, 1, Bottleneck, [1024, False]]
27
+ - [-1, 1, Conv, [512, 1, 1]]
28
+ - [-1, 1, Conv, [1024, 3, 1]]
29
+ - [-1, 1, Conv, [512, 1, 1]]
30
+ - [-1, 1, Conv, [1024, 3, 1]] # 15 (P5/32-large)
31
+
32
+ - [-2, 1, Conv, [256, 1, 1]]
33
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
34
+ - [[-1, 8], 1, Concat, [1]] # cat backbone P4
35
+ - [-1, 1, Bottleneck, [512, False]]
36
+ - [-1, 1, Bottleneck, [512, False]]
37
+ - [-1, 1, Conv, [256, 1, 1]]
38
+ - [-1, 1, Conv, [512, 3, 1]] # 22 (P4/16-medium)
39
+
40
+ - [-2, 1, Conv, [128, 1, 1]]
41
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
42
+ - [[-1, 6], 1, Concat, [1]] # cat backbone P3
43
+ - [-1, 1, Bottleneck, [256, False]]
44
+ - [-1, 2, Bottleneck, [256, False]] # 27 (P3/8-small)
45
+
46
+ - [[27, 22, 15], 1, Detect, [nc]] # Detect(P3, P4, P5)
ultralytics/cfg/models/v5/yolov5-p6.yaml ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ultralytics YOLO πŸš€, AGPL-3.0 license
2
+ # YOLOv5 object detection model with P3-P6 outputs. For details see https://docs.ultralytics.com/models/yolov5
3
+
4
+ # Parameters
5
+ nc: 80 # number of classes
6
+ scales: # model compound scaling constants, i.e. 'model=yolov5n-p6.yaml' will call yolov5-p6.yaml with scale 'n'
7
+ # [depth, width, max_channels]
8
+ n: [0.33, 0.25, 1024]
9
+ s: [0.33, 0.50, 1024]
10
+ m: [0.67, 0.75, 1024]
11
+ l: [1.00, 1.00, 1024]
12
+ x: [1.33, 1.25, 1024]
13
+
14
+ # YOLOv5 v6.0 backbone
15
+ backbone:
16
+ # [from, number, module, args]
17
+ - [-1, 1, Conv, [64, 6, 2, 2]] # 0-P1/2
18
+ - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
19
+ - [-1, 3, C3, [128]]
20
+ - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8
21
+ - [-1, 6, C3, [256]]
22
+ - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16
23
+ - [-1, 9, C3, [512]]
24
+ - [-1, 1, Conv, [768, 3, 2]] # 7-P5/32
25
+ - [-1, 3, C3, [768]]
26
+ - [-1, 1, Conv, [1024, 3, 2]] # 9-P6/64
27
+ - [-1, 3, C3, [1024]]
28
+ - [-1, 1, SPPF, [1024, 5]] # 11
29
+
30
+ # YOLOv5 v6.0 head
31
+ head:
32
+ - [-1, 1, Conv, [768, 1, 1]]
33
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
34
+ - [[-1, 8], 1, Concat, [1]] # cat backbone P5
35
+ - [-1, 3, C3, [768, False]] # 15
36
+
37
+ - [-1, 1, Conv, [512, 1, 1]]
38
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
39
+ - [[-1, 6], 1, Concat, [1]] # cat backbone P4
40
+ - [-1, 3, C3, [512, False]] # 19
41
+
42
+ - [-1, 1, Conv, [256, 1, 1]]
43
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
44
+ - [[-1, 4], 1, Concat, [1]] # cat backbone P3
45
+ - [-1, 3, C3, [256, False]] # 23 (P3/8-small)
46
+
47
+ - [-1, 1, Conv, [256, 3, 2]]
48
+ - [[-1, 20], 1, Concat, [1]] # cat head P4
49
+ - [-1, 3, C3, [512, False]] # 26 (P4/16-medium)
50
+
51
+ - [-1, 1, Conv, [512, 3, 2]]
52
+ - [[-1, 16], 1, Concat, [1]] # cat head P5
53
+ - [-1, 3, C3, [768, False]] # 29 (P5/32-large)
54
+
55
+ - [-1, 1, Conv, [768, 3, 2]]
56
+ - [[-1, 12], 1, Concat, [1]] # cat head P6
57
+ - [-1, 3, C3, [1024, False]] # 32 (P6/64-xlarge)
58
+
59
+ - [[23, 26, 29, 32], 1, Detect, [nc]] # Detect(P3, P4, P5, P6)
ultralytics/cfg/models/v5/yolov5.yaml ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ultralytics YOLO πŸš€, AGPL-3.0 license
2
+ # YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5
3
+
4
+ # Parameters
5
+ nc: 80 # number of classes
6
+ scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n'
7
+ # [depth, width, max_channels]
8
+ n: [0.33, 0.25, 1024]
9
+ s: [0.33, 0.50, 1024]
10
+ m: [0.67, 0.75, 1024]
11
+ l: [1.00, 1.00, 1024]
12
+ x: [1.33, 1.25, 1024]
13
+
14
+ # YOLOv5 v6.0 backbone
15
+ backbone:
16
+ # [from, number, module, args]
17
+ - [-1, 1, Conv, [64, 6, 2, 2]] # 0-P1/2
18
+ - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
19
+ - [-1, 3, C3, [128]]
20
+ - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8
21
+ - [-1, 6, C3, [256]]
22
+ - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16
23
+ - [-1, 9, C3, [512]]
24
+ - [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32
25
+ - [-1, 3, C3, [1024]]
26
+ - [-1, 1, SPPF, [1024, 5]] # 9
27
+
28
+ # YOLOv5 v6.0 head
29
+ head:
30
+ - [-1, 1, Conv, [512, 1, 1]]
31
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
32
+ - [[-1, 6], 1, Concat, [1]] # cat backbone P4
33
+ - [-1, 3, C3, [512, False]] # 13
34
+
35
+ - [-1, 1, Conv, [256, 1, 1]]
36
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
37
+ - [[-1, 4], 1, Concat, [1]] # cat backbone P3
38
+ - [-1, 3, C3, [256, False]] # 17 (P3/8-small)
39
+
40
+ - [-1, 1, Conv, [256, 3, 2]]
41
+ - [[-1, 14], 1, Concat, [1]] # cat head P4
42
+ - [-1, 3, C3, [512, False]] # 20 (P4/16-medium)
43
+
44
+ - [-1, 1, Conv, [512, 3, 2]]
45
+ - [[-1, 10], 1, Concat, [1]] # cat head P5
46
+ - [-1, 3, C3, [1024, False]] # 23 (P5/32-large)
47
+
48
+ - [[17, 20, 23], 1, Detect, [nc]] # Detect(P3, P4, P5)
ultralytics/cfg/models/v6/yolov6.yaml ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ultralytics YOLO πŸš€, AGPL-3.0 license
2
+ # YOLOv6 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/models/yolov6
3
+
4
+ # Parameters
5
+ nc: 80 # number of classes
6
+ activation: nn.ReLU() # (optional) model default activation function
7
+ scales: # model compound scaling constants, i.e. 'model=yolov6n.yaml' will call yolov8.yaml with scale 'n'
8
+ # [depth, width, max_channels]
9
+ n: [0.33, 0.25, 1024]
10
+ s: [0.33, 0.50, 1024]
11
+ m: [0.67, 0.75, 768]
12
+ l: [1.00, 1.00, 512]
13
+ x: [1.00, 1.25, 512]
14
+
15
+ # YOLOv6-3.0s backbone
16
+ backbone:
17
+ # [from, repeats, module, args]
18
+ - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
19
+ - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
20
+ - [-1, 6, Conv, [128, 3, 1]]
21
+ - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8
22
+ - [-1, 12, Conv, [256, 3, 1]]
23
+ - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16
24
+ - [-1, 18, Conv, [512, 3, 1]]
25
+ - [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32
26
+ - [-1, 6, Conv, [1024, 3, 1]]
27
+ - [-1, 1, SPPF, [1024, 5]] # 9
28
+
29
+ # YOLOv6-3.0s head
30
+ head:
31
+ - [-1, 1, Conv, [256, 1, 1]]
32
+ - [-1, 1, nn.ConvTranspose2d, [256, 2, 2, 0]]
33
+ - [[-1, 6], 1, Concat, [1]] # cat backbone P4
34
+ - [-1, 1, Conv, [256, 3, 1]]
35
+ - [-1, 9, Conv, [256, 3, 1]] # 14
36
+
37
+ - [-1, 1, Conv, [128, 1, 1]]
38
+ - [-1, 1, nn.ConvTranspose2d, [128, 2, 2, 0]]
39
+ - [[-1, 4], 1, Concat, [1]] # cat backbone P3
40
+ - [-1, 1, Conv, [128, 3, 1]]
41
+ - [-1, 9, Conv, [128, 3, 1]] # 19
42
+
43
+ - [-1, 1, Conv, [128, 3, 2]]
44
+ - [[-1, 15], 1, Concat, [1]] # cat head P4
45
+ - [-1, 1, Conv, [256, 3, 1]]
46
+ - [-1, 9, Conv, [256, 3, 1]] # 23
47
+
48
+ - [-1, 1, Conv, [256, 3, 2]]
49
+ - [[-1, 10], 1, Concat, [1]] # cat head P5
50
+ - [-1, 1, Conv, [512, 3, 1]]
51
+ - [-1, 9, Conv, [512, 3, 1]] # 27
52
+
53
+ - [[19, 23, 27], 1, Detect, [nc]] # Detect(P3, P4, P5)
ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Ultralytics YOLO πŸš€, AGPL-3.0 license
2
+ # YOLOv8-cls image classification model. For Usage examples see https://docs.ultralytics.com/tasks/classify
3
+
4
+ # Parameters
5
+ nc: 1000 # number of classes
6
+ scales: # model compound scaling constants, i.e. 'model=yolov8n-cls.yaml' will call yolov8-cls.yaml with scale 'n'
7
+ # [depth, width, max_channels]
8
+ n: [0.33, 0.25, 1024]
9
+ s: [0.33, 0.50, 1024]
10
+ m: [0.67, 0.75, 1024]
11
+ l: [1.00, 1.00, 1024]
12
+ x: [1.00, 1.25, 1024]
13
+
14
+ # YOLOv8.0n backbone
15
+ backbone:
16
+ # [from, repeats, module, args]
17
+ - [-1, 1, ResNetLayer, [3, 64, 1, True, 1]] # 0-P1/2
18
+ - [-1, 1, ResNetLayer, [64, 64, 1, False, 3]] # 1-P2/4
19
+ - [-1, 1, ResNetLayer, [256, 128, 2, False, 4]] # 2-P3/8
20
+ - [-1, 1, ResNetLayer, [512, 256, 2, False, 23]] # 3-P4/16
21
+ - [-1, 1, ResNetLayer, [1024, 512, 2, False, 3]] # 4-P5/32
22
+
23
+ # YOLOv8.0n head
24
+ head:
25
+ - [-1, 1, Classify, [nc]] # Classify