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

@@ -71,9 +71,7 @@ class FastSAMPredictor(DetectionPredictor):
71
71
 
72
72
  results = []
73
73
  proto = preds[1][-1] if len(preds[1]) == 3 else preds[1] # second output is len 3 if pt, but only 1 if exported
74
- for i, pred in enumerate(p):
75
- orig_img = orig_imgs[i]
76
- img_path = self.batch[0][i]
74
+ for i, (pred, orig_img, img_path) in enumerate(zip(p, orig_imgs, self.batch[0])):
77
75
  if not len(pred): # save empty boxes
78
76
  masks = None
79
77
  elif self.args.retina_masks:
@@ -335,12 +335,12 @@ class FastSAMPrompt:
335
335
  self.results[0].masks.data = torch.tensor(np.array([onemask]))
336
336
  return self.results
337
337
 
338
- def text_prompt(self, text):
338
+ def text_prompt(self, text, clip_download_root=None):
339
339
  """Processes a text prompt, applies it to existing results and returns the updated results."""
340
340
  if self.results[0].masks is not None:
341
341
  format_results = self._format_results(self.results[0], 0)
342
342
  cropped_images, filter_id, annotations = self._crop_image(format_results)
343
- clip_model, preprocess = self.clip.load("ViT-B/32", device=self.device)
343
+ clip_model, preprocess = self.clip.load("ViT-B/32", download_root=clip_download_root, device=self.device)
344
344
  scores = self.retrieve(clip_model, preprocess, cropped_images, text, device=self.device)
345
345
  max_idx = torch.argmax(scores)
346
346
  max_idx += sum(np.array(filter_id) <= int(max_idx))
@@ -52,9 +52,7 @@ class NASPredictor(BasePredictor):
52
52
  orig_imgs = ops.convert_torch2numpy_batch(orig_imgs)
53
53
 
54
54
  results = []
55
- for i, pred in enumerate(preds):
56
- orig_img = orig_imgs[i]
55
+ for pred, orig_img, img_path in zip(preds, orig_imgs, self.batch[0]):
57
56
  pred[:, :4] = ops.scale_boxes(img.shape[2:], pred[:, :4], orig_img.shape)
58
- img_path = self.batch[0][i]
59
57
  results.append(Results(orig_img, path=img_path, names=self.model.names, boxes=pred))
60
58
  return results
@@ -56,18 +56,16 @@ class RTDETRPredictor(BasePredictor):
56
56
  orig_imgs = ops.convert_torch2numpy_batch(orig_imgs)
57
57
 
58
58
  results = []
59
- for i, bbox in enumerate(bboxes): # (300, 4)
59
+ for bbox, score, orig_img, img_path in zip(bboxes, scores, orig_imgs, self.batch[0]): # (300, 4)
60
60
  bbox = ops.xywh2xyxy(bbox)
61
- score, cls = scores[i].max(-1, keepdim=True) # (300, 1)
62
- idx = score.squeeze(-1) > self.args.conf # (300, )
61
+ max_score, cls = score.max(-1, keepdim=True) # (300, 1)
62
+ idx = max_score.squeeze(-1) > self.args.conf # (300, )
63
63
  if self.args.classes is not None:
64
64
  idx = (cls == torch.tensor(self.args.classes, device=cls.device)).any(1) & idx
65
- pred = torch.cat([bbox, score, cls], dim=-1)[idx] # filter
66
- orig_img = orig_imgs[i]
65
+ pred = torch.cat([bbox, max_score, cls], dim=-1)[idx] # filter
67
66
  oh, ow = orig_img.shape[:2]
68
67
  pred[..., [0, 2]] *= ow
69
68
  pred[..., [1, 3]] *= oh
70
- img_path = self.batch[0][i]
71
69
  results.append(Results(orig_img, path=img_path, names=self.model.names, boxes=pred))
72
70
  return results
73
71
 
@@ -372,8 +372,7 @@ class Predictor(BasePredictor):
372
372
  orig_imgs = ops.convert_torch2numpy_batch(orig_imgs)
373
373
 
374
374
  results = []
375
- for i, masks in enumerate([pred_masks]):
376
- orig_img = orig_imgs[i]
375
+ for masks, orig_img, img_path in zip([pred_masks], orig_imgs, self.batch[0]):
377
376
  if pred_bboxes is not None:
378
377
  pred_bboxes = ops.scale_boxes(img.shape[2:], pred_bboxes.float(), orig_img.shape, padding=False)
379
378
  cls = torch.arange(len(pred_masks), dtype=torch.int32, device=pred_masks.device)
@@ -381,7 +380,6 @@ class Predictor(BasePredictor):
381
380
 
382
381
  masks = ops.scale_masks(masks[None].float(), orig_img.shape[:2], padding=False)[0]
383
382
  masks = masks > self.model.mask_threshold # to bool
384
- img_path = self.batch[0][i]
385
383
  results.append(Results(orig_img, path=img_path, names=names, masks=masks, boxes=pred_bboxes))
386
384
  # Reset segment-all mode.
387
385
  self.segment_all = False
@@ -930,6 +930,8 @@ class PSA(nn.Module):
930
930
 
931
931
 
932
932
  class SCDown(nn.Module):
933
+ """Spatial Channel Downsample (SCDown) module for reducing spatial and channel dimensions."""
934
+
933
935
  def __init__(self, c1, c2, k, s):
934
936
  """
935
937
  Spatial Channel Downsample (SCDown) module.
@@ -281,6 +281,8 @@ class Classify(nn.Module):
281
281
 
282
282
 
283
283
  class WorldDetect(Detect):
284
+ """Head for integrating YOLOv8 detection models with semantic understanding from text embeddings."""
285
+
284
286
  def __init__(self, nc=80, embed=512, with_bn=False, ch=()):
285
287
  """Initialize YOLOv8 detection layer with nc classes and layer channels ch."""
286
288
  super().__init__(nc, ch)
@@ -10,6 +10,8 @@ from ultralytics.utils.plotting import Annotator
10
10
 
11
11
 
12
12
  class ParkingPtsSelection:
13
+ """Class for selecting and managing parking zone points on images using a Tkinter-based UI."""
14
+
13
15
  def __init__(self):
14
16
  """Initializes the UI for selecting parking zone points in a tkinter window."""
15
17
  check_requirements("tkinter")
@@ -154,6 +156,8 @@ class ParkingPtsSelection:
154
156
 
155
157
 
156
158
  class ParkingManagement:
159
+ """Manages parking occupancy and availability using YOLOv8 for real-time monitoring and visualization."""
160
+
157
161
  def __init__(
158
162
  self,
159
163
  model_path,
@@ -10,7 +10,7 @@ from ultralytics.utils.checks import check_requirements
10
10
  from ultralytics.utils.downloads import GITHUB_ASSETS_STEMS
11
11
 
12
12
 
13
- def inference():
13
+ def inference(model=None):
14
14
  """Runs real-time object detection on video input using Ultralytics YOLOv8 in a Streamlit application."""
15
15
  check_requirements("streamlit>=1.29.0") # scope imports for faster ultralytics package load speeds
16
16
  import streamlit as st
@@ -67,7 +67,10 @@ def inference():
67
67
  vid_file_name = 0
68
68
 
69
69
  # Add dropdown menu for model selection
70
- available_models = (x.replace("yolo", "YOLO") for x in GITHUB_ASSETS_STEMS if x.startswith("yolov8"))
70
+ available_models = [x.replace("yolo", "YOLO") for x in GITHUB_ASSETS_STEMS if x.startswith("yolov8")]
71
+ if model:
72
+ available_models.insert(0, model)
73
+
71
74
  selected_model = st.sidebar.selectbox("Model", available_models)
72
75
  with st.spinner("Model is downloading..."):
73
76
  model = YOLO(f"{selected_model.lower()}.pt") # Load the YOLO model
@@ -164,6 +164,8 @@ def benchmark(
164
164
 
165
165
 
166
166
  class RF100Benchmark:
167
+ """Benchmark YOLO model performance across formats for speed and accuracy."""
168
+
167
169
  def __init__(self):
168
170
  """Function for initialization of RF100Benchmark."""
169
171
  self.ds_names = []
ultralytics/utils/loss.py CHANGED
@@ -607,12 +607,10 @@ class v8ClassificationLoss:
607
607
 
608
608
 
609
609
  class v8OBBLoss(v8DetectionLoss):
610
- def __init__(self, model):
611
- """
612
- Initializes v8OBBLoss with model, assigner, and rotated bbox loss.
610
+ """Calculates losses for object detection, classification, and box distribution in rotated YOLO models."""
613
611
 
