Hostname: page-component-74656f9884-8rzl6 Total loading time: 0 Render date: 2026-11-06T08:12:47.017Z Has data issue: false hasContentIssue false

A survey of structure from motion* .

Published online by Cambridge University Press:  05 May 2017

Onur Özyeşil
Affiliation:
INTECH Investment Management LLC, One Palmer Square, Suite 441, Princeton, NJ 08542, USA E-mail: oozyesil@intechjanus.com
Vladislav Voroninski
Affiliation:
Helm.ai, Menlo Park, CA 94025, USA E-mail: vlad@helm.ai
Ronen Basri
Affiliation:
Department of Computer Science and Applied Mathematics, Weizmann Institute of Science, Rehovot, 76100, Israel E-mail: ronen.basri@weizmann.ac.il
Amit Singer
Affiliation:
Department of Mathematics and PACM, Princeton University, Princeton, NJ 08544-1000, USA E-mail: amits@math.princeton.edu
Rights & Permissions [Opens in a new window]

Abstract

The structure from motion (SfM) problem in computer vision is to recover the three-dimensional (3D) structure of a stationary scene from a set of projective measurements, represented as a collection of two-dimensional (2D) images, via estimation of motion of the cameras corresponding to these images. In essence, SfM involves the three main stages of (i) extracting features in images (e.g. points of interest, lines, etc.) and matching these features between images, (ii) camera motion estimation (e.g. using relative pairwise camera positions estimated from the extracted features), and (iii) recovery of the 3D structure using the estimated motion and features (e.g. by minimizing the so-called reprojection error). This survey mainly focuses on relatively recent developments in the literature pertaining to stages (ii) and (iii). More specifically, after touching upon the early factorization-based techniques for motion and structure estimation, we provide a detailed account of some of the recent camera location estimation methods in the literature, followed by discussion of notable techniques for 3D structure recovery. We also cover the basics of the simultaneous localization and mapping (SLAM) problem, which can be viewed as a specific case of the SfM problem. Further, our survey includes a review of the fundamentals of feature extraction and matching (i.e. stage (i) above), various recent methods for handling ambiguities in 3D scenes, SfM techniques involving relatively uncommon camera models and image features, and popular sources of data and SfM software.

Information

Type
Research Article
Copyright
© Cambridge University Press, 2017 
Figure 0

Figure 1.1. The structure from motion (SfM) problem.

Figure 1

Figure 2.1. The pinhole camera model.

Figure 2

Figure 3.1. Two images from the Notre Dame Cathedral set in Snavely et al. (2006), with corresponding feature points, extracted using the scale-invariant feature transform (SIFT: Lowe 2004).

Figure 3

Figure 3.2. Estimates for a noisy, synthetic example of the camera location estimation problem for $100$ cameras, demonstrating the clustering estimates of the least-squares (LS) method of Brand et al. (2004) versus estimates of the relatively stable semidefinite relaxation (SDR) solver of Özyeşil et al. (2015). The segments represent the error incurred by the SDR solution compared to the ground truth.

Figure 4

Figure 3.3. (a) A noiseless example of the camera location estimation problem for five locations on a connected graph (we assume noiseless direction measurements between location pairs having an edge), which is not parallel rigid (in $\mathbb{R}^{2}$ and $\mathbb{R}^{3}$). Non-uniqueness is demonstrated by two non-congruent location solutions $\{\mathbf{t}_{1},\mathbf{t}_{2},\mathbf{t}_{3},\mathbf{t}_{4},\mathbf{t}_{5}\}$ and $\{\mathbf{t}_{1},\mathbf{t}_{2},\mathbf{t}_{3},\mathbf{t}_{4}^{\prime },\mathbf{t}_{5}^{\prime }\}$, each of which can be obtained from the other by an independent rescaling of the solution for one of its maximally parallel rigid components. (b) Maximally parallel rigid components of the formation in (a). (c) A parallel rigid formation (in $\mathbb{R}^{2}$ and $\mathbb{R}^{3}$) obtained from the formation in (a) by adding the extra edge $(1,4)$ linking its maximally parallel rigid components.

Figure 5

Figure 3.4. A simplified illustration (courtesy of Wilson and Snavely 2014) of outlier detection via 1DSfM. (a) Ground truth camera locations with (potentially noisy) pairwise directions available for camera pairs connected with arrows. (b) Available pairwise directions, with an outlier edge shown in red, and two directions, $\hat{i}$ and $p$, for one-dimensional (1D) projections. (c) Projections of pairwise directions onto $\hat{i}$ and $p$, resulting in two variants of the minimum feedback arc set problem. (d) Solutions to the 1D problems in (c), depicting the violation (satisfaction) of the 1D constraints by the outlier edge $(3,0)$ in the 1D problem induced by $\hat{i}$ ($p$), since outlier edges may be consistent with only some of the solutions to the 1D subproblems.

Figure 6

