ultralytics 8.3.218__tar.gz → 8.3.220__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.218 → ultralytics-8.3.220}/PKG-INFO +1 -1
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/tests/test_cli.py +8 -1
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/tests/test_exports.py +37 -9
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/__init__.py +1 -1
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/default.yaml +1 -1
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/engine/exporter.py +57 -4
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/engine/predictor.py +1 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/fastsam/predict.py +10 -16
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/nn/autobackend.py +27 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/solutions/similarity_search.py +2 -2
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/utils/torch_utils.py +1 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics.egg-info/PKG-INFO +1 -1
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/LICENSE +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/README.md +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/pyproject.toml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/setup.cfg +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/tests/__init__.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/tests/conftest.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/tests/test_cuda.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/tests/test_engine.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/tests/test_integrations.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/tests/test_python.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/tests/test_solutions.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/assets/bus.jpg +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/assets/zidane.jpg +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/__init__.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/datasets/HomeObjects-3K.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/datasets/VOC.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/datasets/coco.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/datasets/coco128.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/datasets/coco8-grayscale.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/datasets/coco8-multispectral.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/datasets/coco8.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/datasets/construction-ppe.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/datasets/dog-pose.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/datasets/dota8-multispectral.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/datasets/dota8.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/datasets/hand-keypoints.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/datasets/lvis.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/datasets/medical-pills.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/datasets/signature.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/datasets/xView.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/11/yolo11-cls-resnet18.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/11/yolo11-cls.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/11/yolo11-obb.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/11/yolo11-pose.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/11/yolo11-seg.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/11/yolo11.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/11/yoloe-11-seg.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/11/yoloe-11.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/12/yolo12-cls.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/12/yolo12-obb.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/12/yolo12-pose.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/12/yolo12-seg.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/12/yolo12.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/v8/yoloe-v8-seg.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/v8/yoloe-v8.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/trackers/botsort.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/data/__init__.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/data/annotator.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/data/augment.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/data/base.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/data/build.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/data/converter.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/data/dataset.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/data/loaders.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/data/scripts/download_weights.sh +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/data/scripts/get_coco.sh +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/data/scripts/get_coco128.sh +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/data/scripts/get_imagenet.sh +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/data/split.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/data/split_dota.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/data/utils.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/engine/__init__.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/engine/model.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/engine/results.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/engine/trainer.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/engine/tuner.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/engine/validator.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/hub/__init__.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/hub/auth.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/hub/google/__init__.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/hub/session.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/hub/utils.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/__init__.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/fastsam/__init__.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/fastsam/model.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/fastsam/utils.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/fastsam/val.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/nas/__init__.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/nas/model.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/nas/predict.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/nas/val.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/rtdetr/__init__.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/rtdetr/model.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/rtdetr/predict.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/rtdetr/train.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/rtdetr/val.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/sam/__init__.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/sam/amg.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/sam/build.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/sam/model.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/sam/modules/__init__.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/sam/modules/blocks.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/sam/modules/decoders.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/sam/modules/encoders.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/sam/modules/memory_attention.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/sam/modules/sam.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/sam/modules/transformer.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/sam/modules/utils.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/sam/predict.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/utils/__init__.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/utils/loss.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/utils/ops.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/yolo/__init__.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/yolo/classify/__init__.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/yolo/classify/predict.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/yolo/classify/train.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/yolo/classify/val.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/yolo/detect/__init__.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/yolo/detect/predict.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/yolo/detect/train.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/yolo/detect/val.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/yolo/model.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/yolo/obb/__init__.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/yolo/obb/predict.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/yolo/obb/train.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/yolo/obb/val.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/yolo/pose/__init__.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/yolo/pose/predict.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/yolo/pose/train.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/yolo/pose/val.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/yolo/segment/__init__.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/yolo/segment/predict.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/yolo/segment/train.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/yolo/segment/val.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/yolo/world/__init__.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/yolo/world/train.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/yolo/world/train_world.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/yolo/yoloe/__init__.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/yolo/yoloe/predict.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/yolo/yoloe/train.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/yolo/yoloe/train_seg.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/models/yolo/yoloe/val.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/nn/__init__.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/nn/modules/__init__.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/nn/modules/activation.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/nn/modules/block.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/nn/modules/conv.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/nn/modules/head.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/nn/modules/transformer.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/nn/modules/utils.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/nn/tasks.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/nn/text_model.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/py.typed +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/solutions/__init__.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/solutions/ai_gym.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/solutions/analytics.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/solutions/config.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/solutions/distance_calculation.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/solutions/heatmap.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/solutions/instance_segmentation.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/solutions/object_blurrer.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/solutions/object_counter.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/solutions/object_cropper.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/solutions/parking_management.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/solutions/queue_management.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/solutions/region_counter.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/solutions/security_alarm.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/solutions/solutions.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/solutions/speed_estimation.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/solutions/streamlit_inference.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/solutions/templates/similarity-search.html +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/solutions/trackzone.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/solutions/vision_eye.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/trackers/__init__.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/trackers/basetrack.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/trackers/bot_sort.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/trackers/byte_tracker.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/trackers/track.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/trackers/utils/__init__.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/trackers/utils/gmc.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/trackers/utils/kalman_filter.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/trackers/utils/matching.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/utils/__init__.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/utils/autobatch.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/utils/autodevice.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/utils/benchmarks.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/utils/callbacks/__init__.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/utils/callbacks/base.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/utils/callbacks/clearml.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/utils/callbacks/comet.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/utils/callbacks/dvc.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/utils/callbacks/hub.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/utils/callbacks/mlflow.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/utils/callbacks/neptune.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/utils/callbacks/platform.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/utils/callbacks/raytune.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/utils/callbacks/tensorboard.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/utils/callbacks/wb.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/utils/checks.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/utils/cpu.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/utils/dist.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/utils/downloads.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/utils/errors.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/utils/events.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/utils/export/__init__.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/utils/export/imx.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/utils/files.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/utils/git.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/utils/instance.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/utils/logger.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/utils/loss.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/utils/metrics.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/utils/nms.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/utils/ops.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/utils/patches.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/utils/plotting.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/utils/tal.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/utils/tqdm.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/utils/triton.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics/utils/tuner.py +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics.egg-info/SOURCES.txt +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics.egg-info/dependency_links.txt +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics.egg-info/entry_points.txt +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/ultralytics.egg-info/requires.txt +0 -0
 - {ultralytics-8.3.218 → ultralytics-8.3.220}/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.220
         
     | 
