Mathématiques de la détection des points d'angle Harris


23

Il s'agit de l'expression mathématique pour la détection des coins Harris:

Ceci est l'expression mathématique pour la détection des coins Harris ...

Mais j'ai les doutes suivants:

  1. Quelle est la signification physique de et v ? De nombreuses références indiquent que c'est l'ampleur du décalage de la fenêtre w . Alors, combien la fenêtre est-elle décalée? Un pixel ou deux pixels?uvw
  2. La somme des positions des pixels est-elle couverte par la fenêtre?
  3. En supposant simplement que , I ( x , y ) est l'intensité du pixel unique en ( x , y ) ou la somme des intensités à l'intérieur de la fenêtre avec un centre en ( x , y ) ?w(X,y)=1je(X,y)(X,y)(X,y)
  4. Selon wiki, ils disent que l'image est 2D, notée I et demande ensuite de considérer un patch d'image sur la zone , puis utilise la notation I ( x , y )(X,y)je(X,y)

Je trouve confus de saisir l'explication mathématique. Quelqu'un a une idée?


2
Découvrez cette conférence sur le détecteur de coin Harris. C'est très clair: youtube.com/watch?v=P35WsRDnTsU&t=41m12s

J'ai écrit un article dans mon blog personnel basé sur la conférence ci-dessus. matlabcorner.wordpress.com/2012/11/17/…
Andrey Rubshtein

Réponses:


31

Le sens de cette formule est vraiment assez simple. Imaginez que vous preniez deux petites zones de même taille d'une image, la bleue et la rouge:

entrez la description de l'image ici

La fonction de fenêtre est égale à 0 en dehors du rectangle rouge (pour simplifier, nous pouvons supposer que la fenêtre est simplement constante dans le rectangle rouge). Ainsi, la fonction de fenêtre sélectionne les pixels que vous souhaitez regarder et attribue des poids relatifs à chaque pixel. (La fenêtre gaussienne est la plus courante, car elle est symétrique en rotation, efficace pour calculer et accentue les pixels près du centre de la fenêtre.) Le rectangle bleu est décalé de (u, v).

Ensuite, vous calculez la somme des différences au carré entre les parties de l'image marquées en rouge et bleu, c'est-à-dire que vous les soustrayez pixel par pixel, mettez la différence au carré et résumez le résultat (en supposant, pour plus de simplicité, que la fenêtre = 1 dans la zone que nous recherchons) à). Cela vous donne un numéro pour chaque possible (u, v) -> E (u, v).

Voyons ce qui se passe si nous calculons cela pour différentes valeurs de u / v:

Gardez d'abord v = 0:

entrez la description de l'image ici

Cela ne devrait pas surprendre: la différence entre les parties de l'image est la plus faible lorsque le décalage (u, v) entre elles est de 0. Lorsque vous augmentez la distance entre les deux patchs, la somme des différences au carré augmente également.

En gardant u = 0:

entrez la description de l'image ici

L'intrigue semble similaire, mais la somme des différences au carré entre les deux parties de l'image est beaucoup plus petite lorsque vous déplacez le rectangle bleu dans la direction du bord.

Un tracé complet de E (u, v) ressemble à ceci:

entrez la description de l'image ici

L'intrigue ressemble un peu à un "canyon": il n'y a qu'une petite différence si vous déplacez l'image dans la direction du canyon. C'est parce que ce patch d'image a une orientation dominante (verticale).

Nous pouvons faire de même pour un patch d'image différent:

entrez la description de l'image ici

Ici, l'intrigue de E (u, v) est différente:

entrez la description de l'image ici

Peu importe la façon dont vous déplacez le patch, il est toujours différent.

Donc, la forme de la fonction E (u, v) nous dit quelque chose sur le patch d'image

  • si E (u, v) est proche de 0 partout, il n'y a pas de texture dans le patch d'image que vous regardez
  • si E (u, v) est "en forme de canyon", le patch a une orientation dominante (cela pourrait être un bord ou une texture)
  • si E (u, v) est "en forme de cône", le patch a une texture, mais pas d'orientation dominante. C'est le genre de patch qu'un détecteur de coin recherche.

De nombreuses références disent que c'est l'ampleur du décalage de la fenêtre «w» ... alors combien la fenêtre est-elle décalée? Un pixel ... deux pixels?

Normalement, vous ne calculez pas du tout E (u, v). Vous n'êtes intéressé que par sa forme au voisinage de (u, v) = (0,0). Vous voulez donc simplement l'expansion de Taylor de E (u, v) près de (0,0), qui en décrit complètement la "forme".

La somme des positions des pixels est-elle couverte par la fenêtre?

Mathématiquement parlant, il est plus élégant de laisser la plage de sommation sur tous les pixels. Pratiquement parlant, il est inutile de sommer les pixels où la fenêtre est 0.


merci une tonne Nikie ....
rotation_image

2
Je savais que vous obtiendriez une excellente réponse ici, @rotating_image
karlphillip

merci karlphillip ..
rotation_image

1
Un million de votes positifs!
Phonon
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.