image_to_pixle_params_yoloSAM/ultralytics-main/examples/YOLOv8-OpenVINO-CPP-Inference
Yao Yi Zhe 8d61f7f78c first commit 2025-07-14 17:36:53 +08:00
..
CMakeLists.txt first commit 2025-07-14 17:36:53 +08:00
README.md first commit 2025-07-14 17:36:53 +08:00
inference.cc first commit 2025-07-14 17:36:53 +08:00
inference.h first commit 2025-07-14 17:36:53 +08:00
main.cc first commit 2025-07-14 17:36:53 +08:00

README.md

YOLOv8 OpenVINO Inference in C++

Welcome to the Ultralytics YOLOv8 OpenVINO Inference example in C++! This guide will help you get started with leveraging the powerful YOLOv8 models using the Intel OpenVINO™ toolkit and OpenCV API in your C++ projects. Whether you're looking to enhance performance on Intel hardware or add flexibility to your applications, this example provides a solid foundation. Learn more about optimizing models on the Ultralytics blog.

🌟 Features

📋 Dependencies

To ensure smooth execution, please make sure you have the following dependencies installed:

Dependency Version
OpenVINO >=2023.3
OpenCV >=4.5.0
C++ >=14
CMake >=3.12.0

⚙️ Build Instructions

Follow these steps to build the project:

  1. Clone the Ultralytics repository:

    git clone https://github.com/ultralytics/ultralytics.git
    cd ultralytics/examples/YOLOv8-OpenVINO-CPP-Inference
    
  2. Create a build directory and compile the project using CMake:

    mkdir build
    cd build
    cmake ..
    make
    

🛠️ Usage

Once built, you can run inference on an image using the compiled executable. Provide the path to your model file (either .xml for OpenVINO IR or .onnx) and the path to your image:

# Example using an OpenVINO IR model
./detect path/to/your/model.xml path/to/your/image.jpg

# Example using an ONNX model
./detect path/to/your/model.onnx path/to/your/image.jpg

This command will process the image using the specified YOLOv8 model and display the object detection results. Explore various Ultralytics Solutions for real-world applications.

🔄 Exporting YOLOv8 Models

To use your Ultralytics YOLOv8 model with this C++ example, you first need to export it to the OpenVINO IR or ONNX format. Use the yolo export command available in the Ultralytics Python package. Find detailed instructions in the Export mode documentation.

# Export to OpenVINO format (generates .xml and .bin files)
yolo export model=yolov8s.pt imgsz=640 format=openvino

# Export to ONNX format
yolo export model=yolov8s.pt imgsz=640 format=onnx

For more details on exporting and optimizing models for OpenVINO, refer to the Ultralytics OpenVINO integration guide.

📸 Screenshots

Running Using OpenVINO Model

Running OpenVINO Model

Running Using ONNX Model

Running ONNX Model

❤️ Contributions

We hope this example helps you integrate YOLOv8 with OpenVINO and OpenCV into your C++ projects effortlessly. Contributions to improve this example or add new features are welcome! Please see the Ultralytics contribution guidelines for more information. Visit the main Ultralytics documentation for further guides and resources. Happy coding! 🚀