InspireFace: SDK multiplataforma de reconocimiento facial en C/C++ para dispositivos edge
Introducción
Nos complace presentar InspireFace, un SDK de reconocimiento facial en C/C++ de alto rendimiento diseñado para despliegues edge multiplataforma. InspireFace lleva las capacidades más avanzadas de análisis facial de InsightFace a dispositivos móviles, desktop y embedded mediante una API unificada y fácil de integrar.
Características principales
Rendimiento extremo
InspireFace está diseñado para ofrecer velocidad:
- pipeline completo (detección + alineación + extracción de características) en menos de 2 ms en iPhone 13 con CoreML/ANE
- inferencia optimizada para CPU, GPU y NPU
- modelos ligeros adecuados para hardware con recursos limitados
Compatibilidad multiplataforma
Se puede desplegar en una amplia variedad de entornos:
- Linux: x86_64, ARM64, RISC-V
- macOS: Intel y Apple Silicon
- iOS: iPhone y iPad con aceleración CoreML
- Android: ARM y x86 con soporte NNAPI
- Embedded: Rockchip NPU (RK3588/RK3566/RK3568)
- CUDA: aceleración con GPU NVIDIA para servidor
Funcionalidad integral
InspireFace ofrece un pipeline completo de análisis facial:
- Face Detection: localización facial de alta precisión
- Face Recognition: extracción de identity embeddings basados en ArcFace
- Face Alignment: detección precisa de landmarks
- Attribute Analysis: estimación de edad, género y expresión
- Liveness Detection: anti-spoofing frente a presentation attacks
- Head Pose Estimation: estimación de yaw, pitch y roll
- Facial Action Detection: detección de parpadeo, asentimiento y giro de cabeza
- Mask Detection: detección de mascarilla
Arquitectura
InspireFace está construido sobre una arquitectura modular por capas:
1. C API Layer: ABI estable para interoperabilidad entre lenguajes
2. Core Engine: pipeline de inferencia optimizado
3. Backend Abstraction: backends intercambiables como ONNX Runtime, CoreML, TensorRT y RKNN
4. Model Management: carga y caché eficiente de modelos
Inicio rápido
Integración en 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);
Integración en 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 rendimiento
| 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 |
Licenciamiento
InspireFace está disponible bajo dos modalidades:
- Academic License: gratis para investigación y educación
- Commercial License: contáctenos para despliegues en producción
Cómo empezar
Puede consultar documentación, ejemplos y binarios precompilados en el InspireFace GitHub repository. Para licencias comerciales, escriba a contact@insightface.ai.