NYUv2数据集的使用

NYU v2 各部分都包含什么

NYU v2官网
Downloads中有三个部分

· Labeled dataset
原始数据集的子集,由RGB和Depth帧对组成,这些帧已被同步,并为每个图像添加了密集的标签。除了投影深度图之外,还包含了一组预处理深度图,使用Levin等人的着色方案填充了这些深度图的缺失值。与原始数据集不同,标记数据集以Matlab .mat文件的形式提供,其中包含以下变量:
accelData - 每帧的加速度计值的Nx4矩阵。列包含设备的滚转、偏航、俯仰和倾斜角度。
depths - 绘制深度图的HxWxN矩阵,其中H和W分别为高度和宽度,N为图像数目,深度元素的值单位为米。
images - RGB图像的HxWx3xN矩阵,其中H和W分别是高度和宽度,N是图像的数量。
instances - 实例映射的HxWxN矩阵。使用Toolbox中的get_instance_masks.m恢复场景中每个对象实例的掩码。
labels - HxWxN对象标签掩码矩阵,其中H为高度,W为宽度,N为图像个数。标签的范围从1…C,其中C是类的总数。如果像素的标签值为0,则该像素为“未标记”。
names - Cx1单元格数组中每个类的英文名称。
namesTolds - 从英文标签名称映射到类id(使用C键值对)
rawDepths - HxWxN 矩阵包含原始深度图,其中H和W分别表示高度和宽度,N是图像数量。这些深度图在被投影到RGB图像平面之后、缺失深度值被填充之前捕获深度图像。另外,从Kinect设备得来的深度非线性已经被移除,每个深度图像的值都以米为单位。
rawDepthFilenames - 用于标记数据集中的每个深度图像的文件名(在Raw数据集中)的Nx1单元数组。
rawRgbFilenames - 用于标记数据集中的每个RGB图像的文件名(在Raw数据集中)的Nx1单元数组。
scenes - Nx1单元数组,其中每个图像取自场景的名称。
sceneTypes - Nx1 单元数组,包含每幅图像拍摄的场景类型。

· Raw dataset,Multi-part
原始数据集包含来自kinect的原始图像和加速度计转储。RGB和深度相机的采样率介于20到30 FPS之间(随时间变化)。虽然帧不同步,但每个RGB,深度和加速度计文件的时间戳都包含在每个文件名中,并且可以使用Toolbox中的get_synched_frames.m函数同步以产生连续的视频。
数据集被分成不同的文件夹,对应于拍摄的每个“场景”,例如 ‘living_room_0012’或‘office_0014’,文件层次结构如下
/
…/bedroom_0001/
…/bedroom_0001/a-1294886363.011060-3164794231.dump
…/bedroom_0001/a-1294886363.016801-3164794231.dump

…/bedroom_0001/d-1294886362.665769-3143255701.pgm
…/bedroom_0001/d-1294886362.793814-3151264321.pgm

…/bedroom_0001/r-1294886362.238178-3118787619.ppm
…/bedroom_0001/r-1294886362.814111-3152792506.ppm

以前缀a-开头的文件是加速度计转储。这些转储以二进制形式写入磁盘,可以通过文件get_accel_data.mex读取。以前缀r和d开头的文件分别是来自RGB和深度相机的帧。由于没有进行预处理,因此必须将原始深度图像投影到RGB坐标空间上,以便对齐图像。

· Toolbox
官方提供的一些处理数据的函数
camera_params.m - 包含用于捕获数据的Kinect的相机参数
crop_image.m - 将图像裁剪为仅使用深度信号投影时的区域
fill_depth_colorization.m - 使用Levin等人的Colorization方法填充深度
fill_depth_cross_bf.m - 在多个尺度上使用交叉双边滤波器填充深度
get_accel_data.m- 返回加速度计在特定时刻的参数
get_instance_masks.m - 返回一组二进制遮罩,图像中的每个对象实例各有一个
get_rgb_depth_overlay.m - 返回RGB和深度对齐的可视化
get_synched_frames.m - 返回一组同步的RGB和Depth帧,可用于制作每个场景的RGBD视频
get_timestamp_from_filename.m - 返回原始数据集文件名中的时间戳。这对于在时间上均匀间隔采样RAW视频转储非常有用
project_depth_map.m - 将Kinect的深度图投影到RGB图像平面上

如何使用

我需要使用已对齐的RGB图与深度图对,其中深度图是未填充的。Labled dataset中的imagesrawDepths满足需求。
在MATLAB中使用加载数据

load("nyu_depth_v2_labeled.mat");

加载后i工作区变量

rawdepth = rawDepths(:,:,1);%取出一个未填充的深度图
img = images(:,:,:,1);%取出一个对应的RGB图
subplot(2,2,1);imshow(img);
subplot(2,2,2);imshow(rawdepth);
subplot(2,2,3);imshow(rawdepth,[]);colormap hot;

RGB、深度二值图、深度伪彩色图
可以看到,深度图周围存在黑边,成因目前未知。
RGB图与深度图都是640480(宽高)的

深度图存在黑边的问题,下边放上进行裁剪过的数据集,对黑边进行裁剪过后的图片大小为425*560(高X宽)
裁剪过后的NYU数据集

  • 35
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值