人脸识别基础关键技术

这是一个「看脸」的时代,一谈人脸技术,大家最为熟知就是人脸识别。该技术在金融、社保、零售、安防等领域表现活跃,成为人工智能技术领域的明星。本文主要介绍一些背后默默支持人脸识别的技术。

一般而言,一个完整的人脸识别系统包含四个主要组成部分,即人脸检测、人脸对齐、人脸特征提取以及人脸识别。

四部分流水线操作:

  1. 人脸检测在图像中找到人脸的位置;
  2. 人脸配准在人脸上找到眼睛、鼻子、嘴巴等面部器官的位置;
  3. 通过人脸特征提取将人脸图像信息抽象为字符串信息;
  4. 人脸识别将目标人脸图像与既有人脸比对计算相似度,确认人脸对应的身份。

1、人脸检测(Face Detection)

检测出图像中人脸所在位置的一项技术

人脸检测算法的输入是一张图片,输出是人脸框坐标序列(0个人脸框或1个人脸框或多个人脸框)。一般情况下,输出的人脸坐标框为一个正朝上的正方形,但也有一些人脸检测技术输出的是正朝上的矩形,或者是带旋转方向的矩形。

常见的人脸检测算法基本是一个“扫描”加“判别”的过程,即算法在图像范围内扫描,再逐个判定候选区域是否是人脸的过程。因此人脸检测算法的计算速度会跟图像尺寸、图像内容相关。开发过程中,我们可以通过设置“输入图像尺寸”、或“最小脸尺寸限制”、或“人脸数量上限”的方式来加速算法。

人脸检测结果示例:

2、人脸对齐(Face Alignment)

根据输入的人脸图像,自动定位出人脸上五官关键点坐标的一项技术

人脸对齐算法的输入是“一张人脸图片”加“人脸坐标框”,输出五官关键点的坐标序列。五官关键点的数量是预先设定好的一个固定数值,可以根据不同的语义来定义(常见的有5点、68点、90点等等)。

这项技术的应用很广泛,比如自动人脸识别,表情识别以及人脸动画自动合成等。由于不同的姿态、表情、光照以及遮挡等因素的影响,准确地定位出各个关键特征点看似很困难。我们简单地分析一下这个问题,不难发现这个任务其实可以拆分出三个子问题:
1. 如何对人脸表观图像(输入)建模
2. 如何对人脸形状(输出)建模
3.如何建立人脸表观图像(模型)与人脸形状(模型)的关联

对人脸图像进行特征点定位,将得到的特征点利用仿射变换进行人脸矫正,若不矫正,非正面人脸进行识别准确率不高,最后将矫正的人脸送入人脸识别网络,此时的人脸识别网络可以是一个分类网络,我们只需要提取分类网络中的某个层作为人脸的特征层,此时的特征才是人脸的特征。

人脸对齐结果示例(右图中的蓝点点位为人脸配准结果):

3、人脸特征提取(Face Feature Extraction)

将一张人脸图像转化为一串固定长度的数值的过程

具有表征某个人脸特点能力的数值串被称为“人脸特征(Face Feature)”。

人脸特征提取过程的输入也是 “一张人脸图”和“人脸五官关键点坐标”,输出是人脸相应的一个数值串(特征)。人脸提特征算法都会根据人脸五官关键点坐标将人脸对齐预定模式,然后计算特征。

近几年来,深度学习方法基本统治了人脸提特征算法,这些算法都是固定时长的算法。早前的人脸提特征模型都较大,速度慢,仅使用于后台服务。但最新的一些研究,可以在基本保证算法效果的前提下,将模型大小和运算速度优化到移动端可用的状态。

人脸特征提取过程(最右侧数值串为“人脸特征”)

4、人脸识别(Face Recognition)

识别出输入人脸图对应身份的算法

输入一个人脸特征,通过和注册在库中N个身份对应的特征进行逐个比对,找出“一个”与输入特征相似度最高的特征。将这个最高相似度值和预设的阈值相比较,如果大于阈值,则返回该特征对应的身份,否则返回“不在库中”。

人脸识别过程:

5、人脸活体检测(Face Vivo Detection)

判断人脸图像是来自真人还是来自攻击假体(照片、视频等)的方法

计算机判别检测的人脸是真实的人脸,还是伪造的人脸攻击,比如合法用户图片、提前拍摄的视频等。

和前面所提到的人脸技术相比,人脸活体不是一个单纯算法,而是一个问题的解法。这个解法将用户交互和算法紧密结合,不同的交互方式对应于完全不同的算法。

解决人脸活体检测这个问题,不光是需要通过各种反欺骗算法,还有需要通过一系列的硬件设备配合,如静默活体检测、红外活体检测、获取生物信号(心率等)、光流场、深度摄像头、语音指令配合等。

传统方法将其视为一个“活体”VS“假体”的二分类问题,当然也可看成多分类问题,如真人、图片攻击、视频回放攻击、面具攻击等)。

衍生技术

1、人脸属性识别(Face Attribute)

识别出人脸的性别、年龄、姿态、表情等属性值的一项技术

一般的人脸属性识别算法的输入是“一张人脸图”和“人脸五官关键点坐标”,输出是人脸相应的属性值。人脸属性识别算法一般会根据人脸五官关键点坐标将人脸对齐(旋转、缩放、扣取等操作后,将人脸调整到预定的大小和形态),然后进行属性分析。
常规的人脸属性识别算法识别每一个人脸属性时都是一个独立的过程,即人脸属性识别只是对一类算法的统称,性别识别、年龄估计、姿态估计、表情识别都是相互独立的算法。但最新的一些基于深度学习的人脸属性识别也具有一个算法同时输入性别、年龄、姿态等属性值的能力。

2、 人脸比对(Face Compare)

衡量两个人脸之间相似度的算法

人脸比对算法的输入是两个人脸特征(注:人脸特征由前面的人脸提特征算法获得),输出是两个特征之间的相似度。人脸验证、人脸识别、人脸检索都是在人脸比对的基础上加一些策略来实现。相对人脸提特征过程,单次的人脸比对耗时极短,几乎可以忽略。

3、人脸验证(Face Verification)

判定两个人脸图是否为同一人的算法

它的输入是两个人脸特征,通过人脸比对获得两个人脸特征的相似度,通过与预设的阈值比较来验证这两个人脸特征是否属于同一人(即相似度大于阈值,为同一人;小于阈值为不同)。

人脸验证过程就是人脸识别过程。

4、人脸检索(Face Retrieve)

查找和输入人脸相似人脸的算法

人脸检索通过根据人脸特征的数值,在大量的数据库里检索,找出最相似的人。

将输入的人脸和一个人脸库中的人脸进行比对,根据比对后的相似度对人脸库中的人脸进行排序。根据相似度从高到低排序的人脸序列即使人脸检索的结果。

人脸检索过程:

人脸识别基础关键技术相关推荐

  1. 人脸识别的关键技术及原理

    目录 1.人脸检测(Face Detection): 2.人脸配准(Face Alignment): 3.人脸属性识别(Face Attribute): 4.人脸提特征(Face Feature Ex ...

  2. 微表情如何用计算机分析计算,面部微表情识别若干关键技术之计算机研究

    面部微表情识别若干关键技术之计算机研究 论文价格:免费 论文用途:其他 编辑:vicky 点击次数:188 论文字数:31584 论文编号:sb2019053109223726543 日期:2019- ...

  3. 基于人脸识别和图像分割技术制作证件照

    我们经常会遇到这样的问题,报名参加考某种考试, 需要提交符合指定背景.尺寸要求的照片,但是手上只有生活中,或者照片尺寸符合要求,但是背景不符合要求的情况. 今天我教大家基于人脸识别和图像分割技术制作证 ...

  4. 一文读懂:深扒人脸识别60年技术发展史

    来源:与非网 摘要: "他来听我的演唱会,门票换了手铐一对".最近歌神张学友变阿SIR,演唱会上频频抓到罪犯,将人脸识别技术又一次推到了大众的视线中. "他来听我的演唱会 ...

  5. 深扒人脸识别60年技术发展史

    "他来听我的演唱会,门票换了手铐一对".最近歌神张学友变阿SIR,演唱会上频频抓到罪犯,将人脸识别技术又一次推到了大众的视线中.要说人脸识别技术的爆发,当属去年9月份苹果iPhon ...

  6. 人脸识别基础知识、大规模人脸识别评测

    文章目录: 1 人脸识别背景介绍 1.1 人脸1:1比对 1.2 人脸1:N搜索 1.3 人脸N:N搜索 1.4 人脸虚拟ID的聚类 1.5 人脸识别的基本流程 2 人脸识别前沿算法 2.1 人脸识别 ...

  7. 人脸识别加VR技术 港媒:中国高科技加入“垃圾战”

    参考消息网7月21日报道港媒称,中国消费者已经习惯了把日常生活的一切交给手机APP去打理,现在又加上了垃圾分类. 据香港<南华早报>网站7月18日报道,在上海7月1日开始实施垃圾分类新政, ...

  8. 标识人脸程序matlab,Matlab人脸识别基础源程序

    [实例简介] 功能为在图片中查找是否存在人脸,如果存在将其通过方框标识. 整体过程为:拍照保存--->将RGB照片转换为灰度照片--->数字图像处理提取特征--->人脸识别 [实例截 ...

  9. 人脸识别基础(FaceNet)

    文章目录 Face verification VS Face recoginition Encoder Triplet Loss 主要思路参考: FaceNet论文:FaceNet: A Unifie ...

最新文章

  1. .NET 6新特性试用 | LINQ功能改进
  2. 《深入理解JVM.2nd》笔记(二):Java内存区域与内存溢出异常
  3. 用VC++绘制位图按钮
  4. iOS中真机连接电脑运行程序出现问题
  5. 几篇QEMU/KVM代码分析文章
  6. qq令牌64位密钥提取_令牌QQ号代码64位数字+字母只截图保存可转换文字再来获取口令...
  7. Android 大漠插件功能,猩猩助手安卓模拟器怎么用大漠插件
  8. php之sprintf的用法,PHP之sprintf函数用法详解_PHP
  9. Web打印控件Lodop实现表格物流单的打印
  10. pwm控制直流电机转速流程图_一例PWM直流电机转速控制器的电路图,附电路原理分析...
  11. 三种简单的方法去除视频中的水印
  12. 【IDEA】idea取消英语拼音提示绿色波浪线
  13. python爬虫-喜马拉雅_晚安妈妈睡前故事
  14. ubuntu16.04查看opencv安装路径以及版本号
  15. Android flac to wav
  16. python怎么使用证书_Python使用系统SSL证书?
  17. Xftp传输文件发生错误
  18. 中兴技面+综面+面试技巧
  19. 对于自我的反省 - 对底层人民认知产生的商业思考
  20. @数字信号处理实验1

热门文章

  1. sudo出现sudo:must be setuid root问题的解决方法
  2. 观百工堰竹筏竞技比赛有感
  3. CTF web题总结--LFI
  4. GridView中使用DataFromatString
  5. 在C 函数中保存状态:registry、reference和upvalues
  6. 自定义listView添加滑动删除功能
  7. shell按行读取文件的常见几种方法
  8. cisco *** 案例2
  9. [转]SQL Server 2005 分区表实践——建立分区表(partition table)
  10. org.hibernate.hql.ast.QuerySyntaxException: ? is not mapped