Image Corner Detection through Curvature Scale Space
Image corner detection is an important task in various computer vision and image understanding systems. Applications include motion tracking, object recognition, and stereo matching. Corner detection should satisfy a number of important criteria:
The Curvature Scale Space (CSS) corner detector is very robust with respect to image noise, and is believed to perform better than existing corner detectors. It was developed in collaboration with Riku Suomela. The following is an outline of the CSS corner detector:
- All the true corners should be detected.
- No false corners should be detected.
- Corner points should be well localized.
- Corner detector should be robust with respect to noise.
- Corner detector should be efficient.
Note that the detection of corners can be carried out at multiple scales. As a result, by adjusting the scale, the number of corner points recovered can increase or decrease, depending on the requirements of later processes. For example, in a motion tracking system, object detail is not needed when tracking in a non-cluttered scene, and a small number of corners will be sufficient. However, when part of the object becomes occluded, a larger number of corners will be required.
- Extract the edge contours from the input image using any good edge detector such as Canny.
- Fill small gaps in edge contours. When the gap forms a T-junction, mark it as a T-corner.
- Compute curvature on the edge contours at a high scale.
- The corner points are defined as the maxima of absolute curvature that are above a threshold value.
- Track the corners through multiple lower scales to improve localization.
- Compare T-corners to the corners found using the CSS procedure and remove very close corners.
It has been argued that corner detectors that perform directly on images may be preferrable since they do not depend on the results of an earlier stage (such as edge detection). It should be pointed out that most corner detectors carry out some form of edge detection either implicitly or explicitly. As a result, even when they appear to be directly applicable to the input image, the results are affected by the implicit edge detection. The CSS detector simply makes the process explicit.
The CSS detector makes both images edges and image corners available for later processes. It can also provide additional point features as well as the traditional corners. The new features are the curvature zero-crossings of the image edge contours recovered in a similar way as the corners. They can complement the traditional corners when used by later processes. For example, they can be utilized by motion tracking systems in an area of the image where there is a lack of corner features.
The CSS corner detector was implemented in C++. Over 80% of the time used by the CSS detector is spent in edge detection. The CSS detector was compared to three other corner detectors. These are as following:
All four detectors were tested on five input images with different properties. Note that it was attempted to obtain the best possible results for each corner detector tested by searching for optimal parameter values. Other corner detectors were also considered. The following are the results obtained on each of the input images:
- The Plessey corner detector (C G Harris, Proc Alvey Vision Conf, 1987).
- The Kithen & Rosenfeld corner detector (in Pattern Reognition Letters, 1982).
- The SUSAN corner detector (S Smith, Proc BMVC, 1992).
- Artificially created image
- Artificially created image with added noise
- Blocks image
- House image
- Lab image
Details of this technique can be found in published papers (such as ICPR'98, Eusipco'98; and PAMI, Dec 1998).
F.Mokhtarian@ee.surrey.ac.uk June 2003