3D Line Mapping Revisited论文阅读

news2024/11/26 9:46:56

1. 代码地址

GitHub - cvg/limap: A toolbox for mapping and localization with line features.

2. 项目主页

3D Line Mapping Revisited

3. 摘要

提出了一种基于线的重建算法,Limap,可以从多视图图像中构建3D线地图,通过线三角化、精心设计的评分和track构建以及利用线的重合,平行性和正交性等结构先验来实现的,可以与现有的基于点的SFM算法集成,并且可以利用其3D点来进一步改善线重建的结果。构建的3D线地图也开辟了新的研究方向,即基于线的视觉定位和BA,其中将线与点结合在一起会产生最佳结果。

4. 引言

估计三维几何并建立稀疏地图已经是三维计算机视觉中普遍存在的能力。有很多框架可以用来构建用于定位的地图,为稠密重建提供初始估计以及新视角重建。

目前通过SFM估计场景几何结构和构建稀疏地图主要是基于点的方法,即提取匹配图像中的关键点,然后三角化,BA。但是基于特征点构建点云地图在没有足够稳定的关键点去检测匹配的时候,比如室内场景,往往效果不好。但是这些场景基本都包含丰富的线条,例如在墙壁、窗户、门或天花板,而且线往往表现出更高的定位精度,因为其像素的不确定性较小。线常常以高度结构化的模式出现,通常满足场景范围的几何约束,例如共面性,重合 (线相交),平行和正交性。但是线也会遇到不同的问题,例如线端点定位不良和部分遮挡。然而,最近的线检测器和匹配正在弥合点和线之间的性能差距,目前线图构建的困难在于:

(1)线端点不一致:由于部分遮挡,线通常在图像之间具有不一致的端点。

(2)线割裂:在每个图像中,可能有多个线段属于3D中的同一条线。与构建3D点track相比,创建线的track关联的过程更加复杂。

(3)没有两视图几何验证:点匹配可以通过极几何在两个视图中验证,但线至少需要三个视图来过滤。

(4)退化:在实践中,线三角化更倾向于不稳定的配置 (参见图8),例如每当线与相机运动平行时,线三角化会退化。

(5)较弱的基于描述子的匹配:线段的最新描述子远远落后于基于点的描述子,因此在重建过程中更加强调几何验证和过滤。为此,本篇文章旨在减少基于点的建图解决方案和基于线的建图解决方案之间的差距

本文的主要贡献:

(1)构建了一个新的线建图系统,该系统可以从多视图RGB图像中可靠地重建3D线段。与以前的方法相比,构建的线图更完整、更准确

(2)通过自动识别和利用结构先验 (例如线重合和平行) 来实现这一目标。技术贡献涵盖了线图的所有阶段,包括线三角化,评分,track构建和联合优化。

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

(4)通过对合成和真实数据集进行定量评估来对性能进行基准测试,每个场景都有数百张图像,其中LIMAP始终显著优于现有方法

(5)通过在诸如视觉定位和SFM中的BA之类的任务中比纯基于点的方法有所改进,来证明强大的线图的有用性。

5. 推荐的三维线地图流程

输入:图像,还可以额外添加点云模型。假设每个图像的相机姿势是可用的 (例如,来自SfM/SLAM)。算法包括三个主要步骤:

(1)假设生成: 对于每个2D线段,生成一组3D线假设。

(2)假设评分和track关联: 考虑到多视图一致性对每个假设进行评分,为每个2D线选择最佳候选,并将它们关联到一组3D线track中。

(3)联合优化: 与3D点和VP(消失点)方向一起在3D线track上共同执行非线性细化,将附加的结构先验集成为软约束。

5.1. 生成三维线假设

为每个2D线段生成一组3D线假设,给定图像中的一个线段,使用任何现有的线匹配算法来检索n个最接近的图像中的前K个线匹配。

\lambda_1\lambda_2是投影矩阵,让所有假设的三维线的端点位于2D端点对应的相机光线上。对于每个匹配的2D线段,通过代数线三角化生成一个假设。

5.1.1. 线三角化

对每一个匹配的2D线段(x^m_1, x^m_2),都可以利用线三角化生成一个假设,设(R^m, t^m)为匹配视图的相机姿态。然后线性求解端点射线深度\lambda_i

注意:当线段与x_i处的对极线平行时,其解是不稳定的。如果只有一个端点退化,则称之为弱退化;如果两个端点都退化,虽称之为完全退化。

5.1.2. 点线关联

因为上面讲了线三角化会出现退化,为了在退化的情况下获得有意义的假设,利用来自点或相关消失点 (VPs) 的其他几何信息,即2D-3D点对应关系,这可以来自基于点的SfM模型,也可以从匹配的端点进行三角化。对于每个2D线段,将一个像素阈值内的所有2D点关联起来,从而与它们对应的3D点关联起来。借助相关的2D-3D点对应和消失点,为每个2D线段生成第二组假设。

5.1.3. 点引导的线三角化

5.2. 假设评分和轨迹关联

现在图像I中的每个2D线段与每个相邻图像J的一组3D线假设相关联。这部分要对这些假设进行评分并进行track关联。利用不同的评分方法来量化两个3D线段 (L1,L2) 之间的距离。这个距离可以在三维或者二维进行度量。距离度量:有角距离(L1和L2之间的角度),垂直距离(L1的端点到L2跨越最大正交距离)透视距离: 假设L1和L2的端点在相同的光线上,该距离被定义为端点距离,如下图所示。利用2D和3D中的角距离,以及2D中的垂直距离,和透视距离。为了将它们聚合在一起,将尺度因子 τ 关联到每个距离r,得到归一化分数

用S表示所有相应的归一化分数的集合,L1和L2之间的分数为:

现在有了每个线对的唯一分数,然后考虑来自相邻图像j和假设k的所有相邻3D线候选。一致性分数是通过对每个图像的最佳分数求和来定义的:

此时已为每个2D线段分配了唯一的3D线 (其最佳3D线候选)。然后目标是将这些2D线段集成到3D线track中。为此形成一个图,其中2D线段是节点,所有初始线匹配都是边,目标是修剪图中的边缘,以使连接的2D线段共享相似的3D线段。为此提出了两种新的线评分措施,可以应对不同的端点配置和跨图像的可变的尺度:重叠分数:将L1正交投影到L2上,将投影的端点剪切到L2的端点 (如果它们落在L2之外) 以获得线段\Pi(L_1),并将长度与阈值τ进行比较:

内联线段距离:L1的端点垂直地未投影到l2。如果它们落在L2之外,将它们剪切到L2的最接近端点。通过在两个方向上执行此操作,可以定义两个内点线段 (参见图3(c)),并将InnerSeg距离定义为它们端点之间的最大距离。

然后将以3D计算的InnerSeg距离转换为上一段中的归一化分数,并将其与2D和3D中的重叠分数以及使用 (5) 的先前分数相结合。然后对于每个track重新估计单个3D线段。使用来自track中所有节点的3D分配的端点集,应用主成分分析 (PCA),并使用主特征向量和平均3D点来估计无限3D线。然后将所有端点投影在这条无限线上,以获得新的3D端点。

5.3. 线和点联合优化

使用其轨迹信息对获取的3D线进行非线性细化。直接的方法是对重投影误差进行几何细化。有了2D点线关联,可以通过包含其他结构信息来制定联合优化问题。最小化的能量可以写如下:

分别是点优化项,线优化项,线和点联合优化项。

eperp是垂直距离,Lk是3D线段的2D投影,lk是2D线段,w∠是1减去投影和观测线之间的2D角度的余弦的指数。

6. 实验

首先建立了一个评估基准来量化建图的质量,由于没有地面真相 (GT) 3D线,因此使用GT网格模型或点云评估3D线图。使用以下指标:τ (Rτ)处的长度召回 (以米为单位): 距GT模型 τ mm以内的线部分的长度总和。τ (Pτ)处的inlier百分比: 距GT模型 τ mm以内的track的百分比。平均支持: 所有线track上的图像支持和2D线支持的平均数量。将论文算法与两种最先进的方法作为基线进行比较: L3D++和ELSR,使用两个线检测器: 传统的LSD检测器和基于学习的SOLD2。对于ELSR,将输入转换为VisualSfM 格式,并使用来自作者的code(仅支持LSD)。第一个评估是在Hypersim数据集的前八个场景上运行的,每个场景由100个图像组成。

结果显示比竞争对手更好或可比的精度的更完整的线图,同时也显示出明显更高的track质量。

进一步评估了Tanks和Temples数据集的train部分。由于SOLD2是针对室内图像进行训练的,因此仅使用LSD。由于所提供的点云被清理为仅专注于主要目标,因此计算其边界框,将其扩展1米,并且仅评估该区域内的线。这样可以防止错误地惩罚远离主场景的正确线条。

