简介

DFace是一个专门为物联网设备优化的深度学习人脸识别引擎,支持边缘计算异构模式,可覆盖CPU,GPU和NPU等计算类型。 SDK包含了人脸检测,人脸识别,人脸跟踪,活体反欺诈,人脸姿态估计等常用的组件。 内置独立的DfaceEngine人脸识别引擎,可以快速实现各种人脸识别应用场景,例如单人识别,多人识别,人证对比,自动化人脸注册等。 DFace以其功能强大,运行速度快而稳定等特点,已被广泛用于工业消防,智能楼宇,智能教育,智能零售等各个行业,得到各界极高的评价。

框架

下图描述了DFACE的基本框架。 主要由8个功能模块和一个可独立运行的引擎构成,每个模块负责一部分功能,例如人脸检测(DfaceDetect),特征提取(DfaceRecognize)等。DFaceEngine工作在混合模式下,可独立完成单人识别,多人识别,人证对比等多种综合应用场景。

_images/dface_arch.png

基本流程

1. 识别应用场景

DfaceEngine识别应用场景,适合本地人脸库本地比对模式

_images/engine_recognize.png

2. 抓拍应用场景

DfaceEngine抓拍应用场景,适合云端人脸库云端比对模式

_images/engine_recognize.png

技术背景

1.技术概要

1.全深度学习算法

传统算法往往是多种杂乱的算法平凑整合在一起,在效率和流程上难以 控制,例如传统人脸检测采用 haar+Hog,识别采用svm,svr等,这些往往很难 做到结构上的统一,会影响到识别精度和识别性能。我们把人脸检测、人脸特征 点分析、人脸对齐、人脸特征提取、人脸验证与人脸识别都设计成端到端的深度 学习模式,统一和优化了框架结构,可以方便做到不同CPU和不同操作系统的的 统一部署。针对不同计算平台也可以做出最优的选择。

2.超效深度神经网络

识别和速度往往会有一个平衡,例如识别精度越高,速度越慢。我们针对这种情况提供了灵活的模型设计 ,提供了150层(超高精度),100层(高精度),50层(普通精度),30层(实时识别)等不同深度神经网络的模型,用户可以 根据不同的应用场景自主选择。例如针对嵌入式设备可以采用浅层网络,云平台 方案可以选择深层网络。目前最深的网络识别准确率达到了99.7%的水平(2万人 脸库)。

嵌入式设备往往较为苛刻,例如ARM的计算性能一般,内存比较小。 我们针对ARM对算法做了底层的加速优化,利用内存压缩技术把模型进一步缩小,从而使其能够运行在嵌入式终端中。

3.多平台支持

由于我们的端到端设计,因此能够实现一套代码多处编译的效果。目前 我们的SDK支持Linux, Windows, Android, ROS 等系统,支持Intel,AMD, ARM等不同架构的CPU。

4.开箱即用

由于我们出色的架构和代码技巧,SDK可以很容易做到各个平台快速安 装和部署。面对用户层,我们采用热插拔加载模式,用户只需引入头文件,无需 依赖任何第三方库,即可运行我们的 SDK。各个平台兼容性良好,真正做到开箱 即用的感觉。

2.算法功能

1. 人脸检测与跟踪

人脸检测采用最先进的深度学习算法,通过千万张图片先验知识的学习,该技术 目前在复杂环境下依旧能够快速准确的对人脸进行检测并定位,检出率达到 99.97%,4ms-20ms 每帧,效果领先。

2. 人脸(物体)跟踪

脸跟踪不同于传统的卡尔曼滤波,粒子滤波等低精度跟踪算法,我们的算法可 以做到多人脸高精度持续跟踪,该技术能够提升整体人脸识别效果。

3. 人脸关键点检测

基于深度学习算法的68关键点检测技术,能够在复杂环境下稳定地运行,包括不 同光照变换、各种姿态、表情变化的人脸。区别于传统的ASM,CLM等关键点技术, 我们把人脸局部关键点搜索全部CNN化,从而使其回归效果更好,关键点定位更加 准确。

