0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

干货 | 人脸识别技术全面总结:从传统方法到深度学习

t1PS_TechSugar 来源:YXQ 2019-05-17 17:07 次阅读

人脸识别是指能够识别或验证图像或视频中的主体的身份的技术。首个人脸识别算法诞生于七十年代初 [1,2]。自那以后,它们的准确度已经大幅提升,现在相比于指纹或虹膜识别 [3] 等传统上被认为更加稳健的生物识别方法,人们往往更偏爱人脸识别。让人脸识别比其它生物识别方法更受欢迎的一大不同之处是人脸识别本质上是非侵入性的。比如,指纹识别需要用户将手指按在传感器上,虹膜识别需要用户与相机靠得很近,语音识别则需要用户大声说话。相对而言,现代人脸识别系统仅需要用户处于相机的视野内(假设他们与相机的距离也合理)。这使得人脸识别成为了对用户最友好的生物识别方法。这也意味着人脸识别的潜在应用范围更广,因为它也可被部署在用户不期望与系统合作的环境中,比如监控系统中。人脸识别的其它常见应用还包括访问控制、欺诈检测、身份认证和社交媒体。

当被部署在无约束条件的环境中时,由于人脸图像在现实世界中的呈现具有高度的可变性(这类人脸图像通常被称为自然人脸(faces in-the-wild)),所以人脸识别也是最有挑战性的生物识别方法之一。人脸图像可变的地方包括头部姿势、年龄、遮挡、光照条件和人脸表情。图 1 给出了这些情况的示例。

主成分分析

线性判别分析

人脸识别系统通常由以下构建模块组成:

很多人认为人脸表征是人脸识别系统中最重要的组件,这也是本论文第二节所关注的重点。

深度学习方法

卷积神经网络(CNN)是人脸识别方面最常用的一类深度学习方法。深度学习方法的主要优势是可用大量数据来训练,从而学到对训练数据中出现的变化情况稳健的人脸表征。这种方法不需要设计对不同类型的类内差异(比如光照、姿势、面部表情、年龄等)稳健的特定特征,而是可以从训练数据中学到它们。深度学习方法的主要短板是它们需要使用非常大的数据集来训练,而且这些数据集中需要包含足够的变化,从而可以泛化到未曾见过的样本上。幸运的是,一些包含自然人脸图像的大规模人脸数据集已被公开 [9-15],可被用来训练 CNN 模型。除了学习判别特征,神经网络还可以降维,并可被训练成分类器或使用度量学习方法。CNN 被认为是端到端可训练的系统,无需与任何其它特定方法结合。

用于人脸识别的 CNN 模型可以使用不同的方法来训练。其中之一是将该问题当作是一个分类问题,训练集中的每个主体都对应一个类别。训练完之后,可以通过去除分类层并将之前层的特征用作人脸表征而将该模型用于识别不存在于训练集中的主体 [99]。在深度学习文献中,这些特征通常被称为瓶颈特征(bottleneck features)。在这第一个训练阶段之后,该模型可以使用其它技术来进一步训练,以为目标应用优化瓶颈特征(比如使用联合贝叶斯 [9] 或使用一个不同的损失函数来微调该 CNN 模型 [10])。另一种学习人脸表征的常用方法是通过优化配对的人脸 [100,101] 或人脸三元组 [102] 之间的距离度量来直接学习瓶颈特征。

自组织映射

上面提到的方法都未能取得突破性的成果,主要原因是使用了能力不足的网络,且训练时能用的数据集也相对较小。直到这些模型得到扩展并使用大量数据 [107] 训练后,用于人脸识别的首个深度学习方法 [99,9] 才达到了当前最佳水平。尤其值得一提的是 Facebook 的 DeepFace [99],这是最早的用于人脸识别的 CNN 方法之一,其使用了一个能力很强的模型,在 LFW 基准上实现了 97.35% 的准确度,将之前最佳表现的错误率降低了 27%。研究者使用 softmax 损失和一个包含 440 万张人脸(来自 4030 个主体)的数据集训练了一个 CNN。本论文有两个全新的贡献:(1)一个基于明确的 3D 人脸建模的高效的人脸对齐系统;(2)一个包含局部连接的层的 CNN 架构 [108,109],这些层不同于常规的卷积层,可以从图像中的每个区域学到不同的特征。在那同时,DeepID 系统 [9] 通过在图块(patch)上训练 60 个不同的 CNN 而得到了相近的结果,这些图块包含十个区域、三种比例以及 RGB 或灰度通道。在测试阶段,会从每个图块提取出 160 个瓶颈特征,加上其水平翻转后的情况,可形成一个 19200 维的特征向量(160×2×60)。类似于 [99],新提出的 CNN 架构也使用了局部连接的层。其验证结果是通过在这种由 CNN 提取出的 19200 维特征向量上训练一个联合贝叶斯分类器 [48] 得到的。训练该系统所使用的数据集包含 202599 张人脸图像,来自 10177 位名人 [9]。

