2016-08-17 5 views
0

Je suis nouveau à la vision par ordinateur et commence à apprendre un sujet très populaire dans la communauté de vision par ordinateur, qui est SIFT. Mais je suis confondu avec un détail de mise en œuvre:Descripteur final dans SIFT

Après la détection d'un point clé, nous devons construire 4 par 4 histogrammes locaux, servant de descripteur SIFT final, non? Chaque histogramme local contient l'orientation d'un voisinage local de 4 par 4 pixels. Donc, dans l'ensemble, nous avons 16 fois 16 égale 256 pixels, qui sont dans un quartier autour du point clé. Donc, ce voisinage est une grille de 16 par 16 pixels.

Mais comment ce quartier est-il déterminé en détail? Le quartier est-il tourné en fonction de l'orientation du point clé? Les pixels de ce voisinage de 256 pixels sont-ils séparés en fonction de l'échelle à laquelle le point clé est détecté?

Merci pour toute aide à venir!

Répondre

0

D'abord, les points-clés SIFT sont extraits à plusieurs échelles. Les descripteurs sont calculés en utilisant l'échelle respective. Donc, je ne dirais pas "pixels" car cela peut être ambigu. Pour votre question, je voudrais citer le original paper (section 6.1):

D'abord les grandeurs de gradient d'image et orientations sont échantillonnées autour de l'emplacement de keypoint, en utilisant l'échelle de la keypoint pour sélectionner le niveau de gaussienne flou pour l'image.

Afin d'obtenir l'invariance de l'orientation , les coordonnées du descripteur et les orientations du gradient sont tournées par rapport à l'orientation du point-clé .

une fonction de pondération gaussienne avec σ égale à une moitié de la largeur de la fenêtre de descripteur est utilisé pour assigner un poids à l'amplitude de chaque point d'échantillonnage.

J'espère que cela répond à votre question. N'hésitez pas à demander si quelque chose n'est pas clair.