DJI Mini 4 Pro → 3DGS Pipeline

Dependencies & Installation

Everything required to run the Splat Factory pipeline — converting DJI Mini 4 Pro footage to 3D Gaussian Splats. Ordered by installation sequence. Run items marked Manual before anything else.

Pipeline Overview
inbox/DJI_0001.MP4
        │
        ▼  worker.py  (inbox watcher → atomic job claim)
        Creates queue/project_timestamp.job → moves to working/
        │
        ▼  STAGE 1: ffmpeg
        Decode MP4 (NVDEC if available, software fallback)
        Apply LUT (DJI D-Log → REC709)
        Extract at 2fps, scale 1920px, mild sharpen
        → local_temp/project/frames/ (~240 frames)
        │
        ▼  STAGE 2: COLMAP
        Feature extraction (SIFT GPU), Sequential/Exhaustive matching
        Sparse reconstruction → quality check (warns if <75% registered)
        Undistort → images/ + sparse/
        → local_temp/project/colmap/
        │
        ▼  STAGE 3: 3DGS Training
        GTX 1080 safe flags auto-applied (data_device cpu, 20k iters)
        gsplat (pip) or GraphDECO repo — whichever found
        → local_temp/project/splat/*.ply
        │
        ▼  Copy to NAS
        splat/ → projects/project_name/splat/
        done/project.job  +  .done_X checkpoint flags
    
01 System Requirements Manual
NVIDIA GPU
GTX 1080 min · 8GB VRAM
Required
CUDA-accelerated COLMAP feature extraction and 3DGS training. GTX 1080 safe mode auto-applied (data_device=cpu, 20k iterations).
CUDA Toolkit
11.8 (cu118)
Required
Must match your GPU driver. GTX 1080 → CUDA 11.8. Install before PyTorch.
Python 3.10+
3.10 or 3.11 recommended
Required
Runs all pipeline stages. Use 3.10/3.11 for best gsplat compatibility.
02 External Tools Manual — add to PATH
ffmpeg
6.x · NVDEC build
Required
Video decoding (NVDEC hardware acceleration), LUT application, frame extraction at 2fps, scaling, sharpening filter.
COLMAP
3.9+ · CUDA build
Required
Structure-from-Motion reconstruction. Extracts camera poses from frames. Use the CUDA build for GPU-accelerated feature extraction. Exhaustive matcher for ≤500 frames, sequential for longer sequences.
git
2.x
Optional
Required only if using GraphDECO gaussian-splatting repo instead of gsplat pip package. Not required when using gsplat from pip.
03 PyTorch Manual — install first
torch + torchvision
2.x · cu118 build
Required
CUDA-enabled PyTorch. Must match your CUDA version. GTX 1080 → cu118. Install manually before gsplat — do not let pip resolve it automatically.
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu118 COPY
04 Python Packages Auto-installed by run.py
gsplat
pip · preferred trainer
Required
Memory-efficient 3DGS trainer. Preferred over GraphDECO repo in 2026. Installs as a pip package with CUDA extensions compiled on install.
pip install gsplatCOPY
numpy
1.24+
Auto
Numerical arrays. Used by gsplat, COLMAP output parsing, and frame validation.
pip install numpyCOPY
Pillow
10.x
Auto
Image I/O for frame validation and sample generation.
pip install PillowCOPY
tqdm
4.x
Auto
Progress bars for long-running COLMAP and training stages.
pip install tqdmCOPY
watchdog
3.x
Auto
Cross-platform filesystem watcher for the inbox/ folder. Triggers job creation on new .MP4 files.
pip install watchdogCOPY
nvidia-ml-py
pynvml
Optional
VRAM monitoring during training. Falls back to nvidia-smi subprocess if not installed.
pip install pynvmlCOPY
05 NAS Folder Structure Manual — create before first run
Folder Layout
Create this structure on the ASUSTOR NAS share before starting any workers. Workers use os.replace() for atomic job claims — all dirs must pre-exist.
splat-factory/
  inbox/         # drop .MP4 files here
  queue/         # auto-created .job files
  working/       # jobs in progress
  done/          # completed jobs
  projects/      # output .ply + frame samples
  luts/          # DJI D-Log LUT files (.cube)
  tools/         # ffmpeg, colmap binaries
    windows/
    linux/
DJI D-Log LUT
.cube format
Optional
Place DJI D-Log to REC709 LUT file in luts/. If absent, pipeline skips colour grading (still works). DJI Official LUTs available from DJI support or third-party packages.
Copied to clipboard