CNN中特征融合的一些策略

2023-11-18

Introduction

特征融合的方法很多.如果数学化地表示,大体可以分为以下几种:

  • X + Y \textbf{X}+\textbf{Y} X+Y: X \textbf{X} X Y \textbf{Y} Y表示两个特征图, + + +表示元素级相加. 代表如ResNet、FPN
  • X    c o n c a t    Y \textbf{X} \; concat\;\textbf{Y} XconcatY . c o n c a t concat concat表示张量 拼接操作。 代表如GoogleNet、U-Net
  • X + G(X) ⋅ X \textbf{X}+\textbf{G(X)}\cdot\textbf{X} X+G(X)X. G ( ⋅ ) \textbf{G}(\cdot) G()是注意力函数。这里表示自注意力机制。代表如SENet、 CBAM、Non-local
  • G(Y) ⋅ X + Y \textbf{G(Y)}\cdot\textbf{X}+\textbf{Y} G(Y)X+Y. 同样是将注意力机制作用在一个特征图上,而权重信息来源于对方。代表如GAU
  • G(X) ⋅ X + ( 1 − G(X) ) ⋅ Y \textbf{G(X)}\cdot\textbf{X}+(1-\textbf{G(X)})\cdot\textbf{Y} G(X)X+(1G(X))Y. 软注意力机制的一种,对特征图进行加权平均。代表如HighwayNetworks
  • G ( X , Y ) ⋅ X + Y \textbf{G}(\textbf{X},\textbf{Y})\cdot\textbf{X}+\textbf{Y} G(X,Y)X+Y. 代表如SA
  • G ( X , Y ) ⋅ X + ( 1 − G ( X , Y ) ) ⋅ Y \textbf{G}(\textbf{X},\textbf{Y})\cdot\textbf{X}+(1-\textbf{G}(\textbf{X},\textbf{Y}))\cdot\textbf{Y} G(X,Y)X+(1G(X,Y))Y,代表如SKNet

X+Y

ResNet

X concat Y

GoogleNet

X+G(Y)Y

SENet[1]

SENet使用了通道注意力的模块。
在这里插入图片描述

给定特征图 X ∈ R C × H × W X\in \mathbb{R}^{C\times H\times W} XRC×H×W。通道注意力模块中的权重 w ∈ R C × 1 × 1 w\in \mathbb{R}^{C\times 1 \times 1} wRC×1×1可表示为:
w = σ ( B ( W 2 δ ( B ( W 1 ( g ( X ) ) ) ) ) ) w =\sigma(B(W_2\delta(B(W_1(g(X)))))) w=σ(B(W2δ(B(W1(g(X))))))
其中, g ( X ) = 1 H × W ∑ i = 1 H ∑ j = 1 W X [ : , i , j ] , g ( X ) ∈ R C g(X)=\frac{1}{H\times W}\sum_{i=1}^{H}\sum_{j=1}^WX_{[:,i,j]},g(X)\in \mathbb{R}^C g(X)=H×W1i=1Hj=1WX[:,i,j],g(X)RC是全局池化层, B B B是BN层, δ \delta δ是ReLU层, W W W是全连接层, W 1 ∈ R C r × C , W 2 ∈ R C × C r W_1\in \mathbb{R}^{\frac{C}{r}\times C},W_2\in \mathbb{R}^{C\times \frac{C}{r}} W1RrC×C,W2RC×rC,r是通道缩减倍数。

CBAM[2]

SE模块将特征图中所有位置的权重浓缩为一个实数值,忽略了不同位置间的差异,且更容易关注大目标而忽略小目标。 CBAM(Convolutional Block Attention Module)在通道注意力之后又加上了空间注意力。
在这里插入图片描述
这里仅介绍空间注意力模块。空间注意力是以通道为单位进行最大和平均池化,并将两者的结果进行concat,之后再一个卷积降成1wh的特征图空间权重,再将该权重和输入特征进行点积。
权重 w ∈ R 1 × H × W w\in \mathbb{R}^{1\times H\times W} wR1×H×W的数学表达形式为:
w = σ ( W ( [ F a v g c ( X ) ] ; F m a x c ( X ) ] ) ) w=\sigma(W([F_{avg}^c(X)];F_{max}^c(X)])) w=σ(W([Favgc(X)];Fmaxc(X)]))
其中 F a v g c F_{avg}^c Favgc是通道上的平均池化, F m a x c F_{max}^c Fmaxc是通道上的最大池化, W W W是卷积层。

Non-local[3]

Non-local是为视频分类设计的一个模块,去掉时间维度也可应用到2D图像上。CBAM用卷积生成点的权重值,视野狭窄。而Non-local能捕获全局信息。
在这里插入图片描述
图中的乘号表示矩阵相乘。先使用3个1x1x1卷积压缩特征图,其中 θ \theta θ ϕ \phi ϕ分支用来计算每个点与其它所有点的相关系数,用softmax归一化为权重,乘以 g g g分支得到拥有全局信息的结果,然后用1x1x1卷积恢复通道数。为了方便插入任何一个网络,将其作为一个residual分支。
同样是对全局信息建模,Non-local相较于全连接层少了很多参数,其核心的计算点与点之间相关系数的部分甚至不需要参数。不过仍然存在计算时间长的问题。

G(Y)X+Y

GAU[4]

PAN是一个为图像分割设计的网络,其使用的GAU(Global Attention Upsample)模块,如下图所示
在这里插入图片描述
GAU出现在网络的decoder部分。其中Y是高层特征图,X是底层特征图。高层特征采用了Global Pooling得到权重,底层特征经过一个卷积层实现与高层特征相同数量的map,乘以权重后再和高层相加。
作者认为,decoder部分主要任务是恢复目标类别的像素位置,而高层特征含有丰富的类别信息能够指导底层特征。

G(X)X+(1-G(X))Y

Highway Networks[5]

Highway Network是2015年提出来的,时间上早于ResNet。想要解决的问题就是如何训练深度网络。其解决方案是基于LSTM的门控机制。特征融合公式可表示为:
H ( x ) ⋅ T ( x ) + x ⋅ ( 1 − T ( x ) ) H(x)\cdot T(x)+x\cdot (1-T(x)) H(x)T(x)+x(1T(x))
它和residual模块比较相似:
H ( x ) ⋅ T ( x ) + x ⋅ ( 1 − T ( x ) ) = ( H ( x ) − x ) ⋅ T ( x ) + x = F ( x ) + x H(x)\cdot T(x)+x\cdot (1-T(x)) = (H(x)-x)\cdot T(x) + x = F(x) + x H(x)T(x)+x(1T(x))=(H(x)x)T(x)+x=F(x)+x
下图体现了二者结构上的差别。图a是residual模块,图c是Highway
在这里插入图片描述

G(X,Y)X+(1-G(X,Y))Y

SKNet[6]

SK(Selective kernel )模块的作用是自适应调整感受野。
在这里插入图片描述
模块分为三个部分。Split部分 分别经过3x3卷积和5x5卷积,产生不同感受野的特征图,可看作X和Y。Fuse部分和SE模块类似,区别是最后恢复成两个不同的通道权重。Select部分将X和Y的权重做个Softmax然后加权融合。
由于SK模块的加入提高了模型的复杂度,为了降低参数量作者使用了分组卷积,以及用3x3的带孔卷积替换5x5卷积。

Remarks

  • 公式的 Y \textbf{Y} Y可以表示成 f ( X ) f(\textbf{X}) f(X) f ( g − 1 ( X ) ) f(g^{-1}(\textbf{X})) f(g1(X)), f f f g g g表示一系列CNN操作。意思是 Y \textbf{Y} Y要么直接来源于 X \textbf{X} X,如ResNet, 要么和 X \textbf{X} X有共同的祖先,如GoogleNet。反之亦可。
  • 公式中只体现了两个特征图的融合,可拓展至多个特征图,如DenseNet。
  • G ( ⋅ ) \textbf{G}(\cdot) G()相较于普通的网络层多了元素点乘的操作,在Non-local中还多了矩阵相乘操作。其具体提取的信息也不同,比如通道、空间、时序、全局、局部等,抑或是它们之间的排列组合,篇幅有限相关的算法不一一写出。

