ultralytics 8.2.38__py3-none-any.whl → 8.2.39__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of ultralytics might be problematic. Click here for more details.

ultralytics/__init__.py CHANGED
@@ -1,6 +1,6 @@
1
1
  # Ultralytics YOLO 🚀, AGPL-3.0 license
2
2
 
3
- __version__ = "8.2.38"
3
+ __version__ = "8.2.39"
4
4
 
5
5
  import os
6
6
 
@@ -5,11 +5,11 @@
5
5
  nc: 80 # number of classes
6
6
  scales: # model compound scaling constants, i.e. 'model=yolov8n-p6.yaml' will call yolov8-p6.yaml with scale 'n'
7
7
  # [depth, width, max_channels]
8
- n: [0.33, 0.25, 1024]
9
- s: [0.33, 0.50, 1024]
10
- m: [0.67, 0.75, 768]
11
- l: [1.00, 1.00, 512]
12
- x: [1.00, 1.25, 512]
8
+ n: [0.33, 0.25, 1024] # YOLOv8n-p6 summary (fused): 220 layers, 4976656 parameters, 42560 gradients, 8.7 GFLOPs
9
+ s: [0.33, 0.50, 1024] # YOLOv8s-p6 summary (fused): 220 layers, 17897168 parameters, 57920 gradients, 28.5 GFLOPs
10
+ m: [0.67, 0.75, 768] # YOLOv8m-p6 summary (fused): 285 layers, 44862352 parameters, 78400 gradients, 83.1 GFLOPs
11
+ l: [1.00, 1.00, 512] # YOLOv8l-p6 summary (fused): 350 layers, 62351440 parameters, 98880 gradients, 167.3 GFLOPs
12
+ x: [1.00, 1.25, 512] # YOLOv8x-p6 summary (fused): 350 layers, 97382352 parameters, 123456 gradients, 261.1 GFLOPs
13
13
 
14
14
  # YOLOv8.0x6 backbone
15
15
  backbone:
