Hello!终于又到了小李更新论文阅读模块的时间了。
论文名称:《Consistent Video Depth Estimation》
论文地址:https://arxiv.org/abs/2004.15021
项目地址:https://roxanneluo.github.io/Consistent-Video-Depth-Estimation/
论文部分翻译:https://blog.csdn.net/dy_happy/article/details/105940293
阅读参考链接:https://blog.csdn.net/qq_26623879/article/details/105926829
中国女博士的「水淹食堂」大法:单目视频完美重建3D场景,画面毫无违和感
本篇文章只记录个人阅读论文的笔记,具体翻译、代码等不展开,详细可见上述的链接.
Background
Task(what to do )
Reconstructing dense, geometrically consistent depth for all pixels in a monocular video
即重建单目视频中所有像素密集、几何一致性深度估计,也就是从重建的角度来做深度估计。Challenges
a.Traditional reconstruction methods combine sparse structure-from-motion with dense multi-view stereo-essentially matching patches along epipolar line
This often induces incorrect geometry in the affected regions, so that many methods drop pixels with low confidence altogether, leaving “holes” in the reconstruction
传统的重建的方法是结合稀疏的sfm和密集的多视图几何来得到,实质就是在极线之间匹配块。那么匹配的正确,得到的结果在几何上就越准确。然而匹配块通常有很大的噪声,这就需要使用正则化进行平滑噪声, 这往往导致受影响区域的几何形状不正确,因此许多方法完全以低置信度的方式丢弃像素,在重建中留下“洞”。
b.Learning-based methods
These methods do not require heuristic regularization
However, the estimated depth often flickers erratically due to the independent per-frame processing
基于学习的方法,不需要进行正则化,而是从数据中学的场景的先验知识,这样就会有在有缺陷的地方也会有很好的重建的能力。然而,因为每个帧是独立处理的,产生的深度图会有不稳定的闪烁,不是度量的。这就会导致视频重建产生几何上的不稳定
c. poorly textured areas, repetitive patterns, and occlusions, there are several additional challenges with video: higher noise level, shake and motion blur, rolling shutter deformations,small baseline between adjacent frames, and, often, the presence of dynamic objects, such as people
获取单目视频并重建,对于我们大部分人来说最希望可以通过手机就可以进行3D重建,手机比较方便,会容易获得大的场景,但是实现起来并不容易。这其中会有不少问题,比如弱纹理,重复文案,遮挡,而且对于视频额外的挑战有高噪声,晃动和模糊,变形,一级在连续两帧之间有很小的基线,而且有动态的物体。
(a,b两种缺陷如下图b,c所示)
Work
Do?
In this work, we present a new video-based reconstruction system
that combines the strengths of traditional and learning-based techniques.
在本工作中,我们提出了一种新的基于视频的重建系统,它结合了传统技术和基于学习的技术的优点。Related Work
a.Supervised monocular depth estimation:基于监督的单目深度估计
需要很多的精力标注,获取那么多的真实数据存在困难
b.Self-supervised monocular depth estimation:自我监督的单目深度估计
不适合远距离的框架,因为大的外观上的变化会产生影响
c.Multi-view reconstruction:多视图重建
针对的大多是静态的场景
d.Depth from video:视频中估计深度
e.Temporal consistency:时间一致性
f.Depth-aware visual effects:深度感知视觉影响
g.Test-time trainingModel
如上图所示即为此论文的主要模型。先介绍一下大体的思想:
1.首先, 以单目视频为输入,对一对(潜在的远距离)帧进行采样,并使用预先训练的单图像深度估计模型估计深度,以获得初始深度图。
2.对这对图像,使用光流法前后向一致性检查建立对应关系。接着,利用这些对应关系和相机位置提取三维几何约束。
3.将三维几何约束分解为两个损失:空间损失和视差损失。通过标准反向传播,用这两个损失对深度估计网络的权重进行微调,以最小化多帧几何不一致性误差。 在微调阶段之后,我们从视频中得到的最终深度估计结果是从微调模型中计算出来的。
总的来说,该论文思想是结合各个方法的优势。使用已经存在的单图片深度估计网络去估计可能的深度,然后使用传统的重建方法提取几何约束来微调该网络(即传统的方法与基于学习的方法结合),所以这个网络会产生几何上一致性的深度图。主要分为两个阶段:
预处理阶段:从视频帧中提取出几何约束,使用传统的方法sfm,计算出内外参,使用初始网络产生初始深度图。
测试训练阶段:微调网络。详细说明各阶段
预处理:
1.相机标定(Camera registration):使用sfm和多视图立体重建软件COLMAP来估计视频每一帧之间的相机的内参和外参。但是因为在重建的过程中有动态的物体,所以我们使用R-CNN分割出人,并且抑制这些区域特征的提取。(为了消除场景中人,动物等动态物体,采用Mark-rcnn将其从几何重投影中剔除)
2.尺度校准(Scale calibration):sfm和基于学习的重建的尺度可能是不匹配的,为了使尺度在几何损失上兼容,我们调整sfm的尺度,可以简单地通过将所有相机平移乘以一个因子来做到这一点。作为深度网络初始的深度图,首先图像计算相对尺度其中D(x)是x的深度值。进一步计算全局尺度自适应因子s:然后对于所有的位姿变换的,进行尺度调整:3.帧采样(Frame sampling):第一个阶段是采连续相邻的帧,第二个阶段包含一个逐渐稀疏的帧采样,最后一个阶段是上面两个的一个并集。
4.光流估计(Optical flow estimation):对于S中的所有帧对(i,j),我们需要计算一个密集的光学流场Fi→j。 因为当框架对尽可能对齐时,流量估计效果最好,所以我们首先对齐(潜在的远距离)帧使用(用基于RANSAC的拟合方法计算)消除两帧之间的主导运动(例如,由于摄像机旋转)。 然后我们使用FlowNet2 计算对齐帧之间的光流。
接下来还是得考虑如何让几何投影尽可能的前后一致,对于图像中由于遮挡了一些像素在下一帧中不从在了,这样就破坏了几何投影中的原则。为了考虑运动物体和遮挡/去遮挡(因为它们不满足几何约束或不可靠),应用前向-后向一致性检查,并去除前向-后向误差大于1像素的像素,得到一个二值映射Mi→j。 此外,我们还观察到流动估计 对于重叠少的帧对,结果是不可靠的,所以我们排除了重叠率少于20%的帧对.测试阶段:
1.空间损失(space loss):
首先(7)表示通过预处理阶段求得的,x是帧为i的2D上的坐标,那么相对应的第j 帧的坐标即将当前的2D坐标x转换为对应的相机下的3D坐标c(x),利用当前初始计算得到的深度是x的齐次坐标,K是相机的内参,然后映射到第j帧下的三维坐标R,t是相机外参旋转和平移,再把这个三维坐标转换为对应的二维坐标那么最后对应的空间损失就是:
2.视差损失(The disparity loss):其中是帧的焦距,和分别是和的标量z分量。
所以总的损失即二者相加:其中λ=0.1是平衡系数优化
通过分析第i帧和第j帧之间的几何损失,利用标准反向传播对网络权值进行微调。使用预训练的深度估计模型初始化网络参数,使我们能够使用先验知识,在图像上生成可信的深度图,这对传统的基于几何的重构系统是一个挑战。使用固定数量的epoch对网络进行微调(所有实验使用20个epoch)。在实践中,我们发现,通过这个简单的微调步骤,网络训练不会对数据进行过度拟合,不会丧失在场景的无约束或弱约束部分合成合理深度的能力。
Experiment
1.Implementation details
试验了几种单目深度估计体系结构和预先训练的权重Mondepth2 和 Neural RGB→D Sensing: Depth and Uncertainty from a Video Camera作为先验训练完成网络。在我们所有的实验中,我们使用ADAM optimizer对网络进行了20个epoch的Test-train,批处理大小为4,学习速率为0.0004。不同长度的视频的测试时间不同。对于一个244帧的视频,在4台NVIDIA Tesla M40 gpu上训练需要40分钟
2.Dataset:(1) the TUM dataset (2) the ScanNet dataset (3) the KITTI 2015 dataset
3.Evaluation metrics:Photometric error Ep(重投影像素误差)、Instability(稳定性)、Drift(漂移量)实验结果
与最先进的深度估计算法进行比较
消融实验(Ablation Study):
公共基准的定量比较评价指标参见:https://blog.csdn.net/aq531211903/article/details/84307358
局限性探讨:
1.姿势
该方法目前依赖 COLMAP,来基于单目视频估计相机位姿。而在难度较大的场景中,如相机平移有限及动态模糊的情况下,COLMAP 可能无法生成靠谱的稀疏重建结果和相机位姿估计。
较大的位姿误差也会对该方法的输出结果造成极大的负面影响,因此这限制了该方法在此类视频中的应用。
将基于学习的位姿估计和该研究提出的方法结合起来,或许是一个不错的研究方向。
2.动态运动
该方法支持包含温和运动的视频,但如果运动较为激烈则该方法会出现问题。
3.光流
该方法依赖 FlowNet2 来构建几何约束。使用前后向传播一致性检查并过滤掉不可靠的光流,但这也可能出现错误。这时该方法无法输出正确的深度。研究者尝试使用稀疏光流,但效果并不好。
4.速度
该方法利用视频中所有帧提取几何约束,因此不支持在线处理。例如,对于一个包含 244 帧、708 个采样光流对的视频来说,该方法的测试时训练步耗时约 40 分钟。
Ending~