细粒度视觉分类的注意内核编码网络

Attentional Kernel Encoding Networks for Fine-Grained Visual Categorization

  • 1、介绍
  • 2、方法
    • 2.1 卷积模块
    • 2.2 级联注意力模块
    • 2.3 内核编码模块
    • 2.4 整体
  • 3、结论

在本文中,我们提出了一种用于细粒度视觉分类的注意核编码网络(AKEN)。具体来说,AKEN聚合了上一卷积层的特征特征图,得到了一个整体的特征表示。 通过傅里叶嵌入,对纵向和横向的特征进行编码,在很大程度上保留了空间布局信息。此外,我们结合了 级联注意力(Cas-Attention)模块来突出显示区分从属类别的局部区域,使 AKEN 能够提取最具辨别力的特征。该方法结合注意机制,将卷积神经网络和核函数的优势结合起来,用于非线性特征学习,可以为细粒度图像分类建立判别性和描述性的特征表示。
贡献:
1、我们提出了一种新的学习架构,称为注意内核编码网络(AKEN),用于细粒度的图像分类。它结合了卷积神经网络和核函数在特征提取和非线性学习方面的各自优势。
2、我们提出了从 纵向横向两个方向对特征特征图进行编码的方法,既能 捕获局部的鉴别特征,又能 保留空间布局信息,从而得到全面的表征。
3、我们设计了== Cas-Attention 模块 来突出显示特征图中的重要区域,这使得网络能够在不同尺度上编码最具辨别力的特征==。

1、介绍

在本文中,我们提出了一种新的深度学习体系结构,名为注意核编码网络(AKEN),用于细粒度图像分类,如图2所示。AKEN将上一卷积层的特征特征图聚合为一个整体的特征表示。具体来说,我们建议应用傅里叶嵌入将特征特征图编码成图像的整体表示。傅里叶嵌入利用核函数强大的非线性学习能力,可以捕获更多有区别的特征进行分类,从而得到高质量的特征表示。
在这里插入图片描述
图二。这是我们提出的注意核心编码网络(AKEN)的流程图。在对原始图像进行特征提取后,应用级联注意(Cas-Attention)模块对有区别的区域进行高亮显示。然后对特征特征图进行编码,得到全局特征表示。与常规编码方法只专注于纵向方向(黄色显示)不同,我们也在横向方向编码(橙色显示)。最后,将两个方向编码产生的两个向量连接起来,得到最终的特征表示。
与以往的编码方法相反,我们提出沿特征特征图的纵向和横向两个方向进行编码。如图2所示,两个编码模块分别命名为纵向核编码和横向核编码。纵向向量可以看作是描述每个空间位置局部响应的一批局部特征向量。如果我们把每个过滤器看作一个特征检测器,那么每个特征图中的响应可以看作是一个特殊特征范式的分布。因此,纵向编码提供了每个空间位置的特征范式。在横向上,每个feature map携带了整个图像中不同方面的特征。在这个方向进行编码,可以得到原始图像中各个特定特征范式的特征分布,与纵向方向的信息互补。因此,我们的AKEN可以很好地保存这两个分类互补的信息源。此外,通过非线性核编码的特征编码可以无缝地注入到卷积学习体系结构中,而不需要放弃端到端训练。更重要的是,AKEN利用ConvNets的优势进行特征提取,利用核函数进行非线性学习,这有助于从输入图像中充分提取有区别的特征。
此外,为了从最具判别性的区域提取特征,我们在特征编码前引入了注意机制。具体来说,我们设计了级联注意(Cas-Attention)模块来突出显示反映不同类别之间视觉差异的区域。此外,我们将剩余学习策略纳入注意模块。更重要的是,我们还加入了一个级联结构。它从感受域的不同尺度生成注意特征图,并以不同尺度定位识别特征。该多尺度机制在特征提取[20]-[22]中被证明是有效的,在我们的AKEN中也发挥了重要作用。
结合注意机制,提出的注意核编码网络不仅能识别最具鉴别性的特征,而且在压缩整体表示的同时实现了高非线性的细粒度图像分类

2、方法

在本节中,我们提出了我们提出的注意力核编码网络(AKEN),如图3所示。端到端框架AKEN由三部分组成:
1)一个基本的特征提取模块,从原始输入图像中提取特征
2)一个注意力模块,帮助网络关注特征的信息区域
3)两个并行的内核编码模块,分别考虑纵向和横向信息

