ultralytics 8.3.111__py3-none-any.whl → 8.3.113__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.
Files changed (71) hide show
  1. ultralytics/__init__.py +1 -1
  2. ultralytics/cfg/__init__.py +14 -16
  3. ultralytics/cfg/datasets/coco8-multispectral.yaml +104 -0
  4. ultralytics/cfg/datasets/dota8-multispectral.yaml +38 -0
  5. ultralytics/data/augment.py +17 -7
  6. ultralytics/data/base.py +24 -26
  7. ultralytics/data/converter.py +54 -3
  8. ultralytics/data/dataset.py +5 -5
  9. ultralytics/data/loaders.py +8 -10
  10. ultralytics/data/split.py +123 -0
  11. ultralytics/data/utils.py +34 -52
  12. ultralytics/engine/exporter.py +22 -24
  13. ultralytics/engine/model.py +3 -6
  14. ultralytics/engine/predictor.py +8 -4
  15. ultralytics/engine/results.py +7 -7
  16. ultralytics/engine/trainer.py +4 -5
  17. ultralytics/engine/tuner.py +1 -1
  18. ultralytics/engine/validator.py +4 -4
  19. ultralytics/hub/auth.py +1 -1
  20. ultralytics/hub/session.py +3 -3
  21. ultralytics/models/rtdetr/train.py +1 -22
  22. ultralytics/models/sam/modules/sam.py +2 -1
  23. ultralytics/models/yolo/classify/train.py +1 -1
  24. ultralytics/models/yolo/detect/train.py +2 -2
  25. ultralytics/models/yolo/detect/val.py +1 -1
  26. ultralytics/models/yolo/obb/train.py +1 -1
  27. ultralytics/models/yolo/pose/predict.py +1 -1
  28. ultralytics/models/yolo/pose/train.py +4 -2
  29. ultralytics/models/yolo/pose/val.py +1 -1
  30. ultralytics/models/yolo/segment/train.py +1 -1
  31. ultralytics/models/yolo/segment/val.py +1 -1
  32. ultralytics/models/yolo/world/train.py +1 -1
  33. ultralytics/models/yolo/world/train_world.py +1 -0
  34. ultralytics/models/yolo/yoloe/train.py +2 -2
  35. ultralytics/models/yolo/yoloe/train_seg.py +2 -2
  36. ultralytics/nn/autobackend.py +16 -6
  37. ultralytics/nn/tasks.py +11 -11
  38. ultralytics/solutions/instance_segmentation.py +1 -1
  39. ultralytics/solutions/object_blurrer.py +1 -1
  40. ultralytics/solutions/object_cropper.py +2 -2
  41. ultralytics/solutions/parking_management.py +1 -1
  42. ultralytics/solutions/region_counter.py +3 -2
  43. ultralytics/solutions/security_alarm.py +1 -1
  44. ultralytics/solutions/solutions.py +3 -6
  45. ultralytics/trackers/byte_tracker.py +1 -1
  46. ultralytics/trackers/utils/gmc.py +4 -4
  47. ultralytics/utils/__init__.py +28 -21
  48. ultralytics/utils/autobatch.py +4 -4
  49. ultralytics/utils/benchmarks.py +8 -8
  50. ultralytics/utils/callbacks/clearml.py +1 -1
  51. ultralytics/utils/callbacks/comet.py +5 -5
  52. ultralytics/utils/callbacks/dvc.py +1 -1
  53. ultralytics/utils/callbacks/mlflow.py +2 -1
  54. ultralytics/utils/callbacks/neptune.py +1 -1
  55. ultralytics/utils/callbacks/tensorboard.py +7 -9
  56. ultralytics/utils/checks.py +20 -26
  57. ultralytics/utils/downloads.py +4 -4
  58. ultralytics/utils/export.py +1 -1
  59. ultralytics/utils/metrics.py +1 -1
  60. ultralytics/utils/ops.py +1 -1
  61. ultralytics/utils/patches.py +8 -1
  62. ultralytics/utils/plotting.py +27 -29
  63. ultralytics/utils/tal.py +1 -1
  64. ultralytics/utils/torch_utils.py +5 -5
  65. ultralytics/utils/tuner.py +2 -2
  66. {ultralytics-8.3.111.dist-info → ultralytics-8.3.113.dist-info}/METADATA +1 -1
  67. {ultralytics-8.3.111.dist-info → ultralytics-8.3.113.dist-info}/RECORD +71 -68
  68. {ultralytics-8.3.111.dist-info → ultralytics-8.3.113.dist-info}/WHEEL +1 -1
  69. {ultralytics-8.3.111.dist-info → ultralytics-8.3.113.dist-info}/entry_points.txt +0 -0
  70. {ultralytics-8.3.111.dist-info → ultralytics-8.3.113.dist-info}/licenses/LICENSE +0 -0
  71. {ultralytics-8.3.111.dist-info → ultralytics-8.3.113.dist-info}/top_level.txt +0 -0
@@ -184,7 +184,9 @@ class Annotator:
184
184
  self.lw = line_width or max(round(sum(im.size if input_is_pil else im.shape) / 2 * 0.003), 2)
185
185
  if self.pil: # use PIL
186
186
  self.im = im if input_is_pil else Image.fromarray(im)
187
- self.draw = ImageDraw.Draw(self.im)
187
+ if self.im.mode not in {"RGB", "RGBA"}: # multispectral
188
+ self.im = self.im.convert("RGB")
189
+ self.draw = ImageDraw.Draw(self.im, "RGBA")
188
190
  try:
189
191
  font = check_font("Arial.Unicode.ttf" if non_ascii else font)
190
192
  size = font_size or max(round(sum(self.im.size) / 2 * 0.035), 12)
@@ -195,6 +197,8 @@ class Annotator:
195
197
  if check_version(pil_version, "9.2.0"):
196
198
  self.font.getsize = lambda x: self.font.getbbox(x)[2:4] # text width, height
197
199
  else: # use cv2
200
+ if im.shape[2] > 3: # multispectral
201
+ im = np.ascontiguousarray(im[..., :3])
198
202
  assert im.data.contiguous, "Image not contiguous. Apply np.ascontiguousarray(im) to Annotator input images."
199
203
  self.im = im if im.flags.writeable else im.copy()
200
204
  self.tf = max(self.lw - 1, 1) # font thickness
@@ -309,7 +313,7 @@ class Annotator:
309
313
  (p1[0], p1[1] - h if outside else p1[1], p1[0] + w + 1, p1[1] + 1 if outside else p1[1] + h + 1),
310
314
  fill=color,
311
315
  )
312
- # self.draw.text((box[0], box[1]), label, fill=txt_color, font=self.font, anchor='ls') # for PIL>8.0
316
+ # self.draw.text([box[0], box[1]], label, fill=txt_color, font=self.font, anchor='ls') # for PIL>8.0
313
317
  self.draw.text((p1[0], p1[1] - h if outside else p1[1]), label, fill=txt_color, font=self.font)
314
318
  else: # cv2
315
319
  if rotated:
@@ -437,7 +441,7 @@ class Annotator:
437
441
  """Add rectangle to image (PIL-only)."""
438
442
  self.draw.rectangle(xy, fill, outline, width)
439
443
 
