专栏首页Reinvent Data ScienceMilvus 实战|生物多因子认证系列 (二):人脸识别

Milvus 实战|生物多因子认证系列 (二):人脸识别

视觉 AI 作为一个已经发展成熟的技术领域,具有丰富的应用场景和商业化价值,全球 40% 的 AI 企业都集中在视觉 AI 领域。近年来,视觉 AI 除了在智能手机、智能汽车、智慧安防等典型行业中发挥重要作用外,更全面渗入细分的实体行业,催生了如车站人脸实名认证、人脸支付、小区人脸门禁管理、酒店自助人脸实名登记等视觉 AI 的应用。

人脸识别是视觉 AI 领域中技术成熟度、商业应用程度都比较高的一个技术。人脸识别又称为面部识别,是基于生物特征的识别方式。与指纹识别等传统的识别方式相比,人脸识别具有实时、准确、易于使用、稳定、难仿冒、无须接触等特点。

本文将介绍一个人脸识别项目。此项目基于开源的人脸检测算法 MTCNN、人脸识别库 InsightFace,以及向量相似度搜索引擎 Milvus 实现。

| 关键技术

人脸识别通常包括人脸检测、人脸特征提取、人脸特征比对这三个环节。

人脸检测

人脸检测是人脸识别完整流程中的一个环节。人脸识别系统首先用摄像头采集含有人脸的图像或视频流,然后用人脸检测技术检测人脸位置、定位五官关键点、提取人脸,随后才能进行人脸图像预处理及人脸特征提取。

在实际商业化方案中,人脸检测也可独立于人脸识别进行使用。比如近期被广泛应用的 AI 测温设备就是基于人脸检测技术迅速锁定人脸区域,从而实现红外热成像远距离自动测温。

人脸特征提取

主流的人脸识别算法在进行最核心的人脸比对时,主要依靠人脸特征值的比对。所谓特征值,即面部特征所组成的信息集。

人脸识别算法利用卷积神经网络对海量人脸图片进行学习。它从输入图像中提取出区分不同人脸的特征向量,以替代人工设计的特征。每张人脸在算法中都有一组对应的特征值,这也是人脸比对的依据。

人脸比对

人脸比对是对通过深度学习模型提取出的人脸特征向量进行相似度比对。从同一人的不同照片中提取出的特征值在特征空间里的距离很近;反之,从不同人的照片中提取出的特征值在特征空间里的距离较远。

人脸比对一般会设定一个阈值作为评判通过与否的标准,该阈值一般是用分数或者百分比来衡量。当人脸比对的相似度值大于此阈值时,则比对通过,否则比对失败。一般用拒真率和认假率两个指标来评估人脸比对的效果。

  • 拒真率 FRR(False Rejection Rate):拒真率是指本人亲自比对但是比对失败了,把“真的”当成了“假的”。
  • 认假率 FAR(False Accept Rate):认假率是指人脸比对通过了但其实并不是本人,把“假的”认成了“真的”。

设定的阈值越高,认假率越低,拒真率越高。尽管 FAR 和 FRR 都是越低越好,但两个指标中一个指标的降低会导致另一个指标的升高,所以实际设定的阈值需要根据具体场景去实现两者间的平衡[1]。

| 实现与应用

实现

人脸识别是对摄像头采集到的人脸图像信息进行分析,这一过程主要包括了人脸检测、特征提取和特征比对。本项目使用 MTCNN 完成人脸检测功能,InsightFace 完成人脸特征提取的功能,然后使用 Milvus 完成人脸特征向量的相似度检索。项目流程如图所示:

MTCNN

MTCNN (Multi-task Cascaded Convolutional Networks) 是目前比较流行的人脸检测算法,采用 TensorFlow 框架编写。MTCNN 模型是多任务网络,通过 PNet、RNet、ONet 三个网络级联。下图是三个网络结构:

在提取人脸特征前,通常需要对输入的图像进行中心裁剪。本项目用 MTCNN 对图像进行调整,提取图像中的人脸边界和人脸关键点(包括眼睛、鼻子、嘴角这五个关键点)。

InsightFace

InsightFace 是一个基于 MXNet 的开源的人脸识别库,也是对 Deng J[2] 等人提出的算法的实现。InsightFace 的网络主干包括 ResNet、MobilefaceNet、MobileNet、InceptionResNet_v2、DenseNet、DPN。损失函数包括了 Softmax、SphereFace、CosineFace、ArcFace and Triplet (Euclidean/Angular) Loss。

本项目用 InsightFace 提供的模型将 MTCNN 处理过的人脸图像提取为 512 维的特征向量。

Milvus

