limap.cli package

Command line entry points, each run with python -m limap.cli.<name>. A CLI module parses its arguments together with the YAML configuration under cfgs/ (see limap.util.config.load_config()), converts them into the Options dataclass of the corresponding runner and calls it. They are thin by design: the pipelines themselves live in limap.runners package.

Triangulation from a COLMAP model

Complete pipelines that run the frontend and the triangulation in one go, on a scene whose camera poses are already known.

Points and lines

Runner for point-line triangulation from COLMAP.

This is similar to automatic_structure_triangulation.py but with groups disabled. It only triangulates points and lines, skipping group (plane) detection and triangulation.

Usage:

python -m limap.cli.automatic_point_line_triangulation \
    -m <path_to_colmap_model> \
    -i <path_to_images> \
    -o <output_directory> \
    -c cfgs/structure_triangulation/default.yaml
limap.cli.automatic_point_line_triangulation.main()
limap.cli.automatic_point_line_triangulation.run_point_line_triangulation_from_colmap(cfg, model_path, image_path)

Points, lines, groups and wireframe

Runner for structure triangulation from COLMAP.

Triangulates 3D points, lines, and groups (planes) from a COLMAP model. Runs the full pipeline: frontend (detection + matching), point triangulation, line/group triangulation, and optional bundle adjustment.

Usage:

python -m limap.cli.automatic_structure_triangulation \
    -m <path_to_colmap_model> \
    -i <path_to_images> \
    -o <output_directory> \
    -c cfgs/structure_triangulation/default.yaml
limap.cli.automatic_structure_triangulation.main()
limap.cli.automatic_structure_triangulation.run_structure_triangulation_from_colmap(cfg, model_path, image_path)

Frontend

Detection, description and matching alone, writing the two databases that the triangulation modules below consume.

Runner for structure frontend (detection + matching).

This runner takes a COLMAP model and images, runs line/point detection and matching, and outputs:

  • database.db: COLMAP database with point features and matches

  • structure_database.db: Structure database with line features and matches

Usage:

python -m limap.cli.structure_frontend \
    --image_dir <path_to_images> \
    --model_path <path_to_colmap_model> \
    --output_dir <output_directory>

The output can then be used with global_line_triangulation.py or incremental_line_triangulation.py.

limap.cli.structure_frontend.main()

Triangulation from a structure database

The second half of the automatic pipelines, taking the frontend output instead of computing it.

Global line triangulation

Runner for global line triangulation.

This runner runs global line triangulation using a pre-computed structure database and COLMAP model.

Usage:

python -m limap.cli.global_line_triangulation \
    --structure_db_path <path_to_structure_database.db> \
    --model_path <path_to_colmap_model> \
    --output_dir <output_directory>
limap.cli.global_line_triangulation.main()
limap.cli.global_line_triangulation.run_global_line_triangulation(structure_db_path: Path, model_path: Path, output_dir: Path, cfg: dict)

Run global line triangulation using pre-computed databases.

Parameters:
  • structure_db_path – Path to structure_database.db

  • model_path – Path to COLMAP model directory

  • output_dir – Output directory for results

  • cfg – Configuration dictionary with triangulation options

Global structure triangulation

Runner for global structure triangulation.

This runner runs global structure triangulation (lines + groups) using a pre-computed structure database and COLMAP model.

Usage:

python -m limap.cli.global_structure_triangulation \
    --structure_db_path <path_to_structure_database.db> \
    --model_path <path_to_colmap_model> \
    --output_dir <output_directory>
limap.cli.global_structure_triangulation.main()
limap.cli.global_structure_triangulation.run_global_structure_triangulation(structure_db_path: Path, model_path: Path, output_dir: Path, cfg: dict)

Run global structure triangulation using pre-computed databases.

Parameters:
  • structure_db_path – Path to structure_database.db

  • model_path – Path to COLMAP model directory

  • output_dir – Output directory for results

  • cfg – Configuration dictionary with triangulation options

Incremental line triangulation

Runner for incremental line triangulation.

This runner simulates incremental reconstruction by processing images one at a time, triangulating lines after each “registration”. It requires a pre-computed structure database (from a previous structure_triangulation run).

Usage:

python -m limap.cli.incremental_line_triangulation \
    --structure_db_path <path_to_structure_database.db> \
    --model_path <path_to_colmap_model> \
    --output_dir <output_directory>
limap.cli.incremental_line_triangulation.main()
limap.cli.incremental_line_triangulation.run_incremental_line_triangulation(structure_db_path: Path, model_path: Path, output_dir: Path, cfg: dict)

Run incremental line triangulation using pre-computed databases.

This simulates incremental SfM by: 1. Loading the structure database (with detections and matches) 2. Processing images one at a time in order 3. Triangulating lines incrementally as each image is “registered”

Parameters:
  • structure_db_path – Path to structure_database.db

  • model_path – Path to COLMAP model directory

  • output_dir – Output directory for results

  • cfg – Configuration dictionary with triangulation options

Incremental structure triangulation

Runner for incremental structure triangulation.

This runner runs incremental structure triangulation (points, lines, groups) using pre-computed databases. It requires a pre-computed structure database and a COLMAP database with point correspondences.

Usage:

python -m limap.cli.incremental_structure_triangulation \
    --structure_db_path <path_to_structure_database.db> \
    --db_path <path_to_colmap_database.db> \
    --model_path <path_to_colmap_model> \
    --output_dir <output_directory>
limap.cli.incremental_structure_triangulation.main()
limap.cli.incremental_structure_triangulation.run_incremental_structure_triangulation(structure_db_path: Path, db_path: Path, model_path: Path, output_dir: Path, cfg: dict)

Run incremental structure triangulation using pre-computed databases.

Parameters:
  • structure_db_path – Path to structure_database.db

  • db_path – Path to COLMAP database.db (for point correspondences)

  • model_path – Path to COLMAP model directory

  • output_dir – Output directory for results

  • cfg – Configuration dictionary with triangulation options

Incremental SfM

Run structure-aware incremental SfM.

This pipeline performs full incremental SfM with hybrid point+line registration, structure triangulation (points, lines, groups), and structure BA.

Usage:

python -m limap.cli.structure_incremental_sfm \
    --db_path <path_to_colmap_database.db> \
    --structure_db_path <path_to_structure_database.db> \
    --image_path <path_to_images> \
    --output_dir <output_directory>
limap.cli.structure_incremental_sfm.main()
limap.cli.structure_incremental_sfm.run_structure_incremental_sfm(db_path: Path, structure_db_path: Path, image_path: Path, output_dir: Path, cfg: dict)

Run structure-aware incremental SfM.

Parameters:
  • db_path – Path to COLMAP database.db

  • structure_db_path – Path to structure_database.db

  • image_path – Path to image directory

  • output_dir – Output directory for results

  • cfg – Configuration dictionary