3D线段SFM建图

news2024/12/27 13:09:08

文章:3D Line Mapping Revisited

作者:Shaohui Liu,Yifan Yu,Remi Pautrat ,Marc Pollefeys,Viktor Larsson

编辑:点云PCL

代码: 

https://github.com/cvg/limap(CVPR 2023)

欢迎各位加入知识星球,获取PDF论文,欢迎转发朋友圈。文章仅做学术分享,如有侵权联系删文。

公众号致力于点云处理,SLAM,三维视觉,高精地图等领域相关内容的干货分享,欢迎各位加入,有兴趣的可联系dianyunpcl@163.com。未经作者允许请勿转载,欢迎各位同学积极分享和交流。

摘要

与稀疏关键点相比,少数线段建图可以简洁地表示环境结构信息,因为它们通常勾勒出主要的结构元素,除了提供强大的几何线索外,它们在城市景观和室内场景中也无处不在。尽管具有明显的优势,但当前基于线段的重建方法远远落后于基于点的方法。在本文中,我们旨在通过引入LIMAP(3D线地图库)来填补这一差距,该库能够从多视角图像中鲁棒高效地创建3D线地图。通过重新审视线段三角化的退化问题,精心设计的评分和跟踪构建,以及利用线段的重叠、平行和正交等结构先验知识,实现了这一目标。我们的代码与现有的基于点的运动结构方法无缝集成,并可以利用它们的3D点进一步改善线段重建。此外,该方法还能够恢复线段与点/消失点(VPs)之间的3D关联图。通过详尽的实验证明,LIMAP在3D线路地图方面明显优于现有方法。我们还展示了两个应用示例:视觉定位和捆集调整,在这些示例中,将线段与点结合起来可以获得最佳结果。代码可在https://github.com/cvg/limap 上获取。

cb3c477752ee6a38a6deded18e3f1bb5.png

图1. 本文提出了一个鲁棒的方案用于3D线段建图(b),相比广泛使用的点建图(a),它提供了更强的几何线索来描述场景布局。我们的方案的一部分成功归功于对结构先验的建模,例如重合(c),平行/正交(d)。与此同时,与线段和点/消失点(VPs)之间的相应3D关联图也是我们系统的特点。

主要贡献

本文旨在缩小基于点和基于线的地图解决方案之间的差距。提出了一种新的鲁棒地图方法LIMAP,能够与现有的开源基于点的SfM框架无缝集成。通过与研究社区共享代码,我们希望促进与线段相关的更多研究,包括低级任务(如改进线段检测和描述)和将线段整合到更高级任务(如视觉定位或密集重建)中。具体而言,本文在以下方面做出了贡献: 

  • 构建了一个新的线段建图系统,能够可靠地从多视角RGB图像中重建3D线段。与以前的方法相比,我们的线段地图更完整、更准确,并具有更强大的2D-3D轨迹关联。

  •  通过自动识别和利用结构的先验知识(如重合点和平行线)来实现这一目标。该技术贡献涵盖了线段建图的所有阶段,包括三角化提取、评分、轨迹构建和联合优化,同时输出3D线段-点/消失点关联图。 

  • 该框架具有灵活性,研究人员可以轻松更改组件(例如检测器、匹配器、消失点估计器等)或集成其他传感器数据(例如深度图或其他3D信息)。

  •  这是第一个在合成和实际数据集上进行定量评估的,以对性能进行基准测试,每个场景包含数百张图像,在这些评估中,LIMAP始终明显优于现有方法。

  •  最后通过展示在SfM中的视觉定位和捆集调整等任务中,具有鲁棒线段地图的优势,证明了与纯粹基于点的方法相比的改进效果。

主要内容

我们的方法以包含来自任何现有线段检测器的2D线段的图像集作为输入,假设每个图像的相机姿态可用(例如,来自SfM/SLAM),并且我们还可以选择利用3D点云(例如,从基于点的SfM获得)。该方案由三个主要步骤组成: 

• 线段提取生成:对于每个2D线段生成一组3D线段。 

• 评分和轨迹关联:考虑到多视角一致性,为每个线段进行评分,选择每个2D线段的最佳候选,并将它们关联成一组3D线段轨迹。 

• 联合优化:最后对3D线段轨迹进行联合非线性优化,同时与3D点和VP方向集成额外的结构先验作为软约束。图2显示了整个方案的概述。

d321ee8e828bd74b85df68eb59dfc1a2.png

图2. 方案概述,给定一组具有姿态的图像和可选的3D点,将附近的点与线关联起来,匹配线段,使用4种不同的策略进行三角测量,对3D线段提出建议进行评分,构建线段轨迹,在获得最终重建之前对所有特征进行联合优化。

