A high-performance CNN-based face detection library written in pure C++ with SIMD optimizations, achieving up to 1000 FPS.
libfacedetection is a lightweight, high-performance library for detecting faces in images using a convolutional neural network (CNN). It solves the need for fast, accurate face detection in resource-constrained environments like embedded devices or real-time applications. The library is implemented in pure C++ with SIMD optimizations to achieve millisecond-level inference speeds.
Developers and researchers working on computer vision projects, especially those requiring real-time face detection on edge devices, IoT applications, or platforms with limited dependencies.
Developers choose libfacedetection for its exceptional speed (up to 1000 FPS), portability (no external dependencies), and ease of integration into existing C++ projects. Its SIMD optimizations and multi-threading support make it a top choice for performance-critical applications.
An open source library for face detection in images. The face detection speed can reach 1000FPS.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
No external dependencies; only a C++ compiler is needed, making it highly portable across Windows, Linux, ARM, and other platforms, as emphasized in the README.
Uses AVX2 for Intel CPUs and NEON for ARM, achieving up to 1000 FPS on multi-threaded systems, with detailed benchmark tables showing millisecond-level latency.
Delivers robust detection with AP scores of 0.887 (easy), 0.871 (medium), and 0.768 (hard) on the WIDER Face dataset, indicating competitive performance for standard evaluations.
Source files can be directly copied into projects or compiled as static/dynamic libraries, offering ease of use in various C++ environments without complex build systems.
Focuses solely on face detection without built-in features for recognition, alignment, or attribute analysis, requiring additional libraries for advanced use cases.
Requires specific compiler optimizations (e.g., -O3 for g++) and manual configuration for SIMD support, which can complicate setup and cross-platform deployment.
Relies exclusively on CPU optimizations; lacks built-in support for GPU inference, potentially limiting performance on systems with capable graphics hardware.
As noted in the README, OpenCV DNN does not support the latest YuNet model with dynamic input shapes, necessitating careful handling and potentially limiting integration flexibility.