| 
       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>
         
     | 
| 
         @@ -8,7 +8,7 @@ from PIL import Image 
     | 
|
| 
       8 
8 
     | 
    
         | 
| 
       9 
9 
     | 
    
         
             
            from tests import CUDA_DEVICE_COUNT, CUDA_IS_AVAILABLE, MODELS, TASK_MODEL_DATA
         
     | 
| 
       10 
10 
     | 
    
         
             
            from ultralytics.utils import ARM64, ASSETS, LINUX, WEIGHTS_DIR, checks
         
     | 
| 
       11 
     | 
    
         
            -
            from ultralytics.utils.torch_utils import TORCH_1_11
         
     | 
| 
      
 11 
     | 
    
         
            +
            from ultralytics.utils.torch_utils import TORCH_1_11, TORCH_2_9, WINDOWS
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
       13 
13 
     | 
    
         | 
| 
       14 
14 
     | 
    
         
             
            def run(cmd: str) -> None:
         
     | 
| 
         @@ -129,3 +129,10 @@ def test_train_gpu(task: str, model: str, data: str) -> None: 
     | 
|
| 
       129 
129 
     | 
    
         
             
            def test_solutions(solution: str) -> None:
         
     | 
| 
       130 
130 
     | 
    
         
             
                """Test yolo solutions command-line modes."""
         
     | 
| 
       131 
131 
     | 
    
         
             
                run(f"yolo solutions {solution} verbose=False")
         
     | 
| 
      
 132 
     | 
    
         
            +
             
     | 
| 
      
 133 
     | 
    
         
            +
             
     | 
| 
      
 134 
     | 
    
         
            +
            @pytest.mark.skipif(not checks.IS_PYTHON_MINIMUM_3_10 or not TORCH_2_9, reason="Requires Python>=3.10 and Torch>=2.9.0")
         
     | 
| 
      
 135 
     | 
    
         
            +
            @pytest.mark.skipif(WINDOWS, reason="Skipping test on Windows")
         
     | 
| 
      
 136 
     | 
    
         
            +
            def test_export_executorch() -> None:
         
     | 
| 
      
 137 
     | 
    
         
            +
                """Test exporting a YOLO model to ExecuTorch format via CLI."""
         
     | 
| 
      
 138 
     | 
    
         
            +
                run("yolo export model=yolo11n.pt format=executorch imgsz=32")
         
     | 
| 
         @@ -12,15 +12,8 @@ import pytest 
     | 
|
| 
       12 
12 
     | 
    
         
             
            from tests import MODEL, SOURCE
         
     | 
| 
       13 
13 
     | 
    
         
             
            from ultralytics import YOLO
         
     | 
| 
       14 
14 
     | 
    
         
             
            from ultralytics.cfg import TASK2DATA, TASK2MODEL, TASKS
         
     | 
| 
       15 
     | 
    
         
            -
            from ultralytics.utils import  
     | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
       17 
     | 
    
         
            -
                IS_RASPBERRYPI,
         
     | 
| 
       18 
     | 
    
         
            -
                LINUX,
         
     | 
| 
       19 
     | 
    
         
            -
                MACOS,
         
     | 
| 
       20 
     | 
    
         
            -
                WINDOWS,
         
     | 
| 
       21 
     | 
    
         
            -
                checks,
         
     | 
| 
       22 
     | 
    
         
            -
            )
         
     | 
| 
       23 
     | 
    
         
            -
            from ultralytics.utils.torch_utils import TORCH_1_11, TORCH_1_13, TORCH_2_1
         
     | 
| 
      
 15 
     | 
    
         
            +
            from ultralytics.utils import ARM64, IS_RASPBERRYPI, LINUX, MACOS, WINDOWS, checks
         
     | 
| 
      
 16 
     | 
    
         
            +
            from ultralytics.utils.torch_utils import TORCH_1_11, TORCH_1_13, TORCH_2_1, TORCH_2_9
         
     | 
| 
       24 
17 
     | 
    
         | 
| 
       25 
18 
     | 
    
         | 
| 
       26 
19 
     | 
    
         
             
            def test_export_torchscript():
         
     | 
| 
         @@ -262,3 +255,38 @@ def test_export_imx(): 
     | 
|
| 
       262 
255 
     | 
    
         
             
                model = YOLO("yolov8n.pt")
         
     | 
| 
       263 
256 
     | 
    
         
             
                file = model.export(format="imx", imgsz=32)
         
     | 
| 
       264 
