[论文]ArcFace Additive Angular Margin Loss for Deep Face Recognition

[论文]ArcFace Additive Angular Margin Loss for Deep Face Recognition

论文题目:《ArcFace Additive Angular Margin Loss for Deep Face Recognition 》
论文地址:https://arxiv.org/pdf/1801.07698.pdf

1. 前言
这篇文章提出一种新的用于人脸识别的损失函数:additive angular margin loss,基于该损失函数训练得到人脸识别算法ArcFace(开源代码中为该算法取名为insightface,二者意思一样,接下来都用ArcFace代替)。ArcFace的思想(additive angular margin)和SphereFace以及不久前的CosineFace(additive cosine margin )有一定的共同点,重点在于:在ArchFace中是直接在角度空间(angular space)中最大化分类界限,而CosineFace是在余弦空间中最大化分类界限,这也是为什么这篇文章叫ArcFace的原因,因为arc含义和angular一样。

除了损失函数外,本文的作者还清洗了公开数据集MS-Celeb-1M的数据,并强调了干净数据的对实验结果的影响,同时还对网络结构和参数做了优化。总体来说ArcFace这篇文章做了很多实验来验证additive angular margin、网络结构设计和数据清洗的重要性,

主要思想:
● ArcFace loss:Additive Angular Margin Loss(加性角度间隔损失函数),对特征向量和权重归一化,对θ加上角度间隔m,角度间隔比余弦间隔在对角度的影响更加直接。几何上有恒定的线性角度margen。
● ArcFace中是直接在角度空间θ中最大化分类界限,而CosFace是在余弦空间cos(θ)中最大化分类界限。
● 预处理(人脸对齐):人脸关键点由MTCNN检测,再通过相似变换得到了被裁剪的对齐人脸。
● 训练(人脸分类器):ResNet50 + ArcFace loss
● 测试:从人脸分类器FC1层的输出中提取512维的嵌入特征,对输入的两个特征计算余弦距离,再来进行人脸验证和人脸识别。
● 实际代码中训练时分为resnet model+arc head+softmax loss。resnet model输出特征;arc head将特征与权重间加上角度间隔后,再输出预测标签,求ACC是就用这个输出标签;softmax loss求预测标签和实际的误差。
● LFW上99.83%,YTF上98.02%

优点:
● 性能高,易于编程实现,复杂性低,训练效率高
● ArcFace直接优化geodesic distance margin(弧度),因为归一化超球体中的角和弧度的对应。
● 为了性能的稳定,ArcFace不需要与其他loss函数实现联合监督,可以很容易地收敛于任何训练数据集。
缺点:
● W模型很大

2. Angular Margin Loss
       不管是SphereFace、CosineFace还是ArcFace的损失函数,都是基于传统的softmax loss进行修改得到的,公式(1)就是softmax loss损失函数。


       首先把偏置b_j设置为0,,接着将特征向量归一化,权重归一化,然后乘以缩放系数s就得到公式(2)。


       公式(3)便为最终的Angular Margin Loss。

公式解释如下:

在xi和Wji之间的θ上加上角度间隔m(注意是加在了角θ上),以加法的方式惩罚深度特征与其相应权重之间的角度,从而同时增强了类内紧度和类间差异。
       惩罚θ角度的意思就是:训练时加上m就会使θ降低
       解释Margin是如何使类内聚合类间分离的:比如训练时降到某一固定损失值时,有Margin和无Margin的e指数项是相等的,则有Margin的θ_yi就需要相对的减少了。这样来看有 Margin的训练就会把 i 类别的输入特征和权重间的夹角θ_yi缩小了,从一些角度的示图中可以看出,Margin把θ_yi挤得更类内聚合了,θ_yi和其他θ类间也就更分离了。
       L2归一化来修正单个权重||W_j||=1,还通过L2归一化来固定嵌入特征||x_i|,并将其重新缩放成s。特征和权重的归一化步骤使预测仅取决于特征和权重之间的角度。因此,所学的嵌入特征分布在半径为s的超球体上。
       由于提出的加性角度间隔(additive angular margin)惩罚与测地线距离间隔(geodesic distance margin)惩罚在归一化的超球面上相等,因此我们将该方法命名为ArcFace。

3. 人脸分类器训练过程

先将特征向量L2归一化,权重L2归一化,他俩的夹角为θ,计算cos(θj),求反余弦arccos(θyi)得到特征xi与真实权值Wyi之间的夹角θyi,添加角度间隔m,再求余弦cos(θyj+m),将所有的log乘以特征尺度s,然后将log送到softmax函数得到各类别概率。再用Ground Truth和One Hot Vector一起算出交叉熵损失。即DCNN特征和最后一个完全连接层之间的点积等于特征和权重归一化后的余弦距离。我们利用arc-cosine函数来计算当前特征和目标权重之间的角度。然后,在目标角上加上一个附加的角度间隔,用余弦函数重新计算逻辑回归的反向传播过程。然后,我们用一个固定的特征范数重新缩放所有的逻辑,随后的步骤与Softmax loss 中的步骤完全相同。

