经典文献阅读之--P2O-Calib(利用点对空间遮挡关系的相机-激光雷达标定)

Tip: 如果你在进行深度学习、自动驾驶、模型推理、微调或AI绘画出图等任务,并且需要GPU资源,可以考虑使用UCloud云计算旗下的Compshare的GPU算力云平台。他们提供高性价比的4090 GPU,按时收费每卡2.6元,月卡只需要1.7元每小时,并附带200G的免费磁盘空间。通过链接注册并联系客服,可以获得20元代金券(相当于6-7H的免费GPU资源)。欢迎大家体验一下~

0. 简介

本文介绍了《P2O-Calib: Camera-LiDAR Calibration Using Point-Pair Spatial Occlusion Relationship》:利用点对空间遮挡关系的相机-激光雷达标定。传感器精确且鲁棒的标定结果被认为是自动驾驶和机器人领域中后续研究的一个重要组成部分。目前涉及3D激光雷达和单目相机之间外参标定的工作主要着重于基于目标和无目标的方法。基于目标的方法通常由于限制(例如额外的目标设计和目标放置限制)而离线使用。目前的无目标方法在各种环境中均存在特征不确定性和特征误匹配的问题。为了缓解这些限制,本文提出了一种新型的基于2D-3D边缘点提取的无目标标定方法,其使用3D空间中的遮挡关系。基于提取的2D-3D点对,我们进一步提出了一种遮挡引导的点匹配方法,其提升了标定精度并且降低了计算成本。为了验证本文方法的有效性,我们在KITTI数据集的现实图像上定性和定量地评估了方法的性能。结果表明,本文方法优于现有的无目标方法,实现了低误差和高鲁棒性,这有助于依赖高质量相机-激光雷达标定的实际应用。

1. 主要贡献

本文提出了一种新颖的无目标外部标定方法,该方法利用统一的2D-3D遮挡特征,在各种场景下实现了稳健的估计。对于摄像头图像的特征提取,我们之前的工作[15]引入了像素对遮挡关系的概念,使我们能够提取带有空间遮挡信息的图像边缘点。在这项工作中,我们利用遮挡关系的定义,在LiDAR点云上进行3D遮挡边缘提取,并开发了一种利用提取的2D-3D点对的新型标定方法。此外,遮挡关系为更稳健的跨模态特征关联提供了有益的指导,可以容忍来自摄像头-LiDAR外部参数初始猜测的更大误差。与在真实世界数据集KITTI上评估的先前工作相比,所提出的方法提高了摄像头-LiDAR外部标定的准确性和泛化能力。

这项工作的主要贡献包括:

  • 基于遮挡关系设计了系统化的摄像头-LiDAR外部标定流程。它适用于在线现场标定,并且无需外部标定目标。
  • 提出了一种新颖的点云特征提取方法及相应的2D-3D边缘特征匹配方法。所提出的方法利用定向遮挡信息减少了特征注册不匹配,并且对不完美的特征提取具有稳健性。
  • 在合成和实际数据集上的实验验证了所提出方法的有效性,包括消融实验以及对准确性、稳健性和泛化能力的检验。我们将发布我们的代码和数据集。

2. 具体方法

这一部分详细阐述了提出的摄像头-LiDAR外参校准方法。该流程包括三个步骤:首先,我们训练了一个P2ORNet神经网络,用于在RGB图像上进行像素级遮挡边缘识别,并从给定的点云中提取3D遮挡边缘。然后,我们提出了一种基于遮挡的匹配策略,用于在2D像素和3D点之间制定perspective-n-point(PnP)问题。随后,通过优化点到线的重投影误差,最终获得外参校准矩阵。图2勾勒了提出的框架,接下来的小节将详细介绍遮挡关系的定义以及每个组件中的方法。

在这里插入图片描述

图2. 所提出方法的架构。我们的方法首先从输入的2D-3D数据中提取2D-3D遮挡边特征点,然后应用遮挡引导的特征匹配来对齐它们。随后,对匹配的2D-3D点对进行优化,以恢复相机和激光雷达之间的外部参数。左右遮挡边点着以绿色和红色标记,而上下遮挡边点着以黄色和蓝色标记。为了清晰起见,在2D-3D特征匹配模块中仅可视化了左右遮挡边。最佳观看方式为数字版本。


3. 2D-3D点对定义

