

GitHub - seetafaceengine/SeetaFace2: SeetaFace 2
source link: https://github.com/seetafaceengine/SeetaFace2
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

README.md
SeetaFace2
1. 简介
SeetaFace2
人脸识别引擎包括了搭建一套全自动人脸识别系统所需的三个核心模块,即:人脸检测模块 FaceDetector
、面部关键点定位模块 FaceLandmarker
以及人脸特征提取与比对模块 FaceRecognizer
。还将陆续开源人脸跟踪、闭眼检测等辅助模块。
SeetaFace2
采用标准 C++ 开发,全部模块均不依赖任何第三方库,支持 x86 架构(Windows、Linux)和 ARM 架构(Android)。SeetaFace2 支持的上层应用包括但不限于人脸门禁、无感考勤、人脸比对等。
SeetaFace2 是面向于人脸识别商业落地的里程碑版本,其中人脸检测模块在 FDDB 上的 100 个误检条件下可达到超过 92% 的召回率,面部关键点定位支持 5 点和 81 点定位,1 比 N 模块支持数千人规模底库的人脸识别应用。
模块 方法概述 基础技术指标 典型平台速度 人脸检测 Cascaded CNN FDDB 上召回率达到92%(100个误检情况下)。 40 最小人脸I7: 70FPS(1920x1080)
RK3399: 25FPS(640x480) 面部关建点定位(81点和5点) FEC-CNN 平均定位误差(根据两眼中心距离归一化)
300-W Challenge Set 上达到 0.069。 I7: 450FPS 和 500FPS
RK3399: 110FPS 和 220FPS 人脸特征提取与比对 ResNet50 识别:通用1:N+1场景下,错误接受率1%时,
1000人底库,首选识别率超过98%,
5000人底库,首选识别率超过95%。 I7: 8FPS
RK3399: 2.5FPS
与 2016 年开源的 SeetaFace 1.0
相比,SeetaFace2
在速度和精度两个层面上均有数量级的提升。
[2] 人脸检测的精度指100个误捡FDDB数据集的召回率。
知人识面辩万物,开源赋能共发展。SeetaFace2
致力于 AI 赋能发展,和行业伙伴一起共同推进人脸识别技术的落地。
2. 编译
2.1 编译依赖
- 编译工具
- For linux
- GNU Make 工具
- GCC 或者 Clang 编译器
- For windows
- MSVC 或者 MinGW.
- For linux
- 依赖库
- [可选] OpneCV 仅编译例子时需要
- 依赖架构
- CPU 支持 SSE2 和 FMA(x86)或 NENO(ARM)支持
2.2 linux和windows平台编译说明
- 编译参数
- PLATFORM: [STRING] 编译目标架构,x86/x86_64/amd64 不需要设置,ARM 架构需要设置为对应平台
- BUILD_DETECOTOR: 是否编译人脸检测模块。ON:打开;OFF:关闭
- BUILD_LANDMARKER: 是否编译面部关键点定位模块。ON:打开;OFF:关闭
- BUILD_RECOGNIZER: 是否编译人脸特征提取与比对模块。ON:打开;OFF:关闭
- BUILD_EXAMPLE: 是否编译例子。ON:打开;OFF:关闭,打开需要预先安装
OpneCV
- CMAKE_INSTALL_PREFIX: 安装前缀
- linux
-
依赖
-
opencv。仅编译例子时需要
sudo apt-get install libopencv-dev
-
-
编译
cd SeetaFace2 mkdir build cd build cmake .. -DCMAKE_INSTALL_PREFIX=`pwd`/install -DBUILD_EXAMPLE=OFF # 如果有 OpneCV,则设置为 ON cmake --build .
- ARM 架构编译需要制定平台
cmake .. -DCMAKE_INSTALL_PREFIX=`pwd`/install -DPLATFORM=arm cmake --build .
- ARM 架构编译需要制定平台
-
安装
cmake --build . --target install
-
运行例子
-
把生成库的目录加入到变量 LD_LIBRARY_PATH 中
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:`pwd`/lib
-
拷贝模型文件到程序执行目录的 model 目录下
cd SeetaFace2 cd build cd bin mkdir model cp fd_2_00.dat pd_2_00_pts5.dat pd_2_00_pts81.dat .
-
执行 bin 目录下的程序
- point81
- search
-
- windows
- 依赖
- opencv。仅编译例子时需要
- 使用 cmake-gui.exe 工具编译。打开 cmake-gui.exe
- 命令行编译
-
把 cmake 命令所在目录加入到环境变量 PATH 中
-
从开始菜单打开 “VS2015开发人员命令提示”,进入命令行
-
编译
cd SeetaFace2 mkdir build cd build cmake .. -DCMAKE_INSTALL_PREFIX=install -DBUILD_EXAMPLE=OFF # 如果有 OpneCV,则设置为 ON cmake --build .
-
安装
cmake --build . --target install
-
运行例子
-
拷贝模型文件到程序执行目录的 model 目录下
cd SeetaFace2 cd build cd bin mkdir model cp fd_2_00.dat pd_2_00_pts5.dat pd_2_00_pts81.dat .
-
执行 bin 目录下的程序
- points81
- search
-
-
-
2.3 Android平台编译说明
Android 版本的编译方法:
- 安装 ndk 编译工具;
- 环境变量中导出 ndk-build 工具;
cd
到各模块的jni
目录下(如SeetaNet 的 Android 编译脚本位置为SeetaNet/sources/jni
, FaceDetector 的 Android 编译脚本位置为FaceDetector/FaceDetector/jni
),执行ndk-build -j8
命令进行编译。
编译依赖说明:人脸检测模块 FaceDetector
, 面部关键点定位模块 FaceLandmarker
以及人脸特征提取与比对模块 FaceRecognizer
均依赖前向计算框架 SeetaNet
模块,因此需优先编译前向计算框架 SeetaNet
模块。
3. 目录结构
|-- SeetaFace2
|-- craft(linux 和 windows 平台的编译脚本)
|-- documents(SDK 接口说明文档)
|-- example(C++ 版本 SDK 示例代码)
|-- FaceDetector(人脸检测模块)
|-- FaceLandmarker(特征点定位模块)
|-- FaceRecognizer(人脸特征提取和比对模块)
|-- SeetaNet(前向计算框架模块)
4. 模型下载
-
人脸检测模块 FaceDetector 模型下载链接:
MD5 :E88669E5F1301CA56162DE8AEF1FD5D5
百度网盘:https://pan.baidu.com/s/1Dt0M6LXeSe4a0Pjyz5ifkg 提取码:fs8r
Dropbox : https://www.dropbox.com/s/cemt9fl48t5igfh/fd_2_00.dat?dl=0 -
面部特征5点定位模块 FaceLandmarker 模型下载链接:
MD5 :877A44AA6F07CB3064AD2828F50F261A
百度网盘:https://pan.baidu.com/s/1MqofXbmTv8MIxnZTDt3h5A 提取码:7861
Dropbox : https://www.dropbox.com/s/noy8tien1gmw165/pd_2_00_pts5.dat?dl=0 -
面部特征81点定位模块 FaceLandmarker 模型下载链接:
MD5 :F3F812F01121B5A80384AF3C35211BDD
百度网盘:https://pan.baidu.com/s/1CCfTGaSg_JSY3cN-R1Myaw 提取码:p8mc
Dropbox : https://www.dropbox.com/s/v41lmclaxpwow1d/pd_2_00_pts81.dat?dl=0 -
人脸特征提取和比对模块 FaceRecognizer 模型下载链接:
MD5 :2D637AAD8B1B7AE62154A877EC291C99
百度网盘:https://pan.baidu.com/s/1y2vh_BHtYftR24V4xwAVWg 提取码:pim2
Dropbox : https://www.dropbox.com/s/6aslqcokpljha5j/fr_2_10.dat?dl=0
5. example 说明
example/search/example.cpp
示例展示了一套简单且完整的人脸识别的流程,包括:1. 预注册图像中的人脸到人脸识别底库中(example 中默认注册了"1.jpg"中的人脸);2. 打开摄像头,检测摄像头画面中的人脸;3.对检测到人脸进行识别,确定所属人脸的身份。
测试者如果想在底库中成功识别出自己的人脸,需要在example.cpp的底库注册列表部分添加以自己名称命名的图片(名称 + .jpg),并把自己名称命名的图片文件拷贝到程序的运行目录下,重新编译 example 并运行程序,测试识别效果即可。
6. 开发者社区
欢迎开发者加入 SeetaFace 开发者社区,请先加 SeetaFace 小助手微信,经过审核后邀请入群。
6.1 代码贡献
欢迎开发者贡献优质代码,所有开发者代码需提交在develop
分支。
7. 商业合作
想要购买 SeetaFace
商业版引擎以获得精度更高、速度更快的人脸识别算法或活体验证、表情识别、心率估计、姿态估计、视线追踪等更多人脸分析模块支持,请联系商务邮件 [email protected]。
8. 开源协议
SeetaFace2
依照 BSD 2-Clause license 开源.
Recommend
-
195
Calcflow A Virtual Reality Tool for Mathematical Modeling! The repository contains the open-sourced code to Calcflow, a powerful mathematical visualization tool designed to give students, educators, and engineers a better grasp on...
-
217
Release 5.0 · javaee/glassfish · GitHub ...
-
465
README.md ViaBTC Exchange Server ViaBTC Exchange Server is a trading backend with high-speed performance, designed for cryptocurrency exchanges. It can...
-
205
Pytorch Exercises Pytorch is one of the most popular deep learning libraries as of 2017. One possible way of familiarizing yourself with it, I think, is to practice with simple quizzes. That's where this project comes in. The outline will...
-
113
Bytom Official golang implementation of the Bytom protocol. Automated builds are available for stable releases and the unstable master branch. Binary archives are published at
-
338
Welcome to tmux! tmux is a terminal multiplexer: it enables a number of terminals to be created, accessed, and controlled from a single screen. tmux may be detached from a screen and continue running in the background, then later reattach...
-
181
-
380
惊鸿一瞥 这是一个可以帮助你在命令行中完成Github的各种操作的cli工具。 创建它的初衷是因为我是一个命令行狂热爱好者,与此同时我也是一个Github的fans,每当我在命令行环境中进行开发工作时,如果此时我想看看Github上又诞生了什么新的有趣的开源项
-
41
我爱计算机视觉 标星,更快获取CVML新技术 时隔3年,中科视拓升级商用级别人脸识别算法 SeetaFace2! https://github.com/seetafaceengine/SeetaFace2 See...
-
5
如何在OpenHarmony上使用SeetaFace2人脸识别库? 精选 原创 如何...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK