ultralytics 8.3.39__py3-none-any.whl → 8.3.43__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/cfg/__init__.py +10 -7
- ultralytics/nn/autobackend.py +1 -2
- ultralytics/solutions/__init__.py +2 -0
- ultralytics/solutions/ai_gym.py +1 -1
- ultralytics/solutions/heatmap.py +2 -6
- ultralytics/solutions/queue_management.py +7 -4
- ultralytics/solutions/solutions.py +5 -1
- ultralytics/solutions/trackzone.py +68 -0
- ultralytics/utils/ops.py +1 -1
- {ultralytics-8.3.39.dist-info → ultralytics-8.3.43.dist-info}/METADATA +2 -2
- {ultralytics-8.3.39.dist-info → ultralytics-8.3.43.dist-info}/RECORD +16 -15
- {ultralytics-8.3.39.dist-info → ultralytics-8.3.43.dist-info}/LICENSE +0 -0
- {ultralytics-8.3.39.dist-info → ultralytics-8.3.43.dist-info}/WHEEL +0 -0
- {ultralytics-8.3.39.dist-info → ultralytics-8.3.43.dist-info}/entry_points.txt +0 -0
- {ultralytics-8.3.39.dist-info → ultralytics-8.3.43.dist-info}/top_level.txt +0 -0
ultralytics/__init__.py
CHANGED
ultralytics/cfg/__init__.py
CHANGED
@@ -41,6 +41,7 @@ SOLUTION_MAP = {
|
|
41
41
|
"speed": ("SpeedEstimator", "estimate_speed"),
|
42
42
|
"workout": ("AIGym", "monitor"),
|
43
43
|
"analytics": ("Analytics", "process_data"),
|
44
|
+
"trackzone": ("TrackZone", "trackzone"),
|
44
45
|
"help": None,
|
45
46
|
}
|
46
47
|
|
@@ -74,13 +75,12 @@ ARGV = sys.argv or ["", ""] # sometimes sys.argv = []
|
|
74
75
|
SOLUTIONS_HELP_MSG = f"""
|
75
76
|
Arguments received: {str(['yolo'] + ARGV[1:])}. Ultralytics 'yolo solutions' usage overview:
|
76
77
|
|
77
|
-
yolo
|
78
|
-
|
79
|
-
Where SOLUTIONS (required) is a keyword
|
80
|
-
SOLUTION (optional) is one of {list(SOLUTION_MAP.keys())}
|
81
|
-
ARGS (optional) are any number of custom 'arg=value' pairs like 'show_in=True' that override defaults.
|
82
|
-
See all ARGS at https://docs.ultralytics.com/usage/cfg or with 'yolo cfg'
|
78
|
+
yolo solutions SOLUTION ARGS
|
83
79
|
|
80
|
+
Where SOLUTION (optional) is one of {list(SOLUTION_MAP.keys())[:-1]}
|
81
|
+
ARGS (optional) are any number of custom 'arg=value' pairs like 'show_in=True' that override defaults
|
82
|
+
at https://docs.ultralytics.com/usage/cfg
|
83
|
+
|
84
84
|
1. Call object counting solution
|
85
85
|
yolo solutions count source="path/to/video/file.mp4" region=[(20, 400), (1080, 400), (1080, 360), (20, 360)]
|
86
86
|
|
@@ -95,6 +95,9 @@ SOLUTIONS_HELP_MSG = f"""
|
|
95
95
|
|
96
96
|
5. Generate analytical graphs
|
97
97
|
yolo solutions analytics analytics_type="pie"
|
98
|
+
|
99
|
+
6. Track objects within specific zones
|
100
|
+
yolo solutions trackzone source="path/to/video/file.mp4" region=[(150, 150), (1130, 150), (1130, 570), (150, 570)]
|
98
101
|
"""
|
99
102
|
CLI_HELP_MSG = f"""
|
100
103
|
Arguments received: {str(['yolo'] + ARGV[1:])}. Ultralytics 'yolo' commands use the following syntax:
|
@@ -122,7 +125,7 @@ CLI_HELP_MSG = f"""
|
|
122
125
|
yolo streamlit-predict
|
123
126
|
|
124
127
|
6. Ultralytics solutions usage
|
125
|
-
yolo solutions count or in {list(SOLUTION_MAP.keys())} source="path/to/video/file.mp4"
|
128
|
+
yolo solutions count or in {list(SOLUTION_MAP.keys())[1:-1]} source="path/to/video/file.mp4"
|
126
129
|
|
127
130
|
7. Run special commands:
|
128
131
|
yolo help
|
ultralytics/nn/autobackend.py
CHANGED
@@ -700,8 +700,7 @@ class AutoBackend(nn.Module):
|
|
700
700
|
# print(type(x), len(x)) if isinstance(x, (list, tuple)) else print(type(x), x.shape) # debug shapes
|
701
701
|
if isinstance(y, (list, tuple)):
|
702
702
|
if len(self.names) == 999 and (self.task == "segment" or len(y) == 2): # segments and names not defined
|
703
|
-
|
704
|
-
nc = y[ib].shape[1] - y[ip].shape[3] - 4 # y = (1, 160, 160, 32), (1, 116, 8400)
|
703
|
+
nc = y[0].shape[1] - y[1].shape[1] - 4 # y = (1, 32, 160, 160), (1, 116, 8400)
|
705
704
|
self.names = {i: f"class{i}" for i in range(nc)}
|
706
705
|
return self.from_numpy(y[0]) if len(y) == 1 else [self.from_numpy(x) for x in y]
|
707
706
|
else:
|
@@ -10,6 +10,7 @@ from .queue_management import QueueManager
|
|
10
10
|
from .region_counter import RegionCounter
|
11
11
|
from .speed_estimation import SpeedEstimator
|
12
12
|
from .streamlit_inference import inference
|
13
|
+
from .trackzone import TrackZone
|
13
14
|
|
14
15
|
__all__ = (
|
15
16
|
"AIGym",
|
@@ -23,4 +24,5 @@ __all__ = (
|
|
23
24
|
"Analytics",
|
24
25
|
"inference",
|
25
26
|
"RegionCounter",
|
27
|
+
"TrackZone",
|
26
28
|
)
|
ultralytics/solutions/ai_gym.py
CHANGED
@@ -71,7 +71,7 @@ class AIGym(BaseSolution):
|
|
71
71
|
>>> processed_image = gym.monitor(image)
|
72
72
|
"""
|
73
73
|
# Extract tracks
|
74
|
-
tracks = self.model.track(source=im0, persist=True, classes=self.CFG["classes"])[0]
|
74
|
+
tracks = self.model.track(source=im0, persist=True, classes=self.CFG["classes"], **self.track_add_args)[0]
|
75
75
|
|
76
76
|
if tracks.boxes.id is not None:
|
77
77
|
# Extract and check keypoints
|
ultralytics/solutions/heatmap.py
CHANGED
@@ -27,12 +27,8 @@ class Heatmap(ObjectCounter):
|
|
27
27
|
Examples:
|
28
28
|
>>> from ultralytics.solutions import Heatmap
|
29
29
|
>>> heatmap = Heatmap(model="yolov8n.pt", colormap=cv2.COLORMAP_JET)
|
30
|
-
>>>
|
31
|
-
>>>
|
32
|
-
... print(result.speed) # Print inference speed
|
33
|
-
... cv2.imshow("Heatmap", result.plot())
|
34
|
-
... if cv2.waitKey(1) & 0xFF == ord("q"):
|
35
|
-
... break
|
30
|
+
>>> frame = cv2.imread("frame.jpg")
|
31
|
+
>>> processed_frame = heatmap.generate_heatmap(frame)
|
36
32
|
"""
|
37
33
|
|
38
34
|
def __init__(self, **kwargs):
|
@@ -27,10 +27,13 @@ class QueueManager(BaseSolution):
|
|
27
27
|
display_output: Displays the processed output.
|
28
28
|
|
29
29
|
Examples:
|
30
|
-
>>>
|
31
|
-
>>>
|
32
|
-
|
33
|
-
|
30
|
+
>>> cap = cv2.VideoCapture("Path/to/video/file.mp4")
|
31
|
+
>>> queue_manager = QueueManager(region=[100, 100, 200, 200, 300, 300])
|
32
|
+
>>> while cap.isOpened():
|
33
|
+
>>> success, im0 = cap.read()
|
34
|
+
>>> if not success:
|
35
|
+
>>> break
|
36
|
+
>>> out = queue.process_queue(im0)
|
34
37
|
"""
|
35
38
|
|
36
39
|
def __init__(self, **kwargs):
|
@@ -74,6 +74,10 @@ class BaseSolution:
|
|
74
74
|
self.model = YOLO(self.CFG["model"])
|
75
75
|
self.names = self.model.names
|
76
76
|
|
77
|
+
self.track_add_args = { # Tracker additional arguments for advance configuration
|
78
|
+
k: self.CFG[k] for k in ["verbose", "iou", "conf", "device", "max_det", "half", "tracker"]
|
79
|
+
}
|
80
|
+
|
77
81
|
if IS_CLI and self.CFG["source"] is None:
|
78
82
|
d_s = "solutions_ci_demo.mp4" if "-pose" not in self.CFG["model"] else "solution_ci_pose_demo.mp4"
|
79
83
|
LOGGER.warning(f"⚠️ WARNING: source not provided. using default source {ASSETS_URL}/{d_s}")
|
@@ -98,7 +102,7 @@ class BaseSolution:
|
|
98
102
|
>>> frame = cv2.imread("path/to/image.jpg")
|
99
103
|
>>> solution.extract_tracks(frame)
|
100
104
|
"""
|
101
|
-
self.tracks = self.model.track(source=im0, persist=True, classes=self.CFG["classes"])
|
105
|
+
self.tracks = self.model.track(source=im0, persist=True, classes=self.CFG["classes"], **self.track_add_args)
|
102
106
|
|
103
107
|
# Extract tracks for OBB or object detection
|
104
108
|
self.track_data = self.tracks[0].obb or self.tracks[0].boxes
|
@@ -0,0 +1,68 @@
|
|
1
|
+
# Ultralytics YOLO 🚀, AGPL-3.0 license
|
2
|
+
|
3
|
+
import cv2
|
4
|
+
import numpy as np
|
5
|
+
|
6
|
+
from ultralytics.solutions.solutions import BaseSolution
|
7
|
+
from ultralytics.utils.plotting import Annotator, colors
|
8
|
+
|
9
|
+
|
10
|
+
class TrackZone(BaseSolution):
|
11
|
+
"""
|
12
|
+
A class to manage region-based object tracking in a video stream.
|
13
|
+
|
14
|
+
This class extends the BaseSolution class and provides functionality for tracking objects within a specific region
|
15
|
+
defined by a polygonal area. Objects outside the region are excluded from tracking. It supports dynamic initialization
|
16
|
+
of the region, allowing either a default region or a user-specified polygon.
|
17
|
+
|
18
|
+
Attributes:
|
19
|
+
region (ndarray): The polygonal region for tracking, represented as a convex hull.
|
20
|
+
|
21
|
+
Methods:
|
22
|
+
trackzone: Processes each frame of the video, applying region-based tracking.
|
23
|
+
|
24
|
+
Examples:
|
25
|
+
>>> tracker = TrackZone()
|
26
|
+
>>> frame = cv2.imread("frame.jpg")
|
27
|
+
>>> processed_frame = tracker.trackzone(frame)
|
28
|
+
>>> cv2.imshow("Tracked Frame", processed_frame)
|
29
|
+
"""
|
30
|
+
|
31
|
+
def __init__(self, **kwargs):
|
32
|
+
"""Initializes the TrackZone class for tracking objects within a defined region in video streams."""
|
33
|
+
super().__init__(**kwargs)
|
34
|
+
default_region = [(150, 150), (1130, 150), (1130, 570), (150, 570)]
|
35
|
+
self.region = cv2.convexHull(np.array(self.region or default_region, dtype=np.int32))
|
36
|
+
|
37
|
+
def trackzone(self, im0):
|
38
|
+
"""
|
39
|
+
Processes the input frame to track objects within a defined region.
|
40
|
+
|
41
|
+
This method initializes the annotator, creates a mask for the specified region, extracts tracks
|
42
|
+
only from the masked area, and updates tracking information. Objects outside the region are ignored.
|
43
|
+
|
44
|
+
Args:
|
45
|
+
im0 (numpy.ndarray): The input image or frame to be processed.
|
46
|
+
|
47
|
+
Returns:
|
48
|
+
(numpy.ndarray): The processed image with tracking id and bounding boxes annotations.
|
49
|
+
|
50
|
+
Examples:
|
51
|
+
>>> tracker = TrackZone()
|
52
|
+
>>> frame = cv2.imread("path/to/image.jpg")
|
53
|
+
>>> tracker.trackzone(frame)
|
54
|
+
"""
|
55
|
+
self.annotator = Annotator(im0, line_width=self.line_width) # Initialize annotator
|
56
|
+
# Create a mask for the region and extract tracks from the masked image
|
57
|
+
masked_frame = cv2.bitwise_and(im0, im0, mask=cv2.fillPoly(np.zeros_like(im0[:, :, 0]), [self.region], 255))
|
58
|
+
self.extract_tracks(masked_frame)
|
59
|
+
|
60
|
+
cv2.polylines(im0, [self.region], isClosed=True, color=(255, 255, 255), thickness=self.line_width * 2)
|
61
|
+
|
62
|
+
# Iterate over boxes, track ids, classes indexes list and draw bounding boxes
|
63
|
+
for box, track_id, cls in zip(self.boxes, self.track_ids, self.clss):
|
64
|
+
self.annotator.box_label(box, label=f"{self.names[cls]}:{track_id}", color=colors(track_id, True))
|
65
|
+
|
66
|
+
self.display_output(im0) # display output with base class function
|
67
|
+
|
68
|
+
return im0 # return output image for more usage
|
ultralytics/utils/ops.py
CHANGED
@@ -469,7 +469,7 @@ def xyxy2xywhn(x, w=640, h=640, clip=False, eps=0.0):
|
|
469
469
|
if clip:
|
470
470
|
x = clip_boxes(x, (h - eps, w - eps))
|
471
471
|
assert x.shape[-1] == 4, f"input shape last dimension expected 4 but input shape is {x.shape}"
|
472
|
-
y = torch.empty_like(x) if isinstance(x, torch.Tensor) else np.empty_like(x) # faster than clone/copy
|
472
|
+
y = torch.empty_like(x) if isinstance(x, torch.Tensor) else np.empty_like(x, dtype=float) # faster than clone/copy
|
473
473
|
y[..., 0] = ((x[..., 0] + x[..., 2]) / 2) / w # x center
|
474
474
|
y[..., 1] = ((x[..., 1] + x[..., 3]) / 2) / h # y center
|
475
475
|
y[..., 2] = (x[..., 2] - x[..., 0]) / w # width
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ultralytics
|
3
|
-
Version: 8.3.
|
3
|
+
Version: 8.3.43
|
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>
|
@@ -168,7 +168,7 @@ YOLO may be used directly in the Command Line Interface (CLI) with a `yolo` comm
|
|
168
168
|
yolo predict model=yolo11n.pt source='https://ultralytics.com/images/bus.jpg'
|
169
169
|
```
|
170
170
|
|
171
|
-
`yolo` can be used for a variety of tasks and modes and accepts additional arguments,
|
171
|
+
`yolo` can be used for a variety of tasks and modes and accepts additional arguments, e.g. `imgsz=640`. See the YOLO [CLI Docs](https://docs.ultralytics.com/usage/cli/) for examples.
|
172
172
|
|
173
173
|
### Python
|
174
174
|
|
@@ -7,10 +7,10 @@ tests/test_exports.py,sha256=1MvhcQ2qHdbJImHII-bFarcaIcm-kPlEK-OdFLxnj7o,8769
|
|
7
7
|
tests/test_integrations.py,sha256=f5-QCUk1SU_-qn4mBCZwS3GN3tXEBIIXo4z2EhExbHw,6126
|
8
8
|
tests/test_python.py,sha256=I1RRdCwLdrc3jX06huVxct8HX8ccQOmQgVpuEflRl0U,23560
|
9
9
|
tests/test_solutions.py,sha256=HlDe-XOgBX0k1cLhRTAhhawMHk6p-5dg5xl2AIRjfdk,3790
|
10
|
-
ultralytics/__init__.py,sha256=
|
10
|
+
ultralytics/__init__.py,sha256=n8Bs8eFAkYMki3zCDHydZ4q5Lvk-LTwKojrDVGNeRSE,681
|
11
11
|
ultralytics/assets/bus.jpg,sha256=wCAZxJecGR63Od3ZRERe9Aja1Weayrb9Ug751DS_vGM,137419
|
12
12
|
ultralytics/assets/zidane.jpg,sha256=Ftc4aeMmen1O0A3o6GCDO9FlfBslLpTAw0gnetx7bts,50427
|
13
|
-
ultralytics/cfg/__init__.py,sha256=
|
13
|
+
ultralytics/cfg/__init__.py,sha256=etGrRb8t9r6R-n-00qFAmOZHXNriXEUe0zvEzCPi5oc,38921
|
14
14
|
ultralytics/cfg/default.yaml,sha256=FcXbvTXXvMpssk9fSwdlnVTtyqfmlYE9gAcHsf0OMf8,8347
|
15
15
|
ultralytics/cfg/datasets/Argoverse.yaml,sha256=FyeuJT5CHq_9d4hlfAf0kpZlnbUMO0S--UJ1yIqcdKk,3134
|
16
16
|
ultralytics/cfg/datasets/DOTAv1.5.yaml,sha256=QVfp_Qp-4rukuicaB4qx86NxSHM8Mrzym8l_fIDo8gw,1195
|
@@ -170,7 +170,7 @@ ultralytics/models/yolo/world/__init__.py,sha256=3VTH0q4NOt2EWRom15yCymvmvm0Etp2
|
|
170
170
|
ultralytics/models/yolo/world/train.py,sha256=gaDrAmLJpg9qDtmL5evA5HsV2yb4RTRSfk2EDYrHdRg,3686
|
171
171
|
ultralytics/models/yolo/world/train_world.py,sha256=IsnCEVt6DcM9lUskCKmIN-M8MM79xLpwTRqRoAHUnZ4,4857
|
172
172
|
ultralytics/nn/__init__.py,sha256=4BPLHY89xEM_al5uK0aOmFgiML6CMGEZbezxOvTjOEs,587
|
173
|
-
ultralytics/nn/autobackend.py,sha256=
|
173
|
+
ultralytics/nn/autobackend.py,sha256=x1TgOEELZ0Qc01QFgXSMlZ-JqTHFhFRF6v2mGaGg_a0,35529
|
174
174
|
ultralytics/nn/tasks.py,sha256=pqRe1F1HOH8AjLZpFaZCGb5gSYsXH0eVnHITKDTFFhI,48527
|
175
175
|
ultralytics/nn/modules/__init__.py,sha256=xhW2BennT9U_VaMXVpRu-bdLgp1BXt9L8mkIUBE3idU,2625
|
176
176
|
ultralytics/nn/modules/activation.py,sha256=chhn469wnRHEs5BMGNBYXwPYZc_7-urspTT8fnBd-xA,895
|
@@ -179,18 +179,19 @@ ultralytics/nn/modules/conv.py,sha256=DPLZCRno_ZOjsuajAXIq-GbJdOh2jp1WayRXfDEd8z
|
|
179
179
|
ultralytics/nn/modules/head.py,sha256=Bg_WXtvO004fAKF7qExFreywWFrgQoc5Tc3fA9KVoL4,27780
|
180
180
|
ultralytics/nn/modules/transformer.py,sha256=tGiK8NmPfswwW1rbF21r5ILUkkZQ6Nk4s8j16vFBmps,18069
|
181
181
|
ultralytics/nn/modules/utils.py,sha256=a88cKl2wz1nMVSEBiajtvaCbDBQIkESWOKTZ_WAJy90,3195
|
182
|
-
ultralytics/solutions/__init__.py,sha256=
|
183
|
-
ultralytics/solutions/ai_gym.py,sha256=
|
182
|
+
ultralytics/solutions/__init__.py,sha256=lpTOauaJf7dFlymZB9lHiH_feDlS8Vlrp4TC7GuM8SU,761
|
183
|
+
ultralytics/solutions/ai_gym.py,sha256=Jv8ERJqcSjQeFh78zCAH2XnXoTIngCK7X_7XOQ6cPzs,5255
|
184
184
|
ultralytics/solutions/analytics.py,sha256=C57pIghXeKN8hul8QOV7W9YDMpfFfSfPTBb-lE9HeAc,11535
|
185
185
|
ultralytics/solutions/distance_calculation.py,sha256=KN3CC-dm2dTQylj79IrifCJT8ZhE7hc2EweH3KK31mE,5461
|
186
|
-
ultralytics/solutions/heatmap.py,sha256
|
186
|
+
ultralytics/solutions/heatmap.py,sha256=JkqwYAkIIDOj4HL5fLmcxQO0yix6-X8tAceXON6-Yg0,5275
|
187
187
|
ultralytics/solutions/object_counter.py,sha256=MuxQG4a22458WwciAB96m5AxVXwH98AIWAaf_kPali4,9613
|
188
188
|
ultralytics/solutions/parking_management.py,sha256=Hh28FTuP_TaO7x5RadYm-JSVJuEu1M2SSgHqgdYYtr8,11198
|
189
|
-
ultralytics/solutions/queue_management.py,sha256=
|
189
|
+
ultralytics/solutions/queue_management.py,sha256=lIHBgdMSKmGGPrICY2HC01_Ofad-vu4AnaGAqH-DxMs,4931
|
190
190
|
ultralytics/solutions/region_counter.py,sha256=w0c0Sz9XG6rwzr5nA6nb1zFW8IVkTQuatfZNBtOik68,4947
|
191
|
-
ultralytics/solutions/solutions.py,sha256=
|
191
|
+
ultralytics/solutions/solutions.py,sha256=BqkMDAq9A8kqL4TkjHLkMYXrJAdZPK-VAdNSObS1kNQ,7502
|
192
192
|
ultralytics/solutions/speed_estimation.py,sha256=A10DmuZlGkoZUyfHhZWcDRjj1-9GXiDhEjyBbAzfaDs,4936
|
193
193
|
ultralytics/solutions/streamlit_inference.py,sha256=w4dnvSv2FOrpji9W1Ir86phka3OXc7jd_38-OCbQdZw,5701
|
194
|
+
ultralytics/solutions/trackzone.py,sha256=jsSuvW3ExoQl5JyUF-5ZLQMou8h4qbkCGGGP831cHSY,2952
|
194
195
|
ultralytics/trackers/__init__.py,sha256=j72IgH2dZHQArMPK4YwcV5ieIw94fYvlGdQjB9cOQKw,227
|
195
196
|
ultralytics/trackers/basetrack.py,sha256=kPOeAX2ihvANtQJk-zUsN0C7JjhlJbx0UhjaCFk_ovQ,4423
|
196
197
|
ultralytics/trackers/bot_sort.py,sha256=766grVQExvonb087Wy-SB32TSwYYsTEM22yoWeQ_EEo,10494
|
@@ -211,7 +212,7 @@ ultralytics/utils/files.py,sha256=uiXQSVABJRoI5ImnM6ndEBIFbECfksmWNEldBg8GnSo,82
|
|
211
212
|
ultralytics/utils/instance.py,sha256=EnLp3hCihG5-32eGSMmjzspbxZsDvbqEOs-X0kcvxwQ,16252
|
212
213
|
ultralytics/utils/loss.py,sha256=jUCiUcxgF6jGxGdvIcupeMidLoF-gI7s1tcJoQCZbnk,34113
|
213
214
|
ultralytics/utils/metrics.py,sha256=toJlyA0W-xtChqAtIDiHISolxc_30NP33ezxWQ1rnPc,53804
|
214
|
-
ultralytics/utils/ops.py,sha256=
|
215
|
+
ultralytics/utils/ops.py,sha256=97qwzCipDB3AVqcn8rCao1ufZcpOM-kXBtOa2p_LT9o,33064
|
215
216
|
ultralytics/utils/patches.py,sha256=J-iOwIRbfUs-inBZerhnXby5tUKjYcOIyvhLTS352JE,3270
|
216
217
|
ultralytics/utils/plotting.py,sha256=GmBkN7e1skJK2cZ2hzKBXQCb1gayWTrA9TLHw0q07UM,62948
|
217
218
|
ultralytics/utils/tal.py,sha256=thD_AEhVmhaZqmS5szZMvpKO-RKOeZwfX1BYAhdnA0o,18470
|
@@ -229,9 +230,9 @@ ultralytics/utils/callbacks/neptune.py,sha256=IbGQfEltamUKXJt93uSLQFn8c2rYh3DMTg
|
|
229
230
|
ultralytics/utils/callbacks/raytune.py,sha256=Ck_yFzg7UZXiDWrLHaltjQybzVWSFDfzpdrx9ZYTRfI,700
|
230
231
|
ultralytics/utils/callbacks/tensorboard.py,sha256=SHlE58Fb-sg-uZKtgy-ybIO3SAIfK55aj8kTYGA0Cyg,4167
|
231
232
|
ultralytics/utils/callbacks/wb.py,sha256=sizfTa-xI9k2pnDSP_Q9pHZEFwcl__gSFM0AcneuRpY,7058
|
232
|
-
ultralytics-8.3.
|
233
|
-
ultralytics-8.3.
|
234
|
-
ultralytics-8.3.
|
235
|
-
ultralytics-8.3.
|
236
|
-
ultralytics-8.3.
|
237
|
-
ultralytics-8.3.
|
233
|
+
ultralytics-8.3.43.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
|
234
|
+
ultralytics-8.3.43.dist-info/METADATA,sha256=HrPTWW9i5rdFrpbTLW_e3coSiqoICIT5D3IL5STFFF4,35332
|
235
|
+
ultralytics-8.3.43.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
236
|
+
ultralytics-8.3.43.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
|
237
|
+
ultralytics-8.3.43.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
|
238
|
+
ultralytics-8.3.43.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|