基于深度学习的影像深度重建综述
论文名称:A Survey on Deep Learning Architectures for Image-based Depth Reconstruction
作者单位:University of South Australia
论文下载链接:https://arxiv.org/pdf/1906.06113
1 本文核心思想
在计算机视觉、图形学、机器学习领域中,从RGB影像中恢复深度已经研究了数十年。而深度学习与大规模训练集的出现颠覆了传统的方法。本文综合介绍利用深度学习恢复单视或多视影像深度的方法,总结了常用的处理流程并分析优缺点。
本文创新点:
-
第一篇综述深度学习重建影像深度的论文。
-
收集了2014至2018年间,超过100篇在计算机视觉、计算机图形学和机器学习领域的论文。
-
对深度学习训练集、网络结构、训练方式和应用场景(单视、双视、多视)做了分析。
-
对诸多方法结果做了综合比较。
2 研究背景介绍
图像三维重建的目的在于恢复真实物体和场景的三维结构,在机器人导航、物体识别、场景理解、三维建模等领域有重要应用。
从2D影像恢复深度可分为两部分。
-
传统方法方法:具体指理解和构建3D到2D投影过程。要想获取较优的结果,需要多视影像,并且相机需要标定。该方法在影像遮挡、特征缺失、纹理重复的环境难以准确估计深度。
-
深度学习方法:人眼在单眼观测的情况下,可根据先验知识建立模型推断物体的大概尺寸和几何位置。所以可基于深度学习利用先验知识将深度估计问题建立为识别任务。
而深度学习方法分两类:
-
双像匹配方法:用深度学习完成特征提取、特征匹配、视差(深度)估计、视差(深度)修正。
-
回归方法:深度学习直接预测,无需匹配。
3 双像匹配方法
该方法模仿传统双像匹配原理进行学习,匹配结果可转光流或视差图,进而可得深度图。含四个部分。
-
特征提取
-
求特征匹配cost
-
视差(深度)计算
-
视差(深度)修正
优化量 E ( D ) E(D) E(D)如公式1。 x , y x,y x,y为像素, d x , d y d_x,d_y dx,dy为对应的深度。 C C C为匹配的cost, E E E为正则项。四个部分中前两个部分构建 C C C,后两个部分构建 E E E并估计深度(视差)。
综合,可对所有双像匹配方法进行分类。如TABLE 1。
3.1 特征提取
基于CNN结构,编码器输入局部影像或全局影像,生成2D的特征图。特征图分两种:
-
单尺度特征图。如Fig. 1,该网络模型有2个分支,每个分支都是一个CNN。提取单尺度特征的网络结构如TABLE 2。
-
多尺度特征图。如Fig. 2。可通过修改中心像素的块尺寸或利用中间层计算的特征图来实现多尺度。注意,层数越深,计算出的特征尺度就越大。
3.2 求特征匹配cost
匹配的cost(即为公式1的 C C C)有两种计算方法。
-
由同名特征点的特征向量直接计算距离(如欧氏距离,余弦距离等)求得。
-
使用相似度-学习网络,先集成不同的网络生成的特征向量,再通过全连接网络或卷积网络输出匹配cost,最后由于有多个像对,产生多个cost,所以对诸多cost进行集成(如最大池化),生成最终匹配的cost C C C。
两种方法如Fig. 3。
3.3 视差(深度)计算
3.1和3.2已经计算了匹配的cost,现在通过最小化 E ( D ) E(D) E(D)计算深度(视差)图。如图Fig. 4,分两步进行。
- 将匹配cost正则化。原始的cost由于非朗伯体、物体遮挡、纹理重复等原因,含较多误差。原始cost可与其他特征叠加,然后通过神经网络计算完成正则化。
- 从正则化后的cost估计深度。简单可用argmin或argmax来计算,但argmin和argmax不可导,且无法达到子像素精度。所以采取别的处理手段(如soft argmin)。
3.4 视差(深度)修正
一般情况下,预测的视差(深度)图分辨率较低,细节部分会缺失,且在边界处容易过于平滑。甚至有些方法输出的图不完整或者很稀疏。直接预测高分辨率和高质量视差(深度)图的神经网络有很多参数,很难训练。进而需要一个修正模块。它有三个作用。
- 提高输出视差(深度)图的分辨率。
- 修正在细节处的重建效果。
- 补全视差(深度)图。
在利用深度学习进行修正时,可以有五种输入。
- 估计的视差(深度)图。
- 估计的视差(深度)图与参考影像合并。
- 估计的视差图,匹配cost和重建误差(由左右影像和视差图可得)
- 估计的视差(深度)图和将右影像转为左影像(利用视差)
- 估计的视差(深度)图和参考影响的特征图(第一卷积层结果)
深度学习方法修正如表。分四种方法(如图):
-
从下往上方法。第一种策略类似于滑动窗口的处理方法,以小块为单元处理,估计小块中心像素的深度。另外一种从下而上的策略是利用不完整的深度图的各向异性扩散来填补未知区域的深度。
-
从上往下方法。直接处理整个视差(深度)图。第一种策略采用反池化实现解码,好比池化和卷积的逆过程。第二种策略采用编码和解码网络,先编码到另一个空间,再从这个空间恢复高分辨率视差(深度)图。
-
特定目标(错误的、深度太小或太大的)修正。直接估计深度或进行深度修正不是最优的方法。可将修正任务分解为三个部分。探测错误的估计,替换掉错误的,再进行修正。
-
依据其他信息(如同时优化深度和法线)进行修正。
3.5 多像匹配网络
除了从一个像对中重建深度(视差)图,也可以从n个像对中重建,也就是说将特征计算的网络分支复制n次。多像匹配网络分两种。
-
前期融合网络:如Fig. 5(a), (b), ©。由不同分支计算的特征可通过池化等方式集成之后,再送入神经网络生成深度图。
-
后期融合网络:如Fig. 5(d)。对每个像对计算cost,再根据池化等方式合并所有的cost。
4 回归方法
该方法不学习如何匹配,直接对每个像素预测深度(视差)。该方法可对单视或双视影像估计深度,且可生成任意角度深度图。网络结构可分4种。
- 直接对影像进行编码获得深度。一般来说编码网络主要包含卷积层和全连接层。另外,之前的修正方法再获得较高分辨率结果的同时对资源的要求是比较高的,所以加上池化层降低特征图分辨率。
- 先用一个卷积神经网络对输入影像进行编码,将影像转到隐藏空间(latent space)。再指定一个视角,用一个网络(由一系列全连接层或反卷积层)对编码后的影像进行深度估计。
- 多个网络搭在一起能够提高效果。
- 估计深度的同时解决多个任务。深度估计和其他基于影像理解的问题,比如影像分割,语义标注和场景解译,都有强烈的关系。通过利用这些任务之间的复杂属性,可以联合解决这些任务进而互相增强任务效果。另外,尽管能够显著提升各任务的效果,对训练集的要求也是比较大的,需要同时有各个任务的标注。 </