论文 Code
核心:利用卷积神经网络训练
- 单张图像深度估计
- 优化深度图的对齐
- 连续优化
- 解决Naive alignment:提出一种更灵活变形的模型,利用空间不同样条函数。
- 解决高频细节和解除晃动残差:提出一种具有几何感知的深度过滤器
- 高频、对齐、好的深度细节(在前一阶段精确对齐,从而不会模糊细节)
目录
摘要
介绍
相关工作
Overview
方法
Pre-processing
Depth Estimation
Pose Optimization
Pose and Depth Optimization with Fine-tuning
Pose and Depth with Flexible Deformation
Geometry-aware Depth Filtering
Implementation Details
实验结果
Depth evaluation
Pose evaluation
Limitations
结论
摘要
文章提出了一种算法:
- 对象:处理单眼视频
- 结果:深度一致的密集深度图;相机姿态。
- 方法:基于学习的深度先验——利用卷积神经网络训练单张图像深度估计方式+几何优化=平滑的相机轨迹+详细稳定的深度重建。具体包括两部得分:
- 灵活的变形曲线——低频大规模对齐
- 几何感知——高频对齐(好的深度细节)
- 特点:文章不需要相机位姿。也能克服手持视频所带来的大量噪音、抖动、运动模糊和滚动快门变形的缺点,获得具有鲁棒性的重建。
本文方法在深度和姿态估计方面,在定量上优于最先进的基准,并在不同的野外数据集上获得了良好的定性结果。
介绍
单帧深度的稠密预测——中间特征表示,应用于3D视频稳定、增强现实以及特效等方面。对于随意捕获的视频,估计其准确一致的深度图还是具有一定挑战性的,其中,手机拍摄是小的图像传感器,会产生很多噪声图像,尤其是在灯光昏暗的场景,使用滚动快门也会导致摇晃图像变形。手持拍摄的视频往往会有镜头的晃动和运动模糊、运动的物体,比如人、动物、交通工具。在这些因素导致图像退化之外,三维重建还存在基础的的问题:纹理较差区域的处理、重复的图案以及遮挡问题。
Traditional algorithms——稠密重建的传统方法是SFM和MVS,但都存在各自的缺点。
- SFM:受限于通信的准确性和可用性,有时会完全失败,阻碍进一步的处理。
- MVS:往往包含大量的空洞和噪声。
Learning-based algorithms——先前的工作利用帧的像素点匹配和几何三角,这种方法是从不同的数据集学习先验。这种方法可以解决许多前面所提及的问题。但是,估计的深度只在尺度上被细化,结果虽然具有一定的可信度,但并不一定准确,具体而言,它缺乏几何一致性。
Hybrid algorithms——基于学习的先验+几何推理,实现两种方法的优势互补。利用SFM估计,假设每帧精确的相机位姿,但SFM不具有鲁棒性,可能无法为每一帧生成结果,或者,产生具有大误差的离群姿态。换句话说,混合算法的成功估计很大程度取决于位姿估计的准确性。由此带来的鲁棒性不稳定,那么这就不适合许多基于现实的应用,因为他们可能以不可预测的方式失败。
- DeepV2D:提出了一种混合方法——交错位姿和深度估计,以实现理想的收敛性,它在静态场景上表现得相当好,但仍然不能证明处理动态场景的能力。
本文提出的新算法——具有鲁棒性,不需要位姿输入:
- 利用一个卷积神经网络——专门用于训练单图像深度估计作为深度先验,并优化深度图的对齐。
- 主要参考的Luo的工作,但Luo的工作测试时间微调公式需要预先在跨帧匹配像素之间建立几何关系,也就是说,需要精确校准的相机姿态和全帧深度比例因子。
- 相比之下,本文联合优化外在和内在的相机位姿参数,同时三维对齐的估计深度图使用连续优化。
- 其中,使用刚性尺度变换的原始的对齐不会导致精确的姿态,因为独立估计的每帧深度映射通常包含随机的不准确性。这会进一步导致错位,不可避免地增加估计相机轨迹的噪声误差。因此,转向一个更灵活的变换模型,使用空间变化的样条曲线来解决它,进而提供了更精确的对齐,连续,导致更平滑和更准确的轨迹。
- 基于样条曲线的变换方法实现了精确的低频对齐。为了进一步改进高频细节和消除剩余的抖动,使用了一个几何感知的深度滤波器。这个过滤器能够带出精细的深度细节,而不是因为前一个阶段的精确对齐而模糊它们。
如之前的工作所示,基于学习的先验对适度的动态运动具有弹性。通过结合基于自动分割的掩模来放低在包含人、车辆和动物的区域中的几何对齐要求,从而本文的方法对大型动态运动更加具有鲁棒性。
通过处理来自DAVIS数据集(最初为动态视频对象分割设计)的所有90个序列,并与以前的方法(其中许多失败)进行比较,对我们的方法定性地评估的方法(可视化)。进一步对来自Sintel数据集[的23个序列进行了定量评估,其中的地面真实姿态和深度是可用的。
相关工作
Multi-view stereo-MVS
- 从不同的视点捕捉到的图像的进行深度估计。
- 基于几何的MVS——COLMAP,遵循SFM-对应估计、姿态估计、三角测量、约束调整。
- 一些基于学习的方法通过融合经典的MVS技术(如成本聚合和平面扫描体积)和数据分割先验,进一步提高了重建质量。
- 与假设静态场景的MVS算法相比,本文工作旨在从动态场景视频中重建完全稠密的深度。
Single-image depth estimation
- 基于监督学习的单图像深度估计技术的快速发展。
- 由于难以获得具有相应地面真实深度图的不同训练图像,现有的工作是使用合成数据集、相对深度或3D表面的人工注释、来自互联网图像/视频的伪地面真实深度图或3D电影来探索训练模型。
- 另一个研究方向侧重于学习单图像深度估计模型的自监督方法。具体的例子包括学习从立体声对或单目视频。大多数自监督学习方法最小化光度再投影误差(从估计的深度和姿态计算),并不考虑视频中的动态对象。有几种方法通过屏蔽动态对象、建模单个对象的运动或估计密集的三维平移场来缓解这一问题。
- 本文使用最先进的单图像深度估计方法来获得每个视频帧的初始密集深度图。虽然这些深度贴图在单独查看时是合理的,但它们在不同框架之间的几何形状上并不一致。因此,本文旨在为一个视频产生几何上一致的摄像机姿态和密集的深度。
Video-based depth estimation
- 几种方法结合摄像机运动和多视点重建来估计单帧对或多帧对深度。但是,这些方法局限在静态场景表现得很好。为了考虑移动对象,一系列工作使用运动分割或语义实例分割来帮助约束移动对象的深度。
- 最先进的基于学习的视频深度估计方法可以分为两个方向:
- 本文的方法还利用了一个预先训练好的单视图深度估计模型。与前人不同,联合优化摄像机位姿和深度图的三维变换对齐,从而可以处理更广泛的具有挑战性的高动态场景视频。
Visual odometry
- 视觉光学测量法(VO)或同时定位和映射(SLAM)的目的是从图像序列中估计相对的相机姿态。传统的基于几何的方法可以根据使用直接(无特征)和间接(基于特征)的方法以及密集或稀疏重建方法分为四类。虽然已经取得了重大的进展,但对通用场景应用VO和SLAM仍然具有挑战性。
- 近年来,许多基于学习的方法被提出来通过监督或自监督学习来解决这些问题。与现有的VO/SLAM方法类似,本文工作也从一个单眼视频中估计了这两种相机的位姿。与之前的工作不同,本文主要关注点是估计动态场景的几何一致的密集深度重建。
Temporal consistency
- 每一帧的处理通常会导致时间闪烁的结果。强制输出视频的时间一致性已经在许多不同的应用中被探索过,包括风格传输、视频完成、视频合成,或作为后处理步骤。
- 对于视频深度估计,时间一致性可以受光流显式约束,也可以使用递归神经网络隐式应用。我本文的三维深度滤波器类似于前人工作,过滤沿着流动轨迹跨越时间的深度图。本文的方法的不同之处在于,具有几何感知的。
Overview
?本文的方法建立在Luo等人在一致视频深度估计(CVD)论文中建立的公式基础上,温习它:
- Luo:
- 迭代地调整训练为单图像深度估计的CNN的权值,直到它学会满足所讨论的特定场景的几何形状。为了评估针对这一目标的进展,使用已知的相机参数(外部的和内在的,以及每帧深度比例因子)将图像对几何地联系起来。更准确地说,他们的算法将从一幅图像到另一幅图像的像素的三维再投影与相应的图像空间运动进行了比较。重投影误差被反向传播到网络权值中,从而在微调过程中得到减少。这导致了一个非常详细和时间一致的,即,无闪烁,深度视频。
- 然而,他们的方法的一个关键限制是需要精确的相机参数作为输入,在他们的情况下是用SFM计算的。不幸的是,视频的SFM本身就是一个具有挑战性的问题,它经常失败;例如,当一个视频没有包含足够的摄像机运动,或在存在动态物体运动的情况下,或在许多其他情况下,如前面解释的。在这种情况下,它可能完全无法产生输出,或者无法注册帧的一个子集,或者它可能产生错误的(异常的)相机姿态。不准确的姿势对CVD优化有较强的退化效应,如其论文所示。本文的关键贡献是消除了这一限制,通过用联合优化摄像机参数和深度对齐来代替测试时间的微调。
- 本文表明,相同的公式可以优化在CVD中的相机姿态。然而,一个复杂的问题是,只有在有精确的深度时,位姿优化才能有效,类似于深度微调只有在姿态精确时才能工作。如果深度不准确,这在设置中,深度的错位会作为噪声误差施加到产生的相机姿态轨迹上。尽管它们的初始具有不准确性,但是通过提高相机优化对齐深度估计的能力来解决这个问题。具体来说,通过用更灵活的空间变化变换替换每帧相机的比例来实现这一点,即双线性样条曲线。深度估计的改进对齐使计算更平滑和更准确的姿态轨迹。
- 联合位姿估计和变形解决了深度图中的低频不一致问题。使用几何感知深度滤波器进一步改进了高频对准。这种滤波器的低通滤波器沿着流动轨迹重新投影的深度。因为过滤器的输入是良好对齐的,由于变形(deformation),过滤器解析细节,而不是模糊它们。
方法
Pre-processing
Depth Estimation
- 这一部分,从技术角度,利用符号建立CVD(也就是前人的工作)。
- 二维像素坐标变换到三维坐标系
- 三维点映射到相机坐标系
- CVD优化的目标是对每一帧对中的每一个像素进行重投影损失
- 优化网络的权值
- 也就是说,它使用三维几何图形和光流将像素重新投影到另一帧的三维摄像机坐标系中,并测量由此产生的两个三维点的相似性。重投影相似度损失Lsim的精确形式对算法的整体理解留在后续。
Pose Optimization
- 如前所述,几何重投影力学需要照相机参数θ相机,而它们的精确性是至关重要的。否则,深度优化收敛到较差的结果(如图d)。与SFM相比,最好有一种更可靠的方法来获得应用位姿。
- 当检查公式时注意到,如果逆转θ深度和θ相机的作用,即固定θ深度(假设已知)和优化θ相机,实际上可以使用这个方程来计算相机参数。这个修正后的方程类似于束调整中的三角测量,但它可以更可靠地解决,因为深度匹配的图像点不需要估计,因为它是已知的(根据尺度)。但是,这一次,需要精确地知道深度才能发挥工作。在深度图中彼此不一致,这些错位误差将表现为估计的摄像机参数中的噪声误差(如图c)。
Pose and Depth Optimization with Fine-tuning
- 如何定量的联合优化相机位姿和深度?
- 问题1:这两种量对应的最优化机制是不一样的。θ深度最好的方法采用标准的训练算法,即SGD。然而,对于θ相机来说,这并不是一个很好的拟合,因为一个参数的变化具有深远的影响,因为位姿被链接在一个轨迹中。全局连续优化是解决θ相机问题的一个较好的解决方案,且收敛速度更快、更稳定。因此,可以通过交替优化深度和位姿来优化这两个量,每个量都有各自的最佳优化算法,同时保持其他量不变。
- 问题2:对特定固定参数的准确性的敏感性。从最初不准确的深度估计开始,将导致噪声位姿(如图c),因为不对准误差将以不稳定的方式“推”相机位姿变量。在下一步,敏感的深度将进一步降低深度估计。该算法不能收敛到一个很好的解决方案(如图d)。
- 本文解决这一明显困境的方法是改进姿态估计中的深度对齐。通过在对准过程中注入一个平滑和灵活的空间变化的深度变形模型来实现这一点。更准确地说,利用具有空间空间变化的双线性样条曲线替换了等式中的深度尺度系数。
- 这样在一个网格单元内,一个像素p周围的四个句柄都是双线性插值的。
- 在这种变化之后,深度图更好地对齐,不会对估计的相机轨迹施加抖动误差(如图e)。此外,该算法要快得多,因为不需要在姿态优化和微调之间进行迭代。
Geometry-aware Depth Filtering
- 灵活变换实现了深度图的低频对齐,如删除大规模的错位。
- 但是关于精细深度的细节呢?
- 尝试使用交替的姿态-深度优化,具有灵活的变形。这可以略微提高了深度和姿态,但它没有达到CVD在使用精确的SFM姿态作为输入时所达到的质量水平。相反,它快速收敛到一个配置,其中深度和姿态对齐都很满意,但深度细节相当光滑。(BAD)
- 用一个遵循流动轨迹的时空深度滤波器来解决这个问题。重要的是,该滤波器具有几何感知能力,因为它使用方程中的重投影力学从其他帧中转换深度,同时,通过减少样本对深度边缘的影响,保持滤波器边缘。
?
Implementation Details
- Precomputations :预计算
- 对于MiDaS,将图像缩小到长边的384像素(其代码中的默认分辨率)。
- 对于RAFT,将图像缩小到长边的1024像素,以降低内存需求。
- 在这两种情况下,根据图像长宽比调整短图像侧,同时四舍五入到最接近的16个像素的倍数,这是各自CNN的对齐要求。使用来自RAFT项目页面的预先训练过的raft-things.pth,它是在飞行的椅子和飞行的东西上进行训练的。
- Pose optimization:位姿优化
- 使用Ceres库中的稀疏正态坐标求解器来解决相机姿态估计问题。
- 为了降低计算复杂度,没有在优化中包括每个像素,而是从流场中对一组两两匹配进行子采样(这样在任何一对匹配之间至少有10个像素的最小距离)。
- 假设是一个静态场景,排除了掩码中的任何点匹配。
- 由于目标是非凸优化的,因此它对目标中的局部极小值有些敏感。为了缓解这个问题:
- 首先优化1×1网格(类似于原始si标量系数),
- 然后细分在四个步骤,直到网格分辨率17×10(总是使用17长图像尺寸,并调整短图像尺寸根据高宽比)。
- 在每一步之后,都进行优化直到收敛,并将结果作为下一步的初始化。
- 由于CNN估计的深度图的比例是任意的,初始化第一帧的比例,使中值深度为1,并对所有其他帧使用相同的比例。
- Pose reqularization:为了促进变形部分的平滑性,添加了一个损失,以惩罚相邻网格值的巨大差异。权重被设置是为了鼓励被掩盖的部分图像更平滑,因为在这些区域没有点匹配,否则它们是不受约束的。
- Reprojection loss:重投影相似度损失的定义。简单地测量欧几里得距离。然而,这将使解决方案偏向于较小的深度。将整个场景缩小到某个点将达到最低限度。为了防止这种情况,Luo等人使用分割损失,测量图像空间中的空间损失分量以及视差空间中的深度损失分量。
- 视差损失实际上具有与欧几里得损失的相反的偏差:当场景尺度变得非常大时,它就会最小化(因此差异消失)。为了缓解这种情况,本文提出了一种新的测量深度值比率的损失。
- 这种损失不会有任何深度偏差,它既不鼓励增长也不缩小场景规模。利用度量比值计算了等式中深度滤波器中样本的深度相似度。
- 重投影相似性损失=空间损失+尺度损失
实验结果
- COLMAP:采用传统的SFM/MVS算法进行三维重建。由于COLMAP重建对场景中的动态对象非常敏感,本文使用的算法相同的COLMAP动态掩模(自动计算掩码R-CNN)来排除这些区域的特征提取/匹配。
- DeepV2D:视频深度估计算法的深度估计采用可变运动估计和深度估计。
- CVD:一种结合了多视图和单视图深度估计方法来产生一致的视频深度的混合方法。
- MiDaS-v2:最先进的单视图深度估计模型。
Depth evaluation
Pose evaluation
- 绝对轨迹误差(ATE)和相对姿态误差(RPE)。
- ATE测量了预测的摄像机姿态[x,y,z]和地面真相之间的均方根误差。
- RPE测量帧对之间的帧到帧的相对姿态误差,包括平移误差(RPE-T)和旋转误差(RPE-R)。
- 然而,由于场景规模是未知的,在评估过程中通过最小化ATE,将预测与地面真实相关的姿态进行公平比较。
Limitations
本文主要限制是对齐的深度图的一种残余摆动。在项目页面上提供的大多数结果中就很明显了。作者认为它可以通过更好的变形模型来解决,特别是用基于像素的公式和适当的正则化代替基于样条的变形。然而,这将需要更密集的成对约束,目前使用连续全局优化的公式不支持这一点,即当强化约束时,Ceres求解器内存使用会爆炸,性能会大幅下降,这是由于优化问题的全局性。找到一个更好的公式来解决这个问题是未来工作的一个很好途径。
结论
文章提出了一种通用的单眼视频一致深度估计的优化算法,既不需要输入姿态,也不需要推理时间的微调。方法对手持设备随意捕获的具有挑战性的动态视频进行了鲁棒重建,并在不同的测试台上取得了更好的性能。
|