@@ -1223,16 +1223,13 @@ def classify_transforms(
1223
1223
  else:
1224
1224
  # Resize the shortest edge to matching target dim for non-square target
1225
1225
  tfl = [T.Resize(scale_size)]
1226
- tfl += [T.CenterCrop(size)]
1227
-
1228
- tfl += [
1229
- T.ToTensor(),
1230
- T.Normalize(
1231
- mean=torch.tensor(mean),
1232
- std=torch.tensor(std),
1233
- ),
1234
- ]
1235
-
1226
+ tfl.extend(
1227
+ [
1228
+ T.CenterCrop(size),
1229
+ T.ToTensor(),
1230
+ T.Normalize(mean=torch.tensor(mean), std=torch.tensor(std)),
1231
+ ]
1232
+ )
1236
1233
  return T.Compose(tfl)
1237
1234
 
1238
1235
 
@@ -1284,9 +1281,9 @@ def classify_augmentations(
1284
1281
  ratio = tuple(ratio or (3.0 / 4.0, 4.0 / 3.0)) # default imagenet ratio range
1285
1282
  primary_tfl = [T.RandomResizedCrop(size, scale=scale, ratio=ratio, interpolation=interpolation)]
1286
1283
  if hflip > 0.0:
1287
- primary_tfl += [T.RandomHorizontalFlip(p=hflip)]
1284
+ primary_tfl.append(T.RandomHorizontalFlip(p=hflip))
1288
1285
  if vflip > 0.0:
1289
- primary_tfl += [T.RandomVerticalFlip(p=vflip)]
1286
+ primary_tfl.append(T.RandomVerticalFlip(p=vflip))
1290
1287
 
1291
1288
  secondary_tfl = []
1292
1289
  disable_color_jitter = False
@@ -1298,19 +1295,19 @@ def classify_augmentations(
1298
1295
 
1299
1296
  if auto_augment == "randaugment":
1300
1297
  if TORCHVISION_0_11:
1301
- secondary_tfl += [T.RandAugment(interpolation=interpolation)]
1298
+ secondary_tfl.append(T.RandAugment(interpolation=interpolation))
1302
1299
  else:
1303
1300
  LOGGER.warning('"auto_augment=randaugment" requires torchvision >= 0.11.0. Disabling it.')
1304
1301
 
1305
1302
  elif auto_augment == "augmix":
1306
1303
  if TORCHVISION_0_13:
1307
- secondary_tfl += [T.AugMix(interpolation=interpolation)]
1304
+ secondary_tfl.append(T.AugMix(interpolation=interpolation))
1308
1305
  else:
1309
1306
  LOGGER.warning('"auto_augment=augmix" requires torchvision >= 0.13.0. Disabling it.')
1310
1307
 
1311
1308
  elif auto_augment == "autoaugment":
1312
1309
  if TORCHVISION_0_10:
1313
- secondary_tfl += [T.AutoAugment(interpolation=interpolation)]
1310
+ secondary_tfl.append(T.AutoAugment(interpolation=interpolation))
1314
1311
  else:
1315
1312
  LOGGER.warning('"auto_augment=autoaugment" requires torchvision >= 0.10.0. Disabling it.')
1316
1313
 
@@ -1321,7 +1318,7 @@ def classify_augmentations(
1321
1318
  )
1322
1319
 
1323
1320
  if not disable_color_jitter:
1324
- secondary_tfl += [T.ColorJitter(brightness=hsv_v, contrast=hsv_v, saturation=hsv_s, hue=hsv_h)]
1321
+ secondary_tfl.append(T.ColorJitter(brightness=hsv_v, contrast=hsv_v, saturation=hsv_s, hue=hsv_h))
1325
1322
 
1326
1323
  final_tfl = [
1327
1324
  T.ToTensor(),
@@ -329,8 +329,7 @@ def convert_coco(
329
329
 
330
330
  if lvis:
331
331
  with open((Path(save_dir) / json_file.name.replace("lvis_v1_", "").replace(".json", ".txt")), "a") as f:
332
- for l in image_txt:
333
- f.write(f"{l}\n")
332
+ f.writelines(f"{line}\n" for line in image_txt)
334
333
 
335
334
  LOGGER.info(f"{'LVIS' if lvis else 'COCO'} data converted successfully.\nResults saved to {save_dir.resolve()}")
336
335
 
@@ -534,25 +533,25 @@ def yolo_bbox2segment(im_dir, save_dir=None, sam_model="sam_b.pt"):
534
533
 
535
534
  LOGGER.info("Detection labels detected, generating segment labels by SAM model!")
536
535
  sam_model = SAM(sam_model)
537
- for l in tqdm(dataset.labels, total=len(dataset.labels), desc="Generating segment labels"):
538
- h, w = l["shape"]
539
- boxes = l["bboxes"]
536
+ for label in tqdm(dataset.labels, total=len(dataset.labels), desc="Generating segment labels"):
537
+ h, w = label["shape"]
538
+ boxes = label["bboxes"]
540
539
  if len(boxes) == 0: # skip empty labels
541
540
  continue
542
541
  boxes[:, [0, 2]] *= w
543
542
  boxes[:, [1, 3]] *= h
544
- im = cv2.imread(l["im_file"])
543
+ im = cv2.imread(label["im_file"])
545
544
  sam_results = sam_model(im, bboxes=xywh2xyxy(boxes), verbose=False, save=False)
546
- l["segments"] = sam_results[0].masks.xyn
545
+ label["segments"] = sam_results[0].masks.xyn
547
546
 
548
547
  save_dir = Path(save_dir) if save_dir else Path(im_dir).parent / "labels-segment"
549
548
  save_dir.mkdir(parents=True, exist_ok=True)
550
- for l in dataset.labels:
549
+ for label in dataset.labels:
551
550
  texts = []
552
- lb_name = Path(l["im_file"]).with_suffix(".txt").name
551
+ lb_name = Path(label["im_file"]).with_suffix(".txt").name
553
552
  txt_file = save_dir / lb_name
554
- cls = l["cls"]
555
- for i, s in enumerate(l["segments"]):
553
+ cls = label["cls"]
554
+ for i, s in enumerate(label["segments"]):
556
555
  line = (int(cls[i]), *s.reshape(-1))
557
556
  texts.append(("%g " * len(line)).rstrip() % line)
558
557
  if texts:
@@ -26,8 +26,8 @@ def bbox_iof(polygon1, bbox2, eps=1e-6):
26
26
  bbox2 (np.ndarray): Bounding boxes, (n ,4).
27
27
  """
28
28
  polygon1 = polygon1.reshape(-1, 4, 2)
29
- lt_point = np.min(polygon1, axis=-2)
30
- rb_point = np.max(polygon1, axis=-2)
29
+ lt_point = np.min(polygon1, axis=-2) # left-top
30
+ rb_point = np.max(polygon1, axis=-2) # right-bottom
31
31
  bbox1 = np.concatenate([lt_point, rb_point], axis=-1)
32
32
 
33
33
  lt = np.maximum(bbox1[:, None, :2], bbox2[..., :2])
@@ -35,8 +35,8 @@ def bbox_iof(polygon1, bbox2, eps=1e-6):
35
35
  wh = np.clip(rb - lt, 0, np.inf)
36
36
  h_overlaps = wh[..., 0] * wh[..., 1]
37
37
 
38
- l, t, r, b = (bbox2[..., i] for i in range(4))
39
- polygon2 = np.stack([l, t, r, t, r, b, l, b], axis=-1).reshape(-1, 4, 2)
38
+ left, top, right, bottom = (bbox2[..., i] for i in range(4))
39
+ polygon2 = np.stack([left, top, right, top, right, bottom, left, bottom], axis=-1).reshape(-1, 4, 2)
40
40
 
41
41
  sg_polys1 = [Polygon(p) for p in polygon1]
42
42
  sg_polys2 = [Polygon(p) for p in polygon2]
@@ -388,7 +388,7 @@ class Exporter:
388
388
  """YOLOv8 ONNX export."""
389
389
  requirements = ["onnx>=1.12.0"]
390
390
  if self.args.simplify:
391
- requirements += ["onnxslim==0.1.28", "onnxruntime" + ("-gpu" if torch.cuda.is_available() else "")]
391
+ requirements += ["onnxslim>=0.1.31", "onnxruntime" + ("-gpu" if torch.cuda.is_available() else "")]
392
392
  check_requirements(requirements)
393
393
  import onnx # noqa
394
394
 
@@ -827,7 +827,7 @@ class Exporter:
827
827
  "onnx>=1.12.0",
828
828
  "onnx2tf>1.17.5,<=1.22.3",
829
829
  "sng4onnx>=1.0.1",
830
- "onnxslim==0.1.28",
830
+ "onnxslim>=0.1.31",
831
831
  "onnx_graphsurgeon>=0.3.26",
832
832
  "tflite_support<=0.4.3" if IS_JETSON else "tflite_support", # fix ImportError 'GLIBCXX_3.4.29'
833
833
  "flatbuffers>=23.5.26,<100", # update old 'flatbuffers' included inside tensorflow package
@@ -142,7 +142,6 @@ class Model(nn.Module):
142
142
  # Check if Triton Server model
143
143
  elif self.is_triton_model(model):
144
144
  self.model_name = self.model = model
145
- self.task = task
146
145
  return
147
146
 
148
147
  # Load or create new YOLO model
@@ -384,8 +384,8 @@ class TinyViTBlock(nn.Module):
384
384
  convolution.
385
385
  """
386
386
  h, w = self.input_resolution
387
- b, l, c = x.shape
388
- assert l == h * w, "input feature has wrong size"
387
+ b, hw, c = x.shape # batch, height*width, channels
388
+ assert hw == h * w, "input feature has wrong size"
389
389
  res_x = x
390
390
  if h == self.window_size and w == self.window_size:
391
391
  x = self.attn(x)
@@ -394,13 +394,13 @@ class TinyViTBlock(nn.Module):
394
394
  pad_b = (self.window_size - h % self.window_size) % self.window_size
395
395
  pad_r = (self.window_size - w % self.window_size) % self.window_size
396
396
  padding = pad_b > 0 or pad_r > 0
397
-
398
397
  if padding:
399
398
  x = F.pad(x, (0, 0, 0, pad_r, 0, pad_b))
400
399
 
401
400
  pH, pW = h + pad_b, w + pad_r
402
401
  nH = pH // self.window_size
403
402
  nW = pW // self.window_size
403
+
404
404
  # Window partition
405
405
  x = (
406
406
  x.view(b, nH, self.window_size, nW, self.window_size, c)
@@ -408,19 +408,18 @@ class TinyViTBlock(nn.Module):
408
408
  .reshape(b * nH * nW, self.window_size * self.window_size, c)
409
409
  )
410
410
  x = self.attn(x)
411
+
411
412
  # Window reverse
412
413
  x = x.view(b, nH, nW, self.window_size, self.window_size, c).transpose(2, 3).reshape(b, pH, pW, c)
413
-
414
414
  if padding:
415
415
  x = x[:, :h, :w].contiguous()
416
416
 
417
- x = x.view(b, l, c)
417
+ x = x.view(b, hw, c)
418
418
 
419
419
  x = res_x + self.drop_path(x)
420
-
421
420
  x = x.transpose(1, 2).reshape(b, c, h, w)
422
421
  x = self.local_conv(x)
423
- x = x.view(b, c, l).transpose(1, 2)
422
+ x = x.view(b, c, hw).transpose(1, 2)
424
423
 
425
424
  return x + self.drop_path(self.mlp(x))
426
425
 
@@ -133,6 +133,7 @@ __all__ = (
133
133
  "ResNetLayer",
134
134
  "OBB",
135
135
  "WorldDetect",
136
+ "v10Detect",
136
137
  "ImagePoolingAttn",
137
138
  "ContrastiveHead",
138
139
  "BNContrastiveHead",
@@ -40,7 +40,6 @@ __all__ = (
40
40
  "SPPELAN",
41
41
  "CBFuse",
42
42
  "CBLinear",
43
- "Silence",
44
43
  "RepVGGDW",
45
44
  "CIB",
46
45
  "C2fCIB",
@@ -789,7 +788,7 @@ class CIB(nn.Module):
789
788
  self.cv1 = nn.Sequential(
790
789
  Conv(c1, c1, 3, g=c1),
791
790
  Conv(c1, 2 * c_, 1),
792
- Conv(2 * c_, 2 * c_, 3, g=2 * c_) if not lk else RepVGGDW(2 * c_),
791
+ RepVGGDW(2 * c_) if lk else Conv(2 * c_, 2 * c_, 3, g=2 * c_),
793
792
  Conv(2 * c_, c2, 1),
794
793
  Conv(c2, c2, 3, g=c2),
795
794
  )
@@ -110,8 +110,7 @@ class Detect(nn.Module):
110
110
  else:
111
111
  dbox = self.decode_bboxes(self.dfl(box), self.anchors.unsqueeze(0)) * self.strides
112
112
 
113
- y = torch.cat((dbox, cls.sigmoid()), 1)
114
- return y
113
+ return torch.cat((dbox, cls.sigmoid()), 1)
115
114
 
116
115
  def bias_init(self):
117
116
  """Initialize Detect() biases, WARNING: requires stride availability."""
ultralytics/nn/tasks.py CHANGED
@@ -693,7 +693,7 @@ class Ensemble(nn.ModuleList):
693
693
 
694
694
 
695
695
  @contextlib.contextmanager
696
- def temporary_modules(modules={}, attributes={}):
696
+ def temporary_modules(modules=None, attributes=None):
697
697
  """
698
698
  Context manager for temporarily adding or modifying modules in Python's module cache (`sys.modules`).
699
699
 
@@ -718,6 +718,10 @@ def temporary_modules(modules={}, attributes={}):
718
718
  applications or libraries. Use this function with caution.
719
719
  """
720
720
 
721
+ if modules is None:
722
+ modules = {}
723
+ if attributes is None:
724
+ attributes = {}
721
725
  import sys
722
726
  from importlib import import_module
723
727
 
@@ -15,6 +15,7 @@ __all__ = (
15
15
  "Heatmap",
16
16
  "ObjectCounter",
17
17
  "ParkingManagement",
18
+ "ParkingPtsSelection",
18
19
  "QueueManager",
19
20
  "SpeedEstimator",
20
21
  "Analytics",
@@ -1070,7 +1070,7 @@ TESTS_RUNNING = is_pytest_running() or is_github_action_running()
1070
1070
  set_sentry()
1071
1071
 
1072
1072
  # Apply monkey patches
1073
- from .patches import imread, imshow, imwrite, torch_save
1073
+ from ultralytics.utils.patches import imread, imshow, imwrite, torch_save
1074
1074
 
1075
1075
  torch.save = torch_save
1076
1076
  if WINDOWS:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ultralytics
3
- Version: 8.2.38
3
+ Version: 8.2.39
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
@@ -122,7 +122,7 @@ To request an Enterprise License please complete the form at [Ultralytics Licens
122
122
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="2%" alt="space">
123
123
  <a href="https://www.tiktok.com/@ultralytics"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-tiktok.png" width="2%" alt="Ultralytics TikTok"></a>
124
124
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="2%" alt="space">
125
- <a href="https://www.instagram.com/ultralytics/"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-instagram.png" width="2%" alt="Ultralytics Instagram"></a>
125
+ <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>
126
126
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="2%" alt="space">
127
127
  <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>
128
128
  </div>
@@ -313,7 +313,7 @@ See [Classification Docs](https://docs.ultralytics.com/tasks/classify/) for usag
313
313
  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.
314
314
 
315
315
  <br>
316
- <a href="https://bit.ly/ultralytics_hub" target="_blank">
316
+ <a href="https://ultralytics.com/hub" target="_blank">
317
317
  <img width="100%" src="https://github.com/ultralytics/assets/raw/main/yolov8/banner-integrations.png" alt="Ultralytics active learning integrations"></a>
318
318
  <br>
319
319
  <br>
@@ -338,9 +338,9 @@ Our key integrations with leading AI platforms extend the functionality of Ultra
338
338
 
339
339
  ## <div align="center">Ultralytics HUB</div>
340
340
 
341
- Experience seamless AI with [Ultralytics HUB](https://bit.ly/ultralytics_hub) ⭐, the all-in-one solution for data visualization, YOLOv5 and YOLOv8 🚀 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://ultralytics.com/app_install). Start your journey for **Free** now!
341
+ Experience seamless AI with [Ultralytics HUB](https://ultralytics.com/hub) ⭐, the all-in-one solution for data visualization, YOLOv5 and YOLOv8 🚀 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://ultralytics.com/app_install). Start your journey for **Free** now!
342
342
 
343
- <a href="https://bit.ly/ultralytics_hub" target="_blank">
343
+ <a href="https://ultralytics.com/hub" target="_blank">
344
344
  <img width="100%" src="https://github.com/ultralytics/assets/raw/main/im/ultralytics-hub.png" alt="Ultralytics HUB preview image"></a>
345
345
 
346
346
  ## <div align="center">Contribute</div>
@@ -375,7 +375,7 @@ For Ultralytics bug reports and feature requests please visit [GitHub Issues](ht
375
375
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="3%" alt="space">
376
376
  <a href="https://www.tiktok.com/@ultralytics"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-tiktok.png" width="3%" alt="Ultralytics TikTok"></a>
377
377
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="3%" alt="space">
378
- <a href="https://www.instagram.com/ultralytics/"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-instagram.png" width="3%" alt="Ultralytics Instagram"></a>
378
+ <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>
379
379
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="3%" alt="space">
380
380
  <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>
381
381
  </div>
@@ -7,7 +7,7 @@ tests/test_explorer.py,sha256=r1pWer2y290Y0DqsM-La7egfEY0497YCdC4rwq3URV4,2178
7
7
  tests/test_exports.py,sha256=qc4YOgsGixqYLO6IRNY16-v6z14R0dp5fdni1v222xw,8034
8
8
  tests/test_integrations.py,sha256=8Ru7GyKV8j44EEc8X9_E7q7aR4CTOIMPuSagXjSGUxw,5847
9
9
  tests/test_python.py,sha256=9KjBKQXj6T9hRfX-4nnERd7OR3xx2ejV8430BoXjHro,20536
10
- ultralytics/__init__.py,sha256=R8tdSpt8DjyJbiH1TGuPXSrbharV6KDLd3efp-aYEcA,694
10
+ ultralytics/__init__.py,sha256=mkhFNTFZ9peN-6tReInnBdHL_JDPx-SsIZcBFTJSXW0,694
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=JblkT6Ze9MZ8hSs8gkV8JPcEKNMm-YqRqM4x501Dn9g,21507
@@ -63,7 +63,7 @@ ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml,sha256=kqgbEKNua7XwH95zteW6IzXaAj
63
63
  ultralytics/cfg/models/v8/yolov8-ghost.yaml,sha256=WUHOI18aA11kgANDCWbDDy3jswNlP_nIkpWX09BfBuI,2096
64
64
  ultralytics/cfg/models/v8/yolov8-obb.yaml,sha256=Tv5JDZTLOrfyBj3ggqse9ShjDpM-nIFIxhiseQKwJEA,1899
65
65
  ultralytics/cfg/models/v8/yolov8-p2.yaml,sha256=tfHkkVAC0fkCc7AbisTzGpXW3Ffk2-K5-wjReSbm7Gw,1731
66
- ultralytics/cfg/models/v8/yolov8-p6.yaml,sha256=9xVJo6qVuxRRDJfGNmTIPqjAvoJmxcdQOgewuNVOHHg,1835
66
+ ultralytics/cfg/models/v8/yolov8-p6.yaml,sha256=lAFASwFhjvUpfCdzrnGZiU4Fy9EwbJ5QbJhrRyUm210,2296
67
67
  ultralytics/cfg/models/v8/yolov8-pose-p6.yaml,sha256=yzxI20bMBdo6f5kd53VfuEHm_QqE_V3uwAvFJE0Tbr0,1927
68
68
  ultralytics/cfg/models/v8/yolov8-pose.yaml,sha256=DHoJd7q7Hw89JBX5im-M3NWG8mge3VdPVNb4K4jTzIQ,1563
69
69
  ultralytics/cfg/models/v8/yolov8-rtdetr.yaml,sha256=ofujf77LW3stXS6-leVM_ExROWifJ84D5WqRhujyVJI,1896
@@ -83,13 +83,13 @@ ultralytics/cfg/trackers/botsort.yaml,sha256=YrPmj18p1UU40kJH5NRdL_4S8f7knggkk_q
83
83
  ultralytics/cfg/trackers/bytetrack.yaml,sha256=QvHmtuwulK4X6j3T5VEqtCm0sbWWBUVmWPcCcM20qe0,688
84
84
  ultralytics/data/__init__.py,sha256=VGe-ATG7j35F4A4r8Jmzffjlhve4JAJPgRa5ahKTU18,616
85
85
  ultralytics/data/annotator.py,sha256=evXQzARVerc0hb9ol-n_GrrHf-dlXO4lCMMWEZoJ2UM,2117
86
- ultralytics/data/augment.py,sha256=_zVVyJBFGfdpFerKYNfhyycXE2AoxiAfPkyOso4OvKU,59542
86
+ ultralytics/data/augment.py,sha256=zekY4Lw_dxsbPpm4jDSr7PYtWwj7iBaRqBcAeeDFDS4,59554
87
87
  ultralytics/data/base.py,sha256=C3teLnw97ZTbpJHT9P7yYWosAKocMzgJjRe1rxgfpls,13524
88
88
  ultralytics/data/build.py,sha256=AfMmz0sHIYmwry_90tEJFRk_kz0S3SolScVXqYHiT08,7261
89
- ultralytics/data/converter.py,sha256=NLDiV67RshbKQnMJUiQQF11boVzEqgi2Hz39nKVAI4U,17528
89
+ ultralytics/data/converter.py,sha256=7640xKuf7LPeoTwoCvgbIXM5xbzyq72Hu2Rf2lrgjRY,17554
90
90
  ultralytics/data/dataset.py,sha256=NFaXyHRn64TyTEbtSkr7SkqWXK8bEJl6lZ6M1JwO3MY,22201
91
91
  ultralytics/data/loaders.py,sha256=eqfgFwrQeCiqiZKfkmZ54SN0APVJDGhnlXTTFqeKFSU,23932
92
- ultralytics/data/split_dota.py,sha256=xiPScUhknxAyBgJ_J7g8SJdgjJdomSVVAosfZ51rGWA,10072
92
+ ultralytics/data/split_dota.py,sha256=fWezt1Bo3jiZ6AyUWdBtTUuvLamPv1t7JD-DirM9gQ8,10142
93
93
  ultralytics/data/utils.py,sha256=zqFg4xaWU--fastZmwvZ3DxGyJQ3i4tVNLuYnqS1xxs,31044
94
94
  ultralytics/data/explorer/__init__.py,sha256=-Y3m1ZedepOQUv_KW82zaGxvU_PSHcuwUTFqG9BhAr4,113
95
95
  ultralytics/data/explorer/explorer.py,sha256=GqQcHkETxlS0w-lYUnTE_RJ9wPReK7c9XG41-k9FoxE,18668
@@ -97,8 +97,8 @@ ultralytics/data/explorer/utils.py,sha256=EvvukQiQUTBrsZznmMnyEX2EqTuwZo_Geyc8yf
97
97
  ultralytics/data/explorer/gui/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
98
98
  ultralytics/data/explorer/gui/dash.py,sha256=CPlFIIhf53j_YVAqealsC3AbcztdPqZxfniQcBnlKK4,10042
99
99
  ultralytics/engine/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
100
- ultralytics/engine/exporter.py,sha256=0JUk5kMqr9argOqfXWP9WaxoVJSo5C4NMUIrPfEjni0,58534
101
- ultralytics/engine/model.py,sha256=qSvCT-l8mLT-CDixy6mjyC7N5x3edsWmobRWbojwLUM,40073
100
+ ultralytics/engine/exporter.py,sha256=RVREJjFJ7Y-pnLq_i0yM5x9QRlKoLr0WnQWepkbFD_Y,58534
101
+ ultralytics/engine/model.py,sha256=wzIlzNNJUWWTb_nygVY0mK2nq3g3CyDST3lRlk-HH5M,40044
102
102
  ultralytics/engine/predictor.py,sha256=W58kDCFH2AfoFzpGbos3k8zUEVsLunBuM8sc2B64rPY,17449
103
103
  ultralytics/engine/results.py,sha256=zRuEIrBtpoCQ3M6a_YscnyXrWSP-zpL3ACv0gTdrDaw,30987
104
104
  ultralytics/engine/trainer.py,sha256=Gkh7tFa5BlQv4pZhcAKCfKBHwR28w4AHLqALxKa8ask,35264
@@ -133,7 +133,7 @@ ultralytics/models/sam/modules/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz
133
133
  ultralytics/models/sam/modules/decoders.py,sha256=7NWnBNupxGYvH0S1N0R6NBHxdVFRUrrnL9EqAw09J4E,7816
134
134
  ultralytics/models/sam/modules/encoders.py,sha256=pRNZHzt2J2xD_D0Btu8pk4DcItfr6dRr9rcRfxoZZhU,24746
135
135
  ultralytics/models/sam/modules/sam.py,sha256=zC4l4kcrIQD_ekczjl2l6dgaABqqjROZxQ-FDb-itt0,2783
136
- ultralytics/models/sam/modules/tiny_encoder.py,sha256=lVmz33WJrU2O6L-pwubKFu4ydUZmQeVhuhLcyKspdAI,29145
136
+ ultralytics/models/sam/modules/tiny_encoder.py,sha256=_fdtgoYcsQKmvit7Ii9iUmL3Zh42IziEswtZZ38JXrk,29181
137
137
  ultralytics/models/sam/modules/transformer.py,sha256=VINZMb4xkx4IHAbJdhCq2XLDvaFBMup7RGC16DLS7OY,11164
138
138
  ultralytics/models/utils/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
139
139
  ultralytics/models/utils/loss.py,sha256=PmlKDe4xQTiYkPSCdNUabxJC7bh43zGxiKVIxsXBVGE,15135
@@ -165,14 +165,14 @@ ultralytics/models/yolo/world/train.py,sha256=acYN2-onL69LrL4av6_hY2r5AY0urC0WVi
165
165
  ultralytics/models/yolo/world/train_world.py,sha256=n0XTAHYxufHU5OZ_QjpkHieKik-24z0LrYKzWYbCLvA,4798
166
166
  ultralytics/nn/__init__.py,sha256=4BPLHY89xEM_al5uK0aOmFgiML6CMGEZbezxOvTjOEs,587
167
167
  ultralytics/nn/autobackend.py,sha256=zsMF-GS12xtMBeQEkSoJ5cudEHyzMaRSQBuXcfuBNdo,31210
168
- ultralytics/nn/tasks.py,sha256=R3zOAzW3lyC0vAsNFagx49hPKKHQxt8MTMkEhJ_0AZI,45447
169
- ultralytics/nn/modules/__init__.py,sha256=9rGYw0c_XjBVs7rwj1RiM4U58_TlN4i2Ufl8hoL42J0,2536
170
- ultralytics/nn/modules/block.py,sha256=s7bbxc4aINGBdxuvIcUbknzmWTmBwui5W0T9diie0D4,34403
168
+ ultralytics/nn/tasks.py,sha256=1fempWanr6FrjoDZ10ukZvcnvG80ahYBKtaX8KLJtRM,45547
169
+ ultralytics/nn/modules/__init__.py,sha256=mARjWk83WPYF5phXhXfPbAu2ZohtdbHdi5zzoxyMubo,2553
170
+ ultralytics/nn/modules/block.py,sha256=JiPwcbLzb7O_O5T1KkW0dIGJSfBwPaS-NNYuVkLBDwg,34384
171
171
  ultralytics/nn/modules/conv.py,sha256=Ywe87IhuaS22mR2JJ9xjnW8Sb-m7WTjxuqIxV_Dv8lI,12722
172
- ultralytics/nn/modules/head.py,sha256=hR-_hRMZMizl5Ttnx_FEzy8T3_58PJRLreeIzw2TVE4,26761
172
+ ultralytics/nn/modules/head.py,sha256=6VV6t2OJ_t9fCdhFxzcMcirp6lonv-xSm0o2yFghZZ0,26747
173
173
  ultralytics/nn/modules/transformer.py,sha256=AxD9uURpCl-EqvXe3DiG6JW-pBzB16G-AahLdZ7yayo,17909
174
174
  ultralytics/nn/modules/utils.py,sha256=779QnnKp9v8jv251ESduTXJ0ol8HkIOLbGQWwEGQjhU,3196
175
- ultralytics/solutions/__init__.py,sha256=S4m7p_rpg2pk9PdnqqD-6Sk--wDHxZSo7cUZjSwj_iQ,561
175
+ ultralytics/solutions/__init__.py,sha256=aO9h0JQDfaQR2PCk7yCRxu2odb3Zxu76RdYSv9JPfm8,588
176
176
  ultralytics/solutions/ai_gym.py,sha256=RdkV15IW8CLYn9pGCzkvU1Gor2o71da-TLJVvsFM8a0,4665
177
177
  ultralytics/solutions/analytics.py,sha256=UI8HoegfIJGgvQPOt4-e9A0ss2_ofM7zzxcbKlhe66k,11572
178
178
  ultralytics/solutions/distance_calculation.py,sha256=pSIkyytHGRAaNzIrkkNkiOnSVWU1PYvURlCIV_jRORA,6505
@@ -190,7 +190,7 @@ ultralytics/trackers/utils/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7J
190
190
  ultralytics/trackers/utils/gmc.py,sha256=-1oBNFRB-9EawJmUOT566AygLCVxJw-jsPSIOl5j_Hk,13683
191
191
  ultralytics/trackers/utils/kalman_filter.py,sha256=0oqhk59NKEiwcJ2FXnw6_sT4bIFC6Wu5IY2B-TGxJKU,15168
192
192
  ultralytics/trackers/utils/matching.py,sha256=UxhSGa5pN6WoYwYSBAkkt-O7xMxUR47VuUB6PfVNkb4,5404
193
- ultralytics/utils/__init__.py,sha256=jrPWtLQEZJtbumqRrctgUikpAzS62Xm0iPy73iqIGSs,38640
193
+ ultralytics/utils/__init__.py,sha256=WdStmMYcXE7q4V3RgTYGmLEicMJR0mTQawGtK5_q9Is,38657
194
194
  ultralytics/utils/autobatch.py,sha256=gPFcREMsMHRAuTQiBnNZ9Mm1XNqmQW-uMPhveDFEQ_Y,3966
195
195
  ultralytics/utils/benchmarks.py,sha256=tDX7wu0TpMMlEQDOFqfkjxl156ssS7Lh_5tFWIXdJfg,23549
196
196
  ultralytics/utils/checks.py,sha256=PDY1eHlsyDVEIiKRjvb81uz2jniL1MqgP_TmXH_78KM,28379
@@ -219,9 +219,9 @@ ultralytics/utils/callbacks/neptune.py,sha256=5Z3ua5YBTUS56FH8VQKQG1aaIo9fH8GEyz
219
219
  ultralytics/utils/callbacks/raytune.py,sha256=ODVYzy-CoM4Uge0zjkh3Hnh9nF2M0vhDrSenXnvcizw,705
220
220
  ultralytics/utils/callbacks/tensorboard.py,sha256=QEgOVhUqY9akOs5TJIwz1Rvn6l32xWLpOxlwEyWF0B8,4136
221
221
  ultralytics/utils/callbacks/wb.py,sha256=9-fjQIdLjr3b73DTE3rHO171KvbH1VweJ-bmbv-rqTw,6747
222
- ultralytics-8.2.38.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
223
- ultralytics-8.2.38.dist-info/METADATA,sha256=mcUpRkBNjCoRy3p0szqbea_wxZ2pxCsAIykwsyflrV8,41316
224
- ultralytics-8.2.38.dist-info/WHEEL,sha256=cpQTJ5IWu9CdaPViMhC9YzF8gZuS5-vlfoFihTBC86A,91
225
- ultralytics-8.2.38.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
226
- ultralytics-8.2.38.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
227
- ultralytics-8.2.38.dist-info/RECORD,,
222
+ ultralytics-8.2.39.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
223
+ ultralytics-8.2.39.dist-info/METADATA,sha256=XHc9CKRpOfE9imi40-J_ziVia8M_K-JzvXbaO_ga518,41291
224
+ ultralytics-8.2.39.dist-info/WHEEL,sha256=cpQTJ5IWu9CdaPViMhC9YzF8gZuS5-vlfoFihTBC86A,91
225
+ ultralytics-8.2.39.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
226
+ ultralytics-8.2.39.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
227
+ ultralytics-8.2.39.dist-info/RECORD,,