614
- Note model must be de-paralleled.
615
- """
612
+ def __init__(self, model):
613
+ """Initializes v8OBBLoss with model, assigner, and rotated bbox loss; note model must be de-paralleled."""
616
614
  super().__init__(model)
617
615
  self.assigner = RotatedTaskAlignedAssigner(topk=10, num_classes=self.nc, alpha=0.5, beta=6.0)
618
616
  self.bbox_loss = RotatedBboxLoss(self.reg_max).to(self.device)
@@ -1221,6 +1221,8 @@ class ClassifyMetrics(SimpleClass):
1221
1221
 
1222
1222
 
1223
1223
  class OBBMetrics(SimpleClass):
1224
+ """Metrics for evaluating oriented bounding box (OBB) detection, see https://arxiv.org/pdf/2106.06072.pdf."""
1225
+
1224
1226
  def __init__(self, save_dir=Path("."), plot=False, on_plot=None, names=()) -> None:
1225
1227
  """Initialize an OBBMetrics instance with directory, plotting, callback, and class names."""
1226
1228
  self.save_dir = save_dir
ultralytics/utils/tal.py CHANGED
@@ -259,6 +259,8 @@ class TaskAlignedAssigner(nn.Module):
259
259
 
260
260
 
261
261
  class RotatedTaskAlignedAssigner(TaskAlignedAssigner):
262
+ """Assigns ground-truth objects to rotated bounding boxes using a task-aligned metric."""
263
+
262
264
  def iou_calculation(self, gt_bboxes, pd_bboxes):
263
265
  """IoU calculation for rotated bounding boxes."""
264
266
  return probiou(gt_bboxes, pd_bboxes).squeeze(-1).clamp_(0)
@@ -21,6 +21,7 @@ from ultralytics.utils import (
21
21
  DEFAULT_CFG_DICT,
22
22
  DEFAULT_CFG_KEYS,
23
23
  LOGGER,
24
+ NUM_THREADS,
24
25
  PYTHON_VERSION,
25
26
  TORCHVISION_VERSION,
26
27
  __version__,
@@ -172,6 +173,8 @@ def select_device(device="", batch=0, newline=False, verbose=True):
172
173
  s += f"CPU ({get_cpu_info()})\n"
173
174
  arg = "cpu"
174
175
 
176
+ if arg in {"cpu", "mps"}:
177
+ torch.set_num_threads(NUM_THREADS) # reset OMP_NUM_THREADS for cpu training
175
178
  if verbose:
176
179
  LOGGER.info(s if newline else s.rstrip())
177
180
  return torch.device(arg)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ultralytics
3
- Version: 8.2.60
3
+ Version: 8.2.62
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
@@ -8,10 +8,10 @@ tests/test_exports.py,sha256=Uezf3OatpPHlo5qoPw-2kqkZxuMCF9L4XF2riD4vmII,8225
8
8
  tests/test_integrations.py,sha256=xglcfMPjfVh346PV8WTpk6tBxraCXEFJEQyyJMr5tyU,6064
9
9
  tests/test_python.py,sha256=qhtSQ7NDfBChsVUxeSwfUIkoKq0S1Z-Rd9_MP023Y5k,21794
10
10
  tests/test_solutions.py,sha256=EACnPXbeJe2aVTOKfqMk5jclKKCWCVgFEzjpR6y7Sh8,3304
11
- ultralytics/__init__.py,sha256=BWfmMROCBEF419nKyVBMe6PuaVj7Z-EM2uJegbdGZdg,694
11
+ ultralytics/__init__.py,sha256=hDgDgTuQtbBY7Va8Vim-nJfQ4R8PXkvO6eOXiDjj-GY,694
12
12
  ultralytics/assets/bus.jpg,sha256=wCAZxJecGR63Od3ZRERe9Aja1Weayrb9Ug751DS_vGM,137419
13
13
  ultralytics/assets/zidane.jpg,sha256=Ftc4aeMmen1O0A3o6GCDO9FlfBslLpTAw0gnetx7bts,50427
14
- ultralytics/cfg/__init__.py,sha256=-3FW9UuCjhvWw0OFWbiXHWMqujOvBX428-NgSMFG0sQ,26198
14
+ ultralytics/cfg/__init__.py,sha256=fD3Llw12sIkJo4g667t6b051je9nEpwdBLGgbbVEzHY,32973
15
15
  ultralytics/cfg/default.yaml,sha256=xRKVF-Z9E3imXTU9OCK94kj3jGgYoo67VJQwuYlHiUU,8228
16
16
  ultralytics/cfg/datasets/Argoverse.yaml,sha256=FyeuJT5CHq_9d4hlfAf0kpZlnbUMO0S--UJ1yIqcdKk,3134
17
17
  ultralytics/cfg/datasets/DOTAv1.5.yaml,sha256=QVfp_Qp-4rukuicaB4qx86NxSHM8Mrzym8l_fIDo8gw,1195
@@ -83,25 +83,25 @@ ultralytics/cfg/models/v9/yolov9t.yaml,sha256=qL__kr6GoefpQWP4jV0jdzwTp46bdFUcqt
83
83
  ultralytics/cfg/trackers/botsort.yaml,sha256=YrPmj18p1UU40kJH5NRdL_4S8f7knggkk_q2KYnVudo,883
84
84
  ultralytics/cfg/trackers/bytetrack.yaml,sha256=QvHmtuwulK4X6j3T5VEqtCm0sbWWBUVmWPcCcM20qe0,688
85
85
  ultralytics/data/__init__.py,sha256=VGe-ATG7j35F4A4r8Jmzffjlhve4JAJPgRa5ahKTU18,616
86
- ultralytics/data/annotator.py,sha256=evXQzARVerc0hb9ol-n_GrrHf-dlXO4lCMMWEZoJ2UM,2117
87
- ultralytics/data/augment.py,sha256=V0iyu_9q_mx-G_61sPA1FWt_6ErJY4SnY_W62uxKOqI,59866
86
+ ultralytics/data/annotator.py,sha256=1Hyu6ubrBL8KmRrt1keGn-K4XTqQdAVyIwTsQiBtzLU,2489
87
+ ultralytics/data/augment.py,sha256=NrcaGAB7aUbQRaggkxnBHHSKPd3GVaTxdVwcHsZs6xc,119151
88
88
  ultralytics/data/base.py,sha256=C3teLnw97ZTbpJHT9P7yYWosAKocMzgJjRe1rxgfpls,13524
89
89
  ultralytics/data/build.py,sha256=AfMmz0sHIYmwry_90tEJFRk_kz0S3SolScVXqYHiT08,7261
90
90
  ultralytics/data/converter.py,sha256=7640xKuf7LPeoTwoCvgbIXM5xbzyq72Hu2Rf2lrgjRY,17554
91
- ultralytics/data/dataset.py,sha256=XrHMe79IQODD51cPGFaeX2MPXZUJzcPI-ywNJe6jMN4,22462
92
- ultralytics/data/loaders.py,sha256=XnwJsrejnigaG0wwivKccFUxq002czYa4cgVfGzsFms,24078
91
+ ultralytics/data/dataset.py,sha256=2m_YOw73gO_mzvitel5OKuQpbkwFTDnpPNcUIz4cayI,22579
92
+ ultralytics/data/loaders.py,sha256=cAyGlSNonzYXU5eBXiDVFrDOlTeziXGyO7_UaToUGrc,24152
93
93
  ultralytics/data/split_dota.py,sha256=fWezt1Bo3jiZ6AyUWdBtTUuvLamPv1t7JD-DirM9gQ8,10142
94
94
  ultralytics/data/utils.py,sha256=GHmqx6e5yRfcUD2Qkwk-tQfhXCwtUMFD3Uf6d699nGo,31046
95
95
  ultralytics/data/explorer/__init__.py,sha256=-Y3m1ZedepOQUv_KW82zaGxvU_PSHcuwUTFqG9BhAr4,113
96
- ultralytics/data/explorer/explorer.py,sha256=YacduFQvYOgTRF0BhCZWpTEaGlhp7oRy9a49VvNysEQ,18998
96
+ ultralytics/data/explorer/explorer.py,sha256=3puHbDFgoEjiRkLzKOGc1CLTUNbqJrLrq8MeBYLeBFc,19222
97
97
  ultralytics/data/explorer/utils.py,sha256=EvvukQiQUTBrsZznmMnyEX2EqTuwZo_Geyc8yfi8NIA,7085
98
98
  ultralytics/data/explorer/gui/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
99
- ultralytics/data/explorer/gui/dash.py,sha256=CPlFIIhf53j_YVAqealsC3AbcztdPqZxfniQcBnlKK4,10042
99
+ ultralytics/data/explorer/gui/dash.py,sha256=vZ476NaUH4FKU08rAJ1K9WNyKtg0soMyJJxqg176yWc,10498
100
100
  ultralytics/engine/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
101
101
  ultralytics/engine/exporter.py,sha256=mJqo3TbYuVcNA26rN5Fc57a1uVAqYfT1P3GSSE5k4rU,58741
102
- ultralytics/engine/model.py,sha256=OvQsoANg5oyN3k3K-ppa4KrIqPi96hvfGcjqd-TU5l0,39215
102
+ ultralytics/engine/model.py,sha256=zeyyXy4dY3fTj0GjYeTuvJcKyNmlEX34ntSzLF3_T7E,52013
103
103
  ultralytics/engine/predictor.py,sha256=W58kDCFH2AfoFzpGbos3k8zUEVsLunBuM8sc2B64rPY,17449
104
- ultralytics/engine/results.py,sha256=5MevvBz0E-cpDf55FqweInlKdcQPb7sz0EgZSROJqw4,35817
104
+ ultralytics/engine/results.py,sha256=oNAzSKdKxxx_5QQd9opzCevvgPhspdY5BkWxoz5bQ8E,69882
105
105
  ultralytics/engine/trainer.py,sha256=vFdWN6I-DoAHZYmxjRDeYcc44B9i8tBtK8u6oMgyj9o,35476
106
106
  ultralytics/engine/tuner.py,sha256=iZrgMmXSDpfuDu4bdFRflmAsscys2-8W8qAGxSyOVJE,11844
107
107
  ultralytics/engine/validator.py,sha256=Y21Uo8_Zto4qjk_YqQk6k7tyfpq_Qk9cfjeXeyDRxs8,14643
@@ -112,24 +112,24 @@ ultralytics/hub/utils.py,sha256=tXfM3QbXBcf4Y6StgHI1pktT4OM7Ic9eF3xiBFHGlhY,9721
112
112
  ultralytics/models/__init__.py,sha256=TT9iLCL_n9Y80dcUq0Fo-p-GRZCSU2vrWXM3CoMwqqE,265
113
113
  ultralytics/models/fastsam/__init__.py,sha256=0dt65jZ_5b7Q-mdXN8MSEkgnFRA0FIwlel_LS2RaOlU,254
114
114
  ultralytics/models/fastsam/model.py,sha256=c7GGwaa9AXssJFwrcuytFHpPOlgSrS3n0utyf4JSL2o,1055
115
- ultralytics/models/fastsam/predict.py,sha256=0WHUFrqHUNy1cTNpLKsN0FKqLKCvr7fHU6pp91_QVg0,4121
116
- ultralytics/models/fastsam/prompt.py,sha256=JJP8Ow-F5iBRWmCPCQk3Z5MiX8aTiX1jGlbejC8LpOI,15801
115
+ ultralytics/models/fastsam/predict.py,sha256=UUbnNDKCoW7DQj24W-tpft4u1JHG_pLRbQHiBLyXMjA,4098
116
+ ultralytics/models/fastsam/prompt.py,sha256=4d9e1fEuGpTPWRfu3rG6HT8Bc0rtqJtRpNrlHkmkKcY,15860
117
117
  ultralytics/models/fastsam/utils.py,sha256=r-b362Wb7P2ZAlOwWckPJM6HLvg-eFDDz4wkA0ymLd0,2157
118
118
  ultralytics/models/fastsam/val.py,sha256=ILKmw3U8FYmmQsO9wk9-bJ9Pyp_ZthJM36b61L75s3Y,1967
119
119
  ultralytics/models/nas/__init__.py,sha256=d6-WTrYLXvbPs58ebA0-583ODi-VyzXc-t4aGIDQK6M,179
120
120
  ultralytics/models/nas/model.py,sha256=nw7574loYfJHiEQx_ttemF9gpyehvWQVVYTIH0lsTSo,2865
121
- ultralytics/models/nas/predict.py,sha256=O7f92KE6hi5DENTRzXiMsm-qK-ndVoO1Bs3dugp8aLA,2136
121
+ ultralytics/models/nas/predict.py,sha256=uRtr9hLwkGG0w3lYDgiuqd0ataQ_RYR_BQdY0qMz5NI,2097
122
122
  ultralytics/models/nas/val.py,sha256=tVRfUEy1vEG67O5JZQzQO0gPHjt_WWiPvRvPlg_Btgg,1669
123
123
  ultralytics/models/rtdetr/__init__.py,sha256=AZga1C3qlGTtgpAupDW4doijq5aZlQeF8e55_DP2Uas,197
124
124
  ultralytics/models/rtdetr/model.py,sha256=2VkppF1_581XmQ0UI7lo8fX7MqhAJPXVMr2jyMHXtbk,1988
125
- ultralytics/models/rtdetr/predict.py,sha256=-NFBAv_4VIUcXycO7wA8IH6EHXrVyOir-5PZkd46qyo,3584
125
+ ultralytics/models/rtdetr/predict.py,sha256=GmeNiFszDajq9YNPi0jW89CqP0MRD5Gtmokh9z0JAQc,3568
126
126
  ultralytics/models/rtdetr/train.py,sha256=20AFYVW9NPxw0-cp-sRdIovWidFL0IIhJRv2oZjkPlM,3685
127
127
  ultralytics/models/rtdetr/val.py,sha256=4QQArdaGEY8rJsJuvyJ032f8GGVGdV2jURHK2EdMxyk,5566
128
128
  ultralytics/models/sam/__init__.py,sha256=9A1iyfPN_ncqq3TMExe_-uPoARjEX3psoHEI1xMG2VE,144
129
129
  ultralytics/models/sam/amg.py,sha256=He2c4nIoZ__F_pL18rRl278R8iBjWXBM2Z_vxfuVOkk,7971
130
130
  ultralytics/models/sam/build.py,sha256=-i-vj0egQ2idBZUf3Xf-H89QeToM3ky0HTxKP_KEXTs,4944
131
131
  ultralytics/models/sam/model.py,sha256=dkEhqJEZFuSoKubMaAjUx1U9Np49AII3nBScdH8rMBI,4707
132
- ultralytics/models/sam/predict.py,sha256=BuSaqMOkpwiM5H5sWOE1CDIwEDkz8uMKV6AMRysCZk4,23614
132
+ ultralytics/models/sam/predict.py,sha256=hachjdcJ175v_oOUPmu_jG_VSe2wCbpLpi4qymUJV34,23575
133
133
  ultralytics/models/sam/modules/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
134
134
  ultralytics/models/sam/modules/decoders.py,sha256=7NWnBNupxGYvH0S1N0R6NBHxdVFRUrrnL9EqAw09J4E,7816
135
135
  ultralytics/models/sam/modules/encoders.py,sha256=pRNZHzt2J2xD_D0Btu8pk4DcItfr6dRr9rcRfxoZZhU,24746
@@ -168,9 +168,9 @@ ultralytics/nn/__init__.py,sha256=4BPLHY89xEM_al5uK0aOmFgiML6CMGEZbezxOvTjOEs,58
168
168
  ultralytics/nn/autobackend.py,sha256=vtCvcYTyF2l4KeG5N-PD8FhmPx9pca92mmGaHdQuUfE,31258
169
169
  ultralytics/nn/tasks.py,sha256=jGAauQZOOSXKsxAKad_HBNfLleOoTS7T9XSlOZN8v7Y,45856
170
170
  ultralytics/nn/modules/__init__.py,sha256=mARjWk83WPYF5phXhXfPbAu2ZohtdbHdi5zzoxyMubo,2553
171
- ultralytics/nn/modules/block.py,sha256=tLNMDomPgsUc8yP7HKvtuaSAMJxPomRmO9WJoLb6hAY,34483
171
+ ultralytics/nn/modules/block.py,sha256=jLXQerl4nXfr4MEGMp9S3YgdTqOJzas1GBxryyXyLV0,34582
172
172
  ultralytics/nn/modules/conv.py,sha256=Ywe87IhuaS22mR2JJ9xjnW8Sb-m7WTjxuqIxV_Dv8lI,12722
173
- ultralytics/nn/modules/head.py,sha256=6VV6t2OJ_t9fCdhFxzcMcirp6lonv-xSm0o2yFghZZ0,26747
173
+ ultralytics/nn/modules/head.py,sha256=vlp3rMa54kjiuPqP32_RdgOb9KrHItiJx0ih1SFzQec,26853
174
174
  ultralytics/nn/modules/transformer.py,sha256=AxD9uURpCl-EqvXe3DiG6JW-pBzB16G-AahLdZ7yayo,17909
175
175
  ultralytics/nn/modules/utils.py,sha256=779QnnKp9v8jv251ESduTXJ0ol8HkIOLbGQWwEGQjhU,3196
176
176
  ultralytics/solutions/__init__.py,sha256=O_G9jh34NnFsHKSA8zcJH0CHtg1Q01JEiRWGwX3vGJY,631
@@ -179,10 +179,10 @@ ultralytics/solutions/analytics.py,sha256=UI8HoegfIJGgvQPOt4-e9A0ss2_ofM7zzxcbKl
179
179
  ultralytics/solutions/distance_calculation.py,sha256=dmHxKfC6CNwgS5otN5AF0LkygdZMGbn9UZ06Zrs-hlk,6485
180
180
  ultralytics/solutions/heatmap.py,sha256=lPvC9XEbRodOfZSUdF5BlGVMAT9TVpjIyp3Ed_1ssb0,10376
181
181
  ultralytics/solutions/object_counter.py,sha256=C80ET_-tIKv7pfshO8DFwimCieBHV4Ns7WruaY0ScgQ,10762
182
- ultralytics/solutions/parking_management.py,sha256=E55v0c-AfKbDNfEMng2UJapktDnYJHcRKC6uAImg7kM,9928
182
+ ultralytics/solutions/parking_management.py,sha256=_cJ4kXIq4l56WVyNsq6RUVe_mv5oBy-fmt1vIyevPko,10139
183
183
  ultralytics/solutions/queue_management.py,sha256=CxFvHwSHq8OZ5aW7x2F10jcjkGAQ3LSJ5z69zusRVbs,6781
184
184
  ultralytics/solutions/speed_estimation.py,sha256=kjqMSHGTHMZaNgTKNKWULxnJQNsvhq4WMUphMVlBjsc,6768
185
- ultralytics/solutions/streamlit_inference.py,sha256=d4LIpexPv31o8WQ5xXUvUlZmEwmKlJQD3PdrMIJ8ISY,5566
185
+ ultralytics/solutions/streamlit_inference.py,sha256=znX2pHkaAd7CfTiQn6ieguBHAnlKqlEV0rlpF-TQMTQ,5633
186
186
  ultralytics/trackers/__init__.py,sha256=j72IgH2dZHQArMPK4YwcV5ieIw94fYvlGdQjB9cOQKw,227
187
187
  ultralytics/trackers/basetrack.py,sha256=-vBDD-Q9lsxfTMK2w9kuqWGrYbRMmaBCCEbGGyR53gE,3675
188
188
  ultralytics/trackers/bot_sort.py,sha256=39AvhYVbT7izF3--rX_e6Lhgb5czTA23gw6AgnNcRds,8601
@@ -194,20 +194,20 @@ ultralytics/trackers/utils/kalman_filter.py,sha256=0oqhk59NKEiwcJ2FXnw6_sT4bIFC6
194
194
  ultralytics/trackers/utils/matching.py,sha256=UxhSGa5pN6WoYwYSBAkkt-O7xMxUR47VuUB6PfVNkb4,5404
195
195
  ultralytics/utils/__init__.py,sha256=905ZnRdmTrhXao2nsCP2mV2xAshsEKk0r4aOPP4EVPQ,38490
196
196
  ultralytics/utils/autobatch.py,sha256=gPFcREMsMHRAuTQiBnNZ9Mm1XNqmQW-uMPhveDFEQ_Y,3966
197
- ultralytics/utils/benchmarks.py,sha256=EudI2wNzOPPNjf9J0AiROe32yD4G8nTg5tcZOZSJSw8,23581
197
+ ultralytics/utils/benchmarks.py,sha256=nsoCJx755RWAZz0D6igTrM0FM2BoQXgLCMbXaMqvZlk,23664
198
198
  ultralytics/utils/checks.py,sha256=QIltfNxlZdMOTzXqU815MBIevMj_TKBU_VeVXqjXdOo,28411
199
199
  ultralytics/utils/dist.py,sha256=NDFga-uKxkBX2zLxFHSene_cCiGQJoyOeCXcN9JIOIk,2358
200
200
  ultralytics/utils/downloads.py,sha256=60GL4gZ3kIHvu-8_PrPY1WBNuXPMvL5si-6vCX_qbQ4,21929
201
201
  ultralytics/utils/errors.py,sha256=GqP_Jgj_n0paxn8OMhn3DTCgoNkB2WjUcUaqs-M6SQk,816
202
202
  ultralytics/utils/files.py,sha256=TVfY0Wi5IsUc4YdsDzC0dAg-jAP5exYvwqB3VmXhDLY,6761
203
203
  ultralytics/utils/instance.py,sha256=5daM5nkxBv9hr5QzyII8zmuFj24hHuNtcr4EMCHAtpY,15654
204
- ultralytics/utils/loss.py,sha256=tAAi_l0SAtbtqT8AQSBSCvEyv342-r04H2KcSF1Yk_w,33795
205
- ultralytics/utils/metrics.py,sha256=C7qFuZjwGqbsG4sggm_qfm8gVuBUwHg_Fhxj08b6NfU,53671
204
+ ultralytics/utils/loss.py,sha256=8w5-6kdbSheuZwlZ35yOFzQhSolVnO43aFT5ggB51jU,33880
205
+ ultralytics/utils/metrics.py,sha256=UXMhBnTtMcpTANxmQqcYkVnj8NeAt39gZez0g6jbrW0,53786
206
206
  ultralytics/utils/ops.py,sha256=CQeMDVV4f9QWvYPNvNJu7GJAW2-XG93D7ee7yFY0vsI,32688
207
207
  ultralytics/utils/patches.py,sha256=SgMqeMsq2K6JoBJP1NplXMl9C6rK0JeJUChjBrJOneo,2750
208
208
  ultralytics/utils/plotting.py,sha256=5HRfiG2dklWZJheTxGTy0gFRk39utHcZbMJl7j2hnMI,55522
209
- ultralytics/utils/tal.py,sha256=xuIyryUjaaYHkHPG9GvBwh1xxN2Hq4y3hXOtuERehwY,16017
210
- ultralytics/utils/torch_utils.py,sha256=8B-NJKGysxUKbstHJfrpnT9Kgp3Imb4jIYWyFYKkrwM,27892
209
+ ultralytics/utils/tal.py,sha256=hia39MhWPFpDWOTAXC_5vz-9cUdiRHZs-UcTnxD4Dlo,16112
210
+ ultralytics/utils/torch_utils.py,sha256=P-jZiKWDmIc3il1uOGpwVEWG7W9p55Exuh8vkmh0NQo,28024
211
211
  ultralytics/utils/triton.py,sha256=gg1finxno_tY2Ge9PMhmu7PI9wvoFZoiicdT4Bhqv3w,3936
212
212
  ultralytics/utils/tuner.py,sha256=49KAadKZsUeCpwIm5Sn0grb0RPcMNI8vHGLwroDEJNI,6171
213
213
  ultralytics/utils/callbacks/__init__.py,sha256=YrWqC3BVVaTLob4iCPR6I36mUxIUOpPJW7B_LjT78Qw,214
@@ -221,9 +221,9 @@ ultralytics/utils/callbacks/neptune.py,sha256=5Z3ua5YBTUS56FH8VQKQG1aaIo9fH8GEyz
221
221
  ultralytics/utils/callbacks/raytune.py,sha256=ODVYzy-CoM4Uge0zjkh3Hnh9nF2M0vhDrSenXnvcizw,705
222
222
  ultralytics/utils/callbacks/tensorboard.py,sha256=QEgOVhUqY9akOs5TJIwz1Rvn6l32xWLpOxlwEyWF0B8,4136
223
223
  ultralytics/utils/callbacks/wb.py,sha256=9-fjQIdLjr3b73DTE3rHO171KvbH1VweJ-bmbv-rqTw,6747
224
- ultralytics-8.2.60.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
225
- ultralytics-8.2.60.dist-info/METADATA,sha256=qWBL0aATA3aVIF_4uXevFxxw1rdJmYCrobrr8_y16W4,41217
226
- ultralytics-8.2.60.dist-info/WHEEL,sha256=-oYQCr74JF3a37z2nRlQays_SX2MqOANoqVjBBAP2yE,91
227
- ultralytics-8.2.60.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
228
- ultralytics-8.2.60.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
229
- ultralytics-8.2.60.dist-info/RECORD,,
224
+ ultralytics-8.2.62.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
225
+ ultralytics-8.2.62.dist-info/METADATA,sha256=rqXjjN4mVt61M_mfmShx-VRMZaqAVPL8wQBidp843Fk,41217
226
+ ultralytics-8.2.62.dist-info/WHEEL,sha256=Wyh-_nZ0DJYolHNn1_hMa4lM7uDedD_RGVwbmTjyItk,91
227
+ ultralytics-8.2.62.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
228
+ ultralytics-8.2.62.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
229
+ ultralytics-8.2.62.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (71.0.3)
2
+ Generator: setuptools (71.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5