← Назад в Блог
ПродуктSDKEdge Computing

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

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

Лицензирование

InspireFace доступен в двух вариантах лицензии:

  • Academic License: бесплатно для исследований и образования
  • Commercial License: свяжитесь с нами для production-развёртываний

С чего начать

Документация, примеры и готовые бинарные сборки доступны в InspireFace GitHub repository. По вопросам коммерческой лицензии пишите на contact@insightface.ai.