ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

DEIM 改进系列(九):Mamba 状态空间改进——把 neck 通路从“单点卷积“升级为“序列扫描“

DEIM 改进系列(九):Mamba 状态空间改进——把 neck 通路从“单点卷积“升级为“序列扫描“ DEIM 的 neck lateral 通路融合前投影原始实现是 1×1 卷积——逐像素独立处理没有序列上下文而 Mamba 这类状态空间模型用线性复杂度的序列扫描天然具备长程上下文建模能力。针对这条只看单点、不看邻居的通路我们做了一批Mamba 替换变体MambaLayer、mxt_mamba_layer、mamba_vision、CCSM、CCViM、CSI、EVSSM、FAMamba_CSI、MMB、SAVSS_layer、UVMB 等主落点lateral_convs_Xneck 同维增强c→cbackbone 侧同样可换HG_Stage_X全部保持原落点参数格式不变、一行切换。本文给出完整变体清单与分组逻辑重点拆解 MambaLayerMamba-2 状态空间核心。1. 现有的卷积和 Transformer 有什么不好在讨论 Mamba 之前先看看图像建模的两个主流范式各自卡在哪里范式机制短板卷积局部滑窗感受野受限看局部长程依赖要靠堆层且分辨率越大、层数越深Transformer / 注意力全 token 两两交互看全局O(N²) 复杂度高分辨率特征图直接吃不消两者共同卷积只有局部、注意力是平方复杂度没有人提供线性复杂度的全局建模落到 DEIM 的具体场景lateral 通路处理的是高分辨率特征图P5 融合前此时——用卷积1×1 / 3×3只有局部视野跨位置信息为 0上下文得靠后续融合块一层层补用注意力全局视野有了但 O(N²) 在 P5 分辨率下计算量直接爆炸。一句话总结卷积看不全注意力看得全但太贵——Mamba 用状态空间扫描提供了第三条路线性复杂度的长程建模恰好适合 lateral 这种高分辨率、又需要上下文的位置。2. HG 的卷积注意力可以往哪些方向改进把 Mamba 接进 DEIM有四个方向也是我们最终落地的四个分组方向思路代表变体优点代价原生 Mamba 核心直接用 Mamba-1/2 扫描块MambaLayer、mxt_mamba_layer、mamba_vision最正宗、已验证依赖 CUDA 扫描算子视觉 Mamba 变体为图像设计的扫描/卷积混合CCViM、CSI、FAMamba_CSI、EVSSM、SAVSS_layer适配 2D 特征图结构复杂通道-状态混合Mamba 与通道注意力结合CCSM、MMB、UVMB补上通道维度参数增加多向扫描多方向序列扫描CSI、EVSSM、mamba_vision上下文覆盖全扫描次数×计算四路共同点neck 落点保持 c→c 同维不变lateral_convs_backbone 落点保持 HG_Stage 外壳不变。变体全做让实验挑最优。3. HG 的卷积注意力是如何改进的Mamba 的替换变体主落点lateral_convs_X在train_deim_yaml.py的m.startswith(lateral_convs_)分支自动导入不需要自己修改轻松魔改改进DEIM3.1 原生 Mamba 核心组——最正宗的状态空间变体核心机制MambaLayerMamba-2 核心LayerNorm 状态空间扫描d_state16, d_conv4, expand2详见第 4 节mxt_mamba_layer多分支混合 Mamba 层mamba_vision视觉 Mamba多向扫描3.2 视觉 Mamba 变体组——为图像设计变体核心机制CCViM卷积视觉 Mamba 混合CSI / FAMamba_CSI通道空间交互 Mamba / 频率注意力 MambaEVSSM / SAVSS_layer增强视觉状态空间 / 空间注意力视觉状态空间3.3 通道-状态混合组——补上通道维度变体核心机制CCSM通道-状态协同调制MMBMamba 多分支块UVMB均匀视觉 Mamba 块设计逻辑三个分组对应Mamba 进检测器的三个本质问题——原生核心回答状态空间范式本身在 neck 上有没有用视觉变体回答如何为 2D 特征图定制扫描通道混合回答扫描之外还需不需要通道调制。变体不是堆数量而是把换一个计算范式这个动作的每个可设计维度都覆盖了一遍MambaLayer 则是其中最正统、最适合验证范式价值的代表。4.代码和视频讲解视频讲解DEIM超越 YOLO快准双绝DEIM让 DETR 告别慢收敛开启实时检测新纪元_哔哩哔哩_bilibiliDEIM超越 YOLO快准双绝一个视频告诉你DEIM如何搭建backbone_哔哩哔哩_bilibili代码获取YOLOv8_improve/DEIM.md at master · tgf123/YOLOv8_improve · GitHub5.以MambaLayer为例第一: 将下面的核心代码复制到DEIMv2-main\DEIM_YOLO\change_mode_Mamba路径下如下图所示。第二自适应导包与模型搭建第三将模型配置文件复制到DEIM.YAMY文件中第四yaml改进配置文件backbone: # [from, repeats, module, args] 原生 HG_Stage仅 neck 的 lateral_convs 被改进 - [-1, 1, HGStem, [3, 16, 16]] # 0 stemstem_channels - P2/4 - [-1, 1, HG_Stage, [16, 16, 64, 1, False, False, 3, 3]] # 1 stage1 - P2/4 - [-1, 1, HG_Stage, [64, 32, 256, 1, True, False, 3, 3]] # 2 stage2 - P3/8n 档不用 - [-1, 1, HG_Stage, [256, 64, 512, 2, True, True, 5, 3]] # 3 stage3 - P4/16, 512ch - [-1, 1, HG_Stage, [512, 128, 1024, 1, True, True, 5, 3]] # 4 stage4 - P5/32, 1024ch head: # ---- 1) input_proj官方 forward 的 proj_feats 循环n 档 num_levels2 故循环 2 次---- - [-1, 1, input_proj, [128]] # 5 proj_feats[1] P5: layer4(1024) - 128 - [3, 1, input_proj, [128]] # 6 proj_feats[0] P4: layer3( 512) - 128 # ---- 2) intra-scale encoderDEIM 的 HybridEncoder.encoder作用于 use_encoder_idx[1] 即 P5---- - [5, 1, TransformerEncoder, [128, 8, 512, 1]] # 7 P5 # ---- 3) 自顶向下 FPN ---- - [-1, 1, lateral_convs_MambaLayer, [128]] # 8 Y5 lateral_convs.0(P5)1x1 conv BN无激活 - [-1, 1, upsample_feat, [2, nearest]] # 9 上采样 2 倍Y5 - P4 分辨率 - [[-1, 6], 1, concat, [1]] # 10 concat(↑Y5, P4) - 256ch - [-1, 1, fpn_blocks, [256, 128, 256, 21, 2]] # 11 F4 fpn_blocks.0 (c1,c2,c3,c4,n) # ---- 4) 自底向上 PAN ---- - [-1, 1, downsample_feat, [128, 128, 3, 2]] # 12 ↓F4SCDown: 1x1 3x3 dw s2 - [[-1, 8], 1, concat, [1]] # 13 concat(↓F4, Y5) - 256ch - [-1, 1, pan_blocks, [256, 128, 256, 21, 2]] # 14 F5 pan_blocks.0 - P5/32 - [[11, -1], 1, DEIMDecoder, [nc, 128, 3, 300, 32, 4, [6, 6]]] # 15 Detect(F4, F5)​​第五模型跑出的结果
返回列表