参考
本项目是基于开源项目 https://github.com/HyperInspire/inspireface-android-sdk 适配的UI界面
本项目是基于开源项目 https://github.com/HyperInspire/InspireFace
inspireface 模块当前内置 InspireFace Android SDK 1.2.4.post1(native 1.2.4,C API Level 2),
取自上游 tag v1.2.4.post1:
| 项目 | 说明 |
|---|---|
| ABI | arm64-v8a、armeabi-v7a、x86_64(x86_64 用于模拟器调试,上游自 1.2.4 起提供) |
| minSdk | 24(1.2.4 起 native 库最低要求,app 与 inspireface 模块已同步) |
| 模型 | 内置 Pikachu(t4.0,17MB)与 Megatron(t4.0,61MB),与上游 SDK 仓库资源一致;默认使用 Megatron,可在 App 的「设置」中切换 |
| 头文件/清单 | inspireface/sdk/1.2.4/(C 头文件、API manifest、SHA256SUMS) |
升级要点:新版本在 native 失败时可能返回 null(ExecuteFaceTrack / ExtractFaceFeature /
FeatureHubFaceSearch),无匹配时 FeatureHubFaceSearch 返回 id = -1、searchConfidence = -1,
业务代码已按此补齐空判断。
- 替换
inspireface/libs/<abi>/libInspireFace.so,新增x86_64 - 同步
inspireface/src/main/java全部 Java 源码(新增 JNI 全量接口、FaceCapture、快照等) - 同步模型资源
Pikachu(t4.0)、Megatron(t4.0)与version.txt,更新consumer-rules.pro(JNI 类保留规则) inspireface与app的minSdk由 22 提升到 24,abiFilters增加x86_64
为了研究人脸识别app,以及为了体验做出demo的成就感。
之前版本没有UI太痛苦了
- 响应式 Material 3 UI:手机竖屏与横屏开发板自适应(主界面 2/3 列卡片、摄像头页底部/侧边控制面板),支持深色模式
- 内置 Pikachu 与 Megatron 两套模型,默认 Megatron,可在设置界面切换,切换后自动重建 Session 并使用该模型资源推荐的识别阈值
- 添加通过相册录入人脸,也可以批量读取文件夹内人脸
- 选择照片人脸识别
- 通过摄像头录入人脸信息
- 通过摄像头实时识别人脸,并且在界面上框选人脸和显示名称
- 自建本地数据存放人脸id对应名称
- 可以查用户列表和删除用户特征值
- 采用kotlin语言开发
注意:Pikachu 与 Megatron 使用不同的特征提取网络,已录入的人脸特征不能跨模型识别;切换模型后如需识别旧用户,请切回原模型或重新录入。
以下为早期版本界面截图,最新版本为 Material 3 响应式界面,可直接安装体验。
![]() |
![]() |
|---|---|
![]() |
![]() |
大家可以自己下载玩一玩,在release里面有apk文件。 觉得不错给我个star吧
哦,还有一个重要的事情,我之前在退出摄像头页面的时候释放代码就崩溃了,研究了半天
InspireFace.ReleaseSession(session)
InspireFace.FeatureHubDataDisable()
InspireFace.GlobalTerminate()因为我在ondestroy()里面调用了以上代码,把InspireFace释放了,但是最后一帧的bitmap还没处理完毕,一旦调用InspireFace里面的其他方法就会崩溃,大家谨记谨记,一定得处理完毕后才能释放资源。
或者在处理的逻辑加上互斥锁 InspireFaceConfig.mutex ,要求关闭时得处理完当前帧
imageAnalysis.setAnalyzer(executor) { imageProxy ->
InspireFaceConfig.mutex { //互斥锁,防止这帧没处理完 InspireFace.ReleaseSession(session) 导致崩溃
val bitmap = imageToBitmap(imageProxy)
bitmap?.let { processBitmap(it) }
}
}对了,给我个star吧



