ultralytics 8.0.218__tar.gz → 8.0.219__tar.gz
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-8.0.218/ultralytics.egg-info → ultralytics-8.0.219}/PKG-INFO +1 -1
- {ultralytics-8.0.218 → ultralytics-8.0.219}/tests/test_python.py +4 -3
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/__init__.py +1 -1
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/cfg/__init__.py +2 -2
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/cfg/default.yaml +1 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/engine/predictor.py +14 -4
- {ultralytics-8.0.218 → ultralytics-8.0.219/ultralytics.egg-info}/PKG-INFO +1 -1
- {ultralytics-8.0.218 → ultralytics-8.0.219}/CONTRIBUTING.md +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/LICENSE +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/MANIFEST.in +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/README.md +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/README.zh-CN.md +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/requirements.txt +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/setup.cfg +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/setup.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/tests/conftest.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/tests/test_cli.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/tests/test_cuda.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/tests/test_engine.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/tests/test_integrations.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/assets/bus.jpg +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/assets/zidane.jpg +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/cfg/datasets/DOTAv2.yaml +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/cfg/datasets/VOC.yaml +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/cfg/datasets/coco.yaml +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/cfg/datasets/coco128.yaml +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/cfg/datasets/coco8.yaml +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/cfg/datasets/xView.yaml +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/cfg/trackers/botsort.yaml +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/data/__init__.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/data/annotator.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/data/augment.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/data/base.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/data/build.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/data/converter.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/data/dataset.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/data/loaders.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/data/utils.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/engine/__init__.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/engine/exporter.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/engine/model.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/engine/results.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/engine/trainer.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/engine/tuner.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/engine/validator.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/hub/__init__.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/hub/auth.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/hub/session.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/hub/utils.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/__init__.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/fastsam/__init__.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/fastsam/model.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/fastsam/predict.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/fastsam/prompt.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/fastsam/utils.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/fastsam/val.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/nas/__init__.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/nas/model.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/nas/predict.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/nas/val.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/rtdetr/__init__.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/rtdetr/model.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/rtdetr/predict.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/rtdetr/train.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/rtdetr/val.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/sam/__init__.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/sam/amg.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/sam/build.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/sam/model.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/sam/modules/__init__.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/sam/modules/decoders.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/sam/modules/encoders.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/sam/modules/sam.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/sam/modules/transformer.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/sam/predict.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/utils/__init__.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/utils/loss.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/utils/ops.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/yolo/__init__.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/yolo/classify/__init__.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/yolo/classify/predict.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/yolo/classify/train.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/yolo/classify/val.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/yolo/detect/__init__.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/yolo/detect/predict.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/yolo/detect/train.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/yolo/detect/val.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/yolo/model.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/yolo/pose/__init__.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/yolo/pose/predict.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/yolo/pose/train.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/yolo/pose/val.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/yolo/segment/__init__.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/yolo/segment/predict.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/yolo/segment/train.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/models/yolo/segment/val.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/nn/__init__.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/nn/autobackend.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/nn/modules/__init__.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/nn/modules/block.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/nn/modules/conv.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/nn/modules/head.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/nn/modules/transformer.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/nn/modules/utils.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/nn/tasks.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/trackers/__init__.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/trackers/basetrack.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/trackers/bot_sort.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/trackers/byte_tracker.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/trackers/track.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/trackers/utils/__init__.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/trackers/utils/gmc.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/trackers/utils/kalman_filter.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/trackers/utils/matching.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/utils/__init__.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/utils/autobatch.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/utils/benchmarks.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/utils/callbacks/__init__.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/utils/callbacks/base.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/utils/callbacks/clearml.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/utils/callbacks/comet.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/utils/callbacks/dvc.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/utils/callbacks/hub.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/utils/callbacks/mlflow.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/utils/callbacks/neptune.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/utils/callbacks/raytune.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/utils/callbacks/tensorboard.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/utils/callbacks/wb.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/utils/checks.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/utils/dist.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/utils/downloads.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/utils/errors.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/utils/files.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/utils/instance.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/utils/loss.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/utils/metrics.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/utils/ops.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/utils/patches.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/utils/plotting.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/utils/tal.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/utils/torch_utils.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/utils/triton.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics/utils/tuner.py +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics.egg-info/SOURCES.txt +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics.egg-info/dependency_links.txt +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics.egg-info/entry_points.txt +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics.egg-info/requires.txt +0 -0
- {ultralytics-8.0.218 → ultralytics-8.0.219}/ultralytics.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: ultralytics
|
|
3
|
-
Version: 8.0.
|
|
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
|
|
@@ -154,9 +154,10 @@ def test_track_stream():
|
|
|
154
154
|
"""
|
|
155
155
|
import yaml
|
|
156
156
|
|
|
157
|
+
video_url = 'https://ultralytics.com/assets/decelera_portrait_min.mov'
|
|
157
158
|
model = YOLO(MODEL)
|
|
158
|
-
model.track(
|
|
159
|
-
model.track(
|
|
159
|
+
model.track(video_url, imgsz=160, tracker='bytetrack.yaml')
|
|
160
|
+
model.track(video_url, imgsz=160, tracker='botsort.yaml', save_frames=True) # test frame saving also
|
|
160
161
|
|
|
161
162
|
# Test Global Motion Compensation (GMC) methods
|
|
162
163
|
for gmc in 'orb', 'sift', 'ecc':
|
|
@@ -166,7 +167,7 @@ def test_track_stream():
|
|
|
166
167
|
data['gmc_method'] = gmc
|
|
167
168
|
with open(tracker, 'w', encoding='utf-8') as f:
|
|
168
169
|
yaml.safe_dump(data, f)
|
|
169
|
-
model.track(
|
|
170
|
+
model.track(video_url, imgsz=160, tracker=tracker)
|
|
170
171
|
|
|
171
172
|
|
|
172
173
|
def test_val():
|
|
@@ -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',
|
|
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
|
|
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
|
-
|
|
356
|
-
|
|
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.
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|