CHAPITRE 4 ETUDES DE CARTE DE DISPARIT´ ´ E
4.3 Trois m´ethodes d’impl´ementation de la mise en correspondance par bloc en
Nous avons r´ealis´e trois m´ethodes en GPGPU dans les essais d’acc´el´eration. La M´ethode 0
emploie la m´emoire globale pour accumuler les coˆuts. La M´ethode 1 est une r´ealisation en
OpenCL d’une impl´ementation de la mise en correspondance par bloc en GPGPU d’OpenCV
mentionn´ee dans la sous-section 3.8.2, qui emploie la m´emoire partag´ee pour calculer la valeur
minimale et l’indice correspondant parmi un nombre pr´ed´efini de disparit´es potentielles. Pour
faciliter le traitement, cette M´ethode ignore les zones de bordure. La M´ethode 2 est bas´ee
sur la M´ethode 1, mais qui traite aussi les zones de bordure au lieu de les ignorer comme le
cas de la M´ethode 1 afin d’augmenter la pr´ecision pour le cas de la v´erification de consistance
et de rendre la carte de disparit´e plus compl`ete. La v´erification de consistance s’op`ere en
employant une carte de disparit´e calcul´ee de gauche `a droite et une autre carte calcul´ee de
droite `a gauche.
La M´ethode 0 est la base de notre r´ealisation. Nous calculons la somme e des ´ecarts
quadratiques de chaque colonne d’une fenˆetre de comparaison f et nous les sauvegardons
dans la m´emoire globale. Ensuite nous calculons une somme s des ´el´ements e d’un nombre de
colonnes de la fenˆetre de comparaison f . Cette somme s sera la somme des ´ecarts quadratiques
selon la fenˆetre de comparaison des deux images en question.
Cette s´eparation de calcul en deux ´etapes peut contribuer `a diminuer le nombre de calculs
des ´ecarts quadratiques parce qu’une colonne des ´ecarts a ´et´e calcul´ee puis partag´ee entre les
fenˆetres concern´ees. Initialement, le nombre de calculs est : T
2f
multiplications, plus (T
f−
1) × (T
f+ 1) = 2 × T
f2− 1 additions (ou soustractions). Une fois r´ealis´ee la s´eparation
en deux ´etapes, le nombre de calculs pour chaque fenˆetre sera : T
fmultiplications, plus
T
f+ 2 × (T
f− 1) = 3 × T
f− 2 additions (ou soustractions). Comme une multiplication
prend plus de temps qu’une addition, l’acc´el´eration est ´evidente. Voir la Figure 3.9 pour
cette m´ethode dans la section 3.9.
Les produits d’´ecart quadratique se recouvrent horizontalement et verticalement parce
que les fenˆetres adjacentes se recouvrent elles-mˆemes de la mˆeme fa¸con. ´Ecart quadratique
est la diff´erence quadratique, qui prend souvent la forme : (Img
ij− Img
kj)
2. Pour illustrer
cette caract´eristique, supposons que nous sommes dans la ligne l, et que nous avons d´ej`a
calcul´e les sommes d’´ecart quadratique de la ligne pr´ec´edente l − 1. Alors, nous calculons les
sommes des colonnes des lignes suivantes en soustrayant les premiers ´el´ements l − h
f− 1 des
nous avons T
fmultiplications plus 2×T
f−1 additions (ou soustractions) pour le calcul d’une
colonne, l’ajout et la soustraction seront 2 multiplications plus 4 additions (ou soustractions).
Nous avons illustr´e cette m´ethode dans la Figure 3.10
Le probl`eme de cette m´ethode est la lenteur de l’acc`es `a la m´emoire globale. Mˆeme s’il
n’y a pas eu de conflit d’acc`es pour une mˆeme adresse par diff´erents processus, l’acc`es `a la
m´emoire globale lui-mˆeme et la synchronisation obligatoire avant l’addition des sommes de
colonne entraˆıne une d´et´erioration de performance.
En nous inspirant d’une impl´ementation de la mise en correspondance par bloc en GPGPU
d’OpenCV mentionn´ee dans la sous-section 3.8.2, nous avons r´ealis´e l’impl´ementation
« M´ethode 1 ». Cette m´ethode utilise le principe d’acc´el´eration par partage de r´esultats
interm´ediaires de la M´ethode 0. De plus, elle calcule un indice qui correspond `a la valeur
minimale du coˆut de correspondance parmi un nombre n
ddes disparit´es potentielles pour
chaque pixel `a l’aide de la m´emoire partag´ee. Au cours d’une ´etape de calcul, un nombre n
dde
disparit´es potentielles sera calcul´e puis le coˆut minimal et la valeur d’indice correspondante
seront retenus pour continuer la comparaison. Cela signifie que la flexibilit´e sera compromise
parce que la disparit´e maximale doit ˆetre une multiplication du nombre n
d. Afin de simplifier,
les pixels n’ayant pas assez de fiabilit´e de disparit´e seront invalid´es. Si maxDisparit´e d´esigne la
disparit´e maximale, l
iet h
id´esignent la largeur et la hauteur des pairs d’images en question ;
pour un calcul de disparit´e de gauche `a droite, on ne calcule que la zone en largeur et en
hauteur d´efinie par [maxDisparit´e + l
f, l
i− l
f− 1] et [h
f, h
i− h
f− 1]. Les crochets “[” et “]”
signifient que nous pouvons prendre le d´ebut et la fin de la port´ee, les chiffres sont pr´esent´es
selon la convention du langage C, soit le chiffre commence par 0 et se termine par la valeur
maximale moins 1.
En contrepartie, la disparit´e de droite `a gauche ne calculera que la zone en largeur et
en hauteur d´efinie par [w
f, l
i− maxDisparit´e − l
f− 1] et [h
f, h
i− h
f− 1]. Bien sˆur, si nous
employons les cartes de disparit´e en pleine taille pour faire la v´erification de consistance bas´ee
sur la disparit´e de gauche `a droite et de droite `a gauche, cette m´ethode va produire plus de
valeurs invalides dans la zone [l
i− maxDisparit´e − l
f, l
i− l
f− 1]. Cela peut nuire `a notre but
initial de cr´eer une carte de disparit´e assez proche de la vraie carte.
Durant nos ´etudes, nous calculons les taux d’erreur dans la zone d´efinie
[w
f, l
i− maxDisparit´e− l
f− 1] et [h
f, h
i− h
f− 1] comme ci-dessus pour ne pas ˆetre influenc´es
par les z´eros mis intentionnellement comme valeurs invalides. Donc, il faut garder en m´emoire
cette strat´egie pour ne pas avoir une impression erron´ee en voyant les chiffres.
Puisque la M´ethode 0 produit des disparit´es avec une certaine exactitude en zone consid´er´ee
sans fiabilit´e, nous avons combin´e les M´ethodes 0 et 1 pour produire une M´ethode 2 qui cal-
cule un indice comme valeur interm´ediaire parmi un nombre n
ddes disparit´es potentielles
pour chaque pixel `a l’aide de m´emoire partag´ee. Le coˆut minimal et la valeur de disparit´e
correspondante seront retenus pour continuer la comparaison. Ce point est identique `a celui
de la M´ethode 1 sauf qu’avec la M´ethode 2 nous calculons non seulement la zone qui offre le
plus de fiabilit´e, mais aussi d’autres zones pour cr´eer une carte de disparit´e compl`ete. Bien
sˆur, les disparit´es dans ces derni`eres zones n’ont pas assez de fiabilit´e. La v´erification de
consistance nous aidera `a les pr´eciser.
4.4
Impl´ementation de la mise en correspondance par bloc en CPU comme
Dans le document
Traitement et analyse d'images stéréoscopiques avec les approches du calcul générique sur un processeur graphique
(Page 86-88)