简要介绍

总的来说第一个方案看起来比较可行

短答先说结论:Mamba 本身并不是只能记住“单个标量”历史,它的状态(SSM 的 hidden / register / memory slot)可以用来保存任意维度的信息——关键在于你如何把“特征图”组织成序列并映射到 Mamba 的状态/记忆上。下面把常见做法、权衡和可跑的 PyTorch 代码骨架都给你,方便直接试。

我也查了最近关于 Mamba / Memory-Mamba / Vision-Mamba 的论文和实现(参考:Mamba 原始论文、MemoryMamba、Vision-Mamba / MambaBEV 等),这些工作都在用不同方式把空间特征和时间记忆结合起来。(arXiv)

常见方案(按从最直接到更复杂列出)

  1. 把每个空间位置当成一个独立序列,对每个位置用 Mamba 跨时间扫描(经典做法)

    • 思路:输入为 (B, T, C, H, W),把 H×W 展平成 N=H·W 个 token,变成 (B·N, T, C) 送进 Mamba(或对 channel 做 1×1 投影先变到合适维度)。每个空间点各自维护一个 SSM 状态,从而保存该位置的特征图历史。

    • 优点:忠实保留逐像素/逐格历史;与 transformer token 化思路一致。

    • 缺点:内存/计算随 H·W 放大(可用稀疏/分组/下采样缓解)。

  2. 在通道维度上用 SSM,让 Mamba 保存每个通道的时间演化

    • 思路:对于每个帧把特征图 global pooling 到若干“通道向量”或用较小的空间分辨率(patch),对这些向量沿时间用 Mamba 扫描。适合你只需要保留“通道级别的时间动态”而不是完整像素历史。

    • 优点:计算轻;适合高层语义记忆。

    • 缺点:丢空间精度。

  3. 外部 memory / register tokens(Memory-Mamba / register tokens / memory slots)

    • 思路:像 Vision-Mamba / Mamba-R、MemoryMamba 那样引入少量 learnable memory slots(或 register tokens),每帧把特征图通过投影/交互写入这些 slots,SSM 维护 slots 的时间态。slots 就是压缩的特征图历史。文献里也有直接做 memory-augmented 的变体。

    • 优点:高压缩率、可控内存;实际工程中常用。

    • 缺点:需要设计读写机制(attention / gating / conv 写入)。

  4. 带压缩的时序缓冲(FIFO / key-value memory)+ Mamba 做摘要

    • 思路:保存最近 K 帧的 feature maps(或其低秩投影),每次用 Mamba 对这些历史做压缩/聚合,或只把 summary(如 avg+max+proj)输入 Mamba。简单可靠、实现容易。
  5. 混合:对高分辨率用下采样/patch,低分辨率保留通道时间;或在重要位置(检测框周围)做精细历史保留(稀疏策略,类似 Sparse Mamba)。(arXiv)

简单 PyTorch 骨架(把每个空间位置当作序列)

下面是最直观的实现:把 (B,T,C,H,W) → (B_H_W, T, C_in) → 投影到 SSM 维度 → 送 Mamba。注意这是伪代码骨架,取名和接口需要根据你用的 Mamba 实现调整。

# 伪代码(PyTorch)
import torch
import torch.nn as nn
 
class SpacewiseMamba(nn.Module):
    def __init__(self, in_ch, mamba_dim, mamba_module):
        super().__init__()
        self.proj = nn.Linear(in_ch, mamba_dim)        # 把 channel 投影到 mamba 期待的维度
        self.mamba = mamba_module                      # 你的 Mamba 实现,接受 (B, T, D)
        self.restore = nn.Linear(mamba_dim, in_ch)    # 可选,恢复回原始通道维度
 
    def forward(self, x):  # x: (B, T, C, H, W)
        B, T, C, H, W = x.shape
        x = x.permute(0, 3, 4, 1, 2).contiguous()   # (B, H, W, T, C)
        x = x.view(B * H * W, T, C)                 # (B*H*W, T, C)
        z = self.proj(x)                            # (B*H*W, T, D)
        out = self.mamba(z)                         # 假设返回 (B*H*W, T, D) 或状态压缩
        out = self.restore(out)                     # (B*H*W, T, C)
        out = out.view(B, H, W, T, C).permute(0, 3, 4, 1, 2)  # 回 (B, T, C, H, W)
        return out

注意点:

  • 如果你的 Mamba 实现是状态机式(one-step scan,接受输入和旧状态并返回新状态),可把状态以 (B,H,W,D_state) 的形式保存下来并在新帧到来时逐位置更新,从而实现在线流式保存历史(memory-efficient)。Mamba 的原论文和很多实现都提供了 step/update 的接口。(arXiv)

  • 为了效率,通常把 H·W 分成块(patch)或用 grouped 操作来并行化,避免单个大 for-loop。

