CVPR 2025 最新感知算法解读:GaussianLSS 如何用 Gaussian Splatting 重构 BEV 表示?

CVPR 2025|GaussianLSS:BEV 感知不一定非得"卷更大 Transformer",真正缺的可能是对深度不确定性的建模

摘要

这几年自动驾驶里的 BEV 感知几乎成了"必争之地",很多方法不断往更大的 Transformer、更密的 3D 网格、更复杂的跨视角注意力上堆。但问题也越来越明显:精度确实在涨,算力和显存也在一起涨。

今天这篇论文很有意思,它没有继续沿着"更重的 3D projection"往下做,而是回到经典的 Lift-Splat-Shoot 思路,重点解决一个老问题:

深度本来就不确定,为什么还要逼模型只给出一个特别确定的投影结果?

论文的核心想法很直接:与其让模型死命猜一个精确深度,不如直接让它把"这个目标大概在这个范围内"的不确定性表达出来,再把这种不确定性变成 3D Gaussian,最后通过 Gaussian Splatting 做 BEV 特征聚合。

如果你最近正在看自动驾驶感知、BEV 表示、多视角视觉到 3D 的转换,这篇论文很值得认真读。因为它讨论的不是"把 backbone 再做大一点",而是一个更本质的问题:

BEV 感知的瓶颈,可能不是模型不够重,而是你对深度这件事建模得不够对。


一、为什么这篇论文值得分析?

这篇论文的题目是:

Toward Real-world BEV Perception: Depth Uncertainty Estimation via Gaussian Splatting

它关注的是一个非常现实的问题:

BEV 感知虽然已经是自动驾驶里很成熟的中间表示,但现有方法大致分成两条路线:

  • 一条是 2D unprojection
  • 一条是 3D projection

前者通常更快、结构更轻,但更依赖深度质量;

后者通常精度更高,但计算和显存代价更重。

GaussianLSS 最值得看的地方就在于,它试图在这两者之间找到一个更适合真实系统落地的平衡点。

这点特别适合写成技术解读。因为很多人看 BEV 论文时,容易形成一个直觉:

想要更高精度,就只能接受更重的模型。

但这篇论文其实在反问这件事:

如果问题根源不是 backbone 不够强,而是你对深度这件事建模得不对,那是不是还有别的路?

这就是它最值得看的地方。


二、这篇论文到底在解决什么问题?

论文一开始就把问题讲得很清楚:现有 BEV 感知方法大致分成两类。

1. 2D unprojection 路线

典型代表就是 Lift-Splat-Shoot 这一类方法。

整体流程通常是:

  • 先预测深度
  • 再把图像特征 lift 到 3D 空间
  • 最后 splat 到 BEV 平面

这条路线的优点很明显:

  • 结构清晰
  • 速度快
  • 工程实现相对直接

但它的缺点也很明显:

太依赖深度预测是否准确。

只要深度估得有偏,后面整个 BEV 表示都会跟着偏。


2. 3D projection 路线

另一类方法则更像是:

  • 在 3D 网格或 BEV query 上做投影
  • 再通过跨视角注意力或特征采样完成空间对齐

这类方法通常精度更强,因为它不那么依赖显式深度估计。

但代价也很现实:

  • 3D 网格更密
  • query 更多
  • cross-attention 更重
  • 显存和计算量都更高

所以 GaussianLSS 想解决的不是一个小修小补的问题,而是一个更本质的矛盾:

BEV 感知能不能既保留 2D unprojection 的高效率,又尽量逼近 3D projection 的表现?

作者给出的答案是:

关键不在于要不要显式深度,而在于要不要显式建模"深度本身是不确定的"这件事。


三、GaussianLSS 的核心思路:不要只预测"一个深度",而要预测"一个带不确定性的空间范围"

这是整篇论文最值得记住的一句话。

传统 LSS 类方法虽然也会输出深度分布,但很多时候仍然主要把它当成一种 soft weighting,也就是用一组离散深度概率去加权图像特征,再投到 3D 空间里。

GaussianLSS 认为这还不够。

