NYU Depth V2数据集相关介绍

一、参考资料

NYU Depth Dataset V2官网

论文:Indoor Segmentation and Support Inference from RGBD Images

二、 相关介绍

1.简介

NYU-Depth V2数据集由来自微软 Kinect 的RGB和深度相机记录的各种室内场景的视频序列组成。它具有:

  • 1449对密集标记的RGB和深度图像;
  • 来自3个城市的464个新场景;
  • 407,024个新的无标签帧;
  • 每个对象都标有类别和实例编号(如cup1、cup2、cup3等)。

2. 下载数据集

NYU Depth V2数据集的下载链接可以在多个地方找到。以下是一些可用的下载链接:

  1. 官方下载地址:NYU Depth V2的官方网站提供了数据集的下载,链接为 NYU Depth Dataset V2 homepage。
  2. TensorFlow Datasets:TensorFlow Datasets也提供了NYU Depth V2数据集,可以通过以下链接访问 nyu_depth_v2 on TensorFlow Datasets。
  3. 超神经(HyperAI)提供的下载信息:超神经平台上也有关于NYU Depth V2数据集的下载信息,链接为 NYU Depth V2 on HyperAI。
  4. ATYUN官网提供的链接:ATYUN官网上也有关于NYU Depth V2数据集的介绍和下载链接,链接为 sayakpaul/nyu_depth_v2 on ATYUN。
  5. Gitee AI:Gitee AI上也有该数据集的镜像,可以通过以下链接访问 nyu_depth_v2 on Gitee AI。

3. 训练集与验证集

SplitExamples
'train'47,584
'validation'654

4. matplotlib颜色映射

Choosing Colormaps in Matplotlib

matplotlib中,有几个颜色映射(colormap)可以用来表示深度值的变化,其中一些非常适合用来表示深度信息:

  1. hot:这个颜色映射从黑色(低深度值)渐变到白色(高深度值),中间通过红色和黄色色调。
  2. jet:这个颜色映射也是从低到高深度值渐变,但颜色过渡包括蓝色、绿色、红色和黄色。
  3. magma:这是’hot’颜色映射的一个变种,提供了一个更为温和的颜色渐变。
  4. cividis:这个颜色映射旨在提供更好的色觉正常和色觉缺陷人群的区分度。
  5. plasma:这个颜色映射提供了一个从低到高深度值的宽色域渐变,颜色从蓝色渐变到黄色再到红色。
  6. viridis:这个颜色映射是设计用来替代 jet 的,这个颜色映射因其对色彩的连续性表示良好,对色觉缺陷人群友好,以及在黑色(低深度)到白色(高深度)之间提供了清晰的视觉过渡而受到青睐。

为了在 matplotlib 中使用颜色映射,可以在绘制图像时通过指定 cmap 参数。以下是一个使用 viridis 颜色映射的示例代码:

import numpy as np
import matplotlib.pyplot as plt


# 假设depth_map是一个包含深度估计结果的数组
depth_map = np.random.rand(100, 100)  # 示例数据

# 可视化深度图
plt.figure(figsize=(8, 6))
plt.imshow(depth_map, cmap='viridis', interpolation='nearest')
plt.colorbar()  # 显示颜色条
plt.title('Depth Map Visualization')
plt.axis('off')  # 不显示坐标轴
plt.show()

在这里插入图片描述

三、常用操作

1. 深度值归一化

# 方法一
max_depth = np.max(depths)
depth_normalized = (depth / max_depth) * 255

# 方法二
depth_normalized = (depth - np.min(depth)) / (np.max(depth) - np.min(depth))
depth_normalized *= 255  # 转换到0-255范围

2. RGB/深度图/标注图可视化

为了可视化NYU Depth V2数据集中的原图、深度图和标注图,我们可以使用Python的h5py库来读取.mat文件,然后使用matplotlib库来生成热力图。以下是如何实现这一过程的代码示例:

import h5py
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
matplotlib.use('TkAgg')
from PIL import Image


# 读取数据
# 指定.mat文件路径
mat_file_path = './data/nyu_depth_v2_labeled.mat'

# 使用h5py打开.mat文件
with h5py.File(mat_file_path, 'r') as f:
    # 提取RGB图像、深度图和标注图
    images = f['images'][:]  # Nx3xWxH
    depths = f['depths'][:]  # NxWxH
    labels = f['labels'][:]  # NxWxH

    # 假设取第一个样本进行可视化
    image = images[0]  # 选择第一个深度图像
    depth = depths[0]  # 选择第一个深度图像
    label = labels[0]  # 选择第一个深度图像

    # image = images[0, :, :, :]  # 选择第一个图像
    # depth = depths[0, :, :]  # 选择第一个深度图
    # label = labels[0, :, :]  # 选择第一个标注图

