Note: Descriptions are shown in the official language in which they were submitted.
1
DESCRIPTION
TITRE DE L'INVENTION : Procédé de génération d'un point
de vue stéréoscopique à valeur d'entraxe modifiable
L'invention concerne un procédé de génération d'un point
de vue stéréoscopique à valeur d'entraxe modifiable.
ARRIERE PLAN DE L'INVENTION
Dans le domaine militaire, il est connu des systèmes
d'aide au pilotage d'aéronef appelés FLIR (pour
Forward Looking InfraRed). Ces systèmes comportent
usuellement une caméra infrarouge en bande thermique
lointaine (plus connue sous l'acronyme anglais LWIR)
raccordée au casque du pilote de manière à ce qu'un flux
vidéo, défini par une succession d'images qui sont toutes
à l'infini, soit projeté à partir des données fournies
par la caméra lui permettant ainsi de pouvoir se guider
de nuit ou dans des conditions d'environnement
difficiles.
On connait notamment des systèmes dans lesquels la caméra
est orientable en site et en gisement, l'orientation de
la caméra étant asservie sur l'orientation du casque du
pilote afin que le flux vidéo soit lié à l'orientation du
casque.
Toutefois avec un tel système une seule image à la fois
est fournie par le flux vidéo ce qui procure au pilote
une vision plate .
Pour mieux aider le pilote il serait plus utile de lui
fournir une vue stéréoscopique, par exemple en
fournissant via le flux vidéo deux images en simultanée,
afin de créer un effet de profondeur et ainsi lui offrir
une vision en relief.
Depuis une dizaine d'années, un autre type d'architecture
dit à architecture répartie ou bien encore à
architecture à pupilles distribuées (plus connue sous
son terme anglais Distributed Aperture System) a ainsi vu
le jour : le système d'aide au pilotage comporte
Date reçue / Date received 2021-12-11
2
plusieurs caméras infrarouge réparties sur l'avant de
l'aéronef dont les différents champs de visée
s'interfèrent de manière qu'un bandeau panoramique puisse
être généré à partir des données fournies par les
différentes caméras. On extrait ensuite de ce bandeau une
vue correspondante à l'orientation du casque du pilote
pour fournir au pilote la vue correspondante, recréant
ainsi artificiellement une caméra orientable et asservie
sur l'orientation du casque.
Ces systèmes sont malheureusement généralement complexes
de structure, de masses importantes et coûteux.
Ainsi la présente demanderesse a proposé dans sa demande
WO 2020/053227 un équipement optronique d'aide au
pilotage d'un aéronef à architecture à pupilles
distribuées d'une structure simplifiée.
Avec un tel équipement il est en outre possible de
fournir au pilote des images permettant au pilote de voir
de manière stéréoscopique.
Une telle vision peut toutefois s'avérer inconfortable
dans le temps si l'entraxe utilisé pour la génération des
images n'est pas adapté à la vision de celui-ci.
On rappelle que pour créer une vue stéréoscopique au
moins deux images d'une même zone doivent être projetées
et visualisées par le pilote (directement ou
indirectement par exemple par réflexion sur une visière
de son casque), lesdites images étant décalées légèrement
l'une par rapport à l'autre. Le décalage entre ces images
(directement lié à l'entraxe de la paire de caméras
permettant de générer un point de vue stéréoscopique)
doit correspondre sensiblement à celui du pilote
(directement lié à l'entraxe des yeux du pilote) pour
être relativement confortable pour le pilote.
On peut ainsi définir l'entraxe comme étant la distance
séparant les axes optiques d'un système binoculaire
optique qu'il soit naturel (par exemple pour les yeux du
Date reçue / Date received 2021-12-11
3
pilote, l'entraxe définit la distance séparant les axes
optiques des yeux droit et gauche) ou artificiel (par
exemple pour une paire de caméras permettant de générer
un point de vue stéréoscopique, l'entraxe définit la
distance séparant les axes optiques de la première caméra
et de la deuxième caméra).
Afin d'améliorer ce problème de confort de vision, on a
envisagé d'avoir recours à un appareil à entraxe
modifiable.
Une première solution envisagée consistait à positionner
sur l'aéronef plusieurs ensembles de deux caméras : en
fonction de l'entraxe souhaité, on sélectionnait l'une
des paires de caméras pour générer un point de vue
stéréoscopique avec un entraxe le plus approchant
possible de l'entraxe visé.
Toutefois une telle solution nécessitait l'emploi de
nombreuses caméras ce qui la rendait très coûteuse.
Une deuxième solution envisagée consistait à utiliser un
capteur additionnel aux caméras, comme par exemple un
capteur LIDAR, qui permettait de fournir au moins une
information géométrique sur une scène visualisée par les
caméras : le point du vue stéréoscopique serait ainsi
généré à partir de vues classiques des caméras et de
ladite information géométrique.
Bien qu'offrant plus de possibilités de modification
d'entraxe que la première solution, cette deuxième
solution avait le désavantage de devoir nécessiter le
recours à un capteur actif supplémentaire.
OBJET DE L'INVENTION
Un but de l'invention est de proposer un procédé de
génération d'un point de vue stéréoscopique à valeur
d'entraxe modifiable qui puisse être mis en uvre plus
simplement.
RESUME DE L'INVENTION
Date reçue / Date received 2021-12-11
4
En vue de la réalisation de ce but, l'invention propose
un procédé de génération d'un point de vue stéréoscopique
à valeur d'entraxe modifiable comprenant au moins les
étapes de :
- Première étape : A partir d'une image initiale
droite et d'une image initiale gauche, calculer une
première carte de disparité éparse gauche et une première
carte de disparité éparse droite,
- Deuxième étape : Filtrer au moins une fois la
première carte de disparité éparse gauche et la première
carte de disparité éparse droite pour au moins les
densifier afin d'obtenir une deuxième carte de disparité
dense gauche et une deuxième carte de disparité dense
droite,
- Troisième étape : Générer par interpolation une
image droite et une image gauche d'un point de vue
stéréoscopique, la génération desdites images se faisant
à partir des images initiales droite et gauche, de la
deuxième carte de disparité dense gauche, de la deuxième
carte de disparité dense droite et d'une valeur d'entraxe
souhaitée.
Ainsi l'invention permet d'adapter un point de vue
stéréoscopique à une valeur d'entraxe souhaitée par
simple traitement des images initialement acquises par un
dispositif de génération de vues stéréoscopiques.
L'invention permet ainsi de modifier artificiellement
l'entraxe dudit dispositif sans avoir besoin d'intégrer
d'élément supplémentaire audit dispositif (capteur,
caméra et sans même avoir besoin de toucher aux
positions relatives des éléments dudit dispositif.
L'invention peut être mise en uvre au moins
partiellement par tout type de dispositif de génération
de vues stéréoscopiques soit un dispositif (au moins)
binoculaire de captation d'images dont les (au moins)
deux capteurs optiques sont disposés et calibrés de sorte
Date reçue / Date received 2021-12-11
5
à créer un effet stéréoscopique (i.e. avec une perception
de relief et/ou de distance) pour un cerveau humain.
Avec l'invention on modifie ainsi le point de vue
stéréoscopique en déplaçant virtuellement l'un des (au
moins) deux capteurs optiques. Le point de vue
stéréoscopique correspond donc au point de vue dudit
dispositif (sa position, son orientation et son entraxe)
et comprend les (au moins) deux points de vue des
capteurs optiques dudit dispositif.
Optionnellement on calcule au moins l'une des cartes de
disparité éparse par estimation du déplacement horizontal
relatif de chaque pixel entre les deux images initiales.
Optionnellement on commence par estimer un coût
d'association de chaque pixel de l'une des deux images
initiales à l'un des pixels de l'autre des deux images
initiales.
Optionnellement pour estimer le coût d'association de
l'un des pixels, on calcule la différence entre ledit
pixel et le pixel associé en s'appuyant sur les pixels
des voisinages horizontaux respectifs desdits deux
pixels.
Optionnellement à partir du coût d'association de tous
les pixels, on détermine une agrégation spatiale des
coûts.
Optionnellement on associe à chaque pixel de l'une des
deux images initiales un pixel de l'autre des deux images
initiales par minimisation d'un coût d'appariement
déterminé à partir de l'agrégation spatiale des coûts.
Optionnellement lequel la première étape comporte elle-
même au moins une phase de filtrage.
Optionnellement la phase de filtrage consiste en un
filtrage par consistance stéréoscopique.
Date reçue / Date received 2021-12-11
6
Optionnellement la phase de filtrage consiste en un
filtrage par accumulation temporelle.
Optionnellement au cours de la deuxième étape on densifie
au moins l'une des cartes de disparité éparse en se =
servant d'une image guide de sorte que la deuxième étape
consiste en un filtrage guidé des cartes de disparités
éparses gauche et droite.
Optionnellement au cours de la deuxième étape on résout
le problème suivant (I + XA(g))u = f avec u désignant le
résultat du filtrage, f une image d'entrée, g une image
guide, I une matrice identité de taille identique à celle
de l'image guide, A une matrice de taille identique à
celle de l'image guide obtenue à partir de g et X un
paramètre donné.
Optionnellement on sépare le problème en une succession
de problèmes unidimensionnels et on procède ensuite à la
résolution de chaque problème par itération sur chaque
colonne et chaque ligne de u.
Optionnellement le problème est résolu au moins deux fois
pour obtenir deux résultats qui sont alors divisés pour
obtenir l'une des cartes de disparité dense.
Optionnellement le problème précité est résolu une
première fois en prenant :
- Comme image guide g l'une des images initiales
droite et gauche
- Comme image d'entrée f la carte de disparité éparse
correspondante ;
Et est résolu une deuxième fois en prenant :
- Comme image guide g la même image initiale droite ou
gauche que pour la première résolution
- Comme image d'entrée h un masque de validité de la
même carte de disparité éparse que pour la première
résolution.
Date reçue / Date received 2021-12-11
7
L'invention concerne également un dispositif de
génération de vues stéréoscopiques permettant la mise en
uvre du procédé tel que précité.
Optionnellement le dispositif est un dispositif d'aide au
pilotage d'un aéronef.
L'invention concerne également un programme d'ordinateur
comprenant des instructions qui conduisent un dispositif
de génération de vues stéréoscopiques tel que précité à
exécuter le procédé tel que précité.
Optionnellement l'invention concerne également un support
d'enregistrement lisible par ordinateur, sur lequel est
enregistré le programme d'ordinateur tel que précité.
D'autres caractéristiques et avantages de l'invention
ressortiront à la lecture de la description qui suit
d'une mise en uvre particulière non limitative de
l'invention.
BREVE DESCRIPTION DES DESSINS
L'invention sera mieux comprise à la lumière de la
description qui suit en référence aux figures annexées
parmi lesquelles :
[Fig. 1] la figure 1 illustre schématiquement les
différentes étapes d'une mise en uvre particulière de
l'invention ;
[Fig. 2] la figure 2 illustre plus en détails les étapes
de la figure 1 ;
[Fig. 3] la figure 3 décompose différentes phases de la
première étape de la figure 1 ;
[Fig. 4] la figure 4 décompose différentes phases de la
deuxième étape de la figure 1 ;
[Fig. 5] la figure 5 détaille un bloc d'une des phases
représentées à la figure 4.
DESCRIPTION DETAILLEE DE L'INVENTION
Date reçue / Date received 2021-12-11
8
Selon une mise en uvre particulière de l'invention, le
procédé est mis en uvre par un équipement optronique
d'aide au pilotage d'un aéronef permettant de fournir une
vision stéréoscopique à un pilote.
Un tel équipement comporte au moins un ensemble de deux
caméras qui sont par exemple montées à l'avant de
l'aéronef de part et d'autre de son nez de sorte que l'on
puisse ainsi définir une caméra gauche et une caméra
droite. Les caméras sont par ailleurs agencées dans un
plan horizontal (lorsque l'aéronef est au sol, le plan
horizontal étant ainsi parallèle avec le plan roulis-
tangage de l'aéronef). Dans le cas présent, les caméras
sont calibrées de sorte à ne pas pouvoir être déplacées
l'une par rapport à l'autre au moins selon une direction
normale au plan les contenant (soit une direction
verticale lorsque l'aéronef est au sol). Dans le cas
présent, les deux caméras sont fixes l'une par rapport à
l'autre.
L'équipement optronique comporte par ailleurs une unité
de traitement, de type calculateur ou processeur, agencée
à l'intérieur de l'aéronef. Ladite unité est reliée d'une
part aux deux caméras et d'autre part à un dispositif de
projection d'image équipant un casque du pilote.
En service l'unité de traitement récupère des caméras des
images initiales droite et gauche, les traite et affiche
l'image traitée droite sur le côté droit de la visière du
pilote et l'image traitée gauche sur le côté gauche de la
visière du pilote, images légèrement décalées d'une même
zone, le cerveau du pilote faisant naturellement la
synthèse des deux images pour obtenir une vue en relief.
La vue restituée au pilote n'est ainsi pas plate mais
stéréoscopique, se rapprochant au maximum d'une vue
naturelle.
On va à présent s'attacher à décrire le traitement d'une
image initiale gauche, transmise par la caméra gauche, et
Date reçue / Date received 2021-12-11
9
d'une image initiale droite, transmise par la caméra
droite, par l'unité de traitement.
Comme visible à la figure 1, le traitement comprend trois
étapes principales successives mises en uvre dans trois
modules indépendants entre eux.
L'enchainement entre les modules et leurs effets sont
représentés à la figure 2 pour laquelle :
- Les blocs en forme de losange correspondent aux
entrées et sorties d'un algorithme général implémenté
dans chaque module ;
- Les blocs en forme d'octogone correspondent aux
paramètres de l'algorithme associé ;
- Les blocs en forme de rectangle symbolisent le
module correspondant.
Au cours de la première étape 1, on détermine une carte
de disparité éparse droite et une carte de disparité
éparse gauche. A cet effet, on estime ici le déplacement
horizontal relatif de chaque pixel entre l'image initiale
droite et l'image initiale gauche (déplacement horizontal
également appelé disparité du pixel) avant de réaliser la
carte de disparité gauche associée à l'image gauche et la
carte de disparité droite associée à l'image droite.
La première étape 1 est implémentée dans un premier
module de l'unité de traitement. Un tel module est par
exemple un module SGBM (pour Semi Global Block
Matching ) tel qu'un module SGBM décrit dans l'article
Accurate and efficient stereo processing by semi-global
matching and mutual information de Hirschmuller, H.1 ;
article publié en 2005 dans le IEEE Computer Society
Conference on Computer Vision and Pattern Recognition
(CVPR'05) (Vol. 2, pp. 807-814).
Par la suite, on note x et y, respectivement l'abscisse
(sur l'axe horizontal des images) et l'ordonnée (sur
l'axe vertical des images) d'un pixel d'une image donnée,
et on utilise les notations suivantes:
Date reçue / Date received 2021-12-11
10
= Ii représente l'image initiale gauche et Il(x,y)= le
niveau d'intensité du pixel de coordonnées (x, y) dans
l'image Ii;
= Ir représente l'image initiale droite et Ir(x,y) le
niveau d'intensité du pixel de cordonnées (x, y) dans
l'image Ir;
= D1 représente l'image de disparité gauche et Di(x,y) la
valeur de disparité gauche pour le pixel de coordonnées
(x, y) dans l'image Ii; = Dr représente l'image de
disparité droite et Dr(x,y) la valeur de disparité droite
pour le pixel de cordonnées (x, y) dans l'image Ir.
On a les deux relations suivantes :
Il (x, y) = Ir (x - Di(x, Y), y) (1)
I, (x, y) - Il (x + Dr(X, Y), y) (2)
Par contrainte géométrique les valeurs de disparités
Di(x,y) et Dr(X,y) sont nécessairement positives.
Optionnellement les données discrètes des quatre images,
Ir, D1 et Dr, sont des données codées sur 12 bits à
valeurs positives.
En référence à la figure 3, la première étape 1 est de
préférence décomposée en plusieurs phases.
Lors d'une première phase 101, pour chaque pixel de
l'image gauche, on estime le coût d'association dudit
pixel à un pixel de l'image droite (et inversement).
A cet effet on s'appuie sur une fonction de coût.
Par exemple la fonction de coût utilisée calcule la
différence entre deux pixels donnés situés sur une même
ligne de l'image considérée (ligne horizontale), en
s'appuyant sur les pixels des voisinages horizontaux
[-1/2, 1/2] respectifs desdits deux pixels.
Optionnellement on s'appuie sur la fonction de coût
définie dans l'article A pixel Dissimilarity Measure
That is Insensitive fo Image Sampling de Birchfield, S.
et Tomasi, C. publié en 1998 dans IEEE Transactions on
Date reçue / Date received 2021-12-11
11
Pattern Analysis and Machine Intelligence, 20(4), 401-
406. Par la suite on calcule la quantité suivante :
CLeft(xl, xr, = max {0, II' (xi)- 'maxi - I1' (xi)) (3)
Où
Xi est la position (abscisse) d'un pixel sur une ligne,
notée de l'image initiale gauche Ii;
Xr est la position (abscisse) d'un pixel sur une ligne,
notée Ir' de l'image initiale droite Ir
CLeii représente le coût d'association du pixel de
position xi dans la ligne d'image gauche dans le
voisinage [xr - 1/2, xi + 1/2] sur la ligne d'image droite
;
Imin et Ima. représentent respectivement, les niveaux
d'intensité minimum et maximum sur la ligne d'image
droite dans le voisinage [xr - 1/2, xr + 1/21 qui sont
calculés de la manière suivante :
Ij = min {Ir', Ir'+,
'max = max Ir", Ir' (xr)
Avec :
1m = + (xr - 1))
Im = + + 1))
De la même manière on peut calculer la quantité Cright
représentant le coût d'association du pixel ayant la
position xr, dans la ligne d'image droite Ir', dans le
voisinage [xi - 1/2, xi+ 1/2] sur la ligne d'image gauche
Une fois les deux quantités CRight et CLeft calculées, le
coût d'association est ainsi défini par :
Cosi (Xi, Xr, 1m') = min { CLeft CRight} ( 4)
A partir de là on calcule pour chaque pixel de l'image
initiale gauche le coût d'appariement avec le pixel de
l'image initiale droite qui lui est associé par l'image
de disparité gauche Di, coût d'appariement correspondant
à la fonction de coût précitée, MatchingCost :
Date reçue / Date received 2021-12-11
12
MatchingCost (Ii, Ir, Di) (x, y) ¨ Cost(x, x - D1(x, y),
Ii(:, y), Ir(:, y)) (5)
Ceci permet de déterminer la qualité de reconstruction
d'un pixel pour une disparité donnée.
On pourrait en variante ou en complément s'appuyer sur
une fonction de coût équivalente MatchingCost' qui
calculerait pour chaque pixel de l'image initiale droite
le coût d'appariement avec le pixel de l'image initiale
gauche qui lui est associé par l'image de disparité
droite Dr. Par la suite on conservera la fonction de coût
MatchingCost mais les phases qui suivront sont bien
entendu transposables à MatchingCost'.
Théoriquement on pourrait utiliser ladite fonction de
coût MatchingCost pour déterminer l'image de disparité
optimale Dopt en minimisant la fonction MatchingCost sur
l'ensemble des disparités possibles D (les disparités D
étant l'ensemble des valeurs Di(x,y) possibles de l'image
initiale gauche) :
Dopt =min d e D {MatchingCost (Ii, Ir, d)} (6)
Mais optimiser la fonction MatchingCost serait
relativement complexe étant donné la taille de l'ensemble
D.
On propose à la place de réaliser une agrégation spatiale
des coûts à partir de la fonction MatchingCost, lors
d'une deuxième phase 102.
A cet effet, on calcule pour chaque pixel de l'image
initiale gauche un coût d'appariement pour un ensemble de
valeurs de disparités allant de 0 à une -valeur notée
Disp Max , qui est un paramètre donné de disparité
maximale.
Cela permet d'obtenir, pour chaque pixel de l'image
initiale gauche, Disp Max + 1 coûts d'appariement
calculés selon la formule suivante :
Cost(x, y, disp_table) = MatchingCost (Ii, Ir,
disp_table)(x, y) (7)
Date reçue / Date received 2021-12-11
13
Avec disp table un tableau constant à valeurs entières de
disparités comprises entre 0 et Disp Max.
On construit ainsi par cette formule (7) Cost(x, y, disp)
qui est un tableau à trois dimensions dont la hauteur et
la largueur sont ceux des images Ii Ir, et dont la
troisième dimension est de taille Disp Max + 1.
On prend ici Disp Max égal à 64. Cette valeur n'est qu'un
exemple possible. On retient toutefois que la valeur du
paramètre de disparité maximale retenue impacte le temps
de calcul et joue sur l'intensité du point de vue
stéréoscopique (plus ou moins fort).
L'agrégation spatiale des coûts s'effectue en venant
cumuler le long de chemins les coûts d'appariement
obtenus pour chaque pixel de l'image initiale gauche
selon la formule (7).
La gestion initiale des chemins est réalisée au cours
d'une phase intermédiaire 102'.
Lors de cette phase intermédiaire 102', le nombre de
chemins, appelé Num Directions , est fixé à une valeur
particulière entière, par exemple 2", n entier non nul. La
valeur Num Directions peut ainsi par exemple être
choisie égale à 2, 4, 8, ou 16.
Chaque chemin est représenté par un vecteur de chemin à
deux dimensions de sorte que :
= si Num Directions - 2, les deux chemins correspondent à
un déplacement horizontal, décroissant et croissant,
respectivement représentés par les vecteurs
de chemin (1, 0) et (-1, 0) ;
= si Num Directions = 4, s'y ajoutent deux chemins
correspondant à un déplacement vertical décroissant et
croissant, et les quatre vecteurs de chemin
correspondants sont (1, 0), (-1, 0), (0, - 1) et (0,1) ;
= si Num Directions - 8, on rajoute les chemins
diagonaux ;
= etc_
Date reçue / Date received 2021-12-11
14
Dans le cas présent, on prend Num Directions égal à 8.
Cette valeur n'est qu'un exemple possible. Augmenter le
nombre de chemins permet d'avoir une prédiction de
disparité plus précise mais augmente proportionnellement
le temps de calcul.
Deux paramètres supplémentaires entrent par la suite en
jeu :
- le paramètre Pl qui représente la pénalité que deux
pixels voisins aient une disparité différente de 1 ;
- le paramètre P2 qui représente la pénalité que deux
pixels voisins aient une disparité différente d'au
moins deux pixels.
On retient que plus les deux paramètres P1 et P2 sont
élevés, plus les cartes de disparités éparses qui en
résulteront seront lisses. On retient aussi qu'il
convient de trouver un compromis entre des cartes de
disparités éparses trop bruitées et des cartes de
disparités éparses trop lisses qui perdraient des détails
comme des textures, des objets fins et/ou des contours.
Dans le cas présent, P1 est fixé à 8 et P2 à 32 mais
d'autres valeurs sont bien entendu envisageables.
Pour chaque vecteur de chemin r = (rx, ry) on peut ainsi
calculer l'agrégation de coût Lr(x, y, disp) pour chaque
pixel de l'image initiale gauche par :
Lr(x, y, disp) =
Cost(x, y, disp)
min{ Lr(x - rx, y - ry, disp),
Lr(x - rx, y - ry, disp - 1) + Pl,
Lr(x - rx, y - ry, disp + 1) + Pl,
miniL,(x - rx, y - ry, i) + P21
- minkL,(x - rx, y - ry, k)
(8)avec i et k des valeurs variant de 0 à Disp Max pour
déterminer le minimum de la fonction Lr(X, y, disp).
Ce calcul étant récursif, il est nécessaire d'initialiser
pour chaque chemin, Lr(x, y, disp) pour un ensemble de
Date reçue / Date received 2021-12-11
15
pixels. Pour ce faire on choisit pour chaque chemin la
bordure de l'image opposée au vecteur de chemin
considéré, et on initialise la valeur Lr(x, y, disp) à
Cost(x, y, disp). Par exemple pour le vecteur de chemin
(-1, 0), correspondant à un déplacement croissant
horizontal, on choisit le côté gauche de l'image.
En sommant sur chaque chemin, on obtient un nouveau coût
d'appariement S pour chaque pixel et chaque disparité :
S(r, y, disp) = sum(I ,(r, disp ))
(9).
Lors d'une troisième phase 103, on associe à chaque pixel
de l'image initiale gauche un pixel de l'image initiale
droite par minimisation du coût d'appariement S dudit
pixel. Cela revient à déterminer la disparité Di(x,Y)
dudit pixel en cherchant le minimum de la fonction S(x,
y, disp) en faisant varier la valeur disp de 0 à Disp
Max, soit donc à résoudre l'équation suivante :
Di(u) =mino<i<Dispmax S(xj) (10)
Par ailleurs, on associe à chaque pixel de l'image
initiale droite un pixel de l'image initiale gauche par
minimisation du coût d'appariement S dudit pixel.
La disparité droite est donc ici déterminée à partir du
même coût d'appariement S mais avec une formule plus
complexe, puisque ladite formule doit incorporer la
contrainte épi-polaire:
Dr(x, y) - min wiS Disp Max S (x + i, y, i) (11)
On obtient ainsi des cartes de disparité intermédiaire
gauche et droite.
Au cours de la ou des phases suivantes au moins un filtre
est appliqué sur les cartes de disparité intermédiaire
gauche et droite, et de préférence au moins deux filtres,
afin d'en améliorer la précision.
Date reçue / Date received 2021-12-11
16
Ainsi, au cours d'une quatrième phase 104, on applique un
premier filtre pour éliminer les valeurs les plus
incohérentes pour chacune des cartes de disparité
intermédiaire gauche et droite.
Par exemple, le filtre est un filtre médian tel qu'un
filtre de taille 3 x 3.
Ledit filtre est appliqué sur les disparités précédentes
DI et Dr pour obtenir respectivement des nouvelles cartes
de disparité intermédiaire gauche et droite.
Puis au cours d'une cinquième phase 105, on applique un
deuxième filtre sur les nouvelles cartes de disparité
intermédiaire gauche et droite afin de s'assurer de la
consistance stéréoscopique, c'est-à-dire de la cohérence
entre les disparités gauche et droite obtenues.
En effet D1 associe pour chacun des pixels de l'image
initiale gauche, un pixel de l'image initiale droite, il
est donc possible de vérifier que la valeur de disparité
Dr du pixel de l'image initiale droite coïncide.
Si ce n'est pas le cas, on rend invalide les valeurs
correspondantes de Di et de Dr.
Les disparités filtrées Dfl et Dfr sont ainsi obtenues avec
les équations suivantes :
Dfi(x, y)= Di(x, y) si IID1(x, y)- Dr(x - Di(x, y), y)II 1
= valeur invalide sinon
(12)
Dfr(x, y)=Dr(x, y) si IIDr(x, y)- Di(x + Dr(x, Y), 17)11 1
= valeur invalide sinon
(13)
On obtient ainsi les cartes de disparités éparses gauche
et droite composées des disparités filtrées,
respectivement Dfl et Dfr, pour chaque pixel de
respectivement l'image initiale gauche et de l'image
initiale droite.
Date reçue / Date received 2021-12-11
17
On parle de cartes éparses du fait que certaines
valeurs de disparités ont été invalidées au cours de la
dernière phase 105 de sorte que chaque pixel d'une image
donnée n'est pas toujours associé à une valeur de
disparité telle que précédemment calculée. Pour ces
pixels, on considère par exemple qu'ils sont associés à
une valeur de disparité arbitraire. Cette valeur est ici
prise égale à -1 ou bien à 0 mais peut bien entendu être
différente.
La première étape 1 ainsi décrite permet de fournir des
cartes de disparités éparses gauche et droite avec
uniquement les pixels dont on a une bonne confiance quant
à la qualité de leur association, le reste desdites
cartes est fixé à la valeur arbitraire.
Or si les images initiales gauche et droite comportent
des représentations d'objets, du fait des mouvements
desdits objets ou de l'aéronef, les frontières desdits
objets peuvent être erronées dans les cartes de
disparités éparses gauche et droite. Ceci peut conduire à
terme à une mauvaise interprétation de profondeur de la
part du pilote.
En référence aux figures 4 et 5, la deuxième étape 2 va
donc consister à améliorer les cartes de disparités
éparses gauche et droite en densifiant lesdites cartes
(i.e. modifier les valeurs arbitraires) afin d'obtenir
une carte de disparité dense gauche et une carte de
disparité dense droite. Optionnellement, la deuxième
étape 2 est ici mise en uvre en s'appuyant sur les
frontières des objets afin de les conserver voir de les
améliorer sur les cartes de disparité dense droite et
gauche.
Ainsi, dans le cas présent, la deuxième étape 2 est mise
en uvre par densification de chaque carte de disparité
éparse en se servant d'une image guide. L'image guide est
ici l'image initiale droite pour la carte de disparité
Date reçue / Date received 2021-12-11
18
éparse droite et l'image initiale gauche pour la carte de
disparité éparse gauche. La deuxième étape consiste donc
ici en un filtrage guidé des cartes de disparités
éparses gauche et droite.
Par exemple, chaque carte de disparité éparse est
complétée en essayant de faire correspondre les gradients
de la carte de disparité dense sur ceux de l'image guide.
Dans le cas présent, on cherche à compléter les cartes de
disparités éparses tout en minimisant le coût d'une telle
opération.
La deuxième étape 2 est implémentée dans un deuxième
module de l'unité de traitement indépendant du premier
module. Un tel deuxième module est par exemple un module
tel que décrit dans l'article Fast global image
smoothing based on weighted least squares de Min, D.,
Choi, S., Lu, J., Ham, B., Sohn, K. et Do, M. N. en 2014
dans le IEEE Transactions on Image Processing, 23(12),
5638-5653.
Par la suite :
- u désigne le résultat du filtrage guidé,
- f l'image d'entrée,
- g l'image guide,
- H et L sont la hauteur et la largeur de l'image
guide (dans le cas présent l'image initiale droite
ou gauche),
- Stotai est un vecteur du nombre de pixels total de
l'image guide par ligne et du nombre de pixels total
de l'image guide par colonne.
Mathématiquement, le filtrage guidé revient alors à
résoudre le problème 201 suivant avec I la matrice
identité de taille Stot ; A une matrice de taille Stot
obtenue à partir de g ; et X un paramètre défini ci-
après:
(I + XA(g))u = f (14)
Date reçue / Date received 2021-12-11
19
De préférence, on sépare ce problème 201 originalement en
deux dimensions (hauteur et largeur de la carte) en une
succession de problèmes unidimensionnels (soit hauteur
soit largeur). On procède ensuite à la résolution de
chaque problème par itération sur chaque colonne et
chaque ligne. Il est ainsi plus facile d'obtenir une
solution générale qui demeure en outre similaire à celle
à laquelle on serait parvenu si l'on avait cherché à
résoudre directement le problème 201 initial
bidimensionnel.
Le filtrage guidé unidimensionnel revient donc à estimer
plusieurs fois un problème plus simple, où l'on considère
uniquement une ligne ou colonne de chaque image.
Cela réduit la taille des vecteurs de Stot à soit H soit L
c'est-à-dire
(In + ?Ji (gh))Uh = fh (15a)
ou bien
(IL + ?Ji (gL) )uL = fL (15b).
Afin de calculer la matrice A, il est nécessaire
d'estimer une matrice intermédiaire W à partir du vecteur
g défini par :
W(m, n) = exp(-11gm - grill/a) (16)
Cette matrice est caractéristique des variations du
vecteur g avec
m un nombre entier variant entre 0 et H, n un nombre
entier variant entre 0 et L et
a étant un paramètre défini ci-après.
Une fois cette matrice intermédiaire W estimée, il est
possible de résoudre le problème unidimensionnel évoqué
précédemment (soit le problème 15a soit le problème 15b)
en utilisant la technique de résolution linéaire qui va
suivre.
Date reçue / Date received 2021-12-11
20
On se place par la suite dans le cas d'une ligne (gL, FL)
mais le raisonnement suivant est bien entendu similaire
dans le cas d'une colonne.
On calcule tout d'abord la matrice WL à partir du vecteur
g_fL1 grâce à la formule (16). La matrice WL aura ainsi
des dimensions (L, L).
On définit ensuite les variables suivantes, avec les
conditions ao - 0 et cw- 1 - 0 ; et x 0, L - 1:
ax (x, x - 1)
bx = 1 + MW(x, x - 1) + W(x, x+ 1))
cx = - AW (x, x+ 1),
Cela nous permet de définir récursivement les variables
suivantes avec les conditions initiales = coi& etre = ebo
= c/ (b Cx- lax)
= ,c h 1c- h .e7 114 ax
x ix f x-rixfit
et x = 0, L - 1.
Une fois cette résolution terminée, il est possible
d'obtenir le vecteur solution uh avec le système récursif
suivant, avec ',1,7
w-
= ¨
...xt01+1
et x = 0, L - 1.
Pour approcher la solution du problème général 201 à deux
dimensions, on va donc résoudre le problème
unidimensionnel précédent sur chacune des colonnes et
chacune des lignes.
Optionnellement on emploie l'enchaînement suivant :
= Initialisation d'une image filtrée par l'image
d'entrée f
= Boucle sur le nombre d'itérations N Iter (autre
paramètre défini ci-après)
Date reçue / Date received 2021-12-11
21
- Mise à jour du paramètre A
- Boucle sur l'ensemble des lignes n
* Détermination de la matrice W à partir de la
n-ième ligne de l'image guide g ;
* Résolution du problème unidimensionnel avec
fL,la n-ième ligne de l'image d'entrée, et giõ la n-
ième ligne de l'image guide ;
* Remplacement de la n-ième ligne de l'image
d'entrée par le vecteur solution UL
- Boucle sur l'ensemble des colonnes m
* Détermination de la matrice W à partir de la
m-ième colonne de l'image guide g ;
* Résolution du problème unidimensionnel avec
fh, la j-ième colonne de l'image d'entrée et gh, la
j-ième colonne de l'image guide g ;
* Remplacement de la j-ième colonne de l'image
d'entrée par le vecteur solution uh
On a ainsi vu que l'on employait dans le deuxième module
trois paramètres :
= G qui correspond au voisinage de l'estimation des
variations de l'image guide g ;
= A qui correspond au paramètre de régularisation ;
= N Iter qui correspond au nombre de passes sur chaque
ligne et chaque colonne.
Les paramètres ont par défaut les valeurs suivantes :
= A = 80000
= o - 1.2
= N Iter = 2
Bien entendu ces valeurs ne sont pas limitatives et l'on
pourra choisir d'autres valeurs. Par exemple, le nombre
d'itérations peut être augmenté pour améliorer la qualité
du filtrage mais en contrepartie cela entraîne un plus
grand temps d'exécution.
Date reçue / Date received 2021-12-11
22
Par ailleurs, si A est initialement pris à 80000, à
chaque itération, comme indiqué ci-dessus, ce paramètre X
est mis à jour par l'équation suivante :
3 41--t
4¨ ___________________________ (17)
24T-1A
Avec T égal à N_Iter et t égal à l'itération en cours.
De préférence, on préfère résoudre par itération le
problème général 201 deux fois.
Le problème général 201 est ainsi résolu itérativement
selon le problème précité une première fois en prenant :
- Comme image guide g l'image initiale gauche
(respectivement l'image initiale droite)
- Comme image d'entrée f la carte de disparité éparse
gauche (respectivement la carte de disparité éparse
droite).
Par ailleurs, le problème général (14) est résolu
itérativement selon le problème précité une deuxième fois
en prenant :
- Comme image guide g l'image initiale gauche
(respectivement l'image initiale droite)
- Comme image d'entrée h un masque de validité de la
carte de disparité éparse gauche (respectivement de
la carte de disparité éparse droite).
Le masque de validité h est défini par l'ensemble des
pixels dont les valeurs de disparités ont été invalidées
au cours de la dernière phase 105 et auxquels une valeur
arbitraire de disparité a été associée (par exemple 0 ou
-1).
On divise ensuite les deux résultats obtenus pour obtenir
le résultat final du filtrage guidé u c'est-à-dire la
carte de disparité dense gauche (respectivement la carte
de disparité dense droite) :
18
(/ + )-40 ( )
Date reçue / Date received 2021-12-11
23
La deuxième étape 2 ainsi décrite modifie les
informations obtenues à la suite de la première étape 1
pour améliorer le confort visuel du pilote en permettant
d'obtenir des cartes de disparités plus lisses tout en
respectant les contours des objets de la scène visualisée
par les caméras.
Au cours de la troisième étape 3, on va reconstituer un
point de vue stéréoscopique à partir des cartes de
disparités denses gauche et droite en sortie du deuxième
module mais également à partir des images initiales
gauche et droite et d'une valeur d'entraxe particulière
visée. Optionnellement, la valeur d'entraxe particulière
est une valeur proche ou identique à celle de l'entraxe
relative aux yeux du pilote afin de lui rendre la
visualisation des images la plus confortable possible.
La troisième étape 3 de simulation du nouveau point de
vue stéréoscopique est implémentée dans un troisième
module de l'unité de traitement indépendant du premier
module et du deuxième module.
Par exemple la troisième étape 3 consiste en une
interpolation horizontale des images initiales gauche et
droite en fonction des cartes de disparités denses et de
1a valeur d'entraxe particulière visée. On a ici recours
à une interpolation horizontale par une distance.
Plus précisément on décale ici horizontalement chaque
pixel de l'image initiale gauche (respectivement de
l'image initiale droite) par un coefficient proportionnel
à la disparité calculée au cours des étapes précédentes
de ce pixel.
Ce coefficient est caractéristique du rapport entre la
valeur d'entraxe visée et la valeur d'entraxe réelle du
dispositif de génération de vues stéréoscopiques (qui est
Date reçue / Date received 2021-12-11
24
donc fixe et connue, la position relative des caméras
entre elles étant également fixe et connue) :
Ab - valeur d'entraxe visée / valeur d'entraxe réelle
(19)
En notant 11)1 et Ibr les nouvelles images traitées gauche
et droite, on a recours ici aux deux formules 20 et 21
suivantes :
MX )4 = //(X + 1 ¨23' )4, ))'
(20)
1 ¨Ab
Mx. = Mx. Dr(x, y), J)' (21)
r - 2
De préférence, afin de gérer au mieux les zones
d'occlusion oculaires, le remplissage des pixels des deux
images traitées gauche et droite se fait dans le sens
suivant :
= Initialisation de l'image traitée gauche (ou de l'image
traitée droite) à 0
= Boucle sur chaque ligne :
- Boucle sur chaque colonne
- Application de la formule 20 (ou de la formule 21)
en interpolant linéairement les indices non
entiers.
Une fois les images traitées droite et gauche générées,
l'unité de traitement affiche l'image traitée droite sur
le côté droit de la visière du pilote et l'image traitée
gauche sur le côté gauche de la visière du pilote, le
cerveau du pilote faisant naturellement la synthèse des
deux images pour obtenir une vue en relief.
Le procédé ainsi décrit permet en outre de fournir un
point de vue stéréoscopique dont la valeur d'entraxe est
modifiable en temps réel. En particulier le procédé ainsi
décrit permet de réduire ou d'augmenter artificiellement
la distance séparant les deux caméras.
Date reçue / Date received 2021-12-11
25
Le pilote peut ainsi voler avec un bon confort visuel.
Bien entendu, l'invention n'est pas limitée à la mise en
uvre décrite ci-dessus et on pourra y apporter des
variantes de réalisation sans sortir du cadre de
l'invention.
En particulier, bien qu'ici l'invention soit mise en
uvre par un équipement optronique d'aide au pilotage
d'un aéronef, l'invention pourra être mise en uvre par
tout autre dispositif de génération de vues
stéréoscopiques.
L'invention est ainsi également applicable à tout type de
véhicule aérien, terrestre (voiture, char ou
nautique.
De la même manière, l'invention est utilisable avec tout
dispositif d'affichage relié à l'unité de traitement. Par
exemple au lieu d'un dispositif de projection permettant
au pilote de visualiser les images par réflexion sur la
visière de son casque, le casque du pilote pourra
comprendre deux afficheurs placés chacun devant un des
yeux du pilote.
Bien qu'ici l'on ne modifie qu'une seule fois le point de
vue stéréoscopique à une valeur d'entraxe donnée, on
pourra en variante modifier ledit point de vue une ou
plusieurs fois ou de manière continue et ce en temps
réel. Ainsi, il est possible d'adapter en temps réel et
de manière continue ledit point de vue stéréoscopique
afin de garantir la meilleure appréciation visuelle
possible selon les scènes observées et ainsi diminuer au
maximum les risques de malaises visuels comme par exemple
lors de la visualisation de scènes proches.
Bien qu'ici l'équipement optronique ne comporte que deux
caméras, l'équipement optronique pourra comprendre
davantage de caméras. L'équipement optronique pourra par
exemple être l'équipement décrit dans la demande WO
2020/053227 ou tout autre dispositif de génération de
vues stéréoscopiques. Si le dispositif de génération de
Date reçue / Date received 2021-12-11
26
vues stéréoscopiques comporte une caméra, celle-ci pourra
être une caméra infrarouge en bande thermique lointaine
(plus connue sous l'acronyme anglais LWIR), et par
exemple une caméra dont le spectre lumineux se situe dans
la gamme de longueur d'onde 8 à 12 micromètres, ou bien
médium (plus connue sous l'acronyme anglais MWIR), et par
exemple une caméra dont le spectre lumineux se situe dans
la gamme de longueur d'onde 3 à 5 micromètres, ou bien
courte (plus connue sous l'acronyme anglais SWIR), et par
exemple une caméra dont le spectre lumineux se situe dans
la gamme de longueur d'onde 1.3 à 3 micromètres. La
caméra pourra bien entendu travailler dans une autre
gamme de longueur d'onde que ce qui vient d'être décrit.
Par exemple la caméra pourra travailler dans le domaine
du visible.
A la place de projeter directement l'image traitée par
l'unité de traitement (image visualisée par le pilote par
réflexion sur la visière du casque), l'unité de
traitement et/ou le dispositif d'affichage pourra
extraire de chaque image traitée droite et gauche une
portion d'image traitée droite et gauche, ladite portion
étant celle visualisée par le pilote par réflexion sur la
visière du casque.
L'unité de traitement et/ou le dispositif d'affichage
pourra également réaliser une synthèse des deux images
traitées droite et gauche (ou d'une ou deux portions
d'images) et projeter directement cette synthèse au lieu
que ce soit l'utilisateur lui-même qui effectue cette
synthèse.
Le procédé décrit pourra comporter un nombre différent de
phases et/ou d'étapes que ce qui a été indiqué. Par
ailleurs lesdites étapes et/ou lesdites phases pourront
être différentes de ce qui a été décrit.
Ainsi alors que la cinquième phase de la première étape
consiste ici en un filtrage par consistance
Date reçue / Date received 2021-12-11
27
stéréoscopique, on pourra employer (en complément ou en -
remplacement) un autre type de filtrage tet qu'un
filtrage par accumulation temporelle. On 'pourra ainsi
appliquer les formules suivantes : en notant Dft(x,y) la
disparité filtrée à l'instant t, Dft-1(x,y) la disparité
filtrée à l'instant t-1, et Dt(x,y) la disparité obtenue à
l'issue de la quatrième phase à l'instant t, on a les
équations suivantes à appliquer, avec a un paramètre de
filtrage temporel compris entre 0 et 1 :
Dyx, = Dr(x,y) si Dt (x,y) = -let DI-1(x, > -1
Di(x,y) = Dt (x, y) si Dr(x,y) = -let Dt (x, y) > -1
Dtf = a *IDt (x, + (1- a)* Dr(x,y) si Dr(x,y) > -let DI (x, y)> -1
On obtient ainsi à l'issue de cette cinquième phase les
cartes de disparités éparses gauche et droite qui sont
utilisées en entrée du deuxième module. Ces cartes sont
avantageusement plus denses que ce qui a été décrit en
relation avec un filtrage de consistance stéréoscopique
(dans ce dernier cas le filtrage était uniquement spatial
et non temporel et spatial).
Date reçue / Date received 2021-12-11