ultralytics 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.
- ultralytics/__init__.py +1 -1
- ultralytics/data/augment.py +2 -2
- ultralytics/models/yolo/classify/predict.py +6 -12
- ultralytics/solutions/streamlit_inference.py +12 -1
- {ultralytics-8.3.157.dist-info → ultralytics-8.3.158.dist-info}/METADATA +1 -1
- {ultralytics-8.3.157.dist-info → ultralytics-8.3.158.dist-info}/RECORD +10 -10
- {ultralytics-8.3.157.dist-info → ultralytics-8.3.158.dist-info}/WHEEL +0 -0
- {ultralytics-8.3.157.dist-info → ultralytics-8.3.158.dist-info}/entry_points.txt +0 -0
- {ultralytics-8.3.157.dist-info → ultralytics-8.3.158.dist-info}/licenses/LICENSE +0 -0
- {ultralytics-8.3.157.dist-info → ultralytics-8.3.158.dist-info}/top_level.txt +0 -0
ultralytics/__init__.py
CHANGED
ultralytics/data/augment.py
CHANGED
@@ -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
|
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))
|
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
|
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
|
-
|
69
|
-
self.
|
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
|
-
|
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)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: ultralytics
|
3
|
-
Version: 8.3.
|
3
|
+
Version: 8.3.158
|
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=HmMKOTCia9ZDC0VYc_EPmvBTM5LM5eeI1NF_pKjLpd8,9677
|
|
7
7
|
tests/test_integrations.py,sha256=kl_AKmE_Qs1GB0_91iVwbzNxofm_hFTt0zzU6JF-pg4,6323
|
8
8
|
tests/test_python.py,sha256=nOoaPDg-0j7ZPRz9-uGFny3uocxjUM1ze5wA3BpGxKQ,27865
|
9
9
|
tests/test_solutions.py,sha256=tuf6n_fsI8KvSdJrnc-cqP2qYdiYqCWuVrx0z9dOz3Q,13213
|
10
|
-
ultralytics/__init__.py,sha256=
|
10
|
+
ultralytics/__init__.py,sha256=0b-cONYmF0_ugWTEs5ezNxpY9ZNX35E547GfOVhJ9hI,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=ds63URbbeRj5UxkCSyl62OrNw6HQy7xeit5-0wGDEKg,39699
|
@@ -105,7 +105,7 @@ ultralytics/cfg/trackers/botsort.yaml,sha256=TpRaK5kH_-QbjCQ7ekM4s_7j8I8ti3q8Hs7
|
|
105
105
|
ultralytics/cfg/trackers/bytetrack.yaml,sha256=6u-tiZlk16EqEwkNXaMrza6PAQmWj_ypgv26LGCtPDg,886
|
106
106
|
ultralytics/data/__init__.py,sha256=nAXaL1puCc7z_NjzQNlJnhbVhT9Fla2u7Dsqo7q1dAc,644
|
107
107
|
ultralytics/data/annotator.py,sha256=uAgd7K-yudxiwdNqHz0ubfFg5JsfNlae4cgxdvCMyuY,3030
|
108
|
-
ultralytics/data/augment.py,sha256=
|
108
|
+
ultralytics/data/augment.py,sha256=Zxqp6dWKALAbUYha-R_MVrcysdlBj9glm4Nsth_JLrg,129030
|
109
109
|
ultralytics/data/base.py,sha256=mRcuehK1thNuuzQGL6D1AaZkod71oHRdYTod_zdQZQg,19688
|
110
110
|
ultralytics/data/build.py,sha256=13gPxCJIZRjgcNh7zbzanCgtyK6_oZM0ho9KQhHcM6c,11153
|
111
111
|
ultralytics/data/converter.py,sha256=oKW8ODtvFOKBx9Un8n87xUUm3b5GStU4ViIBH5UDylM,27200
|
@@ -166,7 +166,7 @@ ultralytics/models/utils/ops.py,sha256=Pr77n8XW25SUEx4X3bBvXcVIbRdJPoaXJuG0KWWaw
|
|
166
166
|
ultralytics/models/yolo/__init__.py,sha256=or0j5xvcM0usMlsFTYhNAOcQUri7reD0cD9JR5b7zDk,307
|
167
167
|
ultralytics/models/yolo/model.py,sha256=C0wInQC6rFuFOGpdAen1s2e5LIFDmqevto8uPbpmB8c,18449
|
168
168
|
ultralytics/models/yolo/classify/__init__.py,sha256=9--HVaNOfI1K7rn_rRqclL8FUAnpfeBrRqEQIaQw2xM,383
|
169
|
-
ultralytics/models/yolo/classify/predict.py,sha256=
|
169
|
+
ultralytics/models/yolo/classify/predict.py,sha256=FqAC2YXe25bRwedMZhF3Lw0waoY-a60xMKELhxApP9I,4149
|
170
170
|
ultralytics/models/yolo/classify/train.py,sha256=V-hevc6X7xemnpyru84OfTRA77eNnkVSMEz16_OUvo4,10244
|
171
171
|
ultralytics/models/yolo/classify/val.py,sha256=YakPxBVZCd85Kp4wFKx8KH6JJFiU7nkFS3r9_ZSwFRM,10036
|
172
172
|
ultralytics/models/yolo/detect/__init__.py,sha256=GIRsLYR-kT4JJx7lh4ZZAFGBZj0aebokuU0A7JbjDVA,257
|
@@ -221,7 +221,7 @@ ultralytics/solutions/security_alarm.py,sha256=U6FTbg3cthKLfWeLunsFhOJvB6GGmwYDD
|
|
221
221
|
ultralytics/solutions/similarity_search.py,sha256=Tx5R_IVzQjUVLrraS0oJkoJLkx8dJCyaf_Nwbu_4yyo,9982
|
222
222
|
ultralytics/solutions/solutions.py,sha256=N5t1DgZpuFBbDvLVZ7wRkafmgu8SS1VC9VNjuupglwQ,37532
|
223
223
|
ultralytics/solutions/speed_estimation.py,sha256=chg_tBuKFw3EnFiv_obNDaUXLAo-FypxC7gsDeB_VUI,5878
|
224
|
-
ultralytics/solutions/streamlit_inference.py,sha256=
|
224
|
+
ultralytics/solutions/streamlit_inference.py,sha256=SqL-YxU3RCxCKscH2AYUTkmJknilV9jCCco6ufqsFk4,10501
|
225
225
|
ultralytics/solutions/trackzone.py,sha256=kIS94rNfL3yVPAtSbnW8F-aLMxXowQtsfKNB-jLezz8,3941
|
226
226
|
ultralytics/solutions/vision_eye.py,sha256=nlIdXhfM5EwJh4vqVhz3AEOoHXIELMo1OG8Cr1tMQRw,3008
|
227
227
|
ultralytics/solutions/templates/similarity-search.html,sha256=vdz9XCH6VHbksvSW_sSg6Z2xVp82_EanaS_rY7xjZBE,4743
|
@@ -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.
|
269
|
-
ultralytics-8.3.
|
270
|
-
ultralytics-8.3.
|
271
|
-
ultralytics-8.3.
|
272
|
-
ultralytics-8.3.
|
273
|
-
ultralytics-8.3.
|
268
|
+
ultralytics-8.3.158.dist-info/licenses/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
|
269
|
+
ultralytics-8.3.158.dist-info/METADATA,sha256=4ft6aa6XsHRAiDNP3tEnMNbqz6XEQx85WoKBViClG6M,37212
|
270
|
+
ultralytics-8.3.158.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
271
|
+
ultralytics-8.3.158.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
|
272
|
+
ultralytics-8.3.158.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
|
273
|
+
ultralytics-8.3.158.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|