File: features.rst

package info (click to toggle)
colmap 4.0.2-1
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 15,408 kB
  • sloc: cpp: 142,920; ansic: 17,774; python: 3,613; sh: 428; makefile: 160
file content (106 lines) | stat: -rw-r--r-- 4,070 bytes parent folder | download | duplicates (4)
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/