ultralytics 8.3.9__py3-none-any.whl → 8.3.11__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.
Potentially problematic release.
This version of ultralytics might be problematic. Click here for more details.
- ultralytics/__init__.py +1 -1
- ultralytics/data/annotator.py +1 -1
- ultralytics/data/loaders.py +162 -81
- ultralytics/data/utils.py +1 -1
- ultralytics/engine/exporter.py +47 -50
- ultralytics/engine/model.py +33 -33
- ultralytics/engine/predictor.py +1 -1
- ultralytics/engine/results.py +1 -1
- ultralytics/engine/tuner.py +3 -3
- ultralytics/models/yolo/detect/predict.py +1 -1
- ultralytics/models/yolo/detect/train.py +1 -1
- ultralytics/models/yolo/detect/val.py +1 -1
- ultralytics/models/yolo/model.py +1 -1
- ultralytics/nn/autobackend.py +1 -1
- ultralytics/nn/modules/head.py +9 -9
- ultralytics/utils/benchmarks.py +2 -2
- ultralytics/utils/checks.py +10 -7
- ultralytics/utils/downloads.py +1 -1
- ultralytics/utils/files.py +2 -2
- ultralytics/utils/tuner.py +1 -1
- {ultralytics-8.3.9.dist-info → ultralytics-8.3.11.dist-info}/METADATA +1 -1
- {ultralytics-8.3.9.dist-info → ultralytics-8.3.11.dist-info}/RECORD +26 -27
- tests/test_explorer.py +0 -66
- {ultralytics-8.3.9.dist-info → ultralytics-8.3.11.dist-info}/LICENSE +0 -0
- {ultralytics-8.3.9.dist-info → ultralytics-8.3.11.dist-info}/WHEEL +0 -0
- {ultralytics-8.3.9.dist-info → ultralytics-8.3.11.dist-info}/entry_points.txt +0 -0
- {ultralytics-8.3.9.dist-info → ultralytics-8.3.11.dist-info}/top_level.txt +0 -0
ultralytics/nn/modules/head.py
CHANGED
|
@@ -19,7 +19,7 @@ __all__ = "Detect", "Segment", "Pose", "Classify", "OBB", "RTDETRDecoder", "v10D
|
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
class Detect(nn.Module):
|
|
22
|
-
"""
|
|
22
|
+
"""YOLO Detect head for detection models."""
|
|
23
23
|
|
|
24
24
|
dynamic = False # force grid reconstruction
|
|
25
25
|
export = False # export mode
|
|
@@ -30,7 +30,7 @@ class Detect(nn.Module):
|
|
|
30
30
|
strides = torch.empty(0) # init
|
|
31
31
|
|
|
32
32
|
def __init__(self, nc=80, ch=()):
|
|
33
|
-
"""Initializes the
|
|
33
|
+
"""Initializes the YOLO detection layer with specified number of classes and channels."""
|
|
34
34
|
super().__init__()
|
|
35
35
|
self.nc = nc # number of classes
|
|
36
36
|
self.nl = len(ch) # number of detection layers
|
|
@@ -162,7 +162,7 @@ class Detect(nn.Module):
|
|
|
162
162
|
|
|
163
163
|
|
|
164
164
|
class Segment(Detect):
|
|
165
|
-
"""
|
|
165
|
+
"""YOLO Segment head for segmentation models."""
|
|
166
166
|
|
|
167
167
|
def __init__(self, nc=80, nm=32, npr=256, ch=()):
|
|
168
168
|
"""Initialize the YOLO model attributes such as the number of masks, prototypes, and the convolution layers."""
|
|
@@ -187,7 +187,7 @@ class Segment(Detect):
|
|
|
187
187
|
|
|
188
188
|
|
|
189
189
|
class OBB(Detect):
|
|
190
|
-
"""
|
|
190
|
+
"""YOLO OBB detection head for detection with rotation models."""
|
|
191
191
|
|
|
192
192
|
def __init__(self, nc=80, ne=1, ch=()):
|
|
193
193
|
"""Initialize OBB with number of classes `nc` and layer channels `ch`."""
|
|
@@ -217,7 +217,7 @@ class OBB(Detect):
|
|
|
217
217
|
|
|
218
218
|
|
|
219
219
|
class Pose(Detect):
|
|
220
|
-
"""
|
|
220
|
+
"""YOLO Pose head for keypoints models."""
|
|
221
221
|
|
|
222
222
|
def __init__(self, nc=80, kpt_shape=(17, 3), ch=()):
|
|
223
223
|
"""Initialize YOLO network with default parameters and Convolutional Layers."""
|
|
@@ -257,10 +257,10 @@ class Pose(Detect):
|
|
|
257
257
|
|
|
258
258
|
|
|
259
259
|
class Classify(nn.Module):
|
|
260
|
-
"""
|
|
260
|
+
"""YOLO classification head, i.e. x(b,c1,20,20) to x(b,c2)."""
|
|
261
261
|
|
|
262
262
|
def __init__(self, c1, c2, k=1, s=1, p=None, g=1):
|
|
263
|
-
"""Initializes
|
|
263
|
+
"""Initializes YOLO classification head to transform input tensor from (b,c1,20,20) to (b,c2) shape."""
|
|
264
264
|
super().__init__()
|
|
265
265
|
c_ = 1280 # efficientnet_b0 size
|
|
266
266
|
self.conv = Conv(c1, c_, k, s, p, g)
|
|
@@ -277,10 +277,10 @@ class Classify(nn.Module):
|
|
|
277
277
|
|
|
278
278
|
|
|
279
279
|
class WorldDetect(Detect):
|
|
280
|
-
"""Head for integrating
|
|
280
|
+
"""Head for integrating YOLO detection models with semantic understanding from text embeddings."""
|
|
281
281
|
|
|
282
282
|
def __init__(self, nc=80, embed=512, with_bn=False, ch=()):
|
|
283
|
-
"""Initialize
|
|
283
|
+
"""Initialize YOLO detection layer with nc classes and layer channels ch."""
|
|
284
284
|
super().__init__(nc, ch)
|
|
285
285
|
c3 = max(ch[0], min(self.nc, 100))
|
|
286
286
|
self.cv3 = nn.ModuleList(nn.Sequential(Conv(x, c3, 3), Conv(c3, c3, 3), nn.Conv2d(c3, embed, 1)) for x in ch)
|
ultralytics/utils/benchmarks.py
CHANGED
|
@@ -47,7 +47,7 @@ from ultralytics.utils.torch_utils import get_cpu_info, select_device
|
|
|
47
47
|
|
|
48
48
|
|
|
49
49
|
def benchmark(
|
|
50
|
-
model=WEIGHTS_DIR / "
|
|
50
|
+
model=WEIGHTS_DIR / "yolo11n.pt",
|
|
51
51
|
data=None,
|
|
52
52
|
imgsz=160,
|
|
53
53
|
half=False,
|
|
@@ -76,7 +76,7 @@ def benchmark(
|
|
|
76
76
|
Examples:
|
|
77
77
|
Benchmark a YOLO model with default settings:
|
|
78
78
|
>>> from ultralytics.utils.benchmarks import benchmark
|
|
79
|
-
>>> benchmark(model="
|
|
79
|
+
>>> benchmark(model="yolo11n.pt", imgsz=640)
|
|
80
80
|
"""
|
|
81
81
|
import pandas as pd # scope for faster 'import ultralytics'
|
|
82
82
|
|
ultralytics/utils/checks.py
CHANGED
|
@@ -238,12 +238,14 @@ def check_version(
|
|
|
238
238
|
c = parse_version(current) # '1.2.3' -> (1, 2, 3)
|
|
239
239
|
for r in required.strip(",").split(","):
|
|
240
240
|
op, version = re.match(r"([^0-9]*)([\d.]+)", r).groups() # split '>=22.04' -> ('>=', '22.04')
|
|
241
|
+
if not op:
|
|
242
|
+
op = ">=" # assume >= if no op passed
|
|
241
243
|
v = parse_version(version) # '1.2.3' -> (1, 2, 3)
|
|
242
244
|
if op == "==" and c != v:
|
|
243
245
|
result = False
|
|
244
246
|
elif op == "!=" and c == v:
|
|
245
247
|
result = False
|
|
246
|
-
elif op
|
|
248
|
+
elif op == ">=" and not (c >= v):
|
|
247
249
|
result = False
|
|
248
250
|
elif op == "<=" and not (c <= v):
|
|
249
251
|
result = False
|
|
@@ -333,18 +335,19 @@ def check_font(font="Arial.ttf"):
|
|
|
333
335
|
return file
|
|
334
336
|
|
|
335
337
|
|
|
336
|
-
def check_python(minimum: str = "3.8.0", hard: bool = True) -> bool:
|
|
338
|
+
def check_python(minimum: str = "3.8.0", hard: bool = True, verbose: bool = True) -> bool:
|
|
337
339
|
"""
|
|
338
340
|
Check current python version against the required minimum version.
|
|
339
341
|
|
|
340
342
|
Args:
|
|
341
343
|
minimum (str): Required minimum version of python.
|
|
342
344
|
hard (bool, optional): If True, raise an AssertionError if the requirement is not met.
|
|
345
|
+
verbose (bool, optional): If True, print warning message if requirement is not met.
|
|
343
346
|
|
|
344
347
|
Returns:
|
|
345
348
|
(bool): Whether the installed Python version meets the minimum constraints.
|
|
346
349
|
"""
|
|
347
|
-
return check_version(PYTHON_VERSION, minimum, name="Python", hard=hard)
|
|
350
|
+
return check_version(PYTHON_VERSION, minimum, name="Python", hard=hard, verbose=verbose)
|
|
348
351
|
|
|
349
352
|
|
|
350
353
|
@TryExcept()
|
|
@@ -374,8 +377,6 @@ def check_requirements(requirements=ROOT.parent / "requirements.txt", exclude=()
|
|
|
374
377
|
```
|
|
375
378
|
"""
|
|
376
379
|
prefix = colorstr("red", "bold", "requirements:")
|
|
377
|
-
check_python() # check python version
|
|
378
|
-
check_torchvision() # check torch-torchvision compatibility
|
|
379
380
|
if isinstance(requirements, Path): # requirements.txt file
|
|
380
381
|
file = requirements.resolve()
|
|
381
382
|
assert file.exists(), f"{prefix} {file} not found, check failed."
|
|
@@ -457,7 +458,7 @@ def check_torchvision():
|
|
|
457
458
|
)
|
|
458
459
|
|
|
459
460
|
|
|
460
|
-
def check_suffix(file="
|
|
461
|
+
def check_suffix(file="yolo11n.pt", suffix=".pt", msg=""):
|
|
461
462
|
"""Check file(s) for acceptable suffix."""
|
|
462
463
|
if file and suffix:
|
|
463
464
|
if isinstance(suffix, str):
|
|
@@ -770,6 +771,8 @@ def cuda_is_available() -> bool:
|
|
|
770
771
|
return cuda_device_count() > 0
|
|
771
772
|
|
|
772
773
|
|
|
773
|
-
#
|
|
774
|
+
# Run checks and define constants
|
|
775
|
+
check_python("3.8", hard=False, verbose=True) # check python version
|
|
776
|
+
check_torchvision() # check torch-torchvision compatibility
|
|
774
777
|
IS_PYTHON_MINIMUM_3_10 = check_python("3.10", hard=False)
|
|
775
778
|
IS_PYTHON_3_12 = PYTHON_VERSION.startswith("3.12")
|
ultralytics/utils/downloads.py
CHANGED
|
@@ -425,7 +425,7 @@ def attempt_download_asset(file, repo="ultralytics/assets", release="v8.3.0", **
|
|
|
425
425
|
|
|
426
426
|
Example:
|
|
427
427
|
```python
|
|
428
|
-
file_path = attempt_download_asset("
|
|
428
|
+
file_path = attempt_download_asset("yolo11n.pt", repo="ultralytics/assets", release="latest")
|
|
429
429
|
```
|
|
430
430
|
"""
|
|
431
431
|
from ultralytics.utils import SETTINGS # scoped for circular import
|
ultralytics/utils/files.py
CHANGED
|
@@ -183,7 +183,7 @@ def get_latest_run(search_dir="."):
|
|
|
183
183
|
return max(last_list, key=os.path.getctime) if last_list else ""
|
|
184
184
|
|
|
185
185
|
|
|
186
|
-
def update_models(model_names=("
|
|
186
|
+
def update_models(model_names=("yolo11n.pt",), source_dir=Path("."), update_names=False):
|
|
187
187
|
"""
|
|
188
188
|
Updates and re-saves specified YOLO models in an 'updated_models' subdirectory.
|
|
189
189
|
|
|
@@ -195,7 +195,7 @@ def update_models(model_names=("yolov8n.pt",), source_dir=Path("."), update_name
|
|
|
195
195
|
Examples:
|
|
196
196
|
Update specified YOLO models and save them in 'updated_models' subdirectory:
|
|
197
197
|
>>> from ultralytics.utils.files import update_models
|
|
198
|
-
>>> model_names = ("
|
|
198
|
+
>>> model_names = ("yolo11n.pt", "yolov8s.pt")
|
|
199
199
|
>>> update_models(model_names, source_dir=Path("/models"), update_names=True)
|
|
200
200
|
"""
|
|
201
201
|
from ultralytics import YOLO
|
ultralytics/utils/tuner.py
CHANGED
|
@@ -28,7 +28,7 @@ def run_ray_tune(
|
|
|
28
28
|
from ultralytics import YOLO
|
|
29
29
|
|
|
30
30
|
# Load a YOLOv8n model
|
|
31
|
-
model = YOLO("
|
|
31
|
+
model = YOLO("yolo11n.pt")
|
|
32
32
|
|
|
33
33
|
# Start tuning hyperparameters for YOLOv8n training on the COCO8 dataset
|
|
34
34
|
result_grid = model.tune(data="coco8.yaml", use_ray=True)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: ultralytics
|
|
3
|
-
Version: 8.3.
|
|
3
|
+
Version: 8.3.11
|
|
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>
|
|
@@ -3,12 +3,11 @@ tests/conftest.py,sha256=9PFAiwAy6eeORGspr5dOKxVuFDVKqYg8Nn_RxSJ27UI,2919
|
|
|
3
3
|
tests/test_cli.py,sha256=E4lMt49TGo12Lb5CgQfpk1bwyFUZuFxF0V9j_ykV7xM,4821
|
|
4
4
|
tests/test_cuda.py,sha256=KoRtRLUB7KOb9IXYX4mCi295Uh_cZEEFhCyvCDGRK9s,5381
|
|
5
5
|
tests/test_engine.py,sha256=dcEcJsMQh61rDSNv7l4TIAgybLpzjVwerv9JZC_KCM8,4934
|
|
6
|
-
tests/test_explorer.py,sha256=9EeMtt4-K3-MeGnAc7NemTg3uTo-Xr6AYJlTJZJJeF8,2572
|
|
7
6
|
tests/test_exports.py,sha256=fpTKEVBUGLF3WiZPNKRs-IEcIY4cfxgvgKjUNfodjww,8042
|
|
8
7
|
tests/test_integrations.py,sha256=f5-QCUk1SU_-qn4mBCZwS3GN3tXEBIIXo4z2EhExbHw,6126
|
|
9
8
|
tests/test_python.py,sha256=I1RRdCwLdrc3jX06huVxct8HX8ccQOmQgVpuEflRl0U,23560
|
|
10
9
|
tests/test_solutions.py,sha256=dpxWGKO-aJ3Yff4KR7BQGajX9VyFdGTWEtcbmFC3WwE,3005
|
|
11
|
-
ultralytics/__init__.py,sha256=
|
|
10
|
+
ultralytics/__init__.py,sha256=19JcU9M-VZ6RCIz0c3u-8ynzEpeqhYIKNSN9t_kpNuI,753
|
|
12
11
|
ultralytics/assets/bus.jpg,sha256=wCAZxJecGR63Od3ZRERe9Aja1Weayrb9Ug751DS_vGM,137419
|
|
13
12
|
ultralytics/assets/zidane.jpg,sha256=Ftc4aeMmen1O0A3o6GCDO9FlfBslLpTAw0gnetx7bts,50427
|
|
14
13
|
ultralytics/cfg/__init__.py,sha256=N-XONBXwmD3vzoE4icBXznkV8LOLmf6ak6mRdGPucvw,33146
|
|
@@ -90,27 +89,27 @@ ultralytics/cfg/solutions/default.yaml,sha256=CByxINYMyoGzGKdurDk2GhYc8XOa8Z6H7C
|
|
|
90
89
|
ultralytics/cfg/trackers/botsort.yaml,sha256=8B0xNbnG_E-9DCUpap72PWkUgBb1AjuApEn7gHiVngE,916
|
|
91
90
|
ultralytics/cfg/trackers/bytetrack.yaml,sha256=8vpTZ2x9mhRXJymoJvs1G8kTXo_HxbSwHup2FQALT3A,721
|
|
92
91
|
ultralytics/data/__init__.py,sha256=VGe-ATG7j35F4A4r8Jmzffjlhve4JAJPgRa5ahKTU18,616
|
|
93
|
-
ultralytics/data/annotator.py,sha256=
|
|
92
|
+
ultralytics/data/annotator.py,sha256=oy87bzQN6ZRYeucoLk8e-jDEo6YJ91FE_zMFtLEVC1I,2489
|
|
94
93
|
ultralytics/data/augment.py,sha256=YCLrwx1mRGeidggo_7GeINay8KdxACqREHJofZeaTHA,120430
|
|
95
94
|
ultralytics/data/base.py,sha256=ZCIhAyFfxXVp5fVnYD8mwbksNALJTayBKIR5FKGV7ZM,15168
|
|
96
95
|
ultralytics/data/build.py,sha256=AfMmz0sHIYmwry_90tEJFRk_kz0S3SolScVXqYHiT08,7261
|
|
97
96
|
ultralytics/data/converter.py,sha256=QCtrcbNz9kid8nvHfGIWt02nH1wwMKv6HI-8s927CR8,24251
|
|
98
97
|
ultralytics/data/dataset.py,sha256=D556AW0ZEsW3V8c5zJiHM_prc_YfZqymIkDKPw3k9Io,22936
|
|
99
|
-
ultralytics/data/loaders.py,sha256=
|
|
98
|
+
ultralytics/data/loaders.py,sha256=Fr70Q9p9t7buLW_8R2_lI_nyCMG033gWSxvwy1M-a-U,28449
|
|
100
99
|
ultralytics/data/split_dota.py,sha256=yOtypHoY5HvIVBKZgFXdfj2tuCLLEBnMwNfAeG94Eik,10680
|
|
101
|
-
ultralytics/data/utils.py,sha256=
|
|
100
|
+
ultralytics/data/utils.py,sha256=u6OZ7InLpI1em5aEPz13ZzS9BcO37dcY9_s2btXGZYQ,31076
|
|
102
101
|
ultralytics/data/explorer/__init__.py,sha256=-Y3m1ZedepOQUv_KW82zaGxvU_PSHcuwUTFqG9BhAr4,113
|
|
103
102
|
ultralytics/data/explorer/explorer.py,sha256=JWmLHHhp68h2q3vx4poBou5RYoAX3R89yihR50YLDb0,18881
|
|
104
103
|
ultralytics/data/explorer/utils.py,sha256=EvvukQiQUTBrsZznmMnyEX2EqTuwZo_Geyc8yfi8NIA,7085
|
|
105
104
|
ultralytics/data/explorer/gui/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
|
|
106
105
|
ultralytics/data/explorer/gui/dash.py,sha256=6XOZy9NrkPEXREJPbi0EBkGgu78TAdHpdhSB2HuBOAo,10222
|
|
107
106
|
ultralytics/engine/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
|
|
108
|
-
ultralytics/engine/exporter.py,sha256=
|
|
109
|
-
ultralytics/engine/model.py,sha256=
|
|
110
|
-
ultralytics/engine/predictor.py,sha256=
|
|
111
|
-
ultralytics/engine/results.py,sha256=
|
|
107
|
+
ultralytics/engine/exporter.py,sha256=b3OIHAABVyqqSizJKQxiWPZvKzIvThK9kucN2iYWnwE,57487
|
|
108
|
+
ultralytics/engine/model.py,sha256=pvL1uf-wwdWL8Iph7VEAYn1-z7wEHzVug21V_0_gO6M,51456
|
|
109
|
+
ultralytics/engine/predictor.py,sha256=keTelEeo23Dcbs-XvmRWAPIs4pbCNDtsMBz88WM1eK8,17534
|
|
110
|
+
ultralytics/engine/results.py,sha256=BxanBI8PhBCfs-9cSy-GS6naScuiD3hdvUAJWPW2mS0,75043
|
|
112
111
|
ultralytics/engine/trainer.py,sha256=6dGOEZvMo3o97SLpKlcR5XmhWhUHh05uLYpj3jNn0jU,36981
|
|
113
|
-
ultralytics/engine/tuner.py,sha256=
|
|
112
|
+
ultralytics/engine/tuner.py,sha256=WBj8iw1K1TK0hvanlA-wkwmfqh1SI8jEe2dGwUINeTg,11838
|
|
114
113
|
ultralytics/engine/validator.py,sha256=2C_qXI36Z9rLOpmS0YR8Qe3ka4p23YiH2w5ai7-XBwE,14811
|
|
115
114
|
ultralytics/hub/__init__.py,sha256=3SKvZ5aRina3h94xMPQIB3D4maF62qFcyIqPPHRHNAc,5644
|
|
116
115
|
ultralytics/hub/auth.py,sha256=kDLakGa2NbzvMAeXc2UdzZ65r0AH-XeM_JfsDY97WGk,5545
|
|
@@ -150,15 +149,15 @@ ultralytics/models/utils/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8
|
|
|
150
149
|
ultralytics/models/utils/loss.py,sha256=Ozi0Up7cmPAehXgqGuVSAtUS4XQxaX76KqE8Q0VHk7E,15840
|
|
151
150
|
ultralytics/models/utils/ops.py,sha256=aPAPwWMLJLWq-I04wS_YrqJ_Vy_xBXtqQu6Aox15YDA,13221
|
|
152
151
|
ultralytics/models/yolo/__init__.py,sha256=e1cZr9pbSbf3Ya2OvkTjGRwD_E2YZpe610xskBM8gEk,247
|
|
153
|
-
ultralytics/models/yolo/model.py,sha256=
|
|
152
|
+
ultralytics/models/yolo/model.py,sha256=E4TuJZZux0L_SG7sC0SDgxrmeBvuZRpxprPrCC26lvs,4233
|
|
154
153
|
ultralytics/models/yolo/classify/__init__.py,sha256=t-4pUHmgI2gjhc-l3bqNEcEtKD1dO40nD4Vc6Y2xD6o,355
|
|
155
154
|
ultralytics/models/yolo/classify/predict.py,sha256=0CEJ4B4fXbOMUnJy79gRvG-qdszOzTSLOb1xxkgsKek,2444
|
|
156
155
|
ultralytics/models/yolo/classify/train.py,sha256=THXSkQVQVBuw1QxcEVA8MtLHYYdaAEqepObJCXoLcZ8,6358
|
|
157
156
|
ultralytics/models/yolo/classify/val.py,sha256=Tzizhp3ebzPvwJejrE8tb-TuXw4MdkEI9mOANV74eXQ,4909
|
|
158
157
|
ultralytics/models/yolo/detect/__init__.py,sha256=JR8gZJWn7wMBbh-0j_073nxJVZTMFZVWTOG5Wnvk6w0,229
|
|
159
|
-
ultralytics/models/yolo/detect/predict.py,sha256
|
|
160
|
-
ultralytics/models/yolo/detect/train.py,sha256=
|
|
161
|
-
ultralytics/models/yolo/detect/val.py,sha256=
|
|
158
|
+
ultralytics/models/yolo/detect/predict.py,sha256=-uZFLutxGYZX47RANcaxC-LFStRbv0nBv_8-ypadQoI,1471
|
|
159
|
+
ultralytics/models/yolo/detect/train.py,sha256=jayPByykRhJvUeDCN-oZ4M6Yx0rpjAWq9epjJgnHeYA,6363
|
|
160
|
+
ultralytics/models/yolo/detect/val.py,sha256=ulKYfViVU2WErDtFOU8FTGBlROR4p-jFK4Nf9O4LMV4,15152
|
|
162
161
|
ultralytics/models/yolo/obb/__init__.py,sha256=txWbPGLY1_M7ZwlLQjrwGjTBOlsv9P3yk5ZEgysTinU,193
|
|
163
162
|
ultralytics/models/yolo/obb/predict.py,sha256=VxpKCKV5dWnOr0GyV1rJGH5SzzRouCYW_8T26xJ8MU8,2037
|
|
164
163
|
ultralytics/models/yolo/obb/train.py,sha256=_FVYCvHJ5ECi2aN8k7AmVLxRUuun7acSqwWtCBRuL6Q,1473
|
|
@@ -175,13 +174,13 @@ ultralytics/models/yolo/world/__init__.py,sha256=3VTH0q4NOt2EWRom15yCymvmvm0Etp2
|
|
|
175
174
|
ultralytics/models/yolo/world/train.py,sha256=gaDrAmLJpg9qDtmL5evA5HsV2yb4RTRSfk2EDYrHdRg,3686
|
|
176
175
|
ultralytics/models/yolo/world/train_world.py,sha256=IsnCEVt6DcM9lUskCKmIN-M8MM79xLpwTRqRoAHUnZ4,4857
|
|
177
176
|
ultralytics/nn/__init__.py,sha256=4BPLHY89xEM_al5uK0aOmFgiML6CMGEZbezxOvTjOEs,587
|
|
178
|
-
ultralytics/nn/autobackend.py,sha256=
|
|
177
|
+
ultralytics/nn/autobackend.py,sha256=xcbndT-esNu3Icx3SWRJXZ7JqWjj8H5hteUetYBliDo,31599
|
|
179
178
|
ultralytics/nn/tasks.py,sha256=ssBZR4LY4rvaxYawXq5-yWSBAZ9oCz6BgxWYXB2YD68,48399
|
|
180
179
|
ultralytics/nn/modules/__init__.py,sha256=xhW2BennT9U_VaMXVpRu-bdLgp1BXt9L8mkIUBE3idU,2625
|
|
181
180
|
ultralytics/nn/modules/activation.py,sha256=chhn469wnRHEs5BMGNBYXwPYZc_7-urspTT8fnBd-xA,895
|
|
182
181
|
ultralytics/nn/modules/block.py,sha256=thcIPcnGRRxDDDswywJsfzbewr9XfTrzl_UvSl-bJ3c,41832
|
|
183
182
|
ultralytics/nn/modules/conv.py,sha256=vOeHZ6Z4sc6-9PrDmRGT1hFkxSBbbWkQm2jRbGGjpqQ,12705
|
|
184
|
-
ultralytics/nn/modules/head.py,sha256=
|
|
183
|
+
ultralytics/nn/modules/head.py,sha256=WnCpQDBlMDStpEs-m-R0vcKq28OX2FEgTcmHEpRL_pA,26609
|
|
185
184
|
ultralytics/nn/modules/transformer.py,sha256=tGiK8NmPfswwW1rbF21r5ILUkkZQ6Nk4s8j16vFBmps,18069
|
|
186
185
|
ultralytics/nn/modules/utils.py,sha256=a88cKl2wz1nMVSEBiajtvaCbDBQIkESWOKTZ_WAJy90,3195
|
|
187
186
|
ultralytics/solutions/__init__.py,sha256=6RDeXWO1QSaMgCq8YrWXaj2xvPw2sJwJL_a0dgjCvz0,648
|
|
@@ -206,12 +205,12 @@ ultralytics/trackers/utils/kalman_filter.py,sha256=cH9zD3fwkuezP97H9mw8cSBN7a8hH
|
|
|
206
205
|
ultralytics/trackers/utils/matching.py,sha256=3Ie1WNNRZ4_q3365F03XD7Nr9juZB_08mw4yUKC3w74,7162
|
|
207
206
|
ultralytics/utils/__init__.py,sha256=du1Y1LMU0jQn_zWWnAIx9U8wn6Vh7ce-k7qMwi6y0po,48698
|
|
208
207
|
ultralytics/utils/autobatch.py,sha256=BO9MCRtrLDtrDQaxqV0BdjaYsgXf-q07Y3_VdGp4URY,4330
|
|
209
|
-
ultralytics/utils/benchmarks.py,sha256=
|
|
210
|
-
ultralytics/utils/checks.py,sha256=
|
|
208
|
+
ultralytics/utils/benchmarks.py,sha256=R3_jtwLd48azPSXmtIhqlzduUvflk0FOY8GJOJ6mB6E,25097
|
|
209
|
+
ultralytics/utils/checks.py,sha256=iH5R-DQKhP7qnW8pQm-rlYPsMJ5KWvcn9imo-hamIqE,29765
|
|
211
210
|
ultralytics/utils/dist.py,sha256=NDFga-uKxkBX2zLxFHSene_cCiGQJoyOeCXcN9JIOIk,2358
|
|
212
|
-
ultralytics/utils/downloads.py,sha256=
|
|
211
|
+
ultralytics/utils/downloads.py,sha256=xxM9zTNCqo3PRFOxWCH1pJoKuFJKZFsb3sab6Hvabug,21977
|
|
213
212
|
ultralytics/utils/errors.py,sha256=GqP_Jgj_n0paxn8OMhn3DTCgoNkB2WjUcUaqs-M6SQk,816
|
|
214
|
-
ultralytics/utils/files.py,sha256=
|
|
213
|
+
ultralytics/utils/files.py,sha256=uiXQSVABJRoI5ImnM6ndEBIFbECfksmWNEldBg8GnSo,8224
|
|
215
214
|
ultralytics/utils/instance.py,sha256=QSms7mPHZ5e8JGuJYLohLWltzI0aBE8dob2rOUK4RtM,16249
|
|
216
215
|
ultralytics/utils/loss.py,sha256=SW3FVFFp8Ki_LCT8wIdFbm6KmyPcQn3RmKNcvVAhMQI,34174
|
|
217
216
|
ultralytics/utils/metrics.py,sha256=UgLGudWp57uXDMlMUJy4gsz6cfVjcq7tYmHeto3TqvM,53927
|
|
@@ -221,7 +220,7 @@ ultralytics/utils/plotting.py,sha256=aozAEwcbc447ume9bQrEBTU04AzyiZZrnzcTzA2S6j0
|
|
|
221
220
|
ultralytics/utils/tal.py,sha256=ECsu95xEqOItmxMDN4YTD3FsUiIsQNWy0pZC3TfvFfk,16877
|
|
222
221
|
ultralytics/utils/torch_utils.py,sha256=gVN-KSrAzJC1rW3woQd4FsTT693GD8rXiccToL2m4kM,30059
|
|
223
222
|
ultralytics/utils/triton.py,sha256=gg1finxno_tY2Ge9PMhmu7PI9wvoFZoiicdT4Bhqv3w,3936
|
|
224
|
-
ultralytics/utils/tuner.py,sha256=
|
|
223
|
+
ultralytics/utils/tuner.py,sha256=mJdgvuE2StoFS13mEdsTbsxQgSZA4fSdSCgoyh8PvNw,6250
|
|
225
224
|
ultralytics/utils/callbacks/__init__.py,sha256=YrWqC3BVVaTLob4iCPR6I36mUxIUOpPJW7B_LjT78Qw,214
|
|
226
225
|
ultralytics/utils/callbacks/base.py,sha256=PHjQ6RITwC2dylCQTB0bdPgAsHjxVeuDb5N1NPTbHGc,5775
|
|
227
226
|
ultralytics/utils/callbacks/clearml.py,sha256=qbLbqzMVWAnjqg5YUM-Ue6CmGueFCvqKpHFKlw-MyVc,5933
|
|
@@ -233,9 +232,9 @@ ultralytics/utils/callbacks/neptune.py,sha256=IbGQfEltamUKXJt93uSLQFn8c2rYh3DMTg
|
|
|
233
232
|
ultralytics/utils/callbacks/raytune.py,sha256=ODVYzy-CoM4Uge0zjkh3Hnh9nF2M0vhDrSenXnvcizw,705
|
|
234
233
|
ultralytics/utils/callbacks/tensorboard.py,sha256=bv4fkkesdgmZv_E2MU6wuaMBwEV5iI2G53RHPyD9quw,4170
|
|
235
234
|
ultralytics/utils/callbacks/wb.py,sha256=upfbF8-LLXueUvulLaMDmKDhKCl_PWbNa_87PQ0L0Rc,6752
|
|
236
|
-
ultralytics-8.3.
|
|
237
|
-
ultralytics-8.3.
|
|
238
|
-
ultralytics-8.3.
|
|
239
|
-
ultralytics-8.3.
|
|
240
|
-
ultralytics-8.3.
|
|
241
|
-
ultralytics-8.3.
|
|
235
|
+
ultralytics-8.3.11.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
|
|
236
|
+
ultralytics-8.3.11.dist-info/METADATA,sha256=bD92haGae0_AYj7u5Z8EE6OoUn5sAhwau3R0S-z6pVQ,34700
|
|
237
|
+
ultralytics-8.3.11.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
|
|
238
|
+
ultralytics-8.3.11.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
|
|
239
|
+
ultralytics-8.3.11.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
|
|
240
|
+
ultralytics-8.3.11.dist-info/RECORD,,
|
tests/test_explorer.py
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
# Ultralytics YOLO 🚀, AGPL-3.0 license
|
|
2
|
-
|
|
3
|
-
import PIL
|
|
4
|
-
import pytest
|
|
5
|
-
|
|
6
|
-
from ultralytics import Explorer
|
|
7
|
-
from ultralytics.utils import ASSETS
|
|
8
|
-
from ultralytics.utils.torch_utils import TORCH_1_13
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
@pytest.mark.slow
|
|
12
|
-
@pytest.mark.skipif(not TORCH_1_13, reason="Explorer requires torch>=1.13")
|
|
13
|
-
def test_similarity():
|
|
14
|
-
"""Test the correctness and response length of similarity calculations and SQL queries in the Explorer."""
|
|
15
|
-
exp = Explorer(data="coco8.yaml")
|
|
16
|
-
exp.create_embeddings_table()
|
|
17
|
-
similar = exp.get_similar(idx=1)
|
|
18
|
-
assert len(similar) == 4
|
|
19
|
-
similar = exp.get_similar(img=ASSETS / "bus.jpg")
|
|
20
|
-
assert len(similar) == 4
|
|
21
|
-
similar = exp.get_similar(idx=[1, 2], limit=2)
|
|
22
|
-
assert len(similar) == 2
|
|
23
|
-
sim_idx = exp.similarity_index()
|
|
24
|
-
assert len(sim_idx) == 4
|
|
25
|
-
sql = exp.sql_query("WHERE labels LIKE '%zebra%'")
|
|
26
|
-
assert len(sql) == 1
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
@pytest.mark.slow
|
|
30
|
-
@pytest.mark.skipif(not TORCH_1_13, reason="Explorer requires torch>=1.13")
|
|
31
|
-
def test_det():
|
|
32
|
-
"""Test detection functionalities and verify embedding table includes bounding boxes."""
|
|
33
|
-
exp = Explorer(data="coco8.yaml", model="yolo11n.pt")
|
|
34
|
-
exp.create_embeddings_table(force=True)
|
|
35
|
-
assert len(exp.table.head()["bboxes"]) > 0
|
|
36
|
-
similar = exp.get_similar(idx=[1, 2], limit=10)
|
|
37
|
-
assert len(similar) > 0
|
|
38
|
-
# This is a loose test, just checks errors not correctness
|
|
39
|
-
similar = exp.plot_similar(idx=[1, 2], limit=10)
|
|
40
|
-
assert isinstance(similar, PIL.Image.Image)
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
@pytest.mark.slow
|
|
44
|
-
@pytest.mark.skipif(not TORCH_1_13, reason="Explorer requires torch>=1.13")
|
|
45
|
-
def test_seg():
|
|
46
|
-
"""Test segmentation functionalities and ensure the embedding table includes segmentation masks."""
|
|
47
|
-
exp = Explorer(data="coco8-seg.yaml", model="yolo11n-seg.pt")
|
|
48
|
-
exp.create_embeddings_table(force=True)
|
|
49
|
-
assert len(exp.table.head()["masks"]) > 0
|
|
50
|
-
similar = exp.get_similar(idx=[1, 2], limit=10)
|
|
51
|
-
assert len(similar) > 0
|
|
52
|
-
similar = exp.plot_similar(idx=[1, 2], limit=10)
|
|
53
|
-
assert isinstance(similar, PIL.Image.Image)
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
@pytest.mark.slow
|
|
57
|
-
@pytest.mark.skipif(not TORCH_1_13, reason="Explorer requires torch>=1.13")
|
|
58
|
-
def test_pose():
|
|
59
|
-
"""Test pose estimation functionality and verify the embedding table includes keypoints."""
|
|
60
|
-
exp = Explorer(data="coco8-pose.yaml", model="yolo11n-pose.pt")
|
|
61
|
-
exp.create_embeddings_table(force=True)
|
|
62
|
-
assert len(exp.table.head()["keypoints"]) > 0
|
|
63
|
-
similar = exp.get_similar(idx=[1, 2], limit=10)
|
|
64
|
-
assert len(similar) > 0
|
|
65
|
-
similar = exp.plot_similar(idx=[1, 2], limit=10)
|
|
66
|
-
assert isinstance(similar, PIL.Image.Image)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|