前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >用于智驾车辆的相机-IMU外参监控

用于智驾车辆的相机-IMU外参监控

作者头像
点云PCL博主
发布2024-01-04 13:44:56
发布2024-01-04 13:44:56
2890
举报
文章被收录于专栏:点云PCL点云PCL

文章:Camera-IMU Extrinsic Calibration Quality Monitoring for Autonomous Ground Vehicles

作者:Xuesu Xiao , Yulin Zhang , Haifeng Li , Hongpeng Wang and Binbin Li

编辑:点云PCL

欢迎各位加入知识星球,获取PDF论文,欢迎转发朋友圈。文章仅做学术分享,如有侵权联系删文。

公众号致力于点云处理,SLAM,三维视觉,高精地图等领域相关内容的干货分享。文章未申请原创侵权或转载联系微信cloudpoint9527。

摘要

传感器外参标定的高度准确性对于多个传感器的数据融合至关重要,例如相机和惯性测量单元(IMU)传感器套件。然而预先标定的外参可能由于外参干扰(例如车辆振动)而不再准确,这将导致自动驾驶车辆性能显著下降。现有的方法依赖于在线校准,无论外参是否实际发生更改或是否需要重新校准,这在计算上效率低下。在本文中提出了一种用于相机-IMU传感器套件的外参标定质量监控方法,以确定何时实际上需要重新校准。我们提出了一种有效的算法来检测稳健的道路图像特征,利用IMU数据捕获这些特征的不匹配,并通过三种常用的误差度量来量化外参标定误差。我们的算法在模拟和实际数据中都表现出很好的效果。

图1。在融合相机图像和IMU数据时,自动驾驶车辆行驶在道路上。由彩色三角形表示的相机和IMU之间的外参在受到环境的外部干扰时发生改变。

主要贡献

为了避免不必要的在线传感器重新校准,本文侧重于监测传感器套件(包括相机和IMU)的传感器校准质量。据我们所知,这是第一种可以有效监测传感器重新校准需求而无需执行“真实”估计任务的方法。我们不是在物理空间中测量错误,而是通过融合IMU数据,以图像空间中相应特征的不匹配来表征传感器校准质量。通过这样做避免了稠密的图像重建成本。其中一个关键挑战是并非所有特征点都能正确捕捉校准质量:移动物体的特征点会引入相机的显著深度误差,很难与传感器校准误差区分开。因此将特征点的集合缩小到道路上的静态点,并利用几何特性开发了一个多项式算法,通过不同的误差度量来识别这些不匹配,使用模拟数据和真实的KITTI数据集在具有挑战性的场景中的实验证明,我们的算法对于根据三个众所周知的误差度量(即Sampson误差、残差误差和对称极线距离)鲁棒地识别传感器校准质量差是有效的。

内容概述

当自动驾驶车辆行驶在街道上时,它从前视自车相机接收图像和更高频率的IMU测量。我们采用基于扩展卡尔曼滤波器(EKF)的估计器来跟踪IMU固定帧 {I} 相对于世界坐标 {N} 的姿态,并获得相邻图像关键帧的基本矩阵。IMU测量立即处理,以传播EKF状态和协方差。然后采取两步方法从道路上的关键帧获取特征:首先利用卡方假设检验通过极线约束选择道路特征;然后通过利用从IMU EKF估计器计算的基本矩阵比较道路法线向量来完善道路特征集。最后由于在车辆运行时缺乏地面真值,我们使用一组误差度量来近似违反条件1的程度(见图2)。

图2. 系统框架

从IMU数据构建基本矩阵

如何从惯性测量单元(IMU)的数据中构建基本矩阵。我们使用扩展卡尔曼滤波器(EKF)来估算IMU固定坐标系 {I} 相对于世界坐标系 {N } 的姿态。通过处理IMU测量数据,我们实时更新EKF状态和协方差,使我们能够跟踪IMU-affixed坐标系 {I} 在世界坐标 {N } 中的姿态。我们还使用EKF估算器计算相邻图像关键帧的基本矩阵,这对于后续相机到IMU的校准非常关键。

相机图像中的两步道路特征选择

如何从相机图像中选择道路特征,这涉及两个步骤。首先,我们利用卡方假设检验通过对极约束选择道路特征。其次,我们比较道路法线向量,通过使用从IMU EKF估算器计算的基本矩阵,细化道路特征集。这两步的目的是从相机图像中提取与道路相关的特征,以进一步监测校准质量。

图3,使用极线几何图形选择道路特征

相机到IMU校准量化

我们提出了一种有效的算法,通过检测鲁棒的道路图像特征、利用IMU数据捕捉这些特征的不匹配,并通过三种常用的误差度量来量化外部校准误差。我们的算法在模拟和实际数据上都表现出了有效性,允许在自动驾驶车辆行驶过程中动态监测相机到IMU的校准质量。

