空间稀疏线性注意力:异步检测mAP 0.375、每事件算力降20倍

Low-latency Event-based Object Detection with Spatially-Sparse Linear Attention

Haiqing Hao, Zhipeng Sui, Rong Zou, Zijia Dai, Nikola Zubić, Davide Scaramuzza, Wenhui Wang

ECCV 2026

cs.CV

2026-03-06

清华与苏黎世大学提出SSLA,按事件位置稀疏更新空间子状态,训练仍可并行。SSLA-Det在Gen1达0.375 mAP,每事件算力比DAGr-L低超20倍。

这篇在解决什么

事件相机只在像素亮度变化时吐出带时间戳的脉冲,数据又稀又快。自动驾驶、无人机避障这类场景想吃到这份延迟红利,检测网络就得做成「来一个事件,改一次预测」,而不是把事件积成一帧再整图推理。

现有异步检测器卡在两处。递归结构天然贴合逐事件推理,但长序列在 GPU 上很难并行训练。想把框定准又要更细的空间状态,模型一放大,单事件算力跟着涨,延迟优势被吃掉。图网络、子流形卷积、点云网络都想用空间稀疏性换算力,深层感受野一扩,稀疏输入照样会铺成稠密激活。线性注意力能同时做到训练可并行、推理可递归,过去只在全局分类上跑通过。检测要精细定位,状态一大,稠密更新就把每事件成本线性抬上去。先前的 EVA 也试过线性注意力做事件检测,backbone 仍是稠密的。

方法

SSLA 的核心是把一块全局隐状态拆成许多空间重叠的局部子状态,论文叫 mixture-of-spaces。成像平面上用 P×P 滑窗、步长 1 铺满,每个窗自己维护一份线性注意力状态,参数共享、记忆独立。落在某个像素上的事件只激活覆盖它的那 A=P² 个窗。默认 P=3,一次只动 9 份子状态。各窗给出中间输出后再求和,作为该事件在这一层的新嵌入。序列长度不变,深层不会因为感受野膨胀把激活铺满全图。

同一事件落在不同窗里的相对坐标不一样。如果各窗共用同一份嵌入,空间先验就丢了。SSLA 加了位置感知投影 PAP:用事件在窗内的相对位置去查一张可学习投影矩阵,输入和输出各做一次。验证集上,输入输出 PAP 都去掉之后,mAP 从 0.335 掉到 0.014。空间先验是机制的一部分,不是装饰。

训练时按子状态稀疏更新会打散线性注意力的单一序列形态。对应的训练算法是 scatter-compute-gather:先查表把每个事件复制到覆盖它的各个窗并做位置投影,再按窗号稳定排序,得到 K 条互不干扰的子序列;每条用同一套线性注意力并行计算;最后用缓存的置换 gather 回原事件顺序并求和。时间维上仍是标准的并行扫描,空间维上窗与窗之间也能并行。

检测器叫 SSLA-Det。backbone 四段,每段两层 SSLA,残差加 LayerNorm。前三段接稀疏池化和时间 dropout,用来压序列。线性注意力具体实现是实值 Linear Recurrent Unit,Triton 核。原始输入只有极性和时间差两个标量。backbone 输出写回该事件所在像素,检测头把 YOLOX 的卷积全部换成 1×1,这样一个事件只改自己那个位置的预测,整网端到端异步。S/B/M/L 四个规格,第一段嵌入维分别是 12、16、24、32,之后每段翻倍。

结果

Gen1 是车载 ATIS、304×240,两类目标:车和行人。先前最强异步基线 DAGr-L 是 0.321 mAP、每事件 17.4 MFLOPS。

方法mAPAP50MFLOPS/ev
DAGr-L0.321-17.4
SSLA-S0.3340.6290.102
SSLA-L0.3750.6750.724
EventPillars(同步)0.531-5.08×10⁴

最小的 SSLA-S 已经超过 DAGr-L 的 mAP,算力大约是它的 1/171。最大的 SSLA-L 把异步记录推到 0.375 mAP,算力仍比 DAGr-L 低 20 倍以上。同步方法能到 0.5 以上,每事件算力在几千到几万 MFLOPS,延迟落到毫秒。

N-Caltech101 上 SSLA-L 是 0.515 mAP、0.743 AP50、0.926 MFLOPS/ev。DAGr-L 是 0.732 AP50、18.9 MFLOPS/ev。AP50 高 1.1 个点,算力大约 1/20。

训练侧,同样设置下官方 LSTM 每个 epoch 要 1.05 小时(4 张 A800),SSLA-S 降到 0.25 小时,mAP 从 0.353 掉到 0.334。规格调到 SSLA-B 后,mAP 0.351 对 LSTM 的 0.353,epoch 只要 0.28 小时。推理用 C++ 递归实现,在 Ryzen 9 9950X3D 单核上,Gen1 的 S/B/M/L 分别是 3.43、2.44、6.02、7.20 微秒,低于传感器传输大约 200 微秒。更小的模型不一定更快,向量化和访存会反过来。

消融把功劳拆开。稀疏 SSLA 相对稠密激活,把每事件算力从 388 MFLOPS 降到 1.02,大约 380 倍,mAP 持平;时间 dropout 再砍 10 倍,mAP 从 0.370 落到 0.335。换成普通线性注意力,哪怕把维数加到相近 FLOPS,验证集 mAP 只有 0.001,状态太粗,检测直接废掉。P=2 时 mAP 0.200,P=4 时 0.371 但算力涨到 0.179 MFLOPS/ev,默认取 P=3。失败样例主要是目标和相机相对静止导致没事件,以及标注漏框被当成假阳性。

为什么重要

线性注意力进事件视觉,此前停在分类。这篇把检测做成端到端异步:空间结构化的稀疏状态替换「学一个 router 把 token 分给几块记忆」,并行训练和事件级延迟同时保住。

对要做低延迟感知的人,这是一条能落地的精度-算力曲线。CPU 上已经是个位数微秒,FLOPS 比图网络低一个数量级以上,代码已开源。它不是用来刷同步榜的。跟 RVT、ERGO 比,精度仍差一截,目标场景是事件一到就要出框的控制闭环。

局限与存疑

作者自己写了两点。没做事件-图像融合,虽然中间层理论上能注入稠密图像特征。异步和同步本就不是同一条轴:SSLA-L 在 Gen1 上 0.375 mAP,同步 SOTA 超过 0.5,作者把这个缺口归因于信息聚合、预训练权重和参数量的结构性约束。

另外几处需要自己掂量。N-Caltech101 是对着投影出来的 Caltech101 做扫视,和真实运动差别大,异步记录主要还是看 Gen1。CPU 延迟没有把 FLOPS 优势等比例兑现,作者也承认,再往下压要靠 FPGA 或神经形态芯片。P 增大既涨算力也涨显存,默认 P=3 是训练代价压出来的折中。论文没报多目标拥挤或更高分辨率传感器上的扩展,stride=1 的滑窗在更高分辨率上,子状态数量会按像素数涨。

术语

原文与代码

社区讨论

相关论文

全部论文解读