← Volver al Blog
ProductoSDKEdge Computing

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

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

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.