ultralytics 8.1.8__py3-none-any.whl → 8.1.10__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.
Potentially problematic release.
This version of ultralytics might be problematic. Click here for more details.
- ultralytics/__init__.py +1 -1
- ultralytics/engine/trainer.py +1 -1
- ultralytics/models/sam/modules/decoders.py +1 -1
- ultralytics/models/sam/modules/tiny_encoder.py +1 -1
- ultralytics/models/yolo/segment/predict.py +1 -1
- ultralytics/nn/modules/head.py +11 -10
- ultralytics/solutions/heatmap.py +2 -1
- ultralytics/solutions/object_counter.py +1 -1
- ultralytics/solutions/speed_estimation.py +1 -1
- ultralytics/trackers/utils/gmc.py +10 -10
- ultralytics/utils/callbacks/mlflow.py +6 -2
- ultralytics/utils/metrics.py +3 -3
- ultralytics/utils/tal.py +2 -2
- ultralytics/utils/torch_utils.py +2 -2
- {ultralytics-8.1.8.dist-info → ultralytics-8.1.10.dist-info}/METADATA +2 -2
- {ultralytics-8.1.8.dist-info → ultralytics-8.1.10.dist-info}/RECORD +20 -20
- {ultralytics-8.1.8.dist-info → ultralytics-8.1.10.dist-info}/LICENSE +0 -0
- {ultralytics-8.1.8.dist-info → ultralytics-8.1.10.dist-info}/WHEEL +0 -0
- {ultralytics-8.1.8.dist-info → ultralytics-8.1.10.dist-info}/entry_points.txt +0 -0
- {ultralytics-8.1.8.dist-info → ultralytics-8.1.10.dist-info}/top_level.txt +0 -0
ultralytics/__init__.py
CHANGED
ultralytics/engine/trainer.py
CHANGED
|
@@ -400,7 +400,7 @@ class BaseTrainer:
|
|
|
400
400
|
|
|
401
401
|
# Log
|
|
402
402
|
mem = f"{torch.cuda.memory_reserved() / 1E9 if torch.cuda.is_available() else 0:.3g}G" # (GB)
|
|
403
|
-
loss_len = self.tloss.shape[0] if len(self.tloss.
|
|
403
|
+
loss_len = self.tloss.shape[0] if len(self.tloss.shape) else 1
|
|
404
404
|
losses = self.tloss if loss_len > 1 else torch.unsqueeze(self.tloss, 0)
|
|
405
405
|
if RANK in (-1, 0):
|
|
406
406
|
pbar.set_description(
|
|
@@ -121,7 +121,7 @@ class MaskDecoder(nn.Module):
|
|
|
121
121
|
"""
|
|
122
122
|
# Concatenate output tokens
|
|
123
123
|
output_tokens = torch.cat([self.iou_token.weight, self.mask_tokens.weight], dim=0)
|
|
124
|
-
output_tokens = output_tokens.unsqueeze(0).expand(sparse_prompt_embeddings.
|
|
124
|
+
output_tokens = output_tokens.unsqueeze(0).expand(sparse_prompt_embeddings.shape[0], -1, -1)
|
|
125
125
|
tokens = torch.cat((output_tokens, sparse_prompt_embeddings), dim=1)
|
|
126
126
|
|
|
127
127
|
# Expand per-image data in batch direction to be per-mask
|
|
@@ -41,7 +41,7 @@ class SegmentationPredictor(DetectionPredictor):
|
|
|
41
41
|
orig_imgs = ops.convert_torch2numpy_batch(orig_imgs)
|
|
42
42
|
|
|
43
43
|
results = []
|
|
44
|
-
proto = preds[1][-1] if
|
|
44
|
+
proto = preds[1][-1] if isinstance(preds[1], tuple) else preds[1] # tuple if PyTorch model or array if exported
|
|
45
45
|
for i, pred in enumerate(p):
|
|
46
46
|
orig_img = orig_imgs[i]
|
|
47
47
|
img_path = self.batch[0][i]
|
ultralytics/nn/modules/head.py
CHANGED
|
@@ -59,16 +59,17 @@ class Detect(nn.Module):
|
|
|
59
59
|
cls = x_cat[:, self.reg_max * 4 :]
|
|
60
60
|
else:
|
|
61
61
|
box, cls = x_cat.split((self.reg_max * 4, self.nc), 1)
|
|
62
|
-
dbox = self.decode_bboxes(box)
|
|
63
62
|
|
|
64
63
|
if self.export and self.format in ("tflite", "edgetpu"):
|
|
65
64
|
# Precompute normalization factor to increase numerical stability
|
|
66
65
|
# See https://github.com/ultralytics/ultralytics/issues/7371
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
norm = self.strides / (self.stride[0] *
|
|
71
|
-
dbox =
|
|
66
|
+
grid_h = shape[2]
|
|
67
|
+
grid_w = shape[3]
|
|
68
|
+
grid_size = torch.tensor([grid_w, grid_h, grid_w, grid_h], device=box.device).reshape(1, 4, 1)
|
|
69
|
+
norm = self.strides / (self.stride[0] * grid_size)
|
|
70
|
+
dbox = self.decode_bboxes(self.dfl(box) * norm, self.anchors.unsqueeze(0) * norm[:, :2])
|
|
71
|
+
else:
|
|
72
|
+
dbox = self.decode_bboxes(self.dfl(box), self.anchors.unsqueeze(0)) * self.strides
|
|
72
73
|
|
|
73
74
|
y = torch.cat((dbox, cls.sigmoid()), 1)
|
|
74
75
|
return y if self.export else (y, x)
|
|
@@ -82,9 +83,9 @@ class Detect(nn.Module):
|
|
|
82
83
|
a[-1].bias.data[:] = 1.0 # box
|
|
83
84
|
b[-1].bias.data[: m.nc] = math.log(5 / m.nc / (640 / s) ** 2) # cls (.01 objects, 80 classes, 640 img)
|
|
84
85
|
|
|
85
|
-
def decode_bboxes(self, bboxes):
|
|
86
|
+
def decode_bboxes(self, bboxes, anchors):
|
|
86
87
|
"""Decode bounding boxes."""
|
|
87
|
-
return dist2bbox(
|
|
88
|
+
return dist2bbox(bboxes, anchors, xywh=True, dim=1)
|
|
88
89
|
|
|
89
90
|
|
|
90
91
|
class Segment(Detect):
|
|
@@ -139,9 +140,9 @@ class OBB(Detect):
|
|
|
139
140
|
return x, angle
|
|
140
141
|
return torch.cat([x, angle], 1) if self.export else (torch.cat([x[0], angle], 1), (x[1], angle))
|
|
141
142
|
|
|
142
|
-
def decode_bboxes(self, bboxes):
|
|
143
|
+
def decode_bboxes(self, bboxes, anchors):
|
|
143
144
|
"""Decode rotated bounding boxes."""
|
|
144
|
-
return dist2rbox(
|
|
145
|
+
return dist2rbox(bboxes, self.angle, anchors, dim=1)
|
|
145
146
|
|
|
146
147
|
|
|
147
148
|
class Pose(Detect):
|
ultralytics/solutions/heatmap.py
CHANGED
|
@@ -167,9 +167,10 @@ class Heatmap:
|
|
|
167
167
|
"""
|
|
168
168
|
self.im0 = im0
|
|
169
169
|
if tracks[0].boxes.id is None:
|
|
170
|
+
self.heatmap = np.zeros((int(self.imh), int(self.imw)), dtype=np.float32)
|
|
170
171
|
if self.view_img and self.env_check:
|
|
171
172
|
self.display_frames()
|
|
172
|
-
return
|
|
173
|
+
return im0
|
|
173
174
|
self.heatmap *= self.decay_factor # decay factor
|
|
174
175
|
self.extract_results(tracks)
|
|
175
176
|
self.annotator = Annotator(self.im0, self.count_txt_thickness, None)
|
|
@@ -97,13 +97,13 @@ class GMC:
|
|
|
97
97
|
if self.method in ["orb", "sift"]:
|
|
98
98
|
return self.applyFeatures(raw_frame, detections)
|
|
99
99
|
elif self.method == "ecc":
|
|
100
|
-
return self.applyEcc(raw_frame
|
|
100
|
+
return self.applyEcc(raw_frame)
|
|
101
101
|
elif self.method == "sparseOptFlow":
|
|
102
|
-
return self.applySparseOptFlow(raw_frame
|
|
102
|
+
return self.applySparseOptFlow(raw_frame)
|
|
103
103
|
else:
|
|
104
104
|
return np.eye(2, 3)
|
|
105
105
|
|
|
106
|
-
def applyEcc(self, raw_frame: np.array
|
|
106
|
+
def applyEcc(self, raw_frame: np.array) -> np.array:
|
|
107
107
|
"""
|
|
108
108
|
Apply ECC algorithm to a raw frame.
|
|
109
109
|
|
|
@@ -144,7 +144,7 @@ class GMC:
|
|
|
144
144
|
# Run the ECC algorithm. The results are stored in warp_matrix.
|
|
145
145
|
# (cc, H) = cv2.findTransformECC(self.prevFrame, frame, H, self.warp_mode, self.criteria)
|
|
146
146
|
try:
|
|
147
|
-
(
|
|
147
|
+
(_, H) = cv2.findTransformECC(self.prevFrame, frame, H, self.warp_mode, self.criteria, None, 1)
|
|
148
148
|
except Exception as e:
|
|
149
149
|
LOGGER.warning(f"WARNING: find transform failed. Set warp as identity {e}")
|
|
150
150
|
|
|
@@ -258,7 +258,7 @@ class GMC:
|
|
|
258
258
|
# import matplotlib.pyplot as plt
|
|
259
259
|
# matches_img = np.hstack((self.prevFrame, frame))
|
|
260
260
|
# matches_img = cv2.cvtColor(matches_img, cv2.COLOR_GRAY2BGR)
|
|
261
|
-
# W =
|
|
261
|
+
# W = self.prevFrame.shape[1]
|
|
262
262
|
# for m in goodMatches:
|
|
263
263
|
# prev_pt = np.array(self.prevKeyPoints[m.queryIdx].pt, dtype=np.int_)
|
|
264
264
|
# curr_pt = np.array(keypoints[m.trainIdx].pt, dtype=np.int_)
|
|
@@ -275,7 +275,7 @@ class GMC:
|
|
|
275
275
|
# plt.show()
|
|
276
276
|
|
|
277
277
|
# Find rigid matrix
|
|
278
|
-
if
|
|
278
|
+
if prevPoints.shape[0] > 4:
|
|
279
279
|
H, inliers = cv2.estimateAffinePartial2D(prevPoints, currPoints, cv2.RANSAC)
|
|
280
280
|
|
|
281
281
|
# Handle downscale
|
|
@@ -292,7 +292,7 @@ class GMC:
|
|
|
292
292
|
|
|
293
293
|
return H
|
|
294
294
|
|
|
295
|
-
def applySparseOptFlow(self, raw_frame: np.array
|
|
295
|
+
def applySparseOptFlow(self, raw_frame: np.array) -> np.array:
|
|
296
296
|
"""
|
|
297
297
|
Apply Sparse Optical Flow method to a raw frame.
|
|
298
298
|
|
|
@@ -328,7 +328,7 @@ class GMC:
|
|
|
328
328
|
return H
|
|
329
329
|
|
|
330
330
|
# Find correspondences
|
|
331
|
-
matchedKeypoints, status,
|
|
331
|
+
matchedKeypoints, status, _ = cv2.calcOpticalFlowPyrLK(self.prevFrame, frame, self.prevKeyPoints, None)
|
|
332
332
|
|
|
333
333
|
# Leave good correspondences only
|
|
334
334
|
prevPoints = []
|
|
@@ -343,8 +343,8 @@ class GMC:
|
|
|
343
343
|
currPoints = np.array(currPoints)
|
|
344
344
|
|
|
345
345
|
# Find rigid matrix
|
|
346
|
-
if
|
|
347
|
-
H,
|
|
346
|
+
if (prevPoints.shape[0] > 4) and (prevPoints.shape[0] == prevPoints.shape[0]):
|
|
347
|
+
H, _ = cv2.estimateAffinePartial2D(prevPoints, currPoints, cv2.RANSAC)
|
|
348
348
|
|
|
349
349
|
if self.downscale > 1.0:
|
|
350
350
|
H[0, 2] *= self.downscale
|
|
@@ -86,9 +86,12 @@ def on_train_epoch_end(trainer):
|
|
|
86
86
|
"""Log training metrics at the end of each train epoch to MLflow."""
|
|
87
87
|
if mlflow:
|
|
88
88
|
mlflow.log_metrics(
|
|
89
|
-
metrics=
|
|
89
|
+
metrics={
|
|
90
|
+
**SANITIZE(trainer.lr),
|
|
91
|
+
**SANITIZE(trainer.label_loss_items(trainer.tloss, prefix="train")),
|
|
92
|
+
},
|
|
93
|
+
step=trainer.epoch,
|
|
90
94
|
)
|
|
91
|
-
mlflow.log_metrics(metrics=SANITIZE(trainer.lr), step=trainer.epoch)
|
|
92
95
|
|
|
93
96
|
|
|
94
97
|
def on_fit_epoch_end(trainer):
|
|
@@ -115,6 +118,7 @@ def on_train_end(trainer):
|
|
|
115
118
|
callbacks = (
|
|
116
119
|
{
|
|
117
120
|
"on_pretrain_routine_end": on_pretrain_routine_end,
|
|
121
|
+
"on_train_epoch_end": on_train_epoch_end,
|
|
118
122
|
"on_fit_epoch_end": on_fit_epoch_end,
|
|
119
123
|
"on_train_end": on_train_end,
|
|
120
124
|
}
|
ultralytics/utils/metrics.py
CHANGED
|
@@ -331,7 +331,7 @@ class ConfusionMatrix:
|
|
|
331
331
|
gt_bboxes (Array[M, 4]): Ground truth bounding boxes with xyxy format.
|
|
332
332
|
gt_cls (Array[M]): The class labels.
|
|
333
333
|
"""
|
|
334
|
-
if gt_cls.
|
|
334
|
+
if gt_cls.shape[0] == 0: # Check if labels is empty
|
|
335
335
|
if detections is not None:
|
|
336
336
|
detections = detections[detections[:, 4] > self.conf]
|
|
337
337
|
detection_classes = detections[:, 5].int()
|
|
@@ -701,7 +701,7 @@ class Metric(SimpleClass):
|
|
|
701
701
|
Returns the mean Average Precision (mAP) at an IoU threshold of 0.5.
|
|
702
702
|
|
|
703
703
|
Returns:
|
|
704
|
-
(float): The
|
|
704
|
+
(float): The mAP at an IoU threshold of 0.5.
|
|
705
705
|
"""
|
|
706
706
|
return self.all_ap[:, 0].mean() if len(self.all_ap) else 0.0
|
|
707
707
|
|
|
@@ -711,7 +711,7 @@ class Metric(SimpleClass):
|
|
|
711
711
|
Returns the mean Average Precision (mAP) at an IoU threshold of 0.75.
|
|
712
712
|
|
|
713
713
|
Returns:
|
|
714
|
-
(float): The
|
|
714
|
+
(float): The mAP at an IoU threshold of 0.75.
|
|
715
715
|
"""
|
|
716
716
|
return self.all_ap[:, 5].mean() if len(self.all_ap) else 0.0
|
|
717
717
|
|
ultralytics/utils/tal.py
CHANGED
|
@@ -56,8 +56,8 @@ class TaskAlignedAssigner(nn.Module):
|
|
|
56
56
|
fg_mask (Tensor): shape(bs, num_total_anchors)
|
|
57
57
|
target_gt_idx (Tensor): shape(bs, num_total_anchors)
|
|
58
58
|
"""
|
|
59
|
-
self.bs = pd_scores.
|
|
60
|
-
self.n_max_boxes = gt_bboxes.
|
|
59
|
+
self.bs = pd_scores.shape[0]
|
|
60
|
+
self.n_max_boxes = gt_bboxes.shape[1]
|
|
61
61
|
|
|
62
62
|
if self.n_max_boxes == 0:
|
|
63
63
|
device = gt_bboxes.device
|
ultralytics/utils/torch_utils.py
CHANGED
|
@@ -190,7 +190,7 @@ def fuse_conv_and_bn(conv, bn):
|
|
|
190
190
|
fusedconv.weight.copy_(torch.mm(w_bn, w_conv).view(fusedconv.weight.shape))
|
|
191
191
|
|
|
192
192
|
# Prepare spatial bias
|
|
193
|
-
b_conv = torch.zeros(conv.weight.
|
|
193
|
+
b_conv = torch.zeros(conv.weight.shape[0], device=conv.weight.device) if conv.bias is None else conv.bias
|
|
194
194
|
b_bn = bn.bias - bn.weight.mul(bn.running_mean).div(torch.sqrt(bn.running_var + bn.eps))
|
|
195
195
|
fusedconv.bias.copy_(torch.mm(w_bn, b_conv.reshape(-1, 1)).reshape(-1) + b_bn)
|
|
196
196
|
|
|
@@ -221,7 +221,7 @@ def fuse_deconv_and_bn(deconv, bn):
|
|
|
221
221
|
fuseddconv.weight.copy_(torch.mm(w_bn, w_deconv).view(fuseddconv.weight.shape))
|
|
222
222
|
|
|
223
223
|
# Prepare spatial bias
|
|
224
|
-
b_conv = torch.zeros(deconv.weight.
|
|
224
|
+
b_conv = torch.zeros(deconv.weight.shape[1], device=deconv.weight.device) if deconv.bias is None else deconv.bias
|
|
225
225
|
b_bn = bn.bias - bn.weight.mul(bn.running_mean).div(torch.sqrt(bn.running_var + bn.eps))
|
|
226
226
|
fuseddconv.bias.copy_(torch.mm(w_bn, b_conv.reshape(-1, 1)).reshape(-1) + b_bn)
|
|
227
227
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: ultralytics
|
|
3
|
-
Version: 8.1.
|
|
3
|
+
Version: 8.1.10
|
|
4
4
|
Summary: Ultralytics YOLOv8 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
|
|
5
5
|
Author: Glenn Jocher, Ayush Chaurasia, Jing Qiu
|
|
6
6
|
Maintainer: Glenn Jocher, Ayush Chaurasia, Jing Qiu
|
|
@@ -55,7 +55,7 @@ Requires-Dist: mkdocs-material ; extra == 'dev'
|
|
|
55
55
|
Requires-Dist: mkdocstrings[python] ; extra == 'dev'
|
|
56
56
|
Requires-Dist: mkdocs-jupyter ; extra == 'dev'
|
|
57
57
|
Requires-Dist: mkdocs-redirects ; extra == 'dev'
|
|
58
|
-
Requires-Dist: mkdocs-ultralytics-plugin >=0.0.
|
|
58
|
+
Requires-Dist: mkdocs-ultralytics-plugin >=0.0.43 ; extra == 'dev'
|
|
59
59
|
Provides-Extra: explorer
|
|
60
60
|
Requires-Dist: lancedb ; extra == 'explorer'
|
|
61
61
|
Requires-Dist: duckdb ; extra == 'explorer'
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
ultralytics/__init__.py,sha256=
|
|
1
|
+
ultralytics/__init__.py,sha256=Acy7EBxuoFjR4DRjZv-Ou3q8wjwt1bpfECWw2GxLBUU,597
|
|
2
2
|
ultralytics/assets/bus.jpg,sha256=wCAZxJecGR63Od3ZRERe9Aja1Weayrb9Ug751DS_vGM,137419
|
|
3
3
|
ultralytics/assets/zidane.jpg,sha256=Ftc4aeMmen1O0A3o6GCDO9FlfBslLpTAw0gnetx7bts,50427
|
|
4
4
|
ultralytics/cfg/__init__.py,sha256=OZe3OfyNAeT1lRI7uJVM_Lla91mxGYgJMxrwyT7VP6o,20768
|
|
@@ -73,7 +73,7 @@ ultralytics/engine/exporter.py,sha256=1Xh1Yvwq-Le7BBvmSnNzfMcchmZQ2Jk26qlvWhXfVd
|
|
|
73
73
|
ultralytics/engine/model.py,sha256=hDAtM-E-5qZx6HMu7wQPo7L7Os8wr4eMZyf-l3llGhI,37636
|
|
74
74
|
ultralytics/engine/predictor.py,sha256=95ujaUYbDtui-s4hloGmJ0yVm9IC05Ck5dyoyNTk0BU,17832
|
|
75
75
|
ultralytics/engine/results.py,sha256=RIOSzGYBsPYvFNeqtoAw5u-fqgbzI6kNpg1FRQ3QVbI,27622
|
|
76
|
-
ultralytics/engine/trainer.py,sha256=
|
|
76
|
+
ultralytics/engine/trainer.py,sha256=3JQBpdDtnZTli2zz-czZrYv5ttnYMBJhiJD3ZhcelJM,34306
|
|
77
77
|
ultralytics/engine/tuner.py,sha256=yJTecrgsZbeE4XC8iJWoUA_DKACUnDSt8N1V_PTeCcc,11758
|
|
78
78
|
ultralytics/engine/validator.py,sha256=znVY4997-pMzx23FP_JpQczIEvWT5jp-sIEovYXI6RQ,14576
|
|
79
79
|
ultralytics/hub/__init__.py,sha256=e-pUvDu3PUDcrWfWfBUbcUTm0DTbVLagFHsjmrum9Xs,5035
|
|
@@ -102,10 +102,10 @@ ultralytics/models/sam/build.py,sha256=jJvloRbPwHvSnVWwM3pEdzpM5MdIcEHbRaqQk_S9l
|
|
|
102
102
|
ultralytics/models/sam/model.py,sha256=yLIjB00UZ6WDkcRBXtUmwmu8gTIsKyTdKsLAxI1SeoM,4706
|
|
103
103
|
ultralytics/models/sam/predict.py,sha256=C8dErpMefMwQvReJSvxRMaTala6OJbAckrGO3m508kI,23632
|
|
104
104
|
ultralytics/models/sam/modules/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
|
|
105
|
-
ultralytics/models/sam/modules/decoders.py,sha256=
|
|
105
|
+
ultralytics/models/sam/modules/decoders.py,sha256=7NWnBNupxGYvH0S1N0R6NBHxdVFRUrrnL9EqAw09J4E,7816
|
|
106
106
|
ultralytics/models/sam/modules/encoders.py,sha256=pRNZHzt2J2xD_D0Btu8pk4DcItfr6dRr9rcRfxoZZhU,24746
|
|
107
107
|
ultralytics/models/sam/modules/sam.py,sha256=zC4l4kcrIQD_ekczjl2l6dgaABqqjROZxQ-FDb-itt0,2783
|
|
108
|
-
ultralytics/models/sam/modules/tiny_encoder.py,sha256=
|
|
108
|
+
ultralytics/models/sam/modules/tiny_encoder.py,sha256=cPMmQDJA3BkM0yF97BdGLHkHig-8HPH7dYiOhaZi_ZI,29135
|
|
109
109
|
ultralytics/models/sam/modules/transformer.py,sha256=-wboK4gNKOJMP8J8ACN2JoK-xze40NZG696HsxdYObs,11170
|
|
110
110
|
ultralytics/models/utils/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
|
|
111
111
|
ultralytics/models/utils/loss.py,sha256=IMzcnDwwkgO9F6GDKVxrDdVdhUX_7d9uY4tX-AgtT0g,15134
|
|
@@ -129,7 +129,7 @@ ultralytics/models/yolo/pose/predict.py,sha256=illk4qyZvybc_XMo9TKT54FIkizx91MYv
|
|
|
129
129
|
ultralytics/models/yolo/pose/train.py,sha256=ki8bkT8WfIFjTKf1ofeRDqeIqmk6A8a7AFog7nM-otM,2926
|
|
130
130
|
ultralytics/models/yolo/pose/val.py,sha256=w_VIKzGcj_0CRNObPqk0NnDOfRN-xl2C6uwpFOkJH3Q,10607
|
|
131
131
|
ultralytics/models/yolo/segment/__init__.py,sha256=mSbKOE8BnHL7PL2nCOVG7dRM7CI6hJezFPPwZFjEmy8,247
|
|
132
|
-
ultralytics/models/yolo/segment/predict.py,sha256=
|
|
132
|
+
ultralytics/models/yolo/segment/predict.py,sha256=xtA0ZZyuh9WVpX7zZFdAeCkWnxhQ30ADEzSud_H6N7E,2491
|
|
133
133
|
ultralytics/models/yolo/segment/train.py,sha256=aOQpDIptZfKSl9mFa6B-3W3QccMRlmBINBkI9K8-3sQ,2298
|
|
134
134
|
ultralytics/models/yolo/segment/val.py,sha256=njiF6RWddS-HOWxVvlk5PXRw6UOgEt_HEOZVPF7rruQ,11745
|
|
135
135
|
ultralytics/nn/__init__.py,sha256=4BPLHY89xEM_al5uK0aOmFgiML6CMGEZbezxOvTjOEs,587
|
|
@@ -138,22 +138,22 @@ ultralytics/nn/tasks.py,sha256=fgnTEZ4g8jOp2XnvcrSGSDcVh0ifKs-o16Lt-NPCF5Y,38765
|
|
|
138
138
|
ultralytics/nn/modules/__init__.py,sha256=ejmeNK9L-yGUX3pGr_1-HlPcCdrf7XPLFVZ3OR0mmno,1954
|
|
139
139
|
ultralytics/nn/modules/block.py,sha256=1bi5rRzHNTg10VlRdpRP_xjTJHEIfMQ1FY2nIgHKmws,14488
|
|
140
140
|
ultralytics/nn/modules/conv.py,sha256=ndUYNL2f9DK41y1vVbtEusMByXy-LMMsBKlcWjRQ9Z8,12722
|
|
141
|
-
ultralytics/nn/modules/head.py,sha256=
|
|
141
|
+
ultralytics/nn/modules/head.py,sha256=X1xLqdONY-kRkM60WaiYfMZEnRUe6CX_zqtOyAzifmQ,19535
|
|
142
142
|
ultralytics/nn/modules/transformer.py,sha256=TgDpTjSkk1_-9IrIjm8bebcG5fSO9GVb5Onz0cdR21Q,17910
|
|
143
143
|
ultralytics/nn/modules/utils.py,sha256=6CCeDy6GGkDM7XjGm4FCtVpXoEuICIPCsruI8etNS3g,3197
|
|
144
144
|
ultralytics/solutions/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
|
|
145
145
|
ultralytics/solutions/ai_gym.py,sha256=d3XRr-u0vIp1Bi9mAwDzGkxBztnhWU_ak5e8XR2J31s,6006
|
|
146
146
|
ultralytics/solutions/distance_calculation.py,sha256=EQ5QIXuSLm5KcRtMD-wB3MbRwPo55vhrEmt3Rf49PPs,6328
|
|
147
|
-
ultralytics/solutions/heatmap.py,sha256=
|
|
148
|
-
ultralytics/solutions/object_counter.py,sha256=
|
|
149
|
-
ultralytics/solutions/speed_estimation.py,sha256=
|
|
147
|
+
ultralytics/solutions/heatmap.py,sha256=nOoAcXkJd1bhw8SNbqVTweVwIKrgdrZeUhMrvkNPhes,10928
|
|
148
|
+
ultralytics/solutions/object_counter.py,sha256=ON4Az1FX9lkiUwdvRddA-5NL0b47s1r9IaLfd2Qg_VU,10474
|
|
149
|
+
ultralytics/solutions/speed_estimation.py,sha256=TWSkFugyOvLgzfN9ywBT9pXmMvuVRbTc6L24GCtqgx8,6614
|
|
150
150
|
ultralytics/trackers/__init__.py,sha256=j72IgH2dZHQArMPK4YwcV5ieIw94fYvlGdQjB9cOQKw,227
|
|
151
151
|
ultralytics/trackers/basetrack.py,sha256=-vBDD-Q9lsxfTMK2w9kuqWGrYbRMmaBCCEbGGyR53gE,3675
|
|
152
152
|
ultralytics/trackers/bot_sort.py,sha256=39AvhYVbT7izF3--rX_e6Lhgb5czTA23gw6AgnNcRds,8601
|
|
153
153
|
ultralytics/trackers/byte_tracker.py,sha256=AQWpI-msOewPqPLnhvMTO_8Pk565IEd_ny6VvQQgMwk,18871
|
|
154
154
|
ultralytics/trackers/track.py,sha256=dl4qu2t3f_ZCUJqJqnrxDDXWfbpPdRFZVE8WGkcRFMg,3091
|
|
155
155
|
ultralytics/trackers/utils/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
|
|
156
|
-
ultralytics/trackers/utils/gmc.py,sha256=
|
|
156
|
+
ultralytics/trackers/utils/gmc.py,sha256=S3NKaY4X8iM36dViWBuzArJSHtxbGdsNHLvoJUROzVk,13798
|
|
157
157
|
ultralytics/trackers/utils/kalman_filter.py,sha256=JN1sAcfJZy8fTZxc8w3jUJnGQDKtgAL__p4nTR6RM2I,15168
|
|
158
158
|
ultralytics/trackers/utils/matching.py,sha256=c_pthBfu9sWeMVYe-dSecdWcQxUey-mQT2yMVsFH3VQ,5404
|
|
159
159
|
ultralytics/utils/__init__.py,sha256=iCP2iY1J4ZQ15fT6_uMOIWvAf19F1ZWBWlEKXGqSSBA,36882
|
|
@@ -166,12 +166,12 @@ ultralytics/utils/errors.py,sha256=GqP_Jgj_n0paxn8OMhn3DTCgoNkB2WjUcUaqs-M6SQk,8
|
|
|
166
166
|
ultralytics/utils/files.py,sha256=V1cD9sC3hGd5uNVdOa4uZGySGjnsXC6Lh7mjqI_UDxo,5275
|
|
167
167
|
ultralytics/utils/instance.py,sha256=fPClvPPtTk8VeXWiRv90DrFk1j1lTUKdYJtpZKUDDtA,15575
|
|
168
168
|
ultralytics/utils/loss.py,sha256=af2_eFPSR8S2t7dIh3H24WFkMYkN6mvreDEnOiYeAQc,32581
|
|
169
|
-
ultralytics/utils/metrics.py,sha256=
|
|
169
|
+
ultralytics/utils/metrics.py,sha256=ViQzjq9t9dVlK1Owz_jtLb7ybTImNd38RLYKrm4rXx8,53358
|
|
170
170
|
ultralytics/utils/ops.py,sha256=RxnsheSa_mDWaCm0gCKNTRz7baTKIMQfy38Z2FP4e-o,32936
|
|
171
171
|
ultralytics/utils/patches.py,sha256=2iMWzwBpAjTt0UzaPzFO5JPVoKklUhftuo_3H7xBoDc,2659
|
|
172
172
|
ultralytics/utils/plotting.py,sha256=GbF0jgnb2TgiIy40jU6nO5H_hGjCM3OYJ9kR3HnjjiY,44447
|
|
173
|
-
ultralytics/utils/tal.py,sha256=
|
|
174
|
-
ultralytics/utils/torch_utils.py,sha256=
|
|
173
|
+
ultralytics/utils/tal.py,sha256=5ZLwIt-8atPzZQk0uj0w_YFsSRqQV-NfpESUQ945P1s,16017
|
|
174
|
+
ultralytics/utils/torch_utils.py,sha256=79VbjnMxNV_xXLrJjXhYP9eXfSJmJPeyH4hZItKfkKc,25143
|
|
175
175
|
ultralytics/utils/triton.py,sha256=gg1finxno_tY2Ge9PMhmu7PI9wvoFZoiicdT4Bhqv3w,3936
|
|
176
176
|
ultralytics/utils/tuner.py,sha256=mMa3PT5zvpHsTfKgOvFlRhDpogdCD1qSdNBVmU5Xop4,6003
|
|
177
177
|
ultralytics/utils/callbacks/__init__.py,sha256=YrWqC3BVVaTLob4iCPR6I36mUxIUOpPJW7B_LjT78Qw,214
|
|
@@ -180,14 +180,14 @@ ultralytics/utils/callbacks/clearml.py,sha256=K7bDf5tS8xL4KeFMkoVDL2kKkil3f4qoKy
|
|
|
180
180
|
ultralytics/utils/callbacks/comet.py,sha256=9mLgOprENliphnxfd8iTwtkdhS6eR7J7-q4YWaHL0So,13744
|
|
181
181
|
ultralytics/utils/callbacks/dvc.py,sha256=WIClMsuvhiiyrwRv5BsZLxjsxYNJ3Y8Vq7zN0Bthtro,5045
|
|
182
182
|
ultralytics/utils/callbacks/hub.py,sha256=11L-5KK46HvB8uPouGupzZhwjfTpvKOM3L95zXTAjF0,3402
|
|
183
|
-
ultralytics/utils/callbacks/mlflow.py,sha256=
|
|
183
|
+
ultralytics/utils/callbacks/mlflow.py,sha256=JckTC8e8VPfpJTxNbPWuSINP62Y8VeNlAEn27oOMvFo,4909
|
|
184
184
|
ultralytics/utils/callbacks/neptune.py,sha256=5Z3ua5YBTUS56FH8VQKQG1aaIo9fH8GEyzC5q7p4ipQ,3756
|
|
185
185
|
ultralytics/utils/callbacks/raytune.py,sha256=6OgGNuC35F29lw8Dl_d0lue4-iBR6dqrBVQnIRQDx4E,632
|
|
186
186
|
ultralytics/utils/callbacks/tensorboard.py,sha256=fyhgBgcTmEIifBqxBJkoMZ6yQNBGhSLQBAsy770-RtA,4038
|
|
187
187
|
ultralytics/utils/callbacks/wb.py,sha256=03ACY2YwpTRigD0ZQH7_zlpwMdGw0lt23zX4d5Zaz28,6650
|
|
188
|
-
ultralytics-8.1.
|
|
189
|
-
ultralytics-8.1.
|
|
190
|
-
ultralytics-8.1.
|
|
191
|
-
ultralytics-8.1.
|
|
192
|
-
ultralytics-8.1.
|
|
193
|
-
ultralytics-8.1.
|
|
188
|
+
ultralytics-8.1.10.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
|
|
189
|
+
ultralytics-8.1.10.dist-info/METADATA,sha256=5HlHiyGCzzyTtYKRPLmt6egKtVS1lfg7QhpIXH1Ziqo,40205
|
|
190
|
+
ultralytics-8.1.10.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
|
191
|
+
ultralytics-8.1.10.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
|
|
192
|
+
ultralytics-8.1.10.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
|
|
193
|
+
ultralytics-8.1.10.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|