在这里插入图片描述
图 3.AKEN 示意图。主要包含三个部分:特征提取、Cas-Attention模块、同时考虑纵向和横向的方向核编码模块。我们还在该图中说明了一些模块的详细信息。正如我们所看到的,在横向核编码中,我们首先重塑特征图并交换横向和经度的维度。然后我们在重塑的特征图上进行卷积和傅里叶嵌入来对横向点进行编码。

2.1 卷积模块

我们的 AKEN 不依赖于任何特定的卷积架构来进行特征提取。我们部署通用的卷积神经网络作为计算效率的骨干。具体来说,我们保留原始神经网络的卷积模块并删除剩余部分。该模块的输出是 N×C × W×H 维度的特征图,其中 N 表示批量大小,W、H 和 C 分别表示特征图的宽度、高度和通道数。由于细粒度数据集的规模相对较小,我们在 ImageNet 上预训练主干网络以获得更好的参数初始化。这里VGG19效果不错。

2.2 级联注意力模块

为了突出对分类有区分性的区域,我们设计了一个 Cas-Attention 模块来在编码之前细化特征图。具体来说,如图 3 中的 Cas-Attention 模块所示,给定卷积网络输出的最终特征图(表示为 X),我们通过两个基本分支生成两个 3D 注意力图 M1(X) 和 M2(X)。每个基本分支通过残差策略生成具有特定过滤器大小的注意力图。**通过这些基本分支的级联连接,我们获得了注意力模块中的多尺度信息。**同时,获得的3D注意力图与X的大小相同。3D注意力图确保每个像素都有自己对应的权重。
我们首先使用原始特征图的 1 × 1 卷积运算生成 M1(X)。然后,我们使用逐元素乘法将注意力图作为 3D 掩模强加在输出特征图上。我们借鉴残差学习的思想并使用逐元素求和,而不是直接将衰减特征图 M1(X) ⊗ X 作为下一层的输入。
然后,我们使用原始特征图的 3×3 卷积运算扩展感受野并生成 M2(X)。通过填充过程,3D 注意力图的大小也与 X 相同。然后,​​我们使用逐元素乘法将 M2(X) 作为最后一个输出特征图的 3D 掩模。我们使用逐元素求和将其与原始特征图合并。
整体流程可以表示为:
在这里插入图片描述
其中 ⊗ 表示逐元素乘法。由于单一注意力仅查看一个尺度的特征图,因此它将忽略更大尺度的重要信息。考虑到这一点,我们的 Cas-Attention 模块通过两个基本分支生成的两个注意力图来突出显示判别区域。同时,残差策略有助于反向传播中梯度的传播[25]并带来更好的性能。

2.3 内核编码模块

