InspireFaceInspireFace1.2.4.d3
首页
快速开始
获取和编译
完整示例
  • English
  • 简体中文
GitHub
首页
快速开始
获取和编译
完整示例
  • English
  • 简体中文
GitHub
  • 介绍
  • 快速开始
  • 功能概览
  • 使用指南

    • 架构与生命周期
    • 模型资源包
    • 图像输入与坐标
    • 会话与跟踪
    • 人脸分析
    • 识别与特征库
    • 人脸关键点
    • 活体检测
    • 人脸抓拍
    • 补充 API 示例
  • 语言与平台

    • C API
    • C++
    • Python
    • Android
    • Apple
    • iOS
    • macOS
    • HarmonyOS
  • 获取和编译

    • 概述与下载
    • 源码准备与通用选项
    • Linux
    • macOS
    • Android
    • iOS
    • HarmonyOS
    • NVIDIA TensorRT
    • Rockchip NPU
    • Python 打包
  • 硬件部署

    • ARM
    • NVIDIA TensorRT
    • Rockchip NPU
    • Rockchip 上的 Python
  • InspireCV
  • 完整示例
  • API 功能索引
  • 性能测量
  • 图像处理性能
  • 常见问题

构建 HarmonyOS SDK

HarmonyOS 有两种构建产物:C/C++ native SDK 和 ArkTS HAR 模块。ArkTS 应用选择 HAR 模块,自行编写 native 接入层时选择 native SDK。已提供的预编译包见 SDK 下载概述。

下面的配置使用 InspireFace 1.2.4,目标 ABI 为 arm64-v8a,通过 MNN 在 CPU 上推理,以原始像素缓冲作为图像输入。本地构建并打包应用后,应在计划支持的设备上验证。

准备 Native SDK

先完成源码准备,再安装 OpenHarmony Native SDK、CMake 3.20–3.x、Make 和 Node.js。HAR 脚本没有传入依赖在 CMake 4 下所需的额外 policy 设置。后续通过 DevEco Studio 接入和打包 HAR 模块。

将 OHOS_NATIVE_HOME 指向包含 toolchain 文件的 Native SDK 目录:

export OHOS_NATIVE_HOME=/absolute/path/to/native-sdk/native
test -f "$OHOS_NATIVE_HOME/build/cmake/ohos.toolchain.cmake"
cmake --version
node --version

未设置这个变量时,脚本会查找仓库内的 build/harmony-tools/openharmony-6.1/native-sdk/native。脚本不会自动下载 Native SDK。

源码中的 cmake/ohos/node_modules/@ali/tcpkg/tcpkg.cmake 提供 MNN OHOS 配置所需的打包 hook。构建脚本会将 NODE_PATH 指向这个目录。准备源码时保留这部分文件即可,不需要为此另装一套 tcpkg。

构建 ArkTS 模块

从 InspireFace 仓库根目录运行:

bash command/build_harmonyos_napi.sh

脚本构建 InspireFaceNapi 目标,安装产物,并对安装后的库执行 strip。native 核心和第三方依赖静态链接进 libinspireface_napi.so,HAR 不需要再附带一份 libInspireFace.so。

build/inspireface-harmonyos-napi-arm64-v8a/install/HarmonyOS/
  libs/arm64-v8a/libinspireface_napi.so
  har/
    Index.ets
    oh-package.json5
    build-profile.json5
    hvigorfile.ts
    src/main/
      module.json5
      ets/InspireFace.ets
      cpp/types/libinspireface_napi/
        index.d.ts
        oh-package.json5
      libs/arm64-v8a/libinspireface_napi.so

har/ 是已放入 native 库和 ArkTS 源码的 HAR 工程目录。通过应用现有的 DevEco Studio/Hvigor 流程,将它打包成 HAR。

