通过模板级知识蒸馏进行掩模不变人脸识别

2024-08-26 12:12

本文主要是介绍通过模板级知识蒸馏进行掩模不变人脸识别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Mask-invariant Face Recognition through Template-level Knowledge Distillation

创新点

        1.提出了一种掩模不变人脸识别解决方案(MaskInv),该解决方案在训练范式中利用模板级知识蒸馏,旨在生成与相同身份的非蒙面人脸相似的蒙面人脸嵌入。

        2.除了提炼的信息之外,学生网络还受益于基于边缘的身份分类损失,ElasticFace,使用蒙面和非蒙面面孔的额外指导。

        学生模型使用蒙面和非蒙面人脸图像进行训练,以便它可以处理这两种情况,而 KD 过程确保模型生成的蒙面人脸嵌入与相同身份的非蒙面人脸嵌入相似。

网络结构

        通过共同学习蒙版和非蒙版人脸图像的正确身份分类,并通过嵌入级别 KD 确保蒙版人脸的嵌入与相同身份的非蒙版图像的嵌入相似来实现。 KD 教导学生网络以产生类似于老师生成的非蒙面人脸嵌入的嵌入的方式处理蒙面人脸,从而尝试忽略蒙版引入的非身份相关信息。

        在非蒙面人脸上训练的性能良好的人脸识别模型充当我们知识蒸馏架构中的教师模型。第二个 FR 系统充当学生网络,并通过与教师模型的交互进行训练,使其具有掩模不变性,从而从蒙面面部生成的嵌入与从非蒙面面部生成的嵌入相似。

        所提出的蒙面人脸识别 MaskInv 方法概述:预先训练的教师网络和要训练的学生网络转发相同的图像。当概率 pMask 为 0.5 时,将合成掩模添加到学生网络的输入图像中。在训练过程中,计算教师网络和学生网络的人脸嵌入之间的均方误差(LKD)。然后,计算出的误差会影响学生网络的总体损失 LTotal,该网络还使用 ElasticFace-Arc 损失进行训练。

        图 1给出了所提出的学习场景的示意图。在训练期间,相同的图像同时输入到教师和学生模型。在转发到学生模型的图像上,应用具有概率 pMask 的合成掩模,而转发到教师网络的图像保持不变。合成掩模是通过在面部上放置掩模模板来创建的,具体取决于图像预处理期间用于面部对齐的标志。合成掩模应用于输入学生模型的部分图像(概率 pMask),以确保它仍然能够以最佳方式处理非掩模面部,并实现更稳定的训练过程。对于教师网络,使用预先训练的辅助网络来指导新训练的学生网络。学生网络不仅经过训练以产生正确的分类决策,而且还优化生成的嵌入,使其与教师网络的嵌入相似(在非遮蔽面孔上)。因此,学生网络使用由两种不同损失组成的组合损失 LTotal 进行训练。正式地,将总损失 LTotal 定义为:

其中,LElasticArc指的是损失函数ElasticFace-Arc,LKD指的是模板级KD过程中的均方误差损失。 ElasticFace-Arc 损失函数放宽了类似高性能 FR 损失函数的固定边距约束,因此为灵活的识别可分离性提供了空间。它优于其他几个 SOTA FR 损失函数,尤其是在硬交叉姿势基准测试中 。形式上,它可以定义为:

其中 N 表示批量大小,c 表示身份数量,s 表示尺度参数,m 表示裕度参数,σ 表示标准差。,函数 E(m,σ) 返回平均值为 m 且标准差为 σ 的高斯分布的随机值。

        LKD 作为教师网络的特征嵌入和学生网络的特征嵌入之间的 KD 的一部分进行计算,以优化嵌入本身而不是网络分类行为。这确保了由掩模引起的嵌入失真保持在最低限度,从而指导 KD 过程生成掩模不变的学生网络。使用的 LKD 损失(均方误差)可以形式化为:

其中 ΦS i 和 ΦT i 分别是从学生和教师模型的嵌入层获得的特征表示,D 是嵌入的大小。

        由于学习到的特征嵌入被归一化,LKD 的范围相当小,因此,在第一个训练步骤中用权重 λ = 100 对它们进行加权。这使得 LKD 有助于整体损失,同时保持对 LElasticArc 学习身份分类的重视,从而实现知识转移。

        基于上述方法提出了两种不同的范例。在MaskInv-HG(掩模不变高指导)方法中,当LElasticArc损失稳定时,将权重增加到λ = 3000,以进一步强调网络对掩模数据的适应。在 MaskInv-LG(掩模不变低指导)方法中,权重在整个训练过程中保持不变。对于详细的消融研究,还提供了第三种解决方案的结果,其中 λ 设置为零,因此不应用 KD,而是使用用概率为 pMask 的合成掩模增强的面部来独立训练学生网络,该解决方案将被称为 ElasticFace-Arc-Aug。

