Tutoriel de l’application: Détection

 

Détection & Extraction sur l’application

 

Une fois l’importation terminée (Import passé en vert), vous pouvez cliquer sur l’étape de détection. La détection de points d’intérêt s’effectue alors pour chaque image et le nombre de points détectés sur l’ensemble des images chargées sera indiqué dans la console. L’extraction s’effectuera automatiquement et immédiatement après la détection, il vous faudra donc réaliser les réglages de détection ET d’extraction avant de cliquer sur Detection. Ces réglages s’effectueront depuis la fenêtre Settings en sélectionnant les onglets adéquats:


detection extraction

Réglages sur les algorithmes de détection

Pour effectuer des réglages dans les algorithmes de détection, accédez au menu de réglages Settings et sélectionnez l’onglet Detection sur la gauche de ce menu.

Réglages de la détection FAST

Si vous souhaitez réaliser la détection avec un algorithme FAST, sélectionnez FastFeatureDetector dans le menu déroulant. Vous pouvez alors agir sur deux paramètres: Threshold et nonmaxSuppression:

 

detection 2

Le Threshold (ou seuil de détection) permet de fixer une certaine exigence sur la détection des points d’intérêt, plus le seuil sera bas, plus l’algorithme aura tendance à déclarer qu’un point est un point d’intérêt. Ainsi, un seuil bas correspondra à un grand nombre de points d’intérêt alors qu’un seuil haut ne détectera pas ou quasiment pas de points d’intérêt. Toute la complexité du choix du seuil repose donc sur le fait que l’on souhaite avoir un grand nombre de points d’intérêt tout en évitant de détecter de faux points d’intérêt:

threshold

L’adaptation de votre seuil dépendra finalement du type d’image que vous analysez, mais sera compris entre 10 et 20 dans la majorité des cas.

Dans les réglages du FAST, vous pourrez également choisir d’utiliser ou pas la fonction nonmaxSuppression: la suppression des non-maxima. Le problème étant que lorsqu’un contour est détecté, des points d’intérêt seront alors détectés non seulement sur ce contour mais aussi dans la zone très proche de ces contours; ceci est particulièrement visible pour les images de mauvaise qualité. Utiliser cette fonction vous permettra alors de ne garder que les maxima locaux et donc d’éviter qu’il y ait plus de points détectés que nécessaire, ce qui permettra de réduire considérablement le nombre de calculs:


nonmaxsuppr

             Réglages de la détection SURF

Si vous souhaitez réaliser la détection avec un algorithme SURF, sélectionnez SurfFeatureDetector dans le menu déroulant. Vous pouvez alors agir sur plusieurs paramètres:

detection 3

Le fonctionnement interne du hessianThreshold est assez différent du Threshold de l’algorithme FAST mais se règle sensiblement de la même façon:

hessian

Une bonne valeur par défaut peut être de 300 à 500, en fonction du contraste de l’image.

SurfFeatureDetector utilise le principe des pyramides d’images qui est une représentation multi-résolution d’une image. Elle permet de modéliser l’image à différentes résolutions depuis l’image initiale à une image très grossière. Le principe est illustré dans le schéma ci-dessous en décrivant à quoi correspondent concrètement les nOctaves et nOctaveLayers:

octaves

L’image inférieure étant l’image originale, donc avec la meilleure résolution, sur laquelle on applique progressivement une gaussienne (ie: un filtre passe-bas). Notez qu’en augmentant trop ces nombres, vous obtiendrez des images complètement floutées et il sera inutile de l’augmenter encore: le nombre de points d’intérêt n’augmentera plus. Arrivé à ce stade, il vous est conseillé de baisser légèrement la valeur de ces paramètres afin d’obtenir des points d’intérêt judicieux.
Les réglages par défaut seront les suivants: nOctaves = 4 et nOctaveLayers = 2.

La méthode SURF vous permet également d’agir sur deux paramètres booléens: extended ou upright.

extended vous permet de doubler le nombre de descripteurs: lorsqu’il est vrai (case cochée) 128 descripteurs seront utilisés, s’il est faux (case non cochée) « seulement » 64 descripteurs seront utilisés. Le temps de calcul n’étant pas tellement plus long, il vous est conseillé d’utiliser extended.

– upright vous permet de choisir si vous souhaitez prendre en compte ou pas l’orientation de l’objet à reconstruire dans vos calculs. S’il est faux (case non cochée), cela signifie qu’il prendra l’orientation en compte, s’il est vrai (case cochée), cela signifie qu’on considère une même orientation entre les différentes prises de vue. De cette façon, en ne prenant pas en compte l’orientation, le nombre de calculs pour cette étape peut baisser très significativement. Cela pourrait être le cas pour des paires d’images stéréos où on ne considère pas de différence d’orientation.
Bien sûr, lorsque l’orientation est bien différente, il faudra prendre en compte le changement d’orientation.

 

Réglages de l’algorithme d’extraction SURF

Pour effectuer des réglages sur l’algorithme d’extraction SURF, accédez au menu de réglages Settings  et sélectionnez l’onglet Extraction sur la gauche de ce menu.
L’extraction SURF étant basée sur le même principe que celui de la détection SURF, vous pouvez effectuer les réglages de la même façon.