ultralytics 8.2.58__tar.gz → 8.2.59__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.2.58/ultralytics.egg-info → ultralytics-8.2.59}/PKG-INFO +1 -1
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/__init__.py +1 -1
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/detect/val.py +23 -16
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/obb/val.py +13 -7
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/pose/val.py +20 -2
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/segment/val.py +29 -9
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/nn/modules/block.py +1 -1
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/solutions/streamlit_inference.py +7 -5
- {ultralytics-8.2.58 → ultralytics-8.2.59/ultralytics.egg-info}/PKG-INFO +1 -1
- {ultralytics-8.2.58 → ultralytics-8.2.59}/LICENSE +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/README.md +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/pyproject.toml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/setup.cfg +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/tests/__init__.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/tests/conftest.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/tests/test_cli.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/tests/test_cuda.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/tests/test_engine.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/tests/test_explorer.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/tests/test_exports.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/tests/test_integrations.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/tests/test_python.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/tests/test_solutions.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/assets/bus.jpg +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/assets/zidane.jpg +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/__init__.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/VOC.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/coco.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/coco128.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/coco8.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/dota8.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/lvis.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/signature.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/xView.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/default.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/trackers/botsort.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/data/__init__.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/data/annotator.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/data/augment.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/data/base.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/data/build.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/data/converter.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/data/dataset.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/data/explorer/__init__.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/data/explorer/explorer.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/data/explorer/gui/__init__.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/data/explorer/gui/dash.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/data/explorer/utils.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/data/loaders.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/data/split_dota.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/data/utils.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/engine/__init__.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/engine/exporter.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/engine/model.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/engine/predictor.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/engine/results.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/engine/trainer.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/engine/tuner.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/engine/validator.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/hub/__init__.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/hub/auth.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/hub/session.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/hub/utils.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/__init__.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/fastsam/__init__.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/fastsam/model.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/fastsam/predict.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/fastsam/prompt.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/fastsam/utils.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/fastsam/val.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/nas/__init__.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/nas/model.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/nas/predict.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/nas/val.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/rtdetr/__init__.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/rtdetr/model.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/rtdetr/predict.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/rtdetr/train.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/rtdetr/val.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/sam/__init__.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/sam/amg.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/sam/build.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/sam/model.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/sam/modules/__init__.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/sam/modules/decoders.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/sam/modules/encoders.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/sam/modules/sam.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/sam/modules/transformer.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/sam/predict.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/utils/__init__.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/utils/loss.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/utils/ops.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/__init__.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/classify/__init__.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/classify/predict.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/classify/train.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/classify/val.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/detect/__init__.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/detect/predict.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/detect/train.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/model.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/obb/__init__.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/obb/predict.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/obb/train.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/pose/__init__.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/pose/predict.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/pose/train.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/segment/__init__.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/segment/predict.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/segment/train.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/world/__init__.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/world/train.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/world/train_world.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/nn/__init__.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/nn/autobackend.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/nn/modules/__init__.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/nn/modules/conv.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/nn/modules/head.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/nn/modules/transformer.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/nn/modules/utils.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/nn/tasks.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/solutions/__init__.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/solutions/ai_gym.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/solutions/analytics.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/solutions/distance_calculation.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/solutions/heatmap.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/solutions/object_counter.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/solutions/parking_management.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/solutions/queue_management.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/solutions/speed_estimation.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/trackers/__init__.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/trackers/basetrack.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/trackers/bot_sort.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/trackers/byte_tracker.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/trackers/track.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/trackers/utils/__init__.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/trackers/utils/gmc.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/trackers/utils/kalman_filter.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/trackers/utils/matching.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/__init__.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/autobatch.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/benchmarks.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/callbacks/__init__.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/callbacks/base.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/callbacks/clearml.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/callbacks/comet.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/callbacks/dvc.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/callbacks/hub.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/callbacks/mlflow.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/callbacks/neptune.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/callbacks/raytune.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/callbacks/tensorboard.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/callbacks/wb.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/checks.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/dist.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/downloads.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/errors.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/files.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/instance.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/loss.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/metrics.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/ops.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/patches.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/plotting.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/tal.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/torch_utils.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/triton.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/tuner.py +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics.egg-info/SOURCES.txt +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics.egg-info/dependency_links.txt +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics.egg-info/entry_points.txt +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics.egg-info/requires.txt +0 -0
- {ultralytics-8.2.58 → ultralytics-8.2.59}/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.2.
|
|
3
|
+
Version: 8.2.59
|
|
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
|
|
@@ -41,6 +41,11 @@ class DetectionValidator(BaseValidator):
|
|
|
41
41
|
self.iouv = torch.linspace(0.5, 0.95, 10) # IoU vector for mAP@0.5:0.95
|
|
42
42
|
self.niou = self.iouv.numel()
|
|
43
43
|
self.lb = [] # for autolabelling
|
|
44
|
+
if self.args.save_hybrid:
|
|
45
|
+
LOGGER.warning(
|
|
46
|
+
"WARNING ⚠️ 'save_hybrid=True' will append ground truth to predictions for autolabelling.\n"
|
|
47
|
+
"WARNING ⚠️ 'save_hybrid=True' will cause incorrect mAP.\n"
|
|
48
|
+
)
|
|
44
49
|
|
|
45
50
|
def preprocess(self, batch):
|
|
46
51
|
"""Preprocesses batch of images for YOLO training."""
|
|
@@ -53,14 +58,10 @@ class DetectionValidator(BaseValidator):
|
|
|
53
58
|
height, width = batch["img"].shape[2:]
|
|
54
59
|
nb = len(batch["img"])
|
|
55
60
|
bboxes = batch["bboxes"] * torch.tensor((width, height, width, height), device=self.device)
|
|
56
|
-
self.lb =
|
|
57
|
-
[
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
]
|
|
61
|
-
if self.args.save_hybrid
|
|
62
|
-
else []
|
|
63
|
-
) # for autolabelling
|
|
61
|
+
self.lb = [
|
|
62
|
+
torch.cat([batch["cls"][batch["batch_idx"] == i], bboxes[batch["batch_idx"] == i]], dim=-1)
|
|
63
|
+
for i in range(nb)
|
|
64
|
+
]
|
|
64
65
|
|
|
65
66
|
return batch
|
|
66
67
|
|
|
@@ -159,8 +160,12 @@ class DetectionValidator(BaseValidator):
|
|
|
159
160
|
if self.args.save_json:
|
|
160
161
|
self.pred_to_json(predn, batch["im_file"][si])
|
|
161
162
|
if self.args.save_txt:
|
|
162
|
-
|
|
163
|
-
|
|
163
|
+
self.save_one_txt(
|
|
164
|
+
predn,
|
|
165
|
+
self.args.save_conf,
|
|
166
|
+
pbatch["ori_shape"],
|
|
167
|
+
self.save_dir / "labels" / f'{Path(batch["im_file"][si]).stem}.txt',
|
|
168
|
+
)
|
|
164
169
|
|
|
165
170
|
def finalize_metrics(self, *args, **kwargs):
|
|
166
171
|
"""Set final values for metrics speed and confusion matrix."""
|
|
@@ -260,12 +265,14 @@ class DetectionValidator(BaseValidator):
|
|
|
260
265
|
|
|
261
266
|
def save_one_txt(self, predn, save_conf, shape, file):
|
|
262
267
|
"""Save YOLO detections to a txt file in normalized coordinates in a specific format."""
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
268
|
+
from ultralytics.engine.results import Results
|
|
269
|
+
|
|
270
|
+
Results(
|
|
271
|
+
np.zeros((shape[0], shape[1]), dtype=np.uint8),
|
|
272
|
+
path=None,
|
|
273
|
+
names=self.names,
|
|
274
|
+
boxes=predn[:, :6],
|
|
275
|
+
).save_txt(file, save_conf=save_conf)
|
|
269
276
|
|
|
270
277
|
def pred_to_json(self, predn, filename):
|
|
271
278
|
"""Serialize YOLO predictions to COCO json format."""
|
|
@@ -130,13 +130,19 @@ class OBBValidator(DetectionValidator):
|
|
|
130
130
|
|
|
131
131
|
def save_one_txt(self, predn, save_conf, shape, file):
|
|
132
132
|
"""Save YOLO detections to a txt file in normalized coordinates in a specific format."""
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
133
|
+
import numpy as np
|
|
134
|
+
|
|
135
|
+
from ultralytics.engine.results import Results
|
|
136
|
+
|
|
137
|
+
rboxes = torch.cat([predn[:, :4], predn[:, -1:]], dim=-1)
|
|
138
|
+
# xywh, r, conf, cls
|
|
139
|
+
obb = torch.cat([rboxes, predn[:, 4:6]], dim=-1)
|
|
140
|
+
Results(
|
|
141
|
+
np.zeros((shape[0], shape[1]), dtype=np.uint8),
|
|
142
|
+
path=None,
|
|
143
|
+
names=self.names,
|
|
144
|
+
obb=obb,
|
|
145
|
+
).save_txt(file, save_conf=save_conf)
|
|
140
146
|
|
|
141
147
|
def eval_json(self, stats):
|
|
142
148
|
"""Evaluates YOLO output in JSON format and returns performance statistics."""
|
|
@@ -147,8 +147,14 @@ class PoseValidator(DetectionValidator):
|
|
|
147
147
|
# Save
|
|
148
148
|
if self.args.save_json:
|
|
149
149
|
self.pred_to_json(predn, batch["im_file"][si])
|
|
150
|
-
|
|
151
|
-
|
|
150
|
+
if self.args.save_txt:
|
|
151
|
+
self.save_one_txt(
|
|
152
|
+
predn,
|
|
153
|
+
pred_kpts,
|
|
154
|
+
self.args.save_conf,
|
|
155
|
+
pbatch["ori_shape"],
|
|
156
|
+
self.save_dir / "labels" / f'{Path(batch["im_file"][si]).stem}.txt',
|
|
157
|
+
)
|
|
152
158
|
|
|
153
159
|
def _process_batch(self, detections, gt_bboxes, gt_cls, pred_kpts=None, gt_kpts=None):
|
|
154
160
|
"""
|
|
@@ -217,6 +223,18 @@ class PoseValidator(DetectionValidator):
|
|
|
217
223
|
on_plot=self.on_plot,
|
|
218
224
|
) # pred
|
|
219
225
|
|
|
226
|
+
def save_one_txt(self, predn, pred_kpts, save_conf, shape, file):
|
|
227
|
+
"""Save YOLO detections to a txt file in normalized coordinates in a specific format."""
|
|
228
|
+
from ultralytics.engine.results import Results
|
|
229
|
+
|
|
230
|
+
Results(
|
|
231
|
+
np.zeros((shape[0], shape[1]), dtype=np.uint8),
|
|
232
|
+
path=None,
|
|
233
|
+
names=self.names,
|
|
234
|
+
boxes=predn[:, :6],
|
|
235
|
+
keypoints=pred_kpts,
|
|
236
|
+
).save_txt(file, save_conf=save_conf)
|
|
237
|
+
|
|
220
238
|
def pred_to_json(self, predn, filename):
|
|
221
239
|
"""Converts YOLO predictions to COCO JSON format."""
|
|
222
240
|
stem = Path(filename).stem
|
|
@@ -48,9 +48,8 @@ class SegmentationValidator(DetectionValidator):
|
|
|
48
48
|
self.plot_masks = []
|
|
49
49
|
if self.args.save_json:
|
|
50
50
|
check_requirements("pycocotools>=2.0.6")
|
|
51
|
-
|
|
52
|
-
else
|
|
53
|
-
self.process = ops.process_mask # faster
|
|
51
|
+
# more accurate vs faster
|
|
52
|
+
self.process = ops.process_mask_upsample if self.args.save_json or self.args.save_txt else ops.process_mask
|
|
54
53
|
self.stats = dict(tp_m=[], tp=[], conf=[], pred_cls=[], target_cls=[], target_img=[])
|
|
55
54
|
|
|
56
55
|
def get_desc(self):
|
|
@@ -148,14 +147,23 @@ class SegmentationValidator(DetectionValidator):
|
|
|
148
147
|
|
|
149
148
|
# Save
|
|
150
149
|
if self.args.save_json:
|
|
151
|
-
|
|
152
|
-
|
|
150
|
+
self.pred_to_json(
|
|
151
|
+
predn,
|
|
152
|
+
batch["im_file"][si],
|
|
153
|
+
ops.scale_image(
|
|
154
|
+
pred_masks.permute(1, 2, 0).contiguous().cpu().numpy(),
|
|
155
|
+
pbatch["ori_shape"],
|
|
156
|
+
ratio_pad=batch["ratio_pad"][si],
|
|
157
|
+
),
|
|
158
|
+
)
|
|
159
|
+
if self.args.save_txt:
|
|
160
|
+
self.save_one_txt(
|
|
161
|
+
predn,
|
|
162
|
+
pred_masks,
|
|
163
|
+
self.args.save_conf,
|
|
153
164
|
pbatch["ori_shape"],
|
|
154
|
-
|
|
165
|
+
self.save_dir / "labels" / f'{Path(batch["im_file"][si]).stem}.txt',
|
|
155
166
|
)
|
|
156
|
-
self.pred_to_json(predn, batch["im_file"][si], pred_masks)
|
|
157
|
-
# if self.args.save_txt:
|
|
158
|
-
# save_one_txt(predn, save_conf, shape, file=save_dir / 'labels' / f'{path.stem}.txt')
|
|
159
167
|
|
|
160
168
|
def finalize_metrics(self, *args, **kwargs):
|
|
161
169
|
"""Sets speed and confusion matrix for evaluation metrics."""
|
|
@@ -235,6 +243,18 @@ class SegmentationValidator(DetectionValidator):
|
|
|
235
243
|
) # pred
|
|
236
244
|
self.plot_masks.clear()
|
|
237
245
|
|
|
246
|
+
def save_one_txt(self, predn, pred_masks, save_conf, shape, file):
|
|
247
|
+
"""Save YOLO detections to a txt file in normalized coordinates in a specific format."""
|
|
248
|
+
from ultralytics.engine.results import Results
|
|
249
|
+
|
|
250
|
+
Results(
|
|
251
|
+
np.zeros((shape[0], shape[1]), dtype=np.uint8),
|
|
252
|
+
path=None,
|
|
253
|
+
names=self.names,
|
|
254
|
+
boxes=predn[:, :6],
|
|
255
|
+
masks=pred_masks,
|
|
256
|
+
).save_txt(file, save_conf=save_conf)
|
|
257
|
+
|
|
238
258
|
def pred_to_json(self, predn, filename, pred_masks):
|
|
239
259
|
"""
|
|
240
260
|
Save one JSON result.
|
|
@@ -855,7 +855,7 @@ class Attention(nn.Module):
|
|
|
855
855
|
self.head_dim = dim // num_heads
|
|
856
856
|
self.key_dim = int(self.head_dim * attn_ratio)
|
|
857
857
|
self.scale = self.key_dim**-0.5
|
|
858
|
-
nh_kd =
|
|
858
|
+
nh_kd = self.key_dim * num_heads
|
|
859
859
|
h = dim + nh_kd * 2
|
|
860
860
|
self.qkv = Conv(dim, h, 1, act=False)
|
|
861
861
|
self.proj = Conv(dim, dim, 1, act=False)
|
|
@@ -99,24 +99,26 @@ def inference():
|
|
|
99
99
|
|
|
100
100
|
stop_button = st.button("Stop") # Button to stop the inference
|
|
101
101
|
|
|
102
|
-
prev_time = 0
|
|
103
102
|
while videocapture.isOpened():
|
|
104
103
|
success, frame = videocapture.read()
|
|
105
104
|
if not success:
|
|
106
105
|
st.warning("Failed to read frame from webcam. Please make sure the webcam is connected properly.")
|
|
107
106
|
break
|
|
108
107
|
|
|
109
|
-
|
|
110
|
-
fps = 1 / (curr_time - prev_time)
|
|
111
|
-
prev_time = curr_time
|
|
108
|
+
prev_time = time.time()
|
|
112
109
|
|
|
113
110
|
# Store model predictions
|
|
114
|
-
if enable_trk:
|
|
111
|
+
if enable_trk == "Yes":
|
|
115
112
|
results = model.track(frame, conf=conf, iou=iou, classes=selected_ind, persist=True)
|
|
116
113
|
else:
|
|
117
114
|
results = model(frame, conf=conf, iou=iou, classes=selected_ind)
|
|
118
115
|
annotated_frame = results[0].plot() # Add annotations on frame
|
|
119
116
|
|
|
117
|
+
# Calculate model FPS
|
|
118
|
+
curr_time = time.time()
|
|
119
|
+
fps = 1 / (curr_time - prev_time)
|
|
120
|
+
prev_time = curr_time
|
|
121
|
+
|
|
120
122
|
# display frame
|
|
121
123
|
org_frame.image(frame, channels="BGR")
|
|
122
124
|
ann_frame.image(annotated_frame, channels="BGR")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: ultralytics
|
|
3
|
-
Version: 8.2.
|
|
3
|
+
Version: 8.2.59
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml
RENAMED
|
File without changes
|
{ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml
RENAMED
|
File without changes
|
{ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|