使用NYUv2数据集通过深度学习在单眼图像中进行深度预测

时间:2016-12-03 10:14:22

标签: python deep-learning theano keras conv-neural-network

最近,我正在研究使用深度学习从单眼图像获取深度的研究问题。我使用的数据集是NYUv2 RGBD数据集。我使用VGGNet-16网络并根据VGGnet的要求修改了我的输入。我使用23000个图像作为我的初始数据集,得到的RMSE误差为0.13。然而,该领域的大多数研究论文显示RMSE在0.6-0.9范围内(尽管数据集相同,但每篇论文使用的图像子集不同)。其中一篇论文最近在CVPR上发表。所以我对获得RMSE的方法持怀疑态度。我使用keras进行深度学习,theano作为后端。以下是我在keras中的RMSE代码片段:

代码1:

from keras import backend as K                
def custom_rmse(y_true,y_pred):            
temp = K.mean(K.square(abs(y_pred - y_true)), axis=-1)  
    return K.sqrt(temp)   

一些研究论文提到不考虑目标深度图像中的零像素值。所以我也为RMSE编写了修改后的代码如下:

from keras import backend as K                 
def custom_rmse1(y_true,y_pred):  
    ind = np.nonzero(y_true)    
    y_pred = y_pred[ind[0],ind[1], ind[2]]   
    y_true = y_true[ind[0],ind[1], ind[2]]   
    temp1 = abs(y_pred - y_true)   
    temp2 = K.square(temp1)   
    temp3 = K.mean(temp2)       
    t1 = K.sqrt(temp3)   
    return t1   

但在这两种情况下,结果几乎(0.11-0.20)相同。我也尝试了不同的图像子集。即使我尝试使用200个时代的122000张图像。我仍然将RMSE设为0.19。

请建议如何解决此问题?

0 个答案:

没有答案