因为真实场景里的深度估计天然就是模糊的,尤其在这些情况下更明显:

  • 远距离目标
  • 小目标
  • 遮挡目标
  • 纹理弱区域
  • 边界不清晰区域

与其强迫模型给出一个特别"肯定"的深度,不如直接让模型把这种不确定性表达出来。

具体来说,GaussianLSS 会从每个像素的深度分布里计算两个量:

  • 一个是深度均值
  • 一个是深度方差,也就是不确定性

然后把原本的"离散深度加权"改成一个 uncertainty-aware range,也就是围绕均值深度的一个范围。

这个改动的意义很大,因为它不再要求模型说:

它一定就在这个点上。

而是允许模型说:

我大概知道它在这个深度附近,但它可能分布在一个范围里。

这其实更符合真实感知系统面对复杂场景时的状态。


四、为什么它会想到用 Gaussian Splatting?

这篇论文的第二个关键点,是它没有把这种深度不确定性停留在"数值层面",而是进一步把它变成了 3D Gaussian

你可以这样理解:

  • 如果一个像素对应的深度非常确定,那它更像一个比较集中的空间点
  • 如果一个像素对应的深度不确定,那它更像一团在空间里扩散开的概率云

既然是"云状分布",那用 Gaussian 来表示它就很自然。

于是作者的做法是:

  1. 先从深度分布中得到均值和方差
  2. 再结合相机投影关系,把这种不确定性映射到 3D 空间
  3. 最后把每个像素表示成一个 3D Gaussian
  4. 再通过 Gaussian Splatting,把这些带不确定性的 3D 表示高效渲染到 BEV 平面上

这个设计很巧。

因为 Gaussian Splatting 天然适合处理"不是一个点,而是一团带范围的空间分布"。

如果还是用硬投影、硬离散体素去处理这些不确定性,反而会把本来应该被温和表达的模糊区域变得很生硬。

GaussianLSS 等于是在说:

既然深度本来就是模糊的,那不如直接用 Gaussian 的方式去表达这种模糊。

这也是它最有辨识度的地方。


五、整篇论文的结构怎么理解?

如果把 GaussianLSS 翻译成人话,它大概可以拆成四步。

1. 先预测每个像素的深度分布

这一点和很多 LSS 类方法类似,模型仍然会为每个像素输出一组深度概率,而不是直接输出单一深度值。

不同的是,GaussianLSS 不只是拿这组分布去做 soft lifting,而是进一步把它当成一个统计对象来分析。


2. 从深度分布里提取均值和方差

这是它和普通 LSS 拉开差距的第一步。

作者显式计算深度分布的:

  • mean
  • variance

其中:

  • mean 代表大致深度位置
  • variance 代表深度不确定性

这个 variance 很关键。

因为它不只是"误差大小",还可以间接反映一个空间区域到底有多模糊、多不稳定。

你可以把它理解成:

这个像素对应的空间信息,到底是一个非常清楚的点,还是一个比较发散的区域。


3. 把深度不确定性转成 3D Gaussian

有了均值和方差之后,模型就可以在相机视锥里构建 3D Gaussian。

这一层的意义在于:

  • 不再把像素对应关系理解成一个刚性点投影
  • 而是理解成一个带空间扩散范围的概率分布

这就让原本很生硬的"像素到 3D"的映射,变得更柔和、更符合真实视觉深度的不确定性。


4. 用多尺度 BEV rendering 解决局部畸变问题

论文还观察到一个很现实的问题:

如果相邻像素的深度均值差异较大,直接渲染到 BEV 里,容易造成局部特征扭曲。

所以作者进一步用了 multi-scale BEV rendering 的策略:

  • 先在不同分辨率下分别渲染
  • 再上采样并融合到目标 BEV 分辨率

这样做不是为了"堆多尺度"本身,而是为了缓解局部深度不一致带来的形变问题。

这一步很工程化,也很实用。


六、这篇论文最关键的创新点是什么?

如果只看标题,很多人可能会以为它只是"把 Gaussian Splatting 套到 BEV 里"。

但我觉得它真正的创新,至少有下面三个层面。

创新点 1:它把"深度不确定性"从附属信息变成了主角

