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 个互补损失函数进行自监督训练。推理时不需要动态分类和聚类。
关键设计¶
-
动态点分类 (DUFOMap):
- 功能:在训练阶段将点云分为动态集 \(\mathcal{P}_{t,d}\) 和静态集 \(\mathcal{P}_{t,s}\)
- 核心思路:利用 ray-casting 原理 — 如果某个空间区域在某时刻被观测为空,但在另一时刻有点存在,则该点必然是动态的。DUFOMap 可在 CPU 上以传感器帧率运行,计算开销极小
- 设计动机:与有监督方法的 GT 标签相比,这种分类"几乎免费"获得,且足够准确。将其与学习管线解耦(训练时用,推理时不用),保持了方法灵活性
-
分类别损失函数(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 距离在物体表面中部的系统性低估(核心创新)
-
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,实时可用,代码开源,实用性强
相关论文¶
- [CVPR 2025] VoteFlow: Enforcing Local Rigidity in Self-Supervised Scene Flow
- [ECCV 2024] Neural Volumetric World Models for Autonomous Driving
- [ECCV 2024] Risk-Aware Self-Consistent Imitation Learning for Trajectory Planning in Autonomous Driving
- [ICCV 2025] AD-GS: Object-Aware B-Spline Gaussian Splatting for Self-Supervised Autonomous Driving
- [ECCV 2024] Equivariant Spatio-Temporal Self-Supervision for LiDAR Object Detection