next up previous index
Next: Vision tools for the Up: Vision tools Previous: Vision tools   Index



General vision tools

In figure 2.1, we see that the first step is an image processing algorithm that extracts features from the image. This step is a very important one. The accuracy of the results depends on the accuracy of the features extracted.

Indeed, if a neural network is trained with poor features, it provides a poor result. For instance, if we only used the features ``the image is bright'' and ``the image is not bright'', no algorithm can predict the movement the robot has to do. If we only use these features, there is not enough information to decide whether the robot has to turn right or to turn left. So we need an adequate image processing mechanism to extract useful features.

A useful feature has to provide meaningful information. Edges are a feature that is widely used in machine vision and that hold relevant information for most applications. Indeed, ego-motion computation has already been calculated using edge detection, using optical flow [23,26,25,28]. This proves that the edge information is sufficient to compute travelled distances. Here, we expect neural networks to compute this for us, or expect at least to provide an estimation of this computation.

Figure 2.2: Useful features of edge detection. Two successives frames are shown in dashed lines and dotted lines. The distance travelled by the robot can, under certain conditions, be found using vectors $\overrightarrow{AB}$ and $\overrightarrow{A'B'}$
\begin{figure}\begin{center}
\epsfbox{edgediag.ps}
\end{center}
\end{figure}

Another strength of edges is the fact that there are a lot of edges where there are a lot of objects. Indeed, borders and textures of objects produce a lot of detected edges. This is useful for corridor following. With these features we can estimate the location of the objects on the images using simple computations. We also expect the neural network to estimate wheel movements using these computations. The next section describes the computations used as preprocessing for the neural network inputs.

Different edge detectors were tried, but the best results were obtained using a Difference of Gaussian edge detector. This edge detector is powerful and cheap. It saves a lot of computation time because each pixel on the edges image is simply a thresholded linear combination of its adjoining pixels. This computation can be done by storing only three lines during the algorithm. So this edge detector is memoryless and efficient.


next up previous index
Next: Vision tools for the Up: Vision tools Previous: Vision tools   Index

franck 2006-10-15