ultralytics 8.1.36__py3-none-any.whl → 8.1.38__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of ultralytics might be problematic. Click here for more details.

ultralytics/__init__.py CHANGED
@@ -1,6 +1,6 @@
1
1
  # Ultralytics YOLO 🚀, AGPL-3.0 license
2
2
 
3
- __version__ = "8.1.36"
3
+ __version__ = "8.1.38"
4
4
 
5
5
  from ultralytics.data.explorer.explorer import Explorer
6
6
  from ultralytics.models import RTDETR, SAM, YOLO, YOLOWorld
@@ -54,8 +54,9 @@ TASK2METRIC = {
54
54
  "obb": "metrics/mAP50-95(B)",
55
55
  }
56
56
 
57
+ ARGV = sys.argv or ["", ""] # sometimes sys.argv = []
57
58
  CLI_HELP_MSG = f"""
58
- Arguments received: {str(['yolo'] + sys.argv[1:])}. Ultralytics 'yolo' commands use the following syntax:
59
+ Arguments received: {str(['yolo'] + ARGV[1:])}. Ultralytics 'yolo' commands use the following syntax:
59
60
 
60
61
  yolo TASK MODE ARGS
61
62
 
@@ -93,7 +94,7 @@ CLI_HELP_MSG = f"""
93
94
  """
94
95
 
95
96
  # Define keys for arg type checks
96
- CFG_FLOAT_KEYS = {"warmup_epochs", "box", "cls", "dfl", "degrees", "shear", "time"}
97
+ CFG_FLOAT_KEYS = {"warmup_epochs", "box", "cls", "dfl", "degrees", "shear", "time", "workspace"}
97
98
  CFG_FRACTION_KEYS = {
98
99
  "dropout",
99
100
  "iou",
@@ -131,7 +132,6 @@ CFG_INT_KEYS = {
131
132
  "max_det",
132
133
  "vid_stride",
133
134
  "line_width",
134
- "workspace",
135
135
  "nbs",
136
136
  "save_period",
137
137
  }
@@ -452,7 +452,7 @@ def entrypoint(debug=""):
452
452
  It uses the package's default cfg and initializes it using the passed overrides.
453
453
  Then it calls the CLI function with the composed cfg
454
454
  """
455
- args = (debug.split(" ") if debug else sys.argv)[1:]
455
+ args = (debug.split(" ") if debug else ARGV)[1:]
456
456
  if not args: # no arguments passed
457
457
  LOGGER.info(CLI_HELP_MSG)
458
458
  return
@@ -116,8 +116,8 @@ mosaic: 1.0 # (float) image mosaic (probability)
116
116
  mixup: 0.0 # (float) image mixup (probability)
117
117
  copy_paste: 0.0 # (float) segment copy-paste (probability)
118
118
  auto_augment: randaugment # (str) auto augmentation policy for classification (randaugment, autoaugment, augmix)
119
- erasing: 0.4 # (float) probability of random erasing during classification training (0-1)
120
- crop_fraction: 1.0 # (float) image crop fraction for classification evaluation/inference (0-1)
119
+ erasing: 0.4 # (float) probability of random erasing during classification training (0-0.9), 0 means no erasing, must be less than 1.0.
120
+ crop_fraction: 1.0 # (float) image crop fraction for classification (0.1-1), 1.0 means no crop, must be greater than 0.
121
121
 
122
122
  # Custom config.yaml ---------------------------------------------------------------------------------------------------
123
123
  cfg: # (str, optional) for overriding defaults.yaml
