1. 概述
人脸识别作为人工智能和机器学习中的一个活跃领域,长期以来一直在追求模仿甚至超越人类视觉系统的能力。这项技术在安全、监控、身份验证等多个方面都有着广泛的应用,但同时也伴随着隐私、伦理和准确性等社会和文化方面的考量。
Meta(当时称为Facebook)为了缩小机器与人类在人脸识别方面的表现差距,推出了名为DeepFace的人脸识别框架。DeepFace模型通过在庞大的人脸图像数据集上进行训练,学习到复杂的特征表示,以实现高准确率的人脸识别。该框架的设计允许它在不同的数据集上进行极少的调整即可使用,并能够生成紧凑但富有表现力的人脸特征。
DeepFace框架利用了深度学习的强大能力,这种学习方式涉及使用多层神经网络来自动学习和提取数据中的特征。DeepFace网络架构的一个关键特点是它假设人脸在图像中的位置是固定的,这使得它可以直接使用原始像素值进行学习,而不需要像其他一些方法那样依赖于多层次的卷积操作来提取特征。
人脸识别的传统流程通常包括以下四个阶段:
(1). 检测 :在图像或视频中定位人脸的位置。
(2). 对齐 :调整人脸图像,使其眼睛、鼻子、嘴巴等特征对齐到标准位置。
(3). 表示 :提取人脸的特征表示,这些特征随后用于识别。
(4). 分类:根据特征表示将人脸分类到正确的身份。
DeepFace框架的贡献在于:
- . 开发高效的深度神经网络(DNN)架构,能够处理大规模数据集,并学习到可以泛化到其他数据集的人脸特征。
- . 结合显式的3D人脸模型,开发出有效的人脸对齐系统,这有助于提高识别的准确性。
DeepFace的研究和开发是人脸识别技术发展史上的一个里程碑,它不仅推动了学术界和工业界在人脸识别领域的进步,也引发了关于技术应用和隐私保护之间平衡的广泛讨论。随着技术的不断进步,人脸识别的准确性和应用范围有望继续扩大,同时也需要更多的关注和措施来确保技术的正当使用。
2.模型构架
2.1 人脸对齐
人脸对齐技术是一种巧妙的方法,通过根据眼睛的位置来调整人脸图像的角度,确保了图像的标准化。这种技术在人脸识别领域的数据预处理中扮演着至关重要的角色,它通过提供一致的图像输入,极大地提升了识别算法的精确度。
尽管人脸对齐看似简单,但在实际操作中,它却是一项充满挑战的任务。人脸的表情变化、头部姿势、以及身体动态等因素,都可能对人脸对齐的准确性造成影响。为了应对这些难题,开发者们采用了一些高级技术,如利用3D人脸分析模型或在其他数据集中寻找基准点,以提高对齐的成功率。
尽管目前还没有一种完美的人脸对齐解决方案,但3D模型的使用提供了一种可能的解决路径。尽管3D模型的流行度在近年来有所下降,特别是在处理非约束性环境时,但鉴于人脸本身的三维特性,如果能够恰当应用,3D模型仍然是一个有力的工具。例如,DeepFace模型就采用了基准点来构建人脸的3D模型,并以此将人脸图像转换为标准化的正面视图。
DeepFace的对齐过程同样遵循了行业标准,使用了基准点检测器来指导对齐操作。DeepFace模型虽然采用了基础的点检测器,但它通过多次迭代应用这一技术,不断精细化最终的输出结果。模型中使用的是一个经过训练的支持向量回归器(SVR),它能够根据图像描述符在每次迭代中提取基准点。DeepFace的图像描述符主要基于局部二值模式(LBP)直方图,同时也会考虑其他特征以增强描述的准确性。
2.2 2D人脸对齐
DeepFace模型通过检测检测作物内的六个基准点来启动对齐过程,这些基准点以眼睛中部、嘴巴位置和鼻尖为中心。 它们用于旋转、缩放图像并将其平移到六个锚点位置,并对扭曲的图像进行迭代,直到没有可见的变化。 然后聚合转换生成一个 2D 对齐的公司。 该对齐方法与 LFW-a 中使用的方法非常相似,多年来一直使用该方法来尝试提高模型精度。
2.3 3D人脸对齐
为了通过平面外旋转对齐人脸,DeepFace 框架使用通用 3D 形状模型,并注册一个 3D 相机,该相机可用于将 2D 对齐的公司包装到其图像平面中的 3D 形状。 结果,模型生成了公司的 3D 对齐版本,并通过使用第二个 SVR 或支持向量回归器在 67D 对齐公司中定位额外的 2 个基准点来实现。
然后,模型手动将 67 个锚点放置在 3D 形状上,从而能够实现 3D 参考与其相应基准点之间的完全对应。 在下一步中,使用广义最小二乘解将 3D 到 2D 仿射相机添加到具有已知协方差矩阵的线性系统中,以最小化某些损失。
2.4 正面投影
由于未对非刚性变形和全透视投影进行建模,因此安装的 3D 到 2D 相机仅用作近似值。 为了减少最终扭曲中重要的身份承载因素的损坏,DeepFace 模型将相应的残差添加到每个参考基准点的 xy 分量中。 这种为了扭曲 2D 图像而减少对身份的扭曲的目的的放松是合理的,如果没有它,脸部将在 3D 中扭曲成相同的形状,并在此过程中失去重要的区分因素。
最后,该模型通过使用由 67 个基准点导出的 Delaunay 三角剖分指导的分段仿射变换来实现正面化。
(1). 检测到的人脸有 6 个基准点。
(2). 诱导二维对齐公司。
(3). 67D 对齐公司上有 2 个基准点。
(4). 参考 3D 形状转换为 2D 对齐的企业图像。
(5). 相对于 3D-2D 相机的三角形可见性。
(6). 67D 模型诱导的 3 个基准点。
(7). 最终公司的 3D 对齐版本。
(8). 3D 模型生成的新视图。
2.5 代表性
随着训练数据量的增加,事实证明,与工程特征相比,基于学习的方法更加高效和准确,主要是因为基于学习的方法可以发现和优化特定任务的特征。
3. DNN 架构和训练
DeepFace DNN 经过多类人脸识别任务的训练,对人脸图像的身份进行分类。
上图代表了DeepFace模型的整体架构。 该模型有一个卷积层 (C1),具有 32 个大小为 11x11x3 的滤波器,该层被输入大小为 3×3 像素的 152D 对齐 152 通道 RGB 图像,并生成 32 个特征图。 然后,这些特征图被馈送到最大池化层或 M2,该层在 3×3 空间邻域中取最大值,并且每个通道的步幅为 2。 接下来是另一个卷积层 (C3),它包含 16 个滤波器,每个滤波器大小为 9x9x16。 这些层的主要目的是提取低级特征,例如纹理和简单边缘。 使用最大池化层的优点在于,它使卷积层生成的输出对局部翻译更加鲁棒,并且当应用于对齐的人脸图像时,它们使网络对小规模的配准错误更加鲁棒。
多个级别的池化确实使网络在某些情况下更加稳健,但它也会导致网络丢失有关微纹理和详细人脸结构的精确位置的信息。 为了避免网络丢失信息,DeepFace 模型仅在第一个卷积层中使用最大池化层。 然后,模型将这些层解释为前端自适应预处理步骤。 尽管它们完成了大部分计算,但它们本身的参数有限,并且它们只是将输入扩展为一组局部特征。
接下来的 L4、L5 和 L6 层在本地连接,就像卷积层一样,它们应用滤波器组,其中特征图中的每个位置都学习一组独特的滤波器。 由于对齐图像中的不同区域具有不同的局部统计量,因此它不能满足空间平稳性假设。 例如,与嘴和鼻子之间的区域相比,眉毛和眼睛之间的区域具有更高的辨别能力。 忠诚层的使用会影响训练参数的数量,但不会影响特征提取期间的计算负担。
DeepFace 模型首先使用三层只是因为它拥有大量标记良好的训练数据。 局部连接层的使用可以进一步证明是合理的,因为局部连接层的每个输出单元都可能受到大量输入数据的影响。
最后,顶层完全连接,每个输出单元连接到所有输入。 这两层可以捕获人脸图像不同部分捕获的特征之间的相关性,例如嘴的位置和形状以及眼睛的位置和形状。 第一个全连接层(F7)的输出将被网络用作其原始人脸表示特征向量。 然后,该模型会将最后一个全连接层 (F8) 的输出馈送到 K 路 softmax,生成类标签上的分布。
4. 数据集
DeepFace 模型使用数据集组合,其中以社交人脸分类或 SFC 数据集为主要数据集。 此外,DeepFace模型还使用了LFW数据集和YTF数据集。
4.1 证监会数据集
SFC 数据集是从 Facebook 的图片集合中学习得到的,它由 4.4 人的 4,030 万张标记图像组成,每个人有 800 到 1200 张面孔。 SFC 数据集每个身份的最新 5% 的人脸图像被保留用于测试目的。
4.2 LFW 数据集
LFW 数据集包含超过 13,323 名名人的 6,000 张照片,然后将这些照片分为 10 个分区中的 XNUMX 对脸部。
4.3 YTF 数据集
YTF 数据集由 3,425 个主题的 1,595 个视频组成,它是 LFW 数据集中名人的子集。
5. 成果
在没有正面化且仅使用 2D 对齐的情况下,模型的准确度得分仅为 94.3% 左右。当模型使用人脸检测的center corp时,它不使用任何对齐,在这种情况下,模型返回的准确度分数为87.9%,因为人脸区域的某些部分可能会落在center corp之外。为了单独评估人脸表示的判别能力,该模型遵循无监督学习设置来比较归一化特征的内积。它将模型的平均准确率提高到 95.92%
上述模型比较了 DeepFace 模型与其他最先进的人脸识别模型的性能。
上图描绘了数据集上的 ROC 曲线。
6.总结
理想情况下,人脸分类器能够以人类的准确度识别人脸,并且无论图像质量、姿势、表情或照明如何,它都能够返回高精度。 此外,理想的人脸识别框架只需很少的修改或无需修改即可应用于各种应用。 尽管 DeepFace 是目前最先进、最高效的人脸识别框架之一,但它并不完美,在某些情况下可能无法提供准确的结果。 但是 DeepFace 框架是人脸识别行业的一个重要里程碑,它通过利用强大的度量学习技术缩小了性能差距,并且随着时间的推移,它将继续变得更加高效。