ultralytics 8.3.13__py3-none-any.whl → 8.3.15__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.
ultralytics/__init__.py CHANGED
@@ -1,6 +1,6 @@
1
1
  # Ultralytics YOLO 🚀, AGPL-3.0 license
2
2
 
3
- __version__ = "8.3.13"
3
+ __version__ = "8.3.15"
4
4
 
5
5
  import os
6
6
 
@@ -1,6 +1,5 @@
1
1
  # Ultralytics YOLO 🚀, AGPL-3.0 license
2
2
 
3
- import contextlib
4
3
  import shutil
5
4
  import subprocess
6
5
  import sys
@@ -639,7 +638,7 @@ def smart_value(v):
639
638
  else:
640
639
  try:
641
640
  return eval(v)
642
- except: # noqa E722
641
+ except Exception:
643
642
  return v
644
643
 
645
644
 
ultralytics/data/utils.py CHANGED
@@ -65,7 +65,7 @@ def exif_size(img: Image.Image):
65
65
  rotation = exif.get(274, None) # the EXIF key for the orientation tag is 274
66
66
  if rotation in {6, 8}: # rotation 270 or 90
67
67
  s = s[1], s[0]
68
- except: # noqa E722
68
+ except Exception:
69
69
  pass
70
70
  return s
71
71
 
@@ -398,7 +398,7 @@ class Exporter:
398
398
  """YOLO ONNX export."""
399
399
  requirements = ["onnx>=1.12.0"]
400
400
  if self.args.simplify:
401
- requirements += ["onnxslim==0.1.34", "onnxruntime" + ("-gpu" if torch.cuda.is_available() else "")]
401
+ requirements += ["onnxslim", "onnxruntime" + ("-gpu" if torch.cuda.is_available() else "")]
402
402
  check_requirements(requirements)
403
403
  import onnx # noqa
404
404
 
@@ -46,7 +46,7 @@ def default_class_names(data=None):
46
46
  if data:
47
47
  try:
48
48
  return yaml_load(check_yaml(data))["names"]
49
- except: # noqa E722
49
+ except Exception:
50
50
  pass
51
51
  return {i: f"class{i}" for i in range(999)} # return default if above errors
52
52
 
@@ -126,7 +126,7 @@ class AutoBackend(nn.Module):
126
126
  fp16 &= pt or jit or onnx or xml or engine or nn_module or triton # FP16
127
127
  nhwc = coreml or saved_model or pb or tflite or edgetpu # BHWC formats (vs torch BCWH)
128
128
  stride = 32 # default stride
129
- model, metadata = None, None
129
+ model, metadata, task = None, None, None
130
130
 
131
131
  # Set device
132
132
  cuda = torch.cuda.is_available() and device.type != "cpu" # use CUDA
@@ -336,11 +336,15 @@ class AutoBackend(nn.Module):
336
336
 
337
337
  Interpreter, load_delegate = tf.lite.Interpreter, tf.lite.experimental.load_delegate
338
338
  if edgetpu: # TF Edge TPU https://coral.ai/software/#edgetpu-runtime
339
- LOGGER.info(f"Loading {w} for TensorFlow Lite Edge TPU inference...")
339
+ device = device[3:] if str(device).startswith("tpu") else ":0"
340
+ LOGGER.info(f"Loading {w} on device {device[1:]} for TensorFlow Lite Edge TPU inference...")
340
341
  delegate = {"Linux": "libedgetpu.so.1", "Darwin": "libedgetpu.1.dylib", "Windows": "edgetpu.dll"}[
341
342
  platform.system()
342
343
  ]
343
- interpreter = Interpreter(model_path=w, experimental_delegates=[load_delegate(delegate)])
344
+ interpreter = Interpreter(
345
+ model_path=w,
346
+ experimental_delegates=[load_delegate(delegate, options={"device": device})],
347
+ )
344
348
  else: # TFLite
345
349
  LOGGER.info(f"Loading {w} for TensorFlow Lite inference...")
346
350
  interpreter = Interpreter(model_path=w) # load TFLite model
