The computed planar-quadratic ground surface is used to provide a
measure of scale drift within DROID, a serious problem over long
sequences unless camera calibration is completely perfect, which is
virtually impossible to achieve in practice. As the only input
relating image motion to three dimensional world co-ordinates is the
single initial camera displacement, it is not surprising that
over many frames DROID's absolute scale gradually drifts. This drift
can be countered by using external inputs to DROID, such as vehicle
odometry readings. This, however, may not always be available, and a
self-correcting system is preferable. It is also recognized that with
tasks such as past route estimation, the more independent sources of
information that can be combined, the better the final estimation will
be.
The first stage in the drift correction is the estimation of the height of the camera above the computed ground surface (i.e., parameter c in the surface fit). A heavily filtered version of this height is calculated during the first 50 frames after reliable surface fitting has begun. This height is then assumed to be the exact height (or, more correctly, the actual height is ``defined'' to be this height), and future height measurements are compared against this. In all future frames, the comparison of estimated camera height with ``real'' height is used to produce a scaling factor which is fed into DROID. DROID uses the previous frame's calculated egomotion as the initial estimate for the present frame's calculations, so this is a good point to feed in the scaling correction. The corrections are very close to 1 (either 0.97 or 1.03, depending on the sign of the difference between the estimated camera height and the ``real'' height) so that stability is not endangered, and thus avoiding the need for in-depth understanding of the feedback dynamics.