Milvus 支持使用多种 AI 模型向量化非结构化数据,并为向量数据提供搜索分析服务。它可处理的业务包括图像处理、机器视觉、自然语言处理、语音识别、推荐系统以及新药发现。具体实现方式是:

  1. 通过深度学习模型将非结构化数据转化为特征向量,并导入 Milvus 库。
  2. 对特征向量进行存储并建立索引。
  3. 接收到用户的向量搜索请求后,返回与输入向量相似的结果。

Milvus 充分利用现代处理器的并行计算能力,可以在单台通用服务器上完成对十亿级数据的毫秒级搜索。人脸库的数据量通常是非常庞大的,因此本项目选择使用 Milvus 来完成人脸比对。

本项目中,我们将 InsightFace 提取出的人脸特征向量导入 Milvus 中,Milvus 会对特征向量进行存储并建立索引。在进行比对时,我们在 Milvus 中查询要识别的人脸的特征向量,Milvus 将返回库中与该人脸向量最相似的向量和相似度。这里我们使用余弦距离来计算人脸相似度,当两张人脸图像的余弦距离大于 0.85 时判定为同一个人。

| 应用

上面介绍了如何通过 MTCNN、InsightFace 和 Milvus 实现一个人脸识别项目。在具体的应用中,我们通过结合人脸识别和声纹识别实现了一个生物多因子认证系统。所谓生物多因子认证,就是利用认证人所拥有的生物信息(包括指纹、人脸、声纹等)实现的一种更加安全的身份认证方式。我们实现的生物多因子认证系统具体搭建步骤可以参考:

https://github.com/milvus-io/bootcamp/tree/master/solutions/MFA

关于声纹识别的介绍请参考本系列的第一篇文章:Milvus 实战|生物多因子认证系列 (一):声纹识别

| 结语

本文介绍了 Milvus 在视觉 AI 领域的一个应用,通过对海量人脸特征向量的相似度匹配来实现人脸识别。Milvus 作为一款向量相似度检索引擎,在其他 AI 领域也有着丰富的应用场景,涉及自然语言处理、声音处理等领域。Milvus 的目标是成为 AI 领域中通用的数据处理平台,致力于加速 AI 技术在各个场景中的落地,更多应用场景请参考 https://tutorials.milvus.io/cn/。

参考文献

  1. https://www.zhihu.com/question/57515604/answer/1210825250
  2. Deng J, Guo J, Xue N, et al. Arcface: Additive angular margin loss for deep face recognition[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2019: 4690-4699.

本文分享自微信公众号 - ZILLIZ(Zilliztech),作者:李云梅

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 快速搭建对话机器人,就用这一招!

    问答系统是自然语言处理领域一个很经典的问题,它用于回答人们以自然语言形式提出的问题,有着广泛的应用。其经典应用场景包括:智能语音交互、在线客服、知识获取、情感类...

    ZILLIZ
  • Milvus开源向量搜索引擎,轻松搭建以图搜图系统

    当您听到“以图搜图”时,是否首先想到了百度、Google 等搜索引擎的以图搜图功能呢?事实上,您完全可以搭建一个属于自己的以图搜图系统:自己建立图片库;自己选择...

    ZILLIZ
  • Milvus数据管理:删除的实现原理

    本文将主要讲述 Milvus 是怎么实现删除功能的。删除是许多用户期待已久的功能,这次终于在 Milvus 0.7.0 版本中发布。区别于直接调用 FAISS ...

    ZILLIZ
  • 人脸检测对齐--Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks

    Joint Face Detection and Alignment Using Multitask Cascaded Convolutional Networ...

    用户1148525
  • 利用渐进校准网络(PCN)的实时角度无关人脸检测

    然后现在的很多人脸检测器比如我们介绍过的MTCNN,FaceBoxes,RetinaFace等等都实现了高精度的实时人脸检测,但这些算法往往都是在直立的人脸上表...

    BBuf
  • ECCV 2018 | 旷视科技提出GridFace:通过学习局部单应变换实现人脸校正

    论文名称:《GridFace: Face Rectification via Learning Local Homography Transformations...

    机器之心
  • 级联人脸检测--A Convolutional Neural Network Cascade for Face Detection

    A Convolutional Neural Network Cascade for Face Detection CVPR2015 https://git...

    用户1148525
  • 人脸识别技术全面总结:从传统方法到深度学习

    自七十年代以来,人脸识别已经成为了计算机视觉和生物识别领域被研究最多的主题之一。基于人工设计的特征和传统机器学习技术的传统方法近来已被使用非常大型的数据集训练的...

    机器之心
  • 【杂谈】有三AI知识星球最近都GAN了哪些内容?

    跨年龄的人脸识别和验证是一个非常具有挑战性的问题,如果能对年龄进行归一化,去除年龄因素的干扰,将大大提升跨年龄人脸识别的精度。

    用户1508658
  • 深度学习之视频人脸识别系列(一):简介

    磐创AI

扫码关注云+社区

领取腾讯云代金券