@@ -501,7 +505,7 @@ class AutoBackend(nn.Module):
501
505
 
502
506
  # TensorRT
503
507
  elif self.engine:
504
- if self.dynamic or im.shape != self.bindings["images"].shape:
508
+ if self.dynamic and im.shape != self.bindings["images"].shape:
505
509
  if self.is_trt10:
506
510
  self.context.set_input_shape("images", im.shape)
507
511
  self.bindings["images"] = self.bindings["images"]._replace(shape=im.shape)
ultralytics/nn/tasks.py CHANGED
@@ -963,7 +963,6 @@ def parse_model(d, ch, verbose=True): # model_dict, input_channels(3)
963
963
  args[j] = locals()[a] if a in locals() else ast.literal_eval(a)
964
964
  except ValueError:
965
965
  pass
966
-
967
966
  n = n_ = max(round(n * depth), 1) if n > 1 else n # depth gain
968
967
  if m in {
969
968
  Classify,
@@ -1102,7 +1101,7 @@ def guess_model_scale(model_path):
1102
1101
  (str): The size character of the model's scale, which can be n, s, m, l, or x.
1103
1102
  """
1104
1103
  try:
1105
- return re.search(r"yolo[v]?\d+([nslmx])", Path(model_path).stem).group(1) # n, s, m, l, or x
1104
+ return re.search(r"yolo[v]?\d+([nslmx])", Path(model_path).stem).group(1) # noqa, returns n, s, m, l, or x
1106
1105
  except AttributeError:
1107
1106
  return ""
1108
1107
 
@@ -1139,7 +1138,7 @@ def guess_model_task(model):
1139
1138
  if isinstance(model, dict):
1140
1139
  try:
1141
1140
  return cfg2task(model)
1142
- except: # noqa E722
1141
+ except Exception:
1143
1142
  pass
1144
1143
 
1145
1144
  # Guess from PyTorch model
@@ -1147,12 +1146,12 @@ def guess_model_task(model):
1147
1146
  for x in "model.args", "model.model.args", "model.model.model.args":
1148
1147
  try:
1149
1148
  return eval(x)["task"]
1150
- except: # noqa E722
1149
+ except Exception:
1151
1150
  pass
1152
1151
  for x in "model.yaml", "model.model.yaml", "model.model.model.yaml":
1153
1152
  try:
1154
1153
  return cfg2task(eval(x))
1155
- except: # noqa E722
1154
+ except Exception:
1156
1155
  pass
1157
1156
 
1158
1157
  for m in model.modules():
@@ -31,7 +31,7 @@ class AIGym(BaseSolution):
31
31
 
32
32
  def monitor(self, im0):
33
33
  """
34
- Monitor the workouts using Ultralytics YOLOv8 Pose Model: https://docs.ultralytics.com/tasks/pose/.
34
+ Monitor the workouts using Ultralytics YOLO Pose Model: https://docs.ultralytics.com/tasks/pose/.
35
35
 
36
36
  Args:
37
37
  im0 (ndarray): The input image that will be used for processing
@@ -48,7 +48,7 @@ class Analytics(BaseSolution):
48
48
  self.canvas = FigureCanvas(self.fig) # Set common axis properties
49
49
  self.ax.set_facecolor(self.bg_color)
50
50
  self.color_mapping = {}
51
- self.ax.axis("equal") if type == "pie" else None # Ensure pie chart is circular
51
+ self.ax.axis("equal") if self.type == "pie" else None # Ensure pie chart is circular
52
52
 
53
53
  def process_data(self, im0, frame_number):
54
54
  """
@@ -61,11 +61,11 @@ class Analytics(BaseSolution):
61
61
  self.extract_tracks(im0) # Extract tracks
62
62
 
63
63
  if self.type == "line":
64
- for box in self.boxes:
64
+ for _ in self.boxes:
65
65
  self.total_counts += 1
66
66
  im0 = self.update_graph(frame_number=frame_number)
67
67
  self.total_counts = 0
68
- elif self.type == "pie" or self.type == "bar" or self.type == "area":
68
+ elif self.type in {"pie", "bar", "area"}:
69
69
  self.clswise_count = {}
70
70
  for box, cls in zip(self.boxes, self.clss):
71
71
  if self.names[int(cls)] in self.clswise_count:
@@ -52,7 +52,8 @@ class Heatmap(ObjectCounter):
52
52
  Returns:
53
53
  im0 (ndarray): Processed image for further usage
54
54
  """
55
- self.heatmap = np.zeros_like(im0, dtype=np.float32) * 0.99 if not self.initialized else self.heatmap
55
+ if not self.initialized:
56
+ self.heatmap = np.zeros_like(im0, dtype=np.float32) * 0.99
56
57
  self.initialized = True # Initialize heatmap only once
57
58
 
58
59
  self.annotator = Annotator(im0, line_width=self.line_width) # Initialize annotator
@@ -143,7 +143,7 @@ class ParkingPtsSelection:
143
143
 
144
144
 
145
145
  class ParkingManagement:
146
- """Manages parking occupancy and availability using YOLOv8 for real-time monitoring and visualization."""
146
+ """Manages parking occupancy and availability using YOLO model for real-time monitoring and visualization."""
147
147
 
148
148
  def __init__(
149
149
  self,
@@ -153,10 +153,10 @@ class ParkingManagement:
153
153
  available_region_color=(0, 255, 0), # available region color
154
154
  ):
155
155
  """
156
- Initializes the parking management system with a YOLOv8 model and visualization settings.
156
+ Initializes the parking management system with a YOLO model and visualization settings.
157
157
 
158
158
  Args:
159
- model (str): Path to the YOLOv8 model.
159
+ model (str): Path to the YOLO model.
160
160
  json_file (str): file that have all parking slot points data
161
161
  occupied_region_color (tuple): RGB color tuple for occupied regions.
162
162
  available_region_color (tuple): RGB color tuple for available regions.
@@ -11,7 +11,7 @@ from ultralytics.utils.downloads import GITHUB_ASSETS_STEMS
11
11
 
12
12
 
13
13
  def inference(model=None):
14
- """Runs real-time object detection on video input using Ultralytics YOLOv8 in a Streamlit application."""
14
+ """Runs real-time object detection on video input using Ultralytics YOLO11 in a Streamlit application."""
15
15
  check_requirements("streamlit>=1.29.0") # scope imports for faster ultralytics package load speeds
16
16
  import streamlit as st
17
17
 
@@ -526,7 +526,7 @@ def read_device_model() -> str:
526
526
  try:
527
527
  with open("/proc/device-tree/model") as f:
528
528
  return f.read()
529
- except: # noqa E722
529
+ except Exception:
530
530
  return ""
531
531
 
532
532
 
@@ -584,7 +584,7 @@ def is_docker() -> bool:
584
584
  try:
585
585
  with open("/proc/self/cgroup") as f:
586
586
  return "docker" in f.read()
587
- except: # noqa E722
587
+ except Exception:
588
588
  return False
589
589
 
590
590
 
@@ -623,7 +623,7 @@ def is_online() -> bool:
623
623
  for dns in ("1.1.1.1", "8.8.8.8"): # check Cloudflare and Google DNS
624
624
  socket.create_connection(address=(dns, 80), timeout=2.0).close()
625
625
  return True
626
- except: # noqa E722
626
+ except Exception:
627
627
  return False
628
628
 
629
629
 
@@ -50,7 +50,7 @@ def _log_tensorboard_graph(trainer):
50
50
  LOGGER.info(f"{PREFIX}model graph visualization added ✅")
51
51
  return
52
52
 
53
- except: # noqa E722
53
+ except Exception:
54
54
  # Fallback to TorchScript export steps (RTDETR)
55
55
  try:
56
56
  model = deepcopy(de_parallel(trainer.model))
@@ -277,7 +277,7 @@ def check_latest_pypi_version(package_name="ultralytics"):
277
277
  response = requests.get(f"https://pypi.org/pypi/{package_name}/json", timeout=3)
278
278
  if response.status_code == 200:
279
279
  return response.json()["info"]["version"]
280
- except: # noqa E722
280
+ except Exception:
281
281
  return None
282
282
 
283
283
 
@@ -299,7 +299,7 @@ def check_pip_update_available():
299
299
  f"Update with 'pip install -U ultralytics'"
300
300
  )
301
301
  return True
302
- except: # noqa E722
302
+ except Exception:
303
303
  pass
304
304
  return False
305
305
 
@@ -715,7 +715,7 @@ def git_describe(path=ROOT): # path must be a directory
715
715
  """Return human-readable git description, i.e. v5.0-5-g3e25f1e https://git-scm.com/docs/git-describe."""
716
716
  try:
717
717
  return subprocess.check_output(f"git -C {path} describe --tags --long --always", shell=True).decode()[:-1]
718
- except: # noqa E722
718
+ except Exception:
719
719
  return ""
720
720
 
721
721
 
@@ -60,7 +60,7 @@ def is_url(url, check=False):
60
60
  with request.urlopen(url) as response:
61
61
  return response.getcode() == 200 # check if exists online
62
62
  return True
63
- except: # noqa E722
63
+ except Exception:
64
64
  return False
65
65
 
66
66
 
@@ -1117,7 +1117,7 @@ def plot_images(
1117
1117
  im[y : y + h, x : x + w, :][mask] = (
1118
1118
  im[y : y + h, x : x + w, :][mask] * 0.4 + np.array(color) * 0.6
1119
1119
  )
1120
- except: # noqa E722
1120
+ except Exception:
1121
1121
  pass
1122
1122
  annotator.fromarray(im)
1123
1123
  if not save:
@@ -119,7 +119,7 @@ def get_cpu_info():
119
119
  info = cpuinfo.get_cpu_info() # info dict
120
120
  string = info.get(k[0] if k[0] in info else k[1] if k[1] in info else k[2], "unknown")
121
121
  PERSISTENT_CACHE["cpu_info"] = string.replace("(R)", "").replace("CPU ", "").replace("@ ", "")
122
- except: # noqa E722
122
+ except Exception:
123
123
  pass
124
124
  return PERSISTENT_CACHE.get("cpu_info", "unknown")
125
125
 
@@ -163,7 +163,7 @@ def select_device(device="", batch=0, newline=False, verbose=True):
163
163
  Note:
164
164
  Sets the 'CUDA_VISIBLE_DEVICES' environment variable for specifying which GPUs to use.
165
165
  """
166
- if isinstance(device, torch.device):
166
+ if isinstance(device, torch.device) or str(device).startswith("tpu"):
167
167
  return device
168
168
 
169
169
  s = f"Ultralytics {__version__} 🚀 Python-{PYTHON_VERSION} torch-{torch.__version__} "
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ultralytics
3
- Version: 8.3.13
3
+ Version: 8.3.15
4
4
  Summary: Ultralytics YOLO for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
5
5
  Author-email: Glenn Jocher <glenn.jocher@ultralytics.com>, Jing Qiu <jing.qiu@ultralytics.com>
6
6
  Maintainer-email: Ultralytics <hello@ultralytics.com>
@@ -7,10 +7,10 @@ tests/test_exports.py,sha256=fpTKEVBUGLF3WiZPNKRs-IEcIY4cfxgvgKjUNfodjww,8042
7
7
  tests/test_integrations.py,sha256=f5-QCUk1SU_-qn4mBCZwS3GN3tXEBIIXo4z2EhExbHw,6126
8
8
  tests/test_python.py,sha256=I1RRdCwLdrc3jX06huVxct8HX8ccQOmQgVpuEflRl0U,23560
9
9
  tests/test_solutions.py,sha256=dpxWGKO-aJ3Yff4KR7BQGajX9VyFdGTWEtcbmFC3WwE,3005
10
- ultralytics/__init__.py,sha256=2rg2RMDy6HqtBcSx4b7eBss9eXQ6leZvZ6drzM-8sFI,681
10
+ ultralytics/__init__.py,sha256=aj8G5I4WicUSrO31o8bjr2-NpBMLdj9qEzU9uVqo-yg,681
11
11
  ultralytics/assets/bus.jpg,sha256=wCAZxJecGR63Od3ZRERe9Aja1Weayrb9Ug751DS_vGM,137419
12
12
  ultralytics/assets/zidane.jpg,sha256=Ftc4aeMmen1O0A3o6GCDO9FlfBslLpTAw0gnetx7bts,50427
13
- ultralytics/cfg/__init__.py,sha256=CUg1z4zY3KyR-V4_bghMY8s1xuu-M50gm-v_vpHdXEM,31753
13
+ ultralytics/cfg/__init__.py,sha256=Y-T6ya7MYBLsoJ4sv8MRgvT5TMKZs5A6ZOYo7Tw_jcs,31732
14
14
  ultralytics/cfg/default.yaml,sha256=ul49zgSzTegMmc8CFeu9tXkWNvQhETdZMa9EgDNSnY4,8319
15
15
  ultralytics/cfg/datasets/Argoverse.yaml,sha256=FyeuJT5CHq_9d4hlfAf0kpZlnbUMO0S--UJ1yIqcdKk,3134
16
16
  ultralytics/cfg/datasets/DOTAv1.5.yaml,sha256=QVfp_Qp-4rukuicaB4qx86NxSHM8Mrzym8l_fIDo8gw,1195
@@ -97,9 +97,9 @@ ultralytics/data/converter.py,sha256=QCtrcbNz9kid8nvHfGIWt02nH1wwMKv6HI-8s927CR8
97
97
  ultralytics/data/dataset.py,sha256=D556AW0ZEsW3V8c5zJiHM_prc_YfZqymIkDKPw3k9Io,22936
98
98
  ultralytics/data/loaders.py,sha256=Fr70Q9p9t7buLW_8R2_lI_nyCMG033gWSxvwy1M-a-U,28449
99
99
  ultralytics/data/split_dota.py,sha256=yOtypHoY5HvIVBKZgFXdfj2tuCLLEBnMwNfAeG94Eik,10680
100
- ultralytics/data/utils.py,sha256=u6OZ7InLpI1em5aEPz13ZzS9BcO37dcY9_s2btXGZYQ,31076
100
+ ultralytics/data/utils.py,sha256=bmWEIrdogj4kssZQSJdSbIF8QsJU00lo-EY-Mgcqv4M,31073
101
101
  ultralytics/engine/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
102
- ultralytics/engine/exporter.py,sha256=lKmVaypzVY3R-RkCs1KQNrSpF6W4jKMZqNBKZ0CfzmA,57670
102
+ ultralytics/engine/exporter.py,sha256=OQONIGMLBKgkhfUC4CV7mRWfyo_VV03SA5SnaetBIsM,57662
103
103
  ultralytics/engine/model.py,sha256=pvL1uf-wwdWL8Iph7VEAYn1-z7wEHzVug21V_0_gO6M,51456
104
104
  ultralytics/engine/predictor.py,sha256=keTelEeo23Dcbs-XvmRWAPIs4pbCNDtsMBz88WM1eK8,17534
105
105
  ultralytics/engine/results.py,sha256=BxanBI8PhBCfs-9cSy-GS6naScuiD3hdvUAJWPW2mS0,75043
@@ -169,8 +169,8 @@ ultralytics/models/yolo/world/__init__.py,sha256=3VTH0q4NOt2EWRom15yCymvmvm0Etp2
169
169
  ultralytics/models/yolo/world/train.py,sha256=gaDrAmLJpg9qDtmL5evA5HsV2yb4RTRSfk2EDYrHdRg,3686
170
170
  ultralytics/models/yolo/world/train_world.py,sha256=IsnCEVt6DcM9lUskCKmIN-M8MM79xLpwTRqRoAHUnZ4,4857
171
171
  ultralytics/nn/__init__.py,sha256=4BPLHY89xEM_al5uK0aOmFgiML6CMGEZbezxOvTjOEs,587
172
- ultralytics/nn/autobackend.py,sha256=xcbndT-esNu3Icx3SWRJXZ7JqWjj8H5hteUetYBliDo,31599
173
- ultralytics/nn/tasks.py,sha256=ssBZR4LY4rvaxYawXq5-yWSBAZ9oCz6BgxWYXB2YD68,48399
172
+ ultralytics/nn/autobackend.py,sha256=sFo9vx3y1M3lzaROMvMFfar7EngEn4BF5-_439r_eZA,31798
173
+ ultralytics/nn/tasks.py,sha256=vHhPv6kFkSCjYB_OfAmEB6PYwxKVZlyzZvqKULE3utY,48403
174
174
  ultralytics/nn/modules/__init__.py,sha256=xhW2BennT9U_VaMXVpRu-bdLgp1BXt9L8mkIUBE3idU,2625
175
175
  ultralytics/nn/modules/activation.py,sha256=chhn469wnRHEs5BMGNBYXwPYZc_7-urspTT8fnBd-xA,895
176
176
  ultralytics/nn/modules/block.py,sha256=thcIPcnGRRxDDDswywJsfzbewr9XfTrzl_UvSl-bJ3c,41832
@@ -179,16 +179,16 @@ ultralytics/nn/modules/head.py,sha256=WnCpQDBlMDStpEs-m-R0vcKq28OX2FEgTcmHEpRL_p
179
179
  ultralytics/nn/modules/transformer.py,sha256=tGiK8NmPfswwW1rbF21r5ILUkkZQ6Nk4s8j16vFBmps,18069
180
180
  ultralytics/nn/modules/utils.py,sha256=a88cKl2wz1nMVSEBiajtvaCbDBQIkESWOKTZ_WAJy90,3195
181
181
  ultralytics/solutions/__init__.py,sha256=6RDeXWO1QSaMgCq8YrWXaj2xvPw2sJwJL_a0dgjCvz0,648
182
- ultralytics/solutions/ai_gym.py,sha256=lBAkWV8vrEdKAXcBFVbugPeZZ08MOjGYTdnFlG22vKM,3772
183
- ultralytics/solutions/analytics.py,sha256=w5hnnBNSTQ35tJp6DDeWYw2ASjylp3ZmzrTXcdWwDw8,9319
182
+ ultralytics/solutions/ai_gym.py,sha256=BG2e7yl3_5LF_Y_RLOeBE9x872NmkVqF6lyAPESp-fs,3770
183
+ ultralytics/solutions/analytics.py,sha256=x5-PA7DmR_ZbeZFCx6wKBI-Cs-opJ5wKyDNdB5E3fNQ,9294
184
184
  ultralytics/solutions/distance_calculation.py,sha256=3D5qj9g-XGt_QPEu5IQI2ubTC0n2pmISDrNPl__JK9M,3373
185
- ultralytics/solutions/heatmap.py,sha256=2C4s_rVFcOc5oSWxb0pNxNoCawe4lxajpTDNFd4tVL8,3850
185
+ ultralytics/solutions/heatmap.py,sha256=Y9RHAp7b7-01foLUW0iUjKis6Iu60fFEFxxZqiENhX0,3845
186
186
  ultralytics/solutions/object_counter.py,sha256=7s3Q--CAFHr_uXzeq6epXgl5YSinc6q-VThPBx1Gj3Y,5485
187
- ultralytics/solutions/parking_management.py,sha256=VgYyhoSEo7fnPegIhNUqnFL0jlMEevALx0QQbzJ3vGI,9049
187
+ ultralytics/solutions/parking_management.py,sha256=dvvymuR2ErvufN9PzC2M9K4byKsjIFYPiDcrCNPJtbk,9049
188
188
  ultralytics/solutions/queue_management.py,sha256=5d1RURQiqffAoET8S66gHimK0l3gKNAfuPO5U6_08jc,2716
189
189
  ultralytics/solutions/solutions.py,sha256=qWKGlwlH9858GfAdZkcu_QXbrzjTFStDvg16Eky0oyo,3541
190
190
  ultralytics/solutions/speed_estimation.py,sha256=2jLTEdnSF3Mm3Z7QJVPCUq84-7L6ELIJIR_sPFBW_cU,3164
191
- ultralytics/solutions/streamlit_inference.py,sha256=qA2EtwUC7ADOQ8P-zs3VPyrIoRArhcZz9CxkFbH63bw,5699
191
+ ultralytics/solutions/streamlit_inference.py,sha256=I9qNwBsoLgvEUy_y9CF7W8dod4ifJq2kOqsv0EOcTxU,5699
192
192
  ultralytics/trackers/__init__.py,sha256=j72IgH2dZHQArMPK4YwcV5ieIw94fYvlGdQjB9cOQKw,227
193
193
  ultralytics/trackers/basetrack.py,sha256=dXnXW3cxxd7lPm20JJCNO2voCIrQ4vhbNI1g4YEgn-Y,4423
194
194
  ultralytics/trackers/bot_sort.py,sha256=766grVQExvonb087Wy-SB32TSwYYsTEM22yoWeQ_EEo,10494
@@ -198,12 +198,12 @@ ultralytics/trackers/utils/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7J
198
198
  ultralytics/trackers/utils/gmc.py,sha256=VcURuY041qGCeWUGMxHZBr10T16LtcMqyv7AmTfE1MY,14557
199
199
  ultralytics/trackers/utils/kalman_filter.py,sha256=cH9zD3fwkuezP97H9mw8cSBN7a8hHKx_Sx1j7t3oYGs,21349
200
200
  ultralytics/trackers/utils/matching.py,sha256=3Ie1WNNRZ4_q3365F03XD7Nr9juZB_08mw4yUKC3w74,7162
201
- ultralytics/utils/__init__.py,sha256=du1Y1LMU0jQn_zWWnAIx9U8wn6Vh7ce-k7qMwi6y0po,48698
201
+ ultralytics/utils/__init__.py,sha256=e9TGKFTMU1dGkYVvD22qHxvR76gUiATKWM4eIqT77SI,48689
202
202
  ultralytics/utils/autobatch.py,sha256=BO9MCRtrLDtrDQaxqV0BdjaYsgXf-q07Y3_VdGp4URY,4330
203
203
  ultralytics/utils/benchmarks.py,sha256=R3_jtwLd48azPSXmtIhqlzduUvflk0FOY8GJOJ6mB6E,25097
204
- ultralytics/utils/checks.py,sha256=iH5R-DQKhP7qnW8pQm-rlYPsMJ5KWvcn9imo-hamIqE,29765
204
+ ultralytics/utils/checks.py,sha256=jjCIAT6yBQ2v-aRxh3ZmoBIEiVT-iCAvcqarLLNW1os,29756
205
205
  ultralytics/utils/dist.py,sha256=NDFga-uKxkBX2zLxFHSene_cCiGQJoyOeCXcN9JIOIk,2358
206
- ultralytics/utils/downloads.py,sha256=xxM9zTNCqo3PRFOxWCH1pJoKuFJKZFsb3sab6Hvabug,21977
206
+ ultralytics/utils/downloads.py,sha256=fh7I5toTSowAOXtmx5zIzCEDREfTFG45cLIHmsDmuYw,21974
207
207
  ultralytics/utils/errors.py,sha256=GqP_Jgj_n0paxn8OMhn3DTCgoNkB2WjUcUaqs-M6SQk,816
208
208
  ultralytics/utils/files.py,sha256=uiXQSVABJRoI5ImnM6ndEBIFbECfksmWNEldBg8GnSo,8224
209
209
  ultralytics/utils/instance.py,sha256=QSms7mPHZ5e8JGuJYLohLWltzI0aBE8dob2rOUK4RtM,16249
@@ -211,9 +211,9 @@ ultralytics/utils/loss.py,sha256=SW3FVFFp8Ki_LCT8wIdFbm6KmyPcQn3RmKNcvVAhMQI,341
211
211
  ultralytics/utils/metrics.py,sha256=msPaXc244ndc0NPBhnNlHsKkVhdc-TMgFn5NATlZZVI,53918
212
212
  ultralytics/utils/ops.py,sha256=dsXNdyrYx_p6io6zezig9p84dxS7U-10vceHNVu2IL0,32888
213
213
  ultralytics/utils/patches.py,sha256=J-iOwIRbfUs-inBZerhnXby5tUKjYcOIyvhLTS352JE,3270
214
- ultralytics/utils/plotting.py,sha256=RYTdMJtWOO5qPowca1a8izfasoIyGxzmfp9VGB_g0xE,61092
214
+ ultralytics/utils/plotting.py,sha256=TKtdbAOl6gZdFD2hlA5T4LNWfr2LUWbCC-cXkgL1JAU,61089
215
215
  ultralytics/utils/tal.py,sha256=ECsu95xEqOItmxMDN4YTD3FsUiIsQNWy0pZC3TfvFfk,16877
216
- ultralytics/utils/torch_utils.py,sha256=gVN-KSrAzJC1rW3woQd4FsTT693GD8rXiccToL2m4kM,30059
216
+ ultralytics/utils/torch_utils.py,sha256=91fmJtZRvIVb6LI-wNkNrlHE7mMNBmcR4oif8ZYppYU,30089
217
217
  ultralytics/utils/triton.py,sha256=gg1finxno_tY2Ge9PMhmu7PI9wvoFZoiicdT4Bhqv3w,3936
218
218
  ultralytics/utils/tuner.py,sha256=mJdgvuE2StoFS13mEdsTbsxQgSZA4fSdSCgoyh8PvNw,6250
219
219
  ultralytics/utils/callbacks/__init__.py,sha256=YrWqC3BVVaTLob4iCPR6I36mUxIUOpPJW7B_LjT78Qw,214
@@ -225,11 +225,11 @@ ultralytics/utils/callbacks/hub.py,sha256=EPewsLigFQc9ucTX2exKSlKBiaBNhYYyGC_nR2
225
225
  ultralytics/utils/callbacks/mlflow.py,sha256=mkl_rK0Gy02cXnQUYmzmLE5W97fMgfEb7IlgOAdnjHg,5396
226
226
  ultralytics/utils/callbacks/neptune.py,sha256=IbGQfEltamUKXJt93uSLQFn8c2rYh3DMTgVE1xsnmUI,3813
227
227
  ultralytics/utils/callbacks/raytune.py,sha256=ODVYzy-CoM4Uge0zjkh3Hnh9nF2M0vhDrSenXnvcizw,705
228
- ultralytics/utils/callbacks/tensorboard.py,sha256=bv4fkkesdgmZv_E2MU6wuaMBwEV5iI2G53RHPyD9quw,4170
228
+ ultralytics/utils/callbacks/tensorboard.py,sha256=SHlE58Fb-sg-uZKtgy-ybIO3SAIfK55aj8kTYGA0Cyg,4167
229
229
  ultralytics/utils/callbacks/wb.py,sha256=upfbF8-LLXueUvulLaMDmKDhKCl_PWbNa_87PQ0L0Rc,6752
230
- ultralytics-8.3.13.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
231
- ultralytics-8.3.13.dist-info/METADATA,sha256=lwU4l_KFBx8TzMo_vwe4pyKOaepvZ3mPvWwm6Y951_A,34660
232
- ultralytics-8.3.13.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
233
- ultralytics-8.3.13.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
234
- ultralytics-8.3.13.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
235
- ultralytics-8.3.13.dist-info/RECORD,,
230
+ ultralytics-8.3.15.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
231
+ ultralytics-8.3.15.dist-info/METADATA,sha256=H_YoVi7MhmRhxpODtQejSTLVwbcGGtKWRltpeTfp8wU,34660
232
+ ultralytics-8.3.15.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
233
+ ultralytics-8.3.15.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
234
+ ultralytics-8.3.15.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
235
+ ultralytics-8.3.15.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.1.0)
2
+ Generator: setuptools (75.2.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5