- 题目:Depth and surface normal estimation from monocular images using regression on deep features and hierarchical CRFs
- 出处:Li, B., Shen, C., Dai, Y., Van Den Hengel, A., & He, M. (2015). Depth and surface normal estimation from monocular images using regression on deep features and hierarchical crfs. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 1119-1127).
从单个单目彩色图像预测场景的深度(或表面法线)是一项艰巨的任务。本篇论文采用了
- 深度卷积神经网络(DCNN)特征的回归和
- 使用条件随机场(CRF)进行后处理细化来解决单目图像的深度或者表面法向的预测问题。
这个framework在超像素级别和像素级别这两个级别(超像素级别的深度回归,从超像素级别到像素级别的深度调整)上进行工作。由于framework是自上而下的,所以它可以从超像素级别工作到像素级别。
- 首先,设计DCNN模型来学习从多尺度图像块到超像素级别深度或者表面法向值(surface normal values)的映射(利用DCNN网络提取多尺度深度特征,并训练回归器)。
- 然后,利用深度或表面法向图上的各种电势(potentials)使用the hierarchical continuous conditional random field(CRF) model,将估计的超像素深度或表面法向从超像素级别重新细化到像素级,其中包括数据项、超像素之间的平滑项和表征估计图局部结构的自回归项。
由于这个模型不需要明确地编码任何类型的几何先验,因此在现实应用中有很强的泛化能力。
这带来了以下好处:
- (a)通过仅在超像素级提取预先训练的CNN特征,显著减少了计算负担;
- (b)避免了边界上的过度平滑,并保留了小对象。
此外,使用相同的框架,我们可以在对网络参数进行最小修改的情况下估计surface normals。(在给定深度信息的情况下,人们总是可以计算出surface normals)
方法本篇论文中的像素级单图像深度估计方法包括两个阶段:超像素深度回归和从超像素到像素级别的深度细化。
首先,我们将超像素级深度估计作为一个回归问题。给定一幅图像,我们能够得到超像素。对于每一个超级像素,我们提取围绕超像素中心的多尺度图像块。然后学习一个DCNN来编码输入块和相应深度之间的关系。
其次,通过使用层次(hierarchical)条件随机场(CRF),将深度估计从超像素级细化到像素级。超像素级和像素级都考虑了不同的电势(potentials)。
整体CNN架构: 注意,CNN的固定权重部分(fixed-weights part)可以从预先训练的模型(如AlexNet或deeper VGGNet)中传递。
①Depth regression with CNNs
我们注意到,对于基于像素的方法,从局部邻域提取的局部特征向量可能不足以预测深度标签,因此必须使用能够捕获空间配置的相邻像素的组合信息。
为了encode the depth,网络结构如Figure 1。其中,前面五个卷积层和第一个全连接层(FC1)来源于AlexNet,并且他们的权重值都是固定的,且被所有的输入块所共享。对于FC1的所有输出均被concatenated,然后喂给最后两个全连接层(FC-a和FC-b),这两层的权重值使用训练数据训练获得。
此外,本篇论文还证明了具有丰富上下文信息和多尺度观测的large-size patch对于深度回归任务至关重要。
②Refining the results via hierarchical CRF
为了将预测的深度或曲面法向从超级像素级别细化到像素级别,我们在超像素和像素级别上建立了一个hierarchical CRF,它的结构为:
energy function:
注意,前两个势能定义在超像素级别,最后一个势能定义在像素级别。
Potential 1: Data term
这个数据项是定义在超像素级别的。
Potential 2:Smoothness at the super-pixel level
此成对项强制相邻超像素之间的一致性。这里我们定义了超像素级的平滑度。二次距离由λ_ij加权,即CIELUV颜色空间中连接的超像素之间的色差
Potential 3: Auto-regression model
本文利用自回归模型对深度图中的局部相关结构进行了描述。一般三维场景的深度图主要包含由曲线分割的光滑区域,自回归模型能够很好地刻画这种局部结构。自回归模型的关键之处在于深度图可以由深度图本身局部表示。用du表示位置u处的深度值。模型预测的深度图可以表示为: 在这里,C/u表示像素u的neighbourhood,α_ur表示C/u集合中像素r的模型自回归系数,模型和depth map之间的差异(i.e.,the auto-regression potential)可以被表示成:
我们需要根据可以使用的彩色图像设计一个局部自回归预测因子α。在这里我们令α_ur ∝
且满足
其中,g表示对应像素的亮度值(intensities value), σ_u表示u周围局部块的亮度方差。
像素亮度,每个像素都有相应的亮度,这个亮度和色相是没有关系的,同样的亮度既可以是红色也可以是绿色,就如同黑白(灰度)电视机中的图像一样,单凭一个灰度并不能确定是红色还是绿色。 所以,像素的亮度和色相是无关的。像素的亮度值在0至255之间,靠近255的像素亮度较高,靠近0的亮度较低,其余部分就属于中间调。这种亮度的区分是一种绝对区分,即255附近的像素是高光,0附近的像素是暗调,中间调在128左右。
理论上,参数W1,W2可以通过最大化条件对数似然来学习。在我们的公式中,我们通过对训练数据的交叉验证来估计w1,w2。
A closed-form solution
一旦确定了层次CRF中的参数,由于最小二乘损失(Gaussian-CRF),MAP解就可以以闭合的形式得到。为了便于表达,我们函数式(1)表示为矩阵形式:
由于能量函数相对于d是二次函数,因此可以用代数方法导出一个闭式解:
对于数据集,我们采用SLIC来获取超像素。
对于深度回归,我们将多尺度块的大小固定为55×55、121×121、271×271、407×407像素。这些patches是从原始图像中提取的,并且把他们的大小重新调整为227×227像素,这是我们深度回归网络的输入大小。
在训练和测试的时候,我们把ground truth 深度值转换成log space。所提出的深度回归网络使用随机梯度下降训练,批次大小为100个样本,动量为0.9,权值衰减为0.0004。
卷积层C1、C2、…、FC1的权重由预先训练的AlexNet模型初始化。随机初始化FC-a、FC-b的权重,标准差为0.01。另外,我们在这两层之后添加ReLU层和dropout层。
The loss function
xi表示ground-truth depth。 xˆi表示对应的回归值。
- 通过实验对现行效果较好的方法和本篇论文的方法进行了比较。
- 通过实验,分析了潜在的问题和本篇论文的方法。具体地说,首先给出了一个只有深度回归的基线实现,即没有深度细化,从而解释了这两个组件在实现最终深度图中的作用。二是分析了超像素大小对深度评估的影响,we fix the size of super-pixels to 10。
- 通过实验,验证本篇论文中方法的泛化能力(how the regression-refifining framework can be used to predict depth for images not related to the training data set)。
参考:9.Depth and surface normal estimation from monocular images using regression on deep features and