ultralytics 8.3.109__tar.gz → 8.3.110__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.
- {ultralytics-8.3.109/ultralytics.egg-info → ultralytics-8.3.110}/PKG-INFO +1 -1
- {ultralytics-8.3.109 → ultralytics-8.3.110}/pyproject.toml +1 -1
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/__init__.py +1 -1
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/data/base.py +2 -1
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/data/dataset.py +2 -0
- ultralytics-8.3.110/ultralytics/data/scripts/download_weights.sh +18 -0
- ultralytics-8.3.110/ultralytics/data/scripts/get_coco.sh +61 -0
- ultralytics-8.3.110/ultralytics/data/scripts/get_coco128.sh +18 -0
- ultralytics-8.3.110/ultralytics/data/scripts/get_imagenet.sh +52 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/data/utils.py +81 -1
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/engine/exporter.py +2 -2
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/nn/autobackend.py +1 -1
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/nn/modules/block.py +1 -1
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/nn/modules/conv.py +1 -1
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/solutions/parking_management.py +1 -1
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/dist.py +1 -1
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/metrics.py +1 -1
- {ultralytics-8.3.109 → ultralytics-8.3.110/ultralytics.egg-info}/PKG-INFO +1 -1
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics.egg-info/SOURCES.txt +4 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/LICENSE +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/README.md +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/setup.cfg +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/tests/test_cli.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/tests/test_cuda.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/tests/test_engine.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/tests/test_exports.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/tests/test_integrations.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/tests/test_python.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/tests/test_solutions.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/assets/bus.jpg +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/assets/zidane.jpg +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/__init__.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/VOC.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/coco.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/coco128.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/coco8.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/dog-pose.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/dota8.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/hand-keypoints.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/lvis.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/medical-pills.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/signature.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/xView.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/default.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/11/yolo11-cls-resnet18.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/11/yolo11-cls.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/11/yolo11-obb.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/11/yolo11-pose.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/11/yolo11-seg.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/11/yolo11.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/11/yoloe-11-seg.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/11/yoloe-11.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/12/yolo12-cls.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/12/yolo12-obb.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/12/yolo12-pose.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/12/yolo12-seg.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/12/yolo12.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v8/yoloe-v8-seg.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v8/yoloe-v8.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/solutions/default.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/trackers/botsort.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/data/__init__.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/data/annotator.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/data/augment.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/data/build.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/data/converter.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/data/loaders.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/data/split_dota.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/engine/__init__.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/engine/model.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/engine/predictor.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/engine/results.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/engine/trainer.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/engine/tuner.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/engine/validator.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/hub/__init__.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/hub/auth.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/hub/google/__init__.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/hub/session.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/hub/utils.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/__init__.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/fastsam/__init__.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/fastsam/model.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/fastsam/predict.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/fastsam/utils.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/fastsam/val.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/nas/__init__.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/nas/model.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/nas/predict.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/nas/val.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/rtdetr/__init__.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/rtdetr/model.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/rtdetr/predict.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/rtdetr/train.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/rtdetr/val.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/sam/__init__.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/sam/amg.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/sam/build.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/sam/model.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/sam/modules/__init__.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/sam/modules/blocks.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/sam/modules/decoders.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/sam/modules/encoders.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/sam/modules/memory_attention.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/sam/modules/sam.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/sam/modules/transformer.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/sam/modules/utils.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/sam/predict.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/utils/__init__.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/utils/loss.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/utils/ops.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/__init__.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/classify/__init__.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/classify/predict.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/classify/train.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/classify/val.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/detect/__init__.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/detect/predict.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/detect/train.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/detect/val.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/model.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/obb/__init__.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/obb/predict.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/obb/train.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/obb/val.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/pose/__init__.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/pose/predict.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/pose/train.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/pose/val.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/segment/__init__.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/segment/predict.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/segment/train.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/segment/val.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/world/__init__.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/world/train.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/world/train_world.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/yoloe/__init__.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/yoloe/predict.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/yoloe/train.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/yoloe/train_seg.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/yoloe/val.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/nn/__init__.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/nn/modules/__init__.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/nn/modules/activation.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/nn/modules/head.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/nn/modules/transformer.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/nn/modules/utils.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/nn/tasks.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/nn/text_model.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/solutions/__init__.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/solutions/ai_gym.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/solutions/analytics.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/solutions/distance_calculation.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/solutions/heatmap.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/solutions/instance_segmentation.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/solutions/object_blurrer.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/solutions/object_counter.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/solutions/object_cropper.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/solutions/queue_management.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/solutions/region_counter.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/solutions/security_alarm.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/solutions/solutions.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/solutions/speed_estimation.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/solutions/streamlit_inference.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/solutions/trackzone.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/solutions/vision_eye.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/trackers/__init__.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/trackers/basetrack.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/trackers/bot_sort.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/trackers/byte_tracker.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/trackers/track.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/trackers/utils/__init__.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/trackers/utils/gmc.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/trackers/utils/kalman_filter.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/trackers/utils/matching.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/__init__.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/autobatch.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/benchmarks.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/callbacks/__init__.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/callbacks/base.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/callbacks/clearml.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/callbacks/comet.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/callbacks/dvc.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/callbacks/hub.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/callbacks/mlflow.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/callbacks/neptune.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/callbacks/raytune.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/callbacks/tensorboard.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/callbacks/wb.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/checks.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/downloads.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/errors.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/export.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/files.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/instance.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/loss.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/ops.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/patches.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/plotting.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/tal.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/torch_utils.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/triton.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/tuner.py +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics.egg-info/dependency_links.txt +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics.egg-info/entry_points.txt +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics.egg-info/requires.txt +0 -0
- {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: ultralytics
|
3
|
-
Version: 8.3.
|
3
|
+
Version: 8.3.110
|
4
4
|
Summary: Ultralytics YOLO 🚀 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
|
5
5
|
Author-email: Glenn Jocher <glenn.jocher@ultralytics.com>, Jing Qiu <jing.qiu@ultralytics.com>
|
6
6
|
Maintainer-email: Ultralytics <hello@ultralytics.com>
|
@@ -134,7 +134,7 @@ ultralytics = "ultralytics.cfg:entrypoint"
|
|
134
134
|
# Tools settings -------------------------------------------------------------------------------------------------------
|
135
135
|
[tool.setuptools] # configuration specific to the `setuptools` build backend.
|
136
136
|
packages = { find = { where = ["."], include = ["ultralytics", "ultralytics.*"] } }
|
137
|
-
package-data = { "ultralytics" = ["**/*.yaml"], "ultralytics.assets" = ["*.jpg"] }
|
137
|
+
package-data = { "ultralytics" = ["**/*.yaml", "**/*.sh"], "ultralytics.assets" = ["*.jpg"] }
|
138
138
|
|
139
139
|
[tool.setuptools.dynamic]
|
140
140
|
version = { attr = "ultralytics.__version__" }
|
@@ -14,7 +14,7 @@ import numpy as np
|
|
14
14
|
import psutil
|
15
15
|
from torch.utils.data import Dataset
|
16
16
|
|
17
|
-
from ultralytics.data.utils import FORMATS_HELP_MSG, HELP_URL, IMG_FORMATS
|
17
|
+
from ultralytics.data.utils import FORMATS_HELP_MSG, HELP_URL, IMG_FORMATS, check_file_speeds
|
18
18
|
from ultralytics.utils import DEFAULT_CFG, LOCAL_RANK, LOGGER, NUM_THREADS, TQDM
|
19
19
|
|
20
20
|
|
@@ -172,6 +172,7 @@ class BaseDataset(Dataset):
|
|
172
172
|
raise FileNotFoundError(f"{self.prefix}Error loading data from {img_path}\n{HELP_URL}") from e
|
173
173
|
if self.fraction < 1:
|
174
174
|
im_files = im_files[: round(len(im_files) * self.fraction)] # retain a fraction of the dataset
|
175
|
+
check_file_speeds(im_files, prefix=self.prefix) # check image read speeds
|
175
176
|
return im_files
|
176
177
|
|
177
178
|
def update_labels(self, include_class: Optional[list]):
|
@@ -31,6 +31,7 @@ from .converter import merge_multi_segment
|
|
31
31
|
from .utils import (
|
32
32
|
HELP_URL,
|
33
33
|
LOGGER,
|
34
|
+
check_file_speeds,
|
34
35
|
get_hash,
|
35
36
|
img2label_paths,
|
36
37
|
load_dataset_cache_file,
|
@@ -794,6 +795,7 @@ class ClassificationDataset:
|
|
794
795
|
path = Path(self.root).with_suffix(".cache") # *.cache file path
|
795
796
|
|
796
797
|
try:
|
798
|
+
check_file_speeds([file for (file, _) in self.samples[:5]], prefix=self.prefix) # check image read speeds
|
797
799
|
cache = load_dataset_cache_file(path) # attempt to load a *.cache file
|
798
800
|
assert cache["version"] == DATASET_CACHE_VERSION # matches current version
|
799
801
|
assert cache["hash"] == get_hash([x[0] for x in self.samples]) # identical hash
|
@@ -0,0 +1,18 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
|
3
|
+
|
4
|
+
# Download latest models from https://github.com/ultralytics/assets/releases
|
5
|
+
# Example usage: bash ultralytics/data/scripts/download_weights.sh
|
6
|
+
# parent
|
7
|
+
# └── weights
|
8
|
+
# ├── yolov8n.pt ← downloads here
|
9
|
+
# ├── yolov8s.pt
|
10
|
+
# └── ...
|
11
|
+
|
12
|
+
python << EOF
|
13
|
+
from ultralytics.utils.downloads import attempt_download_asset
|
14
|
+
|
15
|
+
assets = [f"yolov8{size}{suffix}.pt" for size in "nsmlx" for suffix in ("", "-cls", "-seg", "-pose")]
|
16
|
+
for x in assets:
|
17
|
+
attempt_download_asset(f"weights/{x}")
|
18
|
+
EOF
|
@@ -0,0 +1,61 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
|
3
|
+
|
4
|
+
# Download COCO 2017 dataset https://cocodataset.org
|
5
|
+
# Example usage: bash data/scripts/get_coco.sh
|
6
|
+
# parent
|
7
|
+
# ├── ultralytics
|
8
|
+
# └── datasets
|
9
|
+
# └── coco ← downloads here
|
10
|
+
|
11
|
+
# Arguments (optional) Usage: bash data/scripts/get_coco.sh --train --val --test --segments
|
12
|
+
if [ "$#" -gt 0 ]; then
|
13
|
+
for opt in "$@"; do
|
14
|
+
case "${opt}" in
|
15
|
+
--train) train=true ;;
|
16
|
+
--val) val=true ;;
|
17
|
+
--test) test=true ;;
|
18
|
+
--segments) segments=true ;;
|
19
|
+
--sama) sama=true ;;
|
20
|
+
esac
|
21
|
+
done
|
22
|
+
else
|
23
|
+
train=true
|
24
|
+
val=true
|
25
|
+
test=false
|
26
|
+
segments=false
|
27
|
+
sama=false
|
28
|
+
fi
|
29
|
+
|
30
|
+
# Download/unzip labels
|
31
|
+
d='../datasets' # unzip directory
|
32
|
+
url=https://github.com/ultralytics/assets/releases/download/v0.0.0/
|
33
|
+
if [ "$segments" == "true" ]; then
|
34
|
+
f='coco2017labels-segments.zip' # 169 MB
|
35
|
+
elif [ "$sama" == "true" ]; then
|
36
|
+
f='coco2017labels-segments-sama.zip' # 199 MB https://www.sama.com/sama-coco-dataset/
|
37
|
+
else
|
38
|
+
f='coco2017labels.zip' # 46 MB
|
39
|
+
fi
|
40
|
+
echo 'Downloading' $url$f ' ...'
|
41
|
+
curl -L $url$f -o $f -# && unzip -q $f -d $d && rm $f &
|
42
|
+
|
43
|
+
# Download/unzip images
|
44
|
+
d='../datasets/coco/images' # unzip directory
|
45
|
+
url=http://images.cocodataset.org/zips/
|
46
|
+
if [ "$train" == "true" ]; then
|
47
|
+
f='train2017.zip' # 19G, 118k images
|
48
|
+
echo 'Downloading' $url$f '...'
|
49
|
+
curl -L $url$f -o $f -# && unzip -q $f -d $d && rm $f &
|
50
|
+
fi
|
51
|
+
if [ "$val" == "true" ]; then
|
52
|
+
f='val2017.zip' # 1G, 5k images
|
53
|
+
echo 'Downloading' $url$f '...'
|
54
|
+
curl -L $url$f -o $f -# && unzip -q $f -d $d && rm $f &
|
55
|
+
fi
|
56
|
+
if [ "$test" == "true" ]; then
|
57
|
+
f='test2017.zip' # 7G, 41k images (optional)
|
58
|
+
echo 'Downloading' $url$f '...'
|
59
|
+
curl -L $url$f -o $f -# && unzip -q $f -d $d && rm $f &
|
60
|
+
fi
|
61
|
+
wait # finish background tasks
|
@@ -0,0 +1,18 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
|
3
|
+
|
4
|
+
# Download COCO128 dataset https://www.kaggle.com/ultralytics/coco128 (first 128 images from COCO train2017)
|
5
|
+
# Example usage: bash data/scripts/get_coco128.sh
|
6
|
+
# parent
|
7
|
+
# ├── ultralytics
|
8
|
+
# └── datasets
|
9
|
+
# └── coco128 ← downloads here
|
10
|
+
|
11
|
+
# Download/unzip images and labels
|
12
|
+
d='../datasets' # unzip directory
|
13
|
+
url=https://github.com/ultralytics/assets/releases/download/v0.0.0/
|
14
|
+
f='coco128.zip' # or 'coco128-segments.zip', 68 MB
|
15
|
+
echo 'Downloading' $url$f ' ...'
|
16
|
+
curl -L $url$f -o $f -# && unzip -q $f -d $d && rm $f &
|
17
|
+
|
18
|
+
wait # finish background tasks
|
@@ -0,0 +1,52 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
|
3
|
+
|
4
|
+
# Download ILSVRC2012 ImageNet dataset https://image-net.org
|
5
|
+
# Example usage: bash data/scripts/get_imagenet.sh
|
6
|
+
# parent
|
7
|
+
# ├── ultralytics
|
8
|
+
# └── datasets
|
9
|
+
# └── imagenet ← downloads here
|
10
|
+
|
11
|
+
# Arguments (optional) Usage: bash data/scripts/get_imagenet.sh --train --val
|
12
|
+
if [ "$#" -gt 0 ]; then
|
13
|
+
for opt in "$@"; do
|
14
|
+
case "${opt}" in
|
15
|
+
--train) train=true ;;
|
16
|
+
--val) val=true ;;
|
17
|
+
esac
|
18
|
+
done
|
19
|
+
else
|
20
|
+
train=true
|
21
|
+
val=true
|
22
|
+
fi
|
23
|
+
|
24
|
+
# Make dir
|
25
|
+
d='../datasets/imagenet' # unzip directory
|
26
|
+
mkdir -p $d && cd $d
|
27
|
+
|
28
|
+
# Download/unzip train
|
29
|
+
if [ "$train" == "true" ]; then
|
30
|
+
wget https://image-net.org/data/ILSVRC/2012/ILSVRC2012_img_train.tar # download 138G, 1281167 images
|
31
|
+
mkdir train && mv ILSVRC2012_img_train.tar train/ && cd train
|
32
|
+
tar -xf ILSVRC2012_img_train.tar && rm -f ILSVRC2012_img_train.tar
|
33
|
+
find . -name "*.tar" | while read NAME; do
|
34
|
+
mkdir -p "${NAME%.tar}"
|
35
|
+
tar -xf "${NAME}" -C "${NAME%.tar}"
|
36
|
+
rm -f "${NAME}"
|
37
|
+
done
|
38
|
+
cd ..
|
39
|
+
fi
|
40
|
+
|
41
|
+
# Download/unzip val
|
42
|
+
if [ "$val" == "true" ]; then
|
43
|
+
wget https://image-net.org/data/ILSVRC/2012/ILSVRC2012_img_val.tar # download 6.3G, 50000 images
|
44
|
+
mkdir val && mv ILSVRC2012_img_val.tar val/ && cd val && tar -xf ILSVRC2012_img_val.tar
|
45
|
+
wget -qO- https://raw.githubusercontent.com/soumith/imagenetloader.torch/master/valprep.sh | bash # move into subdirs
|
46
|
+
fi
|
47
|
+
|
48
|
+
# Delete corrupted image (optional: PNG under JPEG name that may cause dataloaders to fail)
|
49
|
+
# rm train/n04266014/n04266014_10835.JPEG
|
50
|
+
|
51
|
+
# TFRecords (optional)
|
52
|
+
# wget https://raw.githubusercontent.com/tensorflow/models/master/research/slim/datasets/imagenet_lsvrc_2015_synsets.txt
|
@@ -47,9 +47,89 @@ def img2label_paths(img_paths):
|
|
47
47
|
return [sb.join(x.rsplit(sa, 1)).rsplit(".", 1)[0] + ".txt" for x in img_paths]
|
48
48
|
|
49
49
|
|
50
|
+
def check_file_speeds(files, threshold_ms=10, max_files=5, prefix=""):
|
51
|
+
"""
|
52
|
+
Check dataset file access speed and provide performance feedback.
|
53
|
+
|
54
|
+
This function tests the access speed of dataset files by measuring ping (stat call) time and read speed.
|
55
|
+
It samples up to 5 files from the provided list and warns if access times exceed the threshold.
|
56
|
+
|
57
|
+
Args:
|
58
|
+
files (list): List of file paths to check for access speed.
|
59
|
+
threshold_ms (float, optional): Threshold in milliseconds for ping time warnings.
|
60
|
+
max_files (int, optional): The maximum number of files to check.
|
61
|
+
prefix (str, optional): Prefix string to add to log messages.
|
62
|
+
|
63
|
+
Examples:
|
64
|
+
>>> from pathlib import Path
|
65
|
+
>>> image_files = list(Path("dataset/images").glob("*.jpg"))
|
66
|
+
>>> check_file_speeds(image_files, threshold_ms=15)
|
67
|
+
"""
|
68
|
+
if not files or len(files) == 0:
|
69
|
+
LOGGER.warning(f"{prefix}WARNING ⚠️ Image speed checks: No files to check")
|
70
|
+
return
|
71
|
+
|
72
|
+
# Sample files (max 5)
|
73
|
+
files = random.sample(files, min(max_files, len(files)))
|
74
|
+
|
75
|
+
# Test ping (stat time)
|
76
|
+
ping_times = []
|
77
|
+
file_sizes = []
|
78
|
+
read_speeds = []
|
79
|
+
|
80
|
+
for f in files:
|
81
|
+
try:
|
82
|
+
# Measure ping (stat call)
|
83
|
+
start = time.perf_counter()
|
84
|
+
file_size = os.stat(f).st_size
|
85
|
+
ping_times.append((time.perf_counter() - start) * 1000) # ms
|
86
|
+
file_sizes.append(file_size)
|
87
|
+
|
88
|
+
# Measure read speed
|
89
|
+
start = time.perf_counter()
|
90
|
+
with open(f, "rb") as file_obj:
|
91
|
+
_ = file_obj.read()
|
92
|
+
read_time = time.perf_counter() - start
|
93
|
+
if read_time > 0: # Avoid division by zero
|
94
|
+
read_speeds.append(file_size / (1 << 20) / read_time) # MB/s
|
95
|
+
except Exception:
|
96
|
+
pass
|
97
|
+
|
98
|
+
if not ping_times:
|
99
|
+
LOGGER.warning(f"{prefix}WARNING ⚠️ Image speed checks: failed to access files")
|
100
|
+
return
|
101
|
+
|
102
|
+
# Calculate stats with uncertainties
|
103
|
+
avg_ping = np.mean(ping_times)
|
104
|
+
std_ping = np.std(ping_times, ddof=1) if len(ping_times) > 1 else 0
|
105
|
+
size_msg = f", size: {np.mean(file_sizes) / (1 << 10):.1f} KB"
|
106
|
+
ping_msg = f"ping: {avg_ping:.1f}±{std_ping:.1f} ms"
|
107
|
+
|
108
|
+
if read_speeds:
|
109
|
+
avg_speed = np.mean(read_speeds)
|
110
|
+
std_speed = np.std(read_speeds, ddof=1) if len(read_speeds) > 1 else 0
|
111
|
+
speed_msg = f", read: {avg_speed:.1f}±{std_speed:.1f} MB/s"
|
112
|
+
else:
|
113
|
+
speed_msg = ""
|
114
|
+
|
115
|
+
if avg_ping < threshold_ms:
|
116
|
+
LOGGER.info(f"{prefix}Fast image access ✅ ({ping_msg}{speed_msg}{size_msg})")
|
117
|
+
else:
|
118
|
+
LOGGER.warning(
|
119
|
+
f"{prefix}WARNING ⚠️ Slow image access detected ({ping_msg}{speed_msg}{size_msg}). "
|
120
|
+
f"Use local storage instead of remote/mounted storage for better performance. "
|
121
|
+
f"See https://docs.ultralytics.com/guides/model-training-tips/"
|
122
|
+
)
|
123
|
+
|
124
|
+
|
50
125
|
def get_hash(paths):
|
51
126
|
"""Returns a single hash value of a list of paths (files or dirs)."""
|
52
|
-
size =
|
127
|
+
size = 0
|
128
|
+
for p in paths:
|
129
|
+
try:
|
130
|
+
size += os.stat(p).st_size
|
131
|
+
except OSError:
|
132
|
+
continue
|
53
133
|
h = hashlib.sha256(str(size).encode()) # hash sizes
|
54
134
|
h.update("".join(paths).encode()) # hash paths
|
55
135
|
return h.hexdigest() # return hash
|
@@ -1000,7 +1000,7 @@ class Exporter:
|
|
1000
1000
|
|
1001
1001
|
@try_export
|
1002
1002
|
def export_pb(self, keras_model, prefix=colorstr("TensorFlow GraphDef:")):
|
1003
|
-
"""YOLO TensorFlow GraphDef *.pb export https://github.com/leimao/
|
1003
|
+
"""YOLO TensorFlow GraphDef *.pb export https://github.com/leimao/Frozen-Graph-TensorFlow."""
|
1004
1004
|
import tensorflow as tf # noqa
|
1005
1005
|
from tensorflow.python.framework.convert_to_constants import convert_variables_to_constants_v2 # noqa
|
1006
1006
|
|
@@ -1281,7 +1281,7 @@ class Exporter:
|
|
1281
1281
|
return f, None
|
1282
1282
|
|
1283
1283
|
def _add_tflite_metadata(self, file):
|
1284
|
-
"""Add metadata to *.tflite models per https://
|
1284
|
+
"""Add metadata to *.tflite models per https://ai.google.dev/edge/litert/models/metadata."""
|
1285
1285
|
import flatbuffers
|
1286
1286
|
|
1287
1287
|
try:
|
@@ -397,7 +397,7 @@ class AutoBackend(nn.Module):
|
|
397
397
|
pass
|
398
398
|
|
399
399
|
# TFLite or TFLite Edge TPU
|
400
|
-
elif tflite or edgetpu: # https://
|
400
|
+
elif tflite or edgetpu: # https://ai.google.dev/edge/litert/microcontrollers/python
|
401
401
|
try: # https://coral.ai/docs/edgetpu/tflite-python/#update-existing-tf-lite-code-for-the-edge-tpu
|
402
402
|
from tflite_runtime.interpreter import Interpreter, load_delegate
|
403
403
|
except ImportError:
|
@@ -422,7 +422,7 @@ class C3Ghost(C3):
|
|
422
422
|
|
423
423
|
|
424
424
|
class GhostBottleneck(nn.Module):
|
425
|
-
"""Ghost Bottleneck https://github.com/huawei-noah/
|
425
|
+
"""Ghost Bottleneck https://github.com/huawei-noah/Efficient-AI-Backbones."""
|
426
426
|
|
427
427
|
def __init__(self, c1, c2, k=3, s=1):
|
428
428
|
"""
|
@@ -337,7 +337,7 @@ class GhostConv(nn.Module):
|
|
337
337
|
cv2 (Conv): Cheap operation convolution.
|
338
338
|
|
339
339
|
References:
|
340
|
-
https://github.com/huawei-noah/
|
340
|
+
https://github.com/huawei-noah/Efficient-AI-Backbones
|
341
341
|
"""
|
342
342
|
|
343
343
|
def __init__(self, c1, c2, k=1, s=1, g=1, act=True):
|
@@ -58,7 +58,7 @@ class ParkingPtsSelection:
|
|
58
58
|
"Linux": "sudo apt install python3-tk (Debian/Ubuntu) | sudo dnf install python3-tkinter (Fedora) | "
|
59
59
|
"sudo pacman -S tk (Arch)",
|
60
60
|
"Windows": "reinstall Python and enable the checkbox `tcl/tk and IDLE` on **Optional Features** during installation",
|
61
|
-
"Darwin": "reinstall Python from https://www.python.org/downloads/
|
61
|
+
"Darwin": "reinstall Python from https://www.python.org/downloads/macos/ or `brew install python-tk`",
|
62
62
|
}.get(platform.system(), "Unknown OS. Check your Python installation.")
|
63
63
|
|
64
64
|
LOGGER.warning(f"WARNING ⚠️ Tkinter is not configured or supported. Potential fix: {install_cmd}")
|
@@ -87,7 +87,7 @@ def generate_ddp_command(world_size, trainer):
|
|
87
87
|
cmd (List[str]): The command to execute for distributed training.
|
88
88
|
file (str): Path to the temporary file created for DDP training.
|
89
89
|
"""
|
90
|
-
import __main__ # noqa local import to avoid https://github.com/Lightning-AI/lightning/issues/15218
|
90
|
+
import __main__ # noqa local import to avoid https://github.com/Lightning-AI/pytorch-lightning/issues/15218
|
91
91
|
|
92
92
|
if not trainer.resume:
|
93
93
|
shutil.rmtree(trainer.save_dir) # remove the save_dir
|
@@ -52,7 +52,7 @@ def bbox_ioa(box1, box2, iou=False, eps=1e-7):
|
|
52
52
|
def box_iou(box1, box2, eps=1e-7):
|
53
53
|
"""
|
54
54
|
Calculate intersection-over-union (IoU) of boxes. Both sets of boxes are expected to be in (x1, y1, x2, y2) format.
|
55
|
-
Based on https://github.com/pytorch/vision/blob/
|
55
|
+
Based on https://github.com/pytorch/vision/blob/main/torchvision/ops/boxes.py.
|
56
56
|
|
57
57
|
Args:
|
58
58
|
box1 (torch.Tensor): A tensor of shape (N, 4) representing N bounding boxes.
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: ultralytics
|
3
|
-
Version: 8.3.
|
3
|
+
Version: 8.3.110
|
4
4
|
Summary: Ultralytics YOLO 🚀 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
|
5
5
|
Author-email: Glenn Jocher <glenn.jocher@ultralytics.com>, Jing Qiu <jing.qiu@ultralytics.com>
|
6
6
|
Maintainer-email: Ultralytics <hello@ultralytics.com>
|
@@ -117,6 +117,10 @@ ultralytics/data/dataset.py
|
|
117
117
|
ultralytics/data/loaders.py
|
118
118
|
ultralytics/data/split_dota.py
|
119
119
|
ultralytics/data/utils.py
|
120
|
+
ultralytics/data/scripts/download_weights.sh
|
121
|
+
ultralytics/data/scripts/get_coco.sh
|
122
|
+
ultralytics/data/scripts/get_coco128.sh
|
123
|
+
ultralytics/data/scripts/get_imagenet.sh
|
120
124
|
ultralytics/engine/__init__.py
|
121
125
|
ultralytics/engine/exporter.py
|
122
126
|
ultralytics/engine/model.py
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
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.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/11/yolo11-cls-resnet18.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.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml
RENAMED
File without changes
|
{ultralytics-8.3.109 → ultralytics-8.3.110}/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
|
{ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml
RENAMED
File without changes
|
{ultralytics-8.3.109 → ultralytics-8.3.110}/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
|