dgenerate-ultralytics-headless 8.3.179__tar.gz → 8.3.180__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.
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/PKG-INFO +1 -1
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/dgenerate_ultralytics_headless.egg-info/PKG-INFO +1 -1
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/__init__.py +1 -1
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/VOC.yaml +1 -1
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/VisDrone.yaml +1 -1
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/sam/predict.py +141 -85
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/downloads.py +5 -3
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/LICENSE +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/README.md +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/dgenerate_ultralytics_headless.egg-info/SOURCES.txt +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/dgenerate_ultralytics_headless.egg-info/dependency_links.txt +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/dgenerate_ultralytics_headless.egg-info/entry_points.txt +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/dgenerate_ultralytics_headless.egg-info/requires.txt +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/dgenerate_ultralytics_headless.egg-info/top_level.txt +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/pyproject.toml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/setup.cfg +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/tests/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/tests/conftest.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/tests/test_cli.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/tests/test_cuda.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/tests/test_engine.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/tests/test_exports.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/tests/test_integrations.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/tests/test_python.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/tests/test_solutions.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/assets/bus.jpg +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/assets/zidane.jpg +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/HomeObjects-3K.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/coco.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/coco128.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/coco8-grayscale.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/coco8-multispectral.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/coco8.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/dog-pose.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/dota8-multispectral.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/dota8.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/hand-keypoints.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/lvis.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/medical-pills.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/signature.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/xView.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/default.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/11/yolo11-cls-resnet18.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/11/yolo11-cls.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/11/yolo11-obb.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/11/yolo11-pose.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/11/yolo11-seg.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/11/yolo11.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/11/yoloe-11-seg.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/11/yoloe-11.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/12/yolo12-cls.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/12/yolo12-obb.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/12/yolo12-pose.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/12/yolo12-seg.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/12/yolo12.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v8/yoloe-v8-seg.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v8/yoloe-v8.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/trackers/botsort.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/data/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/data/annotator.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/data/augment.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/data/base.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/data/build.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/data/converter.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/data/dataset.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/data/loaders.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/data/scripts/download_weights.sh +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/data/scripts/get_coco.sh +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/data/scripts/get_coco128.sh +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/data/scripts/get_imagenet.sh +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/data/split.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/data/split_dota.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/data/utils.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/engine/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/engine/exporter.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/engine/model.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/engine/predictor.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/engine/results.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/engine/trainer.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/engine/tuner.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/engine/validator.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/hub/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/hub/auth.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/hub/google/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/hub/session.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/hub/utils.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/fastsam/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/fastsam/model.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/fastsam/predict.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/fastsam/utils.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/fastsam/val.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/nas/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/nas/model.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/nas/predict.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/nas/val.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/rtdetr/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/rtdetr/model.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/rtdetr/predict.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/rtdetr/train.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/rtdetr/val.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/sam/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/sam/amg.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/sam/build.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/sam/model.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/sam/modules/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/sam/modules/blocks.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/sam/modules/decoders.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/sam/modules/encoders.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/sam/modules/memory_attention.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/sam/modules/sam.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/sam/modules/transformer.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/sam/modules/utils.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/utils/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/utils/loss.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/utils/ops.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/classify/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/classify/predict.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/classify/train.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/classify/val.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/detect/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/detect/predict.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/detect/train.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/detect/val.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/model.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/obb/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/obb/predict.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/obb/train.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/obb/val.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/pose/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/pose/predict.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/pose/train.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/pose/val.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/segment/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/segment/predict.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/segment/train.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/segment/val.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/world/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/world/train.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/world/train_world.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/yoloe/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/yoloe/predict.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/yoloe/train.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/yoloe/train_seg.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/yoloe/val.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/nn/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/nn/autobackend.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/nn/modules/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/nn/modules/activation.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/nn/modules/block.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/nn/modules/conv.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/nn/modules/head.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/nn/modules/transformer.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/nn/modules/utils.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/nn/tasks.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/nn/text_model.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/solutions/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/solutions/ai_gym.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/solutions/analytics.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/solutions/config.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/solutions/distance_calculation.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/solutions/heatmap.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/solutions/instance_segmentation.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/solutions/object_blurrer.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/solutions/object_counter.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/solutions/object_cropper.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/solutions/parking_management.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/solutions/queue_management.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/solutions/region_counter.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/solutions/security_alarm.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/solutions/similarity_search.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/solutions/solutions.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/solutions/speed_estimation.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/solutions/streamlit_inference.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/solutions/templates/similarity-search.html +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/solutions/trackzone.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/solutions/vision_eye.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/trackers/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/trackers/basetrack.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/trackers/bot_sort.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/trackers/byte_tracker.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/trackers/track.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/trackers/utils/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/trackers/utils/gmc.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/trackers/utils/kalman_filter.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/trackers/utils/matching.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/autobatch.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/autodevice.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/benchmarks.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/callbacks/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/callbacks/base.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/callbacks/clearml.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/callbacks/comet.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/callbacks/dvc.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/callbacks/hub.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/callbacks/mlflow.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/callbacks/neptune.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/callbacks/raytune.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/callbacks/tensorboard.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/callbacks/wb.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/checks.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/dist.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/errors.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/export.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/files.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/instance.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/loss.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/metrics.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/ops.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/patches.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/plotting.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/tal.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/torch_utils.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/triton.py +0 -0
- {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/tuner.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: dgenerate-ultralytics-headless
|
3
|
-
Version: 8.3.
|
3
|
+
Version: 8.3.180
|
4
4
|
Summary: Automatically built Ultralytics package with python-opencv-headless dependency instead of python-opencv
|
5
5
|
Author-email: Glenn Jocher <glenn.jocher@ultralytics.com>, Jing Qiu <jing.qiu@ultralytics.com>
|
6
6
|
Maintainer-email: Ultralytics <hello@ultralytics.com>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: dgenerate-ultralytics-headless
|
3
|
-
Version: 8.3.
|
3
|
+
Version: 8.3.180
|
4
4
|
Summary: Automatically built Ultralytics package with python-opencv-headless dependency instead of python-opencv
|
5
5
|
Author-email: Glenn Jocher <glenn.jocher@ultralytics.com>, Jing Qiu <jing.qiu@ultralytics.com>
|
6
6
|
Maintainer-email: Ultralytics <hello@ultralytics.com>
|
@@ -87,7 +87,7 @@ download: |
|
|
87
87
|
f"{url}VOCtest_06-Nov-2007.zip", # 438MB, 4953 images
|
88
88
|
f"{url}VOCtrainval_11-May-2012.zip", # 1.95GB, 17126 images
|
89
89
|
]
|
90
|
-
download(urls, dir=dir / "images",
|
90
|
+
download(urls, dir=dir / "images", threads=3, exist_ok=True) # download and unzip over existing (required)
|
91
91
|
|
92
92
|
# Convert
|
93
93
|
path = dir / "images/VOCdevkit"
|
@@ -78,7 +78,7 @@ download: |
|
|
78
78
|
"https://github.com/ultralytics/assets/releases/download/v0.0.0/VisDrone2019-DET-test-dev.zip",
|
79
79
|
# "https://github.com/ultralytics/assets/releases/download/v0.0.0/VisDrone2019-DET-test-challenge.zip",
|
80
80
|
]
|
81
|
-
download(urls, dir=dir,
|
81
|
+
download(urls, dir=dir, threads=4)
|
82
82
|
|
83
83
|
# Convert
|
84
84
|
splits = {"VisDrone2019-DET-train": "train", "VisDrone2019-DET-val": "val", "VisDrone2019-DET-test-dev": "test"}
|
@@ -182,9 +182,8 @@ class Predictor(BasePredictor):
|
|
182
182
|
**kwargs (Any): Additional keyword arguments.
|
183
183
|
|
184
184
|
Returns:
|
185
|
-
pred_masks (
|
186
|
-
pred_scores (
|
187
|
-
pred_logits (np.ndarray): Low-resolution logits of shape (C, H, W) for subsequent inference, where H=W=256.
|
185
|
+
pred_masks (torch.Tensor): The output masks in shape (C, H, W), where C is the number of generated masks.
|
186
|
+
pred_scores (torch.Tensor): An array of length C containing quality scores predicted by the model for each mask.
|
188
187
|
|
189
188
|
Examples:
|
190
189
|
>>> predictor = Predictor()
|
@@ -219,8 +218,8 @@ class Predictor(BasePredictor):
|
|
219
218
|
multimask_output (bool): Flag to return multiple masks for ambiguous prompts.
|
220
219
|
|
221
220
|
Returns:
|
222
|
-
pred_masks (
|
223
|
-
pred_scores (
|
221
|
+
pred_masks (torch.Tensor): Output masks with shape (C, H, W), where C is the number of generated masks.
|
222
|
+
pred_scores (torch.Tensor): Quality scores predicted by the model for each mask, with length C.
|
224
223
|
|
225
224
|
Examples:
|
226
225
|
>>> predictor = Predictor()
|
@@ -230,7 +229,34 @@ class Predictor(BasePredictor):
|
|
230
229
|
"""
|
231
230
|
features = self.get_im_features(im) if self.features is None else self.features
|
232
231
|
|
233
|
-
|
232
|
+
prompts = self._prepare_prompts(im.shape[2:], self.batch[1][0].shape[:2], bboxes, points, labels, masks)
|
233
|
+
return self._inference_features(features, *prompts, multimask_output)
|
234
|
+
|
235
|
+
def _inference_features(
|
236
|
+
self,
|
237
|
+
features,
|
238
|
+
bboxes=None,
|
239
|
+
points=None,
|
240
|
+
labels=None,
|
241
|
+
masks=None,
|
242
|
+
multimask_output=False,
|
243
|
+
):
|
244
|
+
"""
|
245
|
+
Perform inference on image features using the SAM model.
|
246
|
+
|
247
|
+
Args:
|
248
|
+
features (torch.Tensor): Extracted image features with shape (B, C, H, W) from the SAM model image encoder.
|
249
|
+
bboxes (np.ndarray | List[List[float]] | None): Bounding boxes in XYXY format with shape (N, 4).
|
250
|
+
points (np.ndarray | List[List[float]] | None): Object location points with shape (N, 2), in pixels.
|
251
|
+
labels (np.ndarray | List[int] | None): Point prompt labels with shape (N,). 1 = foreground, 0 = background.
|
252
|
+
masks (List[np.ndarray] | np.ndarray | None): Masks for the objects, where each mask is a 2D array.
|
253
|
+
multimask_output (bool): Flag to return multiple masks for ambiguous prompts.
|
254
|
+
img_idx (int): Index of the image in the batch to process.
|
255
|
+
|
256
|
+
Returns:
|
257
|
+
pred_masks (torch.Tensor): Output masks with shape (C, H, W), where C is the number of generated masks.
|
258
|
+
pred_scores (torch.Tensor): Quality scores for each mask, with length C.
|
259
|
+
"""
|
234
260
|
points = (points, labels) if points is not None else None
|
235
261
|
# Embed prompts
|
236
262
|
sparse_embeddings, dense_embeddings = self.model.prompt_encoder(points=points, boxes=bboxes, masks=masks)
|
@@ -248,12 +274,13 @@ class Predictor(BasePredictor):
|
|
248
274
|
# `d` could be 1 or 3 depends on `multimask_output`.
|
249
275
|
return pred_masks.flatten(0, 1), pred_scores.flatten(0, 1)
|
250
276
|
|
251
|
-
def _prepare_prompts(self, dst_shape, bboxes=None, points=None, labels=None, masks=None):
|
277
|
+
def _prepare_prompts(self, dst_shape, src_shape, bboxes=None, points=None, labels=None, masks=None):
|
252
278
|
"""
|
253
279
|
Prepare and transform the input prompts for processing based on the destination shape.
|
254
280
|
|
255
281
|
Args:
|
256
|
-
dst_shape (
|
282
|
+
dst_shape (Tuple[int, int]): The target shape (height, width) for the prompts.
|
283
|
+
src_shape (Tuple[int, int]): The source shape (height, width) of the input image.
|
257
284
|
bboxes (np.ndarray | List | None): Bounding boxes in XYXY format with shape (N, 4).
|
258
285
|
points (np.ndarray | List | None): Points indicating object locations with shape (N, 2) or (N, num_points, 2), in pixels.
|
259
286
|
labels (np.ndarray | List | None): Point prompt labels with shape (N) or (N, num_points). 1 for foreground, 0 for background.
|
@@ -268,7 +295,6 @@ class Predictor(BasePredictor):
|
|
268
295
|
Raises:
|
269
296
|
AssertionError: If the number of points don't match the number of labels, in case labels were passed.
|
270
297
|
"""
|
271
|
-
src_shape = self.batch[1][0].shape[:2]
|
272
298
|
r = 1.0 if self.segment_all else min(dst_shape[0] / src_shape[0], dst_shape[1] / src_shape[1])
|
273
299
|
# Transform input prompts
|
274
300
|
if points is not None:
|
@@ -543,7 +569,7 @@ class Predictor(BasePredictor):
|
|
543
569
|
- The extracted features are stored in the `self.features` attribute for later use.
|
544
570
|
"""
|
545
571
|
if self.model is None:
|
546
|
-
self.setup_model(
|
572
|
+
self.setup_model()
|
547
573
|
self.setup_source(image)
|
548
574
|
assert len(self.dataset) == 1, "`set_image` only supports setting one image!"
|
549
575
|
for batch in self.dataset:
|
@@ -620,6 +646,53 @@ class Predictor(BasePredictor):
|
|
620
646
|
|
621
647
|
return new_masks[keep].to(device=masks.device, dtype=masks.dtype), keep
|
622
648
|
|
649
|
+
@smart_inference_mode()
|
650
|
+
def inference_features(
|
651
|
+
self,
|
652
|
+
features,
|
653
|
+
src_shape,
|
654
|
+
dst_shape=None,
|
655
|
+
bboxes=None,
|
656
|
+
points=None,
|
657
|
+
labels=None,
|
658
|
+
masks=None,
|
659
|
+
multimask_output=False,
|
660
|
+
):
|
661
|
+
"""
|
662
|
+
Perform prompts preprocessing and inference on provided image features using the SAM model.
|
663
|
+
|
664
|
+
Args:
|
665
|
+
features (torch.Tensor | Dict[str, Any]): Extracted image features from the SAM/SAM2 model image encoder.
|
666
|
+
src_shape (Tuple[int, int]): The source shape (height, width) of the input image.
|
667
|
+
dst_shape (Tuple[int, int] | None): The target shape (height, width) for the prompts. If None, defaults to (imgsz, imgsz).
|
668
|
+
bboxes (np.ndarray | List[List[float]] | None): Bounding boxes in xyxy format with shape (N, 4).
|
669
|
+
points (np.ndarray | List[List[float]] | None): Points indicating object locations with shape (N, 2), in pixels.
|
670
|
+
labels (np.ndarray | List[int] | None): Point prompt labels with shape (N, ).
|
671
|
+
masks (List[np.ndarray] | np.ndarray | None): Masks for the objects, where each mask is a 2D array.
|
672
|
+
multimask_output (bool): Flag to return multiple masks for ambiguous prompts.
|
673
|
+
|
674
|
+
Returns:
|
675
|
+
pred_masks (torch.Tensor): The output masks in shape (C, H, W), where C is the number of generated masks.
|
676
|
+
pred_bboxes (torch.Tensor): Bounding boxes for each mask with shape (N, 6), where N is the number of boxes.
|
677
|
+
Each box is in xyxy format with additional columns for score and class.
|
678
|
+
|
679
|
+
Notes:
|
680
|
+
- The input features is a torch.Tensor of shape (B, C, H, W) if performing on SAM, or a Dict[str, Any] if performing on SAM2.
|
681
|
+
"""
|
682
|
+
dst_shape = dst_shape or (self.args.imgsz, self.args.imgsz)
|
683
|
+
prompts = self._prepare_prompts(dst_shape, src_shape, bboxes, points, labels, masks)
|
684
|
+
pred_masks, pred_scores = self._inference_features(features, *prompts, multimask_output)
|
685
|
+
if len(pred_masks) == 0:
|
686
|
+
pred_masks, pred_bboxes = None, torch.zeros((0, 6), device=pred_masks.device)
|
687
|
+
else:
|
688
|
+
pred_masks = ops.scale_masks(pred_masks[None].float(), src_shape, padding=False)[0]
|
689
|
+
pred_masks = pred_masks > self.model.mask_threshold # to bool
|
690
|
+
pred_bboxes = batched_mask_to_box(pred_masks)
|
691
|
+
# NOTE: SAM models do not return cls info. This `cls` here is just a placeholder for consistency.
|
692
|
+
cls = torch.arange(len(pred_masks), dtype=torch.int32, device=pred_masks.device)
|
693
|
+
pred_bboxes = torch.cat([pred_bboxes, pred_scores[:, None], cls[:, None]], dim=-1)
|
694
|
+
return pred_masks, pred_bboxes
|
695
|
+
|
623
696
|
|
624
697
|
class SAM2Predictor(Predictor):
|
625
698
|
"""
|
@@ -663,80 +736,13 @@ class SAM2Predictor(Predictor):
|
|
663
736
|
|
664
737
|
return build_sam(self.args.model)
|
665
738
|
|
666
|
-
def
|
667
|
-
self,
|
668
|
-
im,
|
669
|
-
bboxes=None,
|
670
|
-
points=None,
|
671
|
-
labels=None,
|
672
|
-
masks=None,
|
673
|
-
multimask_output=False,
|
674
|
-
img_idx=-1,
|
675
|
-
):
|
676
|
-
"""
|
677
|
-
Perform image segmentation inference based on various prompts using SAM2 architecture.
|
678
|
-
|
679
|
-
This method leverages the Segment Anything Model 2 (SAM2) to generate segmentation masks for input images
|
680
|
-
based on provided prompts such as bounding boxes, points, or existing masks. It supports both single and
|
681
|
-
multi-object prediction scenarios.
|
682
|
-
|
683
|
-
Args:
|
684
|
-
im (torch.Tensor): Preprocessed input image tensor with shape (N, C, H, W).
|
685
|
-
bboxes (np.ndarray | List[List[float]] | None): Bounding boxes in XYXY format with shape (N, 4).
|
686
|
-
points (np.ndarray | List[List[float]] | None): Object location points with shape (N, 2), in pixels.
|
687
|
-
labels (np.ndarray | List[int] | None): Point prompt labels with shape (N,). 1 = foreground, 0 = background.
|
688
|
-
masks (np.ndarray | None): Low-resolution masks from previous predictions with shape (N, H, W).
|
689
|
-
multimask_output (bool): Flag to return multiple masks for ambiguous prompts.
|
690
|
-
img_idx (int): Index of the image in the batch to process.
|
691
|
-
|
692
|
-
Returns:
|
693
|
-
pred_masks (np.ndarray): Output masks with shape (C, H, W), where C is the number of generated masks.
|
694
|
-
pred_scores (np.ndarray): Quality scores for each mask, with length C.
|
695
|
-
|
696
|
-
Examples:
|
697
|
-
>>> predictor = SAM2Predictor(cfg)
|
698
|
-
>>> image = torch.rand(1, 3, 640, 640)
|
699
|
-
>>> bboxes = [[100, 100, 200, 200]]
|
700
|
-
>>> result = predictor(image, bboxes=bboxes)[0]
|
701
|
-
>>> print(f"Generated {result.masks.shape[0]} masks with average score {result.boxes.conf.mean():.2f}")
|
702
|
-
|
703
|
-
Notes:
|
704
|
-
- The method supports batched inference for multiple objects when points or bboxes are provided.
|
705
|
-
- Input prompts (bboxes, points) are automatically scaled to match the input image dimensions.
|
706
|
-
- When both bboxes and points are provided, they are merged into a single 'points' input for the model.
|
707
|
-
"""
|
708
|
-
features = self.get_im_features(im) if self.features is None else self.features
|
709
|
-
|
710
|
-
points, labels, masks = self._prepare_prompts(im.shape[2:], bboxes, points, labels, masks)
|
711
|
-
points = (points, labels) if points is not None else None
|
712
|
-
|
713
|
-
sparse_embeddings, dense_embeddings = self.model.sam_prompt_encoder(
|
714
|
-
points=points,
|
715
|
-
boxes=None,
|
716
|
-
masks=masks,
|
717
|
-
)
|
718
|
-
# Predict masks
|
719
|
-
batched_mode = points is not None and points[0].shape[0] > 1 # multi object prediction
|
720
|
-
high_res_features = [feat_level[img_idx].unsqueeze(0) for feat_level in features["high_res_feats"]]
|
721
|
-
pred_masks, pred_scores, _, _ = self.model.sam_mask_decoder(
|
722
|
-
image_embeddings=features["image_embed"][img_idx].unsqueeze(0),
|
723
|
-
image_pe=self.model.sam_prompt_encoder.get_dense_pe(),
|
724
|
-
sparse_prompt_embeddings=sparse_embeddings,
|
725
|
-
dense_prompt_embeddings=dense_embeddings,
|
726
|
-
multimask_output=multimask_output,
|
727
|
-
repeat_image=batched_mode,
|
728
|
-
high_res_features=high_res_features,
|
729
|
-
)
|
730
|
-
# (N, d, H, W) --> (N*d, H, W), (N, d) --> (N*d, )
|
731
|
-
# `d` could be 1 or 3 depends on `multimask_output`.
|
732
|
-
return pred_masks.flatten(0, 1), pred_scores.flatten(0, 1)
|
733
|
-
|
734
|
-
def _prepare_prompts(self, dst_shape, bboxes=None, points=None, labels=None, masks=None):
|
739
|
+
def _prepare_prompts(self, dst_shape, src_shape, bboxes=None, points=None, labels=None, masks=None):
|
735
740
|
"""
|
736
741
|
Prepare and transform the input prompts for processing based on the destination shape.
|
737
742
|
|
738
743
|
Args:
|
739
|
-
dst_shape (
|
744
|
+
dst_shape (Tuple[int, int]): The target shape (height, width) for the prompts.
|
745
|
+
src_shape (Tuple[int, int]): The source shape (height, width) of the input image.
|
740
746
|
bboxes (np.ndarray | List | None): Bounding boxes in XYXY format with shape (N, 4).
|
741
747
|
points (np.ndarray | List | None): Points indicating object locations with shape (N, 2) or (N, num_points, 2), in pixels.
|
742
748
|
labels (np.ndarray | List | None): Point prompt labels with shape (N,) or (N, num_points). 1 for foreground, 0 for background.
|
@@ -750,7 +756,7 @@ class SAM2Predictor(Predictor):
|
|
750
756
|
Raises:
|
751
757
|
AssertionError: If the number of points don't match the number of labels, in case labels were passed.
|
752
758
|
"""
|
753
|
-
bboxes, points, labels, masks = super()._prepare_prompts(dst_shape, bboxes, points, labels, masks)
|
759
|
+
bboxes, points, labels, masks = super()._prepare_prompts(dst_shape, src_shape, bboxes, points, labels, masks)
|
754
760
|
if bboxes is not None:
|
755
761
|
bboxes = bboxes.view(-1, 2, 2)
|
756
762
|
bbox_labels = torch.tensor([[2, 3]], dtype=torch.int32, device=bboxes.device).expand(len(bboxes), -1)
|
@@ -813,6 +819,54 @@ class SAM2Predictor(Predictor):
|
|
813
819
|
][::-1]
|
814
820
|
return {"image_embed": feats[-1], "high_res_feats": feats[:-1]}
|
815
821
|
|
822
|
+
def _inference_features(
|
823
|
+
self,
|
824
|
+
features,
|
825
|
+
points=None,
|
826
|
+
labels=None,
|
827
|
+
masks=None,
|
828
|
+
multimask_output=False,
|
829
|
+
img_idx=-1,
|
830
|
+
):
|
831
|
+
"""
|
832
|
+
Perform inference on image features using the SAM2 model.
|
833
|
+
|
834
|
+
Args:
|
835
|
+
features (Dict[str, Any]): Extracted image information from the SAM2 model image encoder, it's a dictionary including:
|
836
|
+
image_embed (torch.Tensor): Image embedding with shape (B, C, H, W).
|
837
|
+
high_res_feats (List[torch.Tensor]): List of high-resolution feature maps from the backbone, each with shape (B, C, H, W).
|
838
|
+
points (np.ndarray | List[List[float]] | None): Object location points with shape (N, 2), in pixels.
|
839
|
+
labels (np.ndarray | List[int] | None): Point prompt labels with shape (N,). 1 = foreground, 0 = background.
|
840
|
+
masks (List[np.ndarray] | np.ndarray | None): Masks for the objects, where each mask is a 2D array.
|
841
|
+
multimask_output (bool): Flag to return multiple masks for ambiguous prompts.
|
842
|
+
img_idx (int): Index of the image in the batch to process.
|
843
|
+
|
844
|
+
Returns:
|
845
|
+
pred_masks (torch.Tensor): Output masks with shape (C, H, W), where C is the number of generated masks.
|
846
|
+
pred_scores (torch.Tensor): Quality scores for each mask, with length C.
|
847
|
+
"""
|
848
|
+
points = (points, labels) if points is not None else None
|
849
|
+
sparse_embeddings, dense_embeddings = self.model.sam_prompt_encoder(
|
850
|
+
points=points,
|
851
|
+
boxes=None,
|
852
|
+
masks=masks,
|
853
|
+
)
|
854
|
+
# Predict masks
|
855
|
+
batched_mode = points is not None and points[0].shape[0] > 1 # multi object prediction
|
856
|
+
high_res_features = [feat_level[img_idx].unsqueeze(0) for feat_level in features["high_res_feats"]]
|
857
|
+
pred_masks, pred_scores, _, _ = self.model.sam_mask_decoder(
|
858
|
+
image_embeddings=features["image_embed"][img_idx].unsqueeze(0),
|
859
|
+
image_pe=self.model.sam_prompt_encoder.get_dense_pe(),
|
860
|
+
sparse_prompt_embeddings=sparse_embeddings,
|
861
|
+
dense_prompt_embeddings=dense_embeddings,
|
862
|
+
multimask_output=multimask_output,
|
863
|
+
repeat_image=batched_mode,
|
864
|
+
high_res_features=high_res_features,
|
865
|
+
)
|
866
|
+
# (N, d, H, W) --> (N*d, H, W), (N, d) --> (N*d, )
|
867
|
+
# `d` could be 1 or 3 depends on `multimask_output`.
|
868
|
+
return pred_masks.flatten(0, 1), pred_scores.flatten(0, 1)
|
869
|
+
|
816
870
|
|
817
871
|
class SAM2VideoPredictor(SAM2Predictor):
|
818
872
|
"""
|
@@ -900,8 +954,8 @@ class SAM2VideoPredictor(SAM2Predictor):
|
|
900
954
|
masks (np.ndarray, optional): Low-resolution masks from previous predictions shape (N,H,W). For SAM H=W=256.
|
901
955
|
|
902
956
|
Returns:
|
903
|
-
pred_masks (
|
904
|
-
pred_scores (
|
957
|
+
pred_masks (torch.Tensor): The output masks in shape CxHxW, where C is the number of generated masks.
|
958
|
+
pred_scores (torch.Tensor): An array of length C containing quality scores predicted by the model for each mask.
|
905
959
|
"""
|
906
960
|
# Override prompts if any stored in self.prompts
|
907
961
|
bboxes = self.prompts.pop("bboxes", bboxes)
|
@@ -912,7 +966,9 @@ class SAM2VideoPredictor(SAM2Predictor):
|
|
912
966
|
self.inference_state["im"] = im
|
913
967
|
output_dict = self.inference_state["output_dict"]
|
914
968
|
if len(output_dict["cond_frame_outputs"]) == 0: # initialize prompts
|
915
|
-
points, labels, masks = self._prepare_prompts(
|
969
|
+
points, labels, masks = self._prepare_prompts(
|
970
|
+
im.shape[2:], self.batch[1][0].shape[:2], bboxes, points, labels, masks
|
971
|
+
)
|
916
972
|
if points is not None:
|
917
973
|
for i in range(len(points)):
|
918
974
|
self.add_new_prompts(obj_id=i, points=points[[i]], labels=labels[[i]], frame_idx=frame)
|
@@ -966,7 +1022,7 @@ class SAM2VideoPredictor(SAM2Predictor):
|
|
966
1022
|
the masks do not overlap, which can be useful for certain applications.
|
967
1023
|
|
968
1024
|
Args:
|
969
|
-
preds (
|
1025
|
+
preds (Tuple[torch.Tensor, torch.Tensor]): The predicted masks and scores from the model.
|
970
1026
|
img (torch.Tensor): The processed image tensor.
|
971
1027
|
orig_imgs (List[np.ndarray]): The original images before processing.
|
972
1028
|
|
@@ -501,7 +501,9 @@ def download(
|
|
501
501
|
"""
|
502
502
|
dir = Path(dir)
|
503
503
|
dir.mkdir(parents=True, exist_ok=True) # make directory
|
504
|
+
urls = [url] if isinstance(url, (str, Path)) else url
|
504
505
|
if threads > 1:
|
506
|
+
LOGGER.info(f"Downloading {len(urls)} file(s) with {threads} threads to {dir}...")
|
505
507
|
with ThreadPool(threads) as pool:
|
506
508
|
pool.map(
|
507
509
|
lambda x: safe_download(
|
@@ -512,12 +514,12 @@ def download(
|
|
512
514
|
curl=curl,
|
513
515
|
retry=retry,
|
514
516
|
exist_ok=exist_ok,
|
515
|
-
progress=
|
517
|
+
progress=True,
|
516
518
|
),
|
517
|
-
zip(
|
519
|
+
zip(urls, repeat(dir)),
|
518
520
|
)
|
519
521
|
pool.close()
|
520
522
|
pool.join()
|
521
523
|
else:
|
522
|
-
for u in
|
524
|
+
for u in urls:
|
523
525
|
safe_download(url=u, dir=dir, unzip=unzip, delete=delete, curl=curl, retry=retry, exist_ok=exist_ok)
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/pyproject.toml
RENAMED
File without changes
|
File without changes
|
{dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/tests/__init__.py
RENAMED
File without changes
|
{dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/tests/conftest.py
RENAMED
File without changes
|
{dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/tests/test_cli.py
RENAMED
File without changes
|
{dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/tests/test_cuda.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|