OpenRooms 数据集使用教程

1. 项目目录结构及介绍

OpenRooms 数据集的目录结构如下所示:

OpenRooms/
├── data/
│   ├── rendering/
│   │   ├── data/
│   │   │   ├── Image/
│   │   │   ├── Material/
│   │   │   ├── Geometry/
│   │   │   ├── Mask/
│   │   │   ├── SVLighting/
│   │   │   ├── SVSG/
│   │   │   ├── Shading/
│   │   │   ├── SVLightingDirect/
│   │   │   └── ShadingDirect/
│   │   └── train.txt
│   │   └── test.txt
├── LICENSE.md
├── README.md
└── .gitmodules
  • data/:包含渲染数据和地面真实数据。

    • rendering/:包含所有渲染的图像和对应的地面真实数据。
    • Image/:包含HDR格式的渲染图像。
    • Material/:包含漫反射反照率图和粗糙度图。
    • Geometry/:包含法线图和深度图。
    • Mask/:包含光源遮罩图。
    • SVLighting/:包含每个像素的环境图。
    • SVSG/:包含空间变化的球形高斯参数。
    • Shading/:包含漫反射阴影图。
    • SVLightingDirect/:包含仅包含直射照明的环境图。
    • ShadingDirect/:包含直射阴影图。
    • train.txttest.txt:包含训练和测试场景的列表。
  • LICENSE.md:项目的许可证信息。

  • README.md:项目的介绍和说明。

  • .gitmodules:定义子模块的信息。

2. 项目的启动文件介绍

OpenRooms 数据集没有特定的启动文件,因为它是数据集而不是一个可执行的项目。使用这个数据集通常涉及到加载和读取数据文件夹中的文件。你可以根据具体的使用场景(例如:图像处理、机器学习训练等)来编写代码以加载这些数据。

3. 项目的配置文件介绍

OpenRooms 数据集同样没有配置文件。数据集的使用通常不需要配置,因为你只需要按照项目结构访问相应的数据文件即可。如果你需要编写代码来加载这些数据,你可能需要根据你的项目需求来创建配置文件,例如指定数据集的路径、图像的大小、数据格式等信息。

在实际使用中,你可能需要以下代码片段来加载不同的数据类型:

import cv2
import numpy as np
import struct

# 加载HDR图像
image_path = 'data/rendering/data/Image/im_1.hdr'
image = cv2.imread(image_path, -1)[:, :, ::-1]

# 加载漫反射反照率图
material_path = 'data/rendering/data/Material/imbaseColor_1.png'
material = cv2.imread(material_path)

# 加载深度图
depth_path = 'data/rendering/data/Geometry/imdepth_1.dat'
with open(depth_path, 'rb') as fIn:
    hBuffer = fIn.read(4)
    height = struct.unpack('i', hBuffer)[0]
    wBuffer = fIn.read(4)
    width = struct.unpack('i', wBuffer)[0]
    dBuffer = fIn.read(4 * width * height)
    depth = np.array(struct.unpack('f' * height * width, dBuffer), dtype=np.float32)
    depth = depth.reshape(height, width)

请根据实际的数据路径和文件名来调整上述代码。

Logo

立足具身智能前沿赛道,致力于搭建全球化、开源化、全栈式技术交流与实践共创平台。

更多推荐