TP géométrie épipolaire et rectification stéréo

Guillaume Bourmaud

L'objectif de ce TP est d'estimer, à partir d'une paire d'images, la matrice fondamentale (à l'aide d'un RANSAC), puis d'utiliser cette dernière pour effectuer une rectification stéréo de cette paire d'images. Le résultat obtenu est donc une paire d'images stéréo, c'est-à-dire une paire d'images où le correspondant d'un point dans une image se situe sur la même ligne dans l'autre image.

Le script main_squelette.m contient les principales étapes permettant de réaliser la rectification stéréo d'une paire d'images.

Mise en correspondance automatique

La première partie du script main_squelette.m consiste à effectuer une mise en correspondance automatique entre l'image im1 et l'image im2 avec l'algorithme SIFT. Pour cela, il est conseillé d'utiliser les fonctions vl_sift et vl_ubcmatch pour obtenir des correspondances.

Estimation de la matrice fondamentale

La seconde partie du script consiste à coder et appeler une fonction ransac dans le but d'estimer la matrice fondamentale $F_{21}$. L'algorithme des 8 correspondances vous est fourni dans le fichier eightpoint.m.

Rectification stéréo

Après avoir estimé la matrice fondamentale $F_{21}$, le script produit deux matrices : $H_{n1}$ et $H_{n2}$. Ces deux matrices sont des homographies à appliquer aux images im1 et im2 permettant d'obtenir une paire d'images stéréo. Plus précisément, la matrice d'homographie $H_{n1}$ permet de transformer un point du plan image de im1 en un point du plan image de l'image rectifiée im_1rect. La matrice d'homographie $H_{n2}$ permet de transformer un point du plan image de im2 en un point du plan image de l'image rectifiée im_2rect. Après transformations des images im1 et im2 à l'aide des homographies $H_{n1}$ et $H_{n2}$, les deux images résultantes im_1rect et im_2rect forment une paire d'images stéréo.

Afin de réaliser correctement cette étape, il est fortement recommandé de dessiner un schéma représentant im1, im2, im_1rect et im_2rect. Sur ce schéma doivent figurer les matrices $H_{n1}$ et $H_{n2}$.

Dans un premier temps, les tailles des images im_1rect et im_2rect pourront être fixées manuellement afin d'obtenir un premier résultat de rectification stéréo. Dans un second temps, il faudra calculer automatiquement les bornes de ces images afin qu'elles conservent toute l'information visuelle contenue dans im1 et im2.