ultralytics 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.
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
@@ -1,6 +1,6 @@
1
1
  # Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
2
2
 
3
- __version__ = "8.3.174"
3
+ __version__ = "8.3.175"
4
4
 
5
5
  import os
6
6
 
@@ -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, engine = model.stride, model.pt, model.jit, model.engine
166
+ stride, pt, jit = model.stride, model.pt, model.jit
167
167
  imgsz = check_imgsz(self.args.imgsz, stride=stride)
168
- if engine:
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
 
@@ -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
@@ -78,6 +78,7 @@ class ObjectCropper(BaseSolution):
78
78
  device=self.CFG["device"],
79
79
  verbose=False,
80
80
  )[0]
81
+ self.clss = results.boxes.cls.tolist() # required for logging only.
81
82
 
82
83
  for box in results.boxes:
83
84
  self.crop_idx += 1
@@ -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\n"
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"
@@ -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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ultralytics
3
- Version: 8.3.174
3
+ Version: 8.3.175
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,11 +3,11 @@ tests/conftest.py,sha256=LXtQJcFNWPGuzauTGkiXgsvVC3llJKfg22WcmhRzuQc,2593
3
3
  tests/test_cli.py,sha256=EMf5gTAopOnIz8VvzaM-Qb044o7D0flnUHYQ-2ffOM4,5670
4
4
  tests/test_cuda.py,sha256=-nQsfF3lGfqLm6cIeu_BCiXqLj7HzpL7R1GzPEc6z2I,8128
5
5
  tests/test_engine.py,sha256=Jpt2KVrltrEgh2-3Ykouz-2Z_2fza0eymL5ectRXadM,4922
6
- tests/test_exports.py,sha256=hGUS29WDX9KvFS2PuX2c8NlHSmw3O5UFs0iBVoOqH5k,9690
6
+ tests/test_exports.py,sha256=3JhxE6QxyYhwHugCr8CC1FQjTpeP5G72ACJ2twbgYrU,10331
7
7
  tests/test_integrations.py,sha256=kl_AKmE_Qs1GB0_91iVwbzNxofm_hFTt0zzU6JF-pg4,6323
8
8
  tests/test_python.py,sha256=-qvdeg-hEcKU5mWSDEU24iFZ-i8FAwQRznSXpkp6WQ4,27928
9
9
  tests/test_solutions.py,sha256=tuf6n_fsI8KvSdJrnc-cqP2qYdiYqCWuVrx0z9dOz3Q,13213
10
- ultralytics/__init__.py,sha256=d3-jUXs7WCVHNjDNS2LfX2smx5Ie6jFPB_ol23iwaw4,730
10
+ ultralytics/__init__.py,sha256=0fZl-D8kxXutIutI3XOSZ7JZa0PLd1AsYr2XyHM5Zwo,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=VIpPHImhjb0XLJquGZrG_LBGZchtOtBSXR7HYTYV2GU,39602
@@ -125,7 +125,7 @@ ultralytics/engine/predictor.py,sha256=iXnUB-tvBHtVpKbB-5EKs1wSREBIerdUxWx39MaFY
125
125
  ultralytics/engine/results.py,sha256=QcHcbPVlLBiy_APwABr-T5K65HR8Bl1rRzxawjjP76E,71873
126
126
  ultralytics/engine/trainer.py,sha256=28FeqASvQRxCaK96SXDM-BfPJjqy5KNiWhf8v6GXTug,39785
127
127
  ultralytics/engine/tuner.py,sha256=sfQ8_yzgLNcGlKyz9b2vAzyggGZXiQzdZ5tKstyqjHM,12825
128
- ultralytics/engine/validator.py,sha256=qftJUomb4A-6rSThtST3TccEbc_zTmzovCBBCSpYm3k,16671
128
+ ultralytics/engine/validator.py,sha256=g0StH6WOn95zBN-hULDAR5Uug1pU2YkaeNH3zzq3SVg,16573
129
129
  ultralytics/hub/__init__.py,sha256=ulPtceI3hqud03mvqoXccBaa1e4nveYwC9cddyuBUlo,6599
