ultralytics 8.2.7__py3-none-any.whl → 8.2.8__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.7"
3
+ __version__ = "8.2.8"
4
4
 
5
5
  from ultralytics.data.explorer.explorer import Explorer
6
6
  from ultralytics.models import RTDETR, SAM, YOLO, YOLOWorld
@@ -917,7 +917,6 @@ class Albumentations:
917
917
  return labels
918
918
 
919
919
 
920
- # TODO: technically this is not an augmentation, maybe we should put this to another files
921
920
  class Format:
922
921
  """
923
922
  Formats image annotations for object detection, instance segmentation, and pose estimation tasks. The class
ultralytics/data/build.py CHANGED
@@ -20,7 +20,7 @@ from ultralytics.data.loaders import (
20
20
  autocast_list,
21
21
  )
22
22
  from ultralytics.data.utils import IMG_FORMATS, VID_FORMATS
23
- from ultralytics.utils import NUM_THREADS, RANK, colorstr
23
+ from ultralytics.utils import LINUX, NUM_THREADS, RANK, colorstr
24
24
  from ultralytics.utils.checks import check_file
25
25
 
26
26
  from .dataset import GroundingDataset, YOLODataset, YOLOMultiModalDataset
@@ -81,7 +81,8 @@ def seed_worker(worker_id): # noqa
81
81
  worker_seed = torch.initial_seed() % 2**32
82
82
  np.random.seed(worker_seed)
83
83
  random.seed(worker_seed)
84
- os.sched_setaffinity(0, range(NUM_THREADS)) # fix https://github.com/ultralytics/ultralytics/pull/11195
84
+ if LINUX and hasattr(os, "sched_setaffinity"): # unsupported on macOS and Windows
85
+ os.sched_setaffinity(0, range(NUM_THREADS)) # fix https://github.com/ultralytics/ultralytics/pull/11195
85
86
 
86
87
 
87
88
  def build_yolo_dataset(cfg, img_path, batch, data, mode="train", rect=False, stride=32, multi_modal=False):
@@ -329,6 +329,7 @@ class BaseTrainer:
329
329
  base_idx = (self.epochs - self.args.close_mosaic) * nb
330
330
  self.plot_idx.extend([base_idx, base_idx + 1, base_idx + 2])
331
331
  epoch = self.start_epoch
332
+ self.optimizer.zero_grad() # zero any resumed gradients to ensure stability on train start
332
333
  while True:
333
334
  self.epoch = epoch
334
335
  self.run_callbacks("on_train_epoch_start")
@@ -349,7 +350,6 @@ class BaseTrainer:
349
350
  LOGGER.info(self.progress_string())
350
351
  pbar = TQDM(enumerate(self.train_loader), total=nb)
351
352
  self.tloss = None
352
- self.optimizer.zero_grad()
353
353
  for i, batch in pbar:
354
354
  self.run_callbacks("on_train_batch_start")
355
355
  # Warmup
@@ -14,7 +14,7 @@ import tkinter as tk
14
14
 
15
15
  class ParkingPtsSelection:
16
16
  def __init__(self, master):
17
- # Initialize window and widgets.
17
+ """Initializes the UI for selecting parking zone points in a tkinter window."""
18
18
  self.master = master
19
19
  master.title("Ultralytics Parking Zones Points Selector")
20
20
  self.initialize_ui()
@@ -109,6 +109,7 @@ class ParkingPtsSelection:
109
109
  messagebox.showwarning("Warning", "No bounding boxes to remove.")
110
110
 
111
111
  def save_to_json(self):
112
+ """Saves rescaled bounding boxes to 'bounding_boxes.json' based on image-to-canvas size ratio."""
112
113
  canvas_width, canvas_height = self.canvas.winfo_width(), self.canvas.winfo_height()
113
114
  width_scaling_factor = self.img_width / canvas_width
114
115
  height_scaling_factor = self.img_height / canvas_height
@@ -72,8 +72,11 @@ class Bboxes:
72
72
 
73
73
  def areas(self):
74
74
  """Return box areas."""
75
- self.convert("xyxy")
76
- return (self.bboxes[:, 2] - self.bboxes[:, 0]) * (self.bboxes[:, 3] - self.bboxes[:, 1])
75
+ return (
76
+ (self.bboxes[:, 2] - self.bboxes[:, 0]) * (self.bboxes[:, 3] - self.bboxes[:, 1]) # format xyxy
77
+ if self.format == "xyxy"
78
+ else self.bboxes[:, 3] * self.bboxes[:, 2] # format xywh or ltwh
79
+ )
77
80
 
78
81
  # def denormalize(self, w, h):
79
82
  # if not self.normalized:
@@ -340,11 +343,7 @@ class Instances:
340
343
  self.keypoints[..., 1] = self.keypoints[..., 1].clip(0, h)
341
344
 
342
345
  def remove_zero_area_boxes(self):
343
- """
344
- Remove zero-area boxes, i.e. after clipping some boxes may have zero width or height.
345
-
346
- This removes them.
347
- """
346
+ """Remove zero-area boxes, i.e. after clipping some boxes may have zero width or height."""
348
347
  good = self.bbox_areas > 0
349
348
  if not all(good):
350
349
  self._bboxes = self._bboxes[good]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ultralytics
3
- Version: 8.2.7
3
+ Version: 8.2.8
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
@@ -73,7 +73,7 @@ Requires-Dist: tensorflowjs >=3.9.0 ; (python_version <= "3.11") and extra == 'e
73
73
  Provides-Extra: extra
74
74
  Requires-Dist: hub-sdk >=0.0.5 ; extra == 'extra'
75
75
  Requires-Dist: ipython ; extra == 'extra'
76
- Requires-Dist: albumentations >=1.0.3 ; extra == 'extra'
76
+ Requires-Dist: albumentations <=1.4.4,>=1.0.3 ; extra == 'extra'
77
77
  Requires-Dist: pycocotools >=2.0.7 ; extra == 'extra'
78
78
  Provides-Extra: logging
79
79
  Requires-Dist: comet ; extra == 'logging'
@@ -1,4 +1,4 @@
1
- ultralytics/__init__.py,sha256=7Rhmhx0uNSy56-6iosDmmMJM-jQBRfTt9ruZCAW7UjU,632
1
+ ultralytics/__init__.py,sha256=n816rXwWPnPOPJ_vyk16ge6P1BJOJg1x8rBo30fvZ6U,632
2
2
  ultralytics/assets/bus.jpg,sha256=wCAZxJecGR63Od3ZRERe9Aja1Weayrb9Ug751DS_vGM,137419
3
3
  ultralytics/assets/zidane.jpg,sha256=Ftc4aeMmen1O0A3o6GCDO9FlfBslLpTAw0gnetx7bts,50427
4
4
  ultralytics/cfg/__init__.py,sha256=4ZnvY2ULMGofFhjaRIzKQlGC5YVkvWkEAYAhnsKC1Po,21312
@@ -64,9 +64,9 @@ ultralytics/cfg/trackers/botsort.yaml,sha256=YrPmj18p1UU40kJH5NRdL_4S8f7knggkk_q
64
64
  ultralytics/cfg/trackers/bytetrack.yaml,sha256=QvHmtuwulK4X6j3T5VEqtCm0sbWWBUVmWPcCcM20qe0,688
65
65
  ultralytics/data/__init__.py,sha256=VGe-ATG7j35F4A4r8Jmzffjlhve4JAJPgRa5ahKTU18,616
66
66
  ultralytics/data/annotator.py,sha256=evXQzARVerc0hb9ol-n_GrrHf-dlXO4lCMMWEZoJ2UM,2117
67
- ultralytics/data/augment.py,sha256=81BOqY4DzxuNfw6Qg7rjBQTktU4JK2GHolXIhzXnAHg,57741
67
+ ultralytics/data/augment.py,sha256=tPnqJAP85-Ei9BnyJhd4liLjRn_8s-289mNc8adXpdk,57650
68
68
  ultralytics/data/base.py,sha256=9dZcoXtczloWSsbU-sOa9NlJ7lIGoarEUAp2rzP1jMI,13481
69
- ultralytics/data/build.py,sha256=0FQJFxv7IxUt1Q_ghl3JGuXTzbq-nkM_e85T5KFptvE,7388
69
+ ultralytics/data/build.py,sha256=i_akfoF5ZrDCzXNpBeZDPvkLo61LN-GiYWjM7C5dKYA,7486
70
70
  ultralytics/data/converter.py,sha256=NLDiV67RshbKQnMJUiQQF11boVzEqgi2Hz39nKVAI4U,17528
71
71
  ultralytics/data/dataset.py,sha256=NFaXyHRn64TyTEbtSkr7SkqWXK8bEJl6lZ6M1JwO3MY,22201
72
72
  ultralytics/data/loaders.py,sha256=UxNLLV6rwUDog9MSOkHpDn52TO-X2g2P4a5ZwvB7Ii8,23142
@@ -82,7 +82,7 @@ ultralytics/engine/exporter.py,sha256=5dgkElp8YfZXWp6yOXPLVVD650atg59UbWoFtpKgtP
82
82
  ultralytics/engine/model.py,sha256=4zSVSBP8Ex49bJjnOXm7g3Qr_NgbplHPCjdnVfZwfxM,40019
83
83
  ultralytics/engine/predictor.py,sha256=wQRKdWGDTP5A6CS0gTC6U3RPDMhP3QkEzWSPm6eqCkU,17022
84
84
  ultralytics/engine/results.py,sha256=MvrOBrBlRF7kbL-QwysMf9mIDy_lwQBTTYvy1x1FMME,30667
85
- ultralytics/engine/trainer.py,sha256=FK2PkQyUThIU5RYr8Qa38JZDRB3iOl85Sdbi4HrlQ5U,34987
85
+ ultralytics/engine/trainer.py,sha256=GpseAovVKLRgAoqG4bEVtQqemWdDcxrY7gE3vGRU9gs,35048
86
86
  ultralytics/engine/tuner.py,sha256=iZrgMmXSDpfuDu4bdFRflmAsscys2-8W8qAGxSyOVJE,11844
87
87
  ultralytics/engine/validator.py,sha256=Y21Uo8_Zto4qjk_YqQk6k7tyfpq_Qk9cfjeXeyDRxs8,14643
88
88
  ultralytics/hub/__init__.py,sha256=U4j-2QPdwSDlxw6RgFYnnJXOoIzLtwke4TkY2A8q4ws,5068
@@ -158,7 +158,7 @@ ultralytics/solutions/ai_gym.py,sha256=IZHpvmNyEQT_aqMTrA5sIjCsl3_5Zl2WG31HxGT6K
158
158
  ultralytics/solutions/distance_calculation.py,sha256=N1QB5uDG_6sp8jD5uSwp_NTPmyP4UCqJm9G2lNrgpr8,6334
159
159
  ultralytics/solutions/heatmap.py,sha256=LDY8cpmsenkaWgDmaKuOPMyQcPCH4jQeMvgbZlTx2fc,11970
160
160
  ultralytics/solutions/object_counter.py,sha256=nYwUN_9M5azW9zET_hnV7wIY8gDNR4LtUoWo4C2cbXw,11287
161
- ultralytics/solutions/parking_management.py,sha256=7M85ThMtQodv-zIfqCIkJccK-_gpOHz4VYiHHx43NwA,8656
161
+ ultralytics/solutions/parking_management.py,sha256=x7td7B_K600PZASikbRxwvPiv-xbm1quLpJE82Q3DmQ,8809
162
162
  ultralytics/solutions/queue_management.py,sha256=TBQ2dIKYtymBjhdw0Enxa22KHyH3IdXf2C-1Se21siA,6684
163
163
  ultralytics/solutions/speed_estimation.py,sha256=lvaU-F8f3V4KFVKFaNS7isIdYtMSFjh_zF9gl0Mals8,6714
164
164
  ultralytics/trackers/__init__.py,sha256=j72IgH2dZHQArMPK4YwcV5ieIw94fYvlGdQjB9cOQKw,227
@@ -178,7 +178,7 @@ ultralytics/utils/dist.py,sha256=3HeNbY2gp7vYhcvVhsrvTrQXpQmgT8tpmnzApf3eQRA,226
178
178
  ultralytics/utils/downloads.py,sha256=Rx32imHkKyVltEDMiCtCT2N5aA9Cud_0PyIUoTh4ru0,21496
179
179
  ultralytics/utils/errors.py,sha256=GqP_Jgj_n0paxn8OMhn3DTCgoNkB2WjUcUaqs-M6SQk,816
180
180
  ultralytics/utils/files.py,sha256=TVfY0Wi5IsUc4YdsDzC0dAg-jAP5exYvwqB3VmXhDLY,6761
181
- ultralytics/utils/instance.py,sha256=fPClvPPtTk8VeXWiRv90DrFk1j1lTUKdYJtpZKUDDtA,15575
181
+ ultralytics/utils/instance.py,sha256=5daM5nkxBv9hr5QzyII8zmuFj24hHuNtcr4EMCHAtpY,15654
182
182
  ultralytics/utils/loss.py,sha256=ejXnPEIAzNEoNz2UjW0_fcdeUs9Hy-jPzUrJ3FiIIwE,32717
183
183
  ultralytics/utils/metrics.py,sha256=XPD-xP0fchR8KgCuTcihV2-n0EK1cWi3-53BWN_pLuA,53518
184
184
  ultralytics/utils/ops.py,sha256=wZCWx7dm5GJNIJHyZaFJRetGcQ7prdv-anplqq9figQ,33309
@@ -199,9 +199,9 @@ ultralytics/utils/callbacks/neptune.py,sha256=5Z3ua5YBTUS56FH8VQKQG1aaIo9fH8GEyz
199
199
  ultralytics/utils/callbacks/raytune.py,sha256=ODVYzy-CoM4Uge0zjkh3Hnh9nF2M0vhDrSenXnvcizw,705
200
200
  ultralytics/utils/callbacks/tensorboard.py,sha256=Z1veCVcn9THPhdplWuIzwlsW2yF7y-On9IZIk3khM0Y,4135
201
201
  ultralytics/utils/callbacks/wb.py,sha256=woCQVuZzqtM5KnwxIibcfM3sFBYojeMPnv11jrRaIQA,6674
202
- ultralytics-8.2.7.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
203
- ultralytics-8.2.7.dist-info/METADATA,sha256=lBAKCAa8MAMWFFD5KexR6aCHW4rdMvXl5qIo53jJL3A,40693
204
- ultralytics-8.2.7.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
205
- ultralytics-8.2.7.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
206
- ultralytics-8.2.7.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
207
- ultralytics-8.2.7.dist-info/RECORD,,
202
+ ultralytics-8.2.8.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
203
+ ultralytics-8.2.8.dist-info/METADATA,sha256=0_6ZyqamPH8rNnzU4V6g9fCmvyreK9r_QX8OuLfXlTw,40701
204
+ ultralytics-8.2.8.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
205
+ ultralytics-8.2.8.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
206
+ ultralytics-8.2.8.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
207
+ ultralytics-8.2.8.dist-info/RECORD,,