ultralytics 8.1.46__py3-none-any.whl → 8.2.0__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 CHANGED
@@ -1,6 +1,6 @@
1
1
  # Ultralytics YOLO 🚀, AGPL-3.0 license
2
2
 
3
- __version__ = "8.1.46"
3
+ __version__ = "8.2.0"
4
4
 
5
5
  from ultralytics.data.explorer.explorer import Explorer
6
6
  from ultralytics.models import RTDETR, SAM, YOLO, YOLOWorld
@@ -16,6 +16,7 @@ from ultralytics.utils.instance import Instances
16
16
  from ultralytics.utils.metrics import bbox_ioa
17
17
  from ultralytics.utils.ops import segment2box, xyxyxyxy2xywhr
18
18
  from ultralytics.utils.torch_utils import TORCHVISION_0_10, TORCHVISION_0_11, TORCHVISION_0_13
19
+
19
20
  from .utils import polygons2masks, polygons2masks_overlap
20
21
 
21
22
  DEFAULT_MEAN = (0.0, 0.0, 0.0)
ultralytics/data/base.py CHANGED
@@ -15,6 +15,7 @@ import psutil
15
15
  from torch.utils.data import Dataset
16
16
 
17
17
  from ultralytics.utils import DEFAULT_CFG, LOCAL_RANK, LOGGER, NUM_THREADS, TQDM
18
+
18
19
  from .utils import FORMATS_HELP_MSG, HELP_URL, IMG_FORMATS
19
20
 
20
21
 
ultralytics/data/build.py CHANGED
@@ -22,6 +22,7 @@ from ultralytics.data.loaders import (
22
22
  from ultralytics.data.utils import IMG_FORMATS, VID_FORMATS
23
23
  from ultralytics.utils import RANK, colorstr
24
24
  from ultralytics.utils.checks import check_file
25
+
25
26
  from .dataset import GroundingDataset, YOLODataset, YOLOMultiModalDataset
26
27
  from .utils import PIN_MEMORY
27
28
 
@@ -15,6 +15,7 @@ from torch.utils.data import ConcatDataset
15
15
 
16
16
  from ultralytics.utils import LOCAL_RANK, NUM_THREADS, TQDM, colorstr
17
17
  from ultralytics.utils.ops import resample_segments
18
+
18
19
  from .augment import (
19
20
  Compose,
20
21
  Format,
@@ -7,8 +7,8 @@ from typing import Any, List, Tuple, Union
7
7
  import cv2
8
8
  import numpy as np
9
9
  import torch
10
- from PIL import Image
11
10
  from matplotlib import pyplot as plt
11
+ from PIL import Image
12
12
  from tqdm import tqdm
13
13
 
14
14
  from ultralytics.data.augment import Format
@@ -16,6 +16,7 @@ from ultralytics.data.dataset import YOLODataset
16
16
  from ultralytics.data.utils import check_det_dataset
17
17
  from ultralytics.models.yolo.model import YOLO
18
18
  from ultralytics.utils import LOGGER, USER_CONFIG_DIR, IterableSimpleNamespace, checks
19
+
19
20
  from .utils import get_sim_index_schema, get_table_schema, plot_query_result, prompt_sql_query, sanitize_batch
20
21
 
21
22
 
@@ -529,16 +529,13 @@ class Exporter:
529
529
  f"or in {ROOT}. See PNNX repo for full installation instructions."
530
530
  )
531
531
  system = "macos" if MACOS else "windows" if WINDOWS else "linux-aarch64" if ARM64 else "linux"
532
-
533
- # PNNX link fixed at 20240226 due to bug in 20240410
534
- # try:
535
- # _, assets = get_github_assets(repo="pnnx/pnnx", retry=True)
536
- # url = [x for x in assets if f"{system}.zip" in x][0]
537
- # except Exception as e:
538
- # url = f"https://github.com/pnnx/pnnx/releases/download/20240226/pnnx-20240226-{system}.zip"
539
- # LOGGER.warning(f"{prefix} WARNING ⚠️ PNNX GitHub assets not found: {e}, using default {url}")
540
-
541
- url = f"https://github.com/pnnx/pnnx/releases/download/20240226/pnnx-20240226-{system}.zip"
532
+ try:
533
+ _, assets = get_github_assets(repo="pnnx/pnnx")
534
+ url = [x for x in assets if f"{system}.zip" in x][0]
535
+ assert url, "Unable to retrieve PNNX repo assets"
536
+ except Exception as e:
537
+ url = f"https://github.com/pnnx/pnnx/releases/download/20240410/pnnx-20240410-{system}.zip"
538
+ LOGGER.warning(f"{prefix} WARNING ⚠️ PNNX GitHub assets not found: {e}, using default {url}")
542
539
  asset = attempt_download_asset(url, repo="pnnx/pnnx", release="latest")
543
540
  if check_is_path_safe(Path.cwd(), asset): # avoid path traversal security vulnerability
544
541
  unzip_dir = Path(asset).with_suffix("")
@@ -641,7 +641,12 @@ class Model(nn.Module):
641
641
  checks.check_pip_update_available()
642
642
 
643
643
  overrides = yaml_load(checks.check_yaml(kwargs["cfg"])) if kwargs.get("cfg") else self.overrides
644
- custom = {"data": DEFAULT_CFG_DICT["data"] or TASK2DATA[self.task]} # method defaults
644
+ custom = {
645
+ # NOTE: handle the case when 'cfg' includes 'data'.
646
+ "data": overrides.get("data") or DEFAULT_CFG_DICT["data"] or TASK2DATA[self.task],
647
+ "model": self.overrides["model"],
648
+ "task": self.task,
649
+ } # method defaults
645
650
  args = {**overrides, **custom, **kwargs, "mode": "train"} # highest priority args on the right
646
651
  if args.get("resume"):
647
652
  args["resume"] = self.ckpt_path
@@ -213,6 +213,7 @@ class HUBTrainingSession:
213
213
  thread=True,
214
214
  verbose=True,
215
215
  progress_total=None,
216
+ stream_reponse=None,
216
217
  *args,
217
218
  **kwargs,
218
219
  ):