130
130
  ultralytics/hub/auth.py,sha256=5uMPzZt8aO-YsnEWADzc1qBUt9c30RTIfrGo5SWTrv4,6271
131
131
  ultralytics/hub/session.py,sha256=UeUSRbdclSBPJQfpSNGeY13gb1O2Bhzh0Aj7cXum6P4,18518
@@ -164,7 +164,7 @@ ultralytics/models/utils/__init__.py,sha256=lm6MckFYCPTbqIoX7w0s_daxdjNeBeKW6DXp
164
164
  ultralytics/models/utils/loss.py,sha256=E-61TfLPc04IdeL6IlFDityDoPju-ov0ouWV_cNY4Kg,21254
165
165
  ultralytics/models/utils/ops.py,sha256=Pr77n8XW25SUEx4X3bBvXcVIbRdJPoaXJuG0KWWawRQ,15253
166
166
  ultralytics/models/yolo/__init__.py,sha256=or0j5xvcM0usMlsFTYhNAOcQUri7reD0cD9JR5b7zDk,307
167
- ultralytics/models/yolo/model.py,sha256=e66CIsSLHbEeGlkEQ1r6WwVDKAoR2nc0-UoGA94z-eM,18544
167
+ ultralytics/models/yolo/model.py,sha256=50nGkmo7q9LMOBb6x15TSG2tt36wDhy02X6lH3TFDTc,18653
168
168
  ultralytics/models/yolo/classify/__init__.py,sha256=9--HVaNOfI1K7rn_rRqclL8FUAnpfeBrRqEQIaQw2xM,383
169
169
  ultralytics/models/yolo/classify/predict.py,sha256=FqAC2YXe25bRwedMZhF3Lw0waoY-a60xMKELhxApP9I,4149
170
170
  ultralytics/models/yolo/classify/train.py,sha256=V-hevc6X7xemnpyru84OfTRA77eNnkVSMEz16_OUvo4,10244
@@ -213,13 +213,13 @@ ultralytics/solutions/heatmap.py,sha256=hBJR_Z3Lu9JcvCaEwnd-uN_WEiXK14FDRXedgaI8
213
213
  ultralytics/solutions/instance_segmentation.py,sha256=zPMBY9ixn4YmZozBD2EyowLBadu4dOvZwk-m65EwgDk,3789
214
214
  ultralytics/solutions/object_blurrer.py,sha256=96KOAEagk4UoErlUMiIDK6j1CWs2nN1dcJ5V6pl9L-8,3992
215
215
  ultralytics/solutions/object_counter.py,sha256=zD-EYIxu_y7qCFEkv6aqV60oMCZ4q6b_kL_stXKof_A,9427
216
- ultralytics/solutions/object_cropper.py,sha256=x3gN-ihtwkJntp6EMcVWnIvVTOu1iRkP5RrX-1kwJHg,3522
216
+ ultralytics/solutions/object_cropper.py,sha256=lRKtWINAe9GDxau1Xejbjydsqg2hrpGZXPtZwTgvyKQ,3603
217
217
  ultralytics/solutions/parking_management.py,sha256=IfPUn15aelxz6YZNo9WYkVEl5IOVSw8VD0OrpKtExPE,13613
218
218
  ultralytics/solutions/queue_management.py,sha256=gTkILx4dVcsKRZXSCXtelkEjCRiDS5iznb3FnddC61c,4390
219
219
  ultralytics/solutions/region_counter.py,sha256=Ncd6_qIXmSQXUxCwQkgYc2-nI7KifQYhxPi3pOelZak,5950
220
220
  ultralytics/solutions/security_alarm.py,sha256=czEaMcy04q-iBkKqT_14d8H20CFB6zcKH_31nBGQnyw,6345
221
221
  ultralytics/solutions/similarity_search.py,sha256=c18TK0qW5AvanXU28nAX4o_WtB1SDAJStUtyLDuEBHQ,9505