@@ -1056,7 +1056,7 @@ def classify_transforms(
1056
1056
  return T.Compose(tfl)
1057
1057
 
1058
1058
 
1059
- # Classification augmentations train ---------------------------------------------------------------------------------------
1059
+ # Classification training augmentations --------------------------------------------------------------------------------
1060
1060
  def classify_augmentations(
1061
1061
  size=224,
1062
1062
  mean=DEFAULT_MEAN,
ultralytics/data/base.py CHANGED
@@ -81,6 +81,8 @@ class BaseDataset(Dataset):
81
81
  if self.rect:
82
82
  assert self.batch_size is not None
83
83
  self.set_rectangle()
84
+ if isinstance(cache, str):
85
+ cache = cache.lower()
84
86
 
85
87
  # Buffer thread for mosaic images
86
88
  self.buffer = [] # buffer size = batch size
@@ -261,8 +261,8 @@ class ClassificationDataset(torchvision.datasets.ImageFolder):
261
261
  if augment and args.fraction < 1.0: # reduce training fraction
262
262
  self.samples = self.samples[: round(len(self.samples) * args.fraction)]
263
263
  self.prefix = colorstr(f"{prefix}: ") if prefix else ""
264
- self.cache_ram = args.cache is True or args.cache == "ram" # cache images into RAM
265
- self.cache_disk = args.cache == "disk" # cache images on hard drive as uncompressed *.npy files
264
+ self.cache_ram = args.cache is True or str(args.cache).lower() == "ram" # cache images into RAM
265
+ self.cache_disk = str(args.cache).lower() == "disk" # cache images on hard drive as uncompressed *.npy files
266
266
  self.samples = self.verify_images() # filter out bad images
267
267
  self.samples = [list(x) + [Path(x[0]).with_suffix(".npy"), None] for x in self.samples] # file, index, npy, im
268
268
  scale = (1.0 - args.scale, 1.0) # (0.08, 1.0)
@@ -285,8 +285,9 @@ class ClassificationDataset(torchvision.datasets.ImageFolder):
285
285
  def __getitem__(self, i):
286
286
  """Returns subset of data and targets corresponding to given indices."""
287
287
  f, j, fn, im = self.samples[i] # filename, index, filename.with_suffix('.npy'), image
288
- if self.cache_ram and im is None:
289
- im = self.samples[i][3] = cv2.imread(f)
288
+ if self.cache_ram:
289
+ if im is None: # Warning: two separate if statements required here, do not combine this with previous line
290
+ im = self.samples[i][3] = cv2.imread(f)
290
291
  elif self.cache_disk:
291
292
  if not fn.exists(): # load npy
292
293
  np.save(fn.as_posix(), cv2.imread(f), allow_pickle=False)
@@ -675,9 +675,7 @@ class Exporter:
675
675
 
676
676
  builder = trt.Builder(logger)
677
677
  config = builder.create_builder_config()
678
- config.max_workspace_size = self.args.workspace * 1 << 30
679
- # config.set_memory_pool_limit(trt.MemoryPoolType.WORKSPACE, workspace << 30) # fix TRT 8.4 deprecation notice
680
-
678
+ config.max_workspace_size = int(self.args.workspace * (1 << 30))
681
679
  flag = 1 << int(trt.NetworkDefinitionCreationFlag.EXPLICIT_BATCH)
682
680
  network = builder.create_network(flag)
683
681
  parser = trt.OnnxParser(network, logger)
@@ -1,7 +1,6 @@
1
1
  # Ultralytics YOLO 🚀, AGPL-3.0 license
2
2
 
3
3
  import inspect
4
- import sys
5
4
  from pathlib import Path
6
5
  from typing import Union
7
6
 
@@ -11,7 +10,18 @@ import torch
11
10
  from ultralytics.cfg import TASK2DATA, get_cfg, get_save_dir
12
11
  from ultralytics.hub.utils import HUB_WEB_ROOT
13
12
  from ultralytics.nn.tasks import attempt_load_one_weight, guess_model_task, nn, yaml_model_load
14
- from ultralytics.utils import ASSETS, DEFAULT_CFG_DICT, LOGGER, RANK, SETTINGS, callbacks, checks, emojis, yaml_load
13
+ from ultralytics.utils import (
14
+ ARGV,
15
+ ASSETS,
16
+ DEFAULT_CFG_DICT,
17
+ LOGGER,
18
+ RANK,
19
+ SETTINGS,
20
+ callbacks,
21
+ checks,
22
+ emojis,
23
+ yaml_load,
24
+ )
15
25
 
16
26
 
17
27
  class Model(nn.Module):
@@ -421,8 +431,8 @@ class Model(nn.Module):
421
431
  source = ASSETS
422
432
  LOGGER.warning(f"WARNING ⚠️ 'source' is missing. Using 'source={source}'.")
423
433
 
424
- is_cli = (sys.argv[0].endswith("yolo") or sys.argv[0].endswith("ultralytics")) and any(
425
- x in sys.argv for x in ("predict", "track", "mode=predict", "mode=track")
434
+ is_cli = (ARGV[0].endswith("yolo") or ARGV[0].endswith("ultralytics")) and any(
435
+ x in ARGV for x in ("predict", "track", "mode=predict", "mode=track")
426
436
  )
427
437
 
428
438
  custom = {"conf": 0.25, "batch": 1, "save": is_cli, "mode": "predict"} # method defaults
ultralytics/hub/utils.py CHANGED
@@ -3,7 +3,6 @@
3
3
  import os
4
4
  import platform
5
5
  import random
6
- import sys
7
6
  import threading
8
7
  import time
9
8
  from pathlib import Path
@@ -11,6 +10,7 @@ from pathlib import Path
11
10
  import requests
12
11
 
13
12
  from ultralytics.utils import (
13
+ ARGV,
14
14
  ENVIRONMENT,
15
15
  LOGGER,
16
16
  ONLINE,
@@ -188,7 +188,7 @@ class Events:
188
188
  self.rate_limit = 60.0 # rate limit (seconds)
189
189
  self.t = 0.0 # rate limit timer (seconds)
190
190
  self.metadata = {
191
- "cli": Path(sys.argv[0]).name == "yolo",
191
+ "cli": Path(ARGV[0]).name == "yolo",
192
192
  "install": "git" if is_git_dir() else "pip" if is_pip_package() else "other",
193
193
  "python": ".".join(platform.python_version_tuple()[:2]), # i.e. 3.10
194
194
  "version": __version__,
@@ -543,7 +543,7 @@ class AutoBackend(nn.Module):
543
543
  if integer:
544
544
  scale, zero_point = output["quantization"]
545
545
  x = (x.astype(np.float32) - zero_point) * scale # re-scale
546
- if x.ndim > 2: # if task is not classification
546
+ if x.ndim == 3: # if task is not classification, excluding masks (ndim=4) as well
547
547
  # Denormalize xywh by image size. See https://github.com/ultralytics/ultralytics/pull/1695
548
548
  # xywh are normalized in TFLite/EdgeTPU to mitigate quantization error of integer models
549
549
  x[:, [0, 2]] *= w
@@ -319,7 +319,7 @@ class GMC:
319
319
  keypoints = cv2.goodFeaturesToTrack(frame, mask=None, **self.feature_params)
320
320
 
321
321
  # Handle first frame
322
- if not self.initializedFirstFrame:
322
+ if not self.initializedFirstFrame or self.prevKeyPoints is None:
323
323
  self.prevFrame = frame.copy()
324
324
  self.prevKeyPoints = copy.copy(keypoints)
325
325
  self.initializedFirstFrame = True
@@ -30,6 +30,7 @@ RANK = int(os.getenv("RANK", -1))
30
30
  LOCAL_RANK = int(os.getenv("LOCAL_RANK", -1)) # https://pytorch.org/docs/stable/elastic/run.html
31
31
 
32
32
  # Other Constants
33
+ ARGV = sys.argv or ["", ""] # sometimes sys.argv = []
33
34
  FILE = Path(__file__).resolve()
34
35
  ROOT = FILE.parents[1] # YOLO
35
36
  ASSETS = ROOT / "assets" # default images
@@ -522,7 +523,7 @@ def is_pytest_running():
522
523
  Returns:
523
524
  (bool): True if pytest is running, False otherwise.
524
525
  """
525
- return ("PYTEST_CURRENT_TEST" in os.environ) or ("pytest" in sys.modules) or ("pytest" in Path(sys.argv[0]).stem)
526
+ return ("PYTEST_CURRENT_TEST" in os.environ) or ("pytest" in sys.modules) or ("pytest" in Path(ARGV[0]).stem)
526
527
 
527
528
 
528
529
  def is_github_action_running() -> bool:
@@ -869,8 +870,8 @@ def set_sentry():
869
870
  return None # do not send event
870
871
 
871
872
  event["tags"] = {
872
- "sys_argv": sys.argv[0],
873
- "sys_argv_name": Path(sys.argv[0]).name,
873
+ "sys_argv": ARGV[0],
874
+ "sys_argv_name": Path(ARGV[0]).name,
874
875
  "install": "git" if is_git_dir() else "pip" if is_pip_package() else "other",
875
876
  "os": ENVIRONMENT,
876
877
  }
@@ -879,7 +880,7 @@ def set_sentry():
879
880
  if (
880
881
  SETTINGS["sync"]
881
882
  and RANK in (-1, 0)
882
- and Path(sys.argv[0]).name == "yolo"
883
+ and Path(ARGV[0]).name == "yolo"
883
884
  and not TESTS_RUNNING
884
885
  and ONLINE
885
886
  and is_pip_package()
@@ -14,7 +14,7 @@ except (ImportError, AssertionError):
14
14
 
15
15
  def on_fit_epoch_end(trainer):
16
16
  """Sends training metrics to Ray Tune at end of each epoch."""
17
- if ray.tune.is_session_enabled():
17
+ if ray.train._internal.session._get_session(): # replacement for deprecated ray.tune.is_session_enabled()
18
18
  metrics = trainer.metrics
19
19
  metrics["epoch"] = trainer.epoch
20
20
  session.report(metrics)
@@ -40,7 +40,7 @@ def run_ray_tune(
40
40
  train_args = {}
41
41
 
42
42
  try:
43
- subprocess.run("pip install ray[tune]<=2.9.3".split(), check=True) # do not add single quotes here
43
+ subprocess.run("pip install ray[tune]".split(), check=True) # do not add single quotes here
44
44
 
45
45
  import ray
46
46
  from ray import tune
@@ -48,7 +48,7 @@ def run_ray_tune(
48
48
  from ray.air.integrations.wandb import WandbLoggerCallback
49
49
  from ray.tune.schedulers import ASHAScheduler
50
50
  except ImportError:
51
- raise ModuleNotFoundError('Ray Tune required but not found. To install run: pip install "ray[tune]<=2.9.3"')
51
+ raise ModuleNotFoundError('Ray Tune required but not found. To install run: pip install "ray[tune]"')
52
52
 
53
53
  try:
54
54
  import wandb
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ultralytics
3
- Version: 8.1.36
3
+ Version: 8.1.38
4
4
  Summary: Ultralytics YOLOv8 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
5
5
  Author: Glenn Jocher, Ayush Chaurasia, Jing Qiu
6
6
  Maintainer: Glenn Jocher, Ayush Chaurasia, Jing Qiu
@@ -1,8 +1,8 @@
1
- ultralytics/__init__.py,sha256=6KIxAtcg1zdjEZWHZE9nPVcFVraKCEesr9iyY9ZX1Fc,625
1
+ ultralytics/__init__.py,sha256=TUM0Yh0QHEGmOjrvXry3W6KL2b9NAgB-CzkxQtshmmg,625
2
2
  ultralytics/assets/bus.jpg,sha256=wCAZxJecGR63Od3ZRERe9Aja1Weayrb9Ug751DS_vGM,137419
3
3
  ultralytics/assets/zidane.jpg,sha256=Ftc4aeMmen1O0A3o6GCDO9FlfBslLpTAw0gnetx7bts,50427
4
- ultralytics/cfg/__init__.py,sha256=4DFeQcRmsOUUJtP49MezHhWKlE52mUSHI7bKFglOq4k,21273
5
- ultralytics/cfg/default.yaml,sha256=zHRtcoaFUp6LSHRFtOzaj1GCLmVHLS1ymNhnIffcWGM,8142
4
+ ultralytics/cfg/__init__.py,sha256=TrOyD2ONqvSvrIX_AdPzfcIazmGBRBlQ4zIkwkKxiKM,21316
5
+ ultralytics/cfg/default.yaml,sha256=2DFD7eZJiKdnUB3eQPIxo8nV6TG4SiZzdaBJnD5Aw2k,8213
6
6
  ultralytics/cfg/datasets/Argoverse.yaml,sha256=FyeuJT5CHq_9d4hlfAf0kpZlnbUMO0S--UJ1yIqcdKk,3134
7
7
  ultralytics/cfg/datasets/DOTAv1.5.yaml,sha256=YDsyFPI6F6-OQXLBM3hOXo3vADYREwZzmMQfJNdpWyM,1193
8
8
  ultralytics/cfg/datasets/DOTAv1.yaml,sha256=dxLUliHvJOW4q4vJRu5qIYVvNfjvXWB7GVh_Fhk--dM,1163
@@ -61,11 +61,11 @@ ultralytics/cfg/trackers/botsort.yaml,sha256=YrPmj18p1UU40kJH5NRdL_4S8f7knggkk_q
61
61
  ultralytics/cfg/trackers/bytetrack.yaml,sha256=QvHmtuwulK4X6j3T5VEqtCm0sbWWBUVmWPcCcM20qe0,688
62
62
  ultralytics/data/__init__.py,sha256=A3i0n-2MnNzSdYqhM8xynBO2HJNKGSXWhPvRyO0_u1I,409
63
63
  ultralytics/data/annotator.py,sha256=evXQzARVerc0hb9ol-n_GrrHf-dlXO4lCMMWEZoJ2UM,2117
64
- ultralytics/data/augment.py,sha256=fKqaWKk-EEy-imtMD8fIzmPvH4gt4X7oEGDBWU5ocpQ,52177
65
- ultralytics/data/base.py,sha256=_rbKt666SKVUqQtoMyzmYMCEE4rDNryPM_uweRqE4hA,13363
64
+ ultralytics/data/augment.py,sha256=b1Tn6AIYn_k4XmnAfFlddjv6A8EgO35-lBXM8aLErTE,52173
65
+ ultralytics/data/base.py,sha256=AM3JUQKLyz5njw53o043-qb3aOUzWUvZCXBaE32joOs,13432
66
66
  ultralytics/data/build.py,sha256=ktZEi8RJ93kYdLWBlX7R4Hx1M2XrpHl833CdC6Hav9I,6406
67
67
  ultralytics/data/converter.py,sha256=DJ5aSk7w-RBKqrrABUoOahP_Lgccn7ujJSmVufOkBps,16503
68
- ultralytics/data/dataset.py,sha256=0d0Q8ORYkDOQyaemsJAq_jvZckK_QLpky_K52KIkrCo,17695
68
+ ultralytics/data/dataset.py,sha256=S8o__7T2zO5DIoQPXUq9Fv1wC6qdHscRcnuRv4rz0ms,17830
69
69
  ultralytics/data/loaders.py,sha256=zrfxXQ5CMFXKTR_FUPk3oKHwXruKmoXfuJq4B0vcSyA,23045
70
70
  ultralytics/data/split_dota.py,sha256=1q2FZC0SE4deRpXUSbKTbUAjX9VeejUIFM2DBLF8Cco,9961
71
71
  ultralytics/data/utils.py,sha256=5R-GRSvyyrZ2yOnTZ4utuek3NSHYAsjW_4aURgMkeG8,29782
@@ -75,8 +75,8 @@ ultralytics/data/explorer/utils.py,sha256=a6ugY8rKpFM8dIRcUwRyjRkRJ-zXEwe-NiJr6C
75
75
  ultralytics/data/explorer/gui/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
76
76
  ultralytics/data/explorer/gui/dash.py,sha256=a2s8oJKI8kqnWEcIyqCCzvIyvM_uZmfMaxrOdwmiq7k,10044
77
77
  ultralytics/engine/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
78
- ultralytics/engine/exporter.py,sha256=l7CJdjLDPbAhAXPO7VLHQ9J0DZDxB1b-EYF_wfsbPXo,53904
79
- ultralytics/engine/model.py,sha256=uemH3-CTwKTMbbiJnIqtReCNy-5TEK9VD737v3VIqxg,39435
78
+ ultralytics/engine/exporter.py,sha256=-soZ5dbMnxFNP24lbm3XZ6Gr8rB8JlDZLwYRfEgthwA,53790
79
+ ultralytics/engine/model.py,sha256=HRZBqIWeMVugHe9-iXHYWVK0HUgb3Hf4xmGDszenKsU,39463
80
80
  ultralytics/engine/predictor.py,sha256=wQRKdWGDTP5A6CS0gTC6U3RPDMhP3QkEzWSPm6eqCkU,17022
81
81
  ultralytics/engine/results.py,sha256=D4wZ9OsmBrEQWCkfOeUn_oagXLqu3SxRZYlpYkDDLH8,30667
82
82
  ultralytics/engine/trainer.py,sha256=sQ82Y4CRr366UdfKLPF0cqFe4V7ubkJYODjvZ9xZog0,34527
@@ -85,7 +85,7 @@ ultralytics/engine/validator.py,sha256=rcmJSGrsAfj-ryQktv6-fe0hAT7Z8CLNhUUUf0VsP
85
85
  ultralytics/hub/__init__.py,sha256=U4j-2QPdwSDlxw6RgFYnnJXOoIzLtwke4TkY2A8q4ws,5068
86
86
  ultralytics/hub/auth.py,sha256=hc97pJ01OfI8oQ7uw3ubKbiVCDSGxSGJHoo9W6hrrNw,5403
87
87
  ultralytics/hub/session.py,sha256=kFwufDIY7TeV79DdEQBKYrU5883WxgCrpJoTr1S5QuE,14649
88
- ultralytics/hub/utils.py,sha256=BoqNvi7yLUGrTNVEugFALhJkmpobW87gMVZ2dzDckRk,9734
88
+ ultralytics/hub/utils.py,sha256=tU_MfrT_mwyo0D7ihWe5vwBQYv_mS_U3ys-Zw8aCPa0,9729
89
89
  ultralytics/models/__init__.py,sha256=xrzn2dcLBG6Ujxll8LtlTIblPar2gjNhAwjAQg7u8sk,197
90
90
  ultralytics/models/fastsam/__init__.py,sha256=0dt65jZ_5b7Q-mdXN8MSEkgnFRA0FIwlel_LS2RaOlU,254
91
91
  ultralytics/models/fastsam/model.py,sha256=2b4HEcl798xbPRceXEYTu5YoBe9zJJA4BaVzH1KAM3Q,1054
@@ -139,7 +139,7 @@ ultralytics/models/yolo/segment/predict.py,sha256=xtA0ZZyuh9WVpX7zZFdAeCkWnxhQ30
139
139
  ultralytics/models/yolo/segment/train.py,sha256=aOQpDIptZfKSl9mFa6B-3W3QccMRlmBINBkI9K8-3sQ,2298
140
140
  ultralytics/models/yolo/segment/val.py,sha256=njiF6RWddS-HOWxVvlk5PXRw6UOgEt_HEOZVPF7rruQ,11745
141
141
  ultralytics/nn/__init__.py,sha256=4BPLHY89xEM_al5uK0aOmFgiML6CMGEZbezxOvTjOEs,587
142
- ultralytics/nn/autobackend.py,sha256=gMJhT-_mwyGc5ClgmixW56hKwsW6AQUCjLBYfxzFqNU,28684
142
+ ultralytics/nn/autobackend.py,sha256=veArcvRc6pu4MWarMaRnSdn-Gp1shbcSg3Z8NuuqRjg,28719
143
143
  ultralytics/nn/tasks.py,sha256=k6cl1H1hWtQXLxO_s5D6fa_DYyFzIekAMigh3lD36_A,42894
144
144
  ultralytics/nn/modules/__init__.py,sha256=Ga3MDpwX6DeI7VSH8joti5uleP4mgkQGolbe8RLZ2T8,2326
145
145
  ultralytics/nn/modules/block.py,sha256=KTv0HG4mTqnwVxfnu4aKBcGpS5c_gLP-wlz3iAIfIrk,25075
@@ -159,10 +159,10 @@ ultralytics/trackers/bot_sort.py,sha256=39AvhYVbT7izF3--rX_e6Lhgb5czTA23gw6AgnNc
159
159
  ultralytics/trackers/byte_tracker.py,sha256=z6z6jrhj8WeAP2azWZkhMUZET6g_8XMkMfdNpJg7jus,18871
160
160
  ultralytics/trackers/track.py,sha256=ayktOpi7SmaONsWqYXebrLQlVgDGuC9GNhmCBsDnLtI,3462
161
161
  ultralytics/trackers/utils/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
162
- ultralytics/trackers/utils/gmc.py,sha256=mXRqtlue1nmQU92TOKNH40R6lYFdUrKCYIbiPH6FIu0,13658
162
+ ultralytics/trackers/utils/gmc.py,sha256=fNn1U-981W4Bm6JNo7ak2URJ5OtIcLDXbCplEx4Fr4A,13688
163
163
  ultralytics/trackers/utils/kalman_filter.py,sha256=JN1sAcfJZy8fTZxc8w3jUJnGQDKtgAL__p4nTR6RM2I,15168
164
164
  ultralytics/trackers/utils/matching.py,sha256=c_pthBfu9sWeMVYe-dSecdWcQxUey-mQT2yMVsFH3VQ,5404
165
- ultralytics/utils/__init__.py,sha256=SN7wyoJP8zaDzqUoDIHTyV3tqprIgCTfT738kge0EPI,37500
165
+ ultralytics/utils/__init__.py,sha256=OypNCPSubkIQQQbLn6GNBbyi63MNmzpPar5nJ-VvfKg,37539
166
166
  ultralytics/utils/autobatch.py,sha256=ygZ3f2ByIkcujB89ENcTnGWWnAQw5Pbg6nBuShg-5t4,3863
167
167
  ultralytics/utils/benchmarks.py,sha256=cj_sztcI-hzfvRX8vzfXo4wmQe2CuQUcDHBO9THBbco,18285
168
168
  ultralytics/utils/checks.py,sha256=nzWNEfNci6rKC9x9ZYXRPJtK2vvvI7YKKZHROMUSsb0,27940
@@ -179,7 +179,7 @@ ultralytics/utils/plotting.py,sha256=YVJvEDozm1vm_Yf39jLPQ24Qst_f_lzEm-NeDjMElfQ
179
179
  ultralytics/utils/tal.py,sha256=xuIyryUjaaYHkHPG9GvBwh1xxN2Hq4y3hXOtuERehwY,16017
180
180
  ultralytics/utils/torch_utils.py,sha256=0Uuv7xERiwZWBwD89L3MzGaqNAlxoW27bGLS5ymqVME,25237
181
181
  ultralytics/utils/triton.py,sha256=gg1finxno_tY2Ge9PMhmu7PI9wvoFZoiicdT4Bhqv3w,3936
182
- ultralytics/utils/tuner.py,sha256=bQE80f4p6PKb0iuSu4rSrXkS6LDGGUvGbyKB52nyVIA,6185
182
+ ultralytics/utils/tuner.py,sha256=JhvBp6haKA6eqpNPpGJzzjjCmPxBx5phk9kHmt_jppw,6171
183
183
  ultralytics/utils/callbacks/__init__.py,sha256=YrWqC3BVVaTLob4iCPR6I36mUxIUOpPJW7B_LjT78Qw,214
184
184
  ultralytics/utils/callbacks/base.py,sha256=sOe3JvyBFmRwVZ8_Q03u7JwTeOOm9CI4s9-UEhnG0xA,5777
185
185
  ultralytics/utils/callbacks/clearml.py,sha256=K7bDf5tS8xL4KeFMkoVDL2kKkil3f4qoKy8KfZkD854,5897
@@ -188,12 +188,12 @@ ultralytics/utils/callbacks/dvc.py,sha256=WIClMsuvhiiyrwRv5BsZLxjsxYNJ3Y8Vq7zN0B
188
188
  ultralytics/utils/callbacks/hub.py,sha256=2xebyUL92j3OZwMmL80kdvHrMizqaaqXBe5oSXJRKdA,3621
189
189
  ultralytics/utils/callbacks/mlflow.py,sha256=G0WgpoTCeubKSY0Zp4I8h5PbnajAojU83e84bQFoMDI,5335
190
190
  ultralytics/utils/callbacks/neptune.py,sha256=5Z3ua5YBTUS56FH8VQKQG1aaIo9fH8GEyzC5q7p4ipQ,3756
191
- ultralytics/utils/callbacks/raytune.py,sha256=6OgGNuC35F29lw8Dl_d0lue4-iBR6dqrBVQnIRQDx4E,632
191
+ ultralytics/utils/callbacks/raytune.py,sha256=ODVYzy-CoM4Uge0zjkh3Hnh9nF2M0vhDrSenXnvcizw,705
192
192
  ultralytics/utils/callbacks/tensorboard.py,sha256=hRmWjbqdA4RNaLuSZznuDcpOBW-_-_Ga0u-B8UU-7ZI,4134
193
193
  ultralytics/utils/callbacks/wb.py,sha256=4QI81nHdzgwhXHlmTiRxLqunvkKakLXYUhHTUY1ZeHA,6635
194
- ultralytics-8.1.36.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
195
- ultralytics-8.1.36.dist-info/METADATA,sha256=H8F3NiSJnAwV91nLD-Vfb9uq0qYb-Ax-TZrqIV2C3vI,40330
196
- ultralytics-8.1.36.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
197
- ultralytics-8.1.36.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
198
- ultralytics-8.1.36.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
199
- ultralytics-8.1.36.dist-info/RECORD,,
194
+ ultralytics-8.1.38.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
195
+ ultralytics-8.1.38.dist-info/METADATA,sha256=82sRxGKVWBIiNlzR7ilmIIX27SzCCh6sYGUGbwMejOQ,40330
196
+ ultralytics-8.1.38.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
197
+ ultralytics-8.1.38.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
198
+ ultralytics-8.1.38.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
199
+ ultralytics-8.1.38.dist-info/RECORD,,