具体算法步骤如下:

核心速览

研究背景

  1. 研究问题:这篇文章要解决的问题是如何在深度人脸识别中增强特征嵌入的判别力和鲁棒性,特别是在存在大规模标签噪声的情况下。
  2. 研究难点:该问题的研究难点包括:传统的softmax损失和triplet损失在处理开放集人脸识别问题和大规模数据集时存在局限性;如何在存在大规模标签噪声的情况下训练出鲁棒的模型。
  3. 相关工作:该问题的研究相关工作有:基于margin的softmax方法(如SphereFace和CosFace)、处理大规模噪声数据的策略(如co-mining和weighting)、以及子类划分在人脸识别中的应用。

研究方法

这篇论文提出了ArcFace和sub-center ArcFace来解决深度人脸识别中的判别力和鲁棒性问题。具体来说,

  1. ArcFace:首先,作者提出了一种加性角间隔损失函数(ArcFace),其公式如下:

L3=−log⁡escos⁡(θyi+m)escos⁡(θyi+m)+∑j=1,j eqyiNescos⁡θjL3​=−logescos(θyi​​+m)+∑j=1,j eqyi​N​escosθj​escos(θyi​​+m)​

其中,xixi​表示第i个样本的深度特征,WyiWyi​​表示第y_{i}类的中心,ss是特征尺度,mm是角间隔。通过引入加性角间隔,ArcFace能够直接优化测地距离间隔,从而提高特征嵌入的判别力。

www.zeeklog.com  - [论文]ArcFace Additive Angular Margin Loss for Deep Face Recognition
  1. sub-center ArcFace:为了应对大规模噪声数据,作者在ArcFace中引入了子类概念。每个类别包含K个子中心,训练样本只需接近任意一个正子中心。公式如下:

L7=−log⁡escos⁡(θyi+m)escos⁡(θyi+m)+∑j=1,j eqyiNescos⁡θjL7​=−logescos(θyi​​+m)+∑j=1,j eqyi​N​escosθj​escos(θyi​​+m)​

其中,θjθj​表示样本与第j个子中心的夹角,mm是角间隔。通过这种方式,sub-center ArcFace能够自动隔离主导子类和多个非主导子类,从而提高模型的鲁棒性。

www.zeeklog.com  - [论文]ArcFace Additive Angular Margin Loss for Deep Face Recognition
  1. 模型反转:此外,作者还探讨了从特征向量到人脸图像的映射问题。通过使用网络梯度和Batch Normalization(BN)先验,预训练的ArcFace模型可以生成保持身份的面部图像。
www.zeeklog.com  - [论文]ArcFace Additive Angular Margin Loss for Deep Face Recognition

实验设计

数据集:实验使用了多个数据集,包括CASIA、VGG2、MS1MV0、MS1MV3、Celeb500K和IBUG-500K。MS1MV0和Celeb500K包含大量噪声数据,通过sub-center ArcFace进行自动清洗。

www.zeeklog.com  - [论文]ArcFace Additive Angular Margin Loss for Deep Face Recognition

实验设置:实验中使用了ResNet50和ResNet100作为嵌入网络,特征维度设为512。数据预处理包括生成标准化的面部图像(112x112)。训练过程中使用了SGD优化器,学习率调度根据不同数据集进行调整。

评估指标:实验评估了不同损失函数在LFW、CFP-FP、CPLFW、AgeDB、CALFW、MegaFace、IJB-B和LFR2019-Image等数据集上的性能。

结果与分析

ArcFace的效果:ArcFace在所有测试数据集上均表现出色,显著提高了特征的判别力。与传统的softmax损失相比,ArcFace在CFP-FP和AgeDB数据集上的验证准确率分别提高了约4%和3%。

sub-center ArcFace的效果:sub-center ArcFace在存在大规模噪声的数据集上表现尤为突出,显著降低了噪声对模型性能的影响。在MS1MV0数据集上,sub-center ArcFace将噪声率降低到约三分之一,同时在IJB-C数据集上达到了97.27%的TPR@FPR=1e-4。

www.zeeklog.com  - [论文]ArcFace Additive Angular Margin Loss for Deep Face Recognition

模型反转的效果:预训练的ArcFace模型可以通过网络梯度和BN先验生成保持身份的面部图像。生成的图像在LFW数据集上的验证准确率为99.81%,在生成图像上的验证准确率为97.75%。

总体结论

