BACS: Bundle Adjustment for Camera Systems

A two-camera system with Fisheye cameras c=1,2 with projection centers Z_tc and known motion M_c and unknown motion M_t, having a field of view larger than 180° shown at two exposure times t=1,2 observing two points X_i, i=1,2, one being close, the other at infinity. Already a block adjustment with a single camera moving over time will be stabilized by points at infinity.
A two-camera system with Fisheye cameras c=1,2 with projection centers Z_tc and known motion M_c and unknown motion M_t, having a field of view larger than 180° shown at two exposure times t=1,2 observing two points X_i, i=1,2, one being close, the other at infinity. Already a block adjustment with a single camera moving over time will be stabilized by points at infinity.

Description

We propose a novel rigorous bundle adjustment for omnidirectional and multi-view cameras, which enables an efficient maximum-likelihood estimation with image and scene points at infinity.

For stabilizing camera orientations – especially rotations – one should generally use points at the horizon over long periods of time within the bundle adjustment that classical bundle adjustment programs are not capable of.

We use a minimal  representation of homogeneous coordinates for image and scene points. Instead of eliminating the scale factor of the homogeneous vectors by Euclidean normalization, we normalize the homogeneous coordinates spherically. This way we can use images of omnidirectional cameras with single-view point like fisheye cameras and scene points, which are far away or at infinity.

Software

Matlab code: bacs.zip

Python code :

How-to guide: demo.html

Related Papers