论文笔记-Unsupervised CNN for Single View Depth Estimation: Geometry to the Rescue

  • 论文信息
    • 标题: Unsupervised CNN for Single View Depth Estimation: Geometry to the Rescue
    • 作者:Ravi Garg, Vijay Kumar B G, Gustavo Carneiro, Ian Reid
    • 机构:The University of Adelaide, SA 5005, Australia
  • 代码链接
    • https://github.com/Ravi-Garg/Unsupervised_Depth_Estimation
  • 论文要点翻译
    • 摘要
      • 现有的 DCNN 方法通常都需要大量的标注数据,本文提出无监督的框架用于学习 DCNN,用于单目深度估计任务,没有预训练阶段,也不需要标注数据
      • 网络的训练过程类似于自编码器的工作过程,训练时考虑一对图像作为原图像和目标图像,将两个图像之间的相机移动作为立体图像对,通过训练 DCNN 网络,预测源图像的深度图,利用预测的深度图和已知的场景约束条件,重构一张目标图像,重构的图像的误差就是重构 loss 用于编码器的训练
      • 这个过程需要的训练数据只用双目立体图像,获取比深度数据获取容易,不需要手工的标注等
      • 实验结果表明,利用 KITTI 不到一般的数据可以得到 SOTA 监督模型达到的深度估计性能
    • 引言
      • 大量标注数据促进了深度学习方法的飞速发展,这个过程帮助解决了许多视觉问题,在 ImageNet 上进行模型的初始训练,再将模型精调用于其他学习任务,这个过程本身是一个通用的监督学习 CNN 典型的工作流程,这个方法已经再目标检测、像素级图像分类、深度预测、人类姿态预测等场景中得以运用
      • 但是这些方法的一大弊端在于标注数据,监督学习需要大量标注数据训练模型,而现实情况是许多数据难以采集,用于深度估计任务的深度图数据经常需要用昂贵的硬件设备进行采集,且采集过程技术要求较高,因此深度图数据不易采集;采集得到的深度图数据通常是稀疏的,因此单目深度估计任务的一大挑战在于如何利用无监督训练方法训练网络,使其在没有真实标注数据的情况下能够获得相似的甚至更好的性能,这样的模型能够更好的用于不同场景,能够适应终身学习的目标,随着时间推移还能够提高性能
      • 本文提出的方法主要就是解决无监督条件的单目深度估计问题,目标在于学习从输入图像到对应的深度图的映射关系。考虑到 CNN 已经在此任务上取得较好性能,且 CNN 能够普捕获到场景深度和对应的图像纹理、场景语义和局部、全局上下文信息等之间的关系,当前典型的监督学习方法训练 CNN 最小化预测目标和真实数据之间的 SIRMS、logRMS 等误差目标,这些网络通常使用大量有深度图标注的图像数据,例如 NYUv2 或者 KITTI
      • 这些模型通常泛化能力不理想,为了将模型的能力最大化利用,在一个数据集训练的模型能够较好地用于另外的场景,通常需要进行二次训练,但是真实情况下这些数据的采集往往是不太现实的,有的方法通过生成大的合成场景数据集,但是这些图像难以表达真实数据的所有情况
      • 另外的解决方案在于利用双目立体图像解决这个问题,使用标准的几何方法计算每个图像对之间的视差图,生成大量的图像和视差图的对,然后可以利用单目图像预测其视差图,但是这种方法可能有一些难以避免的系统误差,造成比较模糊的结果等
      • 本文采用的方法可以进行终身学习和增强训练,而这个过程是不需要真实的标注数据的,主要是利用自编码器的思想,利用视觉几何信息, CNN 网络用于单目深度估计任务,这个过程是从头开始训练的,使用无监督的方式,监督信号主要来自于从双目图像对中捕获的信息
    • 方法
      • 如图1所示,为了训练网络,使用一对双目立体图像,在一致相机参数的情况下获得图像得视差图
      • CNN 被训练来建立从图像到深度图的映射关系,训练过程的 Loss 是输入的源图像与重建的目标图像之间的图像差异,这个 loss 不仅可导,而且与预测误差紧密相关
      • 方法可以看作是自编码器,标准的自编码器通过一系列的非线性操作将图像编码为压缩的特征表示形式,其中包含了足够的信息,解码器可以利用这些信息以最小的重建 loss 恢复图像,本文情况中,将解码器换成了标准的几何图像重构 (warp)模块,基于预测的深度图和相对的相机位置。这带来两个优点:(1)解码器不需要学习,只需要简单的图像处理操作;(2)重建 Loss 本身是与任务紧密相关的可以促进网络训练生成正确的深度图
      • 重构 Loss:
        • E r e c o n s i = ∫ Ω ∣ ∣ I w i ( x ) − I 1 i ( x ) ∣ ∣ 2 d x E_{recons}^i=\int_{\Omega}||I_w^i(x)-I_1^i(x)||^2dx Ereconsi=ΩIwi(x)I1i(x)2dx
        • E r e c o n s i = ∫ Ω ∣ ∣ I 2 i ( x + D i ( x ) ) − I 1 i ( x ) ∣ ∣ 2 d x E_{recons}^i=\int_{\Omega}||I_2^i(x+D^i(x))-I_1^i(x)||^2dx Ereconsi=ΩI2i(x+Di(x))I1i(x)2dx
        • E r e c o n s i = ∫ Ω ∣ ∣ I 2 i ( x + f B d i ( x ) ) − I 1 i ( x ) ∣ ∣ 2 d x E_{recons}^i=\int_{\Omega}||I_2^i(x+\frac{fB}{d^i(x)})-I_1^i(x)||^2dx Ereconsi=ΩI2i(x+di(x)fB)I1i(x)2dx
      • 圆滑 Loss:
        • E s m o o t h i = ∣ ∣ ∇ D i ( x ) ∣ ∣ 2 E_{smooth}^i=||\nabla D^i(x)||^2 Esmoothi=Di(x)2
      • Total Loss:
        • E = Σ i = 1 N E r e c o n s i + γ E s m o o t h i E=\Sigma_{i=1}^NE_{recons}^i+\gamma E_{smooth}^i E=Σi=1NEreconsi+γEsmoothi
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页