ultralytics 8.0.217__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.217/ultralytics.egg-info → ultralytics-8.0.219}/PKG-INFO +1 -1
- {ultralytics-8.0.217 → ultralytics-8.0.219}/tests/test_python.py +4 -3
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/__init__.py +1 -1
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/cfg/__init__.py +5 -2
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/cfg/default.yaml +13 -10
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/data/loaders.py +7 -2
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/engine/predictor.py +15 -5
- {ultralytics-8.0.217 → ultralytics-8.0.219/ultralytics.egg-info}/PKG-INFO +1 -1
- {ultralytics-8.0.217 → ultralytics-8.0.219}/CONTRIBUTING.md +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/LICENSE +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/MANIFEST.in +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/README.md +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/README.zh-CN.md +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/requirements.txt +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/setup.cfg +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/setup.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/tests/conftest.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/tests/test_cli.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/tests/test_cuda.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/tests/test_engine.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/tests/test_integrations.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/assets/bus.jpg +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/assets/zidane.jpg +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/cfg/datasets/DOTAv2.yaml +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/cfg/datasets/VOC.yaml +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/cfg/datasets/coco.yaml +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/cfg/datasets/coco128.yaml +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/cfg/datasets/coco8.yaml +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/cfg/datasets/xView.yaml +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/cfg/trackers/botsort.yaml +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/data/__init__.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/data/annotator.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/data/augment.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/data/base.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/data/build.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/data/converter.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/data/dataset.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/data/utils.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/engine/__init__.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/engine/exporter.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/engine/model.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/engine/results.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/engine/trainer.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/engine/tuner.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/engine/validator.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/hub/__init__.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/hub/auth.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/hub/session.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/hub/utils.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/__init__.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/fastsam/__init__.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/fastsam/model.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/fastsam/predict.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/fastsam/prompt.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/fastsam/utils.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/fastsam/val.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/nas/__init__.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/nas/model.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/nas/predict.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/nas/val.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/rtdetr/__init__.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/rtdetr/model.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/rtdetr/predict.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/rtdetr/train.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/rtdetr/val.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/sam/__init__.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/sam/amg.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/sam/build.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/sam/model.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/sam/modules/__init__.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/sam/modules/decoders.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/sam/modules/encoders.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/sam/modules/sam.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/sam/modules/transformer.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/sam/predict.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/utils/__init__.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/utils/loss.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/utils/ops.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/yolo/__init__.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/yolo/classify/__init__.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/yolo/classify/predict.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/yolo/classify/train.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/yolo/classify/val.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/yolo/detect/__init__.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/yolo/detect/predict.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/yolo/detect/train.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/yolo/detect/val.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/yolo/model.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/yolo/pose/__init__.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/yolo/pose/predict.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/yolo/pose/train.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/yolo/pose/val.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/yolo/segment/__init__.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/yolo/segment/predict.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/yolo/segment/train.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/models/yolo/segment/val.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/nn/__init__.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/nn/autobackend.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/nn/modules/__init__.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/nn/modules/block.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/nn/modules/conv.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/nn/modules/head.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/nn/modules/transformer.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/nn/modules/utils.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/nn/tasks.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/trackers/__init__.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/trackers/basetrack.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/trackers/bot_sort.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/trackers/byte_tracker.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/trackers/track.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/trackers/utils/__init__.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/trackers/utils/gmc.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/trackers/utils/kalman_filter.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/trackers/utils/matching.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/utils/__init__.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/utils/autobatch.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/utils/benchmarks.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/utils/callbacks/__init__.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/utils/callbacks/base.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/utils/callbacks/clearml.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/utils/callbacks/comet.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/utils/callbacks/dvc.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/utils/callbacks/hub.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/utils/callbacks/mlflow.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/utils/callbacks/neptune.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/utils/callbacks/raytune.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/utils/callbacks/tensorboard.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/utils/callbacks/wb.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/utils/checks.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/utils/dist.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/utils/downloads.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/utils/errors.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/utils/files.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/utils/instance.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/utils/loss.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/utils/metrics.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/utils/ops.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/utils/patches.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/utils/plotting.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/utils/tal.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/utils/torch_utils.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/utils/triton.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics/utils/tuner.py +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics.egg-info/SOURCES.txt +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics.egg-info/dependency_links.txt +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics.egg-info/entry_points.txt +0 -0
- {ultralytics-8.0.217 → ultralytics-8.0.219}/ultralytics.egg-info/requires.txt +0 -0
- {ultralytics-8.0.217 → 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
|
-
'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):
|
|
@@ -164,6 +164,9 @@ def _handle_deprecation(custom):
|
|
|
164
164
|
"""Hardcoded function to handle deprecated config keys."""
|
|
165
165
|
|
|
166
166
|
for key in custom.copy().keys():
|
|
167
|
+
if key == 'boxes':
|
|
168
|
+
deprecation_warn(key, 'show_boxes')
|
|
169
|
+
custom['show_boxes'] = custom.pop('boxes')
|
|
167
170
|
if key == 'hide_labels':
|
|
168
171
|
deprecation_warn(key, 'show_labels')
|
|
169
172
|
custom['show_labels'] = custom.pop('hide_labels') == 'False'
|
|
@@ -49,25 +49,28 @@ iou: 0.7 # (float) intersection over union (IoU) threshold for NMS
|
|
|
49
49
|
max_det: 300 # (int) maximum number of detections per image
|
|
50
50
|
half: False # (bool) use half precision (FP16)
|
|
51
51
|
dnn: False # (bool) use OpenCV DNN for ONNX inference
|
|
52
|
-
plots: True # (bool) save plots during train/val
|
|
52
|
+
plots: True # (bool) save plots and images during train/val
|
|
53
53
|
|
|
54
|
-
#
|
|
54
|
+
# Predict settings -----------------------------------------------------------------------------------------------------
|
|
55
55
|
source: # (str, optional) source directory for images or videos
|
|
56
|
-
show: False # (bool) show results if possible
|
|
57
|
-
save_txt: False # (bool) save results as .txt file
|
|
58
|
-
save_conf: False # (bool) save results with confidence scores
|
|
59
|
-
save_crop: False # (bool) save cropped images with results
|
|
60
|
-
show_labels: True # (bool) show object labels in plots
|
|
61
|
-
show_conf: True # (bool) show object confidence scores in plots
|
|
62
56
|
vid_stride: 1 # (int) video frame-rate stride
|
|
63
57
|
stream_buffer: False # (bool) buffer all streaming frames (True) or return the most recent frame (False)
|
|
64
|
-
line_width: # (int, optional) line width of the bounding boxes, auto if missing
|
|
65
58
|
visualize: False # (bool) visualize model features
|
|
66
59
|
augment: False # (bool) apply image augmentation to prediction sources
|
|
67
60
|
agnostic_nms: False # (bool) class-agnostic NMS
|
|
68
61
|
classes: # (int | list[int], optional) filter results by class, i.e. classes=0, or classes=[0,2,3]
|
|
69
62
|
retina_masks: False # (bool) use high-resolution segmentation masks
|
|
70
|
-
|
|
63
|
+
|
|
64
|
+
# Visualize settings ---------------------------------------------------------------------------------------------------
|
|
65
|
+
show: False # (bool) show predicted images and videos if environment allows
|
|
66
|
+
save_frames: False # (bool) save predicted individual video frames
|
|
67
|
+
save_txt: False # (bool) save results as .txt file
|
|
68
|
+
save_conf: False # (bool) save results with confidence scores
|
|
69
|
+
save_crop: False # (bool) save cropped images with results
|
|
70
|
+
show_labels: True # (bool) show prediction labels, i.e. 'person'
|
|
71
|
+
show_conf: True # (bool) show prediction confidence, i.e. '0.99'
|
|
72
|
+
show_boxes: True # (bool) show prediction boxes
|
|
73
|
+
line_width: # (int, optional) line width of the bounding boxes. Scaled to image size if None.
|
|
71
74
|
|
|
72
75
|
# Export settings ------------------------------------------------------------------------------------------------------
|
|
73
76
|
format: torchscript # (str) format to export to, choices at https://docs.ultralytics.com/modes/export/#export-formats
|
|
@@ -67,11 +67,16 @@ class LoadStreams:
|
|
|
67
67
|
self.mode = 'stream'
|
|
68
68
|
self.imgsz = imgsz
|
|
69
69
|
self.vid_stride = vid_stride # video frame-rate stride
|
|
70
|
+
|
|
70
71
|
sources = Path(sources).read_text().rsplit() if os.path.isfile(sources) else [sources]
|
|
71
72
|
n = len(sources)
|
|
72
|
-
self.
|
|
73
|
-
self.
|
|
73
|
+
self.fps = [0] * n # frames per second
|
|
74
|
+
self.frames = [0] * n
|
|
75
|
+
self.threads = [None] * n
|
|
74
76
|
self.caps = [None] * n # video capture objects
|
|
77
|
+
self.imgs = [[] for _ in range(n)] # images
|
|
78
|
+
self.shape = [[] for _ in range(n)] # image shapes
|
|
79
|
+
self.sources = [ops.clean_str(x) for x in sources] # clean source names for later
|
|
75
80
|
for i, s in enumerate(sources): # index, source
|
|
76
81
|
# Start thread to read frames from video stream
|
|
77
82
|
st = f'{i + 1}/{n}: {s}... '
|
|
@@ -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
|
|
@@ -170,7 +170,7 @@ class BasePredictor:
|
|
|
170
170
|
if self.args.save or self.args.show: # Add bbox to image
|
|
171
171
|
plot_args = {
|
|
172
172
|
'line_width': self.args.line_width,
|
|
173
|
-
'boxes': self.args.
|
|
173
|
+
'boxes': self.args.show_boxes,
|
|
174
174
|
'conf': self.args.show_conf,
|
|
175
175
|
'labels': self.args.show_labels}
|
|
176
176
|
if not self.args.retina_masks:
|
|
@@ -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
|