高精度端到端在线校准环视相机和LIDAR(精度0.2度内!无需训练数据)

本文主要是介绍高精度端到端在线校准环视相机和LIDAR(精度0.2度内!无需训练数据),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

高精度端到端在线校准环视相机和LIDAR(精度0.2度内!无需训练数据)

image

附赠自动驾驶学习资料和量产经验:链接

写在前面

在自动驾驶车辆的使用寿命内,传感器外参校准会因振动、温度和碰撞等环境因素而发生变化。即使是看似无害的 camera-lidar 外参校准值有一两度的误差,也可能给高级的 camera-lidar 感知功能引入灾难性的故障。

image

连续在线外部校准(COEC)在自动驾驶车辆的稳健性和安全性中发挥关键作用,在操作系统失效时能够识别故障,触发纠正行为,然后继续无损运行。如图所示,在没有人员车辆服务事件的情况下,重新标定传感器系统是面向车队可扩展的安全关键传感器融合系统的要求。

原文链接:精度0.2度内!无需训练数据,端到端在线校准环视相机和LIDAR

本文提出了一种轻量级无模式在线校准算法,用于使用深度特征互信息(MI)进行鱼眼相机和激光雷达的连续在线外参标定:

  • 使用深度特征互信息的端到端 COEC 流程

  • 用于标定评估的自我诊断置信度度量

  • 在 KITTI-360 数据集上进行的真实实验,使用原始未校正的鱼眼图像

方法

互信息测量了当了解一个变量后对另一个变量的不确定性减少的程度。在相机和激光雷达之间的外部标定的真值处,互信息的值应该是最大的。

当前有方法利用图像强度和激光雷达反射(一种强度特征)共享信息,并且可以用作相机-激光雷达外参标定的成本度量。然而,关于哪些场景共享强度特征信息没有理论和很少的一致性。图像的亮度(强度)与激光雷达测量的强度仅有松散的相关性。例如,一个深蓝色和明亮的白色路标都会返回高强度的激光雷达测量,但图像的强度会有很大的变化。这样的例子,在自动驾驶传感器数据中,显示了图像和激光雷达强度之间的不一致性是很常见的。

image

虚拟一个深度传感器以相机图像作为输入,并返回场景中每个像素的深度,使用单目深度估计网络实现深度估计。虚拟传感器和激光雷达之间的外参标定,也就是相机和激光雷达传感器之间的标定。如图所示,对于点云不使用强度信息,而是欧氏距离作为特征(见图2)。

如何判断优化收敛也至关重要,主要有三个简单的指标:

  • 互信息的值,在外参标定的真实值处被假定为最大值

  • 互信息对外参的一阶导数,在信息函数最大值时应为零

  • 互信息对外参的二阶导数,反映了信息函数的峰值,并应在外参标定的正确值处为最大值。

具体算法

COEC算法的输入是一组时间同步的图像点云对 (�=(�1,�1),(�2,�2),…,(��,��)),其中每对包括在二维相机光学坐标系 ( ��� ) 中记录的RGB图像 ( �� ) 和在LiDAR坐标系 ( �� ) 中记录的包含K个三维点的点云 ( �� )。

在第一步中,使用预训练的单目深度估计网络从每个RGB图像中提取深度图 ( �� )。第二步中,使用由初始值 ( Θ0=[��,��,��,��,��,��]� ) 参数化的刚性变换 ( ���∈�4×4),首先将每个点云转换为三维相机坐标系 (�� ),然后进一步投影到相机光学坐标系 ( ��� )。投影是基于双球相机模型和投影相机矩阵 ( �∈�3×4 ) 完成的。

对于每个深度图点云对 { (��,��)} ,我们得到了一组 ( �≤� ) 个像素,3D LiDAR点被投影到这些像素上。从像素中我们可以直接提取相应的图像深度特征 ( ��=��1,��2,…,��� ),通过从深度图中获取相应的值来实现。匹配的点云深度特征 ( ��=��1,��2,…,��� ) 则使用每个三维点到LiDAR坐标系原点的欧几里得距离来计算。通过归一化直方图表示,我们使用这两组特征近似它们的互信息(MI):

��(��,��,Θ)=�(�Θ�)+�(�Θ�)−�(�Θ�,�Θ�)

