Skip to content

dropchop/WSLColmapMaster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

4-Camera 4D-GS Capture Pipeline

End-to-end data pipeline for replicating the 4C4D capture protocol (Zhou et al., CVPR 2026, arXiv:2604.04063): from four GoPro HERO 12 SD cards to a training-ready dataset for the 4C4D codebase.

See RUNBOOK.md for the full procedure. This README is just a quickstart.

Layout

4cam_pipeline/
├── RUNBOOK.md                # ⬅ full design document, capture protocol, troubleshooting
├── README.md                 # this file
├── config/
│   └── pipeline.yaml         # single source of truth for paths and params
└── scripts/
    ├── _utils.py             # shared helpers
    ├── 00_check_env.py       # verify external deps
    ├── 01_ingest.py          # SD-card dump → concat takes → manifest
    ├── 02_sync.py            # audio cross-correlation for inter-cam alignment
    ├── 03_extract_frames.py  # ffmpeg → cam{XX}_{YYYY}.png
    ├── 04_colmap_solve.py    # COLMAP poses (reference-stills technique)
    ├── 05_mast3r_points.sh   # MAtCha/MASt3R dense point cloud (bash; conda env switch)
    ├── 06_pack_dataset.py    # final layout + manifest
    └── 07_validate_dataset.py # pre-training sanity checks

Prerequisites

External tools on the workstation that processes the footage:

  • Python 3.10+
  • ffmpeg (with libx265)
  • colmap (GPU build strongly recommended)
  • A conda env named per config/pipeline.yaml: matcha (for the MAtCha/MASt3R wrapper)
  • The 4C4D repo cloned somewhere (for the training side; this pipeline only produces data for it)
  • The MAtCha repo cloned at the path set in config/pipeline.yaml::matcha_repo

Python deps for this pipeline's own scripts:

pip install numpy scipy pyyaml pillow tqdm

Quickstart

  1. Edit config/pipeline.yaml for your scene (paths, scene name, capture parameters).
  2. Copy SD card contents into raw_inputs/cam00/, raw_inputs/cam01/, etc.
  3. Drop reference stills (the 8 roving photos plus the 4 in-position stills per §4.2 of the runbook) into reference_stills/.
  4. Run stages in order:
    python scripts/00_check_env.py
    python scripts/01_ingest.py
    python scripts/02_sync.py
    python scripts/03_extract_frames.py
    python scripts/04_colmap_solve.py
    bash   scripts/05_mast3r_points.sh
    python scripts/06_pack_dataset.py
    python scripts/07_validate_dataset.py
    
  5. If 07 passes, the dataset is at output_dataset/<dataset_name>/<scene_name>/ and is ready for 4C4D/train.py.

Honest disclosure

This pipeline was authored without access to a real 4-GoPro capture or to a working MAtCha install. The stages that interact with external tools (especially stage 5) reflect my best reading of the 4C4D paper, repo README, and standard practice — they have not been end-to-end tested. Treat the scripts as a starting framework: expect to iterate on COLMAP camera-model choice, MAtCha input layout, and similar dataset-specific details. Inferred decisions are flagged inline in code comments and in RUNBOOK.md §9 (Known Gaps).

About

No description, website, or topics provided.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors