ultralytics 8.3.162__py3-none-any.whl → 8.3.164__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.
Files changed (38) hide show
  1. ultralytics/__init__.py +1 -1
  2. ultralytics/data/augment.py +182 -153
  3. ultralytics/data/build.py +23 -3
  4. ultralytics/data/dataset.py +6 -2
  5. ultralytics/data/loaders.py +2 -2
  6. ultralytics/data/utils.py +12 -9
  7. ultralytics/engine/exporter.py +9 -5
  8. ultralytics/engine/predictor.py +6 -6
  9. ultralytics/engine/results.py +42 -42
  10. ultralytics/models/fastsam/model.py +1 -1
  11. ultralytics/models/fastsam/predict.py +1 -1
  12. ultralytics/models/sam/model.py +4 -4
  13. ultralytics/models/sam/modules/blocks.py +5 -5
  14. ultralytics/models/sam/modules/memory_attention.py +19 -19
  15. ultralytics/models/sam/modules/transformer.py +24 -22
  16. ultralytics/models/yolo/detect/val.py +2 -2
  17. ultralytics/models/yolo/world/train_world.py +9 -1
  18. ultralytics/nn/tasks.py +2 -0
  19. ultralytics/solutions/distance_calculation.py +1 -1
  20. ultralytics/solutions/instance_segmentation.py +2 -2
  21. ultralytics/solutions/object_blurrer.py +2 -2
  22. ultralytics/solutions/object_counter.py +2 -2
  23. ultralytics/solutions/object_cropper.py +1 -1
  24. ultralytics/solutions/queue_management.py +1 -1
  25. ultralytics/solutions/region_counter.py +29 -32
  26. ultralytics/solutions/security_alarm.py +2 -2
  27. ultralytics/solutions/templates/similarity-search.html +0 -24
  28. ultralytics/solutions/vision_eye.py +1 -1
  29. ultralytics/utils/benchmarks.py +2 -2
  30. ultralytics/utils/export.py +0 -2
  31. ultralytics/utils/instance.py +32 -25
  32. ultralytics/utils/ops.py +8 -8
  33. {ultralytics-8.3.162.dist-info → ultralytics-8.3.164.dist-info}/METADATA +1 -1
  34. {ultralytics-8.3.162.dist-info → ultralytics-8.3.164.dist-info}/RECORD +38 -38
  35. {ultralytics-8.3.162.dist-info → ultralytics-8.3.164.dist-info}/WHEEL +0 -0
  36. {ultralytics-8.3.162.dist-info → ultralytics-8.3.164.dist-info}/entry_points.txt +0 -0
  37. {ultralytics-8.3.162.dist-info → ultralytics-8.3.164.dist-info}/licenses/LICENSE +0 -0
  38. {ultralytics-8.3.162.dist-info → ultralytics-8.3.164.dist-info}/top_level.txt +0 -0
@@ -3,7 +3,7 @@
3
3
  from collections import abc
4
4
  from itertools import repeat
5
5
  from numbers import Number
6
- from typing import List
6
+ from typing import List, Union
7
7
 
8
8
  import numpy as np
9
9
 
@@ -59,7 +59,7 @@ class Bboxes:
59
59
  This class does not handle normalization or denormalization of bounding boxes.
60
60
  """
61
61
 
62
- def __init__(self, bboxes, format="xyxy") -> None:
62
+ def __init__(self, bboxes: np.ndarray, format: str = "xyxy") -> None:
63
63
  """
64
64
  Initialize the Bboxes class with bounding box data in a specified format.
65
65
 
@@ -74,7 +74,7 @@ class Bboxes:
74
74
  self.bboxes = bboxes
75
75
  self.format = format
76
76
 
77
- def convert(self, format):
77
+ def convert(self, format: str) -> None:
78
78
  """
79
79
  Convert bounding box format from one type to another.
80
80
 
@@ -93,7 +93,7 @@ class Bboxes:
93
93
  self.bboxes = func(self.bboxes)
94
94
  self.format = format
95
95
 
96
- def areas(self):
96
+ def areas(self) -> np.ndarray:
97
97
  """Calculate the area of bounding boxes."""
98
98
  return (
99
99
  (self.bboxes[:, 2] - self.bboxes[:, 0]) * (self.bboxes[:, 3] - self.bboxes[:, 1]) # format xyxy
@@ -101,7 +101,7 @@ class Bboxes:
101
101
  else self.bboxes[:, 3] * self.bboxes[:, 2] # format xywh or ltwh
102
102
  )
103
103
 
104
- def mul(self, scale):
104
+ def mul(self, scale: Union[int, tuple, list]) -> None:
105
105
  """
106
106
  Multiply bounding box coordinates by scale factor(s).
107
107
 
@@ -118,7 +118,7 @@ class Bboxes:
118
118
  self.bboxes[:, 2] *= scale[2]
119
119
  self.bboxes[:, 3] *= scale[3]
120
120
 
121
- def add(self, offset):
121
+ def add(self, offset: Union[int, tuple, list]) -> None:
122
122
  """
123
123
  Add offset to bounding box coordinates.
124
124
 
@@ -135,12 +135,12 @@ class Bboxes:
135
135
  self.bboxes[:, 2] += offset[2]
136
136
  self.bboxes[:, 3] += offset[3]
137
137
 
138
- def __len__(self):
138
+ def __len__(self) -> int:
139
139
  """Return the number of bounding boxes."""
140
140
  return len(self.bboxes)
141
141
 
142
142
  @classmethod
143
- def concatenate(cls, boxes_list: List["Bboxes"], axis=0) -> "Bboxes":
143
+ def concatenate(cls, boxes_list: List["Bboxes"], axis: int = 0) -> "Bboxes":
144
144
  """
145
145
  Concatenate a list of Bboxes objects into a single Bboxes object.
146
146
 
@@ -163,7 +163,7 @@ class Bboxes:
163
163
  return boxes_list[0]
164
164
  return cls(np.concatenate([b.bboxes for b in boxes_list], axis=axis))
165
165
 
166
- def __getitem__(self, index) -> "Bboxes":
166
+ def __getitem__(self, index: Union[int, np.ndarray, slice]) -> "Bboxes":
167
167
  """
168
168
  Retrieve a specific bounding box or a set of bounding boxes using indexing.
169
169
 
@@ -220,13 +220,20 @@ class Instances:
220
220
  ... )
221
221
  """
222
222
 
223
- def __init__(self, bboxes, segments=None, keypoints=None, bbox_format="xywh", normalized=True) -> None:
223
+ def __init__(
224
+ self,
225
+ bboxes: np.ndarray,
226
+ segments: np.ndarray = None,
227
+ keypoints: np.ndarray = None,
228
+ bbox_format: str = "xywh",
229
+ normalized: bool = True,
230
+ ) -> None:
224
231
  """
225
232
  Initialize the Instances object with bounding boxes, segments, and keypoints.
226
233
 
227
234
  Args:
228
235
  bboxes (np.ndarray): Bounding boxes with shape (N, 4).
229
- segments (List | np.ndarray, optional): Segmentation masks.
236
+ segments (np.ndarray, optional): Segmentation masks.
230
237
  keypoints (np.ndarray, optional): Keypoints with shape (N, 17, 3) in format (x, y, visible).
231
238
  bbox_format (str): Format of bboxes.
232
239
  normalized (bool): Whether the coordinates are normalized.
@@ -236,7 +243,7 @@ class Instances:
236
243
  self.normalized = normalized
237
244
  self.segments = segments
238
245
 
239
- def convert_bbox(self, format):
246
+ def convert_bbox(self, format: str) -> None:
240
247
  """
241
248
  Convert bounding box format.
242
249
 
@@ -246,11 +253,11 @@ class Instances:
246
253
  self._bboxes.convert(format=format)
247
254
 
248
255
  @property
249
- def bbox_areas(self):
256
+ def bbox_areas(self) -> np.ndarray:
250
257
  """Calculate the area of bounding boxes."""
251
258
  return self._bboxes.areas()
252
259
 
253
- def scale(self, scale_w, scale_h, bbox_only=False):
260
+ def scale(self, scale_w: float, scale_h: float, bbox_only: bool = False):
254
261
  """
255
262
  Scale coordinates by given factors.
256
263
 
@@ -268,7 +275,7 @@ class Instances:
268
275
  self.keypoints[..., 0] *= scale_w
269
276
  self.keypoints[..., 1] *= scale_h
270
277
 
271
- def denormalize(self, w, h):
278
+ def denormalize(self, w: int, h: int) -> None:
272
279
  """
273
280
  Convert normalized coordinates to absolute coordinates.
274
281
 
@@ -286,7 +293,7 @@ class Instances:
286
293
  self.keypoints[..., 1] *= h
287
294
  self.normalized = False
288
295
 
289
- def normalize(self, w, h):
296
+ def normalize(self, w: int, h: int) -> None:
290
297
  """
291
298
  Convert absolute coordinates to normalized coordinates.
292
299
 
@@ -304,7 +311,7 @@ class Instances:
304
311
  self.keypoints[..., 1] /= h
305
312
  self.normalized = True
306
313
 
307
- def add_padding(self, padw, padh):
314
+ def add_padding(self, padw: int, padh: int) -> None:
308
315
  """
309
316
  Add padding to coordinates.
310
317
 
@@ -320,7 +327,7 @@ class Instances:
320
327
  self.keypoints[..., 0] += padw
321
328
  self.keypoints[..., 1] += padh
322
329
 
323
- def __getitem__(self, index) -> "Instances":
330
+ def __getitem__(self, index: Union[int, np.ndarray, slice]) -> "Instances":
324
331
  """
325
332
  Retrieve a specific instance or a set of instances using indexing.
326
333
 
@@ -346,7 +353,7 @@ class Instances:
346
353
  normalized=self.normalized,
347
354
  )
348
355
 
349
- def flipud(self, h):
356
+ def flipud(self, h: int) -> None:
350
357
  """
351
358
  Flip coordinates vertically.
352
359
 
@@ -364,7 +371,7 @@ class Instances:
364
371
  if self.keypoints is not None:
365
372
  self.keypoints[..., 1] = h - self.keypoints[..., 1]
366
373
 
367
- def fliplr(self, w):
374
+ def fliplr(self, w: int) -> None:
368
375
  """
369
376
  Flip coordinates horizontally.
370
377
 
@@ -382,7 +389,7 @@ class Instances:
382
389
  if self.keypoints is not None:
383
390
  self.keypoints[..., 0] = w - self.keypoints[..., 0]
384
391
 
385
- def clip(self, w, h):
392
+ def clip(self, w: int, h: int) -> None:
386
393
  """
387
394
  Clip coordinates to stay within image boundaries.
388
395
 
@@ -409,7 +416,7 @@ class Instances:
409
416
  self.keypoints[..., 0] = self.keypoints[..., 0].clip(0, w)
410
417
  self.keypoints[..., 1] = self.keypoints[..., 1].clip(0, h)
411
418
 
412
- def remove_zero_area_boxes(self):
419
+ def remove_zero_area_boxes(self) -> np.ndarray:
413
420
  """
414
421
  Remove zero-area boxes, i.e. after clipping some boxes may have zero width or height.
415
422
 
@@ -425,7 +432,7 @@ class Instances:
425
432
  self.keypoints = self.keypoints[good]
426
433
  return good
427
434
 
428
- def update(self, bboxes, segments=None, keypoints=None):
435
+ def update(self, bboxes: np.ndarray, segments: np.ndarray = None, keypoints: np.ndarray = None):
429
436
  """
430
437
  Update instance variables.
431
438
 
@@ -440,7 +447,7 @@ class Instances:
440
447
  if keypoints is not None:
441
448
  self.keypoints = keypoints
442
449
 
443
- def __len__(self):
450
+ def __len__(self) -> int:
444
451
  """Return the number of instances."""
445
452
  return len(self.bboxes)
446
453
 
@@ -492,6 +499,6 @@ class Instances:
492
499
  return cls(cat_boxes, cat_segments, cat_keypoints, bbox_format, normalized)
493
500
 
494
501
  @property
495
- def bboxes(self):
502
+ def bboxes(self) -> np.ndarray:
496
503
  """Return bounding boxes."""
497
504
  return self._bboxes.bboxes
ultralytics/utils/ops.py CHANGED
@@ -343,11 +343,11 @@ def clip_boxes(boxes, shape):
343
343
  Clip bounding boxes to image boundaries.
344
344
 
345
345
  Args:
346
- boxes (torch.Tensor | numpy.ndarray): Bounding boxes to clip.
346
+ boxes (torch.Tensor | np.ndarray): Bounding boxes to clip.
347
347
  shape (tuple): Image shape as (height, width).
348
348
 
349
349
  Returns:
350
- (torch.Tensor | numpy.ndarray): Clipped bounding boxes.
350
+ (torch.Tensor | np.ndarray): Clipped bounding boxes.
351
351
  """
352
352
  if isinstance(boxes, torch.Tensor): # faster individually (WARNING: inplace .clamp_() Apple MPS bug)
353
353
  boxes[..., 0] = boxes[..., 0].clamp(0, shape[1]) # x1
@@ -365,11 +365,11 @@ def clip_coords(coords, shape):
365
365
  Clip line coordinates to image boundaries.
366
366
 
367
367
  Args:
368
- coords (torch.Tensor | numpy.ndarray): Line coordinates to clip.
368
+ coords (torch.Tensor | np.ndarray): Line coordinates to clip.
369
369
  shape (tuple): Image shape as (height, width).
370
370
 
371
371
  Returns:
372
- (torch.Tensor | numpy.ndarray): Clipped coordinates.
372
+ (torch.Tensor | np.ndarray): Clipped coordinates.
373
373
  """
374
374
  if isinstance(coords, torch.Tensor): # faster individually (WARNING: inplace .clamp_() Apple MPS bug)
375
375
  coords[..., 0] = coords[..., 0].clamp(0, shape[1]) # x
@@ -564,10 +564,10 @@ def xyxyxyxy2xywhr(x):
564
564
  Convert batched Oriented Bounding Boxes (OBB) from [xy1, xy2, xy3, xy4] to [xywh, rotation] format.
565
565
 
566
566
  Args:
567
- x (numpy.ndarray | torch.Tensor): Input box corners with shape (N, 8) in [xy1, xy2, xy3, xy4] format.
567
+ x (np.ndarray | torch.Tensor): Input box corners with shape (N, 8) in [xy1, xy2, xy3, xy4] format.
568
568
 
569
569
  Returns:
570
- (numpy.ndarray | torch.Tensor): Converted data in [cx, cy, w, h, rotation] format with shape (N, 5).
570
+ (np.ndarray | torch.Tensor): Converted data in [cx, cy, w, h, rotation] format with shape (N, 5).
571
571
  Rotation values are in radians from 0 to pi/2.
572
572
  """
573
573
  is_torch = isinstance(x, torch.Tensor)
@@ -587,11 +587,11 @@ def xywhr2xyxyxyxy(x):
587
587
  Convert batched Oriented Bounding Boxes (OBB) from [xywh, rotation] to [xy1, xy2, xy3, xy4] format.
588
588
 
589
589
  Args:
590
- x (numpy.ndarray | torch.Tensor): Boxes in [cx, cy, w, h, rotation] format with shape (N, 5) or (B, N, 5).
590
+ x (np.ndarray | torch.Tensor): Boxes in [cx, cy, w, h, rotation] format with shape (N, 5) or (B, N, 5).
591
591
  Rotation values should be in radians from 0 to pi/2.
592
592
 
593
593
  Returns:
594
- (numpy.ndarray | torch.Tensor): Converted corner points with shape (N, 4, 2) or (B, N, 4, 2).
594
+ (np.ndarray | torch.Tensor): Converted corner points with shape (N, 4, 2) or (B, N, 4, 2).
595
595
  """
