InspireFace: エッジデバイス向けクロスプラットフォーム C/C++ 顔認識 SDK
はじめに
高性能な C/C++ 顔認識 SDK である InspireFace の提供を開始できることを嬉しく思います。InspireFace は、InsightFace の最先端の顔解析技術を、モバイル、デスクトップ、組み込みデバイスへ統一された API で提供するために設計されています。
主な特長
圧倒的なパフォーマンス
InspireFace は速度を重視して設計されています。
- iPhone 13 (CoreML/ANE) でフル pipeline を 2ms 未満で実行
- CPU、GPU、NPU 推論を最適化
- リソース制約のあるエッジ機器にも適した軽量モデル
クロスプラットフォーム対応
多様なプラットフォームに展開できます。
- 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: 高精度なランドマーク検出
- Attribute Analysis: 年齢、性別、表情推定
- Liveness Detection: Presentation Attack 対策の 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 などの pluggable 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 には 2 つのライセンス形態があります。
- Academic License: 研究・教育用途は無償
- Commercial License: 本番導入向けの商用ライセンスはお問い合わせください
導入の第一歩
詳しいドキュメント、サンプル、ビルド済みバイナリは InspireFace GitHub repository を参照してください。商用ライセンスのご相談は contact@insightface.ai までご連絡ください。