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

论文题目: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.

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

论文翻译-ImageNet Classification with Deep Convolutional Neural Networks

[toc] 前言 AlexNet是是引领深度学习浪潮的开山之作,即使是我们现在进入了ChatGPT时代,这篇论文依然具有一定的借鉴意义。AlexNet的作者是多伦多大学的Alex Krizhevsky等人。Alex Krizhevsky是Hinton的学生。网上流行说 Hinton、LeCun和Bengio是神经网…

go-gin-vue3-elementPlus带参手动上传文件

文章目录 一. 总体代码流程1.1 全局Axios部分样例1.2 上传业务 二. 后端部分三. 测试样例 go的mvc层使用gin框架. 总的来说gin的formFile封装的不如springboot的好.获取值有很多的坑. 当然使用axios的formData也有不少坑.现给出较好的解决办法 以下部分仅贴出关键代码 一. 总…

ORANGE室内高尔夫—韩国室内模拟高尔夫原装进口真实体验身临其境

ORANGE室内高尔夫—韩国室内模拟高尔夫 真实体验 身临其境 室内高尔夫的产品优势: 1. 实际高尔夫球场的限制:室内高尔夫可以弥补室外高尔夫球场数量有限的问题,使得更多人能够享受高尔夫运动。 2. 天气和季节的限制:室内高尔夫可…

苹果AirTag平替产品选择,国内外支持苹果Find My芯片功耗全面对比

2021年4月20,苹果在春季产品发布会上推出了全新的产品类型- AirTag,将哆啦A梦的追踪徽章带到了现实。这个小产品当年并没有像其它苹果新品那样一朝爆红。随着年轮缓缓而坚定地前行, AirTag也缓缓而坚定地前行,并被越来越多的人接受和喜欢。 深入思考AirTag背后的产品逻辑和实现…

前端基础之JavaScript

目录 一、JavaScript概述 二、JavaScript引入方式 三、JavaScript语言规范 四、JavaScript语言基础 五、JavaScript数据类型 数值(Number) 字符串(String) 布尔值(Boolean) null和undefined 对象(Object) forEach() map() 六、运算符 七、流程控制 八、函数 函…

10.31日模拟赛总结

文章目录 考试时间及策略考试结果考试反思题解A.进步科学B.吉吉没急C.老杰克哒D.季积晓淆 考试时间及策略 没啥好说的,因为好像都不会。所以全场感觉都在罚坐,很痛苦。 考试结果 30 0 50 5 85 考试反思 T1:T1是个神奇状压&#xff0…

vsCode安装CodeRunner插件输出中文乱码问题

1 vsCode下载 vcCode官网地址:https://code.visualstudio.com/ 2 安装CodeRunner 通过Ctrl Shift P 找到 settings找到code-runner.executorMap,在 settings.json 中加入 "code-runner.executorMap": {....."python": "s…

上班族如何做日程自律清单实现逆袭呢?电脑日程管理软件助力高效办公

越来越多的上班族都表示自己每天的工作任务非常多,经常从早忙到晚也无法按时完成工作,导致工作的拖延完成,这应该怎么办呢?其实对于职场人士来说,想要在工作中提升效率,就需要提前做好每天的工作日程安排&a…

如何在Android设备上检查应用程序使用情况,包括使用时间

你可能不知道自己花了多少时间在手机上。很可能你一天中有一半的时间都在盯着手机屏幕。如果你怀疑这一事实,你会很快核实的。在这篇文章中,我们将向你介绍如何在Android设备上检查应用程序的使用情况。 如何在Android上检查应用程序电池使用情况 你使用时间最长的应用程序…

腾讯云轻量级服务器哪个镜像比较好?

腾讯云轻量应用服务器镜像是什么?镜像就是操作系统,轻量服务器镜像系统怎么选择?如果是用来搭建网站腾讯云百科txybk.com建议选择选择宝塔Linux面板腾讯云专享版,镜像系统根据实际使用来选择,腾讯云百科来详细说下腾讯…

2023年四川省网络与信息安全技能大赛 决赛个人赛Writeup

文章目录 Web前端验证PHP_Try MiscHelloWorld密码在这easy_log Cryptobaser 线下“断网”CTF个人赛,题都很简单(新手级难度),总共10道题目,解了6题。 赛题附件请自取: 链接:https://pan.baidu.com/s/1lgNEBO7a1L4KLE2t…

Academic Inquiry|如何阅读英文文献

相关素材: 知云文献阅读器、谷粉学术 相关可借鉴文章: [1]Academic Inquiry|国外文献查找-CSDN博客 [2]Academic accumulation|英文文献速读-CSDN博客 [3]Academic Inquiry|edge、chrome浏览器插件配置及相关问题解答-CSDN博客 一、相关素材准备 &#…

最新Ai智能创作系统源码V3.0,AI绘画系统/支持GPT联网提问/支持Prompt应用+搭建部署教程

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…

kubernetes-service微服务

目录 一、service微服务 二、Ipvs模式 三、ClusterIP 1.ClusterIP 2.headless 四、NodePort 1.NodePort 2.默认端口 五、LoadBalancer 1.LoadBalancer 2.metallb 六、ExternalName 一、service微服务 Kubernetes Service微服务是一种基于Kubernetes的微服务架构&…

智慧矿山:AI算法在带式运输机中的异物识别应用

随着现代农业和工业的发展,带式运输机在各种生产作业中发挥着越来越重要的作用。然而,在带式运输机运行过程中,可能会混入各种异物,这些异物的存在可能会对运输过程和设备本身造成损害。为了解决这一问题,本文将介绍一…

一个极好用的浏览器标签页插件

这是我登录后,并且上传了个人壁纸的页面 Br标签页 一 . 我们来看看界面和功能1.注册登录2.首页及右键功能3.添加小组件和app网址4.切换壁纸5. 计划页面 二 . Edge浏览器安装和chrome(谷歌)浏览器安装1. Edge浏览器安装2. chrome(谷…

【java】命令行,包

文件夹情况: HelloWorld.java package com.demo; public class HelloWorld{public static void print(){System.out.println("HelloWorld!");}public static void main(String[] args){print();} } import.java import com.demo.HelloWorld; public cla…

K8S的pod创建过程

创建流程图 用户发起请求创建deployment;apiserver收到创建资源的请求,apiserver对客户端操作进行身份认证,认证完成后接受该请求,并把相关的信息保存到etcd中,然后返回确认信息给客户端;apiserver向etcd…

EDA常用数字器件硬件描述

EDA常用数字器件硬件描述 前言 在使用了一段时间EDA编程之后,来回顾一下基本的知识,看看如何实现基本的EDA常用数字器件对应的硬件描述 一、组合逻辑器件描述 1. 基本的逻辑门电路 与、或、非(取反)、与非、或非、异或、同或 …

Centos7安装Docker,安装DockerCompose(集群化部署),Docker私服镜像仓库

0.安装Docker Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月。 Docker CE 分为 stable test 和 nightly 三个更新频道…