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

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调用Orator ORM进行数据库操作

《Python调用OratorORM进行数据库操作》OratorORM是一个功能丰富且灵活的PythonORM库,旨在简化数据库操作,它支持多种数据库并提供了简洁且直观的API,下面我们就... 目录Orator ORM 主要特点安装使用示例总结Orator ORM 是一个功能丰富且灵活的 python O

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为

SpringBoot中使用 ThreadLocal 进行多线程上下文管理及注意事项小结

《SpringBoot中使用ThreadLocal进行多线程上下文管理及注意事项小结》本文详细介绍了ThreadLocal的原理、使用场景和示例代码,并在SpringBoot中使用ThreadLo... 目录前言技术积累1.什么是 ThreadLocal2. ThreadLocal 的原理2.1 线程隔离2

Python利用PIL进行图片压缩

《Python利用PIL进行图片压缩》有时在发送一些文件如PPT、Word时,由于文件中的图片太大,导致文件也太大,无法发送,所以本文为大家介绍了Python中图片压缩的方法,需要的可以参考下... 有时在发送一些文件如PPT、Word时,由于文件中的图片太大,导致文件也太大,无法发送,所有可以对文件中的图

如何使用Spring boot的@Transactional进行事务管理

《如何使用Springboot的@Transactional进行事务管理》这篇文章介绍了SpringBoot中使用@Transactional注解进行声明式事务管理的详细信息,包括基本用法、核心配置... 目录一、前置条件二、基本用法1. 在方法上添加注解2. 在类上添加注解三、核心配置参数1. 传播行为(

Java实战之自助进行多张图片合成拼接

《Java实战之自助进行多张图片合成拼接》在当今数字化时代,图像处理技术在各个领域都发挥着至关重要的作用,本文为大家详细介绍了如何使用Java实现多张图片合成拼接,需要的可以了解下... 目录前言一、图片合成需求描述二、图片合成设计与实现1、编程语言2、基础数据准备3、图片合成流程4、图片合成实现三、总结前

在Mysql环境下对数据进行增删改查的操作方法

《在Mysql环境下对数据进行增删改查的操作方法》本文介绍了在MySQL环境下对数据进行增删改查的基本操作,包括插入数据、修改数据、删除数据、数据查询(基本查询、连接查询、聚合函数查询、子查询)等,并... 目录一、插入数据:二、修改数据:三、删除数据:1、delete from 表名;2、truncate

微服务架构之使用RabbitMQ进行异步处理方式

《微服务架构之使用RabbitMQ进行异步处理方式》本文介绍了RabbitMQ的基本概念、异步调用处理逻辑、RabbitMQ的基本使用方法以及在SpringBoot项目中使用RabbitMQ解决高并发... 目录一.什么是RabbitMQ?二.异步调用处理逻辑:三.RabbitMQ的基本使用1.安装2.架构