今天读一篇WACV 2024上MVS的文章,作者来自格拉茨技术大学。
文章链接:点击前往
Abstract
为了减少在深度图融合点云参数调整上的实验负担,可以学习基于entropy的filtering mask进而根据两个视角的几何验证来重建三维模型。并且,提出的网络计算开销不大,训练只需要6GB,测试时,3.6GB即可处理1920*1024的图片,性能也和sota很接近。
1 Introduction
MVS问题当中,尽管输出首先是深度图,但当今最常见的基准测试是评估点云,即3D模型而不是深度图。 虽然深度图的创建是由神经网络处理的,但点云仍然通过检查几何和光度一致性以经典方式生成。 photometric mask通常是通过评估网络输出的概率权重来获得的,而网络输出的概率权重不是明确学习的。 对于geometric filtering,存在不同的融合框架,它们将像素投影到 3D 空间中,并具有几个可以调整的类似参数:1)interval scale。 影响每个视图中深度范围的参数。 2) Consistent number of views。 必须确认深度估计以保证几何一致性的源图像的数量。 3) Back-projection error in pixels。 将一个像素投影到另一个视图并返回时的距离误差。 4)Relative depth error。 深度方向Back-projection的相对误差。 几乎每个 MVS 方法都需要手动调整这些参数,通常针对每个单独的场景,这可能是一项乏味的任务。 此外,融合是一个单独的非学习步骤,因此很难评估网络的真实性能。 与前面提到的方法相比,我们能够应用一组仅依赖于几何双视图一致性检查的融合参数。
主要以下几个贡献:
- 训练阶段多产生一个filter mask,以避免手动调整融合参数
- 训练阶段引入随机匹配patch,这使得使用全分辨率图片而不需要resize
- 扩展了GBiNet以适配任意分辨率图片
- 做了融合参数的对比实验
2 Related Work
介绍了相关工作,比如重建步骤和融合方式。
3 Method
3.1 Pre-processing: Randomized Matched Patches
当前可用数据的一个问题是,虽然可以使用相对高分辨率的图像,但在训练阶段使用全分辨率通常会占用大量内存。 GBiNet建议裁剪随机补丁进行训练以学习更好的特征,而不增加训练开销,同时控制内存消耗。 虽然这对于像 DTU 这样定义良好的数据集来说已经足够好了,但它无法在像BlendedMVS这样观测点差距很大的数据集中获得重叠的patch。 因此,我们引入了随机匹配补丁:从任何给定的ref图像中,我们在训练过程中随机裁剪图像的一部分到适合网络的任意大小(在我们的例子中为 512 × 512)。 由于GT深度图和相机参数已知,我们可以将ref块的像素投影到src图像中。 为了找到相应的patch,我们首先在中心像素周围投影 p 个像素,并检查是否至少有 25% 是有效的,即不在src图像之外或包含无效的深度值。 然后我们计算有效点的质心以获得源patch的中心像素(见图3)。 这个过程可以在线完成,并对所有源图像重复,并保证补丁之间的显着重叠(见图 3)。 如果找不到有效匹配,则在ref图像中选择一个新的随机补丁。 在极少数情况下,此过程失败20次,我们会跳过该图像。
3.2 Feature Extraction
特征金字塔,和其他的MVS网络类似,没什么特别的。
3.3 Cost Volume Assembly
代价体聚合。
为了控制cost volume的大小,我们采用GBiNet的策略,该策略使用两个级联cost volume,每个特征阶段只有4个深度假设。 然而,他们的方法在每次通过正则化网络后将深度间隔减半,从而形成具有固定深度分辨率的刚性网络架构。 我们引入了一个区间参数ψ,它允许我们自由选择深度分辨率,而不改变网络的内存需求。 通过将整个深度范围除以4找到第一个深度区间(来自我们对每个成本量的4深度假设),我们可以简单地将此参数与前一个深度区间相乘以获得新的深度区间。