使用潜在向量进行检测、屏蔽和重建以进行遮挡的面部表情识别

Latent-OFER: Detect, Mask, and Reconstruct with Latent Vectors for Occluded Facial Expression Recognition

一、创新点

        (1)提出了一种与表情相关的特征提取器,它使用空间注意力为特定的面部特征分配更高的权重,从而使我们能够识别 FER 的关键位置,可以从 ViT 潜在空间检索与表达相关的潜在向量,以使用这些位置作为关键值来提取有价值的信息。

        (2)提出ViT-SVDD,一种针对基于ViT 的网络进行优化的基于补丁的遮挡检测模块,作为自监督局部分类器,ViT-SVDD 模块仅针对未遮挡面部图像的潜在向量进行训练,该方法准确地对看不见的物体造成的遮挡进行分类,以便后续重建。

        (3)提出了一种混合重建网络,它将 ViT 和 CNN 架构的优点与自组装层和语义一致性损失相结合,以生成自然且表情丰富的面部图像,这种方法提高了去遮挡图像的质量,并提高了在挑战性条件下 FER 的准确性。

二、模型

        如图 2 所示,我们提出了多阶段方法来解决 OFER,包括检测、屏蔽和重建遮挡以识别面部表情。该方法通过协作学习从图像重建过程中提取的 ViT 潜在向量和现有的 CNN 特征来提高识别精度。我们将面部图像划分为多个块,将每个块分类为遮挡或未遮挡,并重建被遮挡的块以进行去遮挡。随后,我们利用重建的图像和表情相关的潜在向量来预测面部表情。

        Latent-OFER 的框架,用于创建消除遮挡的去遮挡图像。在此过程中,通过映射视觉变换器(ViT)潜在向量和卷积神经网络(CNN)类激活图来提取与表达相关的潜在向量。 Latent-OFER 将基于 CNN 的特征与特定的基于 VIT 的潜在向量相结合来预测面部表情。

(1)遮挡检测模块:ViT-SVDD

        提出了一种专门针对 ViT 优化的中级异常检测器,划分图像以匹配 ViT 补丁的大小并创建 ViT 潜在向量。这些补丁使用信息特征进行编码,以产生 ViT 潜在向量。为了生成未遮挡补丁的最小特征空间,使用了深度 SVDD 算法。一类深度 SVDD 采用二次损失来惩罚每个网络表示的距离。该目标定义为

        其中n表示训练数据的数量,L表示层数,W表示权重集W = w1,...,wL,c表示以中心为特征的超球面。第一项使所有正常图像的特征收敛于中心点 c,而最后一项是超参数 λ > 0 的网络参数 W 上的权重衰减正则化器,其中 ∥·∥F 表示 Frobenius 范数。方程简单地采用二次损失来惩罚每个网络表示 Φ (xi;W) 到 c ∈ F 的距离,其中 F 是输出特征空间。网络学习参数 W,使得数据点紧密映射到超球面的 c。为了确定补丁是否被遮挡,我们计算了每个补丁的新输入信息与特征空间中心 c 之间的距离。如果距离超过预定义的半径,则相应的块被分类为被遮挡和被遮挡。半径的最佳值在 SVDD 过程中自动确定。通过这个过程,可以对看不见的物体进行遮挡斑块检测。所提出的 ViT-SVDD 方法允许使用遮挡补丁注释来验证合成图像的性能。通过检测遮挡斑块,我们可以提高重建方法的准确性,使其更适合实际应用。

(2)图像重建模块:混合重建网络

        面部图像重建过程采用遮挡检测器生成的遮挡遮蔽图像。混合重建网络旨在通过融合基于 ViT 和基于 CNN 的网络进行协作。通过这种机制,我们充分利用了 ViT 和 CNN 的优势。基于ViT的方法采用16×16块作为输入图像;然而,我们使用遮挡检测器的输出作为输入,因为图像已经被遮挡检测器分割成块单元。

        基于 ViT 的方法对输入补丁进行编码并积极嵌入所有标记。被遮挡的斑块重建是通过与其他斑块的相关来实现的。ViT 具有低归纳偏差和高自由度,使其能够在不同的遮挡形状、位置和面部姿势的情况下生成可靠的图像.基于 ViT 的方法有时可能无法提供详细的结果。为了解决这个限制,我们结合了 ViT 和 CNN。该网络由 U-Net 架构组成。此外,在编码器内部添加了一个自组装层来生成详细的表示。这种多结构方法有效地结合了 ViT 和基于 CNN 的网络的优势,生成能够很好地表示面部表情的高质量面部图像重建。

        实现了自组装层来改进 FER 的图像重建。我们重建了像[17]这样的屏蔽区域,但针对面部图像进行了增强。基于人脸左右特征对称的概念[42,48,67],我们在重建遮蔽区域时使用了水平翻转图像对应位置中存在的特征信息。我们通过合并来自三个来源的信息来扩展生成过程中使用的候选补丁的范围:先前生成的补丁、未遮蔽区域中最相似的补丁以及位于水平翻转图像的相应位置的补丁。在这个过程中,被遮蔽的区域包含了ViT网络的重建结果。我们根据与当前补丁的相似度值为每个分配权重。权重计算基于互相关度量:

        其中p表示遮罩区域中的补丁,补丁px是比较目标。 p和px之间的相似度值用S表示。

        自组装操作生成补丁值pi。图3描述了操作过程,其中ps表示相对于p对称定位的补丁值,并通过考虑外围补丁进行平均。pk是最相似的补丁到未屏蔽区域中的 p ,并且 Sknown 计算为 S(pi, pki )。进一步地,pi-1表示先前生成的patch,Si-1由S(pi,pi-1)获得。将相似度值S标准化后作为权重。

        在图 3 中,(a) 中的红色补丁是 pi,它是 pk(橙色补丁)、pi−1(黄色补丁)和 ps((b) 中的蓝色补丁)的组合结果。因为 p1 没有先前生成的补丁,所以 S0 为零。在某些情况下,例如侧面图像,对称位置的面片可能与生成面片无关。因此,在这种情况下 Ssym 的值很小,并且很少用于生成补丁。

        自组装操作示意图。 (a) 自组装层中的特征图。 (b) (a) 的翻转。屏蔽区域中的补丁是通过组合三个补丁信息生成的。

(3)损失函数

        图像重建的目的是填充被遮蔽的部分,为FER提供补充信息。为了实现这一目标,引入了语义一致性损失,可以在保持重建损失 Lre、一致性 Lc 、特征补丁鉴别器 Ldf 和补丁鉴别器 Ld  的同时优化任务。

        语义一致性损失Lsc强调面部表情属性。 Lsc具有减少组内变异性的作用,可以定义为:

        其中c代表七个基本表达式,pc(zgt)表示c在ground-truth图像中的预测概率,pc(zrec)表示c在重建结果中的预测概率。预测的概率分布是通过预训练的 FER 网络获得的。

        训练过程中,总体损失函数定义为:

        其中,λre、λc、λsc、λd分别表示重建、一致性、语义一致性、鉴别器损失的权衡参数。此外,FER 网络使用相同的特征提取架构进行训练,使用有关真实标签的概率分布和 FER 的预测。

(4)面部表情识别网络

        所提出的 FER 网络被设计为基于注意力的模型,用于预测面部表情,采用了空间和通道注意机制。

        使用基于注意力的模型获得了细化的特征图和 CAM。此外,使用 CAM 从 ViT 获得了表达相关的潜在载体。如图 2 所示,Latent-OFER 协同使用基于 CNN 的特征和基于 ViT 的潜在向量。因此,该模型表现更好。

        表达相关的 ViT 潜在载体。所提出的方法仅采用与表达相关的潜在向量而不是整个潜在空间来提高 FER 性能。在重建过程中,通过嵌入输入图像来提取基于 ViT 的潜在向量。我们使用 CAM 来识别 FER 图像中的空间重要区域,并通过 CNN 生成类激活图。

        该区域的位置被存储为键,并且记录每个空间的注意力权重。使用空间注意力权重超过前50%的区域的关键。从整个 ViT 潜在向量中检索该密钥,并读取相应的值。激活图用于识别与表达相关的潜在向量,如图 4 所示。该过程可以选择与 FER 相关的位置,同时避免无关的细节,例如与表达无关的外观信息,这可以增加类间差异差异性并导致更准确和有效的学习结果。

        在补丁检测失败的情况下,被遮挡的补丁的潜在向量用于训练和推理。然而,空间注意力并不集中在遮挡区域,并且遮挡斑块的潜在向量既不被搜索也不用于训练和推理。所提出的提取器在这种情况下不会受到显着影响。

