Sunday 24 July 2016

computer vision - Harris Corner Detection


In Harris Corner detection, is there any particular reason why this function is chosen:


$R=det(M)-k*trace(M)^2$


We want to a function to evaluate how fast E(u,v) fluctuate accross different direction, but can't we use other function such as:


$R=1-(\lambda_1+\lambda_2)^2$



Answer




can't we use other function such as: $R=1-(\lambda_1+\lambda_2)^2$




This formula isn't as useful, because it doesn't differentiate between two equally large eigenvalues (a corner) and one twice as large eigenvalue plus one very small one (a straight line). So for example $\lambda_1 = 2, \lambda_2 = 0$ will give the same result as $\lambda_1 = 1, \lambda_2 = 1$, although the former is probably not a corner.


But generally speaking: Yes, the Harris formula isn't the only one. You can for example use the harmonic mean between the eigenvalues, i.e. $2/(1/\lambda_1 + 1/\lambda_2) = 2 det(M)/trace(M)$. Or you can use the smaller eigenvalue directly.


The Harris corner detector was developed at a time when floating point division and square root were still expensive operations. I'd guess that was one reason why a detector that only uses multiplications was preferred.


These days, on a PC, I'm quite sure you can divide floating point numbers faster than you can get them to the CPU or GPU, so it makes sense to consider other corner detectors. On other hardware, like mobile devices or smart cameras the lower cost can still be an important advantage of the Harris corner detector.


No comments:

Post a Comment

readings - Appending 内 to a company name is read ない or うち?

For example, if I say マイクロソフト内のパートナーシップは強いです, is the 内 here read as うち or ない? Answer 「内」 in the form: 「Proper Noun + 内」 is always read 「ない...