ultralytics 8.1.37__py3-none-any.whl → 8.1.38__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.1.37"
3
+ __version__ = "8.1.38"
4
4
 
5
5
  from ultralytics.data.explorer.explorer import Explorer
6
6
  from ultralytics.models import RTDETR, SAM, YOLO, YOLOWorld
@@ -94,7 +94,7 @@ CLI_HELP_MSG = f"""
94
94
  """
95
95
 
96
96
  # Define keys for arg type checks
97
- CFG_FLOAT_KEYS = {"warmup_epochs", "box", "cls", "dfl", "degrees", "shear", "time"}
97
+ CFG_FLOAT_KEYS = {"warmup_epochs", "box", "cls", "dfl", "degrees", "shear", "time", "workspace"}
98
98
  CFG_FRACTION_KEYS = {
99
99
  "dropout",
100
100
  "iou",
@@ -132,7 +132,6 @@ CFG_INT_KEYS = {
132
132
  "max_det",
133
133
  "vid_stride",
134
134
  "line_width",
135
- "workspace",
136
135
  "nbs",
137
136
  "save_period",
138
137
  }
@@ -116,8 +116,8 @@ mosaic: 1.0 # (float) image mosaic (probability)
116
116
  mixup: 0.0 # (float) image mixup (probability)
117
117
  copy_paste: 0.0 # (float) segment copy-paste (probability)
118
118
  auto_augment: randaugment # (str) auto augmentation policy for classification (randaugment, autoaugment, augmix)
119
- erasing: 0.4 # (float) probability of random erasing during classification training (0-1)
120
- crop_fraction: 1.0 # (float) image crop fraction for classification evaluation/inference (0-1)
119
+ erasing: 0.4 # (float) probability of random erasing during classification training (0-0.9), 0 means no erasing, must be less than 1.0.
120
+ crop_fraction: 1.0 # (float) image crop fraction for classification (0.1-1), 1.0 means no crop, must be greater than 0.
121
121
 
122
122
  # Custom config.yaml ---------------------------------------------------------------------------------------------------
123
123
  cfg: # (str, optional) for overriding defaults.yaml
@@ -1056,7 +1056,7 @@ def classify_transforms(
1056
1056
  return T.Compose(tfl)
1057
1057
 
1058
1058
 
1059
- # Classification augmentations train ---------------------------------------------------------------------------------------
1059
+ # Classification training augmentations --------------------------------------------------------------------------------
1060
1060
  def classify_augmentations(
1061
1061
  size=224,
1062
1062
  mean=DEFAULT_MEAN,
ultralytics/data/base.py CHANGED
@@ -81,6 +81,8 @@ class BaseDataset(Dataset):
81
81
  if self.rect:
82
82
  assert self.batch_size is not None
83
83
  self.set_rectangle()
84
+ if isinstance(cache, str):
85
+ cache = cache.lower()
84
86
 
85
87
  # Buffer thread for mosaic images
86
88
  self.buffer = [] # buffer size = batch size
@@ -261,8 +261,8 @@ class ClassificationDataset(torchvision.datasets.ImageFolder):
261
261
  if augment and args.fraction < 1.0: # reduce training fraction
262
262
  self.samples = self.samples[: round(len(self.samples) * args.fraction)]
263
263
  self.prefix = colorstr(f"{prefix}: ") if prefix else ""
264
- self.cache_ram = args.cache is True or args.cache == "ram" # cache images into RAM
265
- self.cache_disk = args.cache == "disk" # cache images on hard drive as uncompressed *.npy files
264
+ self.cache_ram = args.cache is True or str(args.cache).lower() == "ram" # cache images into RAM
265
+ self.cache_disk = str(args.cache).lower() == "disk" # cache images on hard drive as uncompressed *.npy files
266
266
  self.samples = self.verify_images() # filter out bad images
267
267
  self.samples = [list(x) + [Path(x[0]).with_suffix(".npy"), None] for x in self.samples] # file, index, npy, im
268
268
  scale = (1.0 - args.scale, 1.0) # (0.08, 1.0)
@@ -285,8 +285,9 @@ class ClassificationDataset(torchvision.datasets.ImageFolder):
285
285
  def __getitem__(self, i):
286
286
  """Returns subset of data and targets corresponding to given indices."""
287
287
  f, j, fn, im = self.samples[i] # filename, index, filename.with_suffix('.npy'), image
288
- if self.cache_ram and im is None:
289
- im = self.samples[i][3] = cv2.imread(f)
288
+ if self.cache_ram:
289
+ if im is None: # Warning: two separate if statements required here, do not combine this with previous line
290
+ im = self.samples[i][3] = cv2.imread(f)
290
291
  elif self.cache_disk:
291
292
  if not fn.exists(): # load npy
292
293
  np.save(fn.as_posix(), cv2.imread(f), allow_pickle=False)
@@ -675,9 +675,7 @@ class Exporter:
675
675
 
676
676
  builder = trt.Builder(logger)
677
677
  config = builder.create_builder_config()
678
- config.max_workspace_size = self.args.workspace * 1 << 30
679
- # config.set_memory_pool_limit(trt.MemoryPoolType.WORKSPACE, workspace << 30) # fix TRT 8.4 deprecation notice
680
-
678
+ config.max_workspace_size = int(self.args.workspace * (1 << 30))
681
679
  flag = 1 << int(trt.NetworkDefinitionCreationFlag.EXPLICIT_BATCH)
682
680
  network = builder.create_network(flag)
683
681
  parser = trt.OnnxParser(network, logger)
@@ -543,7 +543,7 @@ class AutoBackend(nn.Module):
543
543
  if integer:
544
544
  scale, zero_point = output["quantization"]
545
545
  x = (x.astype(np.float32) - zero_point) * scale # re-scale
546
- if x.ndim > 2: # if task is not classification
546
+ if x.ndim == 3: # if task is not classification, excluding masks (ndim=4) as well
547
547
  # Denormalize xywh by image size. See https://github.com/ultralytics/ultralytics/pull/1695
548
548
  # xywh are normalized in TFLite/EdgeTPU to mitigate quantization error of integer models
549
549
  x[:, [0, 2]] *= w
@@ -319,7 +319,7 @@ class GMC:
319
319
  keypoints = cv2.goodFeaturesToTrack(frame, mask=None, **self.feature_params)
320
320
 
321
321
  # Handle first frame
322
- if not self.initializedFirstFrame:
322
+ if not self.initializedFirstFrame or self.prevKeyPoints is None:
323
323
  self.prevFrame = frame.copy()
324
324
  self.prevKeyPoints = copy.copy(keypoints)
325
325
  self.initializedFirstFrame = True
@@ -14,7 +14,7 @@ except (ImportError, AssertionError):
14
14
 
15
15
  def on_fit_epoch_end(trainer):
16
16
  """Sends training metrics to Ray Tune at end of each epoch."""
17
- if ray.tune.is_session_enabled():
17
+ if ray.train._internal.session._get_session(): # replacement for deprecated ray.tune.is_session_enabled()
18
18
  metrics = trainer.metrics
19
19
  metrics["epoch"] = trainer.epoch
20
20
  session.report(metrics)
@@ -40,7 +40,7 @@ def run_ray_tune(
40
40
  train_args = {}
41
41
 
42
42
  try:
43
- subprocess.run("pip install ray[tune]<=2.9.3".split(), check=True) # do not add single quotes here
43
+ subprocess.run("pip install ray[tune]".split(), check=True) # do not add single quotes here
44
44
 
45
45
  import ray
46
46
  from ray import tune
@@ -48,7 +48,7 @@ def run_ray_tune(
48
48
  from ray.air.integrations.wandb import WandbLoggerCallback
49
49
  from ray.tune.schedulers import ASHAScheduler
50
50
  except ImportError:
51
- raise ModuleNotFoundError('Ray Tune required but not found. To install run: pip install "ray[tune]<=2.9.3"')
51
+ raise ModuleNotFoundError('Ray Tune required but not found. To install run: pip install "ray[tune]"')
52
52
 
53
53
  try:
54
54
  import wandb
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ultralytics
3
- Version: 8.1.37
3
+ Version: 8.1.38
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
@@ -1,8 +1,8 @@
1
- ultralytics/__init__.py,sha256=RyhpTnaxAaH_9y3lIY9JathlsdbSsGGQA3LnQxnq5bk,625
1
+ ultralytics/__init__.py,sha256=TUM0Yh0QHEGmOjrvXry3W6KL2b9NAgB-CzkxQtshmmg,625
2
2
  ultralytics/assets/bus.jpg,sha256=wCAZxJecGR63Od3ZRERe9Aja1Weayrb9Ug751DS_vGM,137419
3
3
  ultralytics/assets/zidane.jpg,sha256=Ftc4aeMmen1O0A3o6GCDO9FlfBslLpTAw0gnetx7bts,50427
4
- ultralytics/cfg/__init__.py,sha256=uNuNmtOkqZN1F01sGpizmkTL2UmEC1GaUs7rUixEjwk,21320
5
- ultralytics/cfg/default.yaml,sha256=zHRtcoaFUp6LSHRFtOzaj1GCLmVHLS1ymNhnIffcWGM,8142
4
+ ultralytics/cfg/__init__.py,sha256=TrOyD2ONqvSvrIX_AdPzfcIazmGBRBlQ4zIkwkKxiKM,21316
5
+ ultralytics/cfg/default.yaml,sha256=2DFD7eZJiKdnUB3eQPIxo8nV6TG4SiZzdaBJnD5Aw2k,8213
6
6
  ultralytics/cfg/datasets/Argoverse.yaml,sha256=FyeuJT5CHq_9d4hlfAf0kpZlnbUMO0S--UJ1yIqcdKk,3134
7
7
  ultralytics/cfg/datasets/DOTAv1.5.yaml,sha256=YDsyFPI6F6-OQXLBM3hOXo3vADYREwZzmMQfJNdpWyM,1193
8
8
  ultralytics/cfg/datasets/DOTAv1.yaml,sha256=dxLUliHvJOW4q4vJRu5qIYVvNfjvXWB7GVh_Fhk--dM,1163
@@ -61,11 +61,11 @@ ultralytics/cfg/trackers/botsort.yaml,sha256=YrPmj18p1UU40kJH5NRdL_4S8f7knggkk_q
61
61
  ultralytics/cfg/trackers/bytetrack.yaml,sha256=QvHmtuwulK4X6j3T5VEqtCm0sbWWBUVmWPcCcM20qe0,688
62
62
  ultralytics/data/__init__.py,sha256=A3i0n-2MnNzSdYqhM8xynBO2HJNKGSXWhPvRyO0_u1I,409
63
63
  ultralytics/data/annotator.py,sha256=evXQzARVerc0hb9ol-n_GrrHf-dlXO4lCMMWEZoJ2UM,2117
64
- ultralytics/data/augment.py,sha256=fKqaWKk-EEy-imtMD8fIzmPvH4gt4X7oEGDBWU5ocpQ,52177
65
- ultralytics/data/base.py,sha256=_rbKt666SKVUqQtoMyzmYMCEE4rDNryPM_uweRqE4hA,13363
64
+ ultralytics/data/augment.py,sha256=b1Tn6AIYn_k4XmnAfFlddjv6A8EgO35-lBXM8aLErTE,52173
65
+ ultralytics/data/base.py,sha256=AM3JUQKLyz5njw53o043-qb3aOUzWUvZCXBaE32joOs,13432
66
66
  ultralytics/data/build.py,sha256=ktZEi8RJ93kYdLWBlX7R4Hx1M2XrpHl833CdC6Hav9I,6406
67
67
  ultralytics/data/converter.py,sha256=DJ5aSk7w-RBKqrrABUoOahP_Lgccn7ujJSmVufOkBps,16503
68
- ultralytics/data/dataset.py,sha256=0d0Q8ORYkDOQyaemsJAq_jvZckK_QLpky_K52KIkrCo,17695
68
+ ultralytics/data/dataset.py,sha256=S8o__7T2zO5DIoQPXUq9Fv1wC6qdHscRcnuRv4rz0ms,17830
69
69
  ultralytics/data/loaders.py,sha256=zrfxXQ5CMFXKTR_FUPk3oKHwXruKmoXfuJq4B0vcSyA,23045
70
70
  ultralytics/data/split_dota.py,sha256=1q2FZC0SE4deRpXUSbKTbUAjX9VeejUIFM2DBLF8Cco,9961
71
71
  ultralytics/data/utils.py,sha256=5R-GRSvyyrZ2yOnTZ4utuek3NSHYAsjW_4aURgMkeG8,29782
@@ -75,7 +75,7 @@ ultralytics/data/explorer/utils.py,sha256=a6ugY8rKpFM8dIRcUwRyjRkRJ-zXEwe-NiJr6C
75
75
  ultralytics/data/explorer/gui/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
76
76
  ultralytics/data/explorer/gui/dash.py,sha256=a2s8oJKI8kqnWEcIyqCCzvIyvM_uZmfMaxrOdwmiq7k,10044
77
77
  ultralytics/engine/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
78
- ultralytics/engine/exporter.py,sha256=l7CJdjLDPbAhAXPO7VLHQ9J0DZDxB1b-EYF_wfsbPXo,53904
78
+ ultralytics/engine/exporter.py,sha256=-soZ5dbMnxFNP24lbm3XZ6Gr8rB8JlDZLwYRfEgthwA,53790
79
79
  ultralytics/engine/model.py,sha256=HRZBqIWeMVugHe9-iXHYWVK0HUgb3Hf4xmGDszenKsU,39463
80
80
  ultralytics/engine/predictor.py,sha256=wQRKdWGDTP5A6CS0gTC6U3RPDMhP3QkEzWSPm6eqCkU,17022
81
81
  ultralytics/engine/results.py,sha256=D4wZ9OsmBrEQWCkfOeUn_oagXLqu3SxRZYlpYkDDLH8,30667
@@ -139,7 +139,7 @@ ultralytics/models/yolo/segment/predict.py,sha256=xtA0ZZyuh9WVpX7zZFdAeCkWnxhQ30
139
139
  ultralytics/models/yolo/segment/train.py,sha256=aOQpDIptZfKSl9mFa6B-3W3QccMRlmBINBkI9K8-3sQ,2298
140
140
  ultralytics/models/yolo/segment/val.py,sha256=njiF6RWddS-HOWxVvlk5PXRw6UOgEt_HEOZVPF7rruQ,11745
141
141
  ultralytics/nn/__init__.py,sha256=4BPLHY89xEM_al5uK0aOmFgiML6CMGEZbezxOvTjOEs,587
142
- ultralytics/nn/autobackend.py,sha256=gMJhT-_mwyGc5ClgmixW56hKwsW6AQUCjLBYfxzFqNU,28684
142
+ ultralytics/nn/autobackend.py,sha256=veArcvRc6pu4MWarMaRnSdn-Gp1shbcSg3Z8NuuqRjg,28719
143
143
  ultralytics/nn/tasks.py,sha256=k6cl1H1hWtQXLxO_s5D6fa_DYyFzIekAMigh3lD36_A,42894
144
144
  ultralytics/nn/modules/__init__.py,sha256=Ga3MDpwX6DeI7VSH8joti5uleP4mgkQGolbe8RLZ2T8,2326
145
145
  ultralytics/nn/modules/block.py,sha256=KTv0HG4mTqnwVxfnu4aKBcGpS5c_gLP-wlz3iAIfIrk,25075
@@ -159,7 +159,7 @@ ultralytics/trackers/bot_sort.py,sha256=39AvhYVbT7izF3--rX_e6Lhgb5czTA23gw6AgnNc
159
159
  ultralytics/trackers/byte_tracker.py,sha256=z6z6jrhj8WeAP2azWZkhMUZET6g_8XMkMfdNpJg7jus,18871
160
160
  ultralytics/trackers/track.py,sha256=ayktOpi7SmaONsWqYXebrLQlVgDGuC9GNhmCBsDnLtI,3462
161
161
  ultralytics/trackers/utils/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
162
- ultralytics/trackers/utils/gmc.py,sha256=mXRqtlue1nmQU92TOKNH40R6lYFdUrKCYIbiPH6FIu0,13658
162
+ ultralytics/trackers/utils/gmc.py,sha256=fNn1U-981W4Bm6JNo7ak2URJ5OtIcLDXbCplEx4Fr4A,13688
163
163
  ultralytics/trackers/utils/kalman_filter.py,sha256=JN1sAcfJZy8fTZxc8w3jUJnGQDKtgAL__p4nTR6RM2I,15168
164
164
  ultralytics/trackers/utils/matching.py,sha256=c_pthBfu9sWeMVYe-dSecdWcQxUey-mQT2yMVsFH3VQ,5404
165
165
  ultralytics/utils/__init__.py,sha256=OypNCPSubkIQQQbLn6GNBbyi63MNmzpPar5nJ-VvfKg,37539
@@ -179,7 +179,7 @@ ultralytics/utils/plotting.py,sha256=YVJvEDozm1vm_Yf39jLPQ24Qst_f_lzEm-NeDjMElfQ
179
179
  ultralytics/utils/tal.py,sha256=xuIyryUjaaYHkHPG9GvBwh1xxN2Hq4y3hXOtuERehwY,16017
180
180
  ultralytics/utils/torch_utils.py,sha256=0Uuv7xERiwZWBwD89L3MzGaqNAlxoW27bGLS5ymqVME,25237
181
181
  ultralytics/utils/triton.py,sha256=gg1finxno_tY2Ge9PMhmu7PI9wvoFZoiicdT4Bhqv3w,3936
182
- ultralytics/utils/tuner.py,sha256=bQE80f4p6PKb0iuSu4rSrXkS6LDGGUvGbyKB52nyVIA,6185
182
+ ultralytics/utils/tuner.py,sha256=JhvBp6haKA6eqpNPpGJzzjjCmPxBx5phk9kHmt_jppw,6171
183
183
  ultralytics/utils/callbacks/__init__.py,sha256=YrWqC3BVVaTLob4iCPR6I36mUxIUOpPJW7B_LjT78Qw,214
184
184
  ultralytics/utils/callbacks/base.py,sha256=sOe3JvyBFmRwVZ8_Q03u7JwTeOOm9CI4s9-UEhnG0xA,5777
185
185
  ultralytics/utils/callbacks/clearml.py,sha256=K7bDf5tS8xL4KeFMkoVDL2kKkil3f4qoKy8KfZkD854,5897
@@ -188,12 +188,12 @@ ultralytics/utils/callbacks/dvc.py,sha256=WIClMsuvhiiyrwRv5BsZLxjsxYNJ3Y8Vq7zN0B
188
188
  ultralytics/utils/callbacks/hub.py,sha256=2xebyUL92j3OZwMmL80kdvHrMizqaaqXBe5oSXJRKdA,3621
189
189
  ultralytics/utils/callbacks/mlflow.py,sha256=G0WgpoTCeubKSY0Zp4I8h5PbnajAojU83e84bQFoMDI,5335
190
190
  ultralytics/utils/callbacks/neptune.py,sha256=5Z3ua5YBTUS56FH8VQKQG1aaIo9fH8GEyzC5q7p4ipQ,3756
191
- ultralytics/utils/callbacks/raytune.py,sha256=6OgGNuC35F29lw8Dl_d0lue4-iBR6dqrBVQnIRQDx4E,632
191
+ ultralytics/utils/callbacks/raytune.py,sha256=ODVYzy-CoM4Uge0zjkh3Hnh9nF2M0vhDrSenXnvcizw,705
192
192
  ultralytics/utils/callbacks/tensorboard.py,sha256=hRmWjbqdA4RNaLuSZznuDcpOBW-_-_Ga0u-B8UU-7ZI,4134
193
193
  ultralytics/utils/callbacks/wb.py,sha256=4QI81nHdzgwhXHlmTiRxLqunvkKakLXYUhHTUY1ZeHA,6635
194
- ultralytics-8.1.37.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
195
- ultralytics-8.1.37.dist-info/METADATA,sha256=hO-eP7ouOi5x8EivD0aq2ROQtIoDFZfhuzeEoSEstrs,40330
196
- ultralytics-8.1.37.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
197
- ultralytics-8.1.37.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
198
- ultralytics-8.1.37.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
199
- ultralytics-8.1.37.dist-info/RECORD,,
194
+ ultralytics-8.1.38.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
195
+ ultralytics-8.1.38.dist-info/METADATA,sha256=82sRxGKVWBIiNlzR7ilmIIX27SzCCh6sYGUGbwMejOQ,40330
196
+ ultralytics-8.1.38.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
197
+ ultralytics-8.1.38.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
198
+ ultralytics-8.1.38.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
199
+ ultralytics-8.1.38.dist-info/RECORD,,