• Aucun résultat trouvé

2.4 Algorithme de localisation basé sur les patchs

2.4.2 Projection des patchs

Tous les patchs potentiellement visibles qui ont été sélectionnés par l’étape précédente doivent être projetés dans la vue prédite afin de les apparier avec les points de l’image. Pour cela on utilise l’équation 2.12 pour déterminer l’homographie Hpredit→vir liant les coordon-

nées de l’image prédite à celle de la vue de référence Πref. On peut alors générer une nouvelle

image Πpred correspondant à l’image du patch vu depuis la position courante. Il est important

de constater que l’image Πref ayant été transformée par une homographie, la projection obte-

nue Πref n’aura vraisemblablement pas la même forme. Par exemple si la texture du patch était

représentée, comme dans nos expériences, par une image carrée de 32 pixels de coté, l’image déformée par l’homographie donnera un quadrilatère différent, par exemple aplati sur les bords comme illustré par la figure 2.11. En comparaison, le carré de 32 pixels de coté autour du point

FIGURE 2.11 – Projection d’un patch Πref dans le plan image de la pose prédite. En rouge est

représenté le contour de la reprojection du patch, et en vert un carré de la même taille que Πref

centré sur la projection. On peut voir en particulier que de nombreux pixel de ce carré n’ont pas d’information de texture. Le carré pointillé en bleu autour de la reprojection donne le voisinage du point considéré en prenant un carré de la moitié de la taille de Πref.

de l’image contient beaucoup plus de valeurs, (représentée en vert sur la figure 2.11). Pour limi- ter la quantité de données inconnues, la reprojection du patch se limite à un carré de 16 pixels de coté, bien que la texture de référence soit 2 fois plus grande. Toutefois, comme on peut le voir sur la figure 2.11, il peut demeurer des valeurs inconnues dont il faudra tenir compte lors de l’appariement.

Cette opération est donc réalisée sur l’ensemble des patchs potentiellement visibles. De plus, l’homographie permet d’obtenir la position Pppreddans l’image vue de puis la pose prédite du

centre du patch (Ppvir sur l’image virtuelle). L’incertitude associée à la prédiction de la pose

permet de définir une zone d’incertitude nommé région d’intérêt (ROI pour l’anglais Region Of Interest) autour de ce point (tout comme dans la méthode décrite en 1.3.2) où seront recherchés

les points d’intérêt de l’image que l’on tentera d’apparier avec le patch. On peut noter ici que plus la prédiction est précise (et donc son incertitude est réduite), plus les ROI seront de taille réduite.

On obtient donc un ensemble d’images ayant l’apparence de chaque patch dans la vue cou- rante et, associées à ces image, une position et une zone où devraient se trouver ces patchs.

2.4.3

Appariement

L’appariement consiste à comparer d’un coté les patchs projetés et de l’autre les points d’intérêt PI détectés.

Détermination des appariements potentiel

La première étape consiste à déterminer tous les couples potentiels que l’on veut compa- rer. Pour cela on utilise la position Pppred de chaque patch autour de laquelle est définie leur

ROI. Tous les points d’intérêt PI présents dans cette ROI forment un couple avec le patch. Évidemment un même patch va former un couple avec plusieurs points et de même un point peut former un couple avec plusieurs patchs. C’est le score de corrélation qui permettra de les différencier.

Calcul du score d’appariement

Après avoir formé les couples, la comparaison est réalisée avec une ZNCC entre l’image projetée Πpreddu patch et le voisinage du point d’intérêt dans l’image courante Icour. Toutefois,

on rappelle que Πpred n’est pas forcément de forme carrée (voir figure 2.11), et il faut en tenir

compte dans l’équation. Pour cela, on définit les ensembles suivants :

â Epatch l’ensemble des coordonnées des points où la projection d’un patch a une valeur.

Il s’agit de la zone entourée de pointillés cyan sur la figure 2.11

â EP I l’ensemble des coordonnées des points situés dans le voisinage du point d’intérêt.

On notera que EP I est la plupart du temps un carré de 16 pixels de coté. Ce n’est pas le

cas uniquement lorsque le point d’intérêt est proche du bord de l’image. La figure 2.12 montre un exemple de points détectés avec pour deux d’entre eux (dont un point situé au bord) le voisinage EP I utilisé.

Avec ces notations, la formule de la ZNCC vaut :

ZN CC(Πpred, Icour) =

X

δ∈E∩



Πpred(Pppred+ δ) − Πpred



Icour(PI + δ) − Icour



s X

δ∈E∩

Πpred(Pppred+ δ) − Πpred

2 s

X

δ∈E∩

Icour(PI + δ) − Icour

2

FIGURE 2.12 – Exemple de points détectés sur une image courante. On peut voir dans le zoom

deux exemples de points d’intérêt avec le voisinage considéré lors de l’appariement.

avec                E∩ = Epatch∩ EP I Icour = 1 |E∩| X δ∈E∩ Icour(PI + δ)

la moyenne de l’intensité des pixels de E∩ sur

l’image courante Πpred = 1 |E∩| X δ∈E∩ Πpred(PI + δ)

la moyenne de l’intensité des pixels sur la pro- jection du patch restreinte à E∩

Cependant cette équation oblige à faire tous les calculs séparément pour tous les couples de points. En effet, même les moyennes sur l’image sont restreintes au voisinage E∩qui varie d’un

couple à l’autre. Ainsi même lorsqu’un point ou un patch est présent dans plusieurs couples, toutes les moyennes doivent être calculées plusieurs fois, ce qui alourdit le calcul. Néanmoins, on sait que, même si l’homographie a déformé la texture, les patchs reprojetés ont une forme proche d’un carré. En effet, comme on le voit sur la figure 2.11, bien que la projection soit bien déformée, le fait d’avoir réduit le voisinage à un carré de 16 pixels de coté permet d’avoir un voisinage Epatchpeu différent de EP I. On peut donc approximer l’équation 2.21 sous la forme

de l’équation 2.22 S = 1 |E∩| X δ∈E∩ 

Πpred(Pppred+ δ) − Πpred



Icour(PI + δ) − Icour

 v u u u t X δ∈Epatch

Πpred(Pppred+ δ) − Πpred

2 |Epatch| v u u u t X δ∈EP I

Icour(PI + δ) − Icour

2 |EP I| (2.22) avec                E∩ = Epatch∩ EP I Icour = 1 |EP I| X δ∈EP I Icour(PI + δ)

la moyenne de l’intensité des pixels du voisi- nage EP I sur l’image courante

Πpred = 1 |Epatch| X δ∈Epatch Πpred(PI + δ)

la moyenne de l’intensité des pixels de la pro- jection du patch ( sur Epatch)

De cette manière le calcul de la moyenne d’un patch projeté ou du voisinage d’un point d’intérêt peut être séparé de l’appariement. Ce calcul initial correspond en fait à un descripteur que l’on calcule avant de réaliser l’appariement. On peut voir chacun de ces descripteurs comme des images formant un carré de 16 pixels de coté nommé Dpatchet DP I respectivement pour les

patchs et les points d’intérêt. Ils sont calculés suivant les équations 2.23 et 2.24

Dpatch(X) = Πpred(X) − Πpred v u u u t X δ∈Epatch

Πpred(Pppred+ δ) − Πpred

2 |Epatch| (2.23) DP I(X) = Icour(X) − Icour v u u u t X δ∈EP I

Icour(PI + δ) − Icour

2

|EP I|

(2.24)

Connaissant ces deux descripteurs, le calcul du score d’appariement S devient alors :

S = X

δ∈E∩

[Dpatch(Pppred+ δ)DP I(PI + δ)]

|E∩|

(2.25)

En utilisant cette méthode, le calcul des descripteurs devient indépendant de l’appariement. Par conséquent, dans le schéma de la figure 2.10, le calcul de Dpatch est réalisé dans la partie

projection des patchs, et celui de DP I dans la partie calcul des descripteurs de points.

Cet appariement utilise la ZNCC car il n’est pas nécessaire (et même pas souhaité) d’être indépendant du point de vue. En effet les patchs projetés doivent théoriquement être eux-même

adaptés au point de vue, et l’usage d’un descripteur tel que SIFT risquerait de créer une confu- sion entre plusieurs éléments proches (tels que deux fenêtres côte à côte) sans améliorer l’ap- pariement. La seule difficulté de cet appariement peut provenir de changements de luminosité. La projection des patchs ne tient pas compte des évolutions de la luminosité ambiante et il est important de demeurer aussi robuste que possible à de tels changements. La ZNCC a l’avantage d’être indépendante à un changement affine de luminosité tout en restant assez rapide à calculer.

Élimination des mauvais appariements

Une fois le score calculé pour tous les couples, ils sont d’abord seuillés pour filtrer tous les mauvais appariements. Ce seuillage n’a pas besoin d’être très strict (0,5 lors de nos tests), car il consiste seulement à supprimer les appariements nettement mauvais pour alléger les calculs. Par la suite un tri plus spécifique est réalisé. L’objectif de ce tri est d’éliminer tous les cas où soit un patch, soit un point est présent dans plusieurs paires. Pour cela, tous les couples sont triés dans l’ordre de leur score d’appariement. Ensuite, tous les couples contenant le même patch ou le même point d’intérêt que celui ayant le meilleur score sont éliminés. Puis, on applique à nouveau le même procédé mais en éliminant les couples ayant un conflit avec le second meilleur score. On continue ainsi de suite jusqu’à avoir parcouru toute la liste. A la fin du processus, on obtient une liste telle que chaque point d’intérêt ne puisse être apparié qu’avec un seul patch et chaque patch ne puisse l’être qu’avec un seul point d’intérêt.

Au final on obtient une liste associant les coordonnées 2D des points d’intérêt aux coor- données 3D des patchs. C’est cette liste qui, après un calcul de pose permet de déterminer la position précise de la caméra courante.

2.5

Premières expérimentations

Avant d’utiliser cette méthode de localisation sur les véhicules, il est intéressant de vérifier que cette reprojection apporte bien un avantage. Pour cela une expérimentation préliminaire a été réalisée. L’objectif de cette expérimentation est de comparer l’utilisation de patchs à une approche classique utilisant un descripteur SIFT, en particulier lorsque l’on s’éloigne de la position initiale. L’idée est donc de mesurer le nombre d’appariements que l’on peut réaliser en utilisant les patchs et de le comparer avec les appariements réalisés en utilisant le descripteur SIFT.