Blender 数据集格式介绍

Blender 数据集(NeRF 原论文用的合成数据集)内容很规范,基本每个场景的结构都是一样的。

下面我帮你详细拆一下 包含的场景、文件结构和说明


1. 数据集包含的场景

Blender 数据集通常包含 8 个合成场景,每个场景是 Blender 渲染的 360° 环绕视图,物体静止,相机围绕中心拍摄:

  1. chair --- 椅子

  2. drums --- 架子鼓

  3. ficus --- 无花果盆栽

  4. hotdog --- 热狗

  5. lego --- 乐高机械臂

  6. materials --- 一组材质球

  7. mic --- 麦克风

  8. ship --- 船模

这些数据是 NeRF 论文作者用 Blender 渲染的,分辨率 800×800 像素,完全无噪声(路径追踪渲染)。


2. 每个场景的文件结构

chair 场景为例,目录结构如下:

复制代码
chair/
├── train/                  # 训练集图像
│   ├── r_0.png
│   ├── r_1.png
│   ├── ...
│   └── r_N.png
├── val/                    # 验证集图像
│   ├── r_100.png
│   ├── ...
├── test/                   # 测试集图像
│   ├── r_200.png
│   ├── ...
├── transforms_train.json   # 训练集相机参数(外参+内参)
├── transforms_val.json     # 验证集相机参数
├── transforms_test.json    # 测试集相机参数
└── README.txt              # 简要说明(有些版本可能没有)

3. JSON 文件内容结构

transforms_train.json 为例,主要包含:

复制代码
{
    "camera_angle_x": 0.6911112070083618,  // 相机水平视角(弧度)
    "frames": [
        {
            "file_path": "./train/r_0",     // 对应图像路径(不带 .png)
            "rotation": 0.012566370614359171, // 相机在球面上相邻视角的旋转间隔
            "transform_matrix": [          // 相机外参(4×4 矩阵,世界坐标到相机坐标)
                [1, 0, 0, 0.0],
                [0, 1, 0, -0.5],
                [0, 0, 1, 4.0],
                [0, 0, 0, 1]
            ]
        },
        ...
    ]
}

4. 文件数量与大小

  • 每个场景通常:

    • 训练集:100 张图片

    • 验证集:50 张图片

    • 测试集:50 张图片

  • 图片格式:PNG(无压缩损失)

  • 单个场景大小:约 200~300 MB

  • 整个 Blender 数据集:约 2~3 GB


5.Blender 数据集结构

复制代码
Blender_Dataset/
├── chair/
│   ├── train/                  # 训练集图像
│   │   ├── r_0.png
│   │   ├── r_1.png
│   │   └── ...                 
│   ├── val/                    # 验证集图像
│   │   ├── r_100.png
│   │   └── ...
│   ├── test/                   # 测试集图像
│   │   ├── r_200.png
│   │   └── ...
│   ├── transforms_train.json   # 相机参数 - 训练集
│   ├── transforms_val.json     # 相机参数 - 验证集
│   ├── transforms_test.json    # 相机参数 - 测试集
│   └── README.txt
│
├── drums/
│   ├── train/
│   ├── val/
│   ├── test/
│   ├── transforms_train.json
│   ├── transforms_val.json
│   ├── transforms_test.json
│   └── README.txt
│
├── ficus/
│   └── (同上结构)
│
├── hotdog/
│   └── (同上结构)
│
├── lego/
│   └── (同上结构)
│
├── materials/
│   └── (同上结构)
│
├── mic/
│   └── (同上结构)
│
└── ship/
    └── (同上结构)

📌 重点:

  • train / val / test 文件夹分别存放对应数据集的图像。

  • transforms_*.json 存放相机的外参和内参。

  • 每个场景目录完全独立,可以单独用于训练或测试。

如果你下载的 Blender 数据集结构不是这样,说明文件不完整或者路径解压错了。