InspireFace: 엣지 디바이스를 위한 크로스플랫폼 C/C++ 얼굴 인식 SDK
소개
InspireFace는 크로스플랫폼 edge 배포를 위해 설계된 고성능 C/C++ 얼굴 인식 SDK입니다. InsightFace의 최첨단 얼굴 분석 기능을 통합된 API 형태로 모바일, 데스크톱, 임베디드 디바이스에 제공합니다.
주요 기능
뛰어난 성능
InspireFace는 속도를 최우선으로 설계되었습니다.
- iPhone 13(CoreML/ANE)에서 전체 pipeline(검출 + 정렬 + 특징 추출)을 2ms 미만으로 실행
- CPU, GPU, NPU 추론 최적화
- 자원이 제한된 edge 디바이스를 위한 경량 모델
크로스플랫폼 지원
다양한 플랫폼에 배포할 수 있습니다.
- Linux: x86_64, ARM64, RISC-V
- macOS: Intel 및 Apple Silicon
- iOS: CoreML 가속을 지원하는 iPhone 및 iPad
- Android: NNAPI를 지원하는 ARM 및 x86
- Embedded: Rockchip NPU (RK3588/RK3566/RK3568)
- CUDA: 서버용 NVIDIA GPU 가속
종합 기능 세트
InspireFace는 완전한 얼굴 분석 pipeline을 제공합니다.
- Face Detection: 고정밀 얼굴 위치 검출
- Face Recognition: ArcFace 기반 identity embedding 추출
- Face Alignment: 정밀한 landmarks 검출
- Attribute Analysis: 나이, 성별, 표정 추정
- Liveness Detection: presentation attacks에 대응하는 anti-spoofing
- Head Pose Estimation: yaw, pitch, roll 추정
- Facial Action Detection: 눈 깜빡임, 끄덕임, 머리 흔들기 검출
- Mask Detection: 마스크 착용 여부 판단
아키텍처
InspireFace는 모듈형 계층 아키텍처를 기반으로 합니다.
1. C API Layer: 언어 간 연동을 위한 안정적인 ABI
2. Core Engine: 최적화된 추론 pipeline
3. Backend Abstraction: ONNX Runtime, CoreML, TensorRT, RKNN 등 교체 가능한 backend
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)}")
성능 벤치마크
| 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: 운영 환경 배포는 문의해 주세요
시작하기
문서, 예제, 사전 빌드된 바이너리는 InspireFace GitHub repository에서 확인할 수 있습니다. 상업용 라이선스 문의는 contact@insightface.ai로 보내주세요.