三、总结

        所提出的方法 LatentOFER 可以检测遮挡,将面部被遮挡的部分恢复为未被遮挡的部分,并识别它们,从而提高 FER 准确性。该方法涉及三个步骤:首先,基于视觉变换器 (ViT) 的遮挡块检测器通过使用支持向量数据描述算法仅训练来自未遮挡块的潜在向量来掩盖遮挡位置。其次,混合重建网络使用基于视觉变换器ViT和卷积神经网络 (CNN) 将遮蔽位置生成为完整图像。最后,表达相关的潜在向量提取器通过应用基于 CNN 的类激活图来检索并使用来自所有潜在向量的表达相关信息。

        在本研究中,使用两种类型的遮挡来评估典型模型在识别面部表情方面的鲁棒性:随机采样遮挡和梯度遮挡。随机采样遮挡将整个图像分为196个patch,并按照比例随机屏蔽它们。梯度遮挡使用梯度加权类激活映射 (Grad-CAM) 处理具有影响 FER 的有意遮挡区域的图像。这项研究揭示了第二种类型的遮挡导致性能大幅下降,特别是当遮挡区域对于准确的 FER 至关重要时。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/370056.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

前端开发中不同语言【react-i18next】

目录 查看并设置语言 单页面&#xff1a;html lang ​编辑 浏览器 自定义翻译&#xff1a;react-i18next 设置 模块&#xff1a;staticData.ts 散(重复利用)&#xff1a;命名空间.json 应用 准备 html标签 查看并设置语言 单页面&#xff1a;html lang 英语: <…

RflySim | 定点位置控制器设计实验三

RflySim| 定点位置控制器设计实验三 01 分析实验 1.调节PD控制器的相关参数改善系统控制性能&#xff0c;并记录超调量和调节时间&#xff0c;得到满意的参数。 2.在得到满意参数后&#xff0c;对系统进行扫频以绘制Bod图&#xff0c;观察系统幅频响应、相频响应曲线&#xf…

【服务器】RAID(独立磁盘冗余阵列)

RAID&#xff08;独立磁盘冗余阵列&#xff09; 一、RAID的介绍二、RAID的分类#2-1 RAID 02-2 RAID 1#2-3 RAID 32-4 RAID 52-5 RAID 62-6 RAID 10(先做镜像&#xff0c;再做条带化)2-7 RAID 01&#xff08;先做条带&#xff0c;再做镜像&#xff09;2-8 RAID比较 三、磁盘阵列…

国内最全的Spring Boot系列之七

• 阿里巴巴前高级研发工程师 • 三家千万级互联网企业技术顾问 • MBTI/盖洛普技术专家 • 厦门某高校外聘教师 • 51CTO特约合作讲师 • 网易云课堂签约讲师 •《深入理解设计模式》作者 一转眼马上要过年了&#xff0c;回首2023年&#xff0c;感觉自己无所事事、碌碌无…

探索网络定位与连接:域名和端口的关键角色

目录 域名 域名的作用 域名的结构 域名的解析配置 父域名、子域名​编辑 https的作用 端口 图解端口 端口怎么用 判断网站是否存活 端口的作用 域名 域名是互联网上用于标识网站的一种易于记忆的地址。 域名是互联网基础架构的一个重要组成部分&#xff0c;它为网…

Django学习记录01

1.项目结构 djangoProject02 ├── manage.py 【项目的管理&#xff0c;启动项目、创建app、数据管理】【不要动】【常常用】 └── jangoProject02 ├── __init__.py ├── settings.py 【项目配置】 【常常修改】 ├── urls.py …

为什么要配置环境变量?

华子目录 什么是环境变量&#xff1f;Path环境变量使用%%引用环境变量操作步骤 使用%%引用环境变量的优点 用户变量和系统变量的区别 什么是环境变量&#xff1f; 环境变量&#xff1a;一般是指再操作系统中用来指定操作系统运行环境的一些参数&#xff0c;如&#xff1a;临时…

SpringBoot注解--07-- lombok 注解

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1 Lombok介绍1.1 Lombok是什么?1.2 如何安装Lombok? 2 Lombok注解2.1 GetterSetter2.2 ToString2.3 EqualsAndHashCode2.4 NoArgsConstructor &#xff0c; Requi…

java仓库进销存商品库存管理系统springboot+vue

库存管理信息系统研究的内容涉及库存管理的全过程&#xff0c;包括入库、出库、退 货、订货、库存统计查询等等。 根据上述工作流程&#xff0c;库存管理系统将包含以下内容 1&#xff09;登录信息的输入&#xff0c;密码的修改。 2&#xff09;基本信息的输入&#xff0c;包括…

