Comprendre le processus de calcul des fonctionnalités SURF

9

Donc, je lisais le document sur SURF (Bay, Ess, Tuytelaars, Van Gool: Speeded-Up Robust Features (SURF) ) et je ne peux pas comprendre ce paragraphe ci-dessous:

En raison de l'utilisation de filtres rectangulaires et d'images intégrales, nous n'avons pas à appliquer de manière itérative le même filtre à la sortie d'un calque précédemment filtré, mais à la place, nous pouvons appliquer des filtres rectangulaires de n'importe quelle taille à exactement la même vitesse directement sur l'image d'origine et même en parallèle (bien que ce dernier ne soit pas exploité ici). Par conséquent, l'espace d'échelle est analysé en augmentant la taille du filtre plutôt qu'en réduisant de manière itérative la taille de l'image, figure 4.

This is figure 4 in question.

Figure 4

PS: Le papier a une explication de l'image intégrale, cependant tout le contenu du papier est basé sur le paragraphe particulier ci-dessus. Si quelqu'un a lu ce document, pouvez-vous brièvement mentionner ce qui se passe ici. Toute l'explication mathématique est assez complexe pour avoir une bonne compréhension d'abord, j'ai donc besoin d'aide. Merci.

Modifier, quelques problèmes:

1.

Chaque octave est subdivisée en un nombre constant de niveaux d'échelle. En raison de la nature discrète des images intégrales, la différence d'échelle minimale entre 2 échelles suivantes dépend de la longueur lo des lobes positifs ou négatifs de la dérivée partielle du second ordre dans la direction de dérivation (x ou y), qui est définie sur un tiers de la longueur de la taille du filtre. Pour le filtre 9x9, cette longueur lo est 3. Pour deux niveaux successifs, il faut augmenter cette taille d'un minimum de 2 pixels (un pixel de chaque côté) afin de garder la taille inégale et ainsi assurer la présence du pixel central . Il en résulte une augmentation totale de la taille du masque de 6 pixels (voir figure 5).

Figure 5

Figure 5

Je ne pouvais pas donner un sens aux lignes dans le contexte donné.

Pour deux niveaux successifs, il faut augmenter cette taille d'un minimum de 2 pixels (un pixel de chaque côté) afin de garder la taille inégale et ainsi assurer la présence du pixel central.

Je sais qu'ils essaient de faire quelque chose avec la longueur de l'image, si c'est même ils essaient de la rendre étrange, de sorte qu'il y ait un pixel central qui leur permettra de calculer le maximum ou le minimum du gradient de pixels. Je suis un peu incertain quant à sa signification contextuelle.

2.

Afin de calculer le descripteur, l'ondelette Haar est utilisée.

Haar Wavelet

Comment la région du milieu a-t-elle un faible mais un. X |X|

3.

Un autre

Quelle est la nécessité d'avoir un filtre approximatif?

4. Je n'ai aucun problème avec la façon dont ils ont découvert la taille du filtre. Ils ont "fait" quelque chose empiriquement. Cependant, j'ai un problème persistant avec ce morceau de ligne

La sortie du filtre 9x9, introduite dans la section précédente, est considérée comme la couche d'échelle initiale, à laquelle nous ferons référence comme échelle s = 1,2 (approximation des dérivées gaussiennes avec σ = 1,2).

Comment ont-ils découvert la valeur de σ. De plus, comment se fait le calcul de la mise à l'échelle montré dans l'image ci-dessous.La raison pour laquelle je dis à propos de cette image est que la valeur de s=1.2continue à se reproduire, sans indiquer clairement son origine. Mettre l'image à l'échelle

5. La matrice de Hesse représentée en termes de Llaquelle est la convolution du gradient de second ordre du filtre gaussien et de l'image.

Cependant, le déterminant "approximé" ne contiendrait que des termes impliquant un filtre gaussien du second ordre.

La valeur de west:

Ma question pourquoi le déterminant est calculé comme celui ci-dessus, et quelle est la relation entre la matrice de Hesse et la matrice de Hesse approximative.

motiur
la source
Hey! J'ai ajouté les noms des auteurs et le titre de l'article dans vos questions, j'espère que cela ne vous dérange pas. Tout d'abord, il rend l'article consultable même si le lien disparaît. Deuxièmement, en tant que personne qui fait des recherches, je pense que créditer les auteurs de leurs noms et de ceux de la publication est le moins que nous puissions faire pour reconnaître leur travail :)
penelope
@penelope: J'avais à moitié peur que les gens me déprécient à l'oubli.
motiur
Je pense que c'est une très belle question, l'une des plus intéressantes récemment. Je ne suis jamais entré dans SURF moi-même, mais je pourrais essayer de jeter un coup d'œil demain et voir si je peux contribuer, la question m'a réellement intéressé :) et PS: si vous faites cela dans le cadre d'un projet Uni "officiel" , Je suis sûr que votre superviseur se fera un plaisir de vous aider (surtout si vous êtes au niveau Master). Une partie de leur travail consiste à vous apprendre à lire la littérature scientifique.
penelope
PPS: vous voudrez peut-être modifier votre question pour ajouter une courte explication des termes image intégrale et filtre de boîte : comprendre ce que vous comprenez nous aidera probablement à comprendre ce que vous ne comprenez pas;)
penelope
@penelope: Vous êtes une fille / un gars plutôt sympa, peu importe. Et non, je dois avoir une revue de la littérature de cet article, j'ai lu celui écrit par David Lowe en 2004 et 1999. Celui-ci était assez compréhensible, et il y avait une belle conférence sur youtube. Le problème est qu'il y a des tonnes de termes mathématiques utilisés dans cet article, celui avec SURF. Si vous n'avez pas de modèle mathématique en tête, il est difficile de voir l'idée principale.
motiur

