dgenerate-ultralytics-headless 8.3.137__py3-none-any.whl → 8.3.224__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 (215) hide show
  1. {dgenerate_ultralytics_headless-8.3.137.dist-info → dgenerate_ultralytics_headless-8.3.224.dist-info}/METADATA +41 -34
  2. dgenerate_ultralytics_headless-8.3.224.dist-info/RECORD +285 -0
  3. {dgenerate_ultralytics_headless-8.3.137.dist-info → dgenerate_ultralytics_headless-8.3.224.dist-info}/WHEEL +1 -1
  4. tests/__init__.py +7 -6
  5. tests/conftest.py +15 -39
  6. tests/test_cli.py +17 -17
  7. tests/test_cuda.py +17 -8
  8. tests/test_engine.py +36 -10
  9. tests/test_exports.py +98 -37
  10. tests/test_integrations.py +12 -15
  11. tests/test_python.py +126 -82
  12. tests/test_solutions.py +319 -135
  13. ultralytics/__init__.py +27 -9
  14. ultralytics/cfg/__init__.py +83 -87
  15. ultralytics/cfg/datasets/Argoverse.yaml +4 -4
  16. ultralytics/cfg/datasets/DOTAv1.5.yaml +2 -2
  17. ultralytics/cfg/datasets/DOTAv1.yaml +2 -2
  18. ultralytics/cfg/datasets/GlobalWheat2020.yaml +2 -2
  19. ultralytics/cfg/datasets/HomeObjects-3K.yaml +4 -5
  20. ultralytics/cfg/datasets/ImageNet.yaml +3 -3
  21. ultralytics/cfg/datasets/Objects365.yaml +24 -20
  22. ultralytics/cfg/datasets/SKU-110K.yaml +9 -9
  23. ultralytics/cfg/datasets/VOC.yaml +10 -13
  24. ultralytics/cfg/datasets/VisDrone.yaml +43 -33
  25. ultralytics/cfg/datasets/african-wildlife.yaml +5 -5
  26. ultralytics/cfg/datasets/brain-tumor.yaml +4 -5
  27. ultralytics/cfg/datasets/carparts-seg.yaml +5 -5
  28. ultralytics/cfg/datasets/coco-pose.yaml +26 -4
  29. ultralytics/cfg/datasets/coco.yaml +4 -4
  30. ultralytics/cfg/datasets/coco128-seg.yaml +2 -2
  31. ultralytics/cfg/datasets/coco128.yaml +2 -2
  32. ultralytics/cfg/datasets/coco8-grayscale.yaml +103 -0
  33. ultralytics/cfg/datasets/coco8-multispectral.yaml +2 -2
  34. ultralytics/cfg/datasets/coco8-pose.yaml +23 -2
  35. ultralytics/cfg/datasets/coco8-seg.yaml +2 -2
  36. ultralytics/cfg/datasets/coco8.yaml +2 -2
  37. ultralytics/cfg/datasets/construction-ppe.yaml +32 -0
  38. ultralytics/cfg/datasets/crack-seg.yaml +5 -5
  39. ultralytics/cfg/datasets/dog-pose.yaml +32 -4
  40. ultralytics/cfg/datasets/dota8-multispectral.yaml +2 -2
  41. ultralytics/cfg/datasets/dota8.yaml +2 -2
  42. ultralytics/cfg/datasets/hand-keypoints.yaml +29 -4
  43. ultralytics/cfg/datasets/lvis.yaml +9 -9
  44. ultralytics/cfg/datasets/medical-pills.yaml +4 -5
  45. ultralytics/cfg/datasets/open-images-v7.yaml +7 -10
  46. ultralytics/cfg/datasets/package-seg.yaml +5 -5
  47. ultralytics/cfg/datasets/signature.yaml +4 -4
  48. ultralytics/cfg/datasets/tiger-pose.yaml +20 -4
  49. ultralytics/cfg/datasets/xView.yaml +5 -5
  50. ultralytics/cfg/default.yaml +96 -93
  51. ultralytics/cfg/trackers/botsort.yaml +16 -17
  52. ultralytics/cfg/trackers/bytetrack.yaml +9 -11
  53. ultralytics/data/__init__.py +4 -4
  54. ultralytics/data/annotator.py +12 -12
  55. ultralytics/data/augment.py +531 -564
  56. ultralytics/data/base.py +76 -81
  57. ultralytics/data/build.py +206 -42
  58. ultralytics/data/converter.py +179 -78
  59. ultralytics/data/dataset.py +121 -121
  60. ultralytics/data/loaders.py +114 -91
  61. ultralytics/data/split.py +28 -15
  62. ultralytics/data/split_dota.py +67 -48
  63. ultralytics/data/utils.py +110 -89
  64. ultralytics/engine/exporter.py +422 -460
  65. ultralytics/engine/model.py +224 -252
  66. ultralytics/engine/predictor.py +94 -89
  67. ultralytics/engine/results.py +345 -595
  68. ultralytics/engine/trainer.py +231 -134
  69. ultralytics/engine/tuner.py +279 -73
  70. ultralytics/engine/validator.py +53 -46
  71. ultralytics/hub/__init__.py +26 -28
  72. ultralytics/hub/auth.py +30 -16
  73. ultralytics/hub/google/__init__.py +34 -36
  74. ultralytics/hub/session.py +53 -77
  75. ultralytics/hub/utils.py +23 -109
  76. ultralytics/models/__init__.py +1 -1
  77. ultralytics/models/fastsam/__init__.py +1 -1
  78. ultralytics/models/fastsam/model.py +36 -18
  79. ultralytics/models/fastsam/predict.py +33 -44
  80. ultralytics/models/fastsam/utils.py +4 -5
  81. ultralytics/models/fastsam/val.py +12 -14
  82. ultralytics/models/nas/__init__.py +1 -1
  83. ultralytics/models/nas/model.py +16 -20
  84. ultralytics/models/nas/predict.py +12 -14
  85. ultralytics/models/nas/val.py +4 -5
  86. ultralytics/models/rtdetr/__init__.py +1 -1
  87. ultralytics/models/rtdetr/model.py +9 -9
  88. ultralytics/models/rtdetr/predict.py +22 -17
  89. ultralytics/models/rtdetr/train.py +20 -16
  90. ultralytics/models/rtdetr/val.py +79 -59
  91. ultralytics/models/sam/__init__.py +8 -2
  92. ultralytics/models/sam/amg.py +53 -38
  93. ultralytics/models/sam/build.py +29 -31
  94. ultralytics/models/sam/model.py +33 -38
  95. ultralytics/models/sam/modules/blocks.py +159 -182
  96. ultralytics/models/sam/modules/decoders.py +38 -47
  97. ultralytics/models/sam/modules/encoders.py +114 -133
  98. ultralytics/models/sam/modules/memory_attention.py +38 -31
  99. ultralytics/models/sam/modules/sam.py +114 -93
  100. ultralytics/models/sam/modules/tiny_encoder.py +268 -291
  101. ultralytics/models/sam/modules/transformer.py +59 -66
  102. ultralytics/models/sam/modules/utils.py +55 -72
  103. ultralytics/models/sam/predict.py +745 -341
  104. ultralytics/models/utils/loss.py +118 -107
  105. ultralytics/models/utils/ops.py +118 -71
  106. ultralytics/models/yolo/__init__.py +1 -1
  107. ultralytics/models/yolo/classify/predict.py +28 -26
  108. ultralytics/models/yolo/classify/train.py +50 -81
  109. ultralytics/models/yolo/classify/val.py +68 -61
  110. ultralytics/models/yolo/detect/predict.py +12 -15
  111. ultralytics/models/yolo/detect/train.py +56 -46
  112. ultralytics/models/yolo/detect/val.py +279 -223
  113. ultralytics/models/yolo/model.py +167 -86
  114. ultralytics/models/yolo/obb/predict.py +7 -11
  115. ultralytics/models/yolo/obb/train.py +23 -25
  116. ultralytics/models/yolo/obb/val.py +107 -99
  117. ultralytics/models/yolo/pose/__init__.py +1 -1
  118. ultralytics/models/yolo/pose/predict.py +12 -14
  119. ultralytics/models/yolo/pose/train.py +31 -69
  120. ultralytics/models/yolo/pose/val.py +119 -254
  121. ultralytics/models/yolo/segment/predict.py +21 -25
  122. ultralytics/models/yolo/segment/train.py +12 -66
  123. ultralytics/models/yolo/segment/val.py +126 -305
  124. ultralytics/models/yolo/world/train.py +53 -45
  125. ultralytics/models/yolo/world/train_world.py +51 -32
  126. ultralytics/models/yolo/yoloe/__init__.py +7 -7
  127. ultralytics/models/yolo/yoloe/predict.py +30 -37
  128. ultralytics/models/yolo/yoloe/train.py +89 -71
  129. ultralytics/models/yolo/yoloe/train_seg.py +15 -17
  130. ultralytics/models/yolo/yoloe/val.py +56 -41
  131. ultralytics/nn/__init__.py +9 -11
  132. ultralytics/nn/autobackend.py +179 -107
  133. ultralytics/nn/modules/__init__.py +67 -67
  134. ultralytics/nn/modules/activation.py +8 -7
  135. ultralytics/nn/modules/block.py +302 -323
  136. ultralytics/nn/modules/conv.py +61 -104
  137. ultralytics/nn/modules/head.py +488 -186
  138. ultralytics/nn/modules/transformer.py +183 -123
  139. ultralytics/nn/modules/utils.py +15 -20
  140. ultralytics/nn/tasks.py +327 -203
  141. ultralytics/nn/text_model.py +81 -65
  142. ultralytics/py.typed +1 -0
  143. ultralytics/solutions/__init__.py +12 -12
  144. ultralytics/solutions/ai_gym.py +19 -27
  145. ultralytics/solutions/analytics.py +36 -26
  146. ultralytics/solutions/config.py +29 -28
  147. ultralytics/solutions/distance_calculation.py +23 -24
  148. ultralytics/solutions/heatmap.py +17 -19
  149. ultralytics/solutions/instance_segmentation.py +21 -19
  150. ultralytics/solutions/object_blurrer.py +16 -17
  151. ultralytics/solutions/object_counter.py +48 -53
  152. ultralytics/solutions/object_cropper.py +22 -16
  153. ultralytics/solutions/parking_management.py +61 -58
  154. ultralytics/solutions/queue_management.py +19 -19
  155. ultralytics/solutions/region_counter.py +63 -50
  156. ultralytics/solutions/security_alarm.py +22 -25
  157. ultralytics/solutions/similarity_search.py +107 -60
  158. ultralytics/solutions/solutions.py +343 -262
  159. ultralytics/solutions/speed_estimation.py +35 -31
  160. ultralytics/solutions/streamlit_inference.py +104 -40
  161. ultralytics/solutions/templates/similarity-search.html +31 -24
  162. ultralytics/solutions/trackzone.py +24 -24
  163. ultralytics/solutions/vision_eye.py +11 -12
  164. ultralytics/trackers/__init__.py +1 -1
  165. ultralytics/trackers/basetrack.py +18 -27
  166. ultralytics/trackers/bot_sort.py +48 -39
  167. ultralytics/trackers/byte_tracker.py +94 -94
  168. ultralytics/trackers/track.py +7 -16
  169. ultralytics/trackers/utils/gmc.py +37 -69
  170. ultralytics/trackers/utils/kalman_filter.py +68 -76
  171. ultralytics/trackers/utils/matching.py +13 -17
  172. ultralytics/utils/__init__.py +251 -275
  173. ultralytics/utils/autobatch.py +19 -7
  174. ultralytics/utils/autodevice.py +68 -38
  175. ultralytics/utils/benchmarks.py +169 -130
  176. ultralytics/utils/callbacks/base.py +12 -13
  177. ultralytics/utils/callbacks/clearml.py +14 -15
  178. ultralytics/utils/callbacks/comet.py +139 -66
  179. ultralytics/utils/callbacks/dvc.py +19 -27
  180. ultralytics/utils/callbacks/hub.py +8 -6
  181. ultralytics/utils/callbacks/mlflow.py +6 -10
  182. ultralytics/utils/callbacks/neptune.py +11 -19
  183. ultralytics/utils/callbacks/platform.py +73 -0
  184. ultralytics/utils/callbacks/raytune.py +3 -4
  185. ultralytics/utils/callbacks/tensorboard.py +9 -12
  186. ultralytics/utils/callbacks/wb.py +33 -30
  187. ultralytics/utils/checks.py +163 -114
  188. ultralytics/utils/cpu.py +89 -0
  189. ultralytics/utils/dist.py +24 -20
  190. ultralytics/utils/downloads.py +176 -146
  191. ultralytics/utils/errors.py +11 -13
  192. ultralytics/utils/events.py +113 -0
  193. ultralytics/utils/export/__init__.py +7 -0
  194. ultralytics/utils/{export.py → export/engine.py} +81 -63
  195. ultralytics/utils/export/imx.py +294 -0
  196. ultralytics/utils/export/tensorflow.py +217 -0
  197. ultralytics/utils/files.py +33 -36
  198. ultralytics/utils/git.py +137 -0
  199. ultralytics/utils/instance.py +105 -120
  200. ultralytics/utils/logger.py +404 -0
  201. ultralytics/utils/loss.py +99 -61
  202. ultralytics/utils/metrics.py +649 -478
  203. ultralytics/utils/nms.py +337 -0
  204. ultralytics/utils/ops.py +263 -451
  205. ultralytics/utils/patches.py +70 -31
  206. ultralytics/utils/plotting.py +253 -223
  207. ultralytics/utils/tal.py +48 -61
  208. ultralytics/utils/torch_utils.py +244 -251
  209. ultralytics/utils/tqdm.py +438 -0
  210. ultralytics/utils/triton.py +22 -23
  211. ultralytics/utils/tuner.py +11 -10
  212. dgenerate_ultralytics_headless-8.3.137.dist-info/RECORD +0 -272
  213. {dgenerate_ultralytics_headless-8.3.137.dist-info → dgenerate_ultralytics_headless-8.3.224.dist-info}/entry_points.txt +0 -0
  214. {dgenerate_ultralytics_headless-8.3.137.dist-info → dgenerate_ultralytics_headless-8.3.224.dist-info}/licenses/LICENSE +0 -0
  215. {dgenerate_ultralytics_headless-8.3.137.dist-info → dgenerate_ultralytics_headless-8.3.224.dist-info}/top_level.txt +0 -0
