3. 传感器数据基础:激光雷达点云、毫米波雷达、摄像头数据特点与预处理

做轨迹预测,第一步不是建模型,而是先搞清楚传感器在说什么。

我见过不少团队,模型调得飞起,结果一上实车就崩。为什么?传感器数据没吃透。你想想看,如果输入的数据本身就是错的,后面再怎么预测也是白搭。今天我们就来聊聊三种主流传感器的脾气秉性,以及怎么伺候好它们。

3.1 激光雷达点云:高精度但稀疏

激光雷达,说白了就是拿激光束去扫周围环境。它返回的是一个个三维点,每个点包含(x, y, z)坐标,有的还带反射强度。

数据特点:

  • 精度高:测距误差通常在2cm以内,角分辨率0.1°左右
  • 稀疏性:64线激光雷达,10Hz频率下,一帧也就几十万个点。跟图像比,差远了
  • 无纹理:点云没有颜色信息,你分不清那是辆白车还是黑车
  • 近密远疏:越远的地方,点越稀疏。这是个头疼的问题

预处理流程:

  1. 直通滤波:先砍掉太远和太高的点。我个人习惯保留前方80米、高度-2m到4m的范围
  2. 体素滤波:把空间切成小立方体,每个立方体只保留一个中心点。这样能大幅降低数据量
  3. 地面去除:用RANSAC算法拟合地面平面,然后移除地面点。不然地面点会干扰障碍物检测
  4. 聚类:用DBSCAN或欧几里得聚类,把属于同一个物体的点归到一起

关键点:点云预处理的核心是「降采样+去噪」。别想着保留所有点,计算资源扛不住。

我的经验:体素滤波的格子大小很讲究。设太大,小物体会消失;设太小,数据量降不下来。我一般设0.2m,平衡效果和速度。

3.2 毫米波雷达:速度感知的王者

毫米波雷达跟激光雷达不一样。它不给你精细的形状,但能直接测出物体的径向速度。这一点,激光雷达做不到。

数据特点:

  • 直接测速:利用多普勒效应,直接输出目标的速度
  • 角度分辨率低:通常只有几度到十几度。两个物体靠太近,雷达分不清
  • 多径效应严重:信号会反射、折射,产生虚假目标
  • 穿透性强:雨雾天照样工作,这点比激光雷达和摄像头都强

预处理流程:

  1. CFAR检测:恒虚警率检测,从噪声中提取真实目标
  2. 多普勒解模糊:当目标速度超过雷达的测速范围时,会出现速度模糊。需要解算
  3. 目标跟踪:用卡尔曼滤波把单帧的点关联成连续轨迹
  4. 虚假目标过滤:根据目标的RCS(雷达散射截面)和历史轨迹,剔除明显不合理的点

避坑指南:我曾经遇到过一个问题——雷达在隧道里疯狂报目标。后来发现是隧道壁的多径反射导致的。解决办法是加入地图先验,把隧道区域的检测阈值调高。

3.3 摄像头:纹理丰富但缺深度

摄像头是唯一能提供颜色和纹理信息的传感器。但它有个致命弱点——单目摄像头没有深度信息。

数据特点:

  • 纹理丰富:能识别车道线、交通标志、行人姿态
  • 深度缺失:单目摄像头无法直接测距,需要靠几何关系推算
  • 光照敏感:逆光、夜间、雨雾天,效果大打折扣
  • 帧率高:通常30fps甚至更高,时序信息丰富

预处理流程:

  1. 去畸变:用相机内参和畸变系数,校正镜头畸变
  2. 图像增强:直方图均衡化、自适应亮度调整,应对光照变化
  3. 目标检测:用YOLO、Faster R-CNN等模型,检测出车辆、行人等
  4. 深度估计:如果是单目,用深度估计网络;如果是双目,用视差法

注意:摄像头检测到的目标,在图像坐标系下是准确的。但投影到世界坐标系时,深度误差会随着距离急剧放大。10米外的目标,深度误差可能达到1-2米。

3.4 三种传感器的对比与融合思路

三种传感器各有长短。我个人的做法是:用激光雷达做精确的位置和形状感知,用毫米波雷达做速度感知和全天候备份,用摄像头做语义识别和纹理补充。

特性 激光雷达 毫米波雷达 摄像头
测距精度 高(cm级) 中(dm级) 低(依赖算法)
测速能力 间接(帧间差分) 直接(多普勒) 间接(帧间差分)
角度分辨率 高 低 高
纹理信息 无 无 丰富
全天候能力 差(雨雾) 好 差(光照)
成本 高 低 低

融合的时候,我习惯用「松耦合」的方式:每个传感器独立做目标检测和跟踪,然后在目标层级做关联和融合。这样即使某个传感器挂了,系统还能降级运行。

我的经验:融合时最头疼的是时间同步。激光雷达10Hz,摄像头30Hz,雷达20Hz。我一般用插值法把数据对齐到同一个时间戳上。别小看这几十毫秒的偏差,高速场景下能差出好几米。

3.5 传感器数据预处理的核心流程

下面这张图,是我自己总结的传感器数据预处理流程。嗯,每次带新人我都会先让他们看这个。

传感器数据预处理核心流程 激光雷达点云 毫米波雷达 摄像头图像 直通滤波 体素滤波 地面去除+聚类 CFAR检测 多普勒解模糊 目标跟踪+过滤 去畸变 图像增强 目标检测+深度估计 时间同步与对齐 目标级融合输出 每个传感器独立预处理 → 时间对齐 → 目标级融合

这张图的核心逻辑是:每个传感器先各自做预处理,然后统一做时间同步,最后在目标层级做融合。别想着在原始数据层做融合,那会搞得你怀疑人生。

避坑指南:我曾经在项目里尝试过「原始数据融合」——把点云和图像像素直接拼在一起。结果呢?数据量爆炸,计算延迟飙升,效果还没好多少。后来老老实实改回目标级融合,世界清净了。

好了,传感器数据这块就聊到这儿。记住一句话:预处理做得好,预测模型事半功倍。下一章我们会聊到轨迹预测的核心算法,到时候这些预处理后的数据就要派上大用场了。