[Joseph DeGol]

Improved Structure from Motion Using Fiducial Marker Matching

Joseph DeGol, Timothy Bretl, Derek Hoiem

2018 Springer European Conference on Computer Vision (ECCV '18)






In this paper, we present an incremental structure from motion (SfM) algorithm that significantly outperforms existing algorithms when fiducial markers are present in the scene, and that matches the performance of existing algorithms when no markers are present. Our algorithm uses markers to limit potential incorrect image matches, change the order in which images are added to the reconstruction, and enforce new bundle adjustment constraints. To validate our algorithm, we introduce a new dataset with 16 image collections of large indoor scenes with challenging characteristics (e.g., blank hallways, glass facades, brick walls) and with markers placed throughout. We show that our algorithm produces complete, accurate reconstructions on all 16 image collections, most of which cause other algorithms to fail. Further, by selectively masking fiducial markers, we show that the presence of even a small number of markers can improve the results of our algorithm.


MarkerSfM is released under the BSD 2-Clause "Simplified" license. Please consider citing this work if you use it. If you are using this code for commercial purposes, we would love to know about it! Please email us and tell us who you are and what you are using it for.

Development Release on Github:
The most recent version of the code can be cloned from github. I recommend using this version of the code because it provides more support for various versions of Ubuntu and will contain future updates and improvements.

MarkerSfM on Github

Paper Release:
This is the version that was used for the paper. For most applications, I suggest using the version that can be found on github as that will reflect any updates and improvements.

1. Download Code and Starter Data

2. Unzip Folder

3. See README.txt
for help

4. Build

5. Run using run_markersfm.sh

Click (1) the download icon above to download the code and starter data. Next, unzip (2) the downloaded file and navigate inside. Read (3) the README.md file for details on building dependencies and MarkerSfM. Build (4) MarkerSfM using install_dependencies.sh and setup.py. Run (5) MarkerSfM on the starter data using run_markersfm.sh.


For each image collection listed below, you can download the original images and the results that we created for each method that are reported in the paper. For convenience, the image collections can also be downloaded in batches. Click each individual dataset image to download that dataset or click the database icons to download the batches.

ECE Floor2 Hall

ECE Floor3 Loop CCW

ECE Floor3 Loop CW

ECE Floor3 Loop

ECE Floor5 Hall

ECE Floor5 Stairs

ECE Floor5

ECE Floor4 Wall




CEE Night CW


CEE Night

MUF Floor2

MUF Floor3

Related Work:
Below are the four datasets from the work of Neunert et. al. The original data was video. For our experiments, we extracted every fifth frame to create an image collection. Click the images below to download each of the image collections or download the batch further down the page.





Batch Download:
The image collections for the dataset are grouped into batches for easier download below. Within each zip, you will find a separate directory for each image collection.

ECE Batch

MUF Batch

CEE Batch

Neunert et. al Batch

See the paper, supplementary material, poster, and dissertation for more details about the results, method, and data.

  author    = {Joseph DeGol and Timothy Bretl and Derek Hoiem},
  title     = {Improved Structure from Motion Using Fiducial Marker Matching},
  booktitle = {ECCV},
  year      = {2018}

Last Updated: 10/21/18