Google

Street View Structure from Motion

prev next

At Google, the main issue our group worked on was solving problems at scale - world scale.

In particular, we applied the Ceres non-linear least squares solver to the problem of estimating the location of Street View data vi sensor fusion.

You can see the solver in action in this video of the solver state as it proceeds for a few examples in the video Street View sensor fusion with Ceres Solver.

Solution of Street View data using Ceres least squares solver.

The sensor fusion behind this system is described in Street View Motion-from-Structure-from-Motion (SFM). In it, we detail our structure-from-motion framework that allows us to combine arbitrary numbers of constraint types in a sensor-fusion based bundle adjustment problems, which we applied at huge scale that includes billions of images covering millions of miles of roads, paths, and even museums.

Even bigger scale - distributed optimization

Eventually, we decided to compute entire countries as a single optimization problem. To accomplish this, we needed to adapt the Alternating Direction of Multipliers Method (ADMM) to be used in nonlinear least squares optimization solvers such as - wait for it - Ceres.

Our software abstraction let us scale to unified, distributed problems that were too big for the biggest machines by orders of magnitude. That software was useful enough that it's being applied to other huge problems with similar transformational results. Today we're extending it to be used in even more systems and larger datasets.