这篇论文提出的ArcFace和sub-center ArcFace在深度人脸识别中显著提高了特征嵌入的判别力和鲁棒性。ArcFace通过优化测地距离间隔直接提高了特征的判别力,而sub-center ArcFace则通过引入子类概念自动隔离了主导子类和非主导子类,提高了模型在噪声数据上的鲁棒性。此外,预训练的ArcFace模型还可以通过模型反转生成保持身份的面部图像。总体而言,ArcFace及其扩展方法在多个基准数据集上均取得了最先进的性能。

论文评价

优点与创新

  1. 直观的几何解释:ArcFace通过精确对应角度和弧度在归一化超球面上的关系,直接优化了测地距离间隔,提供了直观的几何解释。
  2. 经济性:引入子类到ArcFace中,提高了在大规模真实世界噪声下的鲁棒性。提出的子中心ArcFace可以自动清理大规模原始网络人脸(如MS1MV0和Celeb500K),无需昂贵且密集的人力投入。
  3. 易用性:ArcFace仅需几行代码,在基于计算图的深度学习框架(如MxNet、Pytorch和Tensorflow)中极易实现。与之前的工作不同,ArcFace不需要与其他损失函数结合即可稳定收敛。
  4. 高效性:ArcFace在训练过程中仅增加了可忽略的计算复杂度。提出的中心并行策略可以轻松支持在单个服务器(8个GPU)上训练数百万身份。
  5. 有效性:使用IBUG-500K作为训练数据,ArcFace在十个人脸识别基准测试中取得了最先进性能,包括在大型图像和视频数据集上的表现。
  6. 生成能力:ArcFace不仅增强了判别特征嵌入,还加强了生成面部图像的能力。预训练的ArcFace模型可以通过使用网络梯度和BN层存储的统计先验来生成保持身份且视觉上合理的面部图像。

不足与反思

  1. 面部姿态和表情控制:ArcFace反演仅关注近似目标身份特征,面部姿态和表情不可控。未来将探索在反演过程中控制中间神经元激活以针对特定面部姿态和表情。
  2. 防止模型可逆性:未来还将探索如何使人脸识别模型不可逆,以防止面部图像从模型权重中轻易重建,从而保护隐私。

关键问题及回答

问题1:ArcFace如何通过加性角间隔损失函数(ArcFace)直接优化测地距离间隔?

ArcFace通过引入加性角间隔来优化测地距离间隔。具体来说,ArcFace的损失函数公式如下:

www.zeeklog.com  - [论文]ArcFace Additive Angular Margin Loss for Deep Face Recognition

L3=−log⁡escos⁡(θyi+m)escos⁡(θyi+m)+∑j=1,j eqyiNescos⁡θjL3​=−logescos(θyi​​+m)+∑j=1,j eqyi​N​escosθj​escos(θyi​​+m)​

其中,xixi​表示第i个样本的深度特征,WyiWyi​​表示第y_{i}类的中心,ss是特征尺度,mm是角间隔。通过这种方式,ArcFace能够直接优化测地距离间隔,从而提高特征嵌入的判别力。与传统的softmax损失相比,ArcFace在CFP-FP和AgeDB数据集上的验证准确率分别提高了约4%和3%。

问题2:sub-center ArcFace如何通过引入子类概念来提高模型在大规模噪声数据上的鲁棒性?

sub-center ArcFace通过在每个类别中引入多个子中心来提高模型在大规模噪声数据上的鲁棒性。具体来说,每个类别包含K个子中心,训练样本只需接近任意一个正子中心。公式如下:

L7=−log⁡escos⁡(θyi+m)escos⁡(θyi+m)+∑j=1,j eqyiNescos⁡θjL7​=−logescos(θyi​​+m)+∑j=1,j eqyi​N​escosθj​escos(θyi​​+m)​

其中,θjθj​表示样本与第j个子中心的夹角,mm是角间隔。通过这种方式,sub-center ArcFace能够自动隔离主导子类和多个非主导子类,从而提高模型的鲁棒性。例如,在MS1MV0数据集上,sub-center ArcFace将噪声率从38.47%降低到12.40%,同时在IJB-C数据集上达到了97.27%的TPR@FPR=1e-4。

问题3:预训练的ArcFace模型如何通过模型反转生成保持身份的面部图像?

预训练的ArcFace模型可以通过网络梯度和Batch Normalization(BN)先验生成保持身份的面部图像。具体步骤如下:

  1. 使用ArcFace模型的前向传播计算输入图像的特征向量。
  2. 通过网络梯度反向传播,更新输入图像以最小化ArcFace损失。
  3. 在反向传播过程中,利用BN层存储的统计先验(如均值和方差)来约束生成的面部图像。
  4. 通过多次迭代,逐步更新输入图像,直到生成的图像在LFW数据集上的验证准确率达到99.81%,在生成的图像上为97.75%。

这种方法不仅能够生成保持身份的面部图像,还能在生成的图像上保持较高的视觉质量。

