Blender 数据集格式介绍
Blender 数据集(NeRF 原论文用的合成数据集)内容很规范,基本每个场景的结构都是一样的。
下面我帮你详细拆一下 包含的场景、文件结构和说明:
1. 数据集包含的场景
Blender 数据集通常包含 8 个合成场景,每个场景是 Blender 渲染的 360° 环绕视图,物体静止,相机围绕中心拍摄:
chair
— 椅子drums
— 架子鼓ficus
— 无花果盆栽hotdog
— 热狗lego
— 乐高机械臂materials
— 一组材质球mic
— 麦克风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 数据集结构不是这样,说明文件不完整或者路径解压错了。