高精度端到端在线校准环视相机和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

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

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

相关文章

分布式锁实战

4、分布式锁 4.1 、基本原理和实现方式对比 分布式锁:满足分布式系统或集群模式下多进程可见并且互斥的锁。 分布式锁的核心思想就是让大家都使用同一把锁,只要大家使用的是同一把锁,那么我们就能锁住线程,不让线程进行&#x…

python爬虫学习第十五天-------ajax的get和post请求

嗨嗨嗨!兄弟姐妹大家好哇!今天我们来学习ajax的get和post请求 一、了解ajax Ajax(Asynchronous JavaScript and XML)是一种在 Web 开发中用于创建交互式网页应用程序的技术。通过 Ajax,网页可以在不重新加载整个页面…

一文解析智慧城市,人工智能技术将成“智”理主要手段

长期以来,有关智慧城市的讨论主要围绕在技术进步方面,如自动化、人工智能、数据的公开以及将更多的传感器嵌入城市以使其更加智能化。实际上,智慧城市是一个关于未来的设想,其重要原因在于城市中存在各种基础设施、政治、地理、财…

操作系统(7分)

进程管理 进程的状态 前趋图 表达哪些任务可以先运行,任务间运行的先后顺序。 进程的同步与互斥 在多道程序环境下,操作系统必须采取相应措施处理好进程之间的制约关系。进程同步的主要任务是对多个有制约关系的进程在执行次序上进行协调,…

插入电脑的u盘文件删除了怎么恢复?删除文件恢复的5个方法

随着科技的发展,U盘已经成为我们日常生活中不可或缺的一部分。然而,使用U盘时,有时我们可能会不小心删除一些重要的文件,这可能会给我们带来很大的困扰。那么,当U盘中的文件被删除后,我们该如何恢复呢&…

Spark编程基础

一、RDD入门 1.RDD是什么? RDD是一个容错的、只读的、可进行并行操作的数据结构,是一个分布在集群各个节点中的存放元素的集合,即弹性分布式数据集。 2.RDD的三种创建方式 第一种是将程序中已存在的集合(如集合、列表、数组&a…

批量导入svg文件作为图标使用(vue3)vite-plugin-svg-icons插件的具体应用

目录 需求svg使用简述插件使用简述实现安装插件1、配置vite.config.ts2、src/main.ts引入注册脚本3、写个icon组件4、使用组件 需求 在vue3项目中,需要批量导入某个文件夹内数量不确定的svg文件用来作为图标,开发完成后能够通过增减文件夹内的svg文件&a…

OSPF基础实验

一、实验拓扑 二、实验要求 1、按照图示配置IP地址 2、R1,R2,R3运行OSPF使内网互通,所有接口(公网接口除外)全部宣告进 Area 0;要求使用环回口作为Router-id 3、业务网段不允许出现协议报文 4、R4模拟互…

Apache Log4j2 Jndi RCE CVE-2021-44228漏洞原理讲解

Apache Log4j2 Jndi RCE CVE-2021-44228漏洞原理讲解 一、什么是Log4j2二、环境搭建三、简单使用Log4j2四、JDNI和RMI4.1、启动一个RMI服务端4.2、启动一个RMI客户端4.3、ldap 五、漏洞复现六、Python批量检测 参考视频:https://www.bilibili.com/video/BV1mZ4y1D7K…

ARM、X86、RISC-V三分天下

引入: 简单的介绍一下X86、ARM、RISC-V三种cpu架构的区别和应用场景。 目录 简单概念讲解 1. X86架构 2. ARM架构 3. RISC-V架构 应用场景 X86、ARM和RISC-V是三种不同的CPU架构,它们在设计理念、指令集和应用场景上有一些区别。 简单概念讲解 1. X…

33. UE5 RPG使用增强输入激活GameplayAbility(三)

在前面的文章,我们实现了使用GameplayTag和InputAction的对应绑定的数据,并且添加到了增强输入映射的上下文中,实现了通过按键打印对应的GameplayTag,这只是我们基础需要制作的。目的主要是为了实现在GameplayAblity上面设置对应的…

计算机网络 实验指导 实验16

实验16 PPP配置实验 1.实验拓扑图 实验10讲了如何添加Se的接口 名称接口IP地址Router1se0/0/0192.168.1.1/24Router0se0/0/0192.168.1.2/24se0/0/1192.168.2.1/24Router2se0/3/0192.168.2.2/24 2.实验目的 (1)掌握PPP的基本配置步骤和方法 &#xf…

linux之文件系统、inode和动静态库制作和发布

一、背景 1.没有被打开的文件都在磁盘上 --- 磁盘级文件 2.对磁盘级别的文件,我们的侧重点 单个文件角度 -- 这个文件在哪里,有多大,其他属性是什么? 站在系统角度 -- 一共有多少文件?各自属性在哪里&#xff1f…

Hive 之 UDF 运用(包会的)

文章目录 UDF 是什么?reflect静态方法调用实例方法调用 自定义 UDF(GenericUDF)1.创建项目2.创建类继承 UDF3.数据类型判断4.编写业务逻辑5.定义函数描述信息6.打包与上传7.注册 UDF 函数并测试返回复杂的数据类型 UDF 是什么? H…

数组-二维数组

本笔记为47 数组-二维数组定义方式_哔哩哔哩_bilibili的学习笔记 二维数组 定义方式 注: 常用第二种方式定义,原因:第二种方式更清晰列数可以省行数不可省 ,详见上述第四种定义方式 示例: 二维数组 数组名 作用&am…

【QT+QGIS跨平台编译】063:【qca-logger+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

点击查看专栏目录 文章目录 一、qca-logger插件介绍二、QCA下载三、文件分析四、pro文件五、编译实践5.1 windows下编译5.2 linux下编译5.3 macos下编译一、qca-logger插件介绍 QCA::Logger 是 Qt Cryptographic Architecture (QCA) 库中的一个类,它提供了一个简单而灵活的日志…

PostgrerSQL基本使用与数据备份

前言 上篇了解了 PostgrerSQL 数据库的部署PostgreSQL关系型数据库介绍与部署-CSDN博客,本篇将继续就其基本操作、备份与还原内容做相关介绍。 目录 一、数据库的操作 1. 本机登录 2. 开启远程登录 2.1 开放远程端口 2.2 编辑配置文件 2.3 修改配置密码 2.…

xss.pwnfunction-Ma Spaghet!

根据代码得知 这个是根据get传参的并且是由someboby来接收参数的 所以 <script>alert(1137)</script> js并没有执行因为 HTML5中指定不执行由innerHTML插入的<script>标签 所以 ?somebody<img%20src1%20onerror"alert(1337)"> 这样就成…

PowerJob 分布式任务调度简介

目录 适用场景 设计目标 PowerJob 功能全景 任务调度 工作流 分布式计算 动态容器 什么是动态容器? 使用场景 可维护性和灵活性的完美结合 实时日志&在线运维 PowerJob 系统组件 PowerJob 应用场景 PowerJob 的优势 PowerJob&#xff08;原OhMyScheduler&…

Pytorch数据结构:GPU加速

文章目录 一、GPU加速1. 检查GPU可用性&#xff1a;2. GPU不可用需要具体查看问题3. 指定设备4.将张量和模型转移到GPU5.执行计算&#xff1a;6.将结果转移回CPU 二、转移原理1. 数据和模型的存储2. 数据传输3. 计算执行4. 设备管理5.小结 三、to方法的参数类型 一、GPU加速 .…