精度0.05度和1.5厘米?YOCO:全自动lidar-camera外参标定

作者 | Tianle Zeng  编辑 | 3D视觉之心

点击下方卡片,关注“自动驾驶之心”公众号

戳我-> 领取自动驾驶近15个方向学习路线

>>点击进入→自动驾驶之心传感器标定技术交流群

本文只做学术分享,如有侵权,联系删文

如何让标定更准确

lidar-camera标定主要分为基于靶标无靶标的方法。

  • 基于目标的方法:能提供较高的校准精度和鲁棒性,允许对校准误差进行追踪,这对于在受控环境中实现精确校准非常有用。但是需要人工干预、有特定的数据采集要求、标定过程复杂且耗时。

  • 无目标的方法:旨在尽量减少人工干预,从而提高校准过程的效率。可以在不同场景中使用,而无需特定的校准目标,使它们在不同环境中更加灵活。但是缺点是泛化挑战、精度问题、实时评估挑战

建立对应关系和配准对应点都是极具挑战性的任务。在建立对应关系时,主要方法包括识别相机和激光雷达传感器之间的对应特征。以前的研究集中在几何特征和人工特征上。通常,检测二维图像中的特征相对简单,但在激光雷达点云中识别和提取相应的三维特征点更为复杂。这是因为二维图像包含丰富的语义和颜色信息,而点云通常仅由三维空间中的坐标组成。这些稀疏分布的点云使得找到合适的特征变得困难。为了解决这个问题,通常的方法是手动选择对应点。一旦在图像中检测到特征点,便手动选择和提取激光雷达点云中的匹配点。对于手动选择的对应点,点云配准相对简单,常见的方法包括点对点、点对线、线对线和线对面配准。由于手动选择的对应点相对准确,通过点云配准可以获得高精度的外部参数。然而,手动选择对应点需要大量的人工干预,导致校准过程复杂、繁琐且耗时。

精度相关的挑战在于:

  • 自动提取的对应特征点可能无法保证完全准确,这会导致影响校准精度的错位问题

  • 点云配准过程中对输入数据的广泛需求进一步导致了用于配准的错位点增加,从而最终影响精度。

尽管已经提出了几种方法来优化点云提取和配准的过程,但它们仍无法从根本上解决这个问题。

26036305e65e900383b7bd17017115b7.png

本文介绍的YOCO是一种新颖的标定方法,该方法通过创新的外参计算自动提取对应点并绕过点云配准过程,解决了时间和精度上的挑战。该方法最大限度地利用点云信息,减少校准输入数据的需求,提高了精度和速度。所提出的方法易于实现,仅需少量数据即可实现高精度校准且无需人工干预。主要贡献总结如下:

  • 提出了一种新的外部参数计算方法,消除了在相机和 LiDAR 传感器之间配准对应点的必要性,为传统的配准过程提供了新的视角和技术解决方案。

  • 引入了一种新的平面提取方法,用于检测和提取对应的平面点云,为涉及空间几何先验知识的平面提取场景提供了有价值的见解。

  • 提出了一个完全自动化的 LiDAR 和相机系统标定流程。该过程对标定数据的采集要求简单,可用于各种 LiDAR 和相机配置的离线标定。

源代码将在 GitHub 上发布:https: //github.com/louiszengCN/lidar camera auto calibration

具体方法

方法流程如图23765170ceaf70da5dbcc64b8b4eca2b1.png

相机标定

本文方法的第一步是使用棋盘格对相机进行标定。在相机标定领域,使用棋盘格作为校准目标的方法已被广泛采用。一般能够仅通过几张棋盘图像来校准相机,从而获取相机坐标系  到棋盘格坐标系  的外参  和 。对于  中的点 ,可以使用以下公式将其投影到 :

833389b0febbb85e403629a64e956e9d.png

完成相机校准后,可以通过针孔相机模型估算棋盘格与相机之间的距离。

dcadb515bec8cdeccaf5ab33ffcc8655.png

如图 3 所示,设  表示相机的焦距, 表示棋盘格到相机的距离, 表示棋盘格上两个不同角点之间的真实距离, 表示图像中相应的角点距离。根据相似三角形的原理,这种关系可以简洁地表示为:

354748b5fea2760651a71f029b6e233c.png

通过相机校准可以获得  的值,而  可以通过在相机校准过程中检测和计算角点之间的像素距离来确定。由于我们知道棋盘格的大小,可以得到  的值。因此,可以通过以下公式获得棋盘格与相机之间的距离:

0ae150fc6743e10ec2dab4314da65872.png

LiDAR 点云处理

