ultralytics 8.3.35__py3-none-any.whl → 8.3.37__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/test_solutions.py CHANGED
@@ -16,7 +16,7 @@ def test_major_solutions():
16
16
  safe_download(url=MAJOR_SOLUTIONS_DEMO)
17
17
  cap = cv2.VideoCapture("solutions_ci_demo.mp4")
18
18
  assert cap.isOpened(), "Error reading video file"
19
- region_points = [(20, 400), (1080, 404), (1080, 360), (20, 360)]
19
+ region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360)]
20
20
  counter = solutions.ObjectCounter(region=region_points, model="yolo11n.pt", show=False) # Test object counter
21
21
  heatmap = solutions.Heatmap(colormap=cv2.COLORMAP_PARULA, model="yolo11n.pt", show=False) # Test heatmaps
22
22
  speed = solutions.SpeedEstimator(region=region_points, model="yolo11n.pt", show=False) # Test queue manager
ultralytics/__init__.py CHANGED
@@ -1,6 +1,6 @@
1
1
  # Ultralytics YOLO 🚀, AGPL-3.0 license
2
2
 
3
- __version__ = "8.3.35"
3
+ __version__ = "8.3.37"
4
4
 
5
5
  import os
6
6
 
@@ -83,13 +83,13 @@ SOLUTIONS_HELP_MSG = f"""
83
83
  See all ARGS at https://docs.ultralytics.com/usage/cfg or with 'yolo cfg'
84
84
 
85
85
  1. Call object counting solution
86
- yolo solutions count source="path/to/video/file.mp4" region=[(20, 400), (1080, 404), (1080, 360), (20, 360)]
86
+ yolo solutions count source="path/to/video/file.mp4" region=[(20, 400), (1080, 400), (1080, 360), (20, 360)]
87
87
 
88
88
  2. Call heatmaps solution
89
89
  yolo solutions heatmap colormap=cv2.COLORMAP_PARAULA model=yolo11n.pt
90
90
 
91
91
  3. Call queue management solution
92
- yolo solutions queue region=[(20, 400), (1080, 404), (1080, 360), (20, 360)] model=yolo11n.pt
92
+ yolo solutions queue region=[(20, 400), (1080, 400), (1080, 360), (20, 360)] model=yolo11n.pt
93
93
 
94
94
  4. Call workouts monitoring solution for push-ups
95
95
  yolo solutions workout model=yolo11n-pose.pt kpts=[6, 8, 10]
@@ -83,7 +83,7 @@ int8: False # (bool) CoreML/TF INT8 quantization
83
83
  dynamic: False # (bool) ONNX/TF/TensorRT: dynamic axes
84
84
  simplify: True # (bool) ONNX: simplify model using `onnxslim`
85
85
  opset: # (int, optional) ONNX: opset version
86
- workspace: 4 # (int) TensorRT: workspace size (GB)
86
+ workspace: None # (float, optional) TensorRT: workspace size (GiB), `None` will let TensorRT auto-allocate memory
87
87
  nms: False # (bool) CoreML: add NMS
88
88
 
89
89
  # Hyperparameters ------------------------------------------------------------------------------------------------------
@@ -2,7 +2,7 @@
2
2
  # Configuration for Ultralytics Solutions
3
3
 
4
4
  # Object counting settings
5
- region: # Object counting, queue or speed estimation region points. Default region points are [(20, 400), (1080, 404), (1080, 360), (20, 360)]
5
+ region: # Object counting, queue or speed estimation region points. Default region points are [(20, 400), (1080, 400), (1080, 360), (20, 360)]
6
6
  show_in: True # Flag to display objects moving *into* the defined region
7
7
  show_out: True # Flag to display objects moving *out of* the defined region
8
8
 
@@ -1591,7 +1591,7 @@ class LetterBox:
1591
1591
  labels["ratio_pad"] = (labels["ratio_pad"], (left, top)) # for evaluation
1592
1592
 
1593
1593
  if len(labels):
1594
- labels = self._update_labels(labels, ratio, dw, dh)
1594
+ labels = self._update_labels(labels, ratio, left, top)
1595
1595
  labels["img"] = img
1596
1596
  labels["resized_shape"] = new_shape
1597
1597
  return labels
@@ -501,8 +501,7 @@ class Exporter:
501
501
  @try_export
502
502
  def export_openvino(self, prefix=colorstr("OpenVINO:")):
503
503
  """YOLO OpenVINO export."""
504
- # WARNING: numpy>=2.0.0 issue with OpenVINO on macOS https://github.com/ultralytics/ultralytics/pull/17221
505
- check_requirements(f'openvino{"<=2024.0.0" if ARM64 else ">=2024.0.0"}') # fix OpenVINO issue on ARM64
504
+ check_requirements("openvino>=2024.5.0")
506
505
  import openvino as ov
507
506
 
508
507
  LOGGER.info(f"\n{prefix} starting export with openvino {ov.__version__}...")
@@ -530,7 +529,7 @@ class Exporter:
530
529
  if self.args.int8:
531
530
  fq = str(self.file).replace(self.file.suffix, f"_int8_openvino_model{os.sep}")
532
531
  fq_ov = str(Path(fq) / self.file.with_suffix(".xml").name)
533
- check_requirements("nncf>=2.8.0")
532
+ check_requirements("nncf>=2.14.0")
534
533
  import nncf
535
534
 
536
535
  def transform_fn(data_item) -> np.ndarray:
@@ -782,10 +781,10 @@ class Exporter:
782
781
  # Engine builder
783
782
  builder = trt.Builder(logger)
784
783
  config = builder.create_builder_config()
785
- workspace = int(self.args.workspace * (1 << 30))
786
- if is_trt10:
784
+ workspace = int(self.args.workspace * (1 << 30)) if self.args.workspace is not None else 0
785
+ if is_trt10 and workspace > 0:
787
786
  config.set_memory_pool_limit(trt.MemoryPoolType.WORKSPACE, workspace)
788
- else: # TensorRT versions 7, 8
787
+ elif workspace > 0 and not is_trt10: # TensorRT versions 7, 8
789
788
  config.max_workspace_size = workspace
790
789
  flag = 1 << int(trt.NetworkDefinitionCreationFlag.EXPLICIT_BATCH)
791
790
  network = builder.create_network(flag)
@@ -824,7 +823,7 @@ class Exporter:
824
823
  LOGGER.warning(f"{prefix} WARNING ⚠️ 'dynamic=True' model requires max batch size, i.e. 'batch=16'")
825
824
  profile = builder.create_optimization_profile()
826
825
  min_shape = (1, shape[1], 32, 32) # minimum input shape
827
- max_shape = (*shape[:2], *(int(max(1, self.args.workspace) * d) for d in shape[2:])) # max input shape
826
+ max_shape = (*shape[:2], *(int(max(1, workspace) * d) for d in shape[2:])) # max input shape
828
827
  for inp in inputs:
829
828
  profile.set_shape(inp.name, min=min_shape, opt=shape, max=max_shape)
830
829
  config.add_optimization_profile(profile)
@@ -1126,3 +1126,20 @@ class Model(nn.Module):
1126
1126
  description of the expected behavior and structure.
1127
1127
  """
1128
1128
  raise NotImplementedError("Please provide task map for your model!")
1129
+
1130
+ def eval(self):
1131
+ """
1132
+ Sets the model to evaluation mode.
1133
+
1134
+ This method changes the model's mode to evaluation, which affects layers like dropout and batch normalization
1135
+ that behave differently during training and evaluation.
1136
+
1137
+ Returns:
1138
+ (Model): The model instance with evaluation mode set.
1139
+
1140
+ Examples:
1141
+ >> model = YOLO("yolo11n.pt")
1142
+ >> model.eval()
1143
+ """
1144
+ self.model.eval()
1145
+ return self
ultralytics/nn/tasks.py CHANGED
@@ -960,10 +960,8 @@ def parse_model(d, ch, verbose=True): # model_dict, input_channels(3)
960
960
  m = getattr(torch.nn, m[3:]) if "nn." in m else globals()[m] # get module
961
961
  for j, a in enumerate(args):
962
962
  if isinstance(a, str):
963
- try:
963
+ with contextlib.suppress(ValueError):
964
964
  args[j] = locals()[a] if a in locals() else ast.literal_eval(a)
965
- except ValueError:
966
- pass
967
965
  n = n_ = max(round(n * depth), 1) if n > 1 else n # depth gain
968
966
  if m in {
969
967
  Classify,
@@ -1141,24 +1139,16 @@ def guess_model_task(model):
1141
1139
 
1142
1140
  # Guess from model cfg
1143
1141
  if isinstance(model, dict):
1144
- try:
1142
+ with contextlib.suppress(Exception):
1145
1143
  return cfg2task(model)
1146
- except Exception:
1147
- pass
1148
-
1149
1144
  # Guess from PyTorch model
1150
1145
  if isinstance(model, nn.Module): # PyTorch model
1151
1146
  for x in "model.args", "model.model.args", "model.model.model.args":
1152
- try:
1147
+ with contextlib.suppress(Exception):
1153
1148
  return eval(x)["task"]
1154
- except Exception:
1155
- pass
1156
1149
  for x in "model.yaml", "model.model.yaml", "model.model.model.yaml":
1157
- try:
1150
+ with contextlib.suppress(Exception):
1158
1151
  return cfg2task(eval(x))
1159
- except Exception:
1160
- pass
1161
-
1162
1152
  for m in model.modules():
1163
1153
  if isinstance(m, Segment):
1164
1154
  return "segment"
@@ -80,37 +80,33 @@ class ObjectCounter(BaseSolution):
80
80
  else: # Moving left
81
81
  self.out_count += 1
82
82
  self.classwise_counts[self.names[cls]]["OUT"] += 1
83
- else:
84
- # Horizontal region: Compare y-coordinates to determine direction
85
- if current_centroid[1] > prev_position[1]: # Moving downward
86
- self.in_count += 1
87
- self.classwise_counts[self.names[cls]]["IN"] += 1
88
- else: # Moving upward
89
- self.out_count += 1
90
- self.classwise_counts[self.names[cls]]["OUT"] += 1
83
+ # Horizontal region: Compare y-coordinates to determine direction
84
+ elif current_centroid[1] > prev_position[1]: # Moving downward
85
+ self.in_count += 1
86
+ self.classwise_counts[self.names[cls]]["IN"] += 1
87
+ else: # Moving upward
88
+ self.out_count += 1
89
+ self.classwise_counts[self.names[cls]]["OUT"] += 1
91
90
  self.counted_ids.append(track_id)
92
91
 
93
92
  elif len(self.region) > 2: # Polygonal region
94
93
  polygon = self.Polygon(self.region)
95
94
  if polygon.contains(self.Point(current_centroid)):
96
95
  # Determine motion direction for vertical or horizontal polygons
97
- region_width = max([p[0] for p in self.region]) - min([p[0] for p in self.region])
98
- region_height = max([p[1] for p in self.region]) - min([p[1] for p in self.region])
99
-
100
- if region_width < region_height: # Vertical-oriented polygon
101
- if current_centroid[0] > prev_position[0]: # Moving right
102
- self.in_count += 1
103
- self.classwise_counts[self.names[cls]]["IN"] += 1
104
- else: # Moving left
105
- self.out_count += 1
106
- self.classwise_counts[self.names[cls]]["OUT"] += 1
107
- else: # Horizontal-oriented polygon
108
- if current_centroid[1] > prev_position[1]: # Moving downward
109
- self.in_count += 1
110
- self.classwise_counts[self.names[cls]]["IN"] += 1
111
- else: # Moving upward
112
- self.out_count += 1
113
- self.classwise_counts[self.names[cls]]["OUT"] += 1
96
+ region_width = max(p[0] for p in self.region) - min(p[0] for p in self.region)
97
+ region_height = max(p[1] for p in self.region) - min(p[1] for p in self.region)
98
+
99
+ if (
100
+ region_width < region_height
101
+ and current_centroid[0] > prev_position[0]
102
+ or region_width >= region_height
103
+ and current_centroid[1] > prev_position[1]
104
+ ): # Moving right
105
+ self.in_count += 1
106
+ self.classwise_counts[self.names[cls]]["IN"] += 1
107
+ else: # Moving left
108
+ self.out_count += 1
109
+ self.classwise_counts[self.names[cls]]["OUT"] += 1
114
110
  self.counted_ids.append(track_id)
115
111
 
116
112
  def store_classwise_counts(self, cls):
@@ -135,7 +135,7 @@ class BaseSolution:
135
135
  def initialize_region(self):
136
136
  """Initialize the counting region and line segment based on configuration settings."""
137
137
  if self.region is None:
138
- self.region = [(20, 400), (1080, 404), (1080, 360), (20, 360)]
138
+ self.region = [(20, 400), (1080, 400), (1080, 360), (20, 360)]
139
139
  self.r_s = (
140
140
  self.Polygon(self.region) if len(self.region) >= 3 else self.LineString(self.region)
141
141
  ) # region or line
@@ -675,7 +675,7 @@ def profile(input, ops, n=10, device=None, max_num_obj=0):
675
675
  torch.randn(
676
676
  x.shape[0],
677
677
  max_num_obj,
678
- int(sum([(x.shape[-1] / s) * (x.shape[-2] / s) for s in m.stride.tolist()])),
678
+ int(sum((x.shape[-1] / s) * (x.shape[-2] / s) for s in m.stride.tolist())),
679
679
  device=device,
680
680
  dtype=torch.float32,
681
681
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ultralytics
3
- Version: 8.3.35
3
+ Version: 8.3.37
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>
@@ -96,7 +96,7 @@ Requires-Dist: pycocotools>=2.0.7; extra == "extra"
96
96
 
97
97
  <div>
98
98
  <a href="https://github.com/ultralytics/ultralytics/actions/workflows/ci.yaml"><img src="https://github.com/ultralytics/ultralytics/actions/workflows/ci.yaml/badge.svg" alt="Ultralytics CI"></a>
99
- <a href="https://www.pepy.tech/projects/ultralytics"><img src="https://static.pepy.tech/badge/ultralytics" alt="Ultralytics Downloads"></a>
99
+ <a href="https://pepy.tech/projects/ultralytics"><img src="https://static.pepy.tech/badge/ultralytics" alt="Ultralytics Downloads"></a>
100
100
  <a href="https://zenodo.org/badge/latestdoi/264818686"><img src="https://zenodo.org/badge/264818686.svg" alt="Ultralytics YOLO Citation"></a>
101
101
  <a href="https://discord.com/invite/ultralytics"><img alt="Ultralytics Discord" src="https://img.shields.io/discord/1089800235347353640?logo=discord&logoColor=white&label=Discord&color=blue"></a>
102
102
  <a href="https://community.ultralytics.com/"><img alt="Ultralytics Forums" src="https://img.shields.io/discourse/users?server=https%3A%2F%2Fcommunity.ultralytics.com&logo=discourse&label=Forums&color=blue"></a>
@@ -238,8 +238,8 @@ See [Segmentation Docs](https://docs.ultralytics.com/tasks/segment/) for usage e
238
238
  | [YOLO11l-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11l-seg.pt) | 640 | 53.4 | 42.9 | 344.2 ± 3.2 | 7.8 ± 0.2 | 27.6 | 142.2 |
239
239
  | [YOLO11x-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11x-seg.pt) | 640 | 54.7 | 43.8 | 664.5 ± 3.2 | 15.8 ± 0.7 | 62.1 | 319.0 |
240
240
 
241
- - **mAP<sup>val</sup>** values are for single-model single-scale on [COCO val2017](https://cocodataset.org/) dataset. <br>Reproduce by `yolo val segment data=coco-seg.yaml device=0`
242
- - **Speed** averaged over COCO val images using an [Amazon EC2 P4d](https://aws.amazon.com/ec2/instance-types/p4/) instance. <br>Reproduce by `yolo val segment data=coco-seg.yaml batch=1 device=0|cpu`
241
+ - **mAP<sup>val</sup>** values are for single-model single-scale on [COCO val2017](https://cocodataset.org/) dataset. <br>Reproduce by `yolo val segment data=coco.yaml device=0`
242
+ - **Speed** averaged over COCO val images using an [Amazon EC2 P4d](https://aws.amazon.com/ec2/instance-types/p4/) instance. <br>Reproduce by `yolo val segment data=coco.yaml batch=1 device=0|cpu`
243
243
 
244
244
  </details>
245
245
 
@@ -6,12 +6,12 @@ tests/test_engine.py,sha256=dcEcJsMQh61rDSNv7l4TIAgybLpzjVwerv9JZC_KCM8,4934
6
6
  tests/test_exports.py,sha256=1MvhcQ2qHdbJImHII-bFarcaIcm-kPlEK-OdFLxnj7o,8769
7
7
  tests/test_integrations.py,sha256=f5-QCUk1SU_-qn4mBCZwS3GN3tXEBIIXo4z2EhExbHw,6126
8
8
  tests/test_python.py,sha256=I1RRdCwLdrc3jX06huVxct8HX8ccQOmQgVpuEflRl0U,23560
9
- tests/test_solutions.py,sha256=sPYhy2d814mIVvojQeVxeZPu0IVy01_Y8zuMcu_9GF0,3790
10
- ultralytics/__init__.py,sha256=p3VhL7Jt1EsmTNx5u8oPqKFLzRTINa9Rr948aS_1HgM,681
9
+ tests/test_solutions.py,sha256=HlDe-XOgBX0k1cLhRTAhhawMHk6p-5dg5xl2AIRjfdk,3790
10
+ ultralytics/__init__.py,sha256=NM4CIHJ4lynh7PfdgUcAhSA5ARVjN0atqhdtd7wE-gY,681
11
11
  ultralytics/assets/bus.jpg,sha256=wCAZxJecGR63Od3ZRERe9Aja1Weayrb9Ug751DS_vGM,137419
12
12
  ultralytics/assets/zidane.jpg,sha256=Ftc4aeMmen1O0A3o6GCDO9FlfBslLpTAw0gnetx7bts,50427
13
- ultralytics/cfg/__init__.py,sha256=ArJow4-pOPN3y6aKOv5KcVXimikI6vAQvQlSRb7IdWE,38743
14
- ultralytics/cfg/default.yaml,sha256=jlSdLkFAngX6HvrzJHdZ9kdi-xO7utyLc4X2M3NWhEI,8342
13
+ ultralytics/cfg/__init__.py,sha256=fStLKsqZ5-qdLLgvgUAjOm73fILkg8yymrgz3PhbKTE,38743
14
+ ultralytics/cfg/default.yaml,sha256=ic-y0UvbVuaSFgacHgus_-OudGF8LlJwDa63nqb4OMM,8405
15
15
  ultralytics/cfg/datasets/Argoverse.yaml,sha256=FyeuJT5CHq_9d4hlfAf0kpZlnbUMO0S--UJ1yIqcdKk,3134
16
16
  ultralytics/cfg/datasets/DOTAv1.5.yaml,sha256=QVfp_Qp-4rukuicaB4qx86NxSHM8Mrzym8l_fIDo8gw,1195
17
17
  ultralytics/cfg/datasets/DOTAv1.yaml,sha256=sxe2P7nY-cCPufH3G1pymnQVtNoGH1y0ETG5CyWfK9g,1165
@@ -86,12 +86,12 @@ ultralytics/cfg/models/v9/yolov9e.yaml,sha256=dhaR47WxuLOrZWDCceS4bQG00sQdrMc8FQ
86
86
  ultralytics/cfg/models/v9/yolov9m.yaml,sha256=l6CmivzNu44sRVmkQXk4-tXflbV1nWnk5MSc8su2vhs,1311
87
87
  ultralytics/cfg/models/v9/yolov9s.yaml,sha256=lPWcu-6ub1kCBD6zIDFwthYZ3RvdJfODWKy3vEQWRjo,1291
88
88
  ultralytics/cfg/models/v9/yolov9t.yaml,sha256=qL__kr6GoefpQWP4jV0jdzwTp46bdFUcqtPRnfDbkY8,1275
89
- ultralytics/cfg/solutions/default.yaml,sha256=irtGM8nxaSBkrWMqcXoJdtKgqAq1YBwyVMGx5csSH2Y,1239
89
+ ultralytics/cfg/solutions/default.yaml,sha256=KjzFvzwZkP3gO4-2R8QcCHHeE2mF-ZWLB_jrGy6_vjs,1239
90
90
  ultralytics/cfg/trackers/botsort.yaml,sha256=FDIrZ3hAhRtMfDl654pt1HIexmPqlFQK-3lQ4D0tF84,918
91
91
  ultralytics/cfg/trackers/bytetrack.yaml,sha256=rBWY4RjjX6PTO2o6TUJFYHVgXNZHCN5TuBuzwuPYVjA,723
92
92
  ultralytics/data/__init__.py,sha256=VGe-ATG7j35F4A4r8Jmzffjlhve4JAJPgRa5ahKTU18,616
93
93
  ultralytics/data/annotator.py,sha256=JNmS6uELlEABrU5ViVJiPnjt44v-Us7j39Bwoug_73Y,3117
94
- ultralytics/data/augment.py,sha256=1yBz98EO0uVvzVEk6rvuO8YwmxwyYZfe5NV0mNIsHkI,120509
94
+ ultralytics/data/augment.py,sha256=vueJAyJBDNw004ej6scfZ7fIX8TWDzkwaUZBHDYbJdg,120512
95
95
  ultralytics/data/base.py,sha256=ZCIhAyFfxXVp5fVnYD8mwbksNALJTayBKIR5FKGV7ZM,15168
96
96
  ultralytics/data/build.py,sha256=AfMmz0sHIYmwry_90tEJFRk_kz0S3SolScVXqYHiT08,7261
97
97
  ultralytics/data/converter.py,sha256=RIfTXNrazwZqmTYOYoJtupDMtNzm8dxsrVp6q2m8gyg,24388
@@ -100,8 +100,8 @@ ultralytics/data/loaders.py,sha256=Fr70Q9p9t7buLW_8R2_lI_nyCMG033gWSxvwy1M-a-U,2
100
100
  ultralytics/data/split_dota.py,sha256=eFafJ7Vg52wj6KDCHFJAf1tKzyPD5YaPB8kM4VX5Aeg,10688
101
101
  ultralytics/data/utils.py,sha256=bmWEIrdogj4kssZQSJdSbIF8QsJU00lo-EY-Mgcqv4M,31073
102
102
  ultralytics/engine/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
103
- ultralytics/engine/exporter.py,sha256=USEnyGvaTrF6JZtbMPct2LqyiaQHX_Ddt5kO1BbDmRo,67009
104
- ultralytics/engine/model.py,sha256=TfuTczFjNJ3GW0E_qWVH6OaJ_2I-_Srx7i_4GQebDoo,51472
103
+ ultralytics/engine/exporter.py,sha256=pWJJpIBd3jPB9WkE-xpH-g4QxeafPlR-jzUluYIhWY4,66913
104
+ ultralytics/engine/model.py,sha256=VthPB0IK4tsT0VAmu8Jz7q-crWsggCLFH17NwwIxnOo,51962
105
105
  ultralytics/engine/predictor.py,sha256=nO6lzxG75GXyQsUNEimLk5MLfcMwl8AkRAaoYMPwQug,17687
106
106
  ultralytics/engine/results.py,sha256=a1XFZRPwqgKDBOEAibHuT9nP2xefLiWVsMoBJbcr4iA,75058
107
107
  ultralytics/engine/trainer.py,sha256=Cd95QLJ3C4fncoOX1YgauLA9aWVYRd1G6x0Au2xX86k,37335
@@ -171,7 +171,7 @@ ultralytics/models/yolo/world/train.py,sha256=gaDrAmLJpg9qDtmL5evA5HsV2yb4RTRSfk
171
171
  ultralytics/models/yolo/world/train_world.py,sha256=IsnCEVt6DcM9lUskCKmIN-M8MM79xLpwTRqRoAHUnZ4,4857
172
172
  ultralytics/nn/__init__.py,sha256=4BPLHY89xEM_al5uK0aOmFgiML6CMGEZbezxOvTjOEs,587
173
173
  ultralytics/nn/autobackend.py,sha256=Arke5BaRQmr4yQd-xr6Z8P7kbTBNLI-O0fsDPFLOXMw,35625
174
- ultralytics/nn/tasks.py,sha256=NWe0cL7A0LpsP3S1Efvi2NutAjWc_rGYMJMwAeb2bAg,48605
174
+ ultralytics/nn/tasks.py,sha256=pqRe1F1HOH8AjLZpFaZCGb5gSYsXH0eVnHITKDTFFhI,48527
175
175
  ultralytics/nn/modules/__init__.py,sha256=xhW2BennT9U_VaMXVpRu-bdLgp1BXt9L8mkIUBE3idU,2625
176
176
  ultralytics/nn/modules/activation.py,sha256=chhn469wnRHEs5BMGNBYXwPYZc_7-urspTT8fnBd-xA,895
177
177
  ultralytics/nn/modules/block.py,sha256=PAm23KpRHDNlGtNWf1w8Ae0LdjII2H5vu0A4eeWx_XQ,41851
@@ -184,11 +184,11 @@ ultralytics/solutions/ai_gym.py,sha256=Jb9Rbd9gOOj2ox4Q5mqalCdvg3RMXA6Cxe5kS18IF
184
184
  ultralytics/solutions/analytics.py,sha256=C57pIghXeKN8hul8QOV7W9YDMpfFfSfPTBb-lE9HeAc,11535
185
185
  ultralytics/solutions/distance_calculation.py,sha256=KN3CC-dm2dTQylj79IrifCJT8ZhE7hc2EweH3KK31mE,5461
186
186
  ultralytics/solutions/heatmap.py,sha256=-1VtMCJRmpHnLqgna0i2HOBsxNoqFernzpKQnICngUM,5449
187
- ultralytics/solutions/object_counter.py,sha256=-U6l9-2in5MDrex7C_qRa6vDOIEIAWPI40HjLZtfotc,9976
187
+ ultralytics/solutions/object_counter.py,sha256=MuxQG4a22458WwciAB96m5AxVXwH98AIWAaf_kPali4,9613
188
188
  ultralytics/solutions/parking_management.py,sha256=1DsEE94eauqcnnFxUYI-BX9eA1GbJVNt7oncj1okYpI,11198
189
189
  ultralytics/solutions/queue_management.py,sha256=D9TqwJSVrZQFxp_M8O62WfBAxkAuDWWnXe7FFmnp7_w,4881
190
190
  ultralytics/solutions/region_counter.py,sha256=w0c0Sz9XG6rwzr5nA6nb1zFW8IVkTQuatfZNBtOik68,4947
191
- ultralytics/solutions/solutions.py,sha256=XEXLQKBWCDdYyZLkmQMyFIqdOEzr4WTfWNajvgjlhmU,7275
191
+ ultralytics/solutions/solutions.py,sha256=HC5008BgQmWTw4aY8VgTEQioUzvuZxJebIk35E5HdcA,7275
192
192
  ultralytics/solutions/speed_estimation.py,sha256=A10DmuZlGkoZUyfHhZWcDRjj1-9GXiDhEjyBbAzfaDs,4936
193
193
  ultralytics/solutions/streamlit_inference.py,sha256=w4dnvSv2FOrpji9W1Ir86phka3OXc7jd_38-OCbQdZw,5701
194
194
  ultralytics/trackers/__init__.py,sha256=j72IgH2dZHQArMPK4YwcV5ieIw94fYvlGdQjB9cOQKw,227
@@ -215,7 +215,7 @@ ultralytics/utils/ops.py,sha256=dsXNdyrYx_p6io6zezig9p84dxS7U-10vceHNVu2IL0,3288
215
215
  ultralytics/utils/patches.py,sha256=J-iOwIRbfUs-inBZerhnXby5tUKjYcOIyvhLTS352JE,3270
216
216
  ultralytics/utils/plotting.py,sha256=TKtdbAOl6gZdFD2hlA5T4LNWfr2LUWbCC-cXkgL1JAU,61089
217
217
  ultralytics/utils/tal.py,sha256=thD_AEhVmhaZqmS5szZMvpKO-RKOeZwfX1BYAhdnA0o,18470
218
- ultralytics/utils/torch_utils.py,sha256=CfftLVZqCEgIOLtRsU4mytRJoHDiXd5ijzIqIVt-zZM,32070
218
+ ultralytics/utils/torch_utils.py,sha256=57y3iY2ke-E-v7MGMN2nPPAEwqEBsf0rjHEOfo9VPBc,32068
219
219
  ultralytics/utils/triton.py,sha256=gg1finxno_tY2Ge9PMhmu7PI9wvoFZoiicdT4Bhqv3w,3936
220
220
  ultralytics/utils/tuner.py,sha256=K09-z5k1E4ZriSKoWdwQrJ2PJ2fY1ez3-b2R6aKPTqM,6198
221
221
  ultralytics/utils/callbacks/__init__.py,sha256=YrWqC3BVVaTLob4iCPR6I36mUxIUOpPJW7B_LjT78Qw,214
@@ -229,9 +229,9 @@ ultralytics/utils/callbacks/neptune.py,sha256=IbGQfEltamUKXJt93uSLQFn8c2rYh3DMTg
229
229
  ultralytics/utils/callbacks/raytune.py,sha256=Ck_yFzg7UZXiDWrLHaltjQybzVWSFDfzpdrx9ZYTRfI,700
230
230
  ultralytics/utils/callbacks/tensorboard.py,sha256=SHlE58Fb-sg-uZKtgy-ybIO3SAIfK55aj8kTYGA0Cyg,4167
231
231
  ultralytics/utils/callbacks/wb.py,sha256=sizfTa-xI9k2pnDSP_Q9pHZEFwcl__gSFM0AcneuRpY,7058
232
- ultralytics-8.3.35.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
233
- ultralytics-8.3.35.dist-info/METADATA,sha256=bsX4oqwxlyJOT7mSgsEHyCGsxbzs_lXqBxD7Tn-Ztfw,35213
234
- ultralytics-8.3.35.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
235
- ultralytics-8.3.35.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
236
- ultralytics-8.3.35.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
237
- ultralytics-8.3.35.dist-info/RECORD,,
232
+ ultralytics-8.3.37.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
233
+ ultralytics-8.3.37.dist-info/METADATA,sha256=YZiFqPJrDNXehS5zpQyUvJk29YrZV2H5zi5G-ZP_kyc,35201
234
+ ultralytics-8.3.37.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
235
+ ultralytics-8.3.37.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
236
+ ultralytics-8.3.37.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
237
+ ultralytics-8.3.37.dist-info/RECORD,,