第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 卡尔曼滤波:递推的最大似然估计
卡尔曼滤波本质上是在做递推的最大似然估计。每一时刻,它做两件事:
- 预测:根据运动模型,预测当前状态(得到先验分布)
- 更新:用传感器观测数据,修正预测结果(得到后验分布)
更新这一步,就是在做最大似然估计——找到最可能的状态,使得观测数据出现的概率最大。
卡尔曼增益K,就是用来平衡“预测”和“观测”的权重:
K = 预测误差协方差 / (预测误差协方差 + 观测噪声协方差)
你看,如果预测很准(误差协方差小),K就小,更相信预测;如果观测很准(观测噪声协方差小),K就大,更相信观测。
一句话总结:卡尔曼滤波 = 贝叶斯公式(先验→后验) + 最大似然估计(找最优状态) + 递推(在线更新)。
1.4 本章小结与工程建议
- 随机变量与分布:传感器噪声建模,首选正态分布。记住均值和方差这两个参数就够了。
- 贝叶斯公式:传感器融合的数学基础。核心是用新数据更新旧信念。
- 最大似然估计与卡尔曼滤波:卡尔曼滤波就是递推版的MLE。理解了这个渊源,你就能自己推导卡尔曼滤波公式,而不是死记硬背。
我的建议:初学者可以先在Python里实现一个一维的卡尔曼滤波(比如只估计距离),跑一遍数据,看看预测和更新是怎么交替进行的。代码不超过50行,但能帮你彻底理解原理。
好了,第一章就到这里。下一章我们会深入讲多维高斯分布和扩展卡尔曼滤波(EKF)——那是处理非线性系统的利器。到时候我会分享一个我在高速上做车道线跟踪时遇到的真实案例,保证有意思。
公众号:蓝海资料掘金营,微信deep3321