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
| Platform | Detection | Recognition | Full Pipeline |
|---|---|---|---|
| iPhone 13 (CoreML) | 0.8ms | 0.6ms | 1.8ms |
| Rockchip RK3588 (NPU) | 3.2ms | 2.1ms | 6.5ms |
| Intel i7-12700 (CPU) | 4.1ms | 2.8ms | 8.2ms |
| NVIDIA RTX 3090 (CUDA) | 0.5ms | 0.3ms | 1.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.