dgenerate-ultralytics-headless 8.3.157__py3-none-any.whl → 8.3.158__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dgenerate-ultralytics-headless
3
- Version: 8.3.157
3
+ Version: 8.3.158
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,4 +1,4 @@
1
- dgenerate_ultralytics_headless-8.3.157.dist-info/licenses/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
1
+ dgenerate_ultralytics_headless-8.3.158.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=JjgKSs36ZaGmmtqGmAapmFSoFF1YwyV3IZsOgqt2IVM,2593
4
4
  tests/test_cli.py,sha256=Kpfxq_RlbKK1Z8xNScDUbre6GB7neZhXZAYGI1tiDS8,5660
@@ -8,7 +8,7 @@ tests/test_exports.py,sha256=HmMKOTCia9ZDC0VYc_EPmvBTM5LM5eeI1NF_pKjLpd8,9677
8
8
  tests/test_integrations.py,sha256=kl_AKmE_Qs1GB0_91iVwbzNxofm_hFTt0zzU6JF-pg4,6323
9
9
  tests/test_python.py,sha256=nOoaPDg-0j7ZPRz9-uGFny3uocxjUM1ze5wA3BpGxKQ,27865
10
10
  tests/test_solutions.py,sha256=tuf6n_fsI8KvSdJrnc-cqP2qYdiYqCWuVrx0z9dOz3Q,13213
11
- ultralytics/__init__.py,sha256=2mwBem7xtvNmrW5pBkCtYV3rgq4UvYlvOHu6FkTIDKs,730
11
+ ultralytics/__init__.py,sha256=0b-cONYmF0_ugWTEs5ezNxpY9ZNX35E547GfOVhJ9hI,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=ds63URbbeRj5UxkCSyl62OrNw6HQy7xeit5-0wGDEKg,39699
@@ -106,7 +106,7 @@ ultralytics/cfg/trackers/botsort.yaml,sha256=TpRaK5kH_-QbjCQ7ekM4s_7j8I8ti3q8Hs7
106
106
  ultralytics/cfg/trackers/bytetrack.yaml,sha256=6u-tiZlk16EqEwkNXaMrza6PAQmWj_ypgv26LGCtPDg,886
107
107
  ultralytics/data/__init__.py,sha256=nAXaL1puCc7z_NjzQNlJnhbVhT9Fla2u7Dsqo7q1dAc,644
108
108
  ultralytics/data/annotator.py,sha256=uAgd7K-yudxiwdNqHz0ubfFg5JsfNlae4cgxdvCMyuY,3030
109
- ultralytics/data/augment.py,sha256=yAUn0P7z9dQ37DwoIXF6Tz2PvTxxHMMj54311mOSWP8,129050
109
+ ultralytics/data/augment.py,sha256=Zxqp6dWKALAbUYha-R_MVrcysdlBj9glm4Nsth_JLrg,129030
110
110
  ultralytics/data/base.py,sha256=mRcuehK1thNuuzQGL6D1AaZkod71oHRdYTod_zdQZQg,19688
111
111
  ultralytics/data/build.py,sha256=13gPxCJIZRjgcNh7zbzanCgtyK6_oZM0ho9KQhHcM6c,11153
112
112
  ultralytics/data/converter.py,sha256=oKW8ODtvFOKBx9Un8n87xUUm3b5GStU4ViIBH5UDylM,27200
@@ -167,7 +167,7 @@ ultralytics/models/utils/ops.py,sha256=Pr77n8XW25SUEx4X3bBvXcVIbRdJPoaXJuG0KWWaw
167
167
  ultralytics/models/yolo/__init__.py,sha256=or0j5xvcM0usMlsFTYhNAOcQUri7reD0cD9JR5b7zDk,307
168
168
  ultralytics/models/yolo/model.py,sha256=C0wInQC6rFuFOGpdAen1s2e5LIFDmqevto8uPbpmB8c,18449
169
169
  ultralytics/models/yolo/classify/__init__.py,sha256=9--HVaNOfI1K7rn_rRqclL8FUAnpfeBrRqEQIaQw2xM,383
170
- ultralytics/models/yolo/classify/predict.py,sha256=_GiN6muuZOBrMS1KER85FE4ktcw_Onn1bZdGvpbsGCE,4618
170
+ ultralytics/models/yolo/classify/predict.py,sha256=FqAC2YXe25bRwedMZhF3Lw0waoY-a60xMKELhxApP9I,4149
171
171
  ultralytics/models/yolo/classify/train.py,sha256=V-hevc6X7xemnpyru84OfTRA77eNnkVSMEz16_OUvo4,10244