线段提取生成

线段三角测量:线三角测量是根据线段在多个图像中的对应的二维投影来估计场景中线段的三维位置的过程。它涉及到找到线段与从摄像机中心射出的射线的交点。线三角测量通常通过求解一个方程组来计算线段的二维图像坐标和摄像机参数与其在场景中的三维坐标之间的关系。

点线关联:点线关联是将三维点与其在图像中对应的二维线段进行关联的任务。这种关联对于建立二维线段与其在场景中对应的三维结构之间的对应关系至关重要。通过将点与线段关联起来,我们可以利用三维点提供的几何信息来提高线段重建的准确性和稳健性。

点引导线三角测量:点引导线三角测量是一种利用三维点信息来辅助线三角测量过程的方法。通过利用场景中已经三角化的三维点,可以对线段的三角测量进行引导或约束,从而得到更准确、可靠的结果。这可以通过将已知的三维点作为三角测量方程的附加约束,或将其用作线段匹配和三角测量的参考来实现。点引导线三角测量可以帮助克服线三角测量中固有的模糊性和退化性,并提高重建线段的整体质量。

评分和轨迹关联

评分和轨迹关联是3D线条建图过程中的两个关键步骤。在为每个2D线段生成一组3D线段之后,下一步是对这些线段进行评估和评分,以确定它们作为对应线条在场景中的准确3D表示的可能性。这个评分过程涉及考虑各种因素,如提案在多个视角下的一致性、提案与观察到的2D线段之间的几何拟合度,以及符合线条重合、平行和正交等结构先验。一旦对线段进行了评分,轨迹关联步骤旨在建立2D线段与其对应的3D线条轨迹之间的对应关系。这涉及根据其评分选择每个2D线段的最佳候选对,并将它们关联成连贯的轨迹。轨迹关联过程考虑提案的空间和时间一致性,旨在确保轨迹准确地表示场景中的底层3D线条结构。评分和轨迹关联的结合有助于改进和提高3D线条建图结果的准确性。通过评估和选择最可靠的提案,并在2D线段与3D轨迹之间建立一致的关联,建图流程可以生成更完整和准确的3D线条地图,捕捉场景的高级结构信息。这些步骤在线条建图过程的整体成功中起着关键作用,并为重建的线条段的鲁棒性和可靠性做出贡献。

线段和结构的联合优化

线端和结构的联合优化是指使用优化框架同时对3D线条轨迹、3D点和场景中的其他结构元素进行优化的过程。该步骤旨在通过整合附加信息和约束来改善重建的3D线条地图的整体质量和准确性。在联合优化过程中,同时优化3D线条轨迹、3D点和可能的其他结构组件(如消失点),考虑它们之间的相互依赖关系。优化过程通过最小化目标函数来考虑各种因素,如投影误差、几何约束和场景结构的先验知识。通过联合优化线段和其他结构,流程可以以一致和连贯的方式对其进行精细调整和对齐。这有助于减少不一致性,提高整体几何准确性,并增强重建场景的全局一致性。此外,在优化过程中引入结构先验和约束进一步提高了重建的线条地图的准确性和鲁棒性。

联合优化步骤对于实现准确可靠的3D线段建图结果至关重要。它利用线段、点和其他结构提供的互补信息来精化和增强整体重建。通过同时优化所有这些元素,流程可以实现对场景更准确和完整的表示,既捕捉了线段提供的几何细节,又捕捉了3D点所捕捉的空间结构。

实验与分析

我们的第一个评估是在Hypersim数据集的前八个场景上进行的,该数据集由每个场景包含100张图像组成,并在表1中进行了报告。

9b419af5afa5c8fd9ae93008bdae41ea.png

表2显示了结果,其中我们的方法在整体上显著提高了建图质量

f5d5a376e31033dcecb298a3e38c8c49.png

图4展示了该方法与L3D++之间的定性比较。

30584d41eeb63c4b8141911b226d4bdb.png

交叉点结构和线线关系,例如平行和垂直关系,如图6所示

c30ec4ead0bf6b653f09d64daae91954.png

图7显示我们的方法生成了具有清晰结构的可靠线段图

76e22d434ca29fe27ac1e87256cdcb24.png

评分和轨迹构建,首先研究了像L3D++一样使用穷举线匹配的效果,为了进行直接比较,我们只使用线三角测量的方案,结果如表5所示。

3e1312bde2fa853de7560675bda7caf0.png

效果展示

0f6305f5f186baf01418fcda9c614f73.png

333f6c3baa87a6468596e578cefe468d.gif

