Page 233 -
P. 233

212                                                          4 Feature detection and matching


                                ations. The gradient of the smoothed image can therefore be written as

                                                 J σ (x)= ∇[G σ (x) ∗ I(x)]=[∇G σ ](x) ∗ I(x),       (4.20)

                                i.e., we can convolve the image with the horizontal and vertical derivatives of the Gaussian
                                kernel function,
                                                                                       2
                                                     ∂G σ ∂G σ               1        x + y 2
                                          ∇G σ (x)=(     ,    )(x)=[−x − y]    exp −                 (4.21)
                                                      ∂x   ∂y                σ 3        2σ  2
                                (The parameter σ indicates the width of the Gaussian.) This is the same computation that
                                is performed by Freeman and Adelson’s (1991) first-order steerable filter, which we already
                                covered in Section 3.2.3.
                                   For many applications, however, we wish to thin such a continuous gradient image to
                                only return isolated edges, i.e., as single pixels at discrete locations along the edge contours.
                                This can be achieved by looking for maxima in the edge strength (gradient magnitude) in a
                                direction perpendicular to the edge orientation, i.e., along the gradient direction.
                                   Finding this maximum corresponds to taking a directional derivative of the strength field
                                in the direction of the gradient and then looking for zero crossings. The desired directional
                                derivative is equivalent to the dot product between a second gradient operator and the results
                                of the first,
                                                                        2
                                                   S σ (x)= ∇· J σ (x)=[∇ G σ ](x) ∗ I(x)].          (4.22)
                                The gradient operator dot product with the gradient is called the Laplacian. The convolution
                                kernel
                                                                                  2
                                                                   2
                                                           1      x + y 2        x + y 2
                                                 2
                                               ∇ G σ (x)=     2 −          exp −                     (4.23)
                                                          σ 3       2σ 2           2σ 2
                                is therefore called the Laplacian of Gaussian (LoG) kernel (Marr and Hildreth 1980). This
                                kernel can be split into two separable parts,
                                               1       x 2               1       y 2
                                     2
                                    ∇ G σ (x)=     1 −      G σ (x)G σ (y)+  1 −      G σ (y)G σ (x)  (4.24)
                                               σ  3    2σ  2             σ  3    2σ  2
                                (Wiejak, Buxton, and Buxton 1985), which allows for a much more efficient implementation
                                using separable filtering (Section 3.2.1).
                                   In practice, it is quite common to replace the Laplacian of Gaussian convolution with a
                                Difference of Gaussian (DoG) computation, since the kernel shapes are qualitatively similar
                                (Figure 3.35). This is especially convenient if a “Laplacian pyramid” (Section 3.5) has already
                                been computed. 4
                                   In fact, it is not strictly necessary to take differences between adjacent levels when com-
                                puting the edge field. Think about what a zero crossing in a “generalized” difference of
                                Gaussians image represents. The finer (smaller kernel) Gaussian is a noise-reduced version
                                of the original image. The coarser (larger kernel) Gaussian is an estimate of the average in-
                                tensity over a larger region. Thus, whenever the DoG image changes sign, this corresponds
                                to the (slightly blurred) image going from relatively darker to relatively lighter, as compared
                                to the average intensity in that neighborhood.

                                  4  Recall that Burt and Adelson’s (1983a) “Laplacian pyramid” actually computed differences of Gaussian-filtered
                                levels.
   228   229   230   231   232   233   234   235   236   237   238