Figure 3.5. Recovery error of the LUD solver (3.10), demonstrating exact recovery regimes in the presence of outliers for dimensions $d=2,3$ and number of cameras $n=100,200$. Measurement graphs, with an edge between cameras having pairwise directions, are sampled from the Erdős–Rényi ensemble. Camera locations are i.i.d. Gaussian samples, independent of the measurement graph. The colour intensity of each pixel represents the logarithmic recovery error $\log _{10}(\text{NRMSE})$ (see equation (14) in Özyeşil and Singer (2015) for the definition of the normalized root mean squared error, NRMSE), depending on the probability $q$ of the existence of an edge for each pair ($x$-axis), and the probability $p$ of each existing edge being an outlier ($y$-axis). NRMSE values are averaged over $10$ trials.

Figure 7

Figure 3.6. Histogram plots of the errors in direction estimates computed by the robust method (3.11) and the PCA method, which replaces the cost function in (3.11) with the sum of squares version $\sum _{k=1}^{m_{ij}}((\unicode[STIX]{x1D6FE}_{ij}^{0})^{T}\hat{\mathbf{y}}_{ij}^{k})^{2}$, for some of the datasets studied in Özyeşil and Singer (2015). The errors represent the angles between the estimated directions and the corresponding ground truth directions, computed from a sequential SfM method based on Snavely et al. (2006), and provided in Wilson and Snavely (2014). The errors take values in $[0,\unicode[STIX]{x1D70B}]$, but the histograms are restricted to $[0,\unicode[STIX]{x1D70B}/4]$ to emphasize the difference in quality for the estimated directions.

Figure 8

Figure 3.7. Depiction of the group synchronization pipeline (GSP) in Arrigoni et al. (2016), including the group synchronization stages in bold. Figure courtesy of Arrigoni et al. (2016).

Figure 9

Figure 4.1. Sparsity patterns of the adjacency matrices of the connectivity graphs for two sets of images: (a) a structured set of photos (taken from a moving truck), and (b) an unstructured collection of community photos corresponding to a search for the term ‘Dubrovnik’ in Flickr. Figure courtesy of Agarwal et al. (2010).

Figure 10

Figure 4.2. A toy example of the construction of the skeletal graph in Snavely et al. (2008b). (a) Nodes of the image graph represent images and its edges represent pairwise reconstructions (in fact the image graph is directed, and each connected pair has two directed edges; only one is shown for simplicity). Each (directed) edge $(I,J)$ is endowed with a covariance matrix $C_{IJ}$ representing the uncertainty in image $J$ relative to $I$. (b) Relative uncertainty between the nodes $P$ and $Q$ is quantified by the trace of the covariance matrices (ellipses) chained up along the shortest path (arrows) between the nodes. (c) Removing an edge lengthens the shortest path, resulting in larger estimated covariance (larger ellipses). (d) The solid edges are those of the skeletal graph, while the dotted edges have been removed. The black (interior) nodes form the skeletal set, and are to be reconstructed first, while the grey (leaf) nodes are added to it using position estimation. The skeletal graph is constructed by trying to minimize the number of interior nodes, while bounding the increase in relative uncertainty between all pairs of nodes in the original graph in (a). Figure courtesy of Snavely et al. (2008b).

Figure 11

Figure 4.3. Photo tourism system of Snavely et al. (2006): (a) An unstructured collection of images, e.g. downloaded from the Internet, as input to the system. (b) SfM step composed of camera motion estimation and 3D structure reconstruction. (c) Content exploration, such as 3D scene visualization, object-based photo browsing, geolocation from images, object annotation, etc. Figure courtesy of Snavely et al. (2006).

Figure 12

Figure 6.1. The scale-space representation of an image in Lowe (2004) using difference of Gaussians (DoG). For each octave of the scale space, the original image is first convolved with Gaussians to obtain the set of scale space images (on the left), and then adjacent Gaussian images are subtracted to produce the DoG images (on the right). After each octave, the Gaussian image is down-sampled by a factor of 2, and the process is repeated. Figure courtesy of Lowe (2004).

Figure 13

Figure 6.2. To obtain a keypoint descriptor, first the gradient (magnitude and orientation) at each image sample point in a region around the keypoint location is computed (a) and then scaled by a Gaussian window (represented by the overlaid circle). These samples are then collected into orientation histograms representing the contents over $4\times 4$ subregions (b), where the length of each arrow is given by the sum of the gradient magnitudes quantized to that direction within the region. For simplicity, the figure shows a $2\times 2$ descriptor array computed from an $8\times 8$ set of samples, whereas $4\times 4$ descriptors computed from $16\times 16$ sample arrays are used in practice. Figure courtesy of Lowe (2004).

Figure 14

Figure 6.3. (Simplified) diagram of a 2D slice of an omnidirectional camera with two mirrors (upper and lower).

Figure 15

Figure 6.4. Three-dimensional structures for the Montreal Notre-Dame dataset from Wilson and Snavely (2014). (a) Sparse 3D structure obtained by using the method of Özyeşil and Singer (2015) for camera motion estimation and the PBA package of Wu et al. (2011) for final refinement. (b) A snapshot of the dense 3D reconstruction obtained by using the PMVS package of Furukawa and Ponce (2010a, 2010b) with the motion estimate of Özyeşil and Singer (2015).