第1章:概率论与数理统计——随机变量与分布、贝叶斯公式与传感器融合、最大似然估计与卡尔曼滤波的数学渊源

大家好,欢迎来到《自动驾驶感知算法》的第一章。

说实话,每次开课讲到概率论,我都能看到一些同学眼神开始飘忽。觉得这是数学课,跟工程没关系?

嗯,我当年刚入行时也这么想。直到有一次,我在高速上调试激光雷达和相机的融合算法,发现两个传感器对同一个障碍物的位置估计差了半米多。那时候我才真正意识到——不懂概率,你连传感器该信谁都不知道。

这一章,我们就来聊聊概率论里那些跟自动驾驶最相关的核心概念。我会尽量用工程视角来讲,而不是纯数学推导。

1.1 随机变量与分布:传感器读数的“脾气”

先问一个问题:你拿一个激光雷达测距,同一个位置测100次,结果会完全一样吗?

不会。因为噪声无处不在。温度、震动、反射面材质……都会让读数上下波动。

这种波动的规律,就是随机变量和分布要描述的东西。

1.1.1 离散 vs 连续随机变量

  • 离散随机变量:取值是有限的、可数的。比如车道线检测中,检测到的车道线数量(0条、1条、2条……)。
  • 连续随机变量:取值是连续的、不可数的。比如毫米波雷达测得的距离(12.345米、12.346米……)。

我个人习惯,在工程中遇到“计数”类问题,先考虑离散分布;遇到“测量”类问题,先考虑连续分布。这个经验帮我省了不少试错时间。

1.1.2 常见的分布模型

分布名称 典型应用场景 关键参数
正态分布(高斯分布) 传感器噪声建模、卡尔曼滤波 均值μ,方差σ²
均匀分布 初始位置不确定、随机采样 最小值a,最大值b
泊松分布 单位时间内车辆到达数 平均发生率λ
伯努利分布 障碍物存在/不存在(二分类) 成功概率p

重点记住:在自动驾驶感知中,正态分布是绝对的主角。为什么?因为中心极限定理告诉我们,大量独立随机因素叠加的结果,都会趋近于正态分布。传感器噪声、定位误差……基本都是正态的。

1.2 贝叶斯公式与传感器融合:怎么“信”多个传感器?

好,现在你有了两个传感器:一个摄像头,一个激光雷达。摄像头说“前面有车”,激光雷达说“前面有障碍物”。你信谁?

这就是传感器融合要解决的问题。而它的数学基础,就是贝叶斯公式。

1.2.1 贝叶斯公式的核心思想

公式很简单:

P(A|B) = P(B|A) * P(A) / P(B)

翻译成人话:

  • P(A):先验概率。在没看到传感器数据之前,你对“前面有车”的相信程度。
  • P(B|A):似然。如果前面真的有车,传感器看到这个数据的概率有多大?
  • P(A|B):后验概率。看到传感器数据之后,你对“前面有车”的相信程度。

说白了,贝叶斯公式就是告诉你:用新的证据(传感器数据)来更新你原有的信念(先验)。

我的经验:我在做多传感器融合时,经常把贝叶斯公式当作“信任更新器”。每次收到一帧传感器数据,就更新一次对目标状态的信念。这样迭代下去,融合结果会越来越准。

1.2.2 传感器融合的贝叶斯视角

假设你有两个传感器,观测数据分别是Z1和Z2。你想知道目标状态X。

贝叶斯融合可以写成:

P(X | Z1, Z2) ∝ P(Z1 | X) * P(Z2 | X) * P(X)

这里假设两个传感器的观测是条件独立的(给定X,Z1和Z2不相关)。

这个公式告诉我们:

  • 每个传感器贡献一个“似然项”P(Zi | X)
  • 把这些似然项乘起来,再乘上先验,就得到融合后的后验
  • 哪个传感器更可靠(方差小),它的似然项就会“权重”更大

注意:条件独立假设在现实中不一定成立。比如摄像头和激光雷达都受雨雾影响,这时它们的误差会相关。我曾经踩过这个坑——在雨天场景下,直接乘似然项导致融合结果发散。后来我引入了相关性系数才解决。

1.3 最大似然估计与卡尔曼滤波的数学渊源

这一节,我们来揭开卡尔曼滤波的神秘面纱。很多人觉得卡尔曼滤波很难,其实它的核心思想就两个:预测 + 更新。而更新的数学基础,就是最大似然估计。

1.3.1 最大似然估计:找最可能的参数

最大似然估计(MLE)的思想很简单:给定观测数据,找一组参数,使得这组数据出现的概率最大。

举个例子:你测了10次距离,得到[10.1, 10.2, 9.9, 10.0, ...]。假设这些数据服从正态分布,那么均值的最大似然估计就是样本均值——10.0米。

公式形式:

θ_MLE = argmax_θ P(Data | θ)

1.3.2 卡尔曼滤波:递推的最大似然估计

卡尔曼滤波本质上是在做递推的最大似然估计。每一时刻,它做两件事:

  1. 预测:根据运动模型,预测当前状态(得到先验分布)
  2. 更新:用传感器观测数据,修正预测结果(得到后验分布)

更新这一步,就是在做最大似然估计——找到最可能的状态,使得观测数据出现的概率最大。

卡尔曼增益K,就是用来平衡“预测”和“观测”的权重:

K = 预测误差协方差 / (预测误差协方差 + 观测噪声协方差)

你看,如果预测很准(误差协方差小),K就小,更相信预测;如果观测很准(观测噪声协方差小),K就大,更相信观测。

一句话总结:卡尔曼滤波 = 贝叶斯公式(先验→后验) + 最大似然估计(找最优状态) + 递推(在线更新)。

1.4 本章小结与工程建议

  • 随机变量与分布:传感器噪声建模,首选正态分布。记住均值和方差这两个参数就够了。
  • 贝叶斯公式:传感器融合的数学基础。核心是用新数据更新旧信念。
  • 最大似然估计与卡尔曼滤波:卡尔曼滤波就是递推版的MLE。理解了这个渊源,你就能自己推导卡尔曼滤波公式,而不是死记硬背。

我的建议:初学者可以先在Python里实现一个一维的卡尔曼滤波(比如只估计距离),跑一遍数据,看看预测和更新是怎么交替进行的。代码不超过50行,但能帮你彻底理解原理。

好了,第一章就到这里。下一章我们会深入讲多维高斯分布扩展卡尔曼滤波(EKF)——那是处理非线性系统的利器。到时候我会分享一个我在高速上做车道线跟踪时遇到的真实案例,保证有意思。

公众号:蓝海资料掘金营,微信deep3321