为了从 LiDAR 点云中提取棋盘格的对应点以建立共面约束,提出了一种基于聚类算法的新颖点云提取方法,该方法能够在复杂的校准环境中有效地提取属于棋盘格的点云,确保算法在不同场景中的有效性。此外,该方法仅依赖于 LiDAR 点云,从而避免了相机和 LiDAR 之间的对应点注册需求。该方法包括三个主要步骤:点云聚类、点云过滤和平面对应点提取

首先进行点云聚类,旨在根据点云的方向将其分类,以便后续的点云过滤。在此过程中,最初使用主成分分析(PCA)计算点云的法向量,这是一种常用于点云法向量估计的简单高效方法。具体来说,对于 LiDAR 坐标系内的点 ,其法向量  的计算如下。

随后,点云根据法向量方向进行聚类。当 LiDAR 扫描物体时,不同物体表面的点云密度存在显著差异。某一密度范围内的点云更可能具有相似的法向量。研究表明,与其他聚类方法相比,基于密度的应用噪声的空间聚类算法(DBSCAN)在聚类具有密度变化的物体时,通常能达到更快的聚类速度和更好的聚类结果。因此,采用了 DBSCAN 方法,该方法在基于密度差异聚类物体方面表现出色,将点云聚类。

DBSCAN 算法根据法向量  将点云  聚类,将具有相似法向量的点聚类到同一个群集中。聚类后,空间点云被分割成具有相似方向的不同群集 C1, C2, C3 等。对于每个群集,使用下列公式计算代表法向量 :

304c0fb437459104fcdf1ccf223ff040.png

其中, 是群集中的点云总数, 是基于点云密度确定的第  个点云的权重, 是第  个点云的法向量。

第二步是点云过滤,其中使用随机抽样一致性(RANSAC)方法进行平面拟合,因为它在处理离群值方面具有鲁棒性,并且在从噪声数据中准确估计参数方面效果显著。该选择特别适用于识别每个点云群集中的最大密度平面。随后,仅保留在每个群集中形成最大密度平面的点云。然后,可以根据点云平面的方向信息有效地过滤点云。考虑到棋盘格的平面可能平行于或与  平面成一定角度——考虑到棋盘格可能倾斜放置的情况——这种平面的一个显著特征是其法向量方向将平行于  轴或与  轴成一定角度。因此,设置了一个阈值 θ 来根据每个点云群集的法向量方向进行过滤。我们将角度 α 定义为法向量  与  轴之间的角度。该角度可以使用以下公式计算:

99c799a94d6291df8fd61fc25a916c96.png

其中, 是群集  的代表法向量, 是  轴的单位向量(即 ), 表示点积, 表示向量的大小。角度 α 通过  和  的点积除以它们的大小的乘积的反余弦计算。

5ffb73f0021cfb342e5625d48f3f37f1.png

最后一步是平面点云提取,考虑到实际校准环境的复杂性,可能在点云过滤后仍然存在多个平面。有必要从这些平面中检测属于棋盘格的平面。已经计算出棋盘格和相机之间的近似距离 。对于安装在近距离内的一般 LiDAR-相机系统,这个  可以直接用作近似距离阈值。如果 LiDAR 和相机之间的安装距离存在显著差异,也可以手动测量并调整  的值。我们旨在识别与  距离最接近的过滤平面群集 。群集  中的点云可以表示为  矩阵 。通过对矩阵的每一行求和,可以得到  矩阵 。距离  可以通过以下公式计算:

9cd46b286ee5072139044d9d96d5196e.png

其中, 是  的转置。在复杂环境中,可能会遇到多个接近或等于  的  值。为了解决这个问题,引入了点云密度 ρ 作为另一评估标准,其中 ρ 的值等于群集中的点云数量。在标定环境要求中,旨在使用相对较大的棋盘格,确保棋盘格上的点云密度 ρ 最大。通过这个过程,可以最终通过找到与  最接近的  值以及候选群集中最大点云密度 ρ 的群集来确定 LiDAR 数据中属于棋盘格的点云。最后提取所选群集中的点云,记作 。这些是 LiDAR 点云中棋盘格的对应点。

33834288b590b0c014adfbad89248a11.png

共面约束与外部参数计算

对于上一步中提取的点云 ,如果我们知道外参  和 ,可以将其从 LiDAR 坐标系投影到相机坐标系,从而得到点云 :

85f34f6fab2c9ce04a04cd701197ac17.png

利用相机到棋盘格坐标系的外部参数  和 ,可以进一步将  从相机坐标系投影到棋盘格坐标系,得到点云 :

a30dedfe5896b50643fc6b1b9c498b74.png

由于  属于棋盘格的 xoy 平面,因此在扫描过程中应位于棋盘格的平面上,这意味着这些点的  轴坐标应为零。因此可以建立约束方程:

