ultralytics 8.1.32__tar.gz → 8.1.34__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.32/ultralytics.egg-info → ultralytics-8.1.34}/PKG-INFO +2 -2
- {ultralytics-8.1.32 → ultralytics-8.1.34}/pyproject.toml +7 -3
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/__init__.py +1 -1
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/__init__.py +1 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/default.yaml +1 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/data/augment.py +5 -1
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/data/dataset.py +1 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/engine/model.py +13 -11
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/engine/results.py +21 -11
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/engine/tuner.py +1 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/hub/__init__.py +1 -1
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/nn/autobackend.py +2 -5
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/solutions/ai_gym.py +0 -8
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/solutions/object_counter.py +1 -1
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/utils/checks.py +5 -3
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/utils/downloads.py +1 -1
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/utils/torch_utils.py +1 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/utils/tuner.py +1 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34/ultralytics.egg-info}/PKG-INFO +2 -2
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics.egg-info/requires.txt +1 -1
- {ultralytics-8.1.32 → ultralytics-8.1.34}/LICENSE +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/README.md +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/setup.cfg +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/tests/test_cli.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/tests/test_cuda.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/tests/test_engine.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/tests/test_explorer.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/tests/test_integrations.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/tests/test_python.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/assets/bus.jpg +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/assets/zidane.jpg +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/datasets/VOC.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/datasets/coco.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/datasets/coco128.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/datasets/coco8.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/datasets/dota8.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/datasets/xView.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/trackers/botsort.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/data/__init__.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/data/annotator.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/data/base.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/data/build.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/data/converter.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/data/explorer/__init__.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/data/explorer/explorer.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/data/explorer/gui/__init__.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/data/explorer/gui/dash.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/data/explorer/utils.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/data/loaders.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/data/split_dota.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/data/utils.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/engine/__init__.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/engine/exporter.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/engine/predictor.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/engine/trainer.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/engine/validator.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/hub/auth.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/hub/session.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/hub/utils.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/__init__.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/fastsam/__init__.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/fastsam/model.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/fastsam/predict.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/fastsam/prompt.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/fastsam/utils.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/fastsam/val.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/nas/__init__.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/nas/model.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/nas/predict.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/nas/val.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/rtdetr/__init__.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/rtdetr/model.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/rtdetr/predict.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/rtdetr/train.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/rtdetr/val.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/sam/__init__.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/sam/amg.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/sam/build.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/sam/model.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/sam/modules/__init__.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/sam/modules/decoders.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/sam/modules/encoders.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/sam/modules/sam.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/sam/modules/transformer.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/sam/predict.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/utils/__init__.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/utils/loss.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/utils/ops.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/yolo/__init__.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/yolo/classify/__init__.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/yolo/classify/predict.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/yolo/classify/train.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/yolo/classify/val.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/yolo/detect/__init__.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/yolo/detect/predict.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/yolo/detect/train.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/yolo/detect/val.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/yolo/model.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/yolo/obb/__init__.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/yolo/obb/predict.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/yolo/obb/train.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/yolo/obb/val.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/yolo/pose/__init__.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/yolo/pose/predict.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/yolo/pose/train.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/yolo/pose/val.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/yolo/segment/__init__.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/yolo/segment/predict.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/yolo/segment/train.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/models/yolo/segment/val.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/nn/__init__.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/nn/modules/__init__.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/nn/modules/block.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/nn/modules/conv.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/nn/modules/head.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/nn/modules/transformer.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/nn/modules/utils.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/nn/tasks.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/solutions/__init__.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/solutions/distance_calculation.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/solutions/heatmap.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/solutions/speed_estimation.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/trackers/__init__.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/trackers/basetrack.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/trackers/bot_sort.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/trackers/byte_tracker.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/trackers/track.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/trackers/utils/__init__.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/trackers/utils/gmc.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/trackers/utils/kalman_filter.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/trackers/utils/matching.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/utils/__init__.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/utils/autobatch.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/utils/benchmarks.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/utils/callbacks/__init__.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/utils/callbacks/base.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/utils/callbacks/clearml.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/utils/callbacks/comet.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/utils/callbacks/dvc.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/utils/callbacks/hub.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/utils/callbacks/mlflow.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/utils/callbacks/neptune.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/utils/callbacks/raytune.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/utils/callbacks/tensorboard.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/utils/callbacks/wb.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/utils/dist.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/utils/errors.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/utils/files.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/utils/instance.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/utils/loss.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/utils/metrics.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/utils/ops.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/utils/patches.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/utils/plotting.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/utils/tal.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/utils/triton.py +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics.egg-info/SOURCES.txt +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics.egg-info/dependency_links.txt +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics.egg-info/entry_points.txt +0 -0
- {ultralytics-8.1.32 → ultralytics-8.1.34}/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.34
|
|
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
|
|
@@ -71,7 +71,7 @@ Requires-Dist: comet; extra == "logging"
|
|
|
71
71
|
Requires-Dist: tensorboard>=2.13.0; extra == "logging"
|
|
72
72
|
Requires-Dist: dvclive>=2.12.0; extra == "logging"
|
|
73
73
|
Provides-Extra: extra
|
|
74
|
-
Requires-Dist: hub-sdk>=0.0.
|
|
74
|
+
Requires-Dist: hub-sdk>=0.0.5; extra == "extra"
|
|
75
75
|
Requires-Dist: ipython; extra == "extra"
|
|
76
76
|
Requires-Dist: albumentations>=1.0.3; extra == "extra"
|
|
77
77
|
Requires-Dist: pycocotools>=2.0.7; extra == "extra"
|
|
@@ -117,7 +117,7 @@ logging = [
|
|
|
117
117
|
"dvclive>=2.12.0",
|
|
118
118
|
]
|
|
119
119
|
extra = [
|
|
120
|
-
"hub-sdk>=0.0.
|
|
120
|
+
"hub-sdk>=0.0.5", # Ultralytics HUB
|
|
121
121
|
"ipython", # interactive notebook
|
|
122
122
|
"albumentations>=1.0.3", # training augmentations
|
|
123
123
|
"pycocotools>=2.0.7", # COCO mAP
|
|
@@ -140,9 +140,13 @@ package-data = { "ultralytics" = ["**/*.yaml"], "ultralytics.assets" = ["*.jpg"]
|
|
|
140
140
|
[tool.setuptools.dynamic]
|
|
141
141
|
version = { attr = "ultralytics.__version__" }
|
|
142
142
|
|
|
143
|
-
[tool.pytest]
|
|
144
|
-
norecursedirs = [".git", "dist", "build"]
|
|
143
|
+
[tool.pytest.ini_options]
|
|
145
144
|
addopts = "--doctest-modules --durations=30 --color=yes"
|
|
145
|
+
markers = [
|
|
146
|
+
"slow: skip slow tests unless --slow is set",
|
|
147
|
+
]
|
|
148
|
+
norecursedirs = [".git", "dist", "build"]
|
|
149
|
+
|
|
146
150
|
|
|
147
151
|
[tool.coverage.run]
|
|
148
152
|
source = ["ultralytics/"]
|
|
@@ -111,6 +111,7 @@ shear: 0.0 # (float) image shear (+/- deg)
|
|
|
111
111
|
perspective: 0.0 # (float) image perspective (+/- fraction), range 0-0.001
|
|
112
112
|
flipud: 0.0 # (float) image flip up-down (probability)
|
|
113
113
|
fliplr: 0.5 # (float) image flip left-right (probability)
|
|
114
|
+
bgr: 0.0 # (float) image channel BGR (probability)
|
|
114
115
|
mosaic: 1.0 # (float) image mosaic (probability)
|
|
115
116
|
mixup: 0.0 # (float) image mixup (probability)
|
|
116
117
|
copy_paste: 0.0 # (float) segment copy-paste (probability)
|
|
@@ -886,6 +886,7 @@ class Format:
|
|
|
886
886
|
mask_ratio (int): Downsample ratio for masks. Default is 4.
|
|
887
887
|
mask_overlap (bool): Whether to overlap masks. Default is True.
|
|
888
888
|
batch_idx (bool): Keep batch indexes. Default is True.
|
|
889
|
+
bgr (float): The probability to return BGR images. Default is 0.0.
|
|
889
890
|
"""
|
|
890
891
|
|
|
891
892
|
def __init__(
|
|
@@ -898,6 +899,7 @@ class Format:
|
|
|
898
899
|
mask_ratio=4,
|
|
899
900
|
mask_overlap=True,
|
|
900
901
|
batch_idx=True,
|
|
902
|
+
bgr=0.0,
|
|
901
903
|
):
|
|
902
904
|
"""Initializes the Format class with given parameters."""
|
|
903
905
|
self.bbox_format = bbox_format
|
|
@@ -908,6 +910,7 @@ class Format:
|
|
|
908
910
|
self.mask_ratio = mask_ratio
|
|
909
911
|
self.mask_overlap = mask_overlap
|
|
910
912
|
self.batch_idx = batch_idx # keep the batch indexes
|
|
913
|
+
self.bgr = bgr
|
|
911
914
|
|
|
912
915
|
def __call__(self, labels):
|
|
913
916
|
"""Return formatted image, classes, bounding boxes & keypoints to be used by 'collate_fn'."""
|
|
@@ -948,7 +951,8 @@ class Format:
|
|
|
948
951
|
"""Format the image for YOLO from Numpy array to PyTorch tensor."""
|
|
949
952
|
if len(img.shape) < 3:
|
|
950
953
|
img = np.expand_dims(img, -1)
|
|
951
|
-
img =
|
|
954
|
+
img = img.transpose(2, 0, 1)
|
|
955
|
+
img = np.ascontiguousarray(img[::-1] if random.uniform(0, 1) > self.bgr else img)
|
|
952
956
|
img = torch.from_numpy(img)
|
|
953
957
|
return img
|
|
954
958
|
|
|
@@ -119,30 +119,27 @@ class Model(nn.Module):
|
|
|
119
119
|
self.metrics = None # validation/training metrics
|
|
120
120
|
self.session = None # HUB session
|
|
121
121
|
self.task = task # task type
|
|
122
|
-
|
|
122
|
+
model = str(model).strip()
|
|
123
123
|
|
|
124
124
|
# Check if Ultralytics HUB model from https://hub.ultralytics.com
|
|
125
125
|
if self.is_hub_model(model):
|
|
126
126
|
# Fetch model from HUB
|
|
127
|
-
checks.check_requirements("hub-sdk>=0.0.
|
|
127
|
+
checks.check_requirements("hub-sdk>=0.0.6")
|
|
128
128
|
self.session = self._get_hub_session(model)
|
|
129
129
|
model = self.session.model_file
|
|
130
130
|
|
|
131
131
|
# Check if Triton Server model
|
|
132
132
|
elif self.is_triton_model(model):
|
|
133
|
-
self.model = model
|
|
133
|
+
self.model_name = self.model = model
|
|
134
134
|
self.task = task
|
|
135
135
|
return
|
|
136
136
|
|
|
137
137
|
# Load or create new YOLO model
|
|
138
|
-
model = checks.check_model_file_from_stem(model) # add suffix, i.e. yolov8n -> yolov8n.pt
|
|
139
138
|
if Path(model).suffix in (".yaml", ".yml"):
|
|
140
139
|
self._new(model, task=task, verbose=verbose)
|
|
141
140
|
else:
|
|
142
141
|
self._load(model, task=task)
|
|
143
142
|
|
|
144
|
-
self.model_name = model
|
|
145
|
-
|
|
146
143
|
def __call__(
|
|
147
144
|
self,
|
|
148
145
|
source: Union[str, Path, int, list, tuple, np.ndarray, torch.Tensor] = None,
|
|
@@ -190,8 +187,8 @@ class Model(nn.Module):
|
|
|
190
187
|
return any(
|
|
191
188
|
(
|
|
192
189
|
model.startswith(f"{HUB_WEB_ROOT}/models/"), # i.e. https://hub.ultralytics.com/models/MODEL_ID
|
|
193
|
-
[len(x) for x in model.split("_")] == [42, 20], #
|
|
194
|
-
len(model) == 20 and not Path(model).exists() and all(x not in model for x in "./\\"), #
|
|
190
|
+
[len(x) for x in model.split("_")] == [42, 20], # APIKEY_MODEL
|
|
191
|
+
len(model) == 20 and not Path(model).exists() and all(x not in model for x in "./\\"), # MODEL
|
|
195
192
|
)
|
|
196
193
|
)
|
|
197
194
|
|
|
@@ -215,6 +212,7 @@ class Model(nn.Module):
|
|
|
215
212
|
# Below added to allow export from YAMLs
|
|
216
213
|
self.model.args = {**DEFAULT_CFG_DICT, **self.overrides} # combine default and model args (prefer model args)
|
|
217
214
|
self.model.task = self.task
|
|
215
|
+
self.model_name = cfg
|
|
218
216
|
|
|
219
217
|
def _load(self, weights: str, task=None) -> None:
|
|
220
218
|
"""
|
|
@@ -224,19 +222,23 @@ class Model(nn.Module):
|
|
|
224
222
|
weights (str): model checkpoint to be loaded
|
|
225
223
|
task (str | None): model task
|
|
226
224
|
"""
|
|
227
|
-
|
|
228
|
-
|
|
225
|
+
if weights.lower().startswith(("https://", "http://", "rtsp://", "rtmp://", "tcp://")):
|
|
226
|
+
weights = checks.check_file(weights) # automatically download and return local filename
|
|
227
|
+
weights = checks.check_model_file_from_stem(weights) # add suffix, i.e. yolov8n -> yolov8n.pt
|
|
228
|
+
|
|
229
|
+
if Path(weights).suffix == ".pt":
|
|
229
230
|
self.model, self.ckpt = attempt_load_one_weight(weights)
|
|
230
231
|
self.task = self.model.args["task"]
|
|
231
232
|
self.overrides = self.model.args = self._reset_ckpt_args(self.model.args)
|
|
232
233
|
self.ckpt_path = self.model.pt_path
|
|
233
234
|
else:
|
|
234
|
-
weights = checks.check_file(weights)
|
|
235
|
+
weights = checks.check_file(weights) # runs in all cases, not redundant with above call
|
|
235
236
|
self.model, self.ckpt = weights, None
|
|
236
237
|
self.task = task or guess_model_task(weights)
|
|
237
238
|
self.ckpt_path = weights
|
|
238
239
|
self.overrides["model"] = weights
|
|
239
240
|
self.overrides["task"] = self.task
|
|
241
|
+
self.model_name = weights
|
|
240
242
|
|
|
241
243
|
def _check_is_pytorch_model(self) -> None:
|
|
242
244
|
"""Raises TypeError is model is not a PyTorch model."""
|
|
@@ -385,10 +385,10 @@ class Results(SimpleClass):
|
|
|
385
385
|
BGR=True,
|
|
386
386
|
)
|
|
387
387
|
|
|
388
|
-
def summary(self, normalize=False):
|
|
388
|
+
def summary(self, normalize=False, decimals=5):
|
|
389
389
|
"""Convert the results to a summarized format."""
|
|
390
390
|
if self.probs is not None:
|
|
391
|
-
LOGGER.warning("Warning: Classify
|
|
391
|
+
LOGGER.warning("Warning: Classify results do not support the `summary()` method yet.")
|
|
392
392
|
return
|
|
393
393
|
|
|
394
394
|
# Create list of detection dictionaries
|
|
@@ -396,28 +396,38 @@ class Results(SimpleClass):
|
|
|
396
396
|
data = self.boxes.data.cpu().tolist()
|
|
397
397
|
h, w = self.orig_shape if normalize else (1, 1)
|
|
398
398
|
for i, row in enumerate(data): # xyxy, track_id if tracking, conf, class_id
|
|
399
|
-
box = {
|
|
400
|
-
|
|
399
|
+
box = {
|
|
400
|
+
"x1": round(row[0] / w, decimals),
|
|
401
|
+
"y1": round(row[1] / h, decimals),
|
|
402
|
+
"x2": round(row[2] / w, decimals),
|
|
403
|
+
"y2": round(row[3] / h, decimals),
|
|
404
|
+
}
|
|
405
|
+
conf = round(row[-2], decimals)
|
|
401
406
|
class_id = int(row[-1])
|
|
402
|
-
|
|
403
|
-
result = {"name": name, "class": class_id, "confidence": conf, "box": box}
|
|
407
|
+
result = {"name": self.names[class_id], "class": class_id, "confidence": conf, "box": box}
|
|
404
408
|
if self.boxes.is_track:
|
|
405
409
|
result["track_id"] = int(row[-3]) # track ID
|
|
406
410
|
if self.masks:
|
|
407
|
-
|
|
408
|
-
|
|
411
|
+
result["segments"] = {
|
|
412
|
+
"x": (self.masks.xy[i][:, 0] / w).round(decimals).tolist(),
|
|
413
|
+
"y": (self.masks.xy[i][:, 1] / h).round(decimals).tolist(),
|
|
414
|
+
}
|
|
409
415
|
if self.keypoints is not None:
|
|
410
416
|
x, y, visible = self.keypoints[i].data[0].cpu().unbind(dim=1) # torch Tensor
|
|
411
|
-
result["keypoints"] = {
|
|
417
|
+
result["keypoints"] = {
|
|
418
|
+
"x": (x / w).numpy().round(decimals).tolist(), # decimals named argument required
|
|
419
|
+
"y": (y / h).numpy().round(decimals).tolist(),
|
|
420
|
+
"visible": visible.numpy().round(decimals).tolist(),
|
|
421
|
+
}
|
|
412
422
|
results.append(result)
|
|
413
423
|
|
|
414
424
|
return results
|
|
415
425
|
|
|
416
|
-
def tojson(self, normalize=False):
|
|
426
|
+
def tojson(self, normalize=False, decimals=5):
|
|
417
427
|
"""Convert the results to JSON format."""
|
|
418
428
|
import json
|
|
419
429
|
|
|
420
|
-
return json.dumps(self.summary(normalize=normalize), indent=2)
|
|
430
|
+
return json.dumps(self.summary(normalize=normalize, decimals=decimals), indent=2)
|
|
421
431
|
|
|
422
432
|
|
|
423
433
|
class Boxes(BaseTensor):
|
|
@@ -95,6 +95,7 @@ class Tuner:
|
|
|
95
95
|
"perspective": (0.0, 0.001), # image perspective (+/- fraction), range 0-0.001
|
|
96
96
|
"flipud": (0.0, 1.0), # image flip up-down (probability)
|
|
97
97
|
"fliplr": (0.0, 1.0), # image flip left-right (probability)
|
|
98
|
+
"bgr": (0.0, 1.0), # image channel bgr (probability)
|
|
98
99
|
"mosaic": (0.0, 1.0), # image mixup (probability)
|
|
99
100
|
"mixup": (0.0, 1.0), # image mixup (probability)
|
|
100
101
|
"copy_paste": (0.0, 1.0), # segment copy-paste (probability)
|
|
@@ -23,7 +23,7 @@ def login(api_key: str = None, save=True) -> bool:
|
|
|
23
23
|
Returns:
|
|
24
24
|
(bool): True if authentication is successful, False otherwise.
|
|
25
25
|
"""
|
|
26
|
-
checks.check_requirements("hub-sdk>=0.0.
|
|
26
|
+
checks.check_requirements("hub-sdk>=0.0.6")
|
|
27
27
|
from hub_sdk import HUBClient
|
|
28
28
|
|
|
29
29
|
api_key_url = f"{HUB_WEB_ROOT}/settings?tab=api+keys" # set the redirect URL
|
|
@@ -202,13 +202,10 @@ class AutoBackend(nn.Module):
|
|
|
202
202
|
ov_model = core.read_model(model=str(w), weights=w.with_suffix(".bin"))
|
|
203
203
|
if ov_model.get_parameters()[0].get_layout().empty:
|
|
204
204
|
ov_model.get_parameters()[0].set_layout(ov.Layout("NCHW"))
|
|
205
|
-
batch_dim = ov.get_batch(ov_model)
|
|
206
|
-
if batch_dim.is_static:
|
|
207
|
-
batch_size = batch_dim.get_length()
|
|
208
205
|
|
|
209
206
|
# OpenVINO inference modes are 'LATENCY', 'THROUGHPUT' (not recommended), or 'CUMULATIVE_THROUGHPUT'
|
|
210
207
|
inference_mode = "CUMULATIVE_THROUGHPUT" if batch > 1 else "LATENCY"
|
|
211
|
-
LOGGER.info(f"Using OpenVINO {inference_mode} mode for batch
|
|
208
|
+
LOGGER.info(f"Using OpenVINO {inference_mode} mode for batch={batch} inference...")
|
|
212
209
|
ov_compiled_model = core.compile_model(
|
|
213
210
|
ov_model,
|
|
214
211
|
device_name="AUTO", # AUTO selects best available device, do not modify
|
|
@@ -606,7 +603,7 @@ class AutoBackend(nn.Module):
|
|
|
606
603
|
from ultralytics.engine.exporter import export_formats
|
|
607
604
|
|
|
608
605
|
sf = list(export_formats().Suffix) # export suffixes
|
|
609
|
-
if not is_url(p
|
|
606
|
+
if not is_url(p) and not isinstance(p, str):
|
|
610
607
|
check_suffix(p, sf) # checks
|
|
611
608
|
name = Path(p).name
|
|
612
609
|
types = [s in name for s in sf]
|
|
@@ -80,14 +80,6 @@ class AIGym:
|
|
|
80
80
|
self.keypoints = results[0].keypoints.data
|
|
81
81
|
self.annotator = Annotator(im0, line_width=2)
|
|
82
82
|
|
|
83
|
-
num_keypoints = len(results[0])
|
|
84
|
-
|
|
85
|
-
# Resize self.angle, self.count, and self.stage if the number of keypoints has changed
|
|
86
|
-
if len(self.angle) != num_keypoints:
|
|
87
|
-
self.angle = [0] * num_keypoints
|
|
88
|
-
self.count = [0] * num_keypoints
|
|
89
|
-
self.stage = ["-" for _ in range(num_keypoints)]
|
|
90
|
-
|
|
91
83
|
for ind, k in enumerate(reversed(self.keypoints)):
|
|
92
84
|
if self.pose_type in ["pushup", "pullup"]:
|
|
93
85
|
self.angle[ind] = self.annotator.estimate_pose_angle(
|
|
@@ -171,7 +171,7 @@ class ObjectCounter:
|
|
|
171
171
|
# Extract tracks
|
|
172
172
|
for box, track_id, cls in zip(boxes, track_ids, clss):
|
|
173
173
|
# Draw bounding box
|
|
174
|
-
self.annotator.box_label(box, label=f"{track_id}:{self.names[cls]}", color=colors(int(
|
|
174
|
+
self.annotator.box_label(box, label=f"{track_id}:{self.names[cls]}", color=colors(int(track_id), True))
|
|
175
175
|
|
|
176
176
|
# Draw Tracks
|
|
177
177
|
track_line = self.track_history[track_id]
|
|
@@ -142,6 +142,8 @@ def check_imgsz(imgsz, stride=32, min_dim=1, max_dim=2, floor=0):
|
|
|
142
142
|
imgsz = [imgsz]
|
|
143
143
|
elif isinstance(imgsz, (list, tuple)):
|
|
144
144
|
imgsz = list(imgsz)
|
|
145
|
+
elif isinstance(imgsz, str): # i.e. '640' or '[640,640]'
|
|
146
|
+
imgsz = [int(imgsz)] if imgsz.isnumeric() else eval(imgsz)
|
|
145
147
|
else:
|
|
146
148
|
raise TypeError(
|
|
147
149
|
f"'imgsz={imgsz}' is of invalid type {type(imgsz).__name__}. "
|
|
@@ -315,7 +317,7 @@ def check_font(font="Arial.ttf"):
|
|
|
315
317
|
|
|
316
318
|
# Download to USER_CONFIG_DIR if missing
|
|
317
319
|
url = f"https://ultralytics.com/assets/{name}"
|
|
318
|
-
if downloads.is_url(url):
|
|
320
|
+
if downloads.is_url(url, check=True):
|
|
319
321
|
downloads.safe_download(url=url, file=file)
|
|
320
322
|
return file
|
|
321
323
|
|
|
@@ -498,7 +500,7 @@ def check_file(file, suffix="", download=True, hard=True):
|
|
|
498
500
|
raise FileNotFoundError(f"'{file}' does not exist")
|
|
499
501
|
elif len(files) > 1 and hard:
|
|
500
502
|
raise FileNotFoundError(f"Multiple files match '{file}', specify exact path: {files}")
|
|
501
|
-
return files[0] if len(files) else [] # return file
|
|
503
|
+
return files[0] if len(files) else [] if hard else file # return file
|
|
502
504
|
|
|
503
505
|
|
|
504
506
|
def check_yaml(file, suffix=(".yaml", ".yml"), hard=True):
|
|
@@ -726,4 +728,4 @@ def cuda_is_available() -> bool:
|
|
|
726
728
|
|
|
727
729
|
|
|
728
730
|
# Define constants
|
|
729
|
-
IS_PYTHON_3_12 =
|
|
731
|
+
IS_PYTHON_3_12 = PYTHON_VERSION.startswith("3.12")
|
|
@@ -33,7 +33,7 @@ GITHUB_ASSETS_NAMES = (
|
|
|
33
33
|
GITHUB_ASSETS_STEMS = [Path(k).stem for k in GITHUB_ASSETS_NAMES]
|
|
34
34
|
|
|
35
35
|
|
|
36
|
-
def is_url(url, check=
|
|
36
|
+
def is_url(url, check=False):
|
|
37
37
|
"""
|
|
38
38
|
Validates if the given string is a URL and optionally checks if the URL exists online.
|
|
39
39
|
|
|
@@ -24,6 +24,7 @@ try:
|
|
|
24
24
|
except ImportError:
|
|
25
25
|
thop = None
|
|
26
26
|
|
|
27
|
+
# Version checks (all default to version>=min_version)
|
|
27
28
|
TORCH_1_9 = check_version(torch.__version__, "1.9.0")
|
|
28
29
|
TORCH_1_13 = check_version(torch.__version__, "1.13.0")
|
|
29
30
|
TORCH_2_0 = check_version(torch.__version__, "2.0.0")
|
|
@@ -78,6 +78,7 @@ def run_ray_tune(
|
|
|
78
78
|
"perspective": tune.uniform(0.0, 0.001), # image perspective (+/- fraction), range 0-0.001
|
|
79
79
|
"flipud": tune.uniform(0.0, 1.0), # image flip up-down (probability)
|
|
80
80
|
"fliplr": tune.uniform(0.0, 1.0), # image flip left-right (probability)
|
|
81
|
+
"bgr": tune.uniform(0.0, 1.0), # image channel BGR (probability)
|
|
81
82
|
"mosaic": tune.uniform(0.0, 1.0), # image mixup (probability)
|
|
82
83
|
"mixup": tune.uniform(0.0, 1.0), # image mixup (probability)
|
|
83
84
|
"copy_paste": tune.uniform(0.0, 1.0), # segment copy-paste (probability)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: ultralytics
|
|
3
|
-
Version: 8.1.
|
|
3
|
+
Version: 8.1.34
|
|
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
|
|
@@ -71,7 +71,7 @@ Requires-Dist: comet; extra == "logging"
|
|
|
71
71
|
Requires-Dist: tensorboard>=2.13.0; extra == "logging"
|
|
72
72
|
Requires-Dist: dvclive>=2.12.0; extra == "logging"
|
|
73
73
|
Provides-Extra: extra
|
|
74
|
-
Requires-Dist: hub-sdk>=0.0.
|
|
74
|
+
Requires-Dist: hub-sdk>=0.0.5; extra == "extra"
|
|
75
75
|
Requires-Dist: ipython; extra == "extra"
|
|
76
76
|
Requires-Dist: albumentations>=1.0.3; extra == "extra"
|
|
77
77
|
Requires-Dist: pycocotools>=2.0.7; extra == "extra"
|
|
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.1.32 → ultralytics-8.1.34}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml
RENAMED
|
File without changes
|
{ultralytics-8.1.32 → ultralytics-8.1.34}/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
|
{ultralytics-8.1.32 → ultralytics-8.1.34}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml
RENAMED
|
File without changes
|
{ultralytics-8.1.32 → ultralytics-8.1.34}/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
|