NYUD V2数据集下载网址如下:
https://cs.nyu.edu/~silberman/datasets/nyu_depth_v2.html
对比可以看到V2有 464个不同的室内场景数(V1 64个)
26个场景类型(V1 7个)
407,024张没有标注的图片(V1 108,617个)
1449个密集标记的RGB和深度图像对(V1 2347个,比V2多)
提供实例和对象标签(V1不提供)
V1和V2都有: 1000+的类
已修复的和原始深度图
下载好的数据集的文件名是nyu_depth_v2_labeled.mat
可以matlab打开
accelData-采用Nx4的加速度计值矩阵,当每帧都被取走。这些列包括设备的滚动、偏航、俯仰和倾斜角度。
depths-HxWxN维度的矩阵深度图,其中H和W分别为高度和宽度,N为图像的个数。深度元素的值是米。
images-HxWx3xN RGB图像矩阵,其中H和W分别是高度和宽度,N是图像的数量
labels-HxWxN标签矩阵,其中H和W分别是高度和宽度,N是图像数量。 标签范围从1…C,其中C是类的总数。 标签的范围从1…C是类的总数。如果一个像素的标签值为0,那么这个像素就没有标记。
names-每个类的英文名称的Cx1单元格数组
namesTolds-从英文标签名称到ID(使用C键值对)
rawDepths-HxWxN深度图矩阵,其中H和W分别是高度和宽度,N是图像数量。 这些深度图是kinect的原始输出
scenes-每个图像拍摄场景名称的Cx1单元阵列
#提取原图
import numpy as np
import matplotlib.pyplot as plt
import scipy.io as sio
import h5py
import os
f=h5py.File("nyu_depth_v2_labeled.mat")
images=f["images"]
images=np.array(images)
path_converted='./nyu_images'
if not os.path.isdir(path_converted):
os.makedirs(path_converted)
from PIL import Image
images_number=[]
for i in range(len(images)):
images_number.append(images[i])
a=np.array(images_number[i])
r = Image.fromarray(a[0]).convert('L')
g = Image.fromarray(a[1]).convert('L')
b = Image.fromarray(a[2]).convert('L')
img = Image.merge("RGB", (r, g, b))
img = img.transpose(Image.ROTATE_270)
iconpath='./nyu_images/'+str(i)+'.jpg'
img.save(iconpath,optimize=True)
#提取修复后的深度图
import numpy as np
import h5py
import os
from PIL import Image
f=h5py.File("nyu_depth_v2_labeled.mat")
depths=f["depths"]
depths=np.array(depths)
path_converted='./nyu_depths/'
if not os.path.isdir(path_converted):
os.makedirs(path_converted)
max = depths.max()
print(depths.shape)
print(depths.max())
print(depths.min())
depths = depths / max * 255
depths = depths.transpose((0,2,1))
print(depths.max())
print(depths.min())
for i in range(len(depths)):
print(str(i) + '.png')
depths_img= Image.fromarray(np.uint8(depths[i]))
depths_img = depths_img.transpose(Image.FLIP_LEFT_RIGHT)
iconpath=path_converted + str(i)+'.png'
depths_img.save(iconpath, 'PNG', optimize=True)
#同样方法可以提取rawdepth 对比查看深度图修复效果
#提取labels
import numpy as np
import h5py
import os
from PIL import Image
f=h5py.File("nyu_depth_v2_labeled.mat")
labels=f["labels"]
labels=np.array(labels)
path_converted='./nyu_labels/'
if not os.path.isdir(path_converted):
os.makedirs(path_converted)
labels_number = []
for i in range(len(labels)):
labels_number.append(labels[i])
labels_0 = np.array(labels_number[i])
label_img = Image.fromarray(np.uint8(labels_number[i]))
label_img = label_img.transpose(Image.ROTATE_270)
iconpath = './nyu_labels/' + str(i) + '.png'
label_img.save(iconpath, 'PNG', optimize=True)
#语义分割图片 识别出了图片中的每个物体
#查看names
import h5py
f=h5py.File("./nyu_depth_v2_labeled.mat")
ft = open('names.txt', 'w+')
print(f["names"].shape) #打印查看类别个数,共894类
for j in range (894):
name = f["names"][0][j]
obj = f[name]
strr = "".join(chr(i) for i in obj[:])
ft.write(strr + '\n')
ft.close()
图1 image 图2 labels
图3 rawdepth 图4 depth
数据集下载地址还提供下载Rawdata和他的Toolbox,接下来的学习重点放在toolbox上
rawdepth是如何变化为depth?
数据集网站显示的depth为彩色图,自己提取到的是黑白图,三通道和单通道?