B. Implemented modules of the navigation system
B.1 The tracking problem
B.1.2 The matching algorithm
It is well known, that for l = m × n potential pairs, there are S = 2|l| correspondences. This means that the search space is in general very large and not practicable for applications.
The tracking assumption allows to use local criteria like distances and angles to reduce the search space significantly, depending on the error bound-
aries. In this context the correspondence space for m model lines and n image lines is represented by a m × n fit-matrix. In this matrix flags represent the needed information for a match, mismatch or potential match, figure B.2 shows an example. In this example the model lines are labeled with letters and the extracted image lines are labeled with numbers. The table indicates the correspondence space with the allowed matches (white/black), the im- possible matches (cross) and the current match (black). See also [18] for further information. 000100,100000,000010,010000 000100,100000,000010,001000 000100,010000,000010,010000 000010,100000,000010,010000 000100,100000,000100,010000 000100,000001,000010,010000 000100,100000,000010,100000 000100,001000,000010,010000 000100,000100,000010,010000
Fig. B.3: Visualization of Hamming distance 2 (HD2) neighbors of a bit string.
Random start local search [18] is an effective and easy strategy for solving optimization problems. The basic algorithm contains the following steps:
1. (a) Image Processing:
Hough transformation to extract 2D image lines. Reconstruct 2D image lines to 3D planes.
(b) Generate fit-matrix F and reduce search space. (c) Choose a random start configuration.
2. Estimate pose for the hypothetic correspondences and estimate the match error EMatch(F).
3. Choose neighbor F’ and estimate its match error EMatch (F’). If EMatch(F’) < EMatch(F) choose F’ as actual match.
Check Termination condition, if required terminate the algorithm.
Goto (2)
In short notation, the aim is to estimate
F : ∀F′ : E
In this algorithm, the Hamming distance n–neighborhood [18] is used to define neighbors between fit matrices. Therefor the current match is repre- sented as bit string by encoding the n × m fit-matrix as nm-binary vector,
with the value 1 for a current match and 0 for no match. The Hamming distance (HD) is now the number of different bits, or equivalently the weight of the XOR-combination of two binary strings of the same length. Figure B.3 visualizes some HD2 neighbors of the bit string generated from the example in figure B.2.
testing of all possibilities
stabilize the estimated pose
are not fulfilled
Hough transformation, object model fitmatrix
initial state linear search to refine and
repeat if error boundaries
reduce the search space lokal characteristics to
random model lines,
result: correspondences and pose
are not fulfilled
repeat if error boundaries
Fig. B.4: A scheme of the tracking algorithm.
For the pose estimation problem a modified version of the random start local search [18] algorithm is chosen. The algorithm is summarized in figure B.4. The principle of the heuristic relies upon a combination of iterative improvement and random sampling. Iterative improvement refers to a re- peated generate-and-test principle by which the algorithm moves from an initial state to its local optimum. The algorithm itself consists of two main steps: Firstly find an initial state for a minimum of correspondences and then refine the result by the other correspondences. For the first step a few (mostly five till eight) random model features are chosen and then all combi- nations of the object features to the allowed image features are used. Taking the pose error as error function leads to an optimal pose. This is possible since the error measure corresponds directly to the Hesse distance and leads to a suitable 3D error measure. Once the initial pose is estimated, the algo- rithm continues with a linear search for the other object features. Therefor
Fig. B.5: Tracking of a model house with partially covered and invisible ob- ject lines.
one object feature is added and the whole match error is estimated for all allowed image lines. Dependent on the error boundaries, the object feature is neglected or added for the whole pose. Then the algorithm continues with another object feature. Note: The second part of the algorithm is linear and converges very fast. This is possible because the algorithm deals with infinite extended Hough lines and not with finite line segments as in [18]. Once a correct initial guess is found, all mismatches distort the pose and lead to remarkable error peaks.
This algorithm can be repeated (with other starting configurations) and the more time the algorithm gets, the higher is the probability to reach a global minimum. In the navigation system it is possible to define how often the robot has to localize its position (mostly after 30 seconds). This update- time is used as computing time for the mobile robot and the correspondences are estimated during the movement of the robot.
This means that the matching algorithm has indeed no real-time capa- bility. Yet it is possible to overcome this problem in the parallel system architecture which is explained in detail later. Though the algorithm is slow, the results are sufficient for the navigation scenario and also robust, since it is possible to neglect object features if they are not visible in the image. Fig- ure B.5 shows an example. Indeed the matching algorithm is not perfect and the use of infinite extended image lines does sometimes lead to only a small match error but a wrong pose. Examples are given in figure B.6. Fortunately these problems can be avoided in the navigation system since it is possible to use the stereo camera system and compare the pose results of both images with each other. This enables the algorithm to find falsely estimated poses and neglect them, if necessary.
Fig. B.6: Falsely estimated poses in comparison to a rightly estimated pose. The errors occur because of the use of infinite extended Hough lines. The error of the tracking algorithm is very small, but the pose is wrong. To understand the error pose, extend the image lines to the infinite extended lines and compare them with the object model.