总结

在本文中,我们介绍了LIMAP:一种从多视角图像中进行鲁棒的3D线条建图的库。大量实验证明,通过改进重建流程的所有阶段,该方法可以生成更完整的3D线条,并具有更高质量的轨迹关联,该方法还可以恢复线段与点/消失点之间的3D关联图,进一步展示了3D线段地图在视觉定位和捆集调整中的实用性。未来的研究方向包括增量/实时结构建图,将结构线条与纹理线条区分开来进行线段建模,以及利用更高级的结构和关系进行下游应用。

更多详细内容后台发送“知识星球”加入知识星球查看更多。

3D视觉与点云学习星球:主要针对智能驾驶全栈相关技术,3D/2D视觉技术学习分享的知识星球,将持续进行干货技术分享,知识点总结,代码解惑,最新paper分享,解疑答惑等等。星球邀请各个领域有持续分享能力的大佬加入我们,对入门者进行技术指导,对提问者知无不答。同时,星球将联合各知名企业发布自动驾驶,机器视觉等相关招聘信息和内推机会,创造一个在学习和就业上能够相互分享,互帮互助的技术人才聚集群。

以上内容如有错误请留言评论,欢迎指正交流。如有侵权,请联系删除

2f486ffdc4c78bdc35970beccece3256.png

扫描二维码

                   关注我们

让我们一起分享一起学习吧!期待有想法,乐于分享的小伙伴加入知识星球注入爱分享的新鲜活力。分享的主题包含但不限于三维视觉,点云,高精地图,自动驾驶,以及机器人等相关的领域。

分享与合作方式:微信“cloudpoint9527”(备注:姓名+学校/公司+研究方向) 联系邮箱:dianyunpcl@163.com。

为分享的伙伴们点赞吧!

248d651e331c1a15d683a95b99febde3.gif

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

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

相关文章

Visual Studio无法拖入文件解决办法

原因:当windows账户为个人账户(即使带有管理员字眼),如果vs以“管理员”运行就会限制文件拖入,此时软件左上角显示“管理员”字眼 这种情况可能是你在运行vs时选了“以管理员身份运行”,也可能是快捷方式设…

深入理解Java虚拟机jvm-对象的访问定位

对象的访问定位 句柄直接指针优劣句柄直接指针 创建对象自然是为了后续使用该对象,我们的Java程序会通过栈上的reference数据来操作堆上的具 体对象。由于reference类型在《Java虚拟机规范》里面只规定了它是一个指向对象的引用,并没有定义这个引用应该通…

蓝牙技术原理(9)蓝牙AOA/AOD技术原理

文章目录 1 AOA/AOD的概述1.1 AOA(达到角)1.2 AOD(出发角) 2 AOA整体系统搭建3 IQ信号讲解3.1 阵列天线的切换模型3.2 CTE 数据包特征3.3 CTE 数据包具体格式3.4 相位角的计算 4 到达角度的计算5 确定tag的坐标 1 AOA/AOD的概述 BLE 5.1 有个特性加入了…

docker系列4:docker容器基本命令

传送门 前面介绍了docker的安装:docker系列1:docker安装 还有docker镜像加速器:docker系列2:阿里云镜像加速器 以及docker的基本操作: docker系列3:docker镜像基本命令 引子 从今年3月到现在&#xff…

OpenGL模型加载

1.模型加载库 Assimp库能够导入很多种不同的模型文件格式(并也能够导出部分的格式),它会将所有的模型数据加载至Assimp的通用数据结构中。 当使用Assimp导入一个模型的时候,它通常会将整个模型加载进一个场景(Scene)对象&#x…

什么是EBNF?并举例介绍

EBNF(Extended Backus-Naur Form)是一种扩展的Backus-Naur形式,是一种用于描述上下文无关文法(CFG)的元语言。 EBNF用于定义编程语言、数据格式和其他形式的语法。它使用一些扩展的符号来描述语法规则,包括…

.Net Core 2.2 升级到 .Net Core 3.1

微软在更新.Net Core版本的时候,动作往往很大,使得每次更新版本的时候都得小心翼翼,坑实在是太多。往往是悄咪咪的移除了某项功能或者组件,或者不在支持XX方法,这就很花时间去找回需要的东西了,下面是个人在…

基于Python的点赞、收藏博客

文章目录 前言一、点赞和取消点赞1.请求url和请求方法2.入参3.响应结果3.1点赞3.2取消点赞 4.代码5.效果 二、收藏2.1判断博客是否收藏过2.1.1请求url和请求方法2.1.2响应结果未收藏已收藏 2.1.3代码2.1.4效果 2.2收藏博客2.2.1请求url和请求方法2.2.2入参2.2.3响应结果2.2.4代…

