FR3160789A1 - Procédé et dispositif d’apprentissage d’un modèle de prédiction de profondeur associé à un système de vision stéréoscopique par comparaison de positions de points dans une scène tridimensionnelle. - Google Patents
Procédé et dispositif d’apprentissage d’un modèle de prédiction de profondeur associé à un système de vision stéréoscopique par comparaison de positions de points dans une scène tridimensionnelle.Info
- Publication number
- FR3160789A1 FR3160789A1 FR2403030A FR2403030A FR3160789A1 FR 3160789 A1 FR3160789 A1 FR 3160789A1 FR 2403030 A FR2403030 A FR 2403030A FR 2403030 A FR2403030 A FR 2403030A FR 3160789 A1 FR3160789 A1 FR 3160789A1
- Authority
- FR
- France
- Prior art keywords
- pixel
- depth map
- image
- camera
- depth
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/56—Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
- G06V20/58—Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Multimedia (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
Procédé ou dispositif d’apprentissage d’un modèle de prédiction de profondeur mis en œuvre par un réseau de neurones associé à un système de vision. En effet, le procédé comprend la génération (32) de cartes de profondeurs associées à des images acquises par chaque caméra du système de vision et la génération (34) d’autres images et d’autres cartes de profondeurs à partir des images reçues et des cartes de profondeurs par changement de référentiel. Un masque de visibilité est déterminé (35) à partir des images générées et une valeur nulle est assignée (36) aux pixels des images générées non compris dans le masque de visibilité. Le modèle de prédiction de profondeur est alors appris (38) par minimisation d’une erreur de perte déterminée par comparaison de positions de points projetés (33, 37) dans la scène tridimensionnelle à partir des différentes cartes de profondeurs, les points correspondant à des pixels.
Figure pour l’abrégé : Figure 3
Description
La présente invention concerne les procédés et dispositifs de détermination d’une profondeur par système de vision embarqué dans un véhicule, par exemple dans un véhicule automobile. La présente invention concerne également un procédé et un dispositif de mesurage d’une distance séparant un objet d’un véhicule embarquant un système de vision.
De nombreux véhicules modernes sont équipés de systèmes d’aide à la conduite dits ADAS (de l’anglais « Advanced Driver-Assistance System » ou en français « Système d’aide à la conduite avancé »). De tels systèmes ADAS sont des systèmes de sécurité passifs et actifs conçus pour éliminer la part d'erreur humaine dans la conduite de véhicules de tous types. Les ADAS utilisent des technologies avancées pour assister le conducteur pendant la conduite et améliorer ainsi ses performances. Les ADAS utilisent une combinaison de technologies de capteurs pour percevoir l’environnement autour d’un véhicule, puis fournissent des informations au conducteur ou agissent sur certains systèmes du véhicule.
Il existe plusieurs niveaux d’ADAS, tels que les caméras de recul et les capteurs d'angle mort, les systèmes d'alerte de franchissement de ligne, les régulateurs de vitesse adaptatifs ou encore les systèmes de stationnement automatique.
Les ADAS embarqués dans un véhicule sont alimentés par des données obtenues d’un ou plusieurs capteurs embarqués tels que, par exemple, des caméras. Ces caméras permettent notamment de détecter et de situer d’autres usagers de la route ou d’éventuels obstacles présents autour d’un véhicule afin, par exemple :
• d’adapter l’éclairage du véhicule en fonction de la présence d’autres usagers ;
• de réguler de façon automatique la vitesse du véhicule ;
• d’agir sur le système de freinage en cas de risque d’impact avec un objet.
• d’adapter l’éclairage du véhicule en fonction de la présence d’autres usagers ;
• de réguler de façon automatique la vitesse du véhicule ;
• d’agir sur le système de freinage en cas de risque d’impact avec un objet.
La prédiction d’une distance séparant un objet d’un véhicule, c’est-à-dire de la profondeur associée à un pixel d’une image acquise par une caméra, le pixel représentant l’objet, requiert une grande précision afin d’alimenter les ADAS. La prédiction d’une profondeur associée à un pixel fait notamment appel à un modèle de prédiction de profondeur, le modèle de prédiction de profondeur étant adapté au système de vision embarqué par le véhicule. Un tel modèle de prédiction est couramment mis en œuvre par un réseau de neurones, lequel est notamment appris dans une phase d’apprentissage afin de prédire des profondeurs justes par rapport au système de vision embarqué et au type d’environnement dans lequel évolue le véhicule. Une phase d’apprentissage requiert alors des données, par exemple des données annotées en provenance de bibliothèques ou annotées via d’autres systèmes embarqués plus précis comme un LIDAR®. Néanmoins, ce type d’apprentissage requiert une accumulation massive de données ou la présence de cet autre système embarqué dont le véhicule ne dispose pas toujours. Il est alors possible de réaliser une phase d’apprentissage du modèle de prédiction de profondeur à partir de données acquises par le système de vision embarqué mais les solutions existantes ne sont pas adaptées à la configuration de tout système de vision embarqué dans un véhicule.
De plus, des objets présents dans une scène tridimensionnelle observée par un système de vision stéréoscopique, c’est-à-dire un système de vision comprenant au moins deux caméras, peuvent ne pas être visibles sur certaines images acquises par le système de vision stéréoscopique, ces objets étant alors occlus du point de vue d’une caméra du système de vision stéréoscopique. La présence d’objets occlus est alors susceptible de générer des erreurs et de fausser l’apprentissage d’un modèle de prédiction de profondeurs.
Un objet de la présente invention est de résoudre au moins l’un des problèmes de l’arrière-plan technologique décrit précédemment.
Un autre objet de la présente invention est d’améliorer la qualité des données issues du traitement d’une image acquise par un système de vision, notamment par un modèle de prédiction de profondeur mis en œuvre par un réseau de neurones associé à un système de vision stéréoscopique.
Un autre objet de la présente invention est d’améliorer la sécurité routière, notamment par l’amélioration de la sûreté de fonctionnement des système ADAS alimentés par des données obtenues d’une caméra, notamment d’une caméra grand angle.
Selon un premier aspect, la présente invention concerne un procédé d’apprentissage d’un modèle de prédiction de profondeur mis en œuvre par un réseau de neurones convolutif associé à un système de vision stéréoscopique embarqué dans un véhicule, le système de vision stéréoscopique comprenant une première caméra et une deuxième caméra disposées de manière à acquérir chacune une image d’une scène tridimensionnelle selon un point de vue différent,
ledit procédé étant mis en œuvre par au moins un processeur, et étant caractérisé en ce qu’il comprend les étapes suivantes :
- réception d’une première image et d’une deuxième image acquises par respectivement la première caméra et la deuxième caméra à un même instant temporel d’acquisition ;
- génération d’une première carte de profondeurs comprenant des profondeurs associées à un ensemble de pixels de la première image et d’une deuxième carte de profondeurs comprenant des profondeurs associées à un ensemble de pixels de la deuxième image, les profondeurs étant prédites avec le modèle de prédiction de profondeur à partir des première et deuxième images ;
- détermination de positions tridimensionnelles de points d’un premier ensemble de points à partir de la première carte de profondeurs, chaque point du premier ensemble de points correspondant à un pixel de la première carte de profondeurs, et détermination de positions tridimensionnelles de points d’un deuxième ensemble de points à partir de la deuxième carte de profondeurs, chaque point du deuxième ensemble de points correspondant à un pixel de la deuxième carte de profondeurs ;
- génération d’une troisième image et d’une troisième carte de profondeurs à partir de la première image, de la première carte de profondeurs et de paramètres extrinsèques du système de vision stéréoscopique, la troisième carte de profondeurs comprenant des profondeurs associées à un ensemble de pixels de la troisième image, et génération d’une quatrième image et d’une quatrième carte de profondeurs à partir de la deuxième image, de la deuxième carte de profondeurs et des paramètres extrinsèques du système de vision stéréoscopique, la quatrième carte de profondeurs comprenant des profondeurs associées à un ensemble de pixels de la quatrième image ;
- détermination d’un masque de visibilité comme l’union d’un premier masque de visibilité et d’un deuxième masque de visibilité, chaque pixel de la troisième image résultant d’au moins un pixel de la première image appartenant au premier masque de visibilité et chaque pixel de la quatrième image résultant d’au moins un pixel de la deuxième image appartenant au deuxième masque de visibilité ;
- assignation d’une valeur nulle aux pixels des troisième et quatrième images non compris dans le masque de visibilité ;
- détermination de positions tridimensionnelles de points d’un troisième ensemble de points à partir de la troisième carte de profondeurs, chaque point du troisième ensemble de points correspondant à un pixel de la troisième carte de profondeurs, et détermination de positions tridimensionnelles de points d’un quatrième ensemble de points à partir de la quatrième carte de profondeurs, chaque point du quatrième ensemble de points correspondant à un pixel de la quatrième carte de profondeurs ;
- apprentissage du modèle de prédiction de profondeur par minimisation d’une erreur de perte, l’erreur de perte étant déterminée à partir de :
• une première erreur de consistance déterminée par comparaison de positions tridimensionnelles de points des premier et quatrième ensembles de points,
• une deuxième erreur de consistance déterminée par comparaison de positions tridimensionnelles de points des deuxième et troisième ensembles de points, et
• une erreur photométrique déterminée par comparaison des première et quatrième images et par comparaison des deuxième et troisième images.
ledit procédé étant mis en œuvre par au moins un processeur, et étant caractérisé en ce qu’il comprend les étapes suivantes :
- réception d’une première image et d’une deuxième image acquises par respectivement la première caméra et la deuxième caméra à un même instant temporel d’acquisition ;
- génération d’une première carte de profondeurs comprenant des profondeurs associées à un ensemble de pixels de la première image et d’une deuxième carte de profondeurs comprenant des profondeurs associées à un ensemble de pixels de la deuxième image, les profondeurs étant prédites avec le modèle de prédiction de profondeur à partir des première et deuxième images ;
- détermination de positions tridimensionnelles de points d’un premier ensemble de points à partir de la première carte de profondeurs, chaque point du premier ensemble de points correspondant à un pixel de la première carte de profondeurs, et détermination de positions tridimensionnelles de points d’un deuxième ensemble de points à partir de la deuxième carte de profondeurs, chaque point du deuxième ensemble de points correspondant à un pixel de la deuxième carte de profondeurs ;
- génération d’une troisième image et d’une troisième carte de profondeurs à partir de la première image, de la première carte de profondeurs et de paramètres extrinsèques du système de vision stéréoscopique, la troisième carte de profondeurs comprenant des profondeurs associées à un ensemble de pixels de la troisième image, et génération d’une quatrième image et d’une quatrième carte de profondeurs à partir de la deuxième image, de la deuxième carte de profondeurs et des paramètres extrinsèques du système de vision stéréoscopique, la quatrième carte de profondeurs comprenant des profondeurs associées à un ensemble de pixels de la quatrième image ;
- détermination d’un masque de visibilité comme l’union d’un premier masque de visibilité et d’un deuxième masque de visibilité, chaque pixel de la troisième image résultant d’au moins un pixel de la première image appartenant au premier masque de visibilité et chaque pixel de la quatrième image résultant d’au moins un pixel de la deuxième image appartenant au deuxième masque de visibilité ;
- assignation d’une valeur nulle aux pixels des troisième et quatrième images non compris dans le masque de visibilité ;
- détermination de positions tridimensionnelles de points d’un troisième ensemble de points à partir de la troisième carte de profondeurs, chaque point du troisième ensemble de points correspondant à un pixel de la troisième carte de profondeurs, et détermination de positions tridimensionnelles de points d’un quatrième ensemble de points à partir de la quatrième carte de profondeurs, chaque point du quatrième ensemble de points correspondant à un pixel de la quatrième carte de profondeurs ;
- apprentissage du modèle de prédiction de profondeur par minimisation d’une erreur de perte, l’erreur de perte étant déterminée à partir de :
• une première erreur de consistance déterminée par comparaison de positions tridimensionnelles de points des premier et quatrième ensembles de points,
• une deuxième erreur de consistance déterminée par comparaison de positions tridimensionnelles de points des deuxième et troisième ensembles de points, et
• une erreur photométrique déterminée par comparaison des première et quatrième images et par comparaison des deuxième et troisième images.
Selon une variante, la première erreur de consistance et la deuxième erreur de consistance sont déterminées respectivement par la fonction suivante :
Avec :
• correspondant à la première erreur de consistance pour un pixel de la première carte de profondeurs, respectivement la deuxième erreur de consistance pour un pixel de la deuxième carte de profondeurs, un pixel étant défini par des coordonnées en deux dimensions ;
• une composante suivant un premier axe d’une position tridimensionnelle d’un point du premier ensemble de points correspondant au pixel de la première carte de profondeurs notée , respectivement du deuxième ensemble de points correspondant au pixel de la deuxième carte de profondeurs notée ;
• une composante suivant un premier axe d’une position tridimensionnelle d’un point du quatrième ensemble de points correspondant au pixel de la quatrième carte de profondeurs notée , respectivement du troisième ensemble de points correspondant au pixel de la troisième carte de profondeurs notée ;
• une composante suivant un deuxième axe d’une position tridimensionnelle d’un point du premier ensemble de points correspondant au pixel de la première carte de profondeurs notée , respectivement du deuxième ensemble de points correspondant au pixel de la deuxième carte de profondeurs notée ;
• une composante suivant un deuxième axe d’une position tridimensionnelle d’un point du quatrième ensemble de points correspondant au pixel de la quatrième carte de profondeurs notée , respectivement du troisième ensemble de points correspondant au pixel de la troisième carte de profondeurs notée ;
• une composante suivant un troisième axe d’une position tridimensionnelle d’un point du premier ensemble de points correspondant au pixel de la première carte de profondeurs notée , respectivement du deuxième ensemble de points correspondant au pixel de la deuxième carte de profondeurs notée ; et
• une composante suivant un troisième axe d’une position tridimensionnelle d’un point du quatrième ensemble de points correspondant au pixel de la quatrième carte de profondeurs notée , respectivement du troisième ensemble de points correspondant au pixel de la troisième carte de profondeurs notée .
Avec :
•
•
•
•
•
•
•
Selon une autre variante, le troisième ensemble de pixels comprend uniquement des pixels de la troisième carte de profondeurs compris dans le masque de visibilité et le quatrième ensemble de pixels comprend uniquement des pixels de la quatrième carte de profondeurs compris dans le masque de visibilité.
Selon encore une variante, l’erreur de perte est déterminée par la fonction suivante :
Avec :
• l’erreur de perte,
• la première erreur photométrique pour un pixel défini par ses coordonnées en deux dimensions,
• la deuxième erreur photométrique pour le pixel ,
• la première erreur de consistance pour le pixel , et
• la deuxième erreur de consistance pour le pixel .
Avec :
•
•
•
•
•
Selon une variante supplémentaire, la détermination d’une position tridimensionnelle d’un point correspondant à un pixel est obtenue par la fonction suivante :
Avec :
• la position tridimensionnelle d’un point du premier, deuxième, troisième et respectivement quatrième ensemble de points,
• un modèle de prédiction de direction associé à la première caméra, respectivement à la deuxième caméra,
• une fonction de projection dans la scène tridimensionnelle d’un pixel en fonction de ses coordonnées et de la profondeur qui lui est associée dans la première, deuxième, troisième et respectivement quatrième carte de profondeurs.
Avec :
•
•
•
Selon une autre variante, le modèle de prédiction de direction est mis en œuvre par un réseau de neurones.
Selon encore une autre variante, les troisième et quatrième cartes de profondeurs sont générées par la fonction suivante :
Avec :
• les coordonnées d’un pixel de la troisième carte de profondeurs, respectivement de la quatrième carte de profondeurs,
• une fonction pour passer de coordonnées homogènes à des coordonnées pixels en supprimant une dimension d’un vecteur,
• un modèle de prédiction de direction associé à la deuxième caméra, respectivement à la première caméra,
• un modèle de prédiction de direction associé à la première caméra, respectivement à la deuxième caméra,
• une matrice extrinsèque du système de vision stéréoscopique, et
• une fonction de projection dans la scène tridimensionnelle d’un pixel en fonction de ses coordonnées dans la première image, respectivement deuxième image, et de la profondeur qui lui est associée dans la première carte de profondeurs, respectivement deuxième carte de profondeurs.
Avec :
•
•
•
•
•
•
Selon un deuxième aspect, la présente invention concerne un dispositif configuré pour apprendre un modèle de prédiction de profondeur par un système de vision embarqué dans un véhicule, le dispositif comprenant une mémoire associée à au moins un processeur configuré pour la mise en œuvre des étapes du procédé selon le premier aspect de la présente invention.
Selon un troisième aspect, la présente invention concerne un véhicule, par exemple de type automobile, comprenant un dispositif tel que décrit ci-dessus selon le deuxième aspect de la présente invention.
Selon un quatrième aspect, la présente invention concerne un programme d’ordinateur qui comporte des instructions adaptées pour l’exécution des étapes du procédé selon le premier aspect de la présente invention, ceci notamment lorsque le programme d’ordinateur est exécuté par au moins un processeur.
Un tel programme d’ordinateur peut utiliser n’importe quel langage de programmation et être sous la forme d’un code source, d’un code objet, ou d’un code intermédiaire entre un code source et un code objet, tel que dans une forme partiellement compilée, ou dans n’importe quelle autre forme souhaitable.
Selon un cinquième aspect, la présente invention concerne un support d’enregistrement lisible par un ordinateur sur lequel est enregistré un programme d’ordinateur comprenant des instructions pour l’exécution des étapes du procédé selon le premier aspect de la présente invention.
D’une part, le support d’enregistrement peut être n'importe quel entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une mémoire ROM, un CD-ROM ou une mémoire ROM de type circuit microélectronique, ou encore un moyen d'enregistrement magnétique ou un disque dur.
D'autre part, ce support d’enregistrement peut également être un support transmissible tel qu'un signal électrique ou optique, un tel signal pouvant être acheminé via un câble électrique ou optique, par radio classique ou hertzienne ou par faisceau laser autodirigé ou par d'autres moyens. Le programme d’ordinateur selon la présente invention peut être en particulier téléchargé sur un réseau de type Internet.
Alternativement, le support d'enregistrement peut être un circuit intégré dans lequel le programme d’ordinateur est incorporé, le circuit intégré étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé en question.
D’autres caractéristiques et avantages de la présente invention ressortiront de la description des exemples de réalisation particuliers et non limitatifs de la présente invention ci-après, en référence aux figures 1 à 4 annexées, sur lesquelles :
Un procédé et un dispositif d’apprentissage d’un modèle de prédiction de profondeur mis en œuvre par un réseau de neurones convolutif associé à un système de vision stéréoscopique embarqué dans un véhicule vont maintenant être décrits dans ce qui va suivre en référence conjointement aux figures 1 à 4. Des mêmes éléments sont identifiés avec des mêmes signes de référence tout au long de la description qui va suivre.
Les termes « premier(s) », « deuxième(s) » (ou « première(s) », « deuxième(s) »), etc. sont utilisés dans ce document par convention arbitraire pour permettre d’identifier et de distinguer différents éléments (tels que des opérations, des moyens, etc.) mis en œuvre dans les modes de réalisation décrits ci-après. De tels éléments peuvent être distincts ou correspondre à un seul et unique élément, selon le mode de réalisation.
Pour l’ensemble de la description, on entend par réception d’une image la réception de données représentatives d’une image. De même pour la génération d’une image, on entend la génération de données représentatives d’une image et pour la génération d’une carte de profondeurs la génération de données représentatives d’une carte de profondeurs. Ces raccourcis ont uniquement pour but de simplifier la description, néanmoins, les procédés étant mis en œuvre par un ou plusieurs processeurs, il est évident que les données d’entrée et de sortie des différentes étapes d’un procédé sont des données informatiques.
Selon un exemple particulier et non limitatif de réalisation de la présente invention, un modèle de prédiction de profondeur associé à un système de vision stéréoscopique comprenant deux caméras est appris dans une phase d’apprentissage.
En effet, le procédé relatif à la phase d’apprentissage comprend la génération de cartes de profondeurs associées à des images acquises par chaque caméra du système de vision et la génération d’autres images et d’autres cartes de profondeurs à partir des images reçues et des cartes de profondeurs par changement de référentiel.
Un masque de visibilité est déterminé à partir des images générées et une valeur nulle est assignée aux pixels des images générées non compris dans le masque de visibilité.
Le modèle de prédiction de profondeur est alors appris par minimisation d’une erreur de perte déterminée par comparaison de positions de points projetés dans la scène tridimensionnelle à partir des différentes cartes de profondeurs, les points correspondant à des pixels.
LaFIG. 1 illustre schématiquement un système de vision équipant un véhicule, selon un exemple de réalisation particulier et non limitatif de la présente invention.
Un tel environnement 1 correspond, par exemple, à un environnement routier formé d’un réseau de routes accessibles pour le véhicule 10.
Dans cet exemple, le véhicule 10 correspond à un véhicule à moteur thermique, à moteur(s) électrique(s) ou encore un véhicule hybride avec un moteur thermique et un ou plusieurs moteurs électriques. Le véhicule 10 correspond ainsi, par exemple, à un véhicule terrestre tel une automobile, un camion, un car, une moto. Enfin, le véhicule 10 correspond à un véhicule autonome ou non, c’est-à-dire un véhicule circulant selon un niveau d’autonomie déterminé ou sous la supervision totale du conducteur.
Le véhicule 10 comprend avantageusement au moins deux caméras embarquées, une première caméra 11 et une deuxième caméra 12, configurées pour acquérir des images d’une scène tridimensionnelle se déroulant dans l’environnement du véhicule 10 depuis des positions d’observation distinctes. La première caméra 11 et la deuxième caméra 12 forment un système de vision stéréoscopique lorsqu’elles sont utilisées ensemble comme illustré dans laFIG. 1 . La première caméra 11 forme un système de vision monoscopique lorsqu’elle est utilisée seule, de même la deuxième caméra 12 forme un autre système de vision monoscopique lorsqu’elle est utilisée seule. La présente invention s’étend cependant à tout système de vision comprenant au moins deux caméras, par exemple 2, 3 ou 5 caméras.
Les paramètres intrinsèques de la première caméra 11 caractérisent la transformation qui associe, pour un point image, par la suite appelé « point », ses coordonnées tridimensionnelles dans le référentiel de la première caméra 11 aux coordonnées pixel dans une image acquise par la première caméra 11. Ces paramètres ne changent pas si l'on déplace la première caméra 11. Les paramètres intrinsèques de la première caméra 11 comprennent notamment une première distance focale f1 associée à la première caméra 11.
Les paramètres intrinsèques de la deuxième caméra 12 caractérisent, quant à eux, la transformation qui associe, pour un point image, ses coordonnées tridimensionnelles dans le référentiel de la deuxième caméra 12 aux coordonnées pixel dans une image acquise par la deuxième caméra 12. Ces paramètres ne changent pas si l'on déplace la deuxième caméra 12. Les paramètres intrinsèques de la deuxième caméra 12 comprennent notamment une deuxième distance focale f2 associée à la deuxième caméra 12.
Les distorsions, qui sont dues aux imperfections du système optique telles que des défauts de forme et de positionnement des lentilles des caméras, vont dévier les faisceaux lumineux et donc induire un écart de positionnement pour le point projeté par rapport à un modèle idéal. Il est possible alors de compléter le modèle de caméra en y introduisant les trois distorsions qui génèrent le plus d’effets, à savoir les distorsions radiales, de décentrage et prismatiques, induites par des défauts de courbure, de parallélisme des lentilles et de coaxialité des axes optiques. Dans cet exemple, les caméras sont supposées parfaites, c’est-à-dire que les distorsions ne sont pas prises en compte, que leur correction est traitée au moment de l’acquisition d’une image ou au moment de la calibration.
Ces deux caméras 11, 12 sont disposées de manière à acquérir chacune une image d’une scène selon un point de vue différent, le premier point de vue est par exemple localisé sur ou dans le rétroviseur gauche du véhicule 10 ou en haut du pare-brise du véhicule 10, le deuxième point de vue est par exemple localisé sur ou dans le rétroviseur droit du véhicule 10 ou en haut du pare-brise du véhicule 10. Dans le cas où les deux caméras sont situées en haut du pare-brise du véhicule, celles-ci sont alors placées à une certaine distance. Dans cet exemple, la première caméra 11 est située en haut du pare-brise du véhicule 10, la deuxième caméra 12 est située dans le rétroviseur droit du véhicule 10.
Un premier repère est associé à la première caméra 11 :
- la direction de l’axe x est définie horizontale et normale à l’axe optique C1 de la première caméra 11. La distance B séparant le centre optique de la première caméra 11 de la projection du centre optique de la deuxième caméra 12 sur le plan horizontal passant par le centre optique de la première caméra 11 est appelée base de référence (en anglais « baseline ») ;
- la direction de l’axe y est définie verticale et normale à l’axe optique C1 de la première caméra 11 ;
- la direction de l’axe z est définie orthogonale aux directions des axes x et y.
Les trois axes x, y et z forment ainsi un repère orthonormé.
- la direction de l’axe x est définie horizontale et normale à l’axe optique C1 de la première caméra 11. La distance B séparant le centre optique de la première caméra 11 de la projection du centre optique de la deuxième caméra 12 sur le plan horizontal passant par le centre optique de la première caméra 11 est appelée base de référence (en anglais « baseline ») ;
- la direction de l’axe y est définie verticale et normale à l’axe optique C1 de la première caméra 11 ;
- la direction de l’axe z est définie orthogonale aux directions des axes x et y.
Les trois axes x, y et z forment ainsi un repère orthonormé.
L’axe optique C1 de la première caméra 11 et l’axe optique C2 de la deuxième caméra 12 ne sont pas nécessairement parallèles ni même compris dans un même plan.
Selon une variante, des axes optiques des première et deuxième caméras ne sont pas coplanaires
Les paramètres extrinsèques liés à la position des caméras 11, 12 sont les paramètres suivants :
- trois translations dans les directions x, y et z : Tx, Ty et Tz constituant le vecteur translation T ; et
- trois rotations dans les directions x, y et z : θx, θy et θz.
- trois translations dans les directions x, y et z : Tx, Ty et Tz constituant le vecteur translation T ; et
- trois rotations dans les directions x, y et z : θx, θy et θz.
Une matrice extrinsèque du système de vision comprend alors les paramètres extrinsèques précédemment définis.
Les paramètres extrinsèques sont déterminés, par exemple, lors d’une phase de calibration du système de vision stéréoscopique comprenant la première caméra 11 et la deuxième caméra 12.
Une contrainte principale du système de vision stéréoscopique utilisé dans l’automobile est, par exemple, la grande distance entre les deux caméras. En effet, pour pouvoir couvrir une plage de mesure de 200 mètres, la base de référence doit atteindre 60cm pour les caméras couramment utilisées dans ce domaine.
Les deux caméras 11, 12 font l’acquisition d’images d’une scène se situant devant le véhicule 10, la première caméra 11 couvrant seule un premier champ d’acquisition 13, la deuxième caméra 12 couvrant seule un deuxième champ d’acquisition 14 et les deux caméras 11, 12 couvrant toutes deux un troisième champ d’acquisition 15. Les premier et troisième champs d’acquisition 13, 15 permettent ainsi une vision monoscopique de la scène par la première caméra 11, les deuxième et troisième champs d’acquisition 14, 15 permettent une vision monoscopique de la scène par la deuxième caméra 12 et le troisième champ d’acquisition 15 permet une vision stéréoscopique de la scène par le système de vision stéréoscopique composé des deux caméras 11, 12.
Un obstacle 18 est placé dans le champ d’acquisition des caméras, par exemple dans le troisième champ d’acquisition 15. La présence de l’obstacle 18 définit un champ d’occlusion pour le système de vision stéréoscopique composé ici des trois champs 16, 17 et 19.
Parmi ces trois champs, le champ 16 est visible depuis la deuxième caméra 12. La partie de la scène présente dans ce champ 16 est donc observable à l’aide du système de vision monoscopique comprenant la deuxième caméra 12.
Le champ 17 est quant à lui visible depuis la première caméra 11. La partie de la scène présente dans ce champ 17 est donc observable à l’aide du système de vision monoscopique comprenant la première caméra 11.
Enfin, le champ 19 n’est visible par aucune des caméras. La partie de la scène présente dans ce champ 19 n’est donc pas observable.
Selon un exemple de réalisation particulier, le champ de vision de la deuxième caméra 12 couvre au moins la moitié du champ de vision de la première caméra 11.
Il est évident qu’il est possible d’utiliser un tel système de vision stéréoscopique pour prendre des images de scènes situées sur les côtés ou derrière le véhicule 10 en l’équipant de caméras placées et orientées différemment.
Les images acquises par les caméras 11, 12 à un instant temporel d’acquisition se présentent sous la forme de données représentant des pixels caractérisés par :
- des coordonnées dans chaque image ; et
- des données relatives aux couleurs et luminosité des objets de la scène observée sous forme par exemple de coordonnées colorimétriques RGB (de l’anglais « Red Green Blue », en français « Rouge Vert Bleu ») ou TSL (Ton, Saturation, Luminosité).
- des coordonnées dans chaque image ; et
- des données relatives aux couleurs et luminosité des objets de la scène observée sous forme par exemple de coordonnées colorimétriques RGB (de l’anglais « Red Green Blue », en français « Rouge Vert Bleu ») ou TSL (Ton, Saturation, Luminosité).
Chaque pixel de l’image acquise est représentatif d’un objet de la scène tridimensionnelle présent dans le champ de vision de la caméra. En effet, un pixel de l’image acquise est la plus petite unité visible et correspond à un point lumineux résultant de l'émission ou de la réflexion de la lumière par un objet physique présent dans la scène tridimensionnelle. Lorsque la lumière frappe cet objet, des photons sont émis ou réfléchis, captés par un capteur photosensible de la caméra après passage à travers son objectif. Ce capteur divise la scène tridimensionnelle en une grille de pixels. Chaque pixel enregistre l'intensité lumineuse à un emplacement spécifique, capturant ainsi des détails visuels. La combinaison de millions de pixels crée une image représentant fidèlement l'objet physique observé par la caméra. Un point image précédemment présenté est ainsi un point d’une surface d’un objet de la scène tridimensionnelle.
Les images acquises par les caméras 11, 12 représentent des vues d’une même scène prises à des points de vue différents, les positions des caméras étant distinctes. Sur cette scène se trouvent par exemple :
- des bâtiments ;
- des infrastructures routières ;
- d’autres usagers immobiles, par exemple un véhicule stationné ; et/ou
- d’autres usagers mobiles, par exemple un autre véhicule, un cycliste ou un piéton en mouvement.
- des bâtiments ;
- des infrastructures routières ;
- d’autres usagers immobiles, par exemple un véhicule stationné ; et/ou
- d’autres usagers mobiles, par exemple un autre véhicule, un cycliste ou un piéton en mouvement.
Selon un exemple de réalisation particulier, la première caméra 11 et/ou la deuxième caméra 12 est de type « grand angle », une caméra grand angle étant par exemple équipée d’un objectif conçu pour faire l’acquisition d’une image représentative d’une scène tridimensionnelle perçue selon un champ de vision plus large que celui d'une caméra standard, aussi appelé parfois objectif panoramique. En d'autres termes, un objectif grand angle permet de saisir une plus grande portion de la scène tridimensionnelle se déroulant devant ou autour de la caméra grand angle, ce qui est particulièrement utile dans des situations où il est nécessaire d'inclure davantage d'éléments dans le cadre de l’image acquise par cette caméra. L’angle α du champ de vision de la caméra grand angle est par exemple égal à 120°, 145°, 180° ou 360°, alors qu’une caméra standard propose, par exemple, un champ de vision ouvert suivant un angle de 45° ou moins. Une telle caméra grand angle correspond par exemple à une caméra équipée de miroirs ou encore à une caméra « fisheye » (en français « œil de poisson »). Les objectifs grand angle ont une distance focale plus courte par rapport aux objectifs standard, ce qui les rend adaptés pour faire l’acquisition d’images de paysages, d'architectures, de croisements de routes ou de tout autre sujet nécessitant une perspective étendue. Les caméras grand angle sont, par exemple, utilisées pour capturer des images immersives et dynamiques avec une profondeur de champ étendue.
Selon un exemple de réalisation particulier, une image acquise par la première caméra 11 et/ou une image acquise par la deuxième caméra 12 comprend une distorsion égale à 0,5%, 0,8% ou supérieure à 1%. La mesure d’une telle distorsion correspond à la détermination d’un rapport entre :
- l'écartement maximal d’un pixel de l'image d’une ligne droite de la première scène tridimensionnelle dont l’image est une ligne touchant le bord le plus long de la première image, soit au centre du bord de l’image, soit au niveau des angles du bord de l’image, et
- la longueur de ce bord.
- l'écartement maximal d’un pixel de l'image d’une ligne droite de la première scène tridimensionnelle dont l’image est une ligne touchant le bord le plus long de la première image, soit au centre du bord de l’image, soit au niveau des angles du bord de l’image, et
- la longueur de ce bord.
Couramment, une distorsion est considérée, dans le monde de la photographie, comme :
• négligeable si elle est inférieure à 0,3%,
• peu sensible si elle est comprise entre 0,3% ou 0,4%,
• sensible si elle est comprise entre 0,5% et 0,6%,
• très sensible si elle est comprise entre 0,7% et 0,9%, et
• gênante si elle est supérieure ou égale à 1% ou plus.
• négligeable si elle est inférieure à 0,3%,
• peu sensible si elle est comprise entre 0,3% ou 0,4%,
• sensible si elle est comprise entre 0,5% et 0,6%,
• très sensible si elle est comprise entre 0,7% et 0,9%, et
• gênante si elle est supérieure ou égale à 1% ou plus.
Une distorsion en barillet est caractérisée par un pourcentage positif, tandis qu’une distorsion en croissant est caractérisée par un pourcentage négatif.
Selon un exemple de réalisation particulier, un champ de vision de la première caméra 11 couvre au moins la moitié d’un champ de vision de la deuxième caméra 12 et un champ de vision de la deuxième caméra 12 couvre au moins la moitié d’un champ de vision de la première caméra 11. En d’autres termes, plus de la moitié des pixels d’une image acquise par la première caméra 11 correspondent à un objet de la scène tridimensionnelle vu par la deuxième caméra 12, des pixels d’une image acquise par la deuxième caméra 12 correspondant également à cet objet de la scène tridimensionnelle. De même, plus de la moitié des pixels d’une image acquise par la deuxième caméra 12 correspondent à un objet de la scène tridimensionnelle vu par la première caméra 11, des pixels d’une image acquise par la première caméra 11 correspondant également à cet objet de la scène tridimensionnelle.
Les images acquises par la première caméra 11 et par la deuxième caméra 12 sont envoyées à un calculateur d’un dispositif équipant le véhicule 10 ou stockées dans une mémoire d’un dispositif accessible à un calculateur d’un dispositif équipant le véhicule 10.
Un procédé de détermination d’une profondeur par un système de vision embarqué dans le véhicule 10 est avantageusement mis en œuvre par le véhicule 10, c’est-à-dire par un processeur, un calculateur ou une combinaison de calculateurs du système embarqué du véhicule 10, par exemple par le ou les calculateurs en charge du système de vision du véhicule 10.
LaFIG. 2 illustre un organigramme des différentes étapes d’un procédé 2 de détermination d’une profondeur d’un pixel d’une image par modèle de prédiction de profondeur mis en œuvre par un réseau de neurones convolutif associé à un système de vision embarqué dans un véhicule, par exemple dans le véhicule 10 de laFIG. 1 , selon un exemple de réalisation particulier et non limitatif de la présente invention. Le procédé 2 est par exemple mis en œuvre par un dispositif du système de vision embarqué dans le véhicule 10 ou par le dispositif 4 de laFIG. 4 .
Dans une étape 21, des données représentatives d’une image acquise par la première caméra 11 et d’une image acquise par la deuxième caméra 12 sont reçues.
Dans une étape 22, des profondeurs associées à un ensemble de pixels d’une des images reçues sont déterminées par le modèle de prédiction de profondeur à partir des deux images reçues.
Chaque profondeur déterminée correspond alors à une distance séparant le véhicule 10 ou une partie du véhicule 10 d’un objet de la scène tridimensionnelle auquel est associé un pixel, la détermination d’une profondeur d’un pixel correspondant alors à un mesurage d’une distance séparant un objet du véhicule embarquant le système de vision.
Si l’ADAS utilise ces profondeurs ou distances comme données d’entrée pour déterminer la distance entre une partie du véhicule 10, par exemple le pare-chocs avant, et un autre usager présent sur la route, l’ADAS est alors en mesure de déterminer précisément cette distance. Par exemple, si l’ADAS a pour fonction d’agir sur un système de freinage du véhicule 10 en cas de risque de collision avec un autre usager de la route et que la distance séparant le véhicule 10 de ce même usager de la route diminue fortement, alors l’ADAS est en mesure de détecter ce rapprochement soudain et d’agir sur le système de freinage du véhicule 10 pour éviter un éventuel accident.
LaFIG. 3 illustre un organigramme des différentes étapes d’un procédé d’apprentissage du modèle de prédiction de profondeurs utilisé dans un procédé de détermination d’une profondeur d’un pixel d’une image, par exemple dans le procédé 2 de laFIG. 2 , selon un exemple de réalisation particulier et non limitatif de la présente invention.
Le procédé d’apprentissage 3 est par exemple mis en œuvre par le dispositif embarqué dans le véhicule 10 mettant en œuvre le procédé de détermination d’une profondeur par le système de vision embarqué dans un véhicule ou par le dispositif 4 de laFIG. 4 .
Dans une étape 31, une première image et une deuxième image sont reçues, la première image étant acquise par la première caméra 11 à un instant temporel d’acquisition et la deuxième image étant acquise par la deuxième caméra au même instant temporel d’acquisition.
Selon un exemple de réalisation particulier, les première image et deuxième image sont de même définition, c’est-à-dire qu’elles comportent un même nombre de pixels, ont un même nombre de pixels selon leur hauteur et un même nombre de pixels selon leur largeur.
Selon un autre exemple de réalisation particulier, les première image et deuxième image ne sont pas de même définition. Une étape additionnelle consiste alors à les redimensionner ou à les rogner pour obtenir une première image et une deuxième image de même définition.
Dans une étape 32, une première carte de profondeurs comprenant des profondeurs associées à un ensemble de pixels de la première image est déterminée. Les profondeurs associées aux pixels de la première image sont prédites avec le modèle de prédiction de profondeur à partir des première et deuxième images.
De manière similaire, une deuxième carte de profondeurs comprenant des profondeurs associées à un ensemble de pixels de la deuxième image est déterminée. Les profondeurs associées aux pixels de la deuxième image sont aussi prédites avec le modèle de prédiction de profondeur à partir des première et deuxième images.
Le modèle de prédiction de profondeur, mis en œuvre par un réseau de neurones convolutif, est connu de l’homme du métier et est par exemple présenté dans le document le document « Unifying Flow, Stereo and Depth Estimation » rédigé par Haofei Xu, Jing Zhang, Jianfei Cai, Hamid Rezatofighi, Fisher Yu, Dacheng Tao et Andreas Geiger, publié en juillet 2023 adapté pour tout système de vision stéréoscopique y compris ceux comprenant des caméras dont les axes optiques ne sont pas compris dans un même plan.
Ainsi, une profondeur prédite est associée à chaque pixel d’un ensemble de pixels de la première image, la première carte de profondeurs comprenant les coordonnées de chaque pixel de l’ensemble de pixels de la première image et une profondeur associée à ce chaque pixel enregistrées par exemple dans une table de correspondance, par exemple dans une mémoire accessible au processeur mettant en œuvre ce procédé d’apprentissage 3. Cette table de correspondance contient alors des couples (coordonnées d’un pixel de l’image 1 ; profondeur prédite pour ce pixel).
Selon un autre exemple de réalisation particulier, les profondeurs sont enregistrées dans un canal supplémentaire associé à chaque image, ainsi une carte de profondeurs et une image sont un même objet, chaque pixel ayant des coordonnées selon deux dimensions, une ou plusieurs valeurs (image) et une profondeur (carte de profondeurs).
De manière similaire, une profondeur prédite est associée à chaque pixel d’un ensemble de pixels de la deuxième image, la deuxième carte de profondeurs comprenant les coordonnées de chaque pixel de l’ensemble de pixels de la deuxième image et une profondeur associée à ce chaque pixel enregistrées par exemple dans une table de correspondance, par exemple dans une mémoire accessible au processeur mettant en œuvre ce procédé d’apprentissage 3. Cette table de correspondance contient alors des couples (coordonnées d’un pixel de l’image 2 ; profondeur prédite pour ce pixel).
Dans une étape 33, des positions tridimensionnelles de points d’un premier ensemble de points, qui est un point virtuel, sont déterminées à partir de la première carte de profondeurs, chaque point du premier ensemble de points correspondant à un pixel de la première carte de profondeurs, et des positions tridimensionnelles de points d’un deuxième ensemble de points sont déterminées à partir de la deuxième carte de profondeurs, chaque point du deuxième ensemble de points correspondant à un pixel de la deuxième carte de profondeurs.
La position tridimensionnelle d’un point du premier ensemble de points définit des coordonnées spatiales dans la scène tridimensionnelle, dans un référentiel associé à la première caméra 11, d’un point correspondant à un premier pixel de la première carte de profondeurs à partir des coordonnées du premier pixel dans la première carte de profondeurs, c’est-à-dire dans la première image, et de la profondeur qui est prédite pour ce premier pixel, ses coordonnées et profondeur étant enregistrées dans la première carte de profondeurs. Il est à noter que les coordonnées du premier pixel dans la première carte de profondeurs ainsi que dans la première image comprennent deux composantes tandis que les coordonnées spatiales du point associé au premier pixel comprennent trois composantes.
Cette étape 33 revient à reprojeter dans la scène tridimensionnelle un pixel de la première image et/ou de la première carte de profondeurs.
Selon un exemple de réalisation particulier, la détermination d’une position tridimensionnelle d’un point du premier ensemble de points correspondant à un pixel de la première carte de profondeurs est obtenue par la fonction suivante :
Avec :
• la position tridimensionnelle d’un point du premier ensemble de points,
• un modèle de prédiction de direction associé à la première caméra 11,
• une fonction de projection dans la scène tridimensionnelle d’un pixel en fonction de ses coordonnées et de la profondeur qui lui est associée dans la première carte de profondeurs.
•
•
•
Si les profondeurs prédites par le modèle de prédiction de profondeur sont exactes et que le modèle de prédiction d’une direction est aussi exact, alors la position dans la scène de ce point virtuel est confondue avec celle d’un point d’un objet de la scène, ce point de l’objet de la scène correspondant alors au pixel de la première image dont le point virtuel est l’image.
Selon une première variante, le modèle de prédiction de direction associé à la première caméra 11 est une matrice intrinsèque de la première caméra 11. Une telle variante est notamment applicable dans le cas de caméras sténopés générant des images avec peu de distorsion. Une matrice intrinsèque est notamment déterminée lors d’une phase amont de calibration de la première caméra 11 ou des caméras 11, 12 du système de vision stéréoscopique.
Selon une deuxième variante, le modèle de prédiction de direction est mis en œuvre par un réseau de neurones, ce modèle de prédiction de direction étant davantage adapté aux caméras grand angle générant des images à forte distorsion. Un tel modèle de prédiction de direction est connu de l’homme du métier, il est notamment présenté dans le document « Neural Ray Surfaces for Self-Supervised Learning of Depth and Ego-motion » rédigé par Igor Vasiljevic, Vitor Guizilini, Rares Ambrus, Sudeep Pillai, Wolfram Burgard, Greg Shakhnarovich et Adrien Gaidon, publié en aout 2020. Les projections et reprojections sont alors des fonctions inverses obtenues à partir du modèle de prédiction de direction et sont fonction d’une profondeur et de coordonnées de pixels.
De manière similaire, la position tridimensionnelle d’un point du deuxième ensemble de points définit des coordonnées spatiales dans la scène tridimensionnelle, dans un référentiel associé à la deuxième caméra 12, d’un point correspondant à un deuxième pixel de la deuxième carte de profondeurs à partir des coordonnées du deuxième pixel dans la deuxième carte de profondeurs, c’est-à-dire dans la deuxième image, et de la profondeur qui est prédite pour ce deuxième pixel, ses coordonnées et profondeur étant enregistrées dans la deuxième carte de profondeurs. Il est à noter que les coordonnées du deuxième pixel dans la deuxième carte de profondeurs ainsi que dans la deuxième image comprennent deux composantes tandis que les coordonnées spatiales du point associé au deuxième pixel comprennent trois composantes.
Cette étape 33 revient à reprojeter dans la scène tridimensionnelle un pixel de la deuxième image et/ou de la deuxième carte de profondeurs.
Selon un exemple de réalisation particulier, la détermination d’une position tridimensionnelle d’un point du deuxième ensemble de points correspondant à un pixel de la deuxième carte de profondeurs est obtenue par la fonction suivante :
Avec :
• la position tridimensionnelle d’un point du deuxième ensemble de points,
• un modèle de prédiction de direction associé à la deuxième caméra 12,
• une fonction de projection dans la scène tridimensionnelle d’un pixel en fonction de ses coordonnées et de la profondeur qui lui est associée dans la deuxième carte de profondeurs.
•
•
•
Si les profondeurs prédites par le modèle de prédiction de profondeur sont exactes et que le modèle de prédiction d’une direction est aussi exact, alors la position dans la scène de ce point virtuel est confondue avec celle d’un point d’un objet de la scène, ce point de l’objet de la scène correspondant alors au pixel de la deuxième image dont le point virtuel est l’image.
Comme précédemment, selon la première variante, le modèle de prédiction de direction associé à la deuxième caméra 12 est une matrice intrinsèque de la deuxième caméra 12 ou, selon une deuxième variante, le modèle de prédiction de direction est mis en œuvre par un réseau de neurones.
Dans une étape 34, une troisième image et une troisième carte de profondeurs sont générées à partir de la première image, de la première carte de profondeurs et de paramètres extrinsèques du système de vision stéréoscopique, la troisième carte de profondeurs comprenant des profondeurs associées à un ensemble de pixels de la troisième image.
La génération de la troisième carte de profondeurs à partir de la première image, de la première carte de profondeurs et de paramètres extrinsèques du système de vision stéréoscopique consiste en :
• la détermination de coordonnées spatiales dans la scène tridimensionnelle, dans un référentiel associé à la première caméra 11, d’un point correspondant à un premier pixel de la première carte de profondeurs à partir des coordonnées du premier pixel dans la première image et de la profondeur qui est associée à ce premier pixel, ses coordonnées et profondeur étant enregistrées dans la première carte de profondeurs. Il est à noter que les coordonnées du premier pixel dans la première image comprenant deux composantes tandis que les coordonnées spatiales du point associé au premier pixel comprennent trois composantes ;
• la détermination de coordonnées spatiales dans la scène tridimensionnelle du point associé au premier pixel dans un référentiel associé à la deuxième caméra 12, en d’autres termes un changement de référentiel depuis celui associé à la première caméra 11 vers celui associé à la deuxième caméra 12, en utilisant les paramètres extrinsèques du système de vision stéréoscopique ; et
• la projection du point associé au pixel dans le plan image de la deuxième caméra 12, ce plan image correspondant à celui de la deuxième image, permettant de déterminer des coordonnées d’arrivée du premier pixel de la première image dans une image telle que la deuxième caméra 12 l’aurait acquise. Le plan image d’une caméra correspond à un plan défini dans le référentiel de la caméra, normal à l’axe optique de la caméra et situé à la première distance focale de la caméra.
La troisième carte de profondeurs comprend alors les coordonnées d’arrivée des premiers pixels et la profondeur associée au premier pixel.
• la détermination de coordonnées spatiales dans la scène tridimensionnelle, dans un référentiel associé à la première caméra 11, d’un point correspondant à un premier pixel de la première carte de profondeurs à partir des coordonnées du premier pixel dans la première image et de la profondeur qui est associée à ce premier pixel, ses coordonnées et profondeur étant enregistrées dans la première carte de profondeurs. Il est à noter que les coordonnées du premier pixel dans la première image comprenant deux composantes tandis que les coordonnées spatiales du point associé au premier pixel comprennent trois composantes ;
• la détermination de coordonnées spatiales dans la scène tridimensionnelle du point associé au premier pixel dans un référentiel associé à la deuxième caméra 12, en d’autres termes un changement de référentiel depuis celui associé à la première caméra 11 vers celui associé à la deuxième caméra 12, en utilisant les paramètres extrinsèques du système de vision stéréoscopique ; et
• la projection du point associé au pixel dans le plan image de la deuxième caméra 12, ce plan image correspondant à celui de la deuxième image, permettant de déterminer des coordonnées d’arrivée du premier pixel de la première image dans une image telle que la deuxième caméra 12 l’aurait acquise. Le plan image d’une caméra correspond à un plan défini dans le référentiel de la caméra, normal à l’axe optique de la caméra et situé à la première distance focale de la caméra.
La troisième carte de profondeurs comprend alors les coordonnées d’arrivée des premiers pixels et la profondeur associée au premier pixel.
Les coordonnées d’arrivée d’un pixel dans la troisième carte de profondeurs sont ainsi déterminées et sont les mêmes que les coordonnées d’arrivée d’un pixel dans la troisième image. Dans la troisième carte de profondeurs, la profondeur d’un pixel correspond à une profondeur déterminée à partir de profondeurs de pixels de la première carte de profondeurs, tandis que dans la troisième image, la valeur d’un pixel correspond à une valeur déterminée à partir de valeurs de pixels de la première image.
De manière similaire, une quatrième image et une quatrième carte de profondeurs sont générées à partir de la deuxième image, de la deuxième carte de profondeurs et des paramètres extrinsèques du système de vision stéréoscopique, la quatrième carte de profondeurs comprenant des profondeurs associées à un ensemble de pixels de la quatrième image. La quatrième carte de profondeurs comprend alors les coordonnées d’arrivée de deuxièmes pixels de la deuxième carte de profondeurs et la profondeur associée au deuxième pixel.
Selon un exemple de réalisation particulier, la troisième carte de profondeurs est générée par la fonction suivante :
Avec :
• les coordonnées d’un pixel de la troisième carte de profondeurs,
• une fonction pour passer de coordonnées homogènes à des coordonnées pixels en supprimant une dimension d’un vecteur,
• un modèle de prédiction de direction associé à la première caméra 11,
• un modèle de prédiction de direction associé à la deuxième caméra 12,
• une matrice extrinsèque du système de vision stéréoscopique, et
• une fonction de projection dans la scène tridimensionnelle d’un premier pixel en fonction de ses coordonnées dans la première image et de la profondeur qui lui est associée dans la première carte de profondeurs.
Cette fonction détermine ainsi les coordonnées d’arrivée d’un pixel d’une image acquise par la première caméra 11 dans une image telle qu’elle serait acquise par la deuxième caméra 12.
•
•
•
•
•
•
Cette fonction détermine ainsi les coordonnées d’arrivée d’un pixel d’une image acquise par la première caméra 11 dans une image telle qu’elle serait acquise par la deuxième caméra 12.
La détermination de la quatrième carte de profondeurs est similaire à la détermination de la troisième carte de profondeurs, les caméras étant notamment inversées. Les coordonnées d’arrivée d’un pixel dans la quatrième carte de profondeurs sont ainsi déterminées et sont les mêmes que les coordonnées d’arrivée d’un pixel dans la quatrième image. Dans la quatrième carte de profondeurs, la profondeur d’un pixel correspond à une profondeur déterminée à partir de profondeurs de pixels de la deuxième carte de profondeurs, tandis que dans la quatrième image, la valeur d’un pixel correspond à une valeur d’un pixel déterminée à partir de valeurs de pixels de la deuxième image.
Ainsi, la fonction précédente permettant de déterminer les coordonnées d’arrivée d’un premier pixel de la première carte de profondeurs est applicable pour déterminer les coordonnées d’arrivée d’un deuxième pixel de la deuxième carte de profondeurs, la fonction étant adaptée comme suit :
Avec :
• les coordonnées d’un pixel de la quatrième carte de profondeurs,
• une fonction pour passer de coordonnées homogènes à des coordonnées pixels en supprimant une dimension d’un vecteur,
• un modèle de prédiction de direction associé à la deuxième caméra 12,
• un modèle de prédiction de direction associé à la première caméra 11,
• une matrice extrinsèque du système de vision stéréoscopique, et
• une fonction de projection dans la scène tridimensionnelle d’un deuxième pixel en fonction de ses coordonnées dans la deuxième image et de de la profondeur qui lui est associée dans la deuxième carte de profondeurs.
Cette fonction détermine ainsi les coordonnées d’arrivée d’un pixel d’une image acquise par la deuxième caméra 12 dans une image telle qu’elle serait acquise par la première caméra 11.
•
•
•
•
•
•
Cette fonction détermine ainsi les coordonnées d’arrivée d’un pixel d’une image acquise par la deuxième caméra 12 dans une image telle qu’elle serait acquise par la première caméra 11.
Selon une variante de réalisation, des valeurs associées à des pixels de la troisième et de la quatrième images, c’est-à-dire des valeurs colorimétriques des pixels des troisième et quatrième images, sont obtenues par interpolation des valeurs des pixels de la première image et respectivement de la deuxième image à l’aide d’une fonction telle que torch.nn.functional.grid_sample() en langage Python® qui requiert pour arguments les coordonnées d’arrivée des pixels des troisième et quatrième images et les valeurs des pixels antécédents dans la première image, respectivement deuxième image.
Dans une étape 35, un masque de visibilité est déterminé. Ce masque de visibilité est l’union d’un premier masque de visibilité et d’un deuxième masque de visibilité, chaque pixel de la troisième image résultant d’au moins un pixel de la première image appartenant au premier masque de visibilité et chaque pixel de la quatrième image résultant d’au moins un pixel de la deuxième image appartenant au deuxième masque de visibilité. En d’autres termes, le premier masque de visibilité inclue l’ensemble des pixels de la troisième image qui ont un antécédant dans la première image lors de l’étape de génération de la troisième image, c’est-à-dire l’ensemble de pixels de la troisième image dont les coordonnées sont des coordonnées d’arrivée d’un pixel de la première image. De même, le deuxième masque de visibilité inclue l’ensemble des pixels de la quatrième image qui ont un antécédant dans la deuxième image lors de l’étape de génération de la quatrième image, c’est-à-dire l’ensemble de pixels de la quatrième image dont les coordonnées sont des coordonnées d’arrivée d’un pixel de la deuxième image.
A l’inverse, les pixels non compris dans le premier masque de visibilité sont des pixels qui n’ont pas d’antécédent dans la première image acquise par la première caméra 11, ils correspondent alors à des objets occlus du point de vue de la deuxième caméra 12 et les pixels non compris dans le deuxième masque de visibilité sont des pixels qui n’ont pas d’antécédent dans la deuxième image acquise par la deuxième caméra 12, ils correspondent alors à des objets occlus du point de vue de la première caméra 11.
La détermination du masque de visibilité est alors l’union des premier et deuxième masques de visibilité, c’est-à-dire que des coordonnées correspondant à celles d’un pixel de la troisième image qui n’a pas d’antécédent dans la première image et correspondant aussi à celles d’un pixel de la quatrième image qui n’a pas d’antécédent dans la deuxième image définissent des coordonnées d’un pixel non inclus dans le masque de visibilité. A l’inverse, si des coordonnées correspondent à celles d’un pixel de la troisième image qui a un antécédent dans la première image et/ou à celles d’un pixel de la quatrième image qui a un antécédent dans la deuxième image alors ces coordonnées définissent des coordonnées d’un pixel inclus dans le masque de visibilité.
La détermination du masque de visibilité est par exemple obtenue en utilisant la fonction torch.nn.functional.grid_sample() en langage Python® qui requiert pour arguments les coordonnées des pixels des troisième et quatrième cartes de profondeurs et les profondeurs déterminées dans les deuxième et première cartes de profondeurs.
Dans une étape 36, une valeur nulle est assignée aux pixels des troisième et quatrième images non compris dans le masque de visibilité. Ces pixels des troisième et quatrième images n’ont pas d’antécédent dans la première image, respectivement dans la deuxième image. Un pixel de valeur nulle correspond, par exemple, à un pixel noir. Dans le cas de plusieurs canaux, chaque canal associé au pixel se voit assigner une valeur nulle.
Dans une étape 37, des positions tridimensionnelles de points d’un troisième ensemble de points sont déterminées à partir de la troisième carte de profondeurs, chaque point du troisième ensemble de points correspondant à un pixel de la troisième carte de profondeurs, et des positions tridimensionnelles de points d’un quatrième ensemble de points sont déterminées à partir de la quatrième carte de profondeurs, chaque point du quatrième ensemble de points correspondant à un pixel de la quatrième carte de profondeurs.
Selon une variante, de manière similaire à l’étape 33, la détermination d’une position tridimensionnelle d’un point du troisième ensemble de points correspondant à un pixel de la troisième carte de profondeurs est obtenue par la fonction suivante :
Avec :
• la position tridimensionnelle d’un point du troisième ensemble de points,
• un modèle de prédiction de direction associé à la deuxième caméra 12,
• une fonction de projection dans la scène tridimensionnelle d’un pixel en fonction de ses coordonnées et de la profondeur qui lui est associée dans troisième carte de profondeurs.
•
•
•
De manière similaire, la détermination d’une position tridimensionnelle d’un point du quatrième ensemble de points correspondant à un pixel de la quatrième carte de profondeurs est obtenue par la fonction suivante :
Avec :
• la position tridimensionnelle d’un point du quatrième ensemble de points,
• un modèle de prédiction de direction associé à la première caméra 11,
• une fonction de projection dans la scène tridimensionnelle d’un pixel en fonction de ses coordonnées et de la profondeur qui lui est associée dans la quatrième carte de profondeurs.
•
•
•
Dans une étape 38, le modèle de prédiction de profondeur est appris par minimisation d’une erreur de perte, l’erreur de perte étant déterminée à partir de :
• une première erreur de consistance déterminée par comparaison de positions tridimensionnelles de points des premier et quatrième ensembles de points,
• une deuxième erreur de consistance déterminée par comparaison de positions tridimensionnelles de points des deuxième et troisième ensembles de points, et
• une erreur photométrique déterminée par comparaison des première et quatrième images et par comparaison des deuxième et troisième images.
• une première erreur de consistance déterminée par comparaison de positions tridimensionnelles de points des premier et quatrième ensembles de points,
• une deuxième erreur de consistance déterminée par comparaison de positions tridimensionnelles de points des deuxième et troisième ensembles de points, et
• une erreur photométrique déterminée par comparaison des première et quatrième images et par comparaison des deuxième et troisième images.
Selon un exemple de réalisation particulier, la première erreur de consistance est déterminée par la fonction suivante :
Avec :
• correspondant à la première erreur de consistance pour un pixel de la première carte de profondeurs, un pixel étant défini par des coordonnées en deux dimensions ;
• une composante suivant un premier axe d’une position tridimensionnelle d’un point du premier ensemble de points correspondant au pixel de la première carte de profondeurs notée ;
• une composante suivant un premier axe d’une position tridimensionnelle d’un point du quatrième ensemble de points correspondant au pixel de la quatrième carte de profondeurs notée ;
• une composante suivant un deuxième axe d’une position tridimensionnelle d’un point du premier ensemble de points correspondant au pixel de la première carte de profondeurs notée ;
• une composante suivant un deuxième axe d’une position tridimensionnelle d’un point du quatrième ensemble de points correspondant au pixel de la quatrième carte de profondeurs notée ;
• une composante suivant un troisième axe d’une position tridimensionnelle d’un point du premier ensemble de points correspondant au pixel de la première carte de profondeurs notée ; et
• une composante suivant un troisième axe d’une position tridimensionnelle d’un point du quatrième ensemble de points correspondant au pixel de la quatrième carte de profondeurs notée .
•
•
•
•
•
•
•
Il est à noter que la première erreur de consistance est basée sur la distance séparant un point de la scène tridimensionnel obtenu de la première carte de profondeurs d’un point de la scène tridimensionnelle obtenu de la quatrième carte de profondeurs.
Selon une variante, le masque de visibilité est utilisé pour déterminer la première erreur de consistance. En effet, selon cette variante, seuls les points associés à des pixels visibles, c’est-à-dire inclus dans le masque de visibilité, de la quatrième carte de profondeurs sont pris en compte dans ce calcul. En d’autres termes, le quatrième ensemble de pixels comprend uniquement des pixels de la quatrième carte de profondeurs compris dans ledit masque de visibilité.
De manière similaire, la deuxième erreur de consistance est déterminée par la fonction suivante :
Avec :
• correspondant à la deuxième erreur de consistance pour un pixel de la deuxième carte de profondeurs, un pixel étant défini par des coordonnées en deux dimensions ;
• une composante suivant un premier axe d’une position tridimensionnelle d’un point du deuxième ensemble de points correspondant au pixel de la deuxième carte de profondeurs notée ;
• une composante suivant un premier axe d’une position tridimensionnelle d’un point du troisième ensemble de points correspondant au pixel de la troisième carte de profondeurs notée ;
• une composante suivant un deuxième axe d’une position tridimensionnelle d’un point du deuxième ensemble de points correspondant au pixel de la deuxième carte de profondeurs notée ;
• une composante suivant un deuxième axe d’une position tridimensionnelle d’un point du troisième ensemble de points correspondant au pixel de la troisième carte de profondeurs notée ;
• une composante suivant un troisième axe d’une position tridimensionnelle d’un point du deuxième ensemble de points correspondant au pixel de la deuxième carte de profondeurs notée ; et
• une composante suivant un troisième axe d’une position tridimensionnelle d’un point du troisième ensemble de points correspondant au pixel de la troisième carte de profondeurs notée .
•
•
•
•
•
•
•
Il est à noter que la deuxième erreur de consistance est basée sur la distance séparant un point de la scène tridimensionnel obtenu de la deuxième carte de profondeurs d’un point de la scène tridimensionnelle obtenu de la troisième carte de profondeurs.
Selon une variante, le masque de visibilité est utilisé pour déterminer la deuxième erreur de consistance. En effet, selon cette variante, seuls les points associés à des pixels visibles, c’est-à-dire inclus dans le masque de visibilité, de la troisième carte de profondeurs sont pris en compte dans ce calcul. En d’autres termes, le troisième ensemble de pixels comprend uniquement des pixels de la troisième carte de profondeurs compris dans le masque de visibilité.
Selon un premier exemple de réalisation particulier, l’erreur photométrique est déterminée à partir d’une première erreur photométrique par comparaison de valeurs des pixels des première et quatrième images et à partir d’une deuxième erreur photométrique déterminée par comparaison de valeurs des pixels des deuxième et troisième images, l’erreur de perte étant déterminée à partir des première et deuxième erreurs photométriques.
Une erreur photométrique (en anglais « photometric error ») est, par exemple, présentée dans le document « Digging Into Self-Supervised Monocular Depth Estimation » de Clément Godard, Oisin Mac Aodha, Michael Firman et Gabriel Brostow publié en août 2019 et est déterminée par la fonction suivante :
Avec :
• la première erreur photométrique notée , respectivement la deuxième erreur photométrique notée , étant un pixel défini par ses coordonnées dans une image,
• une valeur du pixel dans la première image, respectivement deuxième image,
• une valeur du pixel dans la quatrième image, respectivement troisième image,
• SSIM une fonction qui prend en compte une structure locale, et
• un facteur de pondération dépendant notamment du type d’environnement.
•
•
•
• SSIM une fonction qui prend en compte une structure locale, et
•
Selon cet exemple de réalisation particulier, l’erreur de perte est déterminée par la fonction suivante :
Avec :
• l’erreur de perte,
• la première erreur photométrique pour un pixel , étant un pixel défini par ses coordonnées dans une image,
• la deuxième erreur photométrique pour le pixel ,
• la première erreur de consistance pour le pixel , et
• la deuxième erreur de consistance pour le pixel .
•
•
•
•
•
Selon un deuxième exemple de réalisation particulier, l’erreur de perte comprend en outre une erreur de construction dont chacune des composantes est déterminée par la fonction suivante :
Avec :
• la composante pour un pixel p de la troisième image, respectivement la composante pour un pixel p de la quatrième image ,
• est une profondeur d’un pixel obtenue de la troisième carte de profondeurs, respectivement obtenue de la quatrième carte de profondeur ;
• est une matrice de paramètres ;
• est l’ordre d’un gradient de lissage ;
• une norme L1 des gradients de profondeur du second ordre est calculée avec =1 , et =2 ;
• et sont les dimensions des images ;
• est un hyperparamètre dépendant de l’environnement dans lequel évolue le véhicule ; et
• est une valeur du pixel dans la troisième image, respectivement quatrième image.
•
•
•
•
• une norme L1 des gradients de profondeur du second ordre est calculée avec
•
•
•
Cette fonction est généralement utilisée pour traiter la discontinuité à la bordure des objets (en anglais « edge aware smoothness »).
L’erreur de perte comprend, par exemple, les erreurs de consistance, les erreurs photométriques et l’erreur de construction ci-dessus déterminées :
Avec :
• l’erreur de perte,
• la première erreur photométrique pour un pixel , étant un pixel défini par ses coordonnées dans une image,
• la deuxième erreur photométrique pour le pixel ,
• la première erreur de consistance pour le pixel ,
• la deuxième erreur de consistance pour le pixel ,
• la composante dans la troisième image pour le pixel ,
• la composante dans la quatrième image pour le pixel .
•
•
•
•
•
•
•
Il est à noter que les pixels comparés sont ceux de coordonnées similaires ou égales dans les images acquises comme dans les images générées.
Il est à noter que la prise en compte de l’erreur de consistance permet également d’apprendre le modèle de prédiction de profondeur si nécessaire.
De plus, le masque de visibilité utilisé pour la détermination des première et deuxième erreurs de consistance (selon les variantes) peut être imprécis en début d’apprentissage. Aussi, afin de le rendre plus important au fur et à mesure de l’apprentissage, par exemple en fonction du nombre d’itérations du procédé d’apprentissage 3, aussi appelé nombre d’epochs, les première et deuxième erreurs de consistance sont par exemple pondérées par un facteur β croissant en fonction du nombre d’itérations. Ainsi, selon un autre exemple de réalisation particulier, l’erreur de perte comprend, par exemple, les erreurs de consistance pondérées, les erreurs photométriques et l’erreur de construction ci-dessus déterminées :
Avec :
• l’erreur de perte,
• la première erreur photométrique pour un pixel , étant un pixel défini par ses coordonnées dans une image,
• la deuxième erreur photométrique pour le pixel ,
• un facteur de pondération compris entre 0 et 1,
• la première erreur de consistance pour le pixel ,
• la deuxième erreur de consistance pour le pixel ,
• la composante dans la troisième image pour le pixel ,
• la composante dans la quatrième image pour le pixel .
•
•
•
•
•
•
•
•
L’apprentissage du modèle de prédiction de profondeur consiste en l’ajustement de paramètres d’entrée du réseau de neurones convolutif afin de minimiser l’erreur de perte précédemment calculée.
De plus, un objet occlus ou non visible dans le champ de vision d’une caméra et masqué dans le champ de vision de l’autre caméra n’impacte pas l’erreur de perte, l’utilisation d’un masque de visibilité rendant ce procédé d’apprentissage insensible aux occlusions. Ainsi, le modèle de prédiction de profondeur utilisé pour la prédiction de profondeur d’un pixel d’une image acquise par l’une des caméras du système de vision stéréoscopique est fiabilisé grâce à ce procédé d’apprentissage.
Cet apprentissage est réalisé à partir de données acquises par le système de vision embarqué et ne nécessite donc pas de données annotées par un autre système embarqué ou de stockage d’une bibliothèque d’images d’apprentissage. De plus, les données d’apprentissage sont représentatives des données reçues lorsque le système est en fonctionnement ou en production, en effet les données d’apprentissage sont représentatives d’environnements réels dans lesquels évolue ou se déplace le véhicule embarquant le système de vision stéréoscopique, ces données d’apprentissage sont donc particulièrement pertinentes.
LaFIG. 4 illustre schématiquement un dispositif 4 configuré pour apprendre un modèle de prédiction de profondeur par un système de vision embarqué dans un véhicule, selon un exemple de réalisation particulier et non limitatif de la présente invention. Le dispositif 4 correspond par exemple à un dispositif embarqué dans le premier véhicule 10, par exemple un calculateur associé au système de vision stéréoscopique.
Le dispositif 4 est par exemple configuré pour la mise en œuvre des opérations décrites en regard des figures 1 et 4 et/ou étapes décrites en regard des figures 2 et 3. Des exemples d’un tel dispositif 4 comprennent, sans y être limités, un équipement électronique embarqué tel qu’un ordinateur de bord d’un véhicule, un calculateur électronique tel qu’une UCE (« Unité de Commande Electronique »), un téléphone intelligent, une tablette, un ordinateur portable. Les éléments du dispositif 4, individuellement ou en combinaison, peuvent être intégrés dans un unique circuit intégré, dans plusieurs circuits intégrés, et/ou dans des composants discrets. Le dispositif 4 peut être réalisé sous la forme de circuits électroniques ou de modules logiciels (ou informatiques) ou encore d’une combinaison de circuits électroniques et de modules logiciels.
Le dispositif 4 comprend un (ou plusieurs) processeur(s) 40 configurés pour exécuter des instructions pour la réalisation des étapes du procédé et/ou pour l’exécution des instructions du ou des logiciels embarqués dans le dispositif 4. Le processeur 40 peut inclure de la mémoire intégrée, une interface d’entrée/sortie, et différents circuits connus de l’homme du métier. Le dispositif 4 comprend en outre au moins une mémoire 41 correspondant par exemple à une mémoire volatile et/ou non volatile et/ou comprend un dispositif de stockage mémoire qui peut comprendre de la mémoire volatile et/ou non volatile, telle que EEPROM, ROM, PROM, RAM, DRAM, SRAM, flash, disque magnétique ou optique.
Le code informatique du ou des logiciels embarqués comprenant les instructions à charger et exécuter par le processeur est par exemple stocké sur la mémoire 41.
Selon différents exemples de réalisation particuliers et non limitatifs, le dispositif 4 est couplé en communication avec d’autres dispositifs ou systèmes similaires (par exemple d’autres calculateurs) et/ou avec des dispositifs de communication, par exemple une TCU (de l’anglais « Telematic Control Unit » ou en français « Unité de Contrôle Télématique »), par exemple par l’intermédiaire d’un bus de communication ou au travers de ports d’entrée / sortie dédiés.
Selon un exemple de réalisation particulier et non limitatif, le dispositif 4 comprend un bloc 42 d’éléments d’interface pour communiquer avec des dispositifs externes. Les éléments d’interface du bloc 42 comprennent une ou plusieurs des interfaces suivantes :
- interface radiofréquence RF, par exemple de type Wi-Fi® (selon IEEE 802.11), par exemple dans les bandes de fréquence à 2,4 ou 5 GHz, ou de type Bluetooth® (selon IEEE 802.15.1), dans la bande de fréquence à 2,4 GHz, ou de type Sigfox utilisant une technologie radio UBN (de l’anglais Ultra Narrow Band, en français bande ultra étroite), ou LoRa dans la bande de fréquence 868 MHz, LTE (de l’anglais « Long-Term Evolution » ou en français « Evolution à long terme »), LTE-Advanced (ou en français LTE-avancé) ;
- interface USB (de l’anglais « Universal Serial Bus » ou « Bus Universel en Série » en français) ;
interface HDMI (de l’anglais « High Definition Multimedia Interface », ou « Interface Multimedia Haute Definition » en français) ;
- interface LIN (de l’anglais « Local Interconnect Network », ou en français « Réseau interconnecté local »).
- interface radiofréquence RF, par exemple de type Wi-Fi® (selon IEEE 802.11), par exemple dans les bandes de fréquence à 2,4 ou 5 GHz, ou de type Bluetooth® (selon IEEE 802.15.1), dans la bande de fréquence à 2,4 GHz, ou de type Sigfox utilisant une technologie radio UBN (de l’anglais Ultra Narrow Band, en français bande ultra étroite), ou LoRa dans la bande de fréquence 868 MHz, LTE (de l’anglais « Long-Term Evolution » ou en français « Evolution à long terme »), LTE-Advanced (ou en français LTE-avancé) ;
- interface USB (de l’anglais « Universal Serial Bus » ou « Bus Universel en Série » en français) ;
interface HDMI (de l’anglais « High Definition Multimedia Interface », ou « Interface Multimedia Haute Definition » en français) ;
- interface LIN (de l’anglais « Local Interconnect Network », ou en français « Réseau interconnecté local »).
Selon un autre exemple de réalisation particulier et non limitatif, le dispositif 4 comprend une interface de communication 43 qui permet d’établir une communication avec d’autres dispositifs (tels que d’autres calculateurs du système embarqué) via un canal de communication 430. L’interface de communication 43 correspond par exemple à un transmetteur configuré pour transmettre et recevoir des informations et/ou des données via le canal de communication 430. L’interface de communication 43 correspond par exemple à un réseau filaire de type CAN (de l’anglais « Controller Area Network » ou en français « Réseau de contrôleurs »), CAN FD (de l’anglais « Controller Area Network Flexible Data-Rate » ou en français « Réseau de contrôleurs à débit de données flexible »), FlexRay (standardisé par la norme ISO 17458) ou Ethernet (standardisé par la norme ISO/IEC 802-3).
Selon un exemple de réalisation particulier et non limitatif, le dispositif 4 peut fournir des signaux de sortie à un ou plusieurs dispositifs externes, tels qu’un écran d’affichage 440, tactile ou non, un ou des haut-parleurs 450 et/ou d’autres périphériques 460 via respectivement les interfaces de sortie 44, 45, 46. Selon une variante, l’un ou l’autre des dispositifs externes est intégré au dispositif 4.
Bien entendu, la présente invention ne se limite pas aux exemples de réalisation décrits ci-avant mais s’étend à un procédé de détermination de profondeur d’un pixel d’une image acquise par un système de vision, et/ou de mesurage d’une distance séparant un objet d’un véhicule embarquant un système de vision, la profondeur et/ou la distance étant prédite et/ou mesurée via un modèle de prédiction de profondeur appris selon le procédé d’apprentissage décrit ci-dessus, qui inclurait des étapes secondaires sans pour autant sortir de la portée de la présente invention. Il en serait de même d’un dispositif configuré pour la mise en œuvre d’un tel procédé.
La présente invention concerne également un véhicule, par exemple automobile ou plus généralement un véhicule autonome à moteur terrestre, comprenant le dispositif 4 de laFIG. 4 .
Claims (10)
- Procédé d’apprentissage d’un modèle de prédiction de profondeur mis en œuvre par un réseau de neurones convolutif associé à un système de vision stéréoscopique embarqué dans un véhicule (10), le système de vision stéréoscopique comprenant une première caméra (11) et une deuxième caméra (12) disposées de manière à acquérir chacune une image d’une scène tridimensionnelle selon un point de vue différent,
ledit procédé étant mis en œuvre par au moins un processeur, et étant caractérisé en ce qu’il comprend les étapes suivantes :
- réception (31) d’une première image et d’une deuxième image acquises par respectivement la première caméra (11) et la deuxième caméra (12) à un même instant temporel d’acquisition ;
- génération (32) d’une première carte de profondeurs comprenant des profondeurs associées à un ensemble de pixels de la première image et d’une deuxième carte de profondeurs comprenant des profondeurs associées à un ensemble de pixels de la deuxième image, les profondeurs étant prédites avec le modèle de prédiction de profondeur à partir des première et deuxième images ;
- détermination (33) de positions tridimensionnelles de points d’un premier ensemble de points à partir de la première carte de profondeurs, chaque point du premier ensemble de points correspondant à un pixel de la première carte de profondeurs, et détermination de positions tridimensionnelles de points d’un deuxième ensemble de points à partir de la deuxième carte de profondeurs, chaque point du deuxième ensemble de points correspondant à un pixel de la deuxième carte de profondeurs ;
- génération (34) d’une troisième image et d’une troisième carte de profondeurs à partir de la première image, de la première carte de profondeurs et de paramètres extrinsèques du système de vision stéréoscopique, la troisième carte de profondeurs comprenant des profondeurs associées à un ensemble de pixels de la troisième image, et génération d’une quatrième image et d’une quatrième carte de profondeurs à partir de la deuxième image, de la deuxième carte de profondeurs et des paramètres extrinsèques du système de vision stéréoscopique, la quatrième carte de profondeurs comprenant des profondeurs associées à un ensemble de pixels de la quatrième image ;
- détermination (35) d’un masque de visibilité comme l’union d’un premier masque de visibilité et d’un deuxième masque de visibilité, chaque pixel de la troisième image résultant d’au moins un pixel de la première image appartenant au premier masque de visibilité et chaque pixel de la quatrième image résultant d’au moins un pixel de la deuxième image appartenant au deuxième masque de visibilité ;
- assignation (36) d’une valeur nulle aux pixels des troisième et quatrième images non compris dans le masque de visibilité ;
- détermination (37) de positions tridimensionnelles de points d’un troisième ensemble de points à partir de la troisième carte de profondeurs, chaque point du troisième ensemble de points correspondant à un pixel de la troisième carte de profondeurs, et détermination de positions tridimensionnelles de points d’un quatrième ensemble de points à partir de la quatrième carte de profondeurs, chaque point du quatrième ensemble de points correspondant à un pixel de la quatrième carte de profondeurs ;
- apprentissage (38) du modèle de prédiction de profondeur par minimisation d’une erreur de perte, l’erreur de perte étant déterminée à partir de :
• une première erreur de consistance déterminée par comparaison de positions tridimensionnelles de points des premier et quatrième ensembles de points,
• une deuxième erreur de consistance déterminée par comparaison de positions tridimensionnelles de points des deuxième et troisième ensembles de points, et
• une erreur photométrique déterminée par comparaison des première et quatrième images et par comparaison des deuxième et troisième images. - Procédé selon la revendication 1, pour lequel la première erreur de consistance et la deuxième erreur de consistance sont déterminées respectivement par la fonction suivante :
Avec :
• correspondant à la première erreur de consistance pour un pixel de la première carte de profondeurs, respectivement la deuxième erreur de consistance pour un pixel de la deuxième carte de profondeurs, un pixel étant défini par des coordonnées en deux dimensions ;
• une composante suivant un premier axe d’une position tridimensionnelle d’un point du premier ensemble de points correspondant au pixel de la première carte de profondeurs notée , respectivement du deuxième ensemble de points correspondant au pixel de la deuxième carte de profondeurs notée ;
• une composante suivant un premier axe d’une position tridimensionnelle d’un point du quatrième ensemble de points correspondant au pixel de la quatrième carte de profondeurs notée , respectivement du troisième ensemble de points correspondant au pixel de la troisième carte de profondeurs notée ;
• une composante suivant un deuxième axe d’une position tridimensionnelle d’un point du premier ensemble de points correspondant au pixel de la première carte de profondeurs notée , respectivement du deuxième ensemble de points correspondant au pixel de la deuxième carte de profondeurs notée ;
• une composante suivant un deuxième axe d’une position tridimensionnelle d’un point du quatrième ensemble de points correspondant au pixel de la quatrième carte de profondeurs notée , respectivement du troisième ensemble de points correspondant au pixel de la troisième carte de profondeurs notée ;
• une composante suivant un troisième axe d’une position tridimensionnelle d’un point du premier ensemble de points correspondant au pixel de la première carte de profondeurs notée , respectivement du deuxième ensemble de points correspondant au pixel de la deuxième carte de profondeurs notée ; et
• une composante suivant un troisième axe d’une position tridimensionnelle d’un point du quatrième ensemble de points correspondant au pixel de la quatrième carte de profondeurs notée , respectivement du troisième ensemble de points correspondant au pixel de la troisième carte de profondeurs notée . - Procédé selon la revendication 2, pour lequel le troisième ensemble de pixels comprend uniquement des pixels de la troisième carte de profondeurs compris dans ledit masque de visibilité et le quatrième ensemble de pixels comprend uniquement des pixels de la quatrième carte de profondeurs compris dans ledit masque de visibilité.
- Procédé selon la revendication 2 ou 3, pour lequel l’erreur de perte est déterminée par la fonction suivante :
Avec :
• l’erreur de perte,
• la première erreur photométrique pour un pixel défini par ses coordonnées en deux dimensions,
• la deuxième erreur photométrique pour le pixel ,
• la première erreur de consistance pour le pixel , et
• la deuxième erreur de consistance pour le pixel . - Procédé selon l’une des revendications 1 à 4, pour lequel la détermination d’une position tridimensionnelle d’un point correspondant à un pixel est obtenue par la fonction suivante :
Avec :
• la position tridimensionnelle d’un point du premier, deuxième, troisième et respectivement quatrième ensemble de points,
• un modèle de prédiction de direction associé à la première caméra (11), respectivement à la deuxième caméra (12),
• une fonction de projection dans la scène tridimensionnelle d’un pixel en fonction de ses coordonnées et de la profondeur qui lui est associée dans la première, deuxième, troisième et respectivement quatrième carte de profondeurs. - Procédé selon la revendication 5, pour lequel le modèle de prédiction de direction est mis en œuvre par un réseau de neurones.
- Procédé selon l’une des revendications 5 à 6, pour lequel les troisième et quatrième cartes de profondeurs sont générées par la fonction suivante :
Avec :
• les coordonnées d’un pixel de la troisième carte de profondeurs, respectivement de la quatrième carte de profondeurs,
• une fonction pour passer de coordonnées homogènes à des coordonnées pixels en supprimant une dimension d’un vecteur,
• un modèle de prédiction de direction associé à la deuxième caméra (12), respectivement à la première caméra (11),
• un modèle de prédiction de direction associé à la première caméra (11), respectivement à la deuxième caméra (12),
• une matrice extrinsèque du système de vision stéréoscopique, et
• une fonction de projection dans la scène tridimensionnelle d’un pixel en fonction de ses coordonnées dans la première image, respectivement deuxième image, et de la profondeur qui lui est associée dans la première carte de profondeurs, respectivement deuxième carte de profondeurs. - Programme d’ordinateur comportant des instructions pour la mise en œuvre du procédé selon l’une quelconque des revendications précédentes, lorsque ces instructions sont exécutées par un processeur.
- Dispositif (4) configuré pour apprendre un modèle de prédiction de profondeur par un système de vision embarqué dans un véhicule (10), ledit dispositif (4) comprenant une mémoire (41) associée à au moins un processeur (40) configuré pour la mise en œuvre des étapes du procédé selon l’une quelconque des revendications 1 à 7.
- Véhicule (10) comprenant le dispositif (4) selon la revendication 9.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR2403030A FR3160789A1 (fr) | 2024-03-26 | 2024-03-26 | Procédé et dispositif d’apprentissage d’un modèle de prédiction de profondeur associé à un système de vision stéréoscopique par comparaison de positions de points dans une scène tridimensionnelle. |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR2403030A FR3160789A1 (fr) | 2024-03-26 | 2024-03-26 | Procédé et dispositif d’apprentissage d’un modèle de prédiction de profondeur associé à un système de vision stéréoscopique par comparaison de positions de points dans une scène tridimensionnelle. |
| FR2403030 | 2024-03-26 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| FR3160789A1 true FR3160789A1 (fr) | 2025-10-03 |
Family
ID=91248336
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| FR2403030A Pending FR3160789A1 (fr) | 2024-03-26 | 2024-03-26 | Procédé et dispositif d’apprentissage d’un modèle de prédiction de profondeur associé à un système de vision stéréoscopique par comparaison de positions de points dans une scène tridimensionnelle. |
Country Status (1)
| Country | Link |
|---|---|
| FR (1) | FR3160789A1 (fr) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20190213481A1 (en) * | 2016-09-12 | 2019-07-11 | Niantic, Inc. | Predicting depth from image data using a statistical model |
| US11688090B2 (en) * | 2021-03-16 | 2023-06-27 | Toyota Research Institute, Inc. | Shared median-scaling metric for multi-camera self-supervised depth evaluation |
-
2024
- 2024-03-26 FR FR2403030A patent/FR3160789A1/fr active Pending
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20190213481A1 (en) * | 2016-09-12 | 2019-07-11 | Niantic, Inc. | Predicting depth from image data using a statistical model |
| US11688090B2 (en) * | 2021-03-16 | 2023-06-27 | Toyota Research Institute, Inc. | Shared median-scaling metric for multi-camera self-supervised depth evaluation |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2024231616A1 (fr) | Procédé et dispositif de détermination d'un masque de visibilité pour un système de vision embarqué dans un véhicule | |
| FR3160789A1 (fr) | Procédé et dispositif d’apprentissage d’un modèle de prédiction de profondeur associé à un système de vision stéréoscopique par comparaison de positions de points dans une scène tridimensionnelle. | |
| FR3160493A1 (fr) | Procédé et dispositif d’apprentissage d’un modèle de prédiction de profondeur associé à un système de vision stéréoscopique et insensible à l’occlusion. | |
| FR3160032A1 (fr) | Procédé et dispositif de détermination d’une profondeur d’un pixel d’une image par un modèle de prédiction de profondeur associé à un système de vision embarqué dans un véhicule | |
| FR3162896A1 (fr) | Procédé et dispositif d’apprentissage d’un modèle de prédiction de profondeur associé à un système de vision générant des images pouvant être distordues | |
| FR3159463A1 (fr) | Procédé et dispositif de détermination d’une profondeur d’un pixel d’une image par un modèle de prédiction de profondeur associé à un système de vision embarqué dans un véhicule | |
| FR3160797A1 (fr) | Procédé et dispositif d’apprentissage d’un modèle de prédiction de profondeur d’un ensemble de pixels d’une image associé à un système de vision stéréoscopique embarqué dans un véhicule. | |
| FR3162893A1 (fr) | Procédé et dispositif d’apprentissage d’un modèle de prédiction de profondeur associé à un système de vision multi résolution | |
| FR3163194A1 (fr) | Procédé et dispositif d’apprentissage d’un modèle de prédiction de profondeur à partir de cartes de caractéristiques de différentes résolutions | |
| FR3160494A1 (fr) | Procédé et dispositif d’apprentissage d’un modèle de prédiction de profondeur pour réduire la perte de consistance d’un système de vision stéréoscopique. | |
| FR3162894A1 (fr) | Procédé et dispositif de détermination d’une profondeur par un système de vision monoscopique appris par supervision d’un système de vision stéréoscopique | |
| FR3158575A1 (fr) | Procédé et dispositif de détermination d’une profondeur d’un pixel d’une image par un réseau de neurones associé à un système de vision embarqué dans un véhicule | |
| FR3160031A1 (fr) | Procédé et dispositif de détermination d’une profondeur d’un pixel d’une image par un modèle de prédiction de profondeur appris à partir d’images hétérogènes | |
| FR3160798A1 (fr) | Procédé et dispositif d’apprentissage d’un modèle de prédiction de profondeur insensible à la présence d’objets dynamiques dans des images d’apprentissage. | |
| FR3163480A1 (fr) | Procédé et dispositif de détermination d’une distance séparant un objet d’un véhicule par utilisation de boîte englobante et de modèle local de prédiction de profondeur. | |
| FR3158381A1 (fr) | Procédé et dispositif de détermination d’une profondeur d’un pixel d’une image par un réseau de neurones associé à un système de vision embarqué dans un véhicule | |
| FR3163759A1 (fr) | Procédé et dispositif de détermination d’une distance séparant un objet d’un véhicule par un modèle de prédiction de profondeur appris localement. | |
| FR3162895A1 (fr) | Procédé et dispositif d’apprentissage d’un modèle de prédiction de profondeur associé à un système de vision sténopé embarqué dans un véhicule | |
| FR3161785A1 (fr) | Procédé et dispositif d’apprentissage d’un modèle de prédiction de profondeur à partir d’images filtrées par bandes verticales. | |
| FR3164307A1 (fr) | Procédé et dispositif de détermination rapide d’une distance séparant un objet d’un véhicule par utilisation de boîte englobante. | |
| FR3161784A1 (fr) | Procédé et dispositif d’apprentissage d’un modèle de prédiction de profondeur à partir de bandes verticales d’images. | |
| FR3153677A1 (fr) | Procédé et dispositif de détermination d’une profondeur par un système de vision stéréoscopique auto-supervisé. | |
| FR3158576A1 (fr) | Procédé et dispositif de détermination d’un défaut de calibration d’un système de vision embarqué dans un véhicule | |
| FR3154837A1 (fr) | Procédé et dispositif de détermination d’une profondeur par un système de vision stéréoscopique auto-supervisé. | |
| FR3147650A1 (fr) | Procédé et dispositif de détermination d’une profondeur par un système de vision auto-supervisé. |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PLFP | Fee payment |
Year of fee payment: 2 |
|
| PLSC | Publication of the preliminary search report |
Effective date: 20251003 |