图4,两步选择后的道路特征(红点)

我们利用KD树存储道路特征集Pk。我们迭代并选择一组最接近的点来检查它们是否是道路特征点。在最坏的情况下,检查所有特征点需要O(|Pk|)的时间。然而将它们用作种子,以帮助验证其他未检查的特征,一旦找到一组三个非共线的道路特征点,就可以加速该过程,检查剩余特征点需要线性时间。然后移除不满足的Pk集合中的成对特征。我们在算法1中总结了我们的在线相机到IMU外参校准质量监控算法。

实验

我们实现的算法使用模拟和KITTI数据集进行了实验。实验的目的是展示我们的方法能够(1)检测到相机和IMU之间的位移,并且(2)报告这种位移的大小。

仿真实验

仿真实验旨在展示我们的方法能够检测到相机和IMU之间的位移,并在这种位移消失时发出警报。我们使用分辨率为1024×720、焦距为680像素的单目相机。一个IMU传感器位于相机正下方,与相机的相对姿态固定。相机以20 Hz的速度运行,IMU输出100 Hz的高分辨率传感器测量值。

手动为两个独立的时间段将常数相机-IMU位移注入到原始固定的外参中,并使系统在一个矩形城市街区环境中运行。一个短段出现在帧70-80,另一个在帧130-150。我们注入0.09°的角度误差和0.9厘米的平移误差。图5说明了在人工设置的相机到IMU位移响应中,三个误差度量如何变化。当注入相机到IMU的位移时,所有三个误差度量都显著增加,并且在移除位移时立即恢复正常(参见图5中的两个峰值)。在大多数情况下,Sampson误差(蓝色)几乎无法与残差误差(黄色)区分开来。两者的幅度明显小于对称极线距离(橙色),但所有三者都能够正确反映注入的外参误差。

图5,相机IMU误差量化:所有三个指标都能够反映传感器位移误差

KITTI数据集上的实验

使用了包含来自绕城市卡尔斯鲁厄(图6)行驶的车辆捕捉的各种街景的摄像头图像和IMU读数的KITTI数据集,以评估我们的相机到IMU外参监测算法在实际环境中的性能。

图6。KITTI数据集的真实世界驾驶场景。图形标签从上到下与表II相对应。(a) 带路沿石的道路。(b) 强烈的阳光照射在路上。(c) 道路上的阴影。(d) 十字路口和低速车辆。(e) 停放的车辆。(f) 拥挤的车辆高速行驶。

我们使用KITTI数据集中的两个类别的六个不同序列,包括城市轨迹和道路数据。由于KITTI数据集使用相对精确的相机到IMU预标定,并且在数据收集过程中传感器之间不包含显著的位移,我们在预标定的外参中人为引入位移,以模拟预标定后相机-IMU位移发生的情况。

我们测试了系统在“零”、“小”和“大”位移下的性能,以显示三个误差度量的大小与位移的大小成正比。在表II中,“零”表示我们直接利用KITTI中高度准确的预标定的相机-IMU外参(欧拉角和平移向量)(在运行时保持精确)。

将在线监控方法整合到一个完整的SLAM系统中,并使用Sampson误差进行两个不同的KITTI试验测试(图7)。同样,我们人为引入预标定的外参的位移。我们的监测系统在SLAM阶段开始时连续输出高Sampson误差值,并立即触发,以提醒系统重新校准相机IMU外参。为了模拟重新校准,位移在80个关键帧内逐渐减小到0用于KITTI序列2011_09_30_drive_0018,直到外参完全重新校准,并在SLAM流程的其余部分保持接近零。对于KITTI序列2011_10_03_drive_0027也是一样的情况。与相机轨迹有常数“大”位移的情况相比,该方法有助于生成更接近地面真实的轨迹,考虑到初始校准误差。我们还发现在我们的实验中,所有三个度量都达到了等效的状态监测性能。在所有情况下,我们的方法能够迅速捕捉相机-IMU外参的异常,触发重新校准过程,并监视度量变化以确定外参参数的准确性状态。

图7,两次KITTI试验的摄像机轨迹。这里,蓝色曲线是相机的地面实况轨迹,红色曲线是具有外参固定位姿误差的相机轨迹,绿色曲线是由我们的方法触发的具有外部重新校准的VIO系统生成的相机轨迹。

总结

本文介绍了一种在线监测相机-IMU外参校准质量的方法,以确定何时需要重新校准。开发了一种高效的算法,利用几何特性识别道路上的一组特征点。进一步以图像空间中的道路特征不匹配来表征传感器校准误差。我们的方法在模拟和实际数据集中,使用三种常用的误差度量都取得了良好的效果。未来的工作包括将该算法扩展到其他类型的传感器,如LiDAR到相机,并在实际车辆上部署我们的算法。

为分享的伙伴们点赞

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-01-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 点云PCL 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档