总结

       在本文中,提出了一种口罩不变的人脸识别解决方案,该解决方案不仅旨在构建有判别性的人脸嵌入,还将这一目标扩展到构建无论是否佩戴口罩都保持身份内相似性的嵌入。这种新颖的方法,即 MaskInv,基于通过身份分类学习共同学习在戴着面具的情况下区分身份,并通过来自教师网络的嵌入级 KD 学习为相同身份的蒙面和非蒙面面孔生成类似的嵌入。所提出的解决方案优于当前的 SOTA 方法。此外,提出的解决方案在验证非蒙面人脸时保持了高水平的准确性,所提出的掩模不变人脸表示学习的潜力可能不仅限于其用于蒙面人脸识别,而且还可以证明对于一般的遮挡人脸识别问题有用,这仍有待研究。

这篇关于通过模板级知识蒸馏进行掩模不变人脸识别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1108531

相关文章

利用Python打造一个Excel记账模板

《利用Python打造一个Excel记账模板》这篇文章主要为大家详细介绍了如何使用Python打造一个超实用的Excel记账模板,可以帮助大家高效管理财务,迈向财富自由之路,感兴趣的小伙伴快跟随小编一... 目录设置预算百分比超支标红预警记账模板功能介绍基础记账预算管理可视化分析摸鱼时间理财法碎片时间利用财

如何在 Spring Boot 中实现 FreeMarker 模板

《如何在SpringBoot中实现FreeMarker模板》FreeMarker是一种功能强大、轻量级的模板引擎,用于在Java应用中生成动态文本输出(如HTML、XML、邮件内容等),本文... 目录什么是 FreeMarker 模板?在 Spring Boot 中实现 FreeMarker 模板1. 环

利用python实现对excel文件进行加密

《利用python实现对excel文件进行加密》由于文件内容的私密性,需要对Excel文件进行加密,保护文件以免给第三方看到,本文将以Python语言为例,和大家讲讲如何对Excel文件进行加密,感兴... 目录前言方法一:使用pywin32库(仅限Windows)方法二:使用msoffcrypto-too

Pandas使用AdaBoost进行分类的实现

《Pandas使用AdaBoost进行分类的实现》Pandas和AdaBoost分类算法,可以高效地进行数据预处理和分类任务,本文主要介绍了Pandas使用AdaBoost进行分类的实现,具有一定的参... 目录什么是 AdaBoost?使用 AdaBoost 的步骤安装必要的库步骤一:数据准备步骤二:模型

使用Pandas进行均值填充的实现

《使用Pandas进行均值填充的实现》缺失数据(NaN值)是一个常见的问题,我们可以通过多种方法来处理缺失数据,其中一种常用的方法是均值填充,本文主要介绍了使用Pandas进行均值填充的实现,感兴趣的... 目录什么是均值填充?为什么选择均值填充?均值填充的步骤实际代码示例总结在数据分析和处理过程中,缺失数

一文详解Java异常处理你都了解哪些知识

《一文详解Java异常处理你都了解哪些知识》:本文主要介绍Java异常处理的相关资料,包括异常的分类、捕获和处理异常的语法、常见的异常类型以及自定义异常的实现,文中通过代码介绍的非常详细,需要的朋... 目录前言一、什么是异常二、异常的分类2.1 受检异常2.2 非受检异常三、异常处理的语法3.1 try-

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

QT进行CSV文件初始化与读写操作

《QT进行CSV文件初始化与读写操作》这篇文章主要为大家详细介绍了在QT环境中如何进行CSV文件的初始化、写入和读取操作,本文为大家整理了相关的操作的多种方法,希望对大家有所帮助... 目录前言一、CSV文件初始化二、CSV写入三、CSV读取四、QT 逐行读取csv文件五、Qt如何将数据保存成CSV文件前言

通过Spring层面进行事务回滚的实现

《通过Spring层面进行事务回滚的实现》本文主要介绍了通过Spring层面进行事务回滚的实现,包括声明式事务和编程式事务,具有一定的参考价值,感兴趣的可以了解一下... 目录声明式事务回滚:1. 基础注解配置2. 指定回滚异常类型3. ​不回滚特殊场景编程式事务回滚:1. ​使用 TransactionT

Java中使用Hutool进行AES加密解密的方法举例

《Java中使用Hutool进行AES加密解密的方法举例》AES是一种对称加密,所谓对称加密就是加密与解密使用的秘钥是一个,下面:本文主要介绍Java中使用Hutool进行AES加密解密的相关资料... 目录前言一、Hutool简介与引入1.1 Hutool简介1.2 引入Hutool二、AES加密解密基础