0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Limap:基于3D line的重建算法

3D视觉工坊 来源:3D视觉工坊 2023-04-18 10:12 次阅读

主要内容:

提出了一种基于线的重建算法,Limap,可以从多视图图像中构建3D线地图,通过线三角化、精心设计的评分和track构建以及利用线的重合,平行性和正交性等结构先验来实现的,可以与现有的基于点的SFM算法集成,并且可以利用其3D点来进一步改善线重建的结果。

构建的3D线地图也开辟了新的研究方向,即基于线的视觉定位和BA,其中将线与点结合在一起会产生最佳结果。

代码开源在https://github.com/cvg/limap.

d70c2196-dd74-11ed-bfe3-dac502259ad0.png

点云地图与线地图:

目前通过SFM估计场景几何结构和构建稀疏地图主要是基于点的方法,即提取匹配图像中的关键点,然后三角化,BA。

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

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

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

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

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

d728f3fc-dd74-11ed-bfe3-dac502259ad0.png

(5)较弱的基于描述子的匹配:线段的最新描述子远远落后于基于点的描述子,因此在重建过程中更加强调几何验证和过滤。

为此,本篇文章旨在减少基于点的建图解决方案和基于线的建图解决方案之间的差距

Contributions:

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

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

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

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

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

Pipeline:

d7566c38-dd74-11ed-bfe3-dac502259ad0.png

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

算法包括三个主要步骤:

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

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

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

论文技术点:

生成三维线假设:

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

d7807f00-dd74-11ed-bfe3-dac502259ad0.png

λ1和 λ2是投影矩阵,让所有假设的三维线的端点位于2D端点对应的相机光线上。

对于每个匹配的2D线段,通过代数线三角化生成一个假设。设 (Rm,tm) 为匹配视图的相机姿态。然后线性求解端点射线深度 λ :

d79383b6-dd74-11ed-bfe3-dac502259ad0.png

d7a7bb1a-dd74-11ed-bfe3-dac502259ad0.png

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

借助相关的2D-3D点对应和消失点,为每个2D线段生成第二组假设

假设评分和轨迹关联:

现在图像I中的每个2D线段与每个相邻图像J的一组3D线假设相关联。这部分要对这些假设进行评分并进行track关联。

利用不同的评分方法来量化两个3D线段 (L1,L2) 之间的距离。这个距离可以在三维或者二维进行度量。

距离度量:

有角距离(L1和L2之间的角度),

垂直距离(L1的端点到L2跨越最大正交距离)

透视距离: 假设L1和L2的端点在相同的光线上,该距离被定义为端点距离,如下图所示。

利用2D和3D中的角距离,以及2D中的垂直距离,和透视距离。为了将它们聚合在一起,将尺度因子 τ 关联到每个距离r,得到归一化分数

d7be7ddc-dd74-11ed-bfe3-dac502259ad0.png

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

d7cc5e52-dd74-11ed-bfe3-dac502259ad0.png

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

d7db35c6-dd74-11ed-bfe3-dac502259ad0.png

此时已为每个2D线段分配了唯一的3D线 (其最佳3D线候选)。然后目标是将这些2D线段集成到3D线track中。为此形成一个图,其中2D线段是节点,所有初始线匹配都是边,目标是修剪图中的边缘,以使连接的2D线段共享相似的3D线段。为此提出了两种新的线评分措施,可以应对不同的端点配置和跨图像的可变的尺度:

重叠分数:将L1正交投影到L2上,将投影的端点剪切到L2的端点 (如果它们落在L2之外) 以获得线段d7e882a8-dd74-11ed-bfe3-dac502259ad0.png,并将长度与阈值τ进行比较:

d7f54e48-dd74-11ed-bfe3-dac502259ad0.png

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

d8018442-dd74-11ed-bfe3-dac502259ad0.png

然后将以3D计算的InnerSeg距离转换为上一段中的归一化分数,并将其与2D和3D中的重叠分数以及使用 (5) 的先前分数相结合。

然后对于每个track重新估计单个3D线段。使用来自track中所有节点的3D分配的端点集,应用主成分分析 (PCA),并使用主特征向量和平均3D点来估计无限3D线。然后将所有端点投影在这条无限线上,以获得新的3D端点。

