dgenerate-ultralytics-headless 8.3.174__py3-none-any.whl → 8.3.175__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.174.dist-info → dgenerate_ultralytics_headless-8.3.175.dist-info}/METADATA +1 -1
- {dgenerate_ultralytics_headless-8.3.174.dist-info → dgenerate_ultralytics_headless-8.3.175.dist-info}/RECORD +13 -13
- tests/test_exports.py +14 -0
- ultralytics/__init__.py +1 -1
- ultralytics/engine/validator.py +2 -4
- ultralytics/models/yolo/model.py +1 -0
- ultralytics/solutions/object_cropper.py +1 -0
- ultralytics/solutions/solutions.py +4 -2
- ultralytics/utils/__init__.py +1 -1
- {dgenerate_ultralytics_headless-8.3.174.dist-info → dgenerate_ultralytics_headless-8.3.175.dist-info}/WHEEL +0 -0
- {dgenerate_ultralytics_headless-8.3.174.dist-info → dgenerate_ultralytics_headless-8.3.175.dist-info}/entry_points.txt +0 -0
- {dgenerate_ultralytics_headless-8.3.174.dist-info → dgenerate_ultralytics_headless-8.3.175.dist-info}/licenses/LICENSE +0 -0
- {dgenerate_ultralytics_headless-8.3.174.dist-info → dgenerate_ultralytics_headless-8.3.175.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: dgenerate-ultralytics-headless
|
3
|
-
Version: 8.3.
|
3
|
+
Version: 8.3.175
|
4
4
|
Summary: Automatically built Ultralytics package with python-opencv-headless dependency instead of python-opencv
|
5
5
|
Author-email: Glenn Jocher <glenn.jocher@ultralytics.com>, Jing Qiu <jing.qiu@ultralytics.com>
|
6
6
|
Maintainer-email: Ultralytics <hello@ultralytics.com>
|
@@ -1,14 +1,14 @@
|
|
1
|
-
dgenerate_ultralytics_headless-8.3.
|
1
|
+
dgenerate_ultralytics_headless-8.3.175.dist-info/licenses/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
|
2
2
|
tests/__init__.py,sha256=b4KP5_q-2IO8Br8YHOSLYnn7IwZS81l_vfEF2YPa2lM,894
|
3
3
|
tests/conftest.py,sha256=LXtQJcFNWPGuzauTGkiXgsvVC3llJKfg22WcmhRzuQc,2593
|
4
4
|
tests/test_cli.py,sha256=EMf5gTAopOnIz8VvzaM-Qb044o7D0flnUHYQ-2ffOM4,5670
|
5
5
|
tests/test_cuda.py,sha256=-nQsfF3lGfqLm6cIeu_BCiXqLj7HzpL7R1GzPEc6z2I,8128
|
6
6
|
tests/test_engine.py,sha256=Jpt2KVrltrEgh2-3Ykouz-2Z_2fza0eymL5ectRXadM,4922
|
7
|
-
tests/test_exports.py,sha256=
|
7
|
+
tests/test_exports.py,sha256=3JhxE6QxyYhwHugCr8CC1FQjTpeP5G72ACJ2twbgYrU,10331
|
8
8
|
tests/test_integrations.py,sha256=kl_AKmE_Qs1GB0_91iVwbzNxofm_hFTt0zzU6JF-pg4,6323
|
9
9
|
tests/test_python.py,sha256=-qvdeg-hEcKU5mWSDEU24iFZ-i8FAwQRznSXpkp6WQ4,27928
|
10
10
|
tests/test_solutions.py,sha256=tuf6n_fsI8KvSdJrnc-cqP2qYdiYqCWuVrx0z9dOz3Q,13213
|
11
|
-
ultralytics/__init__.py,sha256=
|
11
|
+
ultralytics/__init__.py,sha256=0fZl-D8kxXutIutI3XOSZ7JZa0PLd1AsYr2XyHM5Zwo,730
|
12
12
|
ultralytics/assets/bus.jpg,sha256=wCAZxJecGR63Od3ZRERe9Aja1Weayrb9Ug751DS_vGM,137419
|
13
13
|
ultralytics/assets/zidane.jpg,sha256=Ftc4aeMmen1O0A3o6GCDO9FlfBslLpTAw0gnetx7bts,50427
|
14
14
|
ultralytics/cfg/__init__.py,sha256=VIpPHImhjb0XLJquGZrG_LBGZchtOtBSXR7HYTYV2GU,39602
|
@@ -126,7 +126,7 @@ ultralytics/engine/predictor.py,sha256=iXnUB-tvBHtVpKbB-5EKs1wSREBIerdUxWx39MaFY
|
|
126
126
|
ultralytics/engine/results.py,sha256=QcHcbPVlLBiy_APwABr-T5K65HR8Bl1rRzxawjjP76E,71873
|
127
127
|
ultralytics/engine/trainer.py,sha256=28FeqASvQRxCaK96SXDM-BfPJjqy5KNiWhf8v6GXTug,39785
|
128
128
|
ultralytics/engine/tuner.py,sha256=sfQ8_yzgLNcGlKyz9b2vAzyggGZXiQzdZ5tKstyqjHM,12825
|
129
|
-
ultralytics/engine/validator.py,sha256=
|
129
|
+
ultralytics/engine/validator.py,sha256=g0StH6WOn95zBN-hULDAR5Uug1pU2YkaeNH3zzq3SVg,16573
|
130
130
|
ultralytics/hub/__init__.py,sha256=ulPtceI3hqud03mvqoXccBaa1e4nveYwC9cddyuBUlo,6599
|
131
131
|
ultralytics/hub/auth.py,sha256=5uMPzZt8aO-YsnEWADzc1qBUt9c30RTIfrGo5SWTrv4,6271
|
132
132
|
ultralytics/hub/session.py,sha256=UeUSRbdclSBPJQfpSNGeY13gb1O2Bhzh0Aj7cXum6P4,18518
|
@@ -165,7 +165,7 @@ ultralytics/models/utils/__init__.py,sha256=lm6MckFYCPTbqIoX7w0s_daxdjNeBeKW6DXp
|
|
165
165
|
ultralytics/models/utils/loss.py,sha256=E-61TfLPc04IdeL6IlFDityDoPju-ov0ouWV_cNY4Kg,21254
|
166
166
|
ultralytics/models/utils/ops.py,sha256=Pr77n8XW25SUEx4X3bBvXcVIbRdJPoaXJuG0KWWawRQ,15253
|
167
167
|
ultralytics/models/yolo/__init__.py,sha256=or0j5xvcM0usMlsFTYhNAOcQUri7reD0cD9JR5b7zDk,307
|
168
|
-
ultralytics/models/yolo/model.py,sha256=
|
168
|
+
ultralytics/models/yolo/model.py,sha256=50nGkmo7q9LMOBb6x15TSG2tt36wDhy02X6lH3TFDTc,18653
|
169
169
|
ultralytics/models/yolo/classify/__init__.py,sha256=9--HVaNOfI1K7rn_rRqclL8FUAnpfeBrRqEQIaQw2xM,383
|
170
170
|
ultralytics/models/yolo/classify/predict.py,sha256=FqAC2YXe25bRwedMZhF3Lw0waoY-a60xMKELhxApP9I,4149
|
171
171
|
ultralytics/models/yolo/classify/train.py,sha256=V-hevc6X7xemnpyru84OfTRA77eNnkVSMEz16_OUvo4,10244
|
@@ -214,13 +214,13 @@ ultralytics/solutions/heatmap.py,sha256=hBJR_Z3Lu9JcvCaEwnd-uN_WEiXK14FDRXedgaI8
|
|
214
214
|
ultralytics/solutions/instance_segmentation.py,sha256=zPMBY9ixn4YmZozBD2EyowLBadu4dOvZwk-m65EwgDk,3789
|
215
215
|
ultralytics/solutions/object_blurrer.py,sha256=96KOAEagk4UoErlUMiIDK6j1CWs2nN1dcJ5V6pl9L-8,3992
|
216
216
|
ultralytics/solutions/object_counter.py,sha256=zD-EYIxu_y7qCFEkv6aqV60oMCZ4q6b_kL_stXKof_A,9427
|
217
|
-
ultralytics/solutions/object_cropper.py,sha256=
|
217
|
+
ultralytics/solutions/object_cropper.py,sha256=lRKtWINAe9GDxau1Xejbjydsqg2hrpGZXPtZwTgvyKQ,3603
|
218
218
|
ultralytics/solutions/parking_management.py,sha256=IfPUn15aelxz6YZNo9WYkVEl5IOVSw8VD0OrpKtExPE,13613
|
219
219
|
ultralytics/solutions/queue_management.py,sha256=gTkILx4dVcsKRZXSCXtelkEjCRiDS5iznb3FnddC61c,4390
|
220
220
|
ultralytics/solutions/region_counter.py,sha256=Ncd6_qIXmSQXUxCwQkgYc2-nI7KifQYhxPi3pOelZak,5950
|
221
221
|
ultralytics/solutions/security_alarm.py,sha256=czEaMcy04q-iBkKqT_14d8H20CFB6zcKH_31nBGQnyw,6345
|
222
222
|
ultralytics/solutions/similarity_search.py,sha256=c18TK0qW5AvanXU28nAX4o_WtB1SDAJStUtyLDuEBHQ,9505
|
223
|
-
ultralytics/solutions/solutions.py,sha256=
|
223
|
+
ultralytics/solutions/solutions.py,sha256=9dTkAx1W-0oaZGwKyysXTxKCYNBEV4kThRjqsQea2VQ,36059
|
224
224
|
ultralytics/solutions/speed_estimation.py,sha256=chg_tBuKFw3EnFiv_obNDaUXLAo-FypxC7gsDeB_VUI,5878
|
225
225
|
ultralytics/solutions/streamlit_inference.py,sha256=JAVOCc_eNtszUHKU-rZ-iUQtA6m6d3QqCgtPfwrlcsE,12773
|
226
226
|
ultralytics/solutions/trackzone.py,sha256=kIS94rNfL3yVPAtSbnW8F-aLMxXowQtsfKNB-jLezz8,3941
|
@@ -235,7 +235,7 @@ ultralytics/trackers/utils/__init__.py,sha256=lm6MckFYCPTbqIoX7w0s_daxdjNeBeKW6D
|
|
235
235
|
ultralytics/trackers/utils/gmc.py,sha256=9IvCf5MhBYY9ppVHykN02_oBWHmE98R8EaYFKaykdV0,14032
|
236
236
|
ultralytics/trackers/utils/kalman_filter.py,sha256=PPmM0lwBMdT_hGojvfLoUsBUFMBBMNRAxKbMcQa3wJ0,21619
|
237
237
|
ultralytics/trackers/utils/matching.py,sha256=uSYtywqi1lE_uNN1FwuBFPyISfDQXHMu8K5KH69nrRI,7160
|
238
|
-
ultralytics/utils/__init__.py,sha256=
|
238
|
+
ultralytics/utils/__init__.py,sha256=KyczXn2SLR0g8xkCVpfNaPkhDCQ4A8vLt99teYu7mss,59437
|
239
239
|
ultralytics/utils/autobatch.py,sha256=33m8YgggLIhltDqMXZ5OE-FGs2QiHrl2-LfgY1mI4cw,5119
|
240
240
|
ultralytics/utils/autodevice.py,sha256=AvgXFt8c1Cg4icKh0Hbhhz8UmVQ2Wjyfdfkeb2C8zck,8855
|
241
241
|
ultralytics/utils/benchmarks.py,sha256=btsi_B0mfLPfhE8GrsBpi79vl7SRam0YYngNFAsY8Ak,31035
|
@@ -266,8 +266,8 @@ ultralytics/utils/callbacks/neptune.py,sha256=j8pecmlcsM8FGzLKWoBw5xUsi5t8E5HuxY
|
|
266
266
|
ultralytics/utils/callbacks/raytune.py,sha256=S6Bq16oQDQ8BQgnZzA0zJHGN_BBr8iAM_WtGoLiEcwg,1283
|
267
267
|
ultralytics/utils/callbacks/tensorboard.py,sha256=MDPBW7aDes-66OE6YqKXXvqA_EocjzEMHWGM-8z9vUQ,5281
|
268
268
|
ultralytics/utils/callbacks/wb.py,sha256=Tm_-aRr2CN32MJkY9tylpMBJkb007-MSRNSQ7rDJ5QU,7521
|
269
|
-
dgenerate_ultralytics_headless-8.3.
|
270
|
-
dgenerate_ultralytics_headless-8.3.
|
271
|
-
dgenerate_ultralytics_headless-8.3.
|
272
|
-
dgenerate_ultralytics_headless-8.3.
|
273
|
-
dgenerate_ultralytics_headless-8.3.
|
269
|
+
dgenerate_ultralytics_headless-8.3.175.dist-info/METADATA,sha256=_XCOeqAU-M0SVohm5hu97rfrYb7bC01C8WyrryxdK6Q,38716
|
270
|
+
dgenerate_ultralytics_headless-8.3.175.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
271
|
+
dgenerate_ultralytics_headless-8.3.175.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
|
272
|
+
dgenerate_ultralytics_headless-8.3.175.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
|
273
|
+
dgenerate_ultralytics_headless-8.3.175.dist-info/RECORD,,
|
tests/test_exports.py
CHANGED
@@ -222,6 +222,20 @@ def test_export_ncnn():
|
|
222
222
|
YOLO(file)(SOURCE, imgsz=32) # exported model inference
|
223
223
|
|
224
224
|
|
225
|
+
@pytest.mark.slow
|
226
|
+
@pytest.mark.parametrize(
|
227
|
+
"task, half, batch",
|
228
|
+
[ # generate all combinations except for exclusion cases
|
229
|
+
(task, half, batch) for task, half, batch in product(TASKS, [True, False], [1])
|
230
|
+
],
|
231
|
+
)
|
232
|
+
def test_export_ncnn_matrix(task, half, batch):
|
233
|
+
"""Test YOLO export to NCNN format considering various export configurations."""
|
234
|
+
file = YOLO(TASK2MODEL[task]).export(format="ncnn", imgsz=32, half=half, batch=batch)
|
235
|
+
YOLO(file)([SOURCE] * batch, imgsz=32) # exported model inference
|
236
|
+
shutil.rmtree(file, ignore_errors=True) # retry in case of potential lingering multi-threaded file usage errors
|
237
|
+
|
238
|
+
|
225
239
|
@pytest.mark.skipif(True, reason="Test disabled as keras and tensorflow version conflicts with TFlite export.")
|
226
240
|
@pytest.mark.skipif(not LINUX or MACOS, reason="Skipping test on Windows and Macos")
|
227
241
|
def test_export_imx():
|
ultralytics/__init__.py
CHANGED
ultralytics/engine/validator.py
CHANGED
@@ -163,11 +163,9 @@ class BaseValidator:
|
|
163
163
|
)
|
164
164
|
self.device = model.device # update device
|
165
165
|
self.args.half = model.fp16 # update half
|
166
|
-
stride, pt, jit
|
166
|
+
stride, pt, jit = model.stride, model.pt, model.jit
|
167
167
|
imgsz = check_imgsz(self.args.imgsz, stride=stride)
|
168
|
-
if
|
169
|
-
self.args.batch = model.batch_size
|
170
|
-
elif not (pt or jit or getattr(model, "dynamic", False)):
|
168
|
+
if not (pt or jit or getattr(model, "dynamic", False)):
|
171
169
|
self.args.batch = model.metadata.get("batch", 1) # export.py models default to batch-size 1
|
172
170
|
LOGGER.info(f"Setting batch={self.args.batch} input of shape ({self.args.batch}, 3, {imgsz}, {imgsz})")
|
173
171
|
|
ultralytics/models/yolo/model.py
CHANGED
@@ -324,6 +324,7 @@ class YOLOE(Model):
|
|
324
324
|
embeddings (torch.Tensor): Embeddings corresponding to the classes.
|
325
325
|
"""
|
326
326
|
assert isinstance(self.model, YOLOEModel)
|
327
|
+
assert not self.is_fused(), "Model was fused during inference. set_classes() can no longer be used."
|
327
328
|
self.model.set_classes(classes, embeddings)
|
328
329
|
# Verify no background class is present
|
329
330
|
assert " " not in classes
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
|
2
2
|
|
3
3
|
import math
|
4
|
-
from collections import defaultdict
|
4
|
+
from collections import Counter, defaultdict
|
5
5
|
from functools import lru_cache
|
6
6
|
from typing import Any, Dict, List, Optional, Tuple
|
7
7
|
|
@@ -250,8 +250,10 @@ class BaseSolution:
|
|
250
250
|
result.speed = {track_or_predict: track_or_predict_speed, "solution": solution_speed}
|
251
251
|
if self.CFG["verbose"]:
|
252
252
|
self.frame_no += 1
|
253
|
+
counts = Counter(self.clss) # Only for logging.
|
253
254
|
LOGGER.info(
|
254
|
-
f"{self.frame_no}: {result.plot_im.shape[0]}x{result.plot_im.shape[1]} {solution_speed:.1f}ms
|
255
|
+
f"{self.frame_no}: {result.plot_im.shape[0]}x{result.plot_im.shape[1]} {solution_speed:.1f}ms,"
|
256
|
+
f" {', '.join([f'{v} {self.names[k]}' for k, v in counts.items()])}\n"
|
255
257
|
f"Speed: {track_or_predict_speed:.1f}ms {track_or_predict}, "
|
256
258
|
f"{solution_speed:.1f}ms solution per image at shape "
|
257
259
|
f"(1, {getattr(self.model, 'ch', 3)}, {result.plot_im.shape[0]}, {result.plot_im.shape[1]})\n"
|
ultralytics/utils/__init__.py
CHANGED
@@ -1036,7 +1036,7 @@ def get_user_config_dir(sub_dir="Ultralytics"):
|
|
1036
1036
|
# GCP and AWS lambda fix, only /tmp is writeable
|
1037
1037
|
if not is_dir_writeable(path.parent):
|
1038
1038
|
LOGGER.warning(
|
1039
|
-
f"user config directory '{path}' is not writeable, defaulting to '/tmp' or CWD."
|
1039
|
+
f"user config directory '{path}' is not writeable, defaulting to '/tmp' or CWD. "
|
1040
1040
|
"Alternatively you can define a YOLO_CONFIG_DIR environment variable for this path."
|
1041
1041
|
)
|
1042
1042
|
path = Path("/tmp") / sub_dir if is_dir_writeable("/tmp") else Path().cwd() / sub_dir
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|