FR3153676A1 - Procédé et dispositif de détermination d’une profondeur par un système de vision auto-supervisé. - Google Patents

Procédé et dispositif de détermination d’une profondeur par un système de vision auto-supervisé. Download PDF

Info

Publication number
FR3153676A1
FR3153676A1 FR2310304A FR2310304A FR3153676A1 FR 3153676 A1 FR3153676 A1 FR 3153676A1 FR 2310304 A FR2310304 A FR 2310304A FR 2310304 A FR2310304 A FR 2310304A FR 3153676 A1 FR3153676 A1 FR 3153676A1
Authority
FR
France
Prior art keywords
image
vision system
camera
depths
error
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.)
Granted
Application number
FR2310304A
Other languages
English (en)
Other versions
FR3153676B1 (fr
Inventor
Hai Li
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
PSA Automobiles SA
Original Assignee
PSA Automobiles SA
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by PSA Automobiles SA filed Critical PSA Automobiles SA
Priority to FR2310304A priority Critical patent/FR3153676B1/fr
Publication of FR3153676A1 publication Critical patent/FR3153676A1/fr
Application granted granted Critical
Publication of FR3153676B1 publication Critical patent/FR3153676B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/579Depth or shape recovery from multiple images from motion
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/593Depth or shape recovery from multiple images from stereo images
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10004Still image; Photographic image
    • G06T2207/10012Stereo images
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • G06T2207/10021Stereoscopic video; Stereoscopic image sequence
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30248Vehicle exterior or interior
    • G06T2207/30252Vehicle exterior; Vicinity of vehicle

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Analysis (AREA)

Abstract

Procédé ou dispositif de détermination d’une profondeur par système de vision embarqué dans un véhicule (10), le système de vision comprenant un ensemble d’au moins deux caméras (11, 12) chacune configurée pour acquérir une image d’une scène selon un point de vue différent, les axes optiques représentatifs d’une orientation du champ de vision de chaque caméra étant orientés de façon non parallèle. Le procédé comprend les étapes de prédictions de profondeurs par un système de vision stéréoscopique et par un système de vision monoscopique, de génération d’images à partir des différentes profondeurs par application d’une fonction similaire, d’apprentissage de chaque système de vision en fonction d’erreurs déterminées par comparaison des images générées à des images acquises et d’ajustement du système de vision monoscopique sous supervision du système de vision stéréoscopique, le système de vision stéréoscopique fournissant des données d’apprentissage. Figure pour l’abrégé : Figure 1

Description

Procédé et dispositif de détermination d’une profondeur par un système de vision auto-supervisé.
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 telle profondeur. La présente invention concerne également un procédé et un dispositif de contrôle d’un ou plusieurs systèmes ADAS embarqués dans un véhicule à partir de la profondeur déterminée.
Arrière-plan technologique
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.
De la qualité des données émises par un système de vision dépend donc le bon fonctionnement des périphériques d’aides à la conduite utilisant ces données.
Résumé de la présente invention
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 de ces caméras.
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’au moins une caméra.
Selon un premier aspect, la présente invention concerne un procédé de détermination d’une profondeur par un système de vision embarqué dans un véhicule, le système de vision comprenant un ensemble de caméras d’au moins deux caméras disposées de manière à acquérir chacune une image d’une scène tridimensionnelle selon un point de vue différent, le procédé étant caractérisé en ce qu’il comprend les étapes suivantes :
- réception de premières et deuxièmes données respectivement représentatives d’une première et deuxième images acquises par respectivement une première et deuxième caméras de l’ensemble de caméras à un même premier instant temporel d’acquisition ;
- prédiction de premières profondeurs associées à un premier ensemble de pixels de la première image et de deuxièmes profondeurs associées à un deuxième ensemble de pixels de la deuxième image en fonction de valeurs de flux optique et de valeurs de première disparité induite par une position relative d’axes optiques des première et deuxième caméras, déterminées à partir des premier et deuxième ensembles de pixels,
les premières et deuxièmes profondeurs étant prédites par un premier réseau de neurones convolutif associé à un système de vision stéréoscopique comprenant les première et deuxième caméras ;
- génération d’une quatrième image à partir de la première image et des premières profondeurs et d’une cinquième image à partir de la deuxième image et des deuxièmes profondeurs, la génération d’image étant obtenue par application d’une fonction de génération d’image ;
- apprentissage du premier réseau de neurones convolutif par minimisation d’une première erreur, la première erreur étant déterminée par comparaison des première et cinquième images et par comparaison des quatrième et deuxième images ;
- réception de troisièmes données représentatives d’une troisième image acquise par la première caméra à un deuxième instant temporel d’acquisition différent du premier instant temporel d’acquisition de la première image ;
- détermination de données représentatives d’un mouvement de la première caméra entre le premier instant temporel d’acquisition et le deuxième instant temporel d’acquisition en fonction des première et troisième images ;
- prédiction de troisièmes profondeurs associées à un troisième ensemble de pixels de la première image et de quatrièmes profondeurs associées à un quatrième ensemble de pixels de la troisième image en fonction de valeurs de flux optique et de valeurs de deuxième disparité induite par une position relative d’axes optiques de la première caméra aux premier et deuxième instants temporels d’acquisition déterminées à partir des troisième et quatrième ensembles de pixels,
les troisièmes et quatrièmes profondeurs étant prédites par un deuxième réseau de neurones convolutif associé à un système de vision monoscopique comprenant la première caméra ;
- génération d’une sixième image à partir de la première image et des troisièmes profondeurs et d’une septième image à partir de la troisième image et des quatrièmes profondeurs par application de la fonction de génération d’image ;
- apprentissage du deuxième réseau de neurones convolutif par minimisation d’une deuxième erreur, la deuxième erreur étant déterminée par comparaison des sixième et troisième images et par comparaison des septième et première images ;
- ajustement de paramètres du deuxième réseau de neurones convolutif en fonction des premières profondeurs correspondant à des données d’apprentissage.
Un tel procédé permet de prédire des premières profondeurs pour le système de vision stéréoscopique plus fiables, permettant alors de fournir au système de vision monoscopique des données d’apprentissage, dites « données annotées » de meilleure qualité. La prédiction de deuxièmes profondeurs par le système de vision monoscopique est alors plus précise et atteint une précision métrique dont dispose le système de vision stéréoscopique.
Un système d’aide à la conduite utilisant les premières ou deuxièmes profondeurs comme donnée d’entrée dispose alors de données fiables quant à la distance séparant le système de vision des objets présents dans le champ de vision d’une des caméras de ce système de vision.
Selon une variante du procédé, les valeurs de première et deuxième disparités induites sont déterminées par un troisième réseau de neurones convolutif.
Selon une autre variante du procédé, la fonction de génération d’image est définie par la fonction suivante, respectivement pour le système de vision stéréoscopique et pour le système de vision monoscopique :

Avec :
un pixel d’une image générée,
une fonction pour passer de coordonnées homogènes à des coordonnées pixels en supprimant une dimension d’un vecteur,
une matrice intrinsèque de la deuxième caméra, respectivement de la première caméra,
une matrice extrinsèque de système de vision stéréoscopique, respectivement une matrice représentant le mouvement de la première caméra entre les premier et deuxième instants temporels,
une fonction de projection dans la scène tridimensionnelle d’un pixel en fonction de sa profondeur,
une matrice intrinsèque de la première caméra, et
est une profondeur du pixel déterminée par le premier réseau de neurones convolutif, respectivement par le deuxième réseau de neurones convolutif.
Selon encore une variante du procédé, la première erreur est déterminée par une première fonction de perte définie par :
Avec :
la première erreur,
une moyenne d’arguments,
une erreur pour un pixel de la première image comparée à la cinquième image,
une erreur pour un pixel de la deuxième image comparée à la quatrième image.
Selon encore une autre variante du procédé, la première erreur est déterminée par une première fonction de perte définie par :
Avec :
la première erreur,
une valeur minimale d’un argument,
une erreur pour un pixel de la première image comparée à la cinquième image,
une erreur pour un pixel de la deuxième image comparée à la quatrième image.
Selon encore une variante, la deuxième erreur est déterminée par une deuxième fonction de perte définie par :
Avec :
la deuxième erreur,
une moyenne d’arguments,
une erreur pour un pixel de la première image comparée à la septième image,
une erreur pour un pixel de la troisième image comparée à la sixième image.
Selon une variante de procédé supplémentaire, la deuxième erreur est déterminée par une deuxième fonction de perte définie par :
Avec :
la deuxième erreur,
une valeur minimale d’un argument,
une erreur pour un pixel de la première image comparée à la septième image,
une erreur pour un pixel de la troisième image comparée à la sixième image.
Selon une autre variante du procédé, la troisième image est remplacée par une image noire, une image noire étant une image dont un ensemble de valeurs colorimétriques associées aux pixels de l’image est nul.
Selon un deuxième aspect, la présente invention concerne un dispositif de détermination d’une 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.
Brève description des figures
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 à 3 annexées, sur lesquelles :
FIG. 1illustre 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 ;
FIG. 2illustre un organigramme des différentes étapes d’un procédé de de détermination d’une profondeur par système de vision embarqué dans le véhicule de laFIG. 1, selon un exemple de réalisation particulier et non limitatif de la présente invention ;
FIG. 3illustre schématiquement un dispositif configuré pour la détermination d’une profondeur par système de vision embarqué dans le véhicule de laFIG. 1, selon un exemple de réalisation particulier et non limitatif de la présente invention.
Description des exemples de réalisation
Un procédé et un dispositif de détermination d’une profondeur par système de vision embarqué dans un véhicule vont maintenant être décrits dans ce qui va suivre en référence conjointement aux figures 1 à 3. 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.
Selon un exemple particulier et non limitatif de réalisation de la présente invention, un procédé de détermination d’une profondeur par système de vision embarqué dans un véhicule est par exemple mis en œuvre par un calculateur du système embarqué du véhicule contrôlant ce système de vision.
Le système de vision comprend un ensemble de caméras d’au moins deux caméras disposées de manière à acquérir chacune une image d’une scène selon un point de vue différent.
A cet effet, le procédé de détermination d’une profondeur par un système de vision embarqué dans un véhicule comprend les étapes de réception de premières, deuxièmes et troisièmes données respectivement représentatives de première, deuxième et troisième images.
Les première et deuxième images sont acquises respectivement par la première et la deuxième caméra à un même premier instant temporel d’acquisition. Les première et deuxième caméras forment alors un système de vision stéréoscopique.
La troisième image est acquise par la première caméra à un deuxième instant temporel d’acquisition différent du premier instant temporel d’acquisition. La première caméra forme alors un système de vision monoscopique, la première caméra ayant des points de vue de la scène tridimensionnelle différents selon un déplacement du véhicule 10.
Selon un premier mode de réalisation particulier, le deuxième instant temporel d’acquisition est antérieur au premier instant temporel d’acquisition.
Selon un deuxième mode de réalisation particulier, le deuxième instant temporel d’acquisition est postérieur au premier instant temporel d’acquisition.
Des premières et deuxièmes profondeurs sont prédites par un premier réseau de neurones convolutif associé au système de vision stéréoscopique et des troisièmes et quatrièmes profondeurs sont prédites par un deuxième réseau de neurones convolutif associé au système de vision monoscopique.
Des quatrième et cinquième images sont générées à partir, respectivement, des première et deuxième images et des premières et deuxièmes profondeurs par application d’une fonction de génération d’image.
De manière similaire, des sixième et septième images sont générées à partir, respectivement, des première et troisième images et des troisièmes et quatrièmes profondeurs par application de la fonction de génération d’image.
Chaque système de vision est alors appris par minimisation d’erreurs déterminées par comparaison des images générées à des images acquises et les prédictions de deuxièmes profondeurs par le deuxième réseau de neurones convolutif associé au système de vision monoscopique sont alors améliorées par ajustement des paramètres du deuxième réseau de neurones convolutif en fonctions des premières profondeurs prédites par le premier réseau de neurones convolutif, le système de vision stéréoscopique fournissant des données d’apprentissage, dites « données annotées ».
LaFIG. 1illustre 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 plusieurs caméras 11, 12 embarquées, chacune configurée pour acquérir des images d’une scène dans l’environnement du véhicule 10. Cet ensemble de caméras 11, 12 forme le système de vision stéréoscopique. Deux caméras 11 et 12 sont illustrées sur laFIG. 1. La présente invention ne se limite cependant pas à un système de vision stéréoscopique comprenant deux caméras mais s’étend à tout système de vision comprenant 2 ou plus caméras, par exemple 2, 3, 4 ou 5 caméras.
Les deux caméras 11, 12 disposent de paramètres intrinsèques connus. Ces paramètres se composent notamment de :
- la distance focale f1 de la première caméra 11 ;
- la distance focale f2 de la deuxième caméra 12 ;
- les distorsions qui sont dues aux imperfections du système optique de chaque caméra ;
- la direction C1 de l’axe optique de la première caméra 11 ;
- la direction C2 de l’axe optique de la deuxième caméra 12 ; et
- les résolutions respectives des caméras 11, 12.
Les paramètres intrinsèques caractérisent la transformation qui associe, pour un point image, les coordonnées caméra aux coordonnées pixel, dans chaque caméra. Ces paramètres ne changent pas si l'on déplace la caméra.
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 ou que leur correction est traitée au moment de l’acquisition d’une image.
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 y est définie par la position de la deuxième caméra 12, de manière à placer la deuxième caméra 12 sur l’axe y de la première caméra 11. La distance B séparant les deux caméras 11, 12 est appelée base de référence (en anglais « baseline ») et la direction séparant les deux caméras 11, 12 est celle de l’axe y ;
- la direction de l’axe x est définie orthogonale à celle de l’axe y et orthogonale à celle de 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é.
Les paramètres extrinsèques liés à la position des caméras 11, 12 sont les paramètres suivants :
- 3 translations dans les directions x, y et z : Tx, Ty et Tz constituant le vecteur translation T ; et
- 3 rotations autour des axes x, y et z : Rx, Ry et Rz, constituant la matrice de rotation R.
Déterminer les paramètres extrinsèques constitue le problème de la calibration d'un système de vision stéréoscopique.
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 composé de 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 composé de la première caméra 11.
Enfin, le champ 19 n’est visible depuis 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, les directions C1, C2 des axes optiques représentatifs d’une orientation du champ de vision de chaque caméra sont orientées non parallèlement de manière à obtenir le troisième champ d’acquisition 15 de l’environnement 1 le plus large possible.
Selon un autre exemple de réalisation, les directions C1, C2 des axes optiques représentatifs d’une orientation du champ de vision de chaque caméra sont orientées parallèlement.
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 t1 donné 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é).
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 position 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.
Ces images 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 processus 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 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 stéréoscopique du véhicule 10.
Dans une première opération, le calculateur reçoit des premières données représentatives d’une première image acquise par une première caméra 11 de l’ensemble de caméras à un premier instant temporel d’acquisition.
Dans une deuxième opération, le calculateur reçoit des deuxièmes données représentatives d’une deuxième image acquise par une deuxième caméra 12 de l’ensemble de caméras au même premier instant temporel d’acquisition.
Les deux images reçues correspondent à deux vues d’une même scène tridimensionnelle se déroulant aux alentours du véhicule 10 à même premier instant temporel d’acquisition donné.
Dans une troisième opération, des premières profondeurs associées à un premier ensemble de pixels de la première image sont prédites en fonction de valeurs de flux optique déterminées à partir du premier ensemble de pixels et d’un deuxième ensemble de pixels de la deuxième image correspondant au premier ensemble de pixels.
Les champs de vision de la première 11 et de la deuxième 12 caméra étant concourants, une partie des pixels de la première image et une partie des pixels de la deuxième image sont associés à des mêmes objets présents dans la scène tridimensionnelle.
La troisième opération s’effectue par mise en œuvre d’une méthode dite de calcul par flux optique (en anglais « optical flow »). Une telle méthode est notamment décrite dans « PWC-Net: CNNs for Optical Flow Using Pyramid, Warping, and Cost Volume » de Deqing Sun, Xiaodong Yang, Ming-Yu Liu et Jan Kautz du 25 juin 2018 et dans « RAFT: Recurrent All-Pairs Field Transforms for Optical Flow » de Zachary Teed et Jia Deng du 25 août 2020.
La méthode de calcul par flux optique est mise en œuvre par un premier réseau de neurones convolutif (en anglais « Convolutional Neural Networks », CNN), outil couramment utilisé dans le cadre du traitement d’images. Une donnée intermédiaire de la troisième opération est un flux optique représentatif d’un déplacement entre chaque pixel du premier ensemble de pixels et un deuxième pixel correspondant à chaque premier pixel dans la deuxième image, l’ensemble des deuxièmes pixels correspondant au deuxième ensemble de pixels.
La rotation et translation pour passer de l’axe optique de la première caméra 11 à la deuxième caméra 12 créent notamment une première disparité dite « induite ». Cette première disparité induite est, en outre, comprise dans le flux optique déterminé à partir des première et deuxième images.
La rotation est par exemple due au fait que les axes optiques des première 11 et deuxième 12 caméras ne sont pas parallèles. La translation est par exemple due au fait que les première 11 et deuxième 12 caméras ne sont pas placées à une même hauteur sur le véhicule 10.
Selon un exemple de réalisation particulier, afin de ne pas prendre en compte cette première disparité induite susceptible de fausser la prédiction de premières et deuxièmes profondeurs, un troisième réseau de neurones convolutif de type FCN (de l’anglais « Fully Convolutional network »), par la suite appelé un FCN, est mis en œuvre pour déterminer la première disparité induite et filtrer la valeur de flux optique avant de prédire la profondeur d’un pixel.
La donnée d’entrée d’un tel FCN est une matrice ‘une dimension HxWxN avec H la hauteur d’une image, W la largeur d’une image et N un nombre de canaux incluant les éléments non nuls de la matrice de rotation (au maximum 9), les élément non nuls du vecteur de translation (au maximum 3) ainsi que les deux flux optiques (horizontaux et verticaux). Le nombre maximal de canaux est donc de 14. Le nombre de couches intermédiaire et le nombres des canaux de la matrice à chaque couche dépend de la déviation du système parallèle.
La structure de ce FCN est construite par expérimentation de manière à minimiser la taille du FCN tout en offrant un résultat acceptable.
La structure de ce FCN est construite par expérimentation de manière à minimiser la taille du FCN tout en offrant un résultat acceptable.
Ainsi, selon cet exemple de réalisation particulier, dans une quatrième opération, une première disparité induite est déterminée par le FCN à partir des première et deuxième images permettant de soustraire la première disparité induite du flux optique pour obtenir un flux optique corrigé, les premières profondeurs sont alors prédites en fonction de ce flux optique corrigé, une profondeur étant proportionnelle à une norme d’un flux optique auquel la première disparité induite est soustraite.
De la même manière que pour les troisième et quatrième opérations, dans des cinquième et sixième opérations, des deuxièmes profondeurs associées au deuxième ensemble de pixels sont prédites en fonction de valeurs de flux optique déterminées à partir du deuxième ensemble de pixels de la deuxième image et du premier ensemble de pixels de la première image. Les deuxièmes profondeurs sont aussi prédites par le premier réseau de neurones convolutif.
De telles opérations sont permises car le flux optique peut être défini dans les deux sens, c’est-à-dire de la première image vers la deuxième image et inversement.
Dans une septième opération, une quatrième image est générée à partir de la première image et des premières profondeurs prédites par application d’une fonction de génération d’image et dans une huitième opération une cinquième image est générée à partir de la deuxième image et des deuxièmes profondeurs par application de la même fonction de génération d’image.
Selon un exemple de réalisation particulier, la fonction de génération d’image est définie par la fonction suivante :
Avec :
un pixel de la quatrième image, respectivement cinquième image
une fonction pour passer de coordonnées homogènes à des coordonnées pixels en supprimant une dimension d’un vecteur,
une matrice intrinsèque de la deuxième caméra 12, respectivement de la première caméra 11,
une matrice extrinsèque du système de vision stéréoscopique,
une fonction de projection dans la scène tridimensionnelle d’un pixel en fonction de sa profondeur,
une matrice intrinsèque de la première caméra 11, respectivement de la deuxième caméra 12,
est une première profondeur du pixel de la première image, respectivement une deuxième profondeur d’un pixel de la deuxième image.
Le principe de la génération d’image consiste à projeter un pixel d’une image acquise par la première caméra 11 (la première image) vers un point dans la scène tridimensionnelle en fonction de sa première profondeur, puis à reprojeter ce point dans une image telle qu’elle serait acquise du point de vue de la deuxième caméra 12 (la quatrième image). Ainsi, si la valeur de première profondeur associées à un pixel de la première image est correcte, alors le point de la scène est bien défini et la deuxième image devrait avoir, à l’emplacement de ce point de la scène projeté, un pixel de même valeur.
Il en est de même dans l’autre sens, c’est-à-dire en projetant un pixel d’une image acquise par la deuxième caméra 12 (la deuxième image) vers un point dans la scène tridimensionnelle en fonction de sa deuxième profondeur, puis à reprojeter ce point dans une image telle qu’elle serait acquise du point de vue de la première caméra 11 (la cinquième image).
Dans une neuvième opération, le premier réseau de neurones convolutif associé au système de vision stéréoscopique comprenant les première 11 et deuxième 12 caméras est appris par minimisation d’une première erreur, la première erreur étant déterminée par comparaison des première et cinquième images et par comparaison des quatrième et deuxième images.
Selon un premier exemple de réalisation particulier, une première erreur de reconstruction pour un pixel d’une image générée est déterminée, en outre, par comparaison de l’image générée à une image acquise par une fonction définie comme suit :
Avec :
une première erreur de reconstruction pour un pixel ,
une valeur du pixel dans une image acquise (la première image, respectivement la deuxième image),
une valeur du pixel dans une image générée (la cinquième image, respectivement la quatriè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.
Cette fonction est basée sur l’erreur photométrique. Une fois une image générée, celle-ci est comparée à la véritable image acquise par le système de vision stéréoscopique.
Selon un deuxième exemple de réalisation particulier, une deuxième erreur de reconstruction d’une image générée est déterminée, en outre, par la fonction suivante :
Avec :
une deuxième erreur de reconstruction,
est la première profondeur, respectivement deuxième profondeur d’un pixel prédite par le système de vision stéréoscopique ;
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 de la deuxième image, respectivement première image ;
est un hyperparamètre dépendant de l’environnement ; et
est la valeur du pixel dans la quatrième image, respectivement cinquième image.
Cette deuxième fonction de perte est généralement utilisée pour traiter la discontinuité à la bordure des objets (en anglais « edge aware smoothness »).
L’erreur de reconstruction est ainsi définie à partir des première et deuxième erreurs de reconstruction précédemment définies.
Selon un exemple de réalisation particulier, la première erreur est déterminée par l’une des fonctions de perte suivantes.
Une première fonction de perte est définie par :
Avec :
la première erreur,
une moyenne d’arguments,
une erreur de reconstruction pour un pixel de la première image comparée à la cinquième image,
une erreur de reconstruction pour un pixel de la deuxième image comparée à la quatrième image.
En calculant la moyenne des deux erreurs de reconstruction, les deux prédictions sont traitées de manière équivalente, ce qui améliore la fiabilité de prédiction lorsqu’une des prédictions est meilleure dans un sens que dans l’autre (de la première image à la deuxième image ou inversement), c’est-à-dire quand la fiabilité des premières et deuxièmes profondeurs n’est pas équivalente.
Une deuxième fonction de perte est définie par :
Avec :
la première erreur,
une sélection de la valeur minimale parmi des arguments,
une erreur de reconstruction pour un pixel de la première image comparée à la cinquième image,
une erreur de reconstruction pour un pixel de la deuxième image comparée à la quatrième image.
Cette deuxième fonction de perte est quant à elle plus rapide et permet de diminuer le nombre d’itérations dans l’opération d’apprentissage.
Une troisième fonction de perte est définie par :
Avec :
la première erreur,
une erreur de reconstruction pour un pixel de la première image comparée à la cinquième image,
une erreur de reconstruction pour un pixel de la deuxième image comparée à la quatrième image.
Les opérations permettant de prédire les premières et deuxièmes profondeurs sont ainsi mises en œuvre par le premier réseau de neurones convolutif auto-supervisé. Un tel réseau de neurones convolutif est connu de l’homme du métier, comme PWCNet (de l’anglais « Pyramidal processing, Warping, and the use of a Cost volume Network », en français « Réseau de traitement pyramidal, déformation et utilisation d'un volume de coûts »).
Cet apprentissage permet, en outre, de trouver ou d’affiner les bonnes valeurs des paramètres (appelés « weights » en anglais) d’un réseau de neurones convolutif choisi pour ainsi fiabiliser les premières profondeurs prédites.
Dans une dixième opération, des troisièmes données représentatives d’une troisième image acquise par la première caméra 11 à un deuxième instant temporel d’acquisition différent du premier instant temporel d’acquisition de la première image sont reçues.
Les troisièmes données ont, par exemple, été sauvegardées dans une mémoire associée au calculateur ou dans une mémoire d’un dispositif embarqué dans le véhicule 10 et accessible au calculateur mettant en œuvre le processus.
Si le véhicule 10 est en mouvement, alors la troisième image correspond à une troisième vue de la scène prise depuis un troisième point de vue, celui de la première caméra 11 à sa position au deuxième instant temporel d’acquisition.
Cette position de la première caméra 11 au deuxième instant temporel d’acquisition est définie par le déplacement du véhicule 10 entre les premier et deuxième instants temporels d’acquisition. Ce déplacement de la première caméra 11 est donc lié à la vitesse et à la direction de déplacement du véhicule 10 pendant la durée séparant les premier et deuxième instants temporels d’acquisition.
La première caméra 11, dans les deux positions définies aux premier et deuxième instants temporels d’acquisition, forme un système de vision monoscopique. Les paramètres intrinsèques de ce système restent les mêmes que ceux définis précédemment liés à la première caméra 11 pour le système de vision stéréoscopique. Les paramètres extrinsèques de ce système de vision monoscopique sont les paramètres suivants :
- 3 translations dans les directions x, y et z : Tx’, Ty’ et Tz’ constituant le vecteur translation T’ ; et
- 3 rotations autour des axes x, y et z : Rx’, Ry’ et Rz’, constituant la matrice de rotation R’.
Dans une onzième opération, des données représentatives d’un mouvement de la première caméra 11 entre le premier instant temporel d’acquisition et le deuxième instant temporel d’acquisition sont déterminées en fonction des première et troisième images. Les paramètres extrinsèques du système de vision monoscopique sont, par exemple, déterminés par un calculateur associé à ce même système de vision monoscopique. La détermination des paramètres extrinsèques du système de vision monoscopique est connue de l’homme du métier et présentée, par exemple, dans le document Unsupervised Learning of Depth and Ego-Motion from Video de Tinghui Zhou, Matthew Brown, Noah Snavely et David G. Lowe paru le 1eraoût 2017.
Selon un exemple de réalisation particulier, dans une douzième opération, la troisième image est remplacée par une image noire ou par la première image lorsque la troisième image est identique à la première image ou qu’il n’y a pas de deuxième image, une image noire étant une image dont un ensemble de valeurs colorimétriques associées aux pixels de l’image est nul ou correspond à un objet de couleur noire.
L'objectif de l'image noire ici est de pouvoir prédire la profondeur pour la première image d'une vidéo selon le premier mode de réalisation, c’est-à-dire quand il n’y a pas d'image précédente.
L'objectif de l'image identique est de pouvoir prédire la profondeur quand le véhicule est à l’arrêt.
Une telle opération permet de limiter le temps des opérations suivantes et favorise alors l’apprentissage du système de vision monoscopique.
D’une manière similaire à celle des troisième, dans une treizième opération, des troisièmes profondeurs associées à un troisième ensemble de pixels de la première image sont prédites en fonction de valeurs de flux optique et de deuxième disparité induite par une position relative d’axes optiques de la première caméra 11 aux premier et deuxième instants temporels d’acquisition déterminées à partir du troisième ensemble de pixels et d’un quatrième ensemble de pixels de la troisième image correspondant au troisième ensemble de pixels.
La treizième opération s’effectue par mise en œuvre de la méthode dite de calcul par flux optique (en anglais « optical flow »), mise en œuvre par un deuxième réseau de neurones convolutif associé au système de vision monoscopique comprenant la première caméra 11. Une donnée intermédiaire de la treizième opération est un flux optique représentatif d’un déplacement entre chaque pixel du troisième ensemble de pixels et un quatrième pixel correspondant à chaque troisième pixel dans la deuxième image, l’ensemble des quatrièmes pixels correspondant au quatrième ensemble de pixels.
La rotation et translation pour passer de l’axe optique de la première caméra 11 au premier instant temporel et au deuxième instant temporel créent notamment une deuxième disparité induite qui est, en outre, comprise dans le flux optique déterminé à partir des première et troisième images.
Le troisième réseau de neurones convolutif de type FCN est mis en œuvre dans une quatorzième opération pour déterminer la deuxième disparité induite et filtrer la valeur de flux optique avant de prédire la profondeur d’un pixel.
Il est à noter que l’entrainement du FCN pour le système de vision monoscopique est plus long que pour un système de vision stéréoscopique. En effet, les paramètres extrinsèques du système de vision monoscopique changent constamment en fonction des mouvements du véhicule 10.
Ainsi, selon cet exemple de réalisation particulier, dans une quatorzième opération, une deuxième disparité induite est déterminée par le FCN à partir des première et troisième images permettant de soustraire la deuxième disparité induite du flux optique pour obtenir un flux optique corrigé, les troisièmes profondeurs sont alors prédites en fonction de ce flux optique corrigé, une profondeur étant proportionnelle à une norme d’un flux optique auquel la disparité induite est soustraite.
D’une manière similaire aux treizième et quatorzième opérations des quatrièmes profondeurs associées au quatrième ensemble de pixels de la troisième image sont prédites dans une quinzième opération en fonction de valeurs de flux optique et de disparité induite par une position relative d’axes optiques de la première caméra 11 aux premier et deuxième instants temporels d’acquisition déterminées à partir du quatrième ensemble de pixels et du troisième ensemble de pixels de la première image correspondant au quatrième ensemble de pixels. Les disparités induites sont prédites par le FCN dans une seizième opération.
Les quatrièmes profondeurs sont ainsi prédites elles aussi par le deuxième réseau de neurones convolutif.
D’une manière similaire à celle des septième et huitième opérations, dans une dix-septième opération une sixième image est générée à partir de la première image et des troisièmes profondeurs par application de la fonction de génération d’image et, dans une dix-huitième opération, une septième image est générée à partir de la troisième image et des quatrièmes profondeurs.
Selon un exemple de réalisation particulier, la fonction de génération d’image est définie par la fonction suivante pour le système de vision monoscopique :
Avec :
un pixel de la sixième image, respectivement septième image,
une fonction pour passer de coordonnées homogènes à des coordonnées pixels en supprimant une dimension d’un vecteur,
une matrice intrinsèque de la première caméra 11
une matrice représentant le mouvement de la première caméra 11 entre les premier et deuxième instants temporels,
une fonction de projection dans la scène tridimensionnelle d’un pixel en fonction de sa profondeur,
est une troisième profondeur du pixel de la première image, respectivement une quatrième profondeur du pixel de la troisième image.
Dans une dix-neuvième opération, le deuxième réseau de neurones convolutif associé au système de vision monoscopique comprenant la première caméra 11 est appris par minimisation d’une deuxième erreur, la deuxième erreur étant déterminée par comparaison des sixième et troisième images et par comparaison des septième et première images.
Selon le premier exemple de réalisation particulier, une troisième erreur de reconstruction est déterminée de manière similaire à la première erreur de reconstruction par la fonction suivante :
Avec :
une troisième erreur de reconstruction pour un pixel ,
une valeur du pixel dans une image acquise (la première image, respectivement la troisième image),
une valeur du pixel dans une image générée (la septième image, respectivement la sixiè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.
Selon le deuxième exemple de réalisation particulier, une quatrième erreur de reconstruction est déterminée par la fonction suivante :
Avec :
la quatrième erreur de reconstruction,
est la troisième profondeur d’un pixel ; respectivement la quatrième profondeur d’un pixel ,
- 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 de la première image ;
- est un hyperparamètre dépendant de l’environnement ; et
- est la valeur du pixel dans la sixième image, respectivement septième image.
Selon un exemple de réalisation particulier, la deuxième erreur est déterminée par l’une des fonctions de perte suivantes.
Une quatrième fonction de perte définie par :
Avec :
la deuxième erreur,
une moyenne d’arguments,
une erreur de reconstruction pour un pixel de la première image comparée à la septième image,
une erreur de reconstruction pour un pixel de la troisième image comparée à la sixième image.
Une cinquième fonction de perte est définie par :
Avec :
la deuxième erreur,
une moyenne d’arguments,
une erreur de reconstruction pour un pixel de la première image comparée à la septième image,
une erreur de reconstruction pour un pixel de la troisième image comparée à la sixième image.
Une sixième fonction de perte est définie par :
Avec :
la deuxième erreur,
une erreur de reconstruction pour un pixel de la première image comparée à la septième image,
une erreur de reconstruction pour un pixel de la troisième image comparée à la sixième image.
Dans une vingtième opération, les paramètres du deuxième réseau de neurones convolutif sont ajustés en fonctions des premières profondeurs déterminées par le premier réseau de neurones convolutif, les premières profondeurs correspondant alors aux données d’apprentissage. Ainsi, les paramètres du deuxième réseau de neurones convolutif sont ajustés suivant toute méthode d’apprentissage à partir de données d’apprentissage connue de l’homme du métier.
Le premier réseau de neurones convolutif associé au système de vision stéréoscopique prédit ainsi des premières profondeurs fiables, permettant alors de fournir au deuxième réseau de neurones convolutif associé au système de vision monoscopique des données d’apprentissage de bonne qualité.
Ces données d’apprentissage sont utilisées pour ajuster les paramètres du deuxième réseau de neurones convolutif, selon toute méthode d’apprentissage connue de l’homme du métier.
Si l’ADAS utilise les premières ou deuxièmes profondeurs comme donnée 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, y compris si l’autre usager n’est vu que par une seule caméra.
LaFIG. 2illustre un organigramme des différentes étapes d’un procédé 2 de de détermination d’une profondeur par système de vision embarqué dans un véhicule, par exemple le véhicule 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 embarqué dans le véhicule 10 ou par le dispositif 4 de laFIG. 3.
Dans une étape 21, des premières données représentatives d’une première image acquise par une première caméra 11 dudit ensemble de caméras à un premier instant temporel d’acquisition sont reçues.
Dans une étape 22, des deuxièmes données représentatives d’une deuxième image acquise par une deuxième caméra 12 de l’ensemble de caméras au même premier instant temporel d’acquisition sont reçues.
Dans une étape 23, des premières profondeurs associées à un premier ensemble de pixels de la première image et de deuxièmes profondeurs associées à un deuxième ensemble de pixels de la deuxième image sont prédites en fonction de valeurs de flux optique et de première disparité induite par une position relative d’axes optiques des première 11 et deuxième 12 caméras.
Les valeurs de flux optique et de disparité induite sont déterminées à partir des premier et deuxième ensembles de pixels, la première disparité induite provenant d’une position relative d’axes optiques des première 11 et deuxième 12 caméras.
Les premières et deuxièmes profondeurs sont alors prédites par un premier réseau de neurones convolutif associé à un système de vision stéréoscopique comprenant les première 11 et deuxième 12 caméras.
Dans une étape 24, une quatrième image est générée à partir de la première image et des premières profondeurs par application d’une fonction de génération d’image et une cinquième image est générée à partir de la deuxième image et des deuxièmes profondeurs, la génération d’image étant obtenue par application de la même fonction de génération d’image.
Dans une étape 25, le premier réseau de neurones convolutif est appris par minimisation d’une première erreur déterminée par comparaison des première et cinquième images et par comparaison des quatrième et deuxième images.
Dans une étape 31, des troisièmes données représentatives d’une troisième image acquise par la première caméra 11 à un deuxième instant temporel d’acquisition sont reçues.
Le deuxième instant temporel d’acquisition est différent du premier instant temporel d’acquisition de la première image.
Dans une étape 32, des données représentatives d’un mouvement de la première caméra 11 entre le premier instant temporel d’acquisition et le deuxième instant temporel d’acquisition sont déterminées en fonction des première et troisième images.
Dans une étape 33, des troisièmes profondeurs associées à un troisième ensemble de pixels de la première image et de quatrièmes profondeurs associées à un quatrième ensemble de pixels de la troisième image sont prédites en fonction de valeurs de flux optique et de deuxième disparité induite.
Les valeurs de flux optique et de deuxième disparité induite sont déterminées à partir des troisième et quatrième ensembles de pixels, la deuxième disparité étant induite par une position relative d’axes optiques de la première caméra 11 aux premier et deuxième instants temporels d’acquisition.
Les troisièmes et quatrièmes profondeurs sont prédites par un deuxième réseau de neurones convolutif associé à un système de vision monoscopique comprenant la première caméra 11.
Dans une étape 34, une sixième image est générée à partir de la première image et des troisièmes profondeurs par application de la fonction de génération d’image et une septième image est générée à partir de la troisième image et des quatrièmes profondeurs par application de la fonction de génération d’image.
Dans une étape 35, le deuxième réseau de neurones convolutif est appris par minimisation d’une deuxième erreur, la deuxième erreur étant déterminée par comparaison des sixième et troisième images et par comparaison des septième et première images.
Dans une étape 36, les paramètres du deuxième réseau de neurones convolutif sont ajustés en fonction des premières profondeurs, les premières profondeurs correspondant à des données d’apprentissage.
Selon une variante, les variantes et exemples des opérations décrits en relation avec laFIG. 1s’appliquent aux étapes du procédé 2 de laFIG. 2.
LaFIG. 3illustre schématiquement un dispositif 4 configuré pour la détermination d’une profondeur par un système de vision embarqué dans un véhicule 10, 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.
Le dispositif 4 est par exemple configuré pour la mise en œuvre des opérations décrites en regard de laFIG. 1et/ou étapes décrites en regard de laFIG. 2. 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 »).
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 (système de projection) 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 d’une profondeur et de mesurage d’une telle grandeur par système de vision embarqué dans un véhicule, qui inclurait des étapes secondaires sans pour cela 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. 3.

Claims (10)

  1. Procédé de détermination d’une profondeur par un système de vision embarqué dans un véhicule (10), le système de vision comprenant un ensemble de caméras d’au moins deux caméras (11, 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 caractérisé en ce qu’il comprend les étapes suivantes :
    - réception (21, 22) de premières et deuxièmes données respectivement représentatives d’une première et deuxième images acquises par respectivement une première et deuxième caméras (11, 12) dudit ensemble de caméras à un même premier instant temporel d’acquisition ;
    - prédiction (23) de premières profondeurs associées à un premier ensemble de pixels de la première image et de deuxièmes profondeurs associées à un deuxième ensemble de pixels de la deuxième image en fonction de valeurs de flux optique et de valeurs de première disparité induite par une position relative d’axes optiques des première (11) et deuxième (12) caméras, lesdites valeurs de flux optique et de première disparité induite étant déterminées à partir desdits premier et deuxième ensembles de pixels,
    lesdites premières et deuxièmes profondeurs étant prédites par un premier réseau de neurones convolutif associé à un système de vision stéréoscopique comprenant les première (11) et deuxième (12) caméras ;
    - génération (24) d’une quatrième image à partir de ladite première image et des premières profondeurs et d’une cinquième image à partir de ladite deuxième image et des deuxièmes profondeurs, la génération d’image étant obtenue par application d’une fonction de génération d’image ;
    - apprentissage (25) dudit premier réseau de neurones convolutif par minimisation d’une première erreur, la première erreur étant déterminée par comparaison des première et cinquième images et par comparaison des quatrième et deuxième images ;
    - réception (31) de troisièmes données représentatives d’une troisième image acquise par ladite première caméra (11) à un deuxième instant temporel d’acquisition différent dudit premier instant temporel d’acquisition ;
    - détermination (32) de données représentatives d’un mouvement de la première caméra (11) entre le premier instant temporel d’acquisition et le deuxième instant temporel d’acquisition en fonction desdites première et troisième images ;
    - prédiction (33) de troisièmes profondeurs associées à un troisième ensemble de pixels de la première image et de quatrièmes profondeurs associées à un quatrième ensemble de pixels de la troisième image en fonction de valeurs de flux optique et de valeurs de deuxième disparité induite par une position relative d’axes optiques de la première caméra (11) aux premier et deuxième instants temporels d’acquisition, lesdites valeurs de flux optique et de deuxième disparité induite étant déterminées à partir desdits troisième et quatrième ensembles de pixels,
    lesdites troisièmes et quatrièmes profondeurs étant prédites par un deuxième réseau de neurones convolutif associé à un système de vision monoscopique comprenant la première caméra (11) ;
    - génération (34) d’une sixième image à partir de ladite première image et des troisièmes profondeurs et d’une septième image à partir de ladite troisième image et des quatrièmes profondeurs par application de ladite fonction de génération d’image ;
    - apprentissage (35) dudit deuxième réseau de neurones convolutif par minimisation d’une deuxième erreur, la deuxième erreur étant déterminée par comparaison des sixième et troisième images et par comparaison des septième et première images ;
    - ajustement (36) de paramètres dudit deuxième réseau de neurones convolutif en fonction desdites premières profondeurs correspondant à des données d’apprentissage.
  2. Procédé selon la revendication 1, pour lequel lesdites valeurs de première et deuxième disparités induites sont déterminées par un troisième réseau de neurones convolutif.
  3. Procédé selon l’une des revendications 1 à 2, pour lequel ladite fonction de génération d’image est définie par la fonction suivante, respectivement pour le système de vision stéréoscopique et pour le système de vision monoscopique :

    Avec :
    un pixel d’une image générée,
    une fonction pour passer de coordonnées homogènes à des coordonnées pixels en supprimant une dimension d’un vecteur,
    une matrice intrinsèque de la deuxième caméra (12), respectivement de la première caméra (11),
    une matrice extrinsèque du système de vision stéréoscopique, respectivement une matrice représentant le mouvement de la première caméra (11) entre les premier et deuxième instants temporels,
    une fonction de projection dans la scène tridimensionnelle d’un pixel en fonction de sa profondeur,
    une matrice intrinsèque de la première caméra (11), et
    est une profondeur du pixel déterminée par le premier réseau de neurones convolutif, respectivement par le deuxième réseau de neurones convolutif.
  4. Procédé selon l’une des revendications 1 à 3, pour lequel la première erreur est déterminée par une première fonction de perte définie par :
    Avec :
    la première erreur,
    une moyenne d’arguments,
    une erreur pour un pixel de la première image comparée à la cinquième image,
    une erreur pour un pixel de la deuxième image comparée à la quatrième image.
  5. Procédé selon l’une des revendications 1 à 3, pour lequel la première erreur est déterminée par une première fonction de perte définie par :
    Avec :
    la première erreur,
    une valeur minimale d’un argument,
    une erreur pour un pixel de la première image comparée à la cinquième image,
    une erreur pour un pixel de la deuxième image comparée à la quatrième image.
  6. Procédé selon l’une des revendications 1 à 5, pour lequel la deuxième erreur est déterminée par une deuxième fonction de perte définie par :
    Avec :
    la deuxième erreur,
    une moyenne d’arguments,
    une erreur pour un pixel de la première image comparée à la septième image,
    une erreur pour un pixel de la troisième image comparée à la sixième image.
  7. Procédé selon l’une des revendications 1 à 5, pour lequel la deuxième erreur est déterminée par une deuxième fonction de perte définie par :
    Avec :
    la deuxième erreur,
    une valeur minimale d’un argument,
    une erreur pour un pixel de la première image comparée à la septième image,
    une erreur pour un pixel de la troisième image comparée à la sixième image.
  8. Procédé selon l’une des revendications 1 à 7, pour lequel ladite troisième image est remplacée par une image noire, une image noire étant une image dont un ensemble de valeurs colorimétriques associées aux pixels de l’image est nul.
  9. Dispositif (4) de détermination d’une 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 à 8.
  10. Véhicule (10) comprenant le dispositif (4) selon la revendication 9.
FR2310304A 2023-09-28 2023-09-28 Procédé et dispositif de détermination d’une profondeur par un système de vision auto-supervisé. Active FR3153676B1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR2310304A FR3153676B1 (fr) 2023-09-28 2023-09-28 Procédé et dispositif de détermination d’une profondeur par un système de vision auto-supervisé.

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2310304 2023-09-28
FR2310304A FR3153676B1 (fr) 2023-09-28 2023-09-28 Procédé et dispositif de détermination d’une profondeur par un système de vision auto-supervisé.

Publications (2)

Publication Number Publication Date
FR3153676A1 true FR3153676A1 (fr) 2025-04-04
FR3153676B1 FR3153676B1 (fr) 2025-08-29

Family

ID=88505337

Family Applications (1)

Application Number Title Priority Date Filing Date
FR2310304A Active FR3153676B1 (fr) 2023-09-28 2023-09-28 Procédé et dispositif de détermination d’une profondeur par un système de vision auto-supervisé.

Country Status (1)

Country Link
FR (1) FR3153676B1 (fr)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021096806A1 (fr) * 2019-11-14 2021-05-20 Zoox, Inc Apprentissage de modèle de données de profondeur avec suréchantillonnage, pertes et équilibrage de perte

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021096806A1 (fr) * 2019-11-14 2021-05-20 Zoox, Inc Apprentissage de modèle de données de profondeur avec suréchantillonnage, pertes et équilibrage de perte

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
DEQING SUNXIAODONG YANGMING-YU LIUJAN KAUTZ, PWC-NET: CNNS FOR OPTICAL FLOW USING PYRAMID, WARPING, AND COST VOLUME, 25 June 2018 (2018-06-25)
KAUSHIK VINAY ET AL: "UnDispNet: Unsupervised Learning for Multi-Stage Monocular Depth Prediction", 2019 INTERNATIONAL CONFERENCE ON 3D VISION (3DV), IEEE, 16 September 2019 (2019-09-16), pages 633 - 642, XP033653365, DOI: 10.1109/3DV.2019.00075 *
TINGHUI ZHOUMATTHEW BROWNNOAH SNAVELYDAVID G. LOWE, UNSUPERVISED LEAMING OF DEPTH AND EGO-MOTION FROM VIDEO, 1 August 2017 (2017-08-01)
WANG YANG ET AL: "UnOS: Unified Unsupervised Optical-Flow and Stereo-Depth Estimation by Watching Videos", 2019 IEEE/CVF CONFERENCE ON COMPUTER VISION AND PATTERN RECOGNITION (CVPR), IEEE, 15 June 2019 (2019-06-15), pages 8063 - 8073, XP033686469, DOI: 10.1109/CVPR.2019.00826 *
ZACHARY TEEDJIA DENG, RAFT: RÉCURRENT ALL-PAIRS FIELD TRANSFORMS FOR OPTICAL FLOW, 25 August 2020 (2020-08-25)

Also Published As

Publication number Publication date
FR3153676B1 (fr) 2025-08-29

Similar Documents

Publication Publication Date Title
FR3148485A1 (fr) Procédé et dispositif de détermination d’un masque de visibilité pour un système de vision embarqué dans un véhicule.
FR3153676A1 (fr) Procédé et dispositif de détermination d’une profondeur par un système de vision auto-supervisé.
FR3153675A1 (fr) Procédé et dispositif de détermination d’une profondeur par un système de vision monoscopique avec une précision métrique
FR3153677A1 (fr) Procédé et dispositif de détermination d’une profondeur par un système de vision stéréoscopique auto-supervisé.
FR3154837A1 (fr) Procédé et dispositif de détermination d’une profondeur par un système de vision stéréoscopique auto-supervisé.
FR3167468A1 (fr) Procédé et dispositif d’apprentissage d’un modèle de prédiction de profondeur assisté par un modèle de flux de scène.
FR3155341A1 (fr) Procédé et dispositif d’acquisition de données d’apprentissage d’un système de vision.
FR3155610A1 (fr) Procédé et dispositif de génération d’images pour véhicule comprenant un système de vision stéréoscopique.
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.
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.
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
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
FR3147649A1 (fr) Procédé et dispositif de détermination de données représentatives d’au moins un objet dynamique dans une scène par un système de vision monoscopique.
FR3158382A1 (fr) Procédé et dispositif de détermination d’une profondeur par un système de vision stéréoscopique embarqué dans un véhicule
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
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.
FR3153681A1 (fr) Procédé et dispositif de détermination d’un masque de visibilité par un système de vision embarqué dans un véhicule.
FR3147648A1 (fr) Procédé et dispositif de détermination de masques de visibilité pour un système de vision embarqué dans un véhicule.
FR3152906A1 (fr) Procédé et dispositif de détection d’un défaut d’étalonnage d’un système de vision stéréoscopique.
FR3147650A1 (fr) Procédé et dispositif de détermination d’une profondeur par un système de vision auto-supervisé.
FR3153678A1 (fr) Procédé et dispositif de génération de données représentatives d’images pour fiabiliser la détermination de profondeur par un système de vision embarqué dans un véhicule
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
FR3155343A1 (fr) Procédé et dispositif de génération d’images d’apprentissage d’un modèle de prédiction de profondeur pour un système de vision.
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.
FR3159032A1 (fr) Procédé et dispositif de détermination d’une profondeur par un réseau de neurones convolutif associé à 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: 20250404

PLFP Fee payment

Year of fee payment: 3