论文笔记-Learning Stereo from Single Images

  • 论文信息

    • 标题: Learning Stereo from Single Images
    • 作者:Jamie Watson, Oisin Mac Aodha, Daniyar Turmukhambetov, Gabriel J. Brostow, Michael Firman
    • 机构:Niantic, University of Edinburgh, UCL
  • 代码链接

    • https://github.com/nianticlabs/stereo-from-mono/
  • 论文主要贡献

    • 提出自动的生成双目训练数据的方法,只需要使用没有结构约束采集的单目图像,利用单目颜色图像推断深度后生成相应的双目数据
    • 本文与其他使用合成数据训练立体匹配网络的方法进行比对,结果表明简单的模型也可以生成有用的立体匹配训练数据
    • 本文进行了详细的实验评估了提出方法的立体匹配性能,结果现实模型可以有效生成训练数据,使得模型能够很好地泛化到未知 domain 的数据,这是比当前合成数据集训练数据效果好的地方
  • 关键问题思考

    • 这篇论文最主要的创意或者闪光点是什么?
      • 提出之前的双目立体匹配都没有提出的“生成双目数据”的思路,思路类似于 CVPR 2017 的 Single-View Stereo Matching
    • 这些创意在应用上有什么好处?
      • 解决双目视差估计的数据依赖问题
      • 提出的是“方法论”,可作用于不同的网络
      • 可以提高估计的精度和模型的泛化能力
    • 这些创意和应用上的好处是在哪些条件下才能成立 ?
      • 需要训练较好的单目深度估计网络
    • 还能从另一个角度去探讨吗?
      • 其中的单目深度估计和双目估计的促进作用,能否探索其闭环循环的相互促进?
    • 这篇论文最主要的缺点或局限是什么?
      • 本文提出的方法训练深度估计网络需要以监督数据或者之前的自监督方法进行, 之前的自监督方法或者无监督方法还是需要双目立体成对数据或者单目视频
    • 这些缺点或局限在应用上有什么坏处?
      • 在双目立体匹配阶段解决数据问题,但是单目深度阶段仍然需要数据
    • 这些缺点和应用上的坏处是因为哪些因素引入的?
      • 数据集造成的泛化能力、数据集的采集难度
    • 我们能克服吗?如何克服?
      • 生成模型利用少量数据捕捉分布规律?
    • 这篇论文的哪些部分(点子)值得参考?
      • 深度图的锐化,利用简单的 Sobel 算子筛选模糊点后进行优化,得到锐化的深度图,可以借鉴用于改进深度图
      • 立体匹配数据生成,可以延申到其他领域,借用相似任务生成假数据用于训练网络
    • 对自己的研究,有哪些指导意义和启示?
      • 任务之间的相关性可以用于改进网络
  • 论文要点翻译

    • 摘要
      • 监督深度网络已经广泛用于双目立体图像的对应关系挖掘,但是监督学习方法训练时需要大量的标注数据,而现实场景中往往难以采集质量较高的精确的密集的对应的数据对
      • 本文提出,实际上网络训练过程不需要依赖真实标注的深度图数据,甚至连有对应关系的双目立体图像都是不需要的,本文认为可以从单张图像生成假的视差图,视差图可以帮助生成用于训练的双目立体图像
      • 这样的训练方式使得网络可以将输入的任意的单张的 RGB 图像转换为双目的训练数据,这个生成的结果大大减少了人类标注数据的工作量,不需要收集真实的深度图,甚至不需要手工设置合成数据
      • 利用提出的方法,甚至可以从一个之前的立体匹配方法完全没有应用的数据集出发进行立体匹配工作
      • 实验结果表明提出的方法比之前在合成数据预训练、在真实数据调优的方法性能更高
    • 引言
      • 给定基于扫描线的一对校正的图像,立体匹配的缪奥在于发现一对对应像素在左图和在右图中的水平位置的像素级偏移(即视差),一般将这个问题看作是匹配像素点的问题,现有的最高性能的方法通常是利用深度学习网络实现的立体匹配方法,这些方法通过大量的成对左右图立体图像进行训练,或者利用合成数据进行训练
      • 然而,在新的数据集上往往需要进行迁移的调优训练;无监督方法则是通过图像之间的一致性,使用自监督的图像重建作为训练的损失函数,因而不需要实际的对应的真实值数据,但是现有的无监督方法在真实场景数据集性能往往低于监督学习方法
      • 本文解决问题的思路在于生成训练数据,现有的工作已经表明在很多噪声标签数据上的预训练可以提高模型在图像分类领域的性能,但是目前还没有相关的方法将这个思想运用到立体匹配领域
      • 本文引入完全自动化的立体数据合成方法,只需要使用单张图像作为输入,可以输出成对的立体图像,这使得利用只有单张 RGB 图像的数据集训练立体匹配网络成为可能
      • 方法使用单目深度估计网络预测每个训练图像的视差图,然后在视差图合成新视角图像之前对其进行优化,主要解决场景中的遮挡、抖动等问题
      • 方法使用自然场景图像保证模型能够有效捕获真实场景中数据的纹理信息等,训练网络之后,利用单目数据训练得到的网络可以提供有效的信号用于生成训练数据,这主要是因为双目立体匹配网络主要需要学习图像对之间的像素匹配关系
      • 实验结果表明,渐进优化的单目深度估计方法得到的立体匹配精度更高,表明了本文的方法甚至从自己的单目深度估计网络中学习到了有利的信息,进而用于双目的立体匹配;实验结果还表明,增加单目图像派生的训练数据使得网络模型得到提高
    • 相关工作
      • 立体匹配:使用手工构造的特征进行图像匹配、传统的端到端的立体匹配 Pipeline、使用深度学习方法的立体匹配、空间金字塔、cost volume,本文提出新的数据生成策略用于训练立体匹配网络,方法与网络无关,适用于不同的立体匹配网络;现有的许多方法基于双目立体模型改进单目深度估计,而本文方法通过单目深度估计模型帮助改进双目立体匹配
      • 双目立体训练数据:静态立体相机采集、网络视频、3D 电影、多视图图像等
      • 基于训练数据的图像增强
      • 用于双目立体匹配的域适应:合成场景与真实场景数据的适应;本文使用的方法自动合成大量的双目训练数据,输入仅是单张的图像,模型有较强的泛化能力,可以用于训练时从未见过的测试场景数据
    • 方法
      • 双目立体匹配的监督训练方法需要校正的立体图像对 I l , I r I_l,I_r Il,Ir 和标注的真实视差图 D D D 作为训练输入,本文提出根据单张图像生成假的右图和视差图,得到输入 ( I l , I r ~ , D ~ ) (I_l,\widetilde{I_r},\widetilde D) (Il,Ir ,D ) ,方法使用预训练的单目深度估计网络合成得到 I l I_l Il 对应的假深度图 Z,借用 Z 合成假的右图和视差图,即 I r ~ , D ~ \widetilde{I_r},\widetilde D Ir ,D
      • 利用单目深度估计得到双目训练数据
        • 测试时,单目深度估计网络输入彩色图像后得到每个像素对应的深度值,输出对应的假的深度图: Z = g ( I ) Z=g(I) Z=g(I)
        • 单目网络可以用真实的深度值进行训练,或者以自监督的形式进行训练,为了得到训练双目立体匹配网络的 视差图 数据,需要将深度图 Z 转换为视差图 D ~ \widetilde D D ,为了实现泛化能力较强的立体匹配,希望双目图像对的基线距离和焦长都相对有较大的范围,因此,转换深度图是通过 D ~ = s Z m a x Z \widetilde D = \frac{sZ_{max}}{Z} D =ZsZmax 进行转换,其中的 s 是一个从区间 [ d m i n , d m a x ] [d_{min},d_{max}] [dmin,dmax] 随机采样的尺度因子,控制生成的视差图的值在一个范围内
        • 目标在于利用输入的“左”图和预测得到的假的视差图合成得到假的右图,视差图和彩色图像应当都是和左图有对齐关系的,因此,后向的 warping 投影操作并不合适,本文使用前向 warping 投影方式从 D ~ \widetilde D D I l I_l Il 合成得到 I r ~ \widetilde{I_r} Ir ,将 I l I_l Il 中的每个像素 i 向左移动 D i ~ \widetilde{D^i} Di 个像素,利用插值操作得到投影的像素值,以此方式获取 I r ~ \widetilde{I_r} Ir
        • 前向投影难以避免地带来了遮挡和抖动的问题,合成真实的双目立体图像对必须解决遮挡和抖动问题
      • 遮挡和抖动问题
        • 遮挡指的是左图中出现的像素在右图中没有出现,无法找到,在前向投影的过程中, I r ~ \widetilde {I_r} Ir 会有一部分点无法利用左图匹配得到,因此重建的结果会有空洞,这样的空白使得图像看起来真实性很低,为了改进图像的真实性,利用随机选择的另一张图像 I b I_b Ib 提取相应的纹理信息进行填充,首先利用【49】提出的方法将 I b I_b Ib 进行 I l I_l Il 相关的颜色转换,得到 I b ~ \widetilde {I_b} Ib ,再利用其中的纹理填充生成的假右图中的空洞部分
        • 另外,抖动是原本出现在 I l I_l Il 中的像素没有出现在 I r ~ \widetilde {I_r} Ir 中,导致许多 I l I_l Il 中的像素映射到了 I r ~ \widetilde{I_r} Ir 中的统一像素,对于抖动问题, 选择原图中具有较大视差值的点使得其在两个图像中都可见,因为视差值较大说明相对更不容易被遮挡
      • 深度的锐化
        • 真实的深度图在物体边缘会有深度值的跳变,因此会有锐度较高的深度图,但是深度估计的结果常常得到的都是模糊边缘的图像,因此造成合成图像中的“flying pixels”,这个问题主要通过深度锐化解决
        • 将这些模糊点的深度进行识别,主要是通过 Sobel 边缘算子计算视差图的响应,如果响应值大于 3,则认为是模糊点,然后重新指派距离该像素最近的非“flying point”的深度值作为该点的像素
      • 实现细节
        • 使用 PSMNet 中的沙漏网络的变体用作立体匹配网络
        • batch_size 2, 25000 步骤,相当于 SF 数据集的 7 个 epoch

你可能感兴趣的:(计算机视觉,论文笔记,深度学习,计算机视觉,人工智能,深度学习)