ultralytics 8.3.82__py3-none-any.whl → 8.3.84__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.
ultralytics/__init__.py CHANGED
@@ -1,6 +1,6 @@
1
1
  # Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
2
2
 
3
- __version__ = "8.3.82"
3
+ __version__ = "8.3.84"
4
4
 
5
5
  import os
6
6
 
@@ -511,7 +511,7 @@ def merge_equals_args(args: List[str]) -> List[str]:
511
511
 
512
512
  Examples:
513
513
  >>> args = ["arg1", "=", "value", "arg2=", "value2", "arg3", "=value3", "imgsz=[3,", "640,", "640]"]
514
- >>> merge_and_join_args(args)
514
+ >>> merge_equals_args(args)
515
515
  ['arg1=value', 'arg2=value2', 'arg3=value3', 'imgsz=[3,640,640]']
516
516
  """
517
517
  new_args = []
@@ -1368,20 +1368,13 @@ class RandomHSV:
1368
1368
  img = labels["img"]
1369
1369
  dtype = img.dtype # uint8
1370
1370
 
1371
- # Original implementation (bug) from ultralytics<=8.3.78
1372
- # r = np.random.uniform(-1, 1, 3) * [self.hgain, self.sgain, self.vgain] + 1 # random gains
1373
- # x = np.arange(0, 256, dtype=r.dtype)
1374
- # lut_hue = ((x * r[0]) % 180).astype(dtype)
1375
- # lut_sat = np.clip(x * r[1], 0, 255).astype(dtype)
1376
- # lut_val = np.clip(x * r[2], 0, 255).astype(dtype)
1377
-
1378
- # Fixed implementation in https://github.com/ultralytics/ultralytics/pull/19311
1379
- r = np.random.uniform(-1, 1, 3) * (self.hgain, self.sgain, self.vgain) * (180, 255, 255) # random gains
1371
+ r = np.random.uniform(-1, 1, 3) * [self.hgain, self.sgain, self.vgain] # random gains
1380
1372
  x = np.arange(0, 256, dtype=r.dtype)
1381
- lut_hue = ((x + r[0]) % 180).astype(dtype)
1382
- lut_sat = np.clip(x + r[1], 0, 255).astype(dtype)
1383
- lut_val = np.clip(x + r[2], 0, 255).astype(dtype)
1384
- lut_sat[0] = 0 # prevent pure white changing color
1373
+ # lut_hue = ((x * (r[0] + 1)) % 180).astype(dtype) # original hue implementation from ultralytics<=8.3.78
1374
+ lut_hue = ((x + r[0] * 180) % 180).astype(dtype)
1375
+ lut_sat = np.clip(x * (r[1] + 1), 0, 255).astype(dtype)
1376
+ lut_val = np.clip(x * (r[2] + 1), 0, 255).astype(dtype)
1377
+ lut_sat[0] = 0 # prevent pure white changing color, introduced in 8.3.79
1385
1378
 
1386
1379
  hue, sat, val = cv2.split(cv2.cvtColor(img, cv2.COLOR_BGR2HSV))
1387
1380
  im_hsv = cv2.merge((cv2.LUT(hue, lut_hue), cv2.LUT(sat, lut_sat), cv2.LUT(val, lut_val)))
@@ -41,7 +41,7 @@ class DetectionValidator(BaseValidator):
41
41
  self.iouv = torch.linspace(0.5, 0.95, 10) # IoU vector for mAP@0.5:0.95
42
42
  self.niou = self.iouv.numel()
43
43
  self.lb = [] # for autolabelling
44
- if self.args.save_hybrid:
44
+ if self.args.save_hybrid and self.args.task == "detect":
45
45
  LOGGER.warning(
46
46
  "WARNING ⚠️ 'save_hybrid=True' will append ground truth to predictions for autolabelling.\n"
47
47
  "WARNING ⚠️ 'save_hybrid=True' will cause incorrect mAP.\n"
@@ -54,7 +54,7 @@ class DetectionValidator(BaseValidator):
54
54
  for k in ["batch_idx", "cls", "bboxes"]:
55
55
  batch[k] = batch[k].to(self.device)
56
56
 
57
- if self.args.save_hybrid:
57
+ if self.args.save_hybrid and self.args.task == "detect":
58
58
  height, width = batch["img"].shape[2:]
59
59
  nb = len(batch["img"])
60
60
  bboxes = batch["bboxes"] * torch.tensor((width, height, width, height), device=self.device)
@@ -71,4 +71,7 @@ class SegmentationPredictor(DetectionPredictor):
71
71
  else:
72
72
  masks = ops.process_mask(proto, pred[:, 6:], pred[:, :4], img.shape[2:], upsample=True) # HWC
73
73
  pred[:, :4] = ops.scale_boxes(img.shape[2:], pred[:, :4], orig_img.shape)
74
+ if masks is not None:
75
+ keep = masks.sum((-2, -1)) > 0 # only keep preds with masks
76
+ pred, masks = pred[keep], masks[keep]
74
77
  return Results(orig_img, path=img_path, names=self.model.names, boxes=pred[:, :6], masks=masks)
@@ -31,7 +31,8 @@ class Colors:
31
31
 
32
32
  Examples:
33
33
  >>> from ultralytics.utils.plotting import Colors
34
- >>> color = Colors(5, True) # ff6fdd or (255, 111, 221)
34
+ >>> colors = Colors()
35
+ >>> colors(5, True) # ff6fdd or (255, 111, 221)
35
36
 
36
37
  ## Ultralytics Color Palette
37
38
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: ultralytics
3
- Version: 8.3.82
3
+ Version: 8.3.84
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,10 +7,10 @@ tests/test_exports.py,sha256=dpUT_FXFXzFoItfZwbxkPFXgEfaVqyfYwkIQW4teL38,9223
7
7
  tests/test_integrations.py,sha256=p3DMnnPMKsV0Qm82JVJUIY1UZ67xRgF9E8AaL76TEHE,6154
8
8
  tests/test_python.py,sha256=tW-EFJC2rjl_DvAa8khXGWYdypseQjrLjGHhe2p9r9A,23238
9
9
  tests/test_solutions.py,sha256=aY0G3vNzXGCENG9FD76MfUp7jgzeESPsUvbvQYBUvH0,4205
10
- ultralytics/__init__.py,sha256=9ZaZk2jKSloY4YqUru09PT6Ecak8-j75EF3Rfccn25s,709
10
+ ultralytics/__init__.py,sha256=DUtHLtU1TGk1_7fTkj9noKDgk7EeXCohJSNj-kqDckc,709
11
11
  ultralytics/assets/bus.jpg,sha256=wCAZxJecGR63Od3ZRERe9Aja1Weayrb9Ug751DS_vGM,137419
12
12
  ultralytics/assets/zidane.jpg,sha256=Ftc4aeMmen1O0A3o6GCDO9FlfBslLpTAw0gnetx7bts,50427
13
- ultralytics/cfg/__init__.py,sha256=C5MkWVKf71g5ajkNp1H4DLsbKkkx9iaWCV02tjoL2ds,39795
13
+ ultralytics/cfg/__init__.py,sha256=DOuAJF23oI7bt2862gA8zFGsh9aBMXVO1pwj0JjpR7E,39793
14
14
  ultralytics/cfg/default.yaml,sha256=tHE_VB_tzq5K1BntCCukmFIViwiRv0R-H6ZNucCnYsY,8469
15
15
  ultralytics/cfg/datasets/Argoverse.yaml,sha256=W225bp0LpIKbn8qrApX4W0jGUJc5tPKQNJjVdkInzJo,3163
16
16
  ultralytics/cfg/datasets/DOTAv1.5.yaml,sha256=SHND_CFkojxw5iQD5Mcgju2kCZIl0gW2ajuzv1cqoL0,1224
@@ -98,7 +98,7 @@ ultralytics/cfg/trackers/botsort.yaml,sha256=D9doE5GQUe6HrAFzr7OfQFIGPFk0M_vJ0B_
98
98
  ultralytics/cfg/trackers/bytetrack.yaml,sha256=6u-tiZlk16EqEwkNXaMrza6PAQmWj_ypgv26LGCtPDg,886
99
99
  ultralytics/data/__init__.py,sha256=nAXaL1puCc7z_NjzQNlJnhbVhT9Fla2u7Dsqo7q1dAc,644
100
100
  ultralytics/data/annotator.py,sha256=whx_3sdKGRsECYLKyJMNGQ-d9g-f8020O6kvl5M1c_I,3067
101
- ultralytics/data/augment.py,sha256=O00CKxKkzjn0v5BUktzbVghz7vUEve4LFwviIc9Knwk,121318
101
+ ultralytics/data/augment.py,sha256=scrCrF_NUdB8gfxEqdVDTiSwkKR8FYN6bWZL_BXMKGU,120957
102
102
  ultralytics/data/base.py,sha256=NTNdn-Emgx3Z2vats8i8oEe-9yosPmHd53v1A0xz0EU,15196
103
103
  ultralytics/data/build.py,sha256=gOU5SNABBNxwo5012N--WhjEnLK2ewycXIryMpbHg6U,7685
104
104
  ultralytics/data/converter.py,sha256=M7LvBpdYiDA_YEuef3oCXhGPFTjtyJjSbSwqn-F6d7I,24473
@@ -160,7 +160,7 @@ ultralytics/models/yolo/classify/val.py,sha256=VUYkqGtKnZPig1XE5Qrtqoqm-Y9dDgr5Y
160
160
  ultralytics/models/yolo/detect/__init__.py,sha256=GIRsLYR-kT4JJx7lh4ZZAFGBZj0aebokuU0A7JbjDVA,257
161
161
  ultralytics/models/yolo/detect/predict.py,sha256=_RrKS3h-tRR4uJyTOPSIp4HapxXC-c8Ao9yDeAM835I,2852
162
162
  ultralytics/models/yolo/detect/train.py,sha256=Y2SYjywenBLg8j-r4bC_sWqle1DJGQtDL5O6koeqm9U,6738
163
- ultralytics/models/yolo/detect/val.py,sha256=yxYvkLW8yTCjACRQ9LH7w_fz5Z2IpcVR1r2FYNK2YBA,15231
163
+ ultralytics/models/yolo/detect/val.py,sha256=jGfdp5cLibuE1-WJAHL1Gjw7BeLfDBDShkJcvZt2COU,15293
164
164
  ultralytics/models/yolo/obb/__init__.py,sha256=tQmpG8wVHsajWkZdmD6cjGohJ4ki64iSXQT8JY_dydo,221
165
165
  ultralytics/models/yolo/obb/predict.py,sha256=SUgLzsxg1O77KxIeCj9IlSiqB9SfIwcoRtNZViqPS2E,1880
166
166
  ultralytics/models/yolo/obb/train.py,sha256=7LJ04dYENfjdt1Jet0Cxh0nyIpmgIUtmz425ZEuZSn8,1550
@@ -170,7 +170,7 @@ ultralytics/models/yolo/pose/predict.py,sha256=O-LI_acPh_xoXd7ZcxpxAUbIzfj5FkrwE
170
170
  ultralytics/models/yolo/pose/train.py,sha256=472BgOjvDdNXe9GN68zO1ddRh5Cbmfg5m9_JZyHrTxY,2954
171
171
  ultralytics/models/yolo/pose/val.py,sha256=3-A--EwOOC1ZzXBQPViUPVyItXsDs1NaIrNJe73N9i0,11946
172
172
  ultralytics/models/yolo/segment/__init__.py,sha256=3IThhZ1wlkY9FvmWm9cE-5-ZyE6F1FgzAtQ6jOOFzzw,275
173
- ultralytics/models/yolo/segment/predict.py,sha256=p5bLdex_74bfk7pMr_NLAGISi6YOj8pMmUKF7aZ7lxk,3417
173
+ ultralytics/models/yolo/segment/predict.py,sha256=FgRY5Iuf9VVRGP_bK7e-OKAdULaM06sAcjWntp1qKkQ,3570
174
174
  ultralytics/models/yolo/segment/train.py,sha256=2PGirZ7cvAsK2LxrEKC0HisOqPw6hyUCAPMkYmqQkIY,2326
175
175
  ultralytics/models/yolo/segment/val.py,sha256=PBhlLW4XoCypGwrA3nO_U7BedqLlW4bNHO7ekP4y_kk,13786
176
176
  ultralytics/models/yolo/world/__init__.py,sha256=nlh8I6t8hMGz_vZg8QSlsUW1R-2eKvn9CGUoPPQEGhA,131
@@ -222,7 +222,7 @@ ultralytics/utils/loss.py,sha256=paRY8K7R4pcUGJfApVzZx-m_iFzzMbHm5GgiaixfDuU,341
222
222
  ultralytics/utils/metrics.py,sha256=6VfTtPzPppuX2RfXr84GoI_ABPfHPhXbbMKkH2HvUVc,53672
223
223
  ultralytics/utils/ops.py,sha256=e7HNeufSrOnaHaie8w-QHNnyaClcHuiGZvr3CXRABsU,34621
224
224
  ultralytics/utils/patches.py,sha256=ARR89dP4YKq7Dd3g2eU-ukbnc2lo3BELukL_1c_d854,3298
225
- ultralytics/utils/plotting.py,sha256=Q-Usm14v8SG-6wya8EKr0WlpWqtZzQy9nlUzxjES9Rc,64089
225
+ ultralytics/utils/plotting.py,sha256=ij0gy2Bx87gfwecwRsQ8FA6w751sVBIdx5nxdPykf0M,64111
226
226
  ultralytics/utils/tal.py,sha256=DO-c006HEI62pcrNRpmt4lpqJPC5yu3veRDOvUuExno,18498
227
227
  ultralytics/utils/torch_utils.py,sha256=h1aWTJ71NX5Q_L5ZAj-4Yljht5S_6YEhE2XUm2Apt2M,34039
228
228
  ultralytics/utils/triton.py,sha256=2L1_rZ8xCJEjexRVj75g9YU-u4tQln_DJ5N1Yr_0bSs,4071
@@ -238,9 +238,9 @@ ultralytics/utils/callbacks/neptune.py,sha256=waZ_bRu0-qBKujTLuqonC2gx2DkgBuVnfq
238
238
  ultralytics/utils/callbacks/raytune.py,sha256=A_NVWjyPNf2m6iB-mbW7SMpyqM9QBvpbPa-MCMFMtdk,727
239
239
  ultralytics/utils/callbacks/tensorboard.py,sha256=JHOEVlNQ5dYJPd4Z-EvqbXowuK5uA0p8wPgyyaIUQs0,4194
240
240
  ultralytics/utils/callbacks/wb.py,sha256=ayhT2y62AcSOacnawshATU0rWrlSFQ77mrGgBdRl3W4,7086
241
- ultralytics-8.3.82.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
242
- ultralytics-8.3.82.dist-info/METADATA,sha256=TqRFm9LmzceIdFA5Ggy2DAUx62w7SR2jZ0CpzyyfnbU,35168
243
- ultralytics-8.3.82.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
244
- ultralytics-8.3.82.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
245
- ultralytics-8.3.82.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
246
- ultralytics-8.3.82.dist-info/RECORD,,
241
+ ultralytics-8.3.84.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
242
+ ultralytics-8.3.84.dist-info/METADATA,sha256=3AHQiJ5BJvkb9B9_aD2OLky44cmQ4DzbNPCFI1Qt4Wc,35168
243
+ ultralytics-8.3.84.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
244
+ ultralytics-8.3.84.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
245
+ ultralytics-8.3.84.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
246
+ ultralytics-8.3.84.dist-info/RECORD,,