ultralytics 8.0.218__py3-none-any.whl → 8.0.219__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.0.218'
3
+ __version__ = '8.0.219'
4
4
 
5
5
  from ultralytics.models import RTDETR, SAM, YOLO
6
6
  from ultralytics.models.fastsam import FastSAM
@@ -71,8 +71,8 @@ CFG_INT_KEYS = ('epochs', 'patience', 'batch', 'workers', 'seed', 'close_mosaic'
71
71
  'line_width', 'workspace', 'nbs', 'save_period')
72
72
  CFG_BOOL_KEYS = ('save', 'exist_ok', 'verbose', 'deterministic', 'single_cls', 'rect', 'cos_lr', 'overlap_mask', 'val',
73
73
  'save_json', 'save_hybrid', 'half', 'dnn', 'plots', 'show', 'save_txt', 'save_conf', 'save_crop',
74
- 'show_labels', 'show_conf', 'visualize', 'augment', 'agnostic_nms', 'retina_masks', 'show_boxes',
75
- 'keras', 'optimize', 'int8', 'dynamic', 'simplify', 'nms', 'profile')
74
+ 'save_frames', 'show_labels', 'show_conf', 'visualize', 'augment', 'agnostic_nms', 'retina_masks',
75
+ 'show_boxes', 'keras', 'optimize', 'int8', 'dynamic', 'simplify', 'nms', 'profile')
76
76
 
77
77
 
78
78
  def cfg2dict(cfg):
@@ -63,6 +63,7 @@ retina_masks: False # (bool) use high-resolution segmentation masks
63
63
 
64
64
  # Visualize settings ---------------------------------------------------------------------------------------------------
65
65
  show: False # (bool) show predicted images and videos if environment allows
66
+ save_frames: False # (bool) save predicted individual video frames
66
67
  save_txt: False # (bool) save results as .txt file
67
68
  save_conf: False # (bool) save results with confidence scores
68
69
  save_crop: False # (bool) save cropped images with results
@@ -98,7 +98,7 @@ class BasePredictor:
98
98
  self.imgsz = None
99
99
  self.device = None
100
100
  self.dataset = None
101
- self.vid_path, self.vid_writer = None, None
101
+ self.vid_path, self.vid_writer, self.vid_frame = None, None, None
102
102
  self.plotted_img = None
103
103
  self.data_path = None
104
104
  self.source_type = None
@@ -221,7 +221,9 @@ class BasePredictor:
221
221
  len(self.dataset) > 1000 or # images
222
222
  any(getattr(self.dataset, 'video_flag', [False]))): # videos
223
223
  LOGGER.warning(STREAM_WARNING)
224
- self.vid_path, self.vid_writer = [None] * self.dataset.bs, [None] * self.dataset.bs
224
+ self.vid_path = [None] * self.dataset.bs
225
+ self.vid_writer = [None] * self.dataset.bs
226
+ self.vid_frame = [None] * self.dataset.bs
225
227
 
226
228
  @smart_inference_mode()
227
229
  def stream_inference(self, source=None, model=None, *args, **kwargs):
@@ -341,8 +343,11 @@ class BasePredictor:
341
343
  if self.dataset.mode == 'image':
342
344
  cv2.imwrite(save_path, im0)
343
345
  else: # 'video' or 'stream'
346
+ frames_path = f'{save_path.split(".", 1)[0]}_frames/'
344
347
  if self.vid_path[idx] != save_path: # new video
348
+ Path(frames_path).mkdir(parents=True, exist_ok=True)
345
349
  self.vid_path[idx] = save_path
350
+ self.vid_frame[idx] = 0
346
351
  if isinstance(self.vid_writer[idx], cv2.VideoWriter):
347
352
  self.vid_writer[idx].release() # release previous video writer
348
353
  if vid_cap: # video
@@ -352,10 +357,15 @@ class BasePredictor:
352
357
  else: # stream
353
358
  fps, w, h = 30, im0.shape[1], im0.shape[0]
354
359
  suffix, fourcc = ('.mp4', 'avc1') if MACOS else ('.avi', 'WMV2') if WINDOWS else ('.avi', 'MJPG')
355
- save_path = str(Path(save_path).with_suffix(suffix))
356
- self.vid_writer[idx] = cv2.VideoWriter(save_path, cv2.VideoWriter_fourcc(*fourcc), fps, (w, h))
360
+ self.vid_writer[idx] = cv2.VideoWriter(str(Path(save_path).with_suffix(suffix)),
361
+ cv2.VideoWriter_fourcc(*fourcc), fps, (w, h))
362
+ # Write video
357
363
  self.vid_writer[idx].write(im0)
358
364
 
365
+ # Write frame
366
+ cv2.imwrite(f'{frames_path}{self.vid_frame[idx]}.jpg', im0)
367
+ self.vid_frame[idx] += 1
368
+
359
369
  def run_callbacks(self, event: str):
360
370
  """Runs all registered callbacks for a specific event."""
361
371
  for callback in self.callbacks.get(event, []):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ultralytics
3
- Version: 8.0.218
3
+ Version: 8.0.219
4
4
  Summary: Ultralytics YOLOv8 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
5
5
  Home-page: https://github.com/ultralytics/ultralytics
