基于注意力机制和损坏特征掩蔽的遮挡人脸识别

news2024/11/14 15:10:21

Occluded Face Recognition Based on Attention Mechanism and Damaged Feature Masking

摘要

        本文提出了一种基于注意力机制(BAM)和掩模生成器的新型遮挡人脸识别方法。在主干网络中嵌入BAM以提取更多可区分的特征,同时设计掩模生成器来清理损坏的特征,从而可以在遮挡的约束条件下实现人脸识别。具体来说,在残差网络中嵌入注意力机制,使网络更加关注人脸图像的显着区域,例如人眼周围的无障碍区域,更准确地提取有效特征。此外,掩模生成器被设计为动态预测正确的特征掩模,定位被遮挡的人脸图像中受损特征的位置。学习到的掩模可以用来清理从网络中提取的深层特征,清理后的特征将用于最终的人脸识别。所提出的网络是端到端模式,不需要在外部添加额外的检测器。

💡 本文的主要贡献如下:

  • 提出了一种基于注意力机制和损坏特征掩蔽的新型遮挡人脸识别方法,可以实现更高的识别精度。
  • 为了提取更有效的面部特征,通过将注意力机制(BAM)嵌入残差网络来构建特征提取网络。
  • 设计掩模生成器,利用特征金字塔网络底层的遮挡信息来定位和删除损坏的特征。 </aside>

网络结构

        在本节中,将详细介绍所提出的遮挡人脸识别方法。首先,介绍我们网络的总体架构。然后,介绍了基于BAM的特征提取网络。最后,描述了特征掩模生成器。所提出网络的总体框架如图2所示。

A.整体架构

        整体网络输入是一些随机人脸图像,包括遮挡和非遮挡的人脸图像。采用主要的 LResNet 作为主干网络,并将 BAM 嵌入到 LResNet50E-IR 的每个卷积块中作为特征提取网络。输入图像将通过嵌入注意力机制的特征提取网络获得修改后的深层和浅层特征。根据这些特征,我们可以构建特征金字塔[23]。我们使用金字塔顶部的特征作为基本特征,将底部的特征输入到掩模生成器中以获得特征掩模。然后,我们将遮挡应用到基本特征上,这样我们就可以获得清理后的特征。最后,将清理后的特征应用于识别过程,实现遮挡人脸识别。

B.基于BAM的特征提取网络

        使用特征提取网络生成的特征金字塔提取器,这有利于掩模生成器的学习和最终识别的识别特征的提取。

        如图3所示,它具有自上而下的水平连接结构特征。 FTop用作识别过程的深度区分特征,FBottom被输入到掩模生成器以生成特征掩模以清理FTop中的损坏特征。在特征提取网络中,嵌入BAM以更有效地提取独特特征。

        BAM包括空间注意力模块和通道注意力模块。如图4所示,输入特征图X为RC×H×W,输出特征图Y为RC×H×W。在通道注意力模块中,输入X被全局池化以获得C1,其形状为RC×H×W。 C1经过一个全连接层得到C2。这里,C2的通道数为C1的1/r,r为衰减率,有利于节省计算成本。 C2经过一个全连接层,得到与C1通道数相同的C3。然后,经过张量扩展操作 G,C3 被拉伸为与输入特征图 X 相同的形状。该模块的输出表示为 MC(X) ϵ RC×H×W。

        在空间注意力模块中,输入特征图X通过1×1核进行卷积得到S1,再通过3×3核进行卷积得到S2,然后通过两个3×3核和一个3×3核进行卷积得到S2。 1×1内核得到S3。之后,S3也会通过操作G得到与输入特征图相同大小的形状,记为MS(X)。最后,X、MC(X)、MS(X)被送入加法运算F,输出校正后的特征图Y,其公式如下:

C.掩模生成器

        在该网络框架中,引入掩模生成器来生成特征掩模,该特征掩模对应于损坏特征的位置,从而达到清理损坏特征的目的。掩模生成器的结构如图5所示。它以特征金字塔的底层作为输入,并使用该层的遮挡信息通过简单的“Conv-PReLU-BN-Conv-Sigmoid”生成特征掩模结构,并将掩模应用到顶层,以达到屏蔽损坏特征的效果。通过Sigmoid函数将特征掩码约束为(0, 1),通过将两个卷积层的滑动步长设置为2,使特征掩码与顶层具有相同的形状。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