222
- ultralytics/solutions/solutions.py,sha256=KuQ5M9oocygExRjKAIN0HjHNFYebENUSyw-i7ykDsO8,35903
222
+ ultralytics/solutions/solutions.py,sha256=9dTkAx1W-0oaZGwKyysXTxKCYNBEV4kThRjqsQea2VQ,36059
223
223
  ultralytics/solutions/speed_estimation.py,sha256=chg_tBuKFw3EnFiv_obNDaUXLAo-FypxC7gsDeB_VUI,5878
224
224
  ultralytics/solutions/streamlit_inference.py,sha256=JAVOCc_eNtszUHKU-rZ-iUQtA6m6d3QqCgtPfwrlcsE,12773
225
225
  ultralytics/solutions/trackzone.py,sha256=kIS94rNfL3yVPAtSbnW8F-aLMxXowQtsfKNB-jLezz8,3941
@@ -234,7 +234,7 @@ ultralytics/trackers/utils/__init__.py,sha256=lm6MckFYCPTbqIoX7w0s_daxdjNeBeKW6D
234
234
  ultralytics/trackers/utils/gmc.py,sha256=9IvCf5MhBYY9ppVHykN02_oBWHmE98R8EaYFKaykdV0,14032
235
235
  ultralytics/trackers/utils/kalman_filter.py,sha256=PPmM0lwBMdT_hGojvfLoUsBUFMBBMNRAxKbMcQa3wJ0,21619
236
236
  ultralytics/trackers/utils/matching.py,sha256=uSYtywqi1lE_uNN1FwuBFPyISfDQXHMu8K5KH69nrRI,7160
237
- ultralytics/utils/__init__.py,sha256=9kEOx0Mjt_gg0QRAm-JChUvq9EcS_nPKAAThMFedM3s,59436
237
+ ultralytics/utils/__init__.py,sha256=KyczXn2SLR0g8xkCVpfNaPkhDCQ4A8vLt99teYu7mss,59437
238
238
  ultralytics/utils/autobatch.py,sha256=33m8YgggLIhltDqMXZ5OE-FGs2QiHrl2-LfgY1mI4cw,5119
239
239
  ultralytics/utils/autodevice.py,sha256=AvgXFt8c1Cg4icKh0Hbhhz8UmVQ2Wjyfdfkeb2C8zck,8855
240
240
  ultralytics/utils/benchmarks.py,sha256=btsi_B0mfLPfhE8GrsBpi79vl7SRam0YYngNFAsY8Ak,31035
@@ -265,9 +265,9 @@ ultralytics/utils/callbacks/neptune.py,sha256=j8pecmlcsM8FGzLKWoBw5xUsi5t8E5HuxY
265
265
  ultralytics/utils/callbacks/raytune.py,sha256=S6Bq16oQDQ8BQgnZzA0zJHGN_BBr8iAM_WtGoLiEcwg,1283
266
266
  ultralytics/utils/callbacks/tensorboard.py,sha256=MDPBW7aDes-66OE6YqKXXvqA_EocjzEMHWGM-8z9vUQ,5281
267
267
  ultralytics/utils/callbacks/wb.py,sha256=Tm_-aRr2CN32MJkY9tylpMBJkb007-MSRNSQ7rDJ5QU,7521
268
- ultralytics-8.3.174.dist-info/licenses/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
269
- ultralytics-8.3.174.dist-info/METADATA,sha256=Lr6rjMsxyVoOx6jNQd_msh-3RmPgiTtpeUZAI5oZz9Q,37620
270
- ultralytics-8.3.174.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
271
- ultralytics-8.3.174.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
272
- ultralytics-8.3.174.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
273
- ultralytics-8.3.174.dist-info/RECORD,,
268
+ ultralytics-8.3.175.dist-info/licenses/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
269
+ ultralytics-8.3.175.dist-info/METADATA,sha256=tL74HgCbX4avVaCD1-67KvCWx4MqCsAsFR4vgFct-js,37620
270
+ ultralytics-8.3.175.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
271
+ ultralytics-8.3.175.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
272
+ ultralytics-8.3.175.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
273
+ ultralytics-8.3.175.dist-info/RECORD,,