JAVA Web 学习(四)RabbitMQ、Zookeeper

十、消息队列服务器——RabbitMQ RabbitMQ是使用Erlang语言开发的开源消息队列系统&#xff0c;基于AMQP协议来实现。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、 安全。AMQP协议更多用在企业系统内&#xff0c;对数据一致性、稳定性和可靠性要求…

【实战】阿里智能编码助手通义灵码

文章目录 前言技术积累通义灵码是什么&#xff1f;Copilot是什么&#xff1f;通义灵码主要功能通义灵码有哪些优势&#xff1f;通义灵码支持语言/工具通义灵码接入方式通义灵码帮助中心 实战演示安装插件行/函数级实时续写自然语言生成代码代码优化单元测试生成代码注释生成解释…

Spring 事务原理总结三

今天这篇文章&#xff0c;我想梳理一下Spring事务用到的几个核心组件。这些核心组件是我们理解Spring事务原理的基础。通过它们我们可以体会学习一下Spring设计者设计Spring事务时的基本思路。这些组件是&#xff1a;TransactionInfo、TransactionStatus、TransactionManager、…

【Qt+MSVC2017_64bit +Cmake新建项目编译出错】

项目场景&#xff1a; 提示&#xff1a;这里简述项目相关背景&#xff1a; 项目新电脑环境配置 QtMSVC2017_64bit Cmake新建项目编译出错 问题描述 提示&#xff1a;这里描述项目中遇到的问题&#xff1a; QtMSVC2017_64bit Cmake新建项目编译出错 Running C:\Program Fil…

Java语法学习线程基础

Java语法学习线程基础 大纲 概念创建线程线程终止常用方法用户线程和守护线程线程的七大状态线程的同步互斥锁线程死锁释放锁 具体案例 1.概念 2. 创建线程 第一种&#xff1a; class Cat extends Thread {int time 0;Overridepublic void run() {while (true) {System.o…

Ubuntu 添加字体

Ubuntu 添加字体 Ubuntu如何添加新的字体&#xff1f;似乎远远没有Windows方便呀&#xff0c;查询了一些资料&#xff0c;与大家分享。 方法1 根据字体名称直接安装 oyroy-FMVU08001:~$ sudo apt-get install fonts-wqy-zenhei [sudo] roy 的密码&#xff1a; 正在读取软件…

基于springboot篮球竞赛预约平台源码和论文

随着信息化时代的到来&#xff0c;管理系统都趋向于智能化、系统化&#xff0c;篮球竞赛预约平台也不例外&#xff0c;但目前国内仍都使用人工管理&#xff0c;市场规模越来越大&#xff0c;同时信息量也越来越庞大&#xff0c;人工管理显然已无法应对时代的变化&#xff0c;而…

【数位dp】【动态规划】【KMP】1397. 找到所有好字符串

作者推荐 【动态规划】【字符串】【表达式】2019. 解出数学表达式的学生分数 本文涉及知识点 动态规划汇总 LeetCode1397. 找到所有好字符串 给你两个长度为 n 的字符串 s1 和 s2 &#xff0c;以及一个字符串 evil 。请你返回 好字符串 的数目。 好字符串 的定义为&#x…

7隐藏进程_Linux_Rootkit.md

Xcellerator 密码学Linux其他逆向工程 文章目录 [Linux Rootkit 第 7 部分&#xff1a;隐藏进程](https://xcellerator.github.io/posts/linux_rootkits_07/)选择要隐藏的 PID隐藏 PID Linux Rootkit 第 7 部分&#xff1a;隐藏进程 2020-10-01 :: TheXcellerator # linux #…

Docker基础与持续集成

docker 基础知识&#xff1a; docker与虚拟机 !左边为虚拟机&#xff0c;右边为docker环境 – Server :物理机服务器Host OS &#xff1a;构建的操作系统Hypervisor &#xff1a;一种虚拟机软件&#xff0c;装了之后才能虚拟化操作系统Guest OS &#xff1a;虚拟化的操作系统…

xlsx xlsx-style 使用和坑记录

1 安装之后报错 npm install xlsx --savenpm install xlsx-style --save Umi运行会报错 自己代码 import XLSX from "xlsx"; import XLSXStyle from "xlsx-style";const data [["demo1","demo2","demo3","demo4&quo…
最新文章