Seetaface6 人脸识别Android开发系列(1) - 编译篇

关于Seetaface6

SeetaFace6是中科视拓最新开源的商业正式版本。可免费商用哦~


此次开源包含了一直以来人脸识别的基本部分,如人脸检测、关键点定位、人脸识别。同时增加了活体检测、质量评估、年龄性别估计。应对目前疫情,还开放了口罩检测以及戴口罩的人脸识别模型。太赞了!

这次 Seetaface 还开源了最新的推理引擎 Tennis, 同时人脸识别训练集也大幅提高,达到了亿级。

为了应对不同级别的应用需求,SeetaFace6 开放三个版本模型:

模型名称 网络结构 速度(I7-6700) 速度(RK3399) 特征长度
通用人脸识别 ResNet-50 57ms 300ms 1024
带口罩人脸识别 ResNet-50 34ms 150ms 512
通用人脸识别(小) Mobile FaceNet 9ms 70ms 512

作为能力兼容升级,SeetaFace6仍然能够给众多人脸识别应用提供业务能力。



同时该套算法适用于高精度的服务器部署外,也可以终端设备上很好的适应运行。


此次开放版将开放标准C++开发接口的,包含x86和ARM架构支持,逐步开放Ubuntu、CentOS、macOS、Android、IOS的支持。同时仍然保持了SeetaFace优良传统,不依赖任何第三方库。

环境准备

需要工具:Git 、ndk-build

下载源码

SeetaFace6 :https://github.com/SeetaFace6Open/index

git clone --recursive https://github.com/SeetaFace6Open/index.git

对于 伸手党 略过后面编译相关说明,最后统一给出编译好的网盘链接。

编译顺序 (*重点)

OpenRoleZoo 为常用操作的集合,SeetaAuthorize 为模型解析工程,TenniS 为前向计算框架。需要重点说明的是,此次 TenniS 同时放出了 GPU 计算源码,可以编译出 GPU 版本进行使用。上述三个模块为基础模块,各个 SDK 的编译均依赖上述模块。

先编译出 OpenRoleZoo, SeetaAuthorize 和 TenniS,然后再进行其他 SDK 模块的编译。

Android 平台编译说明

  • 安装 ndk 编译工具 (推荐版本: ndk-r16b )

    • 下载地址 https://dl.google.com/android/repository/android-ndk-r16b-windows-x86_64.zip?hl=zh_cn

    • 设置环境变量, 导出ndk-build工具

  • 编译
    各个模块 (子目录文件夹内) 均含有 android/jni/Android.mk 和 android/jni/Application.mk 两个编译脚本文件。

    • cd 到各模块的 android/jni 目录
    • 执行 ndk-build -j4 编译
//也利用批处理来做
//build.bat 内容
ndk-build NDK_LOG=1 -j4

编译完,会在相应子模块中与 jni 同级目录下生成 libsobj 文件夹。下面是活体检测模块编译后文件结构示例:

官方使用的是Makefile来编译的,当然也可以使用Cmakelist来编译,笔者编译初期有尝试过,个别模块没有编译通过,后续有时间再尝试。

其他平台编译

其他如 linux、windows等平台的编译参考官方文档说明。

伸手党福利

  • 编译过的源码包:
//30天有效期
链接:https://pan.baidu.com/s/1p_8aX8BG4Z2WWt3vGfO6QA 
提取码:fj6r 
  • ndk-r16b
链接:https://pan.baidu.com/s/1tbyuRHqKALSFLOBsbzREEA 
提取码:srvt 

你可能感兴趣的:(Seetaface6 人脸识别Android开发系列(1) - 编译篇)