ultralytics 8.3.144__py3-none-any.whl → 8.3.146__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.
- tests/__init__.py +3 -0
- tests/test_cli.py +2 -7
- tests/test_python.py +42 -12
- ultralytics/__init__.py +1 -1
- ultralytics/cfg/__init__.py +0 -1
- ultralytics/cfg/datasets/coco8-grayscale.yaml +103 -0
- ultralytics/data/augment.py +2 -2
- ultralytics/engine/model.py +14 -13
- ultralytics/engine/results.py +4 -4
- ultralytics/engine/validator.py +1 -1
- ultralytics/models/nas/model.py +0 -8
- ultralytics/models/yolo/classify/val.py +1 -5
- ultralytics/models/yolo/detect/val.py +9 -16
- ultralytics/models/yolo/obb/val.py +24 -17
- ultralytics/models/yolo/pose/val.py +19 -14
- ultralytics/models/yolo/segment/val.py +52 -44
- ultralytics/solutions/ai_gym.py +3 -5
- ultralytics/solutions/analytics.py +17 -9
- ultralytics/solutions/heatmap.py +1 -1
- ultralytics/solutions/instance_segmentation.py +1 -1
- ultralytics/solutions/object_counter.py +2 -8
- ultralytics/solutions/solutions.py +5 -4
- ultralytics/trackers/bot_sort.py +4 -2
- ultralytics/utils/__init__.py +1 -2
- ultralytics/utils/benchmarks.py +18 -16
- ultralytics/utils/checks.py +10 -5
- ultralytics/utils/downloads.py +1 -0
- ultralytics/utils/metrics.py +25 -26
- ultralytics/utils/plotting.py +10 -7
- ultralytics/utils/torch_utils.py +2 -2
- {ultralytics-8.3.144.dist-info → ultralytics-8.3.146.dist-info}/METADATA +2 -2
- {ultralytics-8.3.144.dist-info → ultralytics-8.3.146.dist-info}/RECORD +36 -35
- {ultralytics-8.3.144.dist-info → ultralytics-8.3.146.dist-info}/WHEEL +1 -1
- {ultralytics-8.3.144.dist-info → ultralytics-8.3.146.dist-info}/entry_points.txt +0 -0
- {ultralytics-8.3.144.dist-info → ultralytics-8.3.146.dist-info}/licenses/LICENSE +0 -0
- {ultralytics-8.3.144.dist-info → ultralytics-8.3.146.dist-info}/top_level.txt +0 -0
ultralytics/utils/metrics.py
CHANGED
@@ -520,7 +520,7 @@ def plot_pr_curve(
|
|
520
520
|
py: np.ndarray,
|
521
521
|
ap: np.ndarray,
|
522
522
|
save_dir: Path = Path("pr_curve.png"),
|
523
|
-
names:
|
523
|
+
names: Dict[int, str] = {},
|
524
524
|
on_plot=None,
|
525
525
|
):
|
526
526
|
"""
|
@@ -531,7 +531,7 @@ def plot_pr_curve(
|
|
531
531
|
py (np.ndarray): Y values for the PR curve.
|
532
532
|
ap (np.ndarray): Average precision values.
|
533
533
|
save_dir (Path, optional): Path to save the plot.
|
534
|
-
names (
|
534
|
+
names (Dict[int, str], optional): Dictionary mapping class indices to class names.
|
535
535
|
on_plot (callable, optional): Function to call after plot is saved.
|
536
536
|
"""
|
537
537
|
import matplotlib.pyplot as plt # scope for faster 'import ultralytics'
|
@@ -563,7 +563,7 @@ def plot_mc_curve(
|
|
563
563
|
px: np.ndarray,
|
564
564
|
py: np.ndarray,
|
565
565
|
save_dir: Path = Path("mc_curve.png"),
|
566
|
-
names:
|
566
|
+
names: Dict[int, str] = {},
|
567
567
|
xlabel: str = "Confidence",
|
568
568
|
ylabel: str = "Metric",
|
569
569
|
on_plot=None,
|
@@ -575,7 +575,7 @@ def plot_mc_curve(
|
|
575
575
|
px (np.ndarray): X values for the metric-confidence curve.
|
576
576
|
py (np.ndarray): Y values for the metric-confidence curve.
|
577
577
|
save_dir (Path, optional): Path to save the plot.
|
578
|
-
names (
|
578
|
+
names (Dict[int, str], optional): Dictionary mapping class indices to class names.
|
579
579
|
xlabel (str, optional): X-axis label.
|
580
580
|
ylabel (str, optional): Y-axis label.
|
581
581
|
on_plot (callable, optional): Function to call after plot is saved.
|
@@ -645,7 +645,7 @@ def ap_per_class(
|
|
645
645
|
plot: bool = False,
|
646
646
|
on_plot=None,
|
647
647
|
save_dir: Path = Path(),
|
648
|
-
names:
|
648
|
+
names: Dict[int, str] = {},
|
649
649
|
eps: float = 1e-16,
|
650
650
|
prefix: str = "",
|
651
651
|
) -> Tuple:
|
@@ -660,7 +660,7 @@ def ap_per_class(
|
|
660
660
|
plot (bool, optional): Whether to plot PR curves or not.
|
661
661
|
on_plot (callable, optional): A callback to pass plots path and data when they are rendered.
|
662
662
|
save_dir (Path, optional): Directory to save the PR curves.
|
663
|
-
names (
|
663
|
+
names (Dict[int, str], optional): Dictionary of class names to plot PR curves.
|
664
664
|
eps (float, optional): A small value to avoid division by zero.
|
665
665
|
prefix (str, optional): A prefix string for saving the plot files.
|
666
666
|
|
@@ -720,8 +720,7 @@ def ap_per_class(
|
|
720
720
|
|
721
721
|
# Compute F1 (harmonic mean of precision and recall)
|
722
722
|
f1_curve = 2 * p_curve * r_curve / (p_curve + r_curve + eps)
|
723
|
-
names = [
|
724
|
-
names = dict(enumerate(names)) # to dict
|
723
|
+
names = {i: names[k] for i, k in enumerate(unique_classes) if k in names} # dict: only classes that have data
|
725
724
|
if plot:
|
726
725
|
plot_pr_curve(x, prec_values, ap, save_dir / f"{prefix}PR_curve.png", names, on_plot=on_plot)
|
727
726
|
plot_mc_curve(x, f1_curve, save_dir / f"{prefix}F1_curve.png", names, ylabel="F1", on_plot=on_plot)
|
@@ -915,20 +914,20 @@ class DetMetrics(SimpleClass, DataExportMixin):
|
|
915
914
|
Attributes:
|
916
915
|
save_dir (Path): A path to the directory where the output plots will be saved.
|
917
916
|
plot (bool): A flag that indicates whether to plot precision-recall curves for each class.
|
918
|
-
names (
|
917
|
+
names (Dict[int, str]): A dictionary of class names.
|
919
918
|
box (Metric): An instance of the Metric class for storing detection results.
|
920
|
-
speed (
|
919
|
+
speed (Dict[str, float]): A dictionary for storing execution times of different parts of the detection process.
|
921
920
|
task (str): The task type, set to 'detect'.
|
922
921
|
"""
|
923
922
|
|
924
|
-
def __init__(self, save_dir: Path = Path("."), plot: bool = False, names:
|
923
|
+
def __init__(self, save_dir: Path = Path("."), plot: bool = False, names: Dict[int, str] = {}) -> None:
|
925
924
|
"""
|
926
925
|
Initialize a DetMetrics instance with a save directory, plot flag, and class names.
|
927
926
|
|
928
927
|
Args:
|
929
928
|
save_dir (Path, optional): Directory to save plots.
|
930
929
|
plot (bool, optional): Whether to plot precision-recall curves.
|
931
|
-
names (
|
930
|
+
names (Dict[int, str], optional): Dictionary of class names.
|
932
931
|
"""
|
933
932
|
self.save_dir = save_dir
|
934
933
|
self.plot = plot
|
@@ -1033,21 +1032,21 @@ class SegmentMetrics(SimpleClass, DataExportMixin):
|
|
1033
1032
|
Attributes:
|
1034
1033
|
save_dir (Path): Path to the directory where the output plots should be saved.
|
1035
1034
|
plot (bool): Whether to save the detection and segmentation plots.
|
1036
|
-
names (
|
1037
|
-
box (Metric): An instance of the Metric class
|
1035
|
+
names (Dict[int, str]): Dictionary of class names.
|
1036
|
+
box (Metric): An instance of the Metric class for storing detection results.
|
1038
1037
|
seg (Metric): An instance of the Metric class to calculate mask segmentation metrics.
|
1039
|
-
speed (
|
1038
|
+
speed (Dict[str, float]): A dictionary for storing execution times of different parts of the detection process.
|
1040
1039
|
task (str): The task type, set to 'segment'.
|
1041
1040
|
"""
|
1042
1041
|
|
1043
|
-
def __init__(self, save_dir: Path = Path("."), plot: bool = False, names:
|
1042
|
+
def __init__(self, save_dir: Path = Path("."), plot: bool = False, names: Dict[int, str] = {}) -> None:
|
1044
1043
|
"""
|
1045
1044
|
Initialize a SegmentMetrics instance with a save directory, plot flag, and class names.
|
1046
1045
|
|
1047
1046
|
Args:
|
1048
1047
|
save_dir (Path, optional): Directory to save plots.
|
1049
1048
|
plot (bool, optional): Whether to plot precision-recall curves.
|
1050
|
-
names (
|
1049
|
+
names (Dict[int, str], optional): Dictionary of class names.
|
1051
1050
|
"""
|
1052
1051
|
self.save_dir = save_dir
|
1053
1052
|
self.plot = plot
|
@@ -1196,10 +1195,10 @@ class PoseMetrics(SegmentMetrics):
|
|
1196
1195
|
Attributes:
|
1197
1196
|
save_dir (Path): Path to the directory where the output plots should be saved.
|
1198
1197
|
plot (bool): Whether to save the detection and pose plots.
|
1199
|
-
names (
|
1200
|
-
box (Metric): An instance of the Metric class to calculate box detection metrics.
|
1198
|
+
names (Dict[int, str]): Dictionary of class names.
|
1201
1199
|
pose (Metric): An instance of the Metric class to calculate pose metrics.
|
1202
|
-
|
1200
|
+
box (Metric): An instance of the Metric class for storing detection results.
|
1201
|
+
speed (Dict[str, float]): A dictionary for storing execution times of different parts of the detection process.
|
1203
1202
|
task (str): The task type, set to 'pose'.
|
1204
1203
|
|
1205
1204
|
Methods:
|
@@ -1212,14 +1211,14 @@ class PoseMetrics(SegmentMetrics):
|
|
1212
1211
|
results_dict: Return the dictionary containing all the detection and segmentation metrics and fitness score.
|
1213
1212
|
"""
|
1214
1213
|
|
1215
|
-
def __init__(self, save_dir: Path = Path("."), plot: bool = False, names:
|
1214
|
+
def __init__(self, save_dir: Path = Path("."), plot: bool = False, names: Dict[int, str] = {}) -> None:
|
1216
1215
|
"""
|
1217
1216
|
Initialize the PoseMetrics class with directory path, class names, and plotting options.
|
1218
1217
|
|
1219
1218
|
Args:
|
1220
1219
|
save_dir (Path, optional): Directory to save plots.
|
1221
1220
|
plot (bool, optional): Whether to plot precision-recall curves.
|
1222
|
-
names (
|
1221
|
+
names (Dict[int, str], optional): Dictionary of class names.
|
1223
1222
|
"""
|
1224
1223
|
super().__init__(save_dir, plot, names)
|
1225
1224
|
self.save_dir = save_dir
|
@@ -1420,23 +1419,23 @@ class OBBMetrics(SimpleClass, DataExportMixin):
|
|
1420
1419
|
Attributes:
|
1421
1420
|
save_dir (Path): Path to the directory where the output plots should be saved.
|
1422
1421
|
plot (bool): Whether to save the detection plots.
|
1423
|
-
names (
|
1422
|
+
names (Dict[int, str]): Dictionary of class names.
|
1424
1423
|
box (Metric): An instance of the Metric class for storing detection results.
|
1425
|
-
speed (
|
1424
|
+
speed (Dict[str, float]): A dictionary for storing execution times of different parts of the detection process.
|
1426
1425
|
task (str): The task type, set to 'obb'.
|
1427
1426
|
|
1428
1427
|
References:
|
1429
1428
|
https://arxiv.org/pdf/2106.06072.pdf
|
1430
1429
|
"""
|
1431
1430
|
|
1432
|
-
def __init__(self, save_dir: Path = Path("."), plot: bool = False, names:
|
1431
|
+
def __init__(self, save_dir: Path = Path("."), plot: bool = False, names: Dict[int, str] = {}) -> None:
|
1433
1432
|
"""
|
1434
1433
|
Initialize an OBBMetrics instance with directory, plotting, and class names.
|
1435
1434
|
|
1436
1435
|
Args:
|
1437
1436
|
save_dir (Path, optional): Directory to save plots.
|
1438
1437
|
plot (bool, optional): Whether to plot precision-recall curves.
|
1439
|
-
names (
|
1438
|
+
names (Dict[int, str], optional): Dictionary of class names.
|
1440
1439
|
"""
|
1441
1440
|
self.save_dir = save_dir
|
1442
1441
|
self.plot = plot
|
ultralytics/utils/plotting.py
CHANGED
@@ -201,6 +201,11 @@ class Annotator:
|
|
201
201
|
input_is_pil = isinstance(im, Image.Image)
|
202
202
|
self.pil = pil or non_ascii or input_is_pil
|
203
203
|
self.lw = line_width or max(round(sum(im.size if input_is_pil else im.shape) / 2 * 0.003), 2)
|
204
|
+
if not input_is_pil:
|
205
|
+
if im.shape[2] == 1: # handle grayscale
|
206
|
+
im = cv2.cvtColor(im, cv2.COLOR_GRAY2BGR)
|
207
|
+
elif im.shape[2] > 3: # multispectral
|
208
|
+
im = np.ascontiguousarray(im[..., :3])
|
204
209
|
if self.pil: # use PIL
|
205
210
|
self.im = im if input_is_pil else Image.fromarray(im)
|
206
211
|
if self.im.mode not in {"RGB", "RGBA"}: # multispectral
|
@@ -216,10 +221,6 @@ class Annotator:
|
|
216
221
|
if check_version(pil_version, "9.2.0"):
|
217
222
|
self.font.getsize = lambda x: self.font.getbbox(x)[2:4] # text width, height
|
218
223
|
else: # use cv2
|
219
|
-
if im.shape[2] == 1: # handle grayscale
|
220
|
-
im = cv2.cvtColor(im, cv2.COLOR_GRAY2BGR)
|
221
|
-
elif im.shape[2] > 3: # multispectral
|
222
|
-
im = np.ascontiguousarray(im[..., :3])
|
223
224
|
assert im.data.contiguous, "Image not contiguous. Apply np.ascontiguousarray(im) to Annotator input images."
|
224
225
|
self.im = im if im.flags.writeable else im.copy()
|
225
226
|
self.tf = max(self.lw - 1, 1) # font thickness
|
@@ -644,7 +645,7 @@ def save_one_box(
|
|
644
645
|
gain (float, optional): A multiplicative factor to increase the size of the bounding box.
|
645
646
|
pad (int, optional): The number of pixels to add to the width and height of the bounding box.
|
646
647
|
square (bool, optional): If True, the bounding box will be transformed into a square.
|
647
|
-
BGR (bool, optional): If True, the image will be
|
648
|
+
BGR (bool, optional): If True, the image will be returned in BGR format, otherwise in RGB.
|
648
649
|
save (bool, optional): If True, the cropped image will be saved to disk.
|
649
650
|
|
650
651
|
Returns:
|
@@ -664,12 +665,14 @@ def save_one_box(
|
|
664
665
|
b[:, 2:] = b[:, 2:] * gain + pad # box wh * gain + pad
|
665
666
|
xyxy = ops.xywh2xyxy(b).long()
|
666
667
|
xyxy = ops.clip_boxes(xyxy, im.shape)
|
667
|
-
|
668
|
+
grayscale = im.shape[2] == 1 # grayscale image
|
669
|
+
crop = im[int(xyxy[0, 1]) : int(xyxy[0, 3]), int(xyxy[0, 0]) : int(xyxy[0, 2]), :: (1 if BGR or grayscale else -1)]
|
668
670
|
if save:
|
669
671
|
file.parent.mkdir(parents=True, exist_ok=True) # make directory
|
670
672
|
f = str(increment_path(file).with_suffix(".jpg"))
|
671
673
|
# cv2.imwrite(f, crop) # save BGR, https://github.com/ultralytics/yolov5/issues/7007 chroma subsampling issue
|
672
|
-
|
674
|
+
crop = crop.squeeze(-1) if grayscale else crop[..., ::-1] if BGR else crop
|
675
|
+
Image.fromarray(crop).save(f, quality=95, subsampling=0) # save RGB
|
673
676
|
return crop
|
674
677
|
|
675
678
|
|
ultralytics/utils/torch_utils.py
CHANGED
@@ -10,7 +10,7 @@ from contextlib import contextmanager
|
|
10
10
|
from copy import deepcopy
|
11
11
|
from datetime import datetime
|
12
12
|
from pathlib import Path
|
13
|
-
from typing import Union
|
13
|
+
from typing import Any, Dict, Union
|
14
14
|
|
15
15
|
import numpy as np
|
16
16
|
import torch
|
@@ -704,7 +704,7 @@ class ModelEMA:
|
|
704
704
|
copy_attr(self.ema, model, include, exclude)
|
705
705
|
|
706
706
|
|
707
|
-
def strip_optimizer(f: Union[str, Path] = "best.pt", s: str = "", updates:
|
707
|
+
def strip_optimizer(f: Union[str, Path] = "best.pt", s: str = "", updates: Dict[str, Any] = None) -> Dict[str, Any]:
|
708
708
|
"""
|
709
709
|
Strip optimizer from 'f' to finalize training, optionally save as 's'.
|
710
710
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: ultralytics
|
3
|
-
Version: 8.3.
|
3
|
+
Version: 8.3.146
|
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>
|
@@ -55,7 +55,7 @@ Requires-Dist: coverage[toml]; extra == "dev"
|
|
55
55
|
Requires-Dist: mkdocs>=1.6.0; extra == "dev"
|
56
56
|
Requires-Dist: mkdocs-material>=9.5.9; extra == "dev"
|
57
57
|
Requires-Dist: mkdocstrings[python]; extra == "dev"
|
58
|
-
Requires-Dist: mkdocs-ultralytics-plugin>=0.1.
|
58
|
+
Requires-Dist: mkdocs-ultralytics-plugin>=0.1.19; extra == "dev"
|
59
59
|
Requires-Dist: mkdocs-macros-plugin>=1.0.5; extra == "dev"
|
60
60
|
Provides-Extra: export
|
61
61
|
Requires-Dist: onnx<1.18.0,>=1.12.0; extra == "export"
|
@@ -1,16 +1,16 @@
|
|
1
|
-
tests/__init__.py,sha256=
|
1
|
+
tests/__init__.py,sha256=b4KP5_q-2IO8Br8YHOSLYnn7IwZS81l_vfEF2YPa2lM,894
|
2
2
|
tests/conftest.py,sha256=JjgKSs36ZaGmmtqGmAapmFSoFF1YwyV3IZsOgqt2IVM,2593
|
3
|
-
tests/test_cli.py,sha256=
|
3
|
+
tests/test_cli.py,sha256=Kpfxq_RlbKK1Z8xNScDUbre6GB7neZhXZAYGI1tiDS8,5660
|
4
4
|
tests/test_cuda.py,sha256=-nQsfF3lGfqLm6cIeu_BCiXqLj7HzpL7R1GzPEc6z2I,8128
|
5
5
|
tests/test_engine.py,sha256=Jpt2KVrltrEgh2-3Ykouz-2Z_2fza0eymL5ectRXadM,4922
|
6
6
|
tests/test_exports.py,sha256=HmMKOTCia9ZDC0VYc_EPmvBTM5LM5eeI1NF_pKjLpd8,9677
|
7
7
|
tests/test_integrations.py,sha256=cQfgueFhEZ8Xs-tF0uiIEhvn0DlhOH-Wqrx96LXp3D0,6303
|
8
|
-
tests/test_python.py,sha256=
|
8
|
+
tests/test_python.py,sha256=x5m2RAVWnzu5uT5sYnx8ybHpHycToWjzfJJZUklVxqQ,27386
|
9
9
|
tests/test_solutions.py,sha256=tuf6n_fsI8KvSdJrnc-cqP2qYdiYqCWuVrx0z9dOz3Q,13213
|
10
|
-
ultralytics/__init__.py,sha256=
|
10
|
+
ultralytics/__init__.py,sha256=rr8AlK0l4sHv7KJzILIXcGq-I8vDhSKXc5B_8Lf_yO8,730
|
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=H19EalaxuIa44J_nVBrNxMj8EAPmlZl3ecbX0-xK8y8,39600
|
14
14
|
ultralytics/cfg/default.yaml,sha256=oFG6llJO-Py5H-cR9qs-7FieJamroDLwpbrkhmfROOM,8307
|
15
15
|
ultralytics/cfg/datasets/Argoverse.yaml,sha256=_xlEDIJ9XkUo0v_iNL7FW079BoSeZtKSuLteKTtGbA8,3275
|
16
16
|
ultralytics/cfg/datasets/DOTAv1.5.yaml,sha256=SHND_CFkojxw5iQD5Mcgju2kCZIl0gW2ajuzv1cqoL0,1224
|
@@ -29,6 +29,7 @@ ultralytics/cfg/datasets/coco-pose.yaml,sha256=NHdgSsGkHS0-X636p2-hExTJGdoWUSP1T
|
|
29
29
|
ultralytics/cfg/datasets/coco.yaml,sha256=chdzyIHLfekjOcng-G2_bpC57VUcHPjVvW8ENJfiQao,2619
|
30
30
|
ultralytics/cfg/datasets/coco128-seg.yaml,sha256=ifDPbVuuN7N2_3e8e_YBdTVcANYIOKORQMgXlsPS6D4,1995
|
31
31
|
ultralytics/cfg/datasets/coco128.yaml,sha256=udymG6qzF9Bvh_JYC7BOSXOUeA1Ia8ZmR2EzNGsY6YY,1978
|
32
|
+
ultralytics/cfg/datasets/coco8-grayscale.yaml,sha256=U3jjPUoFahLch4N11qjG1myhE5wsy2tFeC23I9w_nr0,1974
|
32
33
|
ultralytics/cfg/datasets/coco8-multispectral.yaml,sha256=h5Kbx9y3wjWUw6p8jeQVUaIs07VoQS7ZY0vMau5WGAg,2076
|
33
34
|
ultralytics/cfg/datasets/coco8-pose.yaml,sha256=yfw2_SkCZO3ttPLiI0mfjxv5gr4-CA3i0elYP5PY71k,1022
|
34
35
|
ultralytics/cfg/datasets/coco8-seg.yaml,sha256=wpfFI-GfL5asbLtFyaHLE6593jdka7waE07Am3_eg8w,1926
|
@@ -104,7 +105,7 @@ ultralytics/cfg/trackers/botsort.yaml,sha256=TpRaK5kH_-QbjCQ7ekM4s_7j8I8ti3q8Hs7
|
|
104
105
|
ultralytics/cfg/trackers/bytetrack.yaml,sha256=6u-tiZlk16EqEwkNXaMrza6PAQmWj_ypgv26LGCtPDg,886
|
105
106
|
ultralytics/data/__init__.py,sha256=nAXaL1puCc7z_NjzQNlJnhbVhT9Fla2u7Dsqo7q1dAc,644
|
106
107
|
ultralytics/data/annotator.py,sha256=uAgd7K-yudxiwdNqHz0ubfFg5JsfNlae4cgxdvCMyuY,3030
|
107
|
-
ultralytics/data/augment.py,sha256=
|
108
|
+
ultralytics/data/augment.py,sha256=fvYug6B0qrSSS8IYpvdju9uENnEJWCf-GNG5WqIayng,128964
|
108
109
|
ultralytics/data/base.py,sha256=mRcuehK1thNuuzQGL6D1AaZkod71oHRdYTod_zdQZQg,19688
|
109
110
|
ultralytics/data/build.py,sha256=Djz6stD1FXmFhnoUJp-MKp7geu-k3xhnvt9kfXFKGhI,11020
|
110
111
|
ultralytics/data/converter.py,sha256=oKW8ODtvFOKBx9Un8n87xUUm3b5GStU4ViIBH5UDylM,27200
|
@@ -119,12 +120,12 @@ ultralytics/data/scripts/get_coco128.sh,sha256=qmRQl_hOKrsdHrTrnyQuFIH01oDz3lfaz
|
|
119
120
|
ultralytics/data/scripts/get_imagenet.sh,sha256=hr42H16bM47iT27rgS7MpEo-GeOZAYUQXgr0B2cwn48,1705
|
120
121
|
ultralytics/engine/__init__.py,sha256=lm6MckFYCPTbqIoX7w0s_daxdjNeBeKW6DXppv1-QUM,70
|
121
122
|
ultralytics/engine/exporter.py,sha256=Ug0HvQSseQA9k4jb_CUGXKPg9w082W1cocwPxxtXgkM,73902
|
122
|
-
ultralytics/engine/model.py,sha256=
|
123
|
+
ultralytics/engine/model.py,sha256=nOhlQFUTXrghmAfHLo97rji8HCt2vzIhGO6TruWvrNI,53315
|
123
124
|
ultralytics/engine/predictor.py,sha256=30fBpuwOuNT3hr8bju4coeOr-jqU_8hDYESugmowLBE,22151
|
124
|
-
ultralytics/engine/results.py,sha256=
|
125
|
+
ultralytics/engine/results.py,sha256=Mb8pBTOrBtQh0PQtGVbhRZ_C1VyqYFumjLggiKCRIJs,72295
|
125
126
|
ultralytics/engine/trainer.py,sha256=zZ2Lm7VJOlBX-Ya52ec3n3IlSn9_yM5fbsRIWGeGOyo,39556
|
126
127
|
ultralytics/engine/tuner.py,sha256=4ue7JbMFQp7JcWhhwCAY-b-xZsjm5VKVlPFDUTyxt_8,12789
|
127
|
-
ultralytics/engine/validator.py,sha256=
|
128
|
+
ultralytics/engine/validator.py,sha256=2YEdIn2DpPdUPjwDJDR0d0DU8BiwFmh2_502xDPGwMo,16953
|
128
129
|
ultralytics/hub/__init__.py,sha256=ulPtceI3hqud03mvqoXccBaa1e4nveYwC9cddyuBUlo,6599
|
129
130
|
ultralytics/hub/auth.py,sha256=5uMPzZt8aO-YsnEWADzc1qBUt9c30RTIfrGo5SWTrv4,6271
|
130
131
|
ultralytics/hub/session.py,sha256=UeUSRbdclSBPJQfpSNGeY13gb1O2Bhzh0Aj7cXum6P4,18518
|
@@ -137,7 +138,7 @@ ultralytics/models/fastsam/predict.py,sha256=G-o8hs8W5XmqSN5G37zi6q9FglFnZSbD6qH
|
|
137
138
|
ultralytics/models/fastsam/utils.py,sha256=yuCXB4CVjRx8lDf61DP8B6qMx7TVf7AynQvdWREeFco,884
|
138
139
|
ultralytics/models/fastsam/val.py,sha256=hDGCcQl04GA8ldDlRHUN3fri_N2Aev3Vu7-r3BftmvE,2335
|
139
140
|
ultralytics/models/nas/__init__.py,sha256=wybeHZuAXMNeXMjKTbK55FZmXJkA4K9IozDeFM9OB-s,207
|
140
|
-
ultralytics/models/nas/model.py,sha256=
|
141
|
+
ultralytics/models/nas/model.py,sha256=kQeF3mkVHLLsoTL9F32CrYITNsdbTrYF6lEgHclhKN0,3824
|
141
142
|
ultralytics/models/nas/predict.py,sha256=J4UT7nwi_h63lJ3a_gYac-Ws8wFYingZINxMqSoaX5E,2706
|
142
143
|
ultralytics/models/nas/val.py,sha256=QUTE3zuhJLVqmDGd2n7iSSk7X6jKZCRxufFkBbyxYYo,1548
|
143
144
|
ultralytics/models/rtdetr/__init__.py,sha256=_jEHmOjI_QP_nT3XJXLgYHQ6bXG4EL8Gnvn1y_eev1g,225
|
@@ -167,23 +168,23 @@ ultralytics/models/yolo/model.py,sha256=C0wInQC6rFuFOGpdAen1s2e5LIFDmqevto8uPbpm
|
|
167
168
|
ultralytics/models/yolo/classify/__init__.py,sha256=9--HVaNOfI1K7rn_rRqclL8FUAnpfeBrRqEQIaQw2xM,383
|
168
169
|
ultralytics/models/yolo/classify/predict.py,sha256=_GiN6muuZOBrMS1KER85FE4ktcw_Onn1bZdGvpbsGCE,4618
|
169
170
|
ultralytics/models/yolo/classify/train.py,sha256=jXErkxnsC3pBFQBrFxObF8BJyqkckcw3C_qHMSWZrsY,10312
|
170
|
-
ultralytics/models/yolo/classify/val.py,sha256=
|
171
|
+
ultralytics/models/yolo/classify/val.py,sha256=G2huxA1Lf2BL4OUK0Gw43klhG3eLOFMFfhnFjmziKhQ,9721
|
171
172
|
ultralytics/models/yolo/detect/__init__.py,sha256=GIRsLYR-kT4JJx7lh4ZZAFGBZj0aebokuU0A7JbjDVA,257
|
172
173
|
ultralytics/models/yolo/detect/predict.py,sha256=ySUsdIf8dw00bzWhcxN1jZwLWKPRT2M7-N7TNL3o4zo,5387
|
173
174
|
ultralytics/models/yolo/detect/train.py,sha256=qCWz0nvU-pQofa-_F7UhUoLQe-U1ExW0mvE5ZHnav4o,9818
|
174
|
-
ultralytics/models/yolo/detect/val.py,sha256=
|
175
|
+
ultralytics/models/yolo/detect/val.py,sha256=MCXImLgaoTPDoQvQW9KZyUrtHxVW5xAY3-bxdenZe-c,19164
|
175
176
|
ultralytics/models/yolo/obb/__init__.py,sha256=tQmpG8wVHsajWkZdmD6cjGohJ4ki64iSXQT8JY_dydo,221
|
176
177
|
ultralytics/models/yolo/obb/predict.py,sha256=4r1eSld6TNJlk9JG56e-DX6oPL8uBBqiuztyBpxWlHE,2888
|
177
178
|
ultralytics/models/yolo/obb/train.py,sha256=bnYFAMur7Uvbw5Dc09-S2ge7B05iGX-t37Ksgc0ef6g,3921
|
178
|
-
ultralytics/models/yolo/obb/val.py,sha256=
|
179
|
+
ultralytics/models/yolo/obb/val.py,sha256=pizYmRUkSlglQnNjZi0DeZehCJE9y5CmYjs_tGLDta4,14394
|
179
180
|
ultralytics/models/yolo/pose/__init__.py,sha256=63xmuHZLNzV8I76HhVXAq4f2W0KTk8Oi9eL-Y204LyQ,227
|
180
181
|
ultralytics/models/yolo/pose/predict.py,sha256=oePbV_IVRt0xPcTiycFAIixiX7bScth0d1uOOtdeErU,3773
|
181
182
|
ultralytics/models/yolo/pose/train.py,sha256=6i1EQx-f112skBBBhCk6JIRKLjCoTEqw2ECJrc53Ku8,6862
|
182
|
-
ultralytics/models/yolo/pose/val.py,sha256=
|
183
|
+
ultralytics/models/yolo/pose/val.py,sha256=2QPhqVr90Aww2RKxuK36kGh_m3vbvWdMDhBDCb8Ho6M,19598
|
183
184
|
ultralytics/models/yolo/segment/__init__.py,sha256=3IThhZ1wlkY9FvmWm9cE-5-ZyE6F1FgzAtQ6jOOFzzw,275
|
184
185
|
ultralytics/models/yolo/segment/predict.py,sha256=qlprQCZn4_bpjpI08U0MU9Q9_1gpHrw_7MXwtXE1l1Y,5377
|
185
186
|
ultralytics/models/yolo/segment/train.py,sha256=026mRDOIjJ0ctMQQ2N9hRP6E5oLj2meGKO46u_MzrDk,5523
|
186
|
-
ultralytics/models/yolo/segment/val.py,sha256=
|
187
|
+
ultralytics/models/yolo/segment/val.py,sha256=KMB63KwqWF06mEwBgB7PqNdDy0qSzc0tYKPEvC1ykCg,19020
|
187
188
|
ultralytics/models/yolo/world/__init__.py,sha256=nlh8I6t8hMGz_vZg8QSlsUW1R-2eKvn9CGUoPPQEGhA,131
|
188
189
|
ultralytics/models/yolo/world/train.py,sha256=94_hgCluzsv39JkBVDmR2gjuycYjeJC8wVrCfrjpENk,7806
|
189
190
|
ultralytics/models/yolo/world/train_world.py,sha256=YJm37ZTgr0CoE_sYrjxN45w9mICr2RMWfWZrriiHqbM,9022
|
@@ -204,21 +205,21 @@ ultralytics/nn/modules/head.py,sha256=zTXFXc46ljPdP3mjgH7B3y2bPIjvbVPtgTu_rQCV8x
|
|
204
205
|
ultralytics/nn/modules/transformer.py,sha256=PW5-6gzOP3_rZ_uAkmxvI42nU5bkrgbgLKCy5PC5px4,31415
|
205
206
|
ultralytics/nn/modules/utils.py,sha256=rn8yTObZGkQoqVzjbZWLaHiytppG4ffjMME4Lw60glM,6092
|
206
207
|
ultralytics/solutions/__init__.py,sha256=ZoeAQavTLp8aClnhZ9tbl6lxy86GxofyGvZWTx2aWkI,1209
|
207
|
-
ultralytics/solutions/ai_gym.py,sha256=
|
208
|
-
ultralytics/solutions/analytics.py,sha256=
|
208
|
+
ultralytics/solutions/ai_gym.py,sha256=A8vzdjTqOF2mFAiiy7zu3f8lzwqLJ07dk5aqZ8p-x_w,5256
|
209
|
+
ultralytics/solutions/analytics.py,sha256=IfYlXV4vufpaOZz9h8cT1Vx9RjsqQYTCB7SbDlR0zv0,12784
|
209
210
|
ultralytics/solutions/config.py,sha256=1HZvgWPt7duDxqAaOTyu4-TOBeRJeWx5EQgUwnyyO50,5394
|
210
211
|
ultralytics/solutions/distance_calculation.py,sha256=e2Xa7dVOqiuk43JNakoxQlX48evEgZiEtxdtHTdlAsk,5931
|
211
|
-
ultralytics/solutions/heatmap.py,sha256=
|
212
|
-
ultralytics/solutions/instance_segmentation.py,sha256=
|
212
|
+
ultralytics/solutions/heatmap.py,sha256=IVnTOyIbxKrhmnzGbkncIqPakPHeJe4nrwQkOPJ00wY,5421
|
213
|
+
ultralytics/solutions/instance_segmentation.py,sha256=HBWkCwmRa0jk84q4fhANzGpyirAtiCkAKRt0j9ED_Cw,3739
|
213
214
|
ultralytics/solutions/object_blurrer.py,sha256=UVd9EGpyb_fJXFnPg3lbnhWxY1ntHVWmIJ2ragbZ6eY,3942
|
214
|
-
ultralytics/solutions/object_counter.py,sha256=
|
215
|
+
ultralytics/solutions/object_counter.py,sha256=1iPJW_59iIw8DZedYdjw7HIQINpQtEBCd190g6TosNA,9353
|
215
216
|
ultralytics/solutions/object_cropper.py,sha256=SVB9fflB7-juZWUARpi-kndSZDVI-oXjHg4WUnOuA9A,3470
|
216
217
|
ultralytics/solutions/parking_management.py,sha256=IHWK48DZa6PwaOKUu3XTJAZCxF6WtTlCno7N8W6VR4k,13481
|
217
218
|
ultralytics/solutions/queue_management.py,sha256=_K6ugLMDfpp37S-LFV36K3QXf3vqjfxji8BPP_-6iqc,4337
|
218
219
|
ultralytics/solutions/region_counter.py,sha256=8vNrr0SnEBJ7ngD_whWpD7jMlrzuYGWxUuZx3WOv0ys,5739
|
219
220
|
ultralytics/solutions/security_alarm.py,sha256=HXoPFlTOVp5eUecPuGIl_DXLKuN8-M32BCvCOd_vRac,6279
|
220
221
|
ultralytics/solutions/similarity_search.py,sha256=GdrPEpfBwLpM5Mx4XQiTrahgdQgiSIeGdHWWTLQl5xU,9926
|
221
|
-
ultralytics/solutions/solutions.py,sha256=
|
222
|
+
ultralytics/solutions/solutions.py,sha256=3JGuGGzEvgKHw_XYNv11yo_PxZlSqduIuW8fyrNeZ4E,37407
|
222
223
|
ultralytics/solutions/speed_estimation.py,sha256=_4tIfWPI7O_hYRQAvNrALMzdy2sBR5_0BxnPdJb0Gks,5823
|
223
224
|
ultralytics/solutions/streamlit_inference.py,sha256=menjJLsuP7AsQJSnBo7gRHfMlYE8HzMp0YNGqCU64n0,9986
|
224
225
|
ultralytics/solutions/trackzone.py,sha256=LRCG5HhcZb9PiYWbkUPeWuIOnNskPE4FEDY6a3Y4ctA,3850
|
@@ -226,31 +227,31 @@ ultralytics/solutions/vision_eye.py,sha256=LCb-2YPVvEks9e7xqZtNGftpAXNaZhEUb5yb3
|
|
226
227
|
ultralytics/solutions/templates/similarity-search.html,sha256=DPoAO-1H-KXNt_T8mGtSCsYUEi_5Nrx01p0cZfX-E8Q,3790
|
227
228
|
ultralytics/trackers/__init__.py,sha256=Zlu_Ig5osn7hqch_g5Be_e4pwZUkeeTQiesJCi0pFGI,255
|
228
229
|
ultralytics/trackers/basetrack.py,sha256=-skBFFatzgJFAPN9Frm1u1h_RDUg3WOlxG6eHQxp2Gw,4384
|
229
|
-
ultralytics/trackers/bot_sort.py,sha256=
|
230
|
+
ultralytics/trackers/bot_sort.py,sha256=knP5oo1LC45Lrato8LpcY_j4KBojQFP1lxT_NJxhEUo,12134
|
230
231
|
ultralytics/trackers/byte_tracker.py,sha256=CNS10VOGPtXXEimi0TaO88TAIcOBgo8ALF9H79iK_uQ,21633
|
231
232
|
ultralytics/trackers/track.py,sha256=EmYi42ujLP3_CKuS6CmO_9dw8Ekg7-0WWJQeYfQucv0,4804
|
232
233
|
ultralytics/trackers/utils/__init__.py,sha256=lm6MckFYCPTbqIoX7w0s_daxdjNeBeKW6DXppv1-QUM,70
|
233
234
|
ultralytics/trackers/utils/gmc.py,sha256=9IvCf5MhBYY9ppVHykN02_oBWHmE98R8EaYFKaykdV0,14032
|
234
235
|
ultralytics/trackers/utils/kalman_filter.py,sha256=PPmM0lwBMdT_hGojvfLoUsBUFMBBMNRAxKbMcQa3wJ0,21619
|
235
236
|
ultralytics/trackers/utils/matching.py,sha256=uSYtywqi1lE_uNN1FwuBFPyISfDQXHMu8K5KH69nrRI,7160
|
236
|
-
ultralytics/utils/__init__.py,sha256=
|
237
|
+
ultralytics/utils/__init__.py,sha256=CahopjtuOs7q9uKm5NX89vm8iGE8_DJlwvmvX71ezQE,59523
|
237
238
|
ultralytics/utils/autobatch.py,sha256=33m8YgggLIhltDqMXZ5OE-FGs2QiHrl2-LfgY1mI4cw,5119
|
238
239
|
ultralytics/utils/autodevice.py,sha256=AvgXFt8c1Cg4icKh0Hbhhz8UmVQ2Wjyfdfkeb2C8zck,8855
|
239
|
-
ultralytics/utils/benchmarks.py,sha256=
|
240
|
-
ultralytics/utils/checks.py,sha256=
|
240
|
+
ultralytics/utils/benchmarks.py,sha256=14jidnH74g_ZCChuJF5qUnQ2YugX5amGTjea9__RlJ4,30836
|
241
|
+
ultralytics/utils/checks.py,sha256=PPVmxfxoHuC4YR7i56uklCKXFAPnltzbHHCxUwERjUQ,34100
|
241
242
|
ultralytics/utils/dist.py,sha256=A9lDGtGefTjSVvVS38w86GOdbtLzNBDZuDGK0MT4PRI,4170
|
242
|
-
ultralytics/utils/downloads.py,sha256=
|
243
|
+
ultralytics/utils/downloads.py,sha256=YB6rJkcRGQfklUjZqi9dOkTiZaDSqbkGyZEFcZLQkgc,22080
|
243
244
|
ultralytics/utils/errors.py,sha256=XT9Ru7ivoBgofK6PlnyigGoa7Fmf5nEhyHtnD-8TRXI,1584
|
244
245
|
ultralytics/utils/export.py,sha256=ZmxiY5Y2MuL4iBFsLr8ykbUsnvT01DCs0Kg1w3_Ikac,9789
|
245
246
|
ultralytics/utils/files.py,sha256=ZCbLGleiF0f-PqYfaxMFAWop88w7U1hpreHXl8b2ko0,8238
|
246
247
|
ultralytics/utils/instance.py,sha256=vhqaZRGT_4K9Q3oQH5KNNK4ISOzxlf1_JjauwhuFhu0,18408
|
247
248
|
ultralytics/utils/loss.py,sha256=fbOWc3Iu0QOJiWbi-mXWA9-1otTYlehtmUsI7os7ydM,39799
|
248
|
-
ultralytics/utils/metrics.py,sha256=
|
249
|
+
ultralytics/utils/metrics.py,sha256=mD5W7yr8T8XNHE0pJx38Ivcbq0PJIFGl0pq_sUOauuo,62122
|
249
250
|
ultralytics/utils/ops.py,sha256=Yjm397sirPt9wNlgHU2SeVEApeEeYX1msSg5cTBGN8g,34381
|
250
251
|
ultralytics/utils/patches.py,sha256=GI7NXCJ5H22FGp3sIvj5rrGfwdYNRWlxFcW-Jhjgius,5181
|
251
|
-
ultralytics/utils/plotting.py,sha256=
|
252
|
+
ultralytics/utils/plotting.py,sha256=QMwedj19XNHus5NbUY3cQI1PGDgriPhHOzGirBsxdK8,48277
|
252
253
|
ultralytics/utils/tal.py,sha256=aXawOnhn8ni65tJWIW-PYqWr_TRvltbHBjrTo7o6lDQ,20924
|
253
|
-
ultralytics/utils/torch_utils.py,sha256=
|
254
|
+
ultralytics/utils/torch_utils.py,sha256=iIAjf2g4hikzBeHvKN-EQK8QFlC_QtWWRuYQuBF2zIk,39184
|
254
255
|
ultralytics/utils/triton.py,sha256=M7qe4RztiADBJQEWQKaIQsp94ERFJ_8_DUHDR6TXEOM,5410
|
255
256
|
ultralytics/utils/tuner.py,sha256=bHr09Fz-0-t0ei55gX5wJh-obyiAQoicP7HUVM2I8qA,6826
|
256
257
|
ultralytics/utils/callbacks/__init__.py,sha256=hzL63Rce6VkZhP4Lcim9LKjadixaQG86nKqPhk7IkS0,242
|
@@ -264,9 +265,9 @@ ultralytics/utils/callbacks/neptune.py,sha256=j8pecmlcsM8FGzLKWoBw5xUsi5t8E5HuxY
|
|
264
265
|
ultralytics/utils/callbacks/raytune.py,sha256=S6Bq16oQDQ8BQgnZzA0zJHGN_BBr8iAM_WtGoLiEcwg,1283
|
265
266
|
ultralytics/utils/callbacks/tensorboard.py,sha256=MDPBW7aDes-66OE6YqKXXvqA_EocjzEMHWGM-8z9vUQ,5281
|
266
267
|
ultralytics/utils/callbacks/wb.py,sha256=Tm_-aRr2CN32MJkY9tylpMBJkb007-MSRNSQ7rDJ5QU,7521
|
267
|
-
ultralytics-8.3.
|
268
|
-
ultralytics-8.3.
|
269
|
-
ultralytics-8.3.
|
270
|
-
ultralytics-8.3.
|
271
|
-
ultralytics-8.3.
|
272
|
-
ultralytics-8.3.
|
268
|
+
ultralytics-8.3.146.dist-info/licenses/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
|
269
|
+
ultralytics-8.3.146.dist-info/METADATA,sha256=PClBKSO8kBkL0QqN1rwEbHoxXh1sFz3BxUjCleLtOn8,37200
|
270
|
+
ultralytics-8.3.146.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
271
|
+
ultralytics-8.3.146.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
|
272
|
+
ultralytics-8.3.146.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
|
273
|
+
ultralytics-8.3.146.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|