ultralytics 8.3.117__py3-none-any.whl → 8.3.119__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 (37) hide show
  1. tests/__init__.py +22 -0
  2. tests/conftest.py +83 -0
  3. tests/test_cli.py +128 -0
  4. tests/test_cuda.py +164 -0
  5. tests/test_engine.py +131 -0
  6. tests/test_exports.py +231 -0
  7. tests/test_integrations.py +154 -0
  8. tests/test_python.py +695 -0
  9. tests/test_solutions.py +176 -0
  10. ultralytics/__init__.py +1 -1
  11. ultralytics/cfg/__init__.py +1 -0
  12. ultralytics/cfg/default.yaml +1 -0
  13. ultralytics/data/augment.py +122 -7
  14. ultralytics/data/base.py +9 -2
  15. ultralytics/data/dataset.py +7 -5
  16. ultralytics/engine/exporter.py +10 -91
  17. ultralytics/engine/tuner.py +2 -1
  18. ultralytics/models/rtdetr/val.py +1 -0
  19. ultralytics/models/yolo/detect/predict.py +1 -1
  20. ultralytics/models/yolo/model.py +2 -3
  21. ultralytics/models/yolo/obb/train.py +1 -1
  22. ultralytics/models/yolo/pose/predict.py +1 -1
  23. ultralytics/models/yolo/pose/train.py +1 -1
  24. ultralytics/models/yolo/pose/val.py +1 -1
  25. ultralytics/models/yolo/segment/train.py +3 -3
  26. ultralytics/nn/autobackend.py +2 -5
  27. ultralytics/nn/text_model.py +97 -13
  28. ultralytics/utils/benchmarks.py +1 -1
  29. ultralytics/utils/downloads.py +1 -0
  30. ultralytics/utils/ops.py +1 -1
  31. ultralytics/utils/tuner.py +2 -1
  32. {ultralytics-8.3.117.dist-info → ultralytics-8.3.119.dist-info}/METADATA +6 -7
  33. {ultralytics-8.3.117.dist-info → ultralytics-8.3.119.dist-info}/RECORD +37 -28
  34. {ultralytics-8.3.117.dist-info → ultralytics-8.3.119.dist-info}/WHEEL +1 -1
  35. {ultralytics-8.3.117.dist-info → ultralytics-8.3.119.dist-info}/entry_points.txt +0 -0
  36. {ultralytics-8.3.117.dist-info → ultralytics-8.3.119.dist-info}/licenses/LICENSE +0 -0
  37. {ultralytics-8.3.117.dist-info → ultralytics-8.3.119.dist-info}/top_level.txt +0 -0
@@ -63,6 +63,7 @@ class RTDETRDataset(YOLODataset):
63
63
  if self.augment:
64
64
  hyp.mosaic = hyp.mosaic if self.augment and not self.rect else 0.0
65
65
  hyp.mixup = hyp.mixup if self.augment and not self.rect else 0.0
66
+ hyp.cutmix = hyp.cutmix if self.augment and not self.rect else 0.0
66
67
  transforms = v8_transforms(self, self.imgsz, hyp, stretch=True)
67
68
  else:
68
69
  # transforms = Compose([LetterBox(new_shape=(self.imgsz, self.imgsz), auto=False, scale_fill=True)])
@@ -47,7 +47,7 @@ class DetectionPredictor(BasePredictor):
47
47
  (list): List of Results objects containing the post-processed predictions.
48
48
 
49
49
  Examples:
50
- >>> predictor = DetectionPredictor(overrides=dict(model="yolov8n.pt"))
50
+ >>> predictor = DetectionPredictor(overrides=dict(model="yolo11n.pt"))
51
51
  >>> results = predictor.predict("path/to/image.jpg")
52
52
  >>> processed_results = predictor.postprocess(preds, img, orig_imgs)
53
53
  """
@@ -29,16 +29,15 @@ class YOLO(Model):
29
29
  (YOLOWorld or YOLOE) based on the model filename.
30
30
 
31
31
  Args:
32
- model (str | Path): Model name or path to model file, i.e. 'yolo11n.pt', 'yolov8n.yaml'.
32
+ model (str | Path): Model name or path to model file, i.e. 'yolo11n.pt', 'yolo11n.yaml'.
33
33
  task (str | None): YOLO task specification, i.e. 'detect', 'segment', 'classify', 'pose', 'obb'.
34
34
  Defaults to auto-detection based on model.
35
35
  verbose (bool): Display model info on load.
36
36
 
37
37
  Examples:
38
38
  >>> from ultralytics import YOLO
39
- >>> model = YOLO("yolov8n.pt") # load a pretrained YOLOv8n detection model
40
- >>> model = YOLO("yolov8n-seg.pt") # load a pretrained YOLOv8n segmentation model
41
39
  >>> model = YOLO("yolo11n.pt") # load a pretrained YOLOv11n detection model
40
+ >>> model = YOLO("yolo11n-seg.pt") # load a pretrained YOLO11n segmentation model
42
41
  """
43
42
  path = Path(model)
44
43
  if "-world" in path.stem and path.suffix in {".pt", ".yaml", ".yml"}: # if YOLOWorld PyTorch model
@@ -65,7 +65,7 @@ class OBBTrainer(yolo.detect.DetectionTrainer):
65
65
 
66
66
  Examples:
67
67
  >>> trainer = OBBTrainer()
68
- >>> model = trainer.get_model(cfg="yolov8n-obb.yaml", weights="yolov8n-obb.pt")
68
+ >>> model = trainer.get_model(cfg="yolo11n-obb.yaml", weights="yolo11n-obb.pt")
69
69
  """
70
70
  model = OBBModel(cfg, nc=self.data["nc"], ch=self.data["channels"], verbose=verbose and RANK == -1)
71
71
  if weights:
@@ -41,7 +41,7 @@ class PosePredictor(DetectionPredictor):
41
41
  Examples:
42
42
  >>> from ultralytics.utils import ASSETS
43
43
  >>> from ultralytics.models.yolo.pose import PosePredictor
44
- >>> args = dict(model="yolov8n-pose.pt", source=ASSETS)
44
+ >>> args = dict(model="yolo11n-pose.pt", source=ASSETS)
45
45
  >>> predictor = PosePredictor(overrides=args)
46
46
  >>> predictor.predict_cli()
47
47
  """
@@ -53,7 +53,7 @@ class PoseTrainer(yolo.detect.DetectionTrainer):
53
53
 
54
54
  Examples:
55
55
  >>> from ultralytics.models.yolo.pose import PoseTrainer
56
- >>> args = dict(model="yolov8n-pose.pt", data="coco8-pose.yaml", epochs=3)
56
+ >>> args = dict(model="yolo11n-pose.pt", data="coco8-pose.yaml", epochs=3)
57
57
  >>> trainer = PoseTrainer(overrides=args)
58
58
  >>> trainer.train()
59
59
  """
@@ -62,7 +62,7 @@ class PoseValidator(DetectionValidator):
62
62
 
63
63
  Examples:
64
64
  >>> from ultralytics.models.yolo.pose import PoseValidator
65
- >>> args = dict(model="yolov8n-pose.pt", data="coco8-pose.yaml")
65
+ >>> args = dict(model="yolo11n-pose.pt", data="coco8-pose.yaml")
66
66
  >>> validator = PoseValidator(args=args)
67
67
  >>> validator()
68
68
 
@@ -39,7 +39,7 @@ class SegmentationTrainer(yolo.detect.DetectionTrainer):
39
39
 
40
40
  Examples:
41
41
  >>> from ultralytics.models.yolo.segment import SegmentationTrainer
42
- >>> args = dict(model="yolov8n-seg.pt", data="coco8-seg.yaml", epochs=3)
42
+ >>> args = dict(model="yolo11n-seg.pt", data="coco8-seg.yaml", epochs=3)
43
43
  >>> trainer = SegmentationTrainer(overrides=args)
44
44
  >>> trainer.train()
45
45
  """
@@ -62,8 +62,8 @@ class SegmentationTrainer(yolo.detect.DetectionTrainer):
62
62
 
63
63
  Examples:
64
64
  >>> trainer = SegmentationTrainer()
65
- >>> model = trainer.get_model(cfg="yolov8n-seg.yaml")
66
- >>> model = trainer.get_model(weights="yolov8n-seg.pt", verbose=False)
65
+ >>> model = trainer.get_model(cfg="yolo11n-seg.yaml")
66
+ >>> model = trainer.get_model(weights="yolo11n-seg.pt", verbose=False)
67
67
  """
68
68
  model = SegmentationModel(cfg, nc=self.data["nc"], ch=self.data["channels"], verbose=verbose and RANK == -1)
69
69
  if weights:
@@ -14,7 +14,7 @@ import torch
14
14
  import torch.nn as nn
15
15
  from PIL import Image
16
16
 
17
- from ultralytics.utils import ARM64, IS_JETSON, IS_RASPBERRYPI, LINUX, LOGGER, PYTHON_VERSION, ROOT, yaml_load
17
+ from ultralytics.utils import ARM64, IS_JETSON, LINUX, LOGGER, PYTHON_VERSION, ROOT, yaml_load
18
18
  from ultralytics.utils.checks import check_requirements, check_suffix, check_version, check_yaml, is_rockchip
19
19
  from ultralytics.utils.downloads import attempt_download_asset, is_url
20
20
 
@@ -90,7 +90,7 @@ class AutoBackend(nn.Module):
90
90
  _model_type: Determine the model type from file path.
91
91
 
92
92
  Examples:
93
- >>> model = AutoBackend(weights="yolov8n.pt", device="cuda")
93
+ >>> model = AutoBackend(weights="yolo11n.pt", device="cuda")
94
94
  >>> results = model(img)
95
95
  """
96
96
 
@@ -207,9 +207,6 @@ class AutoBackend(nn.Module):
207
207
  elif onnx or imx:
208
208
  LOGGER.info(f"Loading {w} for ONNX Runtime inference...")
209
209
  check_requirements(("onnx", "onnxruntime-gpu" if cuda else "onnxruntime"))
210
- if IS_RASPBERRYPI or IS_JETSON:
211
- # Fix 'numpy.linalg._umath_linalg' has no attribute '_ilp64' for TF SavedModel on RPi and Jetson
212
- check_requirements("numpy==1.23.5")
213
210
  import onnxruntime
214
211
 
215
212
  providers = ["CPUExecutionProvider"]
@@ -15,18 +15,6 @@ except ImportError:
15
15
  checks.check_requirements("git+https://github.com/ultralytics/CLIP.git")
16
16
  import clip
17
17
 
18
- try:
19
- import warnings
20
-
21
- # Suppress 'timm.models.layers is deprecated, please import via timm.layers' warning from mobileclip usage
22
- with warnings.catch_warnings():
23
- warnings.filterwarnings("ignore", category=FutureWarning)
24
- import mobileclip
25
- except ImportError:
26
- # Ultralytics fork preferred since Apple MobileCLIP repo has incorrect version of torchvision
27
- checks.check_requirements("git+https://github.com/ultralytics/mobileclip.git")
28
- import mobileclip
29
-
30
18
 
31
19
  class TextModel(nn.Module):
32
20
  """
@@ -190,6 +178,18 @@ class MobileCLIP(TextModel):
190
178
  >>> tokens = model.tokenize(["a photo of a cat", "a photo of a dog"])
191
179
  >>> features = model.encode_text(tokens)
192
180
  """