很多方法也知道深度估计有误差,但通常只是:

  • 加一个辅助监督
  • 加一个深度损失
  • 或者把 probabilistic depth 当成软权重

GaussianLSS 更进一步:

它不是试图消灭不确定性,而是试图利用不确定性。

这和很多传统思路是完全不同的。


创新点 2:它不是更重,而是更会表达空间模糊

很多高精度 BEV 方法的路线是:

  • 更密的 3D 网格
  • 更复杂的 query
  • 更多跨视角 attention
  • 更大的计算量

GaussianLSS 则换了一个角度:

真实空间本来就不是每个像素都那么确定,那我就用 Gaussian 去表达这种模糊。

也就是说,它不是靠"更复杂的网络"去换效果,而是靠"更合理的表示方式"去换效果。

这一点我觉得特别值得记住。


创新点 3:它重新定义了效率和效果之间的平衡点

这篇论文最有吸引力的地方之一,就是它不是"精度一般但很快",也不是"精度很强但特别重"。

它更像是在告诉你:

  • 我可以保留 2D unprojection 的高效率
  • 同时把表现往 3D projection 路线逼近
  • 而不需要付出特别夸张的算力代价

对于真实系统来说,这类方法往往比单纯刷榜更有价值。


七、实验结果到底强不强?

从整体趋势来看,GaussianLSS 不是那种"想法很新,但一落到 benchmark 就不行"的工作。

它在结果上是有说服力的。

1. 在 unprojection 路线里表现很强

如果只把它放在 2D unprojection 这一类方法里看,GaussianLSS 的表现是很有竞争力的。

这说明它并不是只提出了一个漂亮概念,而是真的把传统 LSS 这条路线往前推了一步。

也就是说,它证明了一件事:

显式深度路线并没有走死,只要你认真建模 depth uncertainty,它依然很能打。


2. 和重型 projection 方法相比,精度差距并不夸张

更有意思的是,它和一些更重的 projection-based 方法相比,虽然绝对精度上可能还略逊一点,但差距已经不大。

换来的却是:

  • 更快的推理速度
  • 更低的显存占用
  • 更适合高分辨率输入
  • 更适合实时系统

这一点很关键。

因为真实系统很多时候并不追求"绝对榜单第一",而是追求:

足够强 + 足够快 + 足够省

GaussianLSS 非常接近这个方向。


3. 对远距离目标更有帮助

论文里还有一个很值得注意的结论:

GaussianLSS 对 长距离目标 的处理更稳。

为什么?

因为远距离目标最容易出现深度模糊。

而 GaussianLSS 恰恰就是显式建模这种不确定性的,所以它在远处场景下往往更能保留合理的空间表示。

这个点非常有工程意义。

因为远距离目标往往正是很多纯视觉系统最头疼的部分:

  • 看得见
  • 但估不准
  • 感受到那里有东西
  • 但位置和边界不稳定

GaussianLSS 的启发就在于:

与其强行逼模型在远处也给出特别锐利的定位,不如先把这种不确定性合理表达出来。


八、工程上它有什么价值?

我觉得 GaussianLSS 最值得工程侧关注的,不只是"速度更快",而是它代表了一种设计取向变化。

1. 不是所有精度问题都要靠更重的 attention 解决

过去几年很多 BEV 感知方法的默认方向就是:

  • 精度不够,就加更复杂的 projection
  • 精度不够,就加更多 query
  • 精度不够,就加更强 transformer

GaussianLSS 提醒我们:

有些问题并不是模型容量不够,而是表示方式不对。

深度模糊本来就是视觉系统的天然属性。

如果你一直假装它不存在,那后面再堆多少模块都可能只是在修补症状。


2. 真实系统更看重"接近最优 + 低代价"

从学术角度看,GaussianLSS 不是那种"把所有方法都打穿"的绝对榜首路线。

但从系统角度看,它反而更有吸引力。

因为很多真实项目要的不是绝对最强,而是:

  • 精度不能太差
  • 显存别太大
  • 延迟别太高
  • 输入分辨率还能继续提

GaussianLSS 恰好就是在这几个点上取得了比较均衡的结果。


3. 它给显式深度路线续了一口气

过去一段时间,很多人已经默认 query-based、projection-based 才是 BEV 感知的未来,LSS 一类方法更像是效率派而不是精度派。

但 GaussianLSS 其实证明了一件事:

显式深度这条路并没有走死。

只要你愿意认真建模深度不确定性,它依然能很有竞争力。


九、这篇论文有没有局限?

有,而且这些局限也很真实。

1. 在最强 projection-based 方法面前,绝对精度仍然略逊一筹

GaussianLSS 的定位不是"完全取代更重的 projection 路线",而是:

用更低代价去逼近它们。

所以它更像是一个效率和性能的折中点,而不是单纯追榜单第一的路线。


2. 这条路线仍然需要仔细处理渲染与参数选择

既然它把深度不确定性转成 Gaussian,再渲染到 BEV,那渲染策略和参数设置自然会影响效果。

也就是说,这种方法不是"天然稳",仍然需要认真调:

  • uncertainty 范围
  • rendering 方式
  • 多尺度策略
  • Gaussian 表达强度

这也是它后续还能继续优化的空间。


3. 它的优势更偏"表示方式升级",不是"万能增强模块"

GaussianLSS 的强项在于它从根源上改了深度到 BEV 的表示方式。

这意味着它非常适合那些本来就走显式深度 lifting 路线的系统。

但如果你的系统本身完全不依赖这类表示,那它未必能无缝套进去。


十、我的总体评价

如果你现在关注的是下面这些方向,我觉得 GaussianLSS 很值得读:

  • BEV 感知
  • 多视角视觉到 BEV 的转换
  • 自动驾驶纯视觉方案
  • 深度不确定性建模
  • 轻量高效的 3D 感知表示

它最让我认可的一点,不是"又把某个榜单刷高了",而是它抓住了一个非常本质的问题:

视觉深度本来就是模糊的,为什么我们总是要求模型把它硬投成一个特别确定的 BEV 表示?

GaussianLSS 的回答很有启发:

不要和不确定性对着干,而是把它变成表示的一部分。

这其实不只是一个技巧,而是一种思维方式的变化。


十一、总结

GaussianLSS 这篇论文最有意思的地方,不是"又做了一个更强的 LSS 变体",而是它提醒我们:

BEV 感知真正难的,未必只是多视角融合本身,而是你怎么面对深度这件天然不确定的事。

如果你一直把深度模糊当成噪声,模型就会不停为这个噪声付出代价;

但如果你愿意把这种模糊显式表示出来,再用更合适的空间渲染方式把它转进 BEV,那么你可能就能在不大幅增加成本的前提下,把效果往前推一截。

这也是我觉得 GaussianLSS 很适合写成一篇技术解读文章的原因------它不仅有结果,而且有很强的方法论启发。


论文信息

论文标题: Toward Real-world BEV Perception: Depth Uncertainty Estimation via Gaussian Splatting

会议: CVPR 2025

研究方向: 自动驾驶感知、BEV 感知、多视角视觉、深度不确定性建模、Gaussian Splatting


标签建议

自动驾驶 感知算法 BEV感知 CVPR2025 多视角视觉 深度估计 Gaussian Splatting 3D视觉


相关推荐
8Qi84 小时前
回文子串(Palindromic Substrings)—— 题解
算法·leetcode·职场和发展·动态规划
小宋加油啊9 小时前
机械臂抓取物体 PVN3D算法调研学习
学习·算法·3d
lqqjuly9 小时前
前沿算法深度解析(一)
算法
小欣加油9 小时前
leetcode1926 迷宫中离入口最近的出口
数据结构·c++·算法·leetcode·职场和发展
happymaker062612 小时前
LeetCodeHot100——42.接雨水
算法
阿正的梦工坊12 小时前
【Rust】07-错误处理:Option、Result 与 ? 运算符
开发语言·算法·rust
八解毒剂14 小时前
数据结构-平衡二叉树——对二叉搜索树的优化
数据结构·c++·算法
运行时记录14 小时前
别再手动写提示词了 — SkillOpt 让技能文档自己进化
算法
啦啦啦啦啦zzzz14 小时前
算法总结(二分查找、双指针)
c++·算法