Pourquoi utilisons-nous des descripteurs de points clés?

16

Je viens d'étudier SURF et je vais pour sa mise en œuvre, mais je ne comprenais toujours pas pourquoi nous utilisons des descripteurs.

Je comprends ce que sont les points clés et leur objectif, mais lorsque nous extrayons les points clés, pourquoi devons-nous utiliser des descripteurs? Quelle est leur importance et leur rôle dans la reconnaissance?

ARG
la source
Hé, voulez-vous en savoir plus sur SURF, ou votre question est-elle plus générale, "pourquoi avons-nous besoin de descripteurs pour les points clés?" (juste inspiré par l'apprentissage de SURF)
penelope
@penelope Ma question est plus générale sur les descripteurs
ARG
3
J'espère que cela ne vous dérange pas que j'ai rendu votre question plus générale avant de répondre.
penelope

Réponses:

22

Une chose importante à comprendre est qu'après avoir extrait les points clés, vous obtenez uniquement des informations sur leur position , et parfois leur zone de couverture (généralement approximée par un cercle ou une ellipse) dans l'image. Bien que les informations sur la position des points clés puissent parfois être utiles, elles ne disent pas grand-chose sur les points clés eux-mêmes.

En fonction de l'algorithme utilisé pour extraire le point clé (SIFT, coins Harris, MSER), vous connaîtrez certaines caractéristiques générales des points clés extraits (par exemple, ils sont centrés autour des taches, des bords, des coins proéminents ...) mais vous ne saurez pas en quoi différents ou similaire un point clé est à l'autre.

Voici deux exemples simples où seules la position et la zone des points clés ne nous seront pas utiles:

  • Si vous avez une image A (d'un ours sur fond blanc), et une autre image B, copie exacte de A mais traduite pour quelques pixels: les points clés extraits seront les mêmes (sur la même partie de cet ours). Ces deux images doivent être reconnues comme identiques ou similaires.

    Mais, si la seule information dont nous disposons est leur position, et que cela a changé à cause de la traduction, vous ne pouvez pas comparer les images.

  • Si vous avez une image A (disons, d'un canard cette fois), et une autre image B, exactement le même canard qu'en A sauf deux fois la taille: les points clés extraits seront les mêmes (mêmes parties du canard). Ce sont aussi les mêmes images (similaires).

    Mais toutes leurs tailles (zones) seront différentes: tous les points clés de l'image B seront deux fois plus grands que ceux de l'image A.

Alors, voici venir descripteurs : ils sont la façon de comparer les points clés. Ils résument, au format vectoriel (de longueur constante), certaines caractéristiques des points-clés. Par exemple, cela pourrait être leur intensité dans le sens de leur orientation la plus prononcée. Il s'agit d'attribuer une description numérique à la zone de l'image à laquelle le point clé se réfère.

Certaines choses importantes pour les descripteurs sont:

  • ils doivent être indépendants de la position du point clé

    Si le même point clé est extrait à différentes positions (par exemple à cause de la traduction), le descripteur doit être le même.

  • ils doivent être robustes contre les transformations d'images

    Quelques exemples sont des changements de contraste (par exemple image du même endroit pendant une journée ensoleillée et nuageuse) et des changements de perspective (image d'un bâtiment de centre-droit et centre-gauche, nous aimerions toujours le reconnaître comme un même bâtiment) .

    Bien sûr, aucun descripteur n'est complètement robuste contre toutes les transformations (ni contre un seul s'il est fort, par exemple un grand changement de perspective).

    Différents descripteurs sont conçus pour être robustes contre différentes transformations, ce qui est parfois opposé à la vitesse nécessaire pour les calculer.

  • ils doivent être indépendants de l'échelle

    Les descripteurs doivent tenir compte de l'échelle. Si la partie «proéminente» d'un point clé est une ligne verticale de 10 pixels (à l'intérieur d'une zone circulaire avec un rayon de 8 pixels), et la partie proéminente d'une autre une ligne verticale de 5 pixels (à l'intérieur d'une zone circulaire avec un rayon de 4 pixels) - ces points clés doivent se voir attribuer des descripteurs similaires.

Maintenant que vous avez calculé les descripteurs pour tous les points clés, vous avez un moyen de comparer ces points clés . Pour un exemple simple de correspondance d'images (lorsque vous savez que les images sont du même objet et que vous souhaitez identifier les parties dans différentes images qui représentent la même partie de la scène, ou souhaitez identifier le changement de perspective entre deux images) , vous compareriez chaque descripteur de point-clé d'une image à chaque descripteur de point-clé de l'autre image. Comme les descripteurs sont des vecteurs de nombres, vous pouvez les comparer avec quelque chose d'aussi simple que la distance euclidienne . Il existe bien sûr des distances plus complexes qui peuvent être utilisées comme mesure de similitude. Mais à la fin, vous diriez queles points clés dont les descripteurs ont la plus petite distance entre eux sont des correspondances , par exemple les mêmes "lieux" ou "parties d'objets" dans différentes images.

Pour une utilisation plus complexe des points-clés / descripteurs, vous devriez jeter un coup d'œil à cette question - en particulier «l'approche locale de bas niveau» dans ma réponse et l' approche «sac de mots» dans la réponse @Maurits . De plus, les liens fournis dans ces réponses sont utiles.

Pénélope
la source
meilleure réponse et belle explication, utiliser le terme fonctionnalité est identique aux descripteurs? les deux sont identiques ou différents? et que signifie le terme orientation en surf?
ARG
1
Le terme "fonctionnalité" est le même que "point-clé" - c'est un point important dans l'image. Le descripteur est alors un "descripteur de point-clé" ou un "descripteur de caractéristique". Malheureusement, je ne connais pas grand chose à SURF, c'est pourquoi j'ai demandé si vous vouliez en savoir plus sur les descripteurs en général ou spécifiquement sur SURF. Je sais que pour SIFT, l'orientation est très importante.
penelope
Le terme orientation n'est pas spécifiquement utilisé pour SURF, il est également utilisé dans SIFT, je veux juste savoir ce que c'est
ARG
Vous calculez l '"orientation principale" du point clé, en fonction du gradient local. Ensuite, cette direction devient "vers le haut" pour le point clé lors du calcul du gradient pour obtenir l'invariance rotationnelle. Pour SIFT, vous avez une belle explication sur wikipedia
penelope
:) ma question est quelle est l'orientation? pas sur le tamis ou le surf
ARG
2

Pensons au descripteur idéal pour comprendre l'idée. Un descripteur idéal est une fonction de l'espace pixel à un autre espace, de sorte que les mêmes objets ont le même résultat , tandis que les objets différents ont un résultat différent.

Par exemple, si vous prenez deux images avec le même objet mais avec un niveau d'exposition différent, vous obtiendrez une version multipliée de l'image. Un descripteur qui prendra les pixels et les normalisera par leur niveau moyen et l'écart-type aurait le même résultat, disant que ces deux objets sont les mêmes. C'est bien, car cela nous permet une correspondance correcte

entrez la description de l'image ici entrez la description de l'image ici

Ainsi, votre descripteur est nécessaire pour faire correspondre correctement les mêmes objets.

Andrey Rubshtein
la source