【文献分享】基于线特征的激光雷达和相机外参自动标定

论文题目:Line-based Automatic Extrinsic Calibration of LiDAR and Camera

中文题目:基于线特征的激光雷达和相机外参自动标定

作者:Xinyu Zhang, Shifan Zhu, Shichun Guo, Jun Li, and Huaping Liu

作者机构:清华大学汽车安全与能源国家重点实验室

论文链接:https://www.researchgate.net/publication/354877994_Line-based_Automatic_Extrinsic_Calibration_of_LiDAR_and_Camera

为了解决外参逐渐漂移的问题,提出了一种基于线的方法,可以在真实场景中实现激光雷达和相机的自动在线外参标定。首先,从点云和图像中提取和过滤线特征。然后,利用自适应优化方法提供精确的外部参数。然后在KITTI基准上用地面真值对其进行了评估。实验验证了标定方法的准确性。在数百帧的在线实验中,本文提出的方法自动校正了误标定误差,达到了0.2度的精度,验证了它在各种场景下的适用性。

1 引言

本文提出的目的:

  1. 传统的手动校准方法需要专门设计对象,如标定板或手动选择点,这导致校准过程繁琐。
  2. 长时间的运行和不同的载荷会导致外部参数的轻微漂移和累计误差,因此需要自动在线标定对其进行调整。

本文主要贡献:

  • 提出了一种能在线自动估计六自由度(6-DOF)参数的外参标定方法。该方法利用一般的直线特征减少了传感器之间的漂移误差,不需要人工选择点和特殊目标,因此能够适用于任何给定的场景。
  • 提出了一种点云线提取方法,利用点云处理方法过滤噪声数据,准确提取线特征。
  • 引入自适应优化方法和结果置信度估计方法,实现了向正确方向优化和高效计算标定结果。

2 算法概述

提出的方法分为三个步骤:

  1. 在图像和点云的特征提取之前进行一系列的预处理
  2. 从图像和点云中提取线特征,通过特征滤波进行细化
  3. 最后,通过对初始外部参数添加小扰动,将点云线特征投影到像素帧上,并对每个扰动的得分进行计算和优化

本文的算法框架如下:

3 算法框架

3.1 问题表述

激光雷达与相机的外参标定问题在于确定两者之间正确的变换矩阵。将问题定义为求旋转角向量θ=(θx;θy;θz),平移向量t=(tx,ty,tz);点云记为 P t P_t Pt,图像记为 I i j t I^t_{ij} Iijt,表示点I和像素ij在第t帧的值。通过将LiDAR点投影到图像上计算成本分数,目标函数定义为:
S t = ∑ t = n − w n I i j t [ α ∑ p t p t ∈ F h t T t p t + ( 1 − α ) ∑ p t p t ∈ F v t T t p t ] / w S_t = \sum_{t=n-w}^n I^t_{ij}[\alpha \sum_{p_t}^{p_t \in F_h^t} T_tp_t+(1-\alpha)\sum_{p_t}^{p_t \in F_v^t}T_tp_t]/w St=t=nwnIijt[αptptFhtTtpt+(1α)ptptFvtTtpt]/w

其中每个LiDAR点 p t p_t pt分别迭代水平特征 F h F_h Fh和垂直特征 F v F_v Fv。系数α对水平和垂直线特征赋予不同的权重。本文将α赋值为0.65,以增强对水平误差的约束。另外,w是滑动窗口的大小。考虑之前的w帧,计算第t帧的分数。

通俗的说就是:将激光雷达点检测到的水平线特征和竖直线特征分别通过转换矩阵T,变换到相机坐标系中,然后投影到图像上,然后通过一个在图像上的滑动窗口计算得分。

3.2 图像处理

在图像处理中,首先将RGB图像转换为灰度图像;然后通过[1]中的线特征提取算法进行线特征提取;然后对灰度图像进行距离变换。

下图展示了这个过程。

图(b)中的白色边缘和图©中的白色线条分别代表聚类的边缘特征和线特征。如图(b)所示,应用距离变换模型后,聚类后的边缘特征更加无序。相反,图©中的线特征组织得更好,产生的灰度变化更小。它可以允许更大的搜索步长,从而防止优化过程进入局部解决方案。

