InspireFace: кроссплатформенный C/C++ SDK для распознавания лиц на edge-устройствах
Введение
Мы рады представить InspireFace — высокопроизводительный C/C++ SDK для распознавания лиц, разработанный для кроссплатформенных edge-развёртываний. InspireFace переносит передовые возможности face analysis от InsightFace на мобильные, desktop и embedded-устройства через унифицированный и удобный API.
Ключевые возможности
Экстремальная производительность
InspireFace оптимизирован для скорости:
- полный pipeline (детекция + alignment + extraction of features) менее чем за 2 мс на iPhone 13 с CoreML/ANE
- оптимизированная инференс-работа на CPU, GPU и NPU
- лёгкие модели для устройств с ограниченными ресурсами
Кроссплатформенная поддержка
Развёртывание возможно на широком наборе платформ:
- Linux: x86_64, ARM64, RISC-V
- macOS: Intel и Apple Silicon
- iOS: iPhone и iPad с ускорением CoreML
- Android: ARM и x86 с поддержкой NNAPI
- Embedded: Rockchip NPU (RK3588/RK3566/RK3568)
- CUDA: ускорение на NVIDIA GPU для серверных сред
Полный набор функций
InspireFace предоставляет полный pipeline анализа лица:
- Face Detection: высокоточная локализация лиц
- Face Recognition: извлечение identity embeddings на базе ArcFace
- Face Alignment: точное определение landmarks
- Attribute Analysis: оценка возраста, пола и выражения
- Liveness Detection: anti-spoofing против presentation attacks
- Head Pose Estimation: оценка yaw, pitch и roll
- Facial Action Detection: определение моргания, кивка и поворота головы
- Mask Detection: обнаружение маски
Архитектура
InspireFace построен на модульной многослойной архитектуре:
1. C API Layer: стабильный ABI для межъязыковой интеграции
2. Core Engine: оптимизированный inference pipeline
3. Backend Abstraction: подключаемые backend’ы, включая ONNX Runtime, CoreML, TensorRT и RKNN
4. Model Management: эффективная загрузка и кэширование моделей
Быстрый старт
Интеграция на 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);
Интеграция на 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)}")
Performance benchmarks
| 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 |
Лицензирование
InspireFace доступен в двух вариантах лицензии:
- Academic License: бесплатно для исследований и образования
- Commercial License: свяжитесь с нами для production-развёртываний
С чего начать
Документация, примеры и готовые бинарные сборки доступны в InspireFace GitHub repository. По вопросам коммерческой лицензии пишите на contact@insightface.ai.