爬虫小白应该如何学习爬虫

什么是Python3网络爬虫? 定义: 网络爬虫(Web Spider),又被称为网页蜘蛛,是一种按照一定的规则,自动地抓取网站信息的程序或者脚本。爬虫其实是通过编写程序,模拟浏览器上网&#x…

高频面试题/面试经常被问到怎么处理接口依赖该怎么回答

前言 由于快到金九银十了,笔者最近呢发的都是一些有关面试方面的文章,有需要的小伙伴可以看看笔者的文章希望可以帮助到大家,今天呢笔者想和大家来聊聊在面试中被问到怎么处理接口依赖改怎么回答,废话就不多说了咱们直接进入主题…

互斥锁实现线程互斥(嵌入式学习)

互斥锁实现线程互斥 互斥锁的概念互斥锁的函数示例代码 互斥锁的概念 互斥锁(Mutex)是一种用于多线程编程的同步原语(synchronization primitive),用于实现线程之间的互斥访问共享资源。互斥锁提供了一种机制&#xff…

限流式保护器在高校中的应用

安科瑞虞佳豪 4月10日下午1点50多分 浙大紫金港校区边一活动板房发生火情。起火位置为浙大紫金港校区的动物保护基地。 “起火的地方是有一个学生动物保护者协会,里面有一些学生救助的猫、狗等小动物。”一位学校的学生告诉潮新闻记者。 随后,潮新闻…

C语言(14) 谈谈嵌入式 C 语言踩内存问题!

1 概述 C 语言内存问题,难在于定位,定位到了就好解决了。 这篇笔记我们来聊聊踩内存。踩内存,通过字面理解即可。本来是操作这一块内存,因为设计失误操作到了相邻内存,篡改了相邻内存的数据。 踩内存,轻则…

Shopify股价在暴涨了78%以后,还值得投资吗?

来源:猛兽财经 作者:猛兽财经 今年以来Shopify (SHOP)的股价一直在上涨,迄今为止的涨幅已经超过了78%,并且远远跑赢了美股的所有主要指数。 猛兽财经认为,Shopify的股价之所以能在今年上涨,主要受到以下几…

windows2022证书配置.docx

Windows证书的配置 要求两台主机,一台作为域,一台进入域 按要求来选择角色服务 确认之后安装 安装完以后配置证书服务 选择服务 按要求配置 注:此处不用域用户登陆无法使用企业CA 按要求来 创建新的私钥 这几处检查无误后默认即可 有效期…

实验篇(7.2) 16. 站对站安全隧道 - 通过聚合隧道走对方上网(FortiGate-IPsec) ❀ 远程访问

【简介】前面所有实验基本上是由向导来完成的,只有隧道聚合实验是手动设置的。那么远程访问经常用到的走对方宽带上网功能,需要怎样手动配置呢? 实验要求与环境 OldMei集团深圳总部防火墙现在有三条宽带了,二条普通宽带用来上网及…

SSCMS 内容管理系统介绍

概述 SSCMS 内容管理系统基于微软 .NET Core 平台开发,用于创建在 Windows、Linux、Mac 以及 Docker 上运行的 Web 应用程序和服务。 SSCMS 针对企业级客户开发,完全开源免费,可以用于商业用途不需要支付任何产品或授权费用。 SSCMS 经受了时间考验,1.0 版本在2003年发布…

跨模态检索最新高质量综述《Image-text Retrieval: A Survey on Recent Research and Development》

Image-text Retrieval: A Survey on Recent Research and Development 图像文本检索研究进展综述 2022.03 本文已把文献的引用逐个换成相应的论文标题,方便查找和阅读 摘要 本文从四个方面对ITR方法进行了全面和最新的调查。通过将ITR系统剖析为两个过程&#xff1…

基于Java+Swing+Mysql实现汽车信息管理系统

基于JavaSwingMysql实现汽车信息管理系统 一、系统介绍二、功能展示1.登陆2.车辆信息3.车辆入库4.车辆出库5.车辆查询6、车辆信息修改 三、数据库四、其它1.其他系统实现五.获取源码 一、系统介绍 系统实现汽车入库,汽车出库,汽车查询,汽车信…

2023软件测试八股文最全文档,再也不用担心面试了

前言 6月份已经快过完一半了,马上就要到金九银十的黄金招聘季节了,还在准备面试跳槽涨薪的小伙伴们可以看看本篇文章哟,这里呢笔者就不多说废话了直接上干货!答案已整理好,文末拿去即可!非常好用&#xff…