3D雷达和相机联合标定:一种灵活且精确的基于目标的外参标定方法

3D雷达和相机联合标定:一种灵活且精确的基于目标的外参标定方法

  • 论文链接:https://arxiv.org/pdf/2307.15264.pdf

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

摘要

本文介绍了3D雷达和相机联合标定:一种灵活且精确的基于目标的外参标定方法。自动驾驶的进展与传感器融合是分不开的。异构传感器由于其互补性质而被广泛应用于传感器融合,其中雷达和相机是最常装备的传感器。内参和外参标定是传感器融合中的必要步骤。外参标定与传感器自身的参数无关,并且在传感器安装之后进行,这在很大程度上决定了传感器融合的精度。很多基于目标的方法需要繁琐的操作过程和精心设计的实验条件,这使得它们极具挑战性。为此,我们提出了一种灵活、易于复现和精确的3D雷达和相机外参标定方法。本文所提出的方法不需要专门设计的标定环境,而是在地面上放置一个角点反射器(CR),同时使用机器人操作系统(ROS)迭代采集雷达和相机数据,并且基于它们的时间戳获取雷达-相机点的对应关系,然后使用这些点的对应关系作为输入来求解PnP问题,并且最终获得外参标定矩阵。此外,RANSAC被用于提高鲁棒性,而LM非线性优化算法用于改善精度。多个受控环境实验以及真实世界实验证明了本文所提出方法的效率和精度(AED误差为15.31个像素,Acc达到89%)。

主要贡献

本文的贡献总结如下:

1)本文提出了一种基于目标的3D雷达-相机标定方法,其容易操作、易于复现并且结果精确;

2)本文方法使用一个角点反射器作为标定目标,不仅避免了多个标定目标或者支撑它们的三脚架引起的雷达反射干扰,并且有助于其它研究员方便复现实验;

3)本文方法进行异常值滤除以缓解雷达检测稳定性,并且采用RANSAC和LM优化算法确保标定鲁棒性和精确性;

4)多个受控环境实验以及真实世界实验证明了本文所提出方法的效率和精度。

论文图片和表格

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

image

image

image

image

image

image

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

总结

在本文中,我们提出了一种3D雷达和相机的外参标定方法。该方法仅使用单个角点反射器作为标定目标,并且对操作没有严格的要求或者规定。所有操作都是将角点反射器自由放置在任意开放空间,并且重复多次以获得足够的标定数据。这使得该方法灵活且易于复现。一系列的受控环境和真实世界实验(包括不同的实验场景和实验目标)证明了所提出方法的精度和鲁棒性。具体而言,其AED为15.31个像素,CDSD为9.40,而人类目标或者车辆目标的ACC分别为89%和66%。今后,我们将探索基于所提出方法的在线标定方法,并且研究精确标定不在同一装置中的传感器的方法。

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

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

相关文章

精通并发【基础三】:线程安全有哪些思路

不可变 final无锁编程,将数据处理映射到指定的线程中处理ThreadLocal互斥(SyncReentrantLockCAS) 在多线程编程中,线程安全是指当多个线程访问某个类时,这个类始终能表现出正确的行为。实现线程安全可以通过多种方式&…

Android 10.0 双sim卡区分SIM卡1和SIM卡2来电通知功能实现

1.前言 在10.0的rom系统定制化开发中,在一些产品支持双卡双待的功能中,如果两张sim卡都是移动卡,在来电通知中,就不容易区分 到底是哪张sim卡来的电话信息都显示移动信息 所以为了区分sim卡就需要在sim描述的时候 添加是哪张sim卡,接下来就来实现 这些功能 2.双sim卡区…

【C++】编程规范之表达式原则

表达式中变量的位置 在编写表达式时,将变量放置在右边,可以提高代码的可读性和可理解性。这种做法符合自然语言的阅读习惯,使得代码更易于理解。 // Good if (5 x) {// do something }// Avoid if (x 5) {// do something }不变量和资源申…

WPF中动画教程(DoubleAnimation的基本使用)

实现效果 今天以一个交互式小球的例子跟大家分享一下wpf动画中DoubleAnimation的基本使用。该小球会移动到我们鼠标左键或右键点击的地方。 该示例的实现效果如下所示&#xff1a; 页面设计 xaml如下所示&#xff1a; <Window x:Class"AnimationDemo.MainWindow&qu…

vue使用iview导航栏Menu activeName不生效

activeName不生效 一、问题一、解决方案&#xff0c; 一、问题 根据ivew官网的提示&#xff0c;设置了active-name和open-names以后&#xff0c;发现不管是设置静态是数据还是设置动态的数据&#xff0c;都不生效 一、解决方案&#xff0c; 在设置动态名称的时候&#xff0c…

【Erlang】Linux(CentOS7)安装Erlang和RabbitMQ

一、系统环境 查版本对应&#xff0c;CentOS-7&#xff0c;选择Erlang 23.3.4&#xff0c;RabbitMQ 3.9.16 二、操作步骤 安装 Erlang repository curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash安装 Erlang package s…

Yocto理论基础之layer

Yocto理论基础之layer 一、layer介绍二、layer最佳实践三、创建layer 一、layer介绍 在poky源码中我们基本上在每一个meta layer中都能看到一个layer.conf,里面大致内容如下&#xff1a; # We have a conf and classes directory, add to BBPATH BBPATH . ":${LAYERDIR}…

