ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

InsightFace C++ SDK:一套 C API 在 18 种硬件目标上跑通跨平台人脸识别

InsightFace C++ SDK:一套 C API 在 18 种硬件目标上跑通跨平台人脸识别 InsightFace C SDK一套 C API 在 18 种硬件目标上跑通跨平台人脸识别【免费下载链接】insightfaceState-of-the-art 2D and 3D Face Analysis Project项目地址: https://gitcode.com/GitHub_Trending/in/insightfaceInspireFace 是 InsightFace 项目下的 C/C 跨平台人脸识别 SDK覆盖检测、关键点、特征提取与活体的完整链路。同一套会话式 C API推理后端可落在 CPUMNN、NVIDIA TensorRT、Rockchip RKNPU 与 Apple ANE 上已适配 Linuxx86_64/ARMv7/ARMv8、macOSIntel/Apple Silicon、iOS 与 Android 共 18 个平台架构组合。5分钟跑通第一次从 clone 到 Pikachu 示例最短路径如下全程在cpp-package/inspireface目录内操作git clone https://gitcode.com/GitHub_Trending/in/insightface cd insightface/cpp-package/inspireface # 官方依赖仓库含 MNN、RKNN 等子模块克隆到项目根目录的 3rdparty务必带子模块 git clone --recurse-submodules inspireface-3rdparty 地址 3rdparty # 拉取轻量级模型包边缘端落到 test_res/pack bash command/download_models_general.sh Pikachu # 默认配置直接可编产物含 include/inspireface.h 与 lib/libInspireFace.so bash command/build.sh依赖门槛不高CMake 3.20、GCC 4.9 或 Clang 3.9MNN 与 Eigen3 已随 3rdparty 提供。想一步到位bash ci/quick_test_local.sh会自动下载测试集、开启ISF_BUILD_WITH_TESTON编译并运行Test可执行文件。手动跑测试程序则是./Test --test_dir test_res --pack Pikachu能力与架构一览检测、识别、活体与多后端推理矩阵SDK 对外统一为C API 会话Session模型进程启动时HFLaunchInspireFace加载一次资源包之后所有能力都在 Session 上按位开关启用。推理层以 MNN 为 CPU 基线引擎RKNPU、TensorRT、CoreMLMetal/ANE作为可插拔后端某后端缺失对应模型时自动回退 CPU不会直接报错。支持的能力按用途分组检测与跟踪人脸检测、多帧跟踪、姿态估计识别链路关键点、对齐、特征向量Embedding、人脸比对、1:1 识别、Feature Hub 特征库增删改查 万级库检索业务能力静默活体、配合式活体、口罩检测、人脸质量评估、表情识别核心调用链8 行 C API 完成单图人脸检测以单图检测为例核心链路只有一条主线完整工程见 cpp/sample/api/含比对、检索、多线程样本HFLaunchInspireFace(test_res/pack); // ① 加载资源包每进程一次 HOption opt HF_ENABLE_QUALITY | HF_ENABLE_MASK_DETECT; HFSession session {0}; HFCreateInspireFaceSessionOptional(opt, HF_DETECT_MODE_ALWAYS_DETECT, 20, 160, -1, session); // ② 建会话 HFImageBitmap img; HFCreateImageBitmapFromFilePath(face.jpg, 3, img); HFImageStream stream {0}; HFCreateImageStreamFromImageBitmap(img, 0, stream); HFMultipleFaceData faces {0}; HFExecuteFaceTrack(session, stream, faces); // ③ 执行faces.detectedNum 为结果数 HFReleaseImageBitmap(img); HFReleaseImageStream(stream); HFReleaseInspireFaceSession(session); // ④ 释放几个关键参数HF_DETECT_MODE_ALWAYS_DETECT表示纯图像模式、每帧强制检测而不维护跟踪状态maxDetectNum20限制单帧最多输出人数detectPixelLevel是检测内部输入分辨率档位160/320/640档越高漏检越少、耗时越大opt按位组合可选模块Session 创建时按需加载对应模型。平台与后端选型一条 CMake 命令编译 TensorRT 加速版支持矩阵完整 19 行明细见 README平台架构特殊后端Linuxx86_64CPU / CUDA / TensorRTLinuxARMv7RKNPURV1109/RV1126、RV1103/RV1106LinuxARMv8RKNPURK3566/RK3568/RK3588macOS / iOSIntel、Apple Silicon、ARMCPU / Metal / ANEAndroidARMv7 / ARMv8另有 RK356X/RK3588 NPU 版后端选择按算力位置定瑞芯微板卡直接选 RKNPU配合ISF_ENABLE_RKNNON与ISF_RK_DEVICE_TYPE指定型号需换对应 Gundam 模型包NVIDIA 服务器选 TensorRT前提是装好 CUDA 11、cuDNN 与 TensorRT-10export TENSORRT_ROOT后执行bash command/build_linux_tensorrt.sh也可用docker-compose up build-tensorrt-cuda12-ubuntu22免配置交叉编译Apple 设备开ISF_ENABLE_APPLE_EXTENSIONON走 Metal/ANE官方基准在 iPhone 13 上检测 160 约 0.71ms、MNet 特征提取约 0.85ms基准报告.md) 持续更新。调优要点只有三条速度吃紧时把detectPixelLevel从 320/640 降到 160并用maxDetectNum限制人数上限同一进程共享一个 Session勿反复创建销毁HFImageBitmap与HFImageStream用后即释放项目内已内置全局资源统计可排查泄漏。踩坑与排障251 与 301 两个高频错误码现象HFLaunchInspireFace返回 251资源包加载失败或 252模型加载失败。原因test_res/pack路径为空或文件截断模型包与后端不匹配RKNPU 设备上跑了 Megatron CPU 包或同一进程内二次加载返回 254。解决重新执行command/download_models_general.sh 包名并确认落盘完整核对包名与目标后端对应关系Pikachu/Megatron→CPUMegatron_TRT→GPUGundam 系列→RKNPU全生命周期只调用一次 Load。现象运行 GPU 版报 301CUDA not supported或编译期找不到 CUDA/TensorRT。原因TensorRT-10、CUDA 11 未安装TENSORRT_ROOT未导出或CUDA_TOOLKIT_ROOT_DIR、CUDA_CUDART_LIBRARY环境变量缺失导致链接失败。解决配好TENSORRT_ROOT后用官方脚本编译或直接用build-tensorrt-cuda12-ubuntu22Docker 镜像确认设备确为 NVIDIA 且驱动正常。全部错误码对照见 错误码表。现象找不到 Sample/Test 可执行文件。原因测试与示例程序受开关控制ISF_BUILD_WITH_SAMPLE默认开启ISF_BUILD_WITH_TEST默认关闭且 Test 依赖test_res/pack存在。解决配置 CMake 时加-DISF_BUILD_WITH_TESTON选项全表见 CMake-Option.md或直接用ci/quick_test_local.sh一条脚本完成下载、编译、运行。收尾一句话定位有 C/C 集成能力的跨端产品线门禁、刷脸终端、安防摄像头、移动端 App想要单一代码库覆盖 CPU/NPU/GPU 的推理部署InspireFace 是目前 InsightFace 生态里工程化程度最高的出口。模型文件仅限学术用途商用授权需另行获取。【免费下载链接】insightfaceState-of-the-art 2D and 3D Face Analysis Project项目地址: https://gitcode.com/GitHub_Trending/in/insightface创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表