我们首先简要介绍核方法,基于给定的理论,我们设计了一个方向核编码模块,结合了纵向核编码和横向核编码
1)傅里叶嵌入:核方法在机器学习中得到了广泛的探索,在学习数据的非线性方面表现出很高的有效性。在卷积神经网络的场景中,内核的强大功能还没有得到很好的探索。因此,我们通过傅里叶变换将内核引入神经网络,将特征图编码为整体表示。
**内核是一个函数,它在原始空间中获取两个输入向量并返回向量的点积。**形式上,给定输入数据 x,y ∈ X,以及映射函数 φ(·): X →RN,核函数可以表示为:
在这里插入图片描述
对于简单的情况,很容易得到提升φ(·),例如线性变换。然而,为了获得非线性信息,φ(·)在大多数情况下是非线性的,并且具有高维甚至无限维,这使得很难找到精确的表示。为了解决这个问题,核方法提供了一种捷径,即跳过φ(x)、φ(y)的过程,直接计算核函数k(x,y)。核机(例如支持向量机)利用核方法,其中提升的数据点之间的内积可以计算为 k(x, y)。然而,这种机制的代价是算法只能通过每个数据对之间的 k(x, y) 评估来访问数据,当训练集很大时,这会带来巨大的计算和存储成本。
最近,核近似引起了越来越多的关注,它用于使用随机特征图 z:Rd →RL 将数据显式映射到低维内积空间,使得
在这里插入图片描述
其中 L 是近似内积空间的维数。
最广泛使用的核近似方法之一是基于随机傅里叶特征的方法,该方法源自博赫纳定理。
定理 1(Bochner [40]):连续函数 g : Rd → C 仅当它是 Rd 上有限非负 Borel 测量 μ(ω) 的傅立叶变换时,在 Rd 上才是正定的,即:
在这里插入图片描述
其中 j 表示虚数单位。
命题1:对于平移不变核k(x − y),x ∈ Rd 的随机傅立叶特征可以表示为
在这里插入图片描述
其中 ω 是从 k(x − y) 的傅里叶变换中采样的,bi 是从 [0, 2π] [41] 中统一得出的。
命题1保证了z(x)Tz(y)的期望等于k(x,y)。但是,这个命题并不能保证所采用的核近似的收敛性,我们因此提出如下命题来从理论上保证收敛性。
命题2(收敛):对于命题1中的特征映射z(·),z(x) z(y)收敛到k(x,y),其中较大的L导致更快的收敛。具体来说
在这里插入图片描述
命题6保证了近似的收敛性。有了这两个命题,我们就可以将核解耦为z(x)和z(y)的内积,并将z(·)视为原始提升φ(·)的替代。
令 φ(·)。然而,命题6仅保证L→∞时的无偏估计,这意味着计算开销和存储成本随着维数的增加而大幅增加。幸运的是,在 ConvNet 中实现核近似解决了这个问题。卷积网络是完全数据驱动的,它在训练过程中动态调整参数以达到最小偏差,以减少内核与其相应近似值之间的差距。从这个角度来看,将核近似集成到ConvNets中可以减轻计算和存储负担的问题,而无需放弃端到端的训练。
正如之前所讨论的,我们需要一个整体表示来区分细粒度任务中的不同下属类别。从技术上讲,我们需要将注意力模块细化的特征图转换为单个向量。因此,我们建议在ConvNets中应用从Bochner定理导出的傅立叶嵌入,通过利用内核强大的非线性学习能力,将特征图编码为图像的整体表示。
出于上述动机,我们开始设计我们的编码模块。为了从不同视角提取特征,我们在两个方向上实现傅里叶嵌入。**从纵向角度来看,特征图是一批局部特征向量,描述与每个空间位置相关的局部响应。从横向角度来看,如果我们将每个滤波器视为特征检测器,则每个特征图都承载了整个图像的某个方面。**因此,为了在特征图中很好地保留这两个互补的信息源,我们沿纵向和横向应用核编码。
2) 纵向核编码:如图3中的纵向核编码模块所示,X∼ ∈ RW×H×C 包含输入特征图,从X∼中提取的每个纵向向量表示为xi ∈ RC,其中1 ≤ i ≤ W × H。根据命题 1,我们现在通过傅立叶嵌入构造 z(xi ),从而得到
在这里插入图片描述
其中 W ∈ RC×L1 包含可训练的权重参数。我们最初从高斯分布中采样 W,高斯分布是高斯核的傅立叶变换,作为典型的平移不变核。偏置参数通过从[0, 2π]均匀绘制来初始化。事实证明,这是一个具有余弦激活的非线性层,可以无缝注入神经网络,而无需放弃端到端训练。将所有纵向向量嵌入到更紧凑的低维空间后,我们通过平均池化将它们聚合成L1维单特征向量vL。
3)横向核编码:纵向向量包含局部语义特征,不包含空间信息。因此,我们设计了横向内核编码模块来聚合每个通道中的整个图。如图3中的横向核编码模块所示,我们首先将X中的每个特征图X~j∈RW×H重塑为长度为W×H的向量yj,其中1≤j≤C。然后,类似地对于纵向编码,我们应用命题 1 并将 yi 嵌入到低维空间中,从而得到
在这里插入图片描述
其中 W ∈ RWH×L2 包含训练阶段要学习的参数。嵌入后,我们还使用卷积层来缩小特征图。然后我们应用平均池化将它们聚合成 L2 维单特征向量 vT 。

2.4 整体

通过上面介绍的三个模块,我们得到了整个框架,如图3所示。卷积模块首先从输入图像中提取特征并生成基本特征图。然后,Cas-Attention 模块突出显示先前特征图的判别区域。之后,特征图分别经过纵向和横向内核编码模块。纵向核编码模块输出长度为L1的向量,横向核编码模块输出长度为L2的向量。然后我们将这两个向量连接在一起形成 L1 + L2 维度的向量。最后,我们采用带有 softmax 运算的全连接层来获得分类的概率分布 。

3、结论

