今天读的是一篇发表在CVPR2023上的文章,作者来自浙大与阿里巴巴。
文章链接:Multi-View Stereo Representation Revisit: Region-Aware MVSNet
目录
- Abstract
- 1 Introduction
- 2 Related Work
- 3 Method
- 3.1 Cost Volume Construction
- 3.2 Signed Distance Supervision
- 3.3 Volume Fusion
- 3.4 Supervision of SDF Branch
- 4 Experiments
- 4.1 Implementation Setup
- 4.2 Results on Tanks and Temples
- 4.3 Results on DTU
- 4.4 Ablation Studies
- 5 Conclusion
Abstract
基于深度学习的多视图立体已经成为从多视图重建完整几何细节对象的强大范例。 大多数现有方法仅通过最小化预测点与光线与表面交点之间的间隙来估计像素级深度值,这通常忽略表面拓扑。 这对于无法正确重建的无纹理区域和表面边界至关重要。 为了解决这个问题,我们建议利用点到面的距离,使模型能够感知更广泛的表面。 为此,我们从成本体积预测距离体积,以估计表面周围点的有符号距离。 我们提出的 RA-MVSNet 是补丁感知的,因为通过将假设平面与表面补丁相关联来增强感知范围。 因此,它可以增加无纹理区域的完成度并减少边界处的异常值。 此外,可以通过引入的距离体积生成具有精细细节的网格拓扑。 与传统的基于深度学习的多视图立体方法相比,我们提出的 RA-MVSNet 方法利用符号距离监督获得了更完整的重建结果。 在 DTU 和 Tanks & Temples 数据集上的实验表明,我们提出的方法取得了最先进的结果。
1 Introduction
简介,主要贡献如下:
• 引入采样点的点到面距离监督来扩大模型预测的感知范围,从而实现无纹理区域的完整估计并减少对象边界区域的outliers。
• 为了解决缺乏真实mesh的挑战,我们基于三角网格计算点集之间的有符号距离,这在精度和速度之间进行了trade off。
• 在MVS 数据集上的实验结果表明,提出的方法在室内数据集 DTU 和大规模室外数据集 Tanks and Temples 上均表现最佳。
2 Related Work
介绍了传统MVS和learning-based MVS的工作。
3 Method
3.1 Cost Volume Construction
和普通MVSNet基本没有差别,只是多使用了Recursive Feature Pyramid结构作为image encoder来获得3个阶段的feature map。
3.2 Signed Distance Supervision
根据SDF这种隐式表达方式来构建distance volume以预测点到面的距离。
由于引入了距离预测,我们需要将GT从深度图扩展到有符号距离场。 因此,深度图仅包含符号距离为0的采样点,缺乏表面周围点的groundtruth。
对于来自成本体积
C
{C}
C 的每个假设平面的精确查询点
p
i
p_{i}
pi,我们计算从
p
i
p_{i}
pi 到表面采样点
p
′
p'
p′ 的最短距离,作为有符号距离的GT。 如图 3 所示,我们采用两点距离
d
(
p
i
,
p
′
j
)
d(p_{i}, p′_{j})
d(pi,p′j) 作为 GT 有符号距离。
为了加快该过程,用局部搜索代替从所有表面采样点寻找最近邻,如图4所示。
这种基于patch的局部搜索方法将需要计算的点保持在合理的范围内尽可能少,从而降低了搜索的时间复杂度。 我们假设深度图的分辨率为
H
×
W
H×W
H×W,查询点的数量为
n
n
n。 那么,朴素计算的时间复杂度是
O
(
n
×
H
×
W
)
O(n×H×W)
O(n×H×W),它与深度图的分辨率成正比。 相比之下,基于patch的局部搜索的时间复杂度简化为
O
(
n
×
k
×
k
)
O(n × k × k)
O(n×k×k),其中
k
k
k是patch大小,通常设置为
5
5
5。因此,基于patch的局部搜索的时间复杂度可以简化到
O
(
n
)
O(n)
O(n)。 也就是说,它只与查询点的数量
n
n
n成正比,并且每个查询点的搜索时间是恒定的。
3.3 Volume Fusion
获得了probability volume和distance volume,现在需要fuse来获得最终的深度图了。一般来说,都是用softmax-based regularization network来预测深度的。
但该方法由于计算中涉及多个无效平面,存在精度问题。 一个像素(U,V)的深度值仅与该像素对应的几个假设平面有关,而与表面上的其他采样点无法关联。
如图5所示,我们融合概率体积P和引入的距离体积S来计算深度图,使得每个像素都与周围的表面patch相关。 具体来说,S可以看作是通过阈值对概率值进行过滤。 这两个体积的融合过程如算法 1 所示。最后,我们使用深度图真实值和生成的带符号距离真实值来监督两个体积 P 和 S。我们对深度图和带符号距离采用 L1 损失,如下所示:
3.4 Supervision of SDF Branch
由于我们从相应的深度图生成点到面距离的真实值,因此误差界限分析是必要的。 一个合理的假设是使用三角网格来表示表面。 存在三种不同情况,如图6所示。
具体分析可以看论文。
4 Experiments
4.1 Implementation Setup
介绍了训练和测试的配置。
4.2 Results on Tanks and Temples
4.3 Results on DTU
4.4 Ablation Studies
介绍了消融实验,主要是以下三个方面。
SDF Branch能很大程度影响精度,因为它能移除outliers。
Local Patch Size也会影响精度,在k增长的时候表现也会更好。
Fusion threshold方面,随着
θ
\theta
θ的增大,accuracy会变差,但是completeness会变好。
5 Conclusion
总结前文,未来方向是希望只使用SDF来进行MVS,以减小显存开销。