e31ff2f30c33ffb5c79aba2e7bfe4852.png

我们旨在通过最小化棋盘格点  的  轴坐标来求解未知的外部参数  和 。这可以通过最小化平方误差的总和来实现:

37940806325e37eaa239800323ed12a0.png

其中, 是提取的 LiDAR 点的数量, 表示第  个点在棋盘格坐标系中的  值。将其代入公式,可以写成:

58465a5e836df9fa63666111f569ad14.png

通过求解此优化问题,我们可以获得所需的外部参数  和 ,从而实现 LiDAR 和相机之间的校准。此优化过程仅依赖于 LiDAR 点云提供的约束。此外,由于平面上的每个点都作为约束,我们在一个输入帧中建立了足够多的约束来优化外部参数的准确值。经过几次优化迭代后,我们可以最终确定 LiDAR 和相机之间的精确外部参数  和 。

整个标定算法总结如下(算法 1)。值得注意的是,从处理 LiDAR 点云到通过优化获得 LiDAR 和相机之间的外部参数,我们完全处理 LiDAR 点云而不执行任何对应点注册操作。这消除了注册对应点的需要,并减少了由于对应点匹配错误引起的潜在错误。

b697f129b9e91541ad76fa8137292ab4.png

实验效果

a617a6c543b6dca796a79c8171c7cc68.png bafbbf9c17261cdfd47f22fd2ee65fae.png d56e5c08bd8e9f8f74cd2f5684a96ef5.png 3a5da48bd17f7a3c4f24b772963c02fd.png 02f7bf5a5b6e0e4caef1b4ee11d83cc5.png 1f341a0f4d3728965c0dcce8ed0a9a42.png 78001c29fc3eb667a68b36d8b4adfbff.png 44e92fb8232aaa52e2db5f2ffb96dabf.jpeg

总结一下

YOCO是一种新颖的 LiDAR-相机校准方法,易于实现且不依赖于人工干预。关键创新在于避免了当前大多数校准方法中使用的对应点配准。这是通过一种能够在复杂环境中提取平面点云并构建共面约束的算法来实现的。这一过程避免了配准方法中由于对应点匹配错误引入的误差,并最大化了点云信息的利用,从而减少了所需的校准输入数据。大量仿真和实际数据实验表明,与当前方法相比,该方法在外参中具有较高的精度。

改进空间:在复杂场景中,该方法中提取平面点云的算法可能难以准确提取类似于棋盘格的平面。当棋盘格放置得距离 LiDAR-相机系统过远时,其平面的稀疏点云可能导致共面约束不够严格,从而影响校准参数的准确性。未来的工作包括进一步增强平面点云提取方法在复杂场景中的有效性和鲁棒性,并将该算法扩展到更普遍的场景。

参考

[1] YOCO: You Only Calibrate Once for Accurate Extrinsic Parameter in LiDAR-Camera Systems

投稿作者为『自动驾驶之心知识星球』特邀嘉宾,欢迎加入交流!重磅,自动驾驶之心科研论文辅导来啦,申博、CCF系列、SCI、EI、毕业论文、比赛辅导等多个方向,欢迎联系我们!

6f1dab326df96ee5b3e392e6cc239d25.jpeg

① 全网独家视频课程

BEV感知、BEV模型部署、BEV目标跟踪、毫米波雷达视觉融合多传感器标定多传感器融合多模态3D目标检测车道线检测轨迹预测在线高精地图世界模型点云3D目标检测目标跟踪Occupancy、cuda与TensorRT模型部署大模型与自动驾驶Nerf语义分割自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频(扫码即可学习

544a0e157a78e0137cb8b2f1b8f2233e.png

网页端官网:www.zdjszx.com

② 国内首个自动驾驶学习社区

国内最大最专业,近3000人的交流社区,已得到大多数自动驾驶公司的认可!涉及30+自动驾驶技术栈学习路线,从0到一带你入门自动驾驶感知2D/3D检测、语义分割、车道线、BEV感知、Occupancy、多传感器融合、多传感器标定、目标跟踪)、自动驾驶定位建图SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案大模型、端到端等,更有行业动态和岗位发布!欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频

37735e156d247c0498391a3f440199e1.png

③【自动驾驶之心】技术交流群

自动驾驶之心是首个自动驾驶开发者社区,聚焦感知、定位、融合、规控、标定、端到端、仿真、产品经理、自动驾驶开发、自动标注与数据闭环多个方向,目前近60+技术交流群,欢迎加入!扫码添加汽车人助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)

67bdb171c1c520fa41e45403ea3b6c92.jpeg

④【自动驾驶之心】全平台矩阵

54bc8b4cc1b3f42047766c964e2fdf79.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值