媒介盒子揭秘0基础写好软文的秘诀

在流量见顶的传播环境下&#xff0c;品牌获取用户注意力的主要方式就在软文&#xff0c;然而有许多品牌在写软文时往往摸不着头脑&#xff0c;不知道怎么写&#xff0c;如何写才能使品牌有效曝光&#xff0c;今天媒介盒子就来和大家聊聊&#xff1a;0基础也能写好软文的秘诀&am…

SAP BAS中Fiori开发的高阶功能(storyboard, navigation, guided development, variant)

1. 前言 在之前的几篇文章中&#xff0c;我介绍了SAP BAS的一些基本功能&#xff0c;包括账户申请&#xff0c;创建工作区&#xff0c;git的使用以及如何step-by-step去创建出你的第一个Fiori项目等等。在本篇中&#xff0c;我将进一步介绍一些在开发Fiori应用程序时会用到的高…

【数仓】DataX软件安装及配置,从mysql同步到hdfs

相关文章 【数仓】基本概念、知识普及、核心技术【数仓】数据分层概念以及相关逻辑【数仓】Hadoop软件安装及使用&#xff08;集群配置&#xff09;【数仓】Hadoop集群配置常用参数说明【数仓】zookeeper软件安装及集群配置【数仓】kafka软件安装及集群配置【数仓】flume软件安…

C语言例4-7:格式字符f的使用例子

%f&#xff0c;实型&#xff0c;小数部分为6位 代码如下&#xff1a; //格式字符f的使用例子 #include<stdio.h> int main(void) {float f 123.456;double d1, d2;d11111111111111.111111111;d22222222222222.222222222;printf("%f,%12f,%12.2f,%-12.2f,%.2f\n&qu…

关于在forEach循环中使用异步,造成forEach里面的函数还未执行完毕,外层的同步已经被执行的问题

使用 原生的 for循环替代forEach循环即可解决问题 1.实例代码&#xff1a; select_Father_comment_sql_res.forEach( (item) > {const Select_FId_children_sql util.format("Select *, \IFNULL(User.UserName,) as CommentUserName, \IFNULL(User.UserName,) as AtU…

2015年认证杯SPSSPRO杯数学建模B题(第一阶段)替换式密码全过程文档及程序

2015年认证杯SPSSPRO杯数学建模 B题 替换式密码 原题再现&#xff1a; 历史上有许多密码的编制方法。较为简单的是替换式密码&#xff0c;也就是将文中出现的字符一对一地替换成其它的符号。对拼音文字而言&#xff0c;最简单的形式是单字母替换加密&#xff0c;也就是以每个…

如何学习VBA_3.2.19:利用Shell函数运行可执行程序

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的劳动效率&#xff0c;而且可以提高数据处理的准确度。我推出的VBA系列教程共九套和一部VBA汉英手册&#xff0c;现在已经全部完成&#xff0c;希望大家利用、学习。 如果…

Git 分布式版本控制系统基本概念和操作命令

目录 Git 基本概念 功能特点 工作流程 操作命令 新建代码库 配置 增删文件 代码提交 分支 标签 查看信息 远程同步 撤销 其他 小结 Git Git 是一个开源的分布式版本控制系统&#xff0c;用于跟踪文件的变更历史。它最初由 Linux Torvalds 设计&#xff0c;用于…

JDK,Nginx,Redis安装

创建develop目录 mkdir /usr/local/develop/ cd /usr/local/develop 下载 wget http://nginx.org/download/nginx-1.17.4.tar.gz yum install git git clone https://github.com/arut/nginx-rtmp-module.git 解压文件 tar zxmf nginx-1.17.4.tar.gz 进入解压目录 cd ng…

STL和泛型编程

STL和泛型编程 一.STL六大部件"前开后闭"区间 二.容器(1)顺序容器1.array源码剖析 2.vector源码剖析vector的迭代器 3.list源码剖析迭代器的设计规则关于重载操作符关于重载->和*操作符 4.forward_list源码剖析 5.deque源码剖析底层数据结构操作实现deque的设计de…

