Pixel-Perfect Structure-from-Motion with Featuremetric Refinement

Philipp Lindenberger, Paul-Edouard Sarlin, Viktor Larsson, Marc Pollefeys
8/18/2021
cs.CV

Official code: cvg/pixel-perfect-sfm (1,494 stars, Apache-2.0, last commit 2024-07-30).

Abstract

Finding local features that are repeatable across multiple views is a cornerstone of sparse 3D reconstruction. The classical image matching paradigm detects keypoints per-image once and for all, which can yield poorly-localized features and propagate large errors to the final geometry. In this paper, we refine two key steps of structure-from-motion by a direct alignment of low-level image information from multiple views: we first adjust the initial keypoint locations prior to any geometric estimation, and subsequently refine points and camera poses as a post-processing. This refinement is robust to large detection noise and appearance changes, as it optimizes a featuremetric error based on dense features predicted by a neural network. This significantly improves the accuracy of camera poses and scene geometry for a wide range of keypoint detectors, challenging viewing conditions, and off-the-shelf deep features. Our system easily scales to large image collections, enabling pixel-perfect crowd-sourced localization at scale. Our code is publicly available at https://github.com/cvg/pixel-perfect-sfm as an add-on to the popular SfM software COLMAP.

View on arXivView PDF

Code Implementations(1)

Apache-2.0

Pixel-Perfect Structure-from-Motion with Featuremetric Refinement (ICCV 2021, Best Student Paper Award)

1,494153C++, CMakeAug 17, 20212 years agoApache-2.0
3d-visiondeep-learningfeature-matchingstructure-from-motionvisual-localization

Similar Papers

Cite this paper

@article{lindenberger2021pixelperfect,
  title  = {Pixel-Perfect Structure-from-Motion with Featuremetric Refinement},
  author = {Philipp Lindenberger and Paul-Edouard Sarlin and Viktor Larsson and Marc Pollefeys},
  year   = {2021},
  eprint = {2108.08291},
  archivePrefix = {arXiv},
  url    = {https://arxiv.org/abs/2108.08291}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2108.08291.svg)](https://codeofpaper.com/paper/2108.08291)

Discussion