6
6
  Author: Ultralytics
@@ -1,8 +1,8 @@
1
- ultralytics/__init__.py,sha256=T7WJujVDUQmNl-94yXseaNyPdVPxNHb8CwhLk1G-OvY,463
1
+ ultralytics/__init__.py,sha256=8GGYCeTwn8H8VmbXCcAVYuSW6P8-LteQG8dTLhvhlHw,463
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=Tr_rtLPGL1684Ji_42Yy-W91wPLuwSwIQd8phGJlScw,19816
5
- ultralytics/cfg/default.yaml,sha256=H0ysM9H3S5nudcpl93gr5jn6SaP3hLpXC8Md4IXZ4Bw,7584
4
+ ultralytics/cfg/__init__.py,sha256=WNxAAv7dhYR_HGFg4hlTUqZHbWDvAc--nj6niTB-wVM,19831
5
+ ultralytics/cfg/default.yaml,sha256=CdgfcU2VAFjJXuCUrghQcupOlgqZQ08vSuTFmNSLY8A,7652
6
6
  ultralytics/cfg/datasets/Argoverse.yaml,sha256=TJhOiAm1QOsQnDkg1eEGYlaylgkvKLzBUdQ5gzyi_pY,2856
7
7
  ultralytics/cfg/datasets/DOTAv2.yaml,sha256=SmSpmbz_wRT8HMmPqsHpjep_b-nvckTutoEwVpGaUZM,1149
8
8
  ultralytics/cfg/datasets/GlobalWheat2020.yaml,sha256=Wd9spwO4HV48REvgqDUX-kM5a8rxceFalxkcvWDnJZI,1981
@@ -52,7 +52,7 @@ ultralytics/data/utils.py,sha256=fF9g4ul_1RN7iFZ4o2E0tOS_kL_hkIYaiFLY1lQnH_4,297
52
52
  ultralytics/engine/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
53
53
  ultralytics/engine/exporter.py,sha256=QkQtgp1qeC70WnfyoRs0ONVkA6WL747aH-7f-_bHTc8,50375
54
54
  ultralytics/engine/model.py,sha256=5ZeKRqH49Rl4nfg2AdNxfrw9WtTYiIC3gXfNXrBekSI,19208
55
- ultralytics/engine/predictor.py,sha256=AZNUPbfEZE0Zg2LoJLCSN_GSqBjEDAzLy2kLDl-OtQg,17018
55
+ ultralytics/engine/predictor.py,sha256=-onopcLds5ccQsPAlhD0Btxv8bd2SmRk-auB11IfJoQ,17452
56
56
  ultralytics/engine/results.py,sha256=b98uVX6QHpQjgMxbWiGOwqDBgbfY0AtY1v5DU3-hVBM,23454
57
57
  ultralytics/engine/trainer.py,sha256=9IxGS3K3QE3pGhEd0JWBijIpHj1MSvRI38KtvyfS2Ck,32553
58
58
  ultralytics/engine/tuner.py,sha256=Xizeaw7vSYqN-0eShxvWXkJAPGuasctPP-3SH0NLpEg,11374
@@ -156,9 +156,9 @@ ultralytics/utils/callbacks/neptune.py,sha256=qIN0gJipB1f3Di7bw0Rb28jLYoCzJSWSqF
156
156
  ultralytics/utils/callbacks/raytune.py,sha256=PGZvW_haVq8Cqha3GgvL7iBMAaxfn8_3u_IIdYCNMPo,608
157
157
  ultralytics/utils/callbacks/tensorboard.py,sha256=AL8geYjG2NBBn4U1iHbmwF1rHDsNhVBeAmXo1tSLVgM,2830
158
158
  ultralytics/utils/callbacks/wb.py,sha256=x_j4ZH4Klp0_Ld13f0UezFluUTS5Ovfgk9hcjwqeruU,6762
159
- ultralytics-8.0.218.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
160
- ultralytics-8.0.218.dist-info/METADATA,sha256=4Li6tA1y93FMDGxSKSlGL9E17Xi3BZ_aA0LzuKuzYIM,31618
161
- ultralytics-8.0.218.dist-info/WHEEL,sha256=Xo9-1PvkuimrydujYJAjF7pCkriuXBpUPEjma1nZyJ0,92
162
- ultralytics-8.0.218.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
163
- ultralytics-8.0.218.dist-info/top_level.txt,sha256=iXnUQZuWnkCwh3InMTwthfgww_zJjOjq1Cg9CoWen_0,762
164
- ultralytics-8.0.218.dist-info/RECORD,,
159
+ ultralytics-8.0.219.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
160
+ ultralytics-8.0.219.dist-info/METADATA,sha256=FqxD91L0nwHSe6idSCHW49fzwD3DHPsl76dfZKgBric,31618
161
+ ultralytics-8.0.219.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
162
+ ultralytics-8.0.219.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
163
+ ultralytics-8.0.219.dist-info/top_level.txt,sha256=iXnUQZuWnkCwh3InMTwthfgww_zJjOjq1Cg9CoWen_0,762
164
+ ultralytics-8.0.219.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.41.3)
2
+ Generator: bdist_wheel (0.42.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5