181
+ try:
182
+ import warnings
183
+
184
+ # Suppress 'timm.models.layers is deprecated, please import via timm.layers' warning from mobileclip usage
185
+ with warnings.catch_warnings():
186
+ warnings.filterwarnings("ignore", category=FutureWarning)
187
+ import mobileclip
188
+ except ImportError:
189
+ # Ultralytics fork preferred since Apple MobileCLIP repo has incorrect version of torchvision
190
+ checks.check_requirements("git+https://github.com/ultralytics/mobileclip.git")
191
+ import mobileclip
192
+
193
193
  super().__init__()
194
194
  config = self.config_size_map[size]
195
195
  file = f"mobileclip_{size}.pt"
@@ -243,6 +243,90 @@ class MobileCLIP(TextModel):
243
243
  return text_features
244
244
 
245
245
 
246
+ class MobileCLIPTS(TextModel):
247
+ """
248
+ Load a TorchScript traced version of MobileCLIP.
249
+
250
+ This class implements the TextModel interface using Apple's MobileCLIP model, providing efficient text encoding
251
+ capabilities for vision-language tasks.
252
+
253
+ Attributes:
254
+ encoder (mobileclip.model.MobileCLIP): The loaded MobileCLIP text encoder.
255
+ tokenizer (callable): Tokenizer function for processing text inputs.
256
+ device (torch.device): Device where the model is loaded.
257
+
258
+ Methods:
259
+ tokenize: Convert input texts to MobileCLIP tokens.
260
+ encode_text: Encode tokenized texts into normalized feature vectors.
261
+
262
+ Examples:
263
+ >>> device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
264
+ >>> text_encoder = MobileCLIP(device=device)
265
+ >>> tokens = text_encoder.tokenize(["a photo of a cat", "a photo of a dog"])
266
+ >>> features = text_encoder.encode_text(tokens)
267
+ """
268
+
269
+ def __init__(self, device):
270
+ """
271
+ Initialize the MobileCLIP text encoder.
272
+
273
+ This class implements the TextModel interface using Apple's MobileCLIP model for efficient text encoding.
274
+
275
+ Args:
276
+ device (torch.device): Device to load the model on.
277
+
278
+ Examples:
279
+ >>> from ultralytics.nn.modules import MobileCLIP
280
+ >>> import torch
281
+ >>> model = MobileCLIP(device=torch.device("cpu"))
282
+ >>> tokens = model.tokenize(["a photo of a cat", "a photo of a dog"])
283
+ >>> features = model.encode_text(tokens)
284
+ """
285
+ super().__init__()
286
+ from ultralytics.utils.downloads import attempt_download_asset
287
+
288
+ self.encoder = torch.jit.load(attempt_download_asset("mobileclip_blt.ts"), map_location=device)
289
+ self.tokenizer = clip.clip.tokenize
290
+ self.device = device
291
+
292
+ def tokenize(self, texts):
293
+ """
294
+ Convert input texts to MobileCLIP tokens.
295
+
296
+ Args:
297
+ texts (list[str]): List of text strings to tokenize.
298
+
299
+ Returns:
300
+ (torch.Tensor): Tokenized text inputs with shape (batch_size, sequence_length).
301
+
302
+ Examples:
303
+ >>> model = MobileCLIP("cpu")
304
+ >>> tokens = model.tokenize(["a photo of a cat", "a photo of a dog"])
305
+ """
306
+ return self.tokenizer(texts).to(self.device)
307
+
308
+ @smart_inference_mode()
309
+ def encode_text(self, texts, dtype=torch.float32):
310
+ """
311
+ Encode tokenized texts into normalized feature vectors.
312
+
313
+ Args:
314
+ texts (torch.Tensor): Tokenized text inputs.
315
+ dtype (torch.dtype, optional): Data type for output features.
316
+
317
+ Returns:
318
+ (torch.Tensor): Normalized text feature vectors with L2 normalization applied.
319
+
320
+ Examples:
321
+ >>> model = MobileCLIP(device="cpu")
322
+ >>> tokens = model.tokenize(["a photo of a cat", "a photo of a dog"])
323
+ >>> features = model.encode_text(tokens)
324
+ >>> features.shape
325
+ torch.Size([2, 512]) # Actual dimension depends on model size
326
+ """
327
+ return self.encoder(texts)
328
+
329
+
246
330
  def build_text_model(variant, device=None):
