文章标题:
AdaFace: Quality Adaptive Margin for Face Recognition
arxiv地址:
https://arxiv.org/pdf/2204.00964.pdf
这篇文章是CVPR2022的Oral,CVPR2022年的谷歌学术因子排总榜第四名,Nature、NEJM、Science分别位列前三位。大名鼎鼎的医学期刊柳叶刀位列第5
摘要
1、低质量图像的人脸识别具有挑战性,以往的损失函数强调了困难样本的重要性。
2、作者在损失函数中引入了图像质量,困难样本的重要性应该基于样本的图像质量来给定。
3、本文的方法通过用特征的范数来近似图像质量,提出的AdaFace在4个数据集(IJB-B、IJB-C、IJB-S和IJBTinyFace)上提高了现有的(SoTA)的人脸识别性能。
1 简介
图像质量是一系列特征的组合,影响图像质量的因素包括亮度、对比度、锐度、噪声等。本文关注的是人脸图片,可能是极端的人脸图像。
无法识别的图像不利于模型的训练,因为模型将试图利用图像中的其他视觉特征,如服装颜色,影响损失函数的损失。低质量图像导致训练过程中由于损失很大, 过分关注这些低质量图片,那么该模型在测试中就会很差。
由于无法识别人脸图像的内容,作者设计了一个损失函数,根据图像质量对不同困难的样本赋予不同的重要性。作者的目标是强调高质量图像的困难样本和低质量图像的简单样本。
作者提出了一个损失函数adaface,实现上述目标。作者发现
a . 特征范数可以很好地代表图像质量;
b.不同的margin函数对不同的困难样本具有不同的重要性。
损失函数adaface根据图像质量自适应地改变margin,对不同的困难样本赋予不同的重要性。
其中θ为特征向量与第个分类器权值向量W之间的夹角,为标签的索引,m为x系数。是一个margin函数,sphereface、cosface和arcface的margin函数可以表述如下:
arcface被称为角度 margin,而cosface被称为加性 margin。这里,是一个用于缩放的超参数。adaface将margin建模为图像质量的函数,margin函数f 影响在训练过程中的梯度。
2.2 自适应损失函数
CurricularFace在训练的开始阶段,的Margin设置很小,用于学习简单样本,训练后期,增加Margin,学习困难样本。CurricularFace的margin函数为
其中
是一个随着训练增大的参数。
本文作者认为Margin应该基于图像质量。对于高质量的图像,困难样本应该学习;低质量的图像,困难样本更有可能是缺乏识别特征,网络应该减少学习。
关于质量相关的人脸识别,有人提出了概率方法来预测人脸识别表示中的不确定性。假设特征是分布,其中方差可以用来计算预测的确定性。由于训练目标的不稳定性,概率方法会分别学习均值和方差。
样本的交叉熵损失函数为:
在测试时,一对图像,和,使用余弦相似度度量来衡量相似度。为了使训练目标直接优化余弦距离,使用normalized softmax,其中偏置b设置为零,然后特征通过归一化和缩放参数进行转换:
基于Margin的Softmax的工作主要研究Margin如何改变决策边界。作者认为角度 margin可以在梯度方程中引入一个附加项,根据样本的难度对信号进行缩放,重新分配不同样本的梯度。
设为对输入进行softmax后在第类上的概率。通过推导的梯度方程和,可以得到:
公式10中的第一项,和为不带margin的交叉熵导数,具体的推到过程可以参考https://zhuanlan.zhihu.com/p/99923080,后面两项是margin的偏导数,和是标量。把前两个标量项记作梯度尺度项gst,记为:
那么normalized softmax 和cosface的gst都为:
arcface的gst如下:
公式15的推导过程论文的附录中有给出
图3给出了不同损失函数的gst在特征空间中的颜色
对于角度 margin,gst在决策边界达到峰值,随着它向移动梯度逐渐减小,而困难样本梯度变小。如果改变角度 margin的符号,效果相反;adaface要做的就是在对于高范数的特征强调远离边界的样本,低范数特征强调边界附近的样本。也就是高范数看重梯度大的,低范数看重梯度小的。
作者通过使用现有的质量评估算法计算出质量分数,随机采样进行分析,发现特征的范数和图像的质量具有一定的相关性
得到图像质量和特征范数的关系就开始建模了,作者建立了一个基于特征范数的质量因子如下:
||zi||是特征范数,和为一个batch内所有的平均值和标准差。[]是将该值clip到−1到1,由于该值符合高斯分布,−1到1区间内的占比为68%,设置h=0.33满足该要求。
如果是batch较小,可以使用指数移动平均
作者设计的自适应margin函数如公式18,当=−1时,函数即为arcface。当=0,为cosface。当=1时,变成负角度margin。
作者也在附录中总结了各损失函数的gst:
4 实验
实验部分主要是图像质量指标中的h和超参数m的对比实验,具体可以看原文,最后上一个经典的提升SOTA的图
5 总结
1、该方法没有解决因为数据噪声引起的困难样本问题
2、论文使用了被撤回的数据集MS1MV*
个人总结
1、整篇文章思路很清晰,有完整的理论推导和详细的实验,毕竟深度学习很多时候都是黑洞,满足人们对理论的期盼,oral当之无愧
2、文章给的特征范数和图像质量的相关系数只有0.5,其实不是那么的理想,期待更多大佬的优化
3、文章统一了cosface、arcface等margin函数,做统一函数也是一个方向,比如poly loss、gfl loss等
4、文章从梯度方向分析了难易样本的问题,也是一个很好地切入点,其实有不少工作都开始从梯度方向分析,比如长尾分布问题中的loss
5、由于目标检测中可以用iou评估样本的质量,所以目标检测中已经有比较成熟的样本质量自适应损失,基本都是基于iou或者一个iou的函数。
留言与评论(共有 0 条评论) “” |