SfM--Structure from Motion

Structure from motion (SfM) is a photogrammetric range imaging technique for estimating three-dimensional structures from two-dimensional image sequences. To find correspondence between images, features such as corner points (edges with gradients in multiple directions) are tracked from one image to the next. One of the most widely used feature detectors is the scale-invariant feature transform (SIFT). It uses the maxima from a difference-of-Gaussians (DOG) pyramid as features. The first step in SIFT is finding a dominant gradient direction. To make it rotation-invariant, the descriptor is rotated to fit this orientation. Another common feature detector is the SURF (Speeded Up Robust Features). In SURF, the DOG is replaced with a Hessian matrix-based blob detector. (adapted from Wikipedia)

SfM has replaced expensive photogrammetric equipment, with precision engineering and lenses, and large cameras with 25 cm film, with software that can run on standard computers using photos taken with inexpensive consumer cameras. It offers tremendous potential for the geosciences and cultural heritage work, using drones, and we might soon see applications using a smart phone or an attachment to a smartphone.

SfM can only produce a  DSM, since unlike Lidar, cameras will not see the ground where there is significant vegetation.  However, many uses for SfM will be in regions without tree cover.

SfM will probably be a passive system, especially in the applications to GIS when the sensor is on a drone or aircraft.  Even when photographing the ship models below, an active flash produces glare  and reduces the ability of the algormithm to find matching points.  The museum uses reflectors to get diffuse lighting which works much better for the SfM algorithm.


Ship model, including the stand, colored by elevation.
Ship model with the stand largely removed, and displaying colors from the photographs.
Deadman Canyon, southern Nevada, from a series of photos hiking down the trail.  There are many points occluded  by the rugged topography, and not an easy way to get more complete coverage without a lot of hiking.  A drone would be the perfect assistant, since it could fly much higher than the hiker's view.

Running the software;


My experiences (limited) with free software.

last revision 1/31/2018