• Aucun résultat trouvé

3.2 Dérivées de la disparité

3.2.2 Corrélation ne

Nous savons que la carte de disparité calculée par une méthode classique de stéréoscopie par corrélation a une précision d'à peu près un pixel, malgré

l'interpolation décrite Ÿ3.1.4. Si on utilise cette carte de disparité pour cal- culer les dérivées de la disparité, il faudra la ltrer pour en éliminer le bruit, comme nous avons fait précédemment, et ce calcul aura donc une précision limitée par celle de la disparité

Nous présentons ici une nouvelle méthode, que nous appelons corrélation ne. Nous avons vu précédemment une méthode de calcul des dérivées de la disparité à partir des résultats de la corrélation classique. Or ces dérivées peuvent être très bruitées, voire fausses, à cause du bruit important de la carte de disparité. L'idée essentielle de cette nouvelle méthode est d'aller chercher ces dérivées de la disparité directement dans les données d'intensité des images. En eet, on observe qu'un élément de surface qui se projette comme un carré de pixels dans l'image de référence est visible dans l'autre image comme un carré distordu, et la forme de ce carré distordu permet de calculer les dérivées de la disparité [DF94a].

Principe

Supposons que l'on ait une paire d'images en coordonnées rectiées, et que l'on dispose de la carte dense de disparité de cette image qui aura été par exemple calculée grâce à la méthode décrite au chapitre précédent. Si l'on dérive directement la disparité obtenue de cette façon par rapport aux coordonnées rectiéesuetvde l'image, on obtient des données contenant un

bruit important, puisque la disparité n'est connue exactement qu'à un pixel près, malgré l'approximation subpixelique qui a été utilisée.

Pourtant les valeurs de ces dérivées doivent être intrinsèquement pré- sentes dans l'image, puisque l'÷il humain sait bien apprécier la normale à une surface à partir d'une paire d'images stéréo6, il doit donc y avoir un

moyen de les en extraire par une méthode simple. La méthode que nous présentons ici nous permet de calculer les dérivées premières de la disparité sans utiliser aucun opérateur de dérivation, directement à partir d'une paire d'images stéréoscopique.

Dans la méthode dite classique, pour calculer la disparité entre les deux images, nous avons cherché le maximum de corrélation entre une fenêtre de taillel× hdans la première image et une fenêtre de même taille sur la droite

épipolaire correspondante (c'est-à-dire à la même ordonnée car on est en coordonnées rectiées) dans la seconde image. Il y a donc un seul paramètre pour la corrélation qui est l'abscisse de la fenêtre correspondante dans la seconde image. Ici, pour calculer les dérivées premières de la disparité, la position du centre de la fenêtre correspond à la disparité telle que nous l'avons vue, et nous faisons varier lors de la recherche de correspondances deux paramètres supplémentaires qui correspondent aux dérivées premières de la disparité par rapport aux coordonnées image.

6. L'équipe de I.Könderinket A.J.vanDoornà l'Université d'Utrecht travaille sur

3.2. DÉRIVÉES DE LA DISPARITÉ 61 right image left image v u+d u v v first order approx.

second order approx.

Fig.3.8: Comment une petite région rectangulaire de l'image gauche se trans- forme dans l'image droite, en utilisant des approximations au premier ordre (en haut) et au second ordre (en bas) de la surface observée et donc de la déformation.

Appelons d(u, v) la disparité au point (u, v). Au point (u, v) de la pre-

mière image correspond le point(u+d(u, v), v)de la seconde image, et soient

α(u, v)etβ(u, v)les valeurs des dérivées de la disparitédpar rapport àuet vrespectivement. Au point (u + δu, v + δv)de la première image correspond

alors le point (u + d(u, v) + δu+ δu ∂d ∂u+ δv ∂d ∂v, v + δv) = (u + d(u, v) + δu(1 + α) + δvβ, v + δv) (3.23)

et à une fenêtre de dimensions ∆u× ∆v centrée en (u, v) dans la première

image correspond donc dans la deuxième image une fenêtre penchée, c'est- à-dire en forme de parallélogramme, de base (1 + α)∆u, de hauteur ∆v, et

dont la pente des côtés estβ (gure 3.8).

De même, on peut calculer une approximation de degré plus élevé de la transformation qui opère sur une région carrée de l'image gauche. On obtient le point correspondant à (u + δu, v + δv) en calculant le développement de

Taylor à l'ordrende la fonction(u, v)→ (u+d(u, v), v). Ainsi si l'on prolonge

le raisonnement précédent (équation 3.23) en faisant un développement à l'ordre 2 de la fonction qui à un point de la première image associe sont correspondant, on obtient qu'au point (u + δu, v + δv)de la première image

correspond le point: (u + d(u, v) + δu(1 + ∂d ∂u) + δv ∂d ∂v +δ 2 u 2 2d ∂u2 + δuδv 2 2d ∂u∂v + δ2 v 2 2d ∂v2, v + δv) (3.24) Maintenant que nous savons comment un petit élément de surface de l'image gauche se déforme dans l'image droite étant donné les dérivées de

Fig. 3.9: Doit-on utiliser une intégrale surfacique ou interpoler les valeurs de l'intensité puis les sommer, an de calculer le critère de corrélation? la disparité, nous pouvons inversement essayer de deviner les dérivées de la disparité comme étant les paramètres d'un élément de l'image gauche déformé qui maximisent la corrélation entre les deux région des images. Par exemple, pour calculer les dérivées premières de la disparité (gure 3.8), nous devons simplement calculer les valeurs de d, α, et β qui maximisent

la corrélation entre la région carrée de l'image gauche et la région étirée et penchée de l'image droite.

Problèmes pratiques et solutions

Le premier problème qui apparaît alors immédiatement est de calculer une corrélation entre deux fenêtres de tailles et de formes diérentes. Ce problème n'existait pas dans la méthode classique puisque les deux fenêtres avaient des formes identiques. Nous avons envisagé les deux solutions sui- vantes:

1o calculer la corrélation par une intégrale surfacique, en considérant qu'une image est une fonction de deux variables constante par mor- ceaux (c'est-à-dire constante sur la surface de chaque pixel), comme montré gure 3.9;

2o calculer l'intensité des points de la fenêtre B correspondant à des points aux coordonnées entières de la fenêtre A par interpolation

linéaire entre les valeurs de l'intensité des points de la 2e image

et calculer ainsi la corrélation entre deux fenêtres de tailles égales comme dans les techniques classiques de corrélation.

Ayant rencontré des dicultés lors de l'implantation de la première mé- thode, nous avons donc choisi la seconde, qui est de loin la plus simple et la plus rapide. De plus, elle est facilement adaptable à toute classe de défor- mations, ce qui permettra de calculer des dérivées de degré plus élevé avec seulement quelques modications du code.

Le meilleur moyen pour le comprendre est de prendre un exemple. Nous avons deux images5×5et nous voulons calculer le critère de corrélation pour

3.2. DÉRIVÉES DE LA DISPARITÉ 63 0 1 2 3 4 0 1 2 3 4

left image right image

0 1 2 3 4 0 1 2 3 4

Fig. 3.10: Calcul du critère de corrélation

une fenêtre de corrélation3×3située en(u0, v0) = (2, 1)dans l'image gauche, pour une disparité de d = 0.25 pixels, une dérivée selonx de la disparité de α = −0.125, et une dérivée selon y de β = −0.375 (gure 3.10). Soient L(u, v) etR(u, v) les valeurs des intensités des pixels des images gauche et

droite. La déformation locale de l'image gauche est:

(u, v)−→ φ(u, v) = (u + d + α(u − u0) + β(v− v0), v)

Nous devons juste calculer les valeurs d'intensité dans l'image droiteR(φ(u, v))

pour u ∈ {1, 2, 3} et v ∈ {0, 1, 2} par interpolation linéaire entre les deux

voisins les plus proches, et ensuite calculer le critère de corrélation comme une somme nie:

C(u0, v0, d, α, β) = 3  u=1 2  v=0 (R(φ(u, v))− L(u, v))2 (3.25)

Le second problème important de l'implantation de cette méthode est de savoir comment faire pour trouver les valeurs de la disparité et de ses dérivées en un point qui maximisent la corrélation (c'est-à-dire qui minimisent le critère de corrélation, dans notre cas). En eet, l'ensemble de variation de ces valeurs n'est plus discret comme dans la méthode classique mais continu. La solution que nous proposons consiste à estimer tout d'abord la dis- parité et ses dérivées par une méthode directe utilisant la carte de disparité (Ÿ3.2.1). Les paramètres ainsi estimés sont alors optimisés par une méthode de minimisation classique, de manière à obtenir ceux qui maximisent la cor- rélation. Dans le cas d'un critère de type SSD, on peut utiliser une méthode de moindres carrés non-linéaires, et pour un critère de type CC une méthode de minimisation de fonction objectives (i.e. à valeurs réelles), puisque le cri- tère CC ne s'exprime comme une somme de carrés. On répète ce processus en chaque point de la carte de disparité, pour obtenir enn une carte de dis- parité et des cartes de dérivées optimisées (deux pour les dérivées premières et trois pour les dérivées secondes).

Cette méthode peut paraître sous certains côtés extrêmement simple, puisque, grâce à une initialisation par les résultats de la corrélation classique,

nous n'avons pas à nous soucier de l'intervalle de variation de la disparité et de ses dérivées [SFB96], mais elle donne en général d'excellents résultats comme nous verrons plus loin.

Implantation

Le code source de notre implantation de cette méthode est inclus en an- nexe E.2. Nous avons utilisé des routines de moindres carrés non linéaires pro- venant de diverses bibliothèques mathématiques avec un égal succès: SLA- TEC, MINPACK (tous deux disponibles sur Netlib7), et NaG. Le temps

de calcul est évidemment beaucoup plus long qu'avec la méthode classique, mais si on réduit beaucoup le nombre de points 3-D (par exemple par déci- mation) avant(( l'anage )), ce dernier pourra être eectué à une fréquence

raisonnable.