ultralytics 8.2.51__tar.gz → 8.2.52__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.2.51/ultralytics.egg-info → ultralytics-8.2.52}/PKG-INFO +1 -1
- {ultralytics-8.2.51 → ultralytics-8.2.52}/tests/test_python.py +2 -2
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/__init__.py +1 -1
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/datasets/african-wildlife.yaml +1 -1
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/datasets/brain-tumor.yaml +1 -1
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/datasets/carparts-seg.yaml +1 -1
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/datasets/coco128-seg.yaml +1 -1
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/datasets/coco128.yaml +1 -1
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/datasets/coco8-pose.yaml +1 -1
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/datasets/coco8-seg.yaml +1 -1
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/datasets/coco8.yaml +1 -1
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/datasets/crack-seg.yaml +1 -1
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/datasets/package-seg.yaml +1 -1
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/datasets/signature.yaml +1 -1
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/datasets/tiger-pose.yaml +1 -1
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/data/augment.py +2 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/data/dataset.py +9 -5
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/engine/exporter.py +1 -1
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/nn/tasks.py +1 -1
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/utils/benchmarks.py +1 -1
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/utils/checks.py +1 -1
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/utils/downloads.py +4 -2
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/utils/plotting.py +3 -3
- {ultralytics-8.2.51 → ultralytics-8.2.52/ultralytics.egg-info}/PKG-INFO +1 -1
- {ultralytics-8.2.51 → ultralytics-8.2.52}/LICENSE +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/README.md +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/pyproject.toml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/setup.cfg +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/tests/__init__.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/tests/conftest.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/tests/test_cli.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/tests/test_cuda.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/tests/test_engine.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/tests/test_explorer.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/tests/test_exports.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/tests/test_integrations.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/assets/bus.jpg +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/assets/zidane.jpg +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/__init__.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/datasets/VOC.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/datasets/coco.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/datasets/dota8.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/datasets/lvis.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/datasets/xView.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/default.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/trackers/botsort.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/data/__init__.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/data/annotator.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/data/base.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/data/build.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/data/converter.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/data/explorer/__init__.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/data/explorer/explorer.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/data/explorer/gui/__init__.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/data/explorer/gui/dash.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/data/explorer/utils.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/data/loaders.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/data/split_dota.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/data/utils.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/engine/__init__.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/engine/model.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/engine/predictor.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/engine/results.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/engine/trainer.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/engine/tuner.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/engine/validator.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/hub/__init__.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/hub/auth.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/hub/session.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/hub/utils.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/__init__.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/fastsam/__init__.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/fastsam/model.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/fastsam/predict.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/fastsam/prompt.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/fastsam/utils.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/fastsam/val.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/nas/__init__.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/nas/model.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/nas/predict.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/nas/val.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/rtdetr/__init__.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/rtdetr/model.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/rtdetr/predict.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/rtdetr/train.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/rtdetr/val.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/sam/__init__.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/sam/amg.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/sam/build.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/sam/model.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/sam/modules/__init__.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/sam/modules/decoders.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/sam/modules/encoders.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/sam/modules/sam.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/sam/modules/transformer.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/sam/predict.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/utils/__init__.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/utils/loss.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/utils/ops.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/yolo/__init__.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/yolo/classify/__init__.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/yolo/classify/predict.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/yolo/classify/train.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/yolo/classify/val.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/yolo/detect/__init__.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/yolo/detect/predict.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/yolo/detect/train.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/yolo/detect/val.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/yolo/model.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/yolo/obb/__init__.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/yolo/obb/predict.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/yolo/obb/train.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/yolo/obb/val.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/yolo/pose/__init__.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/yolo/pose/predict.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/yolo/pose/train.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/yolo/pose/val.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/yolo/segment/__init__.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/yolo/segment/predict.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/yolo/segment/train.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/yolo/segment/val.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/yolo/world/__init__.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/yolo/world/train.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/models/yolo/world/train_world.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/nn/__init__.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/nn/autobackend.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/nn/modules/__init__.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/nn/modules/block.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/nn/modules/conv.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/nn/modules/head.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/nn/modules/transformer.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/nn/modules/utils.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/solutions/__init__.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/solutions/ai_gym.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/solutions/analytics.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/solutions/distance_calculation.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/solutions/heatmap.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/solutions/object_counter.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/solutions/parking_management.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/solutions/queue_management.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/solutions/speed_estimation.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/solutions/streamlit_inference.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/trackers/__init__.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/trackers/basetrack.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/trackers/bot_sort.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/trackers/byte_tracker.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/trackers/track.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/trackers/utils/__init__.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/trackers/utils/gmc.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/trackers/utils/kalman_filter.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/trackers/utils/matching.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/utils/__init__.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/utils/autobatch.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/utils/callbacks/__init__.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/utils/callbacks/base.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/utils/callbacks/clearml.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/utils/callbacks/comet.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/utils/callbacks/dvc.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/utils/callbacks/hub.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/utils/callbacks/mlflow.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/utils/callbacks/neptune.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/utils/callbacks/raytune.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/utils/callbacks/tensorboard.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/utils/callbacks/wb.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/utils/dist.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/utils/errors.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/utils/files.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/utils/instance.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/utils/loss.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/utils/metrics.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/utils/ops.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/utils/patches.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/utils/tal.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/utils/torch_utils.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/utils/triton.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/utils/tuner.py +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics.egg-info/SOURCES.txt +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics.egg-info/dependency_links.txt +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics.egg-info/entry_points.txt +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics.egg-info/requires.txt +0 -0
- {ultralytics-8.2.51 → ultralytics-8.2.52}/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.2.
|
|
3
|
+
Version: 8.2.52
|
|
4
4
|
Summary: Ultralytics YOLOv8 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
|
|
5
5
|
Author: Glenn Jocher, Ayush Chaurasia, Jing Qiu
|
|
6
6
|
Maintainer: Glenn Jocher, Ayush Chaurasia, Jing Qiu
|
|
@@ -90,7 +90,7 @@ def test_predict_img(model_name):
|
|
|
90
90
|
batch = [
|
|
91
91
|
str(SOURCE), # filename
|
|
92
92
|
Path(SOURCE), # Path
|
|
93
|
-
"https://
|
|
93
|
+
"https://github.com/ultralytics/yolov5/releases/download/v1.0/zidane.jpg" if ONLINE else SOURCE, # URI
|
|
94
94
|
cv2.imread(str(SOURCE)), # OpenCV
|
|
95
95
|
Image.open(SOURCE), # PIL
|
|
96
96
|
np.zeros((320, 640, 3), dtype=np.uint8), # numpy
|
|
@@ -149,7 +149,7 @@ def test_track_stream():
|
|
|
149
149
|
|
|
150
150
|
Note imgsz=160 required for tracking for higher confidence and better matches.
|
|
151
151
|
"""
|
|
152
|
-
video_url = "https://
|
|
152
|
+
video_url = "https://github.com/ultralytics/yolov5/releases/download/v1.0/decelera_portrait_min.mov"
|
|
153
153
|
model = YOLO(MODEL)
|
|
154
154
|
model.track(video_url, imgsz=160, tracker="bytetrack.yaml")
|
|
155
155
|
model.track(video_url, imgsz=160, tracker="botsort.yaml", save_frames=True) # test frame saving also
|
|
@@ -1401,6 +1401,8 @@ class CenterCrop:
|
|
|
1401
1401
|
Returns:
|
|
1402
1402
|
(numpy.ndarray): The center-cropped and resized image as a numpy array.
|
|
1403
1403
|
"""
|
|
1404
|
+
if isinstance(im, Image.Image): # convert from PIL to numpy array if required
|
|
1405
|
+
im = np.asarray(im)
|
|
1404
1406
|
imh, imw = im.shape[:2]
|
|
1405
1407
|
m = min(imh, imw) # min dimension
|
|
1406
1408
|
top, left = (imh - m) // 2, (imw - m) // 2
|
|
@@ -15,6 +15,7 @@ from torch.utils.data import ConcatDataset
|
|
|
15
15
|
|
|
16
16
|
from ultralytics.utils import LOCAL_RANK, NUM_THREADS, TQDM, colorstr
|
|
17
17
|
from ultralytics.utils.ops import resample_segments
|
|
18
|
+
from ultralytics.utils.torch_utils import TORCH_1_13
|
|
18
19
|
|
|
19
20
|
from .augment import (
|
|
20
21
|
Compose,
|
|
@@ -263,7 +264,7 @@ class YOLOMultiModalDataset(YOLODataset):
|
|
|
263
264
|
super().__init__(*args, data=data, task=task, **kwargs)
|
|
264
265
|
|
|
265
266
|
def update_labels_info(self, label):
|
|
266
|
-
"""Add texts information for multi
|
|
267
|
+
"""Add texts information for multi-modal model training."""
|
|
267
268
|
labels = super().update_labels_info(label)
|
|
268
269
|
# NOTE: some categories are concatenated with its synonyms by `/`.
|
|
269
270
|
labels["texts"] = [v.split("/") for _, v in self.data["names"].items()]
|
|
@@ -296,10 +297,10 @@ class GroundingDataset(YOLODataset):
|
|
|
296
297
|
with open(self.json_file, "r") as f:
|
|
297
298
|
annotations = json.load(f)
|
|
298
299
|
images = {f'{x["id"]:d}': x for x in annotations["images"]}
|
|
299
|
-
|
|
300
|
+
img_to_anns = defaultdict(list)
|
|
300
301
|
for ann in annotations["annotations"]:
|
|
301
|
-
|
|
302
|
-
for img_id, anns in TQDM(
|
|
302
|
+
img_to_anns[ann["image_id"]].append(ann)
|
|
303
|
+
for img_id, anns in TQDM(img_to_anns.items(), desc=f"Reading annotations {self.json_file}"):
|
|
303
304
|
img = images[f"{img_id:d}"]
|
|
304
305
|
h, w, f = img["height"], img["width"], img["file_name"]
|
|
305
306
|
im_file = Path(self.img_path) / f
|
|
@@ -416,7 +417,10 @@ class ClassificationDataset:
|
|
|
416
417
|
import torchvision # scope for faster 'import ultralytics'
|
|
417
418
|
|
|
418
419
|
# Base class assigned as attribute rather than used as base class to allow for scoping slow torchvision import
|
|
419
|
-
|
|
420
|
+
if TORCH_1_13: # 'allow_empty' argument first introduced in torch 1.13
|
|
421
|
+
self.base = torchvision.datasets.ImageFolder(root=root, allow_empty=True)
|
|
422
|
+
else:
|
|
423
|
+
self.base = torchvision.datasets.ImageFolder(root=root)
|
|
420
424
|
self.samples = self.base.samples
|
|
421
425
|
self.root = self.base.root
|
|
422
426
|
|
|
@@ -454,7 +454,7 @@ class Exporter:
|
|
|
454
454
|
LOGGER.info(f"\n{prefix} starting export with openvino {ov.__version__}...")
|
|
455
455
|
assert TORCH_1_13, f"OpenVINO export requires torch>=1.13.0 but torch=={torch.__version__} is installed"
|
|
456
456
|
ov_model = ov.convert_model(
|
|
457
|
-
self.model
|
|
457
|
+
self.model,
|
|
458
458
|
input=None if self.args.dynamic else [self.im.shape],
|
|
459
459
|
example_input=self.im,
|
|
460
460
|
)
|
|
@@ -379,7 +379,7 @@ class DetectionModel(BaseModel):
|
|
|
379
379
|
|
|
380
380
|
def init_criterion(self):
|
|
381
381
|
"""Initialize the loss criterion for the DetectionModel."""
|
|
382
|
-
return E2EDetectLoss(self) if self
|
|
382
|
+
return E2EDetectLoss(self) if getattr(self, "end2end", False) else v8DetectionLoss(self)
|
|
383
383
|
|
|
384
384
|
|
|
385
385
|
class OBBModel(DetectionModel):
|
|
@@ -195,7 +195,7 @@ class RF100Benchmark:
|
|
|
195
195
|
(shutil.rmtree("rf-100"), os.mkdir("rf-100")) if os.path.exists("rf-100") else os.mkdir("rf-100")
|
|
196
196
|
os.chdir("rf-100")
|
|
197
197
|
os.mkdir("ultralytics-benchmarks")
|
|
198
|
-
safe_download("https://
|
|
198
|
+
safe_download("https://github.com/ultralytics/yolov5/releases/download/v1.0/datasets_links.txt")
|
|
199
199
|
|
|
200
200
|
with open(ds_link_txt, "r") as file:
|
|
201
201
|
for line in file:
|
|
@@ -315,7 +315,7 @@ def check_font(font="Arial.ttf"):
|
|
|
315
315
|
return matches[0]
|
|
316
316
|
|
|
317
317
|
# Download to USER_CONFIG_DIR if missing
|
|
318
|
-
url = f"https://
|
|
318
|
+
url = f"https://github.com/ultralytics/yolov5/releases/download/v1.0/{name}"
|
|
319
319
|
if downloads.is_url(url, check=True):
|
|
320
320
|
downloads.safe_download(url=url, file=file)
|
|
321
321
|
return file
|
|
@@ -194,12 +194,14 @@ def unzip_file(file, path=None, exclude=(".DS_Store", "__MACOSX"), exist_ok=Fals
|
|
|
194
194
|
return path # return unzip dir
|
|
195
195
|
|
|
196
196
|
|
|
197
|
-
def check_disk_space(
|
|
197
|
+
def check_disk_space(
|
|
198
|
+
url="https://github.com/ultralytics/yolov5/releases/download/v1.0/coco8.zip", path=Path.cwd(), sf=1.5, hard=True
|
|
199
|
+
):
|
|
198
200
|
"""
|
|
199
201
|
Check if there is sufficient disk space to download and store a file.
|
|
200
202
|
|
|
201
203
|
Args:
|
|
202
|
-
url (str, optional): The URL to the file. Defaults to 'https://ultralytics.com/assets/
|
|
204
|
+
url (str, optional): The URL to the file. Defaults to 'https://ultralytics.com/assets/coco8.zip'.
|
|
203
205
|
path (str | Path, optional): The path or drive to check the available free space on.
|
|
204
206
|
sf (float, optional): Safety factor, the multiplier for the required free space. Defaults to 2.0.
|
|
205
207
|
hard (bool, optional): Whether to throw an error or not on insufficient disk space. Defaults to True.
|
|
@@ -298,8 +298,8 @@ class Annotator:
|
|
|
298
298
|
if label:
|
|
299
299
|
w, h = self.font.getsize(label) # text width, height
|
|
300
300
|
outside = p1[1] >= h # label fits outside box
|
|
301
|
-
if p1[0] > self.im.size[
|
|
302
|
-
p1 = self.im.size[
|
|
301
|
+
if p1[0] > self.im.size[0] - w: # size is (w, h), check if label extend beyond right side of image
|
|
302
|
+
p1 = self.im.size[0] - w, p1[1]
|
|
303
303
|
self.draw.rectangle(
|
|
304
304
|
(p1[0], p1[1] - h if outside else p1[1], p1[0] + w + 1, p1[1] + 1 if outside else p1[1] + h + 1),
|
|
305
305
|
fill=color,
|
|
@@ -317,7 +317,7 @@ class Annotator:
|
|
|
317
317
|
w, h = cv2.getTextSize(label, 0, fontScale=self.sf, thickness=self.tf)[0] # text width, height
|
|
318
318
|
h += 3 # add pixels to pad text
|
|
319
319
|
outside = p1[1] >= h # label fits outside box
|
|
320
|
-
if p1[0] > self.im.shape[1] - w: # check if label extend beyond right side of image
|
|
320
|
+
if p1[0] > self.im.shape[1] - w: # shape is (h, w), check if label extend beyond right side of image
|
|
321
321
|
p1 = self.im.shape[1] - w, p1[1]
|
|
322
322
|
p2 = p1[0] + w, p1[1] - h if outside else p1[1] + h
|
|
323
323
|
cv2.rectangle(self.im, p1, p2, color, -1, cv2.LINE_AA) # filled
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: ultralytics
|
|
3
|
-
Version: 8.2.
|
|
3
|
+
Version: 8.2.52
|
|
4
4
|
Summary: Ultralytics YOLOv8 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
|
|
5
5
|
Author: Glenn Jocher, Ayush Chaurasia, Jing Qiu
|
|
6
6
|
Maintainer: Glenn Jocher, Ayush Chaurasia, Jing Qiu
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml
RENAMED
|
File without changes
|
{ultralytics-8.2.51 → ultralytics-8.2.52}/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
|
{ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml
RENAMED
|
File without changes
|
{ultralytics-8.2.51 → ultralytics-8.2.52}/ultralytics/cfg/models/v8/yolov8-cls-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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|