247
331
  """
248
332
  Build a text encoding model based on the specified variant.
@@ -262,6 +346,6 @@ def build_text_model(variant, device=None):
262
346
  if base == "clip":
263
347
  return CLIP(size, device)
264
348
  elif base == "mobileclip":
265
- return MobileCLIP(size, device)
349
+ return MobileCLIPTS(device)
266
350
  else:
267
351
  raise ValueError(f"Unrecognized base model: '{base}'. Supported base models: 'clip', 'mobileclip'.")
@@ -136,7 +136,7 @@ def benchmark(
136
136
  assert not is_end2end
137
137
  assert not isinstance(model, YOLOWorld), "YOLOWorldv2 IMX exports not supported"
138
138
  assert model.task == "detect", "IMX only supported for detection task"
139
- assert "C2f" in model.__str__(), "IMX only supported for YOLOv8"
139
+ assert "C2f" in model.__str__(), "IMX only supported for YOLOv8" # TODO: enable for YOLO11
140
140
  if i == 15: # RKNN
141
141
  assert not isinstance(model, YOLOWorld), "YOLOWorldv2 RKNN exports not supported yet"
142
142
  assert not is_end2end, "End-to-end models not supported by RKNN yet"
@@ -34,6 +34,7 @@ GITHUB_ASSETS_NAMES = frozenset(
34
34
  + [f"FastSAM-{k}.pt" for k in "sx"]
35
35
  + [f"rtdetr-{k}.pt" for k in "lx"]
36
36
  + ["mobile_sam.pt"]
37
+ + ["mobileclip_blt.ts"]
37
38
  + ["calibration_image_sample_data_20x128x128x3_float32.npy.zip"]
38
39
  )
39
40
  GITHUB_ASSETS_STEMS = frozenset(k.rsplit(".", 1)[0] for k in GITHUB_ASSETS_NAMES)
ultralytics/utils/ops.py CHANGED
@@ -213,7 +213,7 @@ def non_max_suppression(
213
213
  multi_label (bool): If True, each box may have multiple labels.
214
214
  labels (List[List[Union[int, float, torch.Tensor]]]): A list of lists, where each inner
215
215
  list contains the apriori labels for a given image. The list should be in the format
216
- output by a dataloader, with each label being a tuple of (class_index, x1, y1, x2, y2).
216
+ output by a dataloader, with each label being a tuple of (class_index, x, y, w, h).
217
217
  max_det (int): The maximum number of boxes to keep after NMS.
218
218
  nc (int): The number of classes output by the model. Any indices after this will be considered masks.
219
219
  max_time_img (float): The maximum time (seconds) for processing one image.
@@ -77,8 +77,9 @@ def run_ray_tune(
77
77
  "flipud": tune.uniform(0.0, 1.0), # image flip up-down (probability)
78
78
  "fliplr": tune.uniform(0.0, 1.0), # image flip left-right (probability)
79
79
  "bgr": tune.uniform(0.0, 1.0), # image channel BGR (probability)
80
- "mosaic": tune.uniform(0.0, 1.0), # image mixup (probability)
80
+ "mosaic": tune.uniform(0.0, 1.0), # image mosaic (probability)
81
81
  "mixup": tune.uniform(0.0, 1.0), # image mixup (probability)
82
+ "cutmix": tune.uniform(0.0, 1.0), # image cutmix (probability)
82
83
  "copy_paste": tune.uniform(0.0, 1.0), # segment copy-paste (probability)
83
84
  }
84
85
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ultralytics
3
- Version: 8.3.117
3
+ Version: 8.3.119
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>
@@ -32,7 +32,7 @@ Classifier: Operating System :: Microsoft :: Windows
32
32
  Requires-Python: >=3.8
33
33
  Description-Content-Type: text/markdown
34
34
  License-File: LICENSE
35
- Requires-Dist: numpy<=2.1.1,>=1.23.0
35
+ Requires-Dist: numpy>=1.23.0
36
36
  Requires-Dist: matplotlib>=3.3.0
37
37
  Requires-Dist: opencv-python>=4.6.0
38
38
  Requires-Dist: pillow>=7.1.2
@@ -61,20 +61,19 @@ Requires-Dist: mkdocs-macros-plugin>=1.0.5; extra == "dev"
61
61
  Provides-Extra: export
62
62
  Requires-Dist: onnx>=1.12.0; extra == "export"
63
63
  Requires-Dist: coremltools>=8.0; (platform_system != "Windows" and python_version <= "3.13") and extra == "export"
64
- Requires-Dist: scikit-learn>=1.3.2; (platform_system != "Windows" and python_version <= "3.12") and extra == "export"
64
+ Requires-Dist: scikit-learn>=1.3.2; (platform_system != "Windows" and python_version <= "3.13") and extra == "export"
65
65
  Requires-Dist: openvino>=2024.0.0; extra == "export"
66
66
  Requires-Dist: tensorflow>=2.0.0; extra == "export"
67
67
  Requires-Dist: tensorflowjs>=2.0.0; extra == "export"
68
68
  Requires-Dist: tensorstore>=0.1.63; (platform_machine == "aarch64" and python_version >= "3.9") and extra == "export"
69
- Requires-Dist: keras; extra == "export"
70
69
  Requires-Dist: h5py!=3.11.0; platform_machine == "aarch64" and extra == "export"
71
70
  Provides-Extra: solutions
72
71
  Requires-Dist: shapely<2.1.0,>=2.0.0; extra == "solutions"
73
72
  Requires-Dist: streamlit<1.44.0,>=1.29.0; extra == "solutions"
74
73
  Provides-Extra: logging
75
- Requires-Dist: comet; extra == "logging"
76
- Requires-Dist: tensorboard>=2.13.0; extra == "logging"
77
- Requires-Dist: dvclive>=2.12.0; extra == "logging"
74
+ Requires-Dist: wandb; extra == "logging"
75
+ Requires-Dist: tensorboard; extra == "logging"
76
+ Requires-Dist: mlflow; extra == "logging"
78
77
  Provides-Extra: extra
79
78
  Requires-Dist: hub-sdk>=0.0.12; extra == "extra"
80
79
  Requires-Dist: ipython; extra == "extra"
@@ -1,8 +1,17 @@
1
- ultralytics/__init__.py,sha256=9pasebfuGkeQHxXkGiLDPH_uKiXuBGCkxIbazkfN1UU,730
1
+ tests/__init__.py,sha256=xnMhv3O_DF1YrW4zk__ZywQzAaoTDjPKPoiI1Ktss1w,670
2
+ tests/conftest.py,sha256=rsIAipRKfrVNoTaJ1LdpYue8AbcJ_fr3d3WIlM_6uXY,2982
3
+ tests/test_cli.py,sha256=PtMFl5Lp_6ygBbYDJ1ndofz2k7ZYupMPEAiZw6aZVm8,5450
4
+ tests/test_cuda.py,sha256=0uvTF4bY_Grsd_Xgtp7TdIEgMpUqKv8_kWA82NYDl_g,6260
5
+ tests/test_engine.py,sha256=aGqZ8P7QO5C_nOa1b4FOyk92Ysdk5WiP-ST310Vyxys,4962
6
+ tests/test_exports.py,sha256=dhZn86LdbapW15RthQF870LGxDjC1MUZhlGdBgPmgIQ,9716
7
+ tests/test_integrations.py,sha256=dQteeRsRVuT_p5-T88-7jqT65Zm9iAXkyKg-KQ1_TQ8,6341
8
+ tests/test_python.py,sha256=ok2xp7zwPOwcyl4yNawlx1uJ5HETn9eU-jyTPYzA0fI,25491
9
+ tests/test_solutions.py,sha256=BIvg9zW0a_ggEmrPKgB_Y0MncveH-eYuN5KlqdJ6nHs,5726
10
+ ultralytics/__init__.py,sha256=owiblkGBEVc3POFvnqSoYYmsIOc_JfalcE8QZaGrfB4,730
2
11
  ultralytics/assets/bus.jpg,sha256=wCAZxJecGR63Od3ZRERe9Aja1Weayrb9Ug751DS_vGM,137419
3
12
  ultralytics/assets/zidane.jpg,sha256=Ftc4aeMmen1O0A3o6GCDO9FlfBslLpTAw0gnetx7bts,50427
4
- ultralytics/cfg/__init__.py,sha256=qtkKD_vj_AVo4lrGJkoVSovO3qY9IgETkzaTHWDJZ-4,39665
5
- ultralytics/cfg/default.yaml,sha256=6Z_HIaObLT2i9dhbskEg_PU_IfJS2fcCsffxr_RfFpU,8257
13
+ ultralytics/cfg/__init__.py,sha256=eZ7exHSsrTLY72atmmHKatJgJYLjfZDPXMWVmpZF9Qw,39683
14
+ ultralytics/cfg/default.yaml,sha256=zSiCmQp_HRlh0gZe_AZSjNQNe1aNDoX2vcNUo5oJs2Q,8306
6
15
  ultralytics/cfg/datasets/Argoverse.yaml,sha256=_xlEDIJ9XkUo0v_iNL7FW079BoSeZtKSuLteKTtGbA8,3275
7
16
  ultralytics/cfg/datasets/DOTAv1.5.yaml,sha256=SHND_CFkojxw5iQD5Mcgju2kCZIl0gW2ajuzv1cqoL0,1224
8
17
  ultralytics/cfg/datasets/DOTAv1.yaml,sha256=j_DvXVQzZ4dQmf8I7oPX4v9xO3WZXztxV4Xo9VhUTsM,1194
@@ -95,11 +104,11 @@ ultralytics/cfg/trackers/botsort.yaml,sha256=8fM3y4TXKKT_5aWsqmQw5JEgwNlBGlRaf8L
95
104
  ultralytics/cfg/trackers/bytetrack.yaml,sha256=6u-tiZlk16EqEwkNXaMrza6PAQmWj_ypgv26LGCtPDg,886
96
105
  ultralytics/data/__init__.py,sha256=nAXaL1puCc7z_NjzQNlJnhbVhT9Fla2u7Dsqo7q1dAc,644
97
106
  ultralytics/data/annotator.py,sha256=VEwb11FsEZm75qlEp8XDHFGKW0_rGsEaFDaBVd771Kw,2902
98
- ultralytics/data/augment.py,sha256=JgUva2YddmLs-p2lFqTHXIl1t_66Oz6wH-X5fYLYouY,125171
99
- ultralytics/data/base.py,sha256=OpG45tNeV1Zfy8E45-fdl6oW5wO_ojYgfIFHfGuiR90,18615
107
+ ultralytics/data/augment.py,sha256=qJ9O1WMXnsNOyr71IRD6qM789gHzC5FedGnSXZ0U7As,129477
108
+ ultralytics/data/base.py,sha256=uMh_xzs6ci1hciDLpbVW2ZQr7js0o8jctE8KhL2T7Z4,19015
100
109
  ultralytics/data/build.py,sha256=FVIkgLGv5n1C7SRDrQiKOMDcI7V59WmEihKslzvEISg,9651
101
110
  ultralytics/data/converter.py,sha256=znXH2XTdo0Q4NDHMny1ydVBvrxKn2kbbwI-X5bn1MlQ,26890
102
- ultralytics/data/dataset.py,sha256=Hm9zuH2Q-565WfwoTpIDJaBJSOqW0F6tnc1CF0m0A9c,34788
111
+ ultralytics/data/dataset.py,sha256=zCHeTpiPWWl9joUrMSIZZAIKnBLTvbCRSCAbpYvPPOI,34813
103
112
  ultralytics/data/loaders.py,sha256=o844tZlfZEhXop16t-hwaEQHhbfP3_bQMS0whF_NSos,28531
104
113
  ultralytics/data/split.py,sha256=6LHB1z8woXurWjXfM-Zm2thRr1KXvzR18CFJA-SDUvE,4677
105
114
  ultralytics/data/split_dota.py,sha256=p8eVGht9tABSVbf9vwvxA_AQYEva3IGHePKlMeNrn64,11872
@@ -109,12 +118,12 @@ ultralytics/data/scripts/get_coco.sh,sha256=UuJpJeo3qQpTHVINeOpmP0NYmg8PhEFE3A8J
109
118
  ultralytics/data/scripts/get_coco128.sh,sha256=qmRQl_hOKrsdHrTrnyQuFIH01oDz3lfaz138OgGfLt8,650
110
119
  ultralytics/data/scripts/get_imagenet.sh,sha256=hr42H16bM47iT27rgS7MpEo-GeOZAYUQXgr0B2cwn48,1705
111
120
  ultralytics/engine/__init__.py,sha256=lm6MckFYCPTbqIoX7w0s_daxdjNeBeKW6DXppv1-QUM,70
112
- ultralytics/engine/exporter.py,sha256=IS33IZLzKeqpSHW6iy9HvxfNnzlDr_0exR8HTiT9EZ0,73829
121
+ ultralytics/engine/exporter.py,sha256=d-L46TSA2U36k6LowP1t1DJqXWndsvNVxXR54a70V8Y,69771
113
122
  ultralytics/engine/model.py,sha256=wS1cwgv0iyhsslMAZYMGlYDWitDIRW96d7MxwW-Sw5o,52817
114
123
  ultralytics/engine/predictor.py,sha256=YJ5l-0qIpr6JAJxowswtZ0IqmXBqVTvAA9vR40v0sCM,21752
115
124
  ultralytics/engine/results.py,sha256=MZkhI0CCOkBQPR-EzswymVqvqeyk35EkESGUQ_08r8k,79738
116
125
  ultralytics/engine/trainer.py,sha256=fdB8H6brnnQAL-ZFP6nmNmKMze0_qy0OT3jJg1B5uhQ,38864
117
- ultralytics/engine/tuner.py,sha256=oyjnbAExddGTBN-sm7tXFtxSgjZOZ5M81EIJSzpmqno,12581
126
+ ultralytics/engine/tuner.py,sha256=IyFKsh4Q4a1DsjfK02DdN9cufAiBDhdhIq7F7ddguys,12646
118
127
  ultralytics/engine/validator.py,sha256=jfV81wuFDgrVVXEcPzgOpxAPrAZn-1LgpKwu9l_1-ts,17050
119
128
  ultralytics/hub/__init__.py,sha256=wDtAUKdfqob95tfFHgDJFXcsNSDSdoIQkJTm-CfIUTI,6616
120
129
  ultralytics/hub/auth.py,sha256=_bGQVLTgP-ina4fQxq2M7qkj9zKKfxb99_VWgN3S_4k,5549
@@ -135,7 +144,7 @@ ultralytics/models/rtdetr/__init__.py,sha256=_jEHmOjI_QP_nT3XJXLgYHQ6bXG4EL8Gnvn
135
144
  ultralytics/models/rtdetr/model.py,sha256=zx9UKpReYCRL7Is2DXIX9ZcJE25KE_fPZ-NYx5vF6E4,2119
136
145
  ultralytics/models/rtdetr/predict.py,sha256=5VNvyULxegg_NfGo7ugfIKHrtKhpaspJZdagU1haQmo,3942
137
146
  ultralytics/models/rtdetr/train.py,sha256=-c0DZNRscWXRNHddwHHY_OH5nLUb4LLoLyn2yIohGTg,3395
138
- ultralytics/models/rtdetr/val.py,sha256=MfX3drVsGOqbK0au-ZroDNfeYXmFCSembfElFmuFGuI,7301
147
+ ultralytics/models/rtdetr/val.py,sha256=4KsGuWOsik7JXpU8mUY6ts7_wWuPvcNSxiAGIiGSuxA,7380
139
148
  ultralytics/models/sam/__init__.py,sha256=iR7B06rAEni21eptg8n4rLOP0Z_qV9y9PL-L93n4_7s,266
140
149
  ultralytics/models/sam/amg.py,sha256=r_duG0DCeCyTYfhcVh-ti10FPMl4VGL4SKc8yvbQpNU,11050
141
150
  ultralytics/models/sam/build.py,sha256=Vhml3zBGDcRO-efauNdM0ZlKTV10ADAj_aT823lPJv8,12515
@@ -154,26 +163,26 @@ ultralytics/models/utils/__init__.py,sha256=lm6MckFYCPTbqIoX7w0s_daxdjNeBeKW6DXp
154
163
  ultralytics/models/utils/loss.py,sha256=4IiyDbxBCm7vRvZuIvXbr0_rCvjOratbqLx4KYaGouw,19986
155
164
  ultralytics/models/utils/ops.py,sha256=SuBnwwgUTqByNHpufobGLW72yO2cyfZFi14KAFWSjjw,13613
156
165
  ultralytics/models/yolo/__init__.py,sha256=or0j5xvcM0usMlsFTYhNAOcQUri7reD0cD9JR5b7zDk,307
157
- ultralytics/models/yolo/model.py,sha256=AJ_IXhU58XDRQvtvEW2SqYdlNx6j9GfPVx-wifTp0Fo,14365
166
+ ultralytics/models/yolo/model.py,sha256=8TbfllTKxvNzr4MlMAFfTV8s-144AUSNUyO_7Ps6aKA,14277
158
167
  ultralytics/models/yolo/classify/__init__.py,sha256=9--HVaNOfI1K7rn_rRqclL8FUAnpfeBrRqEQIaQw2xM,383
159
168
  ultralytics/models/yolo/classify/predict.py,sha256=JV9szginTQ9Lpob0FozhKMiEIu1vVaYg4YItuVK2AFM,4081
160
169
  ultralytics/models/yolo/classify/train.py,sha256=rv2CJv9fzvtHf2q4l5g0RsjplWKeLpz637kKqjtrLNY,9737
161
170
  ultralytics/models/yolo/classify/val.py,sha256=xk-YwSQdl_oqyCBV0OOAOcXFL6CchebFOc36AkRSyjE,9992
162
171
  ultralytics/models/yolo/detect/__init__.py,sha256=GIRsLYR-kT4JJx7lh4ZZAFGBZj0aebokuU0A7JbjDVA,257
163
- ultralytics/models/yolo/detect/predict.py,sha256=WlaOAiJphK9BMFuxF4e3aDRbugJCuPrI201C99jtGIY,5343
172
+ ultralytics/models/yolo/detect/predict.py,sha256=oAftDYhksUDjVfgKIsmmair1_ujwVY-yc-MHrl7r9Hw,5343
164
173
  ultralytics/models/yolo/detect/train.py,sha256=YOEmUZkfJBq6hNbB_P10k-uy4_2fUgdPfVWzO4y8Egs,9538
165
174
  ultralytics/models/yolo/detect/val.py,sha256=7AB_wZi7aQ9_V1pZQSWk5qiJYS34fuO3P5aX7_3eeFE,18471
166
175
  ultralytics/models/yolo/obb/__init__.py,sha256=tQmpG8wVHsajWkZdmD6cjGohJ4ki64iSXQT8JY_dydo,221
167
176
  ultralytics/models/yolo/obb/predict.py,sha256=L40iamQgTY7VDn0WggG2jeJK8cVUo1qsNuFSbK67ry0,2974
168
- ultralytics/models/yolo/obb/train.py,sha256=MQgLZ65pcdf8QIzqGxIt77GcuVUeXvdbP8dFjz8Xh34,3458
177
+ ultralytics/models/yolo/obb/train.py,sha256=NBSpXCyIn2qxtaG7gvolUzXOB0mf3oEFIpQZHTES1_s,3458
169
178
  ultralytics/models/yolo/obb/val.py,sha256=dkXUh2JfffILVRkfXycQGImQQssUDgKMtfDRP7jUpV0,13981
170
179
  ultralytics/models/yolo/pose/__init__.py,sha256=63xmuHZLNzV8I76HhVXAq4f2W0KTk8Oi9eL-Y204LyQ,227
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
180
+ ultralytics/models/yolo/pose/predict.py,sha256=sY-yMVl-hW8tGVSKt-5Pl1Bhdhj9exnmGIeb4n9wUDc,3836
181
+ ultralytics/models/yolo/pose/train.py,sha256=QQo4Q5kpvPv7kfa4uWmg3mFFa__fvIQ0yklGpa6XL58,5942
182
+ ultralytics/models/yolo/pose/val.py,sha256=FWDOPjf1Ajumh8DU5VRqUKYEDB8PeAzWtdZvhaIYTRc,18303
174
183
  ultralytics/models/yolo/segment/__init__.py,sha256=3IThhZ1wlkY9FvmWm9cE-5-ZyE6F1FgzAtQ6jOOFzzw,275
175
184
  ultralytics/models/yolo/segment/predict.py,sha256=mIC3aHI7Jg4dU1k2UZnjVj4unE-5TWi_rh7P0AEyJmA,5410
176
- ultralytics/models/yolo/segment/train.py,sha256=7DN9UpvNeEPHUNlDOZSnxem4bPfo_e5UgMLyyKT6FWo,5359
185
+ ultralytics/models/yolo/segment/train.py,sha256=EIyIAjYp127Mb-DomyjPORaONu57OY_gOTK9p2MwW6E,5359
177
186
  ultralytics/models/yolo/segment/val.py,sha256=cXJM1JNuzDraU0SJQRIdzNxabd0bfcxiRE8wozHZChY,18415
178
187
  ultralytics/models/yolo/world/__init__.py,sha256=nlh8I6t8hMGz_vZg8QSlsUW1R-2eKvn9CGUoPPQEGhA,131
179
188
  ultralytics/models/yolo/world/train.py,sha256=HUJ0XiJIGx_FA9kqNYnSFsaKWMiZUDxgkpfGoBH6UNc,4896
@@ -184,9 +193,9 @@ ultralytics/models/yolo/yoloe/train.py,sha256=JF_QxJUU3_w8yhmTfKFTpI7rVRJL1g7z7w
184
193
  ultralytics/models/yolo/yoloe/train_seg.py,sha256=6nN9DbP-AJKlJ3nIlvNn8VXFwFLQEVjSOgdN5aA817M,5309
185
194
  ultralytics/models/yolo/yoloe/val.py,sha256=oA8cVT3pBXF6aPZy7ITq0mDcktRuIgks8tTtqMRISyY,8431
186
195
  ultralytics/nn/__init__.py,sha256=rjociYD9lo_K-d-1s6TbdWklPLjTcEHk7OIlRDJstIE,615
187
- ultralytics/nn/autobackend.py,sha256=JG5qRV_eRkXu12jSqvU0pIQauZVLhPaXlxXTBRDP0CI,39523
196
+ ultralytics/nn/autobackend.py,sha256=tnYxzboWGBgNvUYrz2zokPH1Bw__GD2ZQro1gO-ZIF8,39298
188
197
  ultralytics/nn/tasks.py,sha256=EwRC70qA3eP8Xp-gGP8OuN-q8LCGDrq1iRue7ncRSV4,62916
189
- ultralytics/nn/text_model.py,sha256=6tF3hqlWszHcKFcEdfE5PSwgv-MrPQBXOxdU0DOByI0,9976
198
+ ultralytics/nn/text_model.py,sha256=8_7SRejKZA4Pi-ha0gjcWrQDDCDMBhtwlg8pPMWgjDE,13145
190
199
  ultralytics/nn/modules/__init__.py,sha256=dXLtIk9rt944WfsTdpgEdWOg3HQEHdwQztuZ6WNJygs,3144
191
200
  ultralytics/nn/modules/activation.py,sha256=PvXZkA9AzEntR575JkFORdmtcRwATyy0lje-uHA5_8w,2210
192
201
  ultralytics/nn/modules/block.py,sha256=jGPMLa-FWYall7FmWvSLIduc2qu-A-lOcBjCaHqe4nk,66667
@@ -223,23 +232,23 @@ ultralytics/trackers/utils/kalman_filter.py,sha256=A0CqOnnaKH6kr0XwuHzyHmIU6aJAj
223
232
  ultralytics/trackers/utils/matching.py,sha256=7eIufSdeN7cXuFMjvcfvz0Ldq84m4YKZl5IGxBR8IIo,7169
224
233
  ultralytics/utils/__init__.py,sha256=qV5nw3ED1NuSCoYwW3WpT6BTLeCnoH7KJgbPZU_3Sbo,50422
225
234
  ultralytics/utils/autobatch.py,sha256=VZTIKLWeFZFwBHJmbiCn3MaxoFp89hLR0DSCR_iLXJg,4913
226
- ultralytics/utils/benchmarks.py,sha256=9CeuFu3xzj1AvuP5mcQy0ow15E1sStkXr85ue76GzC4,30350
235
+ ultralytics/utils/benchmarks.py,sha256=aZse9tetEwjMy2GkdNWZ0WfCgjLfCM3_BkI1qNNQb_w,30377
227
236
  ultralytics/utils/checks.py,sha256=5bkna--ZH4FJDZtgef_K4xgjiKOZqCarTqIE4Z0vwJU,32628
228
237
  ultralytics/utils/dist.py,sha256=e-DK_YowV7D9rDGQyWR9Kaosxp2eWe2EogSWnnUMthc,4098
229
- ultralytics/utils/downloads.py,sha256=Bxg9i0coiQTaYztYtc1tXKH3qpg8lV-ywXPSbT121hU,22125
238
+ ultralytics/utils/downloads.py,sha256=d9m7VJKl_grFf0R-oYDrOa-vkSyaP9ucjfMILMB5Ly4,22153
230
239
  ultralytics/utils/errors.py,sha256=vY9h2evFSrHnZdHJVVrmm8Zzw4qVDLyo9DeYW5g0dFk,1573
231
240
  ultralytics/utils/export.py,sha256=mTkebwilsT1jwIfTLgAQdkbrnZr9Sm96W-Vi7B1j5wQ,8817
232
241
  ultralytics/utils/files.py,sha256=0K4O1cgqRiXaDw7EQK13TqA5SME_RrvfDVQSPetNr5w,8042
233
242
  ultralytics/utils/instance.py,sha256=UOEsXR9V-bXNRk6BTonASBEgeMqvzzAk4S7VdXZJUAM,18090
234
243
  ultralytics/utils/loss.py,sha256=iIDVMX2nKRGi6oEv1mu86ewZtNphNK-KWkqWF5bDo6A,37477
235
244
  ultralytics/utils/metrics.py,sha256=uv5O-2Ft8wYfTvDedFxiUqMZ6Nr2CL6I9ybGZiK3e2s,53773
236
- ultralytics/utils/ops.py,sha256=8VoH9Gw20DmJsK5IFRLxpq9At61ESuzD99gwu4XcJLg,34783
245
+ ultralytics/utils/ops.py,sha256=YFwPrKlPcgEmgAWqnJVR0Ccx5NQgp5e3P-YYHwVSP0k,34779
237
246
  ultralytics/utils/patches.py,sha256=6rVT-l8WDp_Py3O-gZdv9t3PnrYRRkrX_lF3mZ1XS8c,4928
238
247
  ultralytics/utils/plotting.py,sha256=5QPK1y-gm4T1mK3sjfRZhIUJAyP05D1cJ7h9wHPTifU,46616
239
248
  ultralytics/utils/tal.py,sha256=P5nPoR9qNnFuDIda0fsn8WP6m1V8r7EbvXUuhNRFFTA,20805
240
249
  ultralytics/utils/torch_utils.py,sha256=KUt2qoud3O2bb_cWv1TDjZloNKuLbWk0XJU97wlEdU4,39028
241
250
  ultralytics/utils/triton.py,sha256=xK9Db_ZUVDnIK1u76S2G-6ulIBsLfj9HN_YOaSrnMuU,5304
242
- ultralytics/utils/tuner.py,sha256=R_TVIfsTA8qxEPiqHBCZgh1rzqAAOwQ1gImw-0IR13g,6682
251
+ ultralytics/utils/tuner.py,sha256=0Bp7l5dWZe1RzdvAIa11wQoX6eoAaoNRcA-EAnpofbk,6755
243
252
  ultralytics/utils/callbacks/__init__.py,sha256=hzL63Rce6VkZhP4Lcim9LKjadixaQG86nKqPhk7IkS0,242
244
253
  ultralytics/utils/callbacks/base.py,sha256=p8YCeYDp4GLcyHWFZxC2Wxr2IXLw_MfIE5ef1fOQcWk,6848
245
254
  ultralytics/utils/callbacks/clearml.py,sha256=z-MmCALz1FcNSec8CmDiFHkRd_zTzzuPDCidq_xkUXY,5990
@@ -251,9 +260,9 @@ ultralytics/utils/callbacks/neptune.py,sha256=JaI95Cj2kIjUhlEEOiDN0-Drc-fDelLhNI
251
260
  ultralytics/utils/callbacks/raytune.py,sha256=A8amUGpux7dYES-L1iSeMoMXBySGWCD1aUqT7vcG-pU,1284
252
261
  ultralytics/utils/callbacks/tensorboard.py,sha256=jgYnym3cUQFAgN1GzTyO7l3jINtfAh8zhrllDvnLuVQ,5339
253
262
  ultralytics/utils/callbacks/wb.py,sha256=iDRFXI4IIDm8R5OI89DMTmjs8aHLo1HRCLkOFKdaMG4,7507
254
- ultralytics-8.3.117.dist-info/licenses/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
255
- ultralytics-8.3.117.dist-info/METADATA,sha256=-8PcMTqIr4qKMWb3L_bYqshsysRpdhzHy1afHSIkMLk,37260
256
- ultralytics-8.3.117.dist-info/WHEEL,sha256=SmOxYU7pzNKBqASvQJ7DjX3XGUF92lrGhMb3R6_iiqI,91
257
- ultralytics-8.3.117.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
258
- ultralytics-8.3.117.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
259
- ultralytics-8.3.117.dist-info/RECORD,,
263
+ ultralytics-8.3.119.dist-info/licenses/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
264
+ ultralytics-8.3.119.dist-info/METADATA,sha256=w83hqOIWMLTLqR-2-nrGAqgu-Pc6OVt2BdBPA79Oct4,37195
265
+ ultralytics-8.3.119.dist-info/WHEEL,sha256=ck4Vq1_RXyvS4Jt6SI0Vz6fyVs4GWg7AINwpsaGEgPE,91
266
+ ultralytics-8.3.119.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
267
+ ultralytics-8.3.119.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
268
+ ultralytics-8.3.119.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (79.0.1)
2
+ Generator: setuptools (80.0.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5