ultralytics 8.1.30__tar.gz → 8.1.31__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.30/ultralytics.egg-info → ultralytics-8.1.31}/PKG-INFO +1 -1
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/__init__.py +1 -1
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/__init__.py +45 -32
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/data/build.py +1 -1
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/data/utils.py +2 -2
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/engine/results.py +10 -7
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/yolo/classify/train.py +1 -1
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/nn/autobackend.py +3 -8
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/nn/tasks.py +11 -9
- {ultralytics-8.1.30 → ultralytics-8.1.31/ultralytics.egg-info}/PKG-INFO +1 -1
- {ultralytics-8.1.30 → ultralytics-8.1.31}/LICENSE +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/README.md +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/pyproject.toml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/setup.cfg +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/tests/test_cli.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/tests/test_cuda.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/tests/test_engine.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/tests/test_explorer.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/tests/test_integrations.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/tests/test_python.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/assets/bus.jpg +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/assets/zidane.jpg +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/datasets/VOC.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/datasets/coco.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/datasets/coco128.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/datasets/coco8.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/datasets/dota8.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/datasets/xView.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/default.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/trackers/botsort.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/data/__init__.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/data/annotator.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/data/augment.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/data/base.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/data/converter.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/data/dataset.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/data/explorer/__init__.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/data/explorer/explorer.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/data/explorer/gui/__init__.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/data/explorer/gui/dash.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/data/explorer/utils.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/data/loaders.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/data/split_dota.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/engine/__init__.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/engine/exporter.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/engine/model.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/engine/predictor.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/engine/trainer.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/engine/tuner.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/engine/validator.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/hub/__init__.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/hub/auth.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/hub/session.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/hub/utils.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/__init__.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/fastsam/__init__.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/fastsam/model.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/fastsam/predict.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/fastsam/prompt.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/fastsam/utils.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/fastsam/val.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/nas/__init__.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/nas/model.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/nas/predict.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/nas/val.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/rtdetr/__init__.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/rtdetr/model.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/rtdetr/predict.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/rtdetr/train.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/rtdetr/val.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/sam/__init__.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/sam/amg.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/sam/build.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/sam/model.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/sam/modules/__init__.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/sam/modules/decoders.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/sam/modules/encoders.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/sam/modules/sam.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/sam/modules/transformer.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/sam/predict.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/utils/__init__.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/utils/loss.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/utils/ops.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/yolo/__init__.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/yolo/classify/__init__.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/yolo/classify/predict.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/yolo/classify/val.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/yolo/detect/__init__.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/yolo/detect/predict.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/yolo/detect/train.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/yolo/detect/val.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/yolo/model.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/yolo/obb/__init__.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/yolo/obb/predict.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/yolo/obb/train.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/yolo/obb/val.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/yolo/pose/__init__.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/yolo/pose/predict.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/yolo/pose/train.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/yolo/pose/val.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/yolo/segment/__init__.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/yolo/segment/predict.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/yolo/segment/train.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/models/yolo/segment/val.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/nn/__init__.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/nn/modules/__init__.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/nn/modules/block.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/nn/modules/conv.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/nn/modules/head.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/nn/modules/transformer.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/nn/modules/utils.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/solutions/__init__.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/solutions/ai_gym.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/solutions/distance_calculation.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/solutions/heatmap.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/solutions/object_counter.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/solutions/speed_estimation.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/trackers/__init__.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/trackers/basetrack.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/trackers/bot_sort.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/trackers/byte_tracker.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/trackers/track.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/trackers/utils/__init__.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/trackers/utils/gmc.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/trackers/utils/kalman_filter.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/trackers/utils/matching.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/utils/__init__.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/utils/autobatch.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/utils/benchmarks.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/utils/callbacks/__init__.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/utils/callbacks/base.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/utils/callbacks/clearml.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/utils/callbacks/comet.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/utils/callbacks/dvc.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/utils/callbacks/hub.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/utils/callbacks/mlflow.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/utils/callbacks/neptune.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/utils/callbacks/raytune.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/utils/callbacks/tensorboard.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/utils/callbacks/wb.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/utils/checks.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/utils/dist.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/utils/downloads.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/utils/errors.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/utils/files.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/utils/instance.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/utils/loss.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/utils/metrics.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/utils/ops.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/utils/patches.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/utils/plotting.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/utils/tal.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/utils/torch_utils.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/utils/triton.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/utils/tuner.py +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics.egg-info/SOURCES.txt +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics.egg-info/dependency_links.txt +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics.egg-info/entry_points.txt +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics.egg-info/requires.txt +0 -0
- {ultralytics-8.1.30 → ultralytics-8.1.31}/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.31
|
|
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
|
|
@@ -30,8 +30,8 @@ from ultralytics.utils import (
|
|
|
30
30
|
)
|
|
31
31
|
|
|
32
32
|
# Define valid tasks and modes
|
|
33
|
-
MODES = "train", "val", "predict", "export", "track", "benchmark"
|
|
34
|
-
TASKS = "detect", "segment", "classify", "pose", "obb"
|
|
33
|
+
MODES = {"train", "val", "predict", "export", "track", "benchmark"}
|
|
34
|
+
TASKS = {"detect", "segment", "classify", "pose", "obb"}
|
|
35
35
|
TASK2DATA = {
|
|
36
36
|
"detect": "coco8.yaml",
|
|
37
37
|
"segment": "coco8-seg.yaml",
|
|
@@ -93,8 +93,8 @@ CLI_HELP_MSG = f"""
|
|
|
93
93
|
"""
|
|
94
94
|
|
|
95
95
|
# Define keys for arg type checks
|
|
96
|
-
CFG_FLOAT_KEYS = "warmup_epochs", "box", "cls", "dfl", "degrees", "shear", "time"
|
|
97
|
-
CFG_FRACTION_KEYS =
|
|
96
|
+
CFG_FLOAT_KEYS = {"warmup_epochs", "box", "cls", "dfl", "degrees", "shear", "time"}
|
|
97
|
+
CFG_FRACTION_KEYS = {
|
|
98
98
|
"dropout",
|
|
99
99
|
"iou",
|
|
100
100
|
"lr0",
|
|
@@ -118,8 +118,8 @@ CFG_FRACTION_KEYS = (
|
|
|
118
118
|
"conf",
|
|
119
119
|
"iou",
|
|
120
120
|
"fraction",
|
|
121
|
-
|
|
122
|
-
CFG_INT_KEYS =
|
|
121
|
+
} # fraction floats 0.0 - 1.0
|
|
122
|
+
CFG_INT_KEYS = {
|
|
123
123
|
"epochs",
|
|
124
124
|
"patience",
|
|
125
125
|
"batch",
|
|
@@ -133,8 +133,8 @@ CFG_INT_KEYS = (
|
|
|
133
133
|
"workspace",
|
|
134
134
|
"nbs",
|
|
135
135
|
"save_period",
|
|
136
|
-
|
|
137
|
-
CFG_BOOL_KEYS =
|
|
136
|
+
}
|
|
137
|
+
CFG_BOOL_KEYS = {
|
|
138
138
|
"save",
|
|
139
139
|
"exist_ok",
|
|
140
140
|
"verbose",
|
|
@@ -169,7 +169,7 @@ CFG_BOOL_KEYS = (
|
|
|
169
169
|
"nms",
|
|
170
170
|
"profile",
|
|
171
171
|
"multi_scale",
|
|
172
|
-
|
|
172
|
+
}
|
|
173
173
|
|
|
174
174
|
|
|
175
175
|
def cfg2dict(cfg):
|
|
@@ -219,33 +219,46 @@ def get_cfg(cfg: Union[str, Path, Dict, SimpleNamespace] = DEFAULT_CFG_DICT, ove
|
|
|
219
219
|
LOGGER.warning(f"WARNING ⚠️ 'name=model' automatically updated to 'name={cfg['name']}'.")
|
|
220
220
|
|
|
221
221
|
# Type and Value checks
|
|
222
|
+
check_cfg(cfg)
|
|
223
|
+
|
|
224
|
+
# Return instance
|
|
225
|
+
return IterableSimpleNamespace(**cfg)
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
def check_cfg(cfg, hard=True):
|
|
229
|
+
"""Check Ultralytics configuration argument types and values."""
|
|
222
230
|
for k, v in cfg.items():
|
|
223
231
|
if v is not None: # None values may be from optional args
|
|
224
232
|
if k in CFG_FLOAT_KEYS and not isinstance(v, (int, float)):
|
|
225
|
-
|
|
226
|
-
f"'{k}={v}' is of invalid type {type(v).__name__}. "
|
|
227
|
-
f"Valid '{k}' types are int (i.e. '{k}=0') or float (i.e. '{k}=0.5')"
|
|
228
|
-
)
|
|
229
|
-
elif k in CFG_FRACTION_KEYS:
|
|
230
|
-
if not isinstance(v, (int, float)):
|
|
233
|
+
if hard:
|
|
231
234
|
raise TypeError(
|
|
232
235
|
f"'{k}={v}' is of invalid type {type(v).__name__}. "
|
|
233
236
|
f"Valid '{k}' types are int (i.e. '{k}=0') or float (i.e. '{k}=0.5')"
|
|
234
237
|
)
|
|
238
|
+
cfg[k] = float(v)
|
|
239
|
+
elif k in CFG_FRACTION_KEYS:
|
|
240
|
+
if not isinstance(v, (int, float)):
|
|
241
|
+
if hard:
|
|
242
|
+
raise TypeError(
|
|
243
|
+
f"'{k}={v}' is of invalid type {type(v).__name__}. "
|
|
244
|
+
f"Valid '{k}' types are int (i.e. '{k}=0') or float (i.e. '{k}=0.5')"
|
|
245
|
+
)
|
|
246
|
+
cfg[k] = float(v)
|
|
235
247
|
if not (0.0 <= v <= 1.0):
|
|
236
248
|
raise ValueError(f"'{k}={v}' is an invalid value. " f"Valid '{k}' values are between 0.0 and 1.0.")
|
|
237
249
|
elif k in CFG_INT_KEYS and not isinstance(v, int):
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
250
|
+
if hard:
|
|
251
|
+
raise TypeError(
|
|
252
|
+
f"'{k}={v}' is of invalid type {type(v).__name__}. " f"'{k}' must be an int (i.e. '{k}=8')"
|
|
253
|
+
)
|
|
254
|
+
cfg[k] = int(v)
|
|
241
255
|
elif k in CFG_BOOL_KEYS and not isinstance(v, bool):
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
return IterableSimpleNamespace(**cfg)
|
|
256
|
+
if hard:
|
|
257
|
+
raise TypeError(
|
|
258
|
+
f"'{k}={v}' is of invalid type {type(v).__name__}. "
|
|
259
|
+
f"'{k}' must be a bool (i.e. '{k}=True' or '{k}=False')"
|
|
260
|
+
)
|
|
261
|
+
cfg[k] = bool(v)
|
|
249
262
|
|
|
250
263
|
|
|
251
264
|
def get_save_dir(args, name=None):
|
|
@@ -464,10 +477,10 @@ def entrypoint(debug=""):
|
|
|
464
477
|
overrides = {} # basic overrides, i.e. imgsz=320
|
|
465
478
|
for a in merge_equals_args(args): # merge spaces around '=' sign
|
|
466
479
|
if a.startswith("--"):
|
|
467
|
-
LOGGER.warning(f"WARNING ⚠️ '{a}' does not require leading dashes '--', updating to '{a[2:]}'.")
|
|
480
|
+
LOGGER.warning(f"WARNING ⚠️ argument '{a}' does not require leading dashes '--', updating to '{a[2:]}'.")
|
|
468
481
|
a = a[2:]
|
|
469
482
|
if a.endswith(","):
|
|
470
|
-
LOGGER.warning(f"WARNING ⚠️ '{a}' does not require trailing comma ',', updating to '{a[:-1]}'.")
|
|
483
|
+
LOGGER.warning(f"WARNING ⚠️ argument '{a}' does not require trailing comma ',', updating to '{a[:-1]}'.")
|
|
471
484
|
a = a[:-1]
|
|
472
485
|
if "=" in a:
|
|
473
486
|
try:
|
|
@@ -504,7 +517,7 @@ def entrypoint(debug=""):
|
|
|
504
517
|
mode = overrides.get("mode")
|
|
505
518
|
if mode is None:
|
|
506
519
|
mode = DEFAULT_CFG.mode or "predict"
|
|
507
|
-
LOGGER.warning(f"WARNING ⚠️ 'mode' is missing. Valid modes are {MODES}. Using default 'mode={mode}'.")
|
|
520
|
+
LOGGER.warning(f"WARNING ⚠️ 'mode' argument is missing. Valid modes are {MODES}. Using default 'mode={mode}'.")
|
|
508
521
|
elif mode not in MODES:
|
|
509
522
|
raise ValueError(f"Invalid 'mode={mode}'. Valid modes are {MODES}.\n{CLI_HELP_MSG}")
|
|
510
523
|
|
|
@@ -520,7 +533,7 @@ def entrypoint(debug=""):
|
|
|
520
533
|
model = overrides.pop("model", DEFAULT_CFG.model)
|
|
521
534
|
if model is None:
|
|
522
535
|
model = "yolov8n.pt"
|
|
523
|
-
LOGGER.warning(f"WARNING ⚠️ 'model' is missing. Using default 'model={model}'.")
|
|
536
|
+
LOGGER.warning(f"WARNING ⚠️ 'model' argument is missing. Using default 'model={model}'.")
|
|
524
537
|
overrides["model"] = model
|
|
525
538
|
stem = Path(model).stem.lower()
|
|
526
539
|
if "rtdetr" in stem: # guess architecture
|
|
@@ -554,15 +567,15 @@ def entrypoint(debug=""):
|
|
|
554
567
|
# Mode
|
|
555
568
|
if mode in ("predict", "track") and "source" not in overrides:
|
|
556
569
|
overrides["source"] = DEFAULT_CFG.source or ASSETS
|
|
557
|
-
LOGGER.warning(f"WARNING ⚠️ 'source' is missing. Using default 'source={overrides['source']}'.")
|
|
570
|
+
LOGGER.warning(f"WARNING ⚠️ 'source' argument is missing. Using default 'source={overrides['source']}'.")
|
|
558
571
|
elif mode in ("train", "val"):
|
|
559
572
|
if "data" not in overrides and "resume" not in overrides:
|
|
560
573
|
overrides["data"] = DEFAULT_CFG.data or TASK2DATA.get(task or DEFAULT_CFG.task, DEFAULT_CFG.data)
|
|
561
|
-
LOGGER.warning(f"WARNING ⚠️ 'data' is missing. Using default 'data={overrides['data']}'.")
|
|
574
|
+
LOGGER.warning(f"WARNING ⚠️ 'data' argument is missing. Using default 'data={overrides['data']}'.")
|
|
562
575
|
elif mode == "export":
|
|
563
576
|
if "format" not in overrides:
|
|
564
577
|
overrides["format"] = DEFAULT_CFG.format or "torchscript"
|
|
565
|
-
LOGGER.warning(f"WARNING ⚠️ 'format' is missing. Using default 'format={overrides['format']}'.")
|
|
578
|
+
LOGGER.warning(f"WARNING ⚠️ 'format' argument is missing. Using default 'format={overrides['format']}'.")
|
|
566
579
|
|
|
567
580
|
# Run command in python
|
|
568
581
|
getattr(model, mode)(**overrides) # default args from model
|
|
@@ -129,7 +129,7 @@ def check_source(source):
|
|
|
129
129
|
webcam, screenshot, from_img, in_memory, tensor = False, False, False, False, False
|
|
130
130
|
if isinstance(source, (str, int, Path)): # int for local usb camera
|
|
131
131
|
source = str(source)
|
|
132
|
-
is_file = Path(source).suffix[1:] in (IMG_FORMATS
|
|
132
|
+
is_file = Path(source).suffix[1:] in (IMG_FORMATS | VID_FORMATS)
|
|
133
133
|
is_url = source.lower().startswith(("https://", "http://", "rtsp://", "rtmp://", "tcp://"))
|
|
134
134
|
webcam = source.isnumeric() or source.endswith(".streams") or (is_url and not is_file)
|
|
135
135
|
screenshot = source.lower() == "screen"
|
|
@@ -35,8 +35,8 @@ from ultralytics.utils.downloads import download, safe_download, unzip_file
|
|
|
35
35
|
from ultralytics.utils.ops import segments2boxes
|
|
36
36
|
|
|
37
37
|
HELP_URL = "See https://docs.ultralytics.com/datasets/detect for dataset formatting guidance."
|
|
38
|
-
IMG_FORMATS = "bmp", "dng", "jpeg", "jpg", "mpo", "png", "tif", "tiff", "webp", "pfm" # image suffixes
|
|
39
|
-
VID_FORMATS = "asf", "avi", "gif", "m4v", "mkv", "mov", "mp4", "mpeg", "mpg", "ts", "wmv", "webm" # video suffixes
|
|
38
|
+
IMG_FORMATS = {"bmp", "dng", "jpeg", "jpg", "mpo", "png", "tif", "tiff", "webp", "pfm"} # image suffixes
|
|
39
|
+
VID_FORMATS = {"asf", "avi", "gif", "m4v", "mkv", "mov", "mp4", "mpeg", "mpg", "ts", "wmv", "webm"} # video suffixes
|
|
40
40
|
PIN_MEMORY = str(os.getenv("PIN_MEMORY", True)).lower() == "true" # global pin_memory for dataloaders
|
|
41
41
|
|
|
42
42
|
|
|
@@ -385,14 +385,12 @@ class Results(SimpleClass):
|
|
|
385
385
|
BGR=True,
|
|
386
386
|
)
|
|
387
387
|
|
|
388
|
-
def
|
|
389
|
-
"""Convert the
|
|
388
|
+
def summary(self, normalize=False):
|
|
389
|
+
"""Convert the results to a summarized format."""
|
|
390
390
|
if self.probs is not None:
|
|
391
|
-
LOGGER.warning("Warning: Classify task do not support `tojson` yet.")
|
|
391
|
+
LOGGER.warning("Warning: Classify task do not support `summary` and `tojson` yet.")
|
|
392
392
|
return
|
|
393
393
|
|
|
394
|
-
import json
|
|
395
|
-
|
|
396
394
|
# Create list of detection dictionaries
|
|
397
395
|
results = []
|
|
398
396
|
data = self.boxes.data.cpu().tolist()
|
|
@@ -413,8 +411,13 @@ class Results(SimpleClass):
|
|
|
413
411
|
result["keypoints"] = {"x": (x / w).tolist(), "y": (y / h).tolist(), "visible": visible.tolist()}
|
|
414
412
|
results.append(result)
|
|
415
413
|
|
|
416
|
-
|
|
417
|
-
|
|
414
|
+
return results
|
|
415
|
+
|
|
416
|
+
def tojson(self, normalize=False):
|
|
417
|
+
"""Convert the results to JSON format."""
|
|
418
|
+
import json
|
|
419
|
+
|
|
420
|
+
return json.dumps(self.summary(normalize=normalize), indent=2)
|
|
418
421
|
|
|
419
422
|
|
|
420
423
|
class Boxes(BaseTensor):
|
|
@@ -73,7 +73,7 @@ class ClassificationTrainer(BaseTrainer):
|
|
|
73
73
|
elif model in torchvision.models.__dict__:
|
|
74
74
|
self.model = torchvision.models.__dict__[model](weights="IMAGENET1K_V1" if self.args.pretrained else None)
|
|
75
75
|
else:
|
|
76
|
-
FileNotFoundError(f"ERROR: model={model} not found locally or online. Please check model name.")
|
|
76
|
+
raise FileNotFoundError(f"ERROR: model={model} not found locally or online. Please check model name.")
|
|
77
77
|
ClassificationModel.reshape_outputs(self.model, self.data["nc"])
|
|
78
78
|
|
|
79
79
|
return ckpt
|
|
@@ -509,14 +509,9 @@ class AutoBackend(nn.Module):
|
|
|
509
509
|
# NCNN
|
|
510
510
|
elif self.ncnn:
|
|
511
511
|
mat_in = self.pyncnn.Mat(im[0].cpu().numpy())
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
y = []
|
|
516
|
-
for output_name in output_names:
|
|
517
|
-
mat_out = self.pyncnn.Mat()
|
|
518
|
-
ex.extract(output_name, mat_out)
|
|
519
|
-
y.append(np.array(mat_out)[None])
|
|
512
|
+
with self.net.create_extractor() as ex:
|
|
513
|
+
ex.input(self.net.input_names()[0], mat_in)
|
|
514
|
+
y = [np.array(ex.extract(x)[1])[None] for x in self.net.output_names()]
|
|
520
515
|
|
|
521
516
|
# NVIDIA Triton Inference Server
|
|
522
517
|
elif self.triton:
|
|
@@ -560,7 +560,8 @@ class WorldModel(DetectionModel):
|
|
|
560
560
|
|
|
561
561
|
def __init__(self, cfg="yolov8s-world.yaml", ch=3, nc=None, verbose=True):
|
|
562
562
|
"""Initialize YOLOv8 world model with given config and parameters."""
|
|
563
|
-
self.txt_feats = torch.randn(1, nc or 80, 512) # placeholder
|
|
563
|
+
self.txt_feats = torch.randn(1, nc or 80, 512) # features placeholder
|
|
564
|
+
self.clip_model = None # CLIP model placeholder
|
|
564
565
|
super().__init__(cfg=cfg, ch=ch, nc=nc, verbose=verbose)
|
|
565
566
|
|
|
566
567
|
def set_classes(self, text):
|
|
@@ -571,10 +572,11 @@ class WorldModel(DetectionModel):
|
|
|
571
572
|
check_requirements("git+https://github.com/openai/CLIP.git")
|
|
572
573
|
import clip
|
|
573
574
|
|
|
574
|
-
|
|
575
|
-
|
|
575
|
+
if not self.clip_model:
|
|
576
|
+
self.clip_model = clip.load("ViT-B/32")[0]
|
|
577
|
+
device = next(self.clip_model.parameters()).device
|
|
576
578
|
text_token = clip.tokenize(text).to(device)
|
|
577
|
-
txt_feats =
|
|
579
|
+
txt_feats = self.clip_model.encode_text(text_token).to(dtype=torch.float32)
|
|
578
580
|
txt_feats = txt_feats / txt_feats.norm(p=2, dim=-1, keepdim=True)
|
|
579
581
|
self.txt_feats = txt_feats.reshape(-1, len(text), txt_feats.shape[-1]).detach()
|
|
580
582
|
self.model[-1].nc = len(text)
|
|
@@ -841,7 +843,7 @@ def parse_model(d, ch, verbose=True): # model_dict, input_channels(3)
|
|
|
841
843
|
args[j] = locals()[a] if a in locals() else ast.literal_eval(a)
|
|
842
844
|
|
|
843
845
|
n = n_ = max(round(n * depth), 1) if n > 1 else n # depth gain
|
|
844
|
-
if m in
|
|
846
|
+
if m in {
|
|
845
847
|
Classify,
|
|
846
848
|
Conv,
|
|
847
849
|
ConvTranspose,
|
|
@@ -867,7 +869,7 @@ def parse_model(d, ch, verbose=True): # model_dict, input_channels(3)
|
|
|
867
869
|
DWConvTranspose2d,
|
|
868
870
|
C3x,
|
|
869
871
|
RepC3,
|
|
870
|
-
|
|
872
|
+
}:
|
|
871
873
|
c1, c2 = ch[f], args[0]
|
|
872
874
|
if c2 != nc: # if c2 not equal to number of classes (i.e. for Classify() output)
|
|
873
875
|
c2 = make_divisible(min(c2, max_channels) * width, 8)
|
|
@@ -883,7 +885,7 @@ def parse_model(d, ch, verbose=True): # model_dict, input_channels(3)
|
|
|
883
885
|
n = 1
|
|
884
886
|
elif m is AIFI:
|
|
885
887
|
args = [ch[f], *args]
|
|
886
|
-
elif m in
|
|
888
|
+
elif m in {HGStem, HGBlock}:
|
|
887
889
|
c1, cm, c2 = ch[f], args[0], args[1]
|
|
888
890
|
args = [c1, cm, c2, *args[2:]]
|
|
889
891
|
if m is HGBlock:
|
|
@@ -895,7 +897,7 @@ def parse_model(d, ch, verbose=True): # model_dict, input_channels(3)
|
|
|
895
897
|
args = [ch[f]]
|
|
896
898
|
elif m is Concat:
|
|
897
899
|
c2 = sum(ch[x] for x in f)
|
|
898
|
-
elif m in
|
|
900
|
+
elif m in {Detect, WorldDetect, Segment, Pose, OBB, ImagePoolingAttn}:
|
|
899
901
|
args.append([ch[x] for x in f])
|
|
900
902
|
if m is Segment:
|
|
901
903
|
args[2] = make_divisible(min(args[2], max_channels) * width, 8)
|
|
@@ -978,7 +980,7 @@ def guess_model_task(model):
|
|
|
978
980
|
def cfg2task(cfg):
|
|
979
981
|
"""Guess from YAML dictionary."""
|
|
980
982
|
m = cfg["head"][-1][-2].lower() # output module name
|
|
981
|
-
if m in
|
|
983
|
+
if m in {"classify", "classifier", "cls", "fc"}:
|
|
982
984
|
return "classify"
|
|
983
985
|
if m == "detect":
|
|
984
986
|
return "detect"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: ultralytics
|
|
3
|
-
Version: 8.1.
|
|
3
|
+
Version: 8.1.31
|
|
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
|
{ultralytics-8.1.30 → ultralytics-8.1.31}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml
RENAMED
|
File without changes
|
{ultralytics-8.1.30 → ultralytics-8.1.31}/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.30 → ultralytics-8.1.31}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml
RENAMED
|
File without changes
|
{ultralytics-8.1.30 → ultralytics-8.1.31}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|