没有合适的资源?快使用搜索试试~ 我知道了~
无序光场的大规模度量运动
132920无序光场的大规模度量结构运动0SotirisNousias伦敦大学学院0sotiris.nousias.15@ucl.ac.uk0Manolis LourakisFORTH0lourakis@ics.forth.gr0Christos Bergeles伦敦国王学院0christos.bergeles@kcl.ac.uk0摘要0本文提出了一种适用于具有重叠视场的广义相机的大规模度量结构运动(SfM)流水线,并使用光场(LF)图像进行演示。我们借鉴了最近在广义相机的绝对和相对姿态恢复算法方面的进展,并将它们与多视图三角测量相结合,构建了一个稳健的框架,从多个方面推进了从LF中进行3D重建的最新技术。首先,我们的框架可以恢复场景的尺度。其次,它关注的是无序的LF图像集合,精确确定应该考虑图像的顺序。第三,它可以扩展到包含数百个LF图像的数据集。最后,它在不使用非常小的基线进行三角测量的情况下恢复3D场景结构。我们的方法在实际实验中表现优于最新技术,如图1所示,该图展示了使用uLF-SfM从LytroIllum拍摄的303个室内场景视图重建的点云和相机姿态(用红色金字塔表示)。01. 引言0运动结构(SfM)使用由移动相机拍摄的一组2D图像来估计场景的3D几何和相机运动。大多数相关研究假设图像是由普通的针孔相机拍摄的,这些相机收集汇聚的光线。因此,大多数现有的SfM框架不能直接应用于广义相机,即不共享单个投影中心的相机[9,37]。在这项工作中,我们专注于适用于广义、非中心投影相机的SfM技术,这些相机具有重叠的视场,例如多眼立体摄影装置和多相机阵列。多相机阵列长期以来一直被用于光场(LF)成像[25,52]。与从各个方向汇聚到每个像素的光线相交的针孔相机不同,LF图像测量沿着到达成像传感器的每条光线的光线,避免了角度积分。因此,LF捕捉了光场函数的4D切片[1],并可以进行后处理以支持各种各样的应用[52]。光场成像的另一种方法是多路复用不同的0图1. 使用uLF-SfM从LytroIllum拍摄的303个室内场景视图重建的点云和相机姿态(用红色金字塔表示)。0在单个便携相机机身内捕捉光场的不同2D切片[52]。便携式光场相机通常涉及将微透镜阵列放置在传感器和主镜头之间[32,36]。微透镜的空间排列允许在单次曝光期间从多个视点捕捉场景,从而在图像传感器上的空间分辨率与角度分辨率之间进行权衡。每个独立的视点对应于一个子孔径图像[52],因此单体光场相机可以被视为具有重叠视场的多个针孔相机系统。与LF图像坐标系重合的子孔径图像将被称为中心子孔径图像。值得注意的是,智能手机中包含光场成像功能的趋势正在兴起,例如华为P20Pro具有三个后置摄像头,或者三星GalaxyA9具有四个后置摄像头。因此,现在是为光场系统设计定制的SfM流水线的时机。我们在第2节中讨论相关的先前工作。我们在之后描述了我们的流水线的操作,称为uLF-SfM,并在图2中以示意图的形式描述。具体而言,我们首先解释了如何在LF图像之间建立对应关系(第3节),以及如何获得初始重建(第4节)。随后,我们讨论了如何将其他LF图像引入重建并扩展它(第5节)。在整个流水线中,我们注意到需要处理Correspondence GraphMulti-Frame MatchingIntra-Frame MatchingFeature ExtractionInter-Frame MatchingLight FieldsMetric ReconstructionLF Structure from Motion Bundle AdjustmentRobust Triangulation3D ModelOutlier FilteringInitialisationLF Image RegistrationNext View Selectiontransform under pose changes and exploit these transformsto recover LF camera poses. The point-ray manifold is iden-tical to that in [15]. The complete pipeline, however, is noteasily reproducible as its description in the paper lacks im-portant details. For instance, there is no explanation on howthe line-ray manifold (i.e., set of rays through a 3D line) isderived from noisy line correspondences, nor how the opti-mal motion is determined with a non-geometric cost func-tion arising from corresponding manifold constraints. Fur-ther, apart from a final refinement, P-SfM treats the estima-tion of motion and structure as two separate problems.We complete this discussion by noting that althoughboth [15] and [53] perform joint refinement of motion andstructure resembling BA, they do not exploit the sparsenessof the problem. In other words, they minimise the cumula-tive reprojection error with standard, dense non-linear op-timisation techniques which do not scale well as they in-cur very large execution times even for a few tens of LFframes [28]. This, in turn, leads to inability to process largedatasets: the maximum number of LFs employed in [15],and [53], are limited to 21, and 5, respectively.Two-view relative motion estimation. To bootstrap SfMfor generalised cameras when no information about the mo-tion or scene structure is available, the relative motion be-tween two views must be estimated. Such work was firstreported by Pless [37] who substituted image rays for pix-els and presented the generalised epipolar constraint (GEC)for a pair of cameras, rigidly attached to a body frame. TheGEC decouples motion and scene structure estimation and,contrary to conventional epipolar geometry, enables met-ric 3D reconstruction as scale can be recovered from priorcalibration which determines the true distance between theorigins of two projection rays, and, hence, scale [27, 38].Stew´enius et al. [45] combined the GEC with Gr¨obner ba-sis techniques to develop the 6-pt algorithm, which com-putes the relative pose between two generalised camerasfrom 6 corresponding rays. The 6-pt algorithm, however,is far from practical as it is computationally expensive andneeds to disambiguate up to 64 solutions.The GEC was also used by Li et al. [26] to develop the17-pt algorithm, a linear, non-minimal technique requiring17 ray correspondences for estimating the essential matrix.Kneip and Li [19, 21] proposed an iterative solution for gen-eralised relative pose from at least 7 correspondences. Thisalgorithm is based on eigenvalue minimisation and is sensi-tive to initialisation, being prone to getting trapped in local32930带有异常值的SfM。在第6节中讨论了用于重建细化的稀疏束调整。第7节将uLF-SfM与最先进的方法进行了比较。我们在第8节中得出结论。02. 相关工作0针孔相机的SfM。近年来,这个研究领域经历了令人瞩目的发展,现在能够从大型无序图像集合中重建准确的相机位置和逼真的场景模型[12, 44],同时可以在有序图像序列上实时操作[8,42]。高质量的软件实现也公开可用[41]。传统的SfM通常在姿态估计和三角测量(即复位-交叉)步骤之间交替进行,这也是我们在流程中采用的方法。处理一组LF图像的一个看似直接的选择是将每个组成子孔径图像视为普通图像,并使用传统的SfM技术进行处理。然而,独立处理子孔径图像会创建大量图像集。此外,它忽略了它们的光学中心通常排列在一个平面网格上,并且这个排列在LF中保持不变。子孔径图像还具有挑战性的特点,如微小的基线和低分辨率。因此,为LF设计高效且稳健的SfM流程至关重要。我们注意到,使用LytroIllum拍摄的100个中等大小的LF图像集包含2.5K个子孔径图像,总共有4.4M个点特征和20K个特征轨迹,每个轨迹产生一个3D点。子孔径图像的基线可以小到0.5mm。在下文中,术语“LF帧”将指已由校准的单体全像相机拍摄的LF图像,可以将其分解为一组子孔径图像。最先进的LF-SfM流程。Johannsen等人开发了第一个LF-SfM流程[15],他们假设有序的LF帧序列。他们对通过某个3D点的光线束施加了一个2D线性子空间约束,称之为光线流形约束。该约束导致相机运动参数的线性系统。线性子空间首先在单个LF中通过类似于3D重建的过程恢复(正如[53]中也指出的那样)。然后,将光线流形约束组合起来,使用从[26]借鉴的数值方案恢复LF姿态。然而,LF子孔径图像的超小基线使得从它们中三角测量出一个3D点成为一个病态问题。[15]中省略了束调整(BA),但在最近的工作中引入了束调整[16]。Zhang等人最近提出了P-SfM,这是一个用于全像SfM的顺序流程,除了点之外,还使用线和平面作为几何特征[53]。他们研究了与这些几何特征相关的光线流形如何随姿态变化而变化,并利用这些变换来恢复LF相机姿态。点-光线流形与[15]中的相同。然而,完整的流程不容易复现,因为论文中对其描述缺乏重要细节。例如,没有解释如何从嘈杂的线对应中导出线-光线流形(即一组通过3D线的光线),也没有解释如何使用非几何代价函数确定最佳运动,该代价函数来自相应的流形约束。此外,除了最后的细化之外,P-SfM将运动和结构的估计视为两个单独的问题。我们补充说明,尽管[15]和[53]都执行了类似于BA的运动和结构联合细化,但它们没有利用问题的稀疏性。换句话说,它们使用标准的密集非线性优化技术最小化累积投影误差,这种技术在处理几十个LF帧时执行时间非常长[28]。这反过来导致无法处理大型数据集:[15]和[53]中使用的LF的最大数量分别限制为21和5。两视图相对运动估计。当没有关于运动或场景结构的信息可用时,必须估计两个视图之间的相对运动,以启动广义相机的SfM。Pless首次报告了这样的工作[37],他用像素替代了图像光线,并提出了一对相机的广义极线约束(GEC),这些相机刚性连接到一个机体框架上。GEC将运动和场景结构估计解耦,并且与传统的极线几何相反,它能够进行度量3D重建,因为尺度可以从先前的校准中恢复,该校准确定了两个投影光线起源之间的真实距离,从而确定了尺度[27,38]。Stew´enius等人将GEC与Gr¨obner基技术相结合,开发了6点算法,该算法从6个对应的光线计算出两个广义相机之间的相对姿态。然而,6点算法远非实用,因为它计算量大且需要消除多达64个解的歧义。Li等人也使用GEC开发了17点算法,这是一种线性的非最小化技术,需要17个光线对应来估计本质矩阵。Kneip和Li提出了一种迭代解决方案,用于从至少7个对应中获得广义相对姿态[19,21]。该算法基于特征值最小化,并对初始化敏感,容易陷入局部最优解。0图2. 我们uLF-SfM流程的示意图。32940极小值。Larsson等人[22]研究了自动生成的用于各种几何问题的多项式求解器,其中包括广义的6点相对位姿问题。绝对运动估计。从一组帧获得的重建开始,可以通过估计它们相对于已重建的3D点的姿态来添加新的帧。估计已校准广义相机的姿态,从给定的2D-3D对应关系中,被称为广义透视n点(gPnP)问题。gPnP的最小求解器需要3D点与其对应图像投影的视线之间的三元组对应关系[18, 23,34]。这些求解器涉及迭代求解的八次多项式。[4,20]中提出了高效的求解器。贡献。我们的工作依赖于稀疏点特征,建立在经典针孔SfM的思想基础上,并开发了一种用于从大量LF帧中恢复结构和运动的流程。具体来说:•我们提出了一种用于大规模、度量和无序SfM的新方法,该方法适用于具有重叠视场的广义相机,并通过LF相机进行演示。特征匹配、异常值过滤和适应LF的鲁棒三角测量技术。•我们证明了我们的方法在准确性和可达到的输入大小方面明显优于当前最先进的方法。我们还表明,与COLMAP[41]等成熟的针孔流程相比,它对于LF的SfM更有效。•我们描述了标准稀疏束调整的扩展,以适应LF。03. 构建对应图0我们的流程的第一阶段涉及构建对应图,由四个步骤组成。它从特征检测和描述符提取开始,然后是帧内匹配,该步骤识别出与同一LF帧内的某个3D点相关联的特征集。然后,在不同的LF帧对之间匹配这些特征集,得到帧间成对匹配。最后,在多帧匹配步骤中,将成对匹配转换为多图像特征轨迹。在本节的其余部分,我们假设通过校准过程提取了各个子孔径图像,例如[3, 6, 35]。03.1. 特征提取和帧内匹配0对于每个LF帧,此步骤识别出一组特征,这些特征可能是该帧子孔径图像中相同3D点的投影。为此,对于每个子孔径图像,使用高斯差分(DoG)角点测量[29]检测稀疏点特征,并计算其RootSIFT描述符[2]。使用标准距离比测试[29],随后从中央子孔径图像中提取RootSIFT描述符0与其他子孔径图像的RootSIFT描述符进行匹配。使用欧氏距离比较RootSIFT描述符等效于使用Hellinger距离比较原始SIFT描述符,后者对于比较直方图更有效[39]。在少于最小子孔径图像数(在我们的实现中为4)中出现的匹配特征集被丢弃。此外,为了修剪子孔径图像之间的不匹配特征,我们执行过滤,该过滤依赖于以下观察结果:对于匹配特征,它们在两个图像坐标中的像素视差很小。因此,使用中位数和中位数绝对偏差(MAD)作为位置和尺度的鲁棒估计器,我们计算潜在帧内匹配的修改Z得分[13]。然后,绝对Z得分在任一坐标中大于截断值(设置为3.0)的匹配被丢弃为错误的。03.2. 帧间匹配0帧间匹配提供了在LF帧对之间匹配的特征集。为了提高效率,此步骤仅使用从中央子孔径图像获得的描述符。使用比率测试[29]结合左右一致性检查,使用中央子孔径描述符确定所有LF帧的成对匹配。由于这些描述符在不同的LF视点之间预计相似性较低,因此帧间匹配使用比率测试的阈值相对于帧内匹配更宽松。为了解决不匹配问题,我们使用RANSAC[7]框架在5点算法[33]中拟合本质矩阵,并丢弃异常值。鉴于鲁棒的3D三角测量需要由视点之间的相对运动的平移分量引起的足够视差,我们希望避免与单应性相关的LF帧进行三角测量。因此,我们还对每个中央子孔径图像对的匹配进行单应性拟合,并使用Torr的几何鲁棒信息准则(GRIC)[50]确定最可能的模型(即本质矩阵或单应性)。GRIC已经在顺序SfM中用于在选择关键帧时检测和避免单应性[48]。在我们的情况下,最佳描述为本质矩阵的帧对被称为几何验证,并在我们流程的后续阶段中用于三角测量。例如,我们仅考虑几何验证的对于SfM初始化(参见第4.1节),并避免在未通过验证的对之间进行新建匹配的三角测量(参见第5节)。来自中央子孔径图像的特征参与如第3.1节所述的帧内匹配提取。因此,匹配中央描述符允许关联帧内和帧间特征。下一步将讨论成对匹配的扩展到多帧匹配。1https://bitbucket.org/tronroberto/quickshiftmatching329503.3. 建立多帧匹配0这一步骤在多个LF帧之间识别出相同3D点的匹配列表。为了从第3.2节确定的配对匹配中获得多帧特征匹配,我们构建了一个无向图,其中每个中心子孔径图像的匹配特征都有一个顶点,并且每个配对匹配的顶点之间有一条边。由于特征数量非常大,这个图具有一个无法直接放入内存的大邻接矩阵。然而,它非常稀疏,因此可以使用压缩稀疏行(CSR)存储格式进行经济地表示,以支持高效的随机访问。特征轨迹,即多个LF帧之间的匹配,对应于图的连通分量。通过重复执行广度优先搜索(BFS),直到所有图的顶点都被访问完毕,可以在与图的顶点和边的数量成线性关系的时间内确定这些连通分量[5]。与使用Floyd-Warshall算法进行传递闭包计算相比,BFS优先选择,因为后者在顶点数量上具有立方复杂度[5]。在原则上,可以使用Tron等人的最新工作[51]确定最近邻图像匹配,他们使用密度聚类来确定特征空间中非参数密度函数的模式。然而,[51]无法很好地扩展到由一组甚至100个帧产生的成千上万个匹配。具体而言,我们使用了作者的实现1来执行配对中心子孔径特征匹配的传递闭环。尽管该算法对于小型集合(例如最多20个帧)收敛速度快,但100个帧所需的内存量超过了可用内存,导致算法过早终止。实际上,作者在[51]中认为他们的算法可以处理大约20K个特征,但这只是甚至50个帧的特征数量的一小部分。另一种方法是[30],它利用配对匹配的排列矩阵的谱特性。尽管[30]可以扩展到数百个图像,但它需要先验知识来估计预期特征的数量。此外,它的运行时间取决于特征宇宙的大小,对于大约50个图像需要几分钟的时间[30]。相比之下,我们的方法更实用和更快,例如,对于具有250K个特征的100个图像,仅需40秒即可完成。04. 结构与运动初始化0根据前一节的对应关系图,重建从选择几何验证的帧对开始,并通过匹配特征进行相对姿态估计和鲁棒三角测量。04.1. 选择初始配对0正如[40, 41,49]中所指出的,初始化在无序SfM中非常重要,因为它可能永远无法从一个糟糕的初始配对中恢复过来。我们经验性地观察到,仅使用共面对应关系无法准确估计场景尺度。因此,初始配对的候选者是使用GRIC[50]获得的几何验证对(见第3.2节)。我们选择具有最大配对数的配对,并使用RANSAC算法使用17点算法拟合它们的广义本质矩阵。如果内点比例小于指定的阈值或RANSAC超过最大迭代次数200次,则丢弃该配对,并评估下一个最佳初始配对候选。由于这一步对于尺度恢复至关重要,我们采用了高内点比例阈值0.7。选择了候选初始LF帧对之后,下面的小节将描述如何使用射线对应关系准确估计其相对姿态并去除异常值。04.2. 从光场特征到空间光线0在第3.2节中获得的每对帧间对应关系由两个光场之间的特征集合组成。使用双平面参数化[25],每个特征由四个坐标(u,v,s,t)定义,其中(u,v)∈R2编码了位于LF相机网格上以(s,t)∈Z2为中心的子孔径图像上的像素位置。最先进的LF相机校准技术[3,35]为每个子孔径图像提供了校准矩阵K,该矩阵对于基于微透镜的LF相机的所有子孔径图像都是相同的,并将s-t坐标映射到度量坐标中的子孔径图像中心。因此,子孔径图像中的像素可以直接映射到具有方向d = K-1 [uv 1]T的空间光线。每个帧间特征匹配可以转换为光线对应关系,从而产生基于GEC的约束。假设有N个帧间对应关系,每个对应关系包含来自第一个LF的li个帧内特征和来自第二个LF的mi个特征,i = 1 ... N,我们总共获得了�Ni = 1 limi个光线对应关系。这些是接下来讨论的17点算法的输入。04.3. 相对姿态算法选择0在选择初始帧对之后,我们计算它们的相对姿态。为了确定最合适的方法,我们在模拟中比较了几种用于估计广义相机相对姿态的算法:17点算法[26],带有RANSAC的17点算法,带有RANSAC后非线性优化的17点算法,带有RANSAC的6点算法[45]和Johannsen等人的算法[15](也使用RANSAC)。我们模拟了一个类似LytroIllum的真实光场相机,具有5×5个子孔径视图,在网格上相邻相机之间的基线为0.5毫米,并且焦距为600像素。对于00.511.5217pt17pt ransac17pt-NonLinRef6pt ransacJohannsen et al.00.20.40.60.817pt17pt ransac17pt-NonLinRef6pt ransacJohannsen et al.32960对于每个噪声水平,我们进行了200次测试,每次测试随机选择30个距离世界原点在0.5米到8米之间的3D点,从而得到25×25×30 =18750个光线对应关系。第一个LF相机位于世界坐标系原点并与轴对齐,而第二个LF相机在立方体[-2,2]3中随机平移并在每个轴上随机旋转[-0.5,0.5]弧度。为了在具有挑战性的场景中评估算法,选择了一半的3D点,使其在相邻子孔径图像中的视差小于0.1像素。这些点距离世界原点大于3米。异常值的百分比为20%。关于实现,我们使用了作者网站上提供的[15]代码,而对于其他算法,我们依赖于OpenGV[17]。图3总结了所有算法的平均平移和旋转相对姿态误差的模拟结果;请注意,左图中的平移误差是绝对值。一方面,显然17点算法与RANSAC是最准确的。此外,我们观察到在最多两个像素的噪声下,平移估计是准确的。另一方面,Johannsen等人的17点算法[15]在应用于具有小视差的3D点时产生较大的误差。因此,我们选择17点算法作为我们的流水线,然后进行最小化17点内点的光线重投影误差的细化步骤。04.4. 异常值过滤0异常值对SfM的影响是有害的,因此成功地去除它们非常重要。与中心相机不同,LF帧中的每对对应关系包含的特征可能在多个对应的光线中被包含,这是由于第4.2节中描述的光线对应关系的构建方式。一个LF帧中的一组帧内特征匹配的异常值将导致一组光线对应关系中的异常值。因此,仅仅删除异常值集合中的特征可能会导致丢弃正确的特征匹配以及错误匹配的特征,从而导致点云更稀疏。为了避免这种情况,我们仅在一个特征被标记为17点RANSAC异常值超过一定次数(在我们的实现中为4次)时才删除它。这个过程对于另一个LF帧的特征也是重复的。如果任一LF的所有帧内特征都被删除,则完全消除帧间对应关系。04.5. 鲁棒三角测量0三角测量使用一对LF帧之间的所有匹配的帧内特征。对于在M和N个子孔径图像中观察到的某个三维点,输入是一个包含M+N个投影的集合。02 https://www.cvia.uni-konstanz.de/code-and-datasets00 1 2 3 4 噪声水平[像素]0中位数位置误差[米]00 1 2 3 4 噪声水平[像素]0中位数旋转误差[弧度]0图3. 广义相机具有重叠视场的相对姿态估计算法的比较。0每个子孔径图像对应一个矩阵,一共有M+N个子孔径图像投影。尽管我们通过图像坐标的阈值或通过RANSAC进行位姿估计(第3.1节,第4.4节)已经去除了大多数不匹配的特征,但仍可能存在一些。为了防止错误匹配和不稳定的子孔径视点配置,我们进行如下的鲁棒三角测量。如果M+N≤16,我们检查所有可能的相机对,否则我们随机选择7(M+N)对。对于每对相机,我们使用中点方法[11]进行三角测量。这将确定一个三维点,作为两条可能倾斜的反投影射线之间最短线段(即公共垂线)的中点。我们只考虑公共垂线(即距离)小于一对基线的一部分(设置为5%)的射线对,并且三角测量的角度(借助中点定义)也高于一个阈值(设置为5°)。这些检查避免了与微小基线(例如,同一LF帧的子孔径图像)进行三角测量或几乎平行的三角测量射线(例如,前向运动)。由于中点三角测量在计算上更加高效,并且适用于直观的、几何上有意义的检查来评估一对三角测量是否具有良好的条件,因此我们选择了中点三角测量而不是DLT[11]。我们保留对应于最短公共垂线的三维点,并在每个子孔径图像上投影它,计算重投影误差,并移除误差超过使用X84拒绝准则[49]确定的阈值的投影。最后,使用Levenberg-Marquardt对三角测量的三维点进行优化,以非线性地最小化其在内部子孔径图像上的累积重投影误差。作为额外的预防措施,我们仅保留平均重投影误差小于1个像素的点。05. 扩展重建0通过选择下一个要注册的LF帧,将初始重建扩展到包括更多的LF帧和三维点。然后,注册新帧,通过三角测量估计点和验证轨迹。这个过程重复进行,直到所有帧都被注册。10-4100gP3P ransacgPnP ransacUPnP ransacg1P2R ransac10-4100gP3P ransacgPnP ransacUPnP ransacg1P2R ransac329705.1. 下一个最佳视角选择0选择下一个要注册的帧非常重要,因为它会影响位姿估计和三角测量的准确性。不准确的位姿估计可能导致重建失败,产生虚假的三维点。一种常用的策略是简单地选择捕捉到大部分场景的图像[43]。通常,这也是协方差传播算法在视角规划中的收敛点[10]。Lepetit等人[24]通过实验证明,绝对解算器的准确性受到图像中点的数量和空间分布的影响。Schönberger[41]提出了一种多尺度方法,将图像离散化为每个尺度的区块。下一个视角候选集包含已经看到至少预定义数量点的图像。对于每个尺度,一个点在可见的区块数对图像得分有贡献。选择得分最高的图像作为要注册的新帧。这样,具有更好空间分布的三维-二维对应关系的图像将获得更高的得分,因此将首先被注册。这种方法实用、易于实现,计算开销较小。考虑到LF帧中的子孔径图像具有较大的视场重叠,仅使用中心子孔径图像进行下一个视角选择在计算上更加高效。因此,uLF-SfM使用应用于中心子孔径图像的[41]的视角选择。05.2. 光场帧配准0在获得初始重建后,可以通过解决广义PnP问题并确定其绝对位姿来将新的光场帧注册到其中。广义PnP问题的输入是一组3D点及其对应的光场特征。我们获得了N个点-射线对应关系,其中N是特定3D点的帧内特征匹配的总数。使用类似于第4.3节中的仿真场景,我们使用合成数据来比较几种广义相机的绝对位姿估计算法的性能。具体来说,我们比较了嵌入在RANSAC中的以下求解器:最小求解器gP3P [18],n点求解器gPnP[18](将EPnP [24]扩展到非中心情况),g1P2R[4](使用一个点-点和两个点-射线对应关系),以及[20]的UPnP算法。我们使用作者的实现3来进行g1P2R,使用OpenGV[17]进行其他算法。图4展示了这些算法在中位数平移和旋转绝对位姿误差方面的性能。请注意,g1P2R的性能不佳,因为它需要在一个LF帧中进行局部三角测量,而这种测量由于基线较小而不准确。gP3P优于其他所有算法,因此在uLF-SfM中使用它来估计要注册的LF的位姿。如果内点的比例小于0.3,则保留该帧未注册,以便将来重新考虑。否则,通过RANSAC获得的位姿将进一步通过非线性最小化射线重投影误差来进行优化,该误差与内点相关[17]。与RANSAC的外点对应的帧内特征将从对应关系图中删除,如第4.4节所述。03 http://people.inf.ethz.ch/fcampose/ publications00 1 2 3 4 噪声水平 [像素]0中位数位置误差[米]00 1 2 3 4 噪声水平 [像素]0中位数旋转误差[弧度]0图4. 绝对位姿估计算法的比较。注意垂直轴上的对数刻度。0需要在局部三角测量点,而在LF帧的情况下,这是不准确的,因为它是在小基线下执行的。gP3P优于所有其他算法,因此在uLF-SfM中使用它与RANSAC一起估计要注册的LF的位姿。如果内点的比例小于0.3,则保留该帧未注册,以便将来重新考虑。否则,通过RANSAC获得的位姿将进一步通过非线性最小化射线重投影误差来进行优化,该误差与内点相关[17]。与RANSAC的外点对应的帧内特征将从对应关系图中删除,如第4.4节所述。05.3. 增量式建图0一旦注册了新的帧,我们按照第4.5节进行鲁棒三角测量。三角测量仅涉及几何验证的配对。我们使用新帧与已注册帧之间的帧间对应关系,这些对应关系可以从对应关系图中获得。平均重投影误差超过1像素的重建点将被丢弃。三角测量步骤还会删除被识别为异常值的帧内LF特征。偶尔,对应关系图可能包含一些异常值,例如由于错误匹配。因此,对于每个新的3D点,我们计算已注册帧的帧内对应关系的重投影误差,并删除误差大于1像素的特征。06. 光场的捆绑调整0捆绑调整(BA)通过优化跨帧的平均重投影误差来调整3D结构和相机位姿的漂移。尽管在传统的SfM中,通常频繁进行局部BA [31,49],并较少使用更昂贵的全局BA,但我们与此不同,因为我们的鲁棒三角测量已经包括了射线重投影误差的非线性优化。因此,我们定期仅使用全局BA,当3D点云增长一定百分比(在我们的实现中为15%)或新注册的帧数超过10时,会调用全局BA。对于由S个子孔径图像组成的LF帧,特定的3D点最多可以投影到S个图像。每个子孔径图像都有一个常数minaj,biN�i=1M�j=1S�k=1vijk d (Q(aj, bi, ck) , xijk)2,(1)COLMAPCOursCOLMAPCOursCOLMAPCOursOursC32980相对于LF帧的姿态,因此其绝对姿态可以直接与后者相关联。因此,我们通过保持子孔径图像的相对姿态不变,并最小化与LF帧姿态和3D结构相关的重投影误差来执行BA。为此,我们扩展了SBA[28]通用BA引擎,以处理每个LF帧中多达S个子孔径图像的投影。具体而言,SBA支持任意相机投影函数,其中投影的细节以及姿态、结构和图像投影参数由用户自行决定。因此,我们为每个子孔径图像使用2D点(总共最多2S个连接图像坐标)和6D刚体变换来表示LF帧姿态。相机旋转使用修改后的Rodrigues参数[47]进行参数化,投影雅可比矩阵通过解析推导得到。假设有N个3D点被M个LF帧观察到,x ijk表示第i个点在第j个LF帧的第k个子孔径图像上的投影,a j表示第j个LF帧的姿态,b i 表示第i个点的坐标,c k表示第k个子孔径图像的相对姿态。LF的BA等效于以下非线性最小二乘问题:0其中 Q ( a j , b i , c k ) 是点 i 在第 j 个LF帧的第 k个子孔径图像上的预测投影,d ( ., . ) 是欧氏距离,v ijk是可见性掩码。注意,c k在最小化过程中不会被修改,因为它们对于所有LF帧都是相同的,并且在相机标定过程中已经估计过。为了提高效率,利用底层正规方程的稀疏性来最小化(1) [28]。07. 实验评估0本节介绍了通过uLF-SfM恢复的重建精度和其尺度的正确性的实验。还将uLF-SfM的性能与代表最先进的LF-SfM[15]和COLMAP[41]进行了比较,将后者视为黄金标准。更多结果请参见补充材料。由于P-SfM[53]的实现未提供给我们,并且如第2节所解释的,仅依靠出版物很难复现,因此无法与之进行比较。我们使用LytroIllumLF相机捕获了4个逐渐增大的数据集,分别是“Octopus”、“House”、“Toy-car”和“Chameleon”,如图5的第一行所示。表1的第二列给出了LF帧的数量。LF相机使用[3]进行几何标定,以便与uLF-SfM和COLMAP一起使用,达到了0.20mm的重投影误差。另一方面,LF-SfM需要使用[6]进行标定,导致误差为0.22mm。子孔径图像为552×383像素,在LF帧内以5×5的网格排列。0# 光场图像 # 注册 # 3D点 平均重投影误差[pix]0Octopus 7 7 7 1045 1169 0.20 0.29 0.16 House 16 16 16 1654 1756 0.26 0.31 0.24 Toycar 103 103 103 991713512 0.17 0.72 0.23 Chameleon 303 303 303 28281 35597 0.19 0.81 0.210表1. uLF-SfM与最先进的经典SfM [41]在中心子孔径图像上的比较。0平移差异 旋转差异 (°)0我们的LF-SfM [15] 我们的LF-SfM [15]0Octopus 0.16 ± 0.13 4.39 ± 2.36 0.34 ± 0.01 1.41 ± 0.93 House 0.13 ± 0.08 3.34± 1.51 0.18 ± 0.02 3.52 ± 1.87 Toycar 0.11 ± 0.04 (32.41 ± 26.36) 0.67 ± 0.01(7.03 ± 2.64) Chameleon 0.12 ± 0.08 −0.89 ± 0.43 −0表2。使用COLMAP [41]作为参考,uLF-SfM和LF-SfM[15]获得的姿态差异。LF-SfM仅在“玩具车”上注册了63帧,并在“变色龙”上失败了。0在所有流程中,使用相同的初始化、特征检测和匹配参数。运行时间。在一台配有Intel Core i7 CPU(2.2 GHz)和16GBRAM的PC上,uLF-SfM分别需要11秒、80秒、38分钟和131分钟来处理“章鱼”、“房子”、“玩具车”和“变色龙”数据集。LF-SfM在“章鱼”和“房子”上分别需要25分钟和115分钟,其中23分钟和112分钟用于最终的非线性优
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- WebLogic集群配置与管理实战指南
- AIX5.3上安装Weblogic 9.2详细步骤
- 面向对象编程模拟试题详解与解析
- Flex+FMS2.0中文教程:开发流媒体应用的实践指南
- PID调节深入解析:从入门到精通
- 数字水印技术:保护版权的新防线
- 8位数码管显示24小时制数字电子钟程序设计
- Mhdd免费版详细使用教程:硬盘检测与坏道屏蔽
- 操作系统期末复习指南:进程、线程与系统调用详解
- Cognos8性能优化指南:软件参数与报表设计调优
- Cognos8开发入门:从Transformer到ReportStudio
- Cisco 6509交换机配置全面指南
- C#入门:XML基础教程与实例解析
- Matlab振动分析详解:从单自由度到6自由度模型
- Eclipse JDT中的ASTParser详解与核心类介绍
- Java程序员必备资源网站大全
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功