twice论文--深度估计--Consistent Video Depth Estimation
0 摘要:
本文 提出了一种用于密集重构,估计所有像素上的一个几何一致性的深度的算法,用的图片是单目视频。我们利用传统的sfm重构去再每个像素上构建几何约束。不像经典的重构方法,我们使用了一个基于学习的方法,使用卷积神经网络来估计单张图片的深度。在测试阶段,我们微调该网络去满足对于特定的输入视频的几何约束,并且保持他预测深度的能力。我们展示了我们的方法比其他的更加精度高一级很高程度上几何性的稳定。
1 介绍:
就目前而言,在对图片序列进行3D场景重建方面已进行了长期的研究工作。就 recent years而言, 结构光度法(Structure from Motion, SFM)技术逐渐成熟,其成功主要归因于学习算法的应用。然而,对于大多数用户而言,在智能手机上实现三维重建相对便捷,因为智能手机操作简便,并且便于获取较大的空间范围;然而,在实际应用中却面临诸多挑战:具体问题包括:低纹理特征、重复的文字描述、遮挡区域、高噪声干扰、视频捕捉中的晃动现象以及模糊图像等;其中较为关键的是连续帧之间的最小基线距离问题以及动态物体的存在带来的额外难度
传统的方法是将稀疏单机视觉(SfM)与密集多视图几何相结合来实现三维重建。其本质就是在极线间匹配块。那么匹配是否正确?这将直接影响最终结果的空间精度。然而,在上述提到的问题中?当我们在处理时会遇到较大的噪声干扰?这要求我们采用正则化方法来平滑这些噪声的影响?然而,在实际操作中我们会发现许多方法都对这些丢失像素缺乏足够的信心值?因此导致重建过程中出现空洞区域
最近研究中出现了一种无需正则化的学习方法,在不依赖传统正则化手段的情况下能够从数据中学习场景的先验知识。因此该方法能够在存在缺陷的情况下仍然实现良好的重建效果。然而该方法也存在不足之处:其生成的深度图像会出现不稳定的闪烁现象。这会导致视频重建过程中出现几何上的不稳定现象。
很多研究致力于解决这种几何不稳定性问题,并采取了不同的解决方案:有的采用了循环神经网络这一技术手段;还有其他研究则直接采用了多视重建的方法;然而这些方法都是基于精细场景下的应用。
在本文中, 开发了一种新的视频重建系统, 将传统方法与学习方法进行了融合, 各自有其独特的优势. 通过传统的几何约束能够实现精确且稳定的深度恢复, 而通过学习方法弥补了传统手段在弱约束条件下的不足. 相较于正则化方法而言更具说服力
2 相关工作:
监督式的单目深度估计:传统的基于学习的方法属于监督学习范畴;然而这些方法通常需要大量标注数据来训练,并且实际获取真实数据却较为困难;因此在缺乏真实数据的情况下,人们往往采用利用虚假拟合样本来进行模型训练。
自我监督的单目深度估计:已有诸多研究然而存在局限性。该方法难以适用于远距离场景由于远处场景的大规模外观变化会导致估计效果受限。
多视图重建:针对的大多是静态的场景。
视频中估计深度:
3 整体:
我们采用单目视频作为输入数据,并基于此估计相机参数以及具有密集空间分布的几何稳定特征的深度图。值得注意的是这些几何特征不仅在于深度图避免闪烁现象更在于各帧之间的空间一致性特征。我们的核心思想是通过多方法融合来提升深度估计的整体性能:首先利用现有的单图像深度估计网络进行初步估计(不一定是稳定的),然后结合传统重建方法提取几何约束以进行精细优化从而生成具有几何一致性的深度图。
在预处理阶段,在每一帧视频中获取几何约束,并通过传统的SFML方法求得内外参数矩阵,在此基础上利用初始网络生成初始深度图。
测试训练阶段:微调网络。
4 处理:
相机标定:通过应用基于结构光法(SFM)以及多视图立体重建软件COLMAP对视频中的每一帧进行相机参数估计。然而,在构建三维模型的过程中存在动态物体干扰的影响时,则采用R-CNN技术对画面进行人体分割,并通过抑制相关区域特征信息来优化结果。由于智能手机拍摄的照片通常具有较高真实感特性,在这种情况下我们选择基于手机端的人工智能模型作为基准标准。
该方法涉及使用双分辨率深度估计网络进行深度估计,在计算特征金字塔网络(FPN)时引入了可学习的位置敏感块(LPSB)。该网络采用自适应特征融合策略,在不同分辨率下动态平衡特征融合与稀疏采样之间的权衡关系。

(MVS即多视图几何)
帧采样
第一个阶段是采连续相邻的帧
第二个阶段包含一个逐渐稀疏的帧采样
最后一个阶段是上面两个的一个并集
光流估计:
经观察发现低重叠帧对会导致光流估计效果不佳,并因此我们剔除了低重叠率低于20%的帧对
5 测试输入的视频
其主要目标在于通过微调网络实现更稳定的几何重建,在这一过程中需要综合考虑多个因素,在具体实施中我们主要采用了以下两种策略:首先关注于减少计算复杂度的同时确保精度最大化,并通过引入一些改进型算法来进一步提升系统的性能表现
几何损失
该方法的核心理念在于将深度连续性问题转化为几何损失,并通过逆向传递稳定性相关的损失来实现这一目标;从而使得生成的深度更加稳定
损失包括了空间损害和视差损失
空间损失:
首先用编号(7)表示的是经过预处理阶段得到的结果,在该框架中x代表的是在第i帧二维空间中的位置,则相对于第j 帧而言的位置坐标为f

下面应该这样处理,在将当前的2D坐标x转换为对应的相机下的3D坐标c(x)时,请依据当前初始计算所得出的深度进行操作

~X是x的齐次坐标,K是相机的内参
然后将映射到第j帧下的三维坐标

R,t是相机外参旋转和平移
然后再把这个三维坐标转换为对应的二维坐标

那么对应的空间损失就是

我认为整体上来说,这与左右check遵循相同的原理。视差损失也遵循相同的原理。最后将这两个损失相加即构成整体的几何损失。
优化:
使用上述求得的误差进行对网络进行微调
下面就是一些实验比较了。
第一次写论文的博客,好像很多不对,会不断更新修改。
