FlowMap: High-Quality Camera Poses, Intrinsics, and Depth via Gradient Descent

Cameron Smith, David Charatan, Ayush Tewari, Vincent Sitzmann
4/23/2024
cs.CV

No official code found. Best implementation: dcharatan/flowmap (986 stars, MIT, last commit 2025-03-26).

Abstract

This paper introduces FlowMap, an end-to-end differentiable method that solves for precise camera poses, camera intrinsics, and per-frame dense depth of a video sequence. Our method performs per-video gradient-descent minimization of a simple least-squares objective that compares the optical flow induced by depth, intrinsics, and poses against correspondences obtained via off-the-shelf optical flow and point tracking. Alongside the use of point tracks to encourage long-term geometric consistency, we introduce differentiable re-parameterizations of depth, intrinsics, and pose that are amenable to first-order optimization. We empirically show that camera parameters and dense depth recovered by our method enable photo-realistic novel view synthesis on 360-degree trajectories using Gaussian Splatting. Our method not only far outperforms prior gradient-descent based bundle adjustment methods, but surprisingly performs on par with COLMAP, the state-of-the-art SfM method, on the downstream task of 360-degree novel view synthesis (even though our method is purely gradient-descent based, fully differentiable, and presents a complete departure from conventional SfM).

View on arXivView PDF

Code Implementations(1)

dcharatan/flowmapCommunity100%
MIT

[3DV 2025] Code for "FlowMap: High-Quality Camera Poses, Intrinsics, and Depth via Gradient Descent" by Cameron Smith*, David Charatan*, Ayush Tewari, and Vincent Sitzmann

98690Shell, PythonApr 22, 20241 years agoMIT

Similar Papers

Cite this paper

@article{smith2024flowmap,
  title  = {FlowMap: High-Quality Camera Poses, Intrinsics, and Depth via Gradient Descent},
  author = {Cameron Smith and David Charatan and Ayush Tewari and Vincent Sitzmann},
  year   = {2024},
  eprint = {2404.15259},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2404.15259v3}
}

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/2404.15259.svg)](https://codeofpaper.com/paper/2404.15259)

Discussion