1. Overview
In this tutorial, we’ll talk about Harris Corner Detection, a mathematical approach to detecting corners in an image. First, we’ll illustrate the mathematical formulation. Then, we’ll show the step-by-step procedure to perform the Harris Corner Detector.
2. Mathematical Formulation
A corner is a point whose local neighborhood is characterized by large intensity variation in all directions. Corners are important features in computer vision because they are points stable over changes of viewpoint and illumination. The so-called Harris Corner Detector was introduced by Chris Harris and Mike Stephens in 1988 in the paper “A Combined Corner and Edge Detector”.
Let’s consider a two-dimensional image and a patch of size centered in . We want to evaluate the intensity variation occurred if the window is shifted by a small amount . Such variation can be estimated by computing the Sum of Squared Differences (SSD):
(1)
where is a window function that can be a rectangular or a Gaussian function. We need to maximize the function for corner detection. Since and are small, the shifted intensity can be approximated by the following first-order Taylor expansion:
(2)
where and are partial derivatives of in and direction, respectively. By substituting (2) in (1) we obtain:
(3)
The equation (3) can be expressed in the following matrix form:
(4)
where is a matrix computed from image derivatives:
(5)
The matrix is called structure tensor.
The Harris detector uses the following response function that scores the presence of a corner within the patch:
(6)
is a constant to chose in the range . Since is a symmetric matrix, and where and are the eigenvalues of . Hence, we can express the corner response as a function of the eigenvalues of the structure tensor:
(7)
So the eigenvalues determine whether a region is an edge, a corner or flat:
- if and are small, then is small and the region is flat;
- if or viceversa, then and the region is an edge;
- if and both eigenvalues are large, then R is large and the region is a corner.
The classification of the points using the eigenvalues of the structure tensor is represented in the following figure:
3. Algorithm
Harris corner detector consists of the following steps.
- Convert the original image into a grayscale image . The pixel values of are computed as a weighted sum of the corresponding , , values: (8)
- Compute the derivatives and by convolving the image with the Sobel operator: (9)
- Compute the products of the derivatives , , .
- Convolve the images , , with a Gaussian filter or a mean filter. Define the structure tensor for each pixel as expressed in eq. (5).
- Compute the response function for each pixel: (10)
- Set a threshold on the value of and find pixels with responses above this threshold. Finally, compute the non-max suppression in order to pick up the optimal corners.
4. Example
In the following figure we show a real application of the Harris Corner Detector. The corner response map (top-right image) was computed using Eq. 10 with k=0.04. The bottom-left image represents the thresholded corner response obtained with . The detected corners obtained after the application of the non-max suppression are shown in the bottom-right image.
5. Conclusion
In this article, we reviewed the Harris Corner Detector, a fundamental technique in computer vision. We explained the mathematical formulation, and finally, we explained how to implement it.