对于基于 CNN 的人脸识别方法,影响准确度的因素主要有三个:训练数据、CNN 架构和损失函数。因为在大多数深度学习应用中,都需要大训练集来防止过拟合。一般而言,为分类任务训练的 CNN 的准确度会随每类的样本数量的增长而提升。这是因为当类内差异更多时,CNN 模型能够学习到更稳健的特征。但是,对于人脸识别,我们感兴趣的是提取出能够泛化到训练集中未曾出现过的主体上的特征。因此,用于人脸识别的数据集还需要包含大量主体,这样模型也能学习到更多类间差异。[110] 研究了数据集中主体的数量对人脸识别准确度的影响。在这项研究中,首先以降序形式按照每个主体的图像数量对一个大数据集进行了排序。然后,研究者通过逐渐增大主体数量而使用训练数据的不同子集训练了一个 CNN。当使用了图像数量最多的 10000 个主体进行训练时,得到的准确度是最高的。增加更多主体会降低准确度,因为每个额外主体可用的图像非常少。另一项研究 [111] 研究了更宽度的数据集更好,还是更深度的数据集更好(如果一个数据集包含更多主体,则认为它更宽;类似地,如果每个主体包含的图像更多,则认为它更深)。这项研究总结到:如果图像数量相等,则更宽的数据集能得到更好的准确度。研究者认为这是因为更宽度的数据集包含更多类间差异,因而能更好地泛化到未曾见过的主体上。表 1 展示了某些最常用于训练人脸识别 CNN 的公开数据集。

用于人脸识别的 CNN 架构从那些在 ImageNet 大规模视觉识别挑战赛(ILSVRC)上表现优异的架构上取得了很多灵感。举个例子,[11] 中使用了一个带有 16 层的 VGG 网络 [112] 版本,[10] 中则使用了一个相似但更小的网络。[102] 中探索了两种不同类型的 CNN 架构:VGG 风格的网络 [112] 和 GoogleNet 风格的网络 [113]。即使这两种网络实现了相当的准确度,但 GoogleNet 风格的网络的参数数量少 20 倍。更近段时间,残差网络(ResNet)[114] 已经成为了很多目标识别任务的最受偏爱的选择,其中包括人脸识别 [115-121]。ResNet 的主要创新点是引入了一种使用捷径连接的构建模块来学习残差映射,如图 7 所示。捷径连接的使用能让研究者训练更深度的架构,因为它们有助于跨层的信息流动。[121] 对不同的 CNN 架构进行了全面的研究。在准确度、速度和模型大小之间的最佳权衡是使用带有一个残差模块(类似于 [122] 中提出的那种)的 100 层 ResNet 得到的。

选择用于训练 CNN 方法的损失函数已经成为近来人脸识别最活跃的研究领域。即使使用 softmax 损失训练的 CNN 已经非常成功 [99,9,10,123],但也有研究者认为使用这种损失函数无法很好地泛化到训练集中未出现过的主体上。这是因为 softmax 损失有助于学习能增大类间差异的特征(以便在训练集中区别不同的类),但不一定会降低类内差异。研究者已经提出了一些能缓解这一问题的方法。优化瓶颈特征的一种简单方法是使用判别式子空间方法,比如联合贝叶斯 [48],就像 [9,124,125,126,10,127] 中所做的那样。另一种方法是使用度量学习。比如,[100,101] 中使用了配对的对比损失来作为唯一的监督信号,[124-126] 中还结合使用了分类损失。人脸识别方面最常用的度量学习方法是三元组损失函数 [128],最早在 [102] 中被用于人脸识别任务。三元组损失的目标是以一定余量分开正例对之间的距离和负例对之间的距离。从数学形式上讲,对于每个三元组 i,需要满足以下条件 [102]:

