ultralytics 8.3.5__py3-none-any.whl → 8.3.7__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.

@@ -697,14 +697,13 @@ class Annotator:
697
697
  angle = 360 - angle
698
698
  return angle
699
699
 
700
- def draw_specific_points(self, keypoints, indices=None, shape=(640, 640), radius=2, conf_thres=0.25):
700
+ def draw_specific_points(self, keypoints, indices=None, radius=2, conf_thres=0.25):
701
701
  """
702
702
  Draw specific keypoints for gym steps counting.
703
703
 
704
704
  Args:
705
705
  keypoints (list): Keypoints data to be plotted.
706
706
  indices (list, optional): Keypoint indices to be plotted. Defaults to [2, 5, 7].
707
- shape (tuple, optional): Image size for model inference. Defaults to (640, 640).
708
707
  radius (int, optional): Keypoint radius. Defaults to 2.
709
708
  conf_thres (float, optional): Confidence threshold for keypoints. Defaults to 0.25.
710
709
 
@@ -715,90 +714,71 @@ class Annotator:
715
714
  Keypoint format: [x, y] or [x, y, confidence].
716
715
  Modifies self.im in-place.
717
716
  """
718
- if indices is None:
719
- indices = [2, 5, 7]
720
- for i, k in enumerate(keypoints):
721
- if i in indices:
722
- x_coord, y_coord = k[0], k[1]
723
- if x_coord % shape[1] != 0 and y_coord % shape[0] != 0:
724
- if len(k) == 3:
725
- conf = k[2]
726
- if conf < conf_thres:
727
- continue
728
- cv2.circle(self.im, (int(x_coord), int(y_coord)), radius, (0, 255, 0), -1, lineType=cv2.LINE_AA)
717
+ indices = indices or [2, 5, 7]
718
+ points = [(int(k[0]), int(k[1])) for i, k in enumerate(keypoints) if i in indices and k[2] >= conf_thres]
719
+
720
+ # Draw lines between consecutive points
721
+ for start, end in zip(points[:-1], points[1:]):
722
+ cv2.line(self.im, start, end, (0, 255, 0), 2, lineType=cv2.LINE_AA)
723
+
724
+ # Draw circles for keypoints
725
+ for pt in points:
726
+ cv2.circle(self.im, pt, radius, (0, 0, 255), -1, lineType=cv2.LINE_AA)
727
+
729
728
  return self.im
730
729
 
731
- def plot_angle_and_count_and_stage(
732
- self, angle_text, count_text, stage_text, center_kpt, color=(104, 31, 17), txt_color=(255, 255, 255)
733
- ):
730
+ def plot_workout_information(self, display_text, position, color=(104, 31, 17), txt_color=(255, 255, 255)):
734
731
  """
735
- Plot the pose angle, count value and step stage.
732
+ Draw text with a background on the image.
736
733
 
737
734
  Args:
738
- angle_text (str): angle value for workout monitoring
739
- count_text (str): counts value for workout monitoring
740
- stage_text (str): stage decision for workout monitoring
741
- center_kpt (list): centroid pose index for workout monitoring
742
- color (tuple): text background color for workout monitoring
743
- txt_color (tuple): text foreground color for workout monitoring
735
+ display_text (str): The text to be displayed.
736
+ position (tuple): Coordinates (x, y) on the image where the text will be placed.
737
+ color (tuple, optional): Text background color
738
+ txt_color (tuple, optional): Text foreground color
744
739
  """
745
- angle_text, count_text, stage_text = (f" {angle_text:.2f}", f"Steps : {count_text}", f" {stage_text}")
740
+ (text_width, text_height), _ = cv2.getTextSize(display_text, 0, self.sf, self.tf)
746
741
 
747
- # Draw angle
748
- (angle_text_width, angle_text_height), _ = cv2.getTextSize(angle_text, 0, self.sf, self.tf)
749
- angle_text_position = (int(center_kpt[0]), int(center_kpt[1]))
750
- angle_background_position = (angle_text_position[0], angle_text_position[1] - angle_text_height - 5)
751
- angle_background_size = (angle_text_width + 2 * 5, angle_text_height + 2 * 5 + (self.tf * 2))
742
+ # Draw background rectangle
752
743
  cv2.rectangle(
753
744
  self.im,
754
- angle_background_position,
755
- (
756
- angle_background_position[0] + angle_background_size[0],
757
- angle_background_position[1] + angle_background_size[1],
758
- ),
745
+ (position[0], position[1] - text_height - 5),
746
+ (position[0] + text_width + 10, position[1] - text_height - 5 + text_height + 10 + self.tf),
759
747
  color,
760
748
  -1,
761
749
  )
