diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
index 3d505d5..67a70eb 100644
--- a/.github/workflows/ci.yaml
+++ b/.github/workflows/ci.yaml
@@ -125,16 +125,16 @@ jobs:
pip list
- name: Benchmark DetectionModel
shell: bash
- run: yolo benchmark model='path with spaces/${{ matrix.model }}.pt' imgsz=160, verbose=0.26
+ run: yolo benchmark model='path with spaces/${{ matrix.model }}.pt' imgsz=160 verbose=0.26
- name: Benchmark SegmentationModel
shell: bash
- run: yolo benchmark model='path with spaces/${{ matrix.model }}-seg.pt' imgsz=160, verbose=0.30
+ run: yolo benchmark model='path with spaces/${{ matrix.model }}-seg.pt' imgsz=160 verbose=0.30
- name: Benchmark ClassificationModel
shell: bash
- run: yolo benchmark model='path with spaces/${{ matrix.model }}-cls.pt' imgsz=160, verbose=0.36
+ run: yolo benchmark model='path with spaces/${{ matrix.model }}-cls.pt' imgsz=160 verbose=0.36
- name: Benchmark PoseModel
shell: bash
- run: yolo benchmark model='path with spaces/${{ matrix.model }}-pose.pt' imgsz=160, verbose=0.17
+ run: yolo benchmark model='path with spaces/${{ matrix.model }}-pose.pt' imgsz=160 verbose=0.17
- name: Benchmark Summary
run: |
cat benchmarks.log
diff --git a/.github/workflows/docker.yaml b/.github/workflows/docker.yaml
index 1cf4b49..eb78e9a 100644
--- a/.github/workflows/docker.yaml
+++ b/.github/workflows/docker.yaml
@@ -74,7 +74,8 @@ jobs:
docker run ultralytics/ultralytics:${{ matrix.tags }} /bin/bash -c "pip install pytest && pytest tests"
- name: Run Benchmarks
- if: (github.event_name == 'push' || github.event.inputs.dockerfile == matrix.dockerfile) && matrix.platforms == 'linux/amd64' # arm64 images not supported on GitHub CI runners
+ # WARNING: Dockerfile (GPU) error on TF.js export 'module 'numpy' has no attribute 'object'.
+ if: (github.event_name == 'push' || github.event.inputs.dockerfile == matrix.dockerfile) && matrix.platforms == 'linux/amd64' && matrix.dockerfile != 'Dockerfile' # arm64 images not supported on GitHub CI runners
run: |
docker run ultralytics/ultralytics:${{ matrix.tags }} yolo benchmark model=yolov8n.pt imgsz=160 verbose=0.26
diff --git a/README.md b/README.md
index 6a30790..d016bcb 100644
--- a/README.md
+++ b/README.md
@@ -192,6 +192,8 @@ See [Pose Docs](https://docs.ultralytics.com/tasks/pose) for usage examples with
##
Integrations
+Our key integrations with leading AI platforms extend the functionality of Ultralytics' offerings, enhancing tasks like dataset labeling, training, visualization, and model management. Discover how Ultralytics, in collaboration with [Roboflow](https://roboflow.com/?ref=ultralytics), ClearML, [Comet](https://bit.ly/yolov8-readme-comet), Neural Magic and [OpenVINO](https://docs.ultralytics.com/integrations/openvino), can optimize your AI workflow.
+
diff --git a/README.zh-CN.md b/README.zh-CN.md
index e71f57e..29fdc0a 100644
--- a/README.zh-CN.md
+++ b/README.zh-CN.md
@@ -191,6 +191,8 @@ success = model.export(format="onnx") # 将模型导出为 ONNX 格式
## 集成
+我们与领先的AI平台的关键整合扩展了Ultralytics产品的功能,增强了数据集标签化、训练、可视化和模型管理等任务。探索Ultralytics如何与[Roboflow](https://roboflow.com/?ref=ultralytics)、ClearML、[Comet](https://bit.ly/yolov8-readme-comet)、Neural Magic以及[OpenVINO](https://docs.ultralytics.com/integrations/openvino)合作,优化您的AI工作流程。
+
diff --git a/docs/integrations/index.md b/docs/integrations/index.md
new file mode 100644
index 0000000..89e5964
--- /dev/null
+++ b/docs/integrations/index.md
@@ -0,0 +1,61 @@
+---
+comments: true
+description: Explore Ultralytics integrations with tools for dataset management, model optimization, ML workflows automation, experiment tracking, version control, and more. Learn about our support for various model export formats for deployment.
+keywords: Ultralytics integrations, Roboflow, Neural Magic, ClearML, Comet ML, DVC, Ultralytics HUB, MLFlow, Neptune, Ray Tune, TensorBoard, W&B, model export formats, PyTorch, TorchScript, ONNX, OpenVINO, TensorRT, CoreML, TF SavedModel, TF GraphDef, TF Lite, TF Edge TPU, TF.js, PaddlePaddle, NCNN
+---
+
+# Ultralytics Integrations
+
+Welcome to the Ultralytics Integrations page! This page provides an overview of our partnerships with various tools and platforms, designed to streamline your machine learning workflows, enhance dataset management, simplify model training, and facilitate efficient deployment.
+
+
+
+## Datasets Integrations
+
+- [Roboflow](https://roboflow.com/): Facilitate seamless dataset management for Ultralytics models, offering robust annotation, preprocessing, and augmentation capabilities.
+
+## Training Integrations
+
+- [Comet ML](https://www.comet.ml/): Enhance your model development with Ultralytics by tracking, comparing, and optimizing your machine learning experiments.
+
+- [ClearML](https://clear.ml/): Automate your Ultralytics ML workflows, monitor experiments, and foster team collaboration.
+
+- [DVC](https://dvc.org/): Implement version control for your Ultralytics machine learning projects, synchronizing data, code, and models effectively.
+
+- [Ultralytics HUB](https://hub.ultralytics.com): Access and contribute to a community of pre-trained Ultralytics models.
+
+- [MLFlow](https://mlflow.org/): Streamline the entire ML lifecycle of Ultralytics models, from experimentation and reproducibility to deployment.
+
+- [Neptune](https://neptune.ai/): Maintain a comprehensive log of your ML experiments with Ultralytics in this metadata store designed for MLOps.
+
+- [Ray Tune](ray-tune.md): Optimize the hyperparameters of your Ultralytics models at any scale.
+
+- [TensorBoard](https://tensorboard.dev/): Visualize your Ultralytics ML workflows, monitor model metrics, and foster team collaboration.
+
+- [Weights & Biases (W&B)](https://wandb.ai/site): Monitor experiments, visualize metrics, and foster reproducibility and collaboration on Ultralytics projects.
+
+## Deployment Integrations
+
+- [Neural Magic](https://neuralmagic.com/): Leverage Quantization Aware Training (QAT) and pruning techniques to optimize Ultralytics models for superior performance and leaner size.
+
+### Export Formats
+
+We also support a variety of model export formats for deployment in different environments. Here are the available formats:
+
+| Format | `format` Argument | Model | Metadata | Arguments |
+|--------------------------------------------------------------------|-------------------|---------------------------|----------|-----------------------------------------------------|
+| [PyTorch](https://pytorch.org/) | - | `yolov8n.pt` | ✅ | - |
+| [TorchScript](https://pytorch.org/docs/stable/jit.html) | `torchscript` | `yolov8n.torchscript` | ✅ | `imgsz`, `optimize` |
+| [ONNX](https://onnx.ai/) | `onnx` | `yolov8n.onnx` | ✅ | `imgsz`, `half`, `dynamic`, `simplify`, `opset` |
+| [OpenVINO](/integrations/openvino.md) | `openvino` | `yolov8n_openvino_model/` | ✅ | `imgsz`, `half` |
+| [TensorRT](https://developer.nvidia.com/tensorrt) | `engine` | `yolov8n.engine` | ✅ | `imgsz`, `half`, `dynamic`, `simplify`, `workspace` |
+| [CoreML](https://github.com/apple/coremltools) | `coreml` | `yolov8n.mlmodel` | ✅ | `imgsz`, `half`, `int8`, `nms` |
+| [TF SavedModel](https://www.tensorflow.org/guide/saved_model) | `saved_model` | `yolov8n_saved_model/` | ✅ | `imgsz`, `keras` |
+| [TF GraphDef](https://www.tensorflow.org/api_docs/python/tf/Graph) | `pb` | `yolov8n.pb` | ❌ | `imgsz` |
+| [TF Lite](https://www.tensorflow.org/lite) | `tflite` | `yolov8n.tflite` | ✅ | `imgsz`, `half`, `int8` |
+| [TF Edge TPU](https://coral.ai/docs/edgetpu/models-intro/) | `edgetpu` | `yolov8n_edgetpu.tflite` | ✅ | `imgsz` |
+| [TF.js](https://www.tensorflow.org/js) | `tfjs` | `yolov8n_web_model/` | ✅ | `imgsz` |
+| [PaddlePaddle](https://github.com/PaddlePaddle) | `paddle` | `yolov8n_paddle_model/` | ✅ | `imgsz` |
+| [NCNN](https://github.com/Tencent/ncnn) | `ncnn` | `yolov8n_ncnn_model/` | ✅ | `imgsz`, `half` |
+
+Explore the links to learn more about each integration and how to get the most out of them with Ultralytics.
diff --git a/docs/integrations/openvino.md b/docs/integrations/openvino.md
new file mode 100644
index 0000000..0cc1468
--- /dev/null
+++ b/docs/integrations/openvino.md
@@ -0,0 +1,271 @@
+---
+comments: true
+description: Discover the power of deploying your Ultralytics YOLOv8 model using OpenVINO format for up to 10x speedup vs PyTorch.
+keywords: ultralytics docs, YOLOv8, export YOLOv8, YOLOv8 model deployment, exporting YOLOv8, OpenVINO, OpenVINO format
+---
+
+
+
+**Export mode** is used for exporting a YOLOv8 model to a format that can be used for deployment. In this guide, we specifically cover exporting to OpenVINO, which can provide up to 3x [CPU](https://docs.openvino.ai/2023.0/openvino_docs_OV_UG_supported_plugins_CPU.html) speedup as well as accelerating on other Intel hardware ([iGPU](https://docs.openvino.ai/2023.0/openvino_docs_OV_UG_supported_plugins_GPU.html), [dGPU](https://docs.openvino.ai/2023.0/openvino_docs_OV_UG_supported_plugins_GPU.html), [VPU](https://docs.openvino.ai/2022.3/openvino_docs_OV_UG_supported_plugins_VPU.html), etc.).
+
+OpenVINO, short for Open Visual Inference & Neural Network Optimization toolkit, is a comprehensive toolkit for optimizing and deploying AI inference models. Even though the name contains Visual, OpenVINO also supports various additional tasks including language, audio, time series, etc.
+
+## Usage Examples
+
+Export a YOLOv8n model to OpenVINO format and run inference with the exported model.
+
+!!! example ""
+
+ === "Python"
+
+ ```python
+ from ultralytics import YOLO
+
+ # Load a YOLOv8n PyTorch model
+ model = YOLO('yolov8n.pt')
+
+ # Export the model
+ model.export(format='openvino') # creates 'yolov8n_openvino_model/'
+
+ # Load the exported OpenVINO model
+ ov_model = YOLO('yolov8n_openvino_model/')
+
+ # Run inference
+ results = ov_model('https://ultralytics.com/images/bus.jpg')
+ ```
+ === "CLI"
+
+ ```bash
+ # Export a YOLOv8n PyTorch model to OpenVINO format
+ yolo export model=yolov8n.pt format=openvino # creates 'yolov8n_openvino_model/'
+
+ # Run inference with the exported model
+ yolo predict model=yolov8n_openvino_model source='https://ultralytics.com/images/bus.jpg'
+ ```
+
+## Arguments
+
+| Key | Value | Description |
+|----------|--------------|------------------------------------------------------|
+| `format` | `'openvino'` | format to export to |
+| `imgsz` | `640` | image size as scalar or (h, w) list, i.e. (640, 480) |
+| `half` | `False` | FP16 quantization |
+
+## Benefits of OpenVINO
+
+1. **Performance**: OpenVINO delivers high-performance inference by utilizing the power of Intel CPUs, integrated and discrete GPUs, and FPGAs.
+2. **Support for Heterogeneous Execution**: OpenVINO provides an API to write once and deploy on any supported Intel hardware (CPU, GPU, FPGA, VPU, etc.).
+3. **Model Optimizer**: OpenVINO provides a Model Optimizer that imports, converts, and optimizes models from popular deep learning frameworks such as PyTorch, TensorFlow, TensorFlow Lite, Keras, ONNX, PaddlePaddle, and Caffe.
+4. **Ease of Use**: The toolkit comes with more than [80 tutorial notebooks](https://github.com/openvinotoolkit/openvino_notebooks) (including [YOLOv8 optimization](https://github.com/openvinotoolkit/openvino_notebooks/tree/main/notebooks/230-yolov8-optimization)) teaching different aspects of the toolkit.
+
+## OpenVINO Export Structure
+
+When you export a model to OpenVINO format, it results in a directory containing the following:
+
+1. **XML file**: Describes the network topology.
+2. **BIN file**: Contains the weights and biases binary data.
+3. **Mapping file**: Holds mapping of original model output tensors to OpenVINO tensor names.
+
+You can use these files to run inference with the OpenVINO Inference Engine.
+
+## Using OpenVINO Export in Deployment
+
+Once you have the OpenVINO files, you can use the OpenVINO Runtime to run the model. The Runtime provides a unified API to inference across all supported Intel hardware. It also provides advanced capabilities like load balancing across Intel hardware and asynchronous execution. For more information on running the inference, refer to the [Inference with OpenVINO Runtime Guide](https://docs.openvino.ai/2023.0/openvino_docs_OV_UG_OV_Runtime_User_Guide.html).
+
+Remember, you'll need the XML and BIN files as well as any application-specific settings like input size, scale factor for normalization, etc., to correctly set up and use the model with the Runtime.
+
+In your deployment application, you would typically do the following steps:
+
+1. Initialize OpenVINO by creating `core = Core()`.
+2. Load the model using the `core.read_model()` method.
+3. Compile the model using the `core.compile_model()` function.
+4. Prepare the input (image, text, audio, etc.).
+5. Run inference using `compiled_model(input_data)`.
+
+For more detailed steps and code snippets, refer to the [OpenVINO documentation](https://docs.openvino.ai/) or [API tutorial](https://github.com/openvinotoolkit/openvino_notebooks/blob/main/notebooks/002-openvino-api/002-openvino-api.ipynb).
+
+## OpenVINO YOLOv8 Benchmarks
+
+YOLOv8 benchmarks below were run by the Ultralytics team on 4 different model formats measuring speed and accuracy: PyTorch, TorchScript, ONNX and OpenVINO. Benchmarks were run on Intel Flex and Arc GPUs, and on Intel Xeon CPUs at FP32 precision (with the `half=False` argument).
+
+!!! note
+
+ The benchmarking results below are for reference and might vary based on the exact hardware and software configuration of a system, as well as the current workload of the system at the time the benchmarks are run.
+
+ All benchmarks run with `openvino` python package version [2023.0.1](https://pypi.org/project/openvino/2023.0.1/).
+
+### Intel Flex GPU
+
+The Intel® Data Center GPU Flex Series is a versatile and robust solution designed for the intelligent visual cloud. This GPU supports a wide array of workloads including media streaming, cloud gaming, AI visual inference, and virtual desktop Infrastructure workloads. It stands out for its open architecture and built-in support for the AV1 encode, providing a standards-based software stack for high-performance, cross-architecture applications. The Flex Series GPU is optimized for density and quality, offering high reliability, availability, and scalability.
+
+Benchmarks below run on Intel® Data Center GPU Flex 170 at FP32 precision.
+
+
+
+
+
+| Model | Format | Status | Size (MB) | mAP50-95(B) | Inference time (ms/im) |
+|---------|-------------|--------|-----------|-------------|------------------------|
+| YOLOv8n | PyTorch | ✅ | 6.2 | 0.3709 | 21.79 |
+| YOLOv8n | TorchScript | ✅ | 12.4 | 0.3704 | 23.24 |
+| YOLOv8n | ONNX | ✅ | 12.2 | 0.3704 | 37.22 |
+| YOLOv8n | OpenVINO | ✅ | 12.3 | 0.3703 | 3.29 |
+| YOLOv8s | PyTorch | ✅ | 21.5 | 0.4471 | 31.89 |
+| YOLOv8s | TorchScript | ✅ | 42.9 | 0.4472 | 32.71 |
+| YOLOv8s | ONNX | ✅ | 42.8 | 0.4472 | 43.42 |
+| YOLOv8s | OpenVINO | ✅ | 42.9 | 0.4470 | 3.92 |
+| YOLOv8m | PyTorch | ✅ | 49.7 | 0.5013 | 50.75 |
+| YOLOv8m | TorchScript | ✅ | 99.2 | 0.4999 | 47.90 |
+| YOLOv8m | ONNX | ✅ | 99.0 | 0.4999 | 63.16 |
+| YOLOv8m | OpenVINO | ✅ | 49.8 | 0.4997 | 7.11 |
+| YOLOv8l | PyTorch | ✅ | 83.7 | 0.5293 | 77.45 |
+| YOLOv8l | TorchScript | ✅ | 167.2 | 0.5268 | 85.71 |
+| YOLOv8l | ONNX | ✅ | 166.8 | 0.5268 | 88.94 |
+| YOLOv8l | OpenVINO | ✅ | 167.0 | 0.5264 | 9.37 |
+| YOLOv8x | PyTorch | ✅ | 130.5 | 0.5404 | 100.09 |
+| YOLOv8x | TorchScript | ✅ | 260.7 | 0.5371 | 114.64 |
+| YOLOv8x | ONNX | ✅ | 260.4 | 0.5371 | 110.32 |
+| YOLOv8x | OpenVINO | ✅ | 260.6 | 0.5367 | 15.02 |
+
+This table represents the benchmark results for five different models (YOLOv8n, YOLOv8s, YOLOv8m, YOLOv8l, YOLOv8x) across four different formats (PyTorch, TorchScript, ONNX, OpenVINO), giving us the status, size, mAP50-95(B) metric, and inference time for each combination.
+
+### Intel Arc GPU
+
+Intel® Arc™ represents Intel's foray into the dedicated GPU market. The Arc™ series, designed to compete with leading GPU manufacturers like AMD and Nvidia, caters to both the laptop and desktop markets. The series includes mobile versions for compact devices like laptops, and larger, more powerful versions for desktop computers.
+
+The Arc™ series is divided into three categories: Arc™ 3, Arc™ 5, and Arc™ 7, with each number indicating the performance level. Each category includes several models, and the 'M' in the GPU model name signifies a mobile, integrated variant.
+
+Early reviews have praised the Arc™ series, particularly the integrated A770M GPU, for its impressive graphics performance. The availability of the Arc™ series varies by region, and additional models are expected to be released soon. Intel® Arc™ GPUs offer high-performance solutions for a range of computing needs, from gaming to content creation.
+
+Benchmarks below run on Intel® Arc 770 GPU at FP32 precision.
+
+
+
+
+
+| Model | Format | Status | Size (MB) | metrics/mAP50-95(B) | Inference time (ms/im) |
+|---------|-------------|--------|-----------|---------------------|------------------------|
+| YOLOv8n | PyTorch | ✅ | 6.2 | 0.3709 | 88.79 |
+| YOLOv8n | TorchScript | ✅ | 12.4 | 0.3704 | 102.66 |
+| YOLOv8n | ONNX | ✅ | 12.2 | 0.3704 | 57.98 |
+| YOLOv8n | OpenVINO | ✅ | 12.3 | 0.3703 | 8.52 |
+| YOLOv8s | PyTorch | ✅ | 21.5 | 0.4471 | 189.83 |
+| YOLOv8s | TorchScript | ✅ | 42.9 | 0.4472 | 227.58 |
+| YOLOv8s | ONNX | ✅ | 42.7 | 0.4472 | 142.03 |
+| YOLOv8s | OpenVINO | ✅ | 42.9 | 0.4469 | 9.19 |
+| YOLOv8m | PyTorch | ✅ | 49.7 | 0.5013 | 411.64 |
+| YOLOv8m | TorchScript | ✅ | 99.2 | 0.4999 | 517.12 |
+| YOLOv8m | ONNX | ✅ | 98.9 | 0.4999 | 298.68 |
+| YOLOv8m | OpenVINO | ✅ | 99.1 | 0.4996 | 12.55 |
+| YOLOv8l | PyTorch | ✅ | 83.7 | 0.5293 | 725.73 |
+| YOLOv8l | TorchScript | ✅ | 167.1 | 0.5268 | 892.83 |
+| YOLOv8l | ONNX | ✅ | 166.8 | 0.5268 | 576.11 |
+| YOLOv8l | OpenVINO | ✅ | 167.0 | 0.5262 | 17.62 |
+| YOLOv8x | PyTorch | ✅ | 130.5 | 0.5404 | 988.92 |
+| YOLOv8x | TorchScript | ✅ | 260.7 | 0.5371 | 1186.42 |
+| YOLOv8x | ONNX | ✅ | 260.4 | 0.5371 | 768.90 |
+| YOLOv8x | OpenVINO | ✅ | 260.6 | 0.5367 | 19 |
+
+### Intel Xeon CPU
+
+The Intel® Xeon® CPU is a high-performance, server-grade processor designed for complex and demanding workloads. From high-end cloud computing and virtualization to artificial intelligence and machine learning applications, Xeon® CPUs provide the power, reliability, and flexibility required for today's data centers.
+
+Notably, Xeon® CPUs deliver high compute density and scalability, making them ideal for both small businesses and large enterprises. By choosing Intel® Xeon® CPUs, organizations can confidently handle their most demanding computing tasks and foster innovation while maintaining cost-effectiveness and operational efficiency.
+
+Benchmarks below run on 4th Gen Intel® Xeon® Scalable CPU at FP32 precision.
+
+
+
+
+
+| Model | Format | Status | Size (MB) | metrics/mAP50-95(B) | Inference time (ms/im) |
+|---------|-------------|--------|-----------|---------------------|------------------------|
+| YOLOv8n | PyTorch | ✅ | 6.2 | 0.3709 | 24.36 |
+| YOLOv8n | TorchScript | ✅ | 12.4 | 0.3704 | 23.93 |
+| YOLOv8n | ONNX | ✅ | 12.2 | 0.3704 | 39.86 |
+| YOLOv8n | OpenVINO | ✅ | 12.3 | 0.3704 | 11.34 |
+| YOLOv8s | PyTorch | ✅ | 21.5 | 0.4471 | 33.77 |
+| YOLOv8s | TorchScript | ✅ | 42.9 | 0.4472 | 34.84 |
+| YOLOv8s | ONNX | ✅ | 42.8 | 0.4472 | 43.23 |
+| YOLOv8s | OpenVINO | ✅ | 42.9 | 0.4471 | 13.86 |
+| YOLOv8m | PyTorch | ✅ | 49.7 | 0.5013 | 53.91 |
+| YOLOv8m | TorchScript | ✅ | 99.2 | 0.4999 | 53.51 |
+| YOLOv8m | ONNX | ✅ | 99.0 | 0.4999 | 64.16 |
+| YOLOv8m | OpenVINO | ✅ | 99.1 | 0.4996 | 28.79 |
+| YOLOv8l | PyTorch | ✅ | 83.7 | 0.5293 | 75.78 |
+| YOLOv8l | TorchScript | ✅ | 167.2 | 0.5268 | 79.13 |
+| YOLOv8l | ONNX | ✅ | 166.8 | 0.5268 | 88.45 |
+| YOLOv8l | OpenVINO | ✅ | 167.0 | 0.5263 | 56.23 |
+| YOLOv8x | PyTorch | ✅ | 130.5 | 0.5404 | 96.60 |
+| YOLOv8x | TorchScript | ✅ | 260.7 | 0.5371 | 114.28 |
+| YOLOv8x | ONNX | ✅ | 260.4 | 0.5371 | 111.02 |
+| YOLOv8x | OpenVINO | ✅ | 260.6 | 0.5371 | 83.28 |
+
+### Intel Core CPU
+
+The Intel® Core® series is a range of high-performance processors by Intel. The lineup includes Core i3 (entry-level), Core i5 (mid-range), Core i7 (high-end), and Core i9 (extreme performance). Each series caters to different computing needs and budgets, from everyday tasks to demanding professional workloads. With each new generation, improvements are made to performance, energy efficiency, and features.
+
+Benchmarks below run on 13th Gen Intel® Core® i7-13700H CPU at FP32 precision.
+
+
+
+
+
+| Model | Format | Status | Size (MB) | metrics/mAP50-95(B) | Inference time (ms/im) |
+|---------|-------------|--------|-----------|---------------------|------------------------|
+| YOLOv8n | PyTorch | ✅ | 6.2 | 0.4478 | 104.61 |
+| YOLOv8n | TorchScript | ✅ | 12.4 | 0.4525 | 112.39 |
+| YOLOv8n | ONNX | ✅ | 12.2 | 0.4525 | 28.02 |
+| YOLOv8n | OpenVINO | ✅ | 12.3 | 0.4504 | 23.53 |
+| YOLOv8s | PyTorch | ✅ | 21.5 | 0.5885 | 194.83 |
+| YOLOv8s | TorchScript | ✅ | 43.0 | 0.5962 | 202.01 |
+| YOLOv8s | ONNX | ✅ | 42.8 | 0.5962 | 65.74 |
+| YOLOv8s | OpenVINO | ✅ | 42.9 | 0.5966 | 38.66 |
+| YOLOv8m | PyTorch | ✅ | 49.7 | 0.6101 | 355.23 |
+| YOLOv8m | TorchScript | ✅ | 99.2 | 0.6120 | 424.78 |
+| YOLOv8m | ONNX | ✅ | 99.0 | 0.6120 | 173.39 |
+| YOLOv8m | OpenVINO | ✅ | 99.1 | 0.6091 | 69.80 |
+| YOLOv8l | PyTorch | ✅ | 83.7 | 0.6591 | 593.00 |
+| YOLOv8l | TorchScript | ✅ | 167.2 | 0.6580 | 697.54 |
+| YOLOv8l | ONNX | ✅ | 166.8 | 0.6580 | 342.15 |
+| YOLOv8l | OpenVINO | ✅ | 167.0 | 0.0708 | 117.69 |
+| YOLOv8x | PyTorch | ✅ | 130.5 | 0.6651 | 804.65 |
+| YOLOv8x | TorchScript | ✅ | 260.8 | 0.6650 | 921.46 |
+| YOLOv8x | ONNX | ✅ | 260.4 | 0.6650 | 526.66 |
+| YOLOv8x | OpenVINO | ✅ | 260.6 | 0.6619 | 158.73 |
+
+## Reproduce Our Results
+
+To reproduce the Ultralytics benchmarks above on all export [formats](/modes/export.md) run this code:
+
+!!! example ""
+
+ === "Python"
+
+ ```python
+ from ultralytics import YOLO
+
+ # Load a YOLOv8n PyTorch model
+ model = YOLO('yolov8n.pt')
+
+ # Benchmark YOLOv8n speed and accuracy on the COCO128 dataset for all all export formats
+ results= model.benchmarks(data='coco128.yaml')
+ ```
+ === "CLI"
+
+ ```bash
+ # Benchmark YOLOv8n speed and accuracy on the COCO128 dataset for all all export formats
+ yolo benchmark model=yolov8n.pt data=coco128.yaml
+ ```
+
+ Note that benchmarking results might vary based on the exact hardware and software configuration of a system, as well as the current workload of the system at the time the benchmarks are run. For the most reliable results use a dataset with a large number of images, i.e. `data='coco128.yaml' (128 val images), or `data='coco.yaml'` (5000 val images).
+
+## Conclusion
+
+The benchmarking results clearly demonstrate the benefits of exporting the YOLOv8 model to the OpenVINO format. Across different models and hardware platforms, the OpenVINO format consistently outperforms other formats in terms of inference speed while maintaining comparable accuracy.
+
+For the Intel® Data Center GPU Flex Series, the OpenVINO format was able to deliver inference speeds almost 10 times faster than the original PyTorch format. On the Xeon CPU, the OpenVINO format was twice as fast as the PyTorch format. The accuracy of the models remained nearly identical across the different formats.
+
+The benchmarks underline the effectiveness of OpenVINO as a tool for deploying deep learning models. By converting models to the OpenVINO format, developers can achieve significant performance improvements, making it easier to deploy these models in real-world applications.
+
+For more detailed information and instructions on using OpenVINO, refer to the [official OpenVINO documentation](https://docs.openvinotoolkit.org/latest/index.html).
diff --git a/docs/usage/hyperparameter_tuning.md b/docs/integrations/ray-tune.md
similarity index 100%
rename from docs/usage/hyperparameter_tuning.md
rename to docs/integrations/ray-tune.md
diff --git a/docs/quickstart.md b/docs/quickstart.md
index bc50c32..c7380a1 100644
--- a/docs/quickstart.md
+++ b/docs/quickstart.md
@@ -232,7 +232,7 @@ Ultralytics allows users to easily modify their settings. Changes can be perform
```
=== "CLI"
- If you prefer using the command-line interface, the following command will allow you to modify your settings:
+ If you prefer using the command-line interface, the following commands will allow you to modify your settings:
```bash
# Update a setting
yolo settings runs_dir='/path/to/runs'
diff --git a/mkdocs.yml b/mkdocs.yml
index 143042e..75eaf64 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -35,6 +35,7 @@ theme:
icon: material/brightness-4
name: Switch to light mode
features:
+ - announce.dismiss
- content.action.edit
- content.code.annotate
- content.code.copy
@@ -207,6 +208,10 @@ nav:
- MNIST: datasets/classify/mnist.md
- Multi-Object Tracking:
- datasets/track/index.md
+ - Integrations:
+ - integrations/index.md
+ - OpenVINO: integrations/openvino.md
+ - Ray Tune: integrations/ray-tune.md
- Usage:
- CLI: usage/cli.md
- Python: usage/python.md
@@ -406,6 +411,7 @@ plugins:
quick-start.md: quickstart.md
app.md: hub/app/index.md
sdk.md: index.md
+ usage/hyperparameter_tuning.md: integrations/ray-tune.md
reference/base_pred.md: reference/engine/predictor.md
reference/base_trainer.md: reference/engine/trainer.md
reference/exporter.md: reference/engine/exporter.md
diff --git a/ultralytics/__init__.py b/ultralytics/__init__.py
index 617e12e..a0aaeca 100644
--- a/ultralytics/__init__.py
+++ b/ultralytics/__init__.py
@@ -1,6 +1,6 @@
# Ultralytics YOLO 🚀, AGPL-3.0 license
-__version__ = '8.0.141'
+__version__ = '8.0.142'
from ultralytics.engine.model import YOLO
from ultralytics.hub import start
diff --git a/ultralytics/engine/model.py b/ultralytics/engine/model.py
index b74a207..5ff1147 100644
--- a/ultralytics/engine/model.py
+++ b/ultralytics/engine/model.py
@@ -319,11 +319,14 @@ class YOLO:
overrides.update(kwargs)
overrides['mode'] = 'benchmark'
overrides = {**DEFAULT_CFG_DICT, **overrides} # fill in missing overrides keys with defaults
- return benchmark(model=self,
- imgsz=overrides['imgsz'],
- half=overrides['half'],
- device=overrides['device'],
- verbose=overrides['verbose'])
+ return benchmark(
+ model=self,
+ data=kwargs.get('data'), # if no 'data' argument passed set data=None for default datasets
+ imgsz=overrides['imgsz'],
+ half=overrides['half'],
+ int8=overrides['int8'],
+ device=overrides['device'],
+ verbose=overrides['verbose'])
def export(self, **kwargs):
"""