lidar-camera 标定系统

news2024/11/24 16:20:24

摘要

本文讨论了一个视觉系统的校准问题,该系统由RGB相机和3D光学雷达(LiDAR)传感器组成。将来自不同模态的两个独立点云进行配准始终是具有挑战性的。我们提出了一种新颖、准确的校准方法,使用已知尺寸的简单纸板箱。我们的方法主要基于在LiDAR点云中检测盒子平面,因此它可以校准不同的LiDAR设备。此外,还可以在最少的人工干预下实现相机-LiDAR校准。所提出的算法在合成数据和由由一组LiDAR传感器和RGB相机拍摄的实际测量结果上进行了验证并与最先进技术进行了比较。

介绍

现在,获取环境信息变得越来越重要,尤其是在自动驾驶汽车和机器人的情况下,它们需要在没有任何人类交互的情况下自我控制。3D机器感知可以通过多种方式实现,例如使用相机、麦克风、雷达、扫描仪等技术。目前最受欢迎的技术之一是3D激光雷达(LIDAR),它可以通过测量光束距离来获取稀疏点云以测量我们的周围环境。3D LIDAR技术的主要优势是主动照明,它不受环境光影响,可以在任何光照条件下使用,并且LIDAR传感器可以在长距离下准确地绘制3D世界。然而,这些设备仍然昂贵,分辨率有限,例如,流行的Velodyne-64 LIDAR只能测量64个通道并且刷新速率较低。

另一方面,RGB相机产生高分辨率、彩色图像,但它们必须处理光照条件,特别是夜晚的问题,此外,遮挡和阴影可能会导致图像处理问题。幸运的是,大多数LIDAR传感器的缺点可以通过相机或相反方法来弥补,因此3D LIDAR和相机经常一起使用以检测物体、重建场景或解决导航任务。通过 3D 视觉技术可以使点云更加密集,但是,对于由不同模态获取的两个独立点云进行配准是一项极具挑战性的任务。这些传感器的外部校准是必要的,这意味着它们的相对位置和方向需要事先知道。已经存在一些匹配算法,但它们的精度并不令人满意。
在机器人和汽车的情况下,设备是固定的,它们的位置和方向在时间上不会发生变化。因此,在应用仪器之前,可以离线计算两个仪器之间的刚体变换。我们在这里展示了使用普通盒子进行校准的方法。
外部校准。已经提出了多种方法来校准摄像机-LIDAR传感器对。早期工作集中在类似于[35]中概述的2D LIDAR设备上。可将3D LIDAR校准方法列表分为三组。其中一些[9,22]使用平面棋盘板,其他算法[24,32]应用不同形式的平面表面,还有方法[8,23]根本不使用校准对象,但后者的精度远低于所需水平。基于平面板的方法的主要问题是在LIDAR点云中准确检测其边缘很困难,特别是如果使用低分辨率设备,例如非常流行的只有16个垂直激光束的 Velodyne-16。当平面板上使用传统的棋盘格图案时,更多问题会出现,由于其黑白颜色,该图案会严重污染LIDAR点云 [27,24]。在大多数情况下,相机需要进行预校准,换句话说,其内部参数已知。所提出的方法使用空间校准对象并假设相机也经过预校准。

在[27]中,Rodriguez等人使用基于黑圆的平面板来避免棋盘格图案引起的大量噪声。他们的算法搜索圆心的3D坐标和平面的法向量。至少需要6个校准对象的位置,由众所周知的Levenberg-Marquardt [17,19](LM)算法对LIDAR-相机刚体变换的初始猜测进行改进。
Alismail等人[2]发布了一种自动校准方法,其使用具有黑色圆形区域和标记中心的平面校准对象。圆的中心和法线从单个视图图像中计算出来,然后应用基于随机样本一致性[7](RANSAC)的方法进行平面提取,最后使用非线性优化和LM的点-平面ICP [4]调整外部参数。
Park等人[24]提出的方法使用白色、均匀、平面三角形或菱形板进行校准。他们需要从多个位置拍摄板子的多个图像,或者同时使用至少三个板子。他们算法的另一个缺点是估算而不是测量平面板的空间坐标,这影响了校准的精度。该方法的详细信息可以在第3节中找到。
Gong等人[10]发表了一种方法,需要通过两个仪器测量同一三棱柱物体的至少两次扫描进行校准。这会产生更多的数据处理。在他们的工作中,使用9次观察需要20秒来进行校准。他们方法的主要缺点是三棱柱校准物体的制造并不容易。此外,校准需要大量人工干预,并且需要手动完成三棱柱点的分离和图像中相关平面的选择。

Velas等人在[32]中提出了一种不常见的校准对象。他们假设有一个白色背景和包含四个圆孔的平面对象,其方法基于Levison和Thrun [18]的工作。在3D LIDAR点云和获取的图像中自动检测圆孔。然而,我们无法使用我们的Velodyne HDL-16 LIDAR来重现此方法,因为此算法需要更密集的点云。

Geiger等人[9]介绍了一种方法,该方法通过LIDAR进行单次测量以及相机进行单张图像进行LIDAR-相机校准。该方法是完全自动的,但需要多个棋盘和至少2个相机进行校准。在第3节中将简要介绍该算法,并将其与所提出的方法进行比较。
本文的目标是双重的:(i)提出一种半自动校准过程;(ii)在实际应用中实现准确的相机- LIDAR校准。本文的主要贡献是我们的算法精确度高,校准过程仅需要一个简单的纸箱。我们方法的另一个好处是可以校准任意数量的相机和LIDAR传感器的外部参数。

2所提标定方法

正如介绍中提到的,我们方法的目标是准确校准相机-LiDAR系统的外部参数。普通的盒子被选定用于实现这个目标。使用这些盒子的主要好处是它们经常在日常工作中使用,不需要特殊的制造或印刷。使用盒子的另一个原因是它们的边是互相垂直的,因此可以从即使低分辨率的LiDAR获取的点云精确计算这些平面的交点。其他使用平面校准对象的方法会受到平面边缘测量不准确的影响。所提出的方法仅使用点的位置,而不使用来自LiDAR的任何其他信息,例如强度,因此可以与任何类型的LiDAR设备一起使用。

校准过程仅演示了一个校准物体,但该方法可以轻松扩展以适用于更多盒子的使用。这种能力非常重要,例如在自动驾驶中,常见的情况是将相机和LiDAR排成环形结构,因此某些设备可能没有共同的视野,并且可能需要更多的物体进行校准。由于假设相机已经进行了预校准 - 其内部参数先验已知 -,因此校准箱的放置几乎是任意的,图像畸变对校准精度没有影响。唯一的要求是校准盒的3个侧面在点云和图像中都清晰可见。

该方法的输入如下:
1.由LiDAR设备获取的点云(s);
2.每个相机一个图像;
3.相机的内部参数;
4.盒子边缘的测量长度。

2.1 点云聚类:平面检测

我们校准算法的主要思想是,如果已知校准盒的七个角 - 沿三个平面的交点 - 并且这些角在图像中的投影也已知,则问题可以简化为一个简单的透视n点(PnP)问题,现今可以有效地解决[12,16,30,36]。因此,第一个目标是准确计算点云中的这些点。

首先,需要裁剪校准盒的粗略区域。虽然这是手动完成的,但它不需要精确。正如后面所展示的,算法可以自动将盒子的侧面与掉入该区域的其他物体分开。然后,算法在点云中搜索平面。由于位于该区域内的点数很少,因此采用简单的顺序RANSAC算法[15,33]。在每次迭代中,它选择了具有最多内部点的平面,基于欧几里得距离。与最显著平面相关的点从集合中删除,并且重复进行鲁棒拟合,直到可以检测到平面。然后,检测出校准盒的可见侧面。选择相互垂直的平面。我们应用以下误差以选择近乎垂直的侧面:
E(n1,n2,n3) = |n1 T n2| + |n1 T n3| + |n2 T n3|,(1)
其中nk是第k个平面的法线(k∈{1、2、3})。由于平面数通常较少,因此在候选平面中进行穷举搜索不需要太多的计算时间。图1左侧显示了此步骤的结果示例,其中盒子放在椅子上,并且位置在半径范围之外的点被排除。顺序RANSAC找到5个平面,然后选择红色,绿色和黄色作为盒子的3个侧面,如图1的右图所示。

在这里插入图片描述
左图:顺序RANSAC发现的五个平面。每个平面都有不同的颜色。右图:根据我们的盒子模型将点集聚类为内点(绿色)和外点(红色)。

2.2 盒子拟合与离群点去除