www.zeeklog.com  - [论文]ArcFace Additive Angular Margin Loss for Deep Face Recognition

Read more

【评论送书】AIGC重塑教育:AI大模型驱动的教育变革与实践

【评论送书】AIGC重塑教育:AI大模型驱动的教育变革与实践

作者:刘文勇 来源:IT阅读排行榜 本文摘编自《AIGC重塑教育:AI大模型驱动的教育变革与实践》,机械工业出版社出版 这次,狼真的来了。 AI正迅猛地改变着我们的生活。根据高盛发布的一份报告,AI有可能取代3亿个全职工作岗位,影响全球18%的工作岗位。在欧美,或许四分之一的工作可以用AI完成。另一份Statista的报告预测,仅2023年,AI就将创造230万个工作岗位,同时消除180万个工作岗位。 教育领域不可避免地受到AI的影响。国际象棋领域有句名言:“唯有与智者博弈,才能提高。”这也恰好反映了教育的核心:与优秀者互动、交流和学习,才能提升自我。AI作为难以否认的智者,有潜力成为我们的最佳教师。AI能提供个性化学习方案,有无限的耐心,可帮助学生战胜困难,实现自我提升。这正是教育追求的目标,也是普通教师难以实现的。例如,国际象棋领域已经有许多基于AI的教练系统,如Chess、Lichess、Chessable等。这些系统可以根据每个学生的水平、进步和偏好,提供定制化的训练计划、反馈和建议。它们还可以模拟不同风格和水平的对手,让学生在实战中提高自己的水平。这些系统不仅可以帮

By Ne0inhk
HomeAssistant添加HACS插件并实现公网控制米家,HomeKit等智能家居

HomeAssistant添加HACS插件并实现公网控制米家,HomeKit等智能家居

HomeAssistant添加HACS插件并实现公网控制米家,HomeKit等智能家居 文章目录 * 介绍了如何实现群晖Docker部署HomeAssistant,通过内网穿透在户外控制家庭中枢。本文将介绍如何安装HACS插件商店,将米家,果家设备接入 Home Assistant。 基本条件 * 已安装HomeAssistant。 * Win,Linux,Macos 部署HomeAssistant: 一、下载HACS源码 下载hacs源码: 上传到群晖 将文件全部放在/docker/homeassistant/config/custom_components/hacs目录下 在custom_components下hacs文件夹复制全部文件 在 Docker 中重启容器 二、添加HACS集成 左下角,点 配置 设备与服务 添加集成 搜索hacs 勾选所有选项 提示需要点击中间的链接跳转到 GitHub进行验证,复制下面验证码 粘贴,提交 验证完成 刷新一下,左侧出现HACS选项,进入即可安装各种插件与设备链接。

By Ne0inhk
TableAgent 数据分析智能体——引领数据分析新革命

TableAgent 数据分析智能体——引领数据分析新革命

文章目录 * * 一、文章前言 年底快到了,公司需要对今年的一些业务数据进行年终总结,我的第一反应是直接让 AI 总结呗, 但是经过我的再三尝试,发现AI输出的结果一直在胡说八道,而且分析过程也不够透明,导致我一直要去调整提示词,既然AI行不通,那我就转专业的数据分析产品工具,看到网络上推荐了很多,例如:PowerBI、Excel、Thoughtspot等,但是这些都需要你去熟悉他们的产品并且还需要人为去处理整个分析流程,非常繁琐,直到我发现了 TableAgent,这个东西的神奇之处在于可以直接把AI变成专业的数据分析师,我第一次看到也很惊讶,但是随着我的深入,我发现我之前使用的对话AI模型体现的缺点在 TableAgent 上不复存在,发现它真的特别强大,不同于传统的数据分析平台,TableAgent本身就是一个基于语言的数据分析智能体,你只需要用自然语言告诉它分析需求,它就能自动帮你写代码,运行分析,得到报告结果,并且过程透明还有对应的逻辑代码,我们以前用Excel做报表相当于是原始人了,现在直接用语言就可以完成了。 二、内容大纲 为了更好地体现TableA

By Ne0inhk
yum安装ftp

yum安装ftp

1、检查是否安装vsftpd软件 #>rpm -qa |grep vsftpd 2、使用YUM命令安装 #>yum install vsftpd -y 3、启动服务 启动ftp命令 #>service vsftpd start 停止ftp命令 #>service vsftpd stop 重启ftp命令 #>service vsftpd restart 4、vsftpd的配置 ftp的配置文件主要有三个,位于/etc/vsftpd/目录下,分别是: ftpusers 该文件用来指定哪些用户不能访问ftp服务器; user_list 该文件用来指定的默认账户在默认情况下也不能访问ftp服务器; vsftpd.conf vsftpd的主要配置文件;路径:/etc/vsftpd/

By Ne0inhk