深度人脸识别:CVPR2020论文要点

Towards Universal Representation Learning for Deep Face Recognition

论文链接:https://arxiv.org/pdf/2002.11841.pdf

摘要

识别狂野的面孔是极其困难的,因为它们看起来有各种各样的变化。传统的方法要么使用目标域中的特定注释变化数据进行训练,要么通过引入未标记的目标变化数据来适应训练数据。相反,我们提出了一个通用的表示学习框架,它可以在不利用目标领域知识的情况下处理给定训练数据中看不到的较大变化。我们将训练数据与一些语义上有意义的变化(如低分辨率、遮挡和头部姿势)进行了综合。然而,直接输入增广数据进行训练并不能很好地收敛,新引入的样本大多是硬例子。我们建议将特征嵌入分割成多个子嵌入,并为每个子嵌入关联不同的置信值,以平滑训练过程。通过调整不同分区上的变化分类损失和变化对抗损失,进一步解除了子嵌入的相关性。实验表明,该方法在lfwandmagface等一般人脸识别数据集上取得了很好的性能,而在微型人脸和IJB-S等极端基准上取得了显著的效果。

Introductions

深度人脸识别是将输入的图像映射到一个具有较小的内部同一距离和较大的内部同一距离的特征空间,这是通过损失设计和具有丰富的类内变化的数据集来实现的[29,40,17,38,4]。然而,即使是非常大的公共数据集,如MS-Celeb-1M,也表现出强烈的偏见,如种族[33]或头部姿势[20,24]。这种变化的缺乏导致在具有挑战性的测试数据集上性能显著下降,例如,先前最新技术[31]报告的IJB-S或TinyFace[11,3]的精度比IJB-A[14]或LFW[10]低约30%。最近的研究试图通过识别相关的变异因素,并通过领域适应方法增加数据集以合并它们来缓解这个问题[33]。有时,这样的变化很难识别,因此领域适应方法被用来调整训练和测试领域之间的特征【28】。或者,可以在不同的数据集上训练单个模型,并对其进行集成,以在每个数据集上获得良好的性能[19]。

所有这些方法要么只处理特定的变化,要么要求访问测试数据分布,要么增加额外的运行时复杂性来处理更广泛的变化。相比之下,我们建议学习一个单一的“通用”深度功能演示,它可以处理变化的婴儿识别,而不需要访问测试数据分布,并保持运行时效率,同时在不同情况下获得强大的性能,特别是在低质量的图像上(见图1)。

本文在第三节中介绍了一些新的贡献来学习这种普遍的表示。首先,我们注意到具有非正面姿势、低分辨率和严重遮挡的输入是对“野外”应用提出挑战的关键可命名因素,对于这些应用,训练数据可能会得到综合增强。但是直接在训练中加入硬扩充的例子会导致一个更难的优化问题。我们通过提出一个识别损失来缓解这个问题,这个损失可以解释每个样本对学习概率特征嵌入的信心。

其次,我们通过将嵌入分解为子嵌入,每个子嵌入在训练过程中都有独立的置信值,从而寻求最大化嵌入的表示能力。

第三,鼓励所有子嵌入通过子嵌入的不同分区上的两个相反的正则化进一步去相关,即变化分类损失和变化对抗损失。第四,我们通过挖掘训练数据中的额外变化来进一步扩展去相关正则化,对于这些变化,合成增强不是微不足道的。

最后,我们通过一个概率集合来解释子嵌入对不同因素的不同判别能力,这个概率集合解释了它们的不确定性。在第5节中,我们对公共数据集上提出的方法进行了广泛的评估。

与我们的基线模型相比,该方法在一般人脸识别基准(如LFW和YTF)上保持了较高的精度,同时显著提高了在IJB-C、IJB-S等具有挑战性的数据集上的性能,在这些数据集上实现了最新的性能。详细的烧蚀研究显示了上述每一种贡献对实现这些强大性能的影响。

总之,本文的主要贡献有:

•一个面部表情学习框架,通过将通用特征与不同的变化相关联来学习通用特征,从而提高对不同测试数据集的通用性。

•在培训期间利用样本可信度从硬样本中学习特征的可信度识别损失。

•特征去相关正则化,在不同的子嵌入分区上应用变化分类损失和变化对抗损失,从而提高性能。

•有效结合合成数据的训练策略,以训练适用于原始训练分布之外的图像的人脸表示。

•几个具有挑战性的基准的最新成果,如IJB-A、IJB-C、TinyFace和IJB-S。

实验表明,该方法在LFW和Mega Face等通用人脸识别数据集上取得了最好的性能,而在Tiny Face和IJB-S等极端基准上则表现得更好。

背景知识

