4.Deep Convolutional Neural Fields for Depth Estimation from a Single Image

论文在这儿

本篇论文的优势:

①我们不采用任何这些启发式方法改进我们的结果,但我们就相对误差而言取得了更好的结果。
②为了克服过拟合,其他方法必须收集数以百万计的带有附加标签的图像训练他们的模型。一个可能的原因是,他们的方法捕捉到绝对像素的位置信息,他们可能需要一个非常大的训练集覆盖所有可能的像素布局。相比之下,我们只使用没有任何额外数据的标准训练集,但我们获得相媲美,甚至更好的性能。
③我们的模型只有一元项的时候,相当于带有模糊边界的粗糙预测。通过加入平滑项,我们的模型产生了更好的可视化,接近ground-truth

大体概括

由于目前对单幅单目图像进行深度估计并没有合适的深度线索,所以以前的工作一直专注于几何先验或者是有手工制作特征的额外信息来源。另外,深度值的连续性的特性使得深度估计可以很自然地看成是一个连续的条件随机场CRF学习问题,它不依赖于任何的几何先验和额外的信息。

所以这篇论文提出了一个deep convolutional neural field model,通过共同探索deep CNN和连续CRF的能力(在统一deep CNN框架中学习连续CRF(使用CRF明确相邻超像素的关系)的一元和成对的势能),来进行估计单幅图像的深度(使用后向传播进行训练)。

此外,给定深度值的连续性,在概率密度函数中的分区函数(可积的)可以解析计算,因此,我们可以直接解决对数似然优化,而无需任何近似。

这篇论文所提出的方法可以用于一般场景的深度估计,这些场景没有任何几何先验或者额外的信息。此外,用MAP方法预测一幅新图像的深度,是高效的封闭式的解决方案。

Deep convolutional neural fields

【注】除非另有说明,否则本篇论文使用粗体大写和小写字母分别表示矩阵和列向量

①Overview

我们假设一幅图像是由小的均匀区域(超像素)组成,图模型是由结点组成,超像素表示图中的结点。
由于框架具有灵活性,因此可以应用在像素和超像素上。

每个超像素由它的质心(centroid)的深度所描述。我们使用x表示一幅图像, y = [y1, . . . , yn]T ∈ R_n表示图像x中所有的n个超像素所对应的连续深度值的一个vector。

类似于传统的CRF,我们下边的密度函数来建立数据的条件概率分布模型。
在这里插入图片描述
其中,E是势能函数(energy function);Z是配分函数(partition function),被定义为:
在这里插入图片描述
为了预测一个新图像的深度,we solve the maximum a posteriori(MAP) inference problem:
在这里插入图片描述

我们把势函数看成是在结点(超像素)N的一元势能U和在图像X边缘的成对势能V的组合
在这里插入图片描述
其中,一元项U的目的是回归单个超像素的深度值;成对项V鼓励有相似外观的邻近超像素采取相似的深度。我们的目标是在一个统一的CNN框架中,共同学习U和V.

An illustration of our deep convolutional neural field model for depth estimation.

【图片内容的大致解释】
The input image is first over-segmented into superpixels. In the unary part, for a superpixel p, we crop the image patch centred around its centroid, then resize and feed it to a CNN which is composed of 5 convolutional and 4 fully-connected layers .
In the pairwise part, for a pair of neighbouring superpixels (p, q), we consider K types of similarities, and feed them into a fully-connected layer.
The outputs of unary part and the pairwise part are then fed to the CRF structured loss layer, which minimizes the negative log-likelihood.
Predicting the depths of a new image x is to maximize the conditional probability Pr(y|x), which has closed-form solutions .

Note that the convolutional and the fully-connected layers are shared across all the image patches of different superpixels!!!
4.Deep Convolutional Neural Fields for Depth Estimation from a Single Image_第1张图片

整个网络由一元部分(a unary part),成对部分(a pairwise part)和CRF损失层组成。
首先将一个输入图像,分割(over-segment)成N个超像素,我们考虑image patches围绕每个超像素的质心。

The unary part

将所有image patches resize为224×224 pixels后作为输入,放到每一个CNN中,输出一个包括n个超像素回归深度值的n维向量。
4.Deep Convolutional Neural Fields for Depth Estimation from a Single Image_第2张图片
一元部分的网络由5个卷积和4全连接层组成。CNN的参数被所有的超像素共享。注意各层的激活函数问题
一个image patch输出一个超像素的一维实数值。

The pairwise part

把所有邻近超像素对的相似向量(每个包括k个组件)作为输入,把它们放在全连接层(参数被不同的超像素对共享),然后输出一个包含每个相邻超级像素对的所有一维相似性的向量。

The CRF loss layer

从一元部分和成对部分输出值作为CRF损耗层的输入来最小化负对数似然函数。

这个模型两个潜在的优点是:
1)实现平移不变性,因为我们构建一元势能不考虑超像素的坐标;
2)成对势能由邻近超像素的关系组成

②Potential functions

一元势能Unary potential

在这里插入图片描述
这里,z_p是由CNN参数θ参数化的超像素p的回归深度。

成对势能Pairwise potential

我们从相似观察值的K个类型构造成对势能,它们的利用邻近超像素的一致性信息执行平滑:
在这里插入图片描述
其中,R_pq表示一个相邻超像素对(p,q)在the pairwise part的输出,在这里我们使用一个全连接层:
在这里插入图片描述
在这里插入图片描述:第k个相似矩阵,它是对称的,其元素是在这里插入图片描述
在这里插入图片描述是神经网络的参数。

To guarantee Z(x)is integrable, we require β_k ≥ 0

我们通过颜色差异,颜色直方图差异和局部二进制模式(LBP)的纹理差距这三种类型来衡量成对相似性。其卷积形式为:在这里插入图片描述=4.Deep Convolutional Neural Fields for Depth Estimation from a Single Image_第3张图片

Learning

4.Deep Convolutional Neural Fields for Depth Estimation from a Single Image_第4张图片由于在公式中的势能函数y的二次项和A的正定性,我们可以解析计算公式(2)这个配分函数的积分:
4.Deep Convolutional Neural Fields for Depth Estimation from a Single Image_第5张图片
则,根据公式(1),(10),(11),概率分布函数为:
4.Deep Convolutional Neural Fields for Depth Estimation from a Single Image_第6张图片
【注】
x_(i),y_(i)指的是第i个训练函数和其对应的深度图。
N是指训练图片的数量。
λ1 and λ2 are weight decay parameters
我们使用基于后向传播的随机梯度下降(SGD)来进行公式的优化

4.Deep Convolutional Neural Fields for Depth Estimation from a Single Image_第7张图片

4.Deep Convolutional Neural Fields for Depth Estimation from a Single Image_第8张图片

Implementation details

我们基于高效的CNN工具箱VLFeat MatConvNet1实现了网络的训练。6GB的GPU可能无法在同一时间处理所有图像块,因此我们把一幅图像的超像素图像块分成两部分。在实施过程中,我们使用从 ImageNet中训练的CNN模型,初始化图2中一元部分的前6层。首先,我们不通过固定前6层进行反向传播和训练网络的其余部分,然后我们执行60 epoches报告预训练结果(学习速率下降两倍),然后我们使用相同的动量和权重衰减训练整个网络。

实验结果对比

4.Deep Convolutional Neural Fields for Depth Estimation from a Single Image_第9张图片

你可能感兴趣的:(深度估计论文笔记,深度估计,论文笔记)