From 9d7dd957984d83db761c180b9aeef3f44ca359a6 Mon Sep 17 00:00:00 2001
From: up-up-up-up <1079796482@qq.com>
Date: Sat, 18 May 2024 11:08:32 +0800
Subject: [PATCH] sub
---
.../.github/ISSUE_TEMPLATE/config.yml | 11 -
ultralytics-main/.github/workflows/ci.yaml | 288 ----
ultralytics-main/.github/workflows/cla.yml | 37 -
.../.github/workflows/codeql.yaml | 42 -
.../.github/workflows/docker.yaml | 159 --
ultralytics-main/.github/workflows/format.yml | 28 -
.../.github/workflows/greetings.yml | 58 -
ultralytics-main/.github/workflows/links.yml | 90 --
.../.github/workflows/publish.yml | 113 --
ultralytics-main/.github/workflows/stale.yml | 47 -
ultralytics-main/.gitignore | 166 ---
ultralytics-main/.pre-commit-config.yaml | 86 --
ultralytics-main/Author_advice.txt | 7 -
ultralytics-main/CITATION.cff | 26 -
.../Instance Segmentation-camera.py | 37 -
.../Instance Segmentation-pic-video.py | 66 -
.../Instance Segmentation-track-camera.py | 42 -
.../Instance Segmentation-track-pic-video.py | 67 -
.../train2017/image_BS1_456_00_42_15.jpg | Bin 232956 -> 0 bytes
.../train2017/image_BS1_457_00_42_15.jpg | Bin 233217 -> 0 bytes
.../train2017/image_BS1_458_00_42_15.jpg | Bin 233233 -> 0 bytes
.../train2017/image_BS1_459_00_42_15.jpg | Bin 233596 -> 0 bytes
.../train2017/image_BS1_460_00_42_15.jpg | Bin 233722 -> 0 bytes
.../train2017/image_BS1_461_00_42_15.jpg | Bin 233908 -> 0 bytes
.../train2017/image_BS1_462_00_42_15.jpg | Bin 233728 -> 0 bytes
.../train2017/image_BS1_463_00_42_15.jpg | Bin 234216 -> 0 bytes
.../train2017/image_BS1_464_00_42_16.jpg | Bin 233919 -> 0 bytes
.../train2017/image_BS1_465_00_42_16.jpg | Bin 234158 -> 0 bytes
.../dataset/coco128/labels/train2017.cache | Bin 3475 -> 0 bytes
.../train2017/image_BS1_456_00_42_15.txt | 3 -
.../train2017/image_BS1_457_00_42_15.txt | 3 -
.../train2017/image_BS1_458_00_42_15.txt | 3 -
.../train2017/image_BS1_459_00_42_15.txt | 3 -
.../train2017/image_BS1_460_00_42_15.txt | 3 -
.../train2017/image_BS1_461_00_42_15.txt | 3 -
.../train2017/image_BS1_462_00_42_15.txt | 3 -
.../train2017/image_BS1_463_00_42_15.txt | 3 -
.../train2017/image_BS1_464_00_42_16.txt | 3 -
.../train2017/image_BS1_465_00_42_16.txt | 3 -
ultralytics-main/docker/Dockerfile | 85 --
ultralytics-main/docker/Dockerfile-arm64 | 51 -
ultralytics-main/docker/Dockerfile-conda | 40 -
ultralytics-main/docker/Dockerfile-cpu | 57 -
ultralytics-main/docker/Dockerfile-jetson | 50 -
ultralytics-main/docker/Dockerfile-python | 54 -
ultralytics-main/docker/Dockerfile-runner | 38 -
ultralytics-main/docs/README.md | 140 --
ultralytics-main/docs/build_docs.py | 141 --
ultralytics-main/docs/build_reference.py | 130 --
ultralytics-main/docs/coming_soon_template.md | 34 -
ultralytics-main/docs/en/CNAME | 1 -
.../docs/en/guides/azureml-quickstart.md | 152 --
.../docs/en/guides/conda-quickstart.md | 132 --
.../guides/coral-edge-tpu-on-raspberry-pi.md | 140 --
.../docs/en/guides/distance-calculation.md | 107 --
.../docs/en/guides/docker-quickstart.md | 119 --
ultralytics-main/docs/en/guides/heatmaps.md | 301 ----
.../docs/en/guides/hyperparameter-tuning.md | 206 ---
ultralytics-main/docs/en/guides/index.md | 65 -
.../instance-segmentation-and-tracking.md | 140 --
.../guides/isolating-segmentation-objects.md | 325 -----
.../docs/en/guides/kfold-cross-validation.md | 278 ----
.../en/guides/model-deployment-options.md | 305 ----
.../docs/en/guides/object-blurring.md | 91 --
.../docs/en/guides/object-counting.md | 246 ----
.../docs/en/guides/object-cropping.md | 102 --
...ng-openvino-latency-vs-throughput-modes.md | 69 -
.../docs/en/guides/raspberry-pi.md | 196 ---
.../docs/en/guides/region-counting.md | 86 --
.../docs/en/guides/sahi-tiled-inference.md | 185 ---
.../docs/en/guides/security-alarm-system.md | 166 ---
.../docs/en/guides/speed-estimation.md | 110 --
.../docs/en/guides/triton-inference-server.md | 137 --
.../en/guides/view-results-in-terminal.md | 146 --
ultralytics-main/docs/en/guides/vision-eye.md | 177 ---
.../docs/en/guides/workouts-monitoring.md | 134 --
.../docs/en/guides/yolo-common-issues.md | 276 ----
.../en/guides/yolo-performance-metrics.md | 176 ---
.../en/guides/yolo-thread-safe-inference.md | 108 --
ultralytics-main/docs/en/help/CI.md | 61 -
ultralytics-main/docs/en/help/CLA.md | 28 -
ultralytics-main/docs/en/help/FAQ.md | 39 -
.../docs/en/help/code_of_conduct.md | 85 --
ultralytics-main/docs/en/help/contributing.md | 131 --
.../en/help/environmental-health-safety.md | 37 -
ultralytics-main/docs/en/help/index.md | 19 -
.../en/help/minimum_reproducible_example.md | 78 -
ultralytics-main/docs/en/help/privacy.md | 137 --
ultralytics-main/docs/en/help/security.md | 36 -
ultralytics-main/docs/en/hub/api/index.md | 34 -
ultralytics-main/docs/en/hub/app/android.md | 100 --
ultralytics-main/docs/en/hub/app/index.md | 48 -
ultralytics-main/docs/en/hub/app/ios.md | 90 --
.../docs/en/hub/cloud-training.md | 89 --
ultralytics-main/docs/en/hub/datasets.md | 146 --
ultralytics-main/docs/en/hub/index.md | 61 -
ultralytics-main/docs/en/hub/inference-api.md | 480 ------
ultralytics-main/docs/en/hub/integrations.md | 62 -
ultralytics-main/docs/en/hub/models.md | 130 --
.../docs/en/hub/on-premise/index.md | 34 -
ultralytics-main/docs/en/hub/projects.md | 180 ---
ultralytics-main/docs/en/hub/quickstart.md | 58 -
ultralytics-main/docs/en/index.md | 81 --
.../docs/en/integrations/amazon-sagemaker.md | 169 ---
.../docs/en/integrations/clearml.md | 189 ---
.../docs/en/integrations/comet.md | 178 ---
.../docs/en/integrations/coreml.md | 126 --
ultralytics-main/docs/en/integrations/dvc.md | 171 ---
.../docs/en/integrations/edge-tpu.md | 118 --
.../docs/en/integrations/gradio.md | 106 --
.../docs/en/integrations/index.md | 104 --
.../docs/en/integrations/mlflow.md | 117 --
ultralytics-main/docs/en/integrations/ncnn.md | 120 --
.../docs/en/integrations/neural-magic.md | 165 ---
ultralytics-main/docs/en/integrations/onnx.md | 134 --
.../docs/en/integrations/openvino.md | 284 ----
.../docs/en/integrations/paddlepaddle.md | 122 --
.../docs/en/integrations/ray-tune.md | 179 ---
.../docs/en/integrations/roboflow.md | 243 ----
.../docs/en/integrations/tensorboard.md | 153 --
.../docs/en/integrations/tensorrt.md | 128 --
.../docs/en/integrations/tflite.md | 122 --
.../docs/en/integrations/torchscript.md | 126 --
.../docs/en/integrations/weights-biases.md | 156 --
ultralytics-main/docs/en/models/fast-sam.md | 203 ---
ultralytics-main/docs/en/models/index.md | 96 --
ultralytics-main/docs/en/models/mobile-sam.md | 119 --
ultralytics-main/docs/en/models/rtdetr.md | 92 --
ultralytics-main/docs/en/models/sam.md | 227 ---
ultralytics-main/docs/en/models/yolo-nas.md | 120 --
ultralytics-main/docs/en/models/yolo-world.md | 216 ---
ultralytics-main/docs/en/models/yolov3.md | 98 --
ultralytics-main/docs/en/models/yolov4.md | 70 -
ultralytics-main/docs/en/models/yolov5.md | 114 --
ultralytics-main/docs/en/models/yolov6.md | 106 --
ultralytics-main/docs/en/models/yolov7.md | 65 -
ultralytics-main/docs/en/models/yolov8.md | 186 ---
ultralytics-main/docs/en/models/yolov9.md | 152 --
ultralytics-main/docs/en/modes/benchmark.md | 106 --
ultralytics-main/docs/en/modes/export.md | 111 --
ultralytics-main/docs/en/modes/index.md | 73 -
ultralytics-main/docs/en/modes/predict.md | 795 ----------
ultralytics-main/docs/en/modes/track.md | 360 -----
ultralytics-main/docs/en/modes/train.md | 328 -----
ultralytics-main/docs/en/modes/val.md | 128 --
ultralytics-main/docs/en/quickstart.md | 328 -----
.../docs/en/reference/cfg/__init__.md | 64 -
.../docs/en/reference/data/annotator.md | 16 -
.../docs/en/reference/data/augment.md | 84 --
.../docs/en/reference/data/base.md | 16 -
.../docs/en/reference/data/build.md | 40 -
.../docs/en/reference/data/converter.md | 40 -
.../docs/en/reference/data/dataset.md | 32 -
.../en/reference/data/explorer/explorer.md | 21 -
.../en/reference/data/explorer/gui/dash.md | 57 -
.../docs/en/reference/data/explorer/utils.md | 33 -
.../docs/en/reference/data/loaders.md | 44 -
.../docs/en/reference/data/split_dota.md | 44 -
.../docs/en/reference/data/utils.md | 68 -
.../docs/en/reference/engine/exporter.md | 32 -
.../docs/en/reference/engine/model.md | 16 -
.../docs/en/reference/engine/predictor.md | 16 -
.../docs/en/reference/engine/results.md | 40 -
.../docs/en/reference/engine/trainer.md | 16 -
.../docs/en/reference/engine/tuner.md | 16 -
.../docs/en/reference/engine/validator.md | 16 -
.../docs/en/reference/hub/__init__.md | 40 -
.../docs/en/reference/hub/auth.md | 16 -
.../docs/en/reference/hub/session.md | 16 -
.../docs/en/reference/hub/utils.md | 28 -
.../docs/en/reference/models/fastsam/model.md | 16 -
.../en/reference/models/fastsam/predict.md | 16 -
.../en/reference/models/fastsam/prompt.md | 16 -
.../docs/en/reference/models/fastsam/utils.md | 20 -
.../docs/en/reference/models/fastsam/val.md | 16 -
.../docs/en/reference/models/nas/model.md | 16 -
.../docs/en/reference/models/nas/predict.md | 16 -
.../docs/en/reference/models/nas/val.md | 16 -
.../docs/en/reference/models/rtdetr/model.md | 16 -
.../en/reference/models/rtdetr/predict.md | 16 -
.../docs/en/reference/models/rtdetr/train.md | 16 -
.../docs/en/reference/models/rtdetr/val.md | 20 -
.../docs/en/reference/models/sam/amg.md | 56 -
.../docs/en/reference/models/sam/build.md | 36 -
.../docs/en/reference/models/sam/model.md | 16 -
.../reference/models/sam/modules/decoders.md | 20 -
.../reference/models/sam/modules/encoders.md | 52 -
.../en/reference/models/sam/modules/sam.md | 16 -
.../models/sam/modules/tiny_encoder.md | 56 -
.../models/sam/modules/transformer.md | 24 -
.../docs/en/reference/models/sam/predict.md | 16 -
.../docs/en/reference/models/utils/loss.md | 20 -
.../docs/en/reference/models/utils/ops.md | 20 -
.../reference/models/yolo/classify/predict.md | 16 -
.../reference/models/yolo/classify/train.md | 16 -
.../en/reference/models/yolo/classify/val.md | 16 -
.../reference/models/yolo/detect/predict.md | 16 -
.../en/reference/models/yolo/detect/train.md | 16 -
.../en/reference/models/yolo/detect/val.md | 16 -
.../docs/en/reference/models/yolo/model.md | 20 -
.../en/reference/models/yolo/obb/predict.md | 16 -
.../en/reference/models/yolo/obb/train.md | 16 -
.../docs/en/reference/models/yolo/obb/val.md | 16 -
.../en/reference/models/yolo/pose/predict.md | 16 -
.../en/reference/models/yolo/pose/train.md | 16 -
.../docs/en/reference/models/yolo/pose/val.md | 16 -
.../reference/models/yolo/segment/predict.md | 16 -
.../en/reference/models/yolo/segment/train.md | 16 -
.../en/reference/models/yolo/segment/val.md | 16 -
.../docs/en/reference/nn/autobackend.md | 24 -
.../docs/en/reference/nn/modules/block.md | 140 --
.../docs/en/reference/nn/modules/conv.md | 68 -
.../docs/en/reference/nn/modules/head.md | 40 -
.../en/reference/nn/modules/transformer.md | 52 -
.../docs/en/reference/nn/modules/utils.md | 32 -
.../docs/en/reference/nn/tasks.md | 80 -
.../docs/en/reference/solutions/ai_gym.md | 16 -
.../solutions/distance_calculation.md | 16 -
.../docs/en/reference/solutions/heatmap.md | 16 -
.../en/reference/solutions/object_counter.md | 16 -
.../reference/solutions/speed_estimation.md | 16 -
.../docs/en/reference/trackers/basetrack.md | 20 -
.../docs/en/reference/trackers/bot_sort.md | 20 -
.../en/reference/trackers/byte_tracker.md | 20 -
.../docs/en/reference/trackers/track.md | 24 -
.../docs/en/reference/trackers/utils/gmc.md | 16 -
.../reference/trackers/utils/kalman_filter.md | 20 -
.../en/reference/trackers/utils/matching.md | 28 -
.../docs/en/reference/utils/__init__.md | 160 --
.../docs/en/reference/utils/autobatch.md | 20 -
.../docs/en/reference/utils/benchmarks.md | 20 -
.../docs/en/reference/utils/callbacks/base.md | 120 --
.../en/reference/utils/callbacks/clearml.md | 40 -
.../en/reference/utils/callbacks/comet.md | 108 --
.../docs/en/reference/utils/callbacks/dvc.md | 48 -
.../docs/en/reference/utils/callbacks/hub.md | 44 -
.../en/reference/utils/callbacks/mlflow.md | 28 -
.../en/reference/utils/callbacks/neptune.md | 44 -
.../en/reference/utils/callbacks/raytune.md | 16 -
.../reference/utils/callbacks/tensorboard.md | 36 -
.../docs/en/reference/utils/callbacks/wb.md | 40 -
.../docs/en/reference/utils/checks.md | 112 --
.../docs/en/reference/utils/dist.md | 28 -
.../docs/en/reference/utils/downloads.md | 52 -
.../docs/en/reference/utils/errors.md | 16 -
.../docs/en/reference/utils/files.md | 44 -
.../docs/en/reference/utils/instance.md | 24 -
.../docs/en/reference/utils/loss.md | 52 -
.../docs/en/reference/utils/metrics.md | 96 --
.../docs/en/reference/utils/ops.md | 136 --
.../docs/en/reference/utils/patches.md | 28 -
.../docs/en/reference/utils/plotting.md | 56 -
.../docs/en/reference/utils/tal.md | 36 -
.../docs/en/reference/utils/torch_utils.md | 120 --
.../docs/en/reference/utils/triton.md | 16 -
.../docs/en/reference/utils/tuner.md | 16 -
ultralytics-main/docs/en/robots.txt | 16 -
ultralytics-main/docs/en/tasks/classify.md | 181 ---
ultralytics-main/docs/en/tasks/detect.md | 182 ---
ultralytics-main/docs/en/tasks/index.md | 57 -
ultralytics-main/docs/en/tasks/obb.md | 191 ---
ultralytics-main/docs/en/tasks/pose.md | 185 ---
ultralytics-main/docs/en/tasks/segment.md | 187 ---
ultralytics-main/docs/en/usage/callbacks.md | 101 --
ultralytics-main/docs/en/usage/cfg.md | 269 ----
ultralytics-main/docs/en/usage/cli.md | 231 ---
ultralytics-main/docs/en/usage/engine.md | 91 --
ultralytics-main/docs/en/usage/python.md | 325 -----
.../docs/en/usage/simple-utilities.md | 429 ------
.../environments/aws_quickstart_tutorial.md | 95 --
.../azureml_quickstart_tutorial.md | 94 --
.../docker_image_quickstart_tutorial.md | 71 -
.../google_cloud_quickstart_tutorial.md | 87 --
ultralytics-main/docs/en/yolov5/index.md | 93 --
.../docs/en/yolov5/quickstart_tutorial.md | 72 -
.../tutorials/architecture_description.md | 224 ---
.../tutorials/clearml_logging_integration.md | 237 ---
.../tutorials/comet_logging_integration.md | 256 ----
.../tutorials/hyperparameter_evolution.md | 166 ---
.../en/yolov5/tutorials/model_ensembling.md | 147 --
.../docs/en/yolov5/tutorials/model_export.md | 247 ----
.../tutorials/model_pruning_and_sparsity.md | 110 --
.../en/yolov5/tutorials/multi_gpu_training.md | 190 ---
.../neural_magic_pruning_quantization.md | 264 ----
.../tutorials/pytorch_hub_model_loading.md | 372 -----
.../roboflow_datasets_integration.md | 73 -
.../tutorials/running_on_jetson_nano.md | 319 ----
.../tutorials/test_time_augmentation.md | 164 ---
.../tips_for_best_training_results.md | 65 -
.../en/yolov5/tutorials/train_custom_data.md | 224 ---
.../transfer_learning_with_frozen_layers.md | 155 --
.../docs/overrides/assets/favicon.ico | Bin 9662 -> 0 bytes
.../docs/overrides/javascript/extra.js | 69 -
ultralytics-main/docs/overrides/main.html | 12 -
.../docs/overrides/partials/comments.html | 51 -
.../docs/overrides/partials/source-file.html | 26 -
.../docs/overrides/stylesheets/style.css | 57 -
ultralytics-main/examples/README.md | 36 -
.../YOLOv8-CPP-Inference/CMakeLists.txt | 28 -
.../examples/YOLOv8-CPP-Inference/README.md | 50 -
.../YOLOv8-CPP-Inference/inference.cpp | 185 ---
.../examples/YOLOv8-CPP-Inference/inference.h | 52 -
.../examples/YOLOv8-CPP-Inference/main.cpp | 70 -
.../CMakeLists.txt | 47 -
.../YOLOv8-LibTorch-CPP-Inference/README.md | 35 -
.../YOLOv8-LibTorch-CPP-Inference/main.cc | 259 ----
.../YOLOv8-ONNXRuntime-CPP/CMakeLists.txt | 96 --
.../examples/YOLOv8-ONNXRuntime-CPP/README.md | 107 --
.../YOLOv8-ONNXRuntime-CPP/inference.cpp | 363 -----
.../YOLOv8-ONNXRuntime-CPP/inference.h | 93 --
.../examples/YOLOv8-ONNXRuntime-CPP/main.cpp | 193 ---
.../YOLOv8-ONNXRuntime-Rust/Cargo.toml | 21 -
.../YOLOv8-ONNXRuntime-Rust/README.md | 221 ---
.../YOLOv8-ONNXRuntime-Rust/src/cli.rs | 87 --
.../YOLOv8-ONNXRuntime-Rust/src/lib.rs | 119 --
.../YOLOv8-ONNXRuntime-Rust/src/main.rs | 28 -
.../YOLOv8-ONNXRuntime-Rust/src/model.rs | 642 --------
.../src/ort_backend.rs | 534 -------
.../src/yolo_result.rs | 235 ---
.../examples/YOLOv8-ONNXRuntime/README.md | 43 -
.../examples/YOLOv8-ONNXRuntime/main.py | 231 ---
.../YOLOv8-OpenCV-ONNX-Python/README.md | 19 -
.../YOLOv8-OpenCV-ONNX-Python/main.py | 130 --
.../README.md | 65 -
.../YOLOv8-OpenCV-int8-tflite-Python/main.py | 299 ----
.../examples/YOLOv8-Region-Counter/readme.md | 123 --
.../yolov8_region_counter.py | 251 ----
.../YOLOv8-SAHI-Inference-Video/readme.md | 69 -
.../yolov8_sahi.py | 111 --
.../README.md | 63 -
.../main.py | 342 -----
ultralytics-main/examples/heatmaps.ipynb | 145 --
ultralytics-main/examples/hub.ipynb | 106 --
.../examples/object_counting.ipynb | 147 --
.../examples/object_tracking.ipynb | 203 ---
ultralytics-main/examples/tutorial.ipynb | 649 ---------
ultralytics-main/main.py | 56 -
ultralytics-main/mkdocs.yml | 675 ---------
ultralytics-main/pyproject.toml | 178 ---
ultralytics-main/requirements.txt | 47 -
ultralytics-main/setup.py | 102 --
ultralytics-main/stereo-speed.py | 98 --
ultralytics-main/stereo/dianyuntu_yolo.py | 194 ---
ultralytics-main/stereo/stereo.py | 206 ---
ultralytics-main/stereo/stereoconfig_040_2.py | 42 -
ultralytics-main/ultralytics/__init__.py | 26 -
ultralytics-main/ultralytics/bus.jpg | Bin 487438 -> 0 bytes
ultralytics-main/ultralytics/cfg/__init__.py | 587 --------
ultralytics-main/ultralytics/cfg/default.yaml | 125 --
.../ultralytics/cfg/models/README.md | 40 -
.../cfg/models/rt-detr/rtdetr-l.yaml | 50 -
.../cfg/models/rt-detr/rtdetr-resnet101.yaml | 42 -
.../cfg/models/rt-detr/rtdetr-resnet50.yaml | 42 -
.../cfg/models/rt-detr/rtdetr-x.yaml | 54 -
.../ultralytics/cfg/models/v3/yolov3-spp.yaml | 46 -
.../cfg/models/v3/yolov3-tiny.yaml | 37 -
.../ultralytics/cfg/models/v3/yolov3.yaml | 46 -
.../ultralytics/cfg/models/v5/yolov5-p6.yaml | 59 -
.../ultralytics/cfg/models/v5/yolov5.yaml | 48 -
.../ultralytics/cfg/models/v6/yolov6.yaml | 53 -
.../cfg/models/v8/yolov8-cls-resnet101.yaml | 25 -
.../cfg/models/v8/yolov8-cls-resnet50.yaml | 25 -
.../ultralytics/cfg/models/v8/yolov8-cls.yaml | 29 -
.../cfg/models/v8/yolov8-ghost-p2.yaml | 54 -
.../cfg/models/v8/yolov8-ghost-p6.yaml | 56 -
.../cfg/models/v8/yolov8-ghost.yaml | 47 -
.../ultralytics/cfg/models/v8/yolov8-obb.yaml | 46 -
.../ultralytics/cfg/models/v8/yolov8-p2.yaml | 54 -
.../ultralytics/cfg/models/v8/yolov8-p6.yaml | 56 -
.../cfg/models/v8/yolov8-pose-p6.yaml | 57 -
.../cfg/models/v8/yolov8-pose.yaml | 47 -
.../cfg/models/v8/yolov8-rtdetr.yaml | 46 -
.../cfg/models/v8/yolov8-seg-p6.yaml | 56 -
.../ultralytics/cfg/models/v8/yolov8-seg.yaml | 46 -
.../cfg/models/v8/yolov8-world.yaml | 48 -
.../cfg/models/v8/yolov8-worldv2.yaml | 46 -
.../ultralytics/cfg/models/v8/yolov8.yaml | 46 -
.../ultralytics/cfg/models/v9/yolov9c.yaml | 36 -
.../ultralytics/cfg/models/v9/yolov9e.yaml | 60 -
.../ultralytics/cfg/trackers/botsort.yaml | 18 -
.../ultralytics/cfg/trackers/bytetrack.yaml | 11 -
ultralytics-main/ultralytics/data/__init__.py | 15 -
.../ultralytics/data/annotator.py | 50 -
ultralytics-main/ultralytics/data/augment.py | 1250 ----------------
ultralytics-main/ultralytics/data/base.py | 311 ----
ultralytics-main/ultralytics/data/build.py | 186 ---
.../ultralytics/data/converter.py | 542 -------
ultralytics-main/ultralytics/data/dataset.py | 382 -----
.../ultralytics/data/explorer/__init__.py | 5 -
.../ultralytics/data/explorer/explorer.py | 472 ------
.../ultralytics/data/explorer/gui/__init__.py | 1 -
.../ultralytics/data/explorer/gui/dash.py | 268 ----
.../ultralytics/data/explorer/utils.py | 166 ---
ultralytics-main/ultralytics/data/loaders.py | 555 -------
.../data/scripts/download_weights.sh | 18 -
.../ultralytics/data/scripts/get_coco.sh | 60 -
.../ultralytics/data/scripts/get_imagenet.sh | 51 -
.../ultralytics/data/split_dota.py | 288 ----
ultralytics-main/ultralytics/data/utils.py | 651 ---------
.../ultralytics/engine/__init__.py | 1 -
.../ultralytics/engine/exporter.py | 1141 ---------------
ultralytics-main/ultralytics/engine/model.py | 821 -----------
.../ultralytics/engine/predictor.py | 397 -----
.../ultralytics/engine/results.py | 728 ----------
.../ultralytics/engine/trainer.py | 758 ----------
ultralytics-main/ultralytics/engine/tuner.py | 241 ---
.../ultralytics/engine/validator.py | 338 -----
ultralytics-main/ultralytics/hub/__init__.py | 128 --
ultralytics-main/ultralytics/hub/auth.py | 136 --
ultralytics-main/ultralytics/hub/session.py | 355 -----
ultralytics-main/ultralytics/hub/utils.py | 247 ----
.../ultralytics/models/__init__.py | 7 -
.../ultralytics/models/fastsam/__init__.py | 8 -
.../ultralytics/models/fastsam/model.py | 33 -
.../ultralytics/models/fastsam/predict.py | 86 --
.../ultralytics/models/fastsam/prompt.py | 357 -----
.../ultralytics/models/fastsam/utils.py | 67 -
.../ultralytics/models/fastsam/val.py | 40 -
.../ultralytics/models/nas/__init__.py | 7 -
.../ultralytics/models/nas/model.py | 83 --
.../ultralytics/models/nas/predict.py | 60 -
.../ultralytics/models/nas/val.py | 50 -
.../ultralytics/models/rtdetr/__init__.py | 7 -
.../ultralytics/models/rtdetr/model.py | 54 -
.../ultralytics/models/rtdetr/predict.py | 86 --
.../ultralytics/models/rtdetr/train.py | 101 --
.../ultralytics/models/rtdetr/val.py | 135 --
.../ultralytics/models/sam/__init__.py | 6 -
.../ultralytics/models/sam/amg.py | 187 ---
.../ultralytics/models/sam/build.py | 160 --
.../ultralytics/models/sam/model.py | 114 --
.../models/sam/modules/__init__.py | 1 -
.../models/sam/modules/decoders.py | 190 ---
.../models/sam/modules/encoders.py | 603 --------
.../ultralytics/models/sam/modules/sam.py | 65 -
.../models/sam/modules/tiny_encoder.py | 742 ----------
.../models/sam/modules/transformer.py | 274 ----
.../ultralytics/models/sam/predict.py | 474 ------
.../ultralytics/models/utils/__init__.py | 1 -
.../ultralytics/models/utils/loss.py | 345 -----
.../ultralytics/models/utils/ops.py | 263 ----
.../ultralytics/models/yolo/__init__.py | 7 -
.../models/yolo/classify/__init__.py | 7 -
.../models/yolo/classify/predict.py | 61 -
.../ultralytics/models/yolo/classify/train.py | 158 --
.../ultralytics/models/yolo/classify/val.py | 113 --
.../models/yolo/detect/__init__.py | 7 -
.../ultralytics/models/yolo/detect/predict.py | 43 -
.../ultralytics/models/yolo/detect/train.py | 143 --
.../ultralytics/models/yolo/detect/val.py | 299 ----
.../ultralytics/models/yolo/model.py | 106 --
.../ultralytics/models/yolo/obb/__init__.py | 7 -
.../ultralytics/models/yolo/obb/predict.py | 53 -
.../ultralytics/models/yolo/obb/train.py | 42 -
.../ultralytics/models/yolo/obb/val.py | 185 ---
.../ultralytics/models/yolo/pose/__init__.py | 7 -
.../ultralytics/models/yolo/pose/predict.py | 58 -
.../ultralytics/models/yolo/pose/train.py | 79 -
.../ultralytics/models/yolo/pose/val.py | 248 ----
.../models/yolo/segment/__init__.py | 7 -
.../models/yolo/segment/predict.py | 57 -
.../ultralytics/models/yolo/segment/train.py | 62 -
.../ultralytics/models/yolo/segment/val.py | 277 ----
ultralytics-main/ultralytics/nn/__init__.py | 29 -
.../ultralytics/nn/autobackend.py | 628 --------
.../ultralytics/nn/modules/__init__.py | 138 --
.../ultralytics/nn/modules/block.py | 698 ---------
.../ultralytics/nn/modules/conv.py | 333 -----
.../ultralytics/nn/modules/head.py | 482 ------
.../ultralytics/nn/modules/transformer.py | 426 ------
.../ultralytics/nn/modules/utils.py | 85 --
ultralytics-main/ultralytics/nn/tasks.py | 1037 -------------
.../ultralytics/solutions/__init__.py | 1 -
.../ultralytics/solutions/ai_gym.py | 158 --
.../solutions/distance_calculation.py | 181 ---
.../ultralytics/solutions/heatmap.py | 281 ----
.../ultralytics/solutions/object_counter.py | 278 ----
.../ultralytics/solutions/speed.py | 164 ---
.../ultralytics/solutions/speed_estimation.py | 198 ---
.../ultralytics/trackers/README.md | 321 ----
.../ultralytics/trackers/__init__.py | 7 -
.../ultralytics/trackers/basetrack.py | 105 --
.../ultralytics/trackers/bot_sort.py | 200 ---
.../ultralytics/trackers/byte_tracker.py | 444 ------
.../ultralytics/trackers/track.py | 89 --
.../ultralytics/trackers/utils/__init__.py | 1 -
.../ultralytics/trackers/utils/gmc.py | 363 -----
.../trackers/utils/kalman_filter.py | 360 -----
.../ultralytics/trackers/utils/matching.py | 138 --
.../ultralytics/utils/__init__.py | 1049 --------------
.../ultralytics/utils/autobatch.py | 88 --
.../ultralytics/utils/benchmarks.py | 402 -----
.../ultralytics/utils/callbacks/__init__.py | 5 -
.../ultralytics/utils/callbacks/base.py | 219 ---
.../ultralytics/utils/callbacks/clearml.py | 152 --
.../ultralytics/utils/callbacks/comet.py | 375 -----
.../ultralytics/utils/callbacks/dvc.py | 145 --
.../ultralytics/utils/callbacks/hub.py | 108 --
.../ultralytics/utils/callbacks/mlflow.py | 133 --
.../ultralytics/utils/callbacks/neptune.py | 112 --
.../ultralytics/utils/callbacks/raytune.py | 29 -
.../utils/callbacks/tensorboard.py | 106 --
.../ultralytics/utils/callbacks/wb.py | 163 ---
ultralytics-main/ultralytics/utils/checks.py | 729 ----------
ultralytics-main/ultralytics/utils/dist.py | 71 -
.../ultralytics/utils/downloads.py | 500 -------
ultralytics-main/ultralytics/utils/errors.py | 22 -
ultralytics-main/ultralytics/utils/files.py | 188 ---
.../ultralytics/utils/instance.py | 407 ------
ultralytics-main/ultralytics/utils/loss.py | 715 ---------
ultralytics-main/ultralytics/utils/metrics.py | 1289 -----------------
ultralytics-main/ultralytics/utils/ops.py | 849 -----------
ultralytics-main/ultralytics/utils/patches.py | 88 --
.../ultralytics/utils/plotting.py | 1048 --------------
ultralytics-main/ultralytics/utils/tal.py | 344 -----
.../ultralytics/utils/torch_utils.py | 608 --------
ultralytics-main/ultralytics/utils/triton.py | 92 --
ultralytics-main/ultralytics/utils/tuner.py | 146 --
ultralytics-main/ultralytics/zidane.jpg | Bin 168949 -> 0 bytes
ultralytics-main/yolov8-stereo.py | 69 -
yolov5_Monocular_social_ranging/.dockerignore | 222 +++
.../.gitattributes | 2 +
.../.github/FUNDING.yml | 5 +
.../.github/ISSUE_TEMPLATE/bug-report.yml | 45 +-
.../.github/ISSUE_TEMPLATE/config.yml | 8 +
.../ISSUE_TEMPLATE/feature-request.yml | 14 +-
.../.github/ISSUE_TEMPLATE/question.yml | 8 +-
.../.github/PULL_REQUEST_TEMPLATE.md | 7 +
.../.github/dependabot.yml | 6 +-
.../.github/workflows/ci-testing.yml | 93 ++
.../.github/workflows/codeql-analysis.yml | 54 +
.../.github/workflows/greetings.yml | 59 +
.../.github/workflows/rebase.yml | 21 +
.../.github/workflows/stale.yml | 38 +
yolov5_Monocular_social_ranging/.gitignore | 256 ++++
.../.pre-commit-config.yaml | 66 +
.../0.8.1' | 0
.../CONTRIBUTING.md | 94 ++
yolov5_Monocular_social_ranging/Dockerfile | 64 +
.../LICENSE | 153 +-
yolov5_Monocular_social_ranging/README.md | 304 ++++
.../data/Argoverse.yaml | 67 +
.../data/GlobalWheat2020.yaml | 53 +
.../data/Objects365.yaml | 112 ++
.../data/SKU-110K.yaml | 52 +
yolov5_Monocular_social_ranging/data/VOC.yaml | 80 +
.../data/VisDrone.yaml | 61 +
.../data/coco.yaml | 44 +
.../data/coco128.yaml | 30 +
.../data/hyps/hyp.Objects365.yaml | 34 +
.../data/hyps/hyp.VOC.yaml | 40 +
.../data/hyps/hyp.scratch-high.yaml | 34 +
.../data/hyps/hyp.scratch-low.yaml | 34 +
.../data/hyps/hyp.scratch-med.yaml | 34 +
.../data/scripts/download_weights.sh | 20 +
.../data/scripts/get_coco.sh | 27 +
.../data/scripts/get_coco128.sh | 6 +-
.../data/xView.yaml | 102 ++
yolov5_Monocular_social_ranging/detect.py | 332 +++++
yolov5_Monocular_social_ranging/distance.py | 18 +
yolov5_Monocular_social_ranging/export.py | 559 +++++++
yolov5_Monocular_social_ranging/hubconf.py | 143 ++
.../models/__init__.py | 0
.../models/common.py | 677 +++++++++
.../models/experimental.py | 120 ++
.../models/hub/anchors.yaml | 59 +
.../models/hub/yolov3-spp.yaml | 51 +
.../models/hub/yolov3-tiny.yaml | 41 +
.../models/hub/yolov3.yaml | 51 +
.../models/hub/yolov5-bifpn.yaml | 48 +
.../models/hub/yolov5-fpn.yaml | 42 +
.../models/hub/yolov5-p2.yaml | 54 +
.../models/hub/yolov5-p34.yaml | 41 +
.../models/hub/yolov5-p6.yaml | 56 +
.../models/hub/yolov5-p7.yaml | 67 +
.../models/hub/yolov5-panet.yaml | 48 +
.../models/hub/yolov5l6.yaml | 60 +
.../models/hub/yolov5m6.yaml | 60 +
.../models/hub/yolov5n6.yaml | 60 +
.../models/hub/yolov5s-ghost.yaml | 48 +
.../models/hub/yolov5s-transformer.yaml | 48 +
.../models/hub/yolov5s6.yaml | 60 +
.../models/hub/yolov5x6.yaml | 60 +
yolov5_Monocular_social_ranging/models/tf.py | 464 ++++++
.../models/yolo.py | 329 +++++
.../models/yolov5l.yaml | 48 +
.../models/yolov5m.yaml | 48 +
.../models/yolov5n.yaml | 48 +
.../models/yolov5s.yaml | 48 +
.../models/yolov5x.yaml | 48 +
.../requirements.txt | 37 +
yolov5_Monocular_social_ranging/setup.cfg | 45 +
yolov5_Monocular_social_ranging/train.py | 643 ++++++++
.../tutorial.ipynb | 1102 ++++++++++++++
.../utils/__init__.py | 37 +
.../utils/activations.py | 101 ++
.../utils/augmentations.py | 277 ++++
.../utils/autoanchor.py | 165 +++
.../utils/autobatch.py | 57 +
.../utils/aws/__init__.py | 0
.../utils/aws/mime.sh | 26 +
.../utils/aws/resume.py | 40 +
.../utils/aws/userdata.sh | 27 +
.../utils/benchmarks.py | 92 ++
.../utils/callbacks.py | 78 +
.../utils/datasets.py | 1037 +++++++++++++
.../utils/downloads.py | 153 ++
.../utils/flask_rest_api/README.md | 73 +
.../utils/flask_rest_api/example_request.py | 13 +
.../utils/flask_rest_api/restapi.py | 37 +
.../utils/general.py | 880 +++++++++++
.../utils/google_app_engine/Dockerfile | 25 +
.../additional_requirements.txt | 4 +
.../utils/google_app_engine/app.yaml | 14 +
.../utils/loggers/__init__.py | 168 +++
.../utils/loggers/wandb/README.md | 152 ++
.../utils/loggers/wandb/__init__.py | 0
.../utils/loggers/wandb/log_dataset.py | 27 +
.../utils/loggers/wandb/sweep.py | 41 +
.../utils/loggers/wandb/sweep.yaml | 143 ++
.../utils/loggers/wandb/wandb_utils.py | 562 +++++++
yolov5_Monocular_social_ranging/utils/loss.py | 222 +++
.../utils/metrics.py | 342 +++++
.../utils/plots.py | 471 ++++++
.../utils/torch_utils.py | 329 +++++
yolov5_Monocular_social_ranging/val.py | 383 +++++
626 files changed, 13871 insertions(+), 71617 deletions(-)
delete mode 100644 ultralytics-main/.github/ISSUE_TEMPLATE/config.yml
delete mode 100644 ultralytics-main/.github/workflows/ci.yaml
delete mode 100644 ultralytics-main/.github/workflows/cla.yml
delete mode 100644 ultralytics-main/.github/workflows/codeql.yaml
delete mode 100644 ultralytics-main/.github/workflows/docker.yaml
delete mode 100644 ultralytics-main/.github/workflows/format.yml
delete mode 100644 ultralytics-main/.github/workflows/greetings.yml
delete mode 100644 ultralytics-main/.github/workflows/links.yml
delete mode 100644 ultralytics-main/.github/workflows/publish.yml
delete mode 100644 ultralytics-main/.github/workflows/stale.yml
delete mode 100644 ultralytics-main/.gitignore
delete mode 100644 ultralytics-main/.pre-commit-config.yaml
delete mode 100644 ultralytics-main/Author_advice.txt
delete mode 100644 ultralytics-main/CITATION.cff
delete mode 100644 ultralytics-main/Instance Segmentation-camera.py
delete mode 100644 ultralytics-main/Instance Segmentation-pic-video.py
delete mode 100644 ultralytics-main/Instance Segmentation-track-camera.py
delete mode 100644 ultralytics-main/Instance Segmentation-track-pic-video.py
delete mode 100644 ultralytics-main/dataset/coco128/images/train2017/image_BS1_456_00_42_15.jpg
delete mode 100644 ultralytics-main/dataset/coco128/images/train2017/image_BS1_457_00_42_15.jpg
delete mode 100644 ultralytics-main/dataset/coco128/images/train2017/image_BS1_458_00_42_15.jpg
delete mode 100644 ultralytics-main/dataset/coco128/images/train2017/image_BS1_459_00_42_15.jpg
delete mode 100644 ultralytics-main/dataset/coco128/images/train2017/image_BS1_460_00_42_15.jpg
delete mode 100644 ultralytics-main/dataset/coco128/images/train2017/image_BS1_461_00_42_15.jpg
delete mode 100644 ultralytics-main/dataset/coco128/images/train2017/image_BS1_462_00_42_15.jpg
delete mode 100644 ultralytics-main/dataset/coco128/images/train2017/image_BS1_463_00_42_15.jpg
delete mode 100644 ultralytics-main/dataset/coco128/images/train2017/image_BS1_464_00_42_16.jpg
delete mode 100644 ultralytics-main/dataset/coco128/images/train2017/image_BS1_465_00_42_16.jpg
delete mode 100644 ultralytics-main/dataset/coco128/labels/train2017.cache
delete mode 100644 ultralytics-main/dataset/coco128/labels/train2017/image_BS1_456_00_42_15.txt
delete mode 100644 ultralytics-main/dataset/coco128/labels/train2017/image_BS1_457_00_42_15.txt
delete mode 100644 ultralytics-main/dataset/coco128/labels/train2017/image_BS1_458_00_42_15.txt
delete mode 100644 ultralytics-main/dataset/coco128/labels/train2017/image_BS1_459_00_42_15.txt
delete mode 100644 ultralytics-main/dataset/coco128/labels/train2017/image_BS1_460_00_42_15.txt
delete mode 100644 ultralytics-main/dataset/coco128/labels/train2017/image_BS1_461_00_42_15.txt
delete mode 100644 ultralytics-main/dataset/coco128/labels/train2017/image_BS1_462_00_42_15.txt
delete mode 100644 ultralytics-main/dataset/coco128/labels/train2017/image_BS1_463_00_42_15.txt
delete mode 100644 ultralytics-main/dataset/coco128/labels/train2017/image_BS1_464_00_42_16.txt
delete mode 100644 ultralytics-main/dataset/coco128/labels/train2017/image_BS1_465_00_42_16.txt
delete mode 100644 ultralytics-main/docker/Dockerfile
delete mode 100644 ultralytics-main/docker/Dockerfile-arm64
delete mode 100644 ultralytics-main/docker/Dockerfile-conda
delete mode 100644 ultralytics-main/docker/Dockerfile-cpu
delete mode 100644 ultralytics-main/docker/Dockerfile-jetson
delete mode 100644 ultralytics-main/docker/Dockerfile-python
delete mode 100644 ultralytics-main/docker/Dockerfile-runner
delete mode 100644 ultralytics-main/docs/README.md
delete mode 100644 ultralytics-main/docs/build_docs.py
delete mode 100644 ultralytics-main/docs/build_reference.py
delete mode 100644 ultralytics-main/docs/coming_soon_template.md
delete mode 100644 ultralytics-main/docs/en/CNAME
delete mode 100644 ultralytics-main/docs/en/guides/azureml-quickstart.md
delete mode 100644 ultralytics-main/docs/en/guides/conda-quickstart.md
delete mode 100644 ultralytics-main/docs/en/guides/coral-edge-tpu-on-raspberry-pi.md
delete mode 100644 ultralytics-main/docs/en/guides/distance-calculation.md
delete mode 100644 ultralytics-main/docs/en/guides/docker-quickstart.md
delete mode 100644 ultralytics-main/docs/en/guides/heatmaps.md
delete mode 100644 ultralytics-main/docs/en/guides/hyperparameter-tuning.md
delete mode 100644 ultralytics-main/docs/en/guides/index.md
delete mode 100644 ultralytics-main/docs/en/guides/instance-segmentation-and-tracking.md
delete mode 100644 ultralytics-main/docs/en/guides/isolating-segmentation-objects.md
delete mode 100644 ultralytics-main/docs/en/guides/kfold-cross-validation.md
delete mode 100644 ultralytics-main/docs/en/guides/model-deployment-options.md
delete mode 100644 ultralytics-main/docs/en/guides/object-blurring.md
delete mode 100644 ultralytics-main/docs/en/guides/object-counting.md
delete mode 100644 ultralytics-main/docs/en/guides/object-cropping.md
delete mode 100644 ultralytics-main/docs/en/guides/optimizing-openvino-latency-vs-throughput-modes.md
delete mode 100644 ultralytics-main/docs/en/guides/raspberry-pi.md
delete mode 100644 ultralytics-main/docs/en/guides/region-counting.md
delete mode 100644 ultralytics-main/docs/en/guides/sahi-tiled-inference.md
delete mode 100644 ultralytics-main/docs/en/guides/security-alarm-system.md
delete mode 100644 ultralytics-main/docs/en/guides/speed-estimation.md
delete mode 100644 ultralytics-main/docs/en/guides/triton-inference-server.md
delete mode 100644 ultralytics-main/docs/en/guides/view-results-in-terminal.md
delete mode 100644 ultralytics-main/docs/en/guides/vision-eye.md
delete mode 100644 ultralytics-main/docs/en/guides/workouts-monitoring.md
delete mode 100644 ultralytics-main/docs/en/guides/yolo-common-issues.md
delete mode 100644 ultralytics-main/docs/en/guides/yolo-performance-metrics.md
delete mode 100644 ultralytics-main/docs/en/guides/yolo-thread-safe-inference.md
delete mode 100644 ultralytics-main/docs/en/help/CI.md
delete mode 100644 ultralytics-main/docs/en/help/CLA.md
delete mode 100644 ultralytics-main/docs/en/help/FAQ.md
delete mode 100644 ultralytics-main/docs/en/help/code_of_conduct.md
delete mode 100644 ultralytics-main/docs/en/help/contributing.md
delete mode 100644 ultralytics-main/docs/en/help/environmental-health-safety.md
delete mode 100644 ultralytics-main/docs/en/help/index.md
delete mode 100644 ultralytics-main/docs/en/help/minimum_reproducible_example.md
delete mode 100644 ultralytics-main/docs/en/help/privacy.md
delete mode 100644 ultralytics-main/docs/en/help/security.md
delete mode 100644 ultralytics-main/docs/en/hub/api/index.md
delete mode 100644 ultralytics-main/docs/en/hub/app/android.md
delete mode 100644 ultralytics-main/docs/en/hub/app/index.md
delete mode 100644 ultralytics-main/docs/en/hub/app/ios.md
delete mode 100644 ultralytics-main/docs/en/hub/cloud-training.md
delete mode 100644 ultralytics-main/docs/en/hub/datasets.md
delete mode 100644 ultralytics-main/docs/en/hub/index.md
delete mode 100644 ultralytics-main/docs/en/hub/inference-api.md
delete mode 100644 ultralytics-main/docs/en/hub/integrations.md
delete mode 100644 ultralytics-main/docs/en/hub/models.md
delete mode 100644 ultralytics-main/docs/en/hub/on-premise/index.md
delete mode 100644 ultralytics-main/docs/en/hub/projects.md
delete mode 100644 ultralytics-main/docs/en/hub/quickstart.md
delete mode 100644 ultralytics-main/docs/en/index.md
delete mode 100644 ultralytics-main/docs/en/integrations/amazon-sagemaker.md
delete mode 100644 ultralytics-main/docs/en/integrations/clearml.md
delete mode 100644 ultralytics-main/docs/en/integrations/comet.md
delete mode 100644 ultralytics-main/docs/en/integrations/coreml.md
delete mode 100644 ultralytics-main/docs/en/integrations/dvc.md
delete mode 100644 ultralytics-main/docs/en/integrations/edge-tpu.md
delete mode 100644 ultralytics-main/docs/en/integrations/gradio.md
delete mode 100644 ultralytics-main/docs/en/integrations/index.md
delete mode 100644 ultralytics-main/docs/en/integrations/mlflow.md
delete mode 100644 ultralytics-main/docs/en/integrations/ncnn.md
delete mode 100644 ultralytics-main/docs/en/integrations/neural-magic.md
delete mode 100644 ultralytics-main/docs/en/integrations/onnx.md
delete mode 100644 ultralytics-main/docs/en/integrations/openvino.md
delete mode 100644 ultralytics-main/docs/en/integrations/paddlepaddle.md
delete mode 100644 ultralytics-main/docs/en/integrations/ray-tune.md
delete mode 100644 ultralytics-main/docs/en/integrations/roboflow.md
delete mode 100644 ultralytics-main/docs/en/integrations/tensorboard.md
delete mode 100644 ultralytics-main/docs/en/integrations/tensorrt.md
delete mode 100644 ultralytics-main/docs/en/integrations/tflite.md
delete mode 100644 ultralytics-main/docs/en/integrations/torchscript.md
delete mode 100644 ultralytics-main/docs/en/integrations/weights-biases.md
delete mode 100644 ultralytics-main/docs/en/models/fast-sam.md
delete mode 100644 ultralytics-main/docs/en/models/index.md
delete mode 100644 ultralytics-main/docs/en/models/mobile-sam.md
delete mode 100644 ultralytics-main/docs/en/models/rtdetr.md
delete mode 100644 ultralytics-main/docs/en/models/sam.md
delete mode 100644 ultralytics-main/docs/en/models/yolo-nas.md
delete mode 100644 ultralytics-main/docs/en/models/yolo-world.md
delete mode 100644 ultralytics-main/docs/en/models/yolov3.md
delete mode 100644 ultralytics-main/docs/en/models/yolov4.md
delete mode 100644 ultralytics-main/docs/en/models/yolov5.md
delete mode 100644 ultralytics-main/docs/en/models/yolov6.md
delete mode 100644 ultralytics-main/docs/en/models/yolov7.md
delete mode 100644 ultralytics-main/docs/en/models/yolov8.md
delete mode 100644 ultralytics-main/docs/en/models/yolov9.md
delete mode 100644 ultralytics-main/docs/en/modes/benchmark.md
delete mode 100644 ultralytics-main/docs/en/modes/export.md
delete mode 100644 ultralytics-main/docs/en/modes/index.md
delete mode 100644 ultralytics-main/docs/en/modes/predict.md
delete mode 100644 ultralytics-main/docs/en/modes/track.md
delete mode 100644 ultralytics-main/docs/en/modes/train.md
delete mode 100644 ultralytics-main/docs/en/modes/val.md
delete mode 100644 ultralytics-main/docs/en/quickstart.md
delete mode 100644 ultralytics-main/docs/en/reference/cfg/__init__.md
delete mode 100644 ultralytics-main/docs/en/reference/data/annotator.md
delete mode 100644 ultralytics-main/docs/en/reference/data/augment.md
delete mode 100644 ultralytics-main/docs/en/reference/data/base.md
delete mode 100644 ultralytics-main/docs/en/reference/data/build.md
delete mode 100644 ultralytics-main/docs/en/reference/data/converter.md
delete mode 100644 ultralytics-main/docs/en/reference/data/dataset.md
delete mode 100644 ultralytics-main/docs/en/reference/data/explorer/explorer.md
delete mode 100644 ultralytics-main/docs/en/reference/data/explorer/gui/dash.md
delete mode 100644 ultralytics-main/docs/en/reference/data/explorer/utils.md
delete mode 100644 ultralytics-main/docs/en/reference/data/loaders.md
delete mode 100644 ultralytics-main/docs/en/reference/data/split_dota.md
delete mode 100644 ultralytics-main/docs/en/reference/data/utils.md
delete mode 100644 ultralytics-main/docs/en/reference/engine/exporter.md
delete mode 100644 ultralytics-main/docs/en/reference/engine/model.md
delete mode 100644 ultralytics-main/docs/en/reference/engine/predictor.md
delete mode 100644 ultralytics-main/docs/en/reference/engine/results.md
delete mode 100644 ultralytics-main/docs/en/reference/engine/trainer.md
delete mode 100644 ultralytics-main/docs/en/reference/engine/tuner.md
delete mode 100644 ultralytics-main/docs/en/reference/engine/validator.md
delete mode 100644 ultralytics-main/docs/en/reference/hub/__init__.md
delete mode 100644 ultralytics-main/docs/en/reference/hub/auth.md
delete mode 100644 ultralytics-main/docs/en/reference/hub/session.md
delete mode 100644 ultralytics-main/docs/en/reference/hub/utils.md
delete mode 100644 ultralytics-main/docs/en/reference/models/fastsam/model.md
delete mode 100644 ultralytics-main/docs/en/reference/models/fastsam/predict.md
delete mode 100644 ultralytics-main/docs/en/reference/models/fastsam/prompt.md
delete mode 100644 ultralytics-main/docs/en/reference/models/fastsam/utils.md
delete mode 100644 ultralytics-main/docs/en/reference/models/fastsam/val.md
delete mode 100644 ultralytics-main/docs/en/reference/models/nas/model.md
delete mode 100644 ultralytics-main/docs/en/reference/models/nas/predict.md
delete mode 100644 ultralytics-main/docs/en/reference/models/nas/val.md
delete mode 100644 ultralytics-main/docs/en/reference/models/rtdetr/model.md
delete mode 100644 ultralytics-main/docs/en/reference/models/rtdetr/predict.md
delete mode 100644 ultralytics-main/docs/en/reference/models/rtdetr/train.md
delete mode 100644 ultralytics-main/docs/en/reference/models/rtdetr/val.md
delete mode 100644 ultralytics-main/docs/en/reference/models/sam/amg.md
delete mode 100644 ultralytics-main/docs/en/reference/models/sam/build.md
delete mode 100644 ultralytics-main/docs/en/reference/models/sam/model.md
delete mode 100644 ultralytics-main/docs/en/reference/models/sam/modules/decoders.md
delete mode 100644 ultralytics-main/docs/en/reference/models/sam/modules/encoders.md
delete mode 100644 ultralytics-main/docs/en/reference/models/sam/modules/sam.md
delete mode 100644 ultralytics-main/docs/en/reference/models/sam/modules/tiny_encoder.md
delete mode 100644 ultralytics-main/docs/en/reference/models/sam/modules/transformer.md
delete mode 100644 ultralytics-main/docs/en/reference/models/sam/predict.md
delete mode 100644 ultralytics-main/docs/en/reference/models/utils/loss.md
delete mode 100644 ultralytics-main/docs/en/reference/models/utils/ops.md
delete mode 100644 ultralytics-main/docs/en/reference/models/yolo/classify/predict.md
delete mode 100644 ultralytics-main/docs/en/reference/models/yolo/classify/train.md
delete mode 100644 ultralytics-main/docs/en/reference/models/yolo/classify/val.md
delete mode 100644 ultralytics-main/docs/en/reference/models/yolo/detect/predict.md
delete mode 100644 ultralytics-main/docs/en/reference/models/yolo/detect/train.md
delete mode 100644 ultralytics-main/docs/en/reference/models/yolo/detect/val.md
delete mode 100644 ultralytics-main/docs/en/reference/models/yolo/model.md
delete mode 100644 ultralytics-main/docs/en/reference/models/yolo/obb/predict.md
delete mode 100644 ultralytics-main/docs/en/reference/models/yolo/obb/train.md
delete mode 100644 ultralytics-main/docs/en/reference/models/yolo/obb/val.md
delete mode 100644 ultralytics-main/docs/en/reference/models/yolo/pose/predict.md
delete mode 100644 ultralytics-main/docs/en/reference/models/yolo/pose/train.md
delete mode 100644 ultralytics-main/docs/en/reference/models/yolo/pose/val.md
delete mode 100644 ultralytics-main/docs/en/reference/models/yolo/segment/predict.md
delete mode 100644 ultralytics-main/docs/en/reference/models/yolo/segment/train.md
delete mode 100644 ultralytics-main/docs/en/reference/models/yolo/segment/val.md
delete mode 100644 ultralytics-main/docs/en/reference/nn/autobackend.md
delete mode 100644 ultralytics-main/docs/en/reference/nn/modules/block.md
delete mode 100644 ultralytics-main/docs/en/reference/nn/modules/conv.md
delete mode 100644 ultralytics-main/docs/en/reference/nn/modules/head.md
delete mode 100644 ultralytics-main/docs/en/reference/nn/modules/transformer.md
delete mode 100644 ultralytics-main/docs/en/reference/nn/modules/utils.md
delete mode 100644 ultralytics-main/docs/en/reference/nn/tasks.md
delete mode 100644 ultralytics-main/docs/en/reference/solutions/ai_gym.md
delete mode 100644 ultralytics-main/docs/en/reference/solutions/distance_calculation.md
delete mode 100644 ultralytics-main/docs/en/reference/solutions/heatmap.md
delete mode 100644 ultralytics-main/docs/en/reference/solutions/object_counter.md
delete mode 100644 ultralytics-main/docs/en/reference/solutions/speed_estimation.md
delete mode 100644 ultralytics-main/docs/en/reference/trackers/basetrack.md
delete mode 100644 ultralytics-main/docs/en/reference/trackers/bot_sort.md
delete mode 100644 ultralytics-main/docs/en/reference/trackers/byte_tracker.md
delete mode 100644 ultralytics-main/docs/en/reference/trackers/track.md
delete mode 100644 ultralytics-main/docs/en/reference/trackers/utils/gmc.md
delete mode 100644 ultralytics-main/docs/en/reference/trackers/utils/kalman_filter.md
delete mode 100644 ultralytics-main/docs/en/reference/trackers/utils/matching.md
delete mode 100644 ultralytics-main/docs/en/reference/utils/__init__.md
delete mode 100644 ultralytics-main/docs/en/reference/utils/autobatch.md
delete mode 100644 ultralytics-main/docs/en/reference/utils/benchmarks.md
delete mode 100644 ultralytics-main/docs/en/reference/utils/callbacks/base.md
delete mode 100644 ultralytics-main/docs/en/reference/utils/callbacks/clearml.md
delete mode 100644 ultralytics-main/docs/en/reference/utils/callbacks/comet.md
delete mode 100644 ultralytics-main/docs/en/reference/utils/callbacks/dvc.md
delete mode 100644 ultralytics-main/docs/en/reference/utils/callbacks/hub.md
delete mode 100644 ultralytics-main/docs/en/reference/utils/callbacks/mlflow.md
delete mode 100644 ultralytics-main/docs/en/reference/utils/callbacks/neptune.md
delete mode 100644 ultralytics-main/docs/en/reference/utils/callbacks/raytune.md
delete mode 100644 ultralytics-main/docs/en/reference/utils/callbacks/tensorboard.md
delete mode 100644 ultralytics-main/docs/en/reference/utils/callbacks/wb.md
delete mode 100644 ultralytics-main/docs/en/reference/utils/checks.md
delete mode 100644 ultralytics-main/docs/en/reference/utils/dist.md
delete mode 100644 ultralytics-main/docs/en/reference/utils/downloads.md
delete mode 100644 ultralytics-main/docs/en/reference/utils/errors.md
delete mode 100644 ultralytics-main/docs/en/reference/utils/files.md
delete mode 100644 ultralytics-main/docs/en/reference/utils/instance.md
delete mode 100644 ultralytics-main/docs/en/reference/utils/loss.md
delete mode 100644 ultralytics-main/docs/en/reference/utils/metrics.md
delete mode 100644 ultralytics-main/docs/en/reference/utils/ops.md
delete mode 100644 ultralytics-main/docs/en/reference/utils/patches.md
delete mode 100644 ultralytics-main/docs/en/reference/utils/plotting.md
delete mode 100644 ultralytics-main/docs/en/reference/utils/tal.md
delete mode 100644 ultralytics-main/docs/en/reference/utils/torch_utils.md
delete mode 100644 ultralytics-main/docs/en/reference/utils/triton.md
delete mode 100644 ultralytics-main/docs/en/reference/utils/tuner.md
delete mode 100644 ultralytics-main/docs/en/robots.txt
delete mode 100644 ultralytics-main/docs/en/tasks/classify.md
delete mode 100644 ultralytics-main/docs/en/tasks/detect.md
delete mode 100644 ultralytics-main/docs/en/tasks/index.md
delete mode 100644 ultralytics-main/docs/en/tasks/obb.md
delete mode 100644 ultralytics-main/docs/en/tasks/pose.md
delete mode 100644 ultralytics-main/docs/en/tasks/segment.md
delete mode 100644 ultralytics-main/docs/en/usage/callbacks.md
delete mode 100644 ultralytics-main/docs/en/usage/cfg.md
delete mode 100644 ultralytics-main/docs/en/usage/cli.md
delete mode 100644 ultralytics-main/docs/en/usage/engine.md
delete mode 100644 ultralytics-main/docs/en/usage/python.md
delete mode 100644 ultralytics-main/docs/en/usage/simple-utilities.md
delete mode 100644 ultralytics-main/docs/en/yolov5/environments/aws_quickstart_tutorial.md
delete mode 100644 ultralytics-main/docs/en/yolov5/environments/azureml_quickstart_tutorial.md
delete mode 100644 ultralytics-main/docs/en/yolov5/environments/docker_image_quickstart_tutorial.md
delete mode 100644 ultralytics-main/docs/en/yolov5/environments/google_cloud_quickstart_tutorial.md
delete mode 100644 ultralytics-main/docs/en/yolov5/index.md
delete mode 100644 ultralytics-main/docs/en/yolov5/quickstart_tutorial.md
delete mode 100644 ultralytics-main/docs/en/yolov5/tutorials/architecture_description.md
delete mode 100644 ultralytics-main/docs/en/yolov5/tutorials/clearml_logging_integration.md
delete mode 100644 ultralytics-main/docs/en/yolov5/tutorials/comet_logging_integration.md
delete mode 100644 ultralytics-main/docs/en/yolov5/tutorials/hyperparameter_evolution.md
delete mode 100644 ultralytics-main/docs/en/yolov5/tutorials/model_ensembling.md
delete mode 100644 ultralytics-main/docs/en/yolov5/tutorials/model_export.md
delete mode 100644 ultralytics-main/docs/en/yolov5/tutorials/model_pruning_and_sparsity.md
delete mode 100644 ultralytics-main/docs/en/yolov5/tutorials/multi_gpu_training.md
delete mode 100644 ultralytics-main/docs/en/yolov5/tutorials/neural_magic_pruning_quantization.md
delete mode 100644 ultralytics-main/docs/en/yolov5/tutorials/pytorch_hub_model_loading.md
delete mode 100644 ultralytics-main/docs/en/yolov5/tutorials/roboflow_datasets_integration.md
delete mode 100644 ultralytics-main/docs/en/yolov5/tutorials/running_on_jetson_nano.md
delete mode 100644 ultralytics-main/docs/en/yolov5/tutorials/test_time_augmentation.md
delete mode 100644 ultralytics-main/docs/en/yolov5/tutorials/tips_for_best_training_results.md
delete mode 100644 ultralytics-main/docs/en/yolov5/tutorials/train_custom_data.md
delete mode 100644 ultralytics-main/docs/en/yolov5/tutorials/transfer_learning_with_frozen_layers.md
delete mode 100644 ultralytics-main/docs/overrides/assets/favicon.ico
delete mode 100644 ultralytics-main/docs/overrides/javascript/extra.js
delete mode 100644 ultralytics-main/docs/overrides/main.html
delete mode 100644 ultralytics-main/docs/overrides/partials/comments.html
delete mode 100644 ultralytics-main/docs/overrides/partials/source-file.html
delete mode 100644 ultralytics-main/docs/overrides/stylesheets/style.css
delete mode 100644 ultralytics-main/examples/README.md
delete mode 100644 ultralytics-main/examples/YOLOv8-CPP-Inference/CMakeLists.txt
delete mode 100644 ultralytics-main/examples/YOLOv8-CPP-Inference/README.md
delete mode 100644 ultralytics-main/examples/YOLOv8-CPP-Inference/inference.cpp
delete mode 100644 ultralytics-main/examples/YOLOv8-CPP-Inference/inference.h
delete mode 100644 ultralytics-main/examples/YOLOv8-CPP-Inference/main.cpp
delete mode 100644 ultralytics-main/examples/YOLOv8-LibTorch-CPP-Inference/CMakeLists.txt
delete mode 100644 ultralytics-main/examples/YOLOv8-LibTorch-CPP-Inference/README.md
delete mode 100644 ultralytics-main/examples/YOLOv8-LibTorch-CPP-Inference/main.cc
delete mode 100644 ultralytics-main/examples/YOLOv8-ONNXRuntime-CPP/CMakeLists.txt
delete mode 100644 ultralytics-main/examples/YOLOv8-ONNXRuntime-CPP/README.md
delete mode 100644 ultralytics-main/examples/YOLOv8-ONNXRuntime-CPP/inference.cpp
delete mode 100644 ultralytics-main/examples/YOLOv8-ONNXRuntime-CPP/inference.h
delete mode 100644 ultralytics-main/examples/YOLOv8-ONNXRuntime-CPP/main.cpp
delete mode 100644 ultralytics-main/examples/YOLOv8-ONNXRuntime-Rust/Cargo.toml
delete mode 100644 ultralytics-main/examples/YOLOv8-ONNXRuntime-Rust/README.md
delete mode 100644 ultralytics-main/examples/YOLOv8-ONNXRuntime-Rust/src/cli.rs
delete mode 100644 ultralytics-main/examples/YOLOv8-ONNXRuntime-Rust/src/lib.rs
delete mode 100644 ultralytics-main/examples/YOLOv8-ONNXRuntime-Rust/src/main.rs
delete mode 100644 ultralytics-main/examples/YOLOv8-ONNXRuntime-Rust/src/model.rs
delete mode 100644 ultralytics-main/examples/YOLOv8-ONNXRuntime-Rust/src/ort_backend.rs
delete mode 100644 ultralytics-main/examples/YOLOv8-ONNXRuntime-Rust/src/yolo_result.rs
delete mode 100644 ultralytics-main/examples/YOLOv8-ONNXRuntime/README.md
delete mode 100644 ultralytics-main/examples/YOLOv8-ONNXRuntime/main.py
delete mode 100644 ultralytics-main/examples/YOLOv8-OpenCV-ONNX-Python/README.md
delete mode 100644 ultralytics-main/examples/YOLOv8-OpenCV-ONNX-Python/main.py
delete mode 100644 ultralytics-main/examples/YOLOv8-OpenCV-int8-tflite-Python/README.md
delete mode 100644 ultralytics-main/examples/YOLOv8-OpenCV-int8-tflite-Python/main.py
delete mode 100644 ultralytics-main/examples/YOLOv8-Region-Counter/readme.md
delete mode 100644 ultralytics-main/examples/YOLOv8-Region-Counter/yolov8_region_counter.py
delete mode 100644 ultralytics-main/examples/YOLOv8-SAHI-Inference-Video/readme.md
delete mode 100644 ultralytics-main/examples/YOLOv8-SAHI-Inference-Video/yolov8_sahi.py
delete mode 100644 ultralytics-main/examples/YOLOv8-Segmentation-ONNXRuntime-Python/README.md
delete mode 100644 ultralytics-main/examples/YOLOv8-Segmentation-ONNXRuntime-Python/main.py
delete mode 100644 ultralytics-main/examples/heatmaps.ipynb
delete mode 100644 ultralytics-main/examples/hub.ipynb
delete mode 100644 ultralytics-main/examples/object_counting.ipynb
delete mode 100644 ultralytics-main/examples/object_tracking.ipynb
delete mode 100644 ultralytics-main/examples/tutorial.ipynb
delete mode 100644 ultralytics-main/main.py
delete mode 100644 ultralytics-main/mkdocs.yml
delete mode 100644 ultralytics-main/pyproject.toml
delete mode 100644 ultralytics-main/requirements.txt
delete mode 100644 ultralytics-main/setup.py
delete mode 100644 ultralytics-main/stereo-speed.py
delete mode 100644 ultralytics-main/stereo/dianyuntu_yolo.py
delete mode 100644 ultralytics-main/stereo/stereo.py
delete mode 100644 ultralytics-main/stereo/stereoconfig_040_2.py
delete mode 100644 ultralytics-main/ultralytics/__init__.py
delete mode 100644 ultralytics-main/ultralytics/bus.jpg
delete mode 100644 ultralytics-main/ultralytics/cfg/__init__.py
delete mode 100644 ultralytics-main/ultralytics/cfg/default.yaml
delete mode 100644 ultralytics-main/ultralytics/cfg/models/README.md
delete mode 100644 ultralytics-main/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml
delete mode 100644 ultralytics-main/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml
delete mode 100644 ultralytics-main/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml
delete mode 100644 ultralytics-main/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml
delete mode 100644 ultralytics-main/ultralytics/cfg/models/v3/yolov3-spp.yaml
delete mode 100644 ultralytics-main/ultralytics/cfg/models/v3/yolov3-tiny.yaml
delete mode 100644 ultralytics-main/ultralytics/cfg/models/v3/yolov3.yaml
delete mode 100644 ultralytics-main/ultralytics/cfg/models/v5/yolov5-p6.yaml
delete mode 100644 ultralytics-main/ultralytics/cfg/models/v5/yolov5.yaml
delete mode 100644 ultralytics-main/ultralytics/cfg/models/v6/yolov6.yaml
delete mode 100644 ultralytics-main/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml
delete mode 100644 ultralytics-main/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml
delete mode 100644 ultralytics-main/ultralytics/cfg/models/v8/yolov8-cls.yaml
delete mode 100644 ultralytics-main/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml
delete mode 100644 ultralytics-main/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml
delete mode 100644 ultralytics-main/ultralytics/cfg/models/v8/yolov8-ghost.yaml
delete mode 100644 ultralytics-main/ultralytics/cfg/models/v8/yolov8-obb.yaml
delete mode 100644 ultralytics-main/ultralytics/cfg/models/v8/yolov8-p2.yaml
delete mode 100644 ultralytics-main/ultralytics/cfg/models/v8/yolov8-p6.yaml
delete mode 100644 ultralytics-main/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml
delete mode 100644 ultralytics-main/ultralytics/cfg/models/v8/yolov8-pose.yaml
delete mode 100644 ultralytics-main/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml
delete mode 100644 ultralytics-main/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml
delete mode 100644 ultralytics-main/ultralytics/cfg/models/v8/yolov8-seg.yaml
delete mode 100644 ultralytics-main/ultralytics/cfg/models/v8/yolov8-world.yaml
delete mode 100644 ultralytics-main/ultralytics/cfg/models/v8/yolov8-worldv2.yaml
delete mode 100644 ultralytics-main/ultralytics/cfg/models/v8/yolov8.yaml
delete mode 100644 ultralytics-main/ultralytics/cfg/models/v9/yolov9c.yaml
delete mode 100644 ultralytics-main/ultralytics/cfg/models/v9/yolov9e.yaml
delete mode 100644 ultralytics-main/ultralytics/cfg/trackers/botsort.yaml
delete mode 100644 ultralytics-main/ultralytics/cfg/trackers/bytetrack.yaml
delete mode 100644 ultralytics-main/ultralytics/data/__init__.py
delete mode 100644 ultralytics-main/ultralytics/data/annotator.py
delete mode 100644 ultralytics-main/ultralytics/data/augment.py
delete mode 100644 ultralytics-main/ultralytics/data/base.py
delete mode 100644 ultralytics-main/ultralytics/data/build.py
delete mode 100644 ultralytics-main/ultralytics/data/converter.py
delete mode 100644 ultralytics-main/ultralytics/data/dataset.py
delete mode 100644 ultralytics-main/ultralytics/data/explorer/__init__.py
delete mode 100644 ultralytics-main/ultralytics/data/explorer/explorer.py
delete mode 100644 ultralytics-main/ultralytics/data/explorer/gui/__init__.py
delete mode 100644 ultralytics-main/ultralytics/data/explorer/gui/dash.py
delete mode 100644 ultralytics-main/ultralytics/data/explorer/utils.py
delete mode 100644 ultralytics-main/ultralytics/data/loaders.py
delete mode 100644 ultralytics-main/ultralytics/data/scripts/download_weights.sh
delete mode 100644 ultralytics-main/ultralytics/data/scripts/get_coco.sh
delete mode 100644 ultralytics-main/ultralytics/data/scripts/get_imagenet.sh
delete mode 100644 ultralytics-main/ultralytics/data/split_dota.py
delete mode 100644 ultralytics-main/ultralytics/data/utils.py
delete mode 100644 ultralytics-main/ultralytics/engine/__init__.py
delete mode 100644 ultralytics-main/ultralytics/engine/exporter.py
delete mode 100644 ultralytics-main/ultralytics/engine/model.py
delete mode 100644 ultralytics-main/ultralytics/engine/predictor.py
delete mode 100644 ultralytics-main/ultralytics/engine/results.py
delete mode 100644 ultralytics-main/ultralytics/engine/trainer.py
delete mode 100644 ultralytics-main/ultralytics/engine/tuner.py
delete mode 100644 ultralytics-main/ultralytics/engine/validator.py
delete mode 100644 ultralytics-main/ultralytics/hub/__init__.py
delete mode 100644 ultralytics-main/ultralytics/hub/auth.py
delete mode 100644 ultralytics-main/ultralytics/hub/session.py
delete mode 100644 ultralytics-main/ultralytics/hub/utils.py
delete mode 100644 ultralytics-main/ultralytics/models/__init__.py
delete mode 100644 ultralytics-main/ultralytics/models/fastsam/__init__.py
delete mode 100644 ultralytics-main/ultralytics/models/fastsam/model.py
delete mode 100644 ultralytics-main/ultralytics/models/fastsam/predict.py
delete mode 100644 ultralytics-main/ultralytics/models/fastsam/prompt.py
delete mode 100644 ultralytics-main/ultralytics/models/fastsam/utils.py
delete mode 100644 ultralytics-main/ultralytics/models/fastsam/val.py
delete mode 100644 ultralytics-main/ultralytics/models/nas/__init__.py
delete mode 100644 ultralytics-main/ultralytics/models/nas/model.py
delete mode 100644 ultralytics-main/ultralytics/models/nas/predict.py
delete mode 100644 ultralytics-main/ultralytics/models/nas/val.py
delete mode 100644 ultralytics-main/ultralytics/models/rtdetr/__init__.py
delete mode 100644 ultralytics-main/ultralytics/models/rtdetr/model.py
delete mode 100644 ultralytics-main/ultralytics/models/rtdetr/predict.py
delete mode 100644 ultralytics-main/ultralytics/models/rtdetr/train.py
delete mode 100644 ultralytics-main/ultralytics/models/rtdetr/val.py
delete mode 100644 ultralytics-main/ultralytics/models/sam/__init__.py
delete mode 100644 ultralytics-main/ultralytics/models/sam/amg.py
delete mode 100644 ultralytics-main/ultralytics/models/sam/build.py
delete mode 100644 ultralytics-main/ultralytics/models/sam/model.py
delete mode 100644 ultralytics-main/ultralytics/models/sam/modules/__init__.py
delete mode 100644 ultralytics-main/ultralytics/models/sam/modules/decoders.py
delete mode 100644 ultralytics-main/ultralytics/models/sam/modules/encoders.py
delete mode 100644 ultralytics-main/ultralytics/models/sam/modules/sam.py
delete mode 100644 ultralytics-main/ultralytics/models/sam/modules/tiny_encoder.py
delete mode 100644 ultralytics-main/ultralytics/models/sam/modules/transformer.py
delete mode 100644 ultralytics-main/ultralytics/models/sam/predict.py
delete mode 100644 ultralytics-main/ultralytics/models/utils/__init__.py
delete mode 100644 ultralytics-main/ultralytics/models/utils/loss.py
delete mode 100644 ultralytics-main/ultralytics/models/utils/ops.py
delete mode 100644 ultralytics-main/ultralytics/models/yolo/__init__.py
delete mode 100644 ultralytics-main/ultralytics/models/yolo/classify/__init__.py
delete mode 100644 ultralytics-main/ultralytics/models/yolo/classify/predict.py
delete mode 100644 ultralytics-main/ultralytics/models/yolo/classify/train.py
delete mode 100644 ultralytics-main/ultralytics/models/yolo/classify/val.py
delete mode 100644 ultralytics-main/ultralytics/models/yolo/detect/__init__.py
delete mode 100644 ultralytics-main/ultralytics/models/yolo/detect/predict.py
delete mode 100644 ultralytics-main/ultralytics/models/yolo/detect/train.py
delete mode 100644 ultralytics-main/ultralytics/models/yolo/detect/val.py
delete mode 100644 ultralytics-main/ultralytics/models/yolo/model.py
delete mode 100644 ultralytics-main/ultralytics/models/yolo/obb/__init__.py
delete mode 100644 ultralytics-main/ultralytics/models/yolo/obb/predict.py
delete mode 100644 ultralytics-main/ultralytics/models/yolo/obb/train.py
delete mode 100644 ultralytics-main/ultralytics/models/yolo/obb/val.py
delete mode 100644 ultralytics-main/ultralytics/models/yolo/pose/__init__.py
delete mode 100644 ultralytics-main/ultralytics/models/yolo/pose/predict.py
delete mode 100644 ultralytics-main/ultralytics/models/yolo/pose/train.py
delete mode 100644 ultralytics-main/ultralytics/models/yolo/pose/val.py
delete mode 100644 ultralytics-main/ultralytics/models/yolo/segment/__init__.py
delete mode 100644 ultralytics-main/ultralytics/models/yolo/segment/predict.py
delete mode 100644 ultralytics-main/ultralytics/models/yolo/segment/train.py
delete mode 100644 ultralytics-main/ultralytics/models/yolo/segment/val.py
delete mode 100644 ultralytics-main/ultralytics/nn/__init__.py
delete mode 100644 ultralytics-main/ultralytics/nn/autobackend.py
delete mode 100644 ultralytics-main/ultralytics/nn/modules/__init__.py
delete mode 100644 ultralytics-main/ultralytics/nn/modules/block.py
delete mode 100644 ultralytics-main/ultralytics/nn/modules/conv.py
delete mode 100644 ultralytics-main/ultralytics/nn/modules/head.py
delete mode 100644 ultralytics-main/ultralytics/nn/modules/transformer.py
delete mode 100644 ultralytics-main/ultralytics/nn/modules/utils.py
delete mode 100644 ultralytics-main/ultralytics/nn/tasks.py
delete mode 100644 ultralytics-main/ultralytics/solutions/__init__.py
delete mode 100644 ultralytics-main/ultralytics/solutions/ai_gym.py
delete mode 100644 ultralytics-main/ultralytics/solutions/distance_calculation.py
delete mode 100644 ultralytics-main/ultralytics/solutions/heatmap.py
delete mode 100644 ultralytics-main/ultralytics/solutions/object_counter.py
delete mode 100644 ultralytics-main/ultralytics/solutions/speed.py
delete mode 100644 ultralytics-main/ultralytics/solutions/speed_estimation.py
delete mode 100644 ultralytics-main/ultralytics/trackers/README.md
delete mode 100644 ultralytics-main/ultralytics/trackers/__init__.py
delete mode 100644 ultralytics-main/ultralytics/trackers/basetrack.py
delete mode 100644 ultralytics-main/ultralytics/trackers/bot_sort.py
delete mode 100644 ultralytics-main/ultralytics/trackers/byte_tracker.py
delete mode 100644 ultralytics-main/ultralytics/trackers/track.py
delete mode 100644 ultralytics-main/ultralytics/trackers/utils/__init__.py
delete mode 100644 ultralytics-main/ultralytics/trackers/utils/gmc.py
delete mode 100644 ultralytics-main/ultralytics/trackers/utils/kalman_filter.py
delete mode 100644 ultralytics-main/ultralytics/trackers/utils/matching.py
delete mode 100644 ultralytics-main/ultralytics/utils/__init__.py
delete mode 100644 ultralytics-main/ultralytics/utils/autobatch.py
delete mode 100644 ultralytics-main/ultralytics/utils/benchmarks.py
delete mode 100644 ultralytics-main/ultralytics/utils/callbacks/__init__.py
delete mode 100644 ultralytics-main/ultralytics/utils/callbacks/base.py
delete mode 100644 ultralytics-main/ultralytics/utils/callbacks/clearml.py
delete mode 100644 ultralytics-main/ultralytics/utils/callbacks/comet.py
delete mode 100644 ultralytics-main/ultralytics/utils/callbacks/dvc.py
delete mode 100644 ultralytics-main/ultralytics/utils/callbacks/hub.py
delete mode 100644 ultralytics-main/ultralytics/utils/callbacks/mlflow.py
delete mode 100644 ultralytics-main/ultralytics/utils/callbacks/neptune.py
delete mode 100644 ultralytics-main/ultralytics/utils/callbacks/raytune.py
delete mode 100644 ultralytics-main/ultralytics/utils/callbacks/tensorboard.py
delete mode 100644 ultralytics-main/ultralytics/utils/callbacks/wb.py
delete mode 100644 ultralytics-main/ultralytics/utils/checks.py
delete mode 100644 ultralytics-main/ultralytics/utils/dist.py
delete mode 100644 ultralytics-main/ultralytics/utils/downloads.py
delete mode 100644 ultralytics-main/ultralytics/utils/errors.py
delete mode 100644 ultralytics-main/ultralytics/utils/files.py
delete mode 100644 ultralytics-main/ultralytics/utils/instance.py
delete mode 100644 ultralytics-main/ultralytics/utils/loss.py
delete mode 100644 ultralytics-main/ultralytics/utils/metrics.py
delete mode 100644 ultralytics-main/ultralytics/utils/ops.py
delete mode 100644 ultralytics-main/ultralytics/utils/patches.py
delete mode 100644 ultralytics-main/ultralytics/utils/plotting.py
delete mode 100644 ultralytics-main/ultralytics/utils/tal.py
delete mode 100644 ultralytics-main/ultralytics/utils/torch_utils.py
delete mode 100644 ultralytics-main/ultralytics/utils/triton.py
delete mode 100644 ultralytics-main/ultralytics/utils/tuner.py
delete mode 100644 ultralytics-main/ultralytics/zidane.jpg
delete mode 100644 ultralytics-main/yolov8-stereo.py
create mode 100644 yolov5_Monocular_social_ranging/.dockerignore
create mode 100644 yolov5_Monocular_social_ranging/.gitattributes
create mode 100644 yolov5_Monocular_social_ranging/.github/FUNDING.yml
rename {ultralytics-main => yolov5_Monocular_social_ranging}/.github/ISSUE_TEMPLATE/bug-report.yml (54%)
create mode 100644 yolov5_Monocular_social_ranging/.github/ISSUE_TEMPLATE/config.yml
rename {ultralytics-main => yolov5_Monocular_social_ranging}/.github/ISSUE_TEMPLATE/feature-request.yml (58%)
rename {ultralytics-main => yolov5_Monocular_social_ranging}/.github/ISSUE_TEMPLATE/question.yml (55%)
create mode 100644 yolov5_Monocular_social_ranging/.github/PULL_REQUEST_TEMPLATE.md
rename {ultralytics-main => yolov5_Monocular_social_ranging}/.github/dependabot.yml (65%)
create mode 100644 yolov5_Monocular_social_ranging/.github/workflows/ci-testing.yml
create mode 100644 yolov5_Monocular_social_ranging/.github/workflows/codeql-analysis.yml
create mode 100644 yolov5_Monocular_social_ranging/.github/workflows/greetings.yml
create mode 100644 yolov5_Monocular_social_ranging/.github/workflows/rebase.yml
create mode 100644 yolov5_Monocular_social_ranging/.github/workflows/stale.yml
create mode 100644 yolov5_Monocular_social_ranging/.gitignore
create mode 100644 yolov5_Monocular_social_ranging/.pre-commit-config.yaml
rename ultralytics-main/ultralytics/solutions/d_speed.py => yolov5_Monocular_social_ranging/0.8.1' (100%)
create mode 100644 yolov5_Monocular_social_ranging/CONTRIBUTING.md
create mode 100644 yolov5_Monocular_social_ranging/Dockerfile
rename {ultralytics-main => yolov5_Monocular_social_ranging}/LICENSE (86%)
create mode 100644 yolov5_Monocular_social_ranging/README.md
create mode 100644 yolov5_Monocular_social_ranging/data/Argoverse.yaml
create mode 100644 yolov5_Monocular_social_ranging/data/GlobalWheat2020.yaml
create mode 100644 yolov5_Monocular_social_ranging/data/Objects365.yaml
create mode 100644 yolov5_Monocular_social_ranging/data/SKU-110K.yaml
create mode 100644 yolov5_Monocular_social_ranging/data/VOC.yaml
create mode 100644 yolov5_Monocular_social_ranging/data/VisDrone.yaml
create mode 100644 yolov5_Monocular_social_ranging/data/coco.yaml
create mode 100644 yolov5_Monocular_social_ranging/data/coco128.yaml
create mode 100644 yolov5_Monocular_social_ranging/data/hyps/hyp.Objects365.yaml
create mode 100644 yolov5_Monocular_social_ranging/data/hyps/hyp.VOC.yaml
create mode 100644 yolov5_Monocular_social_ranging/data/hyps/hyp.scratch-high.yaml
create mode 100644 yolov5_Monocular_social_ranging/data/hyps/hyp.scratch-low.yaml
create mode 100644 yolov5_Monocular_social_ranging/data/hyps/hyp.scratch-med.yaml
create mode 100644 yolov5_Monocular_social_ranging/data/scripts/download_weights.sh
create mode 100644 yolov5_Monocular_social_ranging/data/scripts/get_coco.sh
rename {ultralytics-main/ultralytics => yolov5_Monocular_social_ranging}/data/scripts/get_coco128.sh (80%)
create mode 100644 yolov5_Monocular_social_ranging/data/xView.yaml
create mode 100644 yolov5_Monocular_social_ranging/detect.py
create mode 100644 yolov5_Monocular_social_ranging/distance.py
create mode 100644 yolov5_Monocular_social_ranging/export.py
create mode 100644 yolov5_Monocular_social_ranging/hubconf.py
create mode 100644 yolov5_Monocular_social_ranging/models/__init__.py
create mode 100644 yolov5_Monocular_social_ranging/models/common.py
create mode 100644 yolov5_Monocular_social_ranging/models/experimental.py
create mode 100644 yolov5_Monocular_social_ranging/models/hub/anchors.yaml
create mode 100644 yolov5_Monocular_social_ranging/models/hub/yolov3-spp.yaml
create mode 100644 yolov5_Monocular_social_ranging/models/hub/yolov3-tiny.yaml
create mode 100644 yolov5_Monocular_social_ranging/models/hub/yolov3.yaml
create mode 100644 yolov5_Monocular_social_ranging/models/hub/yolov5-bifpn.yaml
create mode 100644 yolov5_Monocular_social_ranging/models/hub/yolov5-fpn.yaml
create mode 100644 yolov5_Monocular_social_ranging/models/hub/yolov5-p2.yaml
create mode 100644 yolov5_Monocular_social_ranging/models/hub/yolov5-p34.yaml
create mode 100644 yolov5_Monocular_social_ranging/models/hub/yolov5-p6.yaml
create mode 100644 yolov5_Monocular_social_ranging/models/hub/yolov5-p7.yaml
create mode 100644 yolov5_Monocular_social_ranging/models/hub/yolov5-panet.yaml
create mode 100644 yolov5_Monocular_social_ranging/models/hub/yolov5l6.yaml
create mode 100644 yolov5_Monocular_social_ranging/models/hub/yolov5m6.yaml
create mode 100644 yolov5_Monocular_social_ranging/models/hub/yolov5n6.yaml
create mode 100644 yolov5_Monocular_social_ranging/models/hub/yolov5s-ghost.yaml
create mode 100644 yolov5_Monocular_social_ranging/models/hub/yolov5s-transformer.yaml
create mode 100644 yolov5_Monocular_social_ranging/models/hub/yolov5s6.yaml
create mode 100644 yolov5_Monocular_social_ranging/models/hub/yolov5x6.yaml
create mode 100644 yolov5_Monocular_social_ranging/models/tf.py
create mode 100644 yolov5_Monocular_social_ranging/models/yolo.py
create mode 100644 yolov5_Monocular_social_ranging/models/yolov5l.yaml
create mode 100644 yolov5_Monocular_social_ranging/models/yolov5m.yaml
create mode 100644 yolov5_Monocular_social_ranging/models/yolov5n.yaml
create mode 100644 yolov5_Monocular_social_ranging/models/yolov5s.yaml
create mode 100644 yolov5_Monocular_social_ranging/models/yolov5x.yaml
create mode 100644 yolov5_Monocular_social_ranging/requirements.txt
create mode 100644 yolov5_Monocular_social_ranging/setup.cfg
create mode 100644 yolov5_Monocular_social_ranging/train.py
create mode 100644 yolov5_Monocular_social_ranging/tutorial.ipynb
create mode 100644 yolov5_Monocular_social_ranging/utils/__init__.py
create mode 100644 yolov5_Monocular_social_ranging/utils/activations.py
create mode 100644 yolov5_Monocular_social_ranging/utils/augmentations.py
create mode 100644 yolov5_Monocular_social_ranging/utils/autoanchor.py
create mode 100644 yolov5_Monocular_social_ranging/utils/autobatch.py
create mode 100644 yolov5_Monocular_social_ranging/utils/aws/__init__.py
create mode 100644 yolov5_Monocular_social_ranging/utils/aws/mime.sh
create mode 100644 yolov5_Monocular_social_ranging/utils/aws/resume.py
create mode 100644 yolov5_Monocular_social_ranging/utils/aws/userdata.sh
create mode 100644 yolov5_Monocular_social_ranging/utils/benchmarks.py
create mode 100644 yolov5_Monocular_social_ranging/utils/callbacks.py
create mode 100644 yolov5_Monocular_social_ranging/utils/datasets.py
create mode 100644 yolov5_Monocular_social_ranging/utils/downloads.py
create mode 100644 yolov5_Monocular_social_ranging/utils/flask_rest_api/README.md
create mode 100644 yolov5_Monocular_social_ranging/utils/flask_rest_api/example_request.py
create mode 100644 yolov5_Monocular_social_ranging/utils/flask_rest_api/restapi.py
create mode 100644 yolov5_Monocular_social_ranging/utils/general.py
create mode 100644 yolov5_Monocular_social_ranging/utils/google_app_engine/Dockerfile
create mode 100644 yolov5_Monocular_social_ranging/utils/google_app_engine/additional_requirements.txt
create mode 100644 yolov5_Monocular_social_ranging/utils/google_app_engine/app.yaml
create mode 100644 yolov5_Monocular_social_ranging/utils/loggers/__init__.py
create mode 100644 yolov5_Monocular_social_ranging/utils/loggers/wandb/README.md
create mode 100644 yolov5_Monocular_social_ranging/utils/loggers/wandb/__init__.py
create mode 100644 yolov5_Monocular_social_ranging/utils/loggers/wandb/log_dataset.py
create mode 100644 yolov5_Monocular_social_ranging/utils/loggers/wandb/sweep.py
create mode 100644 yolov5_Monocular_social_ranging/utils/loggers/wandb/sweep.yaml
create mode 100644 yolov5_Monocular_social_ranging/utils/loggers/wandb/wandb_utils.py
create mode 100644 yolov5_Monocular_social_ranging/utils/loss.py
create mode 100644 yolov5_Monocular_social_ranging/utils/metrics.py
create mode 100644 yolov5_Monocular_social_ranging/utils/plots.py
create mode 100644 yolov5_Monocular_social_ranging/utils/torch_utils.py
create mode 100644 yolov5_Monocular_social_ranging/val.py
diff --git a/ultralytics-main/.github/ISSUE_TEMPLATE/config.yml b/ultralytics-main/.github/ISSUE_TEMPLATE/config.yml
deleted file mode 100644
index 9018a62..0000000
--- a/ultralytics-main/.github/ISSUE_TEMPLATE/config.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-blank_issues_enabled: true
-contact_links:
- - name: 📄 Docs
- url: https://docs.ultralytics.com/
- about: Full Ultralytics YOLOv8 Documentation
- - name: 💬 Forum
- url: https://community.ultralytics.com/
- about: Ask on Ultralytics Community Forum
- - name: 🎧 Discord
- url: https://ultralytics.com/discord
- about: Ask on Ultralytics Discord
diff --git a/ultralytics-main/.github/workflows/ci.yaml b/ultralytics-main/.github/workflows/ci.yaml
deleted file mode 100644
index 4eadc3b..0000000
--- a/ultralytics-main/.github/workflows/ci.yaml
+++ /dev/null
@@ -1,288 +0,0 @@
-# Ultralytics YOLO 🚀, AGPL-3.0 license
-# YOLO Continuous Integration (CI) GitHub Actions tests
-
-name: Ultralytics CI
-
-on:
- push:
- branches: [main]
- paths-ignore:
- - "docs/**"
- - "mkdocs.yml"
- pull_request:
- branches: [main]
- paths-ignore:
- - "docs/**"
- schedule:
- - cron: "0 0 * * *" # runs at 00:00 UTC every day
- workflow_dispatch:
- inputs:
- hub:
- description: "Run HUB"
- default: false
- type: boolean
- benchmarks:
- description: "Run Benchmarks"
- default: false
- type: boolean
- tests:
- description: "Run Tests"
- default: false
- type: boolean
- gpu:
- description: "Run GPU"
- default: false
- type: boolean
- conda:
- description: "Run Conda"
- default: false
- type: boolean
-
-jobs:
- HUB:
- if: github.repository == 'ultralytics/ultralytics' && (github.event_name == 'schedule' || github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && github.event.inputs.hub == 'true'))
- runs-on: ${{ matrix.os }}
- strategy:
- fail-fast: false
- matrix:
- os: [ubuntu-latest]
- python-version: ["3.11"]
- steps:
- - uses: actions/checkout@v4
- - uses: actions/setup-python@v5
- with:
- python-version: ${{ matrix.python-version }}
- cache: "pip" # caching pip dependencies
- - name: Install requirements
- shell: bash # for Windows compatibility
- run: |
- python -m pip install --upgrade pip wheel
- pip install -e . --extra-index-url https://download.pytorch.org/whl/cpu
- - name: Check environment
- run: |
- yolo checks
- pip list
- - name: Test HUB training
- shell: python
- env:
- API_KEY: ${{ secrets.ULTRALYTICS_HUB_API_KEY }}
- MODEL_ID: ${{ secrets.ULTRALYTICS_HUB_MODEL_ID }}
- run: |
- import os
- from ultralytics import YOLO, hub
- api_key, model_id = os.environ['API_KEY'], os.environ['MODEL_ID']
- hub.login(api_key)
- hub.reset_model(model_id)
- model = YOLO('https://hub.ultralytics.com/models/' + model_id)
- model.train()
- - name: Test HUB inference API
- shell: python
- env:
- API_KEY: ${{ secrets.ULTRALYTICS_HUB_API_KEY }}
- MODEL_ID: ${{ secrets.ULTRALYTICS_HUB_MODEL_ID }}
- run: |
- import os
- import requests
- import json
- api_key, model_id = os.environ['API_KEY'], os.environ['MODEL_ID']
- url = f"https://api.ultralytics.com/v1/predict/{model_id}"
- headers = {"x-api-key": api_key}
- data = {"size": 320, "confidence": 0.25, "iou": 0.45}
- with open("ultralytics/assets/zidane.jpg", "rb") as f:
- response = requests.post(url, headers=headers, data=data, files={"image": f})
- assert response.status_code == 200, f'Status code {response.status_code}, Reason {response.reason}'
- print(json.dumps(response.json(), indent=2))
-
- Benchmarks:
- if: github.event_name != 'workflow_dispatch' || github.event.inputs.benchmarks == 'true'
- runs-on: ${{ matrix.os }}
- strategy:
- fail-fast: false
- matrix:
- os: [ubuntu-latest, macos-14]
- python-version: ["3.11"]
- model: [yolov8n]
- steps:
- - uses: actions/checkout@v4
- - uses: actions/setup-python@v5
- with:
- python-version: ${{ matrix.python-version }}
- cache: "pip" # caching pip dependencies
- - name: Install requirements
- shell: bash # for Windows compatibility
- run: |
- python -m pip install --upgrade pip wheel
- pip install -e ".[export]" "coverage[toml]" --extra-index-url https://download.pytorch.org/whl/cpu
- # yolo export format=tflite imgsz=32 || true
- - name: Check environment
- run: |
- yolo checks
- pip list
- - name: Benchmark YOLOWorld DetectionModel
- shell: bash
- run: coverage run -a --source=ultralytics -m ultralytics.cfg.__init__ benchmark model='path with spaces/yolov8s-worldv2.pt' imgsz=160 verbose=0.318
- - name: Benchmark SegmentationModel
- shell: bash
- run: coverage run -a --source=ultralytics -m ultralytics.cfg.__init__ benchmark model='path with spaces/${{ matrix.model }}-seg.pt' imgsz=160 verbose=0.281
- - name: Benchmark ClassificationModel
- shell: bash
- run: coverage run -a --source=ultralytics -m ultralytics.cfg.__init__ benchmark model='path with spaces/${{ matrix.model }}-cls.pt' imgsz=160 verbose=0.166
- - name: Benchmark PoseModel
- shell: bash
- run: coverage run -a --source=ultralytics -m ultralytics.cfg.__init__ benchmark model='path with spaces/${{ matrix.model }}-pose.pt' imgsz=160 verbose=0.183
- - name: Benchmark OBBModel
- shell: bash
- run: coverage run -a --source=ultralytics -m ultralytics.cfg.__init__ benchmark model='path with spaces/${{ matrix.model }}-obb.pt' imgsz=160 verbose=0.472
- - name: Merge Coverage Reports
- run: |
- coverage xml -o coverage-benchmarks.xml
- - name: Upload Coverage Reports to CodeCov
- if: github.repository == 'ultralytics/ultralytics'
- uses: codecov/codecov-action@v4
- with:
- flags: Benchmarks
- env:
- CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
- - name: Benchmark Summary
- run: |
- cat benchmarks.log
- echo "$(cat benchmarks.log)" >> $GITHUB_STEP_SUMMARY
-
- Tests:
- if: github.event_name != 'workflow_dispatch' || github.event.inputs.tests == 'true'
- timeout-minutes: 60
- runs-on: ${{ matrix.os }}
- strategy:
- fail-fast: false
- matrix:
- os: [ubuntu-latest, macos-14]
- python-version: ["3.11"]
- torch: [latest]
- include:
- - os: ubuntu-latest
- python-version: "3.8" # torch 1.8.0 requires python >=3.6, <=3.8
- torch: "1.8.0" # min torch version CI https://pypi.org/project/torchvision/
- steps:
- - uses: actions/checkout@v4
- - uses: actions/setup-python@v5
- with:
- python-version: ${{ matrix.python-version }}
- cache: "pip" # caching pip dependencies
- - name: Install requirements
- shell: bash # for Windows compatibility
- run: |
- # CoreML must be installed before export due to protobuf error from AutoInstall
- python -m pip install --upgrade pip wheel
- torch=""
- if [ "${{ matrix.torch }}" == "1.8.0" ]; then
- torch="torch==1.8.0 torchvision==0.9.0"
- fi
- pip install -e . $torch pytest-cov "coremltools>=7.0; platform_system != 'Windows' and python_version <= '3.11'" --extra-index-url https://download.pytorch.org/whl/cpu
- - name: Check environment
- run: |
- yolo checks
- pip list
- - name: Pytest tests
- shell: bash # for Windows compatibility
- run: |
- slow=""
- if [[ "${{ github.event_name }}" == "schedule" ]] || [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then
- pip install mlflow pycocotools 'ray[tune]'
- slow="--slow"
- fi
- pytest $slow --cov=ultralytics/ --cov-report xml tests/
- - name: Upload Coverage Reports to CodeCov
- if: github.repository == 'ultralytics/ultralytics' # && matrix.os == 'ubuntu-latest' && matrix.python-version == '3.11'
- uses: codecov/codecov-action@v4
- with:
- flags: Tests
- env:
- CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
-
- GPU:
- if: github.repository == 'ultralytics/ultralytics' && (github.event_name != 'workflow_dispatch' || github.event.inputs.gpu == 'true')
- timeout-minutes: 60
- runs-on: gpu-latest
- steps:
- - uses: actions/checkout@v4
- - name: Install requirements
- run: pip install -e .
- - name: Check environment
- run: |
- yolo checks
- pip list
- - name: Pytest tests
- run: pytest --cov=ultralytics/ --cov-report xml tests/test_cuda.py
- - name: Upload Coverage Reports to CodeCov
- uses: codecov/codecov-action@v4
- with:
- flags: GPU
- env:
- CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
-
- Conda:
- if: github.repository == 'ultralytics/ultralytics' && (github.event_name == 'schedule_disabled' || github.event.inputs.conda == 'true')
- runs-on: ${{ matrix.os }}
- strategy:
- fail-fast: false
- matrix:
- os: [ubuntu-latest]
- python-version: ["3.11"]
- defaults:
- run:
- shell: bash -el {0}
- steps:
- - uses: conda-incubator/setup-miniconda@v3
- with:
- python-version: ${{ matrix.python-version }}
- mamba-version: "*"
- channels: conda-forge,defaults
- channel-priority: true
- activate-environment: anaconda-client-env
- - name: Install Libmamba
- run: |
- conda config --set solver libmamba
- - name: Install Ultralytics package from conda-forge
- run: |
- conda install -c pytorch -c conda-forge pytorch torchvision ultralytics openvino
- - name: Install pip packages
- run: |
- # CoreML must be installed before export due to protobuf error from AutoInstall
- pip install pytest "coremltools>=7.0; platform_system != 'Windows' and python_version <= '3.11'"
- - name: Check environment
- run: |
- conda list
- - name: Test CLI
- run: |
- yolo predict model=yolov8n.pt imgsz=320
- yolo train model=yolov8n.pt data=coco8.yaml epochs=1 imgsz=32
- yolo val model=yolov8n.pt data=coco8.yaml imgsz=32
- yolo export model=yolov8n.pt format=torchscript imgsz=160
- - name: Test Python
- run: |
- python -c "
- from ultralytics import YOLO
- model = YOLO('yolov8n.pt')
- results = model.train(data='coco8.yaml', epochs=3, imgsz=160)
- results = model.val(imgsz=160)
- results = model.predict(imgsz=160)
- results = model.export(format='onnx', imgsz=160)
- "
- - name: PyTest
- run: |
- git clone https://github.com/ultralytics/ultralytics
- pytest ultralytics/tests
-
- Summary:
- runs-on: ubuntu-latest
- needs: [HUB, Benchmarks, Tests, GPU, Conda] # Add job names that you want to check for failure
- if: always() # This ensures the job runs even if previous jobs fail
- steps:
- - name: Check for failure and notify
- if: (needs.HUB.result == 'failure' || needs.Benchmarks.result == 'failure' || needs.Tests.result == 'failure' || needs.GPU.result == 'failure' || needs.Conda.result == 'failure') && github.repository == 'ultralytics/ultralytics' && (github.event_name == 'schedule' || github.event_name == 'push')
- uses: slackapi/slack-github-action@v1.25.0
- with:
- payload: |
- {"text": " GitHub Actions error for ${{ github.workflow }} ❌\n\n\n*Repository:* https://github.com/${{ github.repository }}\n*Action:* https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}\n*Author:* ${{ github.actor }}\n*Event:* ${{ github.event_name }}\n"}
- env:
- SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL_YOLO }}
diff --git a/ultralytics-main/.github/workflows/cla.yml b/ultralytics-main/.github/workflows/cla.yml
deleted file mode 100644
index a11ee19..0000000
--- a/ultralytics-main/.github/workflows/cla.yml
+++ /dev/null
@@ -1,37 +0,0 @@
-# Ultralytics YOLO 🚀, AGPL-3.0 license
-
-name: CLA Assistant
-on:
- issue_comment:
- types:
- - created
- pull_request_target:
- types:
- - reopened
- - opened
- - synchronize
-
-jobs:
- CLA:
- if: github.repository == 'ultralytics/ultralytics'
- runs-on: ubuntu-latest
- steps:
- - name: CLA Assistant
- if: (github.event.comment.body == 'recheck' || github.event.comment.body == 'I have read the CLA Document and I sign the CLA') || github.event_name == 'pull_request_target'
- uses: contributor-assistant/github-action@v2.3.1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- # must be repository secret token
- PERSONAL_ACCESS_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
- with:
- path-to-signatures: "signatures/version1/cla.json"
- path-to-document: "https://docs.ultralytics.com/help/CLA" # CLA document
- # branch should not be protected
- branch: "main"
- allowlist: dependabot[bot],github-actions,[pre-commit*,pre-commit*,bot*
-
- remote-organization-name: ultralytics
- remote-repository-name: cla
- custom-pr-sign-comment: "I have read the CLA Document and I sign the CLA"
- custom-allsigned-prcomment: All Contributors have signed the CLA. ✅
- #custom-notsigned-prcomment: 'pull request comment with Introductory message to ask new contributors to sign'
diff --git a/ultralytics-main/.github/workflows/codeql.yaml b/ultralytics-main/.github/workflows/codeql.yaml
deleted file mode 100644
index e6e3e85..0000000
--- a/ultralytics-main/.github/workflows/codeql.yaml
+++ /dev/null
@@ -1,42 +0,0 @@
-# Ultralytics YOLO 🚀, AGPL-3.0 license
-
-name: "CodeQL"
-
-on:
- schedule:
- - cron: "0 0 1 * *"
- workflow_dispatch:
-
-jobs:
- analyze:
- name: Analyze
- runs-on: ${{ 'ubuntu-latest' }}
- permissions:
- actions: read
- contents: read
- security-events: write
-
- strategy:
- fail-fast: false
- matrix:
- language: ["python"]
- # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
-
- steps:
- - name: Checkout repository
- uses: actions/checkout@v4
-
- # Initializes the CodeQL tools for scanning.
- - name: Initialize CodeQL
- uses: github/codeql-action/init@v3
- with:
- languages: ${{ matrix.language }}
- # If you wish to specify custom queries, you can do so here or in a config file.
- # By default, queries listed here will override any specified in a config file.
- # Prefix the list here with "+" to use these queries and those in the config file.
- # queries: security-extended,security-and-quality
-
- - name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@v3
- with:
- category: "/language:${{matrix.language}}"
diff --git a/ultralytics-main/.github/workflows/docker.yaml b/ultralytics-main/.github/workflows/docker.yaml
deleted file mode 100644
index afd2a66..0000000
--- a/ultralytics-main/.github/workflows/docker.yaml
+++ /dev/null
@@ -1,159 +0,0 @@
-# Ultralytics YOLO 🚀, AGPL-3.0 license
-# Builds ultralytics/ultralytics:latest images on DockerHub https://hub.docker.com/r/ultralytics
-
-name: Publish Docker Images
-
-on:
- push:
- branches: [main]
- paths-ignore:
- - "docs/**"
- - "mkdocs.yml"
- workflow_dispatch:
- inputs:
- Dockerfile:
- type: boolean
- description: Use Dockerfile
- default: true
- Dockerfile-cpu:
- type: boolean
- description: Use Dockerfile-cpu
- Dockerfile-arm64:
- type: boolean
- description: Use Dockerfile-arm64
- Dockerfile-jetson:
- type: boolean
- description: Use Dockerfile-jetson
- Dockerfile-python:
- type: boolean
- description: Use Dockerfile-python
- Dockerfile-conda:
- type: boolean
- description: Use Dockerfile-conda
- push:
- type: boolean
- description: Push images to Docker Hub
- default: true
-
-jobs:
- docker:
- if: github.repository == 'ultralytics/ultralytics'
- name: Push
- runs-on: ubuntu-latest
- strategy:
- fail-fast: false
- max-parallel: 6
- matrix:
- include:
- - dockerfile: "Dockerfile"
- tags: "latest"
- platforms: "linux/amd64"
- - dockerfile: "Dockerfile-cpu"
- tags: "latest-cpu"
- platforms: "linux/amd64"
- - dockerfile: "Dockerfile-arm64"
- tags: "latest-arm64"
- platforms: "linux/arm64"
- - dockerfile: "Dockerfile-jetson"
- tags: "latest-jetson"
- platforms: "linux/arm64"
- - dockerfile: "Dockerfile-python"
- tags: "latest-python"
- platforms: "linux/amd64"
- # - dockerfile: "Dockerfile-conda"
- # tags: "latest-conda"
- # platforms: "linux/amd64"
- steps:
- - name: Checkout repo
- uses: actions/checkout@v4
- with:
- fetch-depth: 0 # copy full .git directory to access full git history in Docker images
-
- - name: Set up QEMU
- uses: docker/setup-qemu-action@v3
-
- - name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v3
-
- - name: Login to Docker Hub
- uses: docker/login-action@v3
- with:
- username: ${{ secrets.DOCKERHUB_USERNAME }}
- password: ${{ secrets.DOCKERHUB_TOKEN }}
-
- - name: Retrieve Ultralytics version
- id: get_version
- run: |
- VERSION=$(grep "^__version__ =" ultralytics/__init__.py | awk -F'"' '{print $2}')
- echo "Retrieved Ultralytics version: $VERSION"
- echo "version=$VERSION" >> $GITHUB_OUTPUT
-
- VERSION_TAG=$(echo "${{ matrix.tags }}" | sed "s/latest/${VERSION}/")
- echo "Intended version tag: $VERSION_TAG"
- echo "version_tag=$VERSION_TAG" >> $GITHUB_OUTPUT
-
- - name: Check if version tag exists on DockerHub
- id: check_tag
- run: |
- RESPONSE=$(curl -s https://hub.docker.com/v2/repositories/ultralytics/ultralytics/tags/$VERSION_TAG)
- MESSAGE=$(echo $RESPONSE | jq -r '.message')
- if [[ "$MESSAGE" == "null" ]]; then
- echo "Tag $VERSION_TAG already exists on DockerHub."
- echo "exists=true" >> $GITHUB_OUTPUT
- elif [[ "$MESSAGE" == *"404"* ]]; then
- echo "Tag $VERSION_TAG does not exist on DockerHub."
- echo "exists=false" >> $GITHUB_OUTPUT
- else
- echo "Unexpected response from DockerHub. Please check manually."
- echo "exists=false" >> $GITHUB_OUTPUT
- fi
- env:
- VERSION_TAG: ${{ steps.get_version.outputs.version_tag }}
-
- - name: Build Image
- if: github.event_name == 'push' || github.event.inputs[matrix.dockerfile] == 'true'
- uses: nick-invision/retry@v3
- with:
- timeout_minutes: 60
- retry_wait_seconds: 30
- max_attempts: 2 # retry once
- command: |
- docker build \
- --platform ${{ matrix.platforms }} \
- -f docker/${{ matrix.dockerfile }} \
- -t ultralytics/ultralytics:${{ matrix.tags }} \
- -t ultralytics/ultralytics:${{ steps.get_version.outputs.version_tag }} \
- .
-
- - name: Run Tests
- if: (github.event_name == 'push' || github.event.inputs[matrix.dockerfile] == 'true') && matrix.platforms == 'linux/amd64' && matrix.dockerfile != 'Dockerfile-conda' # arm64 images not supported on GitHub CI runners
- run: docker run ultralytics/ultralytics:${{ matrix.tags }} /bin/bash -c "pip install pytest && pytest tests"
-
- - name: Run Benchmarks
- # WARNING: Dockerfile (GPU) error on TF.js export 'module 'numpy' has no attribute 'object'.
- if: (github.event_name == 'push' || github.event.inputs[matrix.dockerfile] == 'true') && matrix.platforms == 'linux/amd64' && matrix.dockerfile != 'Dockerfile' && matrix.dockerfile != 'Dockerfile-conda' # arm64 images not supported on GitHub CI runners
- run: docker run ultralytics/ultralytics:${{ matrix.tags }} yolo benchmark model=yolov8n.pt imgsz=160 verbose=0.318
-
- - name: Push Docker Image with Ultralytics version tag
- if: (github.event_name == 'push' || (github.event.inputs[matrix.dockerfile] == 'true' && github.event.inputs.push == 'true')) && steps.check_tag.outputs.exists == 'false' && matrix.dockerfile != 'Dockerfile-conda'
- run: |
- docker push ultralytics/ultralytics:${{ steps.get_version.outputs.version_tag }}
-
- - name: Push Docker Image with latest tag
- if: github.event_name == 'push' || (github.event.inputs[matrix.dockerfile] == 'true' && github.event.inputs.push == 'true')
- run: |
- docker push ultralytics/ultralytics:${{ matrix.tags }}
- if [[ "${{ matrix.tags }}" == "latest" ]]; then
- t=ultralytics/ultralytics:latest-runner
- docker build -f docker/Dockerfile-runner -t $t .
- docker push $t
- fi
-
- - name: Notify on failure
- if: github.event_name == 'push' && failure() # do not notify on cancelled() as cancelling is performed by hand
- uses: slackapi/slack-github-action@v1.25.0
- with:
- payload: |
- {"text": " GitHub Actions error for ${{ github.workflow }} ❌\n\n\n*Repository:* https://github.com/${{ github.repository }}\n*Action:* https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}\n*Author:* ${{ github.actor }}\n*Event:* ${{ github.event_name }}\n"}
- env:
- SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL_YOLO }}
diff --git a/ultralytics-main/.github/workflows/format.yml b/ultralytics-main/.github/workflows/format.yml
deleted file mode 100644
index 470d4f3..0000000
--- a/ultralytics-main/.github/workflows/format.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-# Ultralytics 🚀 - AGPL-3.0 license
-# Ultralytics Actions https://github.com/ultralytics/actions
-# This workflow automatically formats code and documentation in PRs to official Ultralytics standards
-
-name: Ultralytics Actions
-
-on:
- push:
- branches: [main]
- pull_request_target:
- branches: [main]
- types: [opened, closed, synchronize]
-
-jobs:
- format:
- runs-on: ubuntu-latest
- steps:
- - name: Run Ultralytics Formatting
- uses: ultralytics/actions@main
- with:
- token: ${{ secrets.GITHUB_TOKEN }} # automatically generated, do not modify
- python: true # format Python code and docstrings
- markdown: true # format Markdown and YAML
- spelling: true # check spelling
- links: false # check broken links
- summary: true # print PR summary with GPT4 (requires 'openai_api_key' or 'openai_azure_api_key' and 'openai_azure_endpoint')
- openai_azure_api_key: ${{ secrets.OPENAI_AZURE_API_KEY }}
- openai_azure_endpoint: ${{ secrets.OPENAI_AZURE_ENDPOINT }}
diff --git a/ultralytics-main/.github/workflows/greetings.yml b/ultralytics-main/.github/workflows/greetings.yml
deleted file mode 100644
index 00e0f9d..0000000
--- a/ultralytics-main/.github/workflows/greetings.yml
+++ /dev/null
@@ -1,58 +0,0 @@
-# Ultralytics YOLO 🚀, AGPL-3.0 license
-
-name: Greetings
-
-on:
- pull_request_target:
- types: [opened]
- issues:
- types: [opened]
-
-jobs:
- greeting:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/first-interaction@v1
- with:
- repo-token: ${{ secrets.GITHUB_TOKEN }}
- pr-message: |
- 👋 Hello @${{ github.actor }}, thank you for submitting an Ultralytics YOLOv8 🚀 PR! To allow your work to be integrated as seamlessly as possible, we advise you to:
-
- - ✅ Verify your PR is **up-to-date** with `ultralytics/ultralytics` `main` branch. If your PR is behind you can update your code by clicking the 'Update branch' button or by running `git pull` and `git merge main` locally.
- - ✅ Verify all YOLOv8 Continuous Integration (CI) **checks are passing**.
- - ✅ Update YOLOv8 [Docs](https://docs.ultralytics.com) for any new or updated features.
- - ✅ Reduce changes to the absolute **minimum** required for your bug fix or feature addition. _"It is not daily increase but daily decrease, hack away the unessential. The closer to the source, the less wastage there is."_ — Bruce Lee
-
- See our [Contributing Guide](https://docs.ultralytics.com/help/contributing) for details and let us know if you have any questions!
-
- issue-message: |
- 👋 Hello @${{ github.actor }}, thank you for your interest in Ultralytics YOLOv8 🚀! We recommend a visit to the [Docs](https://docs.ultralytics.com) for new users where you can find many [Python](https://docs.ultralytics.com/usage/python/) and [CLI](https://docs.ultralytics.com/usage/cli/) usage examples and where many of the most common questions may already be answered.
-
- If this is a 🐛 Bug Report, please provide a [minimum reproducible example](https://docs.ultralytics.com/help/minimum_reproducible_example/) to help us debug it.
-
- If this is a custom training ❓ Question, please provide as much information as possible, including dataset image examples and training logs, and verify you are following our [Tips for Best Training Results](https://docs.ultralytics.com/yolov5/tutorials/tips_for_best_training_results/).
-
- Join the vibrant [Ultralytics Discord](https://ultralytics.com/discord) 🎧 community for real-time conversations and collaborations. This platform offers a perfect space to inquire, showcase your work, and connect with fellow Ultralytics users.
-
- ## Install
-
- Pip install the `ultralytics` package including all [requirements](https://github.com/ultralytics/ultralytics/blob/main/pyproject.toml) in a [**Python>=3.8**](https://www.python.org/) environment with [**PyTorch>=1.8**](https://pytorch.org/get-started/locally/).
-
- ```bash
- pip install ultralytics
- ```
-
- ## Environments
-
- YOLOv8 may be run in any of the following up-to-date verified environments (with all dependencies including [CUDA](https://developer.nvidia.com/cuda)/[CUDNN](https://developer.nvidia.com/cudnn), [Python](https://www.python.org/) and [PyTorch](https://pytorch.org/) preinstalled):
-
- - **Notebooks** with free GPU:
- - **Google Cloud** Deep Learning VM. See [GCP Quickstart Guide](https://docs.ultralytics.com/yolov5/environments/google_cloud_quickstart_tutorial/)
- - **Amazon** Deep Learning AMI. See [AWS Quickstart Guide](https://docs.ultralytics.com/yolov5/environments/aws_quickstart_tutorial/)
- - **Docker Image**. See [Docker Quickstart Guide](https://docs.ultralytics.com/yolov5/environments/docker_image_quickstart_tutorial/)
-
- ## Status
-
-
-
- If this badge is green, all [Ultralytics CI](https://github.com/ultralytics/ultralytics/actions/workflows/ci.yaml?query=event%3Aschedule) tests are currently passing. CI tests verify correct operation of all YOLOv8 [Modes](https://docs.ultralytics.com/modes/) and [Tasks](https://docs.ultralytics.com/tasks/) on macOS, Windows, and Ubuntu every 24 hours and on every commit.
diff --git a/ultralytics-main/.github/workflows/links.yml b/ultralytics-main/.github/workflows/links.yml
deleted file mode 100644
index 73542b3..0000000
--- a/ultralytics-main/.github/workflows/links.yml
+++ /dev/null
@@ -1,90 +0,0 @@
-# Ultralytics YOLO 🚀, AGPL-3.0 license
-# Continuous Integration (CI) GitHub Actions tests broken link checker using https://github.com/lycheeverse/lychee
-# Ignores the following status codes to reduce false positives:
-# - 403(OpenVINO, 'forbidden')
-# - 429(Instagram, 'too many requests')
-# - 500(Zenodo, 'cached')
-# - 502(Zenodo, 'bad gateway')
-# - 999(LinkedIn, 'unknown status code')
-
-name: Check Broken links
-
-on:
- workflow_dispatch:
- schedule:
- - cron: "0 0 * * *" # runs at 00:00 UTC every day
-
-jobs:
- Links:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
-
- - name: Download and install lychee
- run: |
- LYCHEE_URL=$(curl -s https://api.github.com/repos/lycheeverse/lychee/releases/latest | grep "browser_download_url" | grep "x86_64-unknown-linux-gnu.tar.gz" | cut -d '"' -f 4)
- curl -L $LYCHEE_URL -o lychee.tar.gz
- tar xzf lychee.tar.gz
- sudo mv lychee /usr/local/bin
-
- - name: Test Markdown and HTML links with retry
- uses: nick-invision/retry@v3
- with:
- timeout_minutes: 5
- retry_wait_seconds: 60
- max_attempts: 3
- command: |
- lychee \
- --scheme https \
- --timeout 60 \
- --insecure \
- --accept 403,429,500,502,999 \
- --exclude-all-private \
- --exclude 'https?://(www\.)?(linkedin\.com|twitter\.com|instagram\.com|kaggle\.com|fonts\.gstatic\.com|url\.com)' \
- --exclude-path docs/zh \
- --exclude-path docs/es \
- --exclude-path docs/ru \
- --exclude-path docs/pt \
- --exclude-path docs/fr \
- --exclude-path docs/de \
- --exclude-path docs/ja \
- --exclude-path docs/ko \
- --exclude-path docs/hi \
- --exclude-path docs/ar \
- --github-token ${{ secrets.GITHUB_TOKEN }} \
- './**/*.md' \
- './**/*.html'
-
- - name: Test Markdown, HTML, YAML, Python and Notebook links with retry
- if: github.event_name == 'workflow_dispatch'
- uses: nick-invision/retry@v3
- with:
- timeout_minutes: 5
- retry_wait_seconds: 60
- max_attempts: 3
- command: |
- lychee \
- --scheme https \
- --timeout 60 \
- --insecure \
- --accept 429,999 \
- --exclude-all-private \
- --exclude 'https?://(www\.)?(linkedin\.com|twitter\.com|instagram\.com|kaggle\.com|fonts\.gstatic\.com|url\.com)' \
- --exclude-path '**/ci.yaml' \
- --exclude-path docs/zh \
- --exclude-path docs/es \
- --exclude-path docs/ru \
- --exclude-path docs/pt \
- --exclude-path docs/fr \
- --exclude-path docs/de \
- --exclude-path docs/ja \
- --exclude-path docs/ko \
- --exclude-path docs/hi \
- --exclude-path docs/ar \
- --github-token ${{ secrets.GITHUB_TOKEN }} \
- './**/*.md' \
- './**/*.html' \
- './**/*.yml' \
- './**/*.yaml' \
- './**/*.py' \
- './**/*.ipynb'
diff --git a/ultralytics-main/.github/workflows/publish.yml b/ultralytics-main/.github/workflows/publish.yml
deleted file mode 100644
index ca2980f..0000000
--- a/ultralytics-main/.github/workflows/publish.yml
+++ /dev/null
@@ -1,113 +0,0 @@
-# Ultralytics YOLO 🚀, AGPL-3.0 license
-# Publish pip package to PyPI https://pypi.org/project/ultralytics/ and Docs to https://docs.ultralytics.com
-
-name: Publish to PyPI and Deploy Docs
-
-on:
- push:
- branches: [main]
- workflow_dispatch:
- inputs:
- pypi:
- type: boolean
- description: Publish to PyPI
- docs:
- type: boolean
- description: Deploy Docs
-
-jobs:
- publish:
- if: github.repository == 'ultralytics/ultralytics' && github.actor == 'glenn-jocher'
- name: Publish
- runs-on: ubuntu-latest
- steps:
- - name: Checkout code
- uses: actions/checkout@v4
- with:
- fetch-depth: "0" # pulls all commits (needed correct last updated dates in Docs)
- - name: Set up Python environment
- uses: actions/setup-python@v5
- with:
- python-version: "3.11"
- cache: "pip" # caching pip dependencies
- - name: Install dependencies
- run: |
- python -m pip install --upgrade pip wheel build twine
- pip install -e ".[dev]" --extra-index-url https://download.pytorch.org/whl/cpu
- - name: Check PyPI version
- shell: python
- run: |
- import os
- import ultralytics
- from ultralytics.utils.checks import check_latest_pypi_version
-
- v_local = tuple(map(int, ultralytics.__version__.split('.')))
- v_pypi = tuple(map(int, check_latest_pypi_version().split('.')))
- print(f'Local version is {v_local}')
- print(f'PyPI version is {v_pypi}')
- d = [a - b for a, b in zip(v_local, v_pypi)] # diff
- increment = (d[0] == d[1] == 0) and (0 < d[2] < 3) # only publish if patch version increments by 1 or 2
- os.system(f'echo "increment={increment}" >> $GITHUB_OUTPUT')
- os.system(f'echo "version={ultralytics.__version__}" >> $GITHUB_OUTPUT')
- if increment:
- print('Local version is higher than PyPI version. Publishing new version to PyPI ✅.')
- id: check_pypi
- - name: Publish to PyPI
- continue-on-error: true
- if: (github.event_name == 'push' || github.event.inputs.pypi == 'true') && steps.check_pypi.outputs.increment == 'True'
- env:
- PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }}
- run: |
- python -m build
- python -m twine upload dist/* -u __token__ -p $PYPI_TOKEN
- - name: Deploy Docs
- continue-on-error: true
- if: (github.event_name == 'push' || github.event.inputs.docs == 'true') && github.repository == 'ultralytics/ultralytics' && github.actor == 'glenn-jocher'
- env:
- PERSONAL_ACCESS_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
- INDEXNOW_KEY: ${{ secrets.INDEXNOW_KEY_DOCS }}
- run: |
- export JUPYTER_PLATFORM_DIRS=1
- python docs/build_docs.py
- git config --global user.name "Glenn Jocher"
- git config --global user.email "glenn.jocher@ultralytics.com"
- git clone https://github.com/ultralytics/docs.git docs-repo
- cd docs-repo
- git checkout gh-pages || git checkout -b gh-pages
- rm -rf *
- cp -R ../site/* .
- echo "$INDEXNOW_KEY" > "$INDEXNOW_KEY.txt"
- git add .
- LATEST_HASH=$(git rev-parse --short=7 HEAD)
- git commit -m "Update Docs for 'ultralytics ${{ steps.check_pypi.outputs.version }} - $LATEST_HASH'"
- git push https://$PERSONAL_ACCESS_TOKEN@github.com/ultralytics/docs.git gh-pages
- - name: Extract PR Details
- run: |
- if [ "${{ github.event_name }}" = "pull_request" ]; then
- PR_JSON=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" https://api.github.com/repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }})
- PR_NUMBER=${{ github.event.pull_request.number }}
- PR_TITLE=$(echo $PR_JSON | jq -r '.title')
- else
- COMMIT_SHA=${{ github.event.after }}
- PR_JSON=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" "https://api.github.com/search/issues?q=repo:${{ github.repository }}+is:pr+is:merged+sha:$COMMIT_SHA")
- PR_NUMBER=$(echo $PR_JSON | jq -r '.items[0].number')
- PR_TITLE=$(echo $PR_JSON | jq -r '.items[0].title')
- fi
- echo "PR_NUMBER=$PR_NUMBER" >> $GITHUB_ENV
- echo "PR_TITLE=$PR_TITLE" >> $GITHUB_ENV
- - name: Notify on Slack (Success)
- if: success() && github.event_name == 'push' && steps.check_pypi.outputs.increment == 'True'
- uses: slackapi/slack-github-action@v1.25.0
- with:
- payload: |
- {"text": " GitHub Actions success for ${{ github.workflow }} ✅\n\n\n*Repository:* https://github.com/${{ github.repository }}\n*Action:* https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}\n*Author:* ${{ github.actor }}\n*Event:* NEW 'ultralytics ${{ steps.check_pypi.outputs.version }}' pip package published 😃\n*Job Status:* ${{ job.status }}\n*Pull Request:* ${{ env.PR_TITLE }}\n"}
- env:
- SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL_YOLO }}
- - name: Notify on Slack (Failure)
- if: failure()
- uses: slackapi/slack-github-action@v1.25.0
- with:
- payload: |
- {"text": " GitHub Actions error for ${{ github.workflow }} ❌\n\n\n*Repository:* https://github.com/${{ github.repository }}\n*Action:* https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}\n*Author:* ${{ github.actor }}\n*Event:* ${{ github.event_name }}\n*Job Status:* ${{ job.status }}\n*Pull Request:* ${{ env.PR_TITLE }}\n"}
- env:
- SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL_YOLO }}
diff --git a/ultralytics-main/.github/workflows/stale.yml b/ultralytics-main/.github/workflows/stale.yml
deleted file mode 100644
index dd85035..0000000
--- a/ultralytics-main/.github/workflows/stale.yml
+++ /dev/null
@@ -1,47 +0,0 @@
-# Ultralytics YOLO 🚀, AGPL-3.0 license
-
-name: Close stale issues
-on:
- schedule:
- - cron: "0 0 * * *" # Runs at 00:00 UTC every day
-
-jobs:
- stale:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/stale@v9
- with:
- repo-token: ${{ secrets.GITHUB_TOKEN }}
-
- stale-issue-message: |
- 👋 Hello there! We wanted to give you a friendly reminder that this issue has not had any recent activity and may be closed soon, but don't worry - you can always reopen it if needed. If you still have any questions or concerns, please feel free to let us know how we can help.
-
- For additional resources and information, please see the links below:
-
- - **Docs**: https://docs.ultralytics.com
- - **HUB**: https://hub.ultralytics.com
- - **Community**: https://community.ultralytics.com
-
- Feel free to inform us of any other **issues** you discover or **feature requests** that come to mind in the future. Pull Requests (PRs) are also always welcomed!
-
- Thank you for your contributions to YOLO 🚀 and Vision AI ⭐
-
- stale-pr-message: |
- 👋 Hello there! We wanted to let you know that we've decided to close this pull request due to inactivity. We appreciate the effort you put into contributing to our project, but unfortunately, not all contributions are suitable or aligned with our product roadmap.
-
- We hope you understand our decision, and please don't let it discourage you from contributing to open source projects in the future. We value all of our community members and their contributions, and we encourage you to keep exploring new projects and ways to get involved.
-
- For additional resources and information, please see the links below:
-
- - **Docs**: https://docs.ultralytics.com
- - **HUB**: https://hub.ultralytics.com
- - **Community**: https://community.ultralytics.com
-
- Thank you for your contributions to YOLO 🚀 and Vision AI ⭐
-
- days-before-issue-stale: 30
- days-before-issue-close: 10
- days-before-pr-stale: 90
- days-before-pr-close: 30
- exempt-issue-labels: "documentation,tutorial,TODO"
- operations-per-run: 300 # The maximum number of operations per run, used to control rate limiting.
diff --git a/ultralytics-main/.gitignore b/ultralytics-main/.gitignore
deleted file mode 100644
index 0854267..0000000
--- a/ultralytics-main/.gitignore
+++ /dev/null
@@ -1,166 +0,0 @@
-# Byte-compiled / optimized / DLL files
-__pycache__/
-*.py[cod]
-*$py.class
-
-# C extensions
-*.so
-
-# Distribution / packaging
-.Python
-build/
-develop-eggs/
-dist/
-downloads/
-eggs/
-.eggs/
-lib/
-lib64/
-parts/
-sdist/
-var/
-wheels/
-pip-wheel-metadata/
-share/python-wheels/
-*.egg-info/
-.installed.cfg
-*.egg
-MANIFEST
-
-# PyInstaller
-# Usually these files are written by a python script from a template
-# before PyInstaller builds the exe, so as to inject date/other info into it.
-*.manifest
-*.spec
-
-# Installer logs
-pip-log.txt
-pip-delete-this-directory.txt
-
-# Unit test / coverage reports
-htmlcov/
-.tox/
-.nox/
-.coverage
-.coverage.*
-.cache
-nosetests.xml
-coverage.xml
-*.cover
-*.py,cover
-.hypothesis/
-.pytest_cache/
-mlruns/
-
-# Translations
-*.mo
-*.pot
-
-# Django stuff:
-*.log
-local_settings.py
-db.sqlite3
-db.sqlite3-journal
-
-# Flask stuff:
-instance/
-.webassets-cache
-
-# Scrapy stuff:
-.scrapy
-
-# Sphinx documentation
-docs/_build/
-
-# PyBuilder
-target/
-
-# Jupyter Notebook
-.ipynb_checkpoints
-
-# IPython
-profile_default/
-ipython_config.py
-
-# Profiling
-*.pclprof
-
-# pyenv
-.python-version
-
-# pipenv
-# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
-# However, in case of collaboration, if having platform-specific dependencies or dependencies
-# having no cross-platform support, pipenv may install dependencies that don't work, or not
-# install all needed dependencies.
-#Pipfile.lock
-
-# PEP 582; used by e.g. github.com/David-OConnor/pyflow
-__pypackages__/
-
-# Celery stuff
-celerybeat-schedule
-celerybeat.pid
-
-# SageMath parsed files
-*.sage.py
-
-# Environments
-.env
-.venv
-.idea
-env/
-venv/
-ENV/
-env.bak/
-venv.bak/
-
-# Spyder project settings
-.spyderproject
-.spyproject
-
-# VSCode project settings
-.vscode/
-
-# Rope project settings
-.ropeproject
-
-# mkdocs documentation
-/site
-mkdocs_github_authors.yaml
-
-# mypy
-.mypy_cache/
-.dmypy.json
-dmypy.json
-
-# Pyre type checker
-.pyre/
-
-# datasets and projects
-datasets/
-runs/
-wandb/
-tests/
-.DS_Store
-
-# Neural Network weights -----------------------------------------------------------------------------------------------
-weights/
-*.weights
-*.pt
-*.pb
-*.onnx
-*.engine
-*.mlmodel
-*.mlpackage
-*.torchscript
-*.tflite
-*.h5
-*_saved_model/
-*_web_model/
-*_openvino_model/
-*_paddle_model/
-pnnx*
-
-# Autogenerated files for tests
-/ultralytics/assets/
diff --git a/ultralytics-main/.pre-commit-config.yaml b/ultralytics-main/.pre-commit-config.yaml
deleted file mode 100644
index 03461f1..0000000
--- a/ultralytics-main/.pre-commit-config.yaml
+++ /dev/null
@@ -1,86 +0,0 @@
-# Ultralytics YOLO 🚀, AGPL-3.0 license
-# Pre-commit hooks. For more information see https://github.com/pre-commit/pre-commit-hooks/blob/main/README.md
-# Optionally remove from local hooks with 'rm .git/hooks/pre-commit'
-
-# Define bot property if installed via https://github.com/marketplace/pre-commit-ci
-ci:
- autofix_prs: true
- autoupdate_commit_msg: "[pre-commit.ci] pre-commit suggestions"
- autoupdate_schedule: monthly
- submodules: true
-
-# Exclude directories (optional)
-# exclude: 'docs/'
-
-# Define repos to run
-repos:
- - repo: https://github.com/pre-commit/pre-commit-hooks
- rev: v4.5.0
- hooks:
- - id: end-of-file-fixer
- - id: trailing-whitespace
- - id: check-case-conflict
- # - id: check-yaml
- - id: check-docstring-first
- - id: detect-private-key
-
- - repo: https://github.com/asottile/pyupgrade
- rev: v3.15.0
- hooks:
- - id: pyupgrade
- name: Upgrade code
-
- - repo: https://github.com/astral-sh/ruff-pre-commit
- rev: v0.1.11
- hooks:
- - id: ruff
- args: [--fix]
-
- - repo: https://github.com/executablebooks/mdformat
- rev: 0.7.17
- hooks:
- - id: mdformat
- name: MD formatting
- additional_dependencies:
- - mdformat-gfm
- - mdformat-frontmatter
- - mdformat-mkdocs
- args:
- - --wrap=no
- - --number
- exclude: 'docs/.*\.md'
- # exclude: "README.md|README.zh-CN.md|CONTRIBUTING.md"
-
- - repo: https://github.com/codespell-project/codespell
- rev: v2.2.6
- hooks:
- - id: codespell
- exclude: "docs/de|docs/fr|docs/pt|docs/es|docs/mkdocs_de.yml"
- args:
- - --ignore-words-list=crate,nd,ned,strack,dota,ane,segway,fo,gool,winn,commend,bloc,nam,afterall
-
- - repo: https://github.com/hadialqattan/pycln
- rev: v2.4.0
- hooks:
- - id: pycln
- args: [--all]
-#
-# - repo: https://github.com/PyCQA/docformatter
-# rev: v1.7.5
-# hooks:
-# - id: docformatter
-
-# - repo: https://github.com/asottile/yesqa
-# rev: v1.4.0
-# hooks:
-# - id: yesqa
-
-# - repo: https://github.com/asottile/dead
-# rev: v1.5.0
-# hooks:
-# - id: dead
-
-# - repo: https://github.com/ultralytics/pre-commit
-# rev: bd60a414f80a53fb8f593d3bfed4701fc47e4b23
-# hooks:
-# - id: capitalize-comments
diff --git a/ultralytics-main/Author_advice.txt b/ultralytics-main/Author_advice.txt
deleted file mode 100644
index 22b6129..0000000
--- a/ultralytics-main/Author_advice.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-
-# 双目测距运行yolov8-stereo.py文件即可
-
-# 测量速度运行stereo-speed.py文件
-
-
-具体操作步骤见播客主页:https://blog.csdn.net/qq_45077760
\ No newline at end of file
diff --git a/ultralytics-main/CITATION.cff b/ultralytics-main/CITATION.cff
deleted file mode 100644
index bee0abe..0000000
--- a/ultralytics-main/CITATION.cff
+++ /dev/null
@@ -1,26 +0,0 @@
-# This CITATION.cff file was generated with https://bit.ly/cffinit
-
-cff-version: 1.2.0
-title: Ultralytics YOLO
-message: >-
- If you use this software, please cite it using the
- metadata from this file.
-type: software
-authors:
- - given-names: Glenn
- family-names: Jocher
- affiliation: Ultralytics
- orcid: 'https://orcid.org/0000-0001-5950-6979'
- - given-names: Ayush
- family-names: Chaurasia
- affiliation: Ultralytics
- orcid: 'https://orcid.org/0000-0002-7603-6750'
- - family-names: Qiu
- given-names: Jing
- affiliation: Ultralytics
- orcid: 'https://orcid.org/0000-0003-3783-7069'
-repository-code: 'https://github.com/ultralytics/ultralytics'
-url: 'https://ultralytics.com'
-license: AGPL-3.0
-version: 8.0.0
-date-released: '2023-01-10'
diff --git a/ultralytics-main/Instance Segmentation-camera.py b/ultralytics-main/Instance Segmentation-camera.py
deleted file mode 100644
index 5cc4e88..0000000
--- a/ultralytics-main/Instance Segmentation-camera.py
+++ /dev/null
@@ -1,37 +0,0 @@
-import cv2
-from ultralytics import YOLO
-from ultralytics.utils.plotting import Annotator, colors
-
-model = YOLO("yolov8n-seg.pt") # segmentation model
-names = model.model.names
-cap = cv2.VideoCapture(0)
-w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
-
-out = cv2.VideoWriter('instance-segmentation.avi', cv2.VideoWriter_fourcc(*'MJPG'), fps, (w, h))
-
-while True:
- ret, im0 = cap.read()
- if not ret:
- print("Video frame is empty or video processing has been successfully completed.")
- break
-
- results = model.predict(im0)
- annotator = Annotator(im0, line_width=2)
-
- if results[0].masks is not None:
- clss = results[0].boxes.cls.cpu().tolist()
- masks = results[0].masks.xy
- for mask, cls in zip(masks, clss):
- annotator.seg_bbox(mask=mask,
- mask_color=colors(int(cls), True),
- det_label=names[int(cls)])
-
- out.write(im0)
- cv2.imshow("instance-segmentation", im0)
-
- if cv2.waitKey(1) & 0xFF == ord('q'):
- break
-
-out.release()
-cap.release()
-cv2.destroyAllWindows()
\ No newline at end of file
diff --git a/ultralytics-main/Instance Segmentation-pic-video.py b/ultralytics-main/Instance Segmentation-pic-video.py
deleted file mode 100644
index 8aa8b1e..0000000
--- a/ultralytics-main/Instance Segmentation-pic-video.py
+++ /dev/null
@@ -1,66 +0,0 @@
-from ultralytics import YOLO
-import cv2
-import os
-from ultralytics.utils.plotting import Annotator, colors
-if __name__ == '__main__':
-# 实例分割检测文件夹里所有图片视频(实例分割和掩码分割不同):
- model = YOLO('yolov8n-seg.pt')
- names = model.model.names
- input_folder = 'ultralytics/assets' # 输入文件夹
- output_folder = 'runs/detect/test' # 输出文件夹
-
- if not os.path.exists(output_folder):
- os.makedirs(output_folder)
-
- # 获取输入文件夹中所有文件的文件名
- all_files = [f for f in os.listdir(input_folder)]
-
- for file_name in all_files:
- file_path = os.path.join(input_folder, file_name)
- if file_name.endswith('.jpg') or file_name.endswith('.png'):
- # 处理图片
- im0 = cv2.imread(file_path)
- results = model.predict(im0)
- annotator = Annotator(im0, line_width=2)
-
- if results[0].masks is not None:
- clss = results[0].boxes.cls.cpu().tolist()
- masks = results[0].masks.xy
- for mask, cls in zip(masks, clss):
- annotator.seg_bbox(mask=mask,
- mask_color=colors(int(cls), True),
- det_label=names[int(cls)])
-
- output_path = os.path.join(output_folder, file_name)
- cv2.imwrite(output_path, im0)
-
- elif file_name.endswith('.mp4') or file_name.endswith('.avi'):
- # 处理视频
- cap = cv2.VideoCapture(file_path)
- w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
-
- out = cv2.VideoWriter(os.path.join(output_folder, file_name + '_segmented.avi'), cv2.VideoWriter_fourcc(*'MJPG'),
- fps, (w, h))
-
- while True:
- ret, im0 = cap.read()
- if not ret:
- print(f"视频 {file_name} 处理完成")
- break
-
- results = model.predict(im0)
- annotator = Annotator(im0, line_width=2)
-
- if results[0].masks is not None:
- clss = results[0].boxes.cls.cpu().tolist()
- masks = results[0].masks.xy
- for mask, cls in zip(masks, clss):
- annotator.seg_bbox(mask=mask,
- mask_color=colors(int(cls), True),
- det_label=names[int(cls)])
-
- out.write(im0)
- cv2.imshow("instance-segmentation", im0)
-
- out.release()
- cap.release()
diff --git a/ultralytics-main/Instance Segmentation-track-camera.py b/ultralytics-main/Instance Segmentation-track-camera.py
deleted file mode 100644
index 61b18ac..0000000
--- a/ultralytics-main/Instance Segmentation-track-camera.py
+++ /dev/null
@@ -1,42 +0,0 @@
-import cv2
-from ultralytics import YOLO
-from ultralytics.utils.plotting import Annotator, colors
-
-from collections import defaultdict
-
-track_history = defaultdict(lambda: [])
-
-model = YOLO("yolov8n-seg.pt") # segmentation model
-cap = cv2.VideoCapture(0)
-w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
-
-out = cv2.VideoWriter('instance-segmentation-object-tracking.avi', cv2.VideoWriter_fourcc(*'MJPG'), fps, (w, h))
-
-while True:
- ret, im0 = cap.read()
- if not ret:
- print("Video frame is empty or video processing has been successfully completed.")
- break
-
- annotator = Annotator(im0, line_width=2)
-
- results = model.track(im0, persist=True)
-
- if results[0].boxes.id is not None and results[0].masks is not None:
- masks = results[0].masks.xy
- track_ids = results[0].boxes.id.int().cpu().tolist()
-
- for mask, track_id in zip(masks, track_ids):
- annotator.seg_bbox(mask=mask,
- mask_color=colors(track_id, True),
- track_label=str(track_id))
-
- out.write(im0)
- cv2.imshow("instance-segmentation-object-tracking", im0)
-
- if cv2.waitKey(1) & 0xFF == ord('q'):
- break
-
-out.release()
-cap.release()
-cv2.destroyAllWindows()
\ No newline at end of file
diff --git a/ultralytics-main/Instance Segmentation-track-pic-video.py b/ultralytics-main/Instance Segmentation-track-pic-video.py
deleted file mode 100644
index ceaef95..0000000
--- a/ultralytics-main/Instance Segmentation-track-pic-video.py
+++ /dev/null
@@ -1,67 +0,0 @@
-from ultralytics import YOLO
-import cv2
-import os
-from ultralytics.utils.plotting import Annotator, colors
-from collections import defaultdict
-if __name__ == '__main__':
-# 实例分割检测文件夹里所有图片视频(实例分割和掩码分割不同):
- model = YOLO('yolov8n-seg.pt')
- names = model.model.names
- input_folder = 'ultralytics/assets' # 输入文件夹
- output_folder = 'runs/detect/test1' # 输出文件夹
-
- if not os.path.exists(output_folder):
- os.makedirs(output_folder)
-
- # 获取输入文件夹中所有文件的文件名
- all_files = [f for f in os.listdir(input_folder)]
-
- for file_name in all_files:
- file_path = os.path.join(input_folder, file_name)
- if file_name.endswith('.jpg') or file_name.endswith('.png'):
- # 处理图片
- im0 = cv2.imread(file_path)
- results = model.track(im0)
- annotator = Annotator(im0, line_width=2)
-
- if results[0].boxes.id is not None and results[0].masks is not None:
- masks = results[0].masks.xy
- track_ids = results[0].boxes.id.int().cpu().tolist()
- for mask, track_id in zip(masks, track_ids):
- annotator.seg_bbox(mask=mask,
- mask_color=colors(track_id, True),
- track_label=str(track_id))
-
- output_path = os.path.join(output_folder, file_name)
- cv2.imwrite(output_path, im0)
-
- elif file_name.endswith('.mp4') or file_name.endswith('.avi'):
- # 处理视频
- cap = cv2.VideoCapture(file_path)
- w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
-
- out = cv2.VideoWriter(os.path.join(output_folder, file_name + '_segmented.avi'), cv2.VideoWriter_fourcc(*'MJPG'),
- fps, (w, h))
-
- while True:
- ret, im0 = cap.read()
- if not ret:
- print(f"视频 {file_name} 处理完成")
- break
-
- results = model.track(im0)
- annotator = Annotator(im0, line_width=2)
-
- if results[0].boxes.id is not None and results[0].masks is not None:
- masks = results[0].masks.xy
- track_ids = results[0].boxes.id.int().cpu().tolist()
- for mask, track_id in zip(masks, track_ids):
- annotator.seg_bbox(mask=mask,
- mask_color=colors(track_id, True),
- track_label=str(track_id))
-
- out.write(im0)
- cv2.imshow("instance-segmentation", im0)
-
- out.release()
- cap.release()
diff --git a/ultralytics-main/dataset/coco128/images/train2017/image_BS1_456_00_42_15.jpg b/ultralytics-main/dataset/coco128/images/train2017/image_BS1_456_00_42_15.jpg
deleted file mode 100644
index bef0dcb50ef31f3d60abeed72fcc9e63f89c41cb..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 232956
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