如何使用Python进行文件读写操作?

如何使用Python进行文件读写操作&#xff1f; Python是一种功能强大的编程语言&#xff0c;它提供了丰富的库和工具&#xff0c;使得文件读写操作变得简单而高效。在Python中&#xff0c;可以使用内置的open()函数来进行文件读写操作。下面将详细介绍如何使用Python进行文件读…

【SpringCloud】Ribbon 负载均衡

目 录 一.负载均衡原理二.源码跟踪1. LoadBalancerIntercepor2. LoadBalancerClient3. 负载均衡策略 IRule4. 总结 三.负载均衡策略1.负载均衡策略2.自定义负载均衡策略 四.饥饿加载 在 order-service 中 添加了 LoadBalanced 注解&#xff0c;即可实现负载均衡功能&#xff0c…

Mysql数据库的存储引擎的区别

MyISAM引擎 MyISAM是MySQL的默认数据库引擎&#xff08;5.5版之前&#xff09;。虽然性能极佳&#xff0c;而且提供了大量的特性&#xff0c;包括全文索引、压缩、空间函数等&#xff0c;但MyISAM不支持事务和行级锁&#xff0c;而且最大的缺陷就是崩溃后无法安全恢复。 Inno…

5.2 SSH和交换机端口安全概述

交换机的安全是一个很重要的问题&#xff0c;因为它可能会遭受到一些恶意的攻击&#xff0c;例如MAC泛洪攻击、DHCP欺骗和耗竭攻击、中间人攻击、CDP 攻击和Telnet DoS 攻击等&#xff0c;为了防止交换机被攻击者探测或者控制&#xff0c;必须采取相应的措施来确保交换机的安全…

Spark面试整理-讨论DataFrame和DataSet的区别

在Apache Spark中,DataFrame和Dataset是两种核心的数据结构,它们用于处理结构化数据。尽管它们有很多相似之处,但也存在一些关键的区别。理解这些区别有助于在不同的应用场景中做出适当的选择。 DataFrame 定义:DataFrame是一个分布式的数据集合,类似于关系数据库中的表格…

【Error】Uncaught TypeError: Cannot read properties of undefined (reading ‘get’)

报错原因&#xff1a; 返回值为undefined 解决&#xff1a; vue3可用&#xff1f;

高项(2)信息化和信息系统基础知识1-软件测试-软件需求-软件架构-中间件-数据仓库-七层协议

1.国家信息化体系6要素 法律法规&#xff0c;是保障信息资源&#xff0c;信息资源的开发和利用是核心任务&#xff0c;是国家信息化取得实效的关键信息网络&#xff0c;是基础信息技术应用&#xff0c;是6要素中的龙头信息技术和产业&#xff0c;是物质保障信息化人才&#xff…

RUST语言变量与数据类型使用

使用之前了解: fn main() 表示程序入口点 println!("要输出的内容"); 表示格式化输出 变量与常量声明: let 变量:变量类型 变量值;let mut 变量:变量类型 变量值; const 常量:常量类型 常量值 如果 声明时不指定类型,将根据赋值类型自动推导 变量类型参与下…

在@Value中的Spring EL的使用

在 Spring 中&#xff0c;${} 语法用于引用配置文件中的属性值&#xff0c;而 #{} 语法用于使用 SpEL&#xff08;Spring Expression Language&#xff09;表达式。 Spring EL&#xff08;Expression Language&#xff09;是一种强大的表达式语言&#xff0c;用于在 Spring 应用…

wife_wife【web 攻防世界】

大佬的wp:WEB&#xff1a;Wife_wife-CSDN博客 知识点&#xff1a; prototype是new class 的一个属性&#xff0c;即__proto__指向new class 的prototype属性__proto__如果作为json代码解析的话会被当成键名处理&#xff0c;但是如果是在类中的话则会被当成子类的原型 如let o…

如何防止IP泄露,安全匿名上网?

当互联网成为每个家庭的重要组成部分后&#xff0c;IP地址就成了你的虚拟地址。您的请求从该地址开始&#xff0c;然后 Internet 将消息发送回该地址。那么&#xff0c;您担心您的地址被泄露吗&#xff1f; 对于安全意识高或者某些业务需求的用户&#xff0c;如果您正在寻找保护…

【Spring】使用@Bean和@Import注解配置Bean,与Bean的实例化

目录 1、bean是什么 2、配置bean 2.1、使用Bean注解配置Bean 2.2、使用Import注解配置Bean 3、实例化Bean 1、bean是什么 在 Spring 中&#xff0c;Bean 是指由 Spring 容器管理的对象。Spring IOC 容器负责创建、配置和管理这些 Bean 对象的生命周期。Spring IOC 容器会管…

C/C++混合项目,程序运行报错:未定义函数符号

参考 C/C项目混合编译 extern "C" 详解 《C Primer Plus》函数重载篇章 环境 系统&#xff1a;ubuntu20 编译器&#xff1a;gcc 问题 C 和 C 源码的混合项目&#xff0c;编译成功&#xff0c;但是程序运行报错找不到函数符号。 背景 项目中使用第三方的代码&a…