现在已经有很多方法去进行人脸识别。然后,所有这些方法要么只处理特定的变化,要么需要访问测试数据分布,要么增加额外的运行时复杂性来处理更广泛的变化。相比之下,作者建议学习一个单一的“通用”深层特征表示,它可以处理人脸识别中的变化,而不需要访问测试数据分布,并保持运行时效率,同时在各种情况下实现强大的性能,特别是在低质量的图像上。

传统的识别模型需要目标域数据从高质量的训练数据中进行无约束/低质量的人脸识别。为了实现普遍表示的目的,进一步需要模型集成,这大大增加了模型的复杂性。相比之下,作者提出的方法只对原始训练数据有效,没有任何目标域数据信息,可以处理无约束的测试场景。

新方法框架

上图 随着不同的变化而增加的样品

Confidence-aware Identification Loss

为了简单起见,定义一个置信值si,在L2-标准化单位球上约束fi和wj:

上面公式中的效果如下图所示。

当在不同质量的样本之间进行训练时,如果假设所有样本的置信度相同,那么所学习的原型将位于所有样本的中心。这并不理想,因为低质量的样本传达的身份信息更加模糊。相比之下,如果我们建立sample-specific confidence(si),高质量样本显示更高的信心,它推动原型wj更接近高质量样本,以最大化后验。同时,在嵌入fi的更新过程中,更有力的推动了低质量fi更接近原型。

在指数logit上增加loss margin已被证明是有效的缩小类内分布。也把它纳入框架的损失中:

Confidence-aware Sub-Embeddings

虽然通过一个特定的门控si学习的嵌入fi可以处理样本级别的变化,但是作者认为fi本身的条目之间的相关性仍然很高。为了最大限度地提高表示能力并实现紧凑的特征尺寸,需要对嵌入项进行去相关处理。

这鼓励作者进一步将整个嵌入fi分解为分区的子嵌入,每个子嵌入都进一步分配一个标量置信值。如上图所示,将整个feature embedded fi分割成K个等长次嵌入,如下公式所示。据此,将原型向量wj和置信标量si划分为大小相同的K组。

则最后的识别损失如下公式:

最后增加了一个额外的l2正则化来限制置信度的增长:

Sub-Embeddings Decorrelation

单独设置多个子嵌入并不能保证不同组中的特征是学习互补信息的。根据下图的经验,作者发现子嵌入仍然是高度相关的,即fi分为16组,所有子嵌入的平均相关系数为0.57。

如果我们用不同的正则化方法对次嵌入进行惩罚,可以降低它们之间的相关性。通过将不同的子嵌入与不同的变量联系起来,对所有子嵌入的一个子集进行变量分类损失,同时对其他变量类型进行变量对抗性损失。给定多个变量,这两个正则化项被强制放在不同的子集上,从而得到更好的子嵌入解相关。

挖掘更多的变量

由于可扩展变量的数量有限(在本文为3个),导致了去相关效应的有限,因为Vt的数量太小。为了进一步增强去相关,并引入更多的变量以获得更好的泛化能力,我们的目标是探索更多的语义变量。请注意,并不是所有的变量都容易进行数据扩充,例如微笑或不微笑是很难扩充的。对于这种变量,我们尝试从原始训练数据中挖掘出变量标签。特别是,利用一个现成的属性数据集CelebA训练属性分类模型身份对抗的损失:

Uncertainty-Guided概率聚合

考虑到推理的度量,简单地取学习到的子嵌入的平均值是次优的。这是因为不同的次嵌入对不同的变量有不同的识别能力。它们的重要性应该根据给定的图像对而有所不同。考虑应用与每个嵌入相关的不确定性,为成对的相似度评分:

实验及可视化

三种类型的数据集,LFW, IJB-A和IJB-S

Testing results on synthetic data of different variations
from IJB-Abenchmark (TAR@FAR=0.01%)

上图是通过t-SNE可视化特征分布。

将16个subembeddings的不确定度评分重新划分为4×4个网格。高质量和低质量的次预埋件分别以深色、浅色显示。对于不同的变化,不确定度图显示不同的模式。如下图:

上图是训练样本子嵌入置信度的可视化。

