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.
- {dgenerate_ultralytics_headless-8.3.137.dist-info → dgenerate_ultralytics_headless-8.3.224.dist-info}/METADATA +41 -34
- dgenerate_ultralytics_headless-8.3.224.dist-info/RECORD +285 -0
- {dgenerate_ultralytics_headless-8.3.137.dist-info → dgenerate_ultralytics_headless-8.3.224.dist-info}/WHEEL +1 -1
- tests/__init__.py +7 -6
- tests/conftest.py +15 -39
- tests/test_cli.py +17 -17
- tests/test_cuda.py +17 -8
- tests/test_engine.py +36 -10
- tests/test_exports.py +98 -37
- tests/test_integrations.py +12 -15
- tests/test_python.py +126 -82
- tests/test_solutions.py +319 -135
- ultralytics/__init__.py +27 -9
- ultralytics/cfg/__init__.py +83 -87
- ultralytics/cfg/datasets/Argoverse.yaml +4 -4
- ultralytics/cfg/datasets/DOTAv1.5.yaml +2 -2
- ultralytics/cfg/datasets/DOTAv1.yaml +2 -2
- ultralytics/cfg/datasets/GlobalWheat2020.yaml +2 -2
- ultralytics/cfg/datasets/HomeObjects-3K.yaml +4 -5
- ultralytics/cfg/datasets/ImageNet.yaml +3 -3
- ultralytics/cfg/datasets/Objects365.yaml +24 -20
- ultralytics/cfg/datasets/SKU-110K.yaml +9 -9
- ultralytics/cfg/datasets/VOC.yaml +10 -13
- ultralytics/cfg/datasets/VisDrone.yaml +43 -33
- ultralytics/cfg/datasets/african-wildlife.yaml +5 -5
- ultralytics/cfg/datasets/brain-tumor.yaml +4 -5
- ultralytics/cfg/datasets/carparts-seg.yaml +5 -5
- ultralytics/cfg/datasets/coco-pose.yaml +26 -4
- ultralytics/cfg/datasets/coco.yaml +4 -4
- ultralytics/cfg/datasets/coco128-seg.yaml +2 -2
- ultralytics/cfg/datasets/coco128.yaml +2 -2
- ultralytics/cfg/datasets/coco8-grayscale.yaml +103 -0
- ultralytics/cfg/datasets/coco8-multispectral.yaml +2 -2
- ultralytics/cfg/datasets/coco8-pose.yaml +23 -2
- ultralytics/cfg/datasets/coco8-seg.yaml +2 -2
- ultralytics/cfg/datasets/coco8.yaml +2 -2
- ultralytics/cfg/datasets/construction-ppe.yaml +32 -0
- ultralytics/cfg/datasets/crack-seg.yaml +5 -5
- ultralytics/cfg/datasets/dog-pose.yaml +32 -4
- ultralytics/cfg/datasets/dota8-multispectral.yaml +2 -2
- ultralytics/cfg/datasets/dota8.yaml +2 -2
- ultralytics/cfg/datasets/hand-keypoints.yaml +29 -4
- ultralytics/cfg/datasets/lvis.yaml +9 -9
- ultralytics/cfg/datasets/medical-pills.yaml +4 -5
- ultralytics/cfg/datasets/open-images-v7.yaml +7 -10
- ultralytics/cfg/datasets/package-seg.yaml +5 -5
- ultralytics/cfg/datasets/signature.yaml +4 -4
- ultralytics/cfg/datasets/tiger-pose.yaml +20 -4
- ultralytics/cfg/datasets/xView.yaml +5 -5
- ultralytics/cfg/default.yaml +96 -93
- ultralytics/cfg/trackers/botsort.yaml +16 -17
- ultralytics/cfg/trackers/bytetrack.yaml +9 -11
- ultralytics/data/__init__.py +4 -4
- ultralytics/data/annotator.py +12 -12
- ultralytics/data/augment.py +531 -564
- ultralytics/data/base.py +76 -81
- ultralytics/data/build.py +206 -42
- ultralytics/data/converter.py +179 -78
- ultralytics/data/dataset.py +121 -121
- ultralytics/data/loaders.py +114 -91
- ultralytics/data/split.py +28 -15
- ultralytics/data/split_dota.py +67 -48
- ultralytics/data/utils.py +110 -89
- ultralytics/engine/exporter.py +422 -460
- ultralytics/engine/model.py +224 -252
- ultralytics/engine/predictor.py +94 -89
- ultralytics/engine/results.py +345 -595
- ultralytics/engine/trainer.py +231 -134
- ultralytics/engine/tuner.py +279 -73
- ultralytics/engine/validator.py +53 -46
- ultralytics/hub/__init__.py +26 -28
- ultralytics/hub/auth.py +30 -16
- ultralytics/hub/google/__init__.py +34 -36
- ultralytics/hub/session.py +53 -77
- ultralytics/hub/utils.py +23 -109
- ultralytics/models/__init__.py +1 -1
- ultralytics/models/fastsam/__init__.py +1 -1
- ultralytics/models/fastsam/model.py +36 -18
- ultralytics/models/fastsam/predict.py +33 -44
- ultralytics/models/fastsam/utils.py +4 -5
- ultralytics/models/fastsam/val.py +12 -14
- ultralytics/models/nas/__init__.py +1 -1
- ultralytics/models/nas/model.py +16 -20
- ultralytics/models/nas/predict.py +12 -14
- ultralytics/models/nas/val.py +4 -5
- ultralytics/models/rtdetr/__init__.py +1 -1
- ultralytics/models/rtdetr/model.py +9 -9
- ultralytics/models/rtdetr/predict.py +22 -17
- ultralytics/models/rtdetr/train.py +20 -16
- ultralytics/models/rtdetr/val.py +79 -59
- ultralytics/models/sam/__init__.py +8 -2
- ultralytics/models/sam/amg.py +53 -38
- ultralytics/models/sam/build.py +29 -31
- ultralytics/models/sam/model.py +33 -38
- ultralytics/models/sam/modules/blocks.py +159 -182
- ultralytics/models/sam/modules/decoders.py +38 -47
- ultralytics/models/sam/modules/encoders.py +114 -133
- ultralytics/models/sam/modules/memory_attention.py +38 -31
- ultralytics/models/sam/modules/sam.py +114 -93
- ultralytics/models/sam/modules/tiny_encoder.py +268 -291
- ultralytics/models/sam/modules/transformer.py +59 -66
- ultralytics/models/sam/modules/utils.py +55 -72
- ultralytics/models/sam/predict.py +745 -341
- ultralytics/models/utils/loss.py +118 -107
- ultralytics/models/utils/ops.py +118 -71
- ultralytics/models/yolo/__init__.py +1 -1
- ultralytics/models/yolo/classify/predict.py +28 -26
- ultralytics/models/yolo/classify/train.py +50 -81
- ultralytics/models/yolo/classify/val.py +68 -61
- ultralytics/models/yolo/detect/predict.py +12 -15
- ultralytics/models/yolo/detect/train.py +56 -46
- ultralytics/models/yolo/detect/val.py +279 -223
- ultralytics/models/yolo/model.py +167 -86
- ultralytics/models/yolo/obb/predict.py +7 -11
- ultralytics/models/yolo/obb/train.py +23 -25
- ultralytics/models/yolo/obb/val.py +107 -99
- ultralytics/models/yolo/pose/__init__.py +1 -1
- ultralytics/models/yolo/pose/predict.py +12 -14
- ultralytics/models/yolo/pose/train.py +31 -69
- ultralytics/models/yolo/pose/val.py +119 -254
- ultralytics/models/yolo/segment/predict.py +21 -25
- ultralytics/models/yolo/segment/train.py +12 -66
- ultralytics/models/yolo/segment/val.py +126 -305
- ultralytics/models/yolo/world/train.py +53 -45
- ultralytics/models/yolo/world/train_world.py +51 -32
- ultralytics/models/yolo/yoloe/__init__.py +7 -7
- ultralytics/models/yolo/yoloe/predict.py +30 -37
- ultralytics/models/yolo/yoloe/train.py +89 -71
- ultralytics/models/yolo/yoloe/train_seg.py +15 -17
- ultralytics/models/yolo/yoloe/val.py +56 -41
- ultralytics/nn/__init__.py +9 -11
- ultralytics/nn/autobackend.py +179 -107
- ultralytics/nn/modules/__init__.py +67 -67
- ultralytics/nn/modules/activation.py +8 -7
- ultralytics/nn/modules/block.py +302 -323
- ultralytics/nn/modules/conv.py +61 -104
- ultralytics/nn/modules/head.py +488 -186
- ultralytics/nn/modules/transformer.py +183 -123
- ultralytics/nn/modules/utils.py +15 -20
- ultralytics/nn/tasks.py +327 -203
- ultralytics/nn/text_model.py +81 -65
- ultralytics/py.typed +1 -0
- ultralytics/solutions/__init__.py +12 -12
- ultralytics/solutions/ai_gym.py +19 -27
- ultralytics/solutions/analytics.py +36 -26
- ultralytics/solutions/config.py +29 -28
- ultralytics/solutions/distance_calculation.py +23 -24
- ultralytics/solutions/heatmap.py +17 -19
- ultralytics/solutions/instance_segmentation.py +21 -19
- ultralytics/solutions/object_blurrer.py +16 -17
- ultralytics/solutions/object_counter.py +48 -53
- ultralytics/solutions/object_cropper.py +22 -16
- ultralytics/solutions/parking_management.py +61 -58
- ultralytics/solutions/queue_management.py +19 -19
- ultralytics/solutions/region_counter.py +63 -50
- ultralytics/solutions/security_alarm.py +22 -25
- ultralytics/solutions/similarity_search.py +107 -60
- ultralytics/solutions/solutions.py +343 -262
- ultralytics/solutions/speed_estimation.py +35 -31
- ultralytics/solutions/streamlit_inference.py +104 -40
- ultralytics/solutions/templates/similarity-search.html +31 -24
- ultralytics/solutions/trackzone.py +24 -24
- ultralytics/solutions/vision_eye.py +11 -12
- ultralytics/trackers/__init__.py +1 -1
- ultralytics/trackers/basetrack.py +18 -27
- ultralytics/trackers/bot_sort.py +48 -39
- ultralytics/trackers/byte_tracker.py +94 -94
- ultralytics/trackers/track.py +7 -16
- ultralytics/trackers/utils/gmc.py +37 -69
- ultralytics/trackers/utils/kalman_filter.py +68 -76
- ultralytics/trackers/utils/matching.py +13 -17
- ultralytics/utils/__init__.py +251 -275
- ultralytics/utils/autobatch.py +19 -7
- ultralytics/utils/autodevice.py +68 -38
- ultralytics/utils/benchmarks.py +169 -130
- ultralytics/utils/callbacks/base.py +12 -13
- ultralytics/utils/callbacks/clearml.py +14 -15
- ultralytics/utils/callbacks/comet.py +139 -66
- ultralytics/utils/callbacks/dvc.py +19 -27
- ultralytics/utils/callbacks/hub.py +8 -6
- ultralytics/utils/callbacks/mlflow.py +6 -10
- ultralytics/utils/callbacks/neptune.py +11 -19
- ultralytics/utils/callbacks/platform.py +73 -0
- ultralytics/utils/callbacks/raytune.py +3 -4
- ultralytics/utils/callbacks/tensorboard.py +9 -12
- ultralytics/utils/callbacks/wb.py +33 -30
- ultralytics/utils/checks.py +163 -114
- ultralytics/utils/cpu.py +89 -0
- ultralytics/utils/dist.py +24 -20
- ultralytics/utils/downloads.py +176 -146
- ultralytics/utils/errors.py +11 -13
- ultralytics/utils/events.py +113 -0
- ultralytics/utils/export/__init__.py +7 -0
- ultralytics/utils/{export.py → export/engine.py} +81 -63
- ultralytics/utils/export/imx.py +294 -0
- ultralytics/utils/export/tensorflow.py +217 -0
- ultralytics/utils/files.py +33 -36
- ultralytics/utils/git.py +137 -0
- ultralytics/utils/instance.py +105 -120
- ultralytics/utils/logger.py +404 -0
- ultralytics/utils/loss.py +99 -61
- ultralytics/utils/metrics.py +649 -478
- ultralytics/utils/nms.py +337 -0
- ultralytics/utils/ops.py +263 -451
- ultralytics/utils/patches.py +70 -31
- ultralytics/utils/plotting.py +253 -223
- ultralytics/utils/tal.py +48 -61
- ultralytics/utils/torch_utils.py +244 -251
- ultralytics/utils/tqdm.py +438 -0
- ultralytics/utils/triton.py +22 -23
- ultralytics/utils/tuner.py +11 -10
- dgenerate_ultralytics_headless-8.3.137.dist-info/RECORD +0 -272
- {dgenerate_ultralytics_headless-8.3.137.dist-info → dgenerate_ultralytics_headless-8.3.224.dist-info}/entry_points.txt +0 -0
- {dgenerate_ultralytics_headless-8.3.137.dist-info → dgenerate_ultralytics_headless-8.3.224.dist-info}/licenses/LICENSE +0 -0
- {dgenerate_ultralytics_headless-8.3.137.dist-info → dgenerate_ultralytics_headless-8.3.224.dist-info}/top_level.txt +0 -0
ultralytics/models/sam/model.py
CHANGED
|
@@ -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
|
-
|
|
31
|
-
|
|
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:
|
|
40
|
-
info:
|
|
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 |
|
|
90
|
-
|
|
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 (
|
|
93
|
-
points (
|
|
94
|
-
labels (
|
|
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
|
-
|
|
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 |
|
|
120
|
-
|
|
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 (
|
|
123
|
-
points (
|
|
124
|
-
labels (
|
|
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
|
-
(
|
|
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")
|