1995) algorithms. The second approach, used for ex-
ample in the Beaudet and Deriche (Deriche and Gi-
raudon, 1993) corner detectors, is the topology-based
approach. Finally, there is a group of corner detec-
tion methods based on autocorrelation. These meth-
ods include the Moravec (Moravec, 1979) and Har-
ris/Plessey (Harris and Stephens, 1988) algorithm.
There is also a number of methods, that do not fall
into the previously mentioned categories. An exam-
ple is the Curvature Scale Space (CSS) operator, that
detects corners by searching for local curvature max-
ima of the edges detected in the image (Mokhtarian
and Suomela, 1998). Another example is the SU-
SAN (Smallest Univalue Segment Assimilating Nu-
cleus) edge and corner detector, that relies more on
structural than mathematical properties of the image
(Smith and Brady, 1997). Another possible approach
to corner detection is to use machine learning (Tsai,
1997). Using corner-like image patches, a neural
network can be trained to effectively detect corners.
One of the recently developed corner detection algo-
rithms is the FAST (standing for features from ac-
celerated segment test) algorithm, first presented in
(Rosten and Drummond, 2005) and further developed
in (Rosten and Drummond, 2006). We have decided
to implement this algorithm in hardware, because it
is very well suited for our future applications (track-
ing, simultaneous localization and mapping (SLAM)
and visual odometry). It is many times faster than
other existing corner detectors and shows very good
repeatability under large aspect changes and for dif-
ferent kinds of features. While the first advantage is
not of very high importance (the original implemen-
tation of the method was in software and software-
attuned approach to achieve speedup), the second is
crucial for proper work of higher level algorithms and
is very desirable. Our investigation led to the conclu-
sion, that FAST algorithm can also be easily imple-
mented in hardware in its pure form, that performsex-
haustive search for every image pixel (such approach
is much less complicated to implement in hardware
than the decision tree used in (Rosten andDrummond,
2006)). The algorithm does not employ multi-scale
corner search – instead it looks for corners locally,
by analyzing successive image patches. This enables
the specialized hardware architecture to be organized
as pipeline, and does not require RAM memory for
data storage. The image that is subject of corner de-
tection does not require any preprocessing, which is
also an advantage. The algorithm has also some dis-
advantages. First, it is not robust to high levels noise.
However, in our target system we plan to use high
quality CameraLink camera, so the acquisition noise
level will be kept to the minimum. The algorithm is
p
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Figure 1: The illustration of segment test. The pixels 1
through 16 form the Bresenham circle. The contiguous
segment of pixels satisfying the thresholding condition is
marked with the dashed line.
dependenton a threshold, but many of the widelyused
corner detectors are also threshold-dependent. The al-
gorithm can also respond to single-pixel-wide lines at
certain angles, when the quantisation of the Bresen-
ham circle misses the line.
2 THE FAST ALGORITHM
In order to indicate whether the pixel p with a specific
intensity value I
p
is a corner, the FAST detector ana-
lyzes a 16 pixel Bresenham circle surrounding p. The
Bresenham circle is an approximation of the circle,
drawn on a raster)see figure 1. The positive detection
is declared if n points of this circle form a contiguous
segment which is either darker than the center point
minus a given threshold t, or brighter than the center
point plus the threshold (see figure 1).
Direct application of this criterion turned out to be
ineffective, thus to improve the performance n is set
to 12 in the first version of the algorithm, and an ad-
ditional, coarse test was executed. During the coarse
test, four pixels lying on the main compass directions
(indexed 1, 5, 9 and 13) are analyzed. The reason for
this is that any 12-pixels arc on the tested circle in-
cludes 3 of those points. Only if at least 3 of them are
darker than I
p
− t or brighter than I
p
+ t, the appro-
priate corner candidate p is tested thoroughly. This
approachenables discarding many candidates quickly
and reduces effectively the image processing time.
The coarse test improves the detector’s performance,
however it has several weaknesses. The main dis-
advantage is that it is not valid for n < 12. More-
over, the choice of the 4 examined points involves
assumptions about the features’ appearance distribu-
tions and the information gained on this stage of pro-
cessing is discarded. To eliminate these flaws Rosten
and Drummond created the decision tree using the
ID3 algorithm on the samples acquired with the di-
rect segment test (Rosten and Drummond, 2006). To
HIGH-SPEED IMAGE FEATURE DETECTION USING FPGA IMPLEMENTATION OF FAST ALGORITHM
175