ultralytics 8.3.165__tar.gz → 8.3.167__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.165/ultralytics.egg-info → ultralytics-8.3.167}/PKG-INFO +1 -1
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/__init__.py +1 -1
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/Argoverse.yaml +1 -1
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/DOTAv1.5.yaml +1 -1
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/DOTAv1.yaml +1 -1
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +1 -1
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/HomeObjects-3K.yaml +1 -1
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/ImageNet.yaml +1 -1
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/Objects365.yaml +1 -1
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/SKU-110K.yaml +4 -4
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/VOC.yaml +3 -3
- ultralytics-8.3.167/ultralytics/cfg/datasets/VisDrone.yaml +87 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/african-wildlife.yaml +1 -1
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/brain-tumor.yaml +1 -1
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/carparts-seg.yaml +1 -1
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/coco-pose.yaml +1 -1
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/coco.yaml +1 -1
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/coco128-seg.yaml +1 -1
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/coco128.yaml +1 -1
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/coco8-grayscale.yaml +1 -1
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/coco8-multispectral.yaml +1 -1
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/coco8-pose.yaml +1 -1
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/coco8-seg.yaml +1 -1
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/coco8.yaml +1 -1
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/crack-seg.yaml +1 -1
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/dog-pose.yaml +1 -1
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/dota8-multispectral.yaml +1 -1
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/dota8.yaml +1 -1
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/hand-keypoints.yaml +1 -1
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/lvis.yaml +1 -1
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/medical-pills.yaml +1 -1
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/open-images-v7.yaml +1 -1
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/package-seg.yaml +1 -1
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/signature.yaml +1 -1
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/tiger-pose.yaml +1 -1
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/xView.yaml +1 -1
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/engine/exporter.py +37 -18
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/model.py +1 -5
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/nn/autobackend.py +7 -8
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/nn/modules/head.py +4 -6
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/metrics.py +8 -9
- {ultralytics-8.3.165 → ultralytics-8.3.167/ultralytics.egg-info}/PKG-INFO +1 -1
- ultralytics-8.3.165/ultralytics/cfg/datasets/VisDrone.yaml +0 -80
- {ultralytics-8.3.165 → ultralytics-8.3.167}/LICENSE +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/README.md +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/pyproject.toml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/setup.cfg +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/tests/__init__.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/tests/conftest.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/tests/test_cli.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/tests/test_cuda.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/tests/test_engine.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/tests/test_exports.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/tests/test_integrations.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/tests/test_python.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/tests/test_solutions.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/assets/bus.jpg +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/assets/zidane.jpg +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/__init__.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/default.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/11/yolo11-cls-resnet18.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/11/yolo11-cls.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/11/yolo11-obb.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/11/yolo11-pose.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/11/yolo11-seg.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/11/yolo11.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/11/yoloe-11-seg.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/11/yoloe-11.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/12/yolo12-cls.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/12/yolo12-obb.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/12/yolo12-pose.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/12/yolo12-seg.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/12/yolo12.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v8/yoloe-v8-seg.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v8/yoloe-v8.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/trackers/botsort.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/data/__init__.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/data/annotator.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/data/augment.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/data/base.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/data/build.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/data/converter.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/data/dataset.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/data/loaders.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/data/scripts/download_weights.sh +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/data/scripts/get_coco.sh +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/data/scripts/get_coco128.sh +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/data/scripts/get_imagenet.sh +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/data/split.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/data/split_dota.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/data/utils.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/engine/__init__.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/engine/model.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/engine/predictor.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/engine/results.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/engine/trainer.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/engine/tuner.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/engine/validator.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/hub/__init__.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/hub/auth.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/hub/google/__init__.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/hub/session.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/hub/utils.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/__init__.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/fastsam/__init__.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/fastsam/model.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/fastsam/predict.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/fastsam/utils.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/fastsam/val.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/nas/__init__.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/nas/model.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/nas/predict.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/nas/val.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/rtdetr/__init__.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/rtdetr/model.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/rtdetr/predict.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/rtdetr/train.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/rtdetr/val.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/sam/__init__.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/sam/amg.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/sam/build.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/sam/model.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/sam/modules/__init__.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/sam/modules/blocks.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/sam/modules/decoders.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/sam/modules/encoders.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/sam/modules/memory_attention.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/sam/modules/sam.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/sam/modules/transformer.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/sam/modules/utils.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/sam/predict.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/utils/__init__.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/utils/loss.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/utils/ops.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/__init__.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/classify/__init__.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/classify/predict.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/classify/train.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/classify/val.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/detect/__init__.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/detect/predict.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/detect/train.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/detect/val.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/obb/__init__.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/obb/predict.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/obb/train.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/obb/val.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/pose/__init__.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/pose/predict.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/pose/train.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/pose/val.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/segment/__init__.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/segment/predict.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/segment/train.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/segment/val.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/world/__init__.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/world/train.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/world/train_world.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/yoloe/__init__.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/yoloe/predict.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/yoloe/train.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/yoloe/train_seg.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/yoloe/val.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/nn/__init__.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/nn/modules/__init__.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/nn/modules/activation.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/nn/modules/block.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/nn/modules/conv.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/nn/modules/transformer.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/nn/modules/utils.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/nn/tasks.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/nn/text_model.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/solutions/__init__.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/solutions/ai_gym.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/solutions/analytics.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/solutions/config.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/solutions/distance_calculation.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/solutions/heatmap.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/solutions/instance_segmentation.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/solutions/object_blurrer.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/solutions/object_counter.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/solutions/object_cropper.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/solutions/parking_management.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/solutions/queue_management.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/solutions/region_counter.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/solutions/security_alarm.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/solutions/similarity_search.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/solutions/solutions.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/solutions/speed_estimation.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/solutions/streamlit_inference.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/solutions/templates/similarity-search.html +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/solutions/trackzone.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/solutions/vision_eye.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/trackers/__init__.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/trackers/basetrack.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/trackers/bot_sort.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/trackers/byte_tracker.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/trackers/track.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/trackers/utils/__init__.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/trackers/utils/gmc.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/trackers/utils/kalman_filter.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/trackers/utils/matching.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/__init__.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/autobatch.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/autodevice.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/benchmarks.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/callbacks/__init__.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/callbacks/base.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/callbacks/clearml.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/callbacks/comet.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/callbacks/dvc.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/callbacks/hub.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/callbacks/mlflow.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/callbacks/neptune.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/callbacks/raytune.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/callbacks/tensorboard.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/callbacks/wb.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/checks.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/dist.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/downloads.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/errors.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/export.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/files.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/instance.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/loss.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/ops.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/patches.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/plotting.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/tal.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/torch_utils.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/triton.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/tuner.py +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics.egg-info/SOURCES.txt +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics.egg-info/dependency_links.txt +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics.egg-info/entry_points.txt +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics.egg-info/requires.txt +0 -0
- {ultralytics-8.3.165 → ultralytics-8.3.167}/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.167
|
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>
|
@@ -6,7 +6,7 @@
|
|
6
6
|
# parent
|
7
7
|
# ├── ultralytics
|
8
8
|
# └── datasets
|
9
|
-
# └── Argoverse
|
9
|
+
# └── Argoverse ← downloads here (31.5 GB)
|
10
10
|
|
11
11
|
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
|
12
12
|
path: Argoverse # dataset root dir
|
@@ -6,7 +6,7 @@
|
|
6
6
|
# parent
|
7
7
|
# ├── ultralytics
|
8
8
|
# └── datasets
|
9
|
-
# └── dota1.5
|
9
|
+
# └── dota1.5 ← downloads here (2GB)
|
10
10
|
|
11
11
|
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
|
12
12
|
path: DOTAv1.5 # dataset root dir
|
@@ -6,7 +6,7 @@
|
|
6
6
|
# parent
|
7
7
|
# ├── ultralytics
|
8
8
|
# └── datasets
|
9
|
-
# └── dota1
|
9
|
+
# └── dota1 ← downloads here (2GB)
|
10
10
|
|
11
11
|
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
|
12
12
|
path: DOTAv1 # dataset root dir
|
@@ -6,7 +6,7 @@
|
|
6
6
|
# parent
|
7
7
|
# ├── ultralytics
|
8
8
|
# └── datasets
|
9
|
-
# └── GlobalWheat2020
|
9
|
+
# └── GlobalWheat2020 ← downloads here (7.0 GB)
|
10
10
|
|
11
11
|
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
|
12
12
|
path: GlobalWheat2020 # dataset root dir
|
@@ -6,7 +6,7 @@
|
|
6
6
|
# parent
|
7
7
|
# ├── ultralytics
|
8
8
|
# └── datasets
|
9
|
-
# └── homeobjects-3K
|
9
|
+
# └── homeobjects-3K ← downloads here (390 MB)
|
10
10
|
|
11
11
|
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
|
12
12
|
path: homeobjects-3K # dataset root dir
|
@@ -7,7 +7,7 @@
|
|
7
7
|
# parent
|
8
8
|
# ├── ultralytics
|
9
9
|
# └── datasets
|
10
|
-
# └── imagenet
|
10
|
+
# └── imagenet ← downloads here (144 GB)
|
11
11
|
|
12
12
|
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
|
13
13
|
path: imagenet # dataset root dir
|
@@ -6,7 +6,7 @@
|
|
6
6
|
# parent
|
7
7
|
# ├── ultralytics
|
8
8
|
# └── datasets
|
9
|
-
# └── Objects365
|
9
|
+
# └── Objects365 ← downloads here (712 GB = 367G data + 345G zips)
|
10
10
|
|
11
11
|
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
|
12
12
|
path: Objects365 # dataset root dir
|
@@ -6,13 +6,13 @@
|
|
6
6
|
# parent
|
7
7
|
# ├── ultralytics
|
8
8
|
# └── datasets
|
9
|
-
# └── SKU-110K
|
9
|
+
# └── SKU-110K ← downloads here (13.6 GB)
|
10
10
|
|
11
11
|
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
|
12
12
|
path: SKU-110K # dataset root dir
|
13
|
-
train: train.txt # train images (relative to 'path')
|
14
|
-
val: val.txt # val images (relative to 'path')
|
15
|
-
test: test.txt # test images (optional)
|
13
|
+
train: train.txt # train images (relative to 'path') 8219 images
|
14
|
+
val: val.txt # val images (relative to 'path') 588 images
|
15
|
+
test: test.txt # test images (optional) 2936 images
|
16
16
|
|
17
17
|
# Classes
|
18
18
|
names:
|
@@ -6,16 +6,16 @@
|
|
6
6
|
# parent
|
7
7
|
# ├── ultralytics
|
8
8
|
# └── datasets
|
9
|
-
# └── VOC
|
9
|
+
# └── VOC ← downloads here (2.8 GB)
|
10
10
|
|
11
11
|
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
|
12
12
|
path: VOC
|
13
|
-
train: # train images (relative to 'path')
|
13
|
+
train: # train images (relative to 'path') 16551 images
|
14
14
|
- images/train2012
|
15
15
|
- images/train2007
|
16
16
|
- images/val2012
|
17
17
|
- images/val2007
|
18
|
-
val: # val images (relative to 'path')
|
18
|
+
val: # val images (relative to 'path') 4952 images
|
19
19
|
- images/test2007
|
20
20
|
test: # test images (optional)
|
21
21
|
- images/test2007
|
@@ -0,0 +1,87 @@
|
|
1
|
+
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
|
2
|
+
|
3
|
+
# VisDrone2019-DET dataset https://github.com/VisDrone/VisDrone-Dataset by Tianjin University
|
4
|
+
# Documentation: https://docs.ultralytics.com/datasets/detect/visdrone/
|
5
|
+
# Example usage: yolo train data=VisDrone.yaml
|
6
|
+
# parent
|
7
|
+
# ├── ultralytics
|
8
|
+
# └── datasets
|
9
|
+
# └── VisDrone ← downloads here (2.3 GB)
|
10
|
+
|
11
|
+
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
|
12
|
+
path: VisDrone # dataset root dir
|
13
|
+
train: images/train # train images (relative to 'path') 6471 images
|
14
|
+
val: images/val # val images (relative to 'path') 548 images
|
15
|
+
test: images/test # test-dev images (optional) 1610 images
|
16
|
+
|
17
|
+
# Classes
|
18
|
+
names:
|
19
|
+
0: pedestrian
|
20
|
+
1: people
|
21
|
+
2: bicycle
|
22
|
+
3: car
|
23
|
+
4: van
|
24
|
+
5: truck
|
25
|
+
6: tricycle
|
26
|
+
7: awning-tricycle
|
27
|
+
8: bus
|
28
|
+
9: motor
|
29
|
+
|
30
|
+
# Download script/URL (optional) ---------------------------------------------------------------------------------------
|
31
|
+
download: |
|
32
|
+
import os
|
33
|
+
from pathlib import Path
|
34
|
+
import shutil
|
35
|
+
|
36
|
+
from ultralytics.utils.downloads import download
|
37
|
+
|
38
|
+
|
39
|
+
def visdrone2yolo(dir, split, source_name=None):
|
40
|
+
"""Convert VisDrone annotations to YOLO format with images/{split} and labels/{split} structure."""
|
41
|
+
from PIL import Image
|
42
|
+
from tqdm import tqdm
|
43
|
+
|
44
|
+
source_dir = dir / (source_name or f"VisDrone2019-DET-{split}")
|
45
|
+
images_dir = dir / "images" / split
|
46
|
+
labels_dir = dir / "labels" / split
|
47
|
+
labels_dir.mkdir(parents=True, exist_ok=True)
|
48
|
+
|
49
|
+
# Move images to new structure
|
50
|
+
if (source_images_dir := source_dir / "images").exists():
|
51
|
+
images_dir.mkdir(parents=True, exist_ok=True)
|
52
|
+
for img in source_images_dir.glob("*.jpg"):
|
53
|
+
img.rename(images_dir / img.name)
|
54
|
+
|
55
|
+
for f in tqdm((source_dir / "annotations").glob("*.txt"), desc=f"Converting {split}"):
|
56
|
+
img_size = Image.open(images_dir / f.with_suffix(".jpg").name).size
|
57
|
+
dw, dh = 1.0 / img_size[0], 1.0 / img_size[1]
|
58
|
+
lines = []
|
59
|
+
|
60
|
+
with open(f, encoding="utf-8") as file:
|
61
|
+
for row in [x.split(",") for x in file.read().strip().splitlines()]:
|
62
|
+
if row[4] != "0": # Skip ignored regions
|
63
|
+
x, y, w, h = map(int, row[:4])
|
64
|
+
cls = int(row[5]) - 1
|
65
|
+
# Convert to YOLO format
|
66
|
+
x_center, y_center = (x + w / 2) * dw, (y + h / 2) * dh
|
67
|
+
w_norm, h_norm = w * dw, h * dh
|
68
|
+
lines.append(f"{cls} {x_center:.6f} {y_center:.6f} {w_norm:.6f} {h_norm:.6f}\n")
|
69
|
+
|
70
|
+
(labels_dir / f.name).write_text("".join(lines), encoding="utf-8")
|
71
|
+
|
72
|
+
|
73
|
+
# Download (ignores test-challenge split)
|
74
|
+
dir = Path(yaml["path"]) # dataset root dir
|
75
|
+
urls = [
|
76
|
+
"https://github.com/ultralytics/assets/releases/download/v0.0.0/VisDrone2019-DET-train.zip",
|
77
|
+
"https://github.com/ultralytics/assets/releases/download/v0.0.0/VisDrone2019-DET-val.zip",
|
78
|
+
"https://github.com/ultralytics/assets/releases/download/v0.0.0/VisDrone2019-DET-test-dev.zip",
|
79
|
+
# "https://github.com/ultralytics/assets/releases/download/v0.0.0/VisDrone2019-DET-test-challenge.zip",
|
80
|
+
]
|
81
|
+
download(urls, dir=dir, curl=True, threads=4)
|
82
|
+
|
83
|
+
# Convert
|
84
|
+
splits = {"VisDrone2019-DET-train": "train", "VisDrone2019-DET-val": "val", "VisDrone2019-DET-test-dev": "test"}
|
85
|
+
for folder, split in splits.items():
|
86
|
+
visdrone2yolo(dir, split, folder) # convert VisDrone annotations to YOLO labels
|
87
|
+
shutil.rmtree(dir / folder) # cleanup original directory
|
@@ -6,7 +6,7 @@
|
|
6
6
|
# parent
|
7
7
|
# ├── ultralytics
|
8
8
|
# └── datasets
|
9
|
-
# └── african-wildlife
|
9
|
+
# └── african-wildlife ← downloads here (100 MB)
|
10
10
|
|
11
11
|
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
|
12
12
|
path: african-wildlife # dataset root dir
|
@@ -6,7 +6,7 @@
|
|
6
6
|
# parent
|
7
7
|
# ├── ultralytics
|
8
8
|
# └── datasets
|
9
|
-
# └── brain-tumor
|
9
|
+
# └── brain-tumor ← downloads here (4.21 MB)
|
10
10
|
|
11
11
|
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
|
12
12
|
path: brain-tumor # dataset root dir
|
@@ -6,7 +6,7 @@
|
|
6
6
|
# parent
|
7
7
|
# ├── ultralytics
|
8
8
|
# └── datasets
|
9
|
-
# └── carparts-seg
|
9
|
+
# └── carparts-seg ← downloads here (133 MB)
|
10
10
|
|
11
11
|
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
|
12
12
|
path: carparts-seg # dataset root dir
|
@@ -6,7 +6,7 @@
|
|
6
6
|
# parent
|
7
7
|
# ├── ultralytics
|
8
8
|
# └── datasets
|
9
|
-
# └── coco-pose
|
9
|
+
# └── coco-pose ← downloads here (20.1 GB)
|
10
10
|
|
11
11
|
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
|
12
12
|
path: coco-pose # dataset root dir
|
@@ -6,7 +6,7 @@
|
|
6
6
|
# parent
|
7
7
|
# ├── ultralytics
|
8
8
|
# └── datasets
|
9
|
-
# └── coco
|
9
|
+
# └── coco ← downloads here (20.1 GB)
|
10
10
|
|
11
11
|
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
|
12
12
|
path: coco # dataset root dir
|
@@ -6,7 +6,7 @@
|
|
6
6
|
# parent
|
7
7
|
# ├── ultralytics
|
8
8
|
# └── datasets
|
9
|
-
# └── coco128-seg
|
9
|
+
# └── coco128-seg ← downloads here (7 MB)
|
10
10
|
|
11
11
|
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
|
12
12
|
path: coco128-seg # dataset root dir
|
@@ -6,7 +6,7 @@
|
|
6
6
|
# parent
|
7
7
|
# ├── ultralytics
|
8
8
|
# └── datasets
|
9
|
-
# └── coco128
|
9
|
+
# └── coco128 ← downloads here (7 MB)
|
10
10
|
|
11
11
|
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
|
12
12
|
path: coco128 # dataset root dir
|
@@ -6,7 +6,7 @@
|
|
6
6
|
# parent
|
7
7
|
# ├── ultralytics
|
8
8
|
# └── datasets
|
9
|
-
# └── coco8-grayscale
|
9
|
+
# └── coco8-grayscale ← downloads here (1 MB)
|
10
10
|
|
11
11
|
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
|
12
12
|
path: coco8-grayscale # dataset root dir
|
{ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/coco8-multispectral.yaml
RENAMED
@@ -6,7 +6,7 @@
|
|
6
6
|
# parent
|
7
7
|
# ├── ultralytics
|
8
8
|
# └── datasets
|
9
|
-
# └── coco8-multispectral
|
9
|
+
# └── coco8-multispectral ← downloads here (20.2 MB)
|
10
10
|
|
11
11
|
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
|
12
12
|
path: coco8-multispectral # dataset root dir
|
@@ -6,7 +6,7 @@
|
|
6
6
|
# parent
|
7
7
|
# ├── ultralytics
|
8
8
|
# └── datasets
|
9
|
-
# └── coco8-pose
|
9
|
+
# └── coco8-pose ← downloads here (1 MB)
|
10
10
|
|
11
11
|
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
|
12
12
|
path: coco8-pose # dataset root dir
|
@@ -6,7 +6,7 @@
|
|
6
6
|
# parent
|
7
7
|
# ├── ultralytics
|
8
8
|
# └── datasets
|
9
|
-
# └── coco8-seg
|
9
|
+
# └── coco8-seg ← downloads here (1 MB)
|
10
10
|
|
11
11
|
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
|
12
12
|
path: coco8-seg # dataset root dir
|
@@ -6,7 +6,7 @@
|
|
6
6
|
# parent
|
7
7
|
# ├── ultralytics
|
8
8
|
# └── datasets
|
9
|
-
# └── coco8
|
9
|
+
# └── coco8 ← downloads here (1 MB)
|
10
10
|
|
11
11
|
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
|
12
12
|
path: coco8 # dataset root dir
|
@@ -6,7 +6,7 @@
|
|
6
6
|
# parent
|
7
7
|
# ├── ultralytics
|
8
8
|
# └── datasets
|
9
|
-
# └── crack-seg
|
9
|
+
# └── crack-seg ← downloads here (91.6 MB)
|
10
10
|
|
11
11
|
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
|
12
12
|
path: crack-seg # dataset root dir
|
@@ -6,7 +6,7 @@
|
|
6
6
|
# parent
|
7
7
|
# ├── ultralytics
|
8
8
|
# └── datasets
|
9
|
-
# └── dog-pose
|
9
|
+
# └── dog-pose ← downloads here (337 MB)
|
10
10
|
|
11
11
|
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
|
12
12
|
path: dog-pose # dataset root dir
|
{ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/dota8-multispectral.yaml
RENAMED
@@ -6,7 +6,7 @@
|
|
6
6
|
# parent
|
7
7
|
# ├── ultralytics
|
8
8
|
# └── datasets
|
9
|
-
# └── dota8-multispectral
|
9
|
+
# └── dota8-multispectral ← downloads here (37.3MB)
|
10
10
|
|
11
11
|
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
|
12
12
|
path: dota8-multispectral # dataset root dir
|
@@ -6,7 +6,7 @@
|
|
6
6
|
# parent
|
7
7
|
# ├── ultralytics
|
8
8
|
# └── datasets
|
9
|
-
# └── dota8
|
9
|
+
# └── dota8 ← downloads here (1MB)
|
10
10
|
|
11
11
|
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
|
12
12
|
path: dota8 # dataset root dir
|
@@ -6,7 +6,7 @@
|
|
6
6
|
# parent
|
7
7
|
# ├── ultralytics
|
8
8
|
# └── datasets
|
9
|
-
# └── hand-keypoints
|
9
|
+
# └── hand-keypoints ← downloads here (369 MB)
|
10
10
|
|
11
11
|
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
|
12
12
|
path: hand-keypoints # dataset root dir
|
@@ -6,7 +6,7 @@
|
|
6
6
|
# parent
|
7
7
|
# ├── ultralytics
|
8
8
|
# └── datasets
|
9
|
-
# └── lvis
|
9
|
+
# └── lvis ← downloads here (20.1 GB)
|
10
10
|
|
11
11
|
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
|
12
12
|
path: lvis # dataset root dir
|
@@ -6,7 +6,7 @@
|
|
6
6
|
# parent
|
7
7
|
# ├── ultralytics
|
8
8
|
# └── datasets
|
9
|
-
# └── medical-pills
|
9
|
+
# └── medical-pills ← downloads here (8.19 MB)
|
10
10
|
|
11
11
|
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
|
12
12
|
path: medical-pills # dataset root dir
|
@@ -6,7 +6,7 @@
|
|
6
6
|
# parent
|
7
7
|
# ├── ultralytics
|
8
8
|
# └── datasets
|
9
|
-
# └── open-images-v7
|
9
|
+
# └── open-images-v7 ← downloads here (561 GB)
|
10
10
|
|
11
11
|
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
|
12
12
|
path: open-images-v7 # dataset root dir
|
@@ -6,7 +6,7 @@
|
|
6
6
|
# parent
|
7
7
|
# ├── ultralytics
|
8
8
|
# └── datasets
|
9
|
-
# └── package-seg
|
9
|
+
# └── package-seg ← downloads here (103 MB)
|
10
10
|
|
11
11
|
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
|
12
12
|
path: package-seg # dataset root dir
|
@@ -6,7 +6,7 @@
|
|
6
6
|
# parent
|
7
7
|
# ├── ultralytics
|
8
8
|
# └── datasets
|
9
|
-
# └── signature
|
9
|
+
# └── signature ← downloads here (11.3 MB)
|
10
10
|
|
11
11
|
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
|
12
12
|
path: signature # dataset root dir
|
@@ -6,7 +6,7 @@
|
|
6
6
|
# parent
|
7
7
|
# ├── ultralytics
|
8
8
|
# └── datasets
|
9
|
-
# └── tiger-pose
|
9
|
+
# └── tiger-pose ← downloads here (49.8 MB)
|
10
10
|
|
11
11
|
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
|
12
12
|
path: tiger-pose # dataset root dir
|
@@ -7,7 +7,7 @@
|
|
7
7
|
# parent
|
8
8
|
# ├── ultralytics
|
9
9
|
# └── datasets
|
10
|
-
# └── xView
|
10
|
+
# └── xView ← downloads here (20.7 GB)
|
11
11
|
|
12
12
|
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
|
13
13
|
path: xView # dataset root dir
|
@@ -142,7 +142,7 @@ def export_formats():
|
|
142
142
|
["PaddlePaddle", "paddle", "_paddle_model", True, True, ["batch"]],
|
143
143
|
["MNN", "mnn", ".mnn", True, True, ["batch", "half", "int8"]],
|
144
144
|
["NCNN", "ncnn", "_ncnn_model", True, True, ["batch", "half"]],
|
145
|
-
["IMX", "imx", "_imx_model", True, True, ["int8", "fraction"]],
|
145
|
+
["IMX", "imx", "_imx_model", True, True, ["int8", "fraction", "nms"]],
|
146
146
|
["RKNN", "rknn", "_rknn_model", False, False, ["batch", "name"]],
|
147
147
|
]
|
148
148
|
return dict(zip(["Format", "Argument", "Suffix", "CPU", "GPU", "Arguments"], zip(*x)))
|
@@ -313,8 +313,11 @@ class Exporter:
|
|
313
313
|
if not self.args.int8:
|
314
314
|
LOGGER.warning("IMX export requires int8=True, setting int8=True.")
|
315
315
|
self.args.int8 = True
|
316
|
-
if
|
317
|
-
|
316
|
+
if not self.args.nms:
|
317
|
+
LOGGER.warning("IMX export requires nms=True, setting nms=True.")
|
318
|
+
self.args.nms = True
|
319
|
+
if model.task not in {"detect", "pose"}:
|
320
|
+
raise ValueError("IMX export only supported for detection and pose estimation models.")
|
318
321
|
if not hasattr(model, "names"):
|
319
322
|
model.names = default_class_names()
|
320
323
|
model.names = check_class_names(model.names)
|
@@ -428,7 +431,7 @@ class Exporter:
|
|
428
431
|
|
429
432
|
y = None
|
430
433
|
for _ in range(2): # dry runs
|
431
|
-
y = NMSModel(model, self.args)(im) if self.args.nms and not coreml else model(im)
|
434
|
+
y = NMSModel(model, self.args)(im) if self.args.nms and not (coreml or imx) else model(im)
|
432
435
|
if self.args.half and onnx and self.device.type != "cpu":
|
433
436
|
im, model = im.half(), model.half() # to FP16
|
434
437
|
|
@@ -1166,15 +1169,14 @@ class Exporter:
|
|
1166
1169
|
)
|
1167
1170
|
if getattr(self.model, "end2end", False):
|
1168
1171
|
raise ValueError("IMX export is not supported for end2end models.")
|
1169
|
-
check_requirements(
|
1170
|
-
("model-compression-toolkit>=2.3.0,<2.4.1", "sony-custom-layers>=0.3.0", "edge-mdt-tpc>=1.1.0")
|
1171
|
-
)
|
1172
|
+
check_requirements(("model-compression-toolkit>=2.4.1", "sony-custom-layers>=0.3.0", "edge-mdt-tpc>=1.1.0"))
|
1172
1173
|
check_requirements("imx500-converter[pt]>=3.16.1") # Separate requirements for imx500-converter
|
1174
|
+
check_requirements("mct-quantizers>=1.6.0") # Separate for compatibility with model-compression-toolkit
|
1173
1175
|
|
1174
1176
|
import model_compression_toolkit as mct
|
1175
1177
|
import onnx
|
1176
1178
|
from edgemdt_tpc import get_target_platform_capabilities
|
1177
|
-
from sony_custom_layers.pytorch import
|
1179
|
+
from sony_custom_layers.pytorch import multiclass_nms_with_indices
|
1178
1180
|
|
1179
1181
|
LOGGER.info(f"\n{prefix} starting export with model_compression_toolkit {mct.__version__}...")
|
1180
1182
|
|
@@ -1198,13 +1200,23 @@ class Exporter:
|
|
1198
1200
|
|
1199
1201
|
bit_cfg = mct.core.BitWidthConfig()
|
1200
1202
|
if "C2PSA" in self.model.__str__(): # YOLO11
|
1201
|
-
|
1202
|
-
|
1203
|
-
|
1203
|
+
if self.model.task == "detect":
|
1204
|
+
layer_names = ["sub", "mul_2", "add_14", "cat_21"]
|
1205
|
+
weights_memory = 2585350.2439
|
1206
|
+
n_layers = 238 # 238 layers for fused YOLO11n
|
1207
|
+
elif self.model.task == "pose":
|
1208
|
+
layer_names = ["sub", "mul_2", "add_14", "cat_22", "cat_23", "mul_4", "add_15"]
|
1209
|
+
weights_memory = 2437771.67
|
1210
|
+
n_layers = 257 # 257 layers for fused YOLO11n-pose
|
1204
1211
|
else: # YOLOv8
|
1205
|
-
|
1206
|
-
|
1207
|
-
|
1212
|
+
if self.model.task == "detect":
|
1213
|
+
layer_names = ["sub", "mul", "add_6", "cat_17"]
|
1214
|
+
weights_memory = 2550540.8
|
1215
|
+
n_layers = 168 # 168 layers for fused YOLOv8n
|
1216
|
+
elif self.model.task == "pose":
|
1217
|
+
layer_names = ["add_7", "mul_2", "cat_19", "mul", "sub", "add_6", "cat_18"]
|
1218
|
+
weights_memory = 2482451.85
|
1219
|
+
n_layers = 187 # 187 layers for fused YOLO11n-pose
|
1208
1220
|
|
1209
1221
|
# Check if the model has the expected number of layers
|
1210
1222
|
if len(list(self.model.modules())) != n_layers:
|
@@ -1251,6 +1263,7 @@ class Exporter:
|
|
1251
1263
|
score_threshold: float = 0.001,
|
1252
1264
|
iou_threshold: float = 0.7,
|
1253
1265
|
max_detections: int = 300,
|
1266
|
+
task: str = "detect",
|
1254
1267
|
):
|
1255
1268
|
"""
|
1256
1269
|
Initialize NMSWrapper with PyTorch Module and NMS parameters.
|
@@ -1260,34 +1273,40 @@ class Exporter:
|
|
1260
1273
|
score_threshold (float): Score threshold for non-maximum suppression.
|
1261
1274
|
iou_threshold (float): Intersection over union threshold for non-maximum suppression.
|
1262
1275
|
max_detections (int): The number of detections to return.
|
1276
|
+
task (str): Task type, either 'detect' or 'pose'.
|
1263
1277
|
"""
|
1264
1278
|
super().__init__()
|
1265
1279
|
self.model = model
|
1266
1280
|
self.score_threshold = score_threshold
|
1267
1281
|
self.iou_threshold = iou_threshold
|
1268
1282
|
self.max_detections = max_detections
|
1283
|
+
self.task = task
|
1269
1284
|
|
1270
1285
|
def forward(self, images):
|
1271
1286
|
"""Forward pass with model inference and NMS post-processing."""
|
1272
1287
|
# model inference
|
1273
1288
|
outputs = self.model(images)
|
1274
1289
|
|
1275
|
-
boxes = outputs[0]
|
1276
|
-
|
1277
|
-
nms = multiclass_nms(
|
1290
|
+
boxes, scores = outputs[0], outputs[1]
|
1291
|
+
nms_outputs = multiclass_nms_with_indices(
|
1278
1292
|
boxes=boxes,
|
1279
1293
|
scores=scores,
|
1280
1294
|
score_threshold=self.score_threshold,
|
1281
1295
|
iou_threshold=self.iou_threshold,
|
1282
1296
|
max_detections=self.max_detections,
|
1283
1297
|
)
|
1284
|
-
|
1298
|
+
if self.task == "pose":
|
1299
|
+
kpts = outputs[2] # (bs, max_detections, kpts 17*3)
|
1300
|
+
out_kpts = torch.gather(kpts, 1, nms_outputs.indices.unsqueeze(-1).expand(-1, -1, kpts.size(-1)))
|
1301
|
+
return nms_outputs.boxes, nms_outputs.scores, nms_outputs.labels, out_kpts
|
1302
|
+
return nms_outputs
|
1285
1303
|
|
1286
1304
|
quant_model = NMSWrapper(
|
1287
1305
|
model=quant_model,
|
1288
1306
|
score_threshold=self.args.conf or 0.001,
|
1289
1307
|
iou_threshold=self.args.iou,
|
1290
1308
|
max_detections=self.args.max_det,
|
1309
|
+
task=self.model.task,
|
1291
1310
|
).to(self.device)
|
1292
1311
|
|
1293
1312
|
f = Path(str(self.file).replace(self.file.suffix, "_imx_model"))
|
@@ -243,10 +243,6 @@ class YOLOE(Model):
|
|
243
243
|
"""
|
244
244
|
super().__init__(model=model, task=task, verbose=verbose)
|
245
245
|
|
246
|
-
# Assign default COCO class names when there are no custom names
|
247
|
-
if not hasattr(self.model, "names"):
|
248
|
-
self.model.names = YAML.load(ROOT / "cfg/datasets/coco8.yaml").get("names")
|
249
|
-
|
250
246
|
@property
|
251
247
|
def task_map(self) -> Dict[str, Dict[str, Any]]:
|
252
248
|
"""Map head to model, validator, and predictor classes."""
|
@@ -287,7 +283,7 @@ class YOLOE(Model):
|
|
287
283
|
Examples:
|
288
284
|
>>> model = YOLOE("yoloe-11s-seg.pt")
|
289
285
|
>>> img = torch.rand(1, 3, 640, 640)
|
290
|
-
>>> visual_features =
|
286
|
+
>>> visual_features = torch.rand(1, 1, 80, 80)
|
291
287
|
>>> pe = model.get_visual_pe(img, visual_features)
|
292
288
|
"""
|
293
289
|
assert isinstance(self.model, YOLOEModel)
|