Content deleted Content added
Typo in quote from Rosten's original paper |
No edit summary |
||
(20 intermediate revisions by 11 users not shown) | |||
Line 1:
'''Features from accelerated segment test (FAST)''' is a [[corner detection]] method, which could be used to extract [[Feature (computer vision)|feature]] points and later used to track and map objects in many [[computer vision]] tasks. The FAST corner detector was originally developed by Edward Rosten and Tom Drummond, and was published in 2006.<ref>
{{cite
|last1=Rosten |first1=Edward
|last2=Drummond |first2=Tom
|title=Computer Vision – ECCV 2006
|s2cid=1388140
|date=2006
|
|series=Lecture Notes in Computer Science
|volume=3951
|pages=430–443
|doi=10.1007/11744023_34
|isbn=978-3-540-33832-1
}}
</ref> The most promising advantage of the FAST
== Segment test detector ==
[[File:FAST Corner Detector.jpg|thumb|The pixels used by the FAST corner detector]]
FAST corner detector uses a circle of 16 pixels (a [[Midpoint circle algorithm|Bresenham circle]] of radius 3) to classify whether a candidate point p is actually a corner. Each pixel in the circle is labeled from integer number 1 to 16 clockwise. If a set of N contiguous pixels in the circle are all brighter than the intensity of candidate pixel p (denoted by I<sub>p</sub>) plus a threshold value t or all darker than the intensity of candidate pixel p minus threshold value t, then p is classified as corner. The conditions can be written as:
*Condition 1: A set of N contiguous pixels S,
*Condition 2: A set of N contiguous pixels S,
So when either of the two conditions is met, candidate p can be classified as a corner.
== High-speed test ==
Line 26 ⟶ 33:
== Improvement with machine learning ==
In order to address the first two weakness points of high-speed test, a [[machine learning]] approach is introduced to help improve the detecting algorithm. This
For candidate p, each ___location on the circle x ∈ {1, 2, 3, ..., 16} can be denoted by p→x. The state of each pixel, S<sub>p→x</sub> must be in one of the following three states:
Line 38 ⟶ 45:
* P<sub>b</sub> = {p ∈ P : S<sub>p→x</sub> = b }
Secondly, a [[decision tree]] algorithm, the [[ID3 algorithm]] is applied to the 16 locations in order to achieve the maximum [[information gain]]. Let K<sub>p</sub> be a boolean variable which indicates whether p is a corner, then the [[Entropy (information theory)|entropy]] of K<sub>p</sub> is used to measure the information of p being a corner. For a set of pixels Q, the total
*H(Q) = ( c + n ) log<sub>2</sub>( c + n ) - clog<sub>2</sub>c - nlog<sub>2</sub>n
** where c = |{ i ∈ Q: K<sub>i</sub> is true}| (number of corners)
** where n = |{ i ∈ Q: K<sub>i</sub> is false}| (number of non-corners)
Line 46 ⟶ 53:
*H<sub>g</sub>= H(P) - H(P<sub>b</sub>) - H(P<sub>s</sub>) - H(P<sub>d</sub>)
A recursive process is applied to each subsets in order to select each x that could maximize the
This generated [[decision tree]] can then be converted into programming code, such as [[C (programming language)|C]] and [[C++]], which is just a bunch of nested if-else statements. For optimization purpose, [[profile-guided optimization]] is used to compile the code. The
Notice that the corners detected using this
== Non-maximum suppression ==
Line 58 ⟶ 65:
== FAST-ER: Enhanced repeatability ==
FAST-ER detector is an improvement of the FAST detector using a [[metaheuristic]] algorithm, in this case [[simulated annealing]]. So that after the optimization, the structure of the decision tree would be optimized and suitable for points with high repeatability. However, since [[simulated annealing]] is a metaheurisic algorithm, each time the algorithm would generate a different optimized decision tree. So it is better to take efficiently large amount of iterations to find a solution that is close to the real optimal. According to Rosten, it takes about 200 hours on a [[Pentium 4]] at 3 GHz which is 100 repeats of 100,000 iterations to optimize the FAST detector.
== Comparison with other detectors ==
In Rosten's research,<ref>Edward Rosten, [http://
The parameter settings for the detectors (other than FAST) are as follows:
Line 131 ⟶ 138:
|}
* Speed tests were performed on a 3.0 GHz [[Pentium D|Pentium 4-D]] computer. The dataset are divided into a training set and a test set. The training set consists of 101 [[monochrome]] images with a resolution of 992×668 pixels. The test set consists of 4968 frames of [[monochrome]] 352×288 video. And the result is:
{| class="wikitable"
|-
Line 157 ⟶ 164:
== Bibliography ==
* {{cite
| year=2005 | doi=10.1109/ICCV.2005.104 | volume=2| pages=1508–1511| isbn=978-0-7695-2334-7 | citeseerx=10.1.1.60.4715 | s2cid=1505168 }}▼
* {{cite journal | last=Rosten | first=Edward |author2=Reid Porter |author3=Tom Drummond | title=
▲| year=2005 | doi=10.1109/ICCV.2005.104 | volume=2| pages=1508–1511}}
| arxiv=0810.2434| year=2010 | doi=10.1109/TPAMI.2008.275 | pmid=19926902 | volume=32| issue=1 | pages=105–119| s2cid=206764370 }}▼
* {{cite
▲| arxiv=0810.2434| year=2010 | doi=10.1109/TPAMI.2008.275 | volume=32| pages=105–119}}
▲* {{cite journal | last=Rosten | first=Edward |author2=Tom Drummond | title=Machine learning for high-speed corner detection | journal=European Conference on Computer Vision
| url=http://edwardrosten.com/work/rosten_2006_machine.pdf
| year=2006 | doi=10.1007/11744023_34 | volume=1| pages=430–443| series=Lecture Notes in Computer Science | isbn=978-3-540-33832-1 | citeseerx=10.1.1.64.8513 | s2cid=1388140 }}
== External links ==
|