Geekgineer/YOLOs-CPP

Cross-Platform Production-ready C++ inference engine for YOLO models (v5-v12, YOLO26). Unified API for detection, segmentation, pose estimation, OBB, and classification. Built on ONNX Runtime and OpenCV. Optimized for CPU/GPU with quantization support.

What it solves

YOLOs-CPP addresses the fragmentation of the YOLO ecosystem in C++. It provides a unified, production-ready inference engine that replaces the need for multiple, inconsistent C++ implementations for different YOLO versions and tasks, offering a consistent API and professional-grade error handling and optimization.

How it works

The library acts as a high-performance wrapper around ONNX Runtime and OpenCV. It provides a unified C++17 API to load and run inference on a wide range of YOLO models (from v5 to YOLO26 and YOLOE). It handles the complex preprocessing (like letterboxing and normalization) and post-processing (like batched Non-Maximum Suppression) using zero-copy techniques to maximize speed.

Who it’s for

It is designed for developers building production computer vision applications in C++ who need to deploy YOLO models for object detection, segmentation, pose estimation, or depth estimation without relying on a Python runtime.

Highlights

  • Unified API: A single interface for YOLOv5 through YOLO26 and YOLOE.
  • Broad Task Support: Supports object detection, instance segmentation, pose estimation, oriented bounding boxes (OBB), image classification, and monocular metric depth estimation.
  • Performance Optimizations: Features zero-copy preprocessing, GPU acceleration, and batch inference for higher throughput.
  • Flexible Loading: Models can be loaded from file paths or directly from memory buffers (useful for encrypted or embedded resources).
  • High Fidelity: Validated against Ultralytics Python results via a comprehensive suite of parity tests.
  • Cross-Platform: Compatible with Linux, Windows, and macOS.

Related

  • Project
  • Project
  • Project
  • Project
  • Project