所提出算法的下一个任务是去除离群点。这是一个重要的步骤,因为LiDAR点云可能会受到噪声的严重影响,例如由纹理引起的测距反射率偏差,正如[24]所讨论的那样。在这种情况下,离群点是属于校准盒但受到严重噪声影响的点。这些点被排除在剩余步骤之外。我们将从上一步继承的平面上的点称为L1、L2和L3,顺序不重要。我们的算法再次使用RANSAC [7] 确定离群点,但此时要匹配的模型代表三个垂直平面。请注意,在前一步中选择了产生最低误差的平面,并且不需要它们是垂直的。模型拟合如下:首先从L1中选择三个点,这些点确定了一个平面,然后从L2中选择两个点,这两个点确定了一个与第一个平面垂直的平面,最后从L3中选择一个点,确定了第三个与前两个平面垂直的平面。选择具有最多内点的模型,排除离群点。

这种双重离群点过滤似乎是冗余的,但实际上并不是。第一个的目的是将校准盒与其他物体分开,而这一个确定了嘈杂的盒子点。

2.3 迭代盒子细化

去除点集中的离群点后,由两个步骤组成的迭代算法对盒子的平面进行了细化,以准确地适配三个垂直平面到点集。第一步旋转盒子模型,第二步将其平移。

2.3.1 旋转步骤

在此步骤中,两个平面沿其交线——盒子的边缘旋转。旋转最小化点和平面之间的平方误差之和。

设p
1j,j∈{1,2,…m1},p
2j,j∈{1,2,…m2}和p
3j,j∈{1,2,…m3} 分别表示L1、L2和L3中的点。令qi表示位于第i个平面上的一个点,不一定在集合pij中。令ni表示平面的法线。拟合问题等价于最小化点与相应平面之间的平方距离之和。最小二乘代价函数定义如下:
在这里插入图片描述
不失一般性,世界坐标系被固定在盒子平面的交点处,旋转主轴等于长方体的边缘。假设我们考虑绕第三个轴旋转顺时针角度为γ,那么旋转矩阵如下:

在这里插入图片描述
其中 c = cos γ,s = sin γ。三个平面的法线向量分别为 [1 0 0]T,[0 1 0]T 和 [0 0 1]T。旋转不影响第三个平面上点的拟合误差,因此最小化问题变为:
在这里插入图片描述
经过基本的变换,代价函数被转化为最小化范数 |Ax|,同时满足 xT x = 1,其中:
在这里插入图片描述
常数 m1 和 m2 分别表示属于第一个平面和第二个平面的点的数量。x 的最优解是从 AT A 对应于较小特征值的特征向量中检索出来的。角度 γ 的计算公式为:γ = atan2(s, c)。绕X和Z轴的旋转同理。

2.3.2 平移步骤

盒子的平移沿着三个平面的法线依次进行。平移的优点是,如果盒子的平移与其法线平行,则只会改变所选平面的点拟合误差。等式2中定义的代价函数被修改为以下形式:

在这里插入图片描述
其中 α 是平移的长度。平移必须按照三个垂直方向依次计算。然而,该问题也可以通过一步来解决。对于这种情况,我们将平移问题视为最小化以下代价函数:

在这里插入图片描述
这个问题可以表示为一个齐次线性方程组,形式为 Bt = c,如下所示:

其中,行向量 njT 表示列向量 nj 的转置。代价函数的每一项都给出了方程组中的一个方程。解由著名公式 t = BTB−1 BTc 给出。由于向量n1,n2和n3互相垂直,所以矩阵B总是非奇异的,因此矩阵求逆可以计算出来。
在这里插入图片描述

2.4 收敛性

如上所述,旋转和平移步骤将重复执行直到收敛。我们发现少于30次迭代就足够了。为了测试所提出的方法的收敛性,将坐标系原点设置为平面与轴对齐时的初始平移/旋转值,并发现迭代总是收敛到可接受的结果。

2.5 外参数的计算

在盒子边的迭代精修完成后,可以计算出标定盒子的角点,因为盒子的大小已知。图3中的有色点表示盒子的角点,盒子的整个邻域都是算法的输入,经过从原始点云中裁剪后。

如果需要知道 LiDAR-LiDAR 对的外参数,则算法可以分别在 LiDAR 点云中找到角点。然后,通过点配准[3、13、14]利用盒子角点的点对应关系计算两个点云之间的变换。

在这里插入图片描述
标定方法也可用于校准 LiDAR-Camera 系统。在这种情况下,需要在处理后的图像中选择标定盒子角点的投影。然后,选择的点使用 Harris[11] 角点检测器进行精化。找到外参数的问题等同于一个 PnP 问题,因为已知 3D-2D 点对应关系。我们采用了EPnP算法[16]。由于相机已经被校准,因此在 PnP 过程中考虑了内参数,径向和切向畸变对校准的精度没有影响。
在这里插入图片描述
图2. 标定过程的块图。必须在空间点云中检测到盒子的角点。LiDAR-LiDAR 校准基于点配准,而 LiDAR-Camera 校准的本质是应用 PnP算法。