力扣面试150 Pow(x, n) 快速幂 负指数

Problem: 50. Pow(x, n) 解题方法 &#x1f468;‍&#x1f3eb; 参考题解 复杂度 时间复杂度: O ( l o g 2 n ) O(log_{2}n) O(log2​n) 空间复杂度: O ( 1 ) O(1) O(1) Code class Solution {public double myPow(double x, int n){if (x 0.0f)return 0.0d;long b…

centos7 装 docker-ce

安装必要的系统工具&#xff1a; sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 命令会以超级用户的身份安装三个软件包&#xff1a;yum-utils&#xff0c;device-mapper-persistent-…

2024.3.2-玄子Share-Mybatis 八股文面试题(共计:48 道 9000 字)

2024.3.2-玄子Share-Mybatis 八股文面试题&#xff08;共计&#xff1a;48 道 9000 字&#xff09; 前言&#xff1a; 本文部分面试题来源于网络仅供学习使用&#xff0c;请支持原作部分面试题有修改润色&#xff0c;部分面试题由我&#xff08;玄子&#xff09;自写面试题根据…

牛客NC12 重建二叉树【中等 dfs Java,Go,PHP】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/8a19cbe657394eeaac2f6ea9b0f6fcf6 思路 先序遍历第一个值就是根节点&#xff0c;根据这个值可以在中序中划分左右子树&#xff0c; 我们这里已经将一个数划分成两颗子树&#xff0c;那么在递归的使用刚刚的分析…

大模型时代的向量数据库:原理解析和应用案例

大家好&#xff0c;在人工智能领域&#xff0c;数据处理和加工的需求愈发增加。随着人们深入探索AI高级的应用&#xff0c;如图像识别、语音搜索和推荐引擎等&#xff0c;数据的复杂性也在不断地增加。此时传统的数据库存储方式已不能完全满足需求&#xff0c;向量数据库应运而…

大模型知识点汇总——分布式训练

PS&#xff1a;本篇只在宏观上介绍相关概念和技术&#xff0c;不做数学推导和过于细节介绍&#xff0c;旨在快速有一个宏观认知&#xff0c;不拘泥在细节上&#xff0c;导致很混乱。 涉及技术名词 分布式框架等涉及的技术名词很多&#xff0c;很容易让人眼花缭乱&#xff0c;…

vdat文件分段了怎么合并成MP4?批量导入一键合并!

一些监控摄像头、视频录像软件或其他专用设备可能会生成vdat文件作为其录制的视频数据文件。一些浏览器比如夸克下载的视频也会出现vdat格式&#xff0c;因为流媒体播放采用的是分段加载&#xff0c;在网络不好的时候&#xff0c;重新加载对文件整体性损坏比较小&#xff0c;所…

springboot 中Aop注解切面实现收集日志与统计耗时2

一 Aop注解实现切面 1.1 工程结构 Before&#xff1a;前置通知, 在方法执行之前执行 Aroud&#xff1a;环绕通知, 围绕着方法执行 After&#xff1a;后置通知, 在方法执行之后执行 AfterReturning&#xff1a;返回通知, 在方法返回结果之后执行 AfterThrowing&#xff1a;异…

su怎么做展厅模型---模大狮模型网

要在SketchUp中创建展厅模型&#xff0c;你可以按照以下基本步骤进行&#xff1a; 绘制基本结构&#xff1a; 使用SketchUp的绘图工具(线条、矩形、圆形等)来创建展厅的基本结构&#xff0c;包括墙壁、地板和天花板等。确保按照实际尺寸和比例进行绘制。 添加家具和展品&…

vue学习日记18:data是一个函数组件通信

一、data是一个函数 1.概念 2.代码 相互独立互不影响 二、组件通信 1.概念 &#xff08;1&#xff09;什么是组件通信 &#xff08;2&#xff09;不同组件关系和组件通信方案分类 &#xff08;3&#xff09;组件通信解决方案 &#xff08;4&#xff09;父子通信流程图 -…