762
- cv2.putText(self.im, angle_text, angle_text_position, 0, self.sf, txt_color, self.tf)
763
-
764
- # Draw Counts
765
- (count_text_width, count_text_height), _ = cv2.getTextSize(count_text, 0, self.sf, self.tf)
766
- count_text_position = (angle_text_position[0], angle_text_position[1] + angle_text_height + 20)
767
- count_background_position = (
768
- angle_background_position[0],
769
- angle_background_position[1] + angle_background_size[1] + 5,
770
- )
771
- count_background_size = (count_text_width + 10, count_text_height + 10 + self.tf)
750
+ # Draw text
751
+ cv2.putText(self.im, display_text, position, 0, self.sf, txt_color, self.tf)
772
752
 
773
- cv2.rectangle(
774
- self.im,
775
- count_background_position,
776
- (
777
- count_background_position[0] + count_background_size[0],
778
- count_background_position[1] + count_background_size[1],
779
- ),
780
- color,
781
- -1,
782
- )
783
- cv2.putText(self.im, count_text, count_text_position, 0, self.sf, txt_color, self.tf)
753
+ return text_height
784
754
 
785
- # Draw Stage
786
- (stage_text_width, stage_text_height), _ = cv2.getTextSize(stage_text, 0, self.sf, self.tf)
787
- stage_text_position = (int(center_kpt[0]), int(center_kpt[1]) + angle_text_height + count_text_height + 40)
788
- stage_background_position = (stage_text_position[0], stage_text_position[1] - stage_text_height - 5)
789
- stage_background_size = (stage_text_width + 10, stage_text_height + 10)
755
+ def plot_angle_and_count_and_stage(
756
+ self, angle_text, count_text, stage_text, center_kpt, color=(104, 31, 17), txt_color=(255, 255, 255)
757
+ ):
758
+ """
759
+ Plot the pose angle, count value, and step stage.
790
760
 
791
- cv2.rectangle(
792
- self.im,
793
- stage_background_position,
794
- (
795
- stage_background_position[0] + stage_background_size[0],
796
- stage_background_position[1] + stage_background_size[1],
797
- ),
798
- color,
799
- -1,
761
+ Args:
762
+ angle_text (str): Angle value for workout monitoring
763
+ count_text (str): Counts value for workout monitoring
764
+ stage_text (str): Stage decision for workout monitoring
765
+ center_kpt (list): Centroid pose index for workout monitoring
766
+ color (tuple, optional): Text background color
767
+ txt_color (tuple, optional): Text foreground color
768
+ """
769
+ # Format text
770
+ angle_text, count_text, stage_text = f" {angle_text:.2f}", f"Steps : {count_text}", f" {stage_text}"
771
+
772
+ # Draw angle, count and stage text
773
+ angle_height = self.plot_workout_information(
774
+ angle_text, (int(center_kpt[0]), int(center_kpt[1])), color, txt_color
775
+ )
776
+ count_height = self.plot_workout_information(
777
+ count_text, (int(center_kpt[0]), int(center_kpt[1]) + angle_height + 20), color, txt_color
778
+ )
779
+ self.plot_workout_information(
780
+ stage_text, (int(center_kpt[0]), int(center_kpt[1]) + angle_height + count_height + 40), color, txt_color
800
781
  )
801
- cv2.putText(self.im, stage_text, stage_text_position, 0, self.sf, txt_color, self.tf)
802
782
 
803
783
  def seg_bbox(self, mask, mask_color=(255, 0, 255), label=None, txt_color=(255, 255, 255)):
804
784
  """
@@ -123,6 +123,12 @@ def get_cpu_info():
123
123
  return PERSISTENT_CACHE.get("cpu_info", "unknown")
124
124
 
125
125
 
126
+ def get_gpu_info(index):
127
+ """Return a string with system GPU information, i.e. 'Tesla T4, 15102MiB'."""
128
+ properties = torch.cuda.get_device_properties(index)
129
+ return f"{properties.name}, {properties.total_memory / (1 << 20):.0f}MiB"
130
+
131
+
126
132
  def select_device(device="", batch=0, newline=False, verbose=True):
127
133
  """
128
134
  Selects the appropriate PyTorch device based on the provided arguments.
@@ -208,8 +214,7 @@ def select_device(device="", batch=0, newline=False, verbose=True):
208
214
  )
209
215
  space = " " * (len(s) + 1)
210
216
  for i, d in enumerate(devices):
211
- p = torch.cuda.get_device_properties(i)
212
- s += f"{'' if i == 0 else space}CUDA:{d} ({p.name}, {p.total_memory / (1 << 20):.0f}MiB)\n" # bytes to MB
217
+ s += f"{'' if i == 0 else space}CUDA:{d} ({get_gpu_info(i)})\n" # bytes to MB
213
218
  arg = "cuda:0"
214
219
  elif mps and TORCH_2_0 and torch.backends.mps.is_available():
215
220
  # Prefer MPS if available
@@ -638,7 +643,8 @@ def profile(input, ops, n=10, device=None):
638
643
  f"{'Params':>12s}{'GFLOPs':>12s}{'GPU_mem (GB)':>14s}{'forward (ms)':>14s}{'backward (ms)':>14s}"
639
644
  f"{'input':>24s}{'output':>24s}"
640
645
  )
641
-
646
+ gc.collect() # attempt to free unused memory
647
+ torch.cuda.empty_cache()
642
648
  for x in input if isinstance(input, list) else [input]:
643
649
  x = x.to(device)
644
650
  x.requires_grad = True
@@ -672,8 +678,9 @@ def profile(input, ops, n=10, device=None):
672
678
  except Exception as e:
673
679
  LOGGER.info(e)
674
680
  results.append(None)
675
- gc.collect() # attempt to free unused memory
676
- torch.cuda.empty_cache()
681
+ finally:
682
+ gc.collect() # attempt to free unused memory
683
+ torch.cuda.empty_cache()
677
684
  return results
678
685
 
679
686
 
@@ -1,8 +1,7 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ultralytics
3
- Version: 8.3.5
3
+ Version: 8.3.7
4
4
  Summary: Ultralytics YOLO for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
5
- Author: Ayush Chaurasia
6
5
  Author-email: Glenn Jocher <glenn.jocher@ultralytics.com>, Jing Qiu <jing.qiu@ultralytics.com>
7
6
  Maintainer-email: Ultralytics <hello@ultralytics.com>
8
7
  License: AGPL-3.0
@@ -99,8 +98,8 @@ Requires-Dist: dvclive>=2.12.0; extra == "logging"
99
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>
100
99
  <a href="https://zenodo.org/badge/latestdoi/264818686"><img src="https://zenodo.org/badge/264818686.svg" alt="Ultralytics YOLO Citation"></a>
101
100
  <a href="https://hub.docker.com/r/ultralytics/ultralytics"><img src="https://img.shields.io/docker/pulls/ultralytics/ultralytics?logo=docker" alt="Ultralytics Docker Pulls"></a>
102
- <a href="https://ultralytics.com/discord"><img alt="Ultralytics Discord" src="https://img.shields.io/discord/1089800235347353640?logo=discord&logoColor=white&label=Discord&color=blue"></a>
103
- <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>
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
+ <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>
104
103
  <a href="https://reddit.com/r/ultralytics"><img alt="Ultralytics Reddit" src="https://img.shields.io/reddit/subreddit-subscribers/ultralytics?style=flat&logo=reddit&logoColor=white&label=Reddit&color=blue"></a>
105
104
  <br>
106
105
  <a href="https://console.paperspace.com/github/ultralytics/ultralytics"><img src="https://assets.paperspace.io/img/gradient-badge.svg" alt="Run Ultralytics on Gradient"></a>
@@ -111,7 +110,7 @@ Requires-Dist: dvclive>=2.12.0; extra == "logging"
111
110
 
