Feature Point

# Harris Corner

Learning from Cyrill Stachniss.

Resources

Criterion:

&=\lambda_1 \lambda_2 - k(\lambda_1 + \lambda_2)^2 \end{align}$$- M is the [[notes/Structure Matrix|Structure Matrix]] - \lambda_1 and \lambda_2 are the two eigenvalues of the structure matrix - k \in [0.04, 0.06] So in practice, we write it as a system of equations and solve for \lambda_1 and \lambda_2$$\text{Det}(M) - k (\text{Trace}(M))^2 = \lambda_1 \lambda_2 - k(\lambda_1 + \lambda_2)^2$$#### Solving the equation Cyrill Stachniss seems to approach this in a different way? I just reasoned this out, also getting the help of [[notes/ChatGPT|ChatGPT]]. The eigenvalues of a matrix M are found by solving the characteristic equation \text{det}(M - \lambda I) = 0, where I is the identity matrix and \lambda represents the eigenvalues. For the 2x2 [[notes/Structure Matrix|Structure Matrix]] M of the Harris Corner Detector,$$M = \begin{bmatrix} \sum_{\text{W}} J_x^2 & \sum_{\text{W}} J_x J_y \\ \sum_{\text{W}} J_y J_x & \sum_{\text{W}} J_y^2 \end{bmatrix}$$Rewriting the matrix in simpler terms$$M = \begin{pmatrix} A & C \\ C & B \end{pmatrix}$$the [[notes/Eigenvalues and Eigenvectors|Characteristic Equation]] is:$$\text{det} \left(\begin{pmatrix} A - \lambda & C \\ C & B - \lambda \end{pmatrix} \right) = (A - \lambda)(B - \lambda) - C^2 = 0$$Simplifying, we get:$$\lambda^2 - (A+B)\lambda + (AB - C^2) = 0$$Solving this equation gives us the solution to the [[notes/Eigenvalues and Eigenvectors|Eigenvalue]]s. Notice that$$\text{det}(M) = AB - C^2, \quad \text{trace}(M) = A+B$$So we can simply the equation to$$\lambda^2 - (\text{trace}(M)) \lambda + \text{det}(M) = 0 - Plug the above in the [[notes/Quadratic Formula|Quadratic Formula]] and you will find the 2 eigenvalues > [!question] Are there always 2 eigenvalues? > > > No, a 2x2 matrix can have either one or two distinct eigenvalues. If the matrix is diagonalizable, it will typically have two distinct eigenvalues. However, it may have only one eigenvalue if it is a defective matrix. ![[attachments/Screenshot 2023-10-07 at 3.31.30 PM.png]] So how is this threshold calculated? I have 2 different eigenvalues, how do I know if $\lambda_1 >> \lambda_2$? In practice > [!question] How fast / slow does this algorithm run? > > > ? ### Related - [[notes/Shi-Tomasi Corner Detector|Shi-Tomasi Corner Detector]]