Models

Glue Factory models are typically built using the TwoViewPipeline meta-architecture.

TwoViewPipeline

This pipeline decomposes the matching process into modular components:

  1. Extractor: Detects keypoints and extracts descriptors (e.g., SuperPoint, SIFT).
  2. Matcher: estimates correspondences between features (e.g., LightGlue, SuperGlue, NearestNeighbor).
  3. Filter: (Optional) Filters outlier matches.
  4. Solver: (Optional) Estimates geometry (Homography, Pose).
  5. Ground Truth: Generates ground truth labels for training supervision.

Available Extractors

  • extractors.superpoint_open: Open-source re-implementation of SuperPoint.
  • gluefactory_nonfree.superpoint: Wrapper for the original SuperPoint weights.
  • extractors.sift: SIFT (OpenCV or PyCOLMAP backend).
  • extractors.aliked: ALIKED local features.
  • extractors.disk_kornia: DISK features.
  • lines.wireframe: Pipeline for line extraction (combining points and lines).

Available Matchers

  • matchers.lightglue: The LightGlue model (trainable).
  • matchers.lightglue_pretrained: Wrapper for official pre-trained LightGlue.
  • gluefactory_nonfree.superglue: Original SuperGlue.
  • matchers.nearest_neighbor_matcher: Simple NN matching with mutual check.
  • matchers.gluestick: Joint point and line matching.
  • matchers.roma: RoMA dense matching.

Configuration Example

To combine ALIKED with Nearest Neighbor matching:

model:
    name: two_view_pipeline
    extractor:
        name: extractors.aliked
        max_num_keypoints: 2048
    matcher:
        name: matchers.nearest_neighbor_matcher