前言:文章回顾了深度学习在SfM中的应用,并提出了一种新的深度两视图SfM框架。该框架结合了深度学习和经典SfM几何算法的优点。在各个数据集上取得较好的结果。
会议/期刊:2021CVPR
论文题目:《Deep Two-View Structure-from-Motion Revisited》
论文链接:[2104.00556] Deep Two-View Structure-from-Motion Revisited (arxiv.org)
开源代码:jytime/Deep-SfM-Revisited (github.com)
如上图c,Deep-SfM-Revisited流程总结为:
具体来说:
深度光流方法可以处理大位移以及无纹理、遮挡和非朗伯曲面,弥补了传统方法的缺点。注意,作者使用DICLFlow在两个连续的帧之间生成密集的匹配点。光流估计的目的是为了下一步更好的相机位姿估计
与以前所有基于深度学习的从输入图像回归相机位姿的方法不同,论文使用匹配点来计算相机位姿。
关键问题是:如何从光流中稳健地过滤掉噪声密集的匹配,以仅保留高质量的匹配?
作者发现,只需简单地使用SIFT关键点位置(注意,这里不是使用SIFT进行匹配)生成mask(即保留图像中的SIFT关键点),即可在所有数据集中都获得很好的结果。因为光流在纹理丰富的区域可以获得更准确的结果,mask内各个经过光流匹配的SIFT关键点,由经过GPU加速的RANSAC进行过滤(这种方法可以避免帧间运动物体的干扰),在获得基本矩阵E后,将使用矩阵分解恢复相机姿态(R,t)
论文提出了一种Scale-Invariant Matching方法来恢复尺度模糊的密集深度图,具体来说:
给定一个像点x,生成L个匹配候选点。
在标准平面扫描问题中,匹配候选对象的采样分布根据比例因子α而变,如下图所示。
此外,由于不知道问题中的绝对尺度,论文将平移向量t进行了归一化。
然后,将预测的深度d固定住,那么匹配候选点的分布就是尺度不变的了。
最后,为了使估计深度和深度真值兼容,需要相应地对估计深度进行缩放来匹配深度真值;如下, α g t \alpha_{\mathrm{gt}} αgt表示相对深度到绝对深度的缩放因子
d ∼ α g t d ^ \mathbf{d} \sim \alpha_{\mathrm{gt}} \hat{\mathbf{d}} d∼αgtd^
这种尺度不变方法在本论文起着至关重要的作用,因为它使深度估计网络不再受到尺度模糊问题的困扰。先前的算法无法从尺度不变匹配中受益,因为他们通常通过CNN直接预测绝对比例来避免尺度模糊问题。
上面的尺度变换因子 α g t \alpha_{\mathrm{gt}} αgt将用于构建深度估计的损失函数,论文中使用Huber损失来计算预测深度和深度真值之间的差异:
L depth = ∑ x ℓ huber ( α g t d ^ x − d x ) \mathcal{L}_{\text {depth }}=\sum_{\mathbf{x}} \ell_{\text {huber }}\left(\alpha_{\mathrm{gt}} \hat{\mathbf{d}}_{\mathbf{x}}-\mathbf{d}_{\mathbf{x}}\right) Ldepth =x∑ℓhuber (αgtd^x−dx)
如果相机位姿真值和深度真值都给定,还可以通过计算2D点的刚性流(rigid flow)来更新光流网络:
L flow = ∑ ( u ^ x − u x ) 2 \mathcal{L}_{\text {flow }}=\sum\left(\hat{\mathbf{u}}_{\mathbf{x}}-\mathbf{u}_{\mathbf{x}}\right)^{2} Lflow =∑(u^x−ux)2
2021年CVPR论文Deep Two-View Structure-from-Motion Revisited阅读笔记_zeeq_的博客-CSDN博客_deep two-view structure-from-motion revisited