1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
|
.. _features:
Feature Extraction and Matching
===============================
COLMAP supports multiple feature extraction and matching algorithms. This page
describes how to switch between them using the command-line interface or the
graphical user interface.
Feature Extractor Types
-----------------------
The following feature extractor types are available:
- ``SIFT``: Scale-Invariant Feature Transform (default). The classic and most
widely tested feature extractor. Produces 128-dimensional uint8 descriptors.
- ``ALIKED``: A Lighter Keypoint and Descriptor Extractor. A learned feature
extractor that produces floating-point descriptors. Requires ONNX support to
be enabled at build time (``-DONNX_ENABLED=ON``).
To select a feature extractor type via the command-line::
$ colmap feature_extractor \
--database_path $DATASET_PATH/database.db \
--image_path $DATASET_PATH/images \
--FeatureExtraction.type ALIKED_N16ROT \
--AlikedExtraction.max_num_features 2048
For SIFT (the default), you can omit the type or explicitly set it::
$ colmap feature_extractor \
--database_path $DATASET_PATH/database.db \
--image_path $DATASET_PATH/images \
--FeatureExtraction.type SIFT \
--SiftExtraction.max_num_features 8192
In the GUI, open ``Processing > Feature extraction`` and select the desired
tab (SIFT, ALIKED, etc.) before clicking Extract.
Feature Matcher Types
---------------------
The following feature matcher types are available:
- ``SIFT_BRUTEFORCE``: Brute-force matching optimized for SIFT descriptors
(default). Uses L2 distance with ratio test.
- ``ALIKED_BRUTEFORCE``: Brute-force matching for ALIKED descriptors. Uses
cosine similarity. Requires ONNX support to be enabled at build time.
- ``SIFT_LIGHTGLUE``: Neural network-based matching using the LightGlue model
for SIFT descriptors. This typically produces more matches and higher inlier
ratios than brute-force matching, especially for challenging image pairs with
large viewpoint or illumination changes. Requires ONNX support to be enabled
at build time.
- ``ALIKED_LIGHTGLUE``: Neural network-based matching using the LightGlue model
for ALIKED descriptors. Requires ONNX support to be enabled at build time.
To select a feature matcher type via the command-line::
$ colmap exhaustive_matcher \
--database_path $DATASET_PATH/database.db \
--FeatureMatching.type ALIKED_BRUTEFORCE \
--AlikedMatching.min_cossim 0.85
For SIFT matching (the default)::
$ colmap exhaustive_matcher \
--database_path $DATASET_PATH/database.db \
--FeatureMatching.type SIFT_BRUTEFORCE \
--SiftMatching.max_ratio 0.8
In the GUI, open ``Processing > Feature matching``, select any matching tab
(Exhaustive, Sequential, etc.), and choose the matcher type from the "Type"
dropdown in the shared options section.
Compatible Extractor and Matcher Types
--------------------------------------
The feature extractor and matcher types should be compatible:
- Use ``SIFT`` extraction with ``SIFT_BRUTEFORCE`` or ``SIFT_LIGHTGLUE`` matching.
- Use ``ALIKED_*`` extraction with ``ALIKED_BRUTEFORCE`` or ``ALIKED_LIGHTGLUE`` matching.
Mixing incompatible types (e.g., SIFT features with ALIKED matcher) will
result in a runtime error. Do not mix different feature extractor types
(e.g., SIFT and ALIKED) in the same database.
ALIKED Model Variants
---------------------
ALIKED requires an ONNX model file. Several model variants are available with
different trade-offs between speed and accuracy:
- ``aliked-n16rot``: Faster and trained for some viewpoint invariance. 128-dim descriptors.
- ``aliked-n32``: More expensive but not explicitly trained for viewpoint invariance, 128-dim descriptors.
Specify the model path using ``--AlikedExtraction.*_model_path``. If the path is
a URL, COLMAP will automatically download and cache the model. You can download
different ALIKED models from the release page at https://github.com/colmap/colmap/releases/
|