1 : What are features?
- Exactly, there are no formal definition of feature yet(atleast I can't find it), in the world of computer vision, you could treat it as the information you use for tracking, discern the objects(just my intuition, if you find any errors, please give me some comments).
2 : Why choose corners as features?
- Because in many cases, corners are good features.They provide enough messages for the program to discern the location of the objects.
3 : How do we find the corners?
This is the main part of this post, now let me try to explain it.
In a nutshell, we use the lambdas of Hessian Matrix(1) to measure the change rate of the vectors.There are three conditions
- lambda one and lambda two are small, that means this pixel belong to a flat region.
- lambda one or lambda two are big, that means this pixel belong to edges.
- lambda one and lambda two are big, that means this pixel belong to corners.
So far,so good, but why do this work? From graph_00, we discovered that the region around the corners are changing rapidly, that means if the pixel belong the the corner, the pixels surrounded it have a high chance to change rapidly for every direction.
Computation of the lambdas are very expensive, so Harris and Stephens proposed a function Mc(2) to approximate the it.
graph_01(I take it from the original paper) explain what are the Mc doing.We could decide which Mc qualify the condition as corner.
4 : Where are the Hessian matrix come from?
The Hessian Matrix are deduced from the sum of square difference(3), (4) is approximated by the taylor series(only take the zero and first derivative terms).Substitude (4) to (3), we get (5), and we can express (5) to the new equation--(6). The A of (6) is the Harris matrix we care about.