自动驾驶感知的破局者:TransFusion如何用软关联重塑激光雷达与相机的融合
深夜的城市街道,路灯在雨幕中晕开一片模糊的光圈,一辆测试车正缓缓驶入隧道。对于车上的感知系统而言,这几乎是“盲人摸象”的时刻:激光雷达的点云在潮湿空气中变得稀疏,而相机镜头则被迎面而来的车灯晃得一片惨白。传统的多模态融合算法在此刻往往陷入混乱,要么过度依赖失真的图像,要么干脆放弃相机信息,退回到仅靠激光雷达的“半盲”状态。这正是自动驾驶感知系统在恶劣环境下必须直面的核心挑战——如何让激光雷达的精确几何与相机的丰富语义,在光照不佳、传感器失准等非理想条件下,依然能够稳定、可靠地协同工作?
过去几年,激光雷达与相机的融合已成为高阶自动驾驶感知的标配。然而,大多数方案建立在一种脆弱的“硬关联”假设之上:通过精确的标定矩阵,将每一个激光雷达点“钉死”在图像的一个像素上,然后进行特征拼接或相加。这种看似严谨的映射,一旦遭遇现实世界的复杂性——比如夜间光照不均导致图像特征模糊,或是车辆颠簸、热胀冷缩引起的微小标定误差——其关联关系便会瞬间崩塌,导致融合性能急剧下降。更棘手的是,激光雷达点云本身是稀疏的,基于点的硬关联会浪费图像中大量未被“点到”的宝贵语义信息。
正是在这样的背景下,一篇名为 TransFusion 的CVPR 2022论文,提出了一种截然不同的思路。它不再试图为稀疏的点云与密集的像素建立一一对应的“婚姻关系”,而是引入了一种更灵活、更自适应的“软关联”机制。其核心武器,正是近年来在自然语言处理和计算机视觉领域大放异彩的 Transformer 架构。TransFusion 的本质,是让模型自己学会在需要的时候,从图像中“注意”并提取最有用的信息,动态地调整融合的权重与焦点。这不仅仅是又一个精妙的模型设计,更是对多模态融合根本范式的一次深刻反思与革新。
1. 传统融合之困:当“硬关联”遇上真实世界的混乱
要理解 TransFusion 的突破性,我们首先需要看清现有主流融合方法的局限。目前,激光雷达-相机融合方案大致沿着从粗到细的粒度演进,但都未能彻底摆脱对“完美条件”的依赖。
1.1 融合方法的三层演进与固有缺陷
早期的融合方法可以归为三类,它们在信息交互的粒度上逐步深入,但各自存在明显的瓶颈:
| 融合层级 | 典型方法 | 核心思想 | 主要缺陷 |
|---|---|---|---|
| 结果级 (Result-level) | F-PointNet, RoarNet | 先在图像上进行2D检测,生成2D框,再将其反投影到3D空间作为种子,用点云网络(如PointNet)进行精修。 | 融合发生在检测流程的末端,信息交互非常滞后。2D检测的误差会直接传递并放大到3D空间,且完全依赖2D检测器的性能。 |
| 提案级 (Proposal-level) | MV3D, AVOD | 分别从激光雷达BEV(鸟瞰图)和图像前视图生成3D区域提案(Region Proposal),然后在共享的提案区域(RoI)内进行特征池化与融合。 | 矩形RoI区域会引入大量背景噪声,融合粒度仍然较粗。对于形状不规则的物体或部分被遮挡的物体,效果不佳。 |
| 点级 (Point-level) | PointPainting, EPNet, MVX-Net | 当前主流。利用标定矩阵,将每个激光雷达点投影到图像像素上,然后用该像素的语义分割分数或CNN特征来增强对应的点特征。 | 存在两大根本问题:1. 对图像质量极度敏感;2. 严重依赖高精度、时刻保持准确的传感器标定。 |
点级融合看似是最自然、最紧密的融合方式,但它建立在两个非常强的假设之上:第一,图像特征总是清晰可靠的;第二,激光雷达与相机之间的空间对应关系总是精确无误的。现实无情地击碎了这两个假设。
1.2 “硬关联”的两大阿喀琉斯之踵
第一踵:图像质量的脆弱性。 点级融合通常采用逐点相加或拼接(Element-wise Addition/Concatenation)的方式。这意味着,图像特征的质量直接决定了融合后特征的质量。在夜间、隧道入口逆光、雨雪雾霾等恶劣光照或天气条件下,相机采集的图像信噪比急剧下降,特征变得模糊甚至错误。此时,将这些低质量甚至错误的图像特征与相对稳定的激光雷达特征强行融合,非但不能提供增益,反而会成为“噪声”,污染原本可靠的几何信息,导致检测性能不升反降。
第二踵:标定误差的放大效应。 硬关联完全依赖于那个将激光雷达坐标系与相机坐标系联系起来的标定矩阵。然而,这个矩阵并非一成不变:
- 空间误差:传感器安装的物理位置会因车辆行驶震动而发生微米级的偏移。
- 时间误差:激光雷达与相机采集数据存在毫秒级的时间不同步,在高速场景下会导致明显的空间错位。
- 环境误差:温度变化可能导致传感器外壳发生细微形变。
即使是一个像素级的投影误差,也足以让本应落在车辆上的激光雷达点,被错误地关联到背景的树木或道路上。如图1所示,这种错位在物体边缘区域尤为致命。更糟糕的是,激光雷达点云本身是稀疏的(尤其在远距离),一张1080p的图像有超过200万个像素,而一帧激光雷达点云通常只有数万到十多万个点。基于点的硬关联,意味着图像中超过99%的像素信息被完全浪费了,那些未被激光雷达“光顾”的图像区域,无论包含多么重要的语义线索(比如一个颜色鲜艳但体积小的交通锥),都无法贡献给融合过程。
提示:你可以将传统的点级融合想象成用一根根细针(激光雷达点)去“钉”住一幅巨大的油画(图像)。针数有限,且必须钉得绝对精准。一旦画布(图像)本身模糊了,或者钉子的位置(标定)稍有偏差,整幅画的解读就会出错。TransFusion 所做的,是换了一种方式:它不再试图去“钉”,而是让模型学会用“目光”(注意力)去扫描整幅画,主动寻找与当前任务最相关的部分。
2. TransFusion 核心架构:用Transformer解码器实现“软关联”
TransFusion 的解决方案优雅而有力。它没有在卷积网络的特征图上进行复杂的早期或中期融合,而是选择在检测头(Detection Head)层面,利用 Transformer 解码器来实现一种序列化、自适应的软融合。其整体流程可以概括为:先用激光雷达特征生成一个高质量的初始猜测,再用这个猜测作为“向导”,去图像中自适应地提取和融合最相关的信息。
2.1 整体流程:两阶段解码的匠心
TransFusion 的模型结构清晰分为两个核心阶段,如图2所示:
- 激光雷达特征提取与初始检测:使用标准的3D卷积骨干网络(如VoxelNet或PointPillar)处理原始点云,生成一个鸟瞰图(BEV)下的特征图。这个特征图编码了场景的几何结构。
- 基于Transformer的两层解码器检测头:
- 第一层解码器(LiDAR-Only Decoder):输入是一组稀疏的目标查询(Object Queries)。这一层仅使用激光雷达BEV特征,通过交叉注意力机制,让这些查询与BEV特征图交互,输出一组初始的3D边界框预测。这一步相当于先用可靠的几何信息做一个“初筛”。
- 第二层解码器(LiDAR-Camera Fusion Decoder):将第一层输出的目标查询(此时已携带了初步的位置和类别信息)作为输入。这一层的关键在于,其交叉注意力机制的“键”和“值”来自多视图图像特征。模型会动态地计算每个目标查询与所有图像区域的相关性,从而自适应地从图像中提取纹理、颜色等语义信息,对初始边界框进行 refinement(精细化)。
这种“先激光雷达,后融合”的序列化设计,带来了一个巨大的优势:鲁棒性。即使在图像信号完全失效(如相机被遮挡)的极端情况下,第一层解码器仍然可以基于激光雷达给出一个可用的检测结果。模型不会因为一个模态的缺失而完全崩溃。
2.2 目标查询的智能初始化:从随机到“心中有数”
在原始的DETR等Transformer检测模型中,目标查询是一组随机初始化或可学习的参数,与输入内容无关。这导致模型需要多个解码器层来慢慢学习将查询“移动”到真实物体中心,计算开销大且收敛慢。
TransFusion 对此做了两项关键改进,使得查询初始化变得“输入依赖”且“类别感知”,极大提升了效率。
输入依赖(Input-dependent)初始化:模型首先从激光雷达BEV特征图上预测一个类别特定的中心热图(Class-specific Center Heatmap)。这个热图上每个位置的值,代表了该处存在某类物体中心的可能性。然后,算法并非简单地选取热值最高的前N个点,而是采用了非极大值抑制(NMS) 的思路,寻找热图上的局部极大值点。这避免了在同一个物体中心附近产生大量重复的查询。最后,选取这些局部极大值中得分最高的N个位置,用该位置的特征来初始化对应的目标查询。这样一来,初始查询就已经大致位于潜在物体的中心附近,为后续解码提供了极佳的起点。
# 伪代码示意:输入依赖的查询初始化核心步骤
def input_dependent_query_init(lidar_bev_feature):
# 1. 预测中心热图: [Batch, Height, Width, Num_Classes]
heatmap = predict_heatmap(lidar_bev_feat)
# 2. 寻找局部极大值 (抑制过于密集的候选)
local_max_mask = find_local_maxima(heatmap)
# 3. 筛选Top-N候选,并获取其位置和特征
top_n_positions, top_n_features = select_top_n_candidates(heatmap, local_max_mask, N)
# 4. 用位置和特征初始化目标查询
object_queries = initialize_queries(top_n_positions, top_n_features)
return object_queries
类别感知(Category-aware)嵌入:在初始化查询特征时,TransFusion 还为每个查询注入了一个类别嵌入(Category Embedding)。这个嵌入来源于该查询对应热图位置预测的类别(如汽车、行人、自行车)的one-hot向量,经过一个线性投影得到。这样做的好处是双重的:
- 在解码器的自注意力机制中,类别嵌入可以作为辅助信息,帮助模型更好地建模不同物体查询之间的关系(例如,两辆汽车之间的关系可能不同于一辆汽车和一个行人的关系)。
- 在最终的边界框属性(如尺寸、方向)预测时,类别先验知识能让网络更专注于学习同类物体内部的方差,提升回归精度。
2.3 空间调制交叉注意力(SMCA):给注意力戴上“聚焦镜”
第二层解码器是实现软关联的核心。这里,目标查询需要与整个图像特征图进行交叉注意力计算。然而,图像特征图空间庞大,如果让每个查询漫无目的地关注所有图像位置,不仅计算量大,而且容易让查询被无关的背景信息干扰,学习效率低下。
TransFusion 引入了 空间调制交叉注意力(Spatially Modulated Cross-Attention, SMCA) 机制来解决这个问题。其思想非常直观:既然第一层解码器已经给出了一个初步的3D边界框预测,我们可以利用这个预测,结合相机标定,将边界框投影到2D图像平面上,得到一个大概的2D区域。我们有理由相信,对这个3D物体最有用的图像信息,很可能就分布在这个投影区域附近。
SMCA 的具体做法是,以投影的2D框中心为圆心,以其外接圆半径为参考,生成一个2D圆形高斯权重掩码。这个掩码在中心处权重最高,向边缘逐渐衰减。在计算交叉注意力时,将这个高斯掩码与原始的注意力权重图进行逐元素相乘。
# 伪代码示意:SMCA的核心思想
def smca_cross_attention(object_query, image_features, initial_bbox):
# 1. 将初始3D边界框投影到2D图像平面,得到中心(cx, cy)和半径r
projected_center_2d, radius = project_3d_to_2d(initial_bbox, calibration_matrix)
# 2. 生成以(cx, cy)为中心的高斯权重掩码
gaussian_mask = create_2d_gaussian_mask(image_height, image_width, projected_center_2d, radius)
# 3. 计算标准的交叉注意力权重
raw_attention_weights = compute_cross_attention(object_query, image_features)
# 4. 用高斯掩码调制注意力权重,使查询更关注相关区域
modulated_attention_weights = raw_attention_weights * gaussian_mask
# 5. 使用调制后的权重对图像特征进行加权求和
fused_feature = weighted_sum(image_features, modulated_attention_weights)
return fused_feature
这一操作相当于给模型的“注意力”戴上了一个聚焦镜,引导它优先关注与当前物体最相关的图像区域。如图3的可视化所示,经过SMCA调制后,目标查询的注意力会高度集中在物体本身(如车辆、行人)上,而忽略掉无关的背景。这不仅加速了训练收敛,也显著提升了融合的精度和鲁棒性。
2.4 图像引导的查询初始化:弥补激光雷达的“视力盲区”
尽管输入依赖的初始化已经很有效,但它完全依赖于激光雷达BEV特征。对于一些在点云中极其稀疏甚至完全缺失的小型或遥远物体(比如远处的交通标志、摩托车手),激光雷达可能无法提供足够强的信号来在热图中形成响应,导致查询初始化阶段就直接漏检。
为了应对这一挑战,TransFusion 提出了一个可选的 图像引导的查询初始化(Image-Guided Query Initialization) 模块。其思路是将高分辨率的图像特征也“翻译”到BEV空间,与激光雷达BEV特征融合,共同预测热图。
具体而言,模型首先将多视角的图像特征沿高度维度进行“折叠”(Collapsing),得到一个压缩后的特征序列。这个操作基于一个观察:在自动驾驶的前视相机视角下,沿着图像列的垂直方向,通常最多只有一个物体。折叠大幅减少了计算量。然后,以激光雷达BEV特征作为查询(Query),压缩后的图像特征作为键和值(Key/Value),通过一个交叉注意力层,生成一个融合了图像语义信息的BEV特征图。最后,将这个融合特征图预测的热图,与纯激光雷达预测的热图进行平均,得到最终用于初始化查询的热图。
这个策略巧妙地将图像识别小物体的优势,提前注入到查询初始化阶段,从源头提升了系统对困难目标的召回率。
3. 实战评估:在nuScenes黑夜与Waymo上的性能突破
理论再优美,也需要在残酷的真实数据集中接受检验。TransFusion 在自动驾驶领域两个最具权威性的大规模数据集——nuScenes和Waymo Open Dataset上进行了全面评估,其表现堪称惊艳。
3.1 nuScenes数据集:全面领先,夜间优势显著
nuScenes数据集以其丰富的传感器配置(1颗激光雷达,6颗相机)和极具挑战性的城市场景著称。评价指标主要采用平均精度(mAP) 和综合了mAP、位置、尺寸、方向、属性等多种误差的 nuScenes检测得分(NDS)。
表1展示了TransFusion在nuScenes测试集上的结果(节选核心对比):
| 方法 | 模态 | mAP (%) | NDS (%) | 备注 |
|---|---|---|---|---|
| CenterPoint (2021) | LiDAR only | 58.0 | 66.8 | 强大的纯激光雷达基线 |
| TransFusion-L | LiDAR only | 63.2 | 69.7 | 本文的纯激光雷达版本 |
| PointPainting | LiDAR+Camera | 58.1 | 66.7 | 经典点级融合 |
| MVP (2022) | LiDAR+Camera | 62.4 | 68.0 | 同期多模态方法 |
| TransFusion | LiDAR+Camera | 66.6 | 71.2 | 本文完整模型 |
| FusionPainting (Ensemble) | LiDAR+Camera | 67.1 | 71.2 | 集成方法,使用额外数据 |
从表中可以得出几个关键结论:
- 纯激光雷达版本(TransFusion-L)已足够强大:即使不使用任何图像信息,仅凭其新颖的Transformer解码器头和智能查询初始化,TransFusion-L 的mAP就比之前的SOTA纯激光雷达方法CenterPoint高出5.2%,NDS高出2.9%。这证明了其基础架构的优越性。
- 融合带来显著增益:加入相机信息后,完整版TransFusion在TransFusion-L的基础上,mAP再次提升3.4%,NDS提升1.5%,达到了66.6%的mAP和71.2%的NDS。
- 登顶非集成方法:在nuScenes检测排行榜上,TransFusion超越了所有非集成(即单一模型)的方法,包括一些使用了更复杂数据增强或训练技巧的模型。其性能与使用了集成技术和额外数据的FusionPainting相当。
针对恶劣光照的专项分析:为了验证其鲁棒性,作者将nuScenes验证集按场景描述分为“白天”和“黑夜”两个子集进行测试。结果发现,TransFusion在夜间场景的性能提升(相比纯激光雷达基线)要显著高于白天场景。而像PointPainting这类硬关联方法,在夜间的提升则非常有限,甚至可能因为图像噪声而产生负面效果。这直接印证了软关联机制在图像质量退化时的巨大优势。
3.2 Waymo Open Dataset:验证泛化能力
Waymo数据集以数据规模大、点云密度高著称。在这里,TransFusion同样展示了竞争力。虽然由于Waymo点云本身非常密集,纯激光雷达基线已经很强,图像带来的相对提升不如在nuScenes上那么巨大,但融合版本在行人和骑行者这两个类别上依然带来了显著的性能改善(mAPH分别提升约0.3倍和1.5倍)。这表明TransFusion的融合策略对于不同数据分布具有良好的泛化能力。
3.3 消融实验:每个组件都不可或缺
通过系统的消融实验,论文验证了各个设计模块的有效性:
- 移除类别感知嵌入:导致mAP下降约0.9%,说明类别先验信息对精确定位和分类有帮助。
- 移除输入依赖初始化,改用随机初始化:需要更多的解码器层(如6层)才能达到相近性能,且最终效果仍略有下降,证明了智能初始化的效率与有效性。
- 将SMCA替换为标准的全局交叉注意力:mAP下降约1.5%,且训练收敛更慢,凸显了空间调制引导的重要性。
- 移除图像引导的查询初始化:在“骑行者”等小物体类别上的召回率有明显下降,证明了该模块对于检测困难目标的价值。
4. 从实验室到路测:工程实践中的关键考量与调优策略
将TransFusion这样的前沿研究落地到实际的自动驾驶系统中,算法工程师们还需要跨越一系列工程鸿沟。以下是一些基于论文思想延伸出的实战经验和考量。
4.1 数据流水线与传感器同步
软关联降低了对标定精度的极端依赖,但绝不意味着我们可以忽视传感器标定与同步。一个稳定可靠的数据基础仍然是高性能的起点。
- 离线标定与在线标定:除了出厂时的高精度离线标定,建议部署在线标定模块,能够实时估计并补偿因温度、震动引起的微小外参变化。即使TransFusion能容忍一定误差,好的初始对齐也能减少模型需要学习的纠偏负担。
- 时间戳对齐与运动补偿:确保激光雷达扫描周期与相机曝光时刻尽可能同步。对于无法硬件同步的系统,需要通过插值等方式进行软件层面的时间对齐,并对点云进行运动补偿,以消除车辆自身运动带来的畸变。
- 图像预处理:虽然TransFusion对图像质量退化有鲁棒性,但适当的预处理(如自动白平衡、HDR、去雾)可以进一步提升图像特征的可靠性,尤其是在极端光照下。
4.2 模型部署与推理优化
TransFusion的双解码器结构,尤其是第二层与高分辨率图像特征的交叉注意力,会带来一定的计算开销。在车载嵌入式平台(如NVIDIA Orin, Qualcomm Ride)上部署时,优化至关重要。
- 图像特征分辨率与编码:可以探索使用更轻量级的图像骨干网络(如EfficientNet, MobileNet变种),或降低输入图像的分辨率。同时,研究如何对图像特征进行更高效的编码,以减少后续交叉注意力中Key/Value序列的长度。
- 注意力机制优化:SMCA中的高斯掩码生成是轻量级的。可以进一步研究使用线性注意力(Linear Attention) 或稀疏注意力(Sparse Attention) 来替代标准的Softmax注意力,以降低计算复杂度,使其更适合处理高分辨率的图像特征图。
- 量化与编译:利用TensorRT、TVM等工具对训练好的PyTorch模型进行FP16或INT8量化,并结合平台特定的算子优化,能大幅提升推理速度。需要特别注意Transformer中LayerNorm、Softmax等算子的量化友好性。
4.3 针对特定场景的微调与增强
尽管在nuScenes和Waymo上表现优异,但每个自动驾驶公司的运营区域(ODD)都有其独特性。为了让TransFusion在特定场景下发挥最佳性能,可以考虑以下策略:
- 困难场景数据挖掘与重训练:主动收集公司测试车队在夜间、雨天、隧道、强逆光等 corner cases 下的数据。对这些数据进行分析,针对其中模型表现不佳的案例(如漏检的远距离小物体、误检的阴影区域),进行有针对性的数据增强和模型微调。
- 融合权重的动态置信度:可以设计一个简单的子网络,根据当前图像的整体质量(如亮度、对比度、模糊度)或传感器置信度,动态调整第二层解码器融合特征的权重。在图像质量极差时,可以适当降低其权重,让模型更依赖激光雷达。
- 多任务学习:尝试将TransFusion的检测头与一些辅助任务(如可行驶区域分割、车道线检测)进行联合训练。这些任务共享图像和激光雷达特征提取器,可能通过多任务的正则化效应,提升主干网络特征的表征能力,从而间接提升检测性能。
在我参与的一个城市Robotaxi项目中,团队最初采用的就是传统的点级融合方案。在晴朗的白天,其性能无可挑剔。但一到黄昏时分,系统对远处行人的检测就开始变得不稳定,虚警和漏检时有发生。在引入了基于Transformer的软关联思想(并非直接照搬TransFusion,而是受其启发自研的架构)后,最直观的感受是系统表现变得更加“平滑”和“稳定”。它不再会在图像突然过曝或欠曝时产生剧烈的检测结果抖动,而是以一种更“深思熟虑”的方式,综合两种传感器的信息。调试日志显示,在低光照条件下,模型分配给图像特征的注意力权重会自动降低,同时更加聚焦于激光雷达点云中那些高置信度的结构信息。这种自适应能力,正是将实验室指标转化为路上可靠性的关键。
TransFusion 的成功,其意义远不止于在某个榜单上提高几个百分点。它标志着多模态感知从“几何拼接”走向“智能关联”的范式转变。它告诉我们,融合不是简单的1+1,而是要让模型学会在不确定的环境中,自主地判断该相信谁、该关注哪里。随着Transformer等序列建模工具在自动驾驶领域的深入应用,我们有理由期待,未来的感知系统将更加理解场景的上下文,更像一个“老司机”那样,综合利用眼睛(相机)和触觉(激光雷达)去理解这个复杂而多变的世界。这条路还很长,但TransFusion无疑为我们点亮了一盏重要的指路灯。
281



被折叠的 条评论
为什么被折叠?



