第三节:传感器标定——让BEV感知的“眼睛”对齐
传感器标定这件事,说白了就是给自动驾驶系统配眼镜。你想想看,车上装了相机、激光雷达、IMU,每个传感器都有自己的坐标系,它们看世界的方式都不一样。如果不标定,那BEV感知就是各说各话,根本没法融合。
我个人习惯把标定分成三大块:相机内参标定、相机-激光雷达外参标定、IMU-车辆标定。每一块都有坑,咱们一个一个说。
3.1 相机内参标定:先把单目搞定
相机内参标定,是基础中的基础。它解决的是“像素坐标”和“物理坐标”之间的映射关系。说白了,就是知道相机镜头是怎么扭曲图像的。
内参矩阵长这样:
K = [fx 0 cx]
[ 0 fy cy]
[ 0 0 1]
其中fx、fy是焦距,cx、cy是主点偏移。畸变系数(k1、k2、p1、p2、k3)也得标出来。
标定方法:
- 棋盘格法:最经典。打印一张棋盘格,拍20-30张不同角度的照片,用OpenCV的
cv2.calibrateCamera()搞定。 - 圆点阵标定板:精度更高,适合高要求场景。
- 自标定:不需要标定板,但精度一般,我不推荐。
我的经验:棋盘格一定要贴平!我在项目中遇到过,标定板没贴平,结果标出来的内参偏差很大,导致后续外参标定全废了。后来我改用亚克力板贴棋盘格,效果稳定很多。
标定流程:
- 采集不同角度、不同距离的棋盘格图像
- 提取角点(亚像素精度)
- 计算内参和畸变系数
- 验证重投影误差(一般要小于0.5像素)
注意:重投影误差超过1个像素,说明标定有问题。我曾经见过有人用0.8像素的误差就上线了,结果BEV感知的定位偏差直接大了10厘米。
3.2 相机-激光雷达外参标定:让视觉和激光“握手”
这是BEV感知的核心环节。相机看到的是RGB图像,激光雷达看到的是3D点云。外参标定就是找到它们之间的旋转矩阵R和平移向量t。
数学表达:
P_cam = R * P_lidar + t
其中P_cam是相机坐标系下的点,P_lidar是激光雷达坐标系下的点。
标定方法:
- 目标物法:用标定板或标定杆,同时被相机和激光雷达看到。提取特征点,用PnP求解。
- 自然特征法:利用场景中的角点、边缘等特征,自动匹配。适合在线标定。
- 互信息法:最大化图像和点云投影后的互信息。精度高,但计算量大。
我个人偏爱目标物法,因为可控。我曾经在项目里用自然特征法,结果遇到雨天,点云噪声大,匹配全乱了。后来老老实实回去用标定板。
关键指标:外参标定精度直接影响BEV感知的定位误差。一般来说,旋转误差要小于0.1度,平移误差要小于2厘米。否则,融合后的目标位置会偏移。
标定步骤:
- 放置标定板,确保在相机和激光雷达的共同视野内
- 采集同步数据(时间戳要对齐)
- 提取标定板在图像中的角点,以及在点云中的平面
- 用最小二乘法求解R和t
- 验证:将点云投影到图像上,看边缘是否对齐
避坑指南:我曾经犯过一个低级错误——标定板太小,激光雷达点云上只能扫到几个点,平面拟合误差很大。后来我改用1.2米×0.9米的大标定板,效果立竿见影。
3.3 IMU-车辆标定:让惯性导航“上车”
IMU(惯性测量单元)标定,很多人容易忽略。但IMU的安装偏差,会直接影响定位的长期稳定性。
IMU-车辆标定,主要是确定IMU坐标系和车辆坐标系之间的旋转关系。车辆坐标系一般是:x向前,y向左,z向上。
标定内容:
- 安装角标定:IMU安装时不可能绝对水平,会有俯仰角、横滚角、航向角的偏差。
- 杆臂标定:IMU的安装位置和车辆质心之间的偏移量。
- 零偏标定:IMU静止时的零偏值。
标定方法:
- 车辆静止,采集IMU数据,计算初始零偏
- 车辆直线行驶,利用GPS/RTK作为真值,估计安装角
- 车辆做“8”字绕圈,估计杆臂参数
注意:IMU标定不好,会导致航向角漂移。我见过一个案例,IMU安装角偏差了0.5度,车辆行驶1公里后,定位偏差达到了8米。这在城市道路上是不可接受的。
3.4 标定精度对定位的影响
标定精度,直接决定了BEV感知的定位上限。咱们用数据说话:
| 标定环节 | 精度要求 | 定位影响 |
|---|---|---|
| 相机内参 | 重投影误差 < 0.5像素 | 目标测距偏差 < 1% |
| 相机-激光雷达外参 | 旋转 < 0.1°,平移 < 2cm | 融合定位偏差 < 10cm |
| IMU-车辆 | 安装角 < 0.1°,杆臂 < 5cm | 航向漂移 < 0.1°/km |
你看,每个环节的误差都会累积。内参差一点,外参差一点,IMU再差一点,最后BEV感知的定位可能就偏了半米。这在车道级定位中是完全不能接受的。
核心结论:标定是BEV感知的“地基”。地基不稳,上层建筑再漂亮也没用。我建议每次传感器拆装后,都要重新标定。别偷懒,偷懒的代价就是定位不准。
嗯,标定这块就讲这么多。记住一句话:标定精度决定了定位精度的天花板。你后面的算法再牛,也突破不了这个上限。
最后说一句:标定不是一次性工作。传感器会随着时间、温度、振动发生微小的变化。我建议每3个月做一次标定校验,或者每次车辆保养后都检查一下。别等到定位出问题了才想起来标定,那时候已经晚了。
可可精品资料库