Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

一鸣报道

SeetaFace2.0:中科视拓开源跨平台C++商业人脸识别库

近年来,人脸识别算法已日臻成熟,但受制于编程语言、模型架构、第三方依赖等问题,其运行速度、性能和跨平台能力一直受到影响。近日,来自中科院计算所的中科视拓团队商业开源了一款名为 SeetaFace2.0 的人脸识别库,完全使用 C++编写,支持 Windows、Linux 和 ARM 平台,且不依赖第三方库。人脸识别库中开源的三个模块都取得了很好的性能和很高的运算效率。

人脸识别一直有着广泛的应用场景,优秀的算法模型可以很好地提升人脸识别的速度、降低错误率、并能够部署在各种设备中。近日,来自中科院计算所的中科视拓团队宣布开源商用级 SeetaFace2 人脸识别算法,采用 BSD 协议。

中科视拓的人脸识别技术来自于国家万人计划领军人才山世光研究员和国家自然科学基金委杰出青年基金获得者陈熙霖研究员共同领导的中科院计算所视觉信息处理与学习研究组。研究成果先后获得过国家科技进步二等奖和国家自然科学二等奖。

开源地址:https://github.com/seetafaceengine/SeetaFace2

SeetaFace2

SeetaFace2 是一个完整的人脸识别项目,其中包括了人脸检测模块 FaceDetector、面部关键点定位模块 FaceLandmarker 以及人脸特征提取与比对模块 FaceRecognizer。还将陆续开源人脸跟踪、闭眼检测等辅助模块。

这一项目使用 C++完成,不依赖任何第三方库,而且支持 x86 平台和 ARM 平台,具有良好的适配能力,可部署于各类平台上,由开发者进一步开发新的应用。

项目目录

现已对开发者开源的项目内容和目录如下:

  • SeetaFace2

  • craft(linux 和 windows 平台的编译脚本)

  • documents(SDK 接口说明文档)

  • example(C++ 版本 SDK 示例代码)

  • FaceDetector(人脸检测模块)

  • FaceLandmarker(特征点定位模块)

  • FaceRecognizer(人脸特征提取和比对模块)

  • SeetaNet(前向计算框架模块)

根据中科视拓提供的资料,现已开源的三个模块性能都非常高。它们都使用了深度学习架构,在保证效果的前提下尽可能提升计算速度,以下分别为每个模块使用的算法、技术指标和平台运行速度信息。

人脸检测

人脸检测使用的模型是 Cascate CNN。如图所示,该模型将人脸识别的图像分为三个阶段,每个阶段进行一次识别,并通过级联的方式将每一阶段的图像特征和上一阶段学习到的特征级联后进行 softmax。

Cascate CNN 的架构。分别使用了 12x12、24x24 和 48x48 的网络,对人脸图像进行三阶段的识别。

面部关键点定位

这一模块使用的是 FEC-CNN。如图所示,这也是将人脸图像经过多个 CNN 网络处理,每经过一个网络便获得一个表征,并和上一阶段的输入相乘。在经过了 T 个网络后输出最终的图像关键点。

FEC-CNN 网络的架构。

人脸特征提取和对比

这一模块使用了 ResNet50 的模型架构。如图所示,这一网络将多个残差学习块串联在一起,利用模型的深度学习图像的深层表征。

ResNet50 的模型架构。

模型效果

从中科视拓提供的资料来看,现在开源的三个模块都有着不错的模型性能。

和 1.0 版本的 SeetaFace 相比,SeetaFace2 在模型性能方面有了很大的提升,同时运行速度没有受到太大的影响。

编译和使用

那么,开发者怎样可以使用这些模块呢?官方在项目中提供了编译为 SDK 的方式,方便开发者将其作为自有项目中的组件使用。现已支持的操作系统平台有 Windows、Linux 和安卓系统。

开发者也可以编译运行example文件夹中的文件,尝试体验使用。example/search/example.cpp 示例展示了一套人脸识别的流程,包括:1. 预注册图像中的人脸到人脸识别底库中(example 中默认注册了"1.jpg"中的人脸);2. 打开摄像头,检测摄像头画面中的人脸;3. 对检测到人脸进行识别,确定所属人脸的身份。

测试者如果想在底库中成功识别出自己的人脸,需要在 example.cpp 的底库注册列表部分添加以自己名称命名的图片 (名称 + .jpg),并把自己名称命名的图片文件拷贝到程序的运行目录下,重新编译 example 并运行程序,测试识别效果即可。

下载渠道

为了更好地让开发者继续开发工作,官方已提供下载模型的渠道:

1. 人脸检测模块 FaceDetector 模型下载链接:

  • MD5 :E88669E5F1301CA56162DE8AEF1FD5D5

  • 百度网盘:https://pan.baidu.com/s/1Dt0M6LXeSe4a0Pjyz5ifkg 提取码:fs8r

  • Dropbox : https://www.dropbox.com/s/cemt9fl48t5igfh/fd_2_00.dat?dl=0

2. 面部特征 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

3. 面部特征 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

4. 人脸特征提取和比对模块 FaceRecognizer 模型下载链接:

  • MD5 :2D637AAD8B1B7AE62154A877EC291C99

  • 百度网盘:https://pan.baidu.com/s/1y2vh_BHtYftR24V4xwAVWg 提取码:pim2

  • Dropbox : https://www.dropbox.com/s/6aslqcokpljha5j/fr_2_10.dat?dl=0

入门人脸识别中科视拓
6
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

人脸识别技术

广义的人脸识别实际包括构建人脸识别系统的一系列相关技术,包括人脸图像采集、人脸定位、人脸识别预处理、身份确认以及身份查找等;而狭义的人脸识别特指通过人脸进行身份确认或者身份查找的技术或系统。 人脸识别是一项热门的计算机技术研究领域,它属于生物特征识别技术,是对生物体(一般特指人)本身的生物特征来区分生物体个体。

操作系统技术

操作系统(英语:operating system,缩写作 OS)是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。

推荐文章
暂无评论
暂无评论~