@@ -232,6 +233,8 @@ class HUBTrainingSession:
232
233
 
233
234
  if progress_total:
234
235
  self._show_upload_progress(progress_total, response)
236
+ elif stream_reponse:
237
+ self._iterate_content(response)
235
238
 
236
239
  if HTTPStatus.OK <= response.status_code < HTTPStatus.MULTIPLE_CHOICES:
237
240
  # if request related to metrics upload
@@ -335,6 +338,7 @@ class HUBTrainingSession:
335
338
  timeout=3600,
336
339
  thread=not final,
337
340
  progress_total=progress_total,
341
+ stream_reponse=True,
338
342
  )
339
343
  else:
340
344
  LOGGER.warning(f"{PREFIX}WARNING ⚠️ Model upload issue. Missing model {weights}.")
@@ -353,3 +357,16 @@ class HUBTrainingSession:
353
357
  with TQDM(total=content_length, unit="B", unit_scale=True, unit_divisor=1024) as pbar:
354
358
  for data in response.iter_content(chunk_size=1024):
355
359
  pbar.update(len(data))
360
+
361
+ def _iterate_content(self, response: requests.Response) -> None:
362
+ """
363
+ Process the streamed HTTP response data.
364
+
365
+ Args:
366
+ response (requests.Response): The response object from the file download request.
367
+
368
+ Returns:
369
+ None
370
+ """
371
+ for data in response.iter_content(chunk_size=1024):
372
+ pass # Do nothing with data chunks
@@ -3,6 +3,7 @@
3
3
  from pathlib import Path
4
4
 
5
5
  from ultralytics.engine.model import Model
6
+
6
7
  from .predict import FastSAMPredictor
7
8
  from .val import FastSAMValidator
8
9
 
@@ -17,6 +17,7 @@ import torch
17
17
 
18
18
  from ultralytics.engine.model import Model
19
19
  from ultralytics.utils.torch_utils import model_info, smart_inference_mode
20
+
20
21
  from .predict import NASPredictor
21
22
  from .val import NASValidator
22
23
 
@@ -7,6 +7,7 @@ import torch
7
7
  from ultralytics.models.yolo.detect import DetectionTrainer
8
8
  from ultralytics.nn.tasks import RTDETRDetectionModel
9
9
  from ultralytics.utils import RANK, colorstr
10
+
10
11
  from .val import RTDETRDataset, RTDETRValidator
11
12
 
12
13
 
@@ -11,6 +11,7 @@ from functools import partial
11
11
  import torch
12
12
 
13
13
  from ultralytics.utils.downloads import attempt_download_asset
14
+
14
15
  from .modules.decoders import MaskDecoder
15
16
  from .modules.encoders import ImageEncoderViT, PromptEncoder
16
17
  from .modules.sam import Sam
@@ -18,6 +18,7 @@ from pathlib import Path
18
18
 
19
19
  from ultralytics.engine.model import Model
20
20
  from ultralytics.utils.torch_utils import model_info
21
+
21
22
  from .build import build_sam
22
23
  from .predict import Predictor
23
24
 
@@ -17,6 +17,7 @@ from ultralytics.engine.predictor import BasePredictor
17
17
  from ultralytics.engine.results import Results
18
18
  from ultralytics.utils import DEFAULT_CFG, ops
19
19
  from ultralytics.utils.torch_utils import select_device
20
+
20
21
  from .amg import (
21
22
  batch_iterator,
22
23
  batched_mask_to_box,
@@ -6,6 +6,7 @@ import torch.nn.functional as F
6
6
 
7
7
  from ultralytics.utils.loss import FocalLoss, VarifocalLoss
8
8
  from ultralytics.utils.metrics import bbox_iou
9
+
9
10
  from .ops import HungarianMatcher
10
11
 
11
12
 
@@ -14,7 +14,7 @@ import torch
14
14
  import torch.nn as nn
15
15
  from PIL import Image
16
16
 
17
- from ultralytics.utils import ARM64, LINUX, LOGGER, ROOT, yaml_load
17
+ from ultralytics.utils import ARM64, IS_JETSON, IS_RASPBERRYPI, LINUX, LOGGER, ROOT, yaml_load
18
18
  from ultralytics.utils.checks import check_requirements, check_suffix, check_version, check_yaml
19
19
  from ultralytics.utils.downloads import attempt_download_asset, is_url
20
20
 
@@ -183,6 +183,9 @@ class AutoBackend(nn.Module):
183
183
  elif onnx:
184
184
  LOGGER.info(f"Loading {w} for ONNX Runtime inference...")
185
185
  check_requirements(("onnx", "onnxruntime-gpu" if cuda else "onnxruntime"))
186
+ if IS_RASPBERRYPI or IS_JETSON:
187
+ # Fix error: module 'numpy.linalg._umath_linalg' has no attribute '_ilp64' when exporting to Tensorflow SavedModel on RPi and Jetson
188
+ check_requirements("numpy==1.23.5")
186
189
  import onnxruntime
187
190
 
188
191
  providers = ["CUDAExecutionProvider", "CPUExecutionProvider"] if cuda else ["CPUExecutionProvider"]
@@ -540,7 +543,8 @@ class AutoBackend(nn.Module):
540
543
  mat_in = self.pyncnn.Mat(im[0].cpu().numpy())
541
544
  with self.net.create_extractor() as ex:
542
545
  ex.input(self.net.input_names()[0], mat_in)
543
- y = [np.array(ex.extract(x)[1])[None] for x in self.net.output_names()]
546
+ # WARNING: 'output_names' sorted as a temporary fix for https://github.com/pnnx/pnnx/issues/130
547
+ y = [np.array(ex.extract(x)[1])[None] for x in sorted(self.net.output_names())]
544
548
 
545
549
  # NVIDIA Triton Inference Server
546
550
  elif self.triton:
@@ -8,6 +8,7 @@ import torch.nn as nn
8
8
  from torch.nn.init import constant_, xavier_uniform_
9
9
 
10
10
  from ultralytics.utils.tal import TORCH_1_10, dist2bbox, dist2rbox, make_anchors
11
+
11
12
  from .block import DFL, BNContrastiveHead, ContrastiveHead, Proto
12
13
  from .conv import Conv
13
14
  from .transformer import MLP, DeformableTransformerDecoder, DeformableTransformerDecoderLayer
@@ -224,7 +224,7 @@ class ObjectCounter:
224
224
 
225
225
  if (box[0] - prev_position[0]) * (self.counting_region.centroid.x - prev_position[0]) > 0:
226
226
  self.in_counts += 1
227
- self.class_wise_count[self.names[cls]]["in"] += 2
227
+ self.class_wise_count[self.names[cls]]["in"] += 1
228
228
  else:
229
229
  self.out_counts += 1
230
230
  self.class_wise_count[self.names[cls]]["out"] += 1
@@ -2,11 +2,11 @@
2
2
 
3
3
  import numpy as np
4
4
 
5
+ from ..utils import LOGGER
6
+ from ..utils.ops import xywh2ltwh
5
7
  from .basetrack import BaseTrack, TrackState
6
8
  from .utils import matching
7
9
  from .utils.kalman_filter import KalmanFilterXYAH
8
- from ..utils import LOGGER
9
- from ..utils.ops import xywh2ltwh
10
10
 
11
11
 
12
12
  class STrack(BaseTrack):
@@ -7,6 +7,7 @@ import torch
7
7
 
8
8
  from ultralytics.utils import IterableSimpleNamespace, yaml_load
9
9
  from ultralytics.utils.checks import check_yaml
10
+
10
11
  from .bot_sort import BOTSORT
11
12
  from .byte_tracker import BYTETracker
12
13
 
@@ -512,8 +512,9 @@ def is_online() -> bool:
512
512
  assert str(os.getenv("YOLO_OFFLINE", "")).lower() != "true" # check if ENV var YOLO_OFFLINE="True"
513
513
  import socket
514
514
 
515
- socket.create_connection(address=("1.1.1.1", 80), timeout=1.0).close() # check Cloudflare DNS
516
- return True
515
+ for dns in ("1.1.1.1", "8.8.8.8"): # check Cloudflare and Google DNS
516
+ socket.create_connection(address=(dns, 80), timeout=1.0).close()
517
+ return True
517
518
  return False
518
519
 
519
520
 
@@ -35,7 +35,7 @@ import torch.cuda
35
35
  from ultralytics import YOLO, YOLOWorld
36
36
  from ultralytics.cfg import TASK2DATA, TASK2METRIC
37
37
  from ultralytics.engine.exporter import export_formats
38
- from ultralytics.utils import ASSETS, LINUX, LOGGER, MACOS, TQDM, WEIGHTS_DIR
38
+ from ultralytics.utils import ARM64, ASSETS, IS_JETSON, IS_RASPBERRYPI, LINUX, LOGGER, MACOS, TQDM, WEIGHTS_DIR
39
39
  from ultralytics.utils.checks import IS_PYTHON_3_12, check_requirements, check_yolo
40
40
  from ultralytics.utils.files import file_size
41
41
  from ultralytics.utils.torch_utils import select_device
@@ -83,8 +83,10 @@ def benchmark(
83
83
  emoji, filename = "❌", None # export defaults
84
84
  try:
85
85
  # Checks
86
+ if i == 5: # CoreML
87
+ assert not (IS_RASPBERRYPI or IS_JETSON), "CoreML export not supported on Raspberry Pi or NVIDIA Jetson"
86
88
  if i == 9: # Edge TPU
87
- assert LINUX, "Edge TPU export only supported on Linux"
89
+ assert LINUX and not ARM64, "Edge TPU export only supported on non-aarch64 Linux"
88
90
  elif i == 7: # TF GraphDef
89
91
  assert model.task != "obb", "TensorFlow GraphDef not supported for OBB task"
90
92
  elif i in {5, 10}: # CoreML and TF.js
@@ -4,7 +4,6 @@
4
4
  from collections import defaultdict
5
5
  from copy import deepcopy
6
6
 
7
-
8
7
  # Trainer callbacks ----------------------------------------------------------------------------------------------------
9
8
 
10
9
 
ultralytics/utils/loss.py CHANGED
@@ -7,6 +7,7 @@ import torch.nn.functional as F
7
7
  from ultralytics.utils.metrics import OKS_SIGMA
8
8
  from ultralytics.utils.ops import crop_mask, xywh2xyxy, xyxy2xywh
9
9
  from ultralytics.utils.tal import RotatedTaskAlignedAssigner, TaskAlignedAssigner, dist2bbox, dist2rbox, make_anchors
10
+
10
11
  from .metrics import bbox_iou, probiou
11
12
  from .tal import bbox2dist
12
13
 
@@ -13,8 +13,8 @@ from PIL import Image, ImageDraw, ImageFont
13
13
  from PIL import __version__ as pil_version
14
14
 
15
15
  from ultralytics.utils import LOGGER, TryExcept, ops, plt_settings, threaded
16
- from .checks import check_font, check_version, is_ascii
17
- from .files import increment_path
16
+ from ultralytics.utils.checks import check_font, check_version, is_ascii
17
+ from ultralytics.utils.files import increment_path
18
18
 
19
19
 
20
20
  class Colors:
@@ -240,7 +240,7 @@ class Annotator:
240
240
  # Convert im back to PIL and update draw
241
241
  self.fromarray(self.im)
242
242
 
243
- def kpts(self, kpts, shape=(640, 640), radius=5, kpt_line=True):
243
+ def kpts(self, kpts, shape=(640, 640), radius=5, kpt_line=True, conf_thres=0.25):
244
244
  """
245
245
  Plot keypoints on the image.
246
246
 
@@ -266,7 +266,7 @@ class Annotator:
266
266
  if x_coord % shape[1] != 0 and y_coord % shape[0] != 0:
267
267
  if len(k) == 3:
268
268
  conf = k[2]
269
- if conf < 0.5:
269
+ if conf < conf_thres:
270
270
  continue
271
271
  cv2.circle(self.im, (int(x_coord), int(y_coord)), radius, color_k, -1, lineType=cv2.LINE_AA)
272
272
 
@@ -278,7 +278,7 @@ class Annotator:
278
278
  if ndim == 3:
279
279
  conf1 = kpts[(sk[0] - 1), 2]
280
280
  conf2 = kpts[(sk[1] - 1), 2]
281
- if conf1 < 0.5 or conf2 < 0.5:
281
+ if conf1 < conf_thres or conf2 < conf_thres:
282
282
  continue
283
283
  if pos1[0] % shape[1] == 0 or pos1[1] % shape[0] == 0 or pos1[0] < 0 or pos1[1] < 0:
284
284
  continue
@@ -490,7 +490,7 @@ class Annotator:
490
490
  angle = 360 - angle
491
491
  return angle
492
492
 
493
- def draw_specific_points(self, keypoints, indices=[2, 5, 7], shape=(640, 640), radius=2):
493
+ def draw_specific_points(self, keypoints, indices=[2, 5, 7], shape=(640, 640), radius=2, conf_thres=0.25):
494
494
  """
495
495
  Draw specific keypoints for gym steps counting.
496
496
 
@@ -506,7 +506,7 @@ class Annotator:
506
506
  if x_coord % shape[1] != 0 and y_coord % shape[0] != 0:
507
507
  if len(k) == 3:
508
508
  conf = k[2]
509
- if conf < 0.5:
509
+ if conf < conf_thres:
510
510
  continue
511
511
  cv2.circle(self.im, (int(x_coord), int(y_coord)), radius, (0, 255, 0), -1, lineType=cv2.LINE_AA)
512
512
  return self.im
@@ -875,7 +875,7 @@ def plot_images(
875
875
  kpts_[..., 1] += y
876
876
  for j in range(len(kpts_)):
877
877
  if labels or conf[j] > conf_thres:
878
- annotator.kpts(kpts_[j])
878
+ annotator.kpts(kpts_[j], conf_thres=conf_thres)
879
879
 
880
880
  # Plot masks
881
881
  if len(masks):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ultralytics
3
- Version: 8.1.46
3
+ Version: 8.2.0
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
@@ -64,6 +64,7 @@ Provides-Extra: export
64
64
  Requires-Dist: onnx >=1.12.0 ; extra == 'export'
65
65
  Requires-Dist: openvino >=2024.0.0 ; extra == 'export'
66
66
  Requires-Dist: numpy ==1.23.5 ; (platform_machine == "aarch64") and extra == 'export'
67
+ Requires-Dist: h5py !=3.11.0 ; (platform_machine == "aarch64") and extra == 'export'
67
68
  Requires-Dist: coremltools >=7.0 ; (platform_system != "Windows" and python_version <= "3.11") and extra == 'export'
68
69
  Requires-Dist: tensorflow <=2.13.1 ; (python_version <= "3.11") and extra == 'export'
69
70
  Requires-Dist: tensorflowjs >=3.9.0 ; (python_version <= "3.11") and extra == 'export'
@@ -1,4 +1,4 @@
1
- ultralytics/__init__.py,sha256=i5cjHS2lih5Cyjb9oi_FJ2xiNF4JWREpg0Kty0F48Gk,633
1
+ ultralytics/__init__.py,sha256=uCXsQMRPXbzHpek0WRp4kOTo9F7yWokJZQfg8SxZFDw,632
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=ugSQqHCg31bAE9rwhVrnLMNzKLShr9JxDFcN6kBTbUk,21316
@@ -64,22 +64,22 @@ ultralytics/cfg/trackers/botsort.yaml,sha256=YrPmj18p1UU40kJH5NRdL_4S8f7knggkk_q
64
64
  ultralytics/cfg/trackers/bytetrack.yaml,sha256=QvHmtuwulK4X6j3T5VEqtCm0sbWWBUVmWPcCcM20qe0,688
65
65
  ultralytics/data/__init__.py,sha256=VGe-ATG7j35F4A4r8Jmzffjlhve4JAJPgRa5ahKTU18,616
66
66
  ultralytics/data/annotator.py,sha256=evXQzARVerc0hb9ol-n_GrrHf-dlXO4lCMMWEZoJ2UM,2117
67
- ultralytics/data/augment.py,sha256=8xJ5YKr5CWvrg5u0BMOsn-HxlIfAYUO2xi8hcyg6fLo,57740
68
- ultralytics/data/base.py,sha256=x7OEYorkCbPuymvZoCHXXaK9Y65DBs73ugMxSJJdUtE,13480
69
- ultralytics/data/build.py,sha256=Bq6hh3GgmvBx9LSMYUEj0t6COu3Xmc45zmF9QZbTkpM,7265
67
+ ultralytics/data/augment.py,sha256=81BOqY4DzxuNfw6Qg7rjBQTktU4JK2GHolXIhzXnAHg,57741
68
+ ultralytics/data/base.py,sha256=9dZcoXtczloWSsbU-sOa9NlJ7lIGoarEUAp2rzP1jMI,13481
69
+ ultralytics/data/build.py,sha256=NhETn_nGGEey8Dv8QOgro_j-KutfRCWyNHifEhqh_U4,7266
70
70
  ultralytics/data/converter.py,sha256=NLDiV67RshbKQnMJUiQQF11boVzEqgi2Hz39nKVAI4U,17528
71
- ultralytics/data/dataset.py,sha256=6brszmSI4cfLEK8-JLuJzotka8AxZL8ifXwF-qgAf5c,22200
71
+ ultralytics/data/dataset.py,sha256=NFaXyHRn64TyTEbtSkr7SkqWXK8bEJl6lZ6M1JwO3MY,22201
72
72
  ultralytics/data/loaders.py,sha256=UxNLLV6rwUDog9MSOkHpDn52TO-X2g2P4a5ZwvB7Ii8,23142
73
73
  ultralytics/data/split_dota.py,sha256=PQdkwwlFtLKhWIrbToshSekXGdgbrbYMN6hM4ujfa7o,10010
74
74
  ultralytics/data/utils.py,sha256=2wqf4mi2r78yH1oJS29ZILHCuBtm1nzpagRLoo0sEDw,30869
75
75
  ultralytics/data/explorer/__init__.py,sha256=-Y3m1ZedepOQUv_KW82zaGxvU_PSHcuwUTFqG9BhAr4,113
76
- ultralytics/data/explorer/explorer.py,sha256=oSXQ0NPSfwvlcVS7emZ9jB4QcWRLAqeZg-49_hB0prg,18710
76
+ ultralytics/data/explorer/explorer.py,sha256=0psbV96Qjbo2l_jGyM8WWnHq2gJREp_qq9YWPoxVxXE,18711
77
77
  ultralytics/data/explorer/utils.py,sha256=EvvukQiQUTBrsZznmMnyEX2EqTuwZo_Geyc8yfi8NIA,7085
78
78
  ultralytics/data/explorer/gui/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
79
79
  ultralytics/data/explorer/gui/dash.py,sha256=2oAbNroR2lfS45v53M1sRqZklLXbbj6qXqNxvplulC0,10087
80
80
  ultralytics/engine/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
81
- ultralytics/engine/exporter.py,sha256=eRd_CNnNjgwmCn6JPCqr70VOEsWQ2yiBOmTdBUGLNt8,54605
82
- ultralytics/engine/model.py,sha256=QkNRSxYkmr3wM9iFgsfszmenHMdu2KTuT_yrSL-BA7o,39830
81
+ ultralytics/engine/exporter.py,sha256=0B1npPXNYZxgDlupUf6EWP65AKzeRHnwRPf3czTIzuQ,54476
82
+ ultralytics/engine/model.py,sha256=4zSVSBP8Ex49bJjnOXm7g3Qr_NgbplHPCjdnVfZwfxM,40019
83
83
  ultralytics/engine/predictor.py,sha256=wQRKdWGDTP5A6CS0gTC6U3RPDMhP3QkEzWSPm6eqCkU,17022
84
84
  ultralytics/engine/results.py,sha256=MvrOBrBlRF7kbL-QwysMf9mIDy_lwQBTTYvy1x1FMME,30667
85
85
  ultralytics/engine/trainer.py,sha256=Vm41LwIkM7SECJEXEToH7NNc9AS1vKrTu1gLkZKdPEo,34933
@@ -87,29 +87,29 @@ ultralytics/engine/tuner.py,sha256=iZrgMmXSDpfuDu4bdFRflmAsscys2-8W8qAGxSyOVJE,1
87
87
  ultralytics/engine/validator.py,sha256=p0irfLSZa3-0TtcuGheI8kNbzPUqs_UM3TMK4VRUGK4,14645
88
88
  ultralytics/hub/__init__.py,sha256=U4j-2QPdwSDlxw6RgFYnnJXOoIzLtwke4TkY2A8q4ws,5068
89
89
  ultralytics/hub/auth.py,sha256=FID58NE6fh7Op_B45QOpWBw1qoBN0ponL16uvyb2dZ8,5399
90
- ultralytics/hub/session.py,sha256=FCO7Svn7Ffqxzbx4D3rvCU7D2c9HVMKnEVvIHne6G74,14647
90
+ ultralytics/hub/session.py,sha256=Oly3bKjLkW08iOm3QoSr6Yy57aLZ4AmAmF6Pp9Y_q5g,15197
91
91
  ultralytics/hub/utils.py,sha256=RpFDFp9biUK70Mswzz2o3uEu4xwQxRaStPS19U2gu0g,9721
92
92
  ultralytics/models/__init__.py,sha256=xrzn2dcLBG6Ujxll8LtlTIblPar2gjNhAwjAQg7u8sk,197
93
93
  ultralytics/models/fastsam/__init__.py,sha256=0dt65jZ_5b7Q-mdXN8MSEkgnFRA0FIwlel_LS2RaOlU,254
94
- ultralytics/models/fastsam/model.py,sha256=yOf-byvFxafXYTEoc9j1dYnE2XFNErRYSnroyGxkW7I,1054
94
+ ultralytics/models/fastsam/model.py,sha256=c7GGwaa9AXssJFwrcuytFHpPOlgSrS3n0utyf4JSL2o,1055
95
95
  ultralytics/models/fastsam/predict.py,sha256=0WHUFrqHUNy1cTNpLKsN0FKqLKCvr7fHU6pp91_QVg0,4121
96
96
  ultralytics/models/fastsam/prompt.py,sha256=v_aS-8EAPtK6ug70f_QtsMBoRAZA47_x6I_owA2rJlI,16182
97
97
  ultralytics/models/fastsam/utils.py,sha256=r-b362Wb7P2ZAlOwWckPJM6HLvg-eFDDz4wkA0ymLd0,2157
98
98
  ultralytics/models/fastsam/val.py,sha256=ILKmw3U8FYmmQsO9wk9-bJ9Pyp_ZthJM36b61L75s3Y,1967
99
99
  ultralytics/models/nas/__init__.py,sha256=d6-WTrYLXvbPs58ebA0-583ODi-VyzXc-t4aGIDQK6M,179
100
- ultralytics/models/nas/model.py,sha256=roo4H9YcDX2s-qxxoIHTJiueNSMeul2F0scB5WUYlPs,2864
100
+ ultralytics/models/nas/model.py,sha256=nw7574loYfJHiEQx_ttemF9gpyehvWQVVYTIH0lsTSo,2865
101
101
  ultralytics/models/nas/predict.py,sha256=O7f92KE6hi5DENTRzXiMsm-qK-ndVoO1Bs3dugp8aLA,2136
102
102
  ultralytics/models/nas/val.py,sha256=u35kVTVgGxK_rbHytUvFB4F3_nZn4MPv3PbZLFWSmkQ,1680
103
103
  ultralytics/models/rtdetr/__init__.py,sha256=AZga1C3qlGTtgpAupDW4doijq5aZlQeF8e55_DP2Uas,197
104
104
  ultralytics/models/rtdetr/model.py,sha256=2VkppF1_581XmQ0UI7lo8fX7MqhAJPXVMr2jyMHXtbk,1988
105
105
  ultralytics/models/rtdetr/predict.py,sha256=-NFBAv_4VIUcXycO7wA8IH6EHXrVyOir-5PZkd46qyo,3584
106
- ultralytics/models/rtdetr/train.py,sha256=HdSC2x22Rks6qKNI7EGa6nWMZPhi_7VdQrbcayxk0ec,3684
106
+ ultralytics/models/rtdetr/train.py,sha256=20AFYVW9NPxw0-cp-sRdIovWidFL0IIhJRv2oZjkPlM,3685
107
107
  ultralytics/models/rtdetr/val.py,sha256=4QQArdaGEY8rJsJuvyJ032f8GGVGdV2jURHK2EdMxyk,5566
108
108
  ultralytics/models/sam/__init__.py,sha256=9A1iyfPN_ncqq3TMExe_-uPoARjEX3psoHEI1xMG2VE,144
109
109
  ultralytics/models/sam/amg.py,sha256=MsKSRS2SieZK_n-m2ICk1QpcYogl5mofcsVa-4FXYvo,7935
110
- ultralytics/models/sam/build.py,sha256=jJvloRbPwHvSnVWwM3pEdzpM5MdIcEHbRaqQk_S9lG8,4943
111
- ultralytics/models/sam/model.py,sha256=H87wexHJ84wbtfKVrZe6I-VuLlhI8h6XeNpxe0D-Sgc,4706
112
- ultralytics/models/sam/predict.py,sha256=moCqdExdpftqSefmpRK7yNNXFuRb5Z_Zbb0U-JkSH8o,23613
110
+ ultralytics/models/sam/build.py,sha256=-i-vj0egQ2idBZUf3Xf-H89QeToM3ky0HTxKP_KEXTs,4944
111
+ ultralytics/models/sam/model.py,sha256=dkEhqJEZFuSoKubMaAjUx1U9Np49AII3nBScdH8rMBI,4707
112
+ ultralytics/models/sam/predict.py,sha256=BuSaqMOkpwiM5H5sWOE1CDIwEDkz8uMKV6AMRysCZk4,23614
113
113
  ultralytics/models/sam/modules/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
114
114
  ultralytics/models/sam/modules/decoders.py,sha256=7NWnBNupxGYvH0S1N0R6NBHxdVFRUrrnL9EqAw09J4E,7816
115
115
  ultralytics/models/sam/modules/encoders.py,sha256=pRNZHzt2J2xD_D0Btu8pk4DcItfr6dRr9rcRfxoZZhU,24746
@@ -117,7 +117,7 @@ ultralytics/models/sam/modules/sam.py,sha256=zC4l4kcrIQD_ekczjl2l6dgaABqqjROZxQ-
117
117
  ultralytics/models/sam/modules/tiny_encoder.py,sha256=ypXIMBXpsNUBrskbdJjo2pErI_mtNJlHMdmo9Erqgp0,29125
118
118
  ultralytics/models/sam/modules/transformer.py,sha256=VINZMb4xkx4IHAbJdhCq2XLDvaFBMup7RGC16DLS7OY,11164
119
119
  ultralytics/models/utils/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
120
- ultralytics/models/utils/loss.py,sha256=IMzcnDwwkgO9F6GDKVxrDdVdhUX_7d9uY4tX-AgtT0g,15134
120
+ ultralytics/models/utils/loss.py,sha256=PmlKDe4xQTiYkPSCdNUabxJC7bh43zGxiKVIxsXBVGE,15135
121
121
  ultralytics/models/utils/ops.py,sha256=sn1vdwIK2LaCvxvuuP31Yw2HXEMAmQdo7KD9JVh4GM4,13244
122
122
  ultralytics/models/yolo/__init__.py,sha256=e1cZr9pbSbf3Ya2OvkTjGRwD_E2YZpe610xskBM8gEk,247
123
123
  ultralytics/models/yolo/model.py,sha256=EwjRD9QrLP7qxqqjj-Q1II4RdjTZTyssn_n1iwO68VE,3991
@@ -145,50 +145,50 @@ ultralytics/models/yolo/world/__init__.py,sha256=3VTH0q4NOt2EWRom15yCymvmvm0Etp2
145
145
  ultralytics/models/yolo/world/train.py,sha256=acYN2-onL69LrL4av6_hY2r5AY0urC0WViDstn7npfI,3686
146
146
  ultralytics/models/yolo/world/train_world.py,sha256=ICPsYNbuPkq_qf3FHl2YJ-q3g7ik0pI-zhMpLmHa5-4,4805
147
147
  ultralytics/nn/__init__.py,sha256=4BPLHY89xEM_al5uK0aOmFgiML6CMGEZbezxOvTjOEs,587
148
- ultralytics/nn/autobackend.py,sha256=tDTeUUA86fqgbUzJ5yvQVNHb8aG3KCyLhraDT1VJ-1U,30316
148
+ ultralytics/nn/autobackend.py,sha256=T0vOQf_Wb25MpJavEhWQC0eHXQ_B6izp1I4De7t8iP0,30708
149
149
  ultralytics/nn/tasks.py,sha256=a3FSkIUErlE7qI506ye5vGggqzMxqXWDkIbbLD4AGyI,43623
150
150
  ultralytics/nn/modules/__init__.py,sha256=KzLoyn2ldfReiQL8H8xsMC49Xvtb8Kv9ikE5Q3OBoAs,2326
151
151
  ultralytics/nn/modules/block.py,sha256=smIz3oNTDA7UKrAH5FfSMh08C12-avgWTeIkbgZIv18,25251
152
152
  ultralytics/nn/modules/conv.py,sha256=Ywe87IhuaS22mR2JJ9xjnW8Sb-m7WTjxuqIxV_Dv8lI,12722
153
- ultralytics/nn/modules/head.py,sha256=rld0BUC9nzYmdZtyj4CSPwupyJezmKUywRJT4OatcPw,22337
153
+ ultralytics/nn/modules/head.py,sha256=D3WOkBy1GLVy2ZwrM0O7FvjKafOtyVVMiICzeTM-khA,22338
154
154
  ultralytics/nn/modules/transformer.py,sha256=AxD9uURpCl-EqvXe3DiG6JW-pBzB16G-AahLdZ7yayo,17909
155
155
  ultralytics/nn/modules/utils.py,sha256=779QnnKp9v8jv251ESduTXJ0ol8HkIOLbGQWwEGQjhU,3196
156
156
  ultralytics/solutions/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
157
157
  ultralytics/solutions/ai_gym.py,sha256=IZHpvmNyEQT_aqMTrA5sIjCsl3_5Zl2WG31HxGT6KV4,5696
158
158
  ultralytics/solutions/distance_calculation.py,sha256=N1QB5uDG_6sp8jD5uSwp_NTPmyP4UCqJm9G2lNrgpr8,6334
159
159
  ultralytics/solutions/heatmap.py,sha256=IeUkGRYbO8I7Sca0I2kvxh8dILy1gehmbIYolFF-ppc,12276
160
- ultralytics/solutions/object_counter.py,sha256=46eP0iF3WjnpIZc7Umrf3dhyNE30NaN9-T79QSwBJ2I,11558
160
+ ultralytics/solutions/object_counter.py,sha256=G8CeUg8DZyzh3QSw8m-9Mp0RgdBkr7-EXMFpEBTOUWQ,11558
161
161
  ultralytics/solutions/queue_management.py,sha256=TBQ2dIKYtymBjhdw0Enxa22KHyH3IdXf2C-1Se21siA,6684
162
162
  ultralytics/solutions/speed_estimation.py,sha256=lvaU-F8f3V4KFVKFaNS7isIdYtMSFjh_zF9gl0Mals8,6714
163
163
  ultralytics/trackers/__init__.py,sha256=j72IgH2dZHQArMPK4YwcV5ieIw94fYvlGdQjB9cOQKw,227
164
164
  ultralytics/trackers/basetrack.py,sha256=-vBDD-Q9lsxfTMK2w9kuqWGrYbRMmaBCCEbGGyR53gE,3675
165
165
  ultralytics/trackers/bot_sort.py,sha256=39AvhYVbT7izF3--rX_e6Lhgb5czTA23gw6AgnNcRds,8601
166
- ultralytics/trackers/byte_tracker.py,sha256=5uEgklqHgOEG_FNiDcoZdyJRtcGmA13EQMidrB9nOCk,18871
167
- ultralytics/trackers/track.py,sha256=Brp7G1le2kLs-8PTOzDllpUBW6ps_Wta2qx2GUPI7TU,3462
166
+ ultralytics/trackers/byte_tracker.py,sha256=kS3jASVRHMi83qjCahd2D1T6V9XyIehvXXTyy-17QM8,18871
167
+ ultralytics/trackers/track.py,sha256=mQX3vntIuNiUw1KjczitPFeEOsxrPWkjAPVOG6MldC8,3463
168
168
  ultralytics/trackers/utils/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
169
169
  ultralytics/trackers/utils/gmc.py,sha256=vwcPA1n5zjPaBGhCDt8ItN7rq_6Sczsjn4gsXJfRylU,13688
170
170
  ultralytics/trackers/utils/kalman_filter.py,sha256=0oqhk59NKEiwcJ2FXnw6_sT4bIFC6Wu5IY2B-TGxJKU,15168
171
171
  ultralytics/trackers/utils/matching.py,sha256=UxhSGa5pN6WoYwYSBAkkt-O7xMxUR47VuUB6PfVNkb4,5404
172
- ultralytics/utils/__init__.py,sha256=clmzQt-uxAlT4qrUoJSlCB3o40q2P5WTE-FM7YhGR4I,39236
172
+ ultralytics/utils/__init__.py,sha256=mo1Uo5uMBG1mhurWSwi78DEFU79NbcYuximNVKhjiYI,39292
173
173
  ultralytics/utils/autobatch.py,sha256=ygZ3f2ByIkcujB89ENcTnGWWnAQw5Pbg6nBuShg-5t4,3863
174
- ultralytics/utils/benchmarks.py,sha256=BNG0sO34_mu3fIEfMn8j-QzQ9Da6K1KujO-CxDkvsOM,18325
174
+ ultralytics/utils/benchmarks.py,sha256=dVAQ7GjZmgjvGL9JglKA3d9HAnvGoyX2TaEmZJjk0HA,18539
175
175
  ultralytics/utils/checks.py,sha256=UDrcHiTMjSHSyUZflTRGuyYRj0uz9-RQ-xfDq_lsXZo,27971
176
176
  ultralytics/utils/dist.py,sha256=3HeNbY2gp7vYhcvVhsrvTrQXpQmgT8tpmnzApf3eQRA,2267
177
177
  ultralytics/utils/downloads.py,sha256=j1S27awWiLTt1qC9l53WqH_BilM13JHLSVmQ2xFqh-4,21496
178
178
  ultralytics/utils/errors.py,sha256=GqP_Jgj_n0paxn8OMhn3DTCgoNkB2WjUcUaqs-M6SQk,816
179
179
  ultralytics/utils/files.py,sha256=TVfY0Wi5IsUc4YdsDzC0dAg-jAP5exYvwqB3VmXhDLY,6761
180
180
  ultralytics/utils/instance.py,sha256=fPClvPPtTk8VeXWiRv90DrFk1j1lTUKdYJtpZKUDDtA,15575
181
- ultralytics/utils/loss.py,sha256=lOFBx-lKn-aGHUIPTb1NQefXiNot07egNx7qKErChpU,32716
181
+ ultralytics/utils/loss.py,sha256=ejXnPEIAzNEoNz2UjW0_fcdeUs9Hy-jPzUrJ3FiIIwE,32717
182
182
  ultralytics/utils/metrics.py,sha256=XPD-xP0fchR8KgCuTcihV2-n0EK1cWi3-53BWN_pLuA,53518
183
183
  ultralytics/utils/ops.py,sha256=wZCWx7dm5GJNIJHyZaFJRetGcQ7prdv-anplqq9figQ,33309
184
184
  ultralytics/utils/patches.py,sha256=SgMqeMsq2K6JoBJP1NplXMl9C6rK0JeJUChjBrJOneo,2750
185
- ultralytics/utils/plotting.py,sha256=KbV6rx5LCyjG4lBY9ZuSM6Da8L8S6Qt5FQ8uIQ8N0yY,47439
185
+ ultralytics/utils/plotting.py,sha256=JS-u6ZSCT7-7P3ySHxT7DZFujpOu3re78FmKkbBeaiw,47558
186
186
  ultralytics/utils/tal.py,sha256=xuIyryUjaaYHkHPG9GvBwh1xxN2Hq4y3hXOtuERehwY,16017
187
187
  ultralytics/utils/torch_utils.py,sha256=-lXdJenpUfKM932ipvGfzup8FjNzX6g16hibwW5wPIU,25848
188
188
  ultralytics/utils/triton.py,sha256=gg1finxno_tY2Ge9PMhmu7PI9wvoFZoiicdT4Bhqv3w,3936
189
189
  ultralytics/utils/tuner.py,sha256=JhvBp6haKA6eqpNPpGJzzjjCmPxBx5phk9kHmt_jppw,6171
190
190
  ultralytics/utils/callbacks/__init__.py,sha256=YrWqC3BVVaTLob4iCPR6I36mUxIUOpPJW7B_LjT78Qw,214
191
- ultralytics/utils/callbacks/base.py,sha256=sOe3JvyBFmRwVZ8_Q03u7JwTeOOm9CI4s9-UEhnG0xA,5777
191
+ ultralytics/utils/callbacks/base.py,sha256=A8H6jXnPQJfOxA1ByTBWF2ePDs5ldccUabXG0u5BfRI,5776
192
192
  ultralytics/utils/callbacks/clearml.py,sha256=M9Fi1OfdWqcm8uVkauuX3zJIYhNh6Tp7Jo4CfA0u0nw,5923
193
193
  ultralytics/utils/callbacks/comet.py,sha256=QR3-9f0L_W7nZWWg_OEN7t8La2JotapSS-CnNYVjCdk,13744
194
194
  ultralytics/utils/callbacks/dvc.py,sha256=WIClMsuvhiiyrwRv5BsZLxjsxYNJ3Y8Vq7zN0Bthtro,5045
@@ -198,9 +198,9 @@ ultralytics/utils/callbacks/neptune.py,sha256=5Z3ua5YBTUS56FH8VQKQG1aaIo9fH8GEyz
198
198
  ultralytics/utils/callbacks/raytune.py,sha256=ODVYzy-CoM4Uge0zjkh3Hnh9nF2M0vhDrSenXnvcizw,705
199
199
  ultralytics/utils/callbacks/tensorboard.py,sha256=Z1veCVcn9THPhdplWuIzwlsW2yF7y-On9IZIk3khM0Y,4135
200
200
  ultralytics/utils/callbacks/wb.py,sha256=woCQVuZzqtM5KnwxIibcfM3sFBYojeMPnv11jrRaIQA,6674
201
- ultralytics-8.1.46.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
202
- ultralytics-8.1.46.dist-info/METADATA,sha256=tbSxwlUsVrE2EMwEmmMO7WGusSYBSugNmeC87Q9Nqxw,40416
203
- ultralytics-8.1.46.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
204
- ultralytics-8.1.46.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
205
- ultralytics-8.1.46.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
206
- ultralytics-8.1.46.dist-info/RECORD,,
201
+ ultralytics-8.2.0.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
202
+ ultralytics-8.2.0.dist-info/METADATA,sha256=jikHSAfURO1Erg4fy0DBRArCrEXdb-YtnNckZYTLYYY,40500
203
+ ultralytics-8.2.0.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
204
+ ultralytics-8.2.0.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
205
+ ultralytics-8.2.0.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
206
+ ultralytics-8.2.0.dist-info/RECORD,,