CA3131716C - Procede de generation d'un point de vue stereoscopique a valeur d'entraxe modifiable - Google Patents
Procede de generation d'un point de vue stereoscopique a valeur d'entraxe modifiable Download PDFInfo
- Publication number
- CA3131716C CA3131716C CA3131716A CA3131716A CA3131716C CA 3131716 C CA3131716 C CA 3131716C CA 3131716 A CA3131716 A CA 3131716A CA 3131716 A CA3131716 A CA 3131716A CA 3131716 C CA3131716 C CA 3131716C
- Authority
- CA
- Canada
- Prior art keywords
- image
- disparity
- date received
- initial
- pixel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000001914 filtration Methods 0.000 claims description 26
- 239000011159 matrix material Substances 0.000 claims description 14
- 230000008569 process Effects 0.000 claims description 9
- 230000002776 aggregation Effects 0.000 claims description 7
- 238000004220 aggregation Methods 0.000 claims description 7
- 238000006073 displacement reaction Methods 0.000 claims description 5
- 230000002123 temporal effect Effects 0.000 claims description 5
- 238000009825 accumulation Methods 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims description 3
- 239000013598 vector Substances 0.000 description 14
- 230000006870 function Effects 0.000 description 12
- 230000003287 optical effect Effects 0.000 description 6
- 230000015572 biosynthetic process Effects 0.000 description 4
- 238000003786 synthesis reaction Methods 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 210000004556 brain Anatomy 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000001228 spectrum Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 210000001747 pupil Anatomy 0.000 description 2
- 241001024304 Mino Species 0.000 description 1
- 206010052143 Ocular discomfort Diseases 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 238000000280 densification Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000003706 image smoothing Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/0093—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00 with means for monitoring data relating to the user, e.g. head-tracking, eye-tracking
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/017—Head mounted
- G02B27/0172—Head mounted characterised by optical features
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B30/00—Optical systems or apparatus for producing three-dimensional [3D] effects, e.g. stereoscopic images
- G02B30/20—Optical systems or apparatus for producing three-dimensional [3D] effects, e.g. stereoscopic images by providing first and second parallax images to an observer's left and right eyes
- G02B30/34—Stereoscopes providing a stereoscopic pair of separated images corresponding to parallactically displaced views of the same object, e.g. 3D slide viewers
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/0101—Head-up displays characterised by optical features
- G02B2027/0129—Head-up displays characterised by optical features comprising devices for correcting parallax
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/0101—Head-up displays characterised by optical features
- G02B2027/0132—Head-up displays characterised by optical features comprising binocular systems
- G02B2027/0134—Head-up displays characterised by optical features comprising binocular systems of stereoscopic type
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/0179—Display position adjusting means not related to the information to be displayed
- G02B2027/0181—Adaptation to the pilot/driver
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Optics & Photonics (AREA)
- Image Processing (AREA)
Abstract
Procédé de génération d'un point de vue stéréoscopique à valeur d'entraxe modifiable comprenant les étapes de : -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, -Filtrer 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, -Générer 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.
Description
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
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
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
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
- 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
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
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
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
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
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
= 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
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
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
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
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
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
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
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
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
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
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
- 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) 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) :
(/ + )-40 ( ) Date reçue / Date received 2021-12-11
chaque itération, comme indiqué ci-dessus, ce paramètre X
est mis à jour par l'équation suivante :
3 41--t 4¨ ___________________________ (17) 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) :
(/ + )-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
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
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
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
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
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
Claims (17)
1. 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 (1): à 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 (2): 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, et - troisième étape (3): 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.
valeur d'entraxe modifiable comprenant au moins les étapes de :
- première étape (1): à 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 (2): 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, et - troisième étape (3): 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.
2. Le procédé selon la revendication 1, dans lequel 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.
3. Le procédé selon la revendication 2, dans lequel 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.
4. Le procédé selon la revendication 3, dans lequel 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.
Date Reçue/Date Received 2023-06-20
Date Reçue/Date Received 2023-06-20
5. Le procédé selon la revendication 3 ou la revendication 4, dans lequel à partir du coût d'association de tous les pixels, on détermine une agrégation spatiale des coûts.
6. Le procédé selon la revendication 5, dans lequel 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.
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.
7. Le procédé selon l'une quelconque des revendications 1 à 6, dans lequel la première étape (1) comporte elle-même au moins une phase de filtrage.
8. Le procédé selon la revendication 7, dans lequel la phase de filtrage consiste en un filtrage par consistance stéréoscopique.
9. Le procédé selon la revendication 7 ou la revendication 8, dans lequel la phase de filtrage consiste en un filtrage par accumulation temporelle.
10. Le procédé selon l'une quelconque des revendications 1 à 9, dans lequel au cours de la deuxiène étape (2) on densifie aumoins 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.
des cartes de disparités éparses gauche et droite.
11. Le procédé selon la revendication 10, dans lequel au cours de la deuxiène étape (2) on résout le problème suivant (I + AA(g))u = f avec u désignant le résultat dufiltrage, 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 A un paramètre donné.
Date Reçue/Date Received 2023-06-20
Date Reçue/Date Received 2023-06-20
12. Le procédé selon la revendication 11, dans lequel 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.
13. Le procédé selon la revendication 11 ou la revendication 12, dans lequel 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.
14. Le procédé selon la revendication 13, dans lequel 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èrne 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é carte de disparité éparse que pour la première résolution.
- 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èrne 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é carte de disparité éparse que pour la première résolution.
15. Dispositif de génération de vues stéréoscopiques permettant la mise en ceuvre du procédé selon 1 'une quelconque des revendications 1 à 14.
16. Le dispositif selon la revendication 15, dans lequel ledit dispositif est un dispositif d'aide au pilotage d'un aéronef.
17. Support d' enregistrement lisible par ordinateur, sur lequel est enregistré un programme d'ordinateur sous forme d' un code exécutable par 1 ' ordinateur comprenant des instructions qui conduisent le dispositif de génération de vues stéréoscopiques selon la revendication 15 ou 16 à
exécuter le procédé selon l'une quelconque des revendications 1 à 14.
Date Reçue/Date Received 2023-06-20
exécuter le procédé selon l'une quelconque des revendications 1 à 14.
Date Reçue/Date Received 2023-06-20
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR2009789 | 2020-09-25 | ||
FR2009789 | 2020-09-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
CA3131716A1 CA3131716A1 (fr) | 2023-06-11 |
CA3131716C true CA3131716C (fr) | 2024-06-04 |
Family
ID=91335233
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA3131716A Active CA3131716C (fr) | 2020-09-25 | 2021-09-23 | Procede de generation d'un point de vue stereoscopique a valeur d'entraxe modifiable |
Country Status (1)
Country | Link |
---|---|
CA (1) | CA3131716C (fr) |
-
2021
- 2021-09-23 CA CA3131716A patent/CA3131716C/fr active Active
Also Published As
Publication number | Publication date |
---|---|
CA3131716A1 (fr) | 2023-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11632533B2 (en) | System and method for generating combined embedded multi-view interactive digital media representations | |
Wu et al. | Light field image processing: An overview | |
CA2592293C (fr) | Procede de traitement d'images mettant en oeuvre le georeferencement automatique d'images issues d'un couple d'images pris dans le meme plan focal | |
Wang et al. | Light field video capture using a learning-based hybrid imaging system | |
US12100093B2 (en) | Systems and methods for end to end scene reconstruction from multiview images | |
US20140176540A1 (en) | Occlusion-Aware Reconstruction of Three-Dimensional Scenes from Light Field Images | |
EP3144881A1 (fr) | Procede de mosaiquage 3d panoramique d'une scene | |
Zhao et al. | Cross-scale reference-based light field super-resolution | |
Dutta | Depth-aware blending of smoothed images for bokeh effect generation | |
WO2005010820A2 (fr) | Procede et dispositif automatise de perception avec determination et caracterisation de bords et de frontieres d'objets d'un espace, construction de contours et applications | |
Wu et al. | Geometry based three-dimensional image processing method for electronic cluster eye | |
US20230217001A1 (en) | System and method for generating combined embedded multi-view interactive digital media representations | |
Martínez-Usó et al. | Depth estimation in integral imaging based on a maximum voting strategy | |
Kwon et al. | Advanced three-dimensional visualization system for an integral imaging microscope using a fully convolutional depth estimation network | |
EP2469868B1 (fr) | Procédé de correction de l'hyperstéréoscopie et système de visualisation de casque associé | |
CN115497061A (zh) | 一种基于双目视觉的道路可行驶区域识别方法及装置 | |
EP0961227B1 (fr) | Procédé de détection de la profondeur relative entre deux objects dans une scène à partir d'un couple d'images issues de prises de vues différentes | |
CA3131716C (fr) | Procede de generation d'un point de vue stereoscopique a valeur d'entraxe modifiable | |
Zhou et al. | Single-view view synthesis with self-rectified pseudo-stereo | |
FR3111222A1 (fr) | Génération de modèles 3D à l’échelle à partir d’images 2D produites par un dispositif d’imagerie monoculaire | |
Latorre-Carmona et al. | Three-dimensional imaging with multiple degrees of freedom using data fusion | |
EP2678823B1 (fr) | Dispositif et procédé de gestion de la position du plan focal dans une scène stéréoscopique | |
Yan et al. | Generating stereoscopic images with convergence control ability from a light field image pair | |
WO2020157733A1 (fr) | Procédé dynamique d'imagerie tridimensionnelle | |
WO2024194540A1 (fr) | Procede de correction d'images |