MI值直接取决于外部参数 ( Θ )。为了获得更稳健的估计,对整个输入集合的MI值进行平均。最后,使用平均MI作为目标函数,该函数由外参参数化,并将其最大化以获得正确的外参参数。优化使用Powell的BOBYQA算法,用于解决无导数的有界优化问题。

实验

精度表现

image

image

失效检测

展示了三个指标的数值:互信息、数值一阶导数和数值二阶导数。使用了50对图像-点云,这些图像-点云是在三分钟的驾驶片段中获取的,用于计算每个指标。在校准的真实值和1°、3°误差值处的指标数值在图4中展示。

image

image

image

总结一下

提出了一种利用相机单目深度估计和激光雷达深度特征之间的互信息进行连续在线外参校准的算法,其适用于汽车连续在线外参校准应用,未来的工作可以包括:

  • 探索单目深度估计和激光雷达互信息的统计特性

  • 了解与使用数据量的关系

  • 更全面的置信度指标和强大的分类器

  • 扩展到更多的相机和激光雷达模型

参考

[1] Continuous Online Extrinsic Calibration of Fisheye Camera and LiDAR

这篇关于高精度端到端在线校准环视相机和LIDAR(精度0.2度内!无需训练数据)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/882735

相关文章

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、

C#使用iText获取PDF的trailer数据的代码示例

《C#使用iText获取PDF的trailer数据的代码示例》开发程序debug的时候,看到了PDF有个trailer数据,挺有意思,于是考虑用代码把它读出来,那么就用到我们常用的iText框架了,所... 目录引言iText 核心概念C# 代码示例步骤 1: 确保已安装 iText步骤 2: C# 代码程

Pandas处理缺失数据的方式汇总

《Pandas处理缺失数据的方式汇总》许多教程中的数据与现实世界中的数据有很大不同,现实世界中的数据很少是干净且同质的,本文我们将讨论处理缺失数据的一些常规注意事项,了解Pandas如何表示缺失数据,... 目录缺失数据约定的权衡Pandas 中的缺失数据None 作为哨兵值NaN:缺失的数值数据Panda

C++中处理文本数据char与string的终极对比指南

《C++中处理文本数据char与string的终极对比指南》在C++编程中char和string是两种用于处理字符数据的类型,但它们在使用方式和功能上有显著的不同,:本文主要介绍C++中处理文本数... 目录1. 基本定义与本质2. 内存管理3. 操作与功能4. 性能特点5. 使用场景6. 相互转换核心区别

python库pydantic数据验证和设置管理库的用途

《python库pydantic数据验证和设置管理库的用途》pydantic是一个用于数据验证和设置管理的Python库,它主要利用Python类型注解来定义数据模型的结构和验证规则,本文给大家介绍p... 目录主要特点和用途:Field数值验证参数总结pydantic 是一个让你能够 confidentl

JAVA实现亿级千万级数据顺序导出的示例代码

《JAVA实现亿级千万级数据顺序导出的示例代码》本文主要介绍了JAVA实现亿级千万级数据顺序导出的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 前提:主要考虑控制内存占用空间,避免出现同时导出,导致主程序OOM问题。实现思路:A.启用线程池

在Android中使用WebView在线查看PDF文件的方法示例

《在Android中使用WebView在线查看PDF文件的方法示例》在Android应用开发中,有时我们需要在客户端展示PDF文件,以便用户可以阅读或交互,:本文主要介绍在Android中使用We... 目录简介:1. WebView组件介绍2. 在androidManifest.XML中添加Interne

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

PHP轻松处理千万行数据的方法详解

《PHP轻松处理千万行数据的方法详解》说到处理大数据集,PHP通常不是第一个想到的语言,但如果你曾经需要处理数百万行数据而不让服务器崩溃或内存耗尽,你就会知道PHP用对了工具有多强大,下面小编就... 目录问题的本质php 中的数据流处理:为什么必不可少生成器:内存高效的迭代方式流量控制:避免系统过载一次性

C#实现千万数据秒级导入的代码

《C#实现千万数据秒级导入的代码》在实际开发中excel导入很常见,现代社会中很容易遇到大数据处理业务,所以本文我就给大家分享一下千万数据秒级导入怎么实现,文中有详细的代码示例供大家参考,需要的朋友可... 目录前言一、数据存储二、处理逻辑优化前代码处理逻辑优化后的代码总结前言在实际开发中excel导入很