ultralytics 8.0.225__tar.gz → 8.0.227__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.225/ultralytics.egg-info → ultralytics-8.0.227}/PKG-INFO +1 -1
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/__init__.py +1 -1
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/__init__.py +1 -1
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/data/augment.py +36 -1
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/data/utils.py +1 -1
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/engine/exporter.py +3 -1
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/engine/model.py +1 -1
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/engine/tuner.py +11 -3
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/engine/validator.py +1 -1
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/nn/autobackend.py +9 -8
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/solutions/ai_gym.py +5 -1
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/solutions/heatmap.py +5 -2
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/solutions/object_counter.py +5 -2
- {ultralytics-8.0.225 → ultralytics-8.0.227/ultralytics.egg-info}/PKG-INFO +1 -1
- {ultralytics-8.0.225 → ultralytics-8.0.227}/CONTRIBUTING.md +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/LICENSE +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/MANIFEST.in +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/README.md +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/README.zh-CN.md +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/requirements.txt +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/setup.cfg +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/setup.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/tests/conftest.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/tests/test_cli.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/tests/test_cuda.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/tests/test_engine.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/tests/test_integrations.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/tests/test_python.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/assets/bus.jpg +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/assets/zidane.jpg +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/datasets/DOTAv2.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/datasets/VOC.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/datasets/coco.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/datasets/coco128.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/datasets/coco8.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/datasets/xView.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/default.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/trackers/botsort.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/data/__init__.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/data/annotator.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/data/base.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/data/build.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/data/converter.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/data/dataset.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/data/loaders.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/engine/__init__.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/engine/predictor.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/engine/results.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/engine/trainer.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/hub/__init__.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/hub/auth.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/hub/session.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/hub/utils.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/__init__.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/fastsam/__init__.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/fastsam/model.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/fastsam/predict.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/fastsam/prompt.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/fastsam/utils.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/fastsam/val.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/nas/__init__.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/nas/model.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/nas/predict.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/nas/val.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/rtdetr/__init__.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/rtdetr/model.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/rtdetr/predict.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/rtdetr/train.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/rtdetr/val.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/sam/__init__.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/sam/amg.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/sam/build.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/sam/model.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/sam/modules/__init__.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/sam/modules/decoders.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/sam/modules/encoders.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/sam/modules/sam.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/sam/modules/transformer.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/sam/predict.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/utils/__init__.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/utils/loss.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/utils/ops.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/yolo/__init__.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/yolo/classify/__init__.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/yolo/classify/predict.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/yolo/classify/train.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/yolo/classify/val.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/yolo/detect/__init__.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/yolo/detect/predict.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/yolo/detect/train.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/yolo/detect/val.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/yolo/model.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/yolo/pose/__init__.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/yolo/pose/predict.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/yolo/pose/train.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/yolo/pose/val.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/yolo/segment/__init__.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/yolo/segment/predict.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/yolo/segment/train.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/models/yolo/segment/val.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/nn/__init__.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/nn/modules/__init__.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/nn/modules/block.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/nn/modules/conv.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/nn/modules/head.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/nn/modules/transformer.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/nn/modules/utils.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/nn/tasks.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/solutions/__init__.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/trackers/__init__.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/trackers/basetrack.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/trackers/bot_sort.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/trackers/byte_tracker.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/trackers/track.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/trackers/utils/__init__.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/trackers/utils/gmc.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/trackers/utils/kalman_filter.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/trackers/utils/matching.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/utils/__init__.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/utils/autobatch.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/utils/benchmarks.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/utils/callbacks/__init__.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/utils/callbacks/base.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/utils/callbacks/clearml.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/utils/callbacks/comet.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/utils/callbacks/dvc.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/utils/callbacks/hub.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/utils/callbacks/mlflow.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/utils/callbacks/neptune.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/utils/callbacks/raytune.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/utils/callbacks/tensorboard.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/utils/callbacks/wb.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/utils/checks.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/utils/dist.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/utils/downloads.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/utils/errors.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/utils/files.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/utils/instance.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/utils/loss.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/utils/metrics.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/utils/ops.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/utils/patches.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/utils/plotting.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/utils/tal.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/utils/torch_utils.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/utils/triton.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/utils/tuner.py +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics.egg-info/SOURCES.txt +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics.egg-info/dependency_links.txt +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics.egg-info/entry_points.txt +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics.egg-info/requires.txt +0 -0
- {ultralytics-8.0.225 → ultralytics-8.0.227}/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.227
|
|
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
|
|
@@ -437,7 +437,7 @@ def entrypoint(debug=''):
|
|
|
437
437
|
LOGGER.warning(f"WARNING ⚠️ 'source' is missing. Using default 'source={overrides['source']}'.")
|
|
438
438
|
elif mode in ('train', 'val'):
|
|
439
439
|
if 'data' not in overrides and 'resume' not in overrides:
|
|
440
|
-
overrides['data'] = TASK2DATA.get(task or DEFAULT_CFG.task, DEFAULT_CFG.data)
|
|
440
|
+
overrides['data'] = DEFAULT_CFG.data or TASK2DATA.get(task or DEFAULT_CFG.task, DEFAULT_CFG.data)
|
|
441
441
|
LOGGER.warning(f"WARNING ⚠️ 'data' is missing. Using default 'data={overrides['data']}'.")
|
|
442
442
|
elif mode == 'export':
|
|
443
443
|
if 'format' not in overrides:
|
|
@@ -163,7 +163,42 @@ class Mosaic(BaseMixTransform):
|
|
|
163
163
|
"""Apply mixup transformation to the input image and labels."""
|
|
164
164
|
assert labels.get('rect_shape', None) is None, 'rect and mosaic are mutually exclusive.'
|
|
165
165
|
assert len(labels.get('mix_labels', [])), 'There are no other images for mosaic augment.'
|
|
166
|
-
return self._mosaic4(labels) if self.n == 4 else self._mosaic9(
|
|
166
|
+
return self._mosaic3(labels) if self.n == 3 else self._mosaic4(labels) if self.n == 4 else self._mosaic9(
|
|
167
|
+
labels) # This code is modified for mosaic3 method.
|
|
168
|
+
|
|
169
|
+
def _mosaic3(self, labels):
|
|
170
|
+
"""Create a 1x3 image mosaic."""
|
|
171
|
+
mosaic_labels = []
|
|
172
|
+
s = self.imgsz
|
|
173
|
+
for i in range(3):
|
|
174
|
+
labels_patch = labels if i == 0 else labels['mix_labels'][i - 1]
|
|
175
|
+
# Load image
|
|
176
|
+
img = labels_patch['img']
|
|
177
|
+
h, w = labels_patch.pop('resized_shape')
|
|
178
|
+
|
|
179
|
+
# Place img in img3
|
|
180
|
+
if i == 0: # center
|
|
181
|
+
img3 = np.full((s * 3, s * 3, img.shape[2]), 114, dtype=np.uint8) # base image with 3 tiles
|
|
182
|
+
h0, w0 = h, w
|
|
183
|
+
c = s, s, s + w, s + h # xmin, ymin, xmax, ymax (base) coordinates
|
|
184
|
+
elif i == 1: # right
|
|
185
|
+
c = s + w0, s, s + w0 + w, s + h
|
|
186
|
+
elif i == 2: # left
|
|
187
|
+
c = s - w, s + h0 - h, s, s + h0
|
|
188
|
+
|
|
189
|
+
padw, padh = c[:2]
|
|
190
|
+
x1, y1, x2, y2 = (max(x, 0) for x in c) # allocate coords
|
|
191
|
+
|
|
192
|
+
img3[y1:y2, x1:x2] = img[y1 - padh:, x1 - padw:] # img3[ymin:ymax, xmin:xmax]
|
|
193
|
+
# hp, wp = h, w # height, width previous for next iteration
|
|
194
|
+
|
|
195
|
+
# Labels assuming imgsz*2 mosaic size
|
|
196
|
+
labels_patch = self._update_labels(labels_patch, padw + self.border[0], padh + self.border[1])
|
|
197
|
+
mosaic_labels.append(labels_patch)
|
|
198
|
+
final_labels = self._cat_labels(mosaic_labels)
|
|
199
|
+
|
|
200
|
+
final_labels['img'] = img3[-self.border[0]:self.border[0], -self.border[1]:self.border[1]]
|
|
201
|
+
return final_labels
|
|
167
202
|
|
|
168
203
|
def _mosaic4(self, labels):
|
|
169
204
|
"""Create a 2x2 image mosaic."""
|
|
@@ -434,7 +434,7 @@ class HUBDatasetStats:
|
|
|
434
434
|
data = check_cls_dataset(unzip_dir)
|
|
435
435
|
data['path'] = unzip_dir
|
|
436
436
|
else: # detect, segment, pose
|
|
437
|
-
|
|
437
|
+
_, data_dir, yaml_path = self._unzip(Path(path))
|
|
438
438
|
try:
|
|
439
439
|
# Load YAML with checks
|
|
440
440
|
data = yaml_load(yaml_path)
|
|
@@ -64,7 +64,7 @@ import torch
|
|
|
64
64
|
from ultralytics.cfg import get_cfg
|
|
65
65
|
from ultralytics.data.dataset import YOLODataset
|
|
66
66
|
from ultralytics.data.utils import check_det_dataset
|
|
67
|
-
from ultralytics.nn.autobackend import check_class_names
|
|
67
|
+
from ultralytics.nn.autobackend import check_class_names, default_class_names
|
|
68
68
|
from ultralytics.nn.modules import C2f, Detect, RTDETRDecoder
|
|
69
69
|
from ultralytics.nn.tasks import DetectionModel, SegmentationModel
|
|
70
70
|
from ultralytics.utils import (ARM64, DEFAULT_CFG, LINUX, LOGGER, MACOS, ROOT, WINDOWS, __version__, callbacks,
|
|
@@ -172,6 +172,8 @@ class Exporter:
|
|
|
172
172
|
self.device = select_device('cpu' if self.args.device is None else self.args.device)
|
|
173
173
|
|
|
174
174
|
# Checks
|
|
175
|
+
if not hasattr(model, 'names'):
|
|
176
|
+
model.names = default_class_names()
|
|
175
177
|
model.names = check_class_names(model.names)
|
|
176
178
|
if self.args.half and onnx and self.device.type == 'cpu':
|
|
177
179
|
LOGGER.warning('WARNING ⚠️ half=True only compatible with GPU export, i.e. use device=0')
|
|
@@ -325,7 +325,7 @@ class Model(nn.Module):
|
|
|
325
325
|
checks.check_pip_update_available()
|
|
326
326
|
|
|
327
327
|
overrides = yaml_load(checks.check_yaml(kwargs['cfg'])) if kwargs.get('cfg') else self.overrides
|
|
328
|
-
custom = {'data': TASK2DATA[self.task]} # method defaults
|
|
328
|
+
custom = {'data': DEFAULT_CFG_DICT['data'] or TASK2DATA[self.task]} # method defaults
|
|
329
329
|
args = {**overrides, **custom, **kwargs, 'mode': 'train'} # highest priority args on the right
|
|
330
330
|
if args.get('resume'):
|
|
331
331
|
args['resume'] = self.ckpt_path
|
|
@@ -56,6 +56,14 @@ class Tuner:
|
|
|
56
56
|
model = YOLO('yolov8n.pt')
|
|
57
57
|
model.tune(data='coco8.yaml', epochs=10, iterations=300, optimizer='AdamW', plots=False, save=False, val=False)
|
|
58
58
|
```
|
|
59
|
+
|
|
60
|
+
Tune with custom search space.
|
|
61
|
+
```python
|
|
62
|
+
from ultralytics import YOLO
|
|
63
|
+
|
|
64
|
+
model = YOLO('yolov8n.pt')
|
|
65
|
+
model.tune(space={key1: val1, key2: val2}) # custom search space dictionary
|
|
66
|
+
```
|
|
59
67
|
"""
|
|
60
68
|
|
|
61
69
|
def __init__(self, args=DEFAULT_CFG, _callbacks=None):
|
|
@@ -65,10 +73,9 @@ class Tuner:
|
|
|
65
73
|
Args:
|
|
66
74
|
args (dict, optional): Configuration for hyperparameter evolution.
|
|
67
75
|
"""
|
|
68
|
-
self.
|
|
69
|
-
self.space = { # key: (min, max, gain(optional))
|
|
76
|
+
self.space = args.pop('space', None) or { # key: (min, max, gain(optional))
|
|
70
77
|
# 'optimizer': tune.choice(['SGD', 'Adam', 'AdamW', 'NAdam', 'RAdam', 'RMSProp']),
|
|
71
|
-
'lr0': (1e-5, 1e-1),
|
|
78
|
+
'lr0': (1e-5, 1e-1), # initial learning rate (i.e. SGD=1E-2, Adam=1E-3)
|
|
72
79
|
'lrf': (0.0001, 0.1), # final OneCycleLR learning rate (lr0 * lrf)
|
|
73
80
|
'momentum': (0.7, 0.98, 0.3), # SGD momentum/Adam beta1
|
|
74
81
|
'weight_decay': (0.0, 0.001), # optimizer weight decay 5e-4
|
|
@@ -90,6 +97,7 @@ class Tuner:
|
|
|
90
97
|
'mosaic': (0.0, 1.0), # image mixup (probability)
|
|
91
98
|
'mixup': (0.0, 1.0), # image mixup (probability)
|
|
92
99
|
'copy_paste': (0.0, 1.0)} # segment copy-paste (probability)
|
|
100
|
+
self.args = get_cfg(overrides=args)
|
|
93
101
|
self.tune_dir = get_save_dir(self.args, name='tune')
|
|
94
102
|
self.tune_csv = self.tune_dir / 'tune_results.csv'
|
|
95
103
|
self.callbacks = _callbacks or callbacks.get_default_callbacks()
|
|
@@ -135,7 +135,7 @@ class BaseValidator:
|
|
|
135
135
|
self.args.batch = 1 # export.py models default to batch-size 1
|
|
136
136
|
LOGGER.info(f'Forcing batch=1 square inference (1,3,{imgsz},{imgsz}) for non-PyTorch models')
|
|
137
137
|
|
|
138
|
-
if
|
|
138
|
+
if str(self.args.data).split('.')[-1] in ('yaml', 'yml'):
|
|
139
139
|
self.data = check_det_dataset(self.args.data)
|
|
140
140
|
elif self.args.task == 'classify':
|
|
141
141
|
self.data = check_cls_dataset(self.args.data, split=self.args.split)
|
|
@@ -40,6 +40,14 @@ def check_class_names(names):
|
|
|
40
40
|
return names
|
|
41
41
|
|
|
42
42
|
|
|
43
|
+
def default_class_names(data=None):
|
|
44
|
+
"""Applies default class names to an input YAML file or returns numerical class names."""
|
|
45
|
+
if data:
|
|
46
|
+
with contextlib.suppress(Exception):
|
|
47
|
+
return yaml_load(check_yaml(data))['names']
|
|
48
|
+
return {i: f'class{i}' for i in range(999)} # return default if above errors
|
|
49
|
+
|
|
50
|
+
|
|
43
51
|
class AutoBackend(nn.Module):
|
|
44
52
|
"""
|
|
45
53
|
Handles dynamic backend selection for running inference using Ultralytics YOLO models.
|
|
@@ -315,7 +323,7 @@ class AutoBackend(nn.Module):
|
|
|
315
323
|
|
|
316
324
|
# Check names
|
|
317
325
|
if 'names' not in locals(): # names missing
|
|
318
|
-
names =
|
|
326
|
+
names = default_class_names(data)
|
|
319
327
|
names = check_class_names(names)
|
|
320
328
|
|
|
321
329
|
# Disable gradients
|
|
@@ -479,13 +487,6 @@ class AutoBackend(nn.Module):
|
|
|
479
487
|
for _ in range(2 if self.jit else 1):
|
|
480
488
|
self.forward(im) # warmup
|
|
481
489
|
|
|
482
|
-
@staticmethod
|
|
483
|
-
def _apply_default_class_names(data):
|
|
484
|
-
"""Applies default class names to an input YAML file or returns numerical class names."""
|
|
485
|
-
with contextlib.suppress(Exception):
|
|
486
|
-
return yaml_load(check_yaml(data))['names']
|
|
487
|
-
return {i: f'class{i}' for i in range(999)} # return default if above errors
|
|
488
|
-
|
|
489
490
|
@staticmethod
|
|
490
491
|
def _model_type(p='path/to/model.pt'):
|
|
491
492
|
"""
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import cv2
|
|
4
4
|
|
|
5
|
+
from ultralytics.utils.checks import check_imshow
|
|
5
6
|
from ultralytics.utils.plotting import Annotator
|
|
6
7
|
|
|
7
8
|
|
|
@@ -32,6 +33,9 @@ class AIGym:
|
|
|
32
33
|
self.view_img = False
|
|
33
34
|
self.annotator = None
|
|
34
35
|
|
|
36
|
+
# Check if environment support imshow
|
|
37
|
+
self.env_check = check_imshow(warn=True)
|
|
38
|
+
|
|
35
39
|
def set_args(self,
|
|
36
40
|
kpts_to_check,
|
|
37
41
|
line_thickness=2,
|
|
@@ -120,7 +124,7 @@ class AIGym:
|
|
|
120
124
|
|
|
121
125
|
self.annotator.kpts(k, shape=(640, 640), radius=1, kpt_line=True)
|
|
122
126
|
|
|
123
|
-
if self.view_img:
|
|
127
|
+
if self.env_check and self.view_img:
|
|
124
128
|
cv2.imshow('Ultralytics YOLOv8 AI GYM', self.im0)
|
|
125
129
|
if cv2.waitKey(1) & 0xFF == ord('q'):
|
|
126
130
|
return
|
|
@@ -5,7 +5,7 @@ from collections import defaultdict
|
|
|
5
5
|
import cv2
|
|
6
6
|
import numpy as np
|
|
7
7
|
|
|
8
|
-
from ultralytics.utils.checks import check_requirements
|
|
8
|
+
from ultralytics.utils.checks import check_imshow, check_requirements
|
|
9
9
|
from ultralytics.utils.plotting import Annotator
|
|
10
10
|
|
|
11
11
|
check_requirements('shapely>=2.0.0')
|
|
@@ -50,6 +50,9 @@ class Heatmap:
|
|
|
50
50
|
self.count_reg_color = (0, 255, 0)
|
|
51
51
|
self.region_thickness = 5
|
|
52
52
|
|
|
53
|
+
# Check if environment support imshow
|
|
54
|
+
self.env_check = check_imshow(warn=True)
|
|
55
|
+
|
|
53
56
|
def set_args(self,
|
|
54
57
|
imw,
|
|
55
58
|
imh,
|
|
@@ -155,7 +158,7 @@ class Heatmap:
|
|
|
155
158
|
|
|
156
159
|
im0_with_heatmap = cv2.addWeighted(self.im0, 1 - self.heatmap_alpha, heatmap_colored, self.heatmap_alpha, 0)
|
|
157
160
|
|
|
158
|
-
if self.view_img:
|
|
161
|
+
if self.env_check and self.view_img:
|
|
159
162
|
self.display_frames(im0_with_heatmap)
|
|
160
163
|
|
|
161
164
|
return im0_with_heatmap
|
|
@@ -4,7 +4,7 @@ from collections import defaultdict
|
|
|
4
4
|
|
|
5
5
|
import cv2
|
|
6
6
|
|
|
7
|
-
from ultralytics.utils.checks import check_requirements
|
|
7
|
+
from ultralytics.utils.checks import check_imshow, check_requirements
|
|
8
8
|
from ultralytics.utils.plotting import Annotator, colors
|
|
9
9
|
|
|
10
10
|
check_requirements('shapely>=2.0.0')
|
|
@@ -46,6 +46,9 @@ class ObjectCounter:
|
|
|
46
46
|
self.track_thickness = 2
|
|
47
47
|
self.draw_tracks = False
|
|
48
48
|
|
|
49
|
+
# Check if environment support imshow
|
|
50
|
+
self.env_check = check_imshow(warn=True)
|
|
51
|
+
|
|
49
52
|
def set_args(self,
|
|
50
53
|
classes_names,
|
|
51
54
|
reg_pts,
|
|
@@ -136,7 +139,7 @@ class ObjectCounter:
|
|
|
136
139
|
else:
|
|
137
140
|
self.in_counts += 1
|
|
138
141
|
|
|
139
|
-
if self.view_img:
|
|
142
|
+
if self.env_check and self.view_img:
|
|
140
143
|
incount_label = 'InCount : ' + f'{self.in_counts}'
|
|
141
144
|
outcount_label = 'OutCount : ' + f'{self.out_counts}'
|
|
142
145
|
self.annotator.count_labels(in_count=incount_label, out_count=outcount_label)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: ultralytics
|
|
3
|
-
Version: 8.0.
|
|
3
|
+
Version: 8.0.227
|
|
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
|
{ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml
RENAMED
|
File without changes
|
{ultralytics-8.0.225 → ultralytics-8.0.227}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|