4、传感器标定基础:内参标定与外参标定、标定板与目标物、联合标定流程、标定精度评估

说到多传感器融合,标定这事儿,我敢说它是整个系统里最容易被忽视、但坑最多的环节。你想想看,激光雷达说障碍物在左边3米,摄像头说在右边2.8米,你信谁的?说白了,没有一套靠谱的标定流程,融合就是个笑话。

我最早做自动驾驶仿真的时候,就吃过这个亏。当时觉得算法调得挺漂亮,一上路,感知结果全对不上。查了三天,最后发现是外参矩阵里一个符号写反了。嗯,从那以后,我再也不敢轻视标定了。

4.1 内参标定 vs 外参标定

先理清概念。内参,描述的是传感器自己内部的几何特性。比如摄像头,焦距、主点、畸变系数,这些就是内参。激光雷达的内参呢?主要是扫描角度分辨率、旋转速度这些。

外参就简单了——描述传感器之间的相对位置和姿态。说白了,就是告诉你摄像头坐标系和激光雷达坐标系之间,到底差了多少米、转了多少度。

核心区别一句话:内参解决「我看到的准不准」,外参解决「我们看到的能不能对齐」。

我个人习惯,先做内参标定,再做外参标定。顺序不能乱。为什么?因为内参不准,外参标出来也是错的。你想想看,摄像头图像本身都是扭曲的,你再去跟激光雷达对齐,那不是错上加错吗?

4.2 标定板与目标物

标定板这东西,看着简单,选起来门道不少。

标定板类型 适用传感器 我踩过的坑
棋盘格 摄像头 反光材质在强光下角点检测失败
圆点阵列 摄像头 + 激光雷达 圆心提取精度比角点高,但需要均匀光照
三角反射器 激光雷达 远距离回波强度不够,容易漏检
AprilTag 摄像头(快速标定) ID编码方便,但小尺寸下识别率下降

我在项目中遇到过最头疼的事,是标定板材质选错了。当时图便宜,用了普通打印纸贴在泡沫板上。结果激光雷达打上去,回波强度乱七八糟,点云里根本看不清标定板的边缘。后来换了亚光铝板,问题才解决。

我的小技巧:做联合标定时,标定板最好同时满足两个条件——摄像头能看清纹理,激光雷达能看清边缘。圆点阵列加白色背景,是我试下来最稳的方案。

4.3 联合标定流程

联合标定,就是把摄像头和激光雷达的数据对齐到同一个坐标系里。流程其实不复杂,但每一步都有讲究。

采集标定数据 提取特征点 求解外参矩阵 优化与验证 多角度、多距离 至少20组数据 图像角点 + 点云边缘 亚像素精度提取 PnP / 最小二乘 RANSAC剔除离群点 重投影误差检查 残差分布分析 不满足精度 → 重新采集或调整标定板 ⚠ 我曾经因为采集数据时标定板没放稳,导致外参一直收敛不了 后来每次采集前都会确认标定板固定牢固,数据质量明显提升

流程看着简单,但实际操作中,我建议你注意这几点:

  • 数据采集要够多——至少20组不同角度、不同距离的数据。我见过有人只拍了5组就跑去标定,结果外参误差大得离谱。
  • 特征提取要稳——摄像头这边用棋盘格角点,激光雷达那边用标定板边缘。提取精度直接决定了标定结果的好坏。
  • 求解算法要鲁棒——我习惯用PnP加RANSAC。RANSAC能帮你剔除那些离谱的匹配点,避免一颗老鼠屎坏了一锅粥。

注意:联合标定最怕「过拟合」。什么意思?就是你用采集的数据算出来的外参,换一组数据就完全对不上了。我曾经遇到过这种情况,后来发现是标定板太小,视野里特征点太少。解决办法:换大标定板,或者多采集远距离数据。

4.4 标定精度评估

标定做完了,怎么知道准不准?不能光看算法报的误差,得自己动手验证。

我常用的评估方法有这三种:

  1. 重投影误差——把激光雷达的点投影到图像上,看跟实际图像位置差多少像素。一般小于2个像素就算不错了。
  2. 距离一致性检查——在几个已知距离上放目标物,看融合后的距离跟实际距离差多少。我要求自己控制在5厘米以内。
  3. 交叉验证——把采集的数据分成两份,一份用来标定,一份用来验证。如果两份数据上的误差差不多,说明标定结果泛化能力好。

我的经验阈值:

  • 重投影误差:< 2 像素(优秀),< 5 像素(可用)
  • 距离误差:< 5 cm(优秀),< 10 cm(可用)
  • 角度误差:< 0.5°(优秀),< 1°(可用)

这里有个坑,我提醒一下。有时候重投影误差很小,但实际融合效果很差。为什么?因为你的标定数据可能都是在同一个距离范围内采集的。比如你只在5米处拍了数据,那外参在5米处准,到了20米就偏了。所以,采集数据时一定要覆盖不同距离。

一个小技巧:标定完成后,找个空旷的地方,让车走一段直线。然后看激光雷达点云投影到图像上,地面是不是平的,路沿是不是对齐的。这个方法虽然土,但特别管用。我每次标定完都会这么跑一遍,心里才踏实。

最后说一句,标定不是一劳永逸的事。传感器装车后,随着时间推移、温度变化、振动影响,外参可能会慢慢漂移。我建议每隔一段时间就做一次标定校验。在仿真环境里,这个工作就简单多了——参数都是已知的,但流程一定要走一遍,确保你的标定脚本没问题。

好了,标定这块儿就聊到这儿。记住,标定是融合的基础,基础不牢,地动山摇。

可可精品资料库