白色像素表示提取的特征,灰度变化表示到边缘或线特征的距离。像素越白,越接近这些线特征的中心

3.3 雷达处理

在激光雷达处理中,其原理是利用距离不连续性来获得更多的边线特征。为了实现这一目标,采用局部映射的方法,将三帧点云合并为一帧,使一帧能呈现更多的点。具体来说,利用NDT方法计算当前帧和前两帧之间的变换矩阵。

在单帧和三合一帧中提取的边界线点对比如下图所示。图(a)显示了通过将三帧点云 P t − 2 : t P_{t−2}:t Pt2:t转换为一帧点云得到的更密集的点云,与图(b)中的另一帧点云相比,可以显示更多的点。这可以提高提取性能,特别是在应用低光束激光雷达时。

然后将更密集的点云转换成图像,每个像素存储对应雷达点的距离信息。通过比较当前点与相邻点之间的距离,消除离相邻点太远的离群点,提取出更精确的线特征。需要注意的是,本文考虑了多个激光束之间的距离信息。这使得可以提取水平特征,从而使用线特征最小化水平和垂直误差。水平线特征 F h F_h Fh和垂直线特征 F v F_v Fv分别存储在两个不同的点云中。在此设置中,忽略了很少出现的平面相交线特征,有利于提高计算效率。

3.4 特征过滤

在上面的处理之后,得到了无序的线特征。下面采用两步过滤方法来消除异常值。

**第一步:**由于点云已经转换成图像形式,因此设计了一个卷积核来过滤掉距离所有八个相邻点超过一定阈值的点。这种过滤方法可以去除所有的异常点以及与地面对应的点。剩余的特征可以被识别为线特征。

过滤前后的线特征如下图所示。

**第二步:**使用聚类算法去除相邻点很少的线特征,剔除短于8像素的线特征。

以上两个过滤步骤可以提供更有条理的点云线特征,保证后续步骤的优化效果更好

3.5 自适应优化

在优化之前,已经将LiDAR线特征提取到图像上,并计算投影到灰色区域的LiDAR点的比例。

为了准确地找到解,采用了两个搜索步骤。

  1. 首先,为了防止搜索陷入局部解,采用图像线特征宽、灰度变化小、步长相对较大的粗糙搜索,可以快速发现可能包含最佳解的区域。
  2. 然后,应用更细的图像线特征和更大的灰度变化,以及更小的步长,以获得更精确的校准结果。

当激光雷达点投射到灰色区域的比例超过一定阈值时,就会发生这两步大小和灰度变化之间的切换。


为了提高计算效率,提出了一种自适应优化方法,使优化向着正确的方向进行。

将当前像素得分与相邻的728个得分进行比较。在此过程中,如果搜索程序发现得分较高的参数,则停止当前搜索过程,并在得分较高的位置开始新的搜索过程。此外,当达到设定的迭代次数或找到最佳分数时,该搜索过程将停止,从而可以提高计算效率。另外,还使用滑动窗口来设置优化过程中需要考虑的帧。在本文中,为了防止从错误的方向进行优化搜索或陷入局部最优解,使用了三帧。因此,最终优化的外部参数应该在滑动窗口的所有帧中都超过其他参数。

4 实验与结果

在KITTI数据集的不同场景下进行了两次实验。

4.1 精度分析

图(a)和(b)给出了实验一的结果,图©和(d)给出了实验二的结果。在这两个实验中,在X、Y、Z轴上增加了1度的旋转偏置,并对地面真值参数增加了0.05米的变换偏置。然后,每10帧添加0.5度的旋转偏差。需要指出的是,1度旋转偏置是正还是负是随机的。实验将标定误差与地面真实值进行了比较。此外,还测试了检测误校准的能力和纠正偏差的速度。

在不计算人为误差的情况下,横摇、俯仰、偏航的最大误差始终在0.5度以内。由于激光雷达具有较高的水平分辨率,偏航的校准结果最为精确。尽管激光雷达在垂直方向上的分辨率要低得多,并且该方向上的3D特征呈现频率较低,但由于采用了自适应优化算法,并且该方向的权重较高,因此所提出方法仍然可以达到较高的精度。总体而言,在所有维度上的平均旋转误差为0.12度,低于大多数离线校准技术。

4.2 纠错速度分析

