一文看懂人脸识别技术发展脉络
一文看懂人脸识别技术发展脉络
人工智能学家
人脸识别可以说是人工智能领域中成熟较早、落地较广的技术之一,从机场、火车站的安检闸机,到平常用户手机中的“刷脸”支付,人脸识别技术已经深入到我们的生活当中。
为了让各位读者深入浅出地全面了解人脸识别技术,InfoQ 与苏宁科技人工智能实验室进行了独家约稿,本文就是“人脸识别系列”文章的开篇——《人脸识别发展脉络》。
本文将全面讲述人脸识别发展的几个重要阶段,并整理出了人脸识别领域的一些重要的技术标准、公开测试以及知名厂商,如果你需要深入了解人脸识别技术,可以从本篇文章开始。
1 人脸识别发展概述
人脸识别问题可以描述为,给定某一场景下的静态图象或者动态序列,根据预先存储的人脸数据库识别或者认证场景中一个或者多个人的身份。
早期的人脸识别多采用传统机器学习算法,经典的算法如特征脸结合线性判别分析。而且研究关注的焦点更多集中在如何提取更有鉴别力的特征上,以及如何更有效的对齐人脸。随着研究的深入,传统机器学习算法人脸识别在二维图象上的性能提升逐渐到达瓶颈,于是大多数人开始转而研究视频中的人脸识别问题,或者结合三维模型的方法去进一步提升人脸识别的性能,少数学者开始研究三维人脸的识别问题。
图 1 传统人脸识别算法发展阶段
在 2013 年、2014 年左右,随着深度学习的方法在手写字符识别上的性能超越了传统机器学习算法,以及 GPU 并行计算的大规模普及,开始有学者研究基于深度学习的人脸识别算法。很快,在最出名的 LFW 公开库上,深度学习算法一举突破了传统机器学习算法在二维图像上人脸识别性能的瓶颈,首次将识别率提升到了 97% 以上,一下子引起世人轰动。但是随着研究的进一步深入,业内形成了一个普遍的共识就是大量的数据是深度学习模型提升性能的关键。所以深度学习发展到现在,走回了传统机器学习算法的路子,就是大家开始转而研究视频中的人脸识别,或者追求在识别精度不变的情况下,用更小的模型,更快的速度去识别人脸,甚至重新开始结合三维模型的一些方法,或者转而研究三维人脸的识别问题。
2 传统机器学习算法**
图 1 是传统机器学习算法下,从原始特征的角度看到的人脸识别经历的几个主要的发展阶段,分别历经从几何特征到表象特征到纹理特征的发展过程。
早期的研究是基于高层特征的几何参数,包括面部器官的几何特性,如双眼间距、头宽、鼻高,和面部关键特征点的相对几何关系,如两眼角和鼻尖的距离比等,代表性的工作是 Bledsoe 于 1964 年构建的半自动人脸识别系统。
但是人脸关键点(特征点)的精确定位本身就是一个比较困难的问题,容易受到姿态和表情等变化的影响,从而导致特征很不稳定;直到现在,人脸特征点定位仍然是人脸算法最重要的一个研究方向。同时提取到的几何特征过于简单,丢失了大量的图象鉴别信息,降低了不同人之间的可分性。所以基于几何特征的算法鲁棒性很差,总体识别准确率不高,不可能构建有实际应用价值的人脸识别系统。
图 2 一种基于表象特征和子空间分析的人脸识别算法
20 世纪 80 年代以后主流人脸识别的特征提取方法进入了基于二维人脸表象的阶段,并一直持续到深度学习出现之前。这类方法提取的不再是具有一定语义信息的特征,而是从图象中抽取底层物理特征,典型的底层特征包括图象灰度特征、图象变换系数或滤波系数(如离散余弦变换、小波变换、Gabor 变换)、局部纹理描述 (如 LBP、HGPP、LGBP、HOG)等。表象原始特征的空间维数很高,不利于训练和识别;并且提取的原始特征大多是从精细描述的角度出发,保留了对识别不利的噪声干扰。因此需要进行进一步的特征降维,使鉴别信息得以集中。
在基于表象特征的人脸识别发展阶段中,基于神经网络的方法也曾兴起过一阵,但是当时受限于软硬件的条件,只能采用浅层的线性神经网络,所以效果并不突出。
除了神经网络的方法,基于子空间分析的方法也在人脸识别的研究中逐渐占据了主流。子空间分析主要研究的是特征分析与分类算法,企图在提取到的人脸特征中,通过特征降维、变换等多种手段,提升特征的鉴别能力。从实际角度而言,后期基于传统机器学习算法的人脸识别通常会将基于表象特征和子空间分析的方法结合起来,共同提升人脸识别的性能。
图 3 人脸的表象特征
在子空间分析的方法中,对表象特征进行压缩处理成为了主流的方案。特征压缩不仅是降低维数的需要,也是提取鉴别信息的需要。在心理学研究和计算机视觉研究的促进下,人们开始认识到人脸类别本身仅仅占据原始特征高维空间的一个低维子空间 [38-42],这是由人脸拓扑结构的高度统一性和人脸图象象素之间的高度相关性所决定的。
人脸认知的问题之一就是寻找这一低维子空间,在认知研究中研究者大量采用主成分分析 (Principal Component Analysis, PCA) 来重构人脸。相应的子空间方法也成为人脸识别的主流方法之一 [43]。Turk 和 Pentlend 在 1991 年首先将 PCA 应用于人脸识别,提出了具有里程碑意义的本征脸算法 (Eigenface)[44-45]。受此启发,研究者将统计分析、信号处理、机器学习等多个领域的成果用于人脸识别,又演绎出了鉴别主成分分析 [46](Discriminant KarhunenLoéve)、线性鉴别分析 [47] (Linear Discriminant Analysis, LDA)、局部特征分析 [48](Local Feature Analysis, LFA)、独立主成分分析 [49](Independent ComponentAnalysis, ICA)、核主成分分析 / 线性鉴别分析 [50-51] (Kernel PCA/LDA)、非负矩阵分解 [52-53](Non-negative Matrix Factorization, NMF)、局部线性嵌入 [54](Locally Linear Embedding, LLE)、局部保持映射 [55](Locality Preserving Projection, LPP)等子空间分析法。根据在构建子空间时是否使用类别信息,这些方法可以分为监督和非监督两大类。它们描述了人脸样本的统计变化,试图将对表示或对识别最关键的信息保留在降维后的低维空间中,同时也可以缓解维数危机。
随着传统算法的性能趋于饱和,研究者们开始从信息源的角度,将人脸识别从二维静止图象向三维人脸和视频人脸拓展。前面提到的方法都是在二维图象上提取特征。90 年代中期以后,由于三维采集技术的发展,基于三维的人脸识别算法逐渐出现。一类算法直接基于三维扫描仪获得的三维数据进行识别,其中三维数据的表示格式主要有三维点集、曲面网格、深度图和 EGI (Extended Gaussian Image) 几种,匹配的方法大致可以分为空域直接匹配、局部特征匹配、整体特征匹配,此外还出现了将 2D 和 3D 融合的人脸识别算法。由于三维数据采集仍然比较困难而且耗时较长,三维数据的处理也较为复杂,因此这类方法还无法投入实际应用。
另外一类可以称为三维辅助的二维方法。算法借助三维模型的辅助,从二维图象学习其在不同姿态、光照条件下的表象变化,以达到算法对姿态、光照鲁棒目的。这类方法兼具二维方法的速度优势和三维方法的性能优势,成为一个新兴的研究方向。这类研究认为,对人脸进行精细分析时还需要利用人脸不同器官的信息,而仅基于人脸表象的方法虽然得到人脸的整体信息但对细节信息的描述存在不足,因此从 20 世纪 90 年代起,研究者提出了一些对人脸的形状和纹理联合建模方法。
第一类是基于图模型来描述人脸形状,弹性束图匹配 [56](Elastic Bunch Graph Matching, EBGM)方法是在此期间出现的典型算法。这种方法将人脸描述为一个属性拓扑图,拓扑图本身可以进行一定的弹性形变,图中每个节点的属性是通过统计学习得到的局部表象特性。在匹配时,人脸形状的形变以节点的匹配程度为指导,以达到整个人脸和图模型的最佳匹配。
另一类是参数化模型方法,这类方法对人脸形状的描述不是采用弹性模板,而是利用大量样本训练得到的点分布模型 [57](Point DistributionModel, PDM)。这类方法在人脸的检测定位和识别中得到了广泛应用,典型算法如柔性表象模型 [58](Flexible Appearance Mode, FAM)、主动形状模型 [59] (Active Shape Model, ASM)和主动表象模型 [60-61](Active Appearance Model, AAM)等。
随着视频监控技术在安全等领域的广泛应用,2000 年以后开始兴起了对视频中人脸识别的研究。相对静止图象而言,视频图象序列包含了更为丰富的表象信息,而视频中的时空信息比如身份的连续性,人脸姿态、表情变化的连续性,在整个图象区域空间上的连续性也可以用以提高识别的准确性。这就使得人脸识别的研究进入了一个利用多模态信息和多生物特征融合的新的发展阶段。
这些研究可以根据应用中目标集和查询集的不同粗略分为三类:图象(多幅图象)对视频、视频对图象(多幅图象)和视频对视频的算法。一般对视频序列要利用其时空状态信息,有选择性地学习建立样本分布的类别模型,采用某些融合策略融合多帧识别结果。
综上所述,人脸识别的研究在原始特征层次从早期几何特征逐渐发展为主流的表象特征;在信息源层次从基于二维静止图象的人脸识别在向三维人脸识别和视频人脸识别的方向扩展;在特征压缩层次逐渐发展为子空间为主流;基于人脸三维形状和纹理联合建模方法为人脸识别和分析提供了另一种思路。
3 基于深度学习算法
自从进入深度学习的时代以来,各家的人脸识别算法就逐渐趋于一致,基本上没有什么特别的亮点,不像传统机器学习时代呈现出百花齐放的色彩。普遍的思路就是利用 CNN 网络建立的高维模型,直接从输入的人脸图像上提取有效的鉴别特征,直接计算余弦距离来进行人脸识别,算法结构趋同。不过,从大体上来说,基于深度学习的人脸识别发展仍然可以分为三个阶段。
第一个阶段为深度学习在人脸识别研究中应用的早期阶段,从最开始的 VGG 网络到 Inception 网络再到 Resnet 网络,网络模型总体上呈现出更深,更宽的趋势。在一些学术上的公开数据集如 LFW、MegaFace 上面,只要进行针对性的结构设计以及参数调整,适当扩大数据集合或者进行数据增强,都能取得差不多很好的效果。但是从实际应用的角度来说,普遍泛化性能不好,不具有实际应用的价值。
第二阶段发展就是以旷视、商汤为代表的在学术公开竞赛中取得好成绩的这些厂商,开始发展实际业务为起点,通过不断扩大他们的实际数据集合,算法性能也在逐渐的提升。到 2016 年左右,基于深度学习的算法无论在学术测试集合上还是在实际应用上,表现都远远超越了基于传统机器学习的算法。人脸识别算法到此完成了深度学习算法的大一统。
到了第三阶段,除了进一步增加数据量以提升算法性能以外,与第一阶段相反,大家开始在不降低识别性能的基础上,研究网络的轻量化。轻量化的主要目的有两个,一个是提升算法的速度,甚至能够部署到移动端;另外一个就是便于硬件实现,从而将人脸识别算法直接做成一个硬件模块。
同时,与传统机器学习算法类似,各家也开始研究视频中的人脸识别(监控场景),同时开始结合一些三维信息去进一步提升识别性能。
未来,人脸识别的发展应当仍然分成上述两个方向,一个方向从有效挖掘海量人脸数据的角度出发,进一步提升模型性能;另外一个方向则是将人脸识别模型轻量化以便实现移动端部署或者做成一个芯片模组。
我个人认为未来的人脸识别算法一定是嵌入到硬件中,成为一个标准化的生物特征认证模组。
4 人脸识别领域的标准制定的情况**
4.1 国内标准制定
•GA/T1126—2013 近红外人脸识别设备技术要求
•GA/T922.2—2011 安防人脸识别应用系统 第 2 部分: 人脸图像数据
•GA/T394—2002 出入口控制系统技术要求
正在制定中的公安行业标准与国家标准
•安防生物特征活体检测技术要求
•安防人脸识别应用系统 第 5 部分:设备接口技术要求
•GB/T 31488-2015 安全防范系统 视频监控人脸识别系统技术要求
•人脸识别信息交换规范
•人脸识别系统术语
•人脸特征规范
•文字数据项规范和格式
•人脸识别系统功能
•人脸识别系统性能指标
•人脸识别系统代码
•人脸识别系统测试标准
4.2 国际标准制定
目前,国际上与人脸识别以及本平台有关的标准主要有:
- ISO/IEC 2382-37:2012 信息技术 术语 第 37 部分:生物特征识别
- ISO/IEC 19784 系列,信息技术 生物特征识别应用程序接口
- ISO/IEC 19785 系列,信息技术 公用生物特征识别交换格式框架
- ISO/IEC 19794-1:2006 和 ISO/IEC 19794-1:2011 信息技术 生物特征识别数据交换格式 第 1 部分 框架(06 版和 11 版)
- ISO/IEC 19794-5:2005 和 ISO/IEC 19794-5:2011 信息技术 生物特征识别数据交换格式 第 5 部分 人脸图像数据(05 版和 11 版,国标对应 11 版)
- ISO/IEC 19795 系列,信息技术 生物特征识别性能测试和报告,该系列对应国家标准 GB/T 29268 系列
- ISO/IEC 24708:2008 信息技术 生物特征识别 BioAPI 互通协议
- ISO/IEC 24709 系列,信息技术 生物特征识别应用程序接口(BioAPI)的符合性测试
- ISO/IEC 29109-1:2009 信息技术 ISO/IEC 19794 中定义的生物特征数据交换格式的符合性测试方法 第 1 部分:通用符合性测试方法
- ISO/IEC 29109-5:2014 信息技术 ISO/IEC 19794 中定义的生物特征数据交换格式的符合性测试方法 第 5 部分:人脸图像数据(该标准对应 ISO/IEC 19794-5:2005,ISO/IEC 19794-5:2011 的符合性测试方法在该标准的附录中)
- ISO/IEC 29794-1:2016 信息技术 生物特征样本质量 第 1 部分:框架
- ISO/IEC TR 29794-5:2010 信息技术 生物特征样本质量 第 5 部分:人脸图像数据
- ISO/IEC 30107-1:2016 信息技术 生物特征识别呈现攻击检测 第 1 部分:框架
5 人脸识别领域的知名厂商
在原来基于传统机器学习算法进行人脸识别的厂商中,国内比较有名的公司主要有北京海鑫、上海银晨、中科奥森、汉王科技;国内有名的研究者主要有中科院李子青老师,以及清华的丁晓青和苏光大两位老师。
近几年由于人脸识别算法的提升,涌进许多新鲜血液的互联网模式公司。这些公司无论从算法性能还是算法迭代更新的速度上,都远远超越前面提到的那些传统厂商。在这众多的公司当中,排在第一集团的应当是上海依图、旷视科技、、商汤科技和云从科技这四家公司。
传统机器学习算法年代,国外比较有名的公司主要有 NEC,而到了深度学习的时代,可以说国外厂商的人脸识别性能普遍不如国内公司,主要原因就是他们没有那么多的人脸数据以供训练,市场也不如国内大。目前比较有名的公司如俄罗斯的 Vocord 公司,目前应该是在 NIST 测试中获得了比较好的名次,目前该测试应该是上海依图排名第一。而类似谷歌、Facebook 等企业,都不是专业的人脸识别企业。
对各个厂家做个简要说明如表 1.
当然,我们苏宁在人脸识别领域也展开的许多卓有成效的工作。只是过去我们在人脸识别领域所开展的研究主要服务于自身的业务场景,并没有对外进行过多的宣传,所以很多人并不知道在苏宁还有一个非常精干且有能力的人脸识别研发团队。
2018 年 3 月,苏宁的人脸识别在 LFW 上的精度达到了 99.83%,排名第一, MegaFace 的 Challenge 1 中的 FaceScrub 测试集上也拿到了第三名,超越国内外众多知名公司。我们会在系列二中详细介绍苏宁的人脸识别及最新进展。
6 人脸识别领域的公开测试**
6.1 国际测试
国际上多以美国国立标准技术研究所(简称 NIST)组织的测试为准。NIST 测试对大学、研究机构和商业公司开放,提供了指纹、人脸、虹膜等多生物特征方面的测试。参加者提供算法 SDK 给 NIST 以参加测试,人脸识别方面主要有两个:
1)NIST-FRVT 静态人脸识别测试
2)NIST-FIVE 视频人脸识别测试
NIST 测试的主要目标,既可以为行业提供标准,并为技术发展提供导向,又可以为用户提供一个选择的依据。
NIST 测试的流程大概如下:
- 提交申请并邮件手写签名申请表。
- 按当年 NIST 要求封装 SDK,在公开验证库上生成特征比对,将特征、比对结果加密方式发到指定工作人,进行初步测试评估。
- 初测要求,环境是 Linux 的系统下,不允许多线程调用,官方对系统、库的版本、命名、接口等进行符合性验证。
- 通过初测后,将封装好的 SDK 发过去做详细测试,测试数据集不公开。
- 等待测试结果报告,报告网站公开发布,参测厂商以代号形式出现在报告中。
6.2 国内测试
国内有一些测试是参考国标 (安防) 和企标来执行,多是委托性测试。以海鑫参加过的人脸识别系统企业标准测试的情况为例说明大概流程如下:
- 意向单位,撰写产品企标,及企标测试方法。
- 提交申请至相关部门进行审核及评估(企标和测试方法)。
- 产品包进行打包送检验证(名称、版本号、系统运行平台等)信息验证。
- 现场搭建调试运行及按撰写企标详细测试。
- 等待测试结果报告。一般以软件测试纸质报告形式提供给受测单位。
6.3 学术测试
LFW、MegaFace 等,这些由大学等研究机构组织,测试样本集可公开下载,测试流程不严格,测试结果权威性不高。
- 测试数据集合公开下载。
- 在测试集合上测试完毕,将结果提交学术机构并在网上公布,无需提供 SDK。
7 总结
作为本系列文章的第一篇,我们主要从人脸识别的发展历史入手给大家稍微梳理了一下人脸识别技术的发展、国内外的主要厂商以及一些比较有名的测试。在后续的文章中,我们会进一步给大家详细介绍现在人脸识别的主流算法及相关技术细节、业内应用人脸识别算法的主要方式以及我们苏宁在人脸识别方向做出了哪些有益的探索。
未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能,互联网和脑科学交叉研究机构。
未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。