Calib Anything:使用SAM的无训练标定激光雷达-相机参数

2023-07-04 13:59 861 阅读 ID:1210
将门
将门

今天为大家分享下我们最近的工作,激光雷达-相机之间的标定方法,代码可以在我们openCalib的仓库里拿到。

代码链接:

https://github.com/OpenCalib/CalibAnything

Camera与LiDAR之间的外部标定研究正朝着更精确、更自动、更通用的方向发展,由于很多方法在标定中采用了深度学习,因此大大减少了对场景的限制。然而,数据驱动方法具有传输能力低的缺点。除非进行额外的训练,否则它无法适应数据集的变化。随着基础模型的出现,这个问题可以得到显著缓解,通过使用分割任意模型(Segment Anything Model,SAM),我们这次提出了一种新的激光雷达相机标定方法,该方法不需要额外的训练,并适用于常见场景。通过初始猜测,并最大化投影在每个图像mask内的点的一致性来对外参进行优化,一致性包括点云的三个属性:强度、法向量和从一些分割方法中导出的类别,在不同数据集上的实验证明了这个方法的通用性和可比的准确性!

相机和激光雷达是自动驾驶汽车中使用的两种主要类型的传感器。这两个传感器的互补性使它们成为许多感知任务的首选组合,如深度补全、目标检测和物体跟踪。为了融合这两个传感器的数据,对于时间同步和空间标定是必不可少的。这里论文关注的是外部标定,即获得相机坐标系和激光雷达之间的变换矩阵,包括旋转和平移,外部参数的准确性从根本上限制了数据融合的准确性,因此,很多工作从不同的角度努力处理这个问题!早期的方法使用了具有特殊模式的人工目标,这些模式很容易被检测到,它以降低灵活性为代价实现高精度。由于外参在日常使用中略有漂移,因此需要一种更无条件、更自动的方法来重新标定,为此,一些方法利用了自然场景中的几何特征,如线条和消失点,这些特征通常存在于结构化场景中。为了进一步消除场景的约束,基于学习的方法在大规模数据集的帮助下走上了舞台,它适用于一般场景,并实现了高精度。

然而,简单监督网络的泛化能力较弱,可解释性较差,尽管增加了几何约束,但它仍然需要一个标记良好的大型数据集,并且在数据集变化的情况下精度下降。随着基础模型的出现,这些问题可以得到显著缓解。最近发布的Segment Anything Model(SAM)是图像分割的基础模型,展示了从大量训练数据中受益的令人印象深刻的零样本能力,考虑到在标定中使用分割,我们提出了一种新的激光雷达相机标定方法,无需额外的训练或领域自适应!

首先使用SAM对整个图像进行语义分割,得到一组掩码,在没有在点云和掩模之间建立明确的对应关系,而是计算掩模内点云属性的一致性,包括其强度、法向量和分割类。如图1所示,在正确的外在条件下,汽车mask内点的强度具有更高的一致性。对于法线向量,plane masks上的点应具有一致的法线方向,简单地通过平面拟合和欧氏聚类得到点云的分割类。vehicles和trunks 等目标将聚集在一个类别中,因此mask上也具有一致性!论文计算了具有这三个属性的每个mask的一致性得分,通过给出一个初始的外在值,可以通过最大化所有mask的总分来优化它!

与传统方法相比,只要存在正交关系,本文方法对场景的适应性就更高。与基于学习的方法相比,不需要在标记良好的大型数据集上进行额外的训练。与其它基于分割的方法相比,避免了在图像片段和点云之间找到确定的对应关系,这总是不明确的,或者只能在特定类型的目标中捕捉。

一、回顾下领域常用的一些方法

一般来说,激光雷达和相机之间的标定方法可以分为基于目标和无目标两类。在这里更多地关注无目标的方法,这些方法几乎不需要手工操作。传统的方法包括使用线等几何特征、最大化互信息和自我运动估计,通过利用大规模数据集,开发了基于学习的方法,以提供相当准确的标定结果,几乎不需要场景,大致分为回归和分割类型。

1.1 基于target方法

这种类型的方法需要人工目标,这些目标在颜色、形状和反射率上总是与众不同的,以便于提取图像和点云中的特征。目标的主流是带有特定图案的矩形板,如棋盘、圆形网格和Apriltag。由于矩形的水平边缘可能与激光雷达扫描不相交,因此还提出了其他形状的物体,如球体、多边形板。通过在点-点或点-平面之间建立强的对应关系,这种类型的方法通常实现了高精度,但需要低或高水平的人工干预。

1.2 基于target-free方法

一些方法不是定制目标,而是在自然场景中寻找几何特征,最常用的特征是线或边。一般有两个步骤。首先,通过边缘检测器或分割来检测图像中的线。点云中的线主要由距离不连续和强度差获得。然后,根据线的位置、强度和影响范围,对齐线之间的多对多对应关系。除了直线特征外,[12]、[13]还使用消失点来估计旋转矩阵,它需要在场景中至少有两个VP。

为了减少对场景的依赖,一些方法利用互信息来测量多模态配准,包括梯度、点云的强度和图像的灰度值。虽然上述方法需要相互可视的区域,但基于运动的方法分别估计每个传感器的自我运动,并通过手眼模型解决外在问题或最小化投影误差,视觉里程计和激光雷达的结果基本上限制了标定的准确性!

1.3 基于学习的方法

