LSKNet 大的 可选择核的网络

Large Selective Kernel Network, 大的可选择核的网络

ICCV2023

简介

遥感图像中目标的精确检测,通常需要广泛的上下文信息,以及不同的对象类型,所需的上下文信息范围非常不同,这意味着需要模型具有不同尺度的感受,以便进行准确的检测

同样,第一句话直接明确了作者的动机,依然是常见的动机,

指出不同对象类型所需的上下文信息范围是不同的,

📍 多大的上下文?

是3×3的还是5×5的,这个是不确定的,所以说模型具有不同尺度的感受野

因此作者提出了一种新的方法,Large Selective Kernel Network,LSKNet,包括动态调整网络的感受野,以便更有效地处理被检测对象的变化的上下文

网络的优点:动态调整网络的感受野(🚩 多尺度+动态选择(思想很好用))

具体细节,通过空间选择机制实现的,该机制有效的对一系列大的深度核产生的特征进行加权,然后在空间上合并这些核的权重,这些核是基于输入动态确定,允许模型自适应的使用不同的大核,并根据需要调整空间中每个目标的感受野

🚩 让我们来关注两个重点

第一个就是空间选择机制,选择的是谁,选择的是多个卷积核生成的特征

第二个问题,多个卷积核是怎么来的,后面说

LSKNet & SKNet

LSKNet & SKNet

可选择核的感受野

SKNet

image-20250424132101348

回顾 SKNet,分为三个部分,分别是分割,融合和选择

分割是指采用不同感受野大小的卷积核来捕捉多尺度的语义信息

融合是指把多个尺度语义信息进行相加操作,来增强特征的多样性

选择是指在不同向量空间中进行softmax操作,来为合适的尺度对应的通道来赋予更高的权重

LSKNet

image-20250424132716993

LSKNet也是三部分结构,也是有一个多分支的特征提取结构,然后接一个融合操作,最后是一个空间选择

它们的结构十分相似,来仔细研究一下LSKNet亮点到底在哪里,为什么能中 ICCV

🟢 第一部分:选择

不同于SKNet直接通过两个不同尺度卷积核来做卷积

LSKnet做了一个大核分解

什么是大核分解?

简单来说就是把一个非常大的卷积核,用两个串行的相对比较小的卷积核来替代

看表格

RF是感受野的大小,K和D分别是卷积核的尺寸和膨胀率,P是参数量,flops是浮点运算次数, 表示网络计算量

eg:如果设置一个卷积核大小为23,膨胀率为1的卷积层

那么毫无疑问它的感受野就是23,这么大的卷积核,光一个卷积核就需要23×23个参数量,更不用说当通道数量为128,512的时候了

简直就是呈指数级别增长,相应的还会导致计算量变大,从而来降低计算效率,虽然说最近有很多工作都证明了大卷积核能够带来有效的性能增益,但是计算复杂度也是我们必须要考虑的问题,于是作者就想办法,能不能将一个大的卷积核来拆成两个小的卷积核呢

这样的话,不仅参数量能够显著降低,计算效率还能够显著提高

在这里卷积核大小为23的卷积层,就相当于一个卷积核大小为5的卷积层,再串行一个卷积核大小为7,膨胀率为3的卷积层,这样的话,两者的感受野大小是相同的,都是23,

但是参数量和计算量完全不是一个级别的, 可以大幅度提高计算效率 这就是大核分解的一个好处,通过串行的方式,既保持了大的感受野,还显著提高了计算效率,还有一个附加的好处,就是分解之后的卷积层,尤其是对于第一个卷积层来说,它的感受野是小的,还能够起到捕捉局部细节的作用

这是大核卷积所不具备的,继续来看模型图

将这个输入X应用到多个串行的卷积层内,每一个卷积层的输出,再通过一个1×1的卷积来建模通道间的相关性,从而能得到当前尺度的特征表示

很显然越往下走,感受野越大,可视化也展示的非常的清楚

🟢 第二部分 融合

LSKNet首先要兼顾多个不同尺度的特征图,在这个通道上来进行拼接,然后分别应用平均池化操作和这个最大池化操作,然后将它们进行拼接,得到特征 SA,紧接着通过一个卷积,将2个通道映射到N个通道,这里的N表示N个尺度,可以根据自己的需求来设置有多少个尺度,然后再通过一个Sigmoid函数,就能够得到N个尺度对应的N个权重表示

以上是融合,简单来说就是融合多个尺度的特征,然后在它们的内部进行充分的交互,最后再分别生成对应的权重表示.

这样的话,每个尺度的权重都具备了一些其他尺度的信息,而不是独立存在的

第三部分 选择机制

有了权重,这部分就很简单了,使用$N$个权重,对对应的$N$个尺度进行加权,然后求和, 然后通过一个简单的卷积层进行融合

最后模块没有应用残差连接,而是将原始的输入和输出,通过逐元素乘法作为最后一步进行输出的

借鉴:将逐元素乘法来替代残差连接

计算流程图

image-20250424135932165

讨论计算上的区别

第一点,LSKNet的核心创新点,通过将大核卷积分解为多个具有不同感受野的卷积层来实现多尺度的建模,而不是SKNet这样,简单的使用多个卷积层来实现的

第二点,大家要注意LSKNet在选择这一部分,人家的名字叫做空间选择机制,说明是在空间层面上来进行操作的,来看一下shape变化,要从融合这一部分来看,池化操作(平均池化,最大池化)都是在这个通道方向上来进行操作的,得到的是$H×W×1$的空间描述符表示,而SKNet是在空间层面上来进行操作的,得到的是$1×1×C$的通道描述符表示 ,所以说,LSKNet的空间选择机制是在自适应的选择空间信息表示

经典的永不过时,排列组合依然是永远的神

优秀的代码 + 合理的动机

👾 本站运行时间:
发表了59篇文章 · 总计11万6千字
使用 Hugo 构建
主题 StackJimmy 设计