其中 x_a 是锚图像,x_p 是同一主体的图像,x_n 是另一个不同主体的图像,f 是模型学习到的映射关系,α 施加在正例对和负例对距离之间的余量。在实践中,使用三元组损失训练的 CNN 的收敛速度比使用 softmax 的慢,这是因为需要大量三元组(或对比损失中的配对)才能覆盖整个训练集。尽管这个问题可以通过在训练阶段选择困难的三元组(即违反余量条件的三元组)来缓解 [102],但常见的做法是在第一个训练阶段使用 softmax 损失训练,在第二个训练阶段使用三元组损失来对瓶颈特征进行调整 [11,129,130]。研究者们已经提出了三元组损失的一些变体。比如 [129] 中使用了点积作为相似度度量,而不是欧几里德距离;[130] 中提出了一种概率式三元组损失;[131,132] 中提出了一种修改版的三元组损失,它也能最小化正例和负例分数分布的标准差。用于学习判别特征的另一种损失函数是 [133] 中提出的中心损失(centre loss)。中心损失的目标是最小化瓶颈特征与它们对应类别的中心之间的距离。通过使用 softmax 损失和中心损失进行联合训练,结果表明 CNN 学习到的特征能够有效增大类间差异(softmax 损失)和降低类内个体差异(中心损失)。相比于对比损失和三元组损失,中心损失的优点是更高效和更容易实现,因为它不需要在训练过程中构建配对或三元组。另一种相关的度量学习方法是 [134] 中提出的范围损失(range loss),这是为改善使用不平衡数据集的训练而提出的。范围损失有两个组件。类内的损失组件是最小化同一类样本之间的 k-最大距离,而类间的损失组件是最大化每个训练批中最近的两个类中心之间的距离。通过使用这些极端案例,范围损失为每个类都使用同样的信息,而不管每个类别中有多少样本可用。类似于中心损失,范围损失需要与 softmax 损失结合起来以避免损失降至零 [133]。

当结合不同的损失函数时,会出现一个困难,即寻找每一项之间的正确平衡。最近一段时间,已有研究者提出了几种修改 softmax 损失的方法,这样它无需与其它损失结合也能学习判别特征。一种已被证明可以增加瓶颈特征的判别能力的方法是特征归一化 [115,118]。比如,[115] 提出归一化特征以具有单位 L2 范数,[118] 提出归一化特征以具有零均值和单位方差。一个成功的方法已经在 softmax 损失中每类之间的决策边界中引入了一个余量 [135]。为了简单,我们介绍一下使用 softmax 损失进行二元分类的情况。在这种情况下,每类之间的决策边界(如果偏置为零)可由下式给定:

其中 x 是特征向量,W_1 和 W_2 是对应每类的权重,θ_1 和 θ_2 是 x 分别与 W_1 和 W_2 之间的角度。通过在上式中引入一个乘法余量,这两个决策边界可以变得更加严格:

如图 8 所示,这个余量可以有效地增大类别之间的区分程度以及各自类别之内的紧凑性。根据将该余量整合进损失的方式,研究者们已经提出了多种可用方法 [116,119-121]。比如 [116] 中对权重向量进行了归一化以具有单位范数,这样使得决策边界仅取决于角度 θ_1 和 θ_2。[119,120] 中则提出了一种加性余弦余量。相比于乘法余量 [135,116],加性余量更容易实现和优化。在这项工作中,除了归一化权重向量,特征向量也如 [115] 中一样进行了归一化和比例调整。[121] 中提出了另一种加性余量,它既有 [119,120] 那样的优点,还有更好的几何解释方式,因为这个余量是加在角度上的,而不是余弦上。表 2 总结了有余量的 softmax 损失的不同变体的决策边界。这些方法是人脸识别领域的当前最佳。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 人脸识别
    +关注

    关注

    76

    文章

    4005

    浏览量

    81753
  • 深度学习
    +关注

    关注

    73

    文章

    5491

    浏览量

    120958

