dgenerate-ultralytics-headless 8.3.196__tar.gz → 8.3.198__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.196 → dgenerate_ultralytics_headless-8.3.198}/PKG-INFO +1 -1
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/dgenerate_ultralytics_headless.egg-info/PKG-INFO +1 -1
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/dgenerate_ultralytics_headless.egg-info/SOURCES.txt +1 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/tests/test_engine.py +9 -1
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/__init__.py +1 -1
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/__init__.py +0 -1
- dgenerate_ultralytics_headless-8.3.198/ultralytics/cfg/datasets/construction-ppe.yaml +32 -0
- dgenerate_ultralytics_headless-8.3.198/ultralytics/cfg/default.yaml +130 -0
- dgenerate_ultralytics_headless-8.3.198/ultralytics/cfg/trackers/botsort.yaml +21 -0
- dgenerate_ultralytics_headless-8.3.198/ultralytics/cfg/trackers/bytetrack.yaml +12 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/data/augment.py +1 -1
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/data/dataset.py +1 -1
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/engine/exporter.py +36 -35
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/engine/model.py +1 -2
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/engine/predictor.py +1 -2
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/engine/results.py +1 -1
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/engine/trainer.py +8 -10
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/engine/tuner.py +54 -32
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/sam/modules/decoders.py +3 -3
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/sam/modules/sam.py +5 -5
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/sam/predict.py +11 -11
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/yolo/classify/train.py +2 -7
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/yolo/classify/val.py +2 -2
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/yolo/detect/predict.py +1 -1
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/yolo/detect/train.py +1 -11
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/yolo/detect/val.py +4 -4
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/yolo/obb/val.py +3 -3
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/yolo/pose/predict.py +1 -1
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/yolo/pose/train.py +0 -7
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/yolo/pose/val.py +2 -2
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/yolo/segment/predict.py +2 -2
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/yolo/segment/train.py +0 -6
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/yolo/segment/val.py +13 -11
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/yolo/yoloe/val.py +1 -1
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/nn/modules/block.py +1 -1
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/nn/modules/head.py +1 -2
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/nn/tasks.py +2 -2
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/utils/checks.py +1 -1
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/utils/loss.py +1 -2
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/utils/metrics.py +6 -6
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/utils/nms.py +8 -14
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/utils/plotting.py +22 -36
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/utils/torch_utils.py +9 -27
- dgenerate_ultralytics_headless-8.3.196/ultralytics/cfg/default.yaml +0 -128
- dgenerate_ultralytics_headless-8.3.196/ultralytics/cfg/trackers/botsort.yaml +0 -22
- dgenerate_ultralytics_headless-8.3.196/ultralytics/cfg/trackers/bytetrack.yaml +0 -14
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/LICENSE +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/README.md +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/dgenerate_ultralytics_headless.egg-info/dependency_links.txt +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/dgenerate_ultralytics_headless.egg-info/entry_points.txt +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/dgenerate_ultralytics_headless.egg-info/requires.txt +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/dgenerate_ultralytics_headless.egg-info/top_level.txt +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/pyproject.toml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/setup.cfg +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/tests/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/tests/conftest.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/tests/test_cli.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/tests/test_cuda.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/tests/test_exports.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/tests/test_integrations.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/tests/test_python.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/tests/test_solutions.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/assets/bus.jpg +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/assets/zidane.jpg +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/datasets/HomeObjects-3K.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/datasets/VOC.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/datasets/coco.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/datasets/coco128.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/datasets/coco8-grayscale.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/datasets/coco8-multispectral.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/datasets/coco8.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/datasets/dog-pose.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/datasets/dota8-multispectral.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/datasets/dota8.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/datasets/hand-keypoints.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/datasets/lvis.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/datasets/medical-pills.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/datasets/signature.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/datasets/xView.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/11/yolo11-cls-resnet18.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/11/yolo11-cls.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/11/yolo11-obb.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/11/yolo11-pose.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/11/yolo11-seg.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/11/yolo11.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/11/yoloe-11-seg.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/11/yoloe-11.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/12/yolo12-cls.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/12/yolo12-obb.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/12/yolo12-pose.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/12/yolo12-seg.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/12/yolo12.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/v8/yoloe-v8-seg.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/v8/yoloe-v8.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/data/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/data/annotator.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/data/base.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/data/build.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/data/converter.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/data/loaders.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/data/scripts/download_weights.sh +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/data/scripts/get_coco.sh +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/data/scripts/get_coco128.sh +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/data/scripts/get_imagenet.sh +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/data/split.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/data/split_dota.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/data/utils.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/engine/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/engine/validator.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/hub/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/hub/auth.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/hub/google/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/hub/session.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/hub/utils.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/fastsam/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/fastsam/model.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/fastsam/predict.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/fastsam/utils.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/fastsam/val.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/nas/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/nas/model.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/nas/predict.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/nas/val.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/rtdetr/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/rtdetr/model.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/rtdetr/predict.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/rtdetr/train.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/rtdetr/val.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/sam/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/sam/amg.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/sam/build.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/sam/model.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/sam/modules/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/sam/modules/blocks.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/sam/modules/encoders.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/sam/modules/memory_attention.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/sam/modules/transformer.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/sam/modules/utils.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/utils/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/utils/loss.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/utils/ops.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/yolo/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/yolo/classify/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/yolo/classify/predict.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/yolo/detect/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/yolo/model.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/yolo/obb/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/yolo/obb/predict.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/yolo/obb/train.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/yolo/pose/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/yolo/segment/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/yolo/world/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/yolo/world/train.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/yolo/world/train_world.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/yolo/yoloe/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/yolo/yoloe/predict.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/yolo/yoloe/train.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/models/yolo/yoloe/train_seg.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/nn/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/nn/autobackend.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/nn/modules/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/nn/modules/activation.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/nn/modules/conv.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/nn/modules/transformer.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/nn/modules/utils.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/nn/text_model.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/py.typed +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/solutions/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/solutions/ai_gym.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/solutions/analytics.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/solutions/config.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/solutions/distance_calculation.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/solutions/heatmap.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/solutions/instance_segmentation.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/solutions/object_blurrer.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/solutions/object_counter.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/solutions/object_cropper.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/solutions/parking_management.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/solutions/queue_management.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/solutions/region_counter.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/solutions/security_alarm.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/solutions/similarity_search.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/solutions/solutions.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/solutions/speed_estimation.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/solutions/streamlit_inference.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/solutions/templates/similarity-search.html +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/solutions/trackzone.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/solutions/vision_eye.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/trackers/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/trackers/basetrack.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/trackers/bot_sort.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/trackers/byte_tracker.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/trackers/track.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/trackers/utils/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/trackers/utils/gmc.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/trackers/utils/kalman_filter.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/trackers/utils/matching.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/utils/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/utils/autobatch.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/utils/autodevice.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/utils/benchmarks.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/utils/callbacks/__init__.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/utils/callbacks/base.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/utils/callbacks/clearml.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/utils/callbacks/comet.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/utils/callbacks/dvc.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/utils/callbacks/hub.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/utils/callbacks/mlflow.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/utils/callbacks/neptune.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/utils/callbacks/platform.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/utils/callbacks/raytune.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/utils/callbacks/tensorboard.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/utils/callbacks/wb.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/utils/cpu.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/utils/dist.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/utils/downloads.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/utils/errors.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/utils/events.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/utils/export.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/utils/files.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/utils/git.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/utils/instance.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/utils/logger.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/utils/ops.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/utils/patches.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/utils/tal.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/utils/tqdm.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/ultralytics/utils/triton.py +0 -0
- {dgenerate_ultralytics_headless-8.3.196 → dgenerate_ultralytics_headless-8.3.198}/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.198
|
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.198
|
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>
|
@@ -51,6 +51,7 @@ ultralytics/cfg/datasets/coco8-multispectral.yaml
|
|
51
51
|
ultralytics/cfg/datasets/coco8-pose.yaml
|
52
52
|
ultralytics/cfg/datasets/coco8-seg.yaml
|
53
53
|
ultralytics/cfg/datasets/coco8.yaml
|
54
|
+
ultralytics/cfg/datasets/construction-ppe.yaml
|
54
55
|
ultralytics/cfg/datasets/crack-seg.yaml
|
55
56
|
ultralytics/cfg/datasets/dog-pose.yaml
|
56
57
|
ultralytics/cfg/datasets/dota8-multispectral.yaml
|
@@ -67,7 +67,15 @@ def test_detect():
|
|
67
67
|
|
68
68
|
def test_segment():
|
69
69
|
"""Test image segmentation training, validation, and prediction pipelines using YOLO models."""
|
70
|
-
overrides = {
|
70
|
+
overrides = {
|
71
|
+
"data": "coco8-seg.yaml",
|
72
|
+
"model": "yolo11n-seg.yaml",
|
73
|
+
"imgsz": 32,
|
74
|
+
"epochs": 1,
|
75
|
+
"save": False,
|
76
|
+
"mask_ratio": 1,
|
77
|
+
"overlap_mask": False,
|
78
|
+
}
|
71
79
|
cfg = get_cfg(DEFAULT_CFG)
|
72
80
|
cfg.data = "coco8-seg.yaml"
|
73
81
|
cfg.imgsz = 32
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
|
2
|
+
|
3
|
+
# Construction-PPE dataset by Ultralytics
|
4
|
+
# Documentation: https://docs.ultralytics.com/datasets/detect/construction-ppe/
|
5
|
+
# Example usage: yolo train data=construction-ppe.yaml
|
6
|
+
# parent
|
7
|
+
# ├── ultralytics
|
8
|
+
# └── datasets
|
9
|
+
# └── construction-ppe ← downloads here (178.4 MB)
|
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: construction-ppe # dataset root dir
|
13
|
+
train: images/train # train images (relative to 'path') 1132 images
|
14
|
+
val: images/val # val images (relative to 'path') 143 images
|
15
|
+
test: images/test # test images (relative to 'path') 141 images
|
16
|
+
|
17
|
+
# Classes
|
18
|
+
names:
|
19
|
+
0: helmet
|
20
|
+
1: gloves
|
21
|
+
2: vest
|
22
|
+
3: boots
|
23
|
+
4: goggles
|
24
|
+
5: none
|
25
|
+
6: Person
|
26
|
+
7: no_helmet
|
27
|
+
8: no_goggle
|
28
|
+
9: no_gloves
|
29
|
+
10: no_boots
|
30
|
+
|
31
|
+
# Download script/URL (optional)
|
32
|
+
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/construction-ppe.zip
|
@@ -0,0 +1,130 @@
|
|
1
|
+
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
|
2
|
+
|
3
|
+
# Global configuration YAML with settings and hyperparameters for YOLO training, validation, prediction and export
|
4
|
+
# For documentation see https://docs.ultralytics.com/usage/cfg/
|
5
|
+
|
6
|
+
task: detect # (str) YOLO task, i.e. detect, segment, classify, pose, obb
|
7
|
+
mode: train # (str) YOLO mode, i.e. train, val, predict, export, track, benchmark
|
8
|
+
|
9
|
+
# Train settings -------------------------------------------------------------------------------------------------------
|
10
|
+
model: # (str, optional) path to model file, i.e. yolov8n.pt or yolov8n.yaml
|
11
|
+
data: # (str, optional) path to data file, i.e. coco8.yaml
|
12
|
+
epochs: 100 # (int) number of epochs to train for
|
13
|
+
time: # (float, optional) max hours to train; overrides epochs if set
|
14
|
+
patience: 100 # (int) early stop after N epochs without val improvement
|
15
|
+
batch: 16 # (int) batch size; use -1 for AutoBatch
|
16
|
+
imgsz: 640 # (int | list) train/val use int (square); predict/export may use [h,w]
|
17
|
+
save: True # (bool) save train checkpoints and predict results
|
18
|
+
save_period: -1 # (int) save checkpoint every N epochs; disabled if < 1
|
19
|
+
cache: False # (bool | str) cache images in RAM (True/'ram') or on 'disk' to speed dataloading; False disables
|
20
|
+
device: # (int | str | list) device: 0 or [0,1,2,3] for CUDA, 'cpu'/'mps', or -1/[-1,-1] to auto-select idle GPUs
|
21
|
+
workers: 8 # (int) dataloader workers (per RANK if DDP)
|
22
|
+
project: # (str, optional) project name for results root
|
23
|
+
name: # (str, optional) experiment name; results in 'project/name'
|
24
|
+
exist_ok: False # (bool) overwrite existing 'project/name' if True
|
25
|
+
pretrained: True # (bool | str) use pretrained weights (bool) or load weights from path (str)
|
26
|
+
optimizer: auto # (str) optimizer: SGD, Adam, Adamax, AdamW, NAdam, RAdam, RMSProp, or auto
|
27
|
+
verbose: True # (bool) print verbose logs during training/val
|
28
|
+
seed: 0 # (int) random seed for reproducibility
|
29
|
+
deterministic: True # (bool) enable deterministic ops; reproducible but may be slower
|
30
|
+
single_cls: False # (bool) treat all classes as a single class
|
31
|
+
rect: False # (bool) rectangular batches for train; rectangular batching for val when mode='val'
|
32
|
+
cos_lr: False # (bool) cosine learning rate scheduler
|
33
|
+
close_mosaic: 10 # (int) disable mosaic augmentation for final N epochs (0 to keep enabled)
|
34
|
+
resume: False # (bool) resume training from last checkpoint in the run dir
|
35
|
+
amp: True # (bool) Automatic Mixed Precision (AMP) training; True runs AMP capability check
|
36
|
+
fraction: 1.0 # (float) fraction of training dataset to use (1.0 = all)
|
37
|
+
profile: False # (bool) profile ONNX/TensorRT speeds during training for loggers
|
38
|
+
freeze: # (int | list, optional) freeze first N layers (int) or specific layer indices (list)
|
39
|
+
multi_scale: False # (bool) multiscale training by varying image size
|
40
|
+
compile: False # (bool | str) enable torch.compile() backend='inductor'; True="default", False=off, or "default|reduce-overhead|max-autotune"
|
41
|
+
|
42
|
+
# Segmentation
|
43
|
+
overlap_mask: True # (bool) merge instance masks into one mask during training (segment only)
|
44
|
+
mask_ratio: 4 # (int) mask downsample ratio (segment only)
|
45
|
+
|
46
|
+
# Classification
|
47
|
+
dropout: 0.0 # (float) dropout for classification head (classify only)
|
48
|
+
|
49
|
+
# Val/Test settings ----------------------------------------------------------------------------------------------------
|
50
|
+
val: True # (bool) run validation/testing during training
|
51
|
+
split: val # (str) dataset split to evaluate: 'val', 'test' or 'train'
|
52
|
+
save_json: False # (bool) save results to COCO JSON for external evaluation
|
53
|
+
conf: # (float, optional) confidence threshold; defaults: predict=0.25, val=0.001
|
54
|
+
iou: 0.7 # (float) IoU threshold used for NMS
|
55
|
+
max_det: 300 # (int) maximum number of detections per image
|
56
|
+
half: False # (bool) use half precision (FP16) if supported
|
57
|
+
dnn: False # (bool) use OpenCV DNN for ONNX inference
|
58
|
+
plots: True # (bool) save plots and images during train/val
|
59
|
+
|
60
|
+
# Predict settings -----------------------------------------------------------------------------------------------------
|
61
|
+
source: # (str, optional) path/dir/URL/stream for images or videos; e.g. 'ultralytics/assets' or '0' for webcam
|
62
|
+
vid_stride: 1 # (int) read every Nth frame for video sources
|
63
|
+
stream_buffer: False # (bool) True buffers all frames; False keeps the most recent frame for low-latency streams
|
64
|
+
visualize: False # (bool) visualize model features (predict) or TP/FP/FN confusion (val)
|
65
|
+
augment: False # (bool) apply test-time augmentation during prediction
|
66
|
+
agnostic_nms: False # (bool) class-agnostic NMS
|
67
|
+
classes: # (int | list[int], optional) filter by class id(s), e.g. 0 or [0,2,3]
|
68
|
+
retina_masks: False # (bool) use high-resolution segmentation masks (segment)
|
69
|
+
embed: # (list[int], optional) return feature embeddings from given layer indices
|
70
|
+
|
71
|
+
# Visualize settings ---------------------------------------------------------------------------------------------------
|
72
|
+
show: False # (bool) show images/videos in a window if supported
|
73
|
+
save_frames: False # (bool) save individual frames from video predictions
|
74
|
+
save_txt: False # (bool) save results as .txt files (xywh format)
|
75
|
+
save_conf: False # (bool) save confidence scores with results
|
76
|
+
save_crop: False # (bool) save cropped prediction regions to files
|
77
|
+
show_labels: True # (bool) draw class labels on images, e.g. 'person'
|
78
|
+
show_conf: True # (bool) draw confidence values on images, e.g. '0.99'
|
79
|
+
show_boxes: True # (bool) draw bounding boxes on images
|
80
|
+
line_width: # (int, optional) line width of boxes; auto-scales with image size if not set
|
81
|
+
|
82
|
+
# Export settings ------------------------------------------------------------------------------------------------------
|
83
|
+
format: torchscript # (str) target format, e.g. torchscript|onnx|openvino|engine|coreml|saved_model|pb|tflite|edgetpu|tfjs|paddle|mnn|ncnn|imx|rknn
|
84
|
+
keras: False # (bool) TF SavedModel only (format=saved_model); enable Keras layers during export
|
85
|
+
optimize: False # (bool) TorchScript only; apply mobile optimizations to the scripted model
|
86
|
+
int8: False # (bool) INT8/PTQ where supported (openvino, tflite, tfjs, engine, imx); needs calibration data/fraction
|
87
|
+
dynamic: False # (bool) dynamic shapes for torchscript, onnx, openvino, engine; enable variable image sizes
|
88
|
+
simplify: True # (bool) ONNX/engine only; run graph simplifier for cleaner ONNX before runtime conversion
|
89
|
+
opset: # (int, optional) ONNX/engine only; opset version for export; leave unset to use a tested default
|
90
|
+
workspace: # (float, optional) engine (TensorRT) only; workspace size in GiB, e.g. 4
|
91
|
+
nms: False # (bool) fuse NMS into exported model when backend supports; if True, conf/iou apply (agnostic_nms except coreml)
|
92
|
+
|
93
|
+
# Hyperparameters ------------------------------------------------------------------------------------------------------
|
94
|
+
lr0: 0.01 # (float) initial learning rate (SGD=1e-2, Adam/AdamW=1e-3)
|
95
|
+
lrf: 0.01 # (float) final LR fraction; final LR = lr0 * lrf
|
96
|
+
momentum: 0.937 # (float) SGD momentum or Adam beta1
|
97
|
+
weight_decay: 0.0005 # (float) weight decay (L2 regularization)
|
98
|
+
warmup_epochs: 3.0 # (float) warmup epochs (fractions allowed)
|
99
|
+
warmup_momentum: 0.8 # (float) initial momentum during warmup
|
100
|
+
warmup_bias_lr: 0.1 # (float) bias learning rate during warmup
|
101
|
+
box: 7.5 # (float) box loss gain
|
102
|
+
cls: 0.5 # (float) classification loss gain
|
103
|
+
dfl: 1.5 # (float) distribution focal loss gain
|
104
|
+
pose: 12.0 # (float) pose loss gain (pose tasks)
|
105
|
+
kobj: 1.0 # (float) keypoint objectness loss gain (pose tasks)
|
106
|
+
nbs: 64 # (int) nominal batch size used for loss normalization
|
107
|
+
hsv_h: 0.015 # (float) HSV hue augmentation fraction
|
108
|
+
hsv_s: 0.7 # (float) HSV saturation augmentation fraction
|
109
|
+
hsv_v: 0.4 # (float) HSV value (brightness) augmentation fraction
|
110
|
+
degrees: 0.0 # (float) rotation degrees (+/-)
|
111
|
+
translate: 0.1 # (float) translation fraction (+/-)
|
112
|
+
scale: 0.5 # (float) scale gain (+/-)
|
113
|
+
shear: 0.0 # (float) shear degrees (+/-)
|
114
|
+
perspective: 0.0 # (float) perspective fraction (0–0.001 typical)
|
115
|
+
flipud: 0.0 # (float) vertical flip probability
|
116
|
+
fliplr: 0.5 # (float) horizontal flip probability
|
117
|
+
bgr: 0.0 # (float) RGB↔BGR channel swap probability
|
118
|
+
mosaic: 1.0 # (float) mosaic augmentation probability
|
119
|
+
mixup: 0.0 # (float) MixUp augmentation probability
|
120
|
+
cutmix: 0.0 # (float) CutMix augmentation probability
|
121
|
+
copy_paste: 0.0 # (float) segmentation copy-paste probability
|
122
|
+
copy_paste_mode: flip # (str) copy-paste strategy for segmentation: flip or mixup
|
123
|
+
auto_augment: randaugment # (str) classification auto augmentation policy: randaugment, autoaugment, augmix
|
124
|
+
erasing: 0.4 # (float) random erasing probability for classification (0–0.9), <1.0
|
125
|
+
|
126
|
+
# Custom config.yaml ---------------------------------------------------------------------------------------------------
|
127
|
+
cfg: # (str, optional) path to a config.yaml that overrides defaults
|
128
|
+
|
129
|
+
# Tracker settings ------------------------------------------------------------------------------------------------------
|
130
|
+
tracker: botsort.yaml # (str) tracker config file: botsort.yaml or bytetrack.yaml
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
|
2
|
+
|
3
|
+
# BoT-SORT tracker defaults for mode="track"
|
4
|
+
# Docs: https://docs.ultralytics.com/modes/track/
|
5
|
+
|
6
|
+
tracker_type: botsort # (str) Tracker backend: botsort|bytetrack; choose botsort to enable BoT-SORT features
|
7
|
+
track_high_thresh: 0.25 # (float) First-stage match threshold; raise for cleaner tracks, lower to keep more
|
8
|
+
track_low_thresh: 0.1 # (float) Second-stage threshold for low-score matches; balances recovery vs drift
|
9
|
+
new_track_thresh: 0.25 # (float) Start a new track if no match ≥ this; higher reduces false tracks
|
10
|
+
track_buffer: 30 # (int) Frames to keep lost tracks alive; higher handles occlusion, increases ID switches risk
|
11
|
+
match_thresh: 0.8 # (float) Association similarity threshold (IoU/cost); tune with detector quality
|
12
|
+
fuse_score: True # (bool) Fuse detection score with motion/IoU for matching; stabilizes weak detections
|
13
|
+
|
14
|
+
# BoT-SORT specifics
|
15
|
+
gmc_method: sparseOptFlow # (str) Global motion compensation: sparseOptFlow|orb|none; helps moving camera scenes
|
16
|
+
|
17
|
+
# ReID model related thresh
|
18
|
+
proximity_thresh: 0.5 # (float) Min IoU to consider tracks proximate for ReID; higher is stricter
|
19
|
+
appearance_thresh: 0.8 # (float) Min appearance similarity for ReID; raise to avoid identity swaps
|
20
|
+
with_reid: False # (bool) Enable ReID model use; needs extra model and compute
|
21
|
+
model: auto # (str) ReID model name/path; "auto" uses detector features if available
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
|
2
|
+
|
3
|
+
# ByteTrack tracker defaults for mode="track"
|
4
|
+
# Docs: https://docs.ultralytics.com/modes/track/
|
5
|
+
|
6
|
+
tracker_type: bytetrack # (str) Tracker backend: botsort|bytetrack; choose bytetrack for the classic baseline
|
7
|
+
track_high_thresh: 0.25 # (float) First-stage match threshold; raise for cleaner tracks, lower to keep more
|
8
|
+
track_low_thresh: 0.1 # (float) Second-stage threshold for low-score matches; balances recovery vs drift
|
9
|
+
new_track_thresh: 0.25 # (float) Start a new track if no match ≥ this; higher reduces false tracks
|
10
|
+
track_buffer: 30 # (int) Frames to keep lost tracks alive; higher handles occlusion, increases ID switches risk
|
11
|
+
match_thresh: 0.8 # (float) Association similarity threshold (IoU/cost); tune with detector quality
|
12
|
+
fuse_score: True # (bool) Fuse detection score with motion/IoU for matching; stabilizes weak detections
|
@@ -2382,7 +2382,7 @@ class LoadVisualPrompt:
|
|
2382
2382
|
# assert len(cls_unique) == cls_unique[-1] + 1, (
|
2383
2383
|
# f"Expected a continuous range of class indices, but got {cls_unique}"
|
2384
2384
|
# )
|
2385
|
-
visuals = torch.zeros(
|
2385
|
+
visuals = torch.zeros(cls_unique.shape[0], *masksz)
|
2386
2386
|
for idx, mask in zip(inverse_indices, masks):
|
2387
2387
|
visuals[idx] = torch.logical_or(visuals[idx], mask)
|
2388
2388
|
return visuals
|
@@ -172,7 +172,7 @@ class YOLODataset(BaseDataset):
|
|
172
172
|
cache, exists = load_dataset_cache_file(cache_path), True # attempt to load a *.cache file
|
173
173
|
assert cache["version"] == DATASET_CACHE_VERSION # matches current version
|
174
174
|
assert cache["hash"] == get_hash(self.label_files + self.im_files) # identical hash
|
175
|
-
except (FileNotFoundError, AssertionError, AttributeError):
|
175
|
+
except (FileNotFoundError, AssertionError, AttributeError, ModuleNotFoundError):
|
176
176
|
cache, exists = self.cache_labels(cache_path), False # run cache ops
|
177
177
|
|
178
178
|
# Display cache
|
@@ -194,9 +194,9 @@ def try_export(inner_func):
|
|
194
194
|
dt = 0.0
|
195
195
|
try:
|
196
196
|
with Profile() as dt:
|
197
|
-
f
|
197
|
+
f = inner_func(*args, **kwargs)
|
198
198
|
LOGGER.info(f"{prefix} export success ✅ {dt.t:.1f}s, saved as '{f}' ({file_size(f):.1f} MB)")
|
199
|
-
return f
|
199
|
+
return f
|
200
200
|
except Exception as e:
|
201
201
|
LOGGER.error(f"{prefix} export failure {dt.t:.1f}s: {e}")
|
202
202
|
raise e
|
@@ -486,36 +486,36 @@ class Exporter:
|
|
486
486
|
# Exports
|
487
487
|
f = [""] * len(fmts) # exported filenames
|
488
488
|
if jit or ncnn: # TorchScript
|
489
|
-
f[0]
|
489
|
+
f[0] = self.export_torchscript()
|
490
490
|
if engine: # TensorRT required before ONNX
|
491
|
-
f[1]
|
491
|
+
f[1] = self.export_engine(dla=dla)
|
492
492
|
if onnx: # ONNX
|
493
|
-
f[2]
|
493
|
+
f[2] = self.export_onnx()
|
494
494
|
if xml: # OpenVINO
|
495
|
-
f[3]
|
495
|
+
f[3] = self.export_openvino()
|
496
496
|
if coreml: # CoreML
|
497
|
-
f[4]
|
497
|
+
f[4] = self.export_coreml()
|
498
498
|
if is_tf_format: # TensorFlow formats
|
499
499
|
self.args.int8 |= edgetpu
|
500
500
|
f[5], keras_model = self.export_saved_model()
|
501
501
|
if pb or tfjs: # pb prerequisite to tfjs
|
502
|
-
f[6]
|
502
|
+
f[6] = self.export_pb(keras_model=keras_model)
|
503
503
|
if tflite:
|
504
|
-
f[7]
|
504
|
+
f[7] = self.export_tflite()
|
505
505
|
if edgetpu:
|
506
|
-
f[8]
|
506
|
+
f[8] = self.export_edgetpu(tflite_model=Path(f[5]) / f"{self.file.stem}_full_integer_quant.tflite")
|
507
507
|
if tfjs:
|
508
|
-
f[9]
|
508
|
+
f[9] = self.export_tfjs()
|
509
509
|
if paddle: # PaddlePaddle
|
510
|
-
f[10]
|
510
|
+
f[10] = self.export_paddle()
|
511
511
|
if mnn: # MNN
|
512
|
-
f[11]
|
512
|
+
f[11] = self.export_mnn()
|
513
513
|
if ncnn: # NCNN
|
514
|
-
f[12]
|
514
|
+
f[12] = self.export_ncnn()
|
515
515
|
if imx:
|
516
|
-
f[13]
|
516
|
+
f[13] = self.export_imx()
|
517
517
|
if rknn:
|
518
|
-
f[14]
|
518
|
+
f[14] = self.export_rknn()
|
519
519
|
|
520
520
|
# Finish
|
521
521
|
f = [str(x) for x in f if x] # filter out '' and None
|
@@ -580,7 +580,7 @@ class Exporter:
|
|
580
580
|
optimize_for_mobile(ts)._save_for_lite_interpreter(str(f), _extra_files=extra_files)
|
581
581
|
else:
|
582
582
|
ts.save(str(f), _extra_files=extra_files)
|
583
|
-
return f
|
583
|
+
return f
|
584
584
|
|
585
585
|
@try_export
|
586
586
|
def export_onnx(self, prefix=colorstr("ONNX:")):
|
@@ -639,7 +639,7 @@ class Exporter:
|
|
639
639
|
meta.key, meta.value = k, str(v)
|
640
640
|
|
641
641
|
onnx.save(model_onnx, f)
|
642
|
-
return f
|
642
|
+
return f
|
643
643
|
|
644
644
|
@try_export
|
645
645
|
def export_openvino(self, prefix=colorstr("OpenVINO:")):
|
@@ -708,13 +708,13 @@ class Exporter:
|
|
708
708
|
ignored_scope=ignored_scope,
|
709
709
|
)
|
710
710
|
serialize(quantized_ov_model, fq_ov)
|
711
|
-
return fq
|
711
|
+
return fq
|
712
712
|
|
713
713
|
f = str(self.file).replace(self.file.suffix, f"_openvino_model{os.sep}")
|
714
714
|
f_ov = str(Path(f) / self.file.with_suffix(".xml").name)
|
715
715
|
|
716
716
|
serialize(ov_model, f_ov)
|
717
|
-
return f
|
717
|
+
return f
|
718
718
|
|
719
719
|
@try_export
|
720
720
|
def export_paddle(self, prefix=colorstr("PaddlePaddle:")):
|
@@ -738,12 +738,12 @@ class Exporter:
|
|
738
738
|
|
739
739
|
pytorch2paddle(module=self.model, save_dir=f, jit_type="trace", input_examples=[self.im]) # export
|
740
740
|
YAML.save(Path(f) / "metadata.yaml", self.metadata) # add metadata.yaml
|
741
|
-
return f
|
741
|
+
return f
|
742
742
|
|
743
743
|
@try_export
|
744
744
|
def export_mnn(self, prefix=colorstr("MNN:")):
|
745
745
|
"""Export YOLO model to MNN format using MNN https://github.com/alibaba/MNN."""
|
746
|
-
f_onnx
|
746
|
+
f_onnx = self.export_onnx() # get onnx model first
|
747
747
|
|
748
748
|
check_requirements("MNN>=2.9.6")
|
749
749
|
import MNN # noqa
|
@@ -763,7 +763,7 @@ class Exporter:
|
|
763
763
|
convert_scratch = Path(self.file.parent / ".__convert_external_data.bin")
|
764
764
|
if convert_scratch.exists():
|
765
765
|
convert_scratch.unlink()
|
766
|
-
return f
|
766
|
+
return f
|
767
767
|
|
768
768
|
@try_export
|
769
769
|
def export_ncnn(self, prefix=colorstr("NCNN:")):
|
@@ -831,7 +831,7 @@ class Exporter:
|
|
831
831
|
Path(f_debug).unlink(missing_ok=True)
|
832
832
|
|
833
833
|
YAML.save(f / "metadata.yaml", self.metadata) # add metadata.yaml
|
834
|
-
return str(f)
|
834
|
+
return str(f)
|
835
835
|
|
836
836
|
@try_export
|
837
837
|
def export_coreml(self, prefix=colorstr("CoreML:")):
|
@@ -910,13 +910,13 @@ class Exporter:
|
|
910
910
|
)
|
911
911
|
f = f.with_suffix(".mlmodel")
|
912
912
|
ct_model.save(str(f))
|
913
|
-
return f
|
913
|
+
return f
|
914
914
|
|
915
915
|
@try_export
|
916
916
|
def export_engine(self, dla=None, prefix=colorstr("TensorRT:")):
|
917
917
|
"""Export YOLO model to TensorRT format https://developer.nvidia.com/tensorrt."""
|
918
918
|
assert self.im.device.type != "cpu", "export running on CPU but must be on GPU, i.e. use 'device=0'"
|
919
|
-
f_onnx
|
919
|
+
f_onnx = self.export_onnx() # run before TRT import https://github.com/ultralytics/ultralytics/issues/7016
|
920
920
|
|
921
921
|
try:
|
922
922
|
import tensorrt as trt # noqa
|
@@ -946,7 +946,7 @@ class Exporter:
|
|
946
946
|
prefix=prefix,
|
947
947
|
)
|
948
948
|
|
949
|
-
return f
|
949
|
+
return f
|
950
950
|
|
951
951
|
@try_export
|
952
952
|
def export_saved_model(self, prefix=colorstr("TensorFlow SavedModel:")):
|
@@ -991,7 +991,7 @@ class Exporter:
|
|
991
991
|
|
992
992
|
# Export to ONNX
|
993
993
|
self.args.simplify = True
|
994
|
-
f_onnx
|
994
|
+
f_onnx = self.export_onnx()
|
995
995
|
|
996
996
|
# Export to TF
|
997
997
|
np_data = None
|
@@ -1051,7 +1051,7 @@ class Exporter:
|
|
1051
1051
|
frozen_func = convert_variables_to_constants_v2(m)
|
1052
1052
|
frozen_func.graph.as_graph_def()
|
1053
1053
|
tf.io.write_graph(graph_or_graph_def=frozen_func.graph, logdir=str(f.parent), name=f.name, as_text=False)
|
1054
|
-
return f
|
1054
|
+
return f
|
1055
1055
|
|
1056
1056
|
@try_export
|
1057
1057
|
def export_tflite(self, prefix=colorstr("TensorFlow Lite:")):
|
@@ -1067,7 +1067,7 @@ class Exporter:
|
|
1067
1067
|
f = saved_model / f"{self.file.stem}_float16.tflite" # fp32 in/out
|
1068
1068
|
else:
|
1069
1069
|
f = saved_model / f"{self.file.stem}_float32.tflite"
|
1070
|
-
return str(f)
|
1070
|
+
return str(f)
|
1071
1071
|
|
1072
1072
|
@try_export
|
1073
1073
|
def export_edgetpu(self, tflite_model="", prefix=colorstr("Edge TPU:")):
|
@@ -1102,7 +1102,7 @@ class Exporter:
|
|
1102
1102
|
LOGGER.info(f"{prefix} running '{cmd}'")
|
1103
1103
|
subprocess.run(cmd, shell=True)
|
1104
1104
|
self._add_tflite_metadata(f)
|
1105
|
-
return f
|
1105
|
+
return f
|
1106
1106
|
|
1107
1107
|
@try_export
|
1108
1108
|
def export_tfjs(self, prefix=colorstr("TensorFlow.js:")):
|
@@ -1135,7 +1135,7 @@ class Exporter:
|
|
1135
1135
|
|
1136
1136
|
# Add metadata
|
1137
1137
|
YAML.save(Path(f) / "metadata.yaml", self.metadata) # add metadata.yaml
|
1138
|
-
return f
|
1138
|
+
return f
|
1139
1139
|
|
1140
1140
|
@try_export
|
1141
1141
|
def export_rknn(self, prefix=colorstr("RKNN:")):
|
@@ -1151,7 +1151,7 @@ class Exporter:
|
|
1151
1151
|
|
1152
1152
|
from rknn.api import RKNN
|
1153
1153
|
|
1154
|
-
f
|
1154
|
+
f = self.export_onnx()
|
1155
1155
|
export_path = Path(f"{Path(f).stem}_rknn_model")
|
1156
1156
|
export_path.mkdir(exist_ok=True)
|
1157
1157
|
|
@@ -1162,7 +1162,7 @@ class Exporter:
|
|
1162
1162
|
f = f.replace(".onnx", f"-{self.args.name}.rknn")
|
1163
1163
|
rknn.export_rknn(f"{export_path / f}")
|
1164
1164
|
YAML.save(export_path / "metadata.yaml", self.metadata)
|
1165
|
-
return export_path
|
1165
|
+
return export_path
|
1166
1166
|
|
1167
1167
|
@try_export
|
1168
1168
|
def export_imx(self, prefix=colorstr("IMX:")):
|
@@ -1339,7 +1339,7 @@ class Exporter:
|
|
1339
1339
|
with open(f / "labels.txt", "w", encoding="utf-8") as file:
|
1340
1340
|
file.writelines([f"{name}\n" for _, name in self.model.names.items()])
|
1341
1341
|
|
1342
|
-
return f
|
1342
|
+
return f
|
1343
1343
|
|
1344
1344
|
def _add_tflite_metadata(self, file):
|
1345
1345
|
"""Add metadata to *.tflite models per https://ai.google.dev/edge/litert/models/metadata."""
|
@@ -1560,6 +1560,7 @@ class NMSModel(torch.nn.Module):
|
|
1560
1560
|
or (self.args.format == "openvino" and self.args.int8) # OpenVINO int8 error with triu
|
1561
1561
|
),
|
1562
1562
|
iou_func=batch_probiou,
|
1563
|
+
exit_early=False,
|
1563
1564
|
)
|
1564
1565
|
if self.obb
|
1565
1566
|
else nms
|
@@ -788,7 +788,7 @@ class Model(torch.nn.Module):
|
|
788
788
|
"model": self.overrides["model"],
|
789
789
|
"task": self.task,
|
790
790
|
} # method defaults
|
791
|
-
args = {**overrides, **custom, **kwargs, "mode": "train"} #
|
791
|
+
args = {**overrides, **custom, **kwargs, "mode": "train", "session": self.session} # prioritizes rightmost args
|
792
792
|
if args.get("resume"):
|
793
793
|
args["resume"] = self.ckpt_path
|
794
794
|
|
@@ -797,7 +797,6 @@ class Model(torch.nn.Module):
|
|
797
797
|
self.trainer.model = self.trainer.get_model(weights=self.model if self.ckpt else None, cfg=self.model.yaml)
|
798
798
|
self.model = self.trainer.model
|
799
799
|
|
800
|
-
self.trainer.hub_session = self.session # attach optional HUB session
|
801
800
|
self.trainer.train()
|
802
801
|
# Update model and cfg after training
|
803
802
|
if RANK in {-1, 0}:
|
@@ -409,8 +409,7 @@ class BasePredictor:
|
|
409
409
|
if hasattr(self.model, "imgsz") and not getattr(self.model, "dynamic", False):
|
410
410
|
self.args.imgsz = self.model.imgsz # reuse imgsz from export metadata
|
411
411
|
self.model.eval()
|
412
|
-
|
413
|
-
self.model = attempt_compile(self.model, device=self.device)
|
412
|
+
self.model = attempt_compile(self.model, device=self.device, mode=self.args.compile)
|
414
413
|
|
415
414
|
def write_results(self, i: int, p: Path, im: torch.Tensor, s: list[str]) -> str:
|
416
415
|
"""
|
@@ -900,7 +900,7 @@ class Boxes(BaseTensor):
|
|
900
900
|
Args:
|
901
901
|
boxes (torch.Tensor | np.ndarray): A tensor or numpy array with detection boxes of shape
|
902
902
|
(num_boxes, 6) or (num_boxes, 7). Columns should contain
|
903
|
-
[x1, y1, x2, y2,
|
903
|
+
[x1, y1, x2, y2, (optional) track_id, confidence, class].
|
904
904
|
orig_shape (tuple[int, int]): The original image shape as (height, width). Used for normalization.
|
905
905
|
|
906
906
|
Attributes:
|
@@ -42,6 +42,7 @@ from ultralytics.utils.autobatch import check_train_batch_size
|
|
42
42
|
from ultralytics.utils.checks import check_amp, check_file, check_imgsz, check_model_file_from_stem, print_args
|
43
43
|
from ultralytics.utils.dist import ddp_cleanup, generate_ddp_command
|
44
44
|
from ultralytics.utils.files import get_latest_run
|
45
|
+
from ultralytics.utils.plotting import plot_results
|
45
46
|
from ultralytics.utils.torch_utils import (
|
46
47
|
TORCH_2_4,
|
47
48
|
EarlyStopping,
|
@@ -119,6 +120,7 @@ class BaseTrainer:
|
|
119
120
|
overrides (dict, optional): Configuration overrides.
|
120
121
|
_callbacks (list, optional): List of callback functions.
|
121
122
|
"""
|
123
|
+
self.hub_session = overrides.pop("session", None) # HUB
|
122
124
|
self.args = get_cfg(cfg, overrides)
|
123
125
|
self.check_resume(overrides)
|
124
126
|
self.device = select_device(self.args.device, self.args.batch)
|
@@ -170,9 +172,6 @@ class BaseTrainer:
|
|
170
172
|
self.csv = self.save_dir / "results.csv"
|
171
173
|
self.plot_idx = [0, 1, 2]
|
172
174
|
|
173
|
-
# HUB
|
174
|
-
self.hub_session = None
|
175
|
-
|
176
175
|
# Callbacks
|
177
176
|
self.callbacks = _callbacks or callbacks.get_default_callbacks()
|
178
177
|
if RANK in {-1, 0}:
|
@@ -263,8 +262,7 @@ class BaseTrainer:
|
|
263
262
|
self.model.criterion = self.model.init_criterion()
|
264
263
|
|
265
264
|
# Compile model
|
266
|
-
|
267
|
-
self.model = attempt_compile(self.model, device=self.device)
|
265
|
+
self.model = attempt_compile(self.model, device=self.device, mode=self.args.compile)
|
268
266
|
|
269
267
|
# Freeze layers
|
270
268
|
freeze_list = (
|
@@ -414,8 +412,9 @@ class BaseTrainer:
|
|
414
412
|
# Forward
|
415
413
|
with autocast(self.amp):
|
416
414
|
batch = self.preprocess_batch(batch)
|
417
|
-
|
418
|
-
|
415
|
+
# decouple inference and loss calculations for torch.compile convenience
|
416
|
+
preds = self.model(batch["img"])
|
417
|
+
loss, self.loss_items = unwrap_model(self.model).loss(batch, preds)
|
419
418
|
self.loss = loss.sum()
|
420
419
|
if RANK != -1:
|
421
420
|
self.loss *= world_size
|
@@ -456,7 +455,6 @@ class BaseTrainer:
|
|
456
455
|
)
|
457
456
|
self.run_callbacks("on_batch_end")
|
458
457
|
if self.args.plots and ni in self.plot_idx:
|
459
|
-
batch = {**batch, **metadata}
|
460
458
|
self.plot_training_samples(batch, ni)
|
461
459
|
|
462
460
|
self.run_callbacks("on_train_batch_end")
|
@@ -745,8 +743,8 @@ class BaseTrainer:
|
|
745
743
|
f.write(s + ("%.6g," * n % tuple([self.epoch + 1, t] + vals)).rstrip(",") + "\n")
|
746
744
|
|
747
745
|
def plot_metrics(self):
|
748
|
-
"""Plot
|
749
|
-
|
746
|
+
"""Plot metrics from a CSV file."""
|
747
|
+
plot_results(file=self.csv, on_plot=self.on_plot) # save results.png
|
750
748
|
|
751
749
|
def on_plot(self, name, data=None):
|
752
750
|
"""Register plots (e.g. to be consumed in callbacks)."""
|