在上图(a)和(b)中,黑色箭头1、2、3和4指向添加偏差的框架。对于箭头1和3提出的方法立即纠正了偏差,而没有显示置信度下降,而对于黑色箭头2和4,红色部分在两帧内变为绿色(图(a)),这意味着偏差在两帧内得到了纠正。实验二也出现了同样的情况(图©和(d))。

在KITTI数据集上更多场景下的整体校准结果如下图所示,说明本文方法适用于不同场景。

5 总结

本文提出了一种在线自动标定激光雷达和相机外部参数的方法。与以前的自动化方法不同,这种新的校准方法不需要在场景中放置标记。作者证明了点云和图像的线特征是校正校准偏差的鲁棒特征。人为添加的偏置可以在一到两帧内得到纠正,比其他方法更快。此外,文中还说明了当前校准结果的置信度可以计算,并进一步用于提高计算效率和精度。

未来的工作希望评估提取的线特征的准确性,以减少特征较少的场景中的校准偏差。利用蒙特卡罗方法可以提供初始参数。

6 参考文献

[1]R. G. Von Gioi, J. Jakubowicz, J.-M. Morel, and G. Randall, “Lsd: a
line segment detector,” Image Processing On Line, vol. 2, pp. 35–55, 2012.

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SAML- 安全断言标记语言