172
172
  ultralytics/models/yolo/classify/val.py,sha256=YakPxBVZCd85Kp4wFKx8KH6JJFiU7nkFS3r9_ZSwFRM,10036
173
173
  ultralytics/models/yolo/detect/__init__.py,sha256=GIRsLYR-kT4JJx7lh4ZZAFGBZj0aebokuU0A7JbjDVA,257
@@ -222,7 +222,7 @@ ultralytics/solutions/security_alarm.py,sha256=U6FTbg3cthKLfWeLunsFhOJvB6GGmwYDD
222
222
  ultralytics/solutions/similarity_search.py,sha256=Tx5R_IVzQjUVLrraS0oJkoJLkx8dJCyaf_Nwbu_4yyo,9982
223
223
  ultralytics/solutions/solutions.py,sha256=N5t1DgZpuFBbDvLVZ7wRkafmgu8SS1VC9VNjuupglwQ,37532
224
224
  ultralytics/solutions/speed_estimation.py,sha256=chg_tBuKFw3EnFiv_obNDaUXLAo-FypxC7gsDeB_VUI,5878
225
- ultralytics/solutions/streamlit_inference.py,sha256=lqHh0UDCVmWIeh3yzpvoV7j9K6Ipx7pJBkOsb0ZpZes,10034
225
+ ultralytics/solutions/streamlit_inference.py,sha256=SqL-YxU3RCxCKscH2AYUTkmJknilV9jCCco6ufqsFk4,10501
226
226
  ultralytics/solutions/trackzone.py,sha256=kIS94rNfL3yVPAtSbnW8F-aLMxXowQtsfKNB-jLezz8,3941
227
227
  ultralytics/solutions/vision_eye.py,sha256=nlIdXhfM5EwJh4vqVhz3AEOoHXIELMo1OG8Cr1tMQRw,3008
228
228
  ultralytics/solutions/templates/similarity-search.html,sha256=vdz9XCH6VHbksvSW_sSg6Z2xVp82_EanaS_rY7xjZBE,4743
@@ -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.157.dist-info/METADATA,sha256=s1nXgnIko0QrIhJPgKstAyglat-zvhJzANy3Cj7Xf1k,38308
270
- dgenerate_ultralytics_headless-8.3.157.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
271
- dgenerate_ultralytics_headless-8.3.157.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
272
- dgenerate_ultralytics_headless-8.3.157.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
273
- dgenerate_ultralytics_headless-8.3.157.dist-info/RECORD,,
269
+ dgenerate_ultralytics_headless-8.3.158.dist-info/METADATA,sha256=qQprpX0Yx5ps_qBhgiWjQN-QhqaCKM6qd56w2J9lXks,38308
270
+ dgenerate_ultralytics_headless-8.3.158.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
271
+ dgenerate_ultralytics_headless-8.3.158.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
272
+ dgenerate_ultralytics_headless-8.3.158.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
273
+ dgenerate_ultralytics_headless-8.3.158.dist-info/RECORD,,
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.157"
3
+ __version__ = "8.3.158"
4
4
 
5
5
  import os
6
6
 
@@ -2928,7 +2928,7 @@ class ToTensor:
2928
2928
  the color channels are reversed from BGR to RGB.
2929
2929
 
2930
2930
  Args:
2931
- im (numpy.ndarray): Input image as a numpy array with shape (H, W, C) in BGR order.
2931
+ im (numpy.ndarray): Input image as a numpy array with shape (H, W, C) in RGB order.
2932
2932
 
2933
2933
  Returns:
2934
2934
  (torch.Tensor): The transformed image as a PyTorch tensor in float32 or float16, normalized
@@ -2941,7 +2941,7 @@ class ToTensor:
2941
2941
  >>> print(tensor_img.shape, tensor_img.dtype)
2942
2942
  torch.Size([3, 640, 640]) torch.float16
