Page 182 - Introduction to Autonomous Mobile Robots
P. 182
167
Perception
The basic challenge of edge detection is visualized in figure 4.23. Figure 4.23 (top left)
shows the 1D section of an ideal edge. But the signal produced by a camera will look more
like figure 4.23 (top right). The location of the edge is still at the same x value, but a signif-
icant level of high-frequency noise affects the signal quality.
A naive edge detector would simply differentiate, since an edge by definition is located
where there are large transitions in intensity. As shown in figure 4.23 (bottom right), dif-
ferentiation of the noisy camera signal results in subsidiary peaks that can make edge detec-
tion very challenging. A far more stable derivative signal can be generated simply by
preprocessing the camera signal using the Gaussian smoothing function described above.
Below, we present several popular edge detection algorithms, all of which operate on this
same basic principle, that the derivative(s) of intensity, following some form of smoothing,
comprises the basic signal from which to extract edge features.
Optimal edge detection Canny. The current reference edge detector throughout the
vision community was invented by John Canny in 1983 [30]. This edge detector was born
out of a formal approach in which Canny treated edge detection as a signal-processing
problem in which there are three explicit goals:
• Maximizing the signal-to-noise ratio;
• Achieving the highest precision possible on the location of edges;
• Minimizing the number of edge responses associated with each edge.
The Canny edge extractor smooths the image I via Gaussian convolution and then looks
for maxima in the (rectified) derivative. In practice the smoothing and differentiation are
combined into one operation because
( G ⊗ I)' = G' ⊗ I (4.84)
Thus, smoothing the image by convolving with a Gaussian G σ and then differentiating
is equivalent to convolving the image with G' σ , the first derivative of a Gaussian (figure
4.43b).
We wish to detect edges in any direction. Since G' is directional, this requires applica-
tion of two perpendicular filters, just as we did for the Laplacian in equation (4.35). We
,
define the two filters as f xy,( ) = G' x()G y() and f ( xy) = G' y()G x() . The result
σ
σ
σ
σ
H
V
is a basic algorithm for detecting edges at arbitrary orientations:
The algorithm for detecting edge pixels at an arbitrary orientation is as follows:
1. Convolve the image Ix y,( ) with f xy,( ) and f ( xy) to obtain the gradient compo-
,
V
H
nents R xy,( ) and R ( xy) , respectively.
,
V H