257 
     | 
    
         
             
                YOLO(file)(SOURCE, imgsz=32)
         
     | 
| 
      
 258 
     | 
    
         
            +
             
     | 
| 
      
 259 
     | 
    
         
            +
             
     | 
| 
      
 260 
     | 
    
         
            +
            @pytest.mark.skipif(not checks.IS_PYTHON_MINIMUM_3_10 or not TORCH_2_9, reason="Requires Python>=3.10 and Torch>=2.9.0")
         
     | 
| 
      
 261 
     | 
    
         
            +
            @pytest.mark.skipif(WINDOWS, reason="Skipping test on Windows")
         
     | 
| 
      
 262 
     | 
    
         
            +
            def test_export_executorch():
         
     | 
| 
      
 263 
     | 
    
         
            +
                """Test YOLO model export to ExecuTorch format."""
         
     | 
| 
      
 264 
     | 
    
         
            +
                file = YOLO(MODEL).export(format="executorch", imgsz=32)
         
     | 
| 
      
 265 
     | 
    
         
            +
                assert Path(file).exists(), f"ExecuTorch export failed, directory not found: {file}"
         
     | 
| 
      
 266 
     | 
    
         
            +
                # Check that .pte file exists in the exported directory
         
     | 
| 
      
 267 
     | 
    
         
            +
                pte_file = Path(file) / Path(MODEL).with_suffix(".pte").name
         
     | 
| 
      
 268 
     | 
    
         
            +
                assert pte_file.exists(), f"ExecuTorch .pte file not found: {pte_file}"
         
     | 
| 
      
 269 
     | 
    
         
            +
                # Check that metadata.yaml exists
         
     | 
| 
      
 270 
     | 
    
         
            +
                metadata_file = Path(file) / "metadata.yaml"
         
     | 
| 
      
 271 
     | 
    
         
            +
                assert metadata_file.exists(), f"ExecuTorch metadata.yaml not found: {metadata_file}"
         
     | 
| 
      
 272 
     | 
    
         
            +
                # Note: Inference testing skipped as ExecuTorch requires special runtime setup
         
     | 
| 
      
 273 
     | 
    
         
            +
                shutil.rmtree(file, ignore_errors=True)  # cleanup
         
     | 
| 
      
 274 
     | 
    
         
            +
             
     | 
| 
      
 275 
     | 
    
         
            +
             
     | 
| 
      
 276 
     | 
    
         
            +
            @pytest.mark.slow
         
     | 
| 
      
 277 
     | 
    
         
            +
            @pytest.mark.skipif(not checks.IS_PYTHON_MINIMUM_3_10 or not TORCH_2_9, reason="Requires Python>=3.10 and Torch>=2.9.0")
         
     | 
| 
      
 278 
     | 
    
         
            +
            @pytest.mark.skipif(WINDOWS, reason="Skipping test on Windows")
         
     | 
| 
      
 279 
     | 
    
         
            +
            @pytest.mark.parametrize("task", TASKS)
         
     | 
| 
      
 280 
     | 
    
         
            +
            def test_export_executorch_matrix(task):
         
     | 
| 
      
 281 
     | 
    
         
            +
                """Test YOLO export to ExecuTorch format for various task types."""
         
     | 
| 
      
 282 
     | 
    
         
            +
                file = YOLO(TASK2MODEL[task]).export(format="executorch", imgsz=32)
         
     | 
| 
      
 283 
     | 
    
         
            +
                assert Path(file).exists(), f"ExecuTorch export failed for task '{task}', directory not found: {file}"
         
     | 
| 
      
 284 
     | 
    
         
            +
                # Check that .pte file exists in the exported directory
         
     | 
| 
      
 285 
     | 
    
         
            +
                model_name = Path(TASK2MODEL[task]).with_suffix(".pte").name
         
     | 
| 
      
 286 
     | 
    
         
            +
                pte_file = Path(file) / model_name
         
     | 
| 
      
 287 
     | 
    
         
            +
                assert pte_file.exists(), f"ExecuTorch .pte file not found for task '{task}': {pte_file}"
         
     | 
| 
      
 288 
     | 
    
         
            +
                # Check that metadata.yaml exists
         
     | 
| 
      
 289 
     | 
    
         
            +
                metadata_file = Path(file) / "metadata.yaml"
         
     | 
| 
      
 290 
     | 
    
         
            +
                assert metadata_file.exists(), f"ExecuTorch metadata.yaml not found for task '{task}': {metadata_file}"
         
     | 
| 
      
 291 
     | 
    
         
            +
                # Note: Inference testing skipped as ExecuTorch requires special runtime setup
         
     | 
| 
      
 292 
     | 
    
         
            +
                shutil.rmtree(file, ignore_errors=True)  # cleanup
         
     | 
| 
         @@ -80,7 +80,7 @@ show_boxes: True # (bool) draw bounding boxes on images 
     | 
|
| 
       80 
80 
     | 
    
         
             
            line_width: # (int, optional) line width of boxes; auto-scales with image size if not set
         
     | 
| 
       81 
81 
     | 
    
         | 
| 
       82 
82 
     | 
    
         
             
            # Export settings ------------------------------------------------------------------------------------------------------
         
     | 
| 
       83 
     | 
    
         
            -
            format: torchscript # (str) target format, e.g. torchscript|onnx|openvino|engine|coreml|saved_model|pb|tflite|edgetpu|tfjs|paddle|mnn|ncnn|imx|rknn
         
     | 