在本节中,我们正式定义了2D-3D遮挡边缘的概念,并使用遮挡关系来定义图像2D点和LiDAR 3D点之间的点对。如图3(a)所示,我们考虑一个位于 C C C处的摄像机和一个位于 L L L处的LiDAR,它们观察到3D场景的空间表面 ( S i , S j ) (S_i,S_j) SiSj,参考世界坐标系 W W W。从LiDAR坐标系 L L L到摄像机坐标系 C C C的SE(3)变换是 T L C T^C_L TLC,而在本工作中,估计 T L C T^C_L TLC的任务被定义为外部标定。我们注意到 q i q_i qi q j q_j qj是3D点 P i P_i Pi P j P_j Pj在表面 S i S_i Si S j S_j Sj上的摄像机图像平面2D投影(像素)。从 C C C L L L的角度来看, S i S_i Si S j S_j Sj的前面,遮挡边缘位于 S i S_i Si S j S_j Sj非遮挡部分的边界区域。在左侧遮挡边缘区域,我们将 q i q_i qi q j q_j qj标记为2D遮挡边缘特征点 P i P_i Pi P j P_j Pj则是3D遮挡边缘特征点。指向 q j q_j qj的黑色箭头表示 S i S_i Si3D空间中从右到左遮挡 S j S_j Sj的边缘区域。通过为每个像素对分配这样的方向,遮挡边缘特征点可以进一步分为具有不同方向的特征点(参见图3(b)),例如,在本示例中的左遮挡边缘特征点 q i q_i qi q j q_j qj。从表面之间的遮挡关系开始,我们在这里正式定义每个2D-3D点对由LiDAR捕获的3D特征点和摄像机捕获的2D特征点组成,例如 ( q i , P i ) (q_i,P_i) qiPi ( q j , P j ) (qj,Pj) qjPj

在这里插入图片描述

图3. 2D-3D遮挡边缘点对定义的示意图:(a) 图像左侧遮挡边缘区域标为绿色,对应的2D遮挡边缘点(例如, q i q_i qi, q j q_j qj)和3D遮挡边缘点(例如, P i P_i Pi, P j P_j Pj),(b):在存在三个物体1、2、3遮挡的情况下,图像左右遮挡边缘和上下遮挡边缘。

4. 图像中的遮挡边缘提取

  1. 图像连通性-8邻域:对于每个图像像素 q i q_i qi,它有8个直接相邻像素,包括4个水平/垂直相邻像素和4个对角线相邻像素。因此,一个图像像素可以与其8个相邻像素配对形成8个像素对。
  2. 2D遮挡边缘估计:如第3节所介绍的,3D中的表面对遮挡关系可以表示为2D中的像素对遮挡关系。对于每对有效的图像像素 ( q i , q j ) (q_i,q_j) qiqj,神经网络P2ORNet [15]对三种可能的遮挡关系状态进行分类 q i q_i qi遮挡 q j q_j qj q j q_j qj遮挡 q i q_i qi和( q i q_i qi q j q_j qj)之间没有遮挡。估计的图像遮挡边缘位于P2ORNet预测存在像素对之间遮挡的图像区域上。在本工作中,我们选择连接沿图像水平/垂直轴的像素对,并从预测结果中生成左右(L,R)和上下(U,B)遮挡边缘。我们将带有方向D的 Q D \mathbb{Q}^D QD图像2D遮挡边缘特征点集合,而 q i D q^D_i qiD是第 i i i个点。

在这里插入图片描述

…详情请参照古月居

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

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

相关文章

Android 13.0 Launcher3单层模式workspace中app列表页排序功能实现

1.概述 在13.0的定制化开发中,对于Launcher3的功能定制也是好多的,而对于单层app列表页来说排序功能的开发,也是常有的功能这就需要了解加载app数据的流程,然后根据需要进行排序就可以了,接下来就来实现这个功能 如图: 2. Launcher3单层模式workspace中app列表页排序功能…

[AI Google] 在 Android 上以更多方式体验 Google AI

总结 通过将 AI 直接构建到 Android 操作系统中,Google 正在重新想象用户与手机的互动方式。最新的更新包括用于家庭作业帮助的 Circle to Search、增强的 Gemini 助手功能以及通话期间的实时诈骗检测。Circle to Search 现在通过逐步指导帮助学生解决数学和物理问…

ChatTTS 开源文本转语音模型本地部署、API使用和搭建WebUI界面(建议收藏)

ChatTTS(Chat Text To Speech)是专为对话场景设计的文本生成语音(TTS)模型,特别适用于大型语言模型(LLM)助手的对话任务,以及诸如对话式音频和视频介绍等应用。它支持中文和英文,还可以穿插笑声、说话间的停顿、以及语…

Boom 3D软件最新版下载及详细安装教程

值得肯定的是Boom 3D最新版新增的Boom音量控制器和Controlled Boost功能为使用者提供了一个完美的控制,通过一个整齐的设计切换栏的系统音频输出,帮助他们轻松调整音量,从而让他们实现理想的音频输出,有需要的欢迎来开心电玩下载使…

如何从清空的回收站恢复照片

担心如何从清空的回收站中恢复已删除的照片?您删除的文件和文件夹暂时存储在 Windows 回收站中。它使 Windows 用户能够快速恢复意外或故意丢失的项目。但是,为了释放计算机驱动器上的某些空间,有时可能需要清理回收站。 然而,有…