深度人脸识别:CVPR2020论文要点的更多相关文章

  1. face recognition[翻译][深度人脸识别:综述]

    这里翻译下<Deep face recognition: a survey v4>. 1 引言 由于它的非侵入性和自然特征,人脸识别已经成为身份识别中重要的生物认证技术,也已经应用到许多领 ...

  2. 转:基于开源项目OpenCV的人脸识别Demo版整理(不仅可以识别人脸,还可以识别眼睛鼻子嘴等)【模式识别中的翘楚】

    文章来自于:http://blog.renren.com/share/246648717/8171467499 基于开源项目OpenCV的人脸识别Demo版整理(不仅可以识别人脸,还可以识别眼睛鼻子嘴 ...

  3. 论文阅读:Face Recognition: From Traditional to Deep Learning Methods 《人脸识别综述:从传统方法到深度学习》

     论文阅读:Face Recognition: From Traditional to Deep Learning Methods  <人脸识别综述:从传统方法到深度学习>     一.引 ...

  4. Cell期刊论文:为什么计算机人脸识别注定超越人类?(祖母论与还原论之争)

    终于找到ML日报的微信链接,抄之...................................... 请拜访原文链接:[祖母论与还原论之争]为什么计算机人脸识别注定超越人类?评价:       ...

  5. 基于深度学习的人脸识别系统(Caffe+OpenCV+Dlib)【二】人脸预处理

    前言 基于深度学习的人脸识别系统,一共用到了5个开源库:OpenCV(计算机视觉库).Caffe(深度学习库).Dlib(机器学习库).libfacedetection(人脸检测库).cudnn(gp ...

  6. 深度挖坑:从数据角度看人脸识别中Feature Normalization,Weight Normalization以及Triplet的作用

    深度挖坑:从数据角度看人脸识别中Feature Normalization,Weight Normalization以及Triplet的作用 周翼南 北京大学 工学硕士 373 人赞同了该文章 基于深 ...

  7. CVPR2020论文解读:OCR场景文本识别

    CVPR2020论文解读:OCR场景文本识别 ABCNet:  Real-time Scene Text Spotting with Adaptive Bezier-Curve Network∗ 论文 ...

  8. 使用dlib中的深度残差网络(ResNet)实现实时人脸识别

    opencv中提供的基于haar特征级联进行人脸检测的方法效果非常不好,本文使用dlib中提供的人脸检测方法(使用HOG特征或卷积神经网方法),并使用提供的深度残差网络(ResNet)实现实时人脸识别 ...

  9. [深度应用]·实战掌握Dlib人脸识别开发教程

    [深度应用]·实战掌握Dlib人脸识别开发教程 个人网站--> http://www.yansongsong.cn/ 项目GitHub地址--> https://github.com/xi ...

随机推荐

  1. HTML5中meta属性的使用详解

    meta属性在HTML中占据了很重要的位置.如:针对搜索引擎的SEO,文档的字符编码,设置刷新缓存等.虽然一些网页可能没有使用meta,但是作为正规军,我们还是有必要了解一些meta的属性,并且能够熟 ...

  2. POJ2155二维线段树

    题意:      给一个n*n的01矩阵,然后有两种操作(m次)C x1 y1 x2 y2是把这个小矩形内所有数字异或一遍,Q x y 是询问当前这个点的值是多少?n<=1000 m<=5 ...

  3. Node-RESTful

    //获取用户列表------------------------------------------------- var express = require('express'); var app ...

  4. 修改composer配置(以修改cache-files-maxsize为例)修改composer拉取包出现"Content-Length mismatch"的问题

    1.composer config -l -g查看composer配置信息 2.修改配置:composer config --global cache-files-maxsize 1024MiB

  5. PHP基础-常用的数组相关处理函数

    一 数组键/值操作有关的函数 1. array_values()//获取数组中所有的值 $lamp=array("os"=>"linux", " ...

  6. 【2020BUAA软件工程】个人博客作业

    个人作业博客 项目 内容 北航2020软工 班级博客 作业要求 具体要求 我的课程目标 学习软件工程,掌握团队合作,锻炼自我 作业在哪个方面帮助我实现目标 通读<构建之法>,尝试理解软件工 ...

  7. Pytorch_Part5_迭代训练

    VisualPytorch beta发布了! 功能概述:通过可视化拖拽网络层方式搭建模型,可选择不同数据集.损失函数.优化器生成可运行pytorch代码 扩展功能:1. 模型搭建支持模块的嵌套:2. ...

  8. OCR-Form-Tools项目试玩记录(一)本地部署

    OCR-Form-Tools是微软的一个开源代码库,包含微软表单识别和OCR服务相关的多种工具.Github仓库地址 目前,表单标注工具(OCR Form Labeling Tool)是首个发布到本该 ...

  9. 02、SpringBoot2入门

    1.系统要求 Java 8 & 兼容java14 . Maven 3.3+ idea 2019.1.2 1.1.maven设置 <mirrors> <mirror> & ...

  10. [bug] ERROR: Can't get master address from ZooKeeper; znode data == null

    排错 访问bigdata111:50070没显示 jps发现hdfs的namenode没启动 查看namenode日志发现9000端口被占用 查找占用端口的进程 杀死进程,或在配置文件中更改端口号 参 ...