Reference

  1. Hu J, Shen L, Sun G. Squeeze-and-excitation networks[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2018: 7132-7141.
  2. Woo S, Park J, Lee J Y, et al. Cbam: Convolutional block attention module[C]//Proceedings of the European conference on computer vision (ECCV). 2018: 3-19.
  3. Wang X, Girshick R, Gupta A, et al. Non-local neural networks[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2018: 7794-7803.
  4. Li H, Xiong P, An J, et al. Pyramid attention network for semantic segmentation[J]. arXiv preprint arXiv:1805.10180, 2018.
  5. Srivastava R K, Greff K, Schmidhuber J. Training very deep networks[C]//Advances in neural information processing systems. 2015: 2377-2385.
  6. Li X, Wang W, Hu X, et al. Selective kernel networks[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2019: 510-519.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CNN中特征融合的一些策略 的相关文章

  • 三维重建-opencv实现sfm

    注意 本文中的代码必须使用OpenCV3 0或以上版本进行编译 因为很多函数是3 0以后才加入的 目录 SfM介绍 小孔相机模型 坐标系 内参矩阵 外参矩阵 相机的标定 SfM介绍 SfM的全称为Structure from Motion
  • Java 利用hutool工具实现导出excel并合并单元格

    Java 利用hutool工具实现导出excel并合并单元格 controller层调用service 就一个核心方法 没错就下面这个代码就能实现了 前提是项目里面要引用hutool包 把我这个复制到项目里面然后改掉字段应该能直接跑起来的
  • SQL Server统计数据库表空间大小和数据量

    SQL Server统计数据库表空间大小和数据量 在大数据环境中 对于SQL Server数据库的管理和优化是非常重要的 其中一个关键任务是统计数据库中各个表的空间大小和数据量 通过了解每个表所占用的存储空间 可以进行容量规划 性能优化和资
  • 虚拟机上的Ubuntu开机显示“无法应用原保存的显示器配置”

    如图 解决方法 删除monitors xml 文件 rm config monitors xml
  • pdf模板,java替换变量

    开发十年 就只剩下这套Java开发体系了 gt gt gt 1 创建pdf 现在word中创建模板 输出为pdf文件2 pdf 2 java项目引入依赖
  • 单片机时间戳转换

    看了网上的例程 大多繁琐 直接利用time h里的库函数进行转换即可 include

随机推荐

  • windows上传文件到ubuntu

    进入putty目录下 运行pscp 然后pscp 目标文件 Linux用户名 IP地址 目标文件夹 输入linux的登陆密码即可 more than one remote source not supported 出现这种情况是由空格导致的
  • Linux内核的编译、安装、调试

    这里写目录标题 编译安装内核 下载内核 安装依赖 更改 config 编译内核 安装 首先安装模块 安装内核 更改引导 更改 grub 重启 其他操作 清理内核源目录 卸载安装的内核 修改内核配置菜单实现对新加入内核源码的控制 常见问题 1
  • 8-13外部排序-败者树

    败者树是树形选择排序的一种变体 可视为一棵完全二叉树 通过败者树 可以在k个归并段中选出最小关键字所需要的关键字对比次数更少 绿色为叶子结点 存放初始数据 黑色为失败结点 蓝色为胜出结点 一 基本过程 以下按从小到大的方式构建 1 从8个归
  • Nor Flash,Nand Flash

    文章目录 1 Nor Flash 使用场景 2 Nand Flash 使用场景 3 读写速度对比 4 成本与容量 1 Nor Flash 使用场景 对于大多数应用较为简单的场景 比如 MCU 其内置的 Flash 就是使用的是 Nor Fl
  • python基础开发篇3——线上环境部署Django项目

    文章目录 一 基本了解 二 打包本地项目 三 服务器环境准备 四 安装web服务 4 1 使用uwsgi代理 4 2 使用nginx代理 推荐 五 部署daphne 一 基本了解 部署思路 Nginx服务接收浏览器的动态请求 再通过uwsg
  • 前端上传图片,Python后端接收

    前端代码 h1 Image Upload h1
  • 题目:洛谷1088 火星人(排列组合问题)

    题目描述 人类终于登上了火星的土地并且见到了神秘的火星人 人类和火星人都无法理解对方的语言 但是我们的科学家发明了一种用数字交流的方法 这种交流方法是这样的 首先 火星人把一个非常大的数字告诉人类科学家 科学家破解这个数字的含义后 再把一个
  • homework03

    1 编写一个程序来读入不指定个数的整数 然后决定已经读取的整数中有多少个正数和多少个负数 并计算这些输入值 不统计0 的总和 最终得出它们的平均值 这个程序以输入值0来结束 使用浮点数显示这个平均值 a 0 b 0 sum 0 count
  • Python之ML--机器学习分类算法

    Python之ML 机器学习分类算法 介绍最早以算法方式描述的分类机器学习算法 感知器 perceptron 和自适应线性神经元 adaptive linear neuron 我们将使用python循序渐进地实现一个感知器 并且通过训练使其
  • VSCode与PyCharm提示unresolved import解决方案

    问题描述 在VScode或者pyharm中采用python import自定义模块是 有时会显示unresolved import警告并且 无法跳转到自定义模块函数定义 出现问题的原因 没有安装import对应的模块 import的文件夹没
  • 使用STM32的TIMER进行外部计数

    使用ETR引脚的输入信号作为计数时钟 本例程使用Timer 2 其ETR输入引脚为PA1 该引脚工作模式为输 入模式 Timer的工作模式为从模式 另外使用PC6输出一模拟方波时钟信号 测试时将PC6与PA1短接 用户也可另外连接一个时钟信
  • 简述反射机制

    一 什么是反射 1 1 反射 所谓框架的灵魂 框架 半成品软件 可以在框架的基础上进行软件开发 简化代码 反射 将类的各个组成部分封装为其他对象 反射机制 简单来说反射就是在程序运行期间 动态的获取类或者对象中的属性 什么是动态获取 反射的
  • Swift语法学习--类(class)

    文章目录 类 初始化及实例 类的引用 reference 特征 类和结构体比较 类属性的set和get方法解析 类属性的willSet和didSet方法解析 类的下标 类方法和静态方法 将一个类的实例作为另一个类的属性 类的继承 父类在实例
  • MATLABdiag()用法

    1 提取矩阵的对角线元素 设A为m n矩阵 diag A 函数用于提取矩阵A主对角线元素 产生一个具有min m n 个元素的列向量 diag A k 提取矩阵A第k条对角线的元素 产生一个列向量 注意 矩阵的对角线 与主对角线平行 往上为
  • Unity核心5——Tilemap

    Tilemap 一般称之为瓦片地图或者平铺地图 是 Unity2017 中新增的功能 主要用于快速编辑 2D 游戏中的场景 通过复用资源的形式提升地图多样性 工作原理就是用一张张的小图排列组合为一张大地图 它和 SpriteShape 的异
  • android Scrollview里的内容不停留在顶部的问题

    先说明一下 任何一个页面都应该按照布局的先后顺序来显示 我这出现的问题就是 Scrollview里面嵌套Listview的头布局一进来看不见了 直接被Listview把焦点给抢了 最先显示的是Listview的item部分 直接上图 解决代
  • React中的“计算属性”

    React中的 计算属性 相信许多学习过vue的小伙伴对计算属性都不陌生吧 计算属性能帮我们数据进行一些计算操作 计算属性是依赖于data里面的数据的 在vue中只要计算属性依赖的data值发生改变 则计算属性就会调用 那React中也有计
  • gsaop 有头文件生成wsdl文件

    gsoap ns service name name area gsoap ns service style rpc gsoap ns service encoding encoded gsoap ns service namespace
  • SSM框架之MyBatis(二)--多表查询及查询结果映射

    使用MyBatis这一强大的框架可以解决很多赋值的问题 其中对于子配置文件中的小细节有很多需要注意的地方 使用这个框架后主要就是对于配置文件的编写和配置 今天我写了一个多表查询 表的基本结构如下 用户表t user 用户编号uid 账号ac
  • CNN中特征融合的一些策略

    Introduction 特征融合的方法很多 如果数学化地表示 大体可以分为以下几种 X Y textbf X textbf Y X Y X