线和点联合优化:

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

d82005d4-dd74-11ed-bfe3-dac502259ad0.png

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

d839933c-dd74-11ed-bfe3-dac502259ad0.png

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

实验:

首先建立了一个评估基准来量化建图的质量,由于没有地面真相 (GT) 3D线,因此使用GT网格模型或点云评估3D线图。使用以下指标:

τ (Rτ)处的长度召回 (以米为单位): 距GT模型 τ mm以内的线部分的长度总和。

τ (Pτ)处的inlier百分比: 距GT模型 τ mm以内的track的百分比。

平均支持: 所有线track上的图像支持和2D线支持的平均数量。

将论文算法与两种最先进的方法作为基线进行比较: L3D++和ELSR,使用两个线检测器: 传统的LSD检测器和基于学习的SOLD2。

对于ELSR,将输入转换为VisualSfM 格式,并使用来自作者的code(仅支持LSD)。

第一个评估是在Hypersim数据集的前八个场景上运行的,每个场景由100个图像组成。

d84491a6-dd74-11ed-bfe3-dac502259ad0.png

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

d861219a-dd74-11ed-bfe3-dac502259ad0.png

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

d88de96e-dd74-11ed-bfe3-dac502259ad0.png

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

d8a0532e-dd74-11ed-bfe3-dac502259ad0.png

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

d8c5a57a-dd74-11ed-bfe3-dac502259ad0.png

为了证明构建的线图对其他应用有效果,比如视觉定位和原本的点云模型的细化等方面,进行了一些实验:

针对线辅助的视觉定位:在获取的3D线图之上构建了一个混合视觉定位,其点和线都具有。具体来说,首先使用提出的方法构建HLoc 中的点图和线图。然后分别匹配点和线从3D地图中的轨迹信息获取2D-3D对应关系。

鉴于这些对应关系,将四个最小求解器 : P3P,P2P1LL,P1P2LL,P3LL结合在一个具有局部优化的混合RANSAC框架中以获得最终的6自由度姿势。

结果在表7,证明了线辅助的定位在室内和室外均比单独的基线获得了更好的结果,从而验证了采用3D线图进行视觉定位的有效性。

在图9中,显示了来自7 Scenes的楼梯场景的更详细的结果,因为它是最具挑战性的场景之一。线显著地有利于重新投影结构的对准,从46.8提高到71.1的姿态精度。

d8d998e6-dd74-11ed-bfe3-dac502259ad0.png

d8fd4c50-dd74-11ed-bfe3-dac502259ad0.png

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

d917a9ba-dd74-11ed-bfe3-dac502259ad0.png

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 3D
    3D
    +关注

    关注

    9

    文章

    2838

    浏览量

    107024
  • 算法
    +关注

    关注

    23

    文章

    4555

    浏览量

    92044
  • 点云
    +关注

    关注

    0

    文章

    58

    浏览量

    3763

原文标题:CVPR 2023|Limap:基于3D line的重建算法