# 转换颜色空间
# 将图像数据从3xWxH转换为HxWx3
image = image.swapaxes(0, 2)
# 将深度和标注图数据从WxH转换为HxW
depth = depth.swapaxes(0, 1)
label = label.swapaxes(0, 1)

# 可视化
# 定义颜色映射
cmap = plt.cm.jet
# cmap = plt.cm.plasma

# 可视化RGB图像
plt.figure(figsize=(12, 6))
plt.subplot(131)
plt.imshow(image)
plt.title('Original Image')
# plt.axis('off')  # 不显示坐标轴

# 可视化深度图
depth_normalized = (depth - np.min(depth)) / (np.max(depth) - np.min(depth))
plt.subplot(132)
plt.imshow(depth_normalized, cmap=cmap, interpolation='nearest')
plt.title('Depth Map (Heatmap)')
# plt.axis('off')  # 不显示坐标轴

# 可视化标注图
label_normalized = (label - np.min(label)) / (np.max(label) - np.min(label))
plt.subplot(133)
plt.imshow(label_normalized, cmap=cmap, interpolation='nearest')
plt.title('Label Map (Heatmap)')
# plt.axis('off')  # 不显示坐标轴

# 显示图表
plt.tight_layout()
plt.show()

在这里插入图片描述

3. 保存RGB图/深度图/标注图

import h5py
import numpy as np
import os
import matplotlib.pyplot as plt
from PIL import Image
import matplotlib
matplotlib.use('TkAgg')


# 读取数据
# 指定.mat文件路径
mat_file_path = './data/nyu_depth_v2_labeled.mat'

# RGB图像、深度图和标注图的保存目录
images_path = './nyu_images/'
depths_path = './nyu_depths/'
labels_path = './nyu_labels/'

if not os.path.exists(images_path):
    os.makedirs(images_path)
if not os.path.exists(depths_path):
    os.makedirs(depths_path)
if not os.path.exists(labels_path):
    os.makedirs(labels_path)

# 定义颜色映射
cmap = plt.cm.jet
# cmap = plt.cm.plasma

# 使用h5py打开.mat文件
with h5py.File(mat_file_path, 'r') as f:
    # 提取RGB图像、深度图和标注图
    images = f['images'][:]  # Nx3xWxH
    depths = f['depths'][:]  # NxWxH
    labels = f['labels'][:]  # NxWxH

    # 保存RGB图像
    for idx, image in enumerate(images):
        # 将图像数据从3xWxH转换为HxWx3
        image = image.swapaxes(0, 2)
        image_path = os.path.join(images_path, f'image_{idx}.png')
        plt.imsave(image_path, image, cmap=cmap)
        print(f'image saved as {image_path}')

    # 保存深度图像
    for idx, depth in enumerate(depths):
        # 将深度和标注图数据从WxH转换为HxW
        depth = depth.swapaxes(0, 1)
        # 深度值归一化
        depth_normalized = (depth - np.min(depth)) / (np.max(depth) - np.min(depth))
        depth_image_path = os.path.join(depths_path, f'depth_{idx}.png')
        plt.imsave(depth_image_path, depth_normalized, cmap=cmap)
        print(f'depth_image saved as {depth_image_path}')
    
    # 保存标注图像
    for idx, label in enumerate(labels):
        # 将深度和标注图数据从WxH转换为HxW
        label = label.swapaxes(0, 1)
        # 标注值归一化
        label_normalized = (label - np.min(label)) / (np.max(label) - np.min(label))
        label_image_path = os.path.join(labels_path, f'label_{idx}.png')
        plt.imsave(label_image_path, label_normalized, cmap=cmap)
        print(f'label_image saved as {label_image_path}')

四、FAQ

Q:AttributeError: module 'backend_interagg' has no attribute 'FigureCanvas'