112
111
  [Ultralytics](https://www.ultralytics.com/) [YOLO11](https://github.com/ultralytics/ultralytics) is a cutting-edge, state-of-the-art (SOTA) model that builds upon the success of previous YOLO versions and introduces new features and improvements to further boost performance and flexibility. YOLO11 is designed to be fast, accurate, and easy to use, making it an excellent choice for a wide range of object detection and tracking, instance segmentation, image classification and pose estimation tasks.
113
112
 
114
- We hope that the resources here will help you get the most out of YOLO. Please browse the Ultralytics <a href="https://docs.ultralytics.com/">Docs</a> for details, raise an issue on <a href="https://github.com/ultralytics/ultralytics/issues/new/choose">GitHub</a> for support, questions, or discussions, become a member of the Ultralytics <a href="https://ultralytics.com/discord">Discord</a>, <a href="https://reddit.com/r/ultralytics">Reddit</a> and <a href="https://community.ultralytics.com">Forums</a>!
113
+ We hope that the resources here will help you get the most out of YOLO. Please browse the Ultralytics <a href="https://docs.ultralytics.com/">Docs</a> for details, raise an issue on <a href="https://github.com/ultralytics/ultralytics/issues/new/choose">GitHub</a> for support, questions, or discussions, become a member of the Ultralytics <a href="https://discord.com/invite/ultralytics">Discord</a>, <a href="https://reddit.com/r/ultralytics">Reddit</a> and <a href="https://community.ultralytics.com/">Forums</a>!
115
114
 
116
115
  To request an Enterprise License please complete the form at [Ultralytics Licensing](https://www.ultralytics.com/license).
117
116
 
@@ -130,7 +129,7 @@ To request an Enterprise License please complete the form at [Ultralytics Licens
130
129
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="2%" alt="space">
131
130
  <a href="https://ultralytics.com/bilibili"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-bilibili.png" width="2%" alt="Ultralytics BiliBili"></a>
132
131
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="2%" alt="space">
133
- <a href="https://ultralytics.com/discord"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-discord.png" width="2%" alt="Ultralytics Discord"></a>
132
+ <a href="https://discord.com/invite/ultralytics"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-discord.png" width="2%" alt="Ultralytics Discord"></a>
134
133
  </div>
135
134
  </div>
136
135
 
@@ -299,7 +298,7 @@ See [OBB Docs](https://docs.ultralytics.com/tasks/obb/) for usage examples with
299
298
  Our key integrations with leading AI platforms extend the functionality of Ultralytics' offerings, enhancing tasks like dataset labeling, training, visualization, and model management. Discover how Ultralytics, in collaboration with [Roboflow](https://roboflow.com/?ref=ultralytics), ClearML, [Comet](https://bit.ly/yolov8-readme-comet), Neural Magic and [OpenVINO](https://docs.ultralytics.com/integrations/openvino/), can optimize your AI workflow.
300
299
 
301
300
  <br>
302
- <a href="https://ultralytics.com/hub" target="_blank">
301
+ <a href="https://www.ultralytics.com/hub" target="_blank">
303
302
  <img width="100%" src="https://github.com/ultralytics/assets/raw/main/yolov8/banner-integrations.png" alt="Ultralytics active learning integrations"></a>
304
303
  <br>
305
304
  <br>
@@ -326,7 +325,7 @@ Our key integrations with leading AI platforms extend the functionality of Ultra
326
325
 
327
326
  Experience seamless AI with [Ultralytics HUB](https://www.ultralytics.com/hub) ⭐, the all-in-one solution for data visualization, YOLO11 🚀 model training and deployment, without any coding. Transform images into actionable insights and bring your AI visions to life with ease using our cutting-edge platform and user-friendly [Ultralytics App](https://www.ultralytics.com/app-install). Start your journey for **Free** now!
328
327
 
329
- <a href="https://ultralytics.com/hub" target="_blank">
328
+ <a href="https://www.ultralytics.com/hub" target="_blank">
330
329
  <img width="100%" src="https://github.com/ultralytics/assets/raw/main/im/ultralytics-hub.png" alt="Ultralytics HUB preview image"></a>
331
330
 
332
331
  ## <div align="center">Contribute</div>
@@ -363,5 +362,5 @@ For Ultralytics bug reports and feature requests please visit [GitHub Issues](ht
363
362
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="3%" alt="space">
364
363
  <a href="https://ultralytics.com/bilibili"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-bilibili.png" width="3%" alt="Ultralytics BiliBili"></a>
365
364
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="3%" alt="space">
366
- <a href="https://ultralytics.com/discord"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-discord.png" width="3%" alt="Ultralytics Discord"></a>
365
+ <a href="https://discord.com/invite/ultralytics"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-discord.png" width="3%" alt="Ultralytics Discord"></a>
367
366
  </div>
@@ -7,8 +7,8 @@ tests/test_explorer.py,sha256=9EeMtt4-K3-MeGnAc7NemTg3uTo-Xr6AYJlTJZJJeF8,2572
7
7
  tests/test_exports.py,sha256=fpTKEVBUGLF3WiZPNKRs-IEcIY4cfxgvgKjUNfodjww,8042
8
8
  tests/test_integrations.py,sha256=f5-QCUk1SU_-qn4mBCZwS3GN3tXEBIIXo4z2EhExbHw,6126
9
9
  tests/test_python.py,sha256=I1RRdCwLdrc3jX06huVxct8HX8ccQOmQgVpuEflRl0U,23560
10
- tests/test_solutions.py,sha256=Hjedlp6Qkqb4zyQ0y3DvfNValcguOMl8xbrDVpIFPfU,3304
11
- ultralytics/__init__.py,sha256=cPwEVFFgAAExxMMRGjRidE4mFdGDLx7Pr-tKFsQX5E4,693
10
+ tests/test_solutions.py,sha256=GYOjUXor2pHGPFwvZrmqrxNjs9wYz4r3_XWt8DMAVaM,3132
11
+ ultralytics/__init__.py,sha256=JGCg6lJcabOg0oS20n6yzYPiDSaT51M3woQo45mHgbM,693
12
12
  ultralytics/assets/bus.jpg,sha256=wCAZxJecGR63Od3ZRERe9Aja1Weayrb9Ug751DS_vGM,137419
13
13
  ultralytics/assets/zidane.jpg,sha256=Ftc4aeMmen1O0A3o6GCDO9FlfBslLpTAw0gnetx7bts,50427
14
14
  ultralytics/cfg/__init__.py,sha256=62PSSAa0W4-gAEcRNKoKbcxUWBeFNs0ss2O4XJQhOPY,33145
@@ -86,7 +86,7 @@ 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=Z3hzSeoEhsVuGGc2WMVRAYukuXFGqKjAIefL6JS8P8k,599
89
+ ultralytics/cfg/solutions/default.yaml,sha256=H4pXUoA-IafiHL6NNNTyWXrlHAjMRqaItGK1U5amNE4,825
90
90
  ultralytics/cfg/trackers/botsort.yaml,sha256=8B0xNbnG_E-9DCUpap72PWkUgBb1AjuApEn7gHiVngE,916
91
91
  ultralytics/cfg/trackers/bytetrack.yaml,sha256=8vpTZ2x9mhRXJymoJvs1G8kTXo_HxbSwHup2FQALT3A,721
92
92
  ultralytics/data/__init__.py,sha256=VGe-ATG7j35F4A4r8Jmzffjlhve4JAJPgRa5ahKTU18,616
@@ -94,7 +94,7 @@ ultralytics/data/annotator.py,sha256=PniOxH2MScWKp539vuufk69uG1JsltDB5OMCUhxn2QY
94
94
  ultralytics/data/augment.py,sha256=YCLrwx1mRGeidggo_7GeINay8KdxACqREHJofZeaTHA,120430
95
95
  ultralytics/data/base.py,sha256=ZCIhAyFfxXVp5fVnYD8mwbksNALJTayBKIR5FKGV7ZM,15168
96
96
  ultralytics/data/build.py,sha256=AfMmz0sHIYmwry_90tEJFRk_kz0S3SolScVXqYHiT08,7261
97
- ultralytics/data/converter.py,sha256=DjJ0atku2aKW0iS1PZPNX8V6WTrZ-CHZT6hopE1HSjI,21385
97
+ ultralytics/data/converter.py,sha256=7GH5HeSY_OafcornXg5m_5ioU_mtbYopsJV6F4PZTOY,24092
98
98
  ultralytics/data/dataset.py,sha256=IS07ulk7rXPZ-SW_rjYF9mS-TxPXOY9bbo5jqfcwPqM,22874
99
99
  ultralytics/data/loaders.py,sha256=JF2Z_ESK6RweavOuYWejYSGJwmqINb5hNwwCb3AAf0M,24094
100
100
  ultralytics/data/split_dota.py,sha256=yOtypHoY5HvIVBKZgFXdfj2tuCLLEBnMwNfAeG94Eik,10680
@@ -103,13 +103,13 @@ ultralytics/data/explorer/__init__.py,sha256=-Y3m1ZedepOQUv_KW82zaGxvU_PSHcuwUTF
103
103
  ultralytics/data/explorer/explorer.py,sha256=JWmLHHhp68h2q3vx4poBou5RYoAX3R89yihR50YLDb0,18881
104
104
  ultralytics/data/explorer/utils.py,sha256=EvvukQiQUTBrsZznmMnyEX2EqTuwZo_Geyc8yfi8NIA,7085
105
105
  ultralytics/data/explorer/gui/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
106
- ultralytics/data/explorer/gui/dash.py,sha256=vZ476NaUH4FKU08rAJ1K9WNyKtg0soMyJJxqg176yWc,10498
106
+ ultralytics/data/explorer/gui/dash.py,sha256=6XOZy9NrkPEXREJPbi0EBkGgu78TAdHpdhSB2HuBOAo,10222
107
107
  ultralytics/engine/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
108
- ultralytics/engine/exporter.py,sha256=qhuPMBjBDVj9Qaa2qJYR954a-YS4BJtVN9jJeyFzyOg,57527
109
- ultralytics/engine/model.py,sha256=TDuy9JzzyvOaq5aKVljL_MFRKBDMCFwaLo3JD_d45CU,51462
108
+ ultralytics/engine/exporter.py,sha256=DeHW_T_Zd3A21BLQYV1-FnS5EcmepMOy9nrussYNieU,57505
109
+ ultralytics/engine/model.py,sha256=ijssmZVX9K1y6t2qUgRjQB8ZfZmIatU2_-KFPoyUJ3M,51561
110
110
  ultralytics/engine/predictor.py,sha256=MgMWHUJdRcVCaVmOyvdy2Gjk_EyRHv-ar0SSGxQe8F4,17471
111
111
  ultralytics/engine/results.py,sha256=8RJlN8J-_9w-mrDZm9wC-DZJTPBS7v1c_r_R173QyRM,75043
112
- ultralytics/engine/trainer.py,sha256=O2xCZ6mriLfPhU2IRe8XCCyZiI5A_AknjpQw3O5bAIE,36983
112
+ ultralytics/engine/trainer.py,sha256=ZCEXUPbJG_8Hzn2mLergk3WV-41ei0LT84Tspk0le30,37147
113
113
  ultralytics/engine/tuner.py,sha256=gPqDTHH7vRB2O3YyH26m1BjVKbXxuA2XAlPRzTKFZsc,11838
114
114
  ultralytics/engine/validator.py,sha256=2C_qXI36Z9rLOpmS0YR8Qe3ka4p23YiH2w5ai7-XBwE,14811
115
115
  ultralytics/hub/__init__.py,sha256=3SKvZ5aRina3h94xMPQIB3D4maF62qFcyIqPPHRHNAc,5644
@@ -185,14 +185,14 @@ ultralytics/nn/modules/head.py,sha256=x0Y8lTKFqYC4oAN1JTJ-yQ43sIXEIp35dmC14vdtQn
185
185
  ultralytics/nn/modules/transformer.py,sha256=tGiK8NmPfswwW1rbF21r5ILUkkZQ6Nk4s8j16vFBmps,18069
186
186
  ultralytics/nn/modules/utils.py,sha256=a88cKl2wz1nMVSEBiajtvaCbDBQIkESWOKTZ_WAJy90,3195
187
187
  ultralytics/solutions/__init__.py,sha256=6RDeXWO1QSaMgCq8YrWXaj2xvPw2sJwJL_a0dgjCvz0,648
188
- ultralytics/solutions/ai_gym.py,sha256=MgD_4DciCqXquM2Y6yjIIRkGWIg3rNfSuXrFqYzOCaI,4719
188
+ ultralytics/solutions/ai_gym.py,sha256=lBAkWV8vrEdKAXcBFVbugPeZZ08MOjGYTdnFlG22vKM,3772
189
189
  ultralytics/solutions/analytics.py,sha256=bGuZes11D7DNiTsHdwu6PJ0QA0vCiqMMAtZ7NyEkshY,11568
190
190
  ultralytics/solutions/distance_calculation.py,sha256=o_DAHk4JX8n2Vt7E68MX67mREOBZuy5skbXtVZ6iu_4,5228
191
- ultralytics/solutions/heatmap.py,sha256=mSssM7bZa_MTx5404tQPL0TMZRguowQa4DSAbcpivRM,10090
192
- ultralytics/solutions/object_counter.py,sha256=lBSWW0Ev6FOeV1MQNESBpub9Wzyulb9s1VBGbRRd8Sk,5485
191
+ ultralytics/solutions/heatmap.py,sha256=2C4s_rVFcOc5oSWxb0pNxNoCawe4lxajpTDNFd4tVL8,3850
192
+ ultralytics/solutions/object_counter.py,sha256=uuA7B-v9u-ElyEg1xCuNRgcnxpRpEfBWCdLs2ppjzzk,5497
193
193
  ultralytics/solutions/parking_management.py,sha256=VgYyhoSEo7fnPegIhNUqnFL0jlMEevALx0QQbzJ3vGI,9049
194
194
  ultralytics/solutions/queue_management.py,sha256=yKPGc2-fN-lMpNddkxjN7xYGIJwMdoU-VIDRxQ1KPow,4869
195
- ultralytics/solutions/solutions.py,sha256=bIt32FLj4ny5kG43bUKZiwyh-7qye6NOApxAvioklIA,3248
195
+ ultralytics/solutions/solutions.py,sha256=y6A2ZelsUj9RgN0GZNFBc_01UakoByT_jLG8-FiiLyI,3461
196
196
  ultralytics/solutions/speed_estimation.py,sha256=c9OPGpDU9x6Dj4SobNc-sO90EZTPTGeKkW5u6C6Zj7g,4623
197
197
  ultralytics/solutions/streamlit_inference.py,sha256=qA2EtwUC7ADOQ8P-zs3VPyrIoRArhcZz9CxkFbH63bw,5699
198
198
  ultralytics/trackers/__init__.py,sha256=j72IgH2dZHQArMPK4YwcV5ieIw94fYvlGdQjB9cOQKw,227
@@ -204,10 +204,10 @@ ultralytics/trackers/utils/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7J
204
204
  ultralytics/trackers/utils/gmc.py,sha256=VcURuY041qGCeWUGMxHZBr10T16LtcMqyv7AmTfE1MY,14557
205
205
  ultralytics/trackers/utils/kalman_filter.py,sha256=cH9zD3fwkuezP97H9mw8cSBN7a8hHKx_Sx1j7t3oYGs,21349
206
206
  ultralytics/trackers/utils/matching.py,sha256=3Ie1WNNRZ4_q3365F03XD7Nr9juZB_08mw4yUKC3w74,7162
207
- ultralytics/utils/__init__.py,sha256=pdYHDaJMacya7WWq5RNEw-UmidG3i0kQyWrbFNnAVtc,48887
208
- ultralytics/utils/autobatch.py,sha256=AXboYfNSnTGsYj5FmgGYPQd0crfkeleyms6QXQfZGQ4,4194
207
+ ultralytics/utils/__init__.py,sha256=XAfItx7avPCi7fpT7rRyQQqgjh2OwoSEkvkp01BbtYc,48760
208
+ ultralytics/utils/autobatch.py,sha256=XbTgvnO9z27ePUDEoIMVc9XOoktPPLOFDoDxF9w3YxU,4240
209
209
  ultralytics/utils/benchmarks.py,sha256=8FYp5WPzcxcDaeg8ol2sgzRBHVGYatEO7f3MrmPF6nI,25097
210
- ultralytics/utils/checks.py,sha256=tiwVY1SCf7AlDOUQDh6fJlmhQ3CxQEqLUrXRvwRBoKs,28998
210
+ ultralytics/utils/checks.py,sha256=7peQ6Ra7mgcu5Xt1XbYiMEJkO-8aYPHco7CBVRQ_oR4,29559
211
211
  ultralytics/utils/dist.py,sha256=NDFga-uKxkBX2zLxFHSene_cCiGQJoyOeCXcN9JIOIk,2358
212
212
  ultralytics/utils/downloads.py,sha256=97JitihZqvIMS6_TX5rJAG7BI8eYHlu5g8YXlI0RkR4,21998
213
213
  ultralytics/utils/errors.py,sha256=GqP_Jgj_n0paxn8OMhn3DTCgoNkB2WjUcUaqs-M6SQk,816
@@ -217,9 +217,9 @@ ultralytics/utils/loss.py,sha256=SW3FVFFp8Ki_LCT8wIdFbm6KmyPcQn3RmKNcvVAhMQI,341
217
217
  ultralytics/utils/metrics.py,sha256=UgLGudWp57uXDMlMUJy4gsz6cfVjcq7tYmHeto3TqvM,53927
218
218
  ultralytics/utils/ops.py,sha256=dsXNdyrYx_p6io6zezig9p84dxS7U-10vceHNVu2IL0,32888
219
219
  ultralytics/utils/patches.py,sha256=J-iOwIRbfUs-inBZerhnXby5tUKjYcOIyvhLTS352JE,3270
220
- ultralytics/utils/plotting.py,sha256=Sqs9Q7mhenCsFed_oyw_64wgvd0TTae9L3Lc4g2_lSI,62296
220
+ ultralytics/utils/plotting.py,sha256=UQMgubdCKkIcKLLIXkE6uM9dhL7NlFRka6xXgfCMFn8,61153
221
221
  ultralytics/utils/tal.py,sha256=ECsu95xEqOItmxMDN4YTD3FsUiIsQNWy0pZC3TfvFfk,16877
222
- ultralytics/utils/torch_utils.py,sha256=RsTzm3__J4K1OUaxqc32O9WT6azcl4hPNkDdxhEp3q4,29792
222
+ ultralytics/utils/torch_utils.py,sha256=Xksge9bLYEo4DMsZtMIQQc5BOw2Py4xyZMUbCXGCKQo,30063
223
223
  ultralytics/utils/triton.py,sha256=gg1finxno_tY2Ge9PMhmu7PI9wvoFZoiicdT4Bhqv3w,3936
224
224
  ultralytics/utils/tuner.py,sha256=AtEtK6pOt9xVTyx864OpNRVxNdAxz5aKHzveiXwkD1A,6250
225
225
  ultralytics/utils/callbacks/__init__.py,sha256=YrWqC3BVVaTLob4iCPR6I36mUxIUOpPJW7B_LjT78Qw,214
@@ -233,9 +233,9 @@ ultralytics/utils/callbacks/neptune.py,sha256=5Z3ua5YBTUS56FH8VQKQG1aaIo9fH8GEyz
233
233
  ultralytics/utils/callbacks/raytune.py,sha256=ODVYzy-CoM4Uge0zjkh3Hnh9nF2M0vhDrSenXnvcizw,705
234
234
  ultralytics/utils/callbacks/tensorboard.py,sha256=0kn4IR10no99UCIheojWRujgybmUHSx5fPI6Vsq6l_g,4135
235
235
  ultralytics/utils/callbacks/wb.py,sha256=9-fjQIdLjr3b73DTE3rHO171KvbH1VweJ-bmbv-rqTw,6747
236
- ultralytics-8.3.5.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
237
- ultralytics-8.3.5.dist-info/METADATA,sha256=vRIip27lGy6ai-vDDQrkLt_2hjxmd6TbIeur2uCcNdI,34685
238
- ultralytics-8.3.5.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
239
- ultralytics-8.3.5.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
240
- ultralytics-8.3.5.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
241
- ultralytics-8.3.5.dist-info/RECORD,,
236
+ ultralytics-8.3.7.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
237
+ ultralytics-8.3.7.dist-info/METADATA,sha256=c7wEDYkKofh_A-k4ToAXV_yhJnpbHsmiDPEATsSyz_w,34699
238
+ ultralytics-8.3.7.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
239
+ ultralytics-8.3.7.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
240
+ ultralytics-8.3.7.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
241
+ ultralytics-8.3.7.dist-info/RECORD,,