ultralytics 8.3.99__py3-none-any.whl → 8.3.101__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.
- ultralytics/__init__.py +1 -1
- ultralytics/engine/exporter.py +1 -1
- ultralytics/engine/model.py +1 -1
- ultralytics/engine/predictor.py +3 -1
- ultralytics/models/yolo/model.py +17 -2
- ultralytics/nn/autobackend.py +14 -5
- ultralytics/nn/tasks.py +2 -2
- ultralytics/utils/benchmarks.py +1 -0
- {ultralytics-8.3.99.dist-info → ultralytics-8.3.101.dist-info}/METADATA +1 -1
- {ultralytics-8.3.99.dist-info → ultralytics-8.3.101.dist-info}/RECORD +14 -14
- {ultralytics-8.3.99.dist-info → ultralytics-8.3.101.dist-info}/WHEEL +0 -0
- {ultralytics-8.3.99.dist-info → ultralytics-8.3.101.dist-info}/entry_points.txt +0 -0
- {ultralytics-8.3.99.dist-info → ultralytics-8.3.101.dist-info}/licenses/LICENSE +0 -0
- {ultralytics-8.3.99.dist-info → ultralytics-8.3.101.dist-info}/top_level.txt +0 -0
ultralytics/__init__.py
CHANGED
ultralytics/engine/exporter.py
CHANGED
@@ -667,7 +667,7 @@ class Exporter:
|
|
667
667
|
@try_export
|
668
668
|
def export_paddle(self, prefix=colorstr("PaddlePaddle:")):
|
669
669
|
"""YOLO Paddle export."""
|
670
|
-
check_requirements(("paddlepaddle-gpu" if torch.cuda.is_available() else "paddlepaddle
|
670
|
+
check_requirements(("paddlepaddle-gpu" if torch.cuda.is_available() else "paddlepaddle>=3.0.0", "x2paddle"))
|
671
671
|
import x2paddle # noqa
|
672
672
|
from x2paddle.convert import pytorch2paddle # noqa
|
673
673
|
|
ultralytics/engine/model.py
CHANGED
@@ -534,7 +534,7 @@ class Model(torch.nn.Module):
|
|
534
534
|
x in ARGV for x in ("predict", "track", "mode=predict", "mode=track")
|
535
535
|
)
|
536
536
|
|
537
|
-
custom = {"conf": 0.25, "batch": 1, "save": is_cli, "mode": "predict"} # method defaults
|
537
|
+
custom = {"conf": 0.25, "batch": 1, "save": is_cli, "mode": "predict", "rect": True} # method defaults
|
538
538
|
args = {**self.overrides, **custom, **kwargs} # highest priority args on the right
|
539
539
|
prompts = args.pop("prompts", None) # for SAM-type models
|
540
540
|
|
ultralytics/engine/predictor.py
CHANGED
@@ -183,7 +183,9 @@ class BasePredictor:
|
|
183
183
|
same_shapes = len({x.shape for x in im}) == 1
|
184
184
|
letterbox = LetterBox(
|
185
185
|
self.imgsz,
|
186
|
-
auto=same_shapes
|
186
|
+
auto=same_shapes
|
187
|
+
and self.args.rect
|
188
|
+
and (self.model.pt or (getattr(self.model, "dynamic", False) and not self.model.imx)),
|
187
189
|
stride=self.model.stride,
|
188
190
|
)
|
189
191
|
return [letterbox(image=x) for x in im]
|
ultralytics/models/yolo/model.py
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
from pathlib import Path
|
4
4
|
|
5
|
+
from ultralytics.data.build import load_inference_source
|
5
6
|
from ultralytics.engine.model import Model
|
6
7
|
from ultralytics.models import yolo
|
7
8
|
from ultralytics.nn.tasks import (
|
@@ -267,7 +268,14 @@ class YOLOE(Model):
|
|
267
268
|
f"{len(visual_prompts['cls'])} respectively"
|
268
269
|
)
|
269
270
|
self.predictor = (predictor or self._smart_load("predictor"))(
|
270
|
-
overrides={
|
271
|
+
overrides={
|
272
|
+
"task": self.model.task,
|
273
|
+
"mode": "predict",
|
274
|
+
"save": False,
|
275
|
+
"verbose": refer_image is None,
|
276
|
+
"batch": 1,
|
277
|
+
},
|
278
|
+
_callbacks=self.callbacks,
|
271
279
|
)
|
272
280
|
|
273
281
|
if len(visual_prompts):
|
@@ -278,12 +286,19 @@ class YOLOE(Model):
|
|
278
286
|
)
|
279
287
|
self.model.model[-1].nc = num_cls
|
280
288
|
self.model.names = [f"object{i}" for i in range(num_cls)]
|
281
|
-
self.predictor.set_prompts(visual_prompts)
|
289
|
+
self.predictor.set_prompts(visual_prompts.copy())
|
282
290
|
|
283
291
|
self.predictor.setup_model(model=self.model)
|
292
|
+
|
293
|
+
if refer_image is None:
|
294
|
+
dataset = load_inference_source(source)
|
295
|
+
if dataset.mode in {"video", "stream"}:
|
296
|
+
# NOTE: set the first frame as refer image for videos/streams inference
|
297
|
+
refer_image = next(iter(dataset))[1][0]
|
284
298
|
if refer_image is not None and len(visual_prompts):
|
285
299
|
vpe = self.predictor.get_vpe(refer_image)
|
286
300
|
self.model.set_classes(self.model.names, vpe)
|
301
|
+
self.task = "segment" if isinstance(self.predictor, yolo.segment.SegmentationPredictor) else "detect"
|
287
302
|
self.predictor = None # reset predictor
|
288
303
|
|
289
304
|
return super().predict(source, stream, **kwargs)
|
ultralytics/nn/autobackend.py
CHANGED
@@ -435,19 +435,28 @@ class AutoBackend(nn.Module):
|
|
435
435
|
# PaddlePaddle
|
436
436
|
elif paddle:
|
437
437
|
LOGGER.info(f"Loading {w} for PaddlePaddle inference...")
|
438
|
-
check_requirements("paddlepaddle-gpu" if cuda else "paddlepaddle
|
438
|
+
check_requirements("paddlepaddle-gpu" if cuda else "paddlepaddle>=3.0.0")
|
439
439
|
import paddle.inference as pdi # noqa
|
440
440
|
|
441
441
|
w = Path(w)
|
442
|
-
|
443
|
-
|
444
|
-
|
442
|
+
model_file, params_file = None, None
|
443
|
+
if w.is_dir():
|
444
|
+
model_file = next(w.rglob("*.json"), None)
|
445
|
+
params_file = next(w.rglob("*.pdiparams"), None)
|
446
|
+
elif w.suffix == ".pdiparams":
|
447
|
+
model_file = w.with_name("model.json")
|
448
|
+
params_file = w
|
449
|
+
|
450
|
+
if not (model_file and params_file and model_file.is_file() and params_file.is_file()):
|
451
|
+
raise FileNotFoundError(f"Paddle model not found in {w}. Both .json and .pdiparams files are required.")
|
452
|
+
|
453
|
+
config = pdi.Config(str(model_file), str(params_file))
|
445
454
|
if cuda:
|
446
455
|
config.enable_use_gpu(memory_pool_init_size_mb=2048, device_id=0)
|
447
456
|
predictor = pdi.create_predictor(config)
|
448
457
|
input_handle = predictor.get_input_handle(predictor.get_input_names()[0])
|
449
458
|
output_names = predictor.get_output_names()
|
450
|
-
metadata = w
|
459
|
+
metadata = w / "metadata.yaml"
|
451
460
|
|
452
461
|
# MNN
|
453
462
|
elif mnn:
|
ultralytics/nn/tasks.py
CHANGED
@@ -972,8 +972,8 @@ class YOLOEModel(DetectionModel):
|
|
972
972
|
assert not self.training
|
973
973
|
return vpe
|
974
974
|
cls_pe = self.get_cls_pe(m.get_tpe(tpe), vpe).to(device=x[0].device, dtype=x[0].dtype)
|
975
|
-
if
|
976
|
-
cls_pe = cls_pe.
|
975
|
+
if cls_pe.shape[0] != b or m.export:
|
976
|
+
cls_pe = cls_pe.expand(b, -1, -1)
|
977
977
|
x = m(x, cls_pe)
|
978
978
|
else:
|
979
979
|
x = m(x) # run
|
ultralytics/utils/benchmarks.py
CHANGED
@@ -126,6 +126,7 @@ def benchmark(
|
|
126
126
|
assert not isinstance(model, YOLOWorld), "YOLOWorldv2 TensorFlow exports not supported by onnx2tf yet"
|
127
127
|
if i == 11: # Paddle
|
128
128
|
assert not isinstance(model, YOLOWorld), "YOLOWorldv2 Paddle exports not supported yet"
|
129
|
+
assert not model.task == "obb", "Paddle OBB bug https://github.com/PaddlePaddle/Paddle/issues/72024"
|
129
130
|
assert not is_end2end, "End-to-end models not supported by PaddlePaddle yet"
|
130
131
|
assert LINUX or MACOS, "Windows Paddle exports not supported yet"
|
131
132
|
if i == 12: # MNN
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: ultralytics
|
3
|
-
Version: 8.3.
|
3
|
+
Version: 8.3.101
|
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>
|
@@ -7,7 +7,7 @@ tests/test_exports.py,sha256=ONs5zF9gVOl_sabzLmFyhp5zQ2sv3uSWzXUjoTgJPME,9242
|
|
7
7
|
tests/test_integrations.py,sha256=ZgpddWHEVqiP4bGhVw8fLc2wdz0rCxuxr0FQ2dTgnIE,6067
|
8
8
|
tests/test_python.py,sha256=Xrxx-Cul4xumA5qDCnduXOA3InfADT3jrtnEh4jpOeY,24638
|
9
9
|
tests/test_solutions.py,sha256=4TNQZ9aH1doWujQmh4pgxqHHCU2Umk-IBXjAZg7HIqk,5135
|
10
|
-
ultralytics/__init__.py,sha256=
|
10
|
+
ultralytics/__init__.py,sha256=EhtRGTnPR6Ul8ikA0CCjiIZbbduhnFGJ_5RZmX-mqHw,730
|
11
11
|
ultralytics/assets/bus.jpg,sha256=wCAZxJecGR63Od3ZRERe9Aja1Weayrb9Ug751DS_vGM,137419
|
12
12
|
ultralytics/assets/zidane.jpg,sha256=Ftc4aeMmen1O0A3o6GCDO9FlfBslLpTAw0gnetx7bts,50427
|
13
13
|
ultralytics/cfg/__init__.py,sha256=h-VYq22NA05gVibxa5eVO-pMk9OqlcaUMx2NbgklnXM,39894
|
@@ -111,9 +111,9 @@ ultralytics/data/loaders.py,sha256=_Gyp_BfGTZwsFdn4UnolXxdU_sAYZLIrv0L2TRI9R5g,2
|
|
111
111
|
ultralytics/data/split_dota.py,sha256=p8eVGht9tABSVbf9vwvxA_AQYEva3IGHePKlMeNrn64,11872
|
112
112
|
ultralytics/data/utils.py,sha256=aRPwIoLrCML_Kcd0dI9B6c5Ct4dvhdF36rDHtuf7Ww4,33217
|
113
113
|
ultralytics/engine/__init__.py,sha256=lm6MckFYCPTbqIoX7w0s_daxdjNeBeKW6DXppv1-QUM,70
|
114
|
-
ultralytics/engine/exporter.py,sha256=
|
115
|
-
ultralytics/engine/model.py,sha256=
|
116
|
-
ultralytics/engine/predictor.py,sha256=
|
114
|
+
ultralytics/engine/exporter.py,sha256=GQQLD9hbmw-SLvXFB1c0LD59E6LCciTTlfriXZUktqI,77745
|
115
|
+
ultralytics/engine/model.py,sha256=YgQKYZrPENSTvLENspg-bXI9FinzzWARfb0U-C9vH-M,52916
|
116
|
+
ultralytics/engine/predictor.py,sha256=fRUh82EJlu_6ZlIy8NFovlCcgX53UbRYSXcLljOs7Sc,21669
|
117
117
|
ultralytics/engine/results.py,sha256=H3pFJhUjYKvVyOUqqZjfIn8vnCpl81aYNOnregMrBoQ,79716
|
118
118
|
ultralytics/engine/trainer.py,sha256=KAeiNoH5NIRhQPIfr5AhVwDerk9dy0-QJu-FlxtG4xA,38904
|
119
119
|
ultralytics/engine/tuner.py,sha256=GsDhrI3uWm3YYEQHpqxLCehXsUMRWrhmXFW6X4vJB3s,12205
|
@@ -156,7 +156,7 @@ ultralytics/models/utils/__init__.py,sha256=lm6MckFYCPTbqIoX7w0s_daxdjNeBeKW6DXp
|
|
156
156
|
ultralytics/models/utils/loss.py,sha256=ZI1PsYNNuVDzRnUJu4gbMDCRnHgqLxL2Xzk3EPUq-M8,17921
|
157
157
|
ultralytics/models/utils/ops.py,sha256=2IZSNqoOKfUk3dta_l-FIklfPRC9f0gADnR9R_avun0,12706
|
158
158
|
ultralytics/models/yolo/__init__.py,sha256=or0j5xvcM0usMlsFTYhNAOcQUri7reD0cD9JR5b7zDk,307
|
159
|
-
ultralytics/models/yolo/model.py,sha256=
|
159
|
+
ultralytics/models/yolo/model.py,sha256=c8KPHwaEWqoXebF1Ry-0Vhh6qEvFYxsmFGqaz-C5sg8,12259
|
160
160
|
ultralytics/models/yolo/classify/__init__.py,sha256=9--HVaNOfI1K7rn_rRqclL8FUAnpfeBrRqEQIaQw2xM,383
|
161
161
|
ultralytics/models/yolo/classify/predict.py,sha256=vKbdvlX9MhSOB3KrBOnq6XYq1l5JcGZmPVGtsmaS2m8,3525
|
162
162
|
ultralytics/models/yolo/classify/train.py,sha256=E8dPIlDQ-l3irjdGkm5lOpKjV-DHLvj6za5UNbWaIcg,8996
|
@@ -186,8 +186,8 @@ ultralytics/models/yolo/yoloe/train.py,sha256=tzr1QsXcFZTV1SK2SKUl7I48zb-cvxQzLk
|
|
186
186
|
ultralytics/models/yolo/yoloe/train_seg.py,sha256=JguKB1ez8Rf7XBu_D_mWHMLJto7y7Kr2m0Tq2NwDtwU,5269
|
187
187
|
ultralytics/models/yolo/yoloe/val.py,sha256=n-wDJprRMqqio6Ndsg_OpjNJQCPy_wIMzPMzecESzjs,8244
|
188
188
|
ultralytics/nn/__init__.py,sha256=rjociYD9lo_K-d-1s6TbdWklPLjTcEHk7OIlRDJstIE,615
|
189
|
-
ultralytics/nn/autobackend.py,sha256=
|
190
|
-
ultralytics/nn/tasks.py,sha256=
|
189
|
+
ultralytics/nn/autobackend.py,sha256=jqNBzu9kNHVyZgTky8dhMQLMKo8YWwuaokLCKgp-alw,38703
|
190
|
+
ultralytics/nn/tasks.py,sha256=IhwALGXXrFeNSJivzY6JT4YDg3k-trtLvR0qrJE5W9U,62818
|
191
191
|
ultralytics/nn/text_model.py,sha256=P75y5kaWFm2MyTTLLDK9drwKLxls5yUqPZn1vIPa4gM,6391
|
192
192
|
ultralytics/nn/modules/__init__.py,sha256=dXLtIk9rt944WfsTdpgEdWOg3HQEHdwQztuZ6WNJygs,3144
|
193
193
|
ultralytics/nn/modules/activation.py,sha256=_DL_rQw4QmhNO0CaftNR8HRvqNnTGRbmjyD6HGbPjxw,1392
|
@@ -225,7 +225,7 @@ ultralytics/trackers/utils/kalman_filter.py,sha256=A0CqOnnaKH6kr0XwuHzyHmIU6aJAj
|
|
225
225
|
ultralytics/trackers/utils/matching.py,sha256=7eIufSdeN7cXuFMjvcfvz0Ldq84m4YKZl5IGxBR8IIo,7169
|
226
226
|
ultralytics/utils/__init__.py,sha256=vkL5eXMA-1CvTJou5D16FkIdO_ANDwPUJPB4NovnMQw,50197
|
227
227
|
ultralytics/utils/autobatch.py,sha256=KnvmNSAO_6H3ZLJ4fOFMTFbOaMlbp025LiJqrdKIz8c,4998
|
228
|
-
ultralytics/utils/benchmarks.py,sha256=
|
228
|
+
ultralytics/utils/benchmarks.py,sha256=xPPj1ahKFMFX2Lc0xqkVPmn8oxfAeX2AOb-j90EEHCI,30363
|
229
229
|
ultralytics/utils/checks.py,sha256=d30cJY1G3wBWWTlq3C3yGVmDhAUtfXa9U3nuTO4sXQo,32677
|
230
230
|
ultralytics/utils/dist.py,sha256=seNVxWYY0_OyLYQqSEcTiRIFsk3eojSj06FvrzJCKn8,2795
|
231
231
|
ultralytics/utils/downloads.py,sha256=4P1JIc04tTd_oz3-AHlhRSGaVtnSQPg_gYlh__U27-4,22169
|
@@ -252,9 +252,9 @@ ultralytics/utils/callbacks/neptune.py,sha256=TQDHJsgAdnMtSdLeQyVTJ1zBdvuwLm-U4U
|
|
252
252
|
ultralytics/utils/callbacks/raytune.py,sha256=omVZNNuzYxsZZXrF9xpbFv7R1Wjdx1j-gv0xXuZrQas,1122
|
253
253
|
ultralytics/utils/callbacks/tensorboard.py,sha256=rnyja6LpSyixwuL0WKovgARe6RPiX8ORuknlre3VEu4,4255
|
254
254
|
ultralytics/utils/callbacks/wb.py,sha256=AZH7-bARpHhnonnN57dvoPpfK35xBnu7rINZzHeugeg,6851
|
255
|
-
ultralytics-8.3.
|
256
|
-
ultralytics-8.3.
|
257
|
-
ultralytics-8.3.
|
258
|
-
ultralytics-8.3.
|
259
|
-
ultralytics-8.3.
|
260
|
-
ultralytics-8.3.
|
255
|
+
ultralytics-8.3.101.dist-info/licenses/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
|
256
|
+
ultralytics-8.3.101.dist-info/METADATA,sha256=EVOcpjnnEPv2-BHatT4b81zUD96LzVKOgkdBsKQtAc8,37380
|
257
|
+
ultralytics-8.3.101.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
|
258
|
+
ultralytics-8.3.101.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
|
259
|
+
ultralytics-8.3.101.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
|
260
|
+
ultralytics-8.3.101.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|