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