Jmart7/SynthCam-1K
收藏Hugging Face2026-03-26 更新2026-03-29 收录
下载链接:
https://hf-mirror.com/datasets/Jmart7/SynthCam-1K
下载链接
链接失效反馈官方服务:
资源简介:
---
license: cc-by-nc-4.0
language:
- en
tags:
- synthetic
- 3d
- camera-pose
- nerf
- gaussian-splatting
- computer-vision
- depth-estimation
- pose-estimation
task_categories:
- image-to-3d
- depth-estimation
pretty_name: SynthCam 1K — Synthetic Camera Motion Dataset
size_categories:
- 10K<n<100K
---
# SynthCam 1K — Synthetic Camera Motion Dataset
A synthetic dataset of 3D scene renderings with full camera pose and intrinsics metadata,
designed for training and evaluating models in camera pose estimation, NeRF, and
3D Gaussian Splatting pipelines.
## What's inside
- **1 000 clips** × **30 frames** = **30 000 JPEG images** (640×360, 16:9)
- Per-frame **camera extrinsics** — position (x, y, z) and rotation (Euler angles)
- Per-frame **camera intrinsics** — focal length (fx, fy), principal point (cx, cy), FOV, aspect ratio
- **3 background variants** per clip — starfield, studio white, chroma green
- **MP4 video** per clip encoded at 30fps (libx264, CRF 20)
- Deterministic generation — every clip is fully reproducible from its `seed`
## Dataset structure
```
SynthCam-1K/
├── dataset.jsonl ← one record per frame (streamable, HF-ready)
├── dataset_info.json ← schema, stats, split info
├── README.md ← this file
├── clip_0000/
│ ├── metadata.json ← per-frame camera data for this clip
│ ├── video.mp4 ← 30fps clip
│ └── frames/
│ ├── frame_000.jpg
│ ├── frame_001.jpg
│ └── ...
├── clip_0001/
│ └── ...
└── ...
```
## JSONL record schema
Each line in `dataset.jsonl` is a self-contained JSON object:
```json
{
"clip_id": "clip_0042",
"frame_index": 14,
"image_path": "clip_0042/frames/frame_014.jpg",
"video_path": "clip_0042/video.mp4",
"seed": 42,
"speed": 0.73,
"camera_position": { "x": "8.1023", "y": "5.4211", "z": "-3.2901" },
"camera_rotation": { "x": "-0.4812", "y": "1.4327", "z": "0.0000" },
"intrinsics": {
"fov_deg": 60,
"aspect": 1.7778,
"near": 0.1,
"far": 1000,
"fx": 554.2563,
"fy": 554.2563,
"cx": 320.0,
"cy": 180.0,
"width": 640,
"height": 360
}
}
```
## Camera model
Standard **pinhole camera model**. The intrinsics matrix K is:
```
K = | fx 0 cx |
| 0 fy cy |
| 0 0 1 |
```
With `fx = fy = (width/2) / tan(fov/2)` — square pixels, no skew.
## How it was generated
Scenes are rendered in real-time using **React Three Fiber** (Three.js) inside a
headless Chromium instance (Puppeteer). The camera orbits the scene on a circular
path with added handheld noise. Each clip uses a unique integer seed that controls:
- Star field pattern
- Cube positions, scales, and material roughness
- Camera orbit speed
- Background type
Generation is fully deterministic — any clip can be reproduced exactly by re-running
the recorder with its seed.
**Scene contents:**
- 15 PBR metallic cubes arranged pseudo-randomly
- 20 000-particle volumetric cloud (custom GLSL shader)
- Directional light with shadow mapping
- HDRI city environment for reflections
## Intended use cases
- Camera pose estimation model training
- NeRF / 3D Gaussian Splatting pretraining and evaluation
- Synthetic-to-real transfer learning research
- Depth estimation (ground truth depth available on request)
- Visual odometry benchmarking
## Splits
| Split | Clips | Frames |
|------------|-----------|-----------|
| train | 900 | 27 000 |
| validation | 100 | 3 000 |
| **total** | **1 000** | **30 000**|
Splits are defined by clip index: clips `0000–0899` → train, `0900–0999` → validation.
## Loading with 🤗 Datasets
```python
from datasets import load_dataset
ds = load_dataset("Jmart7/SynthCam-1K", streaming=True)
for record in ds["train"]:
print(record["clip_id"], record["intrinsics"]["fx"])
```
## License
This dataset is released under [CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/).
Free for research and non-commercial use with attribution.
For commercial licensing, contact the author.
## Citation
```bibtex
@dataset{synthcam1k_2026,
title = {SynthCam 1K: Synthetic Camera Motion Dataset},
author = {Jmart7},
year = {2026},
publisher = {Hugging Face},
url = {https://huggingface.co/datasets/Jmart7/SynthCam-1K}
}
```
## 数据集元数据
- 许可协议:知识共享署名-非商业性使用4.0国际许可协议(CC BY-NC 4.0)
- 语言:英语
- 标签:合成数据集、三维、相机位姿、神经辐射场(NeRF)、三维高斯溅射(Gaussian Splatting)、计算机视觉、深度估计、位姿估计
- 任务类别:图像到三维(image-to-3d)、深度估计
- 数据集名称:SynthCam 1K — 合成相机运动数据集(Synthetic Camera Motion Dataset)
- 数据规模:10000 < 样本数 < 100000
# SynthCam 1K — 合成相机运动数据集(Synthetic Camera Motion Dataset)
本数据集为包含完整相机位姿与内参元数据的三维场景渲染合成数据集,专为相机位姿估计、神经辐射场(NeRF)以及三维高斯溅射(Gaussian Splatting)流程的模型训练与评估设计。
## 数据集内容
- **1000个片段** × **30帧** = **30000张JPEG图像**(分辨率640×360,宽高比16:9)
- 逐帧**相机外参**:位置(x, y, z)与旋转(欧拉角)
- 逐帧**相机内参**:焦距(fx, fy)、主点(cx, cy)、视场角(FOV)、宽高比
- 每个片段包含**3种背景变体**:星野、纯白影棚、绿幕
- 每个片段对应**MP4视频**,编码参数为30fps(libx264,恒定速率因子CRF 20)
- 生成过程具有确定性——所有片段均可通过其`seed`种子值完全复现
## 数据集目录结构
SynthCam-1K/
├── dataset.jsonl # 逐帧单条记录(流式格式,适配Hugging Face)
├── dataset_info.json # 数据集架构、统计信息与划分信息
├── README.md # 本文档
├── clip_0000/
│ ├── metadata.json # 该片段的逐帧相机参数数据
│ ├── video.mp4 # 30fps片段视频
│ └── frames/
│ ├── frame_000.jpg
│ ├── frame_001.jpg
│ └── ...
├── clip_0001/
│ └── ...
└── ...
## JSONL记录架构
`dataset.jsonl`中的每一行均为独立完整的JSON对象:
json
{
"clip_id": "clip_0042",
"frame_index": 14,
"image_path": "clip_0042/frames/frame_014.jpg",
"video_path": "clip_0042/video.mp4",
"seed": 42,
"speed": 0.73,
"camera_position": { "x": "8.1023", "y": "5.4211", "z": "-3.2901" },
"camera_rotation": { "x": "-0.4812", "y": "1.4327", "z": "0.0000" },
"intrinsics": {
"fov_deg": 60,
"aspect": 1.7778,
"near": 0.1,
"far": 1000,
"fx": 554.2563,
"fy": 554.2563,
"cx": 320.0,
"cy": 180.0,
"width": 640,
"height": 360
}
}
## 相机模型
采用标准**针孔相机模型**。内参矩阵K的形式为:
K = | fx 0 cx |
| 0 fy cy |
| 0 0 1 |
其中`fx = fy = (width/2) / tan(fov/2)`,代表方形像素、无倾斜的相机参数。
## 数据集生成方式
场景通过**React Three Fiber(Three.js)** 在无头Chromium实例(Puppeteer)中实时渲染生成。相机沿圆形轨道环绕场景,并添加手持抖动噪声。每个片段使用唯一的整数种子值控制以下参数:
- 星野图案
- 立方体的位置、缩放与材质粗糙度
- 相机环绕速度
- 背景类型
生成过程完全确定,仅需使用对应种子重新运行录制脚本即可复现任意片段。
**场景组成:**
- 15个基于伪随机分布排列的基于物理的渲染(PBR)金属立方体
- 20000个粒子的体积云(自定义GLSL着色器)
- 带阴影映射的方向光
- 用于环境反射的HDRI城市环境贴图
## 预期应用场景
- 相机位姿估计模型训练
- 神经辐射场(NeRF)/三维高斯溅射(Gaussian Splatting)的预训练与评估
- 合成数据到真实数据的迁移学习研究
- 深度估计(可按需获取真值深度数据)
- 视觉里程计基准测试
## 数据集划分
| 划分集 | 片段数 | 帧数 |
|------------|-----------|-----------|
| 训练集 | 900 | 27 000 |
| 验证集 | 100 | 3 000 |
| **总计** | **1 000** | **30 000**|
划分规则基于片段索引:片段`0000–0899`为训练集,`0900–0999`为验证集。
## 使用🤗 Datasets加载数据集
python
from datasets import load_dataset
ds = load_dataset("Jmart7/SynthCam-1K", streaming=True)
for record in ds["train"]:
print(record["clip_id"], record["intrinsics"]["fx"])
## 许可协议
本数据集采用[知识共享署名-非商业性使用4.0国际许可协议(CC BY-NC 4.0)](https://creativecommons.org/licenses/by-nc/4.0/)发布。可免费用于非商业性研究并需注明原作者出处。如需商业授权,请联系数据集作者。
## 引用格式
bibtex
@dataset{synthcam1k_2026,
title = {SynthCam 1K: Synthetic Camera Motion Dataset},
author = {Jmart7},
year = {2026},
publisher = {Hugging Face},
url = {https://huggingface.co/datasets/Jmart7/SynthCam-1K}
}
提供机构:
Jmart7