440
- def text(self, xy, text, txt_color=(255, 255, 255), anchor="top", box_style=False):
444
+ def text(self, xy, text, txt_color=(255, 255, 255), anchor="top", box_color=()):
441
445
  """
442
446
  Add text to an image using PIL or cv2.
443
447
 
@@ -446,34 +450,26 @@ class Annotator:
446
450
  text (str): Text to be drawn.
447
451
  txt_color (tuple, optional): Text color (R, G, B).
448
452
  anchor (str, optional): Text anchor position ('top' or 'bottom').
449
- box_style (bool, optional): Whether to draw text with a background box.
453
+ box_color (tuple, optional): Box color (R, G, B, A) with optional alpha.
450
454
  """
451
- if anchor == "bottom": # start y from font bottom
452
- w, h = self.font.getsize(text) # text width, height
453
- xy[1] += 1 - h
454
455
  if self.pil:
455
- if box_style:
456
- w, h = self.font.getsize(text)
457
- self.draw.rectangle((xy[0], xy[1], xy[0] + w + 1, xy[1] + h + 1), fill=txt_color)
458
- # Using `txt_color` for background and draw fg with white color
459
- txt_color = (255, 255, 255)
460
- if "\n" in text:
461
- lines = text.split("\n")
462
- _, h = self.font.getsize(text)
463
- for line in lines:
464
- self.draw.text(xy, line, fill=txt_color, font=self.font)
465
- xy[1] += h
466
- else:
467
- self.draw.text(xy, text, fill=txt_color, font=self.font)
456
+ w, h = self.font.getsize(text)
457
+ if anchor == "bottom": # start y from font bottom
458
+ xy[1] += 1 - h
459
+ for line in text.split("\n"):
460
+ if box_color:
461
+ # Draw rectangle for each line
462
+ w, h = self.font.getsize(line)
463
+ self.draw.rectangle((xy[0], xy[1], xy[0] + w + 1, xy[1] + h + 1), fill=box_color)
464
+ self.draw.text(xy, line, fill=txt_color, font=self.font)
465
+ xy[1] += h
468
466
  else:
469
- if box_style:
470
- w, h = cv2.getTextSize(text, 0, fontScale=self.sf, thickness=self.tf)[0] # text width, height
467
+ if box_color:
468
+ w, h = cv2.getTextSize(text, 0, fontScale=self.sf, thickness=self.tf)[0]
471
469
  h += 3 # add pixels to pad text
472
470
  outside = xy[1] >= h # label fits outside box
473
471
  p2 = xy[0] + w, xy[1] - h if outside else xy[1] + h
474
- cv2.rectangle(self.im, xy, p2, txt_color, -1, cv2.LINE_AA) # filled
475
- # Using `txt_color` for background and draw fg with white color
476
- txt_color = (255, 255, 255)
472
+ cv2.rectangle(self.im, xy, p2, box_color, -1, cv2.LINE_AA) # filled
477
473
  cv2.putText(self.im, text, xy, 0, self.sf, txt_color, thickness=self.tf, lineType=cv2.LINE_AA)
478
474
 
479
475
  def fromarray(self, im):
@@ -691,6 +687,8 @@ def plot_images(
691
687
  kpts = kpts.cpu().numpy()
692
688
  if isinstance(batch_idx, torch.Tensor):
693
689
  batch_idx = batch_idx.cpu().numpy()
690
+ if images.shape[1] > 3:
691
+ images = images[:, :3] # crop multispectral images to first 3 channels
694
692
 
695
693
  bs, _, h, w = images.shape # batch size, _, height, width
696
694
  bs = min(bs, max_subplots) # limit plot images
@@ -714,12 +712,12 @@ def plot_images(
714
712
  # Annotate
715
713
  fs = int((h + w) * ns * 0.01) # font size
716
714
  fs = max(fs, 18) # ensure that the font size is large enough to be easily readable.
717
- annotator = Annotator(mosaic, line_width=round(fs / 10), font_size=fs, pil=True, example=names)
715
+ annotator = Annotator(mosaic, line_width=round(fs / 10), font_size=fs, pil=True, example=str(names))
718
716
  for i in range(bs):
719
717
  x, y = int(w * (i // ns)), int(h * (i % ns)) # block origin
720
718
  annotator.rectangle([x, y, x + w, y + h], None, (255, 255, 255), width=2) # borders
721
719
  if paths:
722
- annotator.text((x + 5, y + 5), text=Path(paths[i]).name[:40], txt_color=(220, 220, 220)) # filenames
720
+ annotator.text([x + 5, y + 5], text=Path(paths[i]).name[:40], txt_color=(220, 220, 220)) # filenames
723
721
  if len(cls) > 0:
724
722
  idx = batch_idx == i
725
723
  classes = cls[idx].astype("int")
@@ -750,7 +748,7 @@ def plot_images(
750
748
  for c in classes:
751
749
  color = colors(c)
752
750
  c = names.get(c, c) if names else c
753
- annotator.text((x, y), f"{c}", txt_color=color, box_style=True)
751
+ annotator.text([x, y], f"{c}", txt_color=color, box_color=(64, 64, 64, 128))
754
752
 
755
753
  # Plot keypoints
756
754
  if len(kpts):
@@ -854,7 +852,7 @@ def plot_results(file="path/to/results.csv", dir="", segment=False, pose=False,
854
852
  # if j in {8, 9, 10}: # share train and val loss y axes
855
853
  # ax[i].get_shared_y_axes().join(ax[i], ax[i - 5])
856
854
  except Exception as e:
857
- LOGGER.warning(f"WARNING: Plotting error for {f}: {e}")
855
+ LOGGER.error(f"Plotting error for {f}: {e}")
858
856
  ax[1].legend()
859
857
  fname = save_dir / "results.png"
860
858
  fig.savefig(fname, dpi=200)
ultralytics/utils/tal.py CHANGED
@@ -77,7 +77,7 @@ class TaskAlignedAssigner(nn.Module):
77
77
  return self._forward(pd_scores, pd_bboxes, anc_points, gt_labels, gt_bboxes, mask_gt)
78
78
  except torch.cuda.OutOfMemoryError:
79
79
  # Move tensors to CPU, compute, then move back to original device
80
- LOGGER.warning("WARNING: CUDA OutOfMemoryError in TaskAlignedAssigner, using CPU")
80
+ LOGGER.warning("CUDA OutOfMemoryError in TaskAlignedAssigner, using CPU")
81
81
  cpu_tensors = [t.cpu() for t in (pd_scores, pd_bboxes, anc_points, gt_labels, gt_bboxes, mask_gt)]
82
82
  result = self._forward(*cpu_tensors)
83
83
  return tuple(t.to(device) for t in result)
@@ -46,7 +46,7 @@ TORCHVISION_0_13 = check_version(TORCHVISION_VERSION, "0.13.0")
46
46
  TORCHVISION_0_18 = check_version(TORCHVISION_VERSION, "0.18.0")
47
47
  if WINDOWS and check_version(torch.__version__, "==2.4.0"): # reject version 2.4.0 on Windows
48
48
  LOGGER.warning(
49
- "WARNING ⚠️ Known issue with torch==2.4.0 on Windows with CPU, recommend upgrading to torch>=2.4.1 to resolve "
49
+ "Known issue with torch==2.4.0 on Windows with CPU, recommend upgrading to torch>=2.4.1 to resolve "
50
50
  "https://github.com/ultralytics/ultralytics/issues/15049"
51
51
  )
52
52
 
@@ -161,7 +161,7 @@ def select_device(device="", batch=0, newline=False, verbose=True):
161
161
  Note:
162
162
  Sets the 'CUDA_VISIBLE_DEVICES' environment variable for specifying which GPUs to use.
163
163
  """
164
- if isinstance(device, torch.device) or str(device).startswith("tpu"):
164
+ if isinstance(device, torch.device) or str(device).startswith("tpu") or str(device).startswith("intel"):
165
165
  return device
166
166
 
167
167
  s = f"Ultralytics {__version__} 🚀 Python-{PYTHON_VERSION} torch-{torch.__version__} "
@@ -238,7 +238,7 @@ def time_sync():
238
238
 
239
239
 
240
240
  def fuse_conv_and_bn(conv, bn):
241
- """Fuse Conv2d() and BatchNorm2d() layers https://tehnokv.com/posts/fusing-batchnorm-and-conv/."""
241
+ """Fuse Conv2d() and BatchNorm2d() layers."""
242
242
  fusedconv = (
243
243
  nn.Conv2d(
244
244
  conv.in_channels,
@@ -604,7 +604,7 @@ def init_seeds(seed=0, deterministic=False):
604
604
  os.environ["CUBLAS_WORKSPACE_CONFIG"] = ":4096:8"
605
605
  os.environ["PYTHONHASHSEED"] = str(seed)
606
606
  else:
607
- LOGGER.warning("WARNING ⚠️ Upgrade to torch>=2.0.0 for deterministic training.")
607
+ LOGGER.warning("Upgrade to torch>=2.0.0 for deterministic training.")
608
608
  else:
609
609
  unset_deterministic()
610
610
 
@@ -708,7 +708,7 @@ def strip_optimizer(f: Union[str, Path] = "best.pt", s: str = "", updates: dict
708
708
  assert isinstance(x, dict), "checkpoint is not a Python dictionary"
709
709
  assert "model" in x, "'model' missing from checkpoint"
710
710
  except Exception as e:
711
- LOGGER.warning(f"WARNING ⚠️ Skipping {f}, not a valid Ultralytics model: {e}")
711
+ LOGGER.warning(f"Skipping {f}, not a valid Ultralytics model: {e}")
712
712
  return {}
713
713
 
714
714
  metadata = {
@@ -97,13 +97,13 @@ def run_ray_tune(
97
97
  # Get search space
98
98
  if not space and not train_args.get("resume"):
99
99
  space = default_space
100
- LOGGER.warning("WARNING ⚠️ search space not provided, using default search space.")
100
+ LOGGER.warning("search space not provided, using default search space.")
101
101
 
102
102
  # Get dataset
103
103
  data = train_args.get("data", TASK2DATA[task])
104
104
  space["data"] = data
105
105
  if "data" not in train_args:
106
- LOGGER.warning(f'WARNING ⚠️ data not provided, using default "data={data}".')
106
+ LOGGER.warning(f'data not provided, using default "data={data}".')
107
107
 
108
108
  # Define the trainable function with allocated resources
109
109
  trainable_with_resources = tune.with_resources(_tune, {"cpu": NUM_THREADS, "gpu": gpu_per_trial or 0})
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ultralytics
3
- Version: 8.3.111
3
+ Version: 8.3.113
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>
@@ -1,7 +1,7 @@
1
- ultralytics/__init__.py,sha256=9P1_68FgBArHsZgetmn6x3YgT5w2nN3NCw57F0BoSEI,730
1
+ ultralytics/__init__.py,sha256=VTqTgGNRGJceBOt1vzSsy_E-AT4lpo3E0ME01yvryLU,730
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=HZdpo0m_8NynZLmTie2dDx-OEZH7WoM8YtALjB7lKgM,39838
4
+ ultralytics/cfg/__init__.py,sha256=-66Vtli1XqcRUJ9F_gYyEoKTO3gDMmOrDDnUEa5G84s,39646
5
5
  ultralytics/cfg/default.yaml,sha256=6Z_HIaObLT2i9dhbskEg_PU_IfJS2fcCsffxr_RfFpU,8257
6
6
  ultralytics/cfg/datasets/Argoverse.yaml,sha256=_xlEDIJ9XkUo0v_iNL7FW079BoSeZtKSuLteKTtGbA8,3275
7
7
  ultralytics/cfg/datasets/DOTAv1.5.yaml,sha256=SHND_CFkojxw5iQD5Mcgju2kCZIl0gW2ajuzv1cqoL0,1224
@@ -19,11 +19,13 @@ ultralytics/cfg/datasets/coco-pose.yaml,sha256=NHdgSsGkHS0-X636p2-hExTJGdoWUSP1T
19
19
  ultralytics/cfg/datasets/coco.yaml,sha256=chdzyIHLfekjOcng-G2_bpC57VUcHPjVvW8ENJfiQao,2619
20
20
  ultralytics/cfg/datasets/coco128-seg.yaml,sha256=ifDPbVuuN7N2_3e8e_YBdTVcANYIOKORQMgXlsPS6D4,1995
21
21
  ultralytics/cfg/datasets/coco128.yaml,sha256=udymG6qzF9Bvh_JYC7BOSXOUeA1Ia8ZmR2EzNGsY6YY,1978
22
+ ultralytics/cfg/datasets/coco8-multispectral.yaml,sha256=h5Kbx9y3wjWUw6p8jeQVUaIs07VoQS7ZY0vMau5WGAg,2076
22
23
  ultralytics/cfg/datasets/coco8-pose.yaml,sha256=yfw2_SkCZO3ttPLiI0mfjxv5gr4-CA3i0elYP5PY71k,1022
23
24
  ultralytics/cfg/datasets/coco8-seg.yaml,sha256=wpfFI-GfL5asbLtFyaHLE6593jdka7waE07Am3_eg8w,1926
24
25
  ultralytics/cfg/datasets/coco8.yaml,sha256=qJX2TSM7nMV-PpCMXCX4702yp3a-ZF1ubLatlGN5XOE,1901
25
26
  ultralytics/cfg/datasets/crack-seg.yaml,sha256=QEnxOouOKQ3TM6Cl8pBnX5QLPWdChZEBA28jaLkzxA4,852
26
27
  ultralytics/cfg/datasets/dog-pose.yaml,sha256=Cr-J7dPhHmNfW9TKH48L22WPYmJFtWH-lbOAxLHnjKU,907
28
+ ultralytics/cfg/datasets/dota8-multispectral.yaml,sha256=62euz96MV3wRos2w6lhhG0DsSpSWte3VxPz-1hLz7YQ,1226
27
29
  ultralytics/cfg/datasets/dota8.yaml,sha256=W43bp_6yUUVjs6vpogNrGI9vU7rLbEsSx6vyfIkDyj8,1073
28
30
  ultralytics/cfg/datasets/hand-keypoints.yaml,sha256=5vue4kvPrAdd6ZyB90rZgtGUUHvSi3s_ht7jBBqX7a4,989
29
31
  ultralytics/cfg/datasets/lvis.yaml,sha256=jD-z6cny0l_Cl7xN6RqiFAc7a7odcVwr3E8_jmH-wzA,29716
@@ -93,29 +95,30 @@ ultralytics/cfg/trackers/botsort.yaml,sha256=D9doE5GQUe6HrAFzr7OfQFIGPFk0M_vJ0B_
93
95
  ultralytics/cfg/trackers/bytetrack.yaml,sha256=6u-tiZlk16EqEwkNXaMrza6PAQmWj_ypgv26LGCtPDg,886
94
96
  ultralytics/data/__init__.py,sha256=nAXaL1puCc7z_NjzQNlJnhbVhT9Fla2u7Dsqo7q1dAc,644
95
97
  ultralytics/data/annotator.py,sha256=VEwb11FsEZm75qlEp8XDHFGKW0_rGsEaFDaBVd771Kw,2902
96
- ultralytics/data/augment.py,sha256=1Q-dXQlBBxj04uugI8s6uV5OSGsfjKDZHsp_uDgIYA0,124861
97
- ultralytics/data/base.py,sha256=G1S1koste1rCrSzPu4fG6lAwjWflX8Dl8_Q6Bx3IXQc,18551
98
+ ultralytics/data/augment.py,sha256=WBVuxXW1Mzu7V-LaSopoFEiu8S2r0kM5zMpFVyzcWF0,125280
99
+ ultralytics/data/base.py,sha256=efummc7-4ha3O2J-ZoUOK9-HO-8Glh3h0W2oEwh4WBg,18503
98
100
  ultralytics/data/build.py,sha256=56pavLie6PDFEVYChMxnGQGtGsxozYZRpFqC70DRGls,9650
99
- ultralytics/data/converter.py,sha256=eaRqru-MZR8VEP-pL8EFSrH8dC6EkqVF4oEb551FXUw,24657
100
- ultralytics/data/dataset.py,sha256=sxFqIfrCtjTDNjxd6iaRmEMykPNgaljW_1ARELqtPpg,34835
101
- ultralytics/data/loaders.py,sha256=_Gyp_BfGTZwsFdn4UnolXxdU_sAYZLIrv0L2TRI9R5g,28627
101
+ ultralytics/data/converter.py,sha256=znXH2XTdo0Q4NDHMny1ydVBvrxKn2kbbwI-X5bn1MlQ,26890
102
+ ultralytics/data/dataset.py,sha256=3hcnCBBb5C_m4l5E1m2uf_2hQFhMv31FmvTfvWed8ek,34760
103
+ ultralytics/data/loaders.py,sha256=kl3gHkcIcNHqLKuQ5fyAlDo9WYBsCPjLcnFbRpk6KVw,28494
104
+ ultralytics/data/split.py,sha256=6LHB1z8woXurWjXfM-Zm2thRr1KXvzR18CFJA-SDUvE,4677
102
105
  ultralytics/data/split_dota.py,sha256=p8eVGht9tABSVbf9vwvxA_AQYEva3IGHePKlMeNrn64,11872
103
- ultralytics/data/utils.py,sha256=FI4CBjSy44HUULCt-Xrsc0nQBLjsUabuqernkQebtMU,36185
106
+ ultralytics/data/utils.py,sha256=yzYHZor0E1JU5RjC5dKYSqQx1uYHorDtzZK_Qi2dz6E,35124
104
107
  ultralytics/data/scripts/download_weights.sh,sha256=0y8XtZxOru7dVThXDFUXLHBuICgOIqZNUwpyL4Rh6lg,595
105
108
  ultralytics/data/scripts/get_coco.sh,sha256=UuJpJeo3qQpTHVINeOpmP0NYmg8PhEFE3A8J3jKrnPw,1768
106
109
  ultralytics/data/scripts/get_coco128.sh,sha256=qmRQl_hOKrsdHrTrnyQuFIH01oDz3lfaz138OgGfLt8,650
107
110
  ultralytics/data/scripts/get_imagenet.sh,sha256=hr42H16bM47iT27rgS7MpEo-GeOZAYUQXgr0B2cwn48,1705
108
111
  ultralytics/engine/__init__.py,sha256=lm6MckFYCPTbqIoX7w0s_daxdjNeBeKW6DXppv1-QUM,70
109
- ultralytics/engine/exporter.py,sha256=tOfxhc5Zo5otugqu2cvplRqMUHEhivmNlK0fc23qwx4,73919
110
- ultralytics/engine/model.py,sha256=YgQKYZrPENSTvLENspg-bXI9FinzzWARfb0U-C9vH-M,52916
111
- ultralytics/engine/predictor.py,sha256=hXDF7d03rtVzoEQBW1tMN665-TALIyM1q7kXARJlmKM,21630
112
- ultralytics/engine/results.py,sha256=H3pFJhUjYKvVyOUqqZjfIn8vnCpl81aYNOnregMrBoQ,79716
113
- ultralytics/engine/trainer.py,sha256=CdCkH0ky8cqqVQHZQf4rQ_f5wKz98sYwY6Z83uLDrwY,38904
114
- ultralytics/engine/tuner.py,sha256=CW6Ys4NV6SVScXA5GQO5DeSIJWys9e_mqUg26b6NYu4,12598
115
- ultralytics/engine/validator.py,sha256=Xijg74RHn43ANjQJaBJ4zZkWd0MMPUH2TzfmydAMbzk,16974
112
+ ultralytics/engine/exporter.py,sha256=qdJ2uXGASnEvpcddoNstiLBaO4ljUsjqFC6oFQtB8mk,73662
113
+ ultralytics/engine/model.py,sha256=wS1cwgv0iyhsslMAZYMGlYDWitDIRW96d7MxwW-Sw5o,52817
114
+ ultralytics/engine/predictor.py,sha256=YJ5l-0qIpr6JAJxowswtZ0IqmXBqVTvAA9vR40v0sCM,21752
115
+ ultralytics/engine/results.py,sha256=C3j-kyjoMxn7bb8tK_kaYrOWB8-7qDYZ-_hSh1LPWMA,79742
116
+ ultralytics/engine/trainer.py,sha256=O6Cl-27Wd8w7WJGfG3rIx7LDgF-_qb9gF_j8oBeUV24,38839
117
+ ultralytics/engine/tuner.py,sha256=oyjnbAExddGTBN-sm7tXFtxSgjZOZ5M81EIJSzpmqno,12581
118
+ ultralytics/engine/validator.py,sha256=jfV81wuFDgrVVXEcPzgOpxAPrAZn-1LgpKwu9l_1-ts,17050
116
119
  ultralytics/hub/__init__.py,sha256=wDtAUKdfqob95tfFHgDJFXcsNSDSdoIQkJTm-CfIUTI,6616
117
- ultralytics/hub/auth.py,sha256=QShM9RGDwaNgZlNLfLg9Ui-awj55fTRRK9yFDGlwwZ8,5556
118
- ultralytics/hub/session.py,sha256=1DniIeP1brE_ivTM-5uxOkTOiNIvrFkgdyZ3Rz9g-fU,18731
120
+ ultralytics/hub/auth.py,sha256=_bGQVLTgP-ina4fQxq2M7qkj9zKKfxb99_VWgN3S_4k,5549
121
+ ultralytics/hub/session.py,sha256=3psanIW9-l9tguGwqWorgK6ksRlSbBo_ID9q0DD7gNo,18686
119
122
  ultralytics/hub/utils.py,sha256=S1fBLXh6Tr3TpQkOhgoQZNWVkM46xPRbnLsmloo7seM,9642
120
123
  ultralytics/hub/google/__init__.py,sha256=rV9_KoRBwYlwyx3QLaBp1opw5Sjrbgl0YoDHtXoHIMw,8429
121
124
  ultralytics/models/__init__.py,sha256=DqQFFYJ4IQlqIDb61H1HzcnZU7SuHN-43bw94-l-YAQ,309
@@ -131,7 +134,7 @@ ultralytics/models/nas/val.py,sha256=jIDgS656XGaBEEJ_jhyMub-qIieneH5nTXerEoLib9A
131
134
  ultralytics/models/rtdetr/__init__.py,sha256=_jEHmOjI_QP_nT3XJXLgYHQ6bXG4EL8Gnvn1y_eev1g,225
132
135
  ultralytics/models/rtdetr/model.py,sha256=zx9UKpReYCRL7Is2DXIX9ZcJE25KE_fPZ-NYx5vF6E4,2119
133
136
  ultralytics/models/rtdetr/predict.py,sha256=5VNvyULxegg_NfGo7ugfIKHrtKhpaspJZdagU1haQmo,3942
134
- ultralytics/models/rtdetr/train.py,sha256=YONMv5RjLuO29Ab_tuHtgrlBfsicCGQeAvYDVeL02bs,4144
137
+ ultralytics/models/rtdetr/train.py,sha256=-c0DZNRscWXRNHddwHHY_OH5nLUb4LLoLyn2yIohGTg,3395
135
138
  ultralytics/models/rtdetr/val.py,sha256=MfX3drVsGOqbK0au-ZroDNfeYXmFCSembfElFmuFGuI,7301
136
139
  ultralytics/models/sam/__init__.py,sha256=iR7B06rAEni21eptg8n4rLOP0Z_qV9y9PL-L93n4_7s,266
137
140
  ultralytics/models/sam/amg.py,sha256=r_duG0DCeCyTYfhcVh-ti10FPMl4VGL4SKc8yvbQpNU,11050
@@ -143,7 +146,7 @@ ultralytics/models/sam/modules/blocks.py,sha256=Kj9bWyP1E96JPllJS8cJ2FSxPdkQChZd
143
146
  ultralytics/models/sam/modules/decoders.py,sha256=4Ijtkl7g_UmLMNEGokt1C05T05MkUczFIRJIUX0gDDc,25654
144
147
  ultralytics/models/sam/modules/encoders.py,sha256=uXP-CMjtTRCGD2hkbDfXjKSrW0l6Lj_pyx3ZwztYZcw,37614
145
148
  ultralytics/models/sam/modules/memory_attention.py,sha256=2HWCr7GrXMRX_V3RTfz44i2W44owpStPZU8Jq2hM0gE,12964
146
- ultralytics/models/sam/modules/sam.py,sha256=dCIrUWAM3Y4QDy9kHW79snlAV-rwBySdyssaJf0427A,52585
149
+ ultralytics/models/sam/modules/sam.py,sha256=PJxBIfJdJTe-NLWZZgmSWbnvHhyQjzr7gXNarjqBNJE,52628
147
150
  ultralytics/models/sam/modules/tiny_encoder.py,sha256=p6386bsmIwgZq1wfV7h6dcnI6955SBO2bBrp0HwjnYQ,40837
148
151
  ultralytics/models/sam/modules/transformer.py,sha256=YRhoriZ-j37kxq19kArfv2DSOz2Jj9DAbs2mcOBVORw,14674
149
152
  ultralytics/models/sam/modules/utils.py,sha256=EOOBeS6Mm1P13ultPYwOyJ0Vm2IY3NyH9DM3SgZCbFU,16436
@@ -154,35 +157,35 @@ ultralytics/models/yolo/__init__.py,sha256=or0j5xvcM0usMlsFTYhNAOcQUri7reD0cD9JR
154
157
  ultralytics/models/yolo/model.py,sha256=mNsz_eqpMMxpvWgx-OF0StxGNxslIR8LQJ7QQ8DvjKw,14357
155
158
  ultralytics/models/yolo/classify/__init__.py,sha256=9--HVaNOfI1K7rn_rRqclL8FUAnpfeBrRqEQIaQw2xM,383
156
159
  ultralytics/models/yolo/classify/predict.py,sha256=JV9szginTQ9Lpob0FozhKMiEIu1vVaYg4YItuVK2AFM,4081
157
- ultralytics/models/yolo/classify/train.py,sha256=fVGzEOtuOj_76tmBP5wBLixUDYyNh07PR8ONLYWmH3U,9711
160
+ ultralytics/models/yolo/classify/train.py,sha256=rv2CJv9fzvtHf2q4l5g0RsjplWKeLpz637kKqjtrLNY,9737
158
161
  ultralytics/models/yolo/classify/val.py,sha256=xk-YwSQdl_oqyCBV0OOAOcXFL6CchebFOc36AkRSyjE,9992
159
162
  ultralytics/models/yolo/detect/__init__.py,sha256=GIRsLYR-kT4JJx7lh4ZZAFGBZj0aebokuU0A7JbjDVA,257
160
163
  ultralytics/models/yolo/detect/predict.py,sha256=KZTf2UI7O8ZmPaihqCgsb8IwwchSQTBnO8kAlv8XEMo,4376
161
- ultralytics/models/yolo/detect/train.py,sha256=kGsSeek0qbX3tvmGAK2PEOMnNXsGwq3frllpiEdF5Vg,9527
162
- ultralytics/models/yolo/detect/val.py,sha256=RxB1ULF13KkWW-_oeDGVYsqobO3n4EWlTY-JwNWC4j0,18449
164
+ ultralytics/models/yolo/detect/train.py,sha256=YOEmUZkfJBq6hNbB_P10k-uy4_2fUgdPfVWzO4y8Egs,9538
165
+ ultralytics/models/yolo/detect/val.py,sha256=_gpsMoMzo_7Rv_vQDyvCeztp6NbuoPNQBNvDWH_R-L4,18434
163
166
  ultralytics/models/yolo/obb/__init__.py,sha256=tQmpG8wVHsajWkZdmD6cjGohJ4ki64iSXQT8JY_dydo,221
164
167
  ultralytics/models/yolo/obb/predict.py,sha256=L40iamQgTY7VDn0WggG2jeJK8cVUo1qsNuFSbK67ry0,2974
165
- ultralytics/models/yolo/obb/train.py,sha256=O1wHMrNXb2EPFQIizynjqu-B-76WyWa6755SMrzayWQ,3438
168
+ ultralytics/models/yolo/obb/train.py,sha256=MQgLZ65pcdf8QIzqGxIt77GcuVUeXvdbP8dFjz8Xh34,3458
166
169
  ultralytics/models/yolo/obb/val.py,sha256=dkXUh2JfffILVRkfXycQGImQQssUDgKMtfDRP7jUpV0,13981
167
170
  ultralytics/models/yolo/pose/__init__.py,sha256=63xmuHZLNzV8I76HhVXAq4f2W0KTk8Oi9eL-Y204LyQ,227
168
- ultralytics/models/yolo/pose/predict.py,sha256=MehJ7R8yGG5OR62F_NlBaGAKeglH4EgAStyUBD5u3Vc,3851
169
- ultralytics/models/yolo/pose/train.py,sha256=R36dUxrQpQD0SuZpzUmP8OeHVSz8wPUMW_YFyrjRwRU,5915
170
- ultralytics/models/yolo/pose/val.py,sha256=bpcfa-aEnpfqJ0zCm3vDhRmTKGLofHXR7Y2CrJn-8-I,18318
171
+ ultralytics/models/yolo/pose/predict.py,sha256=Q3eOti-wjEeiTpChTdb_kY_CgkwEYMGbBztsb2JAVbo,3836
172
+ ultralytics/models/yolo/pose/train.py,sha256=W9ThNoqawpZOTgX8TZfcdPY1_zxFjB-GryToUUTGf-k,5942
173
+ ultralytics/models/yolo/pose/val.py,sha256=PO2Tdlntbx41q_7U4vZ0L_J9-tiqNq5cHCzBJ7HmOUo,18303
171
174
  ultralytics/models/yolo/segment/__init__.py,sha256=3IThhZ1wlkY9FvmWm9cE-5-ZyE6F1FgzAtQ6jOOFzzw,275
172
175
  ultralytics/models/yolo/segment/predict.py,sha256=0m2itdoUbSlfGq_-tjC6XG_SsCWXtiCUoi4tWxQD6qY,5410
173
- ultralytics/models/yolo/segment/train.py,sha256=G4di8bW13HWx_tpEPZ1fa2Ev4dAfwxYMtP9oAzV7cPU,5339
174
- ultralytics/models/yolo/segment/val.py,sha256=OEayTZ5P2_vAgie_Icu_LqZh8E_gLQcmHV7twTkiytU,18430
176
+ ultralytics/models/yolo/segment/train.py,sha256=7DN9UpvNeEPHUNlDOZSnxem4bPfo_e5UgMLyyKT6FWo,5359
177
+ ultralytics/models/yolo/segment/val.py,sha256=cXJM1JNuzDraU0SJQRIdzNxabd0bfcxiRE8wozHZChY,18415
175
178
  ultralytics/models/yolo/world/__init__.py,sha256=nlh8I6t8hMGz_vZg8QSlsUW1R-2eKvn9CGUoPPQEGhA,131
176
- ultralytics/models/yolo/world/train.py,sha256=HfOVrWvbnqPqW3MpwFRVbkDHC2hZ8S0A-TnzaPtO1lI,4876
177
- ultralytics/models/yolo/world/train_world.py,sha256=C2lqZmmL5m8Tso3axizRJJhrCoNfVPkKi8n7uq18jVk,7681
179
+ ultralytics/models/yolo/world/train.py,sha256=HUJ0XiJIGx_FA9kqNYnSFsaKWMiZUDxgkpfGoBH6UNc,4896
180
+ ultralytics/models/yolo/world/train_world.py,sha256=E3YQVbiwzmB5Al4XX7c95nx_VBW94uqzxd96vtdIFps,7741
178
181
  ultralytics/models/yolo/yoloe/__init__.py,sha256=Z9QEmbDYABkx15zFILDsFNNz1IyZ5hl9zghaF0A5qJo,704
179
182
  ultralytics/models/yolo/yoloe/predict.py,sha256=pjvQ8TKlAe_KIFo70qiNdOrSTITU3pcJ4VE_k7uJjDk,6994
180
- ultralytics/models/yolo/yoloe/train.py,sha256=7JxJkMN9bkUGsO-RojFG2Q3yfdKhb-TXlBVJUBG65Qg,17651
181
- ultralytics/models/yolo/yoloe/train_seg.py,sha256=JguKB1ez8Rf7XBu_D_mWHMLJto7y7Kr2m0Tq2NwDtwU,5269
183
+ ultralytics/models/yolo/yoloe/train.py,sha256=JF_QxJUU3_w8yhmTfKFTpI7rVRJL1g7z7wnDikCxnn8,17691
184
+ ultralytics/models/yolo/yoloe/train_seg.py,sha256=6nN9DbP-AJKlJ3nIlvNn8VXFwFLQEVjSOgdN5aA817M,5309
182
185
  ultralytics/models/yolo/yoloe/val.py,sha256=utdt8wZvvW9OPxO5rx8KsFlkLG0FXj0YMD7Jhyk54D8,8440
183
186
  ultralytics/nn/__init__.py,sha256=rjociYD9lo_K-d-1s6TbdWklPLjTcEHk7OIlRDJstIE,615
184
- ultralytics/nn/autobackend.py,sha256=YPYgeV2gc-Ab8TdPD31rbK-DZzEveTf-_TIz6b-dQyM,38647
185
- ultralytics/nn/tasks.py,sha256=yjL0raxuO9oCgPw-cxnTldIqHevNxPRXI2T2GY4MVOI,63089
187
+ ultralytics/nn/autobackend.py,sha256=_Pcqui3HykJx2o5ez1a9goV_jzFg-d1LmGm_P4As0y4,39202
188
+ ultralytics/nn/tasks.py,sha256=EwRC70qA3eP8Xp-gGP8OuN-q8LCGDrq1iRue7ncRSV4,62916
186
189
  ultralytics/nn/text_model.py,sha256=H6OiLe0FOyZY4pd7-ixRTxaBgx3lOc2GmGTmrFnoJd0,10136
187
190
  ultralytics/nn/modules/__init__.py,sha256=dXLtIk9rt944WfsTdpgEdWOg3HQEHdwQztuZ6WNJygs,3144
188
191
  ultralytics/nn/modules/activation.py,sha256=PvXZkA9AzEntR575JkFORdmtcRwATyy0lje-uHA5_8w,2210
@@ -196,15 +199,15 @@ ultralytics/solutions/ai_gym.py,sha256=oOexy2cT59u9X6ROCwoaV3Nl2zT2xJ_trShAoSyR8
196
199
  ultralytics/solutions/analytics.py,sha256=O8dXdDTpHPRlz2vAGMvef1NfWUXBvoYt2G_TQI_UjoQ,11983
197
200
  ultralytics/solutions/distance_calculation.py,sha256=n6bPNJ7YbPKAaHWsra6CQQtrDR0SEvSC14BRWTITyBU,5711
198
201
  ultralytics/solutions/heatmap.py,sha256=dagbZ0Vn4UdywNyiAypYW5v1uzOWf521QrkzmqyeCEc,5626
199
- ultralytics/solutions/instance_segmentation.py,sha256=q8vXQmnoqbiExq3CVYMybkdJ7X2AZWsExUA0--3d_5w,3505
200
- ultralytics/solutions/object_blurrer.py,sha256=9Qzs8M3YI--FoWvihMytFdtnhin6gQ0l_uy6CsdoF9U,3896
202
+ ultralytics/solutions/instance_segmentation.py,sha256=HxzFf752PwjAjZhrf8BzI-gEey_f9mjxTOqJsLHSIB8,3498
203
+ ultralytics/solutions/object_blurrer.py,sha256=2RaUJ6DptdcIg__mhoegkfPpj2ymL0nsBjGX9Y_FkVY,3889
201
204
  ultralytics/solutions/object_counter.py,sha256=QXBRBEv_a0uiOYYzsNdu0VAH62rg97v1EiSHy60O1q4,9999
202
- ultralytics/solutions/object_cropper.py,sha256=AlIM-RnqFRogAY8JilE0KnbzFMulaIYJGPpn1nFRL5w,3386
203
- ultralytics/solutions/parking_management.py,sha256=brxU2NdEdU_j-Y_6TPElJPDqNYZoNZ1HnsQk-qbhKCE,13292
205
+ ultralytics/solutions/object_cropper.py,sha256=RNk_v_XRXm9Ye2TsKG5CPd3TDsRaiODWpy8MvYqkSLs,3382
206
+ ultralytics/solutions/parking_management.py,sha256=SiVxRl44OxxYUXIzNOxOBqtaFJSRRpD_gTsNyvB1n5o,13277
204
207
  ultralytics/solutions/queue_management.py,sha256=cUzAMMeWijowkdiuaSUZRr0S3I5MTHkCQOLjOqS0JN0,4299
205
- ultralytics/solutions/region_counter.py,sha256=LKZuykgmnevKKzYifyeHQwQroF7tJJIPI6HVXi5mb9M,5299
206
- ultralytics/solutions/security_alarm.py,sha256=KLP1R5qAFcmMliHfsuYNS_k-E1vGbOccLrzbmcpp4xQ,6254
207
- ultralytics/solutions/solutions.py,sha256=km53NtztiBlxvnrPt1JeNuFrEiP3wygr5sxGiWH5b_Q,31676
208
+ ultralytics/solutions/region_counter.py,sha256=5CFtrWxQC8a-6puaxjYXaJAmYE9vTFUxNSd-XYeiRkU,5373
209
+ ultralytics/solutions/security_alarm.py,sha256=mbUtqoLgjAWz9k3pjMoEZY_PR-lhjiic1NK90FhEJkw,6250
210
+ ultralytics/solutions/solutions.py,sha256=UaDZN_wAmV-XeRh57ca9TuqX-7sZUU-TmrpL1BqYuEc,31522
208
211
  ultralytics/solutions/speed_estimation.py,sha256=3UFtGXKNUy1jt6GS4wg4hvkQoQ4KkOHXjzMpmSHodx0,5126
209
212
  ultralytics/solutions/streamlit_inference.py,sha256=M0ppTFInqSPrdytZBLH8x-XoA7zFc7PaRQ51wHG9ppU,9846
210
213
  ultralytics/solutions/trackzone.py,sha256=05XVTQVCGHFAuFNPzyv0VXKQSJKiyWkU6zkXVo4_dxw,3792
@@ -212,45 +215,45 @@ ultralytics/solutions/vision_eye.py,sha256=cFjex7mau20Ww4Cuq9lbaAidVTByXk7nhZ0KV
212
215
  ultralytics/trackers/__init__.py,sha256=Zlu_Ig5osn7hqch_g5Be_e4pwZUkeeTQiesJCi0pFGI,255
213
216
  ultralytics/trackers/basetrack.py,sha256=LYvWB5d7Woyrz_RlxaopjV07RQKH3sff_lZJfMcMxcA,4450
214
217
  ultralytics/trackers/bot_sort.py,sha256=BuySzVBqQS6P4spoAKjE2a64e5CvmymbN7gVLU_4bjs,10425
215
- ultralytics/trackers/byte_tracker.py,sha256=U42OFGUMj1rEE9pXLQkO0xD7YXF7LudO-_v1eFNKnV8,20868
218
+ ultralytics/trackers/byte_tracker.py,sha256=Z1wmrvbA_GcAMW0IitBg_voSe7Pxm-ZzmupvGtTQOPU,20853
216
219
  ultralytics/trackers/track.py,sha256=URALIdE8H0RBaAx7ClQ7oFEGeboY5cjIs6_yIwge-xU,4062
217
220
  ultralytics/trackers/utils/__init__.py,sha256=lm6MckFYCPTbqIoX7w0s_daxdjNeBeKW6DXppv1-QUM,70
218
- ultralytics/trackers/utils/gmc.py,sha256=NnLxtgZIKdO5-C_J0xqeob1iRXgpubyJOgbIEeJz0Ps,14500
221
+ ultralytics/trackers/utils/gmc.py,sha256=dz3I5LbIv7h1__Xg7rGHecQFE32VFTe54tUnxb8F0Z8,14466
219
222
  ultralytics/trackers/utils/kalman_filter.py,sha256=A0CqOnnaKH6kr0XwuHzyHmIU6aJAjJYxF9jVlNBKZHo,21326
220
223
  ultralytics/trackers/utils/matching.py,sha256=7eIufSdeN7cXuFMjvcfvz0Ldq84m4YKZl5IGxBR8IIo,7169
221
- ultralytics/utils/__init__.py,sha256=xpxAIiAhEByK5HoK2hBcs9uukLOCsnTPJnTBpKOIIpc,50255
222
- ultralytics/utils/autobatch.py,sha256=0QSSYfzZIcHbbE5udrhRofJiJru20YaO7I1D8nhJHhc,4950
223
- ultralytics/utils/benchmarks.py,sha256=7xJ7I0XqLXE-51_OCETKdfMKpk1zUkMTq0kCbdMsMks,30359
224
- ultralytics/utils/checks.py,sha256=J2ebkGG1QBbYIrBjwlfECiJtDJzqFkAg_Nn9pdRsW_c,32728
224
+ ultralytics/utils/__init__.py,sha256=oH-D2pJrrOzZuYNUrnBlJhwnSz5WUcud8_pAZs1M8KA,50423
225
+ ultralytics/utils/autobatch.py,sha256=VZTIKLWeFZFwBHJmbiCn3MaxoFp89hLR0DSCR_iLXJg,4913
226
+ ultralytics/utils/benchmarks.py,sha256=L7rpcnVAnk2doGNJMhXcDqypPLiz0taZ3bDv850IZkU,30404
227
+ ultralytics/utils/checks.py,sha256=lE1V-lkvEd8sUYKYfgt3YJoqWd3dJT5-1DeHAQTMm88,32541
225
228
  ultralytics/utils/dist.py,sha256=e-DK_YowV7D9rDGQyWR9Kaosxp2eWe2EogSWnnUMthc,4098
226
- ultralytics/utils/downloads.py,sha256=4P1JIc04tTd_oz3-AHlhRSGaVtnSQPg_gYlh__U27-4,22169
229
+ ultralytics/utils/downloads.py,sha256=Bxg9i0coiQTaYztYtc1tXKH3qpg8lV-ywXPSbT121hU,22125
227
230
  ultralytics/utils/errors.py,sha256=vY9h2evFSrHnZdHJVVrmm8Zzw4qVDLyo9DeYW5g0dFk,1573
228
- ultralytics/utils/export.py,sha256=o_Ln8fkF_XE4fXjnWJ66_O5mx5U_k30Fm8WLk7QjAdQ,8832
231
+ ultralytics/utils/export.py,sha256=mTkebwilsT1jwIfTLgAQdkbrnZr9Sm96W-Vi7B1j5wQ,8817
229
232
  ultralytics/utils/files.py,sha256=0K4O1cgqRiXaDw7EQK13TqA5SME_RrvfDVQSPetNr5w,8042
230
233
  ultralytics/utils/instance.py,sha256=UOEsXR9V-bXNRk6BTonASBEgeMqvzzAk4S7VdXZJUAM,18090
231
234
  ultralytics/utils/loss.py,sha256=us3lwmSlIwEzoMztNjpet7Kb1r1-sMGyESykqgYPDVo,36945
232
- ultralytics/utils/metrics.py,sha256=Lyt2jFS16rmOFbXqfZBnd0VkpYBHoaLdb7XfBjEvlII,53784
233
- ultralytics/utils/ops.py,sha256=Ag69Hvy8HxKLvewrtfQRseveboc_RGzlMYmO1B2U1Lk,34215
234
- ultralytics/utils/patches.py,sha256=auTWwYBieowiwH7ww1FgR67JSPkKr_7-PGA1SCYXB4A,4569
235
- ultralytics/utils/plotting.py,sha256=wAg_z9ik6Wi3XZCfKO2K6TWV1G0TcLEkjxxz2H42CX8,46703
236
- ultralytics/utils/tal.py,sha256=B-NV9qC3WIiKDcRWgJB2RN1r6aA0UUp0lL7RFwYhYK4,20814
237
- ultralytics/utils/torch_utils.py,sha256=3sm0oG9rmLfCWUeeiuqxSwrTGk4AnWPidEoM4vaRmYM,38951
235
+ ultralytics/utils/metrics.py,sha256=uv5O-2Ft8wYfTvDedFxiUqMZ6Nr2CL6I9ybGZiK3e2s,53773
236
+ ultralytics/utils/ops.py,sha256=9QCSbEcgJPcBAp3lw4esof93aOHBadS3hN18gaMjC-M,34200
237
+ ultralytics/utils/patches.py,sha256=qArRoYscf7jph-OwIYJAAkOB5bAM6pcktgXKc76A8HE,4860
238
+ ultralytics/utils/plotting.py,sha256=5QPK1y-gm4T1mK3sjfRZhIUJAyP05D1cJ7h9wHPTifU,46616
239
+ ultralytics/utils/tal.py,sha256=P5nPoR9qNnFuDIda0fsn8WP6m1V8r7EbvXUuhNRFFTA,20805
240
+ ultralytics/utils/torch_utils.py,sha256=OqH2yNSghs0JSq16Br_PDBnVed5ZRs0C58zDZDk_bqA,38888
238
241
  ultralytics/utils/triton.py,sha256=xK9Db_ZUVDnIK1u76S2G-6ulIBsLfj9HN_YOaSrnMuU,5304
239
- ultralytics/utils/tuner.py,sha256=eX238JDALFejbx-QMEQBLoNfXQvA7GzArqgVUa1l4nI,6712
242
+ ultralytics/utils/tuner.py,sha256=R_TVIfsTA8qxEPiqHBCZgh1rzqAAOwQ1gImw-0IR13g,6682
240
243
  ultralytics/utils/callbacks/__init__.py,sha256=hzL63Rce6VkZhP4Lcim9LKjadixaQG86nKqPhk7IkS0,242
241
244
  ultralytics/utils/callbacks/base.py,sha256=p8YCeYDp4GLcyHWFZxC2Wxr2IXLw_MfIE5ef1fOQcWk,6848
242
- ultralytics/utils/callbacks/clearml.py,sha256=jxTL2QSt8Cjp_BkK2XUDPg5t2XnykMYXJFRp6B66ulA,6005
243
- ultralytics/utils/callbacks/comet.py,sha256=1OkL671uemHf6SrED001sedIz1X0IhJBkjUg9DeACPo,22278
244
- ultralytics/utils/callbacks/dvc.py,sha256=H_4Dm1pDmn_odCBl4enw0IlwMcbCZ2sLGfvkwoDSLJc,7547
245
+ ultralytics/utils/callbacks/clearml.py,sha256=z-MmCALz1FcNSec8CmDiFHkRd_zTzzuPDCidq_xkUXY,5990
246
+ ultralytics/utils/callbacks/comet.py,sha256=_j8tKKxGlxDcw_Rx4Ow2PjZ3UpBHm9gLJlYSVU0WJ_E,22221
247
+ ultralytics/utils/callbacks/dvc.py,sha256=NywyiMqJfnK_UfJ_f1IK31puyIXZy0iVJQ4bB9uyu08,7532
245
248
  ultralytics/utils/callbacks/hub.py,sha256=dPSeSStRE1x-WYyqrUghCp_VtBxNZ5-Bmb4wW2KYV2Y,4073
246
- ultralytics/utils/callbacks/mlflow.py,sha256=olMilfFKKLb9X53sJxFCn-AHnbcvTmXwtU_CVqSqzeE,5434
247
- ultralytics/utils/callbacks/neptune.py,sha256=XXnnKQ-MoLIexl8y2Vb0i-cCLyePE0n5BUy_KoXPmG0,4680
249
+ ultralytics/utils/callbacks/mlflow.py,sha256=rcjjN_QVg6XoL4Kbw8YqC28RDCQMs0LxfsXRpAc8BgY,5430
250
+ ultralytics/utils/callbacks/neptune.py,sha256=JaI95Cj2kIjUhlEEOiDN0-Drc-fDelLhNI2gf1jHuvk,4665
248
251
  ultralytics/utils/callbacks/raytune.py,sha256=A8amUGpux7dYES-L1iSeMoMXBySGWCD1aUqT7vcG-pU,1284
249
- ultralytics/utils/callbacks/tensorboard.py,sha256=7eUX21_Ym7i6iN4euZzrqglphyl5xak1yl_-wfFshbg,5502
252
+ ultralytics/utils/callbacks/tensorboard.py,sha256=jgYnym3cUQFAgN1GzTyO7l3jINtfAh8zhrllDvnLuVQ,5339
250
253
  ultralytics/utils/callbacks/wb.py,sha256=iDRFXI4IIDm8R5OI89DMTmjs8aHLo1HRCLkOFKdaMG4,7507
251
- ultralytics-8.3.111.dist-info/licenses/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
252
- ultralytics-8.3.111.dist-info/METADATA,sha256=rI8LCdqIea1a2wj1yJs08OMCzeGWGKjjg1TPcHBgWQc,37354
253
- ultralytics-8.3.111.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
254
- ultralytics-8.3.111.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
255
- ultralytics-8.3.111.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
256
- ultralytics-8.3.111.dist-info/RECORD,,
254
+ ultralytics-8.3.113.dist-info/licenses/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
255
+ ultralytics-8.3.113.dist-info/METADATA,sha256=GIjS16RqWNypO6Ub9fmk_Z8gzmTAmFubqpOUzi3ae-4,37354
256
+ ultralytics-8.3.113.dist-info/WHEEL,sha256=pxyMxgL8-pra_rKaQ4drOZAegBVuX-G_4nRHjjgWbmo,91
257
+ ultralytics-8.3.113.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
258
+ ultralytics-8.3.113.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
259
+ ultralytics-8.3.113.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (78.1.0)
2
+ Generator: setuptools (79.0.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5