B3900 [NICA #3] 数字显示屏

[NICA #3] 数字显示屏 题目描述 有一块显示屏,显示着 { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 } \{\verb!0!,\verb!1!,\verb!2!,\verb!3!,\verb!4!,\verb!5!,\verb!6!,\verb!7!,\verb!8!,\verb!9!\} {0,1,2,3,4,5,6,7,8,9} 上的数字。每个数字都由如下图所示的…

后端服务器启动访问

VisualStudioCode(VSCode) 服务器启动 浏览器中测试访问 http://localhost:3000

【机器学习基础】Python编程10:五个实用练习题的解析与总结

Python是一种广泛使用的高级编程语言,它在机器学习领域中的重要性主要体现在以下几个方面: 简洁易学:Python语法简洁清晰,易于学习,使得初学者能够快速上手机器学习项目。 丰富的库支持:Python拥有大量的机…

C#操作MySQL从入门到精通(19)——插入数据

前言: 谈到数据库,大家最容易脱口而出的就是增删改查,在本篇文章之前一直都是说的各种查询,本文就是说的增删改查中的增,所谓增也就是增加数据的意思,插入数据就是增加数据。 本文测试使用的数据库如下: 1、插入完整行 所谓插入完整行就是一行所有列的数据都是自己插…

Java 习题集

💖 单选题 💖 填空题 💖 判断题 💖 程序阅读题 1. 读代码写结果 class A {int m 5;void zengA(int x){m m x;}int jianA(int y){return m - y;} }class B extends A {int m 3;int jianA(int z){return super.jianA(z) m;} …

屏幕空间环境光遮蔽(SSAO)在AI绘画中的作用

引言: 随着人工智能技术的不断发展,AI绘画已经逐渐走进了人们的视野。作为一种新兴的艺术形式,AI绘画通过算法和模型来生成具有艺术感的图像。在这个过程中,屏幕空间环境光遮蔽(SSAO)技术发挥着重要作用。本…

【调整堆】(C++ 代码实现 注释详解)

自定义结构体: #define sz 105 typedef struct node{int length;int l[sz]; }SqList; 调整堆的函数: HeapAdjust函数思路说明: //目标:将以s为根的子树调整为大根堆 //具体操作:将路径上比s大的都往上移动,s往下移…

SpringBoot+Vue学生宿舍管理系统(前后端分离)

技术栈 JavaSpringBootMavenMySQLMyBatisVueShiroElement-UI 角色对应功能 学生宿管员管理员 功能截图

“论边缘计算及应用”必过范文,突击2024软考高项论文

论文真题 边缘计算是在靠近物或数据源头的网络边缘侧,融合网络、计算、存储、应用核心能力的分布式开放平台(架构),就近提供边缘智能服务。边缘计算与云计算各有所长,云计算擅长全局性、非实时、长周期的大数据处理与分析,能够在…

Leetcode 力扣 112. 路径总和 (抖音号:708231408)

给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。 叶子节点 是指没有子节点…

ctfshow-web入门-命令执行(web42知识铺垫与四种常见截断方法)

目录 1、知识铺垫 (1)文件描述符 (2)/dev/null 2、代码审计 3、命令分隔 (1)使用分号 ; (2)使用逻辑或 || (3)使用 && 或者 & 4、%0a …

整型变量、赋值语句、cin 语句

1、变量: 在程序运行期间其值可以改变的量称为变量。变量是代码中最重要的元素。每个变量应该有一个名字,同一个程序内的变量名不重复。 请注意区分变量名和变量值这两个不同的概念(相当于张三的名字和他本人是不同的概念一样)。…

每日一题——Python实现PAT甲级1077 Kuchiguse(举一反三+思想解读+逐步优化)

一个认为一切根源都是“自己不够强”的INTJ 个人主页:用哲学编程-CSDN博客专栏:每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 我的写法 代码点评 时间复杂度分析 空间复杂度分析 总结 我要更强 方案1&#x…

C语言 | Leetcode C语言题解之第140题单词拆分II

题目&#xff1a; 题解&#xff1a; struct Trie {int ch[26];bool flag; } trie[10001];int size;void insert(char* s, int sSize) {int add 0;for (int i 0; i < sSize; i) {int x s[i] - a;if (trie[add].ch[x] 0) {trie[add].ch[x] size;memset(trie[size].ch, 0…

mnist的t-SNE二维空间可视化MATLAB

%% filename ‘mnist’; digitDatasetPath fullfile(matlabroot,‘toolbox’,‘nnet’,‘nndemos’, … ‘nndatasets’,‘DigitDataset’); imds imageDatastore(digitDatasetPath, … ‘IncludeSubfolders’,true,‘LabelSource’,‘foldernames’); %% labelCount coun…