End-to-End Learnable Geometric Vision by Backpropagating PnP Optimization
Bo Chen, Alvaro Parra, Jiewei Cao, Nan Li, Tat-Jun Chin

TL;DR
This paper introduces BPnP, a differentiable module that allows backpropagation through a PnP solver, enabling end-to-end learning of geometric vision tasks such as camera pose and structure estimation.
Contribution
The paper presents a novel differentiable PnP solver module, BPnP, facilitating end-to-end training of geometric vision models with deep learning.
Findings
BPnP accurately computes gradients for PnP optimization.
Incorporating BPnP improves camera pose and structure estimation accuracy.
The approach generalizes to other geometric optimization problems.
Abstract
Deep networks excel in learning patterns from large amounts of data. On the other hand, many geometric vision tasks are specified as optimization problems. To seamlessly combine deep learning and geometric vision, it is vital to perform learning and geometric optimization end-to-end. Towards this aim, we present BPnP, a novel network module that backpropagates gradients through a Perspective-n-Points (PnP) solver to guide parameter updates of a neural network. Based on implicit differentiation, we show that the gradients of a "self-contained" PnP solver can be derived accurately and efficiently, as if the optimizer block were a differentiable function. We validate BPnP by incorporating it in a deep model that can learn camera intrinsics, camera extrinsics (poses) and 3D structure from training datasets. Further, we develop an end-to-end trainable pipeline for object pose estimation,…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
End-to-End Learnable Geometric Vision by Backpropagating PnP Optimization· youtube
Taxonomy
TopicsAdvanced Vision and Imaging · Robotics and Sensor-Based Localization · Human Pose and Action Recognition
MethodsHeatmap
