Skip to content

A1 Stitcher v0.2.0 — seams, color and rolling shutter

Pre-release
Pre-release

Choose a tag to compare

@Oceanswave Oceanswave released this 12 Sep 16:38
b21f959

This release improves visible lens seams and fast-turn geometry in original A1 footage.

  • Cleaner seam detail: bidirectional overlap flow, confidence/texture/displacement checks, and a narrower detail transition reduce doubled branches and vehicle edges. Output pixels still come directly from the original lens tracks.
  • Local lens color matching: bounded, spatially smoothed color ratios reduce brighter mismatches without spreading haze into the cleaner lens. Balance adapts gradually through a sequence.
  • Native-row rolling-shutter correction: embedded sensor readout timing and recorded angular motion correct different capture times across each lens image. At two held-out frames around a rapid turn, P90 angular mismatch fell from 0.546° to 0.218° and 1.160° to 0.316°.

Defaults are --seam flow --rolling-shutter auto. For comparison or difficult footage, retain the original path with --seam feather --rolling-shutter off. Options are included in recipe/cache identity and receipts. The agent skill and README describe the new behavior.

Validation: 117 tests passed, 88% coverage, with all macOS/Linux CI jobs passing in PR #1. Tests include known synthetic disparity and rolling-shutter scenes, invalid/nonfinite flow and readout guards, metadata, process cleanup and complete conversions. An installed release wheel outside the checkout rendered original A1 footage at 4096×2048 with both corrections and passed full decode, color and spherical metadata checks.

Read quality evidence and limits. This remains an alpha for a tested A1 unit: severe occlusion, camera/propeller removal, high-frequency vibration, motion blur and broader unit/profile coverage remain. The new quality path costs additional CPU time; it is not real-time processing. Current output is 8-bit SDR BT.709.

The implementation is independent. No Studio binaries, code, model weights, private footage or per-camera profiles are distributed. Python 3.12+ and a separately installed FFmpeg/ffprobe are required. Downloadable wheel/source packages and SHA-256 checksums are attached.