ultralytics 8.3.210__tar.gz → 8.3.212__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.210 → ultralytics-8.3.212}/PKG-INFO +1 -1
- {ultralytics-8.3.210 → ultralytics-8.3.212}/tests/test_integrations.py +4 -7
- {ultralytics-8.3.210 → ultralytics-8.3.212}/tests/test_python.py +7 -11
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/__init__.py +1 -1
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/data/converter.py +2 -4
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/data/utils.py +2 -2
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/engine/trainer.py +8 -8
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/utils/benchmarks.py +2 -2
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/utils/checks.py +2 -1
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/utils/downloads.py +6 -8
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics.egg-info/PKG-INFO +1 -1
- {ultralytics-8.3.210 → ultralytics-8.3.212}/LICENSE +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/README.md +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/pyproject.toml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/setup.cfg +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/tests/__init__.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/tests/conftest.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/tests/test_cli.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/tests/test_cuda.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/tests/test_engine.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/tests/test_exports.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/tests/test_solutions.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/assets/bus.jpg +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/assets/zidane.jpg +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/__init__.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/datasets/HomeObjects-3K.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/datasets/VOC.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/datasets/coco.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/datasets/coco128.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/datasets/coco8-grayscale.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/datasets/coco8-multispectral.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/datasets/coco8.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/datasets/construction-ppe.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/datasets/dog-pose.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/datasets/dota8-multispectral.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/datasets/dota8.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/datasets/hand-keypoints.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/datasets/lvis.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/datasets/medical-pills.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/datasets/signature.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/datasets/xView.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/default.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/11/yolo11-cls-resnet18.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/11/yolo11-cls.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/11/yolo11-obb.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/11/yolo11-pose.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/11/yolo11-seg.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/11/yolo11.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/11/yoloe-11-seg.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/11/yoloe-11.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/12/yolo12-cls.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/12/yolo12-obb.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/12/yolo12-pose.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/12/yolo12-seg.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/12/yolo12.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/v8/yoloe-v8-seg.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/v8/yoloe-v8.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/trackers/botsort.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/data/__init__.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/data/annotator.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/data/augment.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/data/base.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/data/build.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/data/dataset.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/data/loaders.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/data/scripts/download_weights.sh +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/data/scripts/get_coco.sh +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/data/scripts/get_coco128.sh +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/data/scripts/get_imagenet.sh +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/data/split.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/data/split_dota.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/engine/__init__.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/engine/exporter.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/engine/model.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/engine/predictor.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/engine/results.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/engine/tuner.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/engine/validator.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/hub/__init__.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/hub/auth.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/hub/google/__init__.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/hub/session.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/hub/utils.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/__init__.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/fastsam/__init__.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/fastsam/model.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/fastsam/predict.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/fastsam/utils.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/fastsam/val.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/nas/__init__.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/nas/model.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/nas/predict.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/nas/val.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/rtdetr/__init__.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/rtdetr/model.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/rtdetr/predict.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/rtdetr/train.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/rtdetr/val.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/sam/__init__.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/sam/amg.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/sam/build.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/sam/model.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/sam/modules/__init__.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/sam/modules/blocks.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/sam/modules/decoders.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/sam/modules/encoders.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/sam/modules/memory_attention.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/sam/modules/sam.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/sam/modules/transformer.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/sam/modules/utils.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/sam/predict.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/utils/__init__.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/utils/loss.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/utils/ops.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/yolo/__init__.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/yolo/classify/__init__.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/yolo/classify/predict.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/yolo/classify/train.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/yolo/classify/val.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/yolo/detect/__init__.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/yolo/detect/predict.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/yolo/detect/train.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/yolo/detect/val.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/yolo/model.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/yolo/obb/__init__.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/yolo/obb/predict.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/yolo/obb/train.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/yolo/obb/val.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/yolo/pose/__init__.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/yolo/pose/predict.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/yolo/pose/train.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/yolo/pose/val.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/yolo/segment/__init__.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/yolo/segment/predict.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/yolo/segment/train.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/yolo/segment/val.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/yolo/world/__init__.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/yolo/world/train.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/yolo/world/train_world.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/yolo/yoloe/__init__.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/yolo/yoloe/predict.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/yolo/yoloe/train.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/yolo/yoloe/train_seg.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/models/yolo/yoloe/val.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/nn/__init__.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/nn/autobackend.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/nn/modules/__init__.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/nn/modules/activation.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/nn/modules/block.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/nn/modules/conv.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/nn/modules/head.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/nn/modules/transformer.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/nn/modules/utils.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/nn/tasks.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/nn/text_model.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/py.typed +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/solutions/__init__.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/solutions/ai_gym.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/solutions/analytics.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/solutions/config.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/solutions/distance_calculation.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/solutions/heatmap.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/solutions/instance_segmentation.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/solutions/object_blurrer.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/solutions/object_counter.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/solutions/object_cropper.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/solutions/parking_management.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/solutions/queue_management.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/solutions/region_counter.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/solutions/security_alarm.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/solutions/similarity_search.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/solutions/solutions.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/solutions/speed_estimation.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/solutions/streamlit_inference.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/solutions/templates/similarity-search.html +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/solutions/trackzone.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/solutions/vision_eye.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/trackers/__init__.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/trackers/basetrack.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/trackers/bot_sort.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/trackers/byte_tracker.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/trackers/track.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/trackers/utils/__init__.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/trackers/utils/gmc.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/trackers/utils/kalman_filter.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/trackers/utils/matching.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/utils/__init__.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/utils/autobatch.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/utils/autodevice.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/utils/callbacks/__init__.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/utils/callbacks/base.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/utils/callbacks/clearml.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/utils/callbacks/comet.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/utils/callbacks/dvc.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/utils/callbacks/hub.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/utils/callbacks/mlflow.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/utils/callbacks/neptune.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/utils/callbacks/platform.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/utils/callbacks/raytune.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/utils/callbacks/tensorboard.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/utils/callbacks/wb.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/utils/cpu.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/utils/dist.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/utils/errors.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/utils/events.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/utils/export/__init__.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/utils/export/imx.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/utils/files.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/utils/git.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/utils/instance.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/utils/logger.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/utils/loss.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/utils/metrics.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/utils/nms.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/utils/ops.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/utils/patches.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/utils/plotting.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/utils/tal.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/utils/torch_utils.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/utils/tqdm.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/utils/triton.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/utils/tuner.py +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics.egg-info/SOURCES.txt +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics.egg-info/dependency_links.txt +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics.egg-info/entry_points.txt +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics.egg-info/requires.txt +0 -0
- {ultralytics-8.3.210 → ultralytics-8.3.212}/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.212
|
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>
|
@@ -10,7 +10,7 @@ import pytest
|
|
10
10
|
|
11
11
|
from tests import MODEL, SOURCE, TMP
|
12
12
|
from ultralytics import YOLO, download
|
13
|
-
from ultralytics.utils import DATASETS_DIR, SETTINGS
|
13
|
+
from ultralytics.utils import ASSETS_URL, DATASETS_DIR, SETTINGS
|
14
14
|
from ultralytics.utils.checks import check_requirements
|
15
15
|
|
16
16
|
|
@@ -129,26 +129,23 @@ def test_faster_coco_eval():
|
|
129
129
|
from ultralytics.models.yolo.pose import PoseValidator
|
130
130
|
from ultralytics.models.yolo.segment import SegmentationValidator
|
131
131
|
|
132
|
-
# Download annotations after each dataset downloads first
|
133
|
-
url = "https://github.com/ultralytics/assets/releases/download/v0.0.0/"
|
134
|
-
|
135
132
|
args = {"model": "yolo11n.pt", "data": "coco8.yaml", "save_json": True, "imgsz": 64}
|
136
133
|
validator = DetectionValidator(args=args)
|
137
134
|
validator()
|
138
135
|
validator.is_coco = True
|
139
|
-
download(f"{
|
136
|
+
download(f"{ASSETS_URL}/instances_val2017.json", dir=DATASETS_DIR / "coco8/annotations")
|
140
137
|
_ = validator.eval_json(validator.stats)
|
141
138
|
|
142
139
|
args = {"model": "yolo11n-seg.pt", "data": "coco8-seg.yaml", "save_json": True, "imgsz": 64}
|
143
140
|
validator = SegmentationValidator(args=args)
|
144
141
|
validator()
|
145
142
|
validator.is_coco = True
|
146
|
-
download(f"{
|
143
|
+
download(f"{ASSETS_URL}/instances_val2017.json", dir=DATASETS_DIR / "coco8-seg/annotations")
|
147
144
|
_ = validator.eval_json(validator.stats)
|
148
145
|
|
149
146
|
args = {"model": "yolo11n-pose.pt", "data": "coco8-pose.yaml", "save_json": True, "imgsz": 64}
|
150
147
|
validator = PoseValidator(args=args)
|
151
148
|
validator()
|
152
149
|
validator.is_coco = True
|
153
|
-
download(f"{
|
150
|
+
download(f"{ASSETS_URL}/person_keypoints_val2017.json", dir=DATASETS_DIR / "coco8-pose/annotations")
|
154
151
|
_ = validator.eval_json(validator.stats)
|
@@ -20,6 +20,7 @@ from ultralytics.data.utils import check_det_dataset
|
|
20
20
|
from ultralytics.utils import (
|
21
21
|
ARM64,
|
22
22
|
ASSETS,
|
23
|
+
ASSETS_URL,
|
23
24
|
DEFAULT_CFG,
|
24
25
|
DEFAULT_CFG_PATH,
|
25
26
|
LINUX,
|
@@ -125,9 +126,7 @@ def test_predict_img(model_name):
|
|
125
126
|
batch = [
|
126
127
|
str(SOURCE), # filename
|
127
128
|
Path(SOURCE), # Path
|
128
|
-
"
|
129
|
-
if ONLINE
|
130
|
-
else SOURCE, # URI
|
129
|
+
f"{ASSETS_URL}/zidane.jpg?token=123" if ONLINE else SOURCE, # URI
|
131
130
|
im, # OpenCV
|
132
131
|
Image.open(SOURCE), # PIL
|
133
132
|
np.zeros((320, 640, channels), dtype=np.uint8), # numpy
|
@@ -190,7 +189,7 @@ def test_track_stream(model):
|
|
190
189
|
"""
|
191
190
|
if model == "yolo11n-cls.pt": # classification model not supported for tracking
|
192
191
|
return
|
193
|
-
video_url = "
|
192
|
+
video_url = f"{ASSETS_URL}/decelera_portrait_min.mov"
|
194
193
|
model = YOLO(model)
|
195
194
|
model.track(video_url, imgsz=160, tracker="bytetrack.yaml")
|
196
195
|
model.track(video_url, imgsz=160, tracker="botsort.yaml", save_frames=True) # test frame saving also
|
@@ -229,9 +228,7 @@ def test_train_scratch():
|
|
229
228
|
def test_train_ndjson():
|
230
229
|
"""Test training the YOLO model using NDJSON format dataset."""
|
231
230
|
model = YOLO(WEIGHTS_DIR / "yolo11n.pt")
|
232
|
-
model.train(
|
233
|
-
data="https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8-ndjson.ndjson", epochs=1, imgsz=32
|
234
|
-
)
|
231
|
+
model.train(data=f"{ASSETS_URL}/coco8-ndjson.ndjson", epochs=1, imgsz=32)
|
235
232
|
|
236
233
|
|
237
234
|
@pytest.mark.parametrize("scls", [False, True])
|
@@ -290,8 +287,8 @@ def test_predict_callback_and_setup():
|
|
290
287
|
@pytest.mark.parametrize("model", MODELS)
|
291
288
|
def test_results(model: str):
|
292
289
|
"""Test YOLO model results processing and output in various formats."""
|
293
|
-
|
294
|
-
results = YOLO(WEIGHTS_DIR / model)([
|
290
|
+
im = f"{ASSETS_URL}/boats.jpg" if model == "yolo11n-obb.pt" else SOURCE
|
291
|
+
results = YOLO(WEIGHTS_DIR / model)([im, im], imgsz=160)
|
295
292
|
for r in results:
|
296
293
|
assert len(r), f"'{model}' results should not be empty!"
|
297
294
|
r = r.cpu().numpy()
|
@@ -357,8 +354,7 @@ def test_data_converter():
|
|
357
354
|
"""Test dataset conversion functions from COCO to YOLO format and class mappings."""
|
358
355
|
from ultralytics.data.converter import coco80_to_coco91_class, convert_coco
|
359
356
|
|
360
|
-
|
361
|
-
download(f"https://github.com/ultralytics/assets/releases/download/v0.0.0/{file}", dir=TMP)
|
357
|
+
download(f"{ASSETS_URL}/instances_val2017.json", dir=TMP)
|
362
358
|
convert_coco(labels_dir=TMP, save_dir=TMP / "yolo_labels", use_segments=True, use_keypoints=False, cls91to80=True)
|
363
359
|
coco80_to_coco91_class()
|
364
360
|
|
@@ -14,7 +14,7 @@ import cv2
|
|
14
14
|
import numpy as np
|
15
15
|
from PIL import Image
|
16
16
|
|
17
|
-
from ultralytics.utils import DATASETS_DIR, LOGGER, NUM_THREADS, TQDM, YAML
|
17
|
+
from ultralytics.utils import ASSETS_URL, DATASETS_DIR, LOGGER, NUM_THREADS, TQDM, YAML
|
18
18
|
from ultralytics.utils.checks import check_file, check_requirements
|
19
19
|
from ultralytics.utils.downloads import download, zip_directory
|
20
20
|
from ultralytics.utils.files import increment_path
|
@@ -678,9 +678,7 @@ def create_synthetic_coco_dataset():
|
|
678
678
|
|
679
679
|
# Download labels
|
680
680
|
dir = DATASETS_DIR / "coco"
|
681
|
-
|
682
|
-
label_zip = "coco2017labels-segments.zip"
|
683
|
-
download([url + label_zip], dir=dir.parent)
|
681
|
+
download([f"{ASSETS_URL}/coco2017labels-segments.zip"], dir=dir.parent)
|
684
682
|
|
685
683
|
# Create synthetic images
|
686
684
|
shutil.rmtree(dir / "labels" / "test2017", ignore_errors=True) # Remove test2017 directory as not needed
|
@@ -19,6 +19,7 @@ from PIL import Image, ImageOps
|
|
19
19
|
|
20
20
|
from ultralytics.nn.autobackend import check_class_names
|
21
21
|
from ultralytics.utils import (
|
22
|
+
ASSETS_URL,
|
22
23
|
DATASETS_DIR,
|
23
24
|
LOGGER,
|
24
25
|
NUM_THREADS,
|
@@ -523,8 +524,7 @@ def check_cls_dataset(dataset: str | Path, split: str = "") -> dict[str, Any]:
|
|
523
524
|
if str(dataset) == "imagenet":
|
524
525
|
subprocess.run(["bash", str(ROOT / "data/scripts/get_imagenet.sh")], check=True)
|
525
526
|
else:
|
526
|
-
|
527
|
-
download(url, dir=data_dir.parent)
|
527
|
+
download(f"{ASSETS_URL}/{dataset}.zip", dir=data_dir.parent)
|
528
528
|
LOGGER.info(f"Dataset download success ✅ ({time.time() - t:.1f}s), saved to {colorstr('bold', data_dir)}\n")
|
529
529
|
train_set = data_dir / "train"
|
530
530
|
if not train_set.is_dir():
|
@@ -420,15 +420,10 @@ class BaseTrainer:
|
|
420
420
|
self.loss = loss.sum()
|
421
421
|
if RANK != -1:
|
422
422
|
self.loss *= self.world_size
|
423
|
-
if not self.loss.isfinite():
|
424
|
-
LOGGER.warning("Non-finite forward pass, skipping batch...")
|
425
|
-
continue
|
426
423
|
self.tloss = self.loss_items if self.tloss is None else (self.tloss * i + self.loss_items) / (i + 1)
|
427
424
|
|
428
425
|
# Backward
|
429
426
|
self.scaler.scale(self.loss).backward()
|
430
|
-
|
431
|
-
# Optimize - https://pytorch.org/docs/master/notes/amp_examples.html
|
432
427
|
if ni - last_opt_step >= self.accumulate:
|
433
428
|
self.optimizer_step()
|
434
429
|
last_opt_step = ni
|
@@ -557,7 +552,10 @@ class BaseTrainer:
|
|
557
552
|
"""Read results.csv into a dictionary using polars."""
|
558
553
|
import polars as pl # scope for faster 'import ultralytics'
|
559
554
|
|
560
|
-
|
555
|
+
try:
|
556
|
+
return pl.read_csv(self.csv, infer_schema_length=None).to_dict(as_series=False)
|
557
|
+
except Exception:
|
558
|
+
return {}
|
561
559
|
|
562
560
|
def _model_train(self):
|
563
561
|
"""Set model in training mode."""
|
@@ -601,6 +599,7 @@ class BaseTrainer:
|
|
601
599
|
serialized_ckpt = buffer.getvalue() # get the serialized content to save
|
602
600
|
|
603
601
|
# Save checkpoints
|
602
|
+
self.wdir.mkdir(parents=True, exist_ok=True) # ensure weights directory exists
|
604
603
|
self.last.write_bytes(serialized_ckpt) # save last.pt
|
605
604
|
if self.best_fitness == self.fitness:
|
606
605
|
self.best.write_bytes(serialized_ckpt) # save best.pt
|
@@ -666,7 +665,7 @@ class BaseTrainer:
|
|
666
665
|
def optimizer_step(self):
|
667
666
|
"""Perform a single step of the training optimizer with gradient clipping and EMA update."""
|
668
667
|
self.scaler.unscale_(self.optimizer) # unscale gradients
|
669
|
-
torch.nn.utils.clip_grad_norm_(self.model.parameters(), max_norm=10.0)
|
668
|
+
torch.nn.utils.clip_grad_norm_(self.model.parameters(), max_norm=10.0)
|
670
669
|
self.scaler.step(self.optimizer)
|
671
670
|
self.scaler.update()
|
672
671
|
self.optimizer.zero_grad()
|
@@ -741,8 +740,9 @@ class BaseTrainer:
|
|
741
740
|
"""Save training metrics to a CSV file."""
|
742
741
|
keys, vals = list(metrics.keys()), list(metrics.values())
|
743
742
|
n = len(metrics) + 2 # number of cols
|
744
|
-
s = "" if self.csv.exists() else (("%s," * n % tuple(["epoch", "time"] + keys)).rstrip(",") + "\n") # header
|
745
743
|
t = time.time() - self.train_time_start
|
744
|
+
self.csv.parent.mkdir(parents=True, exist_ok=True) # ensure parent directory exists
|
745
|
+
s = "" if self.csv.exists() else (("%s," * n % tuple(["epoch", "time"] + keys)).rstrip(",") + "\n") # header
|
746
746
|
with open(self.csv, "a", encoding="utf-8") as f:
|
747
747
|
f.write(s + ("%.6g," * n % tuple([self.epoch + 1, t] + vals)).rstrip(",") + "\n")
|
748
748
|
|
@@ -43,7 +43,7 @@ import torch.cuda
|
|
43
43
|
from ultralytics import YOLO, YOLOWorld
|
44
44
|
from ultralytics.cfg import TASK2DATA, TASK2METRIC
|
45
45
|
from ultralytics.engine.exporter import export_formats
|
46
|
-
from ultralytics.utils import ARM64, ASSETS, IS_JETSON, LINUX, LOGGER, MACOS, TQDM, WEIGHTS_DIR, YAML
|
46
|
+
from ultralytics.utils import ARM64, ASSETS, ASSETS_URL, IS_JETSON, LINUX, LOGGER, MACOS, TQDM, WEIGHTS_DIR, YAML
|
47
47
|
from ultralytics.utils.checks import IS_PYTHON_3_13, check_imgsz, check_requirements, check_yolo, is_rockchip
|
48
48
|
from ultralytics.utils.downloads import safe_download
|
49
49
|
from ultralytics.utils.files import file_size
|
@@ -281,7 +281,7 @@ class RF100Benchmark:
|
|
281
281
|
(shutil.rmtree("rf-100"), os.mkdir("rf-100")) if os.path.exists("rf-100") else os.mkdir("rf-100")
|
282
282
|
os.chdir("rf-100")
|
283
283
|
os.mkdir("ultralytics-benchmarks")
|
284
|
-
safe_download("
|
284
|
+
safe_download(f"{ASSETS_URL}/datasets_links.txt")
|
285
285
|
|
286
286
|
with open(ds_link_txt, encoding="utf-8") as file:
|
287
287
|
for line in file:
|
@@ -23,6 +23,7 @@ import torch
|
|
23
23
|
from ultralytics.utils import (
|
24
24
|
ARM64,
|
25
25
|
ASSETS,
|
26
|
+
ASSETS_URL,
|
26
27
|
AUTOINSTALL,
|
27
28
|
GIT,
|
28
29
|
IS_COLAB,
|
@@ -336,7 +337,7 @@ def check_font(font="Arial.ttf"):
|
|
336
337
|
return matches[0]
|
337
338
|
|
338
339
|
# Download to USER_CONFIG_DIR if missing
|
339
|
-
url = f"
|
340
|
+
url = f"{ASSETS_URL}/{name}"
|
340
341
|
if downloads.is_url(url, check=True):
|
341
342
|
downloads.safe_download(url=url, file=file)
|
342
343
|
return file
|
@@ -10,7 +10,7 @@ from multiprocessing.pool import ThreadPool
|
|
10
10
|
from pathlib import Path
|
11
11
|
from urllib import parse, request
|
12
12
|
|
13
|
-
from ultralytics.utils import LOGGER, TQDM, checks, clean_url, emojis, is_online, url2file
|
13
|
+
from ultralytics.utils import ASSETS_URL, LOGGER, TQDM, checks, clean_url, emojis, is_online, url2file
|
14
14
|
|
15
15
|
# Define Ultralytics GitHub assets maintained at https://github.com/ultralytics/assets
|
16
16
|
GITHUB_ASSETS_REPO = "ultralytics/assets"
|
@@ -60,10 +60,11 @@ def is_url(url: str | Path, check: bool = False) -> bool:
|
|
60
60
|
try:
|
61
61
|
url = str(url)
|
62
62
|
result = parse.urlparse(url)
|
63
|
-
|
63
|
+
if not (result.scheme and result.netloc):
|
64
|
+
return False
|
64
65
|
if check:
|
65
|
-
|
66
|
-
|
66
|
+
r = request.urlopen(request.Request(url, method="HEAD"), timeout=3)
|
67
|
+
return 200 <= r.getcode() < 400
|
67
68
|
return True
|
68
69
|
except Exception:
|
69
70
|
return False
|
@@ -323,10 +324,7 @@ def safe_download(
|
|
323
324
|
if "://" not in str(url) and Path(url).is_file(): # URL exists ('://' check required in Windows Python<3.10)
|
324
325
|
f = Path(url) # filename
|
325
326
|
elif not f.is_file(): # URL and file do not exist
|
326
|
-
uri = (url if gdrive else clean_url(url)).replace( #
|
327
|
-
"https://github.com/ultralytics/assets/releases/download/v0.0.0/",
|
328
|
-
"https://ultralytics.com/assets/", # assets alias
|
329
|
-
)
|
327
|
+
uri = (url if gdrive else clean_url(url)).replace(ASSETS_URL, "https://ultralytics.com/assets") # clean
|
330
328
|
desc = f"Downloading {uri} to '{f}'"
|
331
329
|
f.parent.mkdir(parents=True, exist_ok=True) # make directory if missing
|
332
330
|
curl_installed = shutil.which("curl")
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: ultralytics
|
3
|
-
Version: 8.3.
|
3
|
+
Version: 8.3.212
|
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>
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
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.210 → ultralytics-8.3.212}/ultralytics/cfg/datasets/coco8-multispectral.yaml
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{ultralytics-8.3.210 → ultralytics-8.3.212}/ultralytics/cfg/datasets/dota8-multispectral.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
|
{ultralytics-8.3.210 → ultralytics-8.3.212}/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.210 → ultralytics-8.3.212}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml
RENAMED
File without changes
|
{ultralytics-8.3.210 → ultralytics-8.3.212}/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.210 → ultralytics-8.3.212}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml
RENAMED
File without changes
|
{ultralytics-8.3.210 → ultralytics-8.3.212}/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
|