选择建议(实用)

  • 你需要像素级历史(例如视频预测、像素级 NLOS 重建):用方案1(每位置 SSM)或分块版;必要时只在感兴趣区域做完整跟踪。(OpenReview)

  • 你需要语义/目标级历史(例如目标轨迹、检测融合):把 feature map 投影为少量 slots/keys,使用 memory slots 或 global pooling + Mamba。Memory-Mamba / register-token 设计很适合。(arXiv)

  • 受限算力:先做下采样/patch,再用 Mamba;或只保存压缩摘要(PCA/linear proj / avg+mlp)。

参考与延伸阅读(快速入口)

  • Mamba 原始论文(Selective SSM / Mamba 实现与 step 接口)。(arXiv)

  • MemoryMamba / Memory-augmented 变体(如何设计外部 memory slots)。(arXiv)

  • Vision-Mamba 实践 / register token 变体(处理 feature map 的实用 trick)。(GitHub)

  • MambaBEV 等把 Mamba 用在 BEV / 时序融合的工程案例。(arXiv)


要不要我帮你:

  • 把你当前的特征图尺寸(C,H,W)、目标任务(预测 / 检测 / 融合)、以及你打算用的 Mamba 实现(一次性 batch-scan 还是 step 接口)告诉我?我可以直接给你针对你尺寸的高效实现代码(含分组/patch 优化)并估算内存/复杂度。若你要,我就直接给实现,不用再问确认。

最近5年有纯点云的时序递增式表示

有的 — 最近 5 年(约 2020–2025)在纯点云(只用 LiDAR 点云)且面向时序 / 递增(stateful / streaming / online)表示与检测方向上确有一批代表性工作。下面我把最关键的几类/几篇列出来,给出它们为何“接近递增式”以及短评,方便你快速把脉研究脉络。


代表性论文(简短清单与要点)

  1. An LSTM-based multi-frame 3D object detection(ECCV 2020) — “sparse LSTM”类方法

    • 思路:对每帧提取稀疏 3D 特征后,使用 LSTM 将历史信息以隐状态传递到当前帧,属于早期的“有状态(stateful)”时序建模尝试。它比较接近递增式思想(把历史以隐状态带入下一帧)。不过实现上往往仍以多帧堆叠/feature cache 辅助。(ecva.net)
  2. LION — Linear Group RNN for 3D object detection (2024 / arXiv / openreview)

    • 思路:用线性 RNN / 线性 SSM 风格模块(在分组/窗口上执行)去做长程时序建模,设计上更适合长序列、低复杂度的增量式处理,对 streaming/在线处理更友好。LION 被提出为可扩展的时序模块并在 Waymo / nuScenes 等上表现优异。(arxiv.org)
  3. PointMamba / Mamba-based SSM 在点云上的应用(NeurIPS 2024 等)

    • 思路:把 Mamba / state-space model (SSM) 的“因果、常数内存更新”属性带到点云序列上。SSM 本身天然适合做递增式/因果的状态更新(只保留隐状态并在线更新),因此这类工作对真实时间序列/流式点云检测很有吸引力。PointMamba 展示了在点云任务上把 SSM 用作序列建模的可行性与效率。(proceedings.neurips.cc)
  4. 若干 2023–2024 的“时序聚合 / motion-aware”点云检测工作(例如 2024 年关于 temporal aggregation / motion compensation 的论文)

    • 思路:并非所有工作都保持“只用隐状态递增”,但很多提出更有效的时序聚合或 motion compensation 策略(更适合连贯的递增式 pipeline),这些方法增强了多帧融合在检测上的实际效益。示例论文讨论了如何把历史帧信息融合到当前帧以提升远距/遮挡下的检测。(arxiv.org)

总结 — 最近 5 年的趋势与现状

  • 早期(≈2020):有 LSTM / 堆帧 等做法,但多以「多帧拼接 + 后处理」为主,严格的“递增式隐状态表示”还不成熟(或未普遍采用)。(ecva.net)

  • 近两年(2023–2025):随着 SSM / Mamba / 线性 RNN(例如 PointMamba、LION)在序列任务上的兴起,研究开始重视因果、低复杂度、在线可更新的时序表示 —— 这些正是实现“纯点云的递增式表示 + 检测”所需的核心属性。(proceedings.neurips.cc)

  • 实践要点:要把这些方法用于在线/递增检测,还需解决工程细节:ego-motion compensation、稀疏索引/缓存、内存/延迟限制以及如何将空间稀疏特征映射到顺序 token(以喂入 SSM/RNN)等。


我可以帮你做的事(选一项即可)

  • 整理一份带链接与代码仓库的注释型参考文献表(短文献综述)。

  • 给出实现递增式点云检测的工程要点清单(state 保存结构、ego 补偿、mini-batch 策略、内存预算示例)。

  • 写一个最小可运行原型伪代码(如何用 PointMamba / LION block 做在线更新的伪实现)并估算显存/延迟(基于公开实现)。

你想先要哪一项?或者直接让我把上面那些论文做成带要点的小表格(含摘要 + 代码仓库)发给你?