在这项工作中,我们提出了注意力内核编码网络(AKEN),它提供了一种新的深度特征编码架构,可以为细粒度视觉分类生成高度辨别性的特征表示。
我们将核近似引入到用于非线性特征编码的深度卷积网络中,该编码在纵向和横向上均实现。
为了增强特征编码模块,我们进一步设计了一个带有残差机制的Cas-Attention模块来突出可以区分不同类别的局部区域。
我们的 AKEN 利用了用于特征提取的 ConvNet 和用于非线性学习的内核的优势。
三个基准数据集的实验结果表明,我们提出的 AKEN 提供了极具竞争力的性能,超越了大多数以前的方法。

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

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

相关文章

RK3588+MCU机器人控制器解决方案

1 产品简介 XMP04A 是一款信迈科技基于 RK3588 设计的高性能、低功耗的边缘计算设备, 内置 NPU 算力可达 6.0TOPSINT8,以及具备强大的视频编解码能力,最高可支持 32 路 1080P30fps 解码和 16 路 1080P30fps 编码 ,支持 4K12…

浙政钉SDK安装

专有订单SDK&#xff08;jar包&#xff09;下载 专有钉钉门户 (dg-work.cn) Maven依赖 浙政钉 <!-- 浙政钉 --> <dependency><groupId>com.oracel</groupId><artifactId>zwdd-sdk-java</artifactId><version>1.2.0</version…

【推荐系统】推荐算法数学基础

【大家好&#xff0c;我是爱干饭的猿&#xff0c;本文重点介绍推荐系统涉及的数学知识、推荐系统涉及的概率统计知识。 后续会继续分享其他重要知识点总结&#xff0c;如果喜欢这篇文章&#xff0c;点个赞&#x1f44d;&#xff0c;关注一下吧】 上一篇文章&#xff1a;《【推…

2008. 出租车的最大盈利(动态规划)

按照 end 对每一个乘客进行排序对于每一个乘客&#xff0c;如果接他就要寻找之前小于 start 的 end 中最大的那个来计算接他的收益&#xff0c;而不接的话就是上一个乘客的收益&#xff0c;取最大值即可 class Solution:def maxTaxiEarnings(self, n: int, rides: List[List[i…

flask web开发学习之初识flask(三)

文章目录 一、flask扩展二、项目配置1. 直接配置2. 使用配置文件3. 使用环境变量4. 实例文件夹 三、flask命令四、模版和静态文件五、flask和mvc架构 一、flask扩展 flask扩展是指那些为Flask框架提供额外功能和特性的库。这些扩展通常遵循Flask的设计原则&#xff0c;易于集成…

《opencv实用探索·十五》inRange二值化图像

opencv接口如下&#xff1a; void inRange(InputArray src, InputArray lowerb, InputArray upperb, OutputArray dst);函数实现二值化功能&#xff0c;主要是将在两个阈值内的像素值设置为白色&#xff08;255&#xff09;&#xff0c;而不在阈值区间内的像素值设置为黑色&am…

C语言数组(下)

我希望各位可以在思考之后去看本期练习&#xff0c;并且在观看之后独立编写一遍&#xff0c;以加深理解&#xff0c;巩固知识点。 练习一&#xff1a;编写代码&#xff0c;演⽰多个字符从两端移动&#xff0c;向中间汇聚 我们依旧先上代码 //编写代码&#xff0c;演⽰多个字…

c++详解栈

一.什么是栈 堆栈又名栈&#xff08;stack&#xff09;&#xff0c;它是一种运算受限的数据结构&#xff08;线性表&#xff09;&#xff0c;只不过他和数组不同&#xff0c;数组我们可以想象成一个装巧克力的盒子&#xff0c;你想拿一块巧克力&#xff0c;不需要改变其他巧克…

图片和文字如何生成一个二维码?图文生成二维码的做法

图片和文字如何生成一个二维码&#xff1f;扫码查看图片和文字相信大家在日常生活中都遇到过&#xff0c;比如在扫码阅读文章的时候&#xff0c;就可以看到文章内容和配图&#xff0c;可以复制文字或者下载图片。想要将文字和图片制作成一个二维码&#xff0c;可以使用二维码生…

判断css文字发生了截断,增加悬浮提示

示例&#xff1a; 固定显示宽度&#xff0c;溢出显示...&#xff0c;利用了css的属性&#xff0c;想要实现成下面这样&#xff1a; 针对溢出的文字&#xff0c;hover显示全部。 提示很好加&#xff0c;使用tooltip组件就行了&#xff0c;难点是如何判断是否发生了文字溢出。…

android项目实战之使用框架 集成多图片、视频的上传

效果图 实现方式&#xff0c;本功能使用PictureSelector 第三方库 。作者项目地址&#xff1a;https://github.com/LuckSiege/PictureSelector 1. builder.gradle 增加 implementation io.github.lucksiege:pictureselector:v3.11.1implementation com.tbruyelle.rxpermissio…

Rusty Tuesday :Rust 基金会一行来访 Databend Labs,共话技术创新!

在当今快速发展的技术浪潮中&#xff0c;Rust 作为一种新兴的编程语言&#xff0c;凭借其卓越的内存安全特性和高效的性能&#xff0c;吸引了全球开发者的广泛关注。2023 年 12 月 05 日&#xff0c;由 Databend Labs 主办的首届 Rusty Tuesday 活动正式在北京揭开序幕。 在本…

关于微信/支付宝等平台验签/签名sign生成算法

引言 我们在日常工作中经常会遇到对接微信平台、支付宝平台、或者自己对外开放一个api服务&#xff0c;那么这里经常会出现一个名字&#xff1a;sgin&#xff08;签名&#xff09;。 举个栗子 这是微信支付统一下单接口文档&#xff0c;最简单的理解就是&#xff0c;服务端为…

52 代码审计-PHP项目类RCE及文件包含下载删除

目录 漏洞关键字:演示案例:xhcms-无框架-文件包含跨站-搜索或应用-includeearmusic-无框架-文件下载-搜索或应用功能-down等zzzcms-无框架-文件删除RCE-搜索或应用-unlink、eval 漏洞关键字: SQL注入&#xff1a; select insert update mysql_query mysql等 文件上传&#xff…

全自动网印机配件滚珠螺杆起什么作用?

全自动网印机配件主要包括印刷网板、墨水或油墨箱、墨水或油墨管道、传动部件、移动部件、传动系统、控制系统、安全保护装置等等这些。 滚珠螺杆是一种精密的传动元件&#xff0c;能够将电机的旋转运动转化为线性运动&#xff0c;从而驱动印刷机的工作台进行精确的移动&#x…

正则表达式详细讲解

目录 一、正则表达式概念 二、八元素 1、普通字符&#xff1a; 2、元字符&#xff1a; 3、通配符 .&#xff1a; 4、字符类 []&#xff1a; 5、量词&#xff1a; 6、锚点 ^ 和 $&#xff1a; 7、捕获组 ()&#xff1a; 8、转义字符 \&#xff1a; 三、日常使用的正则…

【USRP】5G / 6G OAI 系统 5g / 6G OAI system

面向5G/6G科研应用 USRP专门用于5G/6G产品的原型开发与验证。该系统可以在实验室搭建一个真实的5G 网络&#xff0c;基于开源的代码&#xff0c;专为科研用户设计。 软件无线电架构&#xff0c;构建真实5G移动通信系统 X410 采用了目前流行的异构式系统&#xff0c;融合了FP…

unity 2d 入门 飞翔小鸟 小鸟跳跃 碰撞停止挥动翅膀动画(十)

1、切换到动画器 点击make transition和exit关联起来 2、设置参数 勾选掉Has Exit Time 3、脚本给动画器传参 using System.Collections; using System.Collections.Generic; using UnityEngine;public class Fly : MonoBehaviour {//获取小鸟&#xff08;刚体&#xff09;p…

前端学习微信小程序开发

1.微信小程序项目结构 2.WXML和HTML的区别 3.WXSS与CSS的区别 4.小程序中的.js文件 5.小程序的宿主环境 宿主环境是指程序运行所必须的依赖环境&#xff0c;因此手机微信时小程序的宿主环境。小程序宿主环境包含了通信模型、运行机制、组件、API。 &#xff08;1&#xff09;…

OpenAI的Sam Altman,获《时代》2023年度最佳CEO

12月7日&#xff0c;《时代》周刊在官网公布了2023年最佳CEO——OpenAI的Sam Altman。 此外&#xff0c;梅西入选了年度最佳运动员&#xff0c;Taylor Swift入选年度最佳人物&#xff0c;Alex Newell获年度突破奖。 《时代》周刊曾在今年的9月8日发布了“2023年AI领域最有影响…
最新文章