2943
2943
  """
2944
- im = np.ascontiguousarray(im.transpose((2, 0, 1))[::-1]) # HWC to CHW -> BGR to RGB -> contiguous
2944
+ im = np.ascontiguousarray(im.transpose((2, 0, 1))) # HWC to CHW -> contiguous
2945
2945
  im = torch.from_numpy(im) # to torch
2946
2946
  im = im.half() if self.half else im.float() # uint8 to fp16/32
2947
2947
  im /= 255.0 # 0-255 to 0.0-1.0
@@ -19,7 +19,6 @@ class ClassificationPredictor(BasePredictor):
19
19
 
20
20
  Attributes:
21
21
  args (dict): Configuration arguments for the predictor.
22
- _legacy_transform_name (str): Name of the legacy transform class for backward compatibility.
23
22
 
24
23
  Methods:
25
24
  preprocess: Convert input images to model-compatible format.
@@ -50,7 +49,6 @@ class ClassificationPredictor(BasePredictor):
50
49
  """
51
50
  super().__init__(cfg, overrides, _callbacks)
52
51
  self.args.task = "classify"
53
- self._legacy_transform_name = "ultralytics.yolo.data.augment.ToTensor"
54
52
 
55
53
  def setup_source(self, source):
56
54
  """Set up source and inference mode and classify transforms."""
@@ -58,22 +56,18 @@ class ClassificationPredictor(BasePredictor):
58
56
  updated = (
59
57
  self.model.model.transforms.transforms[0].size != max(self.imgsz)
60
58
  if hasattr(self.model.model, "transforms") and hasattr(self.model.model.transforms.transforms[0], "size")
61
- else True
59
+ else False
60
+ )
61
+ self.transforms = (
62
+ classify_transforms(self.imgsz) if updated or not self.model.pt else self.model.model.transforms
62
63
  )
63
- self.transforms = self.model.model.transforms if not updated else classify_transforms(self.imgsz)
64
64
 
65
65
  def preprocess(self, img):
66
66
  """Convert input images to model-compatible tensor format with appropriate normalization."""
67
67
  if not isinstance(img, torch.Tensor):
68
- is_legacy_transform = any(
69
- self._legacy_transform_name in str(transform) for transform in self.transforms.transforms
68
+ img = torch.stack(
69
+ [self.transforms(Image.fromarray(cv2.cvtColor(im, cv2.COLOR_BGR2RGB))) for im in img], dim=0
70
70
  )
71
- if is_legacy_transform: # Handle legacy transforms
72
- img = torch.stack([self.transforms(im) for im in img], dim=0)
73
- else:
74
- img = torch.stack(
75
- [self.transforms(Image.fromarray(cv2.cvtColor(im, cv2.COLOR_BGR2RGB))) for im in img], dim=0
76
- )
77
71
  img = (img if isinstance(img, torch.Tensor) else torch.from_numpy(img)).to(self.model.device)
78
72
  return img.half() if self.model.fp16 else img.float() # Convert uint8 to fp16/32
79
73
 
@@ -4,12 +4,15 @@ import io
4
4
  from typing import Any, List
5
5
 
6
6
  import cv2
7
+ import torch
7
8
 
8
9
  from ultralytics import YOLO
9
10
  from ultralytics.utils import LOGGER
10
11
  from ultralytics.utils.checks import check_requirements
11
12
  from ultralytics.utils.downloads import GITHUB_ASSETS_STEMS
12
13
 
14
+ torch.classes.__path__ = [] # Torch module __path__._path issue: https://github.com/datalab-to/marker/issues/442
15
+
13
16
 
14
17
  class Inference:
15
18
  """
@@ -133,7 +136,15 @@ class Inference:
133
136
  def configure(self) -> None:
134
137
  """Configure the model and load selected classes for inference."""
135
138
  # Add dropdown menu for model selection
136
- available_models = [x.replace("yolo", "YOLO") for x in GITHUB_ASSETS_STEMS if x.startswith("yolo11")]
139
+ M_ORD, T_ORD = ["yolo11n", "yolo11s", "yolo11m", "yolo11l", "yolo11x"], ["", "-seg", "-pose", "-obb", "-cls"]
140
+ available_models = sorted(
141
+ [
142
+ x.replace("yolo", "YOLO")
143
+ for x in GITHUB_ASSETS_STEMS
144
+ if any(x.startswith(b) for b in M_ORD) and "grayscale" not in x
145
+ ],
146
+ key=lambda x: (M_ORD.index(x[:7].lower()), T_ORD.index(x[7:].lower() or "")),
147
+ )
137
148
  if self.model_path: # If user provided the custom model, insert model without suffix as *.pt is added later
138
149
  available_models.insert(0, self.model_path.split(".pt", 1)[0])
139
150
  selected_model = self.st.sidebar.selectbox("Model", available_models)