Low-latency Event-based Object Detection with Spatially-Sparse Linear Attention¶
会议: ECCV2026
论文: ECCV 原文
代码: https://github.com/haohq19/ssla
领域: 目标检测
关键词: 事件相机、空间稀疏、线性注意力、异步检测、并行训练
一句话总结¶
SSLA 把线性注意力的全局状态拆成几何路由的局部子状态,以并行训练、逐事件递归推理支持低延迟检测,SSLA-L 在 Gen1 上达到 0.375 mAP,单事件计算量为 0.724 MFLOPS,实测单核处理延迟为 7.20 微秒。
研究背景与动机¶
事件相机输出的不是固定帧率图像,而是带有位置、时间戳和亮度变化极性的事件流。把一段事件攒成图像再检测,可以复用成熟视觉骨干,却需要等待数据积累;逐事件更新预测才能保留传感器的低延迟优势。已有异步图网络、稀疏卷积和递归模型尝试只计算受新事件影响的部分,但网络越深、感受野越大,局部输入越容易触发大范围更新,同时长事件序列的递归训练也难以高效并行。
线性注意力看似适合这个问题:训练时可以沿序列并行,部署时可以携带状态递归更新。然而,普通实现每来一个事件就更新整个状态。分类可以把历史压缩到一个全局向量,检测却必须记住目标在哪里,因而需要更细的空间状态;简单扩大状态,会让每个事件的计算同步上涨。真正的难点不是让输入稀疏,而是让足够大的空间记忆只被局部激活,并且仍能并行训练。
本文用重叠空间窗口组织独立子状态,让事件只访问覆盖其位置的窗口,再把多个窗口的输出收回到原事件位置。核心 idea:将空间记忆容量与单事件激活量解耦,并通过保持时间顺序的序列重排,让同一套稀疏状态模型既能并行训练,也能逐事件递归推理。
方法详解¶
整体框架¶
SSLA-Det 接收按时间排序的原始事件,以极性和时间差作为输入特征,用坐标决定访问哪些空间子状态。骨干包含 4 个阶段,每阶段 2 层 SSLA;前三阶段后接稀疏池化与时间丢弃,最后将输出特征写回对应空间位置,再由异步 YOLOX 检测头局部更新预测。
单层 SSLA 按空间混合状态、位置感知投影、双模式状态计算的顺序处理事件。这里的“双模式”不是两套模型:训练时将整段事件重排成窗口子序列并行求解,推理时只更新当前事件命中的状态,二者实现同一个因果计算;异步检测头则确保末端不会重新退化成整幅特征图计算。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["事件流<br/>坐标、极性、时间差"] --> B["空间混合状态<br/>几何路由到重叠窗口"]
B --> C["位置感知投影<br/>按窗口内相对位置编码"]
C --> D["双模式状态计算<br/>训练:散射、并行、聚合<br/>推理:局部递归、聚合"]
D --> E["四阶段骨干输出<br/>层间稀疏池化与时间丢弃"]
E --> F["异步检测头<br/>只更新输出事件的位置"]
F --> G["类别与边界框"]
图中空间混合状态到双模式状态计算组成每层 SSLA,按骨干结构重复执行,而不是整个模型只执行一次。层内还使用残差连接和层归一化;池化、时间丢弃是复用的辅助组件,不是额外的注意力机制。
关键设计¶
1. 空间混合状态:保留细粒度记忆,但每次只访问局部
空间混合状态(mixture-of-spaces,MOS)把当前空间域划分为步长为 1 的重叠窗口,每个窗口维护独立状态,而所有窗口共享线性注意力参数。新事件按坐标路由到覆盖它的位置窗口,而不是由学习到的路由器挑选任意记忆。边缘填充保证每个事件访问相同数量的窗口;窗口边长为 \(P\) 时,激活数量为 \(A=P^2\),与全图窗口总数无关。
这让“存多少空间信息”和“本次更新多少信息”不再绑定。每个命中窗口产生一个临时输出,但它们最终聚合成原位置上的一个事件特征,不把窗口输出扩散成一批新的空间事件。因此,单层 SSLA 不增加事件序列长度,深层可以积累更大感受野的信息,却不会仅因窗口重叠而让事件数逐层膨胀。总状态存储仍随空间域增长,不能把局部计算的节省理解为存储也与分辨率无关。
2. 位置感知投影:同一个事件在不同窗口中应有不同含义
同一个事件可能在某个窗口左上角、另一个窗口中心;若向所有窗口输入同样的向量,模型便缺少区分局部空间布局的线索。位置感知投影(position-aware projection,PAP)用事件相对窗口左上角的二维偏移索引一组可学习线性变换,先对输入特征投影,再送入该窗口的线性注意力。它不是仅把绝对坐标附加到特征上,而是明确编码“事件相对于这个局部记忆的位置”。
输出端也有对应的相对位置投影:各窗口完成状态计算后,先将各自的临时输出映射,再求和回到原事件。输入与输出两侧共同保留空间角色,使共享参数的窗口仍可辨认目标的局部形状。原文表 7 中,两侧 PAP 都去掉会让验证集 mAP 从 0.335 降至 0.014;这说明局部记忆的数量本身还不够,读写方式也必须包含空间信息。
3. 双模式状态计算:训练重排整段序列,推理只处理新事件
训练时,输入是长度为 \(L\) 的已排序事件序列。先通过预计算查找表获取每个坐标对应的窗口编号与相对位置,把每个事件展开为 \(A\) 个经输入 PAP 投影的副本,总长度变成 \(AL\)。随后按窗口编号做稳定排序:同一窗口的副本被放到一起,而稳定性保留它们原有的时间顺序。缓存这次排列后,就得到一组彼此独立的窗口子序列,这一步是 scatter。
compute 阶段同时处理不同窗口,各窗口内部又可利用线性递归的并行扫描或分块算法处理长序列。窗口间共享参数,不共享状态;序列内部仍保持因果关系,并不因为训练能够看到整段输入就允许未来事件影响过去输出。本文具体选用实值 Linear Recurrent Unit(LRU),并用 Triton 实现,而不是要求额外的 softmax 注意力矩阵。
gather 阶段用缓存排列的逆操作恢复展开前的事件分组,对各窗口临时输出做输出 PAP,再把属于同一个事件的结果求和。这样,一个事件有多个局部状态来源,却仍只有一个向下一层传递的特征。训练中的副本只是组织计算的手段,不是部署时必须缓存的一整段未来输入。
推理时不需要等齐子序列,也不需要对未来事件排序。每来一个事件,就查表找到它覆盖的窗口,读取并更新这些窗口的历史状态,经输出 PAP 和聚合产生当前特征;未命中的状态保持不变。并行训练与递归推理之所以能一致,依赖于同一窗口内的事件顺序、相同的状态更新规则,以及窗口状态的相互独立。
原文给出的 SSLA 模块单事件推理复杂度为:
固定窗口大小和通道数时,它不随图像分辨率直接增长;但内存访问、向量化和缓存行为仍会影响真实延迟。全文缓存中的递推式及若干投影式存在缺失运算符,这里依据算法 1 和文字说明解释机制,不猜补作者的精确递推公式。
4. 异步检测头:让局部更新一直保持到预测端
骨干末端维护一张空间特征表示,新输出事件只改写其对应位置。作者将 YOLOX 头中的卷积全部改为 \(1\times1\),使该位置的变化只需刷新该位置的预测,而无需重新运行整张特征图。空间上下文主要由前面的 SSLA 状态交互提供,因此检测头不必再用跨位置卷积传播更新。
前三阶段使用的稀疏池化会缩放事件坐标,提供更大尺度的空间组织,但不减少事件数量;时间丢弃才会压缩事件序列,并引入精度与计算量的取舍。每阶段通道数翻倍,残差连接与层归一化维持训练稳定。逐事件处理不意味着所有输入都会刷新每个深层位置:被时间丢弃筛掉的事件不会继续触发后续计算,保留的骨干输出才更新相应预测。
一个完整示例¶
以默认 \(P=3\) 为例,一个新到达的汽车边缘事件在某层会命中 9 个窗口。这 9 个窗口各自保留过去事件形成的状态;同一新事件因窗口内相对位置不同,得到 9 个输入 PAP 结果。各窗口完成局部状态更新后,输出 PAP 将临时结果变换,再聚合成一个仍位于该事件位置的特征。
如果训练序列包含 \(L\) 个事件,这一层先展开为 \(9L\) 个副本,按窗口分组并行计算后再收回 \(L\) 个输出;这里暂不计层间时间丢弃。在线推理则只在新事件抵达时做上述 9 次局部访问,无须等待下一事件。这个示例说明数据流,不代表新增实验或固定的整网访问次数,因为后续层的坐标和事件数量还会受池化与时间丢弃影响。
损失函数 / 训练策略¶
SSLA-S、SSLA-B、SSLA-M、SSLA-L 的第一阶段通道数分别为 12、16、24、32,默认窗口边长为 3。Gen1 使用 AdamW,训练 40 个 epoch,批量大小 32,基础学习率 \(1\times10^{-3}\),配合余弦衰减;增强包括概率 0.5 的随机翻转,以及保留率在 0.8 到 1.0 之间采样的输入事件丢弃。
N-Caltech101 训练 200 个 epoch,批量大小 64,除事件丢弃外,还以概率 0.2 随机裁剪到原分辨率的 75%,并最多平移原分辨率的 10%。训练使用指数移动平均。这里的输入数据增强丢弃与骨干内的时间丢弃应分开理解;原文没有在所给全文中明确列出检测损失分项及权重,不自行补写 YOLOX 默认损失公式。
实验关键数据¶
主实验¶
Gen1 面向汽车场景,分辨率为 \(304\times240\),检测汽车和行人;评测过滤对角线小于 30 像素或宽度小于 20 像素的框。N-Caltech101 为 \(240\times180\)、101 类的屏幕图像扫视事件数据,不能等同于自然驾驶视频。下表摘自原文表 1、表 2;mAP 与固定 IoU 阈值 0.50 的 AP50 分列,缺失结果不补算。
| 数据集 | 方法 | mAP | AP50 | MFLOPS/事件 |
|---|---|---|---|---|
| Gen1 | DAGr-L | 0.321 | 未报告 | 17.4 |
| Gen1 | SSLA-S | 0.334 | 0.629 | 0.102 |
| Gen1 | SSLA-B | 0.351 | 0.655 | 0.182 |
| Gen1 | SSLA-L | 0.375 | 0.675 | 0.724 |
| N-Caltech101 | DAGr-L | 未报告 | 0.732 | 18.9 |
| N-Caltech101 | SSLA-S | 0.444 | 0.681 | 0.131 |
| N-Caltech101 | SSLA-L | 0.515 | 0.743 | 0.926 |
Gen1 上 SSLA-L 比 DAGr-L 高 0.054 mAP,计算量约少 24 倍;SSLA-S 也高 0.013 mAP,计算量约少 171 倍。N-Caltech101 的跨方法比较应使用 AP50:0.743 对 0.732,提高 1.1 个百分点,计算量约少 20.4 倍。同步方法 EventPillars 在 Gen1 达到 0.531 mAP,因此本文优势限定为异步方法的精度与效率,而非所有检测器的最高精度。
消融实验¶
下表汇总原文表 5、表 7 的 Gen1 验证集结果。验证集完整模型为 0.335 mAP,不应与主结果的 0.334 混用;TD 指时间丢弃,SP 指稀疏池化。
| 配置 | mAP | MFLOPS/事件 | 说明 |
|---|---|---|---|
| SSLA-S 完整模型 | 0.335 | 0.102 | 默认空间稀疏和双侧 PAP |
| 去掉 TD | 0.370 | 1.02 | 计算量提高 10 倍,精度也提高 |
| 去掉 TD,改为稠密状态激活 | 0.370 | 388 | 保留 MOS 与 PAP,但每事件激活全部窗口 |
| 去掉 SP | 0.014 | 0.102 | 计算量未变,检测性能显著下降 |
| 只保留输入 PAP | 0.306 | 0.085 | 去掉输出侧的位置依赖 |
| 只保留输出 PAP | 0.224 | 0.089 | 去掉输入侧的位置依赖 |
| 两侧 PAP 都去掉 | 0.014 | 0.072 | 使用不依赖位置的可学习投影 |
在同样没有 TD 的条件下,局部激活把计算量从 388 降到 1.02 MFLOPS/事件,约减少 380 倍,mAP 均为 0.370。这才是隔离空间稀疏贡献的对照;不能将完整模型与稠密模型的全部差异都归因于 SSLA。
关键发现¶
- 训练并行收益有实测依据:原文表 3 在 4 张 A800 上记录 LSTM 每 epoch 为 1.05 小时,SSLA-S 为 0.25 小时;SSLA-B 为 0.28 小时,mAP 为 0.351,对照 LSTM 的 0.353,说明相近计算量下精度接近而训练更快。
- 计算量不是延迟的替代指标:表 4 的 C++ 递归实现运行于 AMD Ryzen 9 9950X3D 单核,Gen1 的 S/B/M/L 延迟为 3.43/2.44/6.02/7.20 微秒,B 反而快于 S。它测量的是单事件模型处理时间,不是包含传感器、排队和系统通信的端到端延迟。
- 细粒度状态不可被简单加宽替代:表 6 中,普通线性注意力首阶段宽度 36 时,计算量为 0.093 MFLOPS/事件,接近 SSLA-S 的 0.102,但验证集 mAP 仅 0.001;末层状态规模分别为 0.281K 与 106.9K。
- 窗口大小控制局部交互范围:表 8 中 \(P=2/3/4\) 的验证集 mAP 分别为 0.200/0.335/0.371,计算量为 0.047/0.102/0.179 MFLOPS/事件。更大窗口也增加训练显存和时间,默认 3 是取舍而非精度最优值。
亮点与洞察¶
- 将记忆容量与激活量拆开,比单纯压缩通道更适合定位任务。可迁移的思路是按几何位置保留大量局部记忆,仅为新观测支付局部更新成本,而不是把所有空间细节挤进一个全局状态。
- gather 不只是恢复排序,也阻止稀疏事件在深层扩散成更多输出事件。这让空间上下文增长与事件激活数量增长成为两个可分别控制的问题。
- 训练端的序列重排与部署端的事件调度可以不同,只要保持同一因果状态计算。这个思路适合探索其他有明确局部路由的流式任务,但需要重新验证相应状态的独立性与位置编码。
局限与展望¶
- 作者承认与同步方法仍有精度差距:Gen1 上 0.375 mAP 低于超过 0.5 的同步结果。低延迟是重要目标,但不能据此宣称精度差距已经消失。
- 相机与目标缺少相对运动时,事件不足会造成漏检;图 4 还包含由漏标造成的表观误检。事件与图像融合是作者提出的方向,但会增加传感器需求、对齐难度及系统复杂度。
- 从部署角度看,本文单核延迟不等同于高事件率下的持续吞吐、尾延迟或能耗。总状态内存仍随空间域增长,分辨率和事件密度变化下的存储带宽与排队行为值得补测。
- PAP、池化和局部状态都是重要组成,当前结果不能推广成“任意线性注意力稀疏化都能直接获得相同收益”。FPGA 或专用加速器是作者讨论的后续方向,并非本文已完成的部署结果。
相关工作与启发¶
- vs DAGr:DAGr 用事件图及局部更新实现异步检测;本文用空间组织的线性递归状态实现同一低延迟目标,并把训练序列并行纳入设计。跨方法性能比较需固定数据集及指标,尤其不能混用 AP50 与 mAP。
- vs EventSSM / S7 / EVA:前两者展示了状态空间模型对事件分类的价值,但全局任务不要求细粒度定位;EVA 用线性注意力处理事件检测,仍需要稠密骨干。SSLA-Det 将局部状态与局部检测头贯通,目标是全链路异步处理。
- vs Mixture-of-Memories / Col2a:前者通过学习路由选择记忆,MOS 则按已知几何位置路由;后者也研究局部状态,但依赖离散时刻的空间收缩。本文的区别是保留事件序列,通过 scatter-compute-gather 实现逐事件因果模型的并行训练。
评分¶
- 新颖性: 4/5。将几何路由状态、相对位置读写和可并行稀疏计算结合,针对异步检测瓶颈设计完整。
- 实验充分度: 4/5。覆盖两个数据集、训练时间、单核延迟和组件消融,但缺少更多硬件及持续事件负载验证。
- 写作质量: 4/5。机制与算法流程清楚,指标区分谨慎;当前全文缓存公式损坏使精确实现核对受限。
- 价值: 4/5。为细粒度流式视觉提供有实测支撑的状态容量与计算解耦方案,部署收益仍需结合硬件评估。