five

Yuheng02/OmniRoam-InteriorGS-Path

收藏
Hugging Face2026-01-30 更新2026-04-12 收录
下载链接:
https://hf-mirror.com/datasets/Yuheng02/OmniRoam-InteriorGS-Path
下载链接
链接失效反馈
官方服务:
资源简介:
--- {} --- # OmniRoam - InteriorGS Rendering Pipeline A batch rendering tool for rendering panoramic videos from 3D Gaussian Splatting (3DGS) datasets using Blender. ## Prerequisites ### System Requirements - **Linux** (tested on Ubuntu 20.04+) - **GPU** with CUDA support (recommended for faster rendering) - **Python 3.11** (included with Blender 4.5.6) - **Node.js >= 18.0.0** - **FFmpeg** ### Required Software 1. **Blender 4.5.6** (Linux x64) 2. **Gaussian Splatting Blender Addon** 3. **splat-transform** (npm package for PLY decompression) 4. **Python packages**: tqdm, scipy, huggingface_hub ## Installation ### Step 1: Install Blender 4.5.6 ```bash wget https://www.blender.org/download/release/Blender4.5/blender-4.5.6-linux-x64.tar.xz tar -xf blender-4.5.6-linux-x64.tar.xz ``` This will create a `blender-4.5.6-linux-x64` directory containing Blender. ### Step 2: Install Gaussian Splatting Blender Addon ```bash git clone git@github.com:ReshotAI/gaussian-splatting-blender-addon.git cd gaussian-splatting-blender-addon ./zip.sh ``` This creates `blender-addon.zip` in the addon directory. Move the addon to your project root: ```bash cd .. mkdir -p gaussian-splatting-blender-addon cp gaussian-splatting-blender-addon/blender-addon.zip gaussian-splatting-blender-addon/ ``` ### Step 3: Install Python Dependencies The script will automatically install required Python packages (tqdm, scipy) to Blender's Python environment on first run. To manually install: ```bash ./blender-4.5.6-linux-x64/4.5/python/bin/python3.11 -m pip install tqdm scipy huggingface_hub ``` ### Step 4: Install Node.js and splat-transform The script will attempt to install Node.js via nvm if not present. To manually install: ```bash curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash source ~/.bashrc nvm install 20 nvm use 20 npm install -g @playcanvas/splat-transform ``` ### Step 5: Project Structure Ensure your project directory has this structure: ``` your-project/ ├── blender-4.5.6-linux-x64/ │ └── blender ├── gaussian-splatting-blender-addon/ │ └── blender-addon.zip ├── render.py ├── run_simple.sh ├── valid_datasets.txt ├── datasets/ (will be created automatically) └── output/ (will be created automatically) ``` ## Dataset Download The dataset files come from **two separate Hugging Face repositories** and require manual setup. ### Dataset Sources 1. **3D Gaussian Splatting (3DGS) Files**: - Repository: `spatialverse/InteriorGS` (private, requires HF token) - File: `3dgs_compressed.ply` (will auto-download and decompress) 2. **Camera Path Files**: - Repository: `Yuheng02/OmniRoam-InteriorGS-Path` - File: `path_3.zip` (requires manual download and extraction) ### Setup Instructions #### Step 1: Configure Hugging Face Token The InteriorGS dataset is private. You need to: 1. Get your Hugging Face token from https://huggingface.co/settings/tokens 2. Edit `render.py` and set your token: ```python HF_TOKEN = "hf_xxxxxxxxxxxxxxxxxxxxx" # Your token here ``` Or provide it via command line: ```bash ./blender-4.5.6-linux-x64/blender --background --python render.py -- \ --dataset-file valid_datasets.txt \ --hf-token hf_xxxxxxxxxxxxxxxxxxxxx ``` #### Step 2: Download Camera Path Files The camera trajectories must be downloaded manually: 1. **Download from Hugging Face**: ```bash # Visit: https://huggingface.co/datasets/Yuheng02/OmniRoam-InteriorGS-Path # Download path_3.zip wget https://huggingface.co/datasets/Yuheng02/OmniRoam-InteriorGS-Path/resolve/main/path_3.zip ``` 2. **Extract to datasets directory**: ```bash unzip path_3.zip -d datasets/ ``` This will create `datasets/<dataset_id>/path.json` for each dataset. ## Usage ### Run Rendering #### Single Process Mode Process all datasets sequentially: ```bash ./blender-4.5.6-linux-x64/blender --background --python render.py -- --dataset-file valid_datasets.txt ``` #### Multi-Process Parallel Mode Process multiple splits in parallel using the shell script: ```bash ./run_simple.sh 1 2 3 4 5 200 ``` This command: - Processes splits 1, 2, 3, 4, 5 (out of 200 total splits) - Uses 5 parallel processes - Each process handles its assigned subset of datasets #### Manual Python Command For more control, use the Python script directly: ```bash ./blender-4.5.6-linux-x64/blender --background --python render_clean.py -- \ --dataset-file valid_datasets.txt \ --split 1 2 3 \ --total-split 200 ``` ### Command Line Options ``` --datasets ID1 ID2 ... Dataset ID list (space separated) --dataset-file FILE Text file with dataset IDs (one per line) --base-path PATH Local dataset cache path (default: datasets) --output-dir PATH Output directory (default: output) --target-frames N Target video frame count (default: 800) --hf-token TOKEN Hugging Face token (for private repos) --split N1 N2 ... Split numbers to process --total-split N Total number of splits --dry-run Validate datasets only, don't render --help, -h Show help message ``` ## Output For each dataset, the rendering pipeline produces: ``` output/<dataset_id>/ ├── pano_camera0/ │ ├── frame_0001.png (PNG image sequence) │ ├── frame_0002.png │ ├── ... │ └── frame_0800.png ├── video.mp4 (Compiled video, 30fps) └── transforms.json (Camera positions and transformations) ``` ### Output Files 1. **PNG Sequence** (`pano_camera0/frame_*.png`) - Format: PNG, RGB, 8-bit - Resolution: 1920x960 (configurable) - Compression level: 15 - Count: 800 frames (default) 2. **Video** (`video.mp4`) - Codec: H.264 (libx264) with CRF 18 - Fallback: libopenh264 or mpeg4 - Frame rate: 30 fps - Pixel format: yuv420p 3. **Camera Data** (`transforms.json`) - Camera-to-world transformation matrices (4x4) - Camera positions (world coordinates) - Camera rotations (Euler angles) - Format: OpenCV/Nerfstudio compatible ### transforms.json Structure ```json { "coordinate_convention": "OpenCV: x_cam = R * X_world + t (Rcw/tcw)", "twc_convention": "Nerfstudio: X_world -> cam with inverse(Twc); stored transform_matrix = Twc (cam-to-world)", "dataset_id": "0001_839920", "num_images": 800, "per_image": { "pano_camera0/frame_0001.png": { "transform_matrix": [[...], [...], [...], [...]], "location": [x, y, z], "rotation": [rx, ry, rz], "frame": 1 }, ... } } ``` ## Configuration Edit these variables in `render.py` for customization: ```python dataset_base_path = "datasets" # Local dataset cache output_base_dir = "output" # Output directory target_frames = 800 # Video length fps = 30 # Frame rate target_speed = 0.02 # Camera movement speed (m/frame) ``` Render settings (resolution, samples, etc.) can be modified in `setup_render_settings()`. ## Acknowledgments - [Blender Foundation](https://www.blender.org/) - [ReshotAI Gaussian Splatting Addon](https://github.com/ReshotAI/gaussian-splatting-blender-addon) - [PlayCanvas splat-transform](https://github.com/playcanvas/splat-transform) - [InteriorGS Dataset](https://huggingface.co/datasets/spatialverse/InteriorGS) - [OmniRoam-InteriorGS-Path](https://huggingface.co/datasets/Yuheng02/OmniRoam-InteriorGS-Path) ## License The codebase is released under the Adobe Research License for noncommercial research purposes only.
提供机构:
Yuheng02
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作