@@ -14,6 +14,8 @@ Key Features:
14
14
  - Trained on SA-1B dataset
15
15
  """
16
16
 
17
+ from __future__ import annotations
18
+
17
19
  from pathlib import Path
18
20
 
19
21
  from ultralytics.engine.model import Model
@@ -23,12 +25,11 @@ from .predict import Predictor, SAM2Predictor
23
25
 
24
26
 
25
27
  class SAM(Model):
26
- """
27
- SAM (Segment Anything Model) interface class for real-time image segmentation tasks.
28
+ """SAM (Segment Anything Model) interface class for real-time image segmentation tasks.
28
29
 
29
- This class provides an interface to the Segment Anything Model (SAM) from Ultralytics, designed for
30
- promptable segmentation with versatility in image analysis. It supports various prompts such as bounding
31
- boxes, points, or labels, and features zero-shot performance capabilities.
30
+ This class provides an interface to the Segment Anything Model (SAM) from Ultralytics, designed for promptable
31
+ segmentation with versatility in image analysis. It supports various prompts such as bounding boxes, points, or
32
+ labels, and features zero-shot performance capabilities.
32
33
 
33
34
  Attributes:
34
35
  model (torch.nn.Module): The loaded SAM model.
@@ -36,8 +37,8 @@ class SAM(Model):
36
37
  task (str): The task type, set to "segment" for SAM models.
37
38
 
38
39
  Methods:
39
- predict: Performs segmentation prediction on the given image or video source.
40
- info: Logs information about the SAM model.
40
+ predict: Perform segmentation prediction on the given image or video source.
41
+ info: Log information about the SAM model.
41
42
 
42
43
  Examples:
43
44
  >>> sam = SAM("sam_b.pt")
@@ -46,9 +47,8 @@ class SAM(Model):
46
47
  >>> print(f"Detected {len(r.masks)} masks")
47
48
  """
48
49
 
49
- def __init__(self, model="sam_b.pt") -> None:
50
- """
51
- Initialize the SAM (Segment Anything Model) instance.
50
+ def __init__(self, model: str = "sam_b.pt") -> None:
51
+ """Initialize the SAM (Segment Anything Model) instance.
52
52
 
53
53
  Args:
54
54
  model (str): Path to the pre-trained SAM model file. File should have a .pt or .pth extension.
@@ -66,8 +66,7 @@ class SAM(Model):
66
66
  super().__init__(model=model, task="segment")
67
67
 
68
68
  def _load(self, weights: str, task=None):
69
- """
70
- Load the specified weights into the SAM model.
69
+ """Load the specified weights into the SAM model.
71
70
 
72
71
  Args:
73
72
  weights (str): Path to the weights file. Should be a .pt or .pth file containing the model parameters.
@@ -81,17 +80,16 @@ class SAM(Model):
81
80
 
82
81
  self.model = build_sam(weights)
83
82
 
84
- def predict(self, source, stream=False, bboxes=None, points=None, labels=None, **kwargs):
85
- """
86
- Perform segmentation prediction on the given image or video source.
83
+ def predict(self, source, stream: bool = False, bboxes=None, points=None, labels=None, **kwargs):
84
+ """Perform segmentation prediction on the given image or video source.
87
85
 
88
86
  Args:
89
- source (str | PIL.Image | numpy.ndarray): Path to the image or video file, or a PIL.Image object, or
90
- a numpy.ndarray object.
87
+ source (str | PIL.Image | np.ndarray): Path to the image or video file, or a PIL.Image object, or a
88
+ np.ndarray object.
91
89
  stream (bool): If True, enables real-time streaming.
92
- bboxes (List[List[float]] | None): List of bounding box coordinates for prompted segmentation.
93
- points (List[List[float]] | None): List of points for prompted segmentation.
94
- labels (List[int] | None): List of labels for prompted segmentation.
90
+ bboxes (list[list[float]] | None): List of bounding box coordinates for prompted segmentation.
91
+ points (list[list[float]] | None): List of points for prompted segmentation.
92
+ labels (list[int] | None): List of labels for prompted segmentation.
95
93
  **kwargs (Any): Additional keyword arguments for prediction.
96
94
 
97
95
  Returns:
@@ -108,20 +106,19 @@ class SAM(Model):
108
106
  prompts = dict(bboxes=bboxes, points=points, labels=labels)
109
107
  return super().predict(source, stream, prompts=prompts, **kwargs)
110
108
 
111
- def __call__(self, source=None, stream=False, bboxes=None, points=None, labels=None, **kwargs):
112
- """
113
- Perform segmentation prediction on the given image or video source.
109
+ def __call__(self, source=None, stream: bool = False, bboxes=None, points=None, labels=None, **kwargs):
110
+ """Perform segmentation prediction on the given image or video source.
114
111
 
115
- This method is an alias for the 'predict' method, providing a convenient way to call the SAM model
116
- for segmentation tasks.
112
+ This method is an alias for the 'predict' method, providing a convenient way to call the SAM model for
113
+ segmentation tasks.
117
114
 
118
115
  Args:
119
- source (str | PIL.Image | numpy.ndarray | None): Path to the image or video file, or a PIL.Image
120
- object, or a numpy.ndarray object.
116
+ source (str | PIL.Image | np.ndarray | None): Path to the image or video file, or a PIL.Image object, or a
117
+ np.ndarray object.
121
118
  stream (bool): If True, enables real-time streaming.
122
- bboxes (List[List[float]] | None): List of bounding box coordinates for prompted segmentation.
123
- points (List[List[float]] | None): List of points for prompted segmentation.
124
- labels (List[int] | None): List of labels for prompted segmentation.
119
+ bboxes (list[list[float]] | None): List of bounding box coordinates for prompted segmentation.
120
+ points (list[list[float]] | None): List of points for prompted segmentation.
121
+ labels (list[int] | None): List of labels for prompted segmentation.
125
122
  **kwargs (Any): Additional keyword arguments to be passed to the predict method.
126
123
 
127
124
  Returns:
@@ -134,9 +131,8 @@ class SAM(Model):
134
131
  """
135
132
  return self.predict(source, stream, bboxes, points, labels, **kwargs)
136
133
 
137
- def info(self, detailed=False, verbose=True):
138
- """
139
- Log information about the SAM model.
134
+ def info(self, detailed: bool = False, verbose: bool = True):
135
+ """Log information about the SAM model.
140
136
 
141
137
  Args:
142
138
  detailed (bool): If True, displays detailed information about the model layers and operations.
@@ -153,13 +149,12 @@ class SAM(Model):
153
149
  return model_info(self.model, detailed=detailed, verbose=verbose)
154
150
 
155
151
  @property
156
- def task_map(self):
157
- """
158
- Provide a mapping from the 'segment' task to its corresponding 'Predictor'.
152
+ def task_map(self) -> dict[str, dict[str, type[Predictor]]]:
153
+ """Provide a mapping from the 'segment' task to its corresponding 'Predictor'.
159
154
 
160
155
  Returns:
161
- (Dict[str, Dict[str, Type[Predictor]]]): A dictionary mapping the 'segment' task to its corresponding Predictor
162
- class. For SAM2 models, it maps to SAM2Predictor, otherwise to the standard Predictor.
156
+ (dict[str, dict[str, Type[Predictor]]]): A dictionary mapping the 'segment' task to its corresponding
157
+ Predictor class. For SAM2 models, it maps to SAM2Predictor, otherwise to the standard Predictor.
163
158
 
164
159
  Examples:
165
160
  >>> sam = SAM("sam_b.pt")