SHA256
Rewrote the readme to clearyfy the wibecoded nature of this script and
made it more concise. Fixed licencing. Added a wiki.
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
# Usage
|
||||
|
||||
One binary, `pipeline_360`. Invoked with a **subcommand** it runs the CLI; with
|
||||
**no subcommand** (or `--gui`) it launches the native GUI (requires the `gui`
|
||||
feature).
|
||||
|
||||
## `all` — full pipeline
|
||||
|
||||
Runs extract → cubemap → masks → rig on one GPU device:
|
||||
|
||||
```bash
|
||||
pipeline_360 all --project-dir out --video v1.mp4 [v2.mp4 …] \
|
||||
--mask-model yolo11x-seg.onnx --mask-device rocm --mask-imgsz 1280 \
|
||||
--extract-chunk-size 30 --cubemap-face-size 1600 --rig-ref-face F
|
||||
```
|
||||
|
||||
- Multi-video: each source is prefixed with its filename stem in `01_frames`.
|
||||
- `--start-stage extract|cubemap|masks|rig` — resume from a later stage.
|
||||
- `--skip-masks` — skip the masks stage entirely.
|
||||
|
||||
## Individual stages
|
||||
|
||||
```bash
|
||||
# Extract sharpest frames (GPU sharpness + quality filtering)
|
||||
pipeline_360 extract --video v1.mp4 [v2.mp4 …] --output-dir out/01_frames \
|
||||
--min-sharpness 0 --min-exposure 0 --max-exposure 255 \
|
||||
--min-contrast 0 --min-motion 0 --max-motion 1e12 \
|
||||
--selection chunk|spread --target-count 0 --min-gap 0 \
|
||||
--bad-frame-action keep|skip|warn
|
||||
|
||||
# Cubemap projection (equirect → 6 cube faces, GPU)
|
||||
pipeline_360 cubemap --frames-dir 01_frames --output-frames-dir 03_cubemap/images \
|
||||
--face-size 1600 --skip-faces "U,D" --resume --jpeg-quality 95
|
||||
|
||||
# Masks on the cube-face images (GPU via --mask-device rocm)
|
||||
pipeline_360 masks --input-dir 03_cubemap/images --output-dir 03_cubemap/masks \
|
||||
--mask-model yolo11x-seg.onnx --mask-device rocm --mask-imgsz 1280 \
|
||||
--mask-classes person,car,bus,truck,bicycle,motorcycle \
|
||||
--mask-conf 0.35 --mask-dilate 6 --mask-skip-faces "" --mask-empty-if-none
|
||||
|
||||
# Rig config + nested COLMAP tree
|
||||
pipeline_360 rig --images-dir 03_cubemap/images --masks-dir 03_cubemap/masks \
|
||||
--output rig_config.json --link-tree 04_colmap/images \
|
||||
--masks-link-tree 04_colmap/masks --face-size 1600 --link-mode symlink
|
||||
```
|
||||
|
||||
## GUI
|
||||
|
||||
The native egui+wgpu GUI is in the same binary:
|
||||
|
||||
```bash
|
||||
cargo build --features gui
|
||||
./target/debug/pipeline_360 # no subcommand → GUI
|
||||
./target/debug/pipeline_360 --gui # explicit
|
||||
```
|
||||
|
||||
The GUI shells out to the CLI subprocess (the same binary) with
|
||||
`--gui-log-output` and streams progress into a live log panel. It exposes every
|
||||
stage's options as forms.
|
||||
|
||||
> `--mask-projection` and `--mask-face-size` are accepted for back-compat but
|
||||
> are no-ops: masks always run on cube-face images.
|
||||
Reference in New Issue
Block a user