ultralytics 8.3.57__py3-none-any.whl → 8.3.59__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/datasets/package-seg.yaml +2 -2
- ultralytics/cfg/models/11/yolo11-cls-resnet18.yaml +21 -0
- ultralytics/data/converter.py +1 -1
- ultralytics/engine/exporter.py +5 -1
- ultralytics/nn/modules/__init__.py +4 -0
- ultralytics/nn/modules/block.py +49 -0
- ultralytics/nn/modules/conv.py +18 -0
- ultralytics/nn/tasks.py +3 -1
- ultralytics/solutions/streamlit_inference.py +1 -5
- ultralytics/utils/benchmarks.py +1 -1
- ultralytics/utils/metrics.py +8 -3
- {ultralytics-8.3.57.dist-info → ultralytics-8.3.59.dist-info}/METADATA +2 -2
- {ultralytics-8.3.57.dist-info → ultralytics-8.3.59.dist-info}/RECORD +18 -17
- {ultralytics-8.3.57.dist-info → ultralytics-8.3.59.dist-info}/WHEEL +1 -1
- {ultralytics-8.3.57.dist-info → ultralytics-8.3.59.dist-info}/LICENSE +0 -0
- {ultralytics-8.3.57.dist-info → ultralytics-8.3.59.dist-info}/entry_points.txt +0 -0
- {ultralytics-8.3.57.dist-info → ultralytics-8.3.59.dist-info}/top_level.txt +0 -0
ultralytics/__init__.py
CHANGED
@@ -9,8 +9,8 @@
|
|
9
9
|
|
10
10
|
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
|
11
11
|
path: ../datasets/package-seg # dataset root dir
|
12
|
-
train: images
|
13
|
-
val: images
|
12
|
+
train: train/images # train images (relative to 'path') 1920 images
|
13
|
+
val: valid/images # val images (relative to 'path') 89 images
|
14
14
|
test: test/images # test images (relative to 'path') 188 images
|
15
15
|
|
16
16
|
# Classes
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# Ultralytics YOLO 🚀, AGPL-3.0 license
|
2
|
+
# YOLO11-cls image classification model. For Usage examples see https://docs.ultralytics.com/tasks/classify
|
3
|
+
|
4
|
+
# Parameters
|
5
|
+
nc: 10 # number of classes
|
6
|
+
scales: # model compound scaling constants, i.e. 'model=yolo11n-cls.yaml' will call yolo11-cls.yaml with scale 'n'
|
7
|
+
# [depth, width, max_channels]
|
8
|
+
n: [0.33, 0.25, 1024]
|
9
|
+
s: [0.33, 0.50, 1024]
|
10
|
+
m: [0.67, 0.75, 1024]
|
11
|
+
l: [1.00, 1.00, 1024]
|
12
|
+
x: [1.00, 1.25, 1024]
|
13
|
+
|
14
|
+
# YOLO11n backbone
|
15
|
+
backbone:
|
16
|
+
# [from, repeats, module, args]
|
17
|
+
- [-1, 1, TorchVision, [512, "resnet18", "DEFAULT", True, 2]] # truncate two layers from the end
|
18
|
+
|
19
|
+
# YOLO11n head
|
20
|
+
head:
|
21
|
+
- [-1, 1, Classify, [nc]] # Classify
|
ultralytics/data/converter.py
CHANGED
@@ -377,7 +377,7 @@ def convert_segment_masks_to_yolo_seg(masks_dir, output_dir, classes):
|
|
377
377
|
"""
|
378
378
|
pixel_to_class_mapping = {i + 1: i for i in range(classes)}
|
379
379
|
for mask_path in Path(masks_dir).iterdir():
|
380
|
-
if mask_path.suffix
|
380
|
+
if mask_path.suffix in {".png", ".jpg"}:
|
381
381
|
mask = cv2.imread(str(mask_path), cv2.IMREAD_GRAYSCALE) # Read the mask image in grayscale
|
382
382
|
img_height, img_width = mask.shape # Get image dimensions
|
383
383
|
LOGGER.info(f"Processing {mask_path} imgsz = {img_height} x {img_width}")
|
ultralytics/engine/exporter.py
CHANGED
@@ -452,7 +452,11 @@ class Exporter:
|
|
452
452
|
batch_size=batch,
|
453
453
|
)
|
454
454
|
n = len(dataset)
|
455
|
-
if n <
|
455
|
+
if n < self.args.batch:
|
456
|
+
raise ValueError(
|
457
|
+
f"The calibration dataset ({n} images) must have at least as many images as the batch size ('batch={self.args.batch}')."
|
458
|
+
)
|
459
|
+
elif n < 300:
|
456
460
|
LOGGER.warning(f"{prefix} WARNING ⚠️ >300 images recommended for INT8 calibration, found {n} images.")
|
457
461
|
return build_dataloader(dataset, batch=batch, workers=0) # required for batch loading
|
458
462
|
|
@@ -56,6 +56,7 @@ from .block import (
|
|
56
56
|
RepVGGDW,
|
57
57
|
ResNetLayer,
|
58
58
|
SCDown,
|
59
|
+
TorchVision,
|
59
60
|
)
|
60
61
|
from .conv import (
|
61
62
|
CBAM,
|
@@ -68,6 +69,7 @@ from .conv import (
|
|
68
69
|
DWConvTranspose2d,
|
69
70
|
Focus,
|
70
71
|
GhostConv,
|
72
|
+
Index,
|
71
73
|
LightConv,
|
72
74
|
RepConv,
|
73
75
|
SpatialAttention,
|
@@ -156,4 +158,6 @@ __all__ = (
|
|
156
158
|
"C2fCIB",
|
157
159
|
"Attention",
|
158
160
|
"PSA",
|
161
|
+
"TorchVision",
|
162
|
+
"Index",
|
159
163
|
)
|
ultralytics/nn/modules/block.py
CHANGED
@@ -49,6 +49,7 @@ __all__ = (
|
|
49
49
|
"Attention",
|
50
50
|
"PSA",
|
51
51
|
"SCDown",
|
52
|
+
"TorchVision",
|
52
53
|
)
|
53
54
|
|
54
55
|
|
@@ -1107,3 +1108,51 @@ class SCDown(nn.Module):
|
|
1107
1108
|
def forward(self, x):
|
1108
1109
|
"""Applies convolution and downsampling to the input tensor in the SCDown module."""
|
1109
1110
|
return self.cv2(self.cv1(x))
|
1111
|
+
|
1112
|
+
|
1113
|
+
class TorchVision(nn.Module):
|
1114
|
+
"""
|
1115
|
+
TorchVision module to allow loading any torchvision model.
|
1116
|
+
|
1117
|
+
This class provides a way to load a model from the torchvision library, optionally load pre-trained weights, and customize the model by truncating or unwrapping layers.
|
1118
|
+
|
1119
|
+
Attributes:
|
1120
|
+
m (nn.Module): The loaded torchvision model, possibly truncated and unwrapped.
|
1121
|
+
|
1122
|
+
Args:
|
1123
|
+
c1 (int): Input channels.
|
1124
|
+
c2 (): Output channels.
|
1125
|
+
model (str): Name of the torchvision model to load.
|
1126
|
+
weights (str, optional): Pre-trained weights to load. Default is "DEFAULT".
|
1127
|
+
unwrap (bool, optional): If True, unwraps the model to a sequential containing all but the last `truncate` layers. Default is True.
|
1128
|
+
truncate (int, optional): Number of layers to truncate from the end if `unwrap` is True. Default is 2.
|
1129
|
+
split (bool, optional): Returns output from intermediate child modules as list. Default is False.
|
1130
|
+
"""
|
1131
|
+
|
1132
|
+
def __init__(self, c1, c2, model, weights="DEFAULT", unwrap=True, truncate=2, split=False):
|
1133
|
+
"""Load the model and weights from torchvision."""
|
1134
|
+
import torchvision
|
1135
|
+
|
1136
|
+
super().__init__()
|
1137
|
+
if hasattr(torchvision.models, "get_model"):
|
1138
|
+
self.m = torchvision.models.get_model(model, weights=weights)
|
1139
|
+
else:
|
1140
|
+
self.m = torchvision.models.__dict__[model](pretrained=bool(weights))
|
1141
|
+
if unwrap:
|
1142
|
+
layers = list(self.m.children())[:-truncate]
|
1143
|
+
if isinstance(layers[0], nn.Sequential): # Second-level for some models like EfficientNet, Swin
|
1144
|
+
layers = [*list(layers[0].children()), *layers[1:]]
|
1145
|
+
self.m = nn.Sequential(*layers)
|
1146
|
+
self.split = split
|
1147
|
+
else:
|
1148
|
+
self.split = False
|
1149
|
+
self.m.head = self.m.heads = nn.Identity()
|
1150
|
+
|
1151
|
+
def forward(self, x):
|
1152
|
+
"""Forward pass through the model."""
|
1153
|
+
if self.split:
|
1154
|
+
y = [x]
|
1155
|
+
y.extend(m(y[-1]) for m in self.m)
|
1156
|
+
else:
|
1157
|
+
y = self.m(x)
|
1158
|
+
return y
|
ultralytics/nn/modules/conv.py
CHANGED
@@ -21,6 +21,7 @@ __all__ = (
|
|
21
21
|
"CBAM",
|
22
22
|
"Concat",
|
23
23
|
"RepConv",
|
24
|
+
"Index",
|
24
25
|
)
|
25
26
|
|
26
27
|
|
@@ -330,3 +331,20 @@ class Concat(nn.Module):
|
|
330
331
|
def forward(self, x):
|
331
332
|
"""Forward pass for the YOLOv8 mask Proto module."""
|
332
333
|
return torch.cat(x, self.d)
|
334
|
+
|
335
|
+
|
336
|
+
class Index(nn.Module):
|
337
|
+
"""Returns a particular index of the input."""
|
338
|
+
|
339
|
+
def __init__(self, c1, c2, index=0):
|
340
|
+
"""Returns a particular index of the input."""
|
341
|
+
super().__init__()
|
342
|
+
self.index = index
|
343
|
+
|
344
|
+
def forward(self, x):
|
345
|
+
"""
|
346
|
+
Forward pass.
|
347
|
+
|
348
|
+
Expects a list of tensors as input.
|
349
|
+
"""
|
350
|
+
return x[self.index]
|
ultralytics/nn/tasks.py
CHANGED
@@ -50,6 +50,7 @@ from ultralytics.nn.modules import (
|
|
50
50
|
HGBlock,
|
51
51
|
HGStem,
|
52
52
|
ImagePoolingAttn,
|
53
|
+
Index,
|
53
54
|
Pose,
|
54
55
|
RepC3,
|
55
56
|
RepConv,
|
@@ -59,6 +60,7 @@ from ultralytics.nn.modules import (
|
|
59
60
|
RTDETRDecoder,
|
60
61
|
SCDown,
|
61
62
|
Segment,
|
63
|
+
TorchVision,
|
62
64
|
WorldDetect,
|
63
65
|
v10Detect,
|
64
66
|
)
|
@@ -1052,7 +1054,7 @@ def parse_model(d, ch, verbose=True): # model_dict, input_channels(3)
|
|
1052
1054
|
m.legacy = legacy
|
1053
1055
|
elif m is RTDETRDecoder: # special case, channels arg must be passed in index 1
|
1054
1056
|
args.insert(1, [ch[x] for x in f])
|
1055
|
-
elif m
|
1057
|
+
elif m in {CBLinear, TorchVision, Index}:
|
1056
1058
|
c2 = args[0]
|
1057
1059
|
c1 = ch[f]
|
1058
1060
|
args = [c1, c2, *args[1:]]
|
@@ -184,12 +184,8 @@ class Inference:
|
|
184
184
|
if __name__ == "__main__":
|
185
185
|
import sys # Import the sys module for accessing command-line arguments
|
186
186
|
|
187
|
-
model = None # Initialize the model variable as None
|
188
|
-
|
189
187
|
# Check if a model name is provided as a command-line argument
|
190
188
|
args = len(sys.argv)
|
191
|
-
if args > 1
|
192
|
-
model = sys.argv[1] # Assign the first argument as the model name
|
193
|
-
|
189
|
+
model = sys.argv[1] if args > 1 else None # assign first argument as the model name
|
194
190
|
# Create an instance of the Inference class and run inference
|
195
191
|
Inference(model=model).inference()
|
ultralytics/utils/benchmarks.py
CHANGED
@@ -464,7 +464,7 @@ class ProfileModels:
|
|
464
464
|
|
465
465
|
# Model and input
|
466
466
|
model = YOLO(engine_file)
|
467
|
-
input_data = np.
|
467
|
+
input_data = np.zeros((self.imgsz, self.imgsz, 3), dtype=np.uint8) # use uint8 for Classify
|
468
468
|
|
469
469
|
# Warmup runs
|
470
470
|
elapsed = 0.0
|
ultralytics/utils/metrics.py
CHANGED
@@ -73,11 +73,16 @@ def box_iou(box1, box2, eps=1e-7):
|
|
73
73
|
|
74
74
|
def bbox_iou(box1, box2, xywh=True, GIoU=False, DIoU=False, CIoU=False, eps=1e-7):
|
75
75
|
"""
|
76
|
-
|
76
|
+
Calculates the Intersection over Union (IoU) between bounding boxes.
|
77
|
+
|
78
|
+
This function supports various shapes for `box1` and `box2` as long as the last dimension is 4.
|
79
|
+
For instance, you may pass tensors shaped like (4,), (N, 4), (B, N, 4), or (B, N, 1, 4).
|
80
|
+
Internally, the code will split the last dimension into (x, y, w, h) if `xywh=True`,
|
81
|
+
or (x1, y1, x2, y2) if `xywh=False`.
|
77
82
|
|
78
83
|
Args:
|
79
|
-
box1 (torch.Tensor): A tensor representing
|
80
|
-
box2 (torch.Tensor): A tensor representing
|
84
|
+
box1 (torch.Tensor): A tensor representing one or more bounding boxes, with the last dimension being 4.
|
85
|
+
box2 (torch.Tensor): A tensor representing one or more bounding boxes, with the last dimension being 4.
|
81
86
|
xywh (bool, optional): If True, input boxes are in (x, y, w, h) format. If False, input boxes are in
|
82
87
|
(x1, y1, x2, y2) format. Defaults to True.
|
83
88
|
GIoU (bool, optional): If True, calculate Generalized IoU. Defaults to False.
|
@@ -1,6 +1,6 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.2
|
2
2
|
Name: ultralytics
|
3
|
-
Version: 8.3.
|
3
|
+
Version: 8.3.59
|
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=1MvhcQ2qHdbJImHII-bFarcaIcm-kPlEK-OdFLxnj7o,8769
|
|
7
7
|
tests/test_integrations.py,sha256=f5-QCUk1SU_-qn4mBCZwS3GN3tXEBIIXo4z2EhExbHw,6126
|
8
8
|
tests/test_python.py,sha256=S399TdcZcymRJIYrKlXPiROWg_izHL3TGhHgW15kcrA,23210
|
9
9
|
tests/test_solutions.py,sha256=O-GM6qBdew8BQmkpt8XLbyQJTcTdElz1yTBL1WOJsWw,4177
|
10
|
-
ultralytics/__init__.py,sha256=
|
10
|
+
ultralytics/__init__.py,sha256=zoSKMR-l3pqiUG0erI17Tq0ch0AR6Q4y8hGTsiWGycU,681
|
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=MJ52wv8-rQHvD8ZBJ4RA31npqgCtUtFYEG4sQ2kciFc,39031
|
@@ -38,10 +38,11 @@ ultralytics/cfg/datasets/hand-keypoints.yaml,sha256=ux5UM32rh_QkjG_KpjY39Sud7KGo
|
|
38
38
|
ultralytics/cfg/datasets/lvis.yaml,sha256=qA0_ELIbR7ECxIxBX1K4vGqBA6RAagCxs02ehx5SmaE,29692
|
39
39
|
ultralytics/cfg/datasets/medical-pills.yaml,sha256=YCKnOXSfD-TdVv6QZ2lhRijMZ_OkTy2ExPxOuaYg_jM,819
|
40
40
|
ultralytics/cfg/datasets/open-images-v7.yaml,sha256=gsN0JXLSdQglio024p6NEegNbX06kJUNuj0bh9oEi-U,12493
|
41
|
-
ultralytics/cfg/datasets/package-seg.yaml,sha256=
|
41
|
+
ultralytics/cfg/datasets/package-seg.yaml,sha256=6RxepIhPPiV5Yt5_8_bT5ABpEeLYgFukUxTDVvTGfVg,835
|
42
42
|
ultralytics/cfg/datasets/signature.yaml,sha256=qTOULZf0J9hS7ZXVd_sPJ8uoNVmbKnqZ6Kgm_EjmXpY,760
|
43
43
|
ultralytics/cfg/datasets/tiger-pose.yaml,sha256=tU88xdKAoN2DFXDk2NMHV7y9bC2HGJCF0LvTVvCaCNE,896
|
44
44
|
ultralytics/cfg/datasets/xView.yaml,sha256=rjQPRNk--jlYN9wcVTu1KbopgZIkWXhr_s1UkSdcERs,5217
|
45
|
+
ultralytics/cfg/models/11/yolo11-cls-resnet18.yaml,sha256=4f4HadNfSdGJh0jZSR8sIxUOiKhEH5ImzowE4aAUtKU,683
|
45
46
|
ultralytics/cfg/models/11/yolo11-cls.yaml,sha256=2oBmesYUBsnatpvEhmIWJ1Ari96few1U9NkV6ZsP0Cs,1329
|
46
47
|
ultralytics/cfg/models/11/yolo11-obb.yaml,sha256=N5ozTYay-L_F4ryRDFjX-v6mMZ9onCE1uHDEDWOZVLc,1936
|
47
48
|
ultralytics/cfg/models/11/yolo11-pose.yaml,sha256=h5fsUXoxNqSfBMhtHyMDE0DqFZ5-DuRr-6SXhS2dEV4,2015
|
@@ -95,13 +96,13 @@ ultralytics/data/annotator.py,sha256=JNmS6uELlEABrU5ViVJiPnjt44v-Us7j39Bwoug_73Y
|
|
95
96
|
ultralytics/data/augment.py,sha256=xE3fyPSCsgzz1vo1758HQA3YQhO4QZ2TqM0So0tE434,120479
|
96
97
|
ultralytics/data/base.py,sha256=ZCIhAyFfxXVp5fVnYD8mwbksNALJTayBKIR5FKGV7ZM,15168
|
97
98
|
ultralytics/data/build.py,sha256=AfMmz0sHIYmwry_90tEJFRk_kz0S3SolScVXqYHiT08,7261
|
98
|
-
ultralytics/data/converter.py,sha256=
|
99
|
+
ultralytics/data/converter.py,sha256=Vsk5XPtpYnyrbmXcl2wmDCf56R8YSWHtBzLwgQcxDcA,24417
|
99
100
|
ultralytics/data/dataset.py,sha256=6_6sHSjJYX7lVUzqBqVW_q_REXbjeoh6dHqAqH9krfA,23216
|
100
101
|
ultralytics/data/loaders.py,sha256=k1Vq7Rxv6tpsRsYuMdZeI3_f2BciAaZwhDQU8iHhVJM,28506
|
101
102
|
ultralytics/data/split_dota.py,sha256=FxsuBhClSZN4XHu8ETTiA2oP6yrjp49T5lbZaiI0fw4,10692
|
102
103
|
ultralytics/data/utils.py,sha256=xCobqNksarqQsGqQZ-g5N9nSwaQwiaMAVB92s903RQA,33807
|
103
104
|
ultralytics/engine/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
|
104
|
-
ultralytics/engine/exporter.py,sha256=
|
105
|
+
ultralytics/engine/exporter.py,sha256=SpaBR3Ee3HgIfjfNijuwm9Btzl6D7ivGZliFA2pCo5Q,69081
|
105
106
|
ultralytics/engine/model.py,sha256=3csd_Ml9M6CKxUKU7vRZadanNnJw96sNIx71qHVGdGQ,53082
|
106
107
|
ultralytics/engine/predictor.py,sha256=o1RYMFH3_uVOMCIXXakpRYpNzoD-6Bdsxryt5fuBni0,17712
|
107
108
|
ultralytics/engine/results.py,sha256=a1XFZRPwqgKDBOEAibHuT9nP2xefLiWVsMoBJbcr4iA,75058
|
@@ -172,11 +173,11 @@ ultralytics/models/yolo/world/train.py,sha256=gaDrAmLJpg9qDtmL5evA5HsV2yb4RTRSfk
|
|
172
173
|
ultralytics/models/yolo/world/train_world.py,sha256=IsnCEVt6DcM9lUskCKmIN-M8MM79xLpwTRqRoAHUnZ4,4857
|
173
174
|
ultralytics/nn/__init__.py,sha256=4BPLHY89xEM_al5uK0aOmFgiML6CMGEZbezxOvTjOEs,587
|
174
175
|
ultralytics/nn/autobackend.py,sha256=7WyyipeaAqKCFUAA7_y2jIOz2e90GxHrD7c7ARe4ZJI,35556
|
175
|
-
ultralytics/nn/tasks.py,sha256=
|
176
|
-
ultralytics/nn/modules/__init__.py,sha256=
|
176
|
+
ultralytics/nn/tasks.py,sha256=O2yrgDZ8DzP9qv7FLSnW8LGTdfA4Lzrrb5LHHblx_pk,48577
|
177
|
+
ultralytics/nn/modules/__init__.py,sha256=F_QN7eWGBMiWSpmYpZ0Dk44MFW02UvDEEgR7FxjCHgA,2685
|
177
178
|
ultralytics/nn/modules/activation.py,sha256=chhn469wnRHEs5BMGNBYXwPYZc_7-urspTT8fnBd-xA,895
|
178
|
-
ultralytics/nn/modules/block.py,sha256=
|
179
|
-
ultralytics/nn/modules/conv.py,sha256=
|
179
|
+
ultralytics/nn/modules/block.py,sha256=PJTortaTCAtIHR6magx3phL7fEoNfK5BLC7xICJRdQg,43919
|
180
|
+
ultralytics/nn/modules/conv.py,sha256=LH9P99whUUfa3O4O19enF0vfzTmPTnmlMnkf9JsurPE,13112
|
180
181
|
ultralytics/nn/modules/head.py,sha256=yZdDr71pWm-vB18XrNkbX35o3q4o4mhzrfJz6yVh9m4,27934
|
181
182
|
ultralytics/nn/modules/transformer.py,sha256=tGiK8NmPfswwW1rbF21r5ILUkkZQ6Nk4s8j16vFBmps,18069
|
182
183
|
ultralytics/nn/modules/utils.py,sha256=a88cKl2wz1nMVSEBiajtvaCbDBQIkESWOKTZ_WAJy90,3195
|
@@ -192,7 +193,7 @@ ultralytics/solutions/region_counter.py,sha256=a-6VDi-Mw1hZrkhQy9OeZw_hXq0pvB4Oy
|
|
192
193
|
ultralytics/solutions/security_alarm.py,sha256=OIOyQEaj8X7r4YGiuCVmWpBiq37h9zbQ5Mf4CB1G2DA,5671
|
193
194
|
ultralytics/solutions/solutions.py,sha256=SOR4-K1S5LqoY2226oEJzeiJzGZUSSO0niF9PdEXPi4,7744
|
194
195
|
ultralytics/solutions/speed_estimation.py,sha256=A10DmuZlGkoZUyfHhZWcDRjj1-9GXiDhEjyBbAzfaDs,4936
|
195
|
-
ultralytics/solutions/streamlit_inference.py,sha256=
|
196
|
+
ultralytics/solutions/streamlit_inference.py,sha256=oHlrcQtEuP4WBJBeN7PST5RD8tB1T0lBbgLBVYF8S2w,9480
|
196
197
|
ultralytics/solutions/trackzone.py,sha256=jsSuvW3ExoQl5JyUF-5ZLQMou8h4qbkCGGGP831cHSY,2952
|
197
198
|
ultralytics/trackers/__init__.py,sha256=j72IgH2dZHQArMPK4YwcV5ieIw94fYvlGdQjB9cOQKw,227
|
198
199
|
ultralytics/trackers/basetrack.py,sha256=kPOeAX2ihvANtQJk-zUsN0C7JjhlJbx0UhjaCFk_ovQ,4423
|
@@ -205,7 +206,7 @@ ultralytics/trackers/utils/kalman_filter.py,sha256=cH9zD3fwkuezP97H9mw8cSBN7a8hH
|
|
205
206
|
ultralytics/trackers/utils/matching.py,sha256=Y94cMwo9TLd-IWFqHKp8dHSDyguS1qtOeebBMalWnJQ,7078
|
206
207
|
ultralytics/utils/__init__.py,sha256=eCoQewuEZ045peO3XtymyNp9oUH22_AqcTUEtgekuN8,49302
|
207
208
|
ultralytics/utils/autobatch.py,sha256=yBkojvLhZofwwKnaA8BnEIFXp3UWt7rVmyuh-dl1Ymk,5020
|
208
|
-
ultralytics/utils/benchmarks.py,sha256=
|
209
|
+
ultralytics/utils/benchmarks.py,sha256=wIuUJDsQhns1wiTtRc6J5L1p47nG9yBrG65mPbhjpM4,25643
|
209
210
|
ultralytics/utils/checks.py,sha256=1Cu8k2qg_pFaoHvkiE07Ab5ZGLyZHZxFAg1IMM63CBQ,30145
|
210
211
|
ultralytics/utils/dist.py,sha256=NDFga-uKxkBX2zLxFHSene_cCiGQJoyOeCXcN9JIOIk,2358
|
211
212
|
ultralytics/utils/downloads.py,sha256=r-8CyDD1nZl5Xw4Fz6rC-fbhgUv4QURZ2JRlCY3plDc,21981
|
@@ -213,7 +214,7 @@ ultralytics/utils/errors.py,sha256=GqP_Jgj_n0paxn8OMhn3DTCgoNkB2WjUcUaqs-M6SQk,8
|
|
213
214
|
ultralytics/utils/files.py,sha256=uiXQSVABJRoI5ImnM6ndEBIFbECfksmWNEldBg8GnSo,8224
|
214
215
|
ultralytics/utils/instance.py,sha256=FXL1Ihlbn2fNZG_IaJpXul9Sd4QDLwotCo2U84moSlA,16853
|
215
216
|
ultralytics/utils/loss.py,sha256=_d2L4lIemaeAHrGHqf9q-KI7yTgHKCbIcYAF7Y-farI,34185
|
216
|
-
ultralytics/utils/metrics.py,sha256=
|
217
|
+
ultralytics/utils/metrics.py,sha256=5VV0D7Rw5Cq1dBqMTpn7kTP3kTD-QHo54lmgnrqe5C8,54147
|
217
218
|
ultralytics/utils/ops.py,sha256=d5sLAvgqP36Pq_dMQE1DZFYhmIGUMrlrxh1czcuUfC4,33546
|
218
219
|
ultralytics/utils/patches.py,sha256=J-iOwIRbfUs-inBZerhnXby5tUKjYcOIyvhLTS352JE,3270
|
219
220
|
ultralytics/utils/plotting.py,sha256=SudFfq9KOfprtpXsurfWEOeQqVsU0K3aVvcOGFcNB4A,62959
|
@@ -232,9 +233,9 @@ ultralytics/utils/callbacks/neptune.py,sha256=IbGQfEltamUKXJt93uSLQFn8c2rYh3DMTg
|
|
232
233
|
ultralytics/utils/callbacks/raytune.py,sha256=Ck_yFzg7UZXiDWrLHaltjQybzVWSFDfzpdrx9ZYTRfI,700
|
233
234
|
ultralytics/utils/callbacks/tensorboard.py,sha256=SHlE58Fb-sg-uZKtgy-ybIO3SAIfK55aj8kTYGA0Cyg,4167
|
234
235
|
ultralytics/utils/callbacks/wb.py,sha256=sizfTa-xI9k2pnDSP_Q9pHZEFwcl__gSFM0AcneuRpY,7058
|
235
|
-
ultralytics-8.3.
|
236
|
-
ultralytics-8.3.
|
237
|
-
ultralytics-8.3.
|
238
|
-
ultralytics-8.3.
|
239
|
-
ultralytics-8.3.
|
240
|
-
ultralytics-8.3.
|
236
|
+
ultralytics-8.3.59.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
|
237
|
+
ultralytics-8.3.59.dist-info/METADATA,sha256=Ijk0atnRbGX7jWs1qEgvPdo9h_zrS6hsoleSpGRm2HA,35286
|
238
|
+
ultralytics-8.3.59.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
239
|
+
ultralytics-8.3.59.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
|
240
|
+
ultralytics-8.3.59.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
|
241
|
+
ultralytics-8.3.59.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|