Projet image : éléments méthodologiques 1 Comment aligner les

Transcription

Projet image : éléments méthodologiques 1 Comment aligner les
Projet image : éléments méthodologiques
1
Comment aligner les images d’un panorama ?
Pour répondre à cette question, examinons la relation géométrique entre les photos d’un même panorama,
avec le schéma suivant.
centre
optique
focale f
1. Camera à sténopé
2. Vues adjacentes
3. Pinceau de rayons
4. Projection sphérique
1. Les images d’un appareil photo sont obtenues par projection des rayons lumineux en provenance de la
scène sur le CCD de l’appareil, par l’intermédiaire de son objectif. Par convention, on utilise un modèle
simplifié mais valide, la caméra à sténopé ci-représentée, pour modéliser la projection d’une image. Par
souci de simplicité, dans notre modèle le plan image est situé à une distance focale f devant le centre
optique et non derrière comme dans un véritable appareil photo : l’image projetée sur le plan image est
la même, si ce n’est que placer le plan image derrière produit une inversion que notre modèle élimine.
2. La principale hypothèse d’un panorama est que les photos sont supposées être obtenues par rotation
propre de l’appareil photo. La conséquence importante est que, dans ce cas de figure, les différents
points de vues utilisés partagent le même centre optique.
3. L’ensemble des vues du panorama échantillonne un pinceau de rayons lumineux concentriques, tous
dirigés vers le centre optique commun. Ces rayons intersectent les plans images des différentes vues.
La tâche principale à réaliser dans un panorama consiste à identifier les rayons communs à plusieurs
images (en gras), pour les ramener dans une représentation commune. D’où la nécessité de rechercher
des points caractéristiques communs dans les images, qui sont la projection de rayons communs. Leur
signature visuelle particulière pourra être identifiée et mise en correspondance dans les différentes
images, permettant leur alignement.
4. Dans le cadre du projet, on s’intéresse particulièrement aux panoramas sphériques. Ceux-ci sont obtenus
en projetant le pinceau des rayons observés (et donc les pixels des images initiales) sur la sphère unité,
centrée sur le centre optique commun, pour obtenir des images sphériques. Les abscisses et ordonnées
des pixels de l’image sphérique correspondent aux angles d’Euler paramétrant les points sur la surface
de la sphère. Cette projection présente un avantage conséquent : une rotation propre de la caméra
d’axe parallèle au plan image se traduit par une translation des images sphériques. On
commencera donc par calculer les images sphériques de toute photo du panorama (peu importe les
angles de référence choisis), pour ensuite estimer les translations 2D (angulaires) relatives entre les
images sphériques, à partir d’appariemments de points caractéristiques identifiés dans celles-ci. Le
panorama sphérique final, et donc la sortie attendue de l’algorithme, est alors une juxtaposition et
fusion des images sphériques initiales alignées par translation. Il s’agit d’une simplification substantielle
par rapport au traitement proposé dans l’article de référence du projet.
Grenoble-INP Ensimag, 2ème année, 2010-2011
Modélisation et programmation en C++ — Projet image
2
Projection sphérique
i
j
(X, Y, Z)
Plan image
φ
(X̆, Y̆ , Z̆)
(x, y)
θ
Z
Y
X
y
Image sphérique
x
Sphère unité
Sphère dépliée
Voici quelques rappels et relations permettant d’exprimer la projection sphérique. Avec les conventions
jmax
ci-dessus, un pixel (i, j) d’une image initiale a pour coordonnées (X, Y, Z) = (i − imax
2 , j − 2 , f ) dans le
3
repère de R associé à la caméra, où (imax , jmax ) est la résolution de l’image, et f la focale, toutes exprimées
en unité pixels. Ces données (résolution, taille de capteur, focale) peuvent généralement être obtenues en
unité mm en examinant l’entête EXIF des images, ainsi que les caractéristiques du capteur CCD dans la
documentation constructeur de l’appareil photo utilisé.
1
(X, Y, Z).
La projection du point (X, Y, Z) sur la sphère unité est notée (X̆, Y̆ , Z̆) = √X 2 +Y
2 +Z 2
Les coordonnées sphériques (θ, φ) de ce point sont telles que (sin θ cos φ, sin φ, cos θ cos φ) = (X̆, Y̆ , Z̆).
Les coordonnées des pixels (x, y) dans l’image sphérique finale sont des coordonnées angulaires avec un
certain facteur d’échelle s et une origine translatée (xc , yc ) déterminée par les appariemments, de sorte que
(x, y) = (sθ, sφ) + (xc , yc ). Le choix de s est déterminé par la résolution (en pixels) désirée pour l’image
sphérique.
3
Méthode des Harris corners
Voici comment détecter des pixels caractéristiques (“features”) dans une image 2D, selon la méthode dite
des Harris corners. L’idée de Harris est la suivante : au niveau de ces pixels caractéristiques (qu’il nomme
“corners” : coins, angles), l’intensité de l’image va varier de manière importante dans plusieurs directions.
On va donc s’intéresser aux variations d’intensité de l’image autour de chaque pixel.
Définition 1 (Matrice de Harris). Soit p un pixel de l’image. Soit V un voisinage autour de p dans l’image.
Pour tout pixel q de l’image, on note Iq l’intensité au pixel q. La matrice de Harris pour le pixel p est la
matrice
X
Hp =
wq ∇Iq (∇Iq )t
(1)
q∈V
avec wq un poids associé à q et ∇ l’opérateur de gradient. Les poids wq doivent être circulairement symétriques
(c’est-à-dire que tous les pixels à la même distance de p doivent avoir le même poids).
Hp est donc une matrice 2 × 2. Les poids wq associés aux pixels dans le voisinage de p sont généralement
choisis de manière à former un masque gaussien 3 × 3 ou 5 × 5 : si q − p a pour coordonnées (x, y),
wq =
Grenoble-INP Ensimag, 2ème année, 2010-2011
1 − x2 +y2 2
e 2σ
2πσ 2
(2)
Modélisation et programmation en C++ — Projet image
Voir le TP 2 de traitement d’images !
L’algorithme de détection de Harris est le suivant :
1. Fixer T un seuil.
2. Pour tout pixel p de l’image :
(a) calculer Hp ;
(b) calculer c(Hp ) =
determinant(Hp )
.
trace(Hp )
3. Garder les pixels p tels que c(Hp ) > T .
4. Parmi ces pixels, garder ceux tels que C(Hp ) est un maximum local dans un voisinage 3 × 3 (au moins).
Les pixels résultats formeront notre ensemble de features.
Grenoble-INP Ensimag, 2ème année, 2010-2011
Modélisation et programmation en C++ — Projet image

Documents pareils