论文方法提高了地图质量。图4显示了其方法和L3D++之间的定性比较。结果显示出更好的完整性,也具有更少的嘈杂的线条,并实现了对细微细节 (例如在地面上) 的更强大的重建。

为了演示所提出的系统的可伸缩性,还在两个大规模数据集上运行其方法: Aachen (6,697图像)和Rome city (16,179图像) 。图7显示了其方法产生具有清晰结构的可靠线图。

为了证明构建的线图对其他应用有效果,比如视觉定位和原本的点云模型的细化等方面,进行了一些实验:针对线辅助的视觉定位:在获取的3D线图之上构建了一个混合视觉定位,其点和线都具有。具体来说,首先使用提出的方法构建HLoc 中的点图和线图。然后分别匹配点和线从3D地图中的轨迹信息获取2D-3D对应关系。鉴于这些对应关系,将四个最小求解器 : P3P,P2P1LL,P1P2LL,P3LL结合在一个具有局部优化的混合RANSAC框架中以获得最终的6自由度姿势。结果在表7,证明了线辅助的定位在室内和室外均比单独的基线获得了更好的结果,从而验证了采用3D线图进行视觉定位的有效性。在图9中,显示了来自7 Scenes的楼梯场景的更详细的结果,因为它是最具挑战性的场景之一。线显著地有利于重新投影结构的对准,从46.8提高到71.1的姿态精度。

细化SFM点云:通过从大致正确的基于点的SFM (例如COLMAP) 构建的3D线图,可以使用3D线及其轨迹信息,通过点与线的联合优化来优化输入的相机姿势。为了验证这一点,在Hypersim的前八个场景上运行COLMAP,在其之后构建线地图,并执行联合BA以优化姿态和内参。

参考文献

3D Line Mapping Revisited

CVPR 2023|Limap:基于3D line的重建算法 - 知乎

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

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

相关文章

如何在 Microsoft Azure 上部署和管理 Elastic Stack

作者:来自 Elastic Osman Ishaq Elastic 用户可以从 Azure 门户中查找、部署和管理 Elasticsearch。 此集成提供了简化的入门体验,所有这些都使用你已知的 Azure 门户和工具,因此你可以轻松部署 Elastic,而无需注册外部服务或配置…

链表经典算法(+OJ刷题)

文章目录 前言一、移除链表元素二、链表的中间节点三.反转链表四.合并两个有序链表五.分割链表六.环形链表的约瑟夫问题总结 创作不易,点赞收藏一下呗!!! 前言 在上一节,我们介绍了单链表的增,删&#xff…

Oracle12c之Sqlplus命令行窗口基本使用

Oracle12c之Sqlplus命令行窗口基本使用 文章目录 Oracle12c之Sqlplus命令行窗口基本使用1. 连接1. 超级用户2. 普通用户1. 创建普通用2. 连接 2. 修改用户连接数1. 查看默认连接最多用户数1. PL/SQL developer中查看2. Sqlplus中查看 2. 查看目前已经连接的用户数3. 修改用户连…

从零开始 TensorRT(4)命令行工具篇:trtexec 基本功能

前言 学习资料: TensorRT 源码示例 B站视频:TensorRT 教程 | 基于 8.6.1 版本 视频配套代码 cookbook 参考源码:cookbook → 07-Tool → trtexec 官方文档:trtexec 在 TensorRT 的安装目录 xxx/TensorRT-8.6.1.6/bin 下有命令行…

AtCoder Regular Contest 171(A~B)