| 
      
 83 
     | 
    
         
            +
            format: torchscript # (str) target format, e.g. torchscript|onnx|openvino|engine|coreml|saved_model|pb|tflite|edgetpu|tfjs|paddle|mnn|ncnn|imx|rknn|executorch
         
     | 
| 
       84 
84 
     | 
    
         
             
            keras: False # (bool) TF SavedModel only (format=saved_model); enable Keras layers during export
         
     | 
| 
       85 
85 
     | 
    
         
             
            optimize: False # (bool) TorchScript only; apply mobile optimizations to the scripted model
         
     | 
| 
       86 
86 
     | 
    
         
             
            int8: False # (bool) INT8/PTQ where supported (openvino, tflite, tfjs, engine, imx); needs calibration data/fraction
         
     | 
| 
         @@ -20,6 +20,7 @@ MNN                     | `mnn`                     | yolo11n.mnn 
     | 
|
| 
       20 
20 
     | 
    
         
             
            NCNN                    | `ncnn`                    | yolo11n_ncnn_model/
         
     | 
| 
       21 
21 
     | 
    
         
             
            IMX                     | `imx`                     | yolo11n_imx_model/
         
     | 
| 
       22 
22 
     | 
    
         
             
            RKNN                    | `rknn`                    | yolo11n_rknn_model/
         
     | 
| 
      
 23 
     | 
    
         
            +
            ExecuTorch              | `executorch`              | yolo11n_executorch_model/
         
     | 
| 
       23 
24 
     | 
    
         | 
| 
       24 
25 
     | 
    
         
             
            Requirements:
         
     | 
| 
       25 
26 
     | 
    
         
             
                $ pip install "ultralytics[export]"
         
     | 
| 
         @@ -48,6 +49,7 @@ Inference: 
     | 
|
| 
       48 
49 
     | 
    
         
             
                                     yolo11n_ncnn_model         # NCNN
         
     | 
| 
       49 
50 
     | 
    
         
             
                                     yolo11n_imx_model          # IMX
         
     | 
| 
       50 
51 
     | 
    
         
             
                                     yolo11n_rknn_model         # RKNN
         
     | 
| 
      
 52 
     | 
    
         
            +
                                     yolo11n_executorch_model   # ExecuTorch
         
     | 
| 
       51 
53 
     | 
    
         | 
| 
       52 
54 
     | 
    
         
             
            TensorFlow.js:
         
     | 
| 
       53 
55 
     | 
    
         
             
                $ cd .. && git clone https://github.com/zldrobit/tfjs-yolov5-example.git && cd tfjs-yolov5-example
         
     | 
| 
         @@ -112,7 +114,7 @@ from ultralytics.utils.metrics import batch_probiou 
     | 
|
| 
       112 
114 
     | 
    
         
             
            from ultralytics.utils.nms import TorchNMS
         
     | 
| 
       113 
115 
     | 
    
         
             
            from ultralytics.utils.ops import Profile
         
     | 
| 
       114 
116 
     | 
    
         
             
            from ultralytics.utils.patches import arange_patch
         
     | 
| 
       115 
     | 
    
         
            -
            from ultralytics.utils.torch_utils import TORCH_1_11, TORCH_1_13, TORCH_2_1, TORCH_2_4, select_device
         
     | 
| 
      
 117 
     | 
    
         
            +
            from ultralytics.utils.torch_utils import TORCH_1_11, TORCH_1_13, TORCH_2_1, TORCH_2_4, TORCH_2_9, select_device
         
     | 
| 
       116 
118 
     | 
    
         | 
| 
       117 
119 
     | 
    
         | 
| 
       118 
120 
     | 
    
         
             
            def export_formats():
         
     | 
| 
         @@ -148,6 +150,7 @@ def export_formats(): 
     | 
|
| 
       148 
150 
     | 
    
         
             
                    ["NCNN", "ncnn", "_ncnn_model", True, True, ["batch", "half"]],
         
     | 
| 
       149 
151 
     | 
    
         
             
                    ["IMX", "imx", "_imx_model", True, True, ["int8", "fraction", "nms"]],
         
     | 
| 
       150 
152 
     | 
    
         
             
                    ["RKNN", "rknn", "_rknn_model", False, False, ["batch", "name"]],
         
     | 
| 
      
 153 
     | 
    
         
            +
                    ["ExecuTorch", "executorch", "_executorch_model", False, False, ["batch"]],
         
     | 
| 
       151 
154 
     | 
    
         
             
                ]
         
     | 
| 
       152 
155 
     | 
    
         
             
                return dict(zip(["Format", "Argument", "Suffix", "CPU", "GPU", "Arguments"], zip(*x)))
         
     | 
| 
       153 
156 
     | 
    
         | 
| 
         @@ -322,9 +325,24 @@ class Exporter: 
     | 
|
| 
       322 
325 
     | 
    
         
             
                    flags = [x == fmt for x in fmts]
         
     | 
| 
       323 
326 
     | 
    
         
             
                    if sum(flags) != 1:
         
     | 
| 
       324 
327 
     | 
    
         
             
                        raise ValueError(f"Invalid export format='{fmt}'. Valid formats are {fmts}")
         
     | 
| 
       325 
     | 
    
         
            -
                    ( 
     | 
| 
       326 
     | 
    
         
            -
                         
     | 
| 
       327 
     | 
    
         
            -
             
     | 
| 
      
 328 
     | 
    
         
            +
                    (
         
     | 
| 
      
 329 
     | 
    
         
            +
                        jit,
         
     | 
| 
      
 330 
     | 
    
         
            +
                        onnx,
         
     | 
| 
      
 331 
     | 
    
         
            +
                        xml,
         
     | 
| 
      
 332 
     | 
    
         
            +
                        engine,
         
     | 
| 
      
 333 
     | 
    
         
            +
                        coreml,
         
     | 
| 
      
 334 
     | 
    
         
            +
                        saved_model,
         
     | 
| 
      
 335 
     | 
    
         
            +
                        pb,
         
     | 
| 
      
 336 
     | 
    
         
            +
                        tflite,
         
     | 
| 
      
 337 
     | 
    
         
            +
                        edgetpu,
         
     | 
| 
      
 338 
     | 
    
         
            +
                        tfjs,
         
     | 
| 
      
 339 
     | 
    
         
            +
                        paddle,
         
     | 
| 
      
 340 
     | 
    
         
            +
                        mnn,
         
     | 
| 
      
 341 
     | 
    
         
            +
                        ncnn,
         
     | 
| 
      
 342 
     | 
    
         
            +
                        imx,
         
     | 
| 
      
 343 
     | 
    
         
            +
                        rknn,
         
     | 
| 
      
 344 
     | 
    
         
            +
                        executorch,
         
     | 
| 
      
 345 
     | 
    
         
            +
                    ) = flags  # export booleans
         
     | 
| 
       328 
346 
     | 
    
         | 
| 
       329 
347 
     | 
    
         
             
                    is_tf_format = any((saved_model, pb, tflite, edgetpu, tfjs))
         
     | 
| 
       330 
348 
     | 
    
         | 
| 
         @@ -543,6 +561,8 @@ class Exporter: 
     | 
|
| 
       543 
561 
     | 
    
         
             
                        f[13] = self.export_imx()
         
     | 
| 
       544 
562 
     | 
    
         
             
                    if rknn:
         
     | 
| 
       545 
563 
     | 
    
         
             
                        f[14] = self.export_rknn()
         
     | 
| 
      
 564 
     | 
    
         
            +
                    if executorch:
         
     | 
| 
      
 565 
     | 
    
         
            +
                        f[15] = self.export_executorch()
         
     | 
| 
       546 
566 
     | 
    
         | 
| 
       547 
567 
     | 
    
         
             
                    # Finish
         
     | 
| 
       548 
568 
     | 
    
         
             
                    f = [str(x) for x in f if x]  # filter out '' and None
         
     | 
| 
         @@ -1122,6 +1142,39 @@ class Exporter: 
     | 
|
| 
       1122 
1142 
     | 
    
         
             
                        f = saved_model / f"{self.file.stem}_float32.tflite"
         
     | 
| 
       1123 
1143 
     | 
    
         
             
                    return str(f)
         
     | 
| 
       1124 
1144 
     | 
    
         | 
| 
      
 1145 
     | 
    
         
            +
                @try_export
         
     | 
| 
      
 1146 
     | 
    
         
            +
                def export_executorch(self, prefix=colorstr("ExecuTorch:")):
         
     | 
| 
      
 1147 
     | 
    
         
            +
                    """Exports a model to ExecuTorch (.pte) format into a dedicated directory and saves the required metadata,
         
     | 
| 
      
 1148 
     | 
    
         
            +
                    following Ultralytics conventions.
         
     | 
| 
      
 1149 
     | 
    
         
            +
                    """
         
     | 
| 
      
 1150 
     | 
    
         
            +
                    LOGGER.info(f"\n{prefix} starting export with ExecuTorch...")
         
     | 
| 
      
 1151 
     | 
    
         
            +
                    assert TORCH_2_9, f"ExecuTorch export requires torch>=2.9.0 but torch=={TORCH_VERSION} is installed"
         
     | 
| 
      
 1152 
     | 
    
         
            +
                    # TorchAO release compatibility table bug https://github.com/pytorch/ao/issues/2919
         
     | 
| 
      
 1153 
     | 
    
         
            +
                    # Setuptools bug: https://github.com/pypa/setuptools/issues/4483
         
     | 
| 
      
 1154 
     | 
    
         
            +
                    check_requirements("setuptools<71.0.0")  # Setuptools bug: https://github.com/pypa/setuptools/issues/4483
         
     | 
| 
      
 1155 
     | 
    
         
            +
                    check_requirements(("executorch==1.0.0", "flatbuffers"))
         
     | 
| 
      
 1156 
     | 
    
         
            +
             
     | 
| 
      
 1157 
     | 
    
         
            +
                    import torch
         
     | 
| 
      
 1158 
     | 
    
         
            +
                    from executorch.backends.xnnpack.partition.xnnpack_partitioner import XnnpackPartitioner
         
     | 
| 
      
 1159 
     | 
    
         
            +
                    from executorch.exir import to_edge_transform_and_lower
         
     | 
| 
      
 1160 
     | 
    
         
            +
             
     | 
| 
      
 1161 
     | 
    
         
            +
                    file_directory = Path(str(self.file).replace(self.file.suffix, "_executorch_model"))
         
     | 
| 
      
 1162 
     | 
    
         
            +
                    file_directory.mkdir(parents=True, exist_ok=True)
         
     | 
| 
      
 1163 
     | 
    
         
            +
             
     | 
| 
      
 1164 
     | 
    
         
            +
                    file_pte = file_directory / self.file.with_suffix(".pte").name
         
     | 
| 
      
 1165 
     | 
    
         
            +
                    sample_inputs = (self.im,)
         
     | 
| 
      
 1166 
     | 
    
         
            +
             
     | 
| 
      
 1167 
     | 
    
         
            +
                    et_program = to_edge_transform_and_lower(
         
     | 
| 
      
 1168 
     | 
    
         
            +
                        torch.export.export(self.model, sample_inputs), partitioner=[XnnpackPartitioner()]
         
     | 
| 
      
 1169 
     | 
    
         
            +
                    ).to_executorch()
         
     | 
| 
      
 1170 
     | 
    
         
            +
             
     | 
| 
      
 1171 
     | 
    
         
            +
                    with open(file_pte, "wb") as file:
         
     | 
| 
      
 1172 
     | 
    
         
            +
                        file.write(et_program.buffer)
         
     | 
| 
      
 1173 
     | 
    
         
            +
             
     | 
| 
      
 1174 
     | 
    
         
            +
                    YAML.save(file_directory / "metadata.yaml", self.metadata)
         
     | 
| 
      
 1175 
     | 
    
         
            +
             
     | 
| 
      
 1176 
     | 
    
         
            +
                    return str(file_directory)
         
     | 
| 
      
 1177 
     | 
    
         
            +
             
     | 
| 
       1125 
1178 
     | 
    
         
             
                @try_export
         
     | 
| 
       1126 
1179 
     | 
    
         
             
                def export_edgetpu(self, tflite_model="", prefix=colorstr("Edge TPU:")):
         
     | 
| 
       1127 
1180 
     | 
    
         
             
                    """Export YOLO model to Edge TPU format https://coral.ai/docs/edgetpu/models-intro/."""
         
     | 
| 
         @@ -4,7 +4,7 @@ import torch 
     | 
|
| 
       4 
4 
     | 
    
         
             
            from PIL import Image
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
            from ultralytics.models.yolo.segment import SegmentationPredictor
         
     | 
| 
       7 
     | 
    
         
            -
            from ultralytics.utils import DEFAULT_CFG 
     | 
| 
      
 7 
     | 
    
         
            +
            from ultralytics.utils import DEFAULT_CFG
         
     | 
| 
       8 
8 
     | 
    
         
             
            from ultralytics.utils.metrics import box_iou
         
     | 
| 
       9 
9 
     | 
    
         
             
            from ultralytics.utils.ops import scale_masks
         
     | 
| 
       10 
10 
     | 
    
         
             
            from ultralytics.utils.torch_utils import TORCH_1_10
         
     | 
| 
         @@ -101,7 +101,7 @@ class FastSAMPredictor(SegmentationPredictor): 
     | 
|
| 
       101 
101 
     | 
    
         
             
                            continue
         
     | 
| 
       102 
102 
     | 
    
         
             
                        masks = result.masks.data
         
     | 
| 
       103 
103 
     | 
    
         
             
                        if masks.shape[1:] != result.orig_shape:
         
     | 
| 
       104 
     | 
    
         
            -
                            masks = scale_masks(masks[None], result.orig_shape)[0]
         
     | 
| 
      
 104 
     | 
    
         
            +
                            masks = (scale_masks(masks[None].float(), result.orig_shape)[0] > 0.5).byte()
         
     | 
| 
       105 
105 
     | 
    
         
             
                        # bboxes prompt
         
     | 
| 
       106 
106 
     | 
    
         
             
                        idx = torch.zeros(len(result), dtype=torch.bool, device=self.device)
         
     | 
| 
       107 
107 
     | 
    
         
             
                        if bboxes is not None:
         
     | 
| 
         @@ -161,20 +161,14 @@ class FastSAMPredictor(SegmentationPredictor): 
     | 
|
| 
       161 
161 
     | 
    
         
             
                    Returns:
         
     | 
| 
       162 
162 
     | 
    
         
             
                        (torch.Tensor): Similarity matrix between given images and texts with shape (M, N).
         
     | 
| 
       163 
163 
     | 
    
         
             
                    """
         
     | 
| 
       164 
     | 
    
         
            -
                     
     | 
| 
       165 
     | 
    
         
            -
             
     | 
| 
       166 
     | 
    
         
            -
                     
     | 
| 
       167 
     | 
    
         
            -
                         
     | 
| 
       168 
     | 
    
         
            -
             
     | 
| 
       169 
     | 
    
         
            -
                     
     | 
| 
       170 
     | 
    
         
            -
             
     | 
| 
       171 
     | 
    
         
            -
                     
     | 
| 
       172 
     | 
    
         
            -
                    tokenized_text = clip.tokenize(texts).to(self.device)
         
     | 
| 
       173 
     | 
    
         
            -
                    image_features = self.clip_model.encode_image(images)
         
     | 
| 
       174 
     | 
    
         
            -
                    text_features = self.clip_model.encode_text(tokenized_text)
         
     | 
| 
       175 
     | 
    
         
            -
                    image_features /= image_features.norm(dim=-1, keepdim=True)  # (N, 512)
         
     | 
| 
       176 
     | 
    
         
            -
                    text_features /= text_features.norm(dim=-1, keepdim=True)  # (M, 512)
         
     | 
| 
       177 
     | 
    
         
            -
                    return (image_features * text_features[:, None]).sum(-1)  # (M, N)
         
     | 
| 
      
 164 
     | 
    
         
            +
                    from ultralytics.nn.text_model import CLIP
         
     | 
| 
      
 165 
     | 
    
         
            +
             
     | 
| 
      
 166 
     | 
    
         
            +
                    if not hasattr(self, "clip"):
         
     | 
| 
      
 167 
     | 
    
         
            +
                        self.clip = CLIP("ViT-B/32", device=self.device)
         
     | 
| 
      
 168 
     | 
    
         
            +
                    images = torch.stack([self.clip.image_preprocess(image).to(self.device) for image in images])
         
     | 
| 
      
 169 
     | 
    
         
            +
                    image_features = self.clip.encode_image(images)
         
     | 
| 
      
 170 
     | 
    
         
            +
                    text_features = self.clip.encode_text(self.clip.tokenize(texts))
         
     | 
| 
      
 171 
     | 
    
         
            +
                    return text_features @ image_features.T  # (M, N)
         
     | 
| 
       178 
172 
     | 
    
         | 
| 
       179 
173 
     | 
    
         
             
                def set_prompts(self, prompts):
         
     | 
| 
       180 
174 
     | 
    
         
             
                    """Set prompts to be used during inference."""
         
     | 
| 
         @@ -96,6 +96,8 @@ class AutoBackend(nn.Module): 
     | 
|
| 
       96 
96 
     | 
    
         
             
                        | NCNN                  | *_ncnn_model/     |
         
     | 
| 
       97 
97 
     | 
    
         
             
                        | IMX                   | *_imx_model/      |
         
     | 
| 
       98 
98 
     | 
    
         
             
                        | RKNN                  | *_rknn_model/     |
         
     | 
| 
      
 99 
     | 
    
         
            +
                        | Triton Inference      | triton://model    |
         
     | 
| 
      
 100 
     | 
    
         
            +
                        | ExecuTorch            | *.pte             |
         
     | 
| 
       99 
101 
     | 
    
         | 
| 
       100 
102 
     | 
    
         
             
                Attributes:
         
     | 
| 
       101 
103 
     | 
    
         
             
                    model (torch.nn.Module): The loaded YOLO model.
         
     | 
| 
         @@ -122,6 +124,7 @@ class AutoBackend(nn.Module): 
     | 
|
| 
       122 
124 
     | 
    
         
             
                    imx (bool): Whether the model is an IMX model.
         
     | 
| 
       123 
125 
     | 
    
         
             
                    rknn (bool): Whether the model is an RKNN model.
         
     | 
| 
       124 
126 
     | 
    
         
             
                    triton (bool): Whether the model is a Triton Inference Server model.
         
     | 
| 
      
 127 
     | 
    
         
            +
                    pte (bool): Whether the model is a PyTorch ExecuTorch model.
         
     | 
| 
       125 
128 
     | 
    
         | 
| 
       126 
129 
     | 
    
         
             
                Methods:
         
     | 
| 
       127 
130 
     | 
    
         
             
                    forward: Run inference on an input image.
         
     | 
| 
         @@ -176,6 +179,7 @@ class AutoBackend(nn.Module): 
     | 
|
| 
       176 
179 
     | 
    
         
             
                        ncnn,
         
     | 
| 
       177 
180 
     | 
    
         
             
                        imx,
         
     | 
| 
       178 
181 
     | 
    
         
             
                        rknn,
         
     | 
| 
      
 182 
     | 
    
         
            +
                        pte,
         
     | 
| 
       179 
183 
     | 
    
         
             
                        triton,
         
     | 
| 
       180 
184 
     | 
    
         
             
                    ) = self._model_type("" if nn_module else model)
         
     | 
| 
       181 
185 
     | 
    
         
             
                    fp16 &= pt or jit or onnx or xml or engine or nn_module or triton  # FP16
         
     | 
| 
         @@ -570,6 +574,25 @@ class AutoBackend(nn.Module): 
     | 
|
| 
       570 
574 
     | 
    
         
             
                        rknn_model.init_runtime()
         
     | 
| 
       571 
575 
     | 
    
         
             
                        metadata = w.parent / "metadata.yaml"
         
     | 
| 
       572 
576 
     | 
    
         | 
| 
      
 577 
     | 
    
         
            +
                    # ExecuTorch
         
     | 
| 
      
 578 
     | 
    
         
            +
                    elif pte:
         
     | 
| 
      
 579 
     | 
    
         
            +
                        LOGGER.info(f"Loading {w} for ExecuTorch inference...")
         
     | 
| 
      
 580 
     | 
    
         
            +
                        # TorchAO release compatibility table bug https://github.com/pytorch/ao/issues/2919
         
     | 
| 
      
 581 
     | 
    
         
            +
                        check_requirements("setuptools<71.0.0")  # Setuptools bug: https://github.com/pypa/setuptools/issues/4483
         
     | 
| 
      
 582 
     | 
    
         
            +
                        check_requirements(("executorch==1.0.0", "flatbuffers"))
         
     | 
| 
      
 583 
     | 
    
         
            +
                        from executorch.runtime import Runtime
         
     | 
| 
      
 584 
     | 
    
         
            +
             
     | 
| 
      
 585 
     | 
    
         
            +
                        w = Path(w)
         
     | 
| 
      
 586 
     | 
    
         
            +
                        if w.is_dir():
         
     | 
| 
      
 587 
     | 
    
         
            +
                            model_file = next(w.rglob("*.pte"))
         
     | 
| 
      
 588 
     | 
    
         
            +
                            metadata = w / "metadata.yaml"
         
     | 
| 
      
 589 
     | 
    
         
            +
                        else:
         
     | 
| 
      
 590 
     | 
    
         
            +
                            model_file = w
         
     | 
| 
      
 591 
     | 
    
         
            +
                            metadata = w.parent / "metadata.yaml"
         
     | 
| 
      
 592 
     | 
    
         
            +
             
     | 
| 
      
 593 
     | 
    
         
            +
                        program = Runtime.get().load_program(str(model_file))
         
     | 
| 
      
 594 
     | 
    
         
            +
                        model = program.load_method("forward")
         
     | 
| 
      
 595 
     | 
    
         
            +
             
     | 
| 
       573 
596 
     | 
    
         
             
                    # Any other format (unsupported)
         
     | 
| 
       574 
597 
     | 
    
         
             
                    else:
         
     | 
| 
       575 
598 
     | 
    
         
             
                        from ultralytics.engine.exporter import export_formats
         
     | 
| 
         @@ -773,6 +796,10 @@ class AutoBackend(nn.Module): 
     | 
|
| 
       773 
796 
     | 
    
         
             
                        im = im if isinstance(im, (list, tuple)) else [im]
         
     | 
| 
       774 
797 
     | 
    
         
             
                        y = self.rknn_model.inference(inputs=im)
         
     | 
| 
       775 
798 
     | 
    
         | 
| 
      
 799 
     | 
    
         
            +
                    # ExecuTorch
         
     | 
| 
      
 800 
     | 
    
         
            +
                    elif self.pte:
         
     | 
| 
      
 801 
     | 
    
         
            +
                        y = self.model.execute([im])
         
     | 
| 
      
 802 
     | 
    
         
            +
             
     | 
| 
       776 
803 
     | 
    
         
             
                    # TensorFlow (SavedModel, GraphDef, Lite, Edge TPU)
         
     | 
| 
       777 
804 
     | 
    
         
             
                    else:
         
     | 
| 
       778 
805 
     | 
    
         
             
                        im = im.cpu().numpy()
         
     | 
| 
         @@ -78,11 +78,11 @@ class VisualAISearch: 
     | 
|
| 
       78 
78 
     | 
    
         | 
| 
       79 
79 
     | 
    
         
             
                def extract_image_feature(self, path: Path) -> np.ndarray:
         
     | 
| 
       80 
80 
     | 
    
         
             
                    """Extract CLIP image embedding from the given image path."""
         
     | 
| 
       81 
     | 
    
         
            -
                    return self.model.encode_image(Image.open(path)).cpu().numpy()
         
     | 
| 
      
 81 
     | 
    
         
            +
                    return self.model.encode_image(Image.open(path)).detach().cpu().numpy()
         
     | 
| 
       82 
82 
     | 
    
         | 
| 
       83 
83 
     | 
    
         
             
                def extract_text_feature(self, text: str) -> np.ndarray:
         
     | 
| 
       84 
84 
     | 
    
         
             
                    """Extract CLIP text embedding from the given text query."""
         
     | 
| 
       85 
     | 
    
         
            -
                    return self.model.encode_text(self.model.tokenize([text])).cpu().numpy()
         
     | 
| 
      
 85 
     | 
    
         
            +
                    return self.model.encode_text(self.model.tokenize([text])).detach().cpu().numpy()
         
     | 
| 
       86 
86 
     | 
    
         | 
| 
       87 
87 
     | 
    
         
             
                def load_or_build_index(self) -> None:
         
     | 
| 
       88 
88 
     | 
    
         
             
                    """
         
     | 
| 
         @@ -44,6 +44,7 @@ TORCH_1_13 = check_version(TORCH_VERSION, "1.13.0") 
     | 
|
| 
       44 
44 
     | 
    
         
             
            TORCH_2_0 = check_version(TORCH_VERSION, "2.0.0")
         
     | 
| 
       45 
45 
     | 
    
         
             
            TORCH_2_1 = check_version(TORCH_VERSION, "2.1.0")
         
     | 
| 
       46 
46 
     | 
    
         
             
            TORCH_2_4 = check_version(TORCH_VERSION, "2.4.0")
         
     | 
| 
      
 47 
     | 
    
         
            +
            TORCH_2_9 = check_version(TORCH_VERSION, "2.9.0")
         
     | 
| 
       47 
48 
     | 
    
         
             
            TORCHVISION_0_10 = check_version(TORCHVISION_VERSION, "0.10.0")
         
     | 
| 
       48 
49 
     | 
    
         
             
            TORCHVISION_0_11 = check_version(TORCHVISION_VERSION, "0.11.0")
         
     | 
| 
       49 
50 
     | 
    
         
             
            TORCHVISION_0_13 = check_version(TORCHVISION_VERSION, "0.13.0")
         
     | 
| 
         @@ -1,6 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            Metadata-Version: 2.4
         
     | 
| 
       2 
2 
     | 
    
         
             
            Name: ultralytics
         
     | 
| 
       3 
     | 
    
         
            -
            Version: 8.3. 
     | 
| 
      
 3 
     | 
    
         
            +
            Version: 8.3.220
         
     | 
| 
       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.218 → ultralytics-8.3.220}/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.218 → ultralytics-8.3.220}/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
         
     | 
    
        {ultralytics-8.3.218 → ultralytics-8.3.220}/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.218 → ultralytics-8.3.220}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml
    RENAMED
    
    | 
         
            File without changes
         
     | 
    
        {ultralytics-8.3.218 → ultralytics-8.3.220}/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.218 → ultralytics-8.3.220}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml
    RENAMED
    
    | 
         
            File without changes
         
     | 
    
        {ultralytics-8.3.218 → ultralytics-8.3.220}/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
         
     |