应用层下的人脸识别(三):人脸比对
本文作者根据多年人脸识别项目经验,总结了人脸识别技术在安防、商业领域应用及产品设计细节,汇总成应用层下的人脸识别系列文章。本文为系列文章的第三篇——介绍人脸比对相关内容。全文围绕人类比对类型、人脸比对要素展开介绍。
一、人脸比对类型
人脸比对类型可分为四种,分别是:人脸1:1、人脸1:n、人脸1:N、人脸M:N。
人脸识别应用无非就是围绕着这四种比对方式展开,下面将依次介绍各种比对类型。
1. 人脸1:1
人脸1:1一般用于人证核验,可以简单理解为:证明你就是。
例如:在乘坐火车、飞机,出入境,银行办卡时,通常需要验证本人与其持有身份证是否为同一个人。
如下图,系统只需读取二代身份证中的人脸照片,与现场抓拍的本人照片做比对即可。
人脸1:1又称为静态人脸比对,同时具有配合式的特点,完成比对需要用户携带身份证并主动配合采集人脸。
2. 人脸1:n
人脸1:n:将一张人脸照片与人脸库中的多张人脸逐一进行比对,人脸库有多少人脸就需要比对多少次——平台采集了“我”的一张照片之后,从海量的人像数据库中找到与当前使用者人脸数据相符合的图像,并进行匹配,找出来“我是谁”。
人脸1:n又称动态人脸比对。
比对照片是从动态视频中获取的,同时具有非配合特点——整个比对过程是无感知的,不需要人为配合。这两个特性使人脸1:n能迅速落地于公安追捕逃犯,但时其难度要远高于人脸1:1 。(其通常会受到光照变化、人脸姿态的影响——比如侧脸、低头、逆光现象,会大大提升人脸漏报率。)
人脸1:n中“n”的大小(人脸库照片的数量)会影响人脸识别的准确率和比对速度,所以比对人脸库规模会设置的相对较小。
3. 人脸1:N
人脸1:N又称静态大库检索:即以人脸图片、人脸相似度作为检索条件,在人脸库中搜索与其相似(相似度大于设定阈值)的图片——类似于百度以图搜图。
检索过程实际就是:进行N次人脸比对,并留下比分大于阈值的结果。
人脸1:N的人脸库规模相较于人脸1:n会大很多,最高可支持亿级人脸检索,所以这里的N为大写。
4. 人脸M:N
人脸M:N实际就是两个人脸库进行比对。
例如:人脸库A有M个人脸,人脸库B有N个人脸。如果想查看人脸库A和B包含多少个相同的人,就需要用人脸库A中M个人脸逐一与人脸库B中N个人脸进行比对,相当于是M个人脸1:N相加的结果。
人脸M:N常用于惯犯排查、身份查重。
例如:办案人员在处理类似三抢一盗的案件中,一般来说80%的案件是惯犯所为。于是,将线索地点路人库与惯犯库进行人脸M:N比对碰撞,可快速排查嫌疑,找出侦查方向。
二、人脸比对的要素
1. 人脸数据
人工智能算法的演进必须有数据作为支撑。
使用大量标注好的数据训练模型,可将识别的准确率从70%提升到99%水平。客观、精准的数据是人工智能应用必须具备的条件。
获取人脸数据的五种方式:
- 监控相机、手机相机等各种类型相机:拍摄的视频、照片是人脸原始数据的主要来源。项目中常通过RTSP、FTP等协议对接这类相机获取实时视频流或图片流。
- NVR/DVR等录像储存设备:储存了大量视频资源,可通过ONVIF协议对接这类设备获取数据。
- 第三方企业、事业单位的人员信息库:例如公安的八大信息资源库、企业在职员工信息库等。获取这类数据难度较大,会涉及到第三方平台对接,还需考虑到保密、网络安全等问题。
- 互联网中的开放数据集:常用的WebFace、FDDB、LFW、YouTube Face等人脸数据集,提供了优质的标注数据,可用于算法测试及模训练。
- 网络爬取:通过编写或者利用免费网络爬虫程序,自动抓取万维网中的图片。它们被广泛用于互联网的数据采集中。
2. 人脸比对库
人脸比对库为人脸识别提供比对模板——人脸1:n、人脸1:N、人脸M:N必须要有人脸比对库才能进行比对。
系列第二篇文章《应用层下的人脸识别(二):人脸库》详细的介绍了人脸库的建立方法。
3. 比对阈值
比对阈值:人脸比对的相似度。
人脸比对结果以相似度值呈现,在人脸比对之前需要设定一个相似度的门槛值,大于这个门槛则判定两张照片可能为同一个人。
比对阈值对人脸识别的准确率、漏报率影响颇大,比对阈值设置的越高准确率就越高,漏报率也会随之升高。比对阈值没有一个固定的标准,应根据应用场景来灵活调整。
例如:刷脸支付更关注比对准确率,需要调高阈值;而公安嫌犯人脸布控要求降低漏报,就需要适当调低阈值。
4. 芯片
人工智能的三要素是算法、算力和数据,而芯片决定了算力。
深度学习工程的两大关键环节training(训练)和inference(推测)需要大量的算力支撑,普通的CPU无法满足计算要求。
相继推出的高性能GPU、TPU、FPGA、ASIC等加速芯片,大大提升了计算速度,同时也促进了算法的发展。
GPU在人脸1:n、1:N、M:N比对中是不可或缺的,而部分人脸1:1计算量不大,可以不使用加速芯片。亿级人脸检索在GPU的加速下可以达到秒级返回结果。
5. 人脸算法
人脸算法效果决定了人脸识别的上限,也是人脸比对最关键的要素。随着深度学习技术的普及,各大公司的人脸算法效果差距也越来越小。
目前主流的人脸识别算法可以分为以下四类:
- 基于人脸特征点的识别算法
- 基于整幅人脸图像的识别算法
- 基于模板的识别算法
- 利用神经网络进行识别的算法
2018年11月20日公布的,有工业界黄金标准之称的全球人脸识别算法测试(FRVT)结果(如下图):
排名前五的算法都被中国包揽:
- 依图科技(yitu)继续保持全球人脸识别竞赛冠军,在千万分之一误报下的识别准确率超过99%。
- 排名第二的算法也来自依图科技。
- 商汤科技(sensetime)摘得第三名和第四名。
- 中国科学院深圳先进技术研究院(siat)排名第五。
人脸算法虽然在各种数据集的测试中准确率颇高,但还远没达到在商业应用中的满意程度。
目前仍然有很多缺陷需要解决,例如:
姿态问题:
人脸识别主要依据人的面部表象特征来进行,“如何识别由姿态引起的面部变化?”就成了该技术的难点之一。
姿态问题涉及:头部在三维垂直坐标系中,绕三个轴的旋转造成的面部变化。其中,垂直于图像平面的两个方向的深度旋转会造成面部信息的部分缺失。这使得姿态问题成为人脸识别的一个技术难题。
针对姿态的研究相对比较的少,目前多数的人脸识别算法主要针列正面、准正面人脸图像。当发生俯仰或者左右侧而比较厉害的情况下,人脸识别算法的识别率也将会急剧下降。
图像质量问题:
人脸图像的来源可能多种多样,由于采集设备的不同,得到的人脸图像质量也不一样。
特别是对于那些低分辨率、噪声大、质量差的人脸图像(如:手机摄像头拍摄的人脸图片、远程监控拍摄的图片等),“如何进行有效地人脸识别?”就是个需要关注的问题。
而对于高分辨图像对人脸识别算法的影响,也需要进一步的研究。
现在,我们在人脸识别时,一般采用的都是相同尺寸、清晰度很接近的人脸图片,所以图像质量问题基本可以解决。但是,面对现实中更加复杂的问题,还是需要继续优化处理。
遮挡问题:
对于非配合情况下的人脸图像采集,遮挡问题是一个非常严重的问题。
特别是在监控环境下,往往被监控对象都会带着眼镜、帽子等饰物,使得被采集出来的人脸图像有可能不完整,从而影响了后面的特征提取与识别,甚至会导致人脸检测算法的失效。
人脸算法在人脸五官被挡的情况下表现的不是很好。
目前对遮挡识别效果较好的DeepID2算法,可稳定识别遮挡在20%以内,块大小在30*30以下的人脸。
样本缺乏问题:
基于统计学习的人脸识别算法是目前人脸识别领域中的主流算法,但是统计学习方法需要大量的训练。
由于人脸图像在高维空间中的分布是一个不规则的流形分布,能得到的样本只是对人脸图像空间中的一个极小部分的采样。关于“如何解决小样本下的统计学习问题?”,还有待进一步的研究。
以上就是系列文章的第三篇——《应用层下的人脸识别(三):人脸比对》的相关内容。
欢迎大家添加公众号“阳春柏樰”与我继续交流图像识别相关问题。
三、相关阅读
本文由@阳春柏樰 原创发布于人人都是产品经理。未经许可,禁止转载
题图来自Unsplash,基于CC0协议
”比对阈值设置的越高准确率就越高,漏报率也会随之升高“=》这段应该写错了吧,应该是“比对阈值设置的越高,准确率就越高,漏报率会随之降低”?
已理解清楚,作者描述无错误,抱歉打扰
主流的人脸识别算法大体就两类:传统的和cnn的,作者你能解释下基于特征点和基于全局图的吗,我也是做人脸识别产品的,不太清楚你的分类标准,请指教下
我们公司也是做人脸识别的,觉得设计底层人脸识别算法的人真的好牛逼啊
国内公司商汤是唯一几家做算法底层的,其他公司都是基于国外人脸算法开源库开发的
我就说这种的肯定还是国内借鉴国外的多,所以说中国目前还是没有实力掌握底层核心的东西