Вы находитесь на странице: 1из 3

Structure from Motion Software

COLMAP

Structure-from-Motion (SfM) is the process of reconstructing 3D structure from its projections


into a series of images. COLMAP is a general-purpose Structure-from-Motion (SfM) and Multi-
View Stereo (MVS) pipeline with a graphical and command-line interface. It offers a wide range
of features for reconstruction of ordered and unordered image collections. The software is
licensed under the GNU General Public License.

Python and Sphinx is used to build the HTML documentation. COLMAP provides an automatic
reconstruction tool that simply takes a folder of input images and produces a sparse and dense
reconstruction in a workspace folder.

COLMAP’s incremental Structure-from-Motion pipeline.

The input is a set of overlapping images of the same object, taken from different viewpoints. The
output is a 3-D reconstruction of the object, and the reconstructed intrinsic and extrinsic camera
parameters of all images. Typically, Structure-from-Motion systems divide this process into three
stages:
1. Feature detection and extraction
2. Feature matching and geometric verification
3. Structure and motion reconstruction

COLMAP reflects these stages in different modules, that can be combined depending on the
application.

Following are the guidelines for optimal reconstruction results:

➢ Capture images with good texture. Avoid completely texture-less images (e.g., a white
wall or empty desk).
➢ Capture images at similar illumination conditions. Avoid high dynamic range scenes
(e.g., pictures against the sun with shadows or pictures through doors/windows).
➢ Capture images with high visual overlap. Make sure that each object is seen in at least 3
images – the more images the better.
➢ Capture images from different viewpoints. Do not take images from the same location by
only rotating the camera, e.g., make a few steps after each shot.

1. Feature Detection and Extraction

In the first step, feature detection/extraction finds sparse feature points in the image and describes
their appearance using a numerical descriptor. COLMAP imports images and performs feature
detection/extraction in one step in order to only load images from disk once.

2. Feature Matching and Geometric Verification

In the second step, feature matching and geometric verification finds correspondences between the
feature points in different images.

Exhaustive Matching: Here, every image is matched against every other image, while the block
size determines how many images are loaded from disk into memory at the same time.

Sequential Matching: This mode is useful if the images are acquired in sequential order, e.g., by
a video camera.
Vocabulary Tree Matching: In this matching mode, every image is matched against its visual
nearest neighbors using a vocabulary tree with spatial re-ranking.

Spatial Matching: This matching mode matches every image against its spatial nearest neighbors.

Transitive Matching: This matching mode uses the transitive relations of already existing feature
matches to produce a more complete matching graph. If an image A matches to an image B and B
matches to C, then this matcher attempts to match A to C directly.

Custom Matching: This mode allows to specify individual image pairs for matching or to import
individual feature matches. To specify image pairs, you have to provide a text file with one image
pair per line.

3. Structure and motion reconstruction

After producing the scene graph in the previous two steps, we can start the incremental
reconstruction process by choosing Reconstruction. COLMAP first loads all extracted data from
the database into memory and seeds the reconstruction from an initial image pair. Then, the scene
is incrementally extended by registering new images and triangulating new points. The results are
visualized in “real-time” during this reconstruction process.

This is the video showing how COLMAP work

https://www.youtube.com/watch?v=P-EC0DzeVEU

(source: https://colmap.github.io)

Вам также может понравиться