@@ -55,7 +55,7 @@ See below for a quickstart install and usage examples, and see our [Docs](https:
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/).
-[](https://pypi.org/project/ultralytics/) [](https://pepy.tech/project/ultralytics) [](https://pypi.org/project/ultralytics/)
+[](https://pypi.org/project/ultralytics/) [](https://www.pepy.tech/projects/ultralytics) [](https://pypi.org/project/ultralytics/)
```bash
pip install ultralytics
diff --git a/README.zh-CN.md b/README.zh-CN.md
index caf5e6b4..418652ed 100644
--- a/README.zh-CN.md
+++ b/README.zh-CN.md
@@ -8,7 +8,7 @@

-

+

@@ -55,7 +55,7 @@
在 [**Python>=3.8**](https://www.python.org/) 环境中使用 [**PyTorch>=1.8**](https://pytorch.org/get-started/locally/) 通过 pip 安装包含所有[依赖项](https://github.com/ultralytics/ultralytics/blob/main/pyproject.toml) 的 ultralytics 包。
-[](https://pypi.org/project/ultralytics/) [](https://pepy.tech/project/ultralytics) [](https://pypi.org/project/ultralytics/)
+[](https://pypi.org/project/ultralytics/) [](https://www.pepy.tech/projects/ultralytics) [](https://pypi.org/project/ultralytics/)
```bash
pip install ultralytics
diff --git a/docs/README.md b/docs/README.md
index a3d3edb4..802352b5 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -15,7 +15,7 @@
## 🛠️ Installation
[](https://pypi.org/project/ultralytics/)
-[](https://pepy.tech/project/ultralytics)
+[](https://www.pepy.tech/projects/ultralytics)
[](https://pypi.org/project/ultralytics/)
To install the ultralytics package in developer mode, ensure you have Git and Python 3 installed on your system. Then, follow these steps:
diff --git a/docs/en/index.md b/docs/en/index.md
index ef1245f8..3794403c 100644
--- a/docs/en/index.md
+++ b/docs/en/index.md
@@ -20,7 +20,7 @@ keywords: Ultralytics, YOLO, YOLO11, object detection, image segmentation, deep

-

+

diff --git a/docs/en/models/yolo11.md b/docs/en/models/yolo11.md
index dee9344b..872c7e1e 100644
--- a/docs/en/models/yolo11.md
+++ b/docs/en/models/yolo11.md
@@ -130,7 +130,7 @@ Note that the example below is for YOLO11 [Detect](../tasks/detect.md) models fo
!!! tip "Ultralytics YOLO11 Publication"
- Ultralytics has not published a formal research paper for YOLO11 due to the rapidly evolving nature of the models. We focus on advancing the technology and making it easier to use, rather than producing static documentation. For the most up-to-date information on YOLO architecture, features, and usage, please refer to our [GitHub repository](https://github.com/ultralytics/ultralytics) and [documentation](https://docs.ultralytics.com).
+ Ultralytics has not published a formal research paper for YOLO11 due to the rapidly evolving nature of the models. We focus on advancing the technology and making it easier to use, rather than producing static documentation. For the most up-to-date information on YOLO architecture, features, and usage, please refer to our [GitHub repository](https://github.com/ultralytics/ultralytics) and [documentation](https://docs.ultralytics.com/).
If you use YOLO11 or any other software from this repository in your work, please cite it using the following format:
diff --git a/docs/en/models/yolov5.md b/docs/en/models/yolov5.md
index 4d261df5..c973bf05 100644
--- a/docs/en/models/yolov5.md
+++ b/docs/en/models/yolov5.md
@@ -94,7 +94,7 @@ This example provides simple YOLOv5 training and inference examples. For full do
!!! tip "Ultralytics YOLOv5 Publication"
- Ultralytics has not published a formal research paper for YOLOv5 due to the rapidly evolving nature of the models. We focus on advancing the technology and making it easier to use, rather than producing static documentation. For the most up-to-date information on YOLO architecture, features, and usage, please refer to our [GitHub repository](https://github.com/ultralytics/ultralytics) and [documentation](https://docs.ultralytics.com).
+ Ultralytics has not published a formal research paper for YOLOv5 due to the rapidly evolving nature of the models. We focus on advancing the technology and making it easier to use, rather than producing static documentation. For the most up-to-date information on YOLO architecture, features, and usage, please refer to our [GitHub repository](https://github.com/ultralytics/ultralytics) and [documentation](https://docs.ultralytics.com/).
If you use YOLOv5 or YOLOv5u in your research, please cite the Ultralytics YOLOv5 repository as follows:
diff --git a/docs/en/models/yolov8.md b/docs/en/models/yolov8.md
index bb4f287a..7d350848 100644
--- a/docs/en/models/yolov8.md
+++ b/docs/en/models/yolov8.md
@@ -167,7 +167,7 @@ Note the below example is for YOLOv8 [Detect](../tasks/detect.md) models for obj
!!! tip "Ultralytics YOLOv8 Publication"
- Ultralytics has not published a formal research paper for YOLOv8 due to the rapidly evolving nature of the models. We focus on advancing the technology and making it easier to use, rather than producing static documentation. For the most up-to-date information on YOLO architecture, features, and usage, please refer to our [GitHub repository](https://github.com/ultralytics/ultralytics) and [documentation](https://docs.ultralytics.com).
+ Ultralytics has not published a formal research paper for YOLOv8 due to the rapidly evolving nature of the models. We focus on advancing the technology and making it easier to use, rather than producing static documentation. For the most up-to-date information on YOLO architecture, features, and usage, please refer to our [GitHub repository](https://github.com/ultralytics/ultralytics) and [documentation](https://docs.ultralytics.com/).
If you use the YOLOv8 model or any other software from this repository in your work, please cite it using the following format:
diff --git a/docs/en/quickstart.md b/docs/en/quickstart.md
index 204623cc..da4d8624 100644
--- a/docs/en/quickstart.md
+++ b/docs/en/quickstart.md
@@ -28,7 +28,7 @@ Ultralytics provides various installation methods including pip, conda, and Dock
Install the `ultralytics` package using pip, or update an existing installation by running `pip install -U ultralytics`. Visit the Python Package Index (PyPI) for more details on the `ultralytics` package: [https://pypi.org/project/ultralytics/](https://pypi.org/project/ultralytics/).
[](https://pypi.org/project/ultralytics/)
- [](https://pepy.tech/project/ultralytics)
+ [](https://www.pepy.tech/projects/ultralytics)
```bash
# Install the ultralytics package from PyPI
diff --git a/docs/overrides/javascript/extra.js b/docs/overrides/javascript/extra.js
index e2faf798..fa9d79b0 100644
--- a/docs/overrides/javascript/extra.js
+++ b/docs/overrides/javascript/extra.js
@@ -47,7 +47,9 @@ checkAutoTheme();
document.addEventListener("DOMContentLoaded", () => {
const autoThemeInput = document.getElementById("__palette_1");
autoThemeInput?.addEventListener("click", () => {
- if (autoThemeInput.checked) setTimeout(checkAutoTheme);
+ if (autoThemeInput.checked) {
+ setTimeout(checkAutoTheme);
+ }
});
});
@@ -165,7 +167,9 @@ let chart = null; // chart variable will hold the reference to the current char
// This function is responsible for updating the benchmarks chart.
function updateChart() {
// If a chart instance already exists, destroy it.
- if (chart) chart.destroy();
+ if (chart) {
+ chart.destroy();
+ }
// Get the selected algorithms from the checkboxes.
const selectedAlgorithms = [...document.querySelectorAll('input[name="algorithm"]:checked')].map(e => e.value);
@@ -187,7 +191,9 @@ function updateChart() {
}));
// If there are no selected algorithms, return without creating a new chart.
- if (datasets.length === 0) return;
+ if (datasets.length === 0) {
+ return;
+ }
// Create a new chart instance.
chart = new Chart(document.getElementById('chart').getContext('2d'), {
diff --git a/docs/overrides/javascript/giscus.js b/docs/overrides/javascript/giscus.js
index a64e2973..008ba294 100644
--- a/docs/overrides/javascript/giscus.js
+++ b/docs/overrides/javascript/giscus.js
@@ -1,7 +1,9 @@
// Giscus functionality
function loadGiscus() {
const giscusContainer = document.getElementById("giscus-container");
- if (!giscusContainer || giscusContainer.querySelector("script")) return;
+ if (!giscusContainer || giscusContainer.querySelector("script")) {
+ return;
+ }
const script = document.createElement("script");
script.src = "https://giscus.app/client.js";
diff --git a/examples/heatmaps.ipynb b/examples/heatmaps.ipynb
index d0124df8..b4c94c35 100644
--- a/examples/heatmaps.ipynb
+++ b/examples/heatmaps.ipynb
@@ -38,7 +38,7 @@
"\n",
"Pip install `ultralytics` and [dependencies](https://github.com/ultralytics/ultralytics/blob/main/pyproject.toml) and check software and hardware.\n",
"\n",
- "[](https://pypi.org/project/ultralytics/) [](https://pepy.tech/project/ultralytics) [](https://pypi.org/project/ultralytics/)"
+ "[](https://pypi.org/project/ultralytics/) [](https://www.pepy.tech/projects/ultralytics) [](https://pypi.org/project/ultralytics/)"
]
},
{
diff --git a/examples/hub.ipynb b/examples/hub.ipynb
index 03382596..bf7e27f9 100644
--- a/examples/hub.ipynb
+++ b/examples/hub.ipynb
@@ -36,7 +36,7 @@
"\n",
"Pip install `ultralytics` and [dependencies](https://github.com/ultralytics/ultralytics/blob/main/pyproject.toml) and check software and hardware.\n",
"\n",
- "[](https://pypi.org/project/ultralytics/) [](https://pepy.tech/project/ultralytics) [](https://pypi.org/project/ultralytics/)"
+ "[](https://pypi.org/project/ultralytics/) [](https://www.pepy.tech/projects/ultralytics) [](https://pypi.org/project/ultralytics/)"
]
},
{
diff --git a/examples/object_counting.ipynb b/examples/object_counting.ipynb
index e742cff6..83f245d6 100644
--- a/examples/object_counting.ipynb
+++ b/examples/object_counting.ipynb
@@ -38,7 +38,7 @@
"\n",
"Pip install `ultralytics` and [dependencies](https://github.com/ultralytics/ultralytics/blob/main/pyproject.toml) and check software and hardware.\n",
"\n",
- "[](https://pypi.org/project/ultralytics/) [](https://pepy.tech/project/ultralytics) [](https://pypi.org/project/ultralytics/)"
+ "[](https://pypi.org/project/ultralytics/) [](https://www.pepy.tech/projects/ultralytics) [](https://pypi.org/project/ultralytics/)"
]
},
{
diff --git a/examples/object_tracking.ipynb b/examples/object_tracking.ipynb
index cc4d03ad..d7f4d42b 100644
--- a/examples/object_tracking.ipynb
+++ b/examples/object_tracking.ipynb
@@ -38,7 +38,7 @@
"\n",
"Pip install `ultralytics` and [dependencies](https://github.com/ultralytics/ultralytics/blob/main/pyproject.toml) and check software and hardware.\n",
"\n",
- "[](https://pypi.org/project/ultralytics/) [](https://pepy.tech/project/ultralytics) [](https://pypi.org/project/ultralytics/)"
+ "[](https://pypi.org/project/ultralytics/) [](https://www.pepy.tech/projects/ultralytics) [](https://pypi.org/project/ultralytics/)"
]
},
{
diff --git a/examples/tutorial.ipynb b/examples/tutorial.ipynb
index 75dd455e..5eadcf3e 100644
--- a/examples/tutorial.ipynb
+++ b/examples/tutorial.ipynb
@@ -55,7 +55,7 @@
"\n",
"Pip install `ultralytics` and [dependencies](https://github.com/ultralytics/ultralytics/blob/main/pyproject.toml) and check software and hardware.\n",
"\n",
- "[](https://pypi.org/project/ultralytics/) [](https://pepy.tech/project/ultralytics) [](https://pypi.org/project/ultralytics/)"
+ "[](https://pypi.org/project/ultralytics/) [](https://www.pepy.tech/projects/ultralytics) [](https://pypi.org/project/ultralytics/)"
]
},
{
diff --git a/ultralytics/engine/exporter.py b/ultralytics/engine/exporter.py
index 00a7b6c7..9fca6c28 100644
--- a/ultralytics/engine/exporter.py
+++ b/ultralytics/engine/exporter.py
@@ -568,8 +568,7 @@ class Exporter:
f = str(self.file.with_suffix(".mnn")) # MNN model file
args = ["", "-f", "ONNX", "--modelFile", f_onnx, "--MNNModel", f, "--bizCode", json.dumps(self.metadata)]
if self.args.int8:
- args.append("--weightQuantBits")
- args.append("8")
+ args.extend(("--weightQuantBits", "8"))
if self.args.half:
args.append("--fp16")
mnnconvert.convert(args)
diff --git a/ultralytics/engine/trainer.py b/ultralytics/engine/trainer.py
index 068274a4..a7e3922b 100644
--- a/ultralytics/engine/trainer.py
+++ b/ultralytics/engine/trainer.py
@@ -792,7 +792,7 @@ class BaseTrainer:
g[0].append(param)
optimizers = {"Adam", "Adamax", "AdamW", "NAdam", "RAdam", "RMSProp", "SGD", "auto"}
- name = {x.lower(): x for x in optimizers}.get(name.lower(), None)
+ name = {x.lower(): x for x in optimizers}.get(name.lower())
if name in {"Adam", "Adamax", "AdamW", "NAdam", "RAdam"}:
optimizer = getattr(optim, name, optim.Adam)(g[2], lr=lr, betas=(momentum, 0.999), weight_decay=0.0)
elif name == "RMSProp":
diff --git a/ultralytics/solutions/solutions.py b/ultralytics/solutions/solutions.py
index 20c2ce90..ea947670 100644
--- a/ultralytics/solutions/solutions.py
+++ b/ultralytics/solutions/solutions.py
@@ -72,14 +72,13 @@ class BaseSolution:
self.model = YOLO(self.CFG["model"])
self.names = self.model.names
- if IS_CLI: # for CLI, download the source and init video writer
- if self.CFG["source"] is None:
- d_s = "solutions_ci_demo.mp4" if "-pose" not in self.CFG["model"] else "solution_ci_pose_demo.mp4"
- LOGGER.warning(f"⚠️ WARNING: source not provided. using default source {ASSETS_URL}/{d_s}")
- from ultralytics.utils.downloads import safe_download
+ if IS_CLI and self.CFG["source"] is None:
+ d_s = "solutions_ci_demo.mp4" if "-pose" not in self.CFG["model"] else "solution_ci_pose_demo.mp4"
+ LOGGER.warning(f"⚠️ WARNING: source not provided. using default source {ASSETS_URL}/{d_s}")
+ from ultralytics.utils.downloads import safe_download
- safe_download(f"{ASSETS_URL}/{d_s}") # download source from ultralytics assets
- self.CFG["source"] = d_s # set default source
+ safe_download(f"{ASSETS_URL}/{d_s}") # download source from ultralytics assets
+ self.CFG["source"] = d_s # set default source
# Initialize environment and region setup
self.env_check = check_imshow(warn=True)
diff --git a/ultralytics/utils/callbacks/comet.py b/ultralytics/utils/callbacks/comet.py
index 3fae97f9..ef6e88c3 100644
--- a/ultralytics/utils/callbacks/comet.py
+++ b/ultralytics/utils/callbacks/comet.py
@@ -291,7 +291,7 @@ def _log_plots(experiment, trainer):
for plots in EVALUATION_PLOT_NAMES
for prefix in POSE_METRICS_PLOT_PREFIX
]
- elif isinstance(trainer.validator.metrics, DetMetrics) or isinstance(trainer.validator.metrics, OBBMetrics):
+ elif isinstance(trainer.validator.metrics, (DetMetrics, OBBMetrics)):
plot_filenames = [trainer.save_dir / f"{plots}.png" for plots in EVALUATION_PLOT_NAMES]
if plot_filenames is not None: