deepinsight/insightface

State-of-the-art 2D and 3D Face Analysis Project

What it solves

InsightFace provides a comprehensive toolbox for 2D and 3D face analysis, addressing the complexities of face detection, recognition, and alignment. It offers a unified framework to implement state-of-the-art algorithms that are optimized for both training and deployment across various platforms.

How it works

The project is built primarily on PyTorch and MXNet, providing a suite of specialized modules:

  • Face Recognition: Implements various loss designs and network backbones (like ArcFace and PartialFC) to identify individuals from images.
  • Face Detection: Uses single-stage detectors like RetinaFace and SCRFD to locate faces in images.
  • Face Alignment: Employs heatmap-based methods (SDUNets) or coordinate regression to identify facial landmarks.
  • Deployment Tools: Includes a cross-platform GUI Demo for desktop usage and a self-hosted server with a REST API and Python client for scalable inference and person search.

Who it’s for

It is designed for researchers and developers who need high-performance face analysis capabilities, ranging from academic research to enterprise-level deployments (such as AWS Rekognition alternatives).

Highlights

  • High Performance: Capable of searching through 50M+ images on a single RTX 5090 GPU using INT8 embedding quantization.
  • Versatile Tooling: Offers a Python package for quick starts, a C/C++ SDK (InspireFace), and a cross-platform GUI for evaluation.
  • Broad Algorithm Support: Includes implementations of ArcFace, RetinaFace, and SCRFD.
  • Flexible Deployment: Supports local ONNX Runtime inference and self-hosted server options.

Related

  • Project
  • Project
  • Project
  • Project
  • Project