原文标题:【科普】人脸识别技术全面总结:从传统方法到深度学习

文章出处:【微信号:TechSugar,微信公众号:TechSugar】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    AI干货补给站 | 深度学习与机器视觉的融合探索

    ,帮助从业者积累行业知识,推动工业视觉应用的快速落地。本期亮点预告本期将以“深度学习与机器视觉的融合探索”为主题,通过讲解深度学习定义、传统
    的头像 发表于 10-29 08:04 180次阅读
    AI<b class='flag-5'>干货</b>补给站 | <b class='flag-5'>深度</b><b class='flag-5'>学习</b>与机器视觉的融合探索

    GPU深度学习应用案例

    能力,可以显著提高图像识别模型的训练速度和准确性。例如,在人脸识别、自动驾驶等领域,GPU被广泛应用于加速深度学习模型的训练和推理过程。 二
    的头像 发表于 10-27 11:13 324次阅读

    深度识别人脸识别有什么重要作用吗

    深度学习人脸识别技术是人工智能领域的一个重要分支,它利用深度
    的头像 发表于 09-10 14:55 394次阅读

    深度识别人脸识别在任务中为什么有很强大的建模能力

    深度学习人脸识别技术是人工智能领域中的一个重要分支,它利用深度
    的头像 发表于 09-10 14:53 307次阅读

    图像识别算法都有哪些方法

    图像识别算法是计算机视觉领域的核心任务之一,它涉及图像中提取特征并进行分类、识别和分析的过程。随着深度
    的头像 发表于 07-16 11:14 5084次阅读

    基于Python的深度学习人脸识别方法

    基于Python的深度学习人脸识别方法是一个涉及多个技术领域的复杂话题,包括计算机视觉、深度
    的头像 发表于 07-14 11:52 1170次阅读

    深度学习中的时间序列分类方法

    时间序列分类(Time Series Classification, TSC)是机器学习深度学习领域的重要任务之一,广泛应用于人体活动识别、系统监测、金融预测、医疗诊断等多个领域。随
    的头像 发表于 07-09 15:54 698次阅读

    深度学习中的无监督学习方法综述

    深度学习作为机器学习领域的一个重要分支,近年来在多个领域取得了显著的成果,特别是在图像识别、语音识别、自然语言处理等领域。然而,
    的头像 发表于 07-09 10:50 481次阅读

    人脸识别技术的优缺点有哪些

    人脸识别技术是一种基于人脸特征信息进行身份识别的生物识别技术。随着计算机视觉、
    的头像 发表于 07-04 09:25 1817次阅读

    人脸识别技术的原理介绍

    的应用。本文将详细介绍人脸识别技术的原理,包括人脸检测、人脸特征提取、人脸匹配等关键步骤。 一、
    的头像 发表于 07-04 09:22 1045次阅读

    人脸识别模型训练是什么意思

    人脸识别模型训练是指通过大量的人脸数据,使用机器学习深度学习算法,训练出一个能够
    的头像 发表于 07-04 09:16 463次阅读

    人脸检测与识别方法有哪些

    人脸检测与识别是计算机视觉领域中的一个重要研究方向,具有广泛的应用前景,如安全监控、身份认证、智能视频分析等。本文将详细介绍人脸检测与识别方法
    的头像 发表于 07-03 14:45 626次阅读

    深度学习传统机器学习的对比

    在人工智能的浪潮中,机器学习深度学习无疑是两大核心驱动力。它们各自以其独特的方式推动着技术的进步,为众多领域带来了革命性的变化。然而,尽管它们都属于机器
    的头像 发表于 07-01 11:40 1177次阅读

    深度解析深度学习下的语义SLAM

    随着深度学习技术的兴起,计算机视觉的许多传统领域都取得了突破性进展,例如目标的检测、识别和分类等领域。近年来,研究人员开始在视觉SLAM算法
    发表于 04-23 17:18 1236次阅读
    <b class='flag-5'>深度</b>解析<b class='flag-5'>深度</b><b class='flag-5'>学习</b>下的语义SLAM

    人脸识别技术的原理是什么 人脸识别技术的特点有哪些

    人脸识别技术的原理 人脸识别技术是一种通过计算机以图像或视频为输入,
    的头像 发表于 02-18 13:52 1626次阅读