第1章:传感器噪声分析

各位同学好,我是老张。今天咱们聊聊传感器噪声这个老大难问题。

做自动驾驶感知这么多年,我最大的体会就是:噪声不是敌人,不懂噪声才是。你想想看,激光雷达、毫米波雷达、摄像头,这三个传感器各有各的脾气。摸透了它们的噪声特性,误报消除就成功了一半。

1.1 激光雷达点云噪声来源

激光雷达看着高大上,其实挺娇气的。我刚开始做感知时,总以为点云数据很干净。直到有一次,车停在路边,点云里突然冒出一堆「鬼影」——明明前面空荡荡的,却检测出障碍物。

后来排查才发现,是路边洒水车溅起的水雾在捣乱。

激光雷达的噪声,主要来自这几个方面:

  • 环境反射噪声:雨、雪、雾、灰尘,这些颗粒物会反射激光。说白了,就是激光打到了不该打的地方。
  • 多路径反射:激光打到光滑表面(比如玻璃、镜面),反弹好几次才回来。测距就偏了。
  • 运动畸变:车辆在运动,激光雷达也在转。一帧点云里,不同点的采集时间不同。车一颠簸,点云就变形。
  • 传感器自身噪声:接收器灵敏度波动、温度漂移。嗯,这个属于硬件底子问题。

避坑指南:我曾经在高速上遇到一个案例——点云里检测到「前方障碍物」,急刹车差点追尾。后来发现是路边的金属护栏反射了激光,产生了虚假点云。从那以后,我养成了一个习惯:对高反射率物体周围5米内的点云,必须做二次校验。

处理激光雷达噪声,我个人习惯用这几种方法:

  1. 统计滤波:计算每个点周围邻居的数量。孤立的点,大概率是噪声。
  2. 时间戳补偿:给每个点加上时间戳,做运动补偿。车动,点云也跟着动。
  3. 强度阈值:设置反射强度上下限。太强或太弱的点,直接扔掉。
// 统计滤波示例(伪代码)
for each point in point_cloud:
    neighbors = find_neighbors(point, radius=0.3m)
    if neighbors.count < 3:
        mark_as_noise(point)
    else:
        keep(point)

1.2 毫米波雷达多径反射

毫米波雷达有个特点:穿透性强,但容易「看花眼」。为什么?因为它发射的电磁波会反射、折射、绕射。遇到隧道、高架桥、大型金属物体,信号就乱套了。

我记得有一次做测试,雷达显示前方50米有个静止目标。结果车开过去,啥也没有。后来分析数据才发现,是旁边高架桥的金属护栏把信号反射到了地面,雷达以为地面有个障碍物。

这就是典型的多径反射——信号走了不止一条路。

场景 多径反射表现 误报特征
隧道内 墙壁多次反射 目标距离忽远忽近
高架桥下 桥面反射到地面 出现「幽灵」静止目标
大型金属广告牌 信号反弹到对面车道 对向车道出现虚假目标
雨天积水路面 水面反射 目标高度异常偏低

我的经验:处理多径反射,关键看两个维度——距离变化率和信噪比。多径反射的目标,距离变化率通常不稳定,信噪比也偏低。我一般会设置一个「置信度评分」,低于60分的直接过滤掉。

具体做法:

  • 多帧关联:连续3帧以上出现的目标才保留。偶尔闪现的,大概率是噪声。
  • 速度一致性检查:目标的速度变化不能太突兀。多径反射的目标,速度会跳变。
  • 高度滤波:毫米波雷达能测高度。如果目标高度低于路面或高于正常车辆,直接排除。

1.3 摄像头光照干扰

摄像头嘛,说白了就是个「电子眼」。人眼怕强光,它也怕。逆光、阴影、夜间灯光,都会让摄像头「看走眼」。

我印象最深的一次:傍晚时分,太阳刚好在车后方。摄像头把路面上的一滩水渍识别成了「车道线」,结果车辆开始偏离车道。还好我及时接管了。

摄像头光照干扰主要有这几种:

  1. 逆光/强光:传感器过曝,细节全丢。障碍物和背景融为一体。
  2. 阴影:树影、建筑阴影,会被误识别为障碍物边缘。
  3. 夜间灯光:对面车灯、路灯,会产生光晕和眩光。
  4. 反光:雨后路面反光,摄像头以为前面有水面或障碍物。

注意:摄像头噪声和激光雷达、毫米波雷达不同——它是语义级别的噪声。不是点云位置错了,而是识别结果错了。所以处理起来更麻烦,需要结合场景理解。

我常用的处理手段:

  • 自动曝光调整:根据场景亮度动态调整曝光时间。逆光时降低曝光,夜间提高增益。
  • 多帧融合:连续几帧图像做平均,减少单帧的噪声影响。
  • 语义先验:比如知道这个区域是天空,就不会把云朵识别成障碍物。
  • 传感器融合:摄像头说有障碍物?让激光雷达和毫米波雷达确认一下。三个传感器都同意,才相信。
// 光照干扰检测(伪代码)
def check_light_interference(image):
    brightness = calculate_average_brightness(image)
    if brightness > 200:  # 过曝
        apply_auto_exposure_correction()
        return True
    elif brightness < 30:  # 过暗
        apply_gain_boost()
        return True
    else:
        return False

1.4 知识体系总览

说了这么多,咱们用一张图来总结一下。这张图是我自己画的,把三种传感器的噪声来源和应对策略串在了一起。

传感器噪声分析知识体系 激光雷达 毫米波雷达 摄像头 噪声来源 • 环境反射(雨雾雪) • 多路径反射 • 运动畸变 • 传感器自身噪声 噪声来源 • 隧道内多次反射 • 高架桥下反射 • 金属广告牌反射 • 雨天积水反射 噪声来源 • 逆光/强光过曝 • 阴影误识别 • 夜间灯光眩光 • 路面反光 应对策略:统计滤波 · 多帧关联 · 自动曝光 · 传感器融合 核心思想 没有完美的传感器,只有懂噪声的工程师 多传感器融合 + 针对性滤波 = 可靠的障碍物检测

这张图把三种传感器的噪声来源和应对策略串在了一起。你仔细看看,会发现一个规律:单一传感器总有短板,融合才是王道。

好了,这一章就到这里。噪声分析是基础,但基础不牢,后面做误报消除就会很吃力。下一章咱们聊聊具体的滤波算法实现。

课后思考:如果你遇到一个场景——激光雷达和摄像头都检测到障碍物,但毫米波雷达没检测到。你会相信谁?为什么?

可可精品资料库