Skip to content

Add Docker setup for reproducible installation - #17

Open
alsolex wants to merge 2 commits into
Kai-46:masterfrom
alsolex:add-docker-reproducible-env
Open

Add Docker setup for reproducible installation#17
alsolex wants to merge 2 commits into
Kai-46:masterfrom
alsolex:add-docker-reproducible-env

Conversation

@alsolex

@alsolex alsolex commented Jul 4, 2026

Copy link
Copy Markdown

Summary

This PR adds a reproducible Docker-based install path for SatelliteSfM alongside the existing conda-based setup.

The Docker image was built and validated end-to-end on an A100 server using a JAX068 scene subset.

Changes

  • Add a multi-stage Dockerfile.
  • Add .dockerignore to keep local data, outputs, caches, and Git metadata out of the build context.
  • Add pinned Python dependencies in requirements.txt.
  • Update the README with Docker install instructions while keeping the existing conda-based path.
  • Make preprocess_sfm/colmap_sfm_commands.py compatible with both the legacy bundled ColmapForVisSat and newer COLMAP builds:
    • Resolve COLMAP_BIN from an environment variable, the legacy path, then colmap on PATH.
    • Auto-detect the supported matcher max_error flag from colmap exhaustive_matcher --help:
      • SiftMatching.max_error for legacy COLMAP builds.
      • TwoViewGeometry.max_error for newer COLMAP builds.
    • Preserve the tuned RANSAC threshold instead of silently dropping or changing it across COLMAP versions.

Validation

  • Built on an x86 A100 server with CUDA_ARCHITECTURES=80.
  • Ran the full pipeline in Docker on a JAX068 dataset subset.
  • All views in the tested subset registered successfully.
  • Mean reprojection error was approximately 0.5px.
  • Verified compatibility with both legacy and newer COLMAP matcher flag names.

Related issues

Addresses the installation-related parts of #9, #10, #11, and #12.

Notes

The Docker path is additive. The existing conda-based install path is kept unchanged.

The shared code changes are intended to preserve compatibility with existing installs while allowing users to run SatelliteSfM with either the legacy bundled ColmapForVisSat or a newer COLMAP binary.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant