seetaface6概述
seetaface6源码以及模型文件github下载路径:https://github.com/SeetaFace6Open/index
由于项目性能需求,需要编译seetaface6的tennis模块(前向计算框架)的gpu版本
,目前可供直接下载的版本是cpu版本的,不能够使用gpu进行加速。
seetaface模块的官方文档描述:OpenRoleZoo 为常用操作的集合,SeetaAuthorize 为模型解析工程,TenniS 为前向计算框架。需要重点说明的是,此次 TenniS 同时放出了 GPU 计算源码,可以编译出 GPU 版本进行使用。上述三个模块为基础模块,各个 SDK 的编译均依赖上述模块,因此需要优先编译出 OpenRoleZoo, SeetaAuthorize 和 TenniS,然后再进行其他 SDK 模块的编译。
seetaface6共14个模块度各模块库如下
基础模块:
OpenRoleZoo 常用操作的集合
SeetaAuthorize 模型解析工程
TenniS 前向计算框架
子模块:
FaceAntiSpoofingX6 静默活体模块
FaceBoxes 人脸检测
FaceRecognizer6 人脸识别
FaceTracker6 人脸跟踪
Landmarker 特征点检测
PoseEstimator6 人脸朝向姿态估计
QualityAssessor3 图像质量评估
SeetaAgePredictor 年龄识别
SeetaEyeStateDetector 眼睛状态检测:睁眼,闭眼
SeetaGenderPredictor 性别识别
SeetaMaskDetector 口罩人脸检测`
编译开始
编译工具
For linux
GNU Make 工具
GCC 或者 Clang 编译器
For windows
MSVC 或者 MinGW.
jom
CMake
依赖架构
CPU 支持 AVX 和 FMA [可选](x86)或 NENO(ARM)支持
windows 平台编译说明
cd ./craft
执行脚本 build.win.vc14.all.cmd 编译各个版本的库(gpu版本为build.win.vc14.all_gpu.cmd)
以上是官方的描述,这里我采用vs2019+cmake进行编译。
OpenRoleZoo 和 SeetaAuthorize 版本的编译可以参考以下文章:
https://blog.youkuaiyun.com/fy291021851/article/details/124928615
Tennis的gpu版本编译
打开cmake-gui
配置编译环境,如下所示(前提是已经编译好了OpenRoleZoo的库文件)
上述生成完之后,使用vs打开项目
漫长的等待即可,编译完成打开build目录:
到这里tennis的gpu版本库算是成功了,下面根据需要编译相应的子模块即可。
测速:
提取100张图片的特征,将tennis换成gpu版本大概能快个2秒,cpu版本:5.034s, gpu版本:3.253s,单张图片快30ms左右
gpu:detect-time= 31.9346 ms
cpu:detect-time= 61.93 ms