Depth Map Prediction

这篇文章主要是一些做深度图像预测的论文笔记。

1. Depth Map Prediction from a Single Image using a Multi-Scale Deep Network_NIPS14


这篇文章其实像是一个coarse to fine的cascade模型,直接先看网络模型吧
Depth Map Prediction from a Single Image using a Multi-Scale Deep Network
就是把第一层网络的coarse输出拼接到第二层的网络上去。
然后作者提出一种缩放尺度不变的mean square error做回归
\begin{align}
D(y,y^*) &= \frac{1}{2n^2}\sum_{i,j}((logy_i-logy_j)-(logy_i^*-logy_j^*))^2 \\
&= \frac{1}{n}\sum_id_i^2-\frac{1}{n^2}\sum_{i,j}d_id_j\\
&= \frac{1}{n}\sum_id_i^2-\frac{1}{n^2}\left(\sum_id_i\right)^2
\end{align}
其中,$y$是预测的值,$y^*$是ground truth,$d_i=logy_i-logy_i^*$
这样子,为了得到小的loss,预测的深度图像中每一对像素值之差应该与ground truth之间的差不多。然而个人觉得,这个loss其实会造成整体的灰度与ground truth之间有一定的差别,从作者给出的训练结果可以看出这一点
Depth Map Prediction from a Single Image using a Multi-Scale Deep Network_2
(a)是原图,(b)是第一层网络的coarse输出,(c)是第二层网络的fine输出,(d)是ground truth

2. Deep Convolutional Neural Fields for Depth Estimation from a Single Image_CVPR15


还是先看网络架构
Deep Convolutional Neural Fields for Depth Estimation from a Single Image_1
作者先把图片用SLIC算法分割成超像素,对于每个超像素,以那个超像素的中心为中心取一个224*224的块,输入到深度网络中得到预测值$z_p$,算回归loss,$\sum U(y_p,x)=\sum(y_p-z_p)^2$;对于相邻的超像素块,还会计算它们的$K$种相似度【文中用了3种:颜色差,颜色直方图差和LBP特征,$S_{pq}^{(k)}=e^{-\gamma|s_p^{(k)}-s_q^{(k)}}|$】,这些特征通过一个全连接层,得到$R_{pq}$,算pairwise loss$\sum V(y_p,y_q,x)=\sum\frac{1}{2}R_{pq}(y_p-y_q)^2$,这个loss是为了约束相似的超像素块具有相近的深度值。这两者合起来当成一个CRF loss。这个loss形式简单,所以是有close form solution的,可以直接求导。
作者用这种超像素分割的方法的弊端在于最后的预测结果也是像超像素一样分成一块一块的
Deep Convolutional Neural Fields for Depth Estimation from a Single Image_2
还有一点就是用CRF可能会过度平滑预测结果
Deep Convolutional Neural Fields for Depth Estimation from a Single Image_3

3. Estimating Depth from Monocular Images as Classification Using Deep Fully Convolutional Residual Networks_arxiv16


这篇文章的思想就更简单了,直接借鉴从物体分割的思想【Semantic image segmentation with deep convolutional nets and fully connected crfs】,quantize深度图像,转化成分类问题,然后用crf做后处理
虽然作者在loss函数里加了infogain matrix和bootstrapping的参数,然后从实验结果上看几乎没有影响。
用CRF优化可能会过度平滑的问题在这篇文章的结果里也体现出来了
Estimating Depth from Monocular Images as Classification Using Deep Fully Convolutional Residual Networks_1
Estimating Depth from Monocular Images as Classification Using Deep Fully Convolutional Residual Networks_2
目前还没有看到像dialted convolution之类的工作引入进来,另外从这篇文章以及个人经验来看,分类貌似总是比回归要好,用mse来做回归貌似经常不妥当。