Traceback (most recent call last):
  File "/media/yoyo/Ubuntu 18.0/cache/Make3D-2/make3d_demo2.py", line 9, in <module>
    plt.figure(figsize=(8, 6))
  File "/home/yoyo/miniconda3/envs/demo-tf/lib/python3.9/site-packages/matplotlib/pyplot.py", line 934, in figure
    manager = new_figure_manager(
  File "/home/yoyo/miniconda3/envs/demo-tf/lib/python3.9/site-packages/matplotlib/pyplot.py", line 464, in new_figure_manager
    _warn_if_gui_out_of_main_thread()
  File "/home/yoyo/miniconda3/envs/demo-tf/lib/python3.9/site-packages/matplotlib/pyplot.py", line 441, in _warn_if_gui_out_of_main_thread
    canvas_class = cast(type[FigureCanvasBase], _get_backend_mod().FigureCanvas)
  File "/home/yoyo/miniconda3/envs/demo-tf/lib/python3.9/site-packages/matplotlib/pyplot.py", line 280, in _get_backend_mod
    switch_backend(rcParams._get("backend"))  # type: ignore[attr-defined]
  File "/home/yoyo/miniconda3/envs/demo-tf/lib/python3.9/site-packages/matplotlib/pyplot.py", line 343, in switch_backend
    canvas_class = module.FigureCanvas
AttributeError: module 'backend_interagg' has no attribute 'FigureCanvas'
# 解决办法
matplotlib切换图形界面显示终端TkAgg

import matplotlib
matplotlib.use('TkAgg')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/596897.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Transformer全流程细致讲解

文章目录 1. Transformer 架构概述2. 编码器&#xff08;Encoder&#xff09;2.1 输入嵌入层&#xff08;Input Embedding Layer&#xff09;2.1.1 一个简单的示例 2.2 位置编码&#xff08;Positional Encoding&#xff09;2.2.1 Transformer中采用的位置编码方式2.2.2 公式中…

个人直播/流媒体服务解决方案实践

目录 1. 说明 1.1 拓扑结构图 2. 准备工作 2.1 软硬件清单 3. 步骤 3.1 按上面的软硬件清单准备好材料 3.2 内网检查测试 3.3 透传到公网服务器 3.5 机顶盒配置 4. 总结 5. 参考 6. 后语 1. 说明 - 在本地局域网建立流媒体服务&#xff0c;并发布到公网服务器供终…

【CTF Web】XCTF GFSJ0482 weak_auth Writeup(弱口令+密码爆破)

weak_auth 小宁写了一个登陆验证页面&#xff0c;随手就设了一个密码。 解法 随便输入一些字符&#xff0c;提示以 admin 登录。 使用 Burp 抓包。 导入密码字典。 进行爆破。 得到密码。 账号&#xff1a;admin 密码&#xff1a;123456取得 flag。 Flag cyberpeace{42c9664…

(论文阅读-多目标优化器)Multi-Objective Parametric Query Optimization

目录 摘要 一、简介 1.1 State-of-the-Art 1.2 贡献和大纲 二、定义 三、相关工作 四、问题分析 4.1 分析 4.2 算法设计影响 五、通用算法 5.1 算法概述 5.2 完备性证明 六、分段线性代价函数算法 6.1 数据结构 6.2 基本运算实现 6.3 复杂度分析 七、实验评估 …

数据库大作业——基于qt开发的图书管理系统(二) 相关表结构的设计

前言 在上一篇文章中。我们完成了Qt环境的安装&#xff0c;同时完成了有关项目需求的分析并绘制了整体的项目架构图&#xff0c;而在图书管理系统中&#xff0c;其实我们主要完成的就是对数据的增删改查&#xff0c;并将这些功能通过信号与槽机制和可视化界面绑定在一起&#…

【菜单下拉效果】基于jquery实现二级菜单下拉效果(附完整源码下载)

Js菜单下拉特效目录 &#x1f354;涉及知识&#x1f964;写在前面实现效果&#x1f367;一、涉及知识&#x1f333;二、具体实现2.1 搭建一级菜单2.2 搭建二级菜单项2.3 引入js文件2.4 构建CSS文件 &#x1f40b;三、源码获取&#x1f305; 作者寄语 &#x1f354;涉及知识 ht…

Xinstall实操指南:二维码推广,轻松追踪App安装效果!

在移动互联网时代&#xff0c;App的推广方式层出不穷&#xff0c;但二维码推广始终占据着重要的地位。作为国内专业的App全渠道统计服务商&#xff0c;Xinstall深知二维码推广的潜力与价值&#xff0c;并致力于通过创新的技术和服务&#xff0c;帮助广告主和开发者实现推广效果…

AtCoder Regular Contest 176(ARC176)A、B

题目&#xff1a;AtCoder Regular Contest 176 - tasks 官方题解&#xff1a;AtCoder Regular Contest 176 - editorial 参考&#xff1a;atcoder regular 176 (ARC176) A、B题解 A - 01 Matrix Again 题意 给一个nn的方格&#xff0c;给出m个坐标(x,y)m&#xff0c;在方格中…

opencv图像处理详细讲

传统的计算机视觉框架&#xff1a; SimpleCV BoofCV Dlib JavaCV 深度学习计算机视觉框架 Caffe Tensorflow Pytorch Paddlepaddle Keras 深度视觉计算机视觉框架 OpenVINO TensorRT onnxruntime Deepface YOLO/DarkNet mmdetection Paddle-detection/seg/ocr …

csrf攻击(跨站请求伪造)【2】

1.DVWA中csrf漏洞验证low &#xff08;1&#xff09;受害者将密码更改为password&#xff0c;显示更改成功 (2)受害者未退出登录状态&#xff0c;打开了新链接(黑客设计好的修改密码为admin123(原本为passwrod)的链接&#xff09;&#xff0c;导致受害者密码被更改&#xff0c…

测试环境搭建:JDK+Tomcat+Mysql+Redis

基础的测试环境搭建&#xff1a; LAMPLinux(CentOS、ubuntu、redhat)ApacheMysqlPHP LTMJLinux(CentOS、ubuntu、redhat)TomcatMysql(Oracle)RedisJava 真实的测试环境搭建&#xff1a;&#xff08;企业真实的运维&#xff09; 基于SpringBoot&#xff08;SpringCloud分布式微…

【从零开始学架构 前言】整体的学习路线

本文是《从零开始学架构》的第一篇学习笔记&#xff0c;在工作6年左右的这个时间点需要有一些先行的理论来指导即将面临的复杂实践&#xff0c;以便在真正面临复杂实践的时候能有所参照。 主要从以下几个方面和顺序来进行学习 架构基础&#xff1a;从架构设计的本质、历史背景…

网络模块-reactor模式

reactor其实没那么神秘 背景介绍实现一个单线程的reactor&#xff08;epoll&#xff09;单独事件结构体reactor总表reactor事件增删改 总结优点缺点使用到reactor的开源库 背景 高性能服务器的开发需要考虑到3点&#xff1a;I/O事件、定时事件、信号。 对于多并发的场景&#…

ROS机器人入门:机器人系统仿真【学习记录】——2

承接上一篇博客&#xff1a; ROS机器人入门&#xff1a;机器人系统仿真【学习记录】——1-CSDN博客 我们先前结束了&#xff08;上一篇博客中&#xff09;&#xff1a; 1. 概述 2. URDF集成Rviz基本流程 3. URDF语法详解 4. URDF优化_xacro 下面让我们继续学习ROS机器人…

基于ESP32和ESP8266的物联网开发过程(一)

给大家演示一个小工具&#xff0c;通过Wifi去连接ESP32或者ESP8266出来的一个热点。连接到这个热点之后&#xff0c;可以输密码&#xff0c;也可以不输密码。这里我设置的是不输密码直接进来&#xff0c;我这个是ESP8266。 进来之后直接点配置Wifi&#xff0c;然后可以看到ESP8…

tecplot 宏的使用方法及代码改写

我们在对流场数据进行批量提取时&#xff0c;不可避免的需要使用tecplot宏文件&#xff0c;因此&#xff0c;俺就研究了一下&#xff0c;主要针对的是批量切片-批量转换成dat文件-批量转换成excel的格式 以下贴出我的宏文件 1.批量切片 重点在于设置循环 2.批量dat转excel 大…

SPSS之聚类分析

SPSS中系统聚类分析功能在【分析】—【分类】—【系统聚类】中完成。系统聚类有两种类型&#xff0c;一种是对样本进行聚类&#xff0c;称为Q型聚类&#xff1b;一种是对变量进行聚类&#xff0c;称为R型聚类。在【系统聚类分析】—【聚类】框下选择【个案】——Q型聚类&#x…

优惠券样式案例

优惠券样式案例 <template><view class"box"><view class"boxItem"><img src"../../../static/come.png" alt"" class"img"/><span class"icon">&#xffe5;</span><s…

MySQL之查询 拿下 * 。*

DQL数据查询语言 对上述的的查询操作进行代码演示&#xff08;续上一篇学生表代码进行处理&#xff09; 下面是上一篇的代码分享 下面进行简单的查询操作 字符串如果强行进行算数运算默认只为0 查询时常用的单行函数列举 未完待续

电源管理芯片该如何测试?

电源管理芯片作为电子产品的重要组成部分&#xff0c;其性能测试必不可少。通过各项指标测试&#xff0c;评估电源管理芯片是否符合设计规范&#xff0c;及其稳定性和可靠性。 可通过检测以下指标参数来评估电源芯片的性能&#xff1a; 输入/出电压范围、输出纹波、电压调整率、…