主要内容:
提出了一种高效的线云重建方法,称为ELSR,其利用了城市场景中常见的场景平面和稀疏的3D点,对于两视图,ELSR可以找到局部场景平面来引导线匹配,并利用稀疏的3D点来加速和约束匹配。
为了重建具有多个视图的3D线段,ELSR利用了一种抽象方法,其基于有代表性的3D线的空间一致性来选择它们。 实验表明,其方法可以有效地重建包含数千张大尺寸图像的大型复杂场景的3D线条。
总的来说,本文是一篇利用场景中的结构化线条来构建线云的算法。 其方法构建的线云如下图所示:
Contributions:
1、提出了一种从多个图像中匹配线条和重建3D线条的有效方法,该方法易于使用,只需要SfM的结果作为先验
2、利用二维线和稀疏三维点之间的几何关系来找到局部单应性。这也是第一个利用这种简单而有效的几何形状进行线段匹配的工作。
3、在大型图像数据集上进行评估时,ELSR在两视图匹配方面比现有算法快1000多倍;在多视图重建中,ELSR比现有方法快4倍,3D线的数量增加了360%
Pipeline:
给定图像序列,首先用SfM算法获取相机姿态和稀疏的3D点;然后匹配两视图的线;最后从图像序列中的所有匹配中提取代表性的3D线。 其包含三个组成部分:
1、单应估计:使用具有两条邻域线的场景平面几何来验证单应,在此期间,粗糙点深度用于加速
2、引导匹配:将单条线与潜在的单应性进行匹配,并使用粗略的点深度来约束匹配。
3、线抽象:对于多个视图,首先找到图像对之间的线匹配的连接,并对空间一致性进行评分;然后选择具有代表性的匹配作为最终的3D线
两视图线匹配: 主要利用场景平面和点去引导两视图下的线段匹配。
成对线的单应性:
当Sang(H)小于给定的阈值时场景平面是正确的,并且H是有效的。
点引导的搜索单应:
算法1是通过点引导寻找单应的方法。 搜索单应以找到满足给定阈值的的成对线匹配,如下图所示,共面的成对线在一个确定点上相交。因此沿着对极线搜索第二视图中的交叉点。
将第一个相机矩阵表示为P,这是一个3×4的矩阵,设M和c4分别为左边的3×3的子矩阵和P的最后一列,如果x的深度可得,则可以直接计算x在目标空间的位置:
单应引导的匹配:
算法2说明了单应引导的匹配策略,即寻找线li的第k个邻域的单应Hk,这可以通过建立KDtree来得到,用Hk表示线li的映射为:
如图5所示:
之后可以使用深度约束来控制错误的匹配,设l的端点为x,让3D点邻域的深度范围为dmin和dmax,深度范围可以用来约束x,但是其需要扩展,因为x可能超出深度范围,特别是当局部场景不连续时,但是,不知道目标空间的单位,这可以通过利用像素和物体距离之间的联系来确定扩展,如下图所示,将主点水平移动tpix个像素以获得β,然后计算与像素偏移对应的深度偏移,最后将dmin和dmax分别缩小并扩展以获得深度范围:
由此,线端点的深度为:
同一条线可能有多个单应,其中一些是不正确的,因此利用邻域的单应去引导线,通过位置相似性为匹配打分:
从多个视图中提取线:
两个视图中的每个匹配都将重建一个3D线段;因此需要将与同一条线相关的3D线段合并为簇。然而这很容易失败,原因有三:
1)固定的阈值很容易产生不正确的簇;
2)错误的匹配将导致糟糕的重建;
3)目前没有鲁棒的RANSAC方法来确认线簇的inliers。
因此,ELSR从聚类中提取代表性的行,而不是合并它们,这可能更稳健和高效。
提取包含两个步骤:
1)计算3D线之间的空间相似性;
2)基于其与其他线的空间相似度,在所有视图中抽象出具有代表性的3D线
实验: 在五个数据集上与四种现有方法比较评估了其ELSR。
表1是用到的数据集:
这是通过VisualSFM获得的相机位姿和稀疏点云:
在两视图线匹配上,与LPI、LJL、GLM进行了比较:
在线云重建上,与Line3D++进行了比较:
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !