← Retour au Blog
ProduitSDKEdge Computing

InspireFace : SDK C/C++ multiplateforme de reconnaissance faciale pour les appareils edge

Introduction

Nous sommes heureux de présenter InspireFace, un SDK C/C++ de reconnaissance faciale haute performance conçu pour des déploiements edge multiplateformes. InspireFace apporte les capacités de face analysis de pointe d’InsightFace aux appareils mobiles, desktop et embedded via une API unifiée et simple à intégrer.

Principales fonctionnalités

Performances extrêmes

InspireFace est optimisé pour la vitesse :

  • pipeline complet (détection + alignement + extraction de features) en moins de 2 ms sur iPhone 13 avec CoreML/ANE
  • inférence optimisée pour CPU, GPU et NPU
  • modèles légers adaptés aux appareils à ressources limitées

Compatibilité multiplateforme

Le déploiement est possible sur de nombreux environnements :

  • Linux : x86_64, ARM64, RISC-V
  • macOS : Intel et Apple Silicon
  • iOS : iPhone et iPad avec accélération CoreML
  • Android : ARM et x86 avec support NNAPI
  • Embedded : Rockchip NPU (RK3588/RK3566/RK3568)
  • CUDA : accélération GPU NVIDIA pour les serveurs

Fonctionnalité complète

InspireFace fournit une pipeline complète d’analyse faciale :

  • Face Detection : localisation de visage haute précision
  • Face Recognition : extraction d’identity embeddings basés sur ArcFace
  • Face Alignment : détection précise des landmarks
  • Attribute Analysis : estimation de l’âge, du genre et de l’expression
  • Liveness Detection : anti-spoofing contre les presentation attacks
  • Head Pose Estimation : estimation de yaw, pitch et roll
  • Facial Action Detection : détection du clignement, du hochement et du mouvement latéral de tête
  • Mask Detection : détection du port du masque

Architecture

InspireFace repose sur une architecture modulaire en couches :

1. C API Layer : ABI stable pour l’interopérabilité entre langages

2. Core Engine : pipeline d’inférence optimisé

3. Backend Abstraction : backends interchangeables comme ONNX Runtime, CoreML, TensorRT et RKNN

4. Model Management : chargement et mise en cache efficaces des modèles

Démarrage rapide

Intégration C/C++

#include "inspireface.h"

// Initialize

HResult ret = HFLaunchInspireFace(model_path);

// Create session

HFSession session;

HFCreateInspireFaceSession(

HF_ENABLE_FACE_RECOGNITION | HF_ENABLE_LIVENESS,

HF_DETECT_MODE_ALWAYS_DETECT,

3, // max face count

-1, // use default pixel format

0, // use default thread count

&session

);

// Process image

HFImageData image = {width, height, 3, data};

HFImageStream stream;

HFCreateImageStream(&image, &stream);

// Detect and recognize

HFMultipleFaceData faces;

HFExecuteFaceTrack(session, stream, &faces);

HFFaceFeature feature;

HFExtractFaceFeature(session, stream, faces.tokens[0], &feature);

Intégration Python

import cv2

import inspireface as isf

# Initialize and create session

session = isf.InspireFaceSession(

isf.HF_ENABLE_FACE_RECOGNITION | isf.HF_ENABLE_LIVENESS,

isf.HF_DETECT_MODE_ALWAYS_DETECT

)

# Process image

image = cv2.imread("face.jpg")

faces = session.face_detection(image)

# Extract features

for face in faces:

feature = session.face_feature_extract(image, face)

print(f"Feature dimension: {len(feature)}")

Benchmarks de performance

PlatformDetectionRecognitionFull Pipeline
iPhone 13 (CoreML)0.8ms0.6ms1.8ms
Rockchip RK3588 (NPU)3.2ms2.1ms6.5ms
Intel i7-12700 (CPU)4.1ms2.8ms8.2ms
NVIDIA RTX 3090 (CUDA)0.5ms0.3ms1.2ms

Licences

InspireFace est proposé avec deux options de licence :

  • Academic License : gratuit pour la recherche et l’enseignement
  • Commercial License : contactez-nous pour un déploiement en production

Premiers pas

Vous trouverez documentation, exemples et binaires précompilés dans le InspireFace GitHub repository. Pour toute demande de licence commerciale, écrivez à contact@insightface.ai.