3 测试

该方法在合成和真实世界的测试数据中进行验证。对于合成测试,使用Blensor(Blender Sensor Simulator)[1],它是一种用于广泛使用的3D建模和渲染软件的开源模拟包。真实世界的结果包括来自高分辨率和低分辨率LiDAR设备的彩色点云和点云融合。

3.1 合成测试

Blender是一款免费开源的3D模拟、渲染、动画和建模软件。它支持使用多个具有不同参数的摄像机,甚至可以保存逼真的图像。在Blender的合成环境中建模了棋盘和一个标定盒,以模拟逼真的测试场景。Blensor[1]是一个传感器模拟包,它扩展了Blender的功能,提供了不同类型的LiDAR和飞行时间设备。在合成测试中,使用了默认设置下的Velodyne-64,但也可以设置扫描范围、噪声级别和旋转速度。在我们的测试中,只变化了噪声水平。Gauss噪声添加到距离传感器零距离的地面实际值上,方差在0和0.14之间变化。这意味着噪声点位于激光雷达射线上。

图5展示了虚拟场景的一个例子,创建于Blensor[1]模拟软件包中。在构建场景时,考虑到三种竞争算法需要使用相同的相机-LiDAR系统设置,而每种算法都使用不同的对象进行校准。这些竞争方法如下:

• Geiger等人[9]在其首次引入的算法中使用棋盘;
• Park等人[24]的第二种算法使用多边形板;
• 而建议的算法应用虚拟盒来确定待校准设备的相对姿态。

Geiger等人的算法,在图表中标为“kitti”,至少需要许多棋盘的两个摄像机图像进行校准。该完全自动化的方法通过处理相机图像重建棋盘场景,然后尝试将点云与LiDAR传感器获取的点云合并。最后一步可能存在问题,并且高度依赖于校准环境。我们在作者网站上使用在线演示3获取校准数据。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/589091.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Apache网页安全与安全优化--网页缓存、隐藏版本信息、Apache 防盗链

目录 --------网页缓存-------- 1.检查是否安装 mod_expires 模块 2.如果没有安装mod_expires 模块,重新编译安装 Apache 添加 mod_expires模块 3.配置 mod_expires 模块启用 4.检查安装情况,启动服务 5.测试缓存是否生效 --------隐藏版本信息--…

公开报名|CCPTP云渗透测试认证专家第二期培训班,将在云网基础设施安全国家工程研究中心举办

CCPTP云渗透测试认证专家由云安全联盟大中华区发布,是全球首个云渗透测试能力培养课程及人才培养认证,弥补了国内云渗透测试认知的差距和技能型人才培养的空白。4月1日-13日,CCPTP 首期班成功举办,于2023年5月10日部分学员完成考试…

C语言---函数

1、函数是什么 学习库函数网站: https://cplusplus.com/reference/http://en.cppreference.comhttp://zh.cppreference.com 我们参考文档,学习几个库函数 2、库函数 3、自定义函数 自定义函数和库函数一样,有函数名,返回值类…

TLS协议在ISO13400-2-2019文档中的内容解析

我很久之前写过解读ISO13400文档的系列文章:《详解ISO 13400文档(DoIP协议)》。当时没有说明解读的是哪一版13400,现在回过头看,应该是ISO13400-2-2012版本。那一版里没有TLS协议的相关内容,所以写的文章中也没有体现。 而2019版相比2012版,有两个方面的变化: 增加TLS…

1.AI绘画简介

1.1简介 ​ AI绘画即指人工智能绘画,是一种计算机生成绘画的方式。 ​ AI绘画主要包含两个部分,一个是对图像的分析与判断,即“学习”,一个是对图像的处理和还原,即“输出”。人工智能通过对数以万计的图像及绘画作品…

汽车充电桩主板的构成及7kw交流桩的优势阐述

汽车充电桩主板的构成通常包括:中央处理器、存储器、协议转换芯片、电源管理系统、信号输入输出、充电状态指示灯、电容、电感、电阻等元件。 其中,中央处理器是充电桩的核心,可以对电动汽车进行识别和匹配,根据电动车需求充电&am…

SpringMVC01:SpringMVC的分析和创建

目录 一、Spring MVC:回顾MVC 1、什么是MVC? 2、Model1时代 3、Model2时代 4、回顾Servlet 1.新建一个Maven工程当作父工程!pom依赖 2.建立一个Moudle:springmvc-01-servlet,添加Web app的支持 3.导入servlet和jsp的jar依…

如何使用 Python 进行机器学习?

全套学习路线图、课程,机器学习工作流程如下。 Python人工智能 入门: Python基础→Python数据挖掘中级: 机器学习进阶: NLP自然语言高级: OpenCV基础→深度学习 人工智能学习路线图2023版-黑马程序员人工智能技术路…

Facebook广告投放怎么使用?Facebook广告投放的教程

做跨境电商的,多多少少都离不开广告投放,Facebook广告投放更是很多人的首选,所以东哥今天就来分享一个Facebook广告投放的教程,看完不信你还不会Facebook广告投放! Facebook广告投放的教程 1、用科学上网的方式注册一个…

2023 华为 Datacom-HCIE 真题题库 10--含解析

单项选择题 1.[试题编号:190585] (单选题)华为SD-WAN解决方案中,当CPE位 于NAT设备后的私网时,特别是两个站点的CPE同时位于NAT设备后的私网时,CPE之 间需要使用NAT穿越技术。华为SD-WAN解决方案中使用以下…

vulnhub dc-8

1.信息搜集 端口 22,80,31337 存活ip 192.168.85.136 2.访问网站,进行信息搜集 在欢迎页面发现sql注入 sqlmap进行跑数据 python sqlmap.py -u "http://192.168.85.136/?nid1" --batch -D d7db -T users -C name,pass --dump尝试robots.txt,发现后他登…

保姆级讲解,让ChatGPT成为机器人的智慧大脑

文 / 高扬(微信公众号:量子论) ChatGPT是生成式人工智能,如果能接入机器人,可以让机器人更加智能。 我手上没有硬件,但我们可以模拟尝试机器人的制作逻辑,这个设计分成两部分:硬件、…

大数据分析平台:即需即用,告别“等一下”

数据分散在不同的业务系统中,整合清洗后才能用于数据分析,且由于IT不如业务那般清楚分析逻辑、需求等,很难及时响应新的分析需求,导致每次要数据、要报表时得到的回答都是“等一下”。那怎么办?那就用大数据分析平台&a…

【Linux】Firewalld防火墙

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、Firewalld概述二、Firewalld和iptables的关系三、Firewalld网络区域1.firewalld检查数据包的源地址的规则2.Firewalld防火墙预定义了9个区城 四、firewalld防火…

jvm之分析调优

写在前面 jvm调优不管是工作中还是面试中都异常重要,是衡量一个开发人员技术水平的重要指标,这也是个人的一个弱项,希望通过本文能够提高自我,也更能帮助到正在阅读文章的你,我们就开始吧! 1:…

Nginx 安装及部署项目

1. 下载nginx安装包 首先从官网下载 nginx,大家可以自己在百度搜索 nginx,进入官 网,或者在浏览中直接输入 nginx 的官方网址: http://nginx.org/ ,在此我直接提供 nginx 的下载链接,大家点进去之后可以按照 自己的需求下载自己所…

Flutter 笔记 | Flutter 核心原理(三)布局(Layout )过程

布局过程 Layout(布局)过程主要是确定每一个组件的布局信息(大小和位置),Flutter 的布局过程如下: 父节点向子节点传递约束(constraints)信息,限制子节点的最大和最小宽…

Vue项目iconfont新增svg图标

最近接手一个开发一半的Vue3的后台管理项目,由于样式需要,需要新增一些svg图标,项目使用的是iconfont接下来我会通过几个步骤在原来iconfont基础上去新增一些自己的图标; 一、iconfont文件转换为svg源文件; 通过访问ic…

电子商务客户消费购物预测模型-基于数千万真实在线零售数据__企业调研_论文科研_毕业设计(智慧营销_精准营销_机器学习_人工智能)

之前发过 《谁主沉浮?银行,消金,互联网公司的精准营销_智慧营销完全解读》介绍了智慧营销/精准营销目的是降低运营成本。但精准营销可以带来很多额外收益,例如提高销售利润,提高客户忠诚度,降低客户流失率&…

Ribbon入门使用 RestTemplate loadbance 负载均衡

一、概念 1. Ribbon Ribbon是实现一套客户端,负载均衡的工具,简单的说,ribbon是一个开源项目,主要提供给客户端软件负载均衡算法和服务调用。 负载均衡和服务调用的提供者 主要用于: 负载均衡 将用户的请求平均到分配多个微服务…