基于学习的方法的简单范例是使用端到端网络来估计输入RGB图像和深度图像的外部参数。RegNet首先引入卷积神经网络(CNNs)来回归6DoF参数。为了提高模型的泛化能力,在损失函数中加入了几何约束。CalibNet通过最大化图像和点云的几何和光度一致性来训练其网络,RGGNet考虑了黎曼几何,并利用深度生成模型。LCCNet利用成本-体积层进行特征匹配,并预测从初始标定到GT的去校准偏差。

尽管有端到端网络,但基于学习的分割被用作pipeline的一部分。一些工作分别对图片和点云进行语义分割,然后在2D和3D点中匹配一类目标的质心。由于点云的稀疏性,还有一些work将多帧激光雷达数据组合在一起,需要高精度的定位设备,由于点云分割的困难,一些方法只对图像进行分割。[20] 采用实例分割的方法获得目标边缘,并通过深度不连续性定义损失函数。这些方法的一个问题是,网络只能预测特定类别的目标,从而建立有限的对应关系。此外,基于学习的方法的一个常见问题是不适应数据集的变化。

二、我们提出的方法

整个过程可以分为三个部分。对于图像分割,使用SAM来生成整个图像的掩码;对于点云,实现了法线估计、简单的分割方法和强度归一化来生成每个点的相应属性;然后优化目标是使落在一个mask上的点具有接近的属性值,这里设计了一个评分函数来评估一致性,进行几轮搜索以获得最终结果。图2显示了我们提出的方法的流程。

2.1 数据预处理

图像预处理:首先将SAM应用于整个图像,以获得区分目标的多个mask。由于使用点云的一致性,我们希望分割更加细粒度和详细,因此调整SAM的超参数以获得具有较少重叠区域的更多mask。mask被注释为M={Mi,i=0,1,…,N},每个掩码都是与图像大小相同的二进制矩阵,值Mi(u,v)={0,1}表示像素(u,v)是否属于分段i。

点云预处理:预处理分为三个部分,法线估计、强度归一化和分割。对于法线估计,有许多方法可以直接使用。在这里选择一个简单的,这对于应用来说已经足够了。曲面上点的法线方向近似为与曲面相切的平面的法线,平面法线可以通过特征向量和特征值的分析或根据查询点的多个最近邻居创建的协方差矩阵的主成分分析(PCA)来估计,K-d树数据结构用于有效的K-近邻(KNN)搜索。在点云强度范围根据激光雷达类型不同的情况下,通过比例因子对点云的强度进行归一化,用于随后的一致性计算。除了这两个属性之外,还对点云进行了简单的分割方法。首先通过RANSAC算法应用平面拟合来提取场景中的大平面,如地面和墙壁。然后,将一些欧氏聚类应用于剩余的点云,得到车辆和树木等单个目标的聚类,给这个点指定一个数字c,表示它属于哪个类!点云中某个点的最终属性可以表示为:

2.2 Extrinsic 优化

1)一致性函数

点p可以通过初始外部T投影到图像帧:

然后,对于每个mask Mi,可以得到落在其上的一组点:

测量点集Pi的一致性的分数可以计算为:

反射率一致性简单地通过所有值的标准差(std)来计算:

假设大小为(3×n)的矩阵A由Pi中的法向量组成,一致性函数FN表示为:

对于分割类,首先对每个类别的点进行计数,并从最大到最小进行排序。这表示为(c0,c1,…),其中ci是第i个最大类中的点数,一致性是所有类别的加权和:

调整函数用于补偿较大点数造成的一致性损失,它表示为:

最终一致性得分是所有mask得分的加权平均值:

根据投影在掩模上的点的数量来设置每个掩模的权重!

2.3 Extrinsic 搜索

对于每个extrinsic,可以计算一致性得分来评估图像和点云之间的对齐,然后可以通过对它的初步猜测来搜索最佳的extrinsic。有两个步骤:首先,使用大步前进的Brute力搜索,只校准它的旋转。然后,在较小的范围内应用随机搜索来细化旋转和平移。因为平移误差通常很小,对投影的影响很小,所以只在强力搜索阶段改变旋转。对于Tinit的初始猜测,首先计算它的分数sinit,然后在初始值附近的[−A,A]度范围内对3个DoF旋转参数的增量进行均匀采样,步长为s。如果获得更高的分数,则外部参数将被更新。在细化阶段,以固定次数在较小范围内随机采样6DoF外部参数的增量。

三、实验分析

在两个数据集上进行了实验,第一个是基于KITTI里程计基准,第二个是我们自己的数据集,由HESAI Pandar64激光雷达和彩色相机收集(FOV=60°)!

四、 定性结果

在这一部分中,将标定前后的投影可视化,以定性地显示提出的方法的效果,给定一个误差约为5度的初始外部参数,该算法可以将其校正回右投影,如图4所示。

我们将方法与其它基于分割的方法在L2损失和Huber损失度量方面的准确性进行了比较,如下所示:

本文提出了一种新的利用分段任意和点云一致性的激光雷达相机标定方法,可以适应基础设施场景,而不需要在标记良好的数据集上进行额外的训练。未来将在更多的数据集上进行实验,以证明方法的通用性。还将对其它方法进行定量实验,以证明本方法具有可比的准确性。由于外部参数的GT也可能存在误差,将进一步使用估计的稳定性作为另一个评估度量!

参考

[1] Calib-Anything: Zero-training LiDAR-Camera Extrinsic Calibration Method Using Segment Anything.

作者:闫国行

文章来源:【自动驾驶之心】

免责声明:作者保留权利,不代表本站立场。如想了解更多和作者有关的信息可以查看页面右侧作者信息卡片。
反馈
to-top--btn