2021年CVPR论文Deep Two-View Structure-from-Motion Revisited阅读笔记
本文探讨了2021年发布于第十四届计算机视觉与模式识别会议(CVPR)的一篇论文《Deep Two-View Structure-from-Motion Revisited》。该论文采用基于深度学习的技术,并遵循传统的SfM流程来解决两视图结构光测距问题。
- 论文地址:该研究的官方发布位置位于https://arxiv.org/abs/2104.00556v1。
- 论文代码:该研究的实现可在https://github.com/jytime/Deep-SfM-Revisited的对应GitHub仓库链接中获取。

*文中出现的部分英文术语翻译&理解:
- ill-conditioned problem:该类问题无法获得唯一的解
- scale-invariant:这类问题不具备尺度缩放特性
- scaled-up/down:该类问题涉及尺度放大或缩小处理
1 概述
论文指出:现有的基于深度学习的方法通过从两个连续帧中恢复绝对姿势(absolute pose)或从单个图像预测深度图来描述该问题(problem),这两种方法都属于不适定问题(ill-posed problems)(依据Ill-posed problems in early vision论文所述),不适定问题包括运动恢复(motion recovery)、光流估计(optical flow)、形状从阴影中推断形状(shape from shading)、表面插值(surface interpolation)以及边缘检测(edge detection)等)。相比之下,作者建议按照经典的SfM流程使用深度学习方法来解决两视图SfM的问题(problem)。
论文的贡献主要包括如下三点:
总结了深度学习在单应性测量中的应用,并开发了一种新的两视图单应性测量(Structure from Motion, SfM)深度学习框架以解决不适定性问题(ill-posedness)。这一框架融合了深度学习与经典几何方法的优势。
开发了一种尺度不变的深度估计模型以应对_depth_true_与_depth_estimation_之间的尺度误匹配挑战。
我们提出的方法在两视图SfM问题中对relative Pose estimation_与depth estimation_的表现均优于现有的各种基准方法。
2 现有方法
作者将现有的用深度学习来解决两视图SfM的方法分为两类:
- 第一类方法(Figure 1 Type I)将单目相机的深度估计与位姿估计视为一个联合优化问题。这类方法主要由两个网络构成:第一个网络基于单一图像推断up-to-scale深度信息;第二个网络则通过两张输入图像预测up-to-scale相机姿态。这两个模块在计算过程中保持相互独立性。例如SfMLearner、GeoNet等。
- 另一类方法(Figure 1 Type II)通过分析图像对来推导出成像参数及深度信息,并运用多视图几何理论进行迭代优化。这类方法主要包括DeMoN、BANet、DeepV2D、DeepSFM等。

论文所提出的Our Approach(如图1所示)首先通过深度光流网络估算两帧图像之间的密集匹配点集,在此基础上筛选出一组高度可靠的匹配样本;随后利用GPU加速的经典五点RANSAC算法计算各相机间的相对位姿;由于这些相机间的相对位姿存在一定的尺度不确定性性问题,因此导致深度估计结果也呈现出相应的尺度不确定性;基于此,为了利用已知尺度的真实深度数据来监督估计出的尺度不确定性深度参数,论文创新性地提出了一种结合特定于尺度的损失函数设计的新架构——Scale-Invariant Depth Estimation Network (SIDE Net),用于精确预测相对深度图;值得注意的是,由于各相机的位置与朝向的存在,使得深度估计的有效搜索空间得以被约束在极线上方;因此相比直接基于估算的相机位置与朝向对光流场进行三角解算,SIDE Net架构不仅显著降低了计算复杂度,而且能够有效提高最终结果的质量
3 方法流程
3.1 Optical Flow Estimation
深度光流法适用于处理大规模位移以及无纹理物体、遮挡情况以及非朗伯曲面等复杂场景。研究采用最先进的人工智能网络DICL-Flow架构,在连续帧序列中实现精确的三维匹配。该网络通过位移不变匹配代价学习策略和soft-argmin投影层来避免直接预测图像流的回归变化,并专注于学习密集匹配点序列。通过在合成数据集上的高效训练方法,在真实测试场景中获得良好的性能表现。
3.2 Essential Matrix Estimation
与现有基于深度学习的图像到相机位姿回归方法不同的是,在该论文中采用了匹配点计算相机姿态这一方法。核心问题在于:如何从光流中可靠地去除噪声密集的匹配以获取高质量的数据集?作者发现,在无需采用SIFT特征进行配准的情况下,在各个数据集上均取得了良好效果。具体而言,在光流较为丰富的区域能够获得更为准确的结果。为此,在mask生成过程中采用了RANSAC算法配合GPU加速策略来过滤动态物体干扰下的光流匹配结果。当基本矩阵E被确定之后,则通过矩阵分解的方法恢复出相机的姿态参数(R,t)。
3.3 Scale-Invariant Depth Estimation
论文阐述了一种Scale-Invariant Matching方法以恢复up-to-scale的密集深度图信息。对于给定的像点x,系统会创建L个匹配候选点集合。在标准平面扫描问题中,这些候选对象的采样点分布会随着比例因子α的变化而变化情况如图2所示

该匹配策略基于论文所提出的框架具有关键性地位,并因其特性使得所提出网络避免了因尺度误匹配而产生的问题。与之相比,其他方法无法从这一特性中受益,因为这类方法通常通过预判精确尺度来规避可能出现的尺度误匹配问题。
3.4 Loss Function
论文所提出的框架基于监督条件下进行全连接训练以实现目标。研究工作中采用Huber损失函数评估预测深度与真实深度间的差距并优化模型参数。当相机位姿参数与深度参数均获得时可进一步通过分析二维点之间的刚性变换关系对光流网络进行迭代更新以提升估计精度
4 实验
4.1 数据集
- KITTI Depth: 专注于自动驾驶场景中的单目深度估计; 未考虑相机运动与动态目标.
- KITTI VO: 专为相机位姿估计设计; 包含了1998至2997帧的真实 camera pose 数据.
- MVS: 基于 video sequences 和近距离 scene 的数据构建了多个室外 scene.
- Scenes11: 是一个由 random shapes 和 motion 生成的数据集; 虽然不是真实 image 数据, 但拥有精确 depth 和 camera pose information.
- SUN3D: 包含了具有 noise contaminated 的室内 image 数据.
4.2 Depth Evaluation
KITTI Depth数据集上的定量结果如Table 1所示,定性结果如Figure 3所示:


MVS、Scenes11以及SUN3D数据集上所呈现的定量分析结果可见于表2中,请参考图4了解其定性表现


4.3 Camera Pose Estimation
KITTI VO数据集上的结果如Table 3和Figure 5所示:


MVS、Scenes11和SUN3D数据集上的结果如Table 4所示:

4.4 Framework Analysis and Justification
基于光流的相机位姿估计结果如Table 5所示:

尺度误匹配问题的测试结果如Table 6所示:

5 总结
本文探讨了基于深度神经网络的双视图结构恢复(SfM)问题。研究者指出现有的基于深度学习的SfM方法通常将深度估计或位姿估计表述为不适定的问题。为了改进这一现状本研究构建了一个新的双视图SfM框架该框架遵循经典的适定流程通过大量实验结果表明所提出的方法在位姿与深度估计方面均显著优于当前最先进算法具有明显优势展望未来研究者或许能够进一步扩展这一框架以实现三视图与多视图的结合其中循环一致性和时间一致性等特性可能进一步提升其适用性
*部分翻译或理解可能会存在偏差,仅供参考,欢迎讨论。
