当前位置:首页 > 技术 > 正文内容

自动驾驶BEV感知的基石:深度解析LSS算法框架与工程实践

访客 技术 2026年9月22日 10

在自动驾驶感知架构的演进过程中,如何实现多视角传感器数据的有效融合一直是核心挑战。Bird's Eye View(BEV,鸟瞰图)技术通过将多路相机或雷达数据投影至统一的俯视坐标系,解决了传统后融合方案在空间一致性上的短板。在众多实现BEV转换的方案中,LSS(Lift, Splat, Shoot)凭借其优雅的数学构思和卓越的工程适配性,已成为业界主流的基线算法。无论是坚持纯视觉路径的方案,还是主张多模态融合的架构,LSS的思想都深刻影响着感知系统的设计。

1. BEV感知的演进逻辑

传统的感知范式通常在图像空间(2D)进行检测,再通过几何约束或简单的启发式规则转换到3D空间。这种方式在处理跨相机遮挡、大目标截断以及深度估计时效果欠佳。BEV感知的核心在于"特征级融合",即在网络推理的早期阶段,将来自不同视角的特征映射到以自车为中心的欧式空间网格中。这种统一的表征方式不仅消除了视角畸变,还为下游的预测与规划任务提供了标准化的输入环境。

2. LSS框架的三位一体架构

LSS算法通过"Lift"、"Splat"和"Shoot"三个阶段,构建了一套端到端的感知到规划的闭环。其本质是将不确定性的深度估计转化为显式的空间特征分布。

2.1 Lift:从像素映射到空间分布

在单目视觉中,像素的深度具有天然的二义性。LSS并不强求模型预测一个精确的深度值,而是为每个像素点预测一个离散的深度概率分布。通过将图像特征与深度概率进行外积运算,每一个2D像素都被"提升"为一个沿射线方向分布的特征视锥。

import torch
import torch.nn as nn

def lift_stage(feature_map, depth_net):
    """
    Lift阶段:为图像特征注入深度分布信息
    :param feature_map: 骨干网络提取的2D特征 [B, N, C, H, W]
    :param depth_net: 深度预测分支
    :return: 空间特征视锥
    """
    # 预测深度权重与上下文语义特征
    # depth_weights 形状: [B*N, D, H, W], context_vectors 形状: [B*N, C, H, W]
    combined_output = depth_net(feature_map.view(-1, C, H, W))
    depth_weights = torch.softmax(combined_output[:, :D], dim=1)
    context_vectors = combined_output[:, D:]

    # 利用外积构建3D空间特征
    # [B*N, C, 1, H, W] * [B*N, 1, D, H, W] -> [B*N, C, D, H, W]
    frustum_features = context_vectors.unsqueeze(2) * depth_weights.unsqueeze(1)
    
    return frustum_features

2.2 Splat:空间特征的重投影与聚合

在获得相机坐标系下的特征视锥后,算法利用相机的内外参将这些点云化的特征投影到BEV网格中。由于多个视角或同一视角的多个像素可能落入同一个BEV网格单元(Pillar),需要一种高效的聚合方式。LSS通常采用Sum Pooling,并利用累积求和(Cumsum Trick)来加速这一过程,避免昂贵的原子操作或大规模填充。

环节 核心逻辑 关键挑战
坐标变换 将特征点从相机坐标系转换至自车坐标系 对标定参数(内外参)的敏感度高
网格体素化 根据预设的分辨率将3D点分配至对应的BEV栅格 计算量随网格分辨率提升呈指数增加
特征池化 对同一网格内的多重特征进行加权求和聚合 需要处理特征重叠引发的信息冗余或冲突

2.3 Shoot:感知与规划的解耦连接

"Shoot"阶段体现了LSS作为端到端框架的愿景。在生成的BEV特征图上,可以并行预测代价地图(Cost Map)。通过将多条候选的运动轨迹投射到该地图上,计算每条轨迹的累积风险值,从而选出最优路径。这种设计使得感知结果能够直接反馈到车辆的决策层。

def select_optimal_trajectory(bev_cost_map, trajectories):
    """
    Shoot阶段:基于代价地图评估轨迹
    :param bev_cost_map: 预测的BEV代价空间 [H_bev, W_bev]
    :param trajectories: 预定义的候选轨迹簇 [K, T, 2]
    :return: 最优轨迹索引
    """
    batch_costs = []
    for traj in trajectories:
        # 在代价地图上采样轨迹点的代价
        # 假设 traj_indices 已经过网格坐标转换
        traj_indices = transform_to_grid(traj) 
        path_cost = bev_cost_map[traj_indices[:, 0], traj_indices[:, 1]].sum()
        batch_costs.append(path_cost)
    
    return torch.argmin(torch.stack(batch_costs))

3. LSS架构的工程优势

LSS之所以能成为行业标配,主要得益于其在复杂多变的物理环境中所展现出的稳健性:

  • 鲁棒的深度容错机制:通过深度分布(Probabilistic Depth)而非硬性的深度估计,LSS在面对摄像头震动或轻微标定偏移时,能通过特征重叠后的学习能力抵消部分几何误差。
  • 高并行的计算结构:Lift和Splat阶段的大部分计算可以利用GPU的算力进行大规模并行,适合对实时性要求极高的车载推理平台。
  • 灵活的模态融合接口:由于Splat阶段本质上是处理"带特征的3D点",这使得接入激光雷达(LiDAR)或4D成像雷达变得非常自然。雷达点云可以直接作为高置信度的空间特征输入,与视觉生成的视锥特征进行通道级或空间级的融合。

4. 针对差异化配置的优化策略

在实际工程落地中,开发者通常需要根据传感器的配置对LSS进行针对性调优:

对于纯视觉方案,优化的重心在于提升深度预测分支的准确度。例如,可以引入BEVDepth中提到的显式深度监督,利用离线生成的点云作为真值来约束Lift阶段的深度权重。同时,结合时序特征(Temporal Fusion)可以有效弥补单帧图像在速度估计和遮挡处理上的不足。

在多传感器融合方案中,LSS框架则扮演着"特征熔炉"的角色。4D毫米波雷达提供速度和精确的距离信息,可以用来修正视觉分支在远距离探测时的深度偏差。通过不对称特征融合策略,系统可以在光照不佳或极端天气下自动提高雷达分支的权重,从而保障感知的连续性。

5. 总结与前瞻

LSS不仅是一套算法,更是一种将2D语义与3D几何进行有机结合的思维方式。尽管当前出现了基于Transformer的全隐式映射方案,但LSS所代表的显式深度建模路径,因其更强的可解释性和更低的训练门槛,依然是工业界大规模量产的首选。未来的演进方向将聚焦于如何在保持高效计算的同时,进一步利用大模型的语义先验来解决Corner Case(长尾场景),并探索如何将BEV特征更深层次地融入到端到端的预测模型中。

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。