Super Mamba feature enhancement framework for small object detection

今天学习读了一篇CV圈里出了个挺好玩的成果,咱们今天坐下来聊聊这篇论文到底把什么世纪难题给"暴力破解"了。

你先想象一个挺极客的画面:大黑天的,你操控着一架低空无人机在天上飞,指望用红外相机把地面上偷跑的汽车、黑飞的无人机、甚至是落水等待救援的人员给揪出来。

听起来挺科幻吧?但实际落地的时候,算法工程师能被气得当场吐血。为什么?因为红外图像里的背景实在太操蛋了。地面的大楼、天上的云层,在红外镜头里全是密密麻麻的噪点和干扰。最致命的是,你要抓的那个目标,通常小到连个像素都不到。你想啊,在几百万像素的复杂背景里,找一个比芝麻点还小的车或者人,这无异于在大海里捞针。

以往大家遇到这种场景,第一反应肯定是:"上YOLO啊!"或者"上最新的Transformer硬抗!"实际上根本不是这么回事。Transformer那玩意儿全局上下文能力是强,但它的计算复杂度是二次方增长的,模型臃肿得像个大胖子。你要是把它硬塞进无人机那个巴掌大的嵌入式算力板里,无人机估计还没飞多远,芯片先烧焦了,根本跑不动。而传统的YOLO纯卷积网络,面对这种"芝麻点"小目标,又很容易在复杂的背景噪点里"迷失自我"。

论文的解法 :提出 Super Mamba 框架。既有 YOLO 的快,又有 Mamba 处理全局上下文的能力,还能以极小的计算代价精准抓出小目标

它的准确率(mAP@0.5)在 VEDAI 数据集上超过了92% ,比现在的大模型 YOLOv5、YOLOv8 和最新的 YOLOv11 高出20%以上

论文的图2和图3直接展示了它的全貌。当然我们需要知道:作者提出的一种新的红外小目标检测算法:Super Mamba 。它是建立在 YOLOv8 基础上的。所以我们可以理解为其是YOLOv8改进论文。

说白了,它的整个网络架构设计得就像个高度自动化的工厂流水线,清清爽爽地分成了三大部分(也是yolo的三大核心):

  • 首先是 Backbone(主干网络) 。假设图片🐱,Backbone不会告诉你这是猫。它只是不停卷积。不停提取。最后得到:边缘 纹理 轮廓 形状 语义这些。统称:Feature。所以Backbone只有一句话:负责提取特征
  • 接着是 Neck(脖子网络)。很多同学第一次都会问:既然Backbone已经知道这是飞机。为什么还需要Neck?原因Backbone有一个天然缺点

假设:

第一层图片:

复制代码
640×640

第二层:

复制代码
320×320

第三层:

复制代码
160×160

第四层:

复制代码
80×80

第五层:

复制代码
40×40

第六层:

复制代码
20×20

有没有发现?越来越小。这时候。如果飞机原来是4×4像素。到了20×20。几乎就消失了;

但是高层虽然位置没了。却知道这是飞机。低层虽然知道位置,却不知道是不是飞机。所以Neck就负责把不同层的信息融合。

  • 最后是 Head(检测头)。流水线的最后一关,也是"终审法官"。它拿着融合好的特征,啪的一下给出最后的直觉猜测:这个芝麻点目标到底是个啥(分类),以及它究竟隐藏在哪个坐标上(定位)。

整个故事的骨架就这么接上了。接下来,咱们就可以顺着这个流水线,去把 Backbone 里面到底塞了什么样硬核的 Mamba 模块给拆开,看看作者到底对这个网络动了哪三刀?这三个"史诗级魔改"才是 Super Mamba 能把 YOLOv11 按在地上摩擦的真正底牌。

第一刀:Backbone开头引入RFAConv感受野注意力卷积

