摄像头噪声 0.45 米、雷达 0.12 米(但 6% 是多径离群)。 只用雷达 RMSE 0.715 米,比只用摄像头的 0.452 还差。 逆方差加权算出来 0.668 米,比等权平均的 0.420 更差——因为噪声模型被那 6% 破坏了。 加一道门限回退到预测,降到 0.156 米。
10.2 讲的是交通管理,这一节进到车本身。智驾的第一层是感知:先得知道旁边有什么、在哪儿。
一、融合不是求平均
车上装多种传感器:摄像头看得懂颜色和形状,雷达测得准距离和速度。 两者的误差结构完全不同,所以「合起来用」比「用一个」准。 最直觉的融合是平均:(摄像头 + 雷达) ÷ 2。再进一步是按精度加权: 准的那个权重大,粗糙的那个权重小。 这个权重用噪声方差的倒数,是理论上最优的(逆方差加权)。 但「理论上最优」有个前提:每路的噪声都是零均值高斯。 这个前提一旦破了,最优公式会变成最差方案之一。这一节就是看这件事怎么发生的。 还有一个常被忽略的第三路:上一帧的预测。它不属于任何传感器, 但在两路打架的时候,它是最有判断力的那个。
二、单雷达为什么输给摄像头
| 方案 | 参数 | RMSE |
|---|---|---|
| 只用摄像头 | σ=0.45 | 0.452 米 |
| 只用雷达 | σ=0.12,6% 离群 | 0.715 米 |
| 只用上一帧预测 | σ=0.25 | 0.252 米 |
| 等权平均 | — | 0.420 米 |
| 逆方差加权 | — | 0.668 米 |
| 加权 + 门限回退 | — | 0.156 米 |
| 只用雷达 0.715 米,比只用摄像头的 0.452 米还差。 | ||
| 可是雷达的噪声只有 0.12 米——问题出在那 6% 的多径离群值上。 | ||
| 一个偏 3 米的点,平方之后是 9。均方误差里,一个离群值要几十个精确点才平得回来。 | ||
| 这就是 RMSE 的脾气:它对极端值极其敏感。 | ||
| 只用上一帧预测 0.252 米,居然比两个传感器都好。这听起来反常,但它说明一件事: | ||
| 当传感器都有问题时,「什么都没测、只靠惯性推」反而是个不差的基线。 |
三、逆方差加权为什么翻车
等权平均 0.420 米,逆方差加权 0.668 米。 加权公式把 93% 的权重给了雷达,于是离群值也按 93% 的力度被吃进来。 加权公式没错,是噪声模型错了。公式假设「雷达的误差是 0.12 米的高斯噪声」, 而实际还叠了 6% 的、偏 3 米的粗差。 这一条在工程上非常常见:任何「按理论最优配权」的方案,在噪声分布有重尾的时候都会翻车。 重尾来自多径、反光、遮挡、故障——它们不是高斯。 所以「最优」这个词必须带前提。不知道噪声分布的时候, 等权平均反而更稳——它至少不会被某一路的粗差带跑。
四、门限 + 回退到预测
修法不是在权重上下功夫,是先判断这一帧的两路能不能一起用。规则很土: 两路相差超过 1 米,就不要任何一路,改用上一帧预测。 结果 0.156 米,比所有方案都好,而且比雷达单独的 0.715 好了一个数量级。 为什么回退到预测,而不是「选一路」?因为两路打架时,你并不知道谁错。选一路有一半概率选错, 而预测值是独立的第三意见,不偏向任何一方。 这也是跟踪器真正的作用。很多人以为卡尔曼滤波是用来「平滑轨迹」的, 其实它最关键的贡献是这个:在两路矛盾的瞬间,还有第三个参考。 工程上的完整顺序就是:先剔除粗差,再融合,最后平滑。 顺序反了,剔粗差那一步就没法做——因为平滑后的值已经混进了粗差。
五、落地:四层
① 每路都要有健康度。 不是「通/断」二值,而是实时的噪声估计(用连续帧的残差算)。 健康度掉了就自动降权,不用等人发现。 ② 粗差要单独处理,不要混进融合。门限、鲁棒损失(Huber)、RANSAC,任选一种。 关键是「先判后融」,不要「边融边判」。 ③ 融合之后要有一致性检查。融合值离预测值太远时,宁可不信融合结果。 这一条能挡住「所有传感器一起错」的共模故障。 ④ 记录原始数据。 出了事故要能回放每一路的原始输出,而不是只有融合后的结果。 这是责任划分的唯一依据。 最后一句:融合的上限由「最差的那一路」决定,不是由最好的那一路决定。所以多装一个传感器之前, 先想清楚它的失效模式。
六、动手 Demo:感知融合:加权后 0.67 米,反而比等权 0.42 米更差;加门限才到 0.16 米
造 3000 个目标真值,摄像头加 σ=0.45 米的高斯噪声,雷达加 σ=0.12 米噪声、 并随机让其中 6% 再叠一次 σ=3 米的多径误差;另造一个 σ=0.25 米的「上一帧预测」值。 比较只用单路、等权平均、逆方差加权、以及「两路相差超 1 米就回退预测」的 RMSE。
cam = x + rg.normal(0.0, 0.45, n)
radar = x + rg.normal(0.0, 0.12, n)
idx = rg.random(n) < 0.06 # 6% 多径
radar[idx] += rg.normal(0.0, 3.0, idx.sum())
pred = x + rg.normal(0.0, 0.25, n)
w1, w2 = 1.0 / 0.45 ** 2, 1.0 / 0.12 ** 2
wavg = (w1 * cam + w2 * radar) / (w1 + w2) # 逆方差加权
gap = np.abs(cam - radar)
mix = np.where(gap > 1.0, pred, wavg) # 门限 + 回退
实跑输出:
--------------------------------------------------------------------
感知融合:加权后 0.67 米,反而比等权 0.42 米更差;加门限才到 0.16 米
--------------------------------------------------------------------
目标数 3000
摄像头噪声 σ = 0.45 米
雷达噪声 σ = 0.12 米,另加 6% 多径离群
门限 两路相差超 1.0 米就改用上一帧预测
方案 参数 RMSE(米)
-------------------------------------------
只用摄像头 0.45 0.452
只用雷达 0.12(6% 离群) 0.715
只用上一帧预测 0.25 0.252
等权平均 — 0.420
逆方差加权 — 0.668
加权 + 门限回退 — 0.156
**只用雷达 0.71 米,比只用摄像头 0.45 米还差。**
**雷达本身准得多(0.12 对 0.45),是那 6% 的离群值把整体拖垮了。**
**一个偏 3 米的点,平方之后是 9;要几十个精确的点才平得回来。**
等权平均 **0.42 米**——比两路单独用都好,**因为误差方向不同,平均时互相抵消了。**
**逆方差加权反而更差(0.67 米)**,这是本节最反直觉的一行。
**加权公式假设「每路噪声都是零均值高斯」——而这个前提被那 6% 破坏了。**
**权重给了雷达 0.93,等于把离群值按 93% 的力度吃进来。**
**公式没错,是噪声模型错了。这是「按理论最优配权」最典型的翻车方式。**
加一道门限:两路差超过 1 米就**不用任何一路**,改用上一帧预测(0.25 米)→
**掉到 0.16 米,比所有方案都好。**
为什么回退到预测而不是选一路?**因为两路打架时,你并不知道谁错。**预测值是独立的第二意见。
**这也是跟踪器真正的作用:不是「平滑」,是「在两路矛盾的瞬间还有第三个参考」。**
要说明:这里的离群是「加 3 米高斯噪声」模拟的多径,
**真实多径成片出现(隧道、金属护栏旁),不是独立随机。**实际要按路段统计,不能假设 6% 均匀分布。
表里有两行反直觉:单雷达比单摄像头差,加权比等权差。 两个「反直觉」来自同一个原因:那 6% 的粗差。 等权平均 0.420 米这件事值得单独说一句——它比两路单独用都好, 因为误差方向不同,平均时互相抵消了。 这就是多传感器的原始价值:不需要任何模型,平均就有效。 加权 0.668 米是这一节的核心。 它证明「理论最优」在噪声模型错的时候会变成次优。 所以不要一上来就调权重,先看看噪声是不是高斯的。 门限回退 0.156 米——比雷达单独的 0.715 好了一个数量级。 关键在于「两路打架就都不信」,而不是「挑一个信」。 要说明:真值、噪声、离群比例都是我设的, 而且离群是独立随机的;真实多径成片出现(隧道、金属护栏旁),不是均匀分布。 所以实际标定要按路段统计,不能直接套这里的 6%。
30 秒实验
- 把离群比例从 6% 降到 1%,看逆方差加权那一行。 会降到 0.15 米左右——粗差少了,理论上最优就真的最优了。
- 把门限从 1.0 米改成 0.3 米(更严),看回退那一行。 会变差:太多正常帧被误判成「打架」,全都回退到预测。
- 把预测的噪声从 0.25 米加到 0.5 米,看重算的回退结果。 会变差到 0.3 米上下——回退的兜底也是有质量要求的。
常见误区
- 「多传感器一定比单个准」。雷达被 6% 粗差拖到 0.715 米,比摄像头单用还差。
- 「按噪声方差加权是理论最优」。前提是高斯,有粗差时它反而最差。
- 「两路不一致就选更可靠的那一路」。你并不知道谁错,回退到独立的预测值更稳。
自测三问(点开对答案)
1. 为什么噪声更小的雷达反而比摄像头差? —— 因为 6% 的样本叠加了 3 米量级的多径粗差。RMSE 对极端值敏感,少数粗差就能主导整体误差。 2. 逆方差加权为什么在这组数据上翻车? —— 它假设每路噪声是零均值高斯。粗差破坏了这个前提,而它把 93% 的权重给了雷达,等于把粗差放大。 3. 为什么门限触发后回退到预测,而不是选一路? —— 两路冲突时无法判断谁错,选一路有一半概率选错。预测值是独立的第三意见,不偏袒任何一方。感知给出「周围有什么」,接下来是「那我该怎么办」。下一节看跟车这一个动作背后有多少取舍。
- ☐ (本节完,下一节 10.3.2 决策规划突破)