A - No Attacking N*N棋盘上,放A个rook棋和B个pawn棋。 条件1:假设(i,j)上有一个rook,那么这 i 行和这 j 列,都不能再有其他棋子。 条件2:假设(i,j&#x…

07、全文检索 -- Solr -- Solr 全文检索 之 为索引库添加中文分词器

目录 Solr 全文检索 之 为索引库添加中文分词器添加中文分词器1、添加中文分词器的 jar 包2、修改 managed-schema 配置文件什么是 fieldType 3、添加 停用词文档4、重启 solr5、添加【*_cn】动态字段,并为该字段设置中文分词器6、演示分词器的区别演示 text_cjk 这…

红队渗透靶机:TIKI: 1

目录 信息收集 1、arp 2、nmap 3、nikto 4、whatweb 目录探测 1、dirsearch 2、gobuster WEB web信息收集 searchsploit cms信息收集 ssh登录 提权 信息收集 1、arp ┌──(root㉿ru)-[~/kali] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:2…

基于tomcat的https(ssl)双向认证

一、背景介绍 某个供应商服务需要部署到海外,如果海外多个地区需要部署多个服务,最好能实现统一登录,这样可以减轻用户的使用负担(不用记录一堆密码)。由于安全问题(可能会泄露用户数据)&#x…

k8s学习-Kubernetes的包管理器Helm

1.1 为何需要Helm Kubernetes能够很好地组织和编排容器,但它缺少⼀个更高层次的应用打包工具,而Helm就是来干这件事的。 先来看个例子。 比如对于⼀个MySQL服务,Kubernetes需要部署下面这些对象: (1)Serv…

2. 从波动方程到亥姆赫兹方程

波动方程中同时包含了时间和空间分量,为进一步简化波动方程,可以假设电场分量为 (1) (注:这个假设对我而言有点突兀,但我想对于数学好的人来说就是一个常见的解题思路。可能就像高中数列题&…

【开源】JAVA+Vue+SpringBoot实现二手车交易系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 二手车档案管理模块2.3 车辆预约管理模块2.4 车辆预定管理模块2.5 车辆留言板管理模块2.6 车辆资讯管理模块 三、系统设计3.1 E-R图设计3.2 可行性分析3.2.1 技术可行性分析3.2.2 操作可行性3.2.3 经济…

用于医疗行业的大功率电阻器是什么?

设计医疗电子设备比设计其他行业应用更具挑战性。由于涉及宝贵的生命,因此各种医疗设备中使用的产品和组件必须绝对可靠且安全,毋庸置疑。即使是各种国际机构制定的合规和安全标准,在医疗保健行业也更加严格,这是正确的。 无源电气…

Re-understanding of data storytelling tools from a narrative perspective

作者:任芃锟, 王轶 & 赵凡 发表:Visual Intelligence,新刊,实行单盲同行评议制度。由施普林格以开放获取 (Open Access) 模式出版。获2022“中国科技期刊卓越行动计划高起点新刊”项目资助,目前出版不收取文章处理…

onlyfans无法订阅?2024年订阅onlyfans最新教程一键直达

讲在前面-关于OnlyFans 欧美除了脸书和推特之外,又新起了一个社交软件,它就是onlyfans,简称o站。 在极短的时间内,它就拥有了1.2亿的用户量,而全站订阅金额更是达到了17亿英镑,换成人民币,数额…

使用docker/docker-compose通过自定义的redis.conf文件启动redis 7.2.3,附上docker-compose.yml的redis配置

目录 一.复制以及使用自定义的redis.conf文件 1.在官网拷贝对应版本的配置文件内容新建redis.conf文件进行粘贴。(推荐) 2.也可以去官网下载对应版本的redis的tar.gz包,解压后在根目录下找到redis.conf文件复制也可也可。 二.配置redis.c…

机器学习复习(8)——基本概念

目录 "benchmark"和"baseline"的定义和区别 R1 score概念 LoRA微调概念 "benchmark"和"baseline"的定义和区别 在计算机视觉领域的论文中,"benchmark"和"baseline"这两个术语经常被使用&#xff0…

BootStrap学习笔记JS插件(一)--模态弹出框

一、弹出框基础 <div class"modal show"><div class"modal-dialog"><div class"modal-content"><div class"modal-header"><button type"button" class"close" data-dismiss"mo…

惠普公司也要注销了?

关注卢松松&#xff0c;会经常给你分享一些我的经验和观点。 惠普科技(上海)有限公司企业状态由存续变更为注销&#xff0c;这意味着惠普公司也要注销了?这是怎么回事?戴尔公司也准备注销了呢?这家美国科技巨头为什么放弃了世界最大的消费市场呢? 之前就有消息称惠普中国…

BFS——双向广搜+A—star

有时候从一个点能扩展出来的情况很多&#xff0c;这样几层之后搜索空间就很大了&#xff0c;我们采用从两端同时进行搜索的策略&#xff0c;压缩搜索空间。 190. 字串变换(190. 字串变换 - AcWing题库) 思路&#xff1a;这题因为变化规则很多&#xff0c;所以我们一层一层往外…

新开发板-正点原子的rk3568

有好长一段时间没有更新博客了&#xff0c;上次更新还是在上次...哈哈开个玩笑&#xff0c;上次stm32f407的定时器还没写完&#xff0c;就备战期末去了&#xff08;电信学院&#xff0c;你懂的&#xff09;&#xff0c;一直没更新&#xff0c;原因是我实习去了&#xff0c;在忙…