ultralytics 8.3.104__tar.gz → 8.3.106__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.104/ultralytics.egg-info → ultralytics-8.3.106}/PKG-INFO +1 -1
- {ultralytics-8.3.104 → ultralytics-8.3.106}/pyproject.toml +1 -1
- {ultralytics-8.3.104 → ultralytics-8.3.106}/tests/test_python.py +1 -1
- {ultralytics-8.3.104 → ultralytics-8.3.106}/tests/test_solutions.py +1 -1
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/__init__.py +1 -1
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/__init__.py +19 -17
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/default.yaml +0 -1
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/engine/exporter.py +8 -7
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/yolo/detect/val.py +0 -16
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/nn/modules/head.py +7 -5
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/solutions/object_counter.py +2 -1
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/solutions/solutions.py +1 -3
- {ultralytics-8.3.104 → ultralytics-8.3.106/ultralytics.egg-info}/PKG-INFO +1 -1
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics.egg-info/SOURCES.txt +0 -9
- ultralytics-8.3.104/tests/__init__.py +0 -22
- ultralytics-8.3.104/tests/conftest.py +0 -83
- {ultralytics-8.3.104 → ultralytics-8.3.106}/LICENSE +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/README.md +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/setup.cfg +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/tests/test_cli.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/tests/test_cuda.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/tests/test_engine.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/tests/test_exports.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/tests/test_integrations.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/assets/bus.jpg +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/assets/zidane.jpg +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/datasets/VOC.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/datasets/coco.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/datasets/coco128.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/datasets/coco8.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/datasets/dog-pose.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/datasets/dota8.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/datasets/hand-keypoints.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/datasets/lvis.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/datasets/medical-pills.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/datasets/signature.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/datasets/xView.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/11/yolo11-cls-resnet18.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/11/yolo11-cls.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/11/yolo11-obb.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/11/yolo11-pose.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/11/yolo11-seg.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/11/yolo11.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/11/yoloe-11-seg.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/11/yoloe-11.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/12/yolo12-cls.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/12/yolo12-obb.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/12/yolo12-pose.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/12/yolo12-seg.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/12/yolo12.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/v8/yoloe-v8-seg.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/v8/yoloe-v8.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/solutions/default.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/trackers/botsort.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/data/__init__.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/data/annotator.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/data/augment.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/data/base.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/data/build.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/data/converter.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/data/dataset.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/data/loaders.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/data/split_dota.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/data/utils.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/engine/__init__.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/engine/model.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/engine/predictor.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/engine/results.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/engine/trainer.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/engine/tuner.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/engine/validator.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/hub/__init__.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/hub/auth.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/hub/google/__init__.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/hub/session.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/hub/utils.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/__init__.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/fastsam/__init__.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/fastsam/model.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/fastsam/predict.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/fastsam/utils.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/fastsam/val.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/nas/__init__.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/nas/model.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/nas/predict.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/nas/val.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/rtdetr/__init__.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/rtdetr/model.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/rtdetr/predict.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/rtdetr/train.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/rtdetr/val.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/sam/__init__.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/sam/amg.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/sam/build.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/sam/model.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/sam/modules/__init__.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/sam/modules/blocks.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/sam/modules/decoders.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/sam/modules/encoders.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/sam/modules/memory_attention.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/sam/modules/sam.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/sam/modules/transformer.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/sam/modules/utils.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/sam/predict.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/utils/__init__.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/utils/loss.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/utils/ops.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/yolo/__init__.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/yolo/classify/__init__.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/yolo/classify/predict.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/yolo/classify/train.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/yolo/classify/val.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/yolo/detect/__init__.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/yolo/detect/predict.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/yolo/detect/train.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/yolo/model.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/yolo/obb/__init__.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/yolo/obb/predict.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/yolo/obb/train.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/yolo/obb/val.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/yolo/pose/__init__.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/yolo/pose/predict.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/yolo/pose/train.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/yolo/pose/val.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/yolo/segment/__init__.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/yolo/segment/predict.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/yolo/segment/train.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/yolo/segment/val.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/yolo/world/__init__.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/yolo/world/train.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/yolo/world/train_world.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/yolo/yoloe/__init__.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/yolo/yoloe/predict.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/yolo/yoloe/train.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/yolo/yoloe/train_seg.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/models/yolo/yoloe/val.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/nn/__init__.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/nn/autobackend.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/nn/modules/__init__.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/nn/modules/activation.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/nn/modules/block.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/nn/modules/conv.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/nn/modules/transformer.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/nn/modules/utils.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/nn/tasks.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/nn/text_model.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/solutions/__init__.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/solutions/ai_gym.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/solutions/analytics.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/solutions/distance_calculation.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/solutions/heatmap.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/solutions/instance_segmentation.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/solutions/object_blurrer.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/solutions/object_cropper.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/solutions/parking_management.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/solutions/queue_management.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/solutions/region_counter.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/solutions/security_alarm.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/solutions/speed_estimation.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/solutions/streamlit_inference.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/solutions/trackzone.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/solutions/vision_eye.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/trackers/__init__.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/trackers/basetrack.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/trackers/bot_sort.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/trackers/byte_tracker.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/trackers/track.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/trackers/utils/__init__.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/trackers/utils/gmc.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/trackers/utils/kalman_filter.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/trackers/utils/matching.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/utils/__init__.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/utils/autobatch.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/utils/benchmarks.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/utils/callbacks/__init__.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/utils/callbacks/base.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/utils/callbacks/clearml.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/utils/callbacks/comet.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/utils/callbacks/dvc.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/utils/callbacks/hub.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/utils/callbacks/mlflow.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/utils/callbacks/neptune.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/utils/callbacks/raytune.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/utils/callbacks/tensorboard.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/utils/callbacks/wb.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/utils/checks.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/utils/dist.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/utils/downloads.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/utils/errors.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/utils/files.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/utils/instance.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/utils/loss.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/utils/metrics.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/utils/ops.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/utils/patches.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/utils/plotting.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/utils/tal.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/utils/torch_utils.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/utils/triton.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics/utils/tuner.py +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics.egg-info/dependency_links.txt +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics.egg-info/entry_points.txt +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/ultralytics.egg-info/requires.txt +0 -0
- {ultralytics-8.3.104 → ultralytics-8.3.106}/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.106
|
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"
|
137
|
+
package-data = { "ultralytics" = ["**/*.yaml"], "ultralytics.assets" = ["*.jpg"] }
|
138
138
|
|
139
139
|
[tool.setuptools.dynamic]
|
140
140
|
version = { attr = "ultralytics.__version__" }
|
@@ -199,7 +199,7 @@ def test_track_stream():
|
|
199
199
|
|
200
200
|
def test_val():
|
201
201
|
"""Test the validation mode of the YOLO model."""
|
202
|
-
YOLO(MODEL).val(data="coco8.yaml", imgsz=32
|
202
|
+
YOLO(MODEL).val(data="coco8.yaml", imgsz=32)
|
203
203
|
|
204
204
|
|
205
205
|
def test_train_scratch():
|
@@ -20,7 +20,7 @@ PARKING_VIDEO = "solution_ci_parking_demo.mp4" # only for parking management so
|
|
20
20
|
PARKING_AREAS_JSON = "solution_ci_parking_areas.json" # only for parking management solution
|
21
21
|
PARKING_MODEL = "solutions_ci_parking_model.pt" # only for parking management solution
|
22
22
|
MODEL_FILE = "yolo11n.pt" # model file used for solutions, except parking management and instance segmentation
|
23
|
-
REGION = [(
|
23
|
+
REGION = [(10, 200), (540, 200), (540, 180), (10, 180)] # for object counting, speed estimation and queue management
|
24
24
|
|
25
25
|
# Test configs for each solution : (name, class, needs_frame_count, video, kwargs)
|
26
26
|
SOLUTIONS = [
|
@@ -214,7 +214,6 @@ CFG_BOOL_KEYS = frozenset(
|
|
214
214
|
"overlap_mask",
|
215
215
|
"val",
|
216
216
|
"save_json",
|
217
|
-
"save_hybrid",
|
218
217
|
"half",
|
219
218
|
"dnn",
|
220
219
|
"plots",
|
@@ -437,22 +436,25 @@ def _handle_deprecation(custom: Dict) -> Dict:
|
|
437
436
|
equivalents. It also handles value conversions where necessary, such as inverting boolean values for
|
438
437
|
'hide_labels' and 'hide_conf'.
|
439
438
|
"""
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
|
450
|
-
|
451
|
-
|
452
|
-
|
453
|
-
|
454
|
-
|
455
|
-
|
439
|
+
deprecated_mappings = {
|
440
|
+
"boxes": ("show_boxes", lambda v: v),
|
441
|
+
"hide_labels": ("show_labels", lambda v: not bool(v)),
|
442
|
+
"hide_conf": ("show_conf", lambda v: not bool(v)),
|
443
|
+
"line_thickness": ("line_width", lambda v: v),
|
444
|
+
}
|
445
|
+
removed_keys = {"label_smoothing", "save_hybrid"}
|
446
|
+
|
447
|
+
for old_key, (new_key, transform) in deprecated_mappings.items():
|
448
|
+
if old_key not in custom:
|
449
|
+
continue
|
450
|
+
deprecation_warn(old_key, new_key)
|
451
|
+
custom[new_key] = transform(custom.pop(old_key))
|
452
|
+
|
453
|
+
for key in removed_keys:
|
454
|
+
if key not in custom:
|
455
|
+
continue
|
456
|
+
deprecation_warn(key)
|
457
|
+
custom.pop(key)
|
456
458
|
|
457
459
|
return custom
|
458
460
|
|
@@ -47,7 +47,6 @@ dropout: 0.0 # (float) use dropout regularization (classify train only)
|
|
47
47
|
val: True # (bool) validate/test during training
|
48
48
|
split: val # (str) dataset split to use for validation, i.e. 'val', 'test' or 'train'
|
49
49
|
save_json: False # (bool) save results to JSON file
|
50
|
-
save_hybrid: False # (bool) save hybrid version of labels (labels + additional predictions)
|
51
50
|
conf: # (float, optional) object confidence threshold for detection (default 0.25 predict, 0.001 val)
|
52
51
|
iou: 0.7 # (float) intersection over union (IoU) threshold for NMS
|
53
52
|
max_det: 300 # (int) maximum number of detections per image
|
@@ -86,7 +86,6 @@ from ultralytics.utils import (
|
|
86
86
|
LINUX,
|
87
87
|
LOGGER,
|
88
88
|
MACOS,
|
89
|
-
PYTHON_VERSION,
|
90
89
|
RKNN_CHIPS,
|
91
90
|
ROOT,
|
92
91
|
WINDOWS,
|
@@ -795,7 +794,7 @@ class Exporter:
|
|
795
794
|
def export_coreml(self, prefix=colorstr("CoreML:")):
|
796
795
|
"""YOLO CoreML export."""
|
797
796
|
mlmodel = self.args.format.lower() == "mlmodel" # legacy *.mlmodel export format requested
|
798
|
-
check_requirements("coremltools>=
|
797
|
+
check_requirements("coremltools>=8.0")
|
799
798
|
import coremltools as ct # noqa
|
800
799
|
|
801
800
|
LOGGER.info(f"\n{prefix} starting export with coremltools {ct.__version__}...")
|
@@ -819,11 +818,15 @@ class Exporter:
|
|
819
818
|
# TODO CoreML Segment and Pose model pipelining
|
820
819
|
model = self.model
|
821
820
|
ts = torch.jit.trace(model.eval(), self.im, strict=False) # TorchScript model
|
821
|
+
|
822
|
+
# Based on apple's documentation it is better to leave out the minimum_deployment target and let that get set
|
823
|
+
# Internally based on the model conversion and output type.
|
824
|
+
# Setting minimum_depoloyment_target >= iOS16 will require setting compute_precision=ct.precision.FLOAT32.
|
825
|
+
# iOS16 adds in better support for FP16, but none of the CoreML NMS specifications handle FP16 as input.
|
822
826
|
ct_model = ct.convert(
|
823
827
|
ts,
|
824
828
|
inputs=[ct.ImageType("image", shape=self.im.shape, scale=scale, bias=bias)], # expects ct.TensorType
|
825
829
|
classifier_config=classifier_config,
|
826
|
-
minimum_deployment_target=ct.target.iOS15, # warning: >=16 causes pipeline errors
|
827
830
|
convert_to="neuralnetwork" if mlmodel else "mlprogram",
|
828
831
|
)
|
829
832
|
bits, mode = (8, "kmeans") if self.args.int8 else (16, "linear") if self.args.half else (32, None)
|
@@ -840,8 +843,6 @@ class Exporter:
|
|
840
843
|
ct_model = cto.palettize_weights(ct_model, config=config)
|
841
844
|
if self.args.nms and self.model.task == "detect":
|
842
845
|
if mlmodel:
|
843
|
-
# coremltools<=6.2 NMS export requires Python<3.11
|
844
|
-
check_version(PYTHON_VERSION, "<3.11", name="Python ", hard=True)
|
845
846
|
weights_dir = None
|
846
847
|
else:
|
847
848
|
ct_model.save(str(f)) # save otherwise weights_dir does not exist
|
@@ -1469,7 +1470,7 @@ class Exporter:
|
|
1469
1470
|
|
1470
1471
|
# 3. Create NMS protobuf
|
1471
1472
|
nms_spec = ct.proto.Model_pb2.Model()
|
1472
|
-
nms_spec.specificationVersion =
|
1473
|
+
nms_spec.specificationVersion = spec.specificationVersion
|
1473
1474
|
for i in range(2):
|
1474
1475
|
decoder_output = model._spec.description.output[i].SerializeToString()
|
1475
1476
|
nms_spec.description.input.add()
|
@@ -1522,7 +1523,7 @@ class Exporter:
|
|
1522
1523
|
pipeline.spec.description.output[1].ParseFromString(nms_model._spec.description.output[1].SerializeToString())
|
1523
1524
|
|
1524
1525
|
# Update metadata
|
1525
|
-
pipeline.spec.specificationVersion =
|
1526
|
+
pipeline.spec.specificationVersion = spec.specificationVersion
|
1526
1527
|
pipeline.spec.description.metadata.userDefined.update(
|
1527
1528
|
{"IoU threshold": str(nms.iouThreshold), "Confidence threshold": str(nms.confidenceThreshold)}
|
1528
1529
|
)
|
@@ -62,12 +62,6 @@ class DetectionValidator(BaseValidator):
|
|
62
62
|
self.metrics = DetMetrics(save_dir=self.save_dir)
|
63
63
|
self.iouv = torch.linspace(0.5, 0.95, 10) # IoU vector for mAP@0.5:0.95
|
64
64
|
self.niou = self.iouv.numel()
|
65
|
-
self.lb = [] # for autolabelling
|
66
|
-
if self.args.save_hybrid and self.args.task == "detect":
|
67
|
-
LOGGER.warning(
|
68
|
-
"WARNING ⚠️ 'save_hybrid=True' will append ground truth to predictions for autolabelling.\n"
|
69
|
-
"WARNING ⚠️ 'save_hybrid=True' will cause incorrect mAP.\n"
|
70
|
-
)
|
71
65
|
|
72
66
|
def preprocess(self, batch):
|
73
67
|
"""
|
@@ -84,15 +78,6 @@ class DetectionValidator(BaseValidator):
|
|
84
78
|
for k in ["batch_idx", "cls", "bboxes"]:
|
85
79
|
batch[k] = batch[k].to(self.device)
|
86
80
|
|
87
|
-
if self.args.save_hybrid and self.args.task == "detect":
|
88
|
-
height, width = batch["img"].shape[2:]
|
89
|
-
nb = len(batch["img"])
|
90
|
-
bboxes = batch["bboxes"] * torch.tensor((width, height, width, height), device=self.device)
|
91
|
-
self.lb = [
|
92
|
-
torch.cat([batch["cls"][batch["batch_idx"] == i], bboxes[batch["batch_idx"] == i]], dim=-1)
|
93
|
-
for i in range(nb)
|
94
|
-
]
|
95
|
-
|
96
81
|
return batch
|
97
82
|
|
98
83
|
def init_metrics(self, model):
|
@@ -139,7 +124,6 @@ class DetectionValidator(BaseValidator):
|
|
139
124
|
preds,
|
140
125
|
self.args.conf,
|
141
126
|
self.args.iou,
|
142
|
-
labels=self.lb,
|
143
127
|
nc=self.nc,
|
144
128
|
multi_label=True,
|
145
129
|
agnostic=self.args.single_cls or self.args.agnostic_nms,
|
@@ -369,8 +369,8 @@ class LRPCHead(nn.Module):
|
|
369
369
|
if self.enabled:
|
370
370
|
pf_score = self.pf(cls_feat)[0, 0].flatten(0)
|
371
371
|
mask = pf_score.sigmoid() > conf
|
372
|
-
|
373
|
-
cls_feat = self.vocab(cls_feat.
|
372
|
+
cls_feat = cls_feat.flatten(2).transpose(-1, -2)
|
373
|
+
cls_feat = self.vocab(cls_feat * mask.unsqueeze(-1).int() if not conf else cls_feat[:, mask])
|
374
374
|
return (self.loc(loc_feat), cls_feat.transpose(-1, -2)), mask
|
375
375
|
else:
|
376
376
|
cls_feat = self.vocab(cls_feat)
|
@@ -478,7 +478,9 @@ class YOLOEDetect(Detect):
|
|
478
478
|
cls_feat = self.cv3[i](x[i])
|
479
479
|
loc_feat = self.cv2[i](x[i])
|
480
480
|
assert isinstance(self.lrpc[i], LRPCHead)
|
481
|
-
x[i], mask = self.lrpc[i](
|
481
|
+
x[i], mask = self.lrpc[i](
|
482
|
+
cls_feat, loc_feat, 0 if self.export and not self.dynamic else getattr(self, "conf", 0.001)
|
483
|
+
)
|
482
484
|
masks.append(mask)
|
483
485
|
shape = x[0][0].shape
|
484
486
|
if self.dynamic or self.shape != shape:
|
@@ -499,7 +501,7 @@ class YOLOEDetect(Detect):
|
|
499
501
|
dbox = self.decode_bboxes(self.dfl(box), self.anchors.unsqueeze(0)) * self.strides
|
500
502
|
|
501
503
|
mask = torch.cat(masks)
|
502
|
-
y = torch.cat((dbox[
|
504
|
+
y = torch.cat((dbox if self.export and not self.dynamic else dbox[..., mask], cls.sigmoid()), 1)
|
503
505
|
|
504
506
|
if return_mask:
|
505
507
|
return (y, mask) if self.export else ((y, x), mask)
|
@@ -560,7 +562,7 @@ class YOLOESegment(YOLOEDetect):
|
|
560
562
|
return x, mc, p
|
561
563
|
|
562
564
|
if has_lrpc:
|
563
|
-
mc = mc
|
565
|
+
mc = (mc * mask.int()) if self.export and not self.dynamic else mc[..., mask]
|
564
566
|
|
565
567
|
return (torch.cat([x, mc], 1), p) if self.export else (torch.cat([x[0], mc], 1), (x[1], mc, p))
|
566
568
|
|
@@ -45,6 +45,7 @@ class ObjectCounter(BaseSolution):
|
|
45
45
|
|
46
46
|
self.show_in = self.CFG["show_in"]
|
47
47
|
self.show_out = self.CFG["show_out"]
|
48
|
+
self.margin = self.line_width * 2 # Scales the background rectangle size to display counts properly
|
48
49
|
|
49
50
|
def count_objects(self, current_centroid, track_id, prev_position, cls):
|
50
51
|
"""
|
@@ -144,7 +145,7 @@ class ObjectCounter(BaseSolution):
|
|
144
145
|
if value["IN"] != 0 or value["OUT"] != 0
|
145
146
|
}
|
146
147
|
if labels_dict:
|
147
|
-
self.annotator.display_analytics(plot_im, labels_dict, (104, 31, 17), (255, 255, 255),
|
148
|
+
self.annotator.display_analytics(plot_im, labels_dict, (104, 31, 17), (255, 255, 255), self.margin)
|
148
149
|
|
149
150
|
def process(self, im0):
|
150
151
|
"""
|
@@ -79,9 +79,7 @@ class BaseSolution:
|
|
79
79
|
self.LOGGER.info(f"Ultralytics Solutions: ✅ {DEFAULT_SOL_DICT}")
|
80
80
|
|
81
81
|
self.region = self.CFG["region"] # Store region data for other classes usage
|
82
|
-
self.line_width = (
|
83
|
-
self.CFG["line_width"] if self.CFG["line_width"] is not None else 2
|
84
|
-
) # Store line_width for usage
|
82
|
+
self.line_width = self.CFG["line_width"] if self.CFG["line_width"] not in (None, 0) else 2 # Store line_width
|
85
83
|
|
86
84
|
# Load Model and store classes names
|
87
85
|
if self.CFG["model"] is None:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: ultralytics
|
3
|
-
Version: 8.3.
|
3
|
+
Version: 8.3.106
|
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>
|
@@ -15,15 +15,6 @@ ultralytics.egg-info/dependency_links.txt
|
|
15
15
|
ultralytics.egg-info/entry_points.txt
|
16
16
|
ultralytics.egg-info/requires.txt
|
17
17
|
ultralytics.egg-info/top_level.txt
|
18
|
-
ultralytics/../tests/__init__.py
|
19
|
-
ultralytics/../tests/conftest.py
|
20
|
-
ultralytics/../tests/test_cli.py
|
21
|
-
ultralytics/../tests/test_cuda.py
|
22
|
-
ultralytics/../tests/test_engine.py
|
23
|
-
ultralytics/../tests/test_exports.py
|
24
|
-
ultralytics/../tests/test_integrations.py
|
25
|
-
ultralytics/../tests/test_python.py
|
26
|
-
ultralytics/../tests/test_solutions.py
|
27
18
|
ultralytics/assets/bus.jpg
|
28
19
|
ultralytics/assets/zidane.jpg
|
29
20
|
ultralytics/cfg/__init__.py
|
@@ -1,22 +0,0 @@
|
|
1
|
-
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
|
2
|
-
|
3
|
-
from ultralytics.utils import ASSETS, ROOT, WEIGHTS_DIR, checks
|
4
|
-
|
5
|
-
# Constants used in tests
|
6
|
-
MODEL = WEIGHTS_DIR / "path with spaces" / "yolo11n.pt" # test spaces in path
|
7
|
-
CFG = "yolo11n.yaml"
|
8
|
-
SOURCE = ASSETS / "bus.jpg"
|
9
|
-
SOURCES_LIST = [ASSETS / "bus.jpg", ASSETS, ASSETS / "*", ASSETS / "**/*.jpg"]
|
10
|
-
TMP = (ROOT / "../tests/tmp").resolve() # temp directory for test files
|
11
|
-
CUDA_IS_AVAILABLE = checks.cuda_is_available()
|
12
|
-
CUDA_DEVICE_COUNT = checks.cuda_device_count()
|
13
|
-
|
14
|
-
__all__ = (
|
15
|
-
"MODEL",
|
16
|
-
"CFG",
|
17
|
-
"SOURCE",
|
18
|
-
"SOURCES_LIST",
|
19
|
-
"TMP",
|
20
|
-
"CUDA_IS_AVAILABLE",
|
21
|
-
"CUDA_DEVICE_COUNT",
|
22
|
-
)
|
@@ -1,83 +0,0 @@
|
|
1
|
-
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
|
2
|
-
|
3
|
-
import shutil
|
4
|
-
from pathlib import Path
|
5
|
-
|
6
|
-
from tests import TMP
|
7
|
-
|
8
|
-
|
9
|
-
def pytest_addoption(parser):
|
10
|
-
"""
|
11
|
-
Add custom command-line options to pytest.
|
12
|
-
|
13
|
-
Args:
|
14
|
-
parser (pytest.config.Parser): The pytest parser object for adding custom command-line options.
|
15
|
-
|
16
|
-
Returns:
|
17
|
-
(None)
|
18
|
-
"""
|
19
|
-
parser.addoption("--slow", action="store_true", default=False, help="Run slow tests")
|
20
|
-
|
21
|
-
|
22
|
-
def pytest_collection_modifyitems(config, items):
|
23
|
-
"""
|
24
|
-
Modify the list of test items to exclude tests marked as slow if the --slow option is not specified.
|
25
|
-
|
26
|
-
Args:
|
27
|
-
config (pytest.config.Config): The pytest configuration object that provides access to command-line options.
|
28
|
-
items (list): The list of collected pytest item objects to be modified based on the presence of --slow option.
|
29
|
-
|
30
|
-
Returns:
|
31
|
-
(None): The function modifies the 'items' list in place.
|
32
|
-
"""
|
33
|
-
if not config.getoption("--slow"):
|
34
|
-
# Remove the item entirely from the list of test items if it's marked as 'slow'
|
35
|
-
items[:] = [item for item in items if "slow" not in item.keywords]
|
36
|
-
|
37
|
-
|
38
|
-
def pytest_sessionstart(session):
|
39
|
-
"""
|
40
|
-
Initialize session configurations for pytest.
|
41
|
-
|
42
|
-
This function is automatically called by pytest after the 'Session' object has been created but before performing
|
43
|
-
test collection. It sets the initial seeds and prepares the temporary directory for the test session.
|
44
|
-
|
45
|
-
Args:
|
46
|
-
session (pytest.Session): The pytest session object.
|
47
|
-
|
48
|
-
Returns:
|
49
|
-
(None)
|
50
|
-
"""
|
51
|
-
from ultralytics.utils.torch_utils import init_seeds
|
52
|
-
|
53
|
-
init_seeds()
|
54
|
-
shutil.rmtree(TMP, ignore_errors=True) # delete any existing tests/tmp directory
|
55
|
-
TMP.mkdir(parents=True, exist_ok=True) # create a new empty directory
|
56
|
-
|
57
|
-
|
58
|
-
def pytest_terminal_summary(terminalreporter, exitstatus, config):
|
59
|
-
"""
|
60
|
-
Cleanup operations after pytest session.
|
61
|
-
|
62
|
-
This function is automatically called by pytest at the end of the entire test session. It removes certain files
|
63
|
-
and directories used during testing.
|
64
|
-
|
65
|
-
Args:
|
66
|
-
terminalreporter (pytest.terminal.TerminalReporter): The terminal reporter object used for terminal output.
|
67
|
-
exitstatus (int): The exit status of the test run.
|
68
|
-
config (pytest.config.Config): The pytest config object.
|
69
|
-
|
70
|
-
Returns:
|
71
|
-
(None)
|
72
|
-
"""
|
73
|
-
from ultralytics.utils import WEIGHTS_DIR
|
74
|
-
|
75
|
-
# Remove files
|
76
|
-
models = [path for x in ["*.onnx", "*.torchscript"] for path in WEIGHTS_DIR.rglob(x)]
|
77
|
-
for file in ["decelera_portrait_min.mov", "bus.jpg", "yolo11n.onnx", "yolo11n.torchscript"] + models:
|
78
|
-
Path(file).unlink(missing_ok=True)
|
79
|
-
|
80
|
-
# Remove directories
|
81
|
-
models = [path for x in ["*.mlpackage", "*_openvino_model"] for path in WEIGHTS_DIR.rglob(x)]
|
82
|
-
for directory in [WEIGHTS_DIR / "path with spaces", TMP.parents[1] / ".pytest_cache", TMP] + models:
|
83
|
-
shutil.rmtree(directory, ignore_errors=True)
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
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.104 → ultralytics-8.3.106}/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.104 → ultralytics-8.3.106}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml
RENAMED
File without changes
|
{ultralytics-8.3.104 → ultralytics-8.3.106}/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.104 → ultralytics-8.3.106}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml
RENAMED
File without changes
|
{ultralytics-8.3.104 → ultralytics-8.3.106}/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
|