Professional Documents
Culture Documents
Feature Description & Extraction: FAST (Features From Accelerated Segment Test)
Feature Description & Extraction: FAST (Features From Accelerated Segment Test)
● Select a set of images for training,run the FAST algorithm to detect the interest points
● For every pixel “p‟, store the 16 pixels surrounding it, as a vector,and repeat this for all pixels
● Now this is the vector P which contains all the data for training.
● Each value in the vector can take three states. Darker than p, lighter than p or similar to p.
● Depending on the states the entire vector P will be subdivided into three subsets, Pd, Ps, Pb.
● Define a variable Kp which is true if p is an interest point and false if p is not an interest point.
● Use the ID3 algorithm (decision tree classifier) to query each subset using the variable Kp
for the knowledge about the true class.
● The ID3 algorithm works on the principle of entropy minimization. Query the 16 pixels in
such a way that the true class is found (interest point or not) with minimum number of
queries. Or in other words, select the pixel x, which has the most information about the pixel
Then some pixel intensity comparisons are done on these location pairs. For eg, let first location pairs be
and . If , then its result is 1, else it is 0. This is applied for all the location pairs to get a -
dimensional bitstring.This can be 128, 256 or 512. So once we get this, we can use Hamming Distance
to match these descriptors.
Brief in OpenCV
Approximate Location
The SIFT algorithm uses the Difference of Gaussians which is an approximation of LoG. This process is
done for different octaves of the image in the Gaussian Pyramid.Once this DoG is found, images are
searched for local extrema over scale and space. It basically means that the keypoint is best represented
in that scale.
Keypoint Localization
Once potential keypoints locations are found, they have to be refined to get more accurate results. They
used Taylor series expansion of scale space to get more accurate location of extrema, and if the intensity
at this extrema is less than a threshold value (0.03 as per the paper), it is rejected. This threshold is called
contrastThreshold in OpenCV.
DoG has higher response for edges, so edges also need to be removed. For this, a concept similar to
Harris corner detector is used. They used a 2x2 Hessian matrix (H) to compute the principal curvature. So
here we use a simple function: if this ratio is greater than a threshold, that keypoint is discarded. So it
eliminates any low-contrast keypoints and edge keypoints and what remains is strong interest points.
Assigning orientations
Now an orientation is assigned to each keypoint to achieve invariance to image rotation. A neighborhood is
taken around the keypoint location depending on the scale, and the gradient magnitude and direction is
calculated in that region. An orientation histogram with 36 bins covering 360 degrees is created. It is
weighted by gradient magnitude and gaussian-weighted circular window with equal to 1.5 times the
scale of the keypoint. The highest peak in the histogram is taken and any peak above 80% of it is also
considered to calculate the orientation. It creates keypoints with the same location and scale, but different
directions. It contributes to stability of matching.
Keypoints between two images are matched by identifying their nearest neighbours. But in some cases,
the second closest-match may be very near to the first. It may happen due to noise or some other reasons.
In that case, the ratio of closest-distance to second-closest distance is taken. If it is greater than 0.8, they are
rejected. It eliminates around 90% of false matches while discards only 5% correct matches.
SIFT in OpenCV
There are two stages in obtaining a SURF descriptor, first detecting SURF point and then extracting the
descriptor at the SURF point. The detection of SURF points makes use of scale space theory . For
detection of SURF points, a Fast-Hessian matrix is used. The determinant of the Hessian matrix is used for
deciding whether a point can be chosen as an interest point or not. In an image I, the Hessian matrix at
point X is defined by :
The Gaussian second order derivative needs to be discretized before performing convolution with the
image. Dxx , Dyy and Dxy represent the convolution of box filters with the image. These approximated
second order Gaussian derivative calculations are made fast by using integral images .
The scale space of the image is analyzed by changing the size of the box filter. Generally Box filter begins
with a default size of 9x9 which corresponds to Gaussian derivative with = 1.2. The filter size is later up
scaled to sizes of 15x15,21x21, 27x27 etc. The approximated determinant of Hessian matrix is calculated
at each scale and the non-maximum suppression in 333 neighborhoods is applied to find the maxima. The
SURF points location and scale, s is obtained with the maxima values.
ORB in OpenCV:
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.405.9932&rep=rep1&type=pdf
http://www.willowgarage.com/sites/default/files/orb_final.pdf
https://pdfs.semanticscholar.org/2d86/64b7ef983cc5529cf10caf4cb623098724de.pdf?
_ga=2.166235966.1645444858.1586974232-375200504.1586460489
http://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/AV1011/AV1FeaturefromAcceleratedSegmentTest.pdf
http://mi.eng.cam.ac.uk/~er258/work/fast.html
http://mi.eng.cam.ac.uk/~cipolla/publications/inproceedings/2010-BMVC-action.pdf
https://www.cs.ubc.ca/~lowe/525/papers/calonder_eccv10.pdf
https://www.epfl.ch/labs/cvlab/research/descriptors-and-keypoints/research-detect-brief/
https://link.springer.com/chapter/10.1007/978-3-642-15561-1_56
https://www.isprs.org/proceedings/xxxviii/part3/b/pdf/7_XXXVIII-part3B.pdf
https://www.cse.iitb.ac.in/~ajitvr/CS763/SIFT.pdf
http://www.cse.iitm.ac.in/~vplab/courses/CV_DIP/PDF/Feature.pdf
http://people.ee.ethz.ch/~surf/eccv06.pdf
http://www.cs.jhu.edu/~misha/ReadingSeminar/Papers/Bay08.pdf
http://www.cim.mcgill.ca/~siddiqi/COMP-558-2008/AnqiGaurav.pdf
https://www.ijser.org/researchpaper/Implementation-of-High-Performance-Speeded-Up-Robust-features-Detection.pdf