Machine Learning For High-Speed Corner Detection: July 2006
Machine Learning For High-Speed Corner Detection: July 2006
net/publication/215458901
CITATIONS READS
2,726 4,272
2 authors, including:
Edward Rosten
University of Cambridge
60 PUBLICATIONS 5,617 CITATIONS
SEE PROFILE
All content following this page was uploaded by Edward Rosten on 04 June 2014.
1 Introduction
Corner detection is used as the first step of many vision tasks such as tracking,
SLAM (simultaneous localisation and mapping), localisation, image matching
and recognition. Hence, a large number of corner detectors exist in the litera-
ture. With so many already available it may appear unnecessary to present yet
another detector to the community; however, we have a strong interest in real-
time frame rate applications such as SLAM in which computational resources
are at a premium. In particular, it is still true that when processing live video
streams at full frame rate, existing feature detectors leave little if any time for
further processing, even despite the consequences of Moore’s Law.
Section 2 of this paper demonstrates how a feature detector described in ear-
lier work can be redesigned employing a machine learning algorithm to yield a
large speed increase. In addition, the approach allows the detector to be gen-
eralised, producing a suite of high-speed detectors which we currently use for
real-time tracking [2] and AR label placement [3].
To show that speed can been obtained without necessarily sacrificing the
quality of the feature detector we compare our detector, to a variety of well-
known detectors. In Section 3 this is done using Schmid’s criterion [1], that
2 Edward Rosten and Tom Drummond
when presented with different views of a 3D scene, a detector should yield (as
far as possible) corners that correspond to the same features in the scene. Here
we show how this can be applied to 3D scenes for which an approximate surface
model is known.
where b denotes averaging performed over the image patch (a smooth circular
window can be used instead of a rectangle to perform the averaging resulting in
a less noisy, isotropic response). Harris then defines the corner response to be
This is large if both eigenvalues of H are large, and it avoids explicit computation
of the eigenvalues. It has been shown[6] that the eigenvalues are an approximate
measure of the image curvature.
Based on the assumption of affine image deformation, a mathematical anal-
ysis led Shi and Tomasi[7] conclude that it is better to use the smallest eigen
value of H as the corner strength function:
A number of suggestion have [5,7,8,9] been made for how to compute the corner
strength from H and these have been all shown [10] to be equivalent to various
matrix norms of H
Zheng et al.[11] perform an analysis of the computation of H, and find some
suitable approximations which allow them to obtain a speed increase by com-
puting only two smoothed images, instead of the three previously required.
Lowe [12] obtains scale invariance by convolving the image with a Difference
of Gaussians (DoG) kernel at multiple scales, retaining locations which are op-
tima in scale as well as space. DoG is used because it is good approximation
for the Laplacian of a Gaussian (LoG) and much faster to compute. An √ approx-
imation to DoG has been proposed which, provided that scales are 2 apart,
Machine learning for high-speed corner detection 3
This can only be large in the case where there corner. The test is performed
on a Bresenham circle. Since the circle is discretized, linear or circular interpo-
lation is used in between discrete orientations in order to give the detector a
more isotropic response. To this end, the authors present a method whereby the
4 Edward Rosten and Tom Drummond
16 1 2
15 3
14 4
13 p 5
12 6
11 7
10 9 8
Figure 1. 12 point segment test corner detection in an image patch. The highlighted
squares are the pixels used in the corner detection. The pixel at p is the centre of a
candidate corner. The arc is indicated by the dashed line passes through 12 contiguous
pixels which are brighter than p by more than the threshold.
minimum response function at all interpolated positions between two pixels can
be efficiently computed. Computing the response function requires performing
a search over all orientations, but any single measurement provides an upper
bound on the response. To speed up matching, the response in the horizontal
and vertical directions only is checked. If the upper bound on the response is
too low, then the potential corner is rejected. To speed up the method further,
this fast check is first applied at a coarse scale.
A fast radial symmetry transform is developed in [29] to detect points. Points
have a high score when the gradient is both radially symmetric, strong, and of
a uniform sign along the radius. The scale can be varied by changing the size of
the area which is examined for radial symmetry.
An alternative method of examining a small patch of an image to see if it
looks like a corner is to use machine learning to classify patches of the image as
corners or non-corners. The examples used in the training set determine the type
of features detected. In [30], a three layer neural network is trained to recognise
corners where edges meet at a multiple of 45◦ , near to the centre of an 8 × 8
window. This is applied to images after edge detection and thinning. It is shown
how the neural net learned a more general representation and was able to detect
corners at a variety of angles.
if there exists a set of n contiguous pixels in the circle which are all brighter
than the intensity of the candidate pixel Ip plus a threshold t, or all darker
than Ip − t, as illustrated in Figure 1. n was chosen to be twelve because it
admits a high-speed test which can be used to exclude a very large number of
non-corners: the test examines only the four pixels at 1, 5, 9 and 13 (the four
compass directions). If p is a corner then at least three of these must all be
brighter than Ip + t or darker than Ip − t. If neither of these is the case, then p
cannot be a corner. The full segment test criterion can then be applied to the
remaining candidates by examining all pixels in the circle. This detector in itself
exhibits high performance, but there are several weaknesses:
1. The high-speed test does not generalise well for n < 12.
2. The choice and ordering of the fast test pixels contains implicit assumptions
about the distribution of feature appearance.
3. Knowledge from the first 4 tests is discarded.
4. Multiple features are detected adjacent to one another.
Here we present an approach which uses machine learning to address the first
three points (the fourth is addressed in Section 2.3). The process operates in
two stages. In order to build a corner detector for a given n, first, corners are
detected from a set of images (preferably from the target application domain)
using the segment test criterion for n and a convenient threshold. This uses a
slow algorithm which for each pixel simply tests all 16 locations on the circle
around it.
For each location on the circle x ∈ {1..16}, the pixel at that position relative
to p (denoted by p → x) can have one of three states:
d, Ip→x ≤ Ip − t (darker)
Sp→x = s, Ip − t < Ip→x < Ip + t (similar) (5)
b, Ip + t ≤ Ip→x (brighter)
Choosing an x and computing Sp→x for all p ∈ P (the set of all pixels in all train-
ing images) partitions P into three subsets, Pd , Ps , Pb , where each p is assigned
to PSp→x .
Let Kp be a boolean variable which is true if p is a corner and false otherwise.
Stage 2 employs the algorithm used in ID3[31] and begins by selecting the x
which yields the most information about whether the candidate pixel is a corner,
measured by the entropy of Kp .
The entropy of K for the set P is:
with
Sbright ={x|Ip→x ≥ Ip + t}
Sdark ={x|Ip→x ≤ Ip − t}
(9)
a diminishing cost per pixel queried that is less well modelled by our system
(which assumes equal cost for all pixel accesses), compared to the Pentium III.
Although there is a vast body of work on corner detection, there is much less
on the subject of comparing detectors. Mohannah and Mokhtarian[33] evaluate
performance by warping test images in an affine manner by a known amount.
They define the ‘consistency of corner numbers’ as
where nw is the number of features in the warped image and no is the number
of features in the original image. They also define accuracy as
na na
no + ng
ACU = 100 × ,
2
where ng are the number of ‘ground truth’ corners (marked by humans) and na
is the number of matched corners compared to the ground truth. This unfortu-
nately relies on subjectively made devisions.
Trajkovic and Hedley[28] define stability to be the number of ‘strong ’ matches
(matches detected over three frames in their tracking algorithm) divided by the
total number of corners. This measurement is clearly dependent on both the
tracking and matching methods used, but has the advantage that it can be
tested on the date used by the system.
When measuring reliability, what is important is if the same real-world fea-
tures are detected from multiple views [1] This is the definition which will be
used here. For an image pair, a feature is ‘detected’ if is is extracted in one
image and appears in the second. It is ‘repeated’ if it is also detected nearby in
the second. The repeatability is the ratio of repeated features detected features.
In [1], the test is performed on images of planar scenes so that the relationship
between point positions is a homography. Fiducial markers are projected on to
the planar scene to allow accurate computation of this.
By modelling the surface as planar and using flat textures, this technique
tests the feature detectors’ ability to deal with mostly affine warps (since image
features are small) under realistic conditions. This test is not so well matched
to our intended application domain, so instead, we use a 3D surface model to
compute where detected features should appear in other views (illustrated in
Figure 2). This allows the repeatability of the detectors to be analysed on features
caused by geometry such as corners of polyhedra, occlusions and T-junctions.
We also allow bas-relief textures to be modelled with a flat plane so that the
repeatability can be tested under non-affine warping.
A margin of error must be allowed because:
Figure 2. Repeatability is tested by checking if the same real-world features are de-
tected in different views. A geometric model is used to compute where the features
reproject to.
addition to the significant amounts of camera noise already present (from thermal
noise, electrical interference, and etc).
Figure 5. Bas-relief dataset: the model is a flat plane, but there are many objects with
significant relief. This causes the appearance of features to change in a non affine way
from different viewpoints.
that the performance drops quite rapidly with increasing noise to start with, it
soon levels off and outperforms all but the DoG detector.
The big surprise of this experiment is that the FAST feature detectors, despite
being designed only for speed, outperform the other feature detectors on these
images (provided that more than about 200 corners are needed per frame). It can
be seen in Figure 6A, that the 9 point detector provides optimal performance,
hence only this and the original 12 point detector are considered in the remaining
graphs.
The DoG detector is remarkably robust to the presence of noise. Since convo-
lution is linear, the computation of DoG is equivalent to convolution with a DoG
kernel. Since this kernel is symmetric, this is equivalent to matched filtering for
objects with that shape. The robustness is achieved because matched filtering is
optimal in the presence of additive Gaussian noise[36].
FAST, however, is not very robust to the presence of noise. This is to be
expected: Since high speed is achieved by analysing the fewest pixels possible,
the detector’s ability to average out noise is reduced.
5 Conclusions
In this paper, we have used machine learning to derive a very fast, high quality
corner detector. It has the following advantages:
– It is many times faster than other existing corner detectors.
– High levels of repeatability under large aspect changes and for different kinds
of feature.
However, it also suffers from a number of disadvantages:
– It is not robust to high levels noise.
– It can respond to 1 pixel wide lines at certain angles, when the quantisation
of the circle misses the line.
– It is dependent on a threshold.
12 Edward Rosten and Tom Drummond
We were also able to verify a number of claims made in other papers using the
method for evaluating the repeatability of corners and have shown the impor-
tance of using more than just planar scenes in this evaluation.
The corner detection code is made available from
http://mi.eng.cam.ac.uk/˜er258/work/fast.html
and
http://savannah.nongnu.org/projects/libcvd
and the data sets used for repeatability are available from
http://mi.eng.cam.ac.uk/˜er258/work/datasets.html
References
1. Schmid, C., Mohr, R., Bauckhage, C.: Evaluation of interest point detectors. In-
ternational Journal of Computer Vision 37 (2000) 151–172
2. Rosten, E., Drummond, T.: Fusing points and lines for high performance tracking.
In: 10th IEEE International Conference on Computer Vision. Volume 2., Beijing,
China, Springer (2005) 1508–1515
3. Rosten, E., Reitmayr, G., Drummond, T.: Real-time video annotations for aug-
mented reality. In: International Symposium on Visual Computing. (2005)
4. Moravec, H.: Obstacle avoidance and navigation in the real world by a seeing robot
rover. In: tech. report CMU-RI-TR-80-03, Robotics Institute, Carnegie Mellon Uni-
versity & doctoral dissertation, Stanford University. Carnegie Mellon University
(1980) Available as Stanford AIM-340, CS-80-813 and republished as a Carnegie
Mellon University Robotics Institue Technical Report to increase availability.
5. Harris, C., Stephens, M.: A combined corner and edge detector. In: Alvey Vision
Conference. (1988) 147–151
6. Noble, J.A.: Finding corners. Image and Vision Computing 6 (1988) 121–128
7. Shi, J., Tomasi, C.: Good features to track. In: 9th IEEE Conference on Computer
Vision and Pattern Recognition, Springer (1994)
8. Noble, A.: Descriptions of image surfaces. PhD thesis, Department of Engineering
Science, University of Oxford. (1989)
9. Kenney, C.S., Manjunath, B.S., Zuliani, M., Hewer, M.G.A., Nevel, A.V.: A con-
dition number for point matching with application to registration and postreg-
istration error estimation. IEEE Transactions on Pattern Analysis and Machine
Intelligence 25 (2003) 1437–1454
10. Zuliani, M., Kenney, C., Manjunath, B.: A mathematical comparison of point de-
tectors. In: Second IEEE Image and Video Registration Workshop (IVR), Wash-
ington DC, USA (2004)
11. Zheng, Z., Wang, H., Teoh, E.K.: Analysis of gray level corner detection. Pattern
Recognition Letters 20 (1999) 149–162
12. Lowe, D.G.: Distinctive image features from scale-invariant keypoints. Interna-
tional Journal of Computer Vision 60 (2004) 91–110
13. James L. Crowley, O.R.: Fast computation of characteristic scale using a half
octave pyramid. In: Scale Space 03: 4th International Conference on Scale-Space
theories in Computer Vision, Isle of Skye, Scotland, UK (2003)
14. Mikolajczyk, K., Schmid, C.: An affine invariant interest point detector. In: Eu-
ropean Conference on Computer Vision, Springer (2002) 128–142 Copenhagen.
Machine learning for high-speed corner detection 13
15. Mikolajczyk, K., Schmid, C.: Indexing based on scale invariant interest points.
In: 8th IEEE International Conference on Computer Vision, Vancouver, Canada,
Springer (2001) 525–531
16. Brown, M., Lowe, D.G.: Invariant features from interest point groups. In: 13th
British Machine Vision Conference, Cardiff, British Machine Vision Assosciation
(2002) 656–665
17. Schaffalitzky, F., Zisserman, A.: Multi-view matching for unordered image sets, or
How do I organise my holiday snaps? In: 7th Euproean Conference on Computer
Vision, Springer (2002) 414–431
18. Rutkowski, W.S., Rosenfeld, A.: A comparison of corner detection techniques for
chain coded curves. Technical Report 623, Maryland University (1978)
19. Langridge, D.J.: Curve encoding and detection of discontinuities. Computer Vision,
Graphics and Image Processing 20 (1987) 58–71
20. Medioni, G., Yasumoto, Y.: Corner detection and curve representation using cubic
b-splines. Computer Vision, Graphics and Image Processing 39 (1987) 279–290
21. Mokhtarian, F., Suomela, R.: Robust image corner detection through curvature
scale space. IEEE Transactions on Pattern Analysis and Machine Intelligence 20
(1998) 1376–1381
22. Haralick, R.M., Shapiro, L.G.: Computer and robot vision. Volume 1. Adison-
Wesley (1993)
23. Cooper, J., Venkatesh, S., Kitchen, L.: Early jump-out corner detectors. IEEE
Transactions on Pattern Analysis and Machine Intelligence 15 (1993) 823–828
24. Wang, H., Brady, M.: Real-time corner detection algorithm for motion estimation.
Image and Vision Computing 13 (1995) 695–703
25. Kitchen, L., Rosenfeld, A.: Gray-level corner detection. Pattern Recognition Let-
ters 1 (1982) 95–102
26. Guiducci, A.: Corner characterization by differential geometry techniques. Pattern
Recognition Letters 8 (1988) 311–318
27. Smith, S.M., Brady, J.M.: SUSAN - a new approach to low level image processing.
International Journal of Computer Vision 23 (1997) 45–78
28. Trajkovic, M., Hedley, M.: Fast corner detection. Image and Vision Computing
16 (1998) 75–87
29. Loy, G., Zelinsky, A.: A fast radial symmetry transform for detecting points of
interest. In: 7th Euproean Conference on Computer Vision, Springer (2002) 358–
368
30. Dias, P., Kassim, A., Srinivasan, V.: A neural network based corner detection
method. In: IEEE International Conference on Neural Networks. Volume 4., Perth,
WA, Australia (1995) 2116–2120
31. Quinlan, J.R.: Induction of decision trees. Machine Learning 1 (1986) 81–106
32. Smith, S.M.: http://www.fmrib.ox.ac.uk/~steve/susan/susan2l.c (Accessed
2005)
33. Cootes, T.F., Taylor, C., eds.: Performenace Evaluation of Corner Detection Al-
gorithms under Affine and Similarity Transforms. In Cootes, T.F., Taylor, C.,
eds.: 12th British Machine Vision Conference, Manchester, British Machine Vision
Assosciation (2001)
34. Schmid, C., Mohr, R., Bauckhage, C.: Comparing and evaluating interest points.
In: 6th IEEE International Conference on Computer Vision, Bombay, India,
Springer (1998) 230–235
35. Lowe, D.G.: Demo software: Sift keypoint detector.
http://www.cs.ubc.ca/~lowe/keypoints/ (Accessed 2005)
36. Sklar, B.: Digital Communications. Prentice Hall (1988)
14 Edward Rosten and Tom Drummond
A
Comparison of FAST detectors Legend for B–E
80 Fast 9
Fast 12
70
Harris
60 Shi & Tomasi
Repeatability %
50
DoG
Harris−Laplace
Fast 9
40
Fast 10 SUSAN
30 Fast 11 Random
Fast 12
20 Fast 13
Fast 14
10 Fast 15
Fast 16
0
0 500 1000 1500 2000
Corners per frame
B C
Box dataset Maze dataset
90 80
80 70
70
60
Repeatability %
Repeatability %
60
50
50
40
40
30
30
20 20
10 10
0 0
0 500 1000 1500 2000 0 500 1000 1500 2000
Corners per frame Corners per frame
D E
Bas-relief dataset Additive noise
80 70
70 60
60 50
Repeatability %
Repeatability %
50
40
40
30
30
20
20
10 10
0 0
0 500 1000 1500 2000 0 10 20 30 40 50
Corners per frame Noise σ