文章出处:【微信号:3D视觉工坊,微信公众号:3D视觉工坊】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于ToF的3D活体检测算法研究

    什么是活体检测?什么又是3D活体检测?以及怎么实现恶劣环境(如人脸遮挡、恶劣光照等)与人脸多姿态变化(如侧脸、表情等)应用场景下的活体检测呢?本文将会围绕这些问题,介绍数迹智能的最新成果——基于ToF的3D活体检测算法
    发表于 01-06 07:30

    PYNQ框架下如何快速完成3D数据重建

    来实现基于这些约束的三维重建的完整管道。  在这个项目中,作者的目标是朝着实时生成3D视觉数据迈进一步。首先,在CPU上生成3D点云,然后使用Mesh Lab可视化它。由于Mesh Lab不适合实时
    发表于 01-07 17:25

    3D图像生成算法的原理是什么?

    什么是3D图形芯片?3D图像生成算法的原理是什么?
    发表于 06-04 06:29

    3D分组密码算法

    针对3D分组密码算法的安全性分析,对该算法抵抗中间相遇攻击的能力进行了评估。基于3D算法的基本结构及S盒的差分性质,减少了在构造多重集时所需
    发表于 01-14 15:08 0次下载

    基于改进迭代收缩阈值算法的微观3D重建方法

    迭代收缩阈值算法(ISTA)求解离焦深度恢复动态优化问题时,采用固定迭代步长,导致算法收敛效率不佳,使得重建的微观3D形貌精度不高。为此,提出一种基于加速算子梯度估计和割线线性搜索的方
    发表于 01-17 13:39 3次下载
    基于改进迭代收缩阈值<b class='flag-5'>算法</b>的微观<b class='flag-5'>3D</b><b class='flag-5'>重建</b>方法

    创想三维:3D扫描仪在3D打印机上的运用

    3D打印机的工作原理产生好奇。        什么是3D扫描?        3D扫描是分析来自现实世界的对象,收集所有数据以便以数字方式重建其形状和外观的过程。这个过程,它可以帮助您
    发表于 04-19 15:50 624次阅读

    我国完成了全球首例寰椎3D打印假体重建手术

    从中山大学孙逸仙纪念医院获悉,该院脊柱外科主任黄霖教授及其团队完成了全球首例寰椎3D打印假体重建手术。
    的头像 发表于 05-23 11:31 2216次阅读

    阿里3D AI技术已成功应用诸多场景中,可迅速批量生产高质量3D模型

    阿里资深算法专家乐田表示:“3D重建3D机器学习的核心,只有在高质量3D数据集支持下,工业级3D
    发表于 08-26 13:50 1495次阅读

    3D的感知技术及实践

    测量表面法向量估计 几何测量平面提取 3D重建从离散点云得到光滑曲面 3D重建ICP点云配准 3D重建
    的头像 发表于 10-23 09:40 3103次阅读
    <b class='flag-5'>3D</b>的感知技术及实践

    阿里研发全新3D AI算法,2D图片搜出3D模型

    AI技术的研究正在从2D走向更高难度的3D。12月3日,记者获悉,阿里技术团队研发了全新3D AI算法,可基于2
    的头像 发表于 12-04 15:49 3422次阅读

    探讨关于3D视觉技术和3D传感器

    年内得到快速发展。与深度学习算法结合,在智能制造/机器人、自动驾驶、AR/VR、SLAM、无人机、三维重建、人脸识别等领域取得了优异的效果。 3D视觉主要研究内容包括: 3D感知:点云
    的头像 发表于 04-01 14:01 4525次阅读
    探讨关于<b class='flag-5'>3D</b>视觉技术和<b class='flag-5'>3D</b>传感器

    音圈模组3D打印助力肌腱和韧带重建

    音圈模组3D打印助力肌腱和韧带重建。BellaSeno是一家开发由可吸收聚合物制成的3D打印乳房重建支架的初创公司,该公司现在已经开始一项计划,旨在设计和评估用于肌腱和韧带
    发表于 09-01 14:57 320次阅读

    大规模3D重建的Power Bundle Adjustment

    BA (BA) 是一个经典的计算机视觉问题,它构成了许多 3D 重建和运动结构 (SfM) 算法的核心组成部分。它指的是通过最小化非线性重投影误差来联合估计相机参数和 3D 地标位置。
    的头像 发表于 12-15 11:20 578次阅读

    基于未知物体进行6D追踪和3D重建的方法

    如今,计算机视觉社区已经广泛展开了对物体姿态的 6D 追踪和 3D 重建。本文中英伟达提出了同时对未知物体进行 6D 追踪和 3D
    的头像 发表于 07-03 11:24 485次阅读
    基于未知物体进行6<b class='flag-5'>D</b>追踪和<b class='flag-5'>3D</b><b class='flag-5'>重建</b>的方法

    使用Python从2D图像进行3D重建过程详解

    有许多不同的方法和算法可用于从2D图像执行3D重建。选择的方法取决于诸如输入图像的质量、摄像机校准信息的可用性以及重建的期望准确性和速度等因
    的头像 发表于 12-05 14:07 2193次阅读
    使用Python从2<b class='flag-5'>D</b>图像进行<b class='flag-5'>3D</b><b class='flag-5'>重建</b>过程详解