公司动态

自动驾驶多传感器后融合:从核心原理到工程实践

📅 2026/8/2 10:28:07
自动驾驶多传感器后融合:从核心原理到工程实践
1. 项目概述从“各说各话”到“统一决策”在自动驾驶或者高级辅助驾驶系统的开发中我们常常会面对一个核心矛盾单个传感器的能力是有限的且各有短板。摄像头看得清但怕恶劣天气毫米波雷达测距准但“看”不清轮廓激光雷达点云精细但成本高昂且同样受天气影响。如果每个传感器都独立输出一个对周围环境的理解比如目标列表然后交给决策规划模块去处理决策模块就会陷入“信息过载”和“信息冲突”的困境。它需要像一个焦头烂额的裁判同时听取多个证词矛盾、表述不一的证人陈述然后自己费力地去判断谁说的是真的哪些信息可以合并。“多传感器融合算法-后融合”要解决的正是这个“裁判难题”。它不是一个具体的算法而是一套处理框架和策略。简单来说后融合就是在各个传感器已经独立完成了目标检测、识别、跟踪生成了各自的目标列表我们称之为“目标级”数据之后再将这些列表进行对齐、关联、合并最终输出一个统一的、更可靠的目标列表给下游模块。这就像各个传感器先各自写了一份“调查报告”后融合模块则是一个高级分析师负责对比、交叉验证这几份报告剔除矛盾、合并重复、补全信息最终形成一份权威的“综合研判报告”。为什么后融合如此重要因为它直接决定了系统感知结果的“一致性”和“可信度”。一个错误或混乱的融合结果轻则导致车辆不必要的刹车或颠簸影响体验重则可能引发误判造成安全隐患。因此后融合模块的设计是连接“感知”与“决策”的关键桥梁其稳定性和准确性是整个系统可靠性的基石。无论你是算法工程师、系统工程师还是对自动驾驶技术原理感兴趣的学习者理解后融合的核心逻辑和实现细节都是深入这个领域不可或缺的一课。2. 后融合的核心逻辑与方案选型后融合顾名思义是“后期”进行的融合。与之相对的是“前融合”或特征级融合和“数据级融合”。为了更清晰地理解后融合的定位我们可以用一个简单的类比想象我们要用不同的工具传感器来了解一个房间里的物体。数据级融合相当于我们把摄像头拍到的原始像素流、雷达的原始回波信号、激光雷达的原始点云直接混在一起试图从这一大锅“原始数据汤”里直接识别出物体。这非常困难因为数据格式、坐标系、信息密度完全不同就像把中文报纸、英文广播和摩斯电码混在一起听。特征级融合相当于每个传感器先自己做一些初步处理比如摄像头提取出物体的边缘和纹理特征雷达提取出物体的距离和多普勒特征激光雷达提取出物体的三维轮廓特征然后把这些“特征向量”送到一个共同的神经网络里去判断这是什么物体。这要求传感器数据在时间和空间上高度同步且需要一个强大的、能处理多模态特征的模型。目标级融合后融合则是每个传感器独立工作摄像头报告“2点钟方向10米处有一个‘行人’置信度85%”毫米波雷达报告“2点钟方向9.8米处有一个‘点目标’速度1.5m/s”激光雷达报告“2点钟方向10.2米处有一个‘圆柱状簇群’高度约1.7米”。后融合模块的工作就是判断这三个报告是不是指向同一个真实物体如果是就合并成一个更丰富的目标报告“2点钟方向10米处有一个‘静止的行人’置信度95%速度0.2m/s高度1.7米”。后融合方案之所以在工业界尤其是车规级量产项目中广泛应用主要基于以下几点考量模块化与解耦各个感知算法视觉检测、雷达跟踪、激光雷达聚类可以独立开发、测试和迭代。视觉团队可以专注于提升检测精度雷达团队可以优化跟踪稳定性彼此之间通过定义清晰的接口目标列表进行交互降低了系统复杂度。容错性与鲁棒性某个传感器暂时失效或性能下降如摄像头被强光致盲其他传感器仍然可以提供目标信息后融合模块可以基于可用信息进行输出系统不会完全崩溃。对硬件同步要求相对宽松虽然精确的时间同步有利于融合效果但后融合处理的是目标级数据本身带有时间戳可以通过算法进行一定程度的时间对齐补偿对硬件的严格同步要求低于前融合。可解释性强整个融合过程从数据关联到状态估计每一步都有明确的数学和逻辑模型支撑便于调试、分析和问题溯源。当出现融合错误时工程师可以清晰地追踪是哪个传感器的哪个目标在哪个关联环节出了问题。基于“协同车辆信息”的热点方向现代的后融合方案越来越强调利用自车状态如车速、横摆角速度、方向盘转角来作为融合过程的“上下文”或“先验知识”这能极大提升关联和跟踪的准确性我们会在后续章节详细展开。3. 后融合算法核心流程拆解一个典型的后融合算法流程可以分解为四个核心步骤它们像流水线一样依次工作。理解每一步的目的和挑战是掌握后融合的关键。3.1 时空对齐为对话建立共同语言不同传感器安装在车辆的不同位置前保险杠、挡风玻璃后、车顶它们的坐标系不同传感器坐标系。同时由于数据处理耗时不同它们上报目标信息的时间戳也可能有微小差异。直接比较这些目标是没有意义的。空间对齐坐标转换这是基础中的基础。所有传感器的目标位置必须统一转换到同一个参考坐标系下通常是车辆后轴中心的“车辆坐标系”或“大地坐标系”。这需要精确的传感器外参安装位置和姿态角。例如一个位于车辆左前方的毫米波雷达检测到一个目标它的坐标(x_radar, y_radar)需要经过一个固定的旋转平移矩阵变换才能得到在车辆坐标系下的坐标(x_vehicle, y_vehicle)。注意外参标定的准确性直接决定融合性能下限。标定误差会导致来自不同传感器的同一个真实目标在融合坐标系下出现固定的位置偏差给后续的数据关联带来巨大困难甚至无法关联。量产项目中外参的在线标定或自适应校准是一个重要课题。时间对齐运动补偿由于处理延迟摄像头t时刻看到的画面可能对应雷达t-50ms时刻的数据。如果车辆正在运动直接比较这两个时刻的目标位置会产生误差。因此需要根据自车的运动信息通过IMU或轮速计估计出的速度、角速度将较早时刻的目标位置预测补偿到较晚的时刻的坐标系下。例如把雷达在t-50ms报告的目标位置根据这50ms内车辆的运动推算到t时刻它应该在什么位置再与摄像头t时刻的目标进行比较。3.2 数据关联寻找“谁和谁是同一个”这是后融合中最核心、也最具挑战性的环节。我们需要判断来自不同传感器列表的两个目标观测是否源于同一个真实物体。常用的方法有最近邻关联最简单直接。为传感器A的某个目标在传感器B的所有目标中寻找空间距离最近的一个如果距离小于某个阈值则认为关联成功。这种方法计算量小但在目标密集或交叉的场景下容易出错。联合概率数据关联更先进的方法。它考虑所有观测和目标之间的关联可能性计算一个关联概率矩阵。这种方法能更好地处理测量不确定性每个传感器的观测都不是绝对精确的和目标密集的场景但计算复杂度较高。基于匈牙利算法的全局最优关联将关联问题构建为一个二分图匹配问题目标是找到一种匹配方式使得所有匹配成功的“观测对”之间的总代价如距离加权和最小。匈牙利算法可以高效求解此问题。这里的“代价”通常是多维度的不仅包括位置距离还可以包括速度、目标类别、物理尺寸等。关联门限的设计是经验与理论的结合。门限太大会导致错误关联把两个不同的物体关联在一起门限太小会导致漏关联同一个物体的两个观测无法配对。通常门限会根据传感器的测量噪声协方差、自车运动的不确定性进行动态调整。3.3 状态估计与融合从多个观测中提炼真相成功关联后我们获得了对同一个真实物体的多个观测如来自相机的位置和类别来自雷达的位置和速度来自激光雷达的精确三维位置。状态估计的任务就是如何将这些信息有机地结合起来得到一个更优的、关于该物体状态位置、速度、加速度、类别属性等的估计。卡尔曼滤波器及其变种这是最经典、应用最广泛的状态估计器。KF线性、EKF非线性、UKF非线性的核心思想是“预测-更新”。滤波器维护一个对目标状态的估计均值和不确定性协方差矩阵。预测根据目标上一时刻的状态和运动模型如匀速模型CV匀加速模型CA预测它当前时刻应该处在什么状态同时预测的不确定性会因模型不精确而增大。更新当获得新的传感器观测时将预测状态与观测进行比较。卡尔曼滤波器会计算一个“卡尔曼增益”这个增益决定了我们应该在多大程度上相信新的观测。最终新的状态估计是预测值和观测值的一个加权平均权重由它们各自的不确定性决定。不确定性小的信息源如激光雷达的测距会获得更大的权重。互补融合对于非数值型或难以用统一动力学模型描述的信息如目标类别通常采用互补或投票策略。例如摄像头以85%置信度认为是“行人”激光雷达聚类形状也符合行人特征那么融合后的类别置信度可以提升到95%。如果摄像头说是“汽车”而雷达特征像“行人”则可能触发冲突处理机制或输出“未知”类别并附加低置信度标签。3.4 航迹管理目标的“生老病死”融合中心需要维护一个全局的“航迹列表”每个航迹代表一个被持续跟踪的真实物体。航迹管理负责航迹起始当连续多帧如3帧来自不同传感器的观测都能成功关联到一个新的、稳定的目标时便创建一条新航迹。这可以避免因单帧噪声产生的虚假目标。航迹更新对于已存在的航迹每当有关联上的新观测到来就调用状态估计器如卡尔曼滤波更新其状态。航迹预测在没有新观测的帧依然根据运动模型预测航迹状态并增大其不确定性等待下一次观测来更新。航迹消亡如果一条航迹连续多帧如5帧没有获得任何传感器的观测与之关联则认为该目标已离开感知区域或消失将其从航迹列表中删除。4. 协同车辆信息提升融合性能的“神助攻”这是当前后融合技术演进的一个重要方向。传统的融合主要关注传感器之间的横向信息交互而“协同车辆信息”指的是充分利用车辆自身的动态信息作为融合过程的强大先验知识。4.1 利用自车运动补偿传感器观测如前所述在时间对齐环节我们需要根据自车的速度v和横摆角速度ω即转弯的角速度对其他传感器的历史观测进行运动补偿。假设自车在Δt时间内以速度v前进并有一个小的横摆ω*Δt那么一个静止的路边目标在车辆坐标系下的位置变化完全是由自车运动引起的。精确的补偿能显著减少因车辆运动造成的关联误差。4.2 改善数据关联的逻辑自车状态可以为数据关联提供强有力的约束。例如相对运动一致性一个被雷达检测到具有较大径向速度的目标如果其速度方向与自车运动方向在几何上不一致那么它很可能不是一个静止物体如护栏而是一个动态物体。这可以帮助区分静止目标和低速动态目标。可通行区域约束结合高精地图或车道线信息可以大致判断哪些区域是车辆可能出现的车道内哪些区域是几乎不可能出现车辆的路外绿化带、对面车道。在数据关联时可以给位于可通行区域内的关联假设更高的权重或直接剔除明显不可能的关联。4.3 优化状态估计的运动模型卡尔曼滤波中的“预测”步骤依赖于运动模型。对于道路上的车辆、行人等目标其运动并非完全随机的。道路坐标系将目标状态从车辆坐标系转换到以车道为参考的“道路坐标系”Frenet坐标系。在这个坐标系下描述目标沿车道方向的位置s和横向偏移l。这样目标的运动模型可以变得更符合实际沿车道方向的运动可能更接近匀速或匀加速而横向运动则通常较小且变化缓慢。模型自适应可以根据目标类型和所处场景自适应选择运动模型。例如对车道内跟车的前车使用强约束的跟车模型对横穿马路的行人使用更灵活的机动模型。自车的意图如打转向灯也可以作为预测他车行为的参考。4.4 一个具体的协同融合方案示例假设我们融合相机和毫米波雷达的目标并利用自车CAN信号中的车速v_ego和横摆角速度ω_ego。输入相机目标{id_c1: (x_c1, y_c1), class: car, conf: 0.9}雷达目标{id_r1: (x_r1, y_r1, vx_r1, vy_r1)}自车状态v_ego, ω_ego上一帧融合航迹Track1: (x_f, y_f, vx_f, vy_f), covariance_P处理坐标转换将所有目标坐标转换到本车坐标系原点通常在后轴中心。时间补偿由于雷达处理通常比相机快假设雷达数据比相机早Δt0.03s。利用v_ego和ω_ego将雷达目标id_r1的位置(x_r1, y_r1)补偿到相机的时间戳上得到(x_r1_comp, y_r1_comp)。因为在这0.03秒内自车移动了静止目标在车坐标系下的“表现位置”发生了变化。数据关联计算补偿后的雷达目标(x_r1_comp, y_r1_comp)与相机目标(x_c1, y_c1)之间的马氏距离考虑各自的不确定性并与关联门限比较。同时检查目标的相对运动雷达测得的(vx_r1, vy_r1)减去自车运动(v_ego, 0)在目标方向上的分量得到目标相对于地面的绝对速度。如果这个绝对速度很小而相机又将其分类为‘car’则可能是一个静止车辆关联时应考虑这一点。状态更新关联成功后将相机的位置观测和雷达的速度观测共同输入到跟踪Track1的扩展卡尔曼滤波器中进行状态更新。滤波器会输出一个融合后的、更精确的位置和速度估计并更新其不确定性协方差P。输出更新后的Track1状态包含融合后的3D位置、速度、加速度、目标类别及高置信度。5. 工程实现中的挑战与调优心得理论清晰但工程落地坑多。以下是一些从实际项目中总结的关键点和避坑指南。5.1 传感器特性与不确定性建模不同传感器的误差特性天差地别不能用一个简单的“距离方差”来概括。摄像头误差主要在于测距。距离越远一个像素的误差代表的实际距离误差越大。其测距不确定性通常与距离的平方成正比。横向位置y方向精度通常高于纵向x方向。类别识别置信度需要合理转换为概率模型。毫米波雷达测距和测速非常精确误差基本是白噪声方差较小。但测角精度较差导致横向位置误差大且这个误差随距离增大而线性增大。此外雷达存在“鬼影”和“漏检”问题对静止目标检测能力也可能因算法过滤而变差。激光雷达三维点云位置精度高误差模型可近似为在各方向上独立的高斯噪声。但其反射强度受物体材质影响大且可能在雨雾天气下点云稀疏或丢失。在卡尔曼滤波中为每个传感器观测设置正确的测量噪声协方差矩阵R至关重要。一个过于乐观的R认为传感器非常准会导致滤波器过于相信新观测可能被单次野值带偏一个过于保守的R则会导致滤波器反应迟钝无法及时跟上目标的真实运动。5.2 关联冲突与决策逻辑当出现多个观测竞争一个航迹或一个观测可能与多个航迹关联时需要有清晰的决策逻辑。“一对多”与“多对一”使用全局最优关联算法如匈牙利算法是解决此问题的标准方法之一。它从全局角度寻找代价最小的匹配方案而不是贪婪地做局部最优选择。新目标与虚警的权衡航迹起始的门槛设置是门艺术。门槛太高如需要连续5帧关联会延迟对新出现目标的反应门槛太低又容易产生大量由噪声引起的短暂虚警航迹。通常采用“M/N”逻辑最近N帧中有M帧获得了关联观测则确认航迹。类别冲突处理当不同传感器对同一目标的分类不一致时如摄像头说是“卡车”激光雷达尺寸像“轿车”。常见的策略有信任主导传感器在特定场景下指定某个传感器为类别主仲裁器如近距离以视觉为主远距离以激光雷达形状为主。概率融合将各类别的置信度视为概率进行贝叶斯更新。输出“未知/待定”当冲突严重时不强行给出确定类别而是标记为低置信度或未知交由下游决策模块进行更保守的处理。5.3 延迟与异步处理各传感器数据到达融合模块的时间是异步的。雷达可能10Hz相机可能30Hz激光雷达可能20Hz。融合模块不能等到所有传感器数据都到齐了再处理那样会引入不可接受的延迟。异步融合架构融合模块以一个固定的高频率如50Hz或100Hz运行。每次运行时它取用当前时刻之前、每个传感器最新的那一帧数据。由于这些数据时间戳不同在融合前必须进行严格的时间对齐和运动补偿如3.1节所述。预测填补对于更新率较慢的传感器如雷达在它没有新数据到来的周期内融合航迹的状态更新依赖于其他传感器和运动模型的预测。当该传感器数据再次到来时再进行一次“延迟更新”修正这段时间内可能积累的预测误差。5.4 实测调优心得日志与可视化是生命线必须有一套强大的工具能够将原始传感器数据、各传感器独立目标、融合前后的航迹在同一时空坐标系下可视化出来。通过回放问题场景能快速定位是哪个传感器误检、漏检还是关联算法出错或是状态估计器参数不合理。分场景测试与评估不要只看整体指标。要将测试数据按场景切分高速跟车、城区拥堵、十字路口、cut-in加塞、cut-out驶离、夜间、雨雾等。后融合的弱点往往在特定场景下暴露如密集车流中的ID切换Identity Switch。参数不是玄学要有物理意义调整卡尔曼滤波的Q过程噪声和R测量噪声矩阵时要基于对传感器和运动模型误差的物理理解来设置初始值。Q矩阵反映了你对目标运动模型的不信任程度一个频繁变道超车的车辆其Q值应比一个匀速巡航的车辆大。关注“边缘”而非“中心”融合算法在目标稀疏、运动规律的情况下通常工作良好。真正的挑战在于边缘场景两个目标突然靠得很近然后分开关联能否正确维持一个目标被短暂遮挡后重现航迹能否正确接续静止目标首次进入视野能否快速稳定起始而不误判为噪声。测试和调优应重点针对这些边缘场景。