Réponses:

10

Qu'est-ce que SURF?

Afin de comprendre correctement ce qui se passe, vous devez également vous familiariser avec SIFT : SURF est essentiellement une approximation de SIFT. Maintenant, la vraie question devient: qu'est-ce que SIFT? .

SIFT est à la fois un détecteur de points clés et un descripteur de points clés . Dans la partie détecteur, SIFT est essentiellement une variante multi-échelle des détecteurs de coin classiques tels que le coin Harris, et qui a la capacité de régler automatiquement l'échelle. Puis, étant donné un emplacement et une taille de patch (dérivée de l'échelle), il peut calculer la partie descripteur.

SIFT est très bon pour faire correspondre des images localement affines, mais il a un inconvénient: il est coûteux (c'est-à-dire long) à calculer. Une grande partie du temps est consacrée au calcul de l'échelle gaussienne (dans la partie détecteur), puis au calcul des histogrammes de la direction du gradient (pour la partie descripteur).

Les deux SIFT et SURF peuvent être considérés comme une différence de Gaussiens avec sélection automatique de l'échelle (c.-à-d. Tailles gaussiennes). Ceci, vous construisez d'abord un espace d'échelle où l'image d'entrée est filtrée à différentes échelles. L'espace d'échelle peut être vu comme une pyramide, où deux images consécutives sont liées par un changement d'échelle (c'est-à-dire que la taille du fiéter passe-bas gaussien a changé), et les échelles sont ensuite regroupées par octaves (c'est-à-dire, un grand changement de la taille du filtre gaussien).

  • Dans SIFT, cela se fait en filtrant à plusieurs reprises l'entrée avec un gaussien de largeur fixe jusqu'à ce que l'échelle de l'octave suivante soit atteinte.
  • En SURF, vous ne subissez aucune pénalité d'exécution de la taille du filtre gaussien grâce à l'utilisation de l'astuce d'image intégrale. Ainsi, vous calculez directement l'image filtrée à chaque échelle (sans utiliser le résultat à l'échelle précédente).

La partie approximation

Le calcul de l'échelle gaussienne et des histogrammes de la direction du gradient étant long, c'est une bonne idée (choisie par les auteurs de SURF) de remplacer ces calculs par des approximations rapides.

Les auteurs ont remarqué que les petits gaussiens (comme ceux utilisés dans SIFT) pouvaient être bien approximés par des intégrales carrées (également connues sous le nom de boîte flou ). Ces moyennes rectangulaires ont la belle propriété d'être très rapides à obtenir grâce à l'astuce d'image intégrale.

De plus, l'espace-échelle gaussien n'est en fait pas utilisé en soi , mais pour approximer un laplacien de gaussiens (vous pouvez le trouver dans l'article SIFT). Ainsi, vous n'avez pas seulement besoin d'images floues gaussiennes, mais de leurs dérivés et différences. Donc, vous poussez un peu plus loin l'idée d'approximer un gaussien par une boîte: dérivez d'abord un gaussien autant de fois que nécessaire, puis approximez chaque lobe par une boîte de la bonne taille. Vous finirez par vous retrouver avec un ensemble de fonctionnalités Haar.

Incrément de 2

Ce n'est qu'un artefact d'implémentation, comme vous l'avez deviné. Le but est d'avoir un pixel central. Le descripteur de caractéristique est calculé par rapport au centre du patch d'image à décrire.

Région centrale

tous les pix dans la colonneX=UNEtous les pix dans la colonneX=-UNEX

nombre magique

σ=1.2σ=1.2

sansuiso
la source
Merci pour l'explication, cela a clarifié certaines choses, laissez-moi voir si quelqu'un a une compréhension plus élaborée.
motiur
J'ai édité la réponse concernant vos nouvelles questions.
sansuiso
Oh ouais merci, appréciable. Le papier est assez long, donc beaucoup de choses se passent à la fois.
motiur
Voulez-vous voir ma dernière modification?
motiur
1
C'est un mélange de connaissances communes partagées (les petits gaussiens sont bien approximés par les boîtes floues), d'expérimentation (tailles min / max des objets d'intérêt dans les images du monde réel) et de mathématiques (étant donné une taille de patch initiale, des rectangles de calcul et des gaussiens qui s'intègrent) .
sansuiso
4

Afin d'identifier les points d'intérêt potentiels, la fonction de différence de gaussien (DOG) est souvent utilisée pour traiter l'image, la rendant ainsi invariante à l'échelle et à l'orientation.

Dans SIFT, les pyramides d'images sont établies en filtrant chaque couche avec DOG de sigmavaleurs croissantes et en prenant la différence.

D'un autre côté, SURF applique une approximation beaucoup plus rapide des dérivées partielles gaussiennes de second ordre avec le laplacien de gaussien (LoG) et les filtres carrés de taille différente (9 * 9, 15 * 15, ...). Le coût de calcul est indépendant de la taille du filtre. Il n'y a pas de sous-échantillonnage (changement sigma) pour les niveaux plus élevés dans la pyramide, mais seulement l'augmentation de la taille du filtre résultant en des images de la même résolution.

ÉDITER

Une note supplémentaire: les auteurs dans votre papier simplifier davantage la dérivée seconde gaussienne aux 4 orientations (x, y, xy, yx) avec le noyau [1 -2 1], [1 -2 1]', [1 -1;-1 1]et [-1 1;1 -1]. Lorsque la taille du filtre augmente, il vous suffit d'étendre les régions du noyau simplifiées pour obtenir la plus grande. Et il est équivalent au DOG avec différentes échelles (la courbe LoG a la même forme que le DOG, et la taille du filtre rend leur largeur également égale).

lennon310
la source