SettingHAR build
Build typeRelease
ABIarm64-v8a
C++ runtimec++_static
Native core静态链接,启用位置无关代码
Public native entrylibinspireface_napi.so 中的 Node-API 注册入口
Inference backendMNN CPU
Optional backends关闭 RKNN、RGA、TensorRT、CUDA 和 Apple 扩展

将 HAR 加入应用

将安装后的 har/ 目录复制到 DevEco Studio 应用中,作为 inspireface 模块注册,并在 entry 模块中添加本地依赖。entry/ 和 inspireface/ 位于同一级目录时,可以使用:

{
  "dependencies": {
    "@hyperinspire/inspireface": "file:../inspireface"
  }
}

同步工程依赖,再按项目选定的 DevEco SDK 和 Hvigor 配置构建应用或 HAR。分发模块时,将 Index.ets、ArkTS 包装层、native 类型声明和编译后的 .so 一起更新。

源码目录 harmony/inspireface/ 是这个包的模板。接入时应使用安装后的 har/ 目录,因为这里还包含构建生成的 native 库。

两个 oh-package.json5 的版本都必须与 native SDK 一致。CMake 会将顶层模块 manifest 和 libinspireface_napi 类型包 manifest 与源码版本比较(此份源码为 1.2.4)。切换 SDK 版本时,一起更新这些文件。

把模型包放在应用可读的文件位置。如果随 raw resource 打包,先将它复制到应用的 files 目录,再调用启动接口。HarmonyOS 使用指南提供了 ArkTS 检测示例和 worker 生命周期说明。

只构建 native SDK

面向 native 应用或自定义桥接层时运行:

bash command/build_harmonyos.sh

标准配置生成 libInspireFace.so,并安装 C 头文件:

build/inspireface-harmonyos-arm64-v8a/install/
  InspireFace/
    include/
    lib/libInspireFace.so
  version.txt

在 native 目标中使用这份库及其配套头文件。这个输出不包含 ArkTS 模块;ArkTS 应用使用前面的 Node-API 构建,将 native 导出、声明和包装层一起打包。

构建目录和检查

Environment variablePurpose
OHOS_NATIVE_HOMENative SDK 目录。
OHOS_BUILD_DIRC/C++ SDK 的输出目录。
OHOS_NAPI_BUILD_DIRNode-API/HAR 的输出目录。
OHOS_BUILD_JOBS并行构建任务数,默认为 4。

HarmonyOS 脚本不会用 VERSION 修改输出目录名。需要带版本的目录时,设置对应的构建目录变量:

OHOS_NAPI_BUILD_DIR="$PWD/build/harmonyos-napi-1.2.4" \
OHOS_BUILD_JOBS=4 \
  bash command/build_harmonyos_napi.sh

Node-API 目标链接后会进行检查:库必须是 AArch64、注册 Node-API 模块、依赖 libace_napi.z.so、隐藏核心 C API,并且不链接 Android 专用库。另一项接口检查覆盖 C API、native 桥接层、类型声明和 ArkTS 包装层。

SymptomCheck
找不到 Native SDKOHOS_NATIVE_HOME 中应包含 build/cmake/ohos.toolchain.cmake。
缺少 tcpkg 兼容模块检查源码中的 cmake/ohos/ 目录是否完整。
包版本检查失败两个 manifest 与 native 源码应使用相同 SDK 版本。
ArkTS 类型正常,但 native 库加载失败检查安装后的模块是否包含 src/main/libs/arm64-v8a/libinspireface_napi.so。
接口或 ABI 检查失败先处理报告中缺失的方法、声明或库,再打包模块。

打包后,在目标设备上检查模型启动、单张 RGBA 图像检测、结果释放和关闭流程,再测试应用中的相机格式转换和 worker 调度。完整接入流程见 HarmonyOS 使用指南。

源码:native 构建脚本、Node-API 构建脚本、HAR 安装和版本检查。

编辑此页
最近更新: 2026/9/28 15:20
贡献者: Jingyu
上一页
iOS
下一页
NVIDIA TensorRT