596
596
  cos, sin, cat, stack = (
597
597
  (torch.cos, torch.sin, torch.cat, torch.stack)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ultralytics
3
- Version: 8.3.162
3
+ Version: 8.3.164
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>
@@ -7,7 +7,7 @@ tests/test_exports.py,sha256=HmMKOTCia9ZDC0VYc_EPmvBTM5LM5eeI1NF_pKjLpd8,9677
7
7
  tests/test_integrations.py,sha256=kl_AKmE_Qs1GB0_91iVwbzNxofm_hFTt0zzU6JF-pg4,6323
8
8
  tests/test_python.py,sha256=JJu-69IfuUf1dLK7Ko9elyPONiQ1yu7yhapMVIAt_KI,27907
9
9
  tests/test_solutions.py,sha256=tuf6n_fsI8KvSdJrnc-cqP2qYdiYqCWuVrx0z9dOz3Q,13213
10
- ultralytics/__init__.py,sha256=mghg3KP-MAGasMWYrfuWs4NQuSHe4GXzeqmSc_T9E0k,730
10
+ ultralytics/__init__.py,sha256=E1zBb25u7AF1eUsPZbqvcqNCRLqR_t-d0OoDbwjECr8,730
11
11
  ultralytics/assets/bus.jpg,sha256=wCAZxJecGR63Od3ZRERe9Aja1Weayrb9Ug751DS_vGM,137419
12
12
  ultralytics/assets/zidane.jpg,sha256=Ftc4aeMmen1O0A3o6GCDO9FlfBslLpTAw0gnetx7bts,50427
13
13
  ultralytics/cfg/__init__.py,sha256=VIpPHImhjb0XLJquGZrG_LBGZchtOtBSXR7HYTYV2GU,39602
@@ -105,24 +105,24 @@ ultralytics/cfg/trackers/botsort.yaml,sha256=TpRaK5kH_-QbjCQ7ekM4s_7j8I8ti3q8Hs7
105
105
  ultralytics/cfg/trackers/bytetrack.yaml,sha256=6u-tiZlk16EqEwkNXaMrza6PAQmWj_ypgv26LGCtPDg,886
106
106
  ultralytics/data/__init__.py,sha256=nAXaL1puCc7z_NjzQNlJnhbVhT9Fla2u7Dsqo7q1dAc,644
107
107
  ultralytics/data/annotator.py,sha256=uAgd7K-yudxiwdNqHz0ubfFg5JsfNlae4cgxdvCMyuY,3030
108
- ultralytics/data/augment.py,sha256=elMnIEubT1ywhH0tbppLbWW4dEs3-n5vnm8U8TzsDEw,129493
108
+ ultralytics/data/augment.py,sha256=lZhe2p8nrMrlfq1Y0FEXzDUAqLK0zROd2Heb7pJqn58,132420
109
109
  ultralytics/data/base.py,sha256=mRcuehK1thNuuzQGL6D1AaZkod71oHRdYTod_zdQZQg,19688
110
- ultralytics/data/build.py,sha256=13gPxCJIZRjgcNh7zbzanCgtyK6_oZM0ho9KQhHcM6c,11153
110
+ ultralytics/data/build.py,sha256=TfMLSPMbE2hGZVMLl178NTFrihC1-50jNOt1ex9elxw,11480
111
111
  ultralytics/data/converter.py,sha256=dExElV0vWd4EmDtZaFMC0clEmLdjRDIdFiXf01PUvQA,27134
112
- ultralytics/data/dataset.py,sha256=0VjzciGleGGF_XN5fEnS3c5UT0r533HMmQ9DfEQ_lA4,36463
113
- ultralytics/data/loaders.py,sha256=kTGO1P-HntpQk078i1ASyXYckDx9Z7Pe7o1YbePcjC4,31657
112
+ ultralytics/data/dataset.py,sha256=GhoFzBiuGvTr_5-3pzgWu6D_3aQVwW-hcS7kCo8XscM,36752
113
+ ultralytics/data/loaders.py,sha256=VcBg1c6hbASOU-PcFSMg_UXFUIGbG-xox4t80JbUD4c,31649
114
114
  ultralytics/data/split.py,sha256=F6O73bAbESj70FQZzqkydXQeXgPXGHGiC06b5MkLHjQ,5109
115
115
  ultralytics/data/split_dota.py,sha256=rr-lLpTUVaFZMggV_fUYZdFVIJk_zbbSOpgB_Qp50_M,12893
116
- ultralytics/data/utils.py,sha256=fJqVJkjaub-xT0cB1o40Hl1WIH1ljKINT0SJaJyZse4,36637
116
+ ultralytics/data/utils.py,sha256=UhxqsRCxPtZ7v_hiBd_dk-Dk2N3YUvxt8Snnz2ibNII,36837
117
117
  ultralytics/data/scripts/download_weights.sh,sha256=0y8XtZxOru7dVThXDFUXLHBuICgOIqZNUwpyL4Rh6lg,595
118
118
  ultralytics/data/scripts/get_coco.sh,sha256=UuJpJeo3qQpTHVINeOpmP0NYmg8PhEFE3A8J3jKrnPw,1768
119
119
  ultralytics/data/scripts/get_coco128.sh,sha256=qmRQl_hOKrsdHrTrnyQuFIH01oDz3lfaz138OgGfLt8,650
120
120
  ultralytics/data/scripts/get_imagenet.sh,sha256=hr42H16bM47iT27rgS7MpEo-GeOZAYUQXgr0B2cwn48,1705
121
121
  ultralytics/engine/__init__.py,sha256=lm6MckFYCPTbqIoX7w0s_daxdjNeBeKW6DXppv1-QUM,70
122
- ultralytics/engine/exporter.py,sha256=oz6jsQbYapyc29Bw1DTQuDbk_RnOKphlVeLrCwQehs4,73261
122
+ ultralytics/engine/exporter.py,sha256=mb_mJ2eQ7pvCpRk9xrzGOmTvJ6dbknGWN6adcHe_7pM,73500
123
123
  ultralytics/engine/model.py,sha256=FmLwiKuItVNgoyXhAvesUnD3UeHBzCVzGHDrqB8J4ms,53453
124
- ultralytics/engine/predictor.py,sha256=88zrgZP91ehwdeGl8BM_cQ_caeuwKIPDy3OzxcRBjTU,22474
125
- ultralytics/engine/results.py,sha256=rLQlttkgPudiV0u0d6Xy5hKKr1x3SJL1zrXA5W5vw7Y,71999
124
+ ultralytics/engine/predictor.py,sha256=xxl1kdAzKrN8Y_5MQ5f92uFPeeRq1mYOl6hNlzpPjy8,22520
125
+ ultralytics/engine/results.py,sha256=QcHcbPVlLBiy_APwABr-T5K65HR8Bl1rRzxawjjP76E,71873
126
126
  ultralytics/engine/trainer.py,sha256=28FeqASvQRxCaK96SXDM-BfPJjqy5KNiWhf8v6GXTug,39785
127
127
  ultralytics/engine/tuner.py,sha256=sfQ8_yzgLNcGlKyz9b2vAzyggGZXiQzdZ5tKstyqjHM,12825
128
128
  ultralytics/engine/validator.py,sha256=qftJUomb4A-6rSThtST3TccEbc_zTmzovCBBCSpYm3k,16671
@@ -133,8 +133,8 @@ ultralytics/hub/utils.py,sha256=5-y3WBT5U_L0ZscTJrUWvGB02QYwVAF82OiFqvvd0sE,1026
133
133
  ultralytics/hub/google/__init__.py,sha256=ZJnS6s6wVl792p9h5aUmm9K2Di1DrHmTk1aEUJdTXhs,8443
134
134
  ultralytics/models/__init__.py,sha256=DqQFFYJ4IQlqIDb61H1HzcnZU7SuHN-43bw94-l-YAQ,309
135
135
  ultralytics/models/fastsam/__init__.py,sha256=HGJ8EKlBAsdF-e2aIwQLjSDAFI_r0yHR0A1gzrp4vqE,231
136
- ultralytics/models/fastsam/model.py,sha256=4Aazwv3tUYLxqyoEwZ2FLiZnOXwLlFEdSfqpltQwxzg,3439
137
- ultralytics/models/fastsam/predict.py,sha256=G-o8hs8W5XmqSN5G37zi6q9FglFnZSbD6qH_1KIIXwY,8965
136
+ ultralytics/models/fastsam/model.py,sha256=IW0QCgQgGNWjVToEInZ8jVwemfc3XnPA78A_zROw3xk,3436
137
+ ultralytics/models/fastsam/predict.py,sha256=feta9w9UD7xlbfB3p5QCum31RZ-eDMnWt01VCdVdT44,8962
138
138
  ultralytics/models/fastsam/utils.py,sha256=yuCXB4CVjRx8lDf61DP8B6qMx7TVf7AynQvdWREeFco,884
139
139
  ultralytics/models/fastsam/val.py,sha256=oLxB8vBKTfiT7eBbTzvpqq_xNSvDOjGdP1J7egHGsCA,2041
140
140
  ultralytics/models/nas/__init__.py,sha256=wybeHZuAXMNeXMjKTbK55FZmXJkA4K9IozDeFM9OB-s,207
@@ -149,16 +149,16 @@ ultralytics/models/rtdetr/val.py,sha256=MGzHWMfVDx9KPgaK09nvuHfXRQ6FagpzEyNO1R_8
149
149
  ultralytics/models/sam/__init__.py,sha256=iR7B06rAEni21eptg8n4rLOP0Z_qV9y9PL-L93n4_7s,266
150
150
  ultralytics/models/sam/amg.py,sha256=IpcuIfC5KBRiF4sdrsPl1ecWEJy75axo1yG23r5BFsw,11783
151
151
  ultralytics/models/sam/build.py,sha256=J6n-_QOYLa63jldEZmhRe9D3Is_AJE8xyZLUjzfRyTY,12629
152
- ultralytics/models/sam/model.py,sha256=E9aTW7UGl3TkkGbVFZ6_FBJWrb3kyJ_vuD6T1YCT0M0,7243
152
+ ultralytics/models/sam/model.py,sha256=j1TwsLmtxhiXyceU31VPzGVkjRXGylphKrdPSzUJRJc,7231
153
153
  ultralytics/models/sam/predict.py,sha256=2dg6L8X_I4RqTHAeH8w3m2ojFczkplx1Wu_ytwzAAgQ,82979
154
154
  ultralytics/models/sam/modules/__init__.py,sha256=lm6MckFYCPTbqIoX7w0s_daxdjNeBeKW6DXppv1-QUM,70
155
- ultralytics/models/sam/modules/blocks.py,sha256=YweiuDzMdBcfzt_cye6zeXx2ASbk03k4TqY-xMg1GwQ,45951
155
+ ultralytics/models/sam/modules/blocks.py,sha256=n8oe9sx91_RktsF2_2UYNKH7qk8bFXuJtEaIEpQQ3ws,46059
156
156
  ultralytics/models/sam/modules/decoders.py,sha256=-1fhBO47hA-3CzkU-PzkCK4Nsi_VJ_CH6Q9SMjydN4I,25609
157
157
  ultralytics/models/sam/modules/encoders.py,sha256=f1cdGdmQ_3Vt7MKxMVNIgvEvYmVR8lM1uVocNnrrYrU,37392
158
- ultralytics/models/sam/modules/memory_attention.py,sha256=UNUbVyF8m6NIdhGOvTAwb_lS6x_Had8Ek3OP5JJqcQU,13539
158
+ ultralytics/models/sam/modules/memory_attention.py,sha256=F1XJAxSwho2-LMlrao_ij0MoALTvhkK-OVghi0D4cU0,13651
159
159
  ultralytics/models/sam/modules/sam.py,sha256=LUNmH-1iFPLnl7qzLeLpRqgc82_b8xKNCszDo272rrM,55684
160
160
  ultralytics/models/sam/modules/tiny_encoder.py,sha256=lmUIeZ9-3M-C3YmJBs13W6t__dzeJloOl0qFR9Ll8ew,42241
161
- ultralytics/models/sam/modules/transformer.py,sha256=dIcq1UyCRYIhTPeetVpdjRcqR_b_a5AkkYo-L3Cq6hE,14747
161
+ ultralytics/models/sam/modules/transformer.py,sha256=xc2g6gb0jvr7cJkHkzIbZOGcTrmsOn2ojvuH-MVIMVs,14953
162
162
  ultralytics/models/sam/modules/utils.py,sha256=0qxBCh4tTzXNT10-BiKbqH6QDjzhkmLz2OiVG7gQfww,16021
163
163
  ultralytics/models/utils/__init__.py,sha256=lm6MckFYCPTbqIoX7w0s_daxdjNeBeKW6DXppv1-QUM,70
164
164
  ultralytics/models/utils/loss.py,sha256=E-61TfLPc04IdeL6IlFDityDoPju-ov0ouWV_cNY4Kg,21254
@@ -172,7 +172,7 @@ ultralytics/models/yolo/classify/val.py,sha256=YakPxBVZCd85Kp4wFKx8KH6JJFiU7nkFS
172
172
  ultralytics/models/yolo/detect/__init__.py,sha256=GIRsLYR-kT4JJx7lh4ZZAFGBZj0aebokuU0A7JbjDVA,257
173
173
  ultralytics/models/yolo/detect/predict.py,sha256=ySUsdIf8dw00bzWhcxN1jZwLWKPRT2M7-N7TNL3o4zo,5387
174
174
  ultralytics/models/yolo/detect/train.py,sha256=HlaCoHJ6Y2TpCXXWabMRZApAYqBvjuM_YQJUV5JYCvw,9907
175
- ultralytics/models/yolo/detect/val.py,sha256=qA3Jq4JDZ-sSAy0JMQcz2ncmhLqLRUughMNYLZ1YifE,20485
175
+ ultralytics/models/yolo/detect/val.py,sha256=TrLclevqfD9NnpqPSIEvB5KakCsozyBegaD4lhd3noE,20485
176
176
  ultralytics/models/yolo/obb/__init__.py,sha256=tQmpG8wVHsajWkZdmD6cjGohJ4ki64iSXQT8JY_dydo,221
177
177
  ultralytics/models/yolo/obb/predict.py,sha256=4r1eSld6TNJlk9JG56e-DX6oPL8uBBqiuztyBpxWlHE,2888
178
178
  ultralytics/models/yolo/obb/train.py,sha256=bnYFAMur7Uvbw5Dc09-S2ge7B05iGX-t37Ksgc0ef6g,3921
@@ -187,7 +187,7 @@ ultralytics/models/yolo/segment/train.py,sha256=XrPkXUiNu1Jvhn8iDew_RaLLjZA3un65
187
187
  ultralytics/models/yolo/segment/val.py,sha256=AnvY0O7HhD5xZ2BE2artLTAVW4SNmHbVopBJsYRcmk8,12328
188
188
  ultralytics/models/yolo/world/__init__.py,sha256=nlh8I6t8hMGz_vZg8QSlsUW1R-2eKvn9CGUoPPQEGhA,131
189
189
  ultralytics/models/yolo/world/train.py,sha256=wBKnSC-TvrKWM1Taxqwo13XcwGHwwAXzNYV1tmqcOpc,7845
190
- ultralytics/models/yolo/world/train_world.py,sha256=OLS1ofDSfMBsEG07PjEMruvbaXzNEWs07FpPowHVffs,9306
190
+ ultralytics/models/yolo/world/train_world.py,sha256=lk9z_INGPSTP_W7Rjh3qrWSmjHaxOJtGngonh1cj2SM,9551
191
191
  ultralytics/models/yolo/yoloe/__init__.py,sha256=6SLytdJtwu37qewf7CobG7C7Wl1m-xtNdvCXEasfPDE,760
192
192
  ultralytics/models/yolo/yoloe/predict.py,sha256=TAcT6fiWbV-jOewu9hx_shGI10VLF_6oSPf7jfatBWo,7041
193
193
  ultralytics/models/yolo/yoloe/train.py,sha256=XYpQYSnSD8vi_9VSj_S5oIsNUEqm3e66vPT8rNFI_HY,14086
@@ -195,7 +195,7 @@ ultralytics/models/yolo/yoloe/train_seg.py,sha256=aCV7M8oQOvODFnU4piZdJh3tIrBJYA
195
195
  ultralytics/models/yolo/yoloe/val.py,sha256=yebPkxwKKt__cY05Zbh1YXg4_BKzzpcDc3Cv3FJ5SAA,9769
196
196
  ultralytics/nn/__init__.py,sha256=rjociYD9lo_K-d-1s6TbdWklPLjTcEHk7OIlRDJstIE,615
197
197
  ultralytics/nn/autobackend.py,sha256=n-2ADzX3Y2MRE8nHFeVvFCJFJP9rCbkkNbcufPZ24dE,41532
198
- ultralytics/nn/tasks.py,sha256=vw_TNacAv-RN24rusFzKuYL6qRBD7cve8EpB7gOlU_8,72505
198
+ ultralytics/nn/tasks.py,sha256=jRUjYn1xz_LEa_zx6Upb0UpXvy0Bca1o5HEc7FCRgwM,72653
199
199
  ultralytics/nn/text_model.py,sha256=cYwD-0el4VeToDBP4iPFOQGqyEQatJOBHrVyONL3K_s,15282
200
200
  ultralytics/nn/modules/__init__.py,sha256=2nY0X69Z5DD5SWt6v3CUTZa5gXSzC9TQr3VTVqhyGho,3158
201
201
  ultralytics/nn/modules/activation.py,sha256=75JcIMH2Cu9GTC2Uf55r_5YLpxcrXQDaVoeGQ0hlUAU,2233
@@ -208,23 +208,23 @@ ultralytics/solutions/__init__.py,sha256=ZoeAQavTLp8aClnhZ9tbl6lxy86GxofyGvZWTx2
208
208
  ultralytics/solutions/ai_gym.py,sha256=wwfTqX7G3mZXneMwiibEfYbVYaJF_JUX3SQdsdQUvBM,5217
209
209
  ultralytics/solutions/analytics.py,sha256=aHwKjSEW_3y47LrzugJbPB3VQGTDQCIb5goiPuxnmrc,12802
210
210
  ultralytics/solutions/config.py,sha256=CevL8lzeSbiSAAA514CTiduCg2_Wh04P0RaB_kmwJa8,5404
211
- ultralytics/solutions/distance_calculation.py,sha256=r05_ufxb2Mpw3EIX8X32PIWlh9rYMADypGhVIPoZYV4,5939
211
+ ultralytics/solutions/distance_calculation.py,sha256=TYX7pRlM1v7XTq6wTTfJmj3WHT3zRBhRRcu50uZQ_AE,5936
212
212
  ultralytics/solutions/heatmap.py,sha256=hBJR_Z3Lu9JcvCaEwnd-uN_WEiXK14FDRXedgaI8oqU,5515
213
- ultralytics/solutions/instance_segmentation.py,sha256=qsIQkvuR1Ur2bdEsCCJP2IEO1Hz2l0wfR2KUBo247xE,3795
214
- ultralytics/solutions/object_blurrer.py,sha256=wHbfrudh6li_JADc-dTHGGMI8GU-MvesoTvVlX6YuYc,3998
215
- ultralytics/solutions/object_counter.py,sha256=ccKuchrVkNE8AD4EvArtl6LCVf442jTOyc6_7tGua5o,9433
216
- ultralytics/solutions/object_cropper.py,sha256=mS3iT_CgqfqG9ldM_AM5ptq5bfYFyTycPQY5DxxMlSA,3525
213
+ ultralytics/solutions/instance_segmentation.py,sha256=zPMBY9ixn4YmZozBD2EyowLBadu4dOvZwk-m65EwgDk,3789
214
+ ultralytics/solutions/object_blurrer.py,sha256=96KOAEagk4UoErlUMiIDK6j1CWs2nN1dcJ5V6pl9L-8,3992
215
+ ultralytics/solutions/object_counter.py,sha256=zD-EYIxu_y7qCFEkv6aqV60oMCZ4q6b_kL_stXKof_A,9427
216
+ ultralytics/solutions/object_cropper.py,sha256=x3gN-ihtwkJntp6EMcVWnIvVTOu1iRkP5RrX-1kwJHg,3522
217
217
  ultralytics/solutions/parking_management.py,sha256=IfPUn15aelxz6YZNo9WYkVEl5IOVSw8VD0OrpKtExPE,13613
218
- ultralytics/solutions/queue_management.py,sha256=u0VFzRqa0OxIWY7xXItsXEm073CzkQGFhhXG-6VK3SI,4393
219
- ultralytics/solutions/region_counter.py,sha256=j6f5VAaE1JWGdWOecZpWMFp6yF1GdCnHjftN6CRybjQ,5967
220
- ultralytics/solutions/security_alarm.py,sha256=U6FTbg3cthKLfWeLunsFhOJvB6GGmwYDDxZ3K0GCx-Q,6351
218
+ ultralytics/solutions/queue_management.py,sha256=gTkILx4dVcsKRZXSCXtelkEjCRiDS5iznb3FnddC61c,4390
219
+ ultralytics/solutions/region_counter.py,sha256=nmtCoq1sFIU2Hx4gKImYNF7Yf5YpADHwujxxQGDvf1s,5916
220
+ ultralytics/solutions/security_alarm.py,sha256=czEaMcy04q-iBkKqT_14d8H20CFB6zcKH_31nBGQnyw,6345
221
221
  ultralytics/solutions/similarity_search.py,sha256=H9MPf8F5AvVfmb9hnng0FrIOTbLU_I-CkVHGpC81CE0,9496
222
222
  ultralytics/solutions/solutions.py,sha256=KtoSUSxM4s-Ti5EAzT21pItuv70qlIOH6ymJP95Gl-E,37318
223
223
  ultralytics/solutions/speed_estimation.py,sha256=chg_tBuKFw3EnFiv_obNDaUXLAo-FypxC7gsDeB_VUI,5878
224
224
  ultralytics/solutions/streamlit_inference.py,sha256=SqL-YxU3RCxCKscH2AYUTkmJknilV9jCCco6ufqsFk4,10501
225
225
  ultralytics/solutions/trackzone.py,sha256=kIS94rNfL3yVPAtSbnW8F-aLMxXowQtsfKNB-jLezz8,3941
226
- ultralytics/solutions/vision_eye.py,sha256=nlIdXhfM5EwJh4vqVhz3AEOoHXIELMo1OG8Cr1tMQRw,3008
227
- ultralytics/solutions/templates/similarity-search.html,sha256=vdz9XCH6VHbksvSW_sSg6Z2xVp82_EanaS_rY7xjZBE,4743
226
+ ultralytics/solutions/vision_eye.py,sha256=J_nsXhWkhfWz8THNJU4Yag4wbPv78ymby6SlNKeSuk4,3005
227
+ ultralytics/solutions/templates/similarity-search.html,sha256=nyyurpWlkvYlDeNh-74TlV4ctCpTksvkVy2Yc4ImQ1U,4261
228
228
  ultralytics/trackers/__init__.py,sha256=Zlu_Ig5osn7hqch_g5Be_e4pwZUkeeTQiesJCi0pFGI,255
229
229
  ultralytics/trackers/basetrack.py,sha256=-skBFFatzgJFAPN9Frm1u1h_RDUg3WOlxG6eHQxp2Gw,4384
230
230
  ultralytics/trackers/bot_sort.py,sha256=knP5oo1LC45Lrato8LpcY_j4KBojQFP1lxT_NJxhEUo,12134
@@ -237,17 +237,17 @@ ultralytics/trackers/utils/matching.py,sha256=uSYtywqi1lE_uNN1FwuBFPyISfDQXHMu8K
237
237
  ultralytics/utils/__init__.py,sha256=2xXw_PdASHKkAuOu3eaShJVqisQtFkF8nw5FyMuDUCQ,59401
238
238
  ultralytics/utils/autobatch.py,sha256=33m8YgggLIhltDqMXZ5OE-FGs2QiHrl2-LfgY1mI4cw,5119
239
239
  ultralytics/utils/autodevice.py,sha256=AvgXFt8c1Cg4icKh0Hbhhz8UmVQ2Wjyfdfkeb2C8zck,8855
240
- ultralytics/utils/benchmarks.py,sha256=GlsR6SvD3qlus2hVj7SqSNErsejBlIxO0Y7hMc_cWHw,31041
240
+ ultralytics/utils/benchmarks.py,sha256=btsi_B0mfLPfhE8GrsBpi79vl7SRam0YYngNFAsY8Ak,31035
241
241
  ultralytics/utils/checks.py,sha256=mkDl_BTLZyjfhYbFVSG6xYmxhB2s7wsQ62ugnhspqOc,34707
242
242
  ultralytics/utils/dist.py,sha256=A9lDGtGefTjSVvVS38w86GOdbtLzNBDZuDGK0MT4PRI,4170
243
243
  ultralytics/utils/downloads.py,sha256=YB6rJkcRGQfklUjZqi9dOkTiZaDSqbkGyZEFcZLQkgc,22080
244
244
  ultralytics/utils/errors.py,sha256=XT9Ru7ivoBgofK6PlnyigGoa7Fmf5nEhyHtnD-8TRXI,1584
245
- ultralytics/utils/export.py,sha256=0gG_GZNRqHcORJbjQq_1MXEHc3UEfzPAdpOl2X5VoDc,10008
245
+ ultralytics/utils/export.py,sha256=LK-wlTlyb_zIKtSvOmfmvR70RcUU9Ct9UBDt5wn9_rY,9880
246
246
  ultralytics/utils/files.py,sha256=ZCbLGleiF0f-PqYfaxMFAWop88w7U1hpreHXl8b2ko0,8238
247
- ultralytics/utils/instance.py,sha256=s97d-GXSSCluu-My2DFLAubdk_hf44BuVQ6OCROBrMc,18550
247
+ ultralytics/utils/instance.py,sha256=dC83rHvQXciAED3rOiScFs3BOX9OI06Ey1mj9sjUKvs,19070
248
248
  ultralytics/utils/loss.py,sha256=fbOWc3Iu0QOJiWbi-mXWA9-1otTYlehtmUsI7os7ydM,39799
249
249
  ultralytics/utils/metrics.py,sha256=3nQsz3rAm8n65iqikRzU30Pd2x20FY60ZlWrCMv5ZYk,62225
250
- ultralytics/utils/ops.py,sha256=Jkh80ujyi0XDQwNqCUYyomH8NQ145AH9doMUS8Vt8GE,34545
250
+ ultralytics/utils/ops.py,sha256=8d60fbpntrexK3gPoLUS6mWAYGrtrQaQCOYyRJsCjuI,34521
251
251
  ultralytics/utils/patches.py,sha256=tBAsNo_RyoFLL9OAzVuJmuoDLUJIPuTMByBYyblGG1A,6517
252
252
  ultralytics/utils/plotting.py,sha256=LO-iR-k1UewV5vt4xXDUIirdmNEZdpfiQvLyIWqINPg,47171
253
253
  ultralytics/utils/tal.py,sha256=aXawOnhn8ni65tJWIW-PYqWr_TRvltbHBjrTo7o6lDQ,20924
@@ -265,9 +265,9 @@ ultralytics/utils/callbacks/neptune.py,sha256=j8pecmlcsM8FGzLKWoBw5xUsi5t8E5HuxY
265
265
  ultralytics/utils/callbacks/raytune.py,sha256=S6Bq16oQDQ8BQgnZzA0zJHGN_BBr8iAM_WtGoLiEcwg,1283
266
266
  ultralytics/utils/callbacks/tensorboard.py,sha256=MDPBW7aDes-66OE6YqKXXvqA_EocjzEMHWGM-8z9vUQ,5281
267
267
  ultralytics/utils/callbacks/wb.py,sha256=Tm_-aRr2CN32MJkY9tylpMBJkb007-MSRNSQ7rDJ5QU,7521
268
- ultralytics-8.3.162.dist-info/licenses/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
269
- ultralytics-8.3.162.dist-info/METADATA,sha256=FVyaNE5gD0l3PqFA1ZmpXu1W_AnhrGttVey3N0zCH0w,37576
270
- ultralytics-8.3.162.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
271
- ultralytics-8.3.162.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
272
- ultralytics-8.3.162.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
273
- ultralytics-8.3.162.dist-info/RECORD,,
268
+ ultralytics-8.3.164.dist-info/licenses/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
269
+ ultralytics-8.3.164.dist-info/METADATA,sha256=-S1R_V8PhKc2vEpgGJTHzz6qsK0R_xCX5NY94sUTDag,37576
270
+ ultralytics-8.3.164.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
271
+ ultralytics-8.3.164.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
272
+ ultralytics-8.3.164.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
273
+ ultralytics-8.3.164.dist-info/RECORD,,