一、概念 安全断言标记语言(SAML)是一种开放标准,用于在各方之间(特别是身份提供商和服务提供商之间)交换身份验证和授权数据。SAML 是一种基于XML的安全断言标记语言(服务提供商用来做出访问控制决策的语句…

Unity 多图片(带透明通道)合成

取个巧,利用Camera和Render Texture 多个2d图片组合成型 每个Square都单独设置一个层级 相机设置 RenderTexture设置,然后将RenderTexture放在一个RawImage上 以下是生成图片的代码 using UnityEngine.UI; using System.Collections; using System.…

【zTree】节点添加不同操作按钮,点击后生成弹窗

zTree api 文档:https://www.treejs.cn/v3/api.php 1. 初始化树的配置项 const initZtreeSetting () > {const setting {view: {addHoverDom: addHoverDom, // 显示用户自定义控件selectedMulti: false,// 是否允许同时选中多个节点,默认为truesh…

C++的拷贝构造函数

目录 拷贝构造函数一、为什么用拷贝构造二、拷贝构造函数1、概念2、特征1. 拷贝构造函数是构造函数的一个重载形式。2. 拷贝构造函数的参数3. 若未显式定义,编译器会生成默认的拷贝构造函数。4. 拷贝构造函数典型调用场景 拷贝构造函数 一、为什么用拷贝构造 日期…

C++设计模式_18_State 状态模式

State和Memento被归为“状态变化”模式。 文章目录 1. “状态变化”模式1.1 典型模式 2. 动机 (Motivation)3. 代码演示State 状态模式3.1 常规方式3.2 State 状态模式 4. 模式定义5. 结构( Structure )6. 要点总结7. 其他参考 1. “状态变化”模式 在组件构建过程中&#xf…

Redis——哨兵模式与Zookeeper选举的异同点

摘要 当我们使用主从复制出现的问题:手动故障转移:写能力和存储能力受限:主从复制 -master 宕机故障处理。 主从切换技术的方法是:当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干…

军工工厂安全生产视频AI识别技术方案

一、需求分析 在国家政策、技术创新和企业发展需求转变等多个维度的共同驱动和协同下,特别是工业互联网作为“新基建”的提出,都在推动工业制造朝着数字化、网络化、智能化方向发展。军工装备制造行业承担着国民经济和国防建设的重要使命,构…

【uniapp】uview1.x使用upload上传图片

和2.x不同的是,要用 action 来配置后端上传图片的接口地址; 再来一些配置项的命名有所不同,一般1.x的命名用 -,2.x的命名使用小驼峰; 1.x 的上传会自带删除时的提示框,2.x 没有; 重要的几个配置…

银河集团香港优才计划95分获批案例展示!看看是如何申请的?

银河集团香港优才计划95分获批案例展示!看看是如何申请的? 今天来分享一则银河集团香港优才计划获批案例!客户本科学历非名校、从事业务支援及人力资源行业,优才打分95分,这个条件可能在很多人的印象里,会觉…

网课 - 网页视频-倍速播放-快进-拖动进度条-增大音量 - 火狐Firefox浏览器

本文使用的浏览器为火狐Firefox浏览器。 用浏览器播放视频,比如看网课、看在线电影电视剧时,经常能遇到的情况与解决方案: 音量太小,即使调整到100%还是不够响亮 这时可以安装插件“600% Sound Volume”, 安装之后可在原来音量的…

“2024杭州智慧城市展“汇集全球领先的智慧城市解决方案和前沿技术

2024杭州智慧城市展览会,将于2024年4月份在杭州国际博览中心盛大召开。此次展览会以智慧城市为主题,涵盖了智慧城市、信息安全、数据中心与通信、人工智能、公共安全、会议广播视讯、智慧社区与智能家居、智慧停车等八个模块,旨在推动互联网、…

Echats-自定义图表2

效果图&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html lang"zh-cmn-Hans"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>…

《C和指针》笔记35:结构体

本文整理一下结构体的相关知识&#xff0c;记录是为了更好地加深理解。 1. 结构体声明 下面两个声明语句&#xff1a; struct {int a;char b;float c; } x;struct {int a;char b;float c; } y[20], *z;这两个声明被编译器当作两种截然不同的类型&#xff0c;即使它们的成员列…

批量拍摄剪辑短视频,这几个实用又简单的拍摄技巧可以收藏学习

现在越来越多的朋友都当起了视频博主&#xff0c;自己来拍短视频&#xff0c;但说来简单&#xff0c;到了拍摄的时候&#xff0c;却有些无从下手&#xff0c;直接拿起手机就拍吗&#xff1f;是不是太平淡了&#xff1f;可自己又不会专业的拍摄技巧啊~ 今天来分享4个简单的拍摄…

Guava-RateLimiter详解

简介&#xff1a; 常用的限流算法有漏桶算法和令牌桶算法&#xff0c;guava的RateLimiter使用的是令牌桶算法&#xff0c;也就是以固定的频率向桶中放入令牌&#xff0c;例如一秒钟10枚令牌&#xff0c;实际业务在每次响应请求之前都从桶中获取令牌&#xff0c;只有取到令牌的请…

Apache ActiveMQ RCE漏洞复现(CNVD-2023-69477)

0x01 产品简介 ActiveMQ是一个开源的消息代理和集成模式服务器&#xff0c;它支持Java消息服务(JMS) API。它是Apache Software Foundation下的一个项目&#xff0c;用于实现消息中间件&#xff0c;帮助不同的应用程序或系统之间进行通信。 0x02 漏洞概述 Apache ActiveMQ 中存…

计算机视觉 计算机视觉识别是什么?

计算机视觉识别&#xff08;Computer Vision Recognition&#xff09;是计算机科学和人工智能领域中的一个重要分支&#xff0c;它致力于使计算机系统能够模拟和理解人类视觉的过程&#xff0c;从而能够自动识别、分析和理解图像或视频中的内容。这一领域的发展旨在让计算机具备…

系列三十五、Spring AOP失效原因以及解决方式

一、Spring AOP失效原因 &#xff08;1&#xff09;内部调用不会触发AOP&#xff1b; &#xff08;2&#xff09;方法是private修饰的&#xff0c;AOP会失效&#xff1b; 解决方法&#xff1a;改成public &#xff08;3&#xff09;目标类没有配置为bean&#xf…

数据结构——线性表①(顺序表)

一、线性表定义 线性表是一种数据结构&#xff0c;它是由n个具有相同数据类型的数据元素a1,a2,…,an组成的有限序列。 其中&#xff0c;除第一个元素a1外&#xff0c;每一个元素有且只有一个直接前驱元素&#xff0c;除了最后一个元素an外&#xff0c;每一个元素有且只有一个…

云原生-AWS EC2使用、安全性及国内厂商对比

目录 什么是EC2启动一个EC2实例连接一个实例控制台ssh Security groups规则默认安全组与自定义安全组 安全性操作系统安全密钥泄漏部署应用安全元数据造成SSRF漏洞出现时敏感信息泄漏网络设置错误 厂商对比参考 本文通过实操&#xff0c;介绍了EC2的基本使用&#xff0c;并在功…