BundleAdjust#

class BundleAdjust(camera: CentralCamera)[source]#

Create a bundle adjustment problem

Parameters:

camera (CentralCamera instance) – model of the moving camera

Implementation of a workable, easy to follow, bundle adjustment algorithm suitable for pedagogical purposes and problems of small to medium size.

It uses SciPy sparse linear algebra functions to solve the update equation. The state vector comprises, in order:

  • a 6-vector for every view, the camera pose \((t_x, t_y, t_z, q_x, q_y, q_z)\) as a translation vector and the vector part of the unit quaternion

  • a 3-vector for every landmark, (X, Y, Z)

Cameras and landmarks can be fixed in which case we have a variable state vector, shorter than the state vector, holding only the states corresponding to movable cameras and landmarks.

Warning

This class assumes that all camera views have the same camera intrinsics.

References:
Seealso:

optimize CentralCamera pgraph.UGraph