ultralytics 8.3.110__py3-none-any.whl → 8.3.112__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/data/augment.py +19 -6
  5. ultralytics/data/base.py +24 -26
  6. ultralytics/data/converter.py +52 -3
  7. ultralytics/data/dataset.py +5 -5
  8. ultralytics/data/loaders.py +7 -9
  9. ultralytics/data/split.py +123 -0
  10. ultralytics/data/utils.py +34 -52
  11. ultralytics/engine/exporter.py +22 -24
  12. ultralytics/engine/model.py +3 -6
  13. ultralytics/engine/predictor.py +5 -3
  14. ultralytics/engine/results.py +7 -7
  15. ultralytics/engine/trainer.py +4 -5
  16. ultralytics/engine/tuner.py +1 -1
  17. ultralytics/engine/validator.py +4 -4
  18. ultralytics/hub/auth.py +1 -1
  19. ultralytics/hub/session.py +3 -3
  20. ultralytics/models/rtdetr/train.py +1 -22
  21. ultralytics/models/sam/modules/sam.py +2 -1
  22. ultralytics/models/yolo/classify/train.py +1 -1
  23. ultralytics/models/yolo/detect/train.py +2 -2
  24. ultralytics/models/yolo/detect/val.py +1 -1
  25. ultralytics/models/yolo/obb/train.py +1 -1
  26. ultralytics/models/yolo/pose/predict.py +1 -1
  27. ultralytics/models/yolo/pose/train.py +4 -2
  28. ultralytics/models/yolo/pose/val.py +1 -1
  29. ultralytics/models/yolo/segment/train.py +1 -1
  30. ultralytics/models/yolo/segment/val.py +1 -1
  31. ultralytics/models/yolo/world/train.py +1 -1
  32. ultralytics/models/yolo/world/train_world.py +1 -0
  33. ultralytics/models/yolo/yoloe/train.py +2 -2
  34. ultralytics/models/yolo/yoloe/train_seg.py +2 -2
  35. ultralytics/nn/autobackend.py +20 -18
  36. ultralytics/nn/modules/block.py +1 -1
  37. ultralytics/nn/modules/head.py +4 -0
  38. ultralytics/nn/tasks.py +13 -11
  39. ultralytics/solutions/instance_segmentation.py +1 -1
  40. ultralytics/solutions/object_blurrer.py +1 -1
  41. ultralytics/solutions/object_cropper.py +2 -2
  42. ultralytics/solutions/parking_management.py +1 -1
  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 +29 -22
  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 +4 -4
  65. ultralytics/utils/tuner.py +2 -2
  66. {ultralytics-8.3.110.dist-info → ultralytics-8.3.112.dist-info}/METADATA +1 -1
  67. {ultralytics-8.3.110.dist-info → ultralytics-8.3.112.dist-info}/RECORD +71 -69
  68. {ultralytics-8.3.110.dist-info → ultralytics-8.3.112.dist-info}/WHEEL +1 -1
  69. {ultralytics-8.3.110.dist-info → ultralytics-8.3.112.dist-info}/entry_points.txt +0 -0
  70. {ultralytics-8.3.110.dist-info → ultralytics-8.3.112.dist-info}/licenses/LICENSE +0 -0
  71. {ultralytics-8.3.110.dist-info → ultralytics-8.3.112.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
 
@@ -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.110
3
+ Version: 8.3.112
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=d49pdkawY70527DKA-stvgRvkhGPDCMMglotCnaHB04,730
1
+ ultralytics/__init__.py,sha256=avtMuty6qUgSPAPMUS0xIZFolN5iYwbpEWOrZ9zcV5o,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,6 +19,7 @@ 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
@@ -93,29 +94,30 @@ ultralytics/cfg/trackers/botsort.yaml,sha256=D9doE5GQUe6HrAFzr7OfQFIGPFk0M_vJ0B_
93
94
  ultralytics/cfg/trackers/bytetrack.yaml,sha256=6u-tiZlk16EqEwkNXaMrza6PAQmWj_ypgv26LGCtPDg,886
94
95
  ultralytics/data/__init__.py,sha256=nAXaL1puCc7z_NjzQNlJnhbVhT9Fla2u7Dsqo7q1dAc,644
95
96
  ultralytics/data/annotator.py,sha256=VEwb11FsEZm75qlEp8XDHFGKW0_rGsEaFDaBVd771Kw,2902
96
- ultralytics/data/augment.py,sha256=JsliREHEOQzjipY8iLF1TNP0nuAfix3DKV4AoB4R4fM,124738
97
- ultralytics/data/base.py,sha256=G1S1koste1rCrSzPu4fG6lAwjWflX8Dl8_Q6Bx3IXQc,18551
97
+ ultralytics/data/augment.py,sha256=4XtuwM7SWG-mGqcWy-A9SZ-BO3ybge1vBFg3vZE1EM0,125258
98
+ ultralytics/data/base.py,sha256=efummc7-4ha3O2J-ZoUOK9-HO-8Glh3h0W2oEwh4WBg,18503
98
99
  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
100
+ ultralytics/data/converter.py,sha256=K-XQwBMovTDvGMlUStq933HEIgRCRWViI6WUbnJ-3Rc,26785
101
+ ultralytics/data/dataset.py,sha256=3hcnCBBb5C_m4l5E1m2uf_2hQFhMv31FmvTfvWed8ek,34760
102
+ ultralytics/data/loaders.py,sha256=LjVOpqGtR4sijOqk2dLRObuW9fuOPp7UtAsrC3v9xnk,28480
103
+ ultralytics/data/split.py,sha256=6LHB1z8woXurWjXfM-Zm2thRr1KXvzR18CFJA-SDUvE,4677
102
104
  ultralytics/data/split_dota.py,sha256=p8eVGht9tABSVbf9vwvxA_AQYEva3IGHePKlMeNrn64,11872
103
- ultralytics/data/utils.py,sha256=FI4CBjSy44HUULCt-Xrsc0nQBLjsUabuqernkQebtMU,36185
105
+ ultralytics/data/utils.py,sha256=yzYHZor0E1JU5RjC5dKYSqQx1uYHorDtzZK_Qi2dz6E,35124
104
106
  ultralytics/data/scripts/download_weights.sh,sha256=0y8XtZxOru7dVThXDFUXLHBuICgOIqZNUwpyL4Rh6lg,595
105
107
  ultralytics/data/scripts/get_coco.sh,sha256=UuJpJeo3qQpTHVINeOpmP0NYmg8PhEFE3A8J3jKrnPw,1768
106
108
  ultralytics/data/scripts/get_coco128.sh,sha256=qmRQl_hOKrsdHrTrnyQuFIH01oDz3lfaz138OgGfLt8,650
107
109
  ultralytics/data/scripts/get_imagenet.sh,sha256=hr42H16bM47iT27rgS7MpEo-GeOZAYUQXgr0B2cwn48,1705
108
110
  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
111
+ ultralytics/engine/exporter.py,sha256=qdJ2uXGASnEvpcddoNstiLBaO4ljUsjqFC6oFQtB8mk,73662
112
+ ultralytics/engine/model.py,sha256=wS1cwgv0iyhsslMAZYMGlYDWitDIRW96d7MxwW-Sw5o,52817
113
+ ultralytics/engine/predictor.py,sha256=8SGBk9WKyOtt7_bRbdY4_0uFylMw1wOP_V1u8De4gEY,21692
114
+ ultralytics/engine/results.py,sha256=C3j-kyjoMxn7bb8tK_kaYrOWB8-7qDYZ-_hSh1LPWMA,79742
115
+ ultralytics/engine/trainer.py,sha256=O6Cl-27Wd8w7WJGfG3rIx7LDgF-_qb9gF_j8oBeUV24,38839
116
+ ultralytics/engine/tuner.py,sha256=oyjnbAExddGTBN-sm7tXFtxSgjZOZ5M81EIJSzpmqno,12581
117
+ ultralytics/engine/validator.py,sha256=jfV81wuFDgrVVXEcPzgOpxAPrAZn-1LgpKwu9l_1-ts,17050
116
118
  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
119
+ ultralytics/hub/auth.py,sha256=_bGQVLTgP-ina4fQxq2M7qkj9zKKfxb99_VWgN3S_4k,5549
120
+ ultralytics/hub/session.py,sha256=3psanIW9-l9tguGwqWorgK6ksRlSbBo_ID9q0DD7gNo,18686
119
121
  ultralytics/hub/utils.py,sha256=S1fBLXh6Tr3TpQkOhgoQZNWVkM46xPRbnLsmloo7seM,9642
120
122
  ultralytics/hub/google/__init__.py,sha256=rV9_KoRBwYlwyx3QLaBp1opw5Sjrbgl0YoDHtXoHIMw,8429
121
123
  ultralytics/models/__init__.py,sha256=DqQFFYJ4IQlqIDb61H1HzcnZU7SuHN-43bw94-l-YAQ,309
@@ -131,7 +133,7 @@ ultralytics/models/nas/val.py,sha256=jIDgS656XGaBEEJ_jhyMub-qIieneH5nTXerEoLib9A
131
133
  ultralytics/models/rtdetr/__init__.py,sha256=_jEHmOjI_QP_nT3XJXLgYHQ6bXG4EL8Gnvn1y_eev1g,225
132
134
  ultralytics/models/rtdetr/model.py,sha256=zx9UKpReYCRL7Is2DXIX9ZcJE25KE_fPZ-NYx5vF6E4,2119
133
135
  ultralytics/models/rtdetr/predict.py,sha256=5VNvyULxegg_NfGo7ugfIKHrtKhpaspJZdagU1haQmo,3942
134
- ultralytics/models/rtdetr/train.py,sha256=YONMv5RjLuO29Ab_tuHtgrlBfsicCGQeAvYDVeL02bs,4144
136
+ ultralytics/models/rtdetr/train.py,sha256=-c0DZNRscWXRNHddwHHY_OH5nLUb4LLoLyn2yIohGTg,3395
135
137
  ultralytics/models/rtdetr/val.py,sha256=MfX3drVsGOqbK0au-ZroDNfeYXmFCSembfElFmuFGuI,7301
136
138
  ultralytics/models/sam/__init__.py,sha256=iR7B06rAEni21eptg8n4rLOP0Z_qV9y9PL-L93n4_7s,266
137
139
  ultralytics/models/sam/amg.py,sha256=r_duG0DCeCyTYfhcVh-ti10FPMl4VGL4SKc8yvbQpNU,11050
@@ -143,7 +145,7 @@ ultralytics/models/sam/modules/blocks.py,sha256=Kj9bWyP1E96JPllJS8cJ2FSxPdkQChZd
143
145
  ultralytics/models/sam/modules/decoders.py,sha256=4Ijtkl7g_UmLMNEGokt1C05T05MkUczFIRJIUX0gDDc,25654
144
146
  ultralytics/models/sam/modules/encoders.py,sha256=uXP-CMjtTRCGD2hkbDfXjKSrW0l6Lj_pyx3ZwztYZcw,37614
145
147
  ultralytics/models/sam/modules/memory_attention.py,sha256=2HWCr7GrXMRX_V3RTfz44i2W44owpStPZU8Jq2hM0gE,12964
146
- ultralytics/models/sam/modules/sam.py,sha256=dCIrUWAM3Y4QDy9kHW79snlAV-rwBySdyssaJf0427A,52585
148
+ ultralytics/models/sam/modules/sam.py,sha256=PJxBIfJdJTe-NLWZZgmSWbnvHhyQjzr7gXNarjqBNJE,52628
147
149
  ultralytics/models/sam/modules/tiny_encoder.py,sha256=p6386bsmIwgZq1wfV7h6dcnI6955SBO2bBrp0HwjnYQ,40837
148
150
  ultralytics/models/sam/modules/transformer.py,sha256=YRhoriZ-j37kxq19kArfv2DSOz2Jj9DAbs2mcOBVORw,14674
149
151
  ultralytics/models/sam/modules/utils.py,sha256=EOOBeS6Mm1P13ultPYwOyJ0Vm2IY3NyH9DM3SgZCbFU,16436
@@ -154,41 +156,41 @@ ultralytics/models/yolo/__init__.py,sha256=or0j5xvcM0usMlsFTYhNAOcQUri7reD0cD9JR
154
156
  ultralytics/models/yolo/model.py,sha256=mNsz_eqpMMxpvWgx-OF0StxGNxslIR8LQJ7QQ8DvjKw,14357
155
157
  ultralytics/models/yolo/classify/__init__.py,sha256=9--HVaNOfI1K7rn_rRqclL8FUAnpfeBrRqEQIaQw2xM,383
156
158
  ultralytics/models/yolo/classify/predict.py,sha256=JV9szginTQ9Lpob0FozhKMiEIu1vVaYg4YItuVK2AFM,4081
157
- ultralytics/models/yolo/classify/train.py,sha256=fVGzEOtuOj_76tmBP5wBLixUDYyNh07PR8ONLYWmH3U,9711
159
+ ultralytics/models/yolo/classify/train.py,sha256=rv2CJv9fzvtHf2q4l5g0RsjplWKeLpz637kKqjtrLNY,9737
158
160
  ultralytics/models/yolo/classify/val.py,sha256=xk-YwSQdl_oqyCBV0OOAOcXFL6CchebFOc36AkRSyjE,9992
159
161
  ultralytics/models/yolo/detect/__init__.py,sha256=GIRsLYR-kT4JJx7lh4ZZAFGBZj0aebokuU0A7JbjDVA,257
160
162
  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
163
+ ultralytics/models/yolo/detect/train.py,sha256=YOEmUZkfJBq6hNbB_P10k-uy4_2fUgdPfVWzO4y8Egs,9538
164
+ ultralytics/models/yolo/detect/val.py,sha256=_gpsMoMzo_7Rv_vQDyvCeztp6NbuoPNQBNvDWH_R-L4,18434
163
165
  ultralytics/models/yolo/obb/__init__.py,sha256=tQmpG8wVHsajWkZdmD6cjGohJ4ki64iSXQT8JY_dydo,221
164
166
  ultralytics/models/yolo/obb/predict.py,sha256=L40iamQgTY7VDn0WggG2jeJK8cVUo1qsNuFSbK67ry0,2974
165
- ultralytics/models/yolo/obb/train.py,sha256=O1wHMrNXb2EPFQIizynjqu-B-76WyWa6755SMrzayWQ,3438
167
+ ultralytics/models/yolo/obb/train.py,sha256=MQgLZ65pcdf8QIzqGxIt77GcuVUeXvdbP8dFjz8Xh34,3458
166
168
  ultralytics/models/yolo/obb/val.py,sha256=dkXUh2JfffILVRkfXycQGImQQssUDgKMtfDRP7jUpV0,13981
167
169
  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
170
+ ultralytics/models/yolo/pose/predict.py,sha256=Q3eOti-wjEeiTpChTdb_kY_CgkwEYMGbBztsb2JAVbo,3836
171
+ ultralytics/models/yolo/pose/train.py,sha256=W9ThNoqawpZOTgX8TZfcdPY1_zxFjB-GryToUUTGf-k,5942
172
+ ultralytics/models/yolo/pose/val.py,sha256=PO2Tdlntbx41q_7U4vZ0L_J9-tiqNq5cHCzBJ7HmOUo,18303
171
173
  ultralytics/models/yolo/segment/__init__.py,sha256=3IThhZ1wlkY9FvmWm9cE-5-ZyE6F1FgzAtQ6jOOFzzw,275
172
174
  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
175
+ ultralytics/models/yolo/segment/train.py,sha256=7DN9UpvNeEPHUNlDOZSnxem4bPfo_e5UgMLyyKT6FWo,5359
176
+ ultralytics/models/yolo/segment/val.py,sha256=cXJM1JNuzDraU0SJQRIdzNxabd0bfcxiRE8wozHZChY,18415
175
177
  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
178
+ ultralytics/models/yolo/world/train.py,sha256=HUJ0XiJIGx_FA9kqNYnSFsaKWMiZUDxgkpfGoBH6UNc,4896
179
+ ultralytics/models/yolo/world/train_world.py,sha256=E3YQVbiwzmB5Al4XX7c95nx_VBW94uqzxd96vtdIFps,7741
178
180
  ultralytics/models/yolo/yoloe/__init__.py,sha256=Z9QEmbDYABkx15zFILDsFNNz1IyZ5hl9zghaF0A5qJo,704
179
181
  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
182
+ ultralytics/models/yolo/yoloe/train.py,sha256=JF_QxJUU3_w8yhmTfKFTpI7rVRJL1g7z7wnDikCxnn8,17691
183
+ ultralytics/models/yolo/yoloe/train_seg.py,sha256=6nN9DbP-AJKlJ3nIlvNn8VXFwFLQEVjSOgdN5aA817M,5309
182
184
  ultralytics/models/yolo/yoloe/val.py,sha256=utdt8wZvvW9OPxO5rx8KsFlkLG0FXj0YMD7Jhyk54D8,8440
183
185
  ultralytics/nn/__init__.py,sha256=rjociYD9lo_K-d-1s6TbdWklPLjTcEHk7OIlRDJstIE,615
184
- ultralytics/nn/autobackend.py,sha256=_ww4j-KnNwRPQZmtsArg0_CXVbc4U2WZj5C4nmnKGQc,38949
185
- ultralytics/nn/tasks.py,sha256=r9CoXW9owNK5UWH2ufM5cyG3DB5TEEIX-JmhTSECCN8,62991
186
+ ultralytics/nn/autobackend.py,sha256=5AFOupiznw0weF_orWE4OFGzR2yDwO3WF1XP0StEiuk,38769
187
+ ultralytics/nn/tasks.py,sha256=EwRC70qA3eP8Xp-gGP8OuN-q8LCGDrq1iRue7ncRSV4,62916
186
188
  ultralytics/nn/text_model.py,sha256=H6OiLe0FOyZY4pd7-ixRTxaBgx3lOc2GmGTmrFnoJd0,10136
187
189
  ultralytics/nn/modules/__init__.py,sha256=dXLtIk9rt944WfsTdpgEdWOg3HQEHdwQztuZ6WNJygs,3144
188
190
  ultralytics/nn/modules/activation.py,sha256=PvXZkA9AzEntR575JkFORdmtcRwATyy0lje-uHA5_8w,2210
189
- ultralytics/nn/modules/block.py,sha256=hKjIM2UmJnfZeGKd92sPDv9TjwCbaW95ctxI_PEsPaY,66655
191
+ ultralytics/nn/modules/block.py,sha256=jGPMLa-FWYall7FmWvSLIduc2qu-A-lOcBjCaHqe4nk,66667
190
192
  ultralytics/nn/modules/conv.py,sha256=WeiLrtWYdfrhQPgDEKbimJmQMgzaOgFG87y6-jaeg_o,21459
191
- ultralytics/nn/modules/head.py,sha256=_b0O_IFino6NS25Lyk11UCtUb7q0VrZ_5Tyy-UhvI8A,38255
193
+ ultralytics/nn/modules/head.py,sha256=vVEDu4OkKsgRlGThMUKcE2nOtcmGxW66fkXMQoL1tRc,38388
192
194
  ultralytics/nn/modules/transformer.py,sha256=tC80QKFaLtWZo0zVNTuORX4pOu6HVs2wS0vSM-3h5W4,28227
193
195
  ultralytics/nn/modules/utils.py,sha256=rn8yTObZGkQoqVzjbZWLaHiytppG4ffjMME4Lw60glM,6092
194
196
  ultralytics/solutions/__init__.py,sha256=pjNYva0qnw-4hf_tTLx_dgIfg24XrYLLp3kygPj95rs,1113
@@ -196,15 +198,15 @@ ultralytics/solutions/ai_gym.py,sha256=oOexy2cT59u9X6ROCwoaV3Nl2zT2xJ_trShAoSyR8
196
198
  ultralytics/solutions/analytics.py,sha256=O8dXdDTpHPRlz2vAGMvef1NfWUXBvoYt2G_TQI_UjoQ,11983
197
199
  ultralytics/solutions/distance_calculation.py,sha256=n6bPNJ7YbPKAaHWsra6CQQtrDR0SEvSC14BRWTITyBU,5711
198
200
  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
201
+ ultralytics/solutions/instance_segmentation.py,sha256=HxzFf752PwjAjZhrf8BzI-gEey_f9mjxTOqJsLHSIB8,3498
202
+ ultralytics/solutions/object_blurrer.py,sha256=2RaUJ6DptdcIg__mhoegkfPpj2ymL0nsBjGX9Y_FkVY,3889
201
203
  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
204
+ ultralytics/solutions/object_cropper.py,sha256=RNk_v_XRXm9Ye2TsKG5CPd3TDsRaiODWpy8MvYqkSLs,3382
205
+ ultralytics/solutions/parking_management.py,sha256=SiVxRl44OxxYUXIzNOxOBqtaFJSRRpD_gTsNyvB1n5o,13277
204
206
  ultralytics/solutions/queue_management.py,sha256=cUzAMMeWijowkdiuaSUZRr0S3I5MTHkCQOLjOqS0JN0,4299
205
207
  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/security_alarm.py,sha256=mbUtqoLgjAWz9k3pjMoEZY_PR-lhjiic1NK90FhEJkw,6250
209
+ ultralytics/solutions/solutions.py,sha256=UaDZN_wAmV-XeRh57ca9TuqX-7sZUU-TmrpL1BqYuEc,31522
208
210
  ultralytics/solutions/speed_estimation.py,sha256=3UFtGXKNUy1jt6GS4wg4hvkQoQ4KkOHXjzMpmSHodx0,5126
209
211
  ultralytics/solutions/streamlit_inference.py,sha256=M0ppTFInqSPrdytZBLH8x-XoA7zFc7PaRQ51wHG9ppU,9846
210
212
  ultralytics/solutions/trackzone.py,sha256=05XVTQVCGHFAuFNPzyv0VXKQSJKiyWkU6zkXVo4_dxw,3792
@@ -212,45 +214,45 @@ ultralytics/solutions/vision_eye.py,sha256=cFjex7mau20Ww4Cuq9lbaAidVTByXk7nhZ0KV
212
214
  ultralytics/trackers/__init__.py,sha256=Zlu_Ig5osn7hqch_g5Be_e4pwZUkeeTQiesJCi0pFGI,255
213
215
  ultralytics/trackers/basetrack.py,sha256=LYvWB5d7Woyrz_RlxaopjV07RQKH3sff_lZJfMcMxcA,4450
214
216
  ultralytics/trackers/bot_sort.py,sha256=BuySzVBqQS6P4spoAKjE2a64e5CvmymbN7gVLU_4bjs,10425
215
- ultralytics/trackers/byte_tracker.py,sha256=U42OFGUMj1rEE9pXLQkO0xD7YXF7LudO-_v1eFNKnV8,20868
217
+ ultralytics/trackers/byte_tracker.py,sha256=Z1wmrvbA_GcAMW0IitBg_voSe7Pxm-ZzmupvGtTQOPU,20853
216
218
  ultralytics/trackers/track.py,sha256=URALIdE8H0RBaAx7ClQ7oFEGeboY5cjIs6_yIwge-xU,4062
217
219
  ultralytics/trackers/utils/__init__.py,sha256=lm6MckFYCPTbqIoX7w0s_daxdjNeBeKW6DXppv1-QUM,70
218
- ultralytics/trackers/utils/gmc.py,sha256=NnLxtgZIKdO5-C_J0xqeob1iRXgpubyJOgbIEeJz0Ps,14500
220
+ ultralytics/trackers/utils/gmc.py,sha256=dz3I5LbIv7h1__Xg7rGHecQFE32VFTe54tUnxb8F0Z8,14466
219
221
  ultralytics/trackers/utils/kalman_filter.py,sha256=A0CqOnnaKH6kr0XwuHzyHmIU6aJAjJYxF9jVlNBKZHo,21326
220
222
  ultralytics/trackers/utils/matching.py,sha256=7eIufSdeN7cXuFMjvcfvz0Ldq84m4YKZl5IGxBR8IIo,7169
221
- ultralytics/utils/__init__.py,sha256=-OY2ZAJdN7XLPSG1dpnWWv63ZqmhzAxrio2dMGXuyEg,50254
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
223
+ ultralytics/utils/__init__.py,sha256=oH-D2pJrrOzZuYNUrnBlJhwnSz5WUcud8_pAZs1M8KA,50423
224
+ ultralytics/utils/autobatch.py,sha256=VZTIKLWeFZFwBHJmbiCn3MaxoFp89hLR0DSCR_iLXJg,4913
225
+ ultralytics/utils/benchmarks.py,sha256=L7rpcnVAnk2doGNJMhXcDqypPLiz0taZ3bDv850IZkU,30404
226
+ ultralytics/utils/checks.py,sha256=lE1V-lkvEd8sUYKYfgt3YJoqWd3dJT5-1DeHAQTMm88,32541
225
227
  ultralytics/utils/dist.py,sha256=e-DK_YowV7D9rDGQyWR9Kaosxp2eWe2EogSWnnUMthc,4098
226
- ultralytics/utils/downloads.py,sha256=4P1JIc04tTd_oz3-AHlhRSGaVtnSQPg_gYlh__U27-4,22169
228
+ ultralytics/utils/downloads.py,sha256=Bxg9i0coiQTaYztYtc1tXKH3qpg8lV-ywXPSbT121hU,22125
227
229
  ultralytics/utils/errors.py,sha256=vY9h2evFSrHnZdHJVVrmm8Zzw4qVDLyo9DeYW5g0dFk,1573
228
- ultralytics/utils/export.py,sha256=o_Ln8fkF_XE4fXjnWJ66_O5mx5U_k30Fm8WLk7QjAdQ,8832
230
+ ultralytics/utils/export.py,sha256=mTkebwilsT1jwIfTLgAQdkbrnZr9Sm96W-Vi7B1j5wQ,8817
229
231
  ultralytics/utils/files.py,sha256=0K4O1cgqRiXaDw7EQK13TqA5SME_RrvfDVQSPetNr5w,8042
230
232
  ultralytics/utils/instance.py,sha256=UOEsXR9V-bXNRk6BTonASBEgeMqvzzAk4S7VdXZJUAM,18090
231
233
  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
234
+ ultralytics/utils/metrics.py,sha256=uv5O-2Ft8wYfTvDedFxiUqMZ6Nr2CL6I9ybGZiK3e2s,53773
235
+ ultralytics/utils/ops.py,sha256=9QCSbEcgJPcBAp3lw4esof93aOHBadS3hN18gaMjC-M,34200
236
+ ultralytics/utils/patches.py,sha256=qArRoYscf7jph-OwIYJAAkOB5bAM6pcktgXKc76A8HE,4860
237
+ ultralytics/utils/plotting.py,sha256=5QPK1y-gm4T1mK3sjfRZhIUJAyP05D1cJ7h9wHPTifU,46616
238
+ ultralytics/utils/tal.py,sha256=P5nPoR9qNnFuDIda0fsn8WP6m1V8r7EbvXUuhNRFFTA,20805
239
+ ultralytics/utils/torch_utils.py,sha256=_HVbVpgzNcYerEZqZ6es6ufYA8-iTpHCwAyrVdPcuUg,38853
238
240
  ultralytics/utils/triton.py,sha256=xK9Db_ZUVDnIK1u76S2G-6ulIBsLfj9HN_YOaSrnMuU,5304
239
- ultralytics/utils/tuner.py,sha256=eX238JDALFejbx-QMEQBLoNfXQvA7GzArqgVUa1l4nI,6712
241
+ ultralytics/utils/tuner.py,sha256=R_TVIfsTA8qxEPiqHBCZgh1rzqAAOwQ1gImw-0IR13g,6682
240
242
  ultralytics/utils/callbacks/__init__.py,sha256=hzL63Rce6VkZhP4Lcim9LKjadixaQG86nKqPhk7IkS0,242
241
243
  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
244
+ ultralytics/utils/callbacks/clearml.py,sha256=z-MmCALz1FcNSec8CmDiFHkRd_zTzzuPDCidq_xkUXY,5990
245
+ ultralytics/utils/callbacks/comet.py,sha256=_j8tKKxGlxDcw_Rx4Ow2PjZ3UpBHm9gLJlYSVU0WJ_E,22221
246
+ ultralytics/utils/callbacks/dvc.py,sha256=NywyiMqJfnK_UfJ_f1IK31puyIXZy0iVJQ4bB9uyu08,7532
245
247
  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
248
+ ultralytics/utils/callbacks/mlflow.py,sha256=rcjjN_QVg6XoL4Kbw8YqC28RDCQMs0LxfsXRpAc8BgY,5430
249
+ ultralytics/utils/callbacks/neptune.py,sha256=JaI95Cj2kIjUhlEEOiDN0-Drc-fDelLhNI2gf1jHuvk,4665
248
250
  ultralytics/utils/callbacks/raytune.py,sha256=A8amUGpux7dYES-L1iSeMoMXBySGWCD1aUqT7vcG-pU,1284
249
- ultralytics/utils/callbacks/tensorboard.py,sha256=7eUX21_Ym7i6iN4euZzrqglphyl5xak1yl_-wfFshbg,5502
251
+ ultralytics/utils/callbacks/tensorboard.py,sha256=jgYnym3cUQFAgN1GzTyO7l3jINtfAh8zhrllDvnLuVQ,5339
250
252
  ultralytics/utils/callbacks/wb.py,sha256=iDRFXI4IIDm8R5OI89DMTmjs8aHLo1HRCLkOFKdaMG4,7507
251
- ultralytics-8.3.110.dist-info/licenses/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
252
- ultralytics-8.3.110.dist-info/METADATA,sha256=8IVymarmcNdBGE1wTtKQ2I3_eHnd872PQJ-gUyB-dWI,37354
253
- ultralytics-8.3.110.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
254
- ultralytics-8.3.110.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
255
- ultralytics-8.3.110.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
256
- ultralytics-8.3.110.dist-info/RECORD,,
253
+ ultralytics-8.3.112.dist-info/licenses/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
254
+ ultralytics-8.3.112.dist-info/METADATA,sha256=UX-SAUTnCITX5u9VeAmWg5-0N7PqZ1d_Pih4p0m48WI,37354
255
+ ultralytics-8.3.112.dist-info/WHEEL,sha256=pxyMxgL8-pra_rKaQ4drOZAegBVuX-G_4nRHjjgWbmo,91
256
+ ultralytics-8.3.112.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
257
+ ultralytics-8.3.112.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
258
+ ultralytics-8.3.112.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