咱们先来看第一处改动,作者直接在 Backbone 的开头,引入了一个叫 **RFAConv(**的模块。

传统卷积网络(像原生 YOLO)在提取特征时,有一个天然的局限:同一个卷积核会以完全相同的方式扫描整张图片。换句话说,无论当前位置是复杂背景、建筑物,还是那个只有几个像素大的红外目标,它使用的卷积方式都是一样的,并不会根据当前区域的内容进行调整。对于背景干净的大目标,这样的问题并不明显;但面对红外小目标时,大量背景噪声很容易把本就微弱的目标特征淹没。

RFAConv 的思路并不是"主动找到目标",而是让网络学会:不同位置、不同感受野的重要程度并不一样。 它通过引入感受野注意力机制,为不同空间位置生成不同的权重,让网络自动学习"哪些感受野更值得关注,哪些感受野应该弱化"。这样,在经过训练之后,真正能够突出小目标特征的感受野会获得更大的权重,而主要包含背景噪声的感受野则会被适当抑制。

可以把普通卷积理解成:"所有区域都戴着同一副眼镜看世界";而 RFAConv 更像是根据不同场景自动切换不同焦距的镜头。它并不是提前知道哪里有目标,也不是主动"锁定目标",而是在训练过程中不断学习:对于当前这幅图,采用哪一种感受野更有利于提取有效特征。

因此,Backbone 的第一刀并不是简单地"扩大感受野",而是让网络能够自适应地选择更合适的感受野进行特征提取,从源头提高红外小目标的特征表达能力,为后续的 Mamba、注意力机制以及特征融合打下基础。

第二刀:把注意力机制(SAM + SE)强行塞进 Mamba 的心脏(VSS 模块)

如果说第一刀只是热身,那第二刀绝对是全篇论文最硬核、最开脑洞的地方------作者把注意力机制强行塞进了Mamba 的核心VSS 模块里。

在这个核心脑洞之前,论文先列出了最基础的SSM公式(方程 1 和 2)。来带我们我们复习一下之前说的"记忆本"概念:

连续状态下的核心公式是:

在这个公式里:

  • x(t)是输入(比如你看到的新画面)。

  • h(t)是隐藏状态(就是我们说的"记忆本")。

  • A是状态矩阵(决定你保留多少旧记忆)。

  • B是投影矩阵(决定你把多少新画面写进记忆本)。

在论文的布局中,作者把整个 Backbone 的特征提取撕成了四个阶段(Stages)。

但是计算机看不懂连续的时间,所以作者用了一个叫 ZOH(零阶保持)的方法(方程 3 和 4),把它们变成了离散的公式(方程 5):

这就是 Mamba 跑得快的秘密:第t步的记忆 ,只跟上一步的记忆和现在的输入有关,不需要去回头看几十步之前的数据

最原始的 Mamba 是处理文本的。文本是一条直线,从左读到右。 但是!图片是二维的(2D) ,有上下左右。如果你强行把图片切成一个个小块,然后像读课文一样"从左到右、从上到下"读一遍,模型就会失去上下相邻的联系。比如,车轮在车顶的下面,如果你只从左往右读,模型就搞不清这两个零件的空间关系了。

VSS 模块的核心任务,就是解决"如何让 Mamba 优雅地读懂二维图片"这个问题。

为了解决上面的问题,VSS 模块里套了一个叫 SS2D (2D-Selective-Scan) 的核心组件。结合论文的 图 4,SS2D 分为三个绝妙的动作:

  1. Cross-Scan(交叉扫描):既然只从左往右读会漏掉信息,那该怎么办?简单粗暴但极其有效的方法是沿着四条不同的路径同时扫描这张图片!第一路从左上角扫到右下角。第二路从右下角扫到左上角。第三路从右上角扫到左下角。第四路从左下角扫到右上角。这样一来,不管目标在图片的哪个角落,这四条路线总有一条能完美捕捉到它的"上下左右"环境信息。
  2. S6 Blocks(选择性扫描模块):扫描出来的四条序列,会分别送进四个独立的 S6 block 里处理。这里的 S6 其实就是加入了"选择性"的 SSM 引擎。在这个模块里,模型会根据输入的内容,动态生成公式里的矩阵参数(, B, C)
  3. Cross-Merge(交叉融合): 四条路线分别处理完后,怎么变回图片呢? 最后一步就是把这四条处理完的序列,重新按照原来的位置拼装回去,构建成最终的 2D 特征图。 通过这顿操作,VSS 模块不仅成功处理了长图像序列的时空依赖关系,而且计算复杂度依然是完美的线性。

在前段流水线(Stage 1 & 2)里,作者把 SAM(空间注意力机制) 和 Mamba 的视觉核心VSS 模块强行给焊在了一起。你想啊,空间注意力的特长是什么?是看大局、找方向。让 Mamba 重点去看来龙去脉,其实就是直接在空间层面上告诉模型:"注意,那个芝麻点大概率在这个位置!" 从而啪的一下把周围漫天飞舞的云朵干扰给彻底排除掉。

等到了后段流水线(Stage 3 & 4),作者画风一转,又把 SE(通道注意力机制) 拿过来跟 VSS 结合。这时候就不看空间了,而是让 Mamba 去疯狂筛选特征通道,把那些没用的背景通道信息全部过滤掉,只把属于红外热辐射的特征无限放大。

这一前一后的连招打完,形成了一个"局部-全局"的协同增强效应,既发挥了 Mamba 的线性时间复杂度(计算快),又让它对小目标极其敏感。

很多人第一次看到这里会有一个疑问:

作者为什么不把 SAM 和 SE 一起堆到所有 Stage 里?为什么非要前面用 SAM,后面用 SE?

实际上,这并不是随便摆放,而是一个非常符合特征提取规律的设计。

在 Backbone 的前两个阶段(Stage 1 & Stage 2)中,特征图尺寸仍然很大,例如 640×640、320×320。这时候目标的空间位置信息最完整,一个红外小目标虽然只有几个像素,但它究竟出现在画面的哪个区域、周围有哪些背景干扰,这些空间关系都还保留得比较清晰。因此作者选择在前段引入 SAM(Spatial Attention Module,空间注意力机制),让网络优先学会回答一个问题:

"整张图里,哪些位置值得重点关注?"

这样可以尽早把模型的注意力聚焦到疑似目标区域,减少云层、建筑物、地面热噪声等背景干扰的影响。

而当特征经过多轮卷积和下采样之后,到了 Stage 3 和 Stage 4,特征图可能已经缩小到 40×40 甚至 20×20。此时很多精确的位置细节已经被压缩掉了,再去强调"目标具体在哪"意义已经不大。但与此同时,网络内部的特征通道数量却在快速增加,例如 128、256、512 甚至 1024 个通道。每个通道都代表着不同类型的特征信息,有些描述目标轮廓,有些描述热辐射特征,也有些只是背景噪声。

这时候作者引入 SE(Squeeze-and-Excitation)通道注意力机制,让网络从大量通道中自动筛选出最有价值的特征,并抑制无关信息。换句话说,此时模型关注的重点已经从:

"目标在哪里?"

逐渐转变为:

"哪些特征最能代表目标?"

因此,作者实际上遵循了一条非常自然的设计逻辑:

浅层重空间,深层重通道。

前期利用 SAM 快速锁定目标区域,后期利用 SE 精炼目标特征,再结合 Mamba 的全局建模能力,最终形成一种"空间定位 + 特征筛选 + 长距离依赖建模"的协同增强效果。

第三刀:在 Neck 部分引入FEM+BiFPN(特征增强与双向融合)

最后,咱们再来看看Neck里的第三刀,这也是防止小目标"人间蒸发"的绝杀技:引入FEM + BiFPN(特征增强与双向融合)

做视觉检测的同学都知道一个常识,小目标在网络里越往深处走,图片被层层缩小,它的特征就越容易被"稀释"甚至彻底丢失。可能 Backbone 刚看到它,走到 Neck 的时候,这几个像素点就直接查无此人了。

为了保住这个芝麻点的命,作者用 BiFPN(双向特征金字塔) 重新搭建了 Neck 的通道,让特征信息不仅能从上往下传,还能反向从下往上传。光有双向通道还不够,作者还在关键节点上配合了一个 FEM(特征增强模块),利用多分支的卷积结构强行搞输出,硬生生把在半路上快要传丢的"小目标细节"给死死补了回来。

这就好比是在工厂流水线上,不仅安排了全自动的动态双向传送带,还在终点前配置了一个高精度的特征放大镜。

最后来总结一下:

相关推荐
m沐沐2 天前
【深度学习】YOLOv2目标检测算法——改进点、网络结构与聚类先验框解析
人工智能·pytorch·深度学习·算法·yolo·目标检测·transformer
生命涌现2 天前
生命涌现的小龙虾技能之【Human Pose Recognition Skill | 人体姿态识别技能】简介
人工智能·目标检测·计算机视觉·多模态大模型·openclaw小龙虾技能
深度学习lover2 天前
<数据集>yolo 小麦麦穗识别<目标检测>
人工智能·yolo·目标检测·计算机视觉·数据集·小麦麦穗识别
动物园猫2 天前
人群密度目标检测数据集:8,000张图像 | 目标检测
人工智能·目标检测·计算机视觉
动物园猫3 天前
人体部位目标检测数据集:5类别、7,000张图像 | 目标检测
人工智能·目标检测·计算机视觉
皓悦编程记3 天前
【YOLO26 系列】基于YOLO26玉米病害检测系统【python源码+Pyqt5界面/WEB+数据集+训练代码】
人工智能·yolo·目标检测·yolo26
OpenApi.cc3 天前
来了,来了,我来了,Mocode
人工智能·深度学习·神经网络·目标检测·数据挖掘
SEO_juper3 天前
2026_GEO_AI搜索技术实战_CSDN
人工智能·chrome·目标检测·seo·geo·谷歌优化
OpenApi.cc3 天前
Mocode 开发文档平台
人工智能·深度学习·目标检测·自然语言处理·语音识别