📜 论文阅读 | 用于室内 RGB-D 重建的基于平面的几何和纹理优化
文章目录
用于室内 RGB-D 重建的基于平面的几何和纹理优化
Wang C, Guo X. Efficient Plane-Based Optimization of Geometry and Texture for Indoor RGB-D Reconstruction[J]. arXiv preprint arXiv:1905.08853, 2019.
作者:德克萨斯大学达拉斯分校 Google Scholor
代码开源
Efficient Plane-Based Optimization of Geometry and Texture for Indoor RGB-D Reconstruction
【C】 穷理以致知,一文而四问
- 1. 针对什么问题?
- 利用平面的方法进行室内场景的三维重建;
- 同时如何降低重建的密度且保证质量,克服原始 RGB-D 数据的噪点,保存几何信息;
- 不仅考虑大型的平面环境的重建,还考虑小物体;
- 2. 采用什么方法?
- 首先利用 BundleFusion 的方法获取 RGB-D 数据的稠密的粗糙的初始重建;
- 然后用平面基元对上一步获取的输入网格进行划分,将其简化为一个轻量级网格;
- 接着对平面参数、相机姿态和纹理颜色进行优化,使帧间光度一致性最大化;
- 最后对网格几何进行优化,使平面几何的一致性最大化;
- 3. 达到什么效果?
- 生成一个轻量级的网格,保留鲜明的特征和良好的表面纹理;
- 在运行时间上合理,且存在很多并行优化的空间;
- 相较于 3DLite 方法提取了更多场景布局、非平面物体的纹理和几何信息。
- 4. 存在什么不足?
- 需要有一种三维重建方法(BundleFusion)先获取网格信息作为输入,本文主要针对这些输入做简化,本身不是做三维重建,也不是实时运行;
- 表面纹理没有 3DLite 那么清晰;
- 不能填补 RGB-D 扫描中经常出现的空洞和缝隙;
- 纹理优化过程依赖于密集的光度误差,在相机位姿优化过程中对初始输入敏感,容易以局部最小结束,因此,如果由 BundleFusion 系统生成的初始相机姿态存在较大的误差,结果可能会包含未对齐的表面纹理。
0. 摘要
- 本文提出了一种用平面基元重建 RGB-D 室内场景的新方法;
- 该方法以 RGB-D 序列为输入,采用三维重建方法在序列上重建稠密的粗糙网格,生成具有清晰纹理和鲜明特征的轻量的低多边形网格,同时不丢失原始场景的几何细节;
- 为此,我们首先用平面基元(plane primitives)对输入网格进行划分,将其简化为一个轻量级网格
- 然后对平面参数、相机姿态和纹理颜色进行优化,使帧间光度一致性最大化;
- 最后对网格几何进行优化,使几何与平面的一致性最大化;
- 与现有的只在场景中覆盖较大平面区域的平面重建方法相比,我们的方法在不丢失几何细节的情况下,通过自适应平面构建整个场景,并在最终网格中保留了鲜明的特征;
- 我们应用于几个 RGB-D 扫描序列,并与其他最先进的重建方法进行比较,证明了我们的方法的有效性。
1. 简介
- 三维重建:近年来,随着消费者深度相机的普及,在线和离线的 RGB-D 重建技术发展迅速,在 VR 、 AR 、游戏和 3D 打印等热门领域有着广泛的应用;
- 最先进的在线三维重建方法可以利用几何细节高效地捕捉真实环境中的室内和室外场景 [19,24,25,6,21];
- 然而,由于数据融合中存在深度数据噪声、相机姿态不正确、数据过度平滑等原因,这些方法生成的三维模型往往过于密集,纹理不令人满意。如果没有进一步的细化或后期后处理,这些模型就不能直接在大多数应用程序中使用。
- 问题:为了降低重建模型的密度和提高结构质量,一个典型的策略是将平面基元引入前端(如跟踪)或后端(如模型细化)重建通道,作为典型的满足曼哈顿世界假设的室内场景主要是由平面区域构成;
- 然而,大多数现有的平面重建方法仅考虑大的平面区域,例如墙壁,天花板,地板和大桌面,并且简单地忽略和移除具有自由形状表面的其他物体,无论它们是否包含平面区域,如各种室内家具和大型平面上的物体或附着物;
- 这些仅用大平面重建的模型过于简化,缺乏保真度,不适用于获得室内装修漫游、游戏以及各种 VR 或 AR 应用等需要几何细节的情况;
- 此外,在室内场景的平面重建中,一个具有挑战性的问题是,由于 RGB-D 原始数据的噪声,几何细节往往是有噪声的,从场景中提取平面基元或其他类型的几何先验在保持原始形状的前提下是困难的,也是费时的。
- 本文方法:本文提出了一种利用平面重建 RGB-D 室内场景的新方法,在不丢失几何细节的前提下生成一个轻量级的完整的三维纹理模型;
- 我们的方法以室内场景的 RGB-D 序列作为输入,并在该序列上采用某种在线重建方法重建一个稠密的粗糙网格;
- 首先将整个密集网格划分为不同的平面簇,每个簇表示一个平面基元;
- 接下来,我们将基于平面分区的稠密网格简化为一个轻量级网格,它既保留了大的平面区域,也保留了小的对象,同时又不丢失几何细节;
- 为了生成网格表面纹理映射,我们为每个平面和平面上的采样点创建纹理块,并通过优化相机姿态、平面参数和纹理颜色,运行全局优化过程,使采样点在帧间的光度一致性最大化;
- 最后,我们通过最大化几何与平面基元的一致性来优化几何网格,进一步保留了原场景的尖锐特征,如平面交叉口的棱角。
2. 相关研究
- 近年来,基于消费级深度相机的在线和离线三维重建技术得到了广泛的研究;
- 基于体素的方法:在线大规模三维重建方法的一个主要类别是利用体积数据结构和体积融合技术,如最早的在线方法之一 KinectFusion [18] 及其后续的变体,如可伸缩的在线重建 [4]、VoxelHashing [19]、Volume shifting[23]、BundleFusion [6] 和 InfiniTAM [21];
- 这些基于体积的方法的一个重要优点是,能够快速和有效地平滑由深度相机扫描的噪声数据且易于生成网格和表面连接;
- 然而,一个主要的限制是,体积融合过度平滑了表面,消除了尖锐的特征,因为它倾向于在体积中相同的体素位置平均点和它们的颜色;
- 基于面元的方法:除了基于体积的方法外,另一种策略是基于点的方法,它利用面元作为基本的数据结构来表示没有连接的曲面 [14,24,25];
- 然而,它仍然存在过度平滑的问题,因为它也倾向于取空间中邻近点的平均 [24];
- 此外,在扫描过程中,由于过度平滑以及包括有噪声的颜色和深度数据在内的其他因素,使得曲面表示和相机姿态的误差积累。
- 基于体素的方法:在线大规模三维重建方法的一个主要类别是利用体积数据结构和体积融合技术,如最早的在线方法之一 KinectFusion [18] 及其后续的变体,如可伸缩的在线重建 [4]、VoxelHashing [19]、Volume shifting[23]、BundleFusion [6] 和 InfiniTAM [21];
- 为了提高摄像机的姿态估计和表面质量,有几项工作将平面引入重建通道中,利用简单的表面先验估计复杂的表面,特别是在具有曼哈顿世界假设等特殊结构特征的建筑物或室内场景中;
1. 提高跟踪效果:其中一类方法将平面约束引入重建过程的前端,以提高摄像机跟踪的鲁棒性;- 文献 [7] 是最早的方法之一,结合平面和特征点对应来估计相机在 RGB-D 扫描序列中的姿态;
- 文献 [12]采用了非常相似的思想,将平面约束引入 SLAM 框架中进行跟踪,其结果在姿态估计方面超过了目前最先进的在线三维重建方法;
- 对于离线重建框架,文献 [10] 将平面关系约束与其他类型的约束结合起来,提出了一种 RGB-D 数据的精细到粗糙的全局配准算法,该方法对大规模的 RGB-D 数据有效。
- 2. 表达重建模型:另一类方法试图利用平面来更好地表示由 RGB-D 数据重建的最终模型的曲面;
- 文献 [8] 在移动设备上的实时三维重建通道中引入了平面先验,降低了计算复杂度,去噪深度数据,改善了室内结构;
- 然而,这种方法只对一些有限类型的平面(如墙壁、天花板和地板)进行了细化,而对其他扫描数据保持不变;
- 另一个令人印象深刻的方法是 3DLite [13],通过平面重建 RGB-D 模型,并在其上优化表面纹理;
- 该方法通过输入稠密和融合重建生成具有优化纹理的轻量级模型,提出了一种基于帧的平面检测技术,用于从 RGB-D 网格中提取大平面,然后在平面上全局优化相机姿态和表面纹理;
- 但是,此方法仍然无法检测并简单地删除所有小平面和非平面几何细节,而我们的方法是通过平面重建整个场景而不会丢失几何细节。
- 文献 [8] 在移动设备上的实时三维重建通道中引入了平面先验,降低了计算复杂度,去噪深度数据,改善了室内结构;
- 点云数据的平面重建也是近几十年来的一个热点问题,点云数据非常普遍,可以通过激光扫描仪等多种工具或运动恢复结构(SfM)轻松获取,平面被广泛应用于室外环境的改造,以适应建筑结构;
- 文献 [16] 从非结构化、大规模、有噪声的建筑扫描中提取出平面的规则排列,并用完整的、轻量级的平面重建建筑模型,但是,它只在建筑框架中检测到较大的平面区域,而忽略了建筑内部的细节,所以它更像是一种使用平面的建筑重建方法;
- 文献 [17] 提出的另一种方法也是如此,通过从输入点云中所有检测到的构件上提取平面,只重建建筑物的永久性构件(墙壁、天花板和地板) 。
- 两种最常见的平面检测策略是 RANSAC 和 区域生长;
- 基于 RANSAC 的方法因其简单、可扩展性和概率保证而受到广泛的欢迎;
- 然而,它很容易忽略全局场景结构,忽略点之间的邻域规则性 [16];
- 因此,基于 RANSAC 的方法通常用于 CAD 图形、建筑结构等常规模型 [15];
- 与 RANSAC 相比,区域生长从种子扩展到相邻的区域,天生就能检测到相互连接的部分,更适用于大规模模型的平面检测,并得到了广泛的应用;
- 然而,一个重要的缺点是,区域增长的设计不是用来检测自由形状的平面,因为它很容易将曲面分割成不规则的部分,导致过度分割;
- 文献 [3] 提出了从具有平面区域的噪声非结构化点云中提取平面并构建三角形网格的最早方法之一;
- 文献 [1] 通过使表面相对于边缘和角度规则化,从距离图像中呈现分段平面表面的 3D 重建;
- 文献 [20] 提出了一种基于原始点集的平面形状检测和正则化方法;
- 同样的,这些方法虽然没有刻意忽略非平面区域,但是依赖于区域的生长,仍然不能保持曲面的形状。
- 基于 RANSAC 的方法因其简单、可扩展性和概率保证而受到广泛的欢迎;
3. 平面重建
- 我们的重建通道以 RGB-D 序列作为输入,首先使用一些最先进的在线重建技术,如 BundleFusion[6] 来重建初始密集网格;
- 首先,我们通过将网格划分为不同的簇来检测平面基元,每个簇表示一个平面 patch(3.1节);
- 接下来的步骤是基于平面划分对稠密网格进行简化(第3.2节);
- 接下来,我们对网格中每个平面上的点进行采样,为平面 patch 创建纹理块,并优化相机的姿态、平面参数和纹理颜色,最大限度地提高帧间的颜色一致性(章节3.3);
- 最后,我们对网格几何进行优化,使网格上的顶点与对应的平面基元之间的一致性最大化(第3.4节)。
3.1 平面网格划分
- 传统平面重建方法的缺陷:与现有的只考虑大平面区域的平面重建方法不同,我们的目标是将整个网格划分为包含所有几何细节的平面基元;
- 正如我们在第 2 节中介绍的,两种最常见的平面检测方法是 RANSAC 法和区域生长法;
- 基于 ransac 的检测是有效的,但容易忽略全局场景级结构,而区域增长在检测规则下的平面更健壮,但仍然不是设计用来检测具有曲面的自由形状的平面;
- 3DLite [13] 提出了一种基于帧的平面检测方法,用于从 RGB- D网格中提取大平面,然而,这种方法仍然不能检测小的平面区域或非平面表面,它只是在最终网格中去除它们,此外,3DLite 中使用的逐帧平面检测和合并方案耗时较长,容易积累错误,因此需要利用许多进一步的优化步骤来提高鲁棒性。
- 本文采用的平面划分方法:在我们的方法中,我们参考了文献 [2] 提出的一种最先进的表面划分算法;
- 该方法提出了一种新的基于主成分分析(PCA)的能量分析方法,该方法能使能量最小化,从而获得对整个曲面的最优分段线性逼近;
- 将一个输入网格划分成簇后,每个簇都附加一个由质心 \(c_{i}\) 和法向 \(\phi _{i}\) 定义的平面代理作为簇协方差矩阵的最小特征向量方向;
- 为了更灵敏地检测平面,并对平面簇的紧致性进行正则化,在实验中,我们将文献 [2] 中的式 (4) 的系数从 \(10^{-15}\) 降低到 \(10^{-20}\);
- 图 1 (左)为采用 groundtruth camera pose 在线重建系统 VoxelHashing [19] 重构的稠密网格上的平面划分结果。
- 在得到初始平面分区之后,我们运行进一步的平面合并步骤,将相邻的平面合并为较大的平面(图 1 右);
- 究其原因,基于 RGB-D 数据的重构网格中总是含有平面区域上的凹凸点等噪声,因此,一个大的平面区域可能被划分为几个不同的小集群,而不是仅仅一个大集群(参见图 1 左边的墙壁);
- 我们的平面合并准则是这样的:相邻的两个平面 i 和 j 如果满足以下条件,可以合并在一起:
- ① 两个平面法向量之间的夹角比较小:\(\theta \left ( n_{i},n_{j} \right )< \epsilon _{n}\);
- ② 两个平面之间的平均距离很小:\(Avgdis\left ( i,j \right )< \epsilon _{d} ,Avgdis\left ( j,i \right )< \epsilon _{d}\);
- ③ 两个平面中心连线 \(r_{i,j} = c_{i}-c_{j}\) 与每个平面的法线之间的夹角接近 90°:\(\left | cos\left ( \theta \left ( r_{i,j},n_{i} \right ) \right ) \right |< \epsilon _{c},\left | cos\left ( \theta \left ( r_{i,j},n_{j} \right ) \right ) \right |< \epsilon _{c}\)。
- 在本文的实验中,角度阈值取 8°,距离阈值取 0.05,与法线的夹角阈值取 80 °;
- 前两个条件来自于文献 [8] 的平面合并方法;
- 我们添加了第三条规则,以消除两个相邻平面在噪声网格中几乎“重叠”的特殊情况,并且只合并彼此一侧的相邻平面。
3.2 平面采样
- 在将网格划分为平面集群之后,我们基于集群对网格进行了简化,创建了一个轻量级网格以进行进一步优化;
- 注意,即使我们已经有了一个由平面组成的模型,我们仍然选择通过简化原始的稠密网格来创建网格,而不是使用一些网格生成算法(如Delaunay三角剖分)来生成平面上的网格,这一策略出现在大多数现有方法中[3,13,15];
- 究其原因,我们发现在一个有噪声的模型中,从复杂的平面截距中建立正确的连通性是困难的,也是耗时的,特别是在一个包含各种形状自由几何物体的室内重建网格中;
- 因此,我们的策略是通过对基于平面的原始密集网格进行简化,有效地创建一个微小的轻量级网格,并进一步优化其几何形状以适应平面(章节3.4)。
- 在网格简化过程中,我们选择了经典的基于二次误差度量(QEM)的曲面简化算法 [9];
- QEM 的核心是通过最小化点到平面的能量来收缩边缘,这非常符合我们对平面形状进行预处理的目的;
- 此外,QEM 简单高效,并倾向于保留原始模型的鲜明特征,这也是我们在简化网格中所需要的;
- 不同之处在于,与标准的 QEM 过程不同,标准的 QEM 过程根据收缩能量将所有边都放到最小堆中,并在全局范围内收缩,我们的简化过程是逐组进行的,由两个步骤组成:
- (1)固定所有聚类边界边,单独化简每个聚类的内聚类边;
- (2)修正简化的簇内边,简化簇的所有有界边。
- 通过这两个步骤,我们可以减少平面内不重要的信息,同时仍然保留沿平面边界通常出现的重要的尖锐特征;
- 另一个需要考虑的问题是,集群的大小各不相同,但是我们希望每个集群在简化之后包含几乎相同数量的边,也就是说,大平面包含大三角形,反之亦然;
- 然后,在收缩目标相同的情况下,逐簇化简更有利于使小簇密度更大,以保持其形状,因为它们通常是曲面的划分;
- 图 2 显示了标准 QEM (保持网格边界)与我们的方法在图 1 中使用的相同模型上的比较。
- 两个简化模型的面数完全相同,为 41K 点,而 mesh QEM 模型的面数为 30K,大于我们的模型的面数为 22K;
- 显然,QEM 过分简化了平面边界和曲面,而我们的方法更好地保持了尖锐的特征和几何细节。
3.3 平面、相机位姿和纹理优化
- 在我们得到具有平面分区的简化网格之后,我们运行优化过程以最大化帧之间网格几何的光度一致性,在优化之前,我们仍然需要对网格进行一些预处理。
- 首要工作是为网格的所有面生成一个初始纹理映射;
- 在我们的方法中,我们为网格上的每个 3D 平面创建一个 2D 纹理块,虽然目前已有许多成熟的参数化方法来生成三维网格表面的二维纹理块,但我们使用的是一种非常简单有效的方法;
- 考虑到网格上每个簇中的顶点都已经接近共面,我们只需将它们投影到平面上得到二维 patch,然后对 patch 边界内的网格点进行采样得到纹理元素点;
- 在我们的实验中,我们使用固定的采样密度 0.0025m,也就是说,在全局空间中 1 米对应于纹理图像中的 400 像素,很明显,每个纹理都位于从网格中投射出的三角面内;
- 然后,我们计算每个纹理元素在其对应的 2D 面内的质心坐标,并使用它们计算纹理元素在全局空间中对应的 3D 点 p,只需将相同的质心坐标应用于三维空间中的三个顶点即可,这些三维纹理元素点将作为优化过程中的主要元素。
- 另外的工作是从 RGB-D 帧中选择的关键帧;
- 为了降低时间复杂度,提高纹理质量,我们采用了类似于文献 [26] 的彩色地图优化思想,每隔一段时间只选择清晰的帧(sharp frames);
- 与他们的方法类似,我们用文献 [5] 对每个图像的模糊度进行了定性度量,区别在于,在 [26] 中,我们不是每 1 到 5 秒选择关键帧,而是根据数据每 5 到 10 帧选择最尖锐的帧。
- 在优化过程中输入的是彩色图像 \(\left \{ I_{i} \right \}\) 和关键帧的深度图像,所有纹理的 3D 点 \(\left \{ p\right \}\) 在网格上采样,初始相机位姿(全局到相机空间)为 \(T=\left \{ T_{i} \right \}\) ,初始的平面参数为 \(\Phi =\left \{ \phi _{j} \right \}\) ;
- 在优化过程中,我们通过优化相机位姿,平面参数和纹理颜色,最大化 3D 纹素在帧间相应平面上投影的图像一致性;
- 目标函数为:
- 其中 \(E_{s}\) 是文献 [26] 中引入的对彩色图像非刚性校正偏移量的约束;
- \(\lambda _{1},\lambda _{2}\) 是平衡系数,在实验中 \(\lambda _{1}\) 的初值满足 \(E_{c} =\lambda _{1}E_{p}\),\(\lambda _{2}=0.1\)。
3.3.1 光度一致性项
- 光度能量用于测量每个纹理在对应平面上投影点的颜色与目标颜色在帧间的光度误差:
- 实验中遵循文献 [26] 的相同参数,每个图像上使用 20 * 16 个网格;
- 实验中遵循文献 [26] 的相同参数,每个图像上使用 20 * 16 个网格;
3.3.2 平面约束项
- 平面约束项是最小化 3D 纹理点到其对应平面的距离之和;
3.3.3 偏移约束项
- 偏移约束是为了使偏移向量的大小最小化;
- 为了使公式(1)中的目标函数最小化,我们采用了类似文献 [26] 的交替优化策略:其基本思想是在优化不同变量与固定变量之间进行交替;
- 在每次迭代中,我们首先对 C 进行优化并修复其他所有的,然后对其他的进行优化和修复,最后对 T 和 F 进行优化并修复其他的;
- 优化 C 时,问题变成了一个线性系统,解的形式是封闭的,\(C\left ( p \right )\) 是所有可见帧中与 p 相关的所有投影像素的平均颜色;
- 优化 \(\Phi\) 时,采用标准的高斯-牛顿直接对平面的四个参数进行更新,注意,每个平面的优化都是相互独立的,所以可以进行并行求解;
- 优化 F 类似于优化 \(\Phi\) 直接更新所有相关变量;
- 优化 T 时,将每个位姿 \(T_{i}\) 参数化为 6 个参数( 3 个表示旋转,3 个表示平移)作为增量变换,并局部线性化每个位姿的最后更新值;
- 类似地,每个 \(T_{i}\) 和 \(F_{i}\) 的优化与其他帧无关,并且可以进行并行求解。
- 图 3 显示了优化前后网格上的纹理,在优化之前,对每个纹理使用所有可见帧的平均颜色,我们的优化过程可以降低噪音,使纹理更清晰。
3.4 几何优化
- 最后一步是优化网格几何形状以尽可能接近平面;
- 从 RGB-D 数据重建的融合网格总是包含噪声或过度平滑的表面,例如平面区域上的凹凸表面和平滑边界,其被认为是尖锐特征;
- 通过优化网格几何以适应优化平面,我们可以减少网格表面的噪声并锐化几何特征。
- 为了优化几何与平面之间的一致性,我们的方法是使每个簇中的网格顶点与其对应平面之间的一致性最大化;
- 正如我们在 3.3 节中介绍的,每个 2D 纹理都位于一个三角形面的投影中,在优化过程中,我们利用了每个纹理及其对应平面之间的初始重心关系,并试图保持纹理点在平面上的投影与每个面的优化顶点之间的这种关系;
- 具体而言,想要最小化关于所有顶点 \(V=\left \{ v_{i} \right \}\) 的能量函数公式(8)
- 其中第一项是几何一致性项,见公式(9);
- 另一项是正则化项,是为了保证公式(8)有有效的解,见公式(10)用于最小化每个顶点与其所有邻近的顶点的平均值之间的差;
- 公式(8)中的 \(\lambda _{3}\) 是为了平衡两项,在实验中简单地取其为 1.0。
- 公式(8)中的问题实际上是一个稀疏线性系统,可以通过 Cholesky 分解有效地求解;
- 图 4 显示了从 BundleFusion 数据集 [6] 扫描得到的优化几何网格结果;
- 即使对输入的密集模型进行了锐化处理,我们的方法仍然可以在最终的轻量化网格中保留锐化特征。
4. 结果
- 我们在三个流行 RGB-D 扫描数据集的 10 个序列测试了我们的方法;
- 6 个模型来自于 BundleFusion [6](表1中的前6行);
- 2 个模型来自于 ICL-NUIM [11](表1下面2行);
- 2 个模型来自于 TUM RGB-D 数据集 [22](表1中最后2行)。
- 根据文献 [13],在线 BundleFusion 代码可能在重建中产生一些工件,因此,在我们的实验中,我们遵循文献 [13] 的思想,在每个 RGB-D 序列上运行体素哈希代码 [19],使用 groundtruth pose (BundleFusion dataset提供了由BundleFusion系统计算的pose)来重建输入密集网格;
- 表 1 显示了每次扫描的定量结果和我们的结果模型,注意,每个输出结果模型的面数或顶点数仅为原始稠密模型的 1%-3% ;
- 图 5 和图 6 显示了两次扫描的更多定性结果;
- 这些数据表明,我们的方法可以生成一个轻量级的网格,保留鲜明的特征和良好的表面纹理。
- 在时间分析方面,我们使用 c++ 实现了我们的算法,并在 Intel Core i7 2.5GHz CPU 和 16gb 内存的台式机上进行了测试,每次扫描的运行时间如表 1 所示;
- 时间数据表是我们运行系统的总时间,其中在每个模型上平面分区(3.1节)和网格简化(3.2节)步骤花费2分钟,而几何优化(3.4节)只需要不到10秒,其余大部分是平面,相机构成和结构优化(3.3节);
- 注意,我们的代码只是 CPU 版本,目前在所有步骤中不包含任何并行加速技术,如我们在 3.3 节中所描述的,每个平面的优化是相互独立的,可以并行运行,对于每一帧相机的姿态和校正函数的优化也是如此;
- 此外,我们发现优化过程中的大部分时间都花在高斯牛顿算法中雅可比矩阵的计算上,由于每个纹理的计算过程也独立于其他所有的计算过程,因此使用 GPU 可以大大加速雅可比矩阵的计算;
- 与两种最先进的方法 BundleFusion[6] 和 3DLite[13] 比较;
- BundleFusion 实时生成稠密融合重建;
- 3DLite 与我们的方法类似,以 BundleFusion 为输入进行稠密重建,提取大的平面区域作为几何形状,对其纹理进行优化,生成带有表面纹理的轻量化网格;
- 图 6 显示了这些方法与表面纹理的网格比较;
- BundleFusion 模型具有稠密的覆盖平滑的尖锐特征和粗糙纹理;
- 3DLite 模型简洁清晰,纹理清晰,但是它只提取大平面区域作为最终的网格,显然遗漏了几乎所有的几何对象或包括大型结构化的支撑平面(如在第一排书架)与曲面和任意的对象(如第二排中放在桌子上的);
- 我们的方法解决了上述问题。
- 局限性分析:虽然我们的方法可以生成具有清晰特征和保留几何细节的轻量级纹理网格,但它仍然存在一些限制
- ① 首先,我们的表面纹理没有 3DLite 那么清晰,因为 3DLite 引入了很多优化纹理的技术,比如纹理锐化和帧间的颜色校正;
- 然而,根据 3DLite 论文 [13] 中描述的运行时间数据,这些步骤非常耗时,可能需要几个小时;
- 我们计划找到一个类似但更快的方法来进一步优化纹理;
- ② 齐次,我们的方法不能填补 RGB-D 扫描中经常出现的空洞和缝隙,而 3DLite 可以通过外推现有平面和填充空洞,从提取的大平面生成完整的几何图形;
- 然而,在不去除任何几何细节的情况下完成含噪重建的几何信息仍然是一个具有挑战性的问题;
- ③ 此外,我们的纹理优化过程类似于文献 [26],它依赖于密集的光度误差,在相机位姿优化过程中对初始输入敏感,容易以局部最小[13]结束;
- 因此,如果由 BundleFusion 系统生成的初始相机姿态存在较大的误差,我们的结果可能会包含未对齐的表面纹理。
- 因此,如果由 BundleFusion 系统生成的初始相机姿态存在较大的误差,我们的结果可能会包含未对齐的表面纹理。
- ① 首先,我们的表面纹理没有 3DLite 那么清晰,因为 3DLite 引入了很多优化纹理的技术,比如纹理锐化和帧间的颜色校正;
5. 总结
- 我们提出了一种新的方法来从初始的稠密三维重建和融合网格中生成轻量级的重建与清晰的表面纹理;
- 与只检测场景中大平面区域的现有方法不同,我们的方法从所有对象检测平面,并按平面分割整个网格。
- 然后,我们简单地基于平面划分密集网格,并优化平面、相机姿态和面纹理,以最大限度地提高帧间的光度一致性,最后优化网格几何信息,以最大限度地提高平面几何的一致性;
- 实验结果表明,该方法能很好地保留网格中的锐利特征和几何细节。
- 我们的方法可以应用于获取纹理化室内场景重建的相关情况,而不会遗漏几何细节。
- 在未来,计划通过解决上述限制来改进我们的方法,并通过引入 GPU 加速或其他相关技术来提高我们方法的效率。
【R】参考文献
-
[1] Boulch A, de La Gorce M, Marlet R. Piecewise‐planar 3D reconstruction with edge and corner regularization[C]//Computer Graphics Forum. 2014, 33(5): 55-64.
区域生长方法,使表面相对于边缘和角度规则化,从距离图像中呈现分段平面表面的 3D 重建 -
[2] Cai Y, Guo X, Liu Y, et al. Surface approximation via asymptotic optimal geometric partition[J]. IEEE transactions on visualization and computer graphics, 2016, 23(12): 2613-2626.
本文采用的平面划分方法,作者前期工作 -
[6] Dai A, Nießner M, Zollhöfer M, et al. Bundlefusion: Real-time globally consistent 3d reconstruction using on-the-fly surface reintegration[J]. ACM Transactions on Graphics (ToG), 2017, 36(4): 76a.
BundleFusion 数据集,本文对比实验之一,本文输入密集网格的获取方法,项目主页,代码开源 -
[7] Dou M, Guan L, Frahm J M, et al. Exploring high-level plane primitives for indoor 3d reconstruction with a hand-held rgb-d camera[C]//Asian Conference on Computer Vision. Springer, Berlin, Heidelberg, 2012: 94-108.
点面结合估计相机位姿,较早的工作之一 -
[8] Dzitsiuk M, Sturm J, Maier R, et al. De-noising, stabilizing and completing 3D reconstructions on-the-go using plane priors[C]//2017 IEEE International Conference on Robotics and Automation (ICRA). IEEE, 2017: 3976-3983.
引入平面先验,降低计算复杂度 -
[10] Halber M, Funkhouser T. Fine-to-coarse global registration of rgb-d scans[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. CVPR 2017: 1755-1764.
将平面关系约束与其他类型的约束结合起来 -
[11] Handa A, Whelan T, McDonald J, et al. A benchmark for RGB-D visual odometry, 3D reconstruction and SLAM[C]//2014 IEEE international conference on Robotics and automation (ICRA). IEEE, 2014: 1524-1531.
本文使用的 ICL-NUIM 数据集 -
[12] Hsiao M, Westman E, Zhang G, et al. Keyframe-based dense planar SLAM[C]//2017 IEEE International Conference on Robotics and Automation (ICRA). IEEE, 2017: 5110-5117.
浙大章国锋 将平面约束引入 SLAM 框架中进行跟踪 -
[13] Huang J, Dai A, Guibas L J, et al. 3Dlite: towards commodity 3D scanning for content creation[J]. ACM Trans. Graph., 2017, 36(6): 203:1-203:14.
基于帧的平面检测技术,提取大平面,本文对比实验之一 -
[14] Keller M, Lefloch D, Lambers M, et al. Real-time 3d reconstruction in dynamic scenes using point-based fusion[C]//2013 International Conference on 3D Vision-3DV 2013. IEEE, 2013: 1-8.
基于点的面元表示来进行三维重建 -
[20] Oesau S, Lafarge F, Alliez P. Planar shape detection and regularization in tandem[C]//Computer Graphics Forum. 2016, 35(1): 203-215.
区域生长方法,基于原始点集的平面形状检测和正则化方法 -
[26] Zhou Q Y, Koltun V. Color map optimization for 3D reconstruction with consumer depth cameras[J]. ACM Transactions on Graphics (TOG), 2014, 33(4): 155.
本文关键帧选择策略,对图像模糊度进行度量
【Q】问题
- 3.3.1 节,彩色图像上控制顶点的非刚性校正函数集?F_i 和 f_i,l 没理解;
- 本文的工作一个是基于平面对网格进行简化,另一个是对结果进行优化,包括光度一致性和几何一致性,这个有类似于 SLAM 的直接法和特征点法吗?
【T】思考
wuyanminmax@gmail.com
2019.06.06