跳转至

SeFlow: A Self-Supervised Scene Flow Method in Autonomous Driving

会议: ECCV 2024
arXiv: 2407.01702
代码: https://github.com/KTH-RPL/SeFlow
领域: 自动驾驶
关键词: Scene Flow, 自监督学习, 点云, 动态感知, 自动驾驶

一句话总结

SeFlow 提出将传统的基于 ray-casting 的动态点分类融入自监督场景流学习管线,通过专门的动态/静态损失函数和基于聚类的物体级运动一致性约束,在 Argoverse 2 和 Waymo 上以实时速度(48ms/帧)取得自监督场景流 SOTA 性能,甚至超越部分有监督方法。

研究背景与动机

领域现状:场景流估计旨在预测连续 LiDAR 扫描中每个点的 3D 运动向量。当前最佳方法多依赖有标注数据(如 FastFlow3D、DeFlow),但标注成本极高。自监督方法(NSFP、ZeroFlow)虽无需标注但性能仍有差距。

现有痛点:自监督场景流方法面临两大挑战:(1) 点分布不平衡 — 约 86% 的点是静态背景,导致模型倾向于预测零流量(保守估计);(2) 忽视物体级运动约束 — 基于 Chamfer 距离的损失函数因最近邻匹配错误,导致同一刚体物体内部流量不一致(如大卡车中部流量被错误预测为零)。

核心矛盾:Chamfer 距离损失的最近邻假设在动态物体上不成立 — 当物体平移时,表面中部的点与下一帧最近邻距离接近零(因重叠区域),导致流量被严重低估。

本文目标
- 在自监督框架下解决静态/动态点的数据不平衡问题
- 纠正 Chamfer 距离在动态物体上的错误对应
- 保持实时推理速度(≥10Hz)

切入角度:借鉴 SLAM 领域的动态感知建图方法(DUFOMap),用 ray-casting 将点云分为动态和静态两类,然后为不同类别设计专门的损失函数。

核心 idea:利用传统 ray-casting 动态分类,为自监督场景流设计分类别损失和聚类一致性约束,解决数据不平衡和对应错误问题。

方法详解

整体框架

输入:两帧连续点云 \(\mathcal{P}_t, \mathcal{P}_{t+1}\) + 自车运动 \(\mathbf{T}_{t,t+1}\)。先去除地面点,将总流分解为 \(\hat{\mathcal{F}} = \mathcal{F}_{ego} + \Delta\hat{\mathcal{F}}\),网络只预测去除自车运动后的残差流 \(\Delta\hat{\mathcal{F}}\)。同时用 DUFOMap 对 \(\mathcal{P}_t\) 进行动态/静态分类,再用 HDBSCAN 对动态点聚类。最后用 4 个互补损失函数进行自监督训练。推理时不需要动态分类和聚类。

关键设计

  1. 动态点分类 (DUFOMap):

    • 功能:在训练阶段将点云分为动态集 \(\mathcal{P}_{t,d}\) 和静态集 \(\mathcal{P}_{t,s}\)
    • 核心思路:利用 ray-casting 原理 — 如果某个空间区域在某时刻被观测为空,但在另一时刻有点存在,则该点必然是动态的。DUFOMap 可在 CPU 上以传感器帧率运行,计算开销极小
    • 设计动机:与有监督方法的 GT 标签相比,这种分类"几乎免费"获得,且足够准确。将其与学习管线解耦(训练时用,推理时不用),保持了方法灵活性
  2. 分类别损失函数(3 个新损失):

    • 功能:针对静态点和动态点设计不同的训练目标
    • 核心思路:
      • Dynamic Chamfer Distance (\(\mathcal{L}_{dcham}\)):只在动态点之间计算 Chamfer 距离,避免被大量静态点的零流量淹没
      • Static Flow Loss (\(\mathcal{L}_{static}\)):强制静态点的网络输出 \(\Delta\hat{\mathcal{F}}\) 为零:\(\mathcal{L}_{static} = \frac{1}{|\mathcal{P}_{t,s}|}\sum_{p \in \mathcal{P}_{t,s}} \|\Delta\hat{\mathcal{F}}(p)\|_2^2\)
      • Dynamic Cluster Flow (\(\mathcal{L}_{dcls}\)):用 HDBSCAN 聚类动态点为物体候选,求每个聚类中最近邻距离最大的点作为运动上界 \(\tilde{f}_{c_i}\),约束聚类内所有点朝这个上界一致:\(\mathcal{L}_{c_i} = \sum_{p_j \in \mathcal{P}_{c_i}} \|\hat{f}_{p_j} - \tilde{f}_{c_i}\|_2^2\)
    • 设计动机:\(\mathcal{L}_{dcham}\) 解决数据不平衡,\(\mathcal{L}_{static}\) 消除静态点的匹配噪声,\(\mathcal{L}_{dcls}\) 纠正 Chamfer 距离在物体表面中部的系统性低估(核心创新)
  3. DeFlow + GRU 骨干网络:

    • 功能:高效处理大规模点云(80K-177K 点/帧)并预测逐点流量
    • 核心思路:使用体素化编码 + GRU 迭代细化解码器。GRU 模块将体素特征作为隐藏状态,每次迭代根据点特征选择性更新。多次迭代后的优化体素特征与原始点特征拼接得到最终逐点特征
    • 设计动机:相比 FastFlow3D 骨干,在粗分辨率设置下不损精度的同时提高推理效率

损失函数 / 训练策略

  • 总损失:\(\mathcal{L}_{total} = \mathcal{L}_{cham} + \mathcal{L}_{static} + \mathcal{L}_{dcham} + \mathcal{L}_{dcls}\)
  • 四个损失无需额外权重平衡系数(均为等权重=1)
  • 动态分类和聚类仅在训练时使用,推理时只需前向传播网络

实验关键数据

主实验:Argoverse 2 Test Set (EPE ↓)

方法 类型 推理时间 EPE 3-way EPE FD EPE FS EPE BS
FastFlow3D 有监督 34ms 0.0782 0.2072 0.0253 0.0020
DeFlow 有监督 48ms 0.0534 0.1340 0.0232 0.0029
NSFP 自监督 32s 0.0685 0.1503 0.0302 0.0248
ZeroFlow 自监督 34ms 0.0814 0.2109 0.0254 0.0080
SeFlow 自监督 48ms 0.0628 0.1525 0.0321 0.0038

消融实验:各损失项贡献 (Argoverse 2 Val)

\(\mathcal{L}_{cham}\) \(\mathcal{L}_{dcham}\) \(\mathcal{L}_{static}\) \(\mathcal{L}_{dcls}\) EPE 3-way EPE FD EPE FS EPE BS
0.0962 0.203 0.052 0.033
0.0916 0.181 0.059 0.035
0.0779 0.220 0.012 0.002
0.0643 0.160 0.029 0.004

消融实验:训练数据量

数据量 EPE 3-way EPE FD
SeFlow 10% 0.094 0.234
SeFlow 20% 0.078 0.197
SeFlow 50% 0.066 0.167
ZeroFlow 100% 0.088 0.231
ZeroFlow 200% 0.076 0.198

关键发现

  • \(\mathcal{L}_{dcls}\) 是最关键的损失项:加入后 FD EPE 从 0.220 降到 0.160(-27%),说明聚类一致性约束有效修复了 Chamfer 距离的系统性低估
  • \(\mathcal{L}_{static}\) 对静态点效果显著(FS: -80%, BS: -94%),但会轻微恶化前景动态精度,\(\mathcal{L}_{dcls}\) 正好弥补这一退化
  • SeFlow 仅用 20% 训练数据就能超过 ZeroFlow 100% 数据的精度,数据效率提升 5 倍
  • SeFlow 超越了有监督的 FastFlow3D,且自监督中唯一能实时运行
  • 能检测到 GT 标注遗漏的流量(如被推的购物车)

亮点与洞察

  • 传统方法+深度学习的优雅结合:用零成本的 ray-casting 分类作为自监督信号的先验,不改变推理流程,是一种"训练时用传统方法增强,推理时纯神经网络"的范式,可迁移到其他自监督任务
  • 上界约束替代方差约束:对聚类内流量不直接约束均值/方差(因为均值可能本身就是错的),而是用最大距离点作为运动上界,巧妙绕开了 Chamfer 距离的系统性低估
  • 数据效率惊人:20% 数据即超 ZeroFlow 100%,证明好的归纳偏置比堆数据更重要

局限与展望

  • 远距离稀疏物体的流量估计仍有困难(体素化和聚类都容易忽略)
  • DUFOMap 的动态分类将"曾经移动过的物体"标记为动态,但场景流任务关心"当前帧是否在移动",存在定义不一致
  • 聚类算法 HDBSCAN 的超参可能影响不同场景的表现,鲁棒性待验证
  • 可以探索多模态输入(相机+点云)进一步提升远处物体的流量估计

相关工作与启发

  • vs ZeroFlow:ZeroFlow 用 NSFP 作 teacher 生成伪标签(耗时 3.6 GPU 月),SeFlow 完全不需要 teacher,直接用物理先验(ray-casting)获取自监督信号,更高效且更准确(EPE 0.063 vs 0.081)
  • vs DeFlow:DeFlow 是有监督方法(需 GT 流标注),EPE 0.053 vs SeFlow 0.063,差距很小。如果考虑标注成本,SeFlow 的价值更大
  • vs NSFP:NSFP 对每帧都要优化 MLP(30s/帧),不适合实时应用。SeFlow 训练完后推理仅 48ms,速度快 600+ 倍

评分

  • 新颖性: ⭐⭐⭐⭐ 将传统动态分类引入自监督场景流的思路简单有效,聚类上界约束有新意
  • 实验充分度: ⭐⭐⭐⭐⭐ 双数据集验证+详细消融+数据效率分析+定性可视化,非常充分
  • 写作质量: ⭐⭐⭐⭐ 问题阐述清晰,图示直观(尤其 Fig.3 解释 Chamfer 失败原因)
  • 价值: ⭐⭐⭐⭐ 自监督场景流 SOTA,实时可用,代码开源,实用性强

相关论文