4. 人脸3D姿态

整合深度学习和3D技术,能够智能的判断相机前人脸的3D深度信息,例如俯 角,仰角,偏航角,X轴偏移, Y轴偏移, Z轴偏移等。

5. 人脸自动配准

3D 配准:通过重建3D人脸模型,还原出相应的正面人脸图像,便于人眼的直观 认识与提高后期的机器学习与人脸识别效果。

光照规整:结合场景的多变与光照的复杂性,先通过直方图归一化,然后噪声处 理与关键信息增强技术,将人脸处理到可以识别的最佳效果。

6. 特征提取

人脸识别往往把不同的人脸图片信息映射到同一纬度的特征向量,我们优化了损 失函数,可以做到相同类别的人脸差异很小,而不同类别的人脸差异很大,因此很适 合做高精度人脸识别。目前每个人脸特征统一到2K大小的字节数组,方便后续的 人脸比对。

7. 1:N 对比

我们的1:N比对功能根据不同计算平台做了底层的加速优化,可以并行大规模比 较。即使100万的大规模人脸库比较也只需要400毫秒以内。

8. 人脸清晰度和光照质量判定

提供人脸清晰度和光照质量判断的功能,方便采集人脸库的删选工作,我们巧妙 的利用了高斯模糊和方差等思路。

9. 双目活体检测

SDK提供了红外活体检测的功能,输入红外摄像头拍摄的图片即可自动判断是否 有活体存在。

10. RGB单目活体检测

自主研发的RGB单目活体,可以在一个普通的摄像头下即可判断活体,相对于传 统的红外和双目活体,RGBD单目活体安装更简单,用途更广泛。

11. 单目+双目结合双活检

结合两者活检的优势,做到低成本高安全的支付级别活体检测方案,特别适合 支付应用和银行自助终端设备。

12. 边缘人脸库

提供可同步的边缘人脸库,方便云端统一部署和管理。同时支持设备和云端同步,设备和设备之间的同步。

参数指标

硬件表现(480P)

架构 编译位数 检测 识别
Cortex-A8 32 40~70ms 500~700ms
Cortex-A53 32 20~50ms 50~100ms
Cortex-A72 32 20~40ms 40~100ms
Cortex-A72 64 4~12ms 20~40ms
Intel-j1900 64 30~50ms 70_150ms

人脸库比对

架构 人脸库大小 耗时
Cortex-A72 100万 600ms
Intel-core i5 100万 400ms

识别准确率(1万身份证标准底库)

阈值 误识率 拒识率
0.72 0.03% 0.42%
0.74 0.02% 0.60%
0.76 0.01% 0.85%
0.78 0.00% 1.12%

解决方案选型

1.本地比对云端同步

DfaceEngine工作在单人识别或者多人识别工作模式下,本地设备获取摄像头画面,检测跟踪人脸,活体判断,人脸特征提取并和本地的数据库比对。云端主要用于人脸库管理,并和本地设备通信同步。

_images/local_compare_coud_sync.png

2.本地比对本地同步

DfaceEngine工作在单人识别或者多人识别工作模式下,本地识别设备获取摄像头画面,检测跟踪人脸,活体判断,人脸特征提取并和本地的数据库比对。主节点设备主要用于人脸库管理,并和本地识别设备通信同步。

_images/local_compare_local_sync.png

3.云端比对

DfaceEngine工作在单人抓拍或者多人抓拍工作模式下,本地识别设备获取摄像头画面,检测跟踪人脸,活体判断,人脸特征提取并上传特征字节数组到云端服务器比对。

_images/cloud_compare.png

活体定制化服务

由于RGB单目活体对摄像头和光线环境有一定要求,建议采用高宽动态比和高性噪比的摄像头。为了提升客户的产品竞争力,建议客户用自己的摄像头采集部分活体数据, 我们做定制化的单目模型训练,也可以将摄像头寄给我们,我们自行采集活体数据训练。