ultralytics 8.1.42__tar.gz → 8.1.44__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.
Potentially problematic release.
This version of ultralytics might be problematic. Click here for more details.
- {ultralytics-8.1.42/ultralytics.egg-info → ultralytics-8.1.44}/PKG-INFO +1 -1
- {ultralytics-8.1.42 → ultralytics-8.1.44}/tests/test_engine.py +2 -1
- {ultralytics-8.1.42 → ultralytics-8.1.44}/tests/test_integrations.py +1 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/tests/test_python.py +14 -21
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/__init__.py +3 -2
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +1 -1
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/models/v9/yolov9c.yaml +1 -1
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +2 -3
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/models/v9/yolov9e.yaml +2 -3
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/data/__init__.py +3 -8
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/data/augment.py +14 -11
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/data/base.py +1 -1
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/data/build.py +1 -1
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/data/converter.py +4 -3
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/data/dataset.py +149 -144
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/data/explorer/explorer.py +10 -11
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/data/explorer/gui/dash.py +3 -3
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/data/explorer/utils.py +3 -2
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/data/loaders.py +3 -3
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/engine/exporter.py +3 -2
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/engine/model.py +2 -1
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/engine/trainer.py +2 -1
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/hub/auth.py +3 -3
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/hub/session.py +3 -3
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/hub/utils.py +6 -6
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/fastsam/prompt.py +4 -1
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/rtdetr/val.py +1 -1
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/sam/modules/tiny_encoder.py +2 -2
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/sam/modules/transformer.py +1 -1
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/sam/predict.py +16 -13
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/yolo/classify/train.py +2 -1
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/yolo/detect/val.py +1 -1
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/yolo/model.py +1 -1
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/yolo/obb/val.py +1 -1
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/yolo/world/train_world.py +2 -2
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/nn/modules/head.py +1 -1
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/solutions/heatmap.py +14 -27
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/solutions/object_counter.py +12 -22
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/trackers/utils/kalman_filter.py +4 -4
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/trackers/utils/matching.py +1 -1
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/utils/__init__.py +56 -41
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/utils/benchmarks.py +1 -2
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/utils/callbacks/clearml.py +4 -3
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/utils/callbacks/hub.py +1 -4
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/utils/callbacks/mlflow.py +1 -1
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/utils/callbacks/tensorboard.py +1 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/utils/callbacks/wb.py +5 -5
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/utils/checks.py +17 -20
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/utils/metrics.py +3 -3
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/utils/ops.py +1 -1
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/utils/plotting.py +67 -40
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/utils/torch_utils.py +13 -6
- {ultralytics-8.1.42 → ultralytics-8.1.44/ultralytics.egg-info}/PKG-INFO +1 -1
- {ultralytics-8.1.42 → ultralytics-8.1.44}/LICENSE +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/README.md +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/pyproject.toml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/setup.cfg +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/tests/test_cli.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/tests/test_cuda.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/tests/test_explorer.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/assets/bus.jpg +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/assets/zidane.jpg +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/__init__.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/datasets/VOC.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/datasets/coco.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/datasets/coco128.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/datasets/coco8.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/datasets/dota8.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/datasets/lvis.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/datasets/xView.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/default.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/trackers/botsort.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/data/annotator.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/data/explorer/__init__.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/data/explorer/gui/__init__.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/data/split_dota.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/data/utils.py +1 -1
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/engine/__init__.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/engine/predictor.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/engine/results.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/engine/tuner.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/engine/validator.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/hub/__init__.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/__init__.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/fastsam/__init__.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/fastsam/model.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/fastsam/predict.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/fastsam/utils.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/fastsam/val.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/nas/__init__.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/nas/model.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/nas/predict.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/nas/val.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/rtdetr/__init__.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/rtdetr/model.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/rtdetr/predict.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/rtdetr/train.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/sam/__init__.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/sam/amg.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/sam/build.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/sam/model.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/sam/modules/__init__.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/sam/modules/decoders.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/sam/modules/encoders.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/sam/modules/sam.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/utils/__init__.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/utils/loss.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/utils/ops.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/yolo/__init__.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/yolo/classify/__init__.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/yolo/classify/predict.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/yolo/classify/val.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/yolo/detect/__init__.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/yolo/detect/predict.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/yolo/detect/train.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/yolo/obb/__init__.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/yolo/obb/predict.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/yolo/obb/train.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/yolo/pose/__init__.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/yolo/pose/predict.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/yolo/pose/train.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/yolo/pose/val.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/yolo/segment/__init__.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/yolo/segment/predict.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/yolo/segment/train.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/yolo/segment/val.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/yolo/world/__init__.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/models/yolo/world/train.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/nn/__init__.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/nn/autobackend.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/nn/modules/__init__.py +8 -8
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/nn/modules/block.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/nn/modules/conv.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/nn/modules/transformer.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/nn/modules/utils.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/nn/tasks.py +7 -7
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/solutions/__init__.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/solutions/ai_gym.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/solutions/distance_calculation.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/solutions/queue_management.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/solutions/speed_estimation.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/trackers/__init__.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/trackers/basetrack.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/trackers/bot_sort.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/trackers/byte_tracker.py +1 -1
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/trackers/track.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/trackers/utils/__init__.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/trackers/utils/gmc.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/utils/autobatch.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/utils/callbacks/__init__.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/utils/callbacks/base.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/utils/callbacks/comet.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/utils/callbacks/dvc.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/utils/callbacks/neptune.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/utils/callbacks/raytune.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/utils/dist.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/utils/downloads.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/utils/errors.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/utils/files.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/utils/instance.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/utils/loss.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/utils/patches.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/utils/tal.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/utils/triton.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics/utils/tuner.py +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics.egg-info/SOURCES.txt +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics.egg-info/dependency_links.txt +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics.egg-info/entry_points.txt +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics.egg-info/requires.txt +0 -0
- {ultralytics-8.1.42 → ultralytics-8.1.44}/ultralytics.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: ultralytics
|
|
3
|
-
Version: 8.1.
|
|
3
|
+
Version: 8.1.44
|
|
4
4
|
Summary: Ultralytics YOLOv8 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
|
|
5
5
|
Author: Glenn Jocher, Ayush Chaurasia, Jing Qiu
|
|
6
6
|
Maintainer: Glenn Jocher, Ayush Chaurasia, Jing Qiu
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import sys
|
|
4
4
|
from unittest import mock
|
|
5
|
+
|
|
5
6
|
from ultralytics import YOLO
|
|
6
7
|
from ultralytics.cfg import get_cfg
|
|
7
8
|
from ultralytics.engine.exporter import Exporter
|
|
@@ -52,7 +53,7 @@ def test_detect():
|
|
|
52
53
|
pred.add_callback("on_predict_start", test_func)
|
|
53
54
|
assert test_func in pred.callbacks["on_predict_start"], "callback test failed"
|
|
54
55
|
# Confirm there is no issue with sys.argv being empty.
|
|
55
|
-
with mock.patch.object(sys,
|
|
56
|
+
with mock.patch.object(sys, "argv", []):
|
|
56
57
|
result = pred(source=ASSETS, model=f"{MODEL}.pt")
|
|
57
58
|
assert len(result), "predictor test failed"
|
|
58
59
|
|
|
@@ -10,7 +10,6 @@ import pytest
|
|
|
10
10
|
import torch
|
|
11
11
|
import yaml
|
|
12
12
|
from PIL import Image
|
|
13
|
-
from torchvision.transforms import ToTensor
|
|
14
13
|
|
|
15
14
|
from ultralytics import RTDETR, YOLO
|
|
16
15
|
from ultralytics.cfg import TASK2DATA
|
|
@@ -108,20 +107,17 @@ def test_predict_img():
|
|
|
108
107
|
assert len(model(batch, imgsz=32)) == len(batch) # multiple sources in a batch
|
|
109
108
|
|
|
110
109
|
# Test tensor inference
|
|
111
|
-
im =
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
results
|
|
116
|
-
|
|
117
|
-
results
|
|
118
|
-
|
|
119
|
-
results
|
|
120
|
-
|
|
121
|
-
results
|
|
122
|
-
assert len(results) == t.shape[0]
|
|
123
|
-
results = obb_model(t, imgsz=32)
|
|
124
|
-
assert len(results) == t.shape[0]
|
|
110
|
+
im = torch.rand((4, 3, 32, 32)) # batch-size 4, FP32 0.0-1.0 RGB order
|
|
111
|
+
results = model(im, imgsz=32)
|
|
112
|
+
assert len(results) == im.shape[0]
|
|
113
|
+
results = seg_model(im, imgsz=32)
|
|
114
|
+
assert len(results) == im.shape[0]
|
|
115
|
+
results = cls_model(im, imgsz=32)
|
|
116
|
+
assert len(results) == im.shape[0]
|
|
117
|
+
results = pose_model(im, imgsz=32)
|
|
118
|
+
assert len(results) == im.shape[0]
|
|
119
|
+
results = obb_model(im, imgsz=32)
|
|
120
|
+
assert len(results) == im.shape[0]
|
|
125
121
|
|
|
126
122
|
|
|
127
123
|
def test_predict_grey_and_4ch():
|
|
@@ -518,7 +514,8 @@ def test_utils_files():
|
|
|
518
514
|
@pytest.mark.slow
|
|
519
515
|
def test_utils_patches_torch_save():
|
|
520
516
|
"""Test torch_save backoff when _torch_save throws RuntimeError."""
|
|
521
|
-
from unittest.mock import
|
|
517
|
+
from unittest.mock import MagicMock, patch
|
|
518
|
+
|
|
522
519
|
from ultralytics.utils.patches import torch_save
|
|
523
520
|
|
|
524
521
|
mock = MagicMock(side_effect=RuntimeError)
|
|
@@ -592,8 +589,6 @@ def image():
|
|
|
592
589
|
)
|
|
593
590
|
def test_classify_transforms_train(image, auto_augment, erasing, force_color_jitter):
|
|
594
591
|
"""Tests classification transforms during training with various augmentation settings."""
|
|
595
|
-
import torchvision.transforms as T
|
|
596
|
-
|
|
597
592
|
from ultralytics.data.augment import classify_augmentations
|
|
598
593
|
|
|
599
594
|
transform = classify_augmentations(
|
|
@@ -610,7 +605,6 @@ def test_classify_transforms_train(image, auto_augment, erasing, force_color_jit
|
|
|
610
605
|
hsv_v=0.4,
|
|
611
606
|
force_color_jitter=force_color_jitter,
|
|
612
607
|
erasing=erasing,
|
|
613
|
-
interpolation=T.InterpolationMode.BILINEAR,
|
|
614
608
|
)
|
|
615
609
|
|
|
616
610
|
transformed_image = transform(Image.fromarray(cv2.cvtColor(image, cv2.COLOR_BGR2RGB)))
|
|
@@ -658,9 +652,8 @@ def test_yolo_world():
|
|
|
658
652
|
from ultralytics.models.yolo.world.train_world import WorldTrainerFromScratch
|
|
659
653
|
|
|
660
654
|
model = YOLO("yolov8s-worldv2.yaml") # no YOLOv8n-world model yet
|
|
661
|
-
data = dict(train=dict(yolo_data=["coco8.yaml"]), val=dict(yolo_data=["coco8.yaml"]))
|
|
662
655
|
model.train(
|
|
663
|
-
data=
|
|
656
|
+
data={"train": {"yolo_data": ["coco8.yaml"]}, "val": {"yolo_data": ["coco8.yaml"]}},
|
|
664
657
|
epochs=2,
|
|
665
658
|
imgsz=32,
|
|
666
659
|
cache="disk",
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
# Ultralytics YOLO 🚀, AGPL-3.0 license
|
|
2
2
|
|
|
3
|
-
__version__ = "8.1.
|
|
3
|
+
__version__ = "8.1.44"
|
|
4
4
|
|
|
5
5
|
from ultralytics.data.explorer.explorer import Explorer
|
|
6
6
|
from ultralytics.models import RTDETR, SAM, YOLO, YOLOWorld
|
|
7
7
|
from ultralytics.models.fastsam import FastSAM
|
|
8
8
|
from ultralytics.models.nas import NAS
|
|
9
|
-
from ultralytics.utils import ASSETS, SETTINGS
|
|
9
|
+
from ultralytics.utils import ASSETS, SETTINGS
|
|
10
10
|
from ultralytics.utils.checks import check_yolo as checks
|
|
11
11
|
from ultralytics.utils.downloads import download
|
|
12
12
|
|
|
13
|
+
settings = SETTINGS
|
|
13
14
|
__all__ = (
|
|
14
15
|
"__version__",
|
|
15
16
|
"ASSETS",
|
|
@@ -17,13 +17,13 @@ backbone:
|
|
|
17
17
|
- [-1, 1, RepNCSPELAN4, [1024, 512, 256, 2]] # 7
|
|
18
18
|
- [-1, 1, ADown, [1024]] # 8-P5/32
|
|
19
19
|
- [-1, 1, RepNCSPELAN4, [1024, 512, 256, 2]] # 9
|
|
20
|
-
|
|
20
|
+
|
|
21
21
|
- [1, 1, CBLinear, [[64]]] # 10
|
|
22
22
|
- [3, 1, CBLinear, [[64, 128]]] # 11
|
|
23
23
|
- [5, 1, CBLinear, [[64, 128, 256]]] # 12
|
|
24
24
|
- [7, 1, CBLinear, [[64, 128, 256, 512]]] # 13
|
|
25
25
|
- [9, 1, CBLinear, [[64, 128, 256, 512, 1024]]] # 14
|
|
26
|
-
|
|
26
|
+
|
|
27
27
|
- [0, 1, Conv, [64, 3, 2]] # 15-P1/2
|
|
28
28
|
- [[10, 11, 12, 13, 14, -1], 1, CBFuse, [[0, 0, 0, 0, 0]]] # 16
|
|
29
29
|
- [-1, 1, Conv, [128, 3, 2]] # 17-P2/4
|
|
@@ -58,5 +58,4 @@ head:
|
|
|
58
58
|
- [[-1, 29], 1, Concat, [1]] # cat head P5
|
|
59
59
|
- [-1, 1, RepNCSPELAN4, [512, 1024, 512, 2]] # 41 (P5/32-large)
|
|
60
60
|
|
|
61
|
-
# segment
|
|
62
61
|
- [[35, 38, 41], 1, Segment, [nc, 32, 256]] # Segment (P3, P4, P5)
|
|
@@ -17,13 +17,13 @@ backbone:
|
|
|
17
17
|
- [-1, 1, RepNCSPELAN4, [1024, 512, 256, 2]] # 7
|
|
18
18
|
- [-1, 1, ADown, [1024]] # 8-P5/32
|
|
19
19
|
- [-1, 1, RepNCSPELAN4, [1024, 512, 256, 2]] # 9
|
|
20
|
-
|
|
20
|
+
|
|
21
21
|
- [1, 1, CBLinear, [[64]]] # 10
|
|
22
22
|
- [3, 1, CBLinear, [[64, 128]]] # 11
|
|
23
23
|
- [5, 1, CBLinear, [[64, 128, 256]]] # 12
|
|
24
24
|
- [7, 1, CBLinear, [[64, 128, 256, 512]]] # 13
|
|
25
25
|
- [9, 1, CBLinear, [[64, 128, 256, 512, 1024]]] # 14
|
|
26
|
-
|
|
26
|
+
|
|
27
27
|
- [0, 1, Conv, [64, 3, 2]] # 15-P1/2
|
|
28
28
|
- [[10, 11, 12, 13, 14, -1], 1, CBFuse, [[0, 0, 0, 0, 0]]] # 16
|
|
29
29
|
- [-1, 1, Conv, [128, 3, 2]] # 17-P2/4
|
|
@@ -58,5 +58,4 @@ head:
|
|
|
58
58
|
- [[-1, 29], 1, Concat, [1]] # cat head P5
|
|
59
59
|
- [-1, 1, RepNCSPELAN4, [512, 1024, 512, 2]] # 41 (P5/32-large)
|
|
60
60
|
|
|
61
|
-
# detect
|
|
62
61
|
- [[35, 38, 41], 1, Detect, [nc]] # Detect(P3, P4, P5)
|
|
@@ -1,19 +1,14 @@
|
|
|
1
1
|
# Ultralytics YOLO 🚀, AGPL-3.0 license
|
|
2
2
|
|
|
3
3
|
from .base import BaseDataset
|
|
4
|
-
from .build import
|
|
5
|
-
build_dataloader,
|
|
6
|
-
build_yolo_dataset,
|
|
7
|
-
build_grounding,
|
|
8
|
-
load_inference_source,
|
|
9
|
-
)
|
|
4
|
+
from .build import build_dataloader, build_grounding, build_yolo_dataset, load_inference_source
|
|
10
5
|
from .dataset import (
|
|
11
6
|
ClassificationDataset,
|
|
7
|
+
GroundingDataset,
|
|
12
8
|
SemanticDataset,
|
|
9
|
+
YOLOConcatDataset,
|
|
13
10
|
YOLODataset,
|
|
14
11
|
YOLOMultiModalDataset,
|
|
15
|
-
GroundingDataset,
|
|
16
|
-
YOLOConcatDataset,
|
|
17
12
|
)
|
|
18
13
|
|
|
19
14
|
__all__ = (
|
|
@@ -8,7 +8,7 @@ from typing import Tuple, Union
|
|
|
8
8
|
import cv2
|
|
9
9
|
import numpy as np
|
|
10
10
|
import torch
|
|
11
|
-
|
|
11
|
+
from PIL import Image
|
|
12
12
|
|
|
13
13
|
from ultralytics.utils import LOGGER, colorstr
|
|
14
14
|
from ultralytics.utils.checks import check_version
|
|
@@ -20,7 +20,7 @@ from .utils import polygons2masks, polygons2masks_overlap
|
|
|
20
20
|
|
|
21
21
|
DEFAULT_MEAN = (0.0, 0.0, 0.0)
|
|
22
22
|
DEFAULT_STD = (1.0, 1.0, 1.0)
|
|
23
|
-
|
|
23
|
+
DEFAULT_CROP_FRACTION = 1.0
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
# TODO: we might need a BaseTransform to make all these augments be compatible with both classification and semantic
|
|
@@ -167,8 +167,8 @@ class BaseMixTransform:
|
|
|
167
167
|
text2id = {text: i for i, text in enumerate(mix_texts)}
|
|
168
168
|
|
|
169
169
|
for label in [labels] + labels["mix_labels"]:
|
|
170
|
-
for i,
|
|
171
|
-
text = label["texts"][int(
|
|
170
|
+
for i, cls in enumerate(label["cls"].squeeze(-1).tolist()):
|
|
171
|
+
text = label["texts"][int(cls)]
|
|
172
172
|
label["cls"][i] = text2id[tuple(text)]
|
|
173
173
|
label["texts"] = mix_texts
|
|
174
174
|
return labels
|
|
@@ -1133,8 +1133,8 @@ def classify_transforms(
|
|
|
1133
1133
|
size=224,
|
|
1134
1134
|
mean=DEFAULT_MEAN,
|
|
1135
1135
|
std=DEFAULT_STD,
|
|
1136
|
-
interpolation
|
|
1137
|
-
crop_fraction: float =
|
|
1136
|
+
interpolation=Image.BILINEAR,
|
|
1137
|
+
crop_fraction: float = DEFAULT_CROP_FRACTION,
|
|
1138
1138
|
):
|
|
1139
1139
|
"""
|
|
1140
1140
|
Classification transforms for evaluation/inference. Inspired by timm/data/transforms_factory.py.
|
|
@@ -1149,6 +1149,7 @@ def classify_transforms(
|
|
|
1149
1149
|
Returns:
|
|
1150
1150
|
(T.Compose): torchvision transforms
|
|
1151
1151
|
"""
|
|
1152
|
+
import torchvision.transforms as T # scope for faster 'import ultralytics'
|
|
1152
1153
|
|
|
1153
1154
|
if isinstance(size, (tuple, list)):
|
|
1154
1155
|
assert len(size) == 2
|
|
@@ -1157,12 +1158,12 @@ def classify_transforms(
|
|
|
1157
1158
|
scale_size = math.floor(size / crop_fraction)
|
|
1158
1159
|
scale_size = (scale_size, scale_size)
|
|
1159
1160
|
|
|
1160
|
-
#
|
|
1161
|
+
# Aspect ratio is preserved, crops center within image, no borders are added, image is lost
|
|
1161
1162
|
if scale_size[0] == scale_size[1]:
|
|
1162
|
-
#
|
|
1163
|
+
# Simple case, use torchvision built-in Resize with the shortest edge mode (scalar size arg)
|
|
1163
1164
|
tfl = [T.Resize(scale_size[0], interpolation=interpolation)]
|
|
1164
1165
|
else:
|
|
1165
|
-
#
|
|
1166
|
+
# Resize the shortest edge to matching target dim for non-square target
|
|
1166
1167
|
tfl = [T.Resize(scale_size)]
|
|
1167
1168
|
tfl += [T.CenterCrop(size)]
|
|
1168
1169
|
|
|
@@ -1192,7 +1193,7 @@ def classify_augmentations(
|
|
|
1192
1193
|
hsv_v=0.4, # image HSV-Value augmentation (fraction)
|
|
1193
1194
|
force_color_jitter=False,
|
|
1194
1195
|
erasing=0.0,
|
|
1195
|
-
interpolation
|
|
1196
|
+
interpolation=Image.BILINEAR,
|
|
1196
1197
|
):
|
|
1197
1198
|
"""
|
|
1198
1199
|
Classification transforms with augmentation for training. Inspired by timm/data/transforms_factory.py.
|
|
@@ -1216,7 +1217,9 @@ def classify_augmentations(
|
|
|
1216
1217
|
Returns:
|
|
1217
1218
|
(T.Compose): torchvision transforms
|
|
1218
1219
|
"""
|
|
1219
|
-
# Transforms to apply if
|
|
1220
|
+
# Transforms to apply if Albumentations not installed
|
|
1221
|
+
import torchvision.transforms as T # scope for faster 'import ultralytics'
|
|
1222
|
+
|
|
1220
1223
|
if not isinstance(size, int):
|
|
1221
1224
|
raise TypeError(f"classify_transforms() size {size} must be integer, not (list, tuple)")
|
|
1222
1225
|
scale = tuple(scale or (0.08, 1.0)) # default imagenet scale range
|
|
@@ -15,7 +15,7 @@ import psutil
|
|
|
15
15
|
from torch.utils.data import Dataset
|
|
16
16
|
|
|
17
17
|
from ultralytics.utils import DEFAULT_CFG, LOCAL_RANK, LOGGER, NUM_THREADS, TQDM
|
|
18
|
-
from .utils import
|
|
18
|
+
from .utils import FORMATS_HELP_MSG, HELP_URL, IMG_FORMATS
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
class BaseDataset(Dataset):
|
|
@@ -22,7 +22,7 @@ from ultralytics.data.loaders import (
|
|
|
22
22
|
from ultralytics.data.utils import IMG_FORMATS, VID_FORMATS
|
|
23
23
|
from ultralytics.utils import RANK, colorstr
|
|
24
24
|
from ultralytics.utils.checks import check_file
|
|
25
|
-
from .dataset import YOLODataset, YOLOMultiModalDataset
|
|
25
|
+
from .dataset import GroundingDataset, YOLODataset, YOLOMultiModalDataset
|
|
26
26
|
from .utils import PIN_MEMORY
|
|
27
27
|
|
|
28
28
|
|
|
@@ -519,11 +519,12 @@ def yolo_bbox2segment(im_dir, save_dir=None, sam_model="sam_b.pt"):
|
|
|
519
519
|
├─ ..
|
|
520
520
|
└─ NNN.txt
|
|
521
521
|
"""
|
|
522
|
+
from tqdm import tqdm
|
|
523
|
+
|
|
524
|
+
from ultralytics import SAM
|
|
522
525
|
from ultralytics.data import YOLODataset
|
|
523
|
-
from ultralytics.utils.ops import xywh2xyxy
|
|
524
526
|
from ultralytics.utils import LOGGER
|
|
525
|
-
from ultralytics import
|
|
526
|
-
from tqdm import tqdm
|
|
527
|
+
from ultralytics.utils.ops import xywh2xyxy
|
|
527
528
|
|
|
528
529
|
# NOTE: add placeholder to pass class index check
|
|
529
530
|
dataset = YOLODataset(im_dir, data=dict(names=list(range(1000))))
|