FR3091946A1 - Procédé de création de vues à partir d’une image capturée par une caméra grand angle - Google Patents

Procédé de création de vues à partir d’une image capturée par une caméra grand angle Download PDF

Info

Publication number
FR3091946A1
FR3091946A1 FR1900457A FR1900457A FR3091946A1 FR 3091946 A1 FR3091946 A1 FR 3091946A1 FR 1900457 A FR1900457 A FR 1900457A FR 1900457 A FR1900457 A FR 1900457A FR 3091946 A1 FR3091946 A1 FR 3091946A1
Authority
FR
France
Prior art keywords
pixel
view
equal
less
green
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
FR1900457A
Other languages
English (en)
Other versions
FR3091946B1 (fr
Inventor
Stéphanie Ambroise
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.)
Renault SAS
Original Assignee
Renault SAS
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 Renault SAS filed Critical Renault SAS
Priority to FR1900457A priority Critical patent/FR3091946B1/fr
Publication of FR3091946A1 publication Critical patent/FR3091946A1/fr
Application granted granted Critical
Publication of FR3091946B1 publication Critical patent/FR3091946B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • G06T3/047

Abstract

La présente invention se rapporte à un procédé de création de vues à partir d’une image d’une scène capturée par un capteur d’une caméra grand angle embarquée sur un véhicule automobile, ainsi qu’à un dispositif de création d’une vue pour l’aide à la manœuvre d’un véhicule automobile selon ce procédé et un véhicule automobile équipé d’un tel dispositif. En particulier, le procédé comprend :- une étape d’extraction des composantes rouge, verte et bleue (R ; G ; B) de chaque pixel de l’image de la scène capturée et- une étape de création de la vue à partir : des composantes rouge, verte et bleue (R ; G ; B) de chaque pixel (i ; j) et de deux fonctions de transfert comprenant les informations relatives respectivement à i et j en fonction du type de vue souhaité, réduisant les nombres et les temps des calculs processeur. Figure pour l’abrégé : Fig. 3

Description

Procédé de création de vues à partir d’une image capturée par une caméra grand angle
L’invention concerne, de manière générale, les aides à la conduite pour un conducteur d’un véhicule automobile via l’acquisition et la restitution d’images de l’environnement extérieur du véhicule automobile prises par une caméra embarquée sur le véhicule automobile.
Plus particulièrement, l’invention se rapporte à un procédé de création d’une vue à partir d’une scène capturée par une caméra grand angle embarquée sur le véhicule automobile.
L’invention concerne également un dispositif de création d’une telle vue pour l’aide à la manœuvre d’un véhicule automobile et un véhicule automobile équipée d’un tel dispositif.
Actuellement, certains véhicules automobiles sont équipés d’une ou plusieurs caméras telle qu’une caméra avant, c’est-à-dire située à l’avant du véhicule, et/ou une caméra de recul, c’est-à-dire située à l’arrière du véhicule.
Ces caméras sont généralement connectées à un écran situé sur le tableau de bord du véhicule de manière à afficher, lorsque le conducteur conduit ou effectue une manœuvre particulière comme celle de se garer, une image de l’environnement extérieur avant ou arrière du véhicule pour l’aider dans sa conduite ou sa manœuvre.
Le passage d’une caméra analogique à une caméra numérique offre la possibilité de fournir de nouvelles vues, du fait d’une résolution plus élevée, de l’image capturée. Trois types de vues sont actuellement proposées par les constructeurs automobiles :
● la vue panoramique, offrant un large champ de vision ;
● la vue rognée tournante, utile notamment lorsque le véhicule présente un angle de braquage non nul ; et
● la vue de dessus du véhicule utile pour replacer le véhicule dans son environnement d’ensemble.
Les caméras utilisées sont de type grand angle ou « fisheye » (œil de poisson) et leur angle de vue horizontal est proche de 180°. Celles-ci présentent généralement une forte distorsion en bord de champ. Ainsi, sur les images natives des caméras, il est commun d’observer en périphérie une forte déformation de l’image.
Pour remédier à cette déformation, les constructeurs ont développé différentes méthodes comme rogner les images sur les côtés, ou l’application de coefficient de correction de la distorsion donné par les fabricants de caméra.
Malheureusement, dans le cas où la caméra est inclinée par rapport à l’horizontale ou au plan d’appui du véhicule sur le sol, ces correctifs ne sont pas suffisants pour avoir une image de qualité et exploitable pour le confort et les besoins des dispositifs d’aide à la conduite proposés conducteur.
Pour assurer une bonne visibilité à l’écran, les calculs permettant de générer les vues doivent être menés sur 30 images par seconde ce qui demande des calculateurs puissants et consomme également beaucoup de ressources énergétiques.
Il existe donc un réel besoin d’un procédé de création des différentes vues actuellement proposées qui soient simplifié, rapide et moins gourmand en ressources ainsi qu’un dispositif associé et qui permette éventuellement de corriger des aberrations optiques additionnelles générées par l’inclinaison de la caméra capturant les images de la scène aux abords du véhicule automobile.
DESCRIPTION DE L’INVENTION
Pour résoudre un ou plusieurs inconvénients cités précédemment, l’invention propose un procédé de création de vues à partir d’une image d’une scène capturée par un capteur d’une caméra grand angle embarquée sur un véhicule automobile, le capteur étant de résolution Resh pixels en horizontal et Resv pixels en vertical, Resh et Resv étant des nombres entiers positifs, le procédé de création de vues comprenant :
- une étape d’extraction des composantes rouge, verte et bleue de chaque pixel de l’image de la scène capturée et de coordonnées (i ; j), i étant un entier compris entre 1 et Resh et j étant un entier compris entre 1 et Resv ;
- une étape de création de la vue à partir :
a) des composantes rouge, verte et bleue de chaque pixel (i ; j) ;
b) d’une première fonction de transfert codée sous forme d’une première matrice précalculée comprenant les informations relatives à la valeur de i en fonction de la position du pixel correspondant dans la vue créée et de coordonnées (xv; yv), xvétant un entier compris entre 1 et Resh et yvétant un entier compris entre 1 et Resv ;
c) d’une deuxième fonction de transfert codée sous forme d’une deuxième matrice précalculée comprenant les informations relatives à la valeur de j en fonction de la position du pixel correspondant dans la vue créée et de coordonnées (xv; yv) ; et
d) du type de vue souhaité parmi : une vue panoramique de la scène capturée, une vue zoomée tournante en fonction de l’angle du volant du véhicule automobile, une vue de dessus du véhicule automobile, chacune des vues pouvant comprendre ou non un gabarit d’aide à la conduite.
Des caractéristiques ou des modes de réalisation particuliers, utilisables seuls ou en combinaison pour ce système de vision panoramique, sont :
Les informations relatives aux valeurs i et j en fonction de la position du pixel correspondant dans la vue créée et de coordonnées (xv; yv) sont respectivement codées sur un quart de la première et de la deuxième matrice précalculée, la création de la vue se faisant à l’aide des quarts des matrices précalculées correspondantes puis grâce à une reconstruction du reste de l’image de la vue créée à l’aide d’une symétrie de position verticale et/ou d’une symétrie de position horizontale.
La première fonction de transfert est codée comme suit :
- pour i inférieur ou égal à 255, les composantes rouge ,verte et bleue du pixel correspondant au pixel (i ; j) dans la première matrice précalculée et de coordonnées (xv; yv) seront respectivement égales à 0, 0 et i ;
- pour i strictement supérieur 255 et inférieur ou égal à 2*255, les composantes rouge ,verte et bleue du pixel correspondant au pixel (i ; j) dans la vue créée et de coordonnées (xv; yv) seront respectivement égales à 0, i-255 et 0 ; et
- pour i strictement supérieur 2*255 et inférieur ou égal à 3*255, les composantes rouge ,verte et bleue du pixel correspondant au pixel (i ; j) dans la vue créée et de coordonnées (xv; yv) seront respectivement égales à i-510, 0 et 0.
Dans ce cas-là, lequel le décodage de la première fonction de transfert peut s’effectuer comme suit :
- la première matrice précalculée est ouverte est lue colonne par colonne puis ligne par ligne ;
- pour chaque pixel de coordonnées (xv; yv), les composantes rouge, verte et bleue sont extraites et :
* si la composante bleu est inférieure ou égale à 255, la composante verte strictement inférieure à 1 et la composante rouge strictement inférieure à 1 alors i est égal à la composante bleue ;
* si la composante bleu est strictement inférieure à 1, la composante verte inférieure ou égale à 255 et la composante rouge strictement inférieure à 1 alors i est égal à la composante verte + 255 ; et
* la composante bleu est strictement inférieure à 1, la composante verte strictement inférieure à 1 et la composante rouge inférieure ou égale à 255 alors i est égal à la composante rouge + 255.
La deuxième fonction de transfert est codée comme suit :
- pour j inférieur ou égal à 255, les composantes rouge, verte et bleue du pixel correspondant au pixel (i ; j) dans la deuxième matrice précalculée et de coordonnées (xv; yv) seront respectivement égales à j, 0 et 0 ;
- pour j strictement supérieur 255 et inférieur ou égal à 2*255, les composantes rouge ,verte et bleue du pixel correspondant au pixel (i ; j) dans la vue créée et de coordonnées (xv; yv) seront respectivement égales à 0, 0 et j-255 ; et
- pour j strictement supérieur 2*255 et inférieur ou égal à 3*255, les composantes rouge ,verte et bleue du pixel correspondant au pixel (i ; j) dans la vue créée et de coordonnées (xv; yv) seront respectivement égales à 0, j-510 et 0 ;
Dans ce cas-là, le décodage de la deuxième fonction de transfert peut s’effectuer comme suit :
- la deuxième matrice précalculée est ouverte est lue ligne par ligne puis colonne par colonne ;
- pour chaque pixel de coordonnées (xv; yv), les composantes rouge, verte et bleue sont extraites et :
* - si la composante rouge est inférieure ou égale à 255, la composante bleue strictement inférieure à 1 et la composante verte strictement inférieure à 1 alors j est égal à la composante rouge ;
* si la composante rouge est strictement inférieure à 1, la composante bleue inférieure ou égale à 255 et la composante verte strictement inférieure à 1 alors j est égal à la composante bleue + 255 ; et
* la composante rouge est strictement inférieure à 1, la composante bleue strictement inférieure à 1 et la composante verte inférieure ou égale à 255 alors i est égal à la composante verte + 255 .
Ou encore, les aberrations optiques générées par la caméra grand champ sont préalablement corrigées, le procédé de création de vue comprenant, avant le codage de la première et de la deuxième fonction de transfert, le procédé de création comprend les étapes suivantes :
- une étape de génération d’une première vue de synthèse correspondant à l’image de la scène capturée par la caméra grand angle et corrigée des aberrations optiques ; et
- une étape de détermination des coordonnées du pixel corrigé de coordonnées (x’v; y’v) correspondant au pixel (i ; j) dans la vue créée et corrigée des aberrations optiques de la caméra grand champ ;
la première fonction de transfert étant codée de sorte à comprendre les informations relatives à la valeur de i en fonction de la position du pixel corrigé de coordonnées (x’v; y’v) et la deuxième fonction de transfert étant codée de sorte à comprendre les informations relatives à la valeur de j en fonction de la position du pixel corrigé de coordonnées (x’v; y’v).
L’invention propose également un dispositif de création d’une vue pour l’aide à la manœuvre d’un véhicule automobile, comprenant :
- une caméra grand angle embarquée sur le véhicule automobile et adapter pour capturer une image d’une scène ;
- un processeur adapté pour créer une vue à partir de l’image de la scène capturée selon un procédé de création de vues tel que décrit précédemment
- un écran d’affichage adapté pour afficher la vue créée par le processeur.
L’invention concerne aussi un véhicule automobile comprenant un dispositif de création d’une vue tel que décrit précédemment.
L’invention sera mieux comprise à la lecture de la description qui suit, faite uniquement à titre d’exemple, et en référence aux figures en annexe dans lesquelles :
représente un schéma optique d’une caméra classique telle qu’on peut la modéliser ;
représente un schéma optique d’une caméra classique telle qu’on peut la modéliser ;
représente les plans unitaires d’un plan capteur utiles pour faciliter les calculs des traitements d’image appliqués à l’image capturée par le capteur ;
représente le schéma de principe d’un mode de réalisation général d’un procédé de création de vues à partir d’une image d’une scène Iinit capturée par une caméra grand angle embarquée sur un véhicule automobile
représente un premier exemple de matrice précalculée d’une première fonction de transfert et un exemple de codage utilisé pour coder celle-ci ;
représente un second exemple de matrice précalculée d’une première fonction de transfert et un exemple de codage utilisé pour coder celle-ci ;
représente un exemple de matrice précalculée d’une deuxième fonction de transfert et un exemple de codage utilisé pour coder celle-ci ;
représente le schéma de principe d’un mode de réalisation général d’une méthode de calcul d’une vue à partir d’une image d’une scène Iinit capturée par une caméra de recul grand angle embarquée sur un véhicule automobile
représente une première étape de création d’une vue cylindrique de l’image de la scène capturée Iinit ;
représente une deuxième étape de création d’une vue cylindrique de l’image de la scène capturée Iinit suivant la première étape de la Fig. 8;
représente une troisième de création d’une vue cylindrique de l’image de la scène capturée Iinit suivant la deuxième étape de la Fig. 9;
représente un exemple d’image de la scène capturée Iinit ;
représente un exemple de vue cylindrique calculée à partir d’une image de la scène capturée Iinit ;
représente l’image native corrigée de la distorsion « usine » ;
représente le plan du capteur de la caméra de recul ;
représente le tracé d’un faisceau lumineux traversant l’objectif de la caméra de recul lorsque celle-ci présente ou non de la distorsion ;
représente une première étape d’une première amélioration de la création d’une vue cylindrique de l’image de la scène capturée ;
représente une seconde étape suivant l’étape de la Fig. 16 d’une première amélioration de la création d’une vue cylindrique de l’image de la scène capturée ;
représente la vue cylindrique de l’image de la scène capturée améliorée après les étapes de la première amélioration ;
représente une image native capturée par une caméra embarquée sur un véhicule automobile ;
représente une vue cylindrique réalisée à partir de l’image native de la Fig. 19a lorsque la caméra n’est pas inclinée par rapport au plan d’appui du véhicule automobile sur le sol ;
représente un véhicule automobile équipée d’une caméra de recul inclinée d’un angle Angle Cam non nul par rapport au plan d’appui du véhicule automobile ;
représente une première étape d’un ensemble d’étapes permettant la génération, selon un mode de réalisation particulier, d’une première vue de synthèse corrigée des aberrations optiques de distorsion d’une caméra grand champ embarquée sur un véhicule automobile et inclinée d’un angle Angle Cam non nul par rapport au plan d’appui du véhicule automobile
représente une deuxième étape d’un ensemble d’étapes permettant la génération, selon un mode de réalisation particulier, d’une première vue de synthèse corrigée des aberrations optiques de distorsion d’une caméra grand champ embarquée sur un véhicule automobile et inclinée d’un angle Angle Cam non nul par rapport au plan d’appui du véhicule automobile
représente une troisième étape d’un ensemble d’étapes permettant la génération, selon un mode de réalisation particulier, d’une première vue de synthèse corrigée des aberrations optiques de distorsion d’une caméra grand champ embarquée sur un véhicule automobile et inclinée d’un angle Angle Cam non nul par rapport au plan d’appui du véhicule automobile
représente une quatrième étape d’un ensemble d’étapes permettant la génération, selon un mode de réalisation particulier, d’une première vue de synthèse corrigée des aberrations optiques de distorsion d’une caméra grand champ embarquée sur un véhicule automobile et inclinée d’un angle Angle Cam non nul par rapport au plan d’appui du véhicule automobile
représente une vue panoramique générée à partir de la première vue de synthèse corrigée de la figure 24 ;
représente un exemple de gabarit à insérer sur une première vue de synthèse corrigée de la distorsion ;
représente un exemple de vue tournante que laquelle a été superposé un exemple de gabarit d’aide à la conduite, la vue tournante ayant été créée à partir de l’image native de la figure 11 ;
représente les différentes étapes géométriques permettant la création d’une vue de dessus ; et
représente un exemple de vue de dessus comprenant un gabarit d’aide à la conduite, la vue de dessus ayant été créée à partir de l’image native de la figure 11.
DEFINITION
LaFigure 1areprésente le schéma optique d’une caméra 20 classique telle qu’on peut en trouver dans le commerce. Ce genre de caméra 20 comprend généralement un capteur 30 et un objectif 40 composé de plusieurs lentilles L.
Pour simplifier les calculs et la représentation géométrique de la caméra 20, il est possible de remplacer l’ensemble des lentilles L comprises dans l’objectif par une seule lentille équivalente Leqde focale f et de centre A comme illustréFigure 1b, le capteur étant positionné dans le plan focal de cette lentille équivalente.
L’axe optique 50, également appelé axe principal, de l’objectif 40 correspond à l’axe de symétrie de rotation des lentilles L composant l’objectif. Dans le cas de la représentation géométrique simplifiée, cet axe optique 50 peut être redéfini comme étant l’axe passant par le centre de la lentille équivalente Leqet le centre du capteur 30.
Pour la suite de cette description, le modèle de représentation optique d’une caméra sera le modèle simplifié de laFigure 1b.
Pour faciliter les calculs des traitements d’image effectués à partir de l’image Iinitcapturée par la caméra 20, on définit un premier plan unitaire PU1 et un second plan unitaire PU2. Comme illustré sur laFigure 2, ces plans sont formés par projection des pixels capteur par la homothétie de centre A, et distants de 1 mm par rapport au centre A. Le premier plan unitaire PU1 correspond au plan situé entre le capteur et le centre A de la lentille équivalente Léqet le second plan unitaire PU2 correspond au plan situé entre le centre A et la scène capturée par la caméra 20. Les deux plans unitaires ont donc les mêmes dimensions : cxmm x cYmm et sont symétriques par rapport au centre A. Ainsi, dans le repère (XPU1; YPU1) centré sur RPU1le centre image du premier plan unitaire PU1, un point image de coordonnées (xpu1; ypu1) correspondra au point image de coordonnées (xpu 2= - xpu1; ypu2= - ypu 1) dans le repère (XPU2; YPU2) centré RPU2 sur le centre image du second plan unitaire PU2.
DESCRIPTION DETAILLEE DE MODES DE REALISATION
LaFigure 3représente le schéma de principe d’un mode de réalisation général d’un procédé de création de vues à partir d’une image d’une scène Iinitcapturée par un capteur d’une caméra grand angle embarquée sur un véhicule automobile, le capteur étant de résolution Resh pixels en horizontal et Resv pixels en vertical, Resh et Resv étant des nombres entiers positifs.
Le procédé de création de vues comprenant :
● une étape EXTR d’extraction des composantes rouge, verte et bleue de chaque pixel de l’image de la scène capturée Iinitet de coordonnées (i ; j), i étant un entier compris entre 1 et Resh et j étant un entier compris entre 1 et Resv; et
● une étape CREA de création de la vue V à partir :
- des composantes rouge, verte et bleue de chaque pixel (i ; j) ;
- d’une première fonction de transfert codée sous forme d’une première matrice précalculée comprenant les informations relatives à la valeur de i en fonction de la position du pixel correspondant dans la vue créée et de coordonnées (xv; yv), xvétant un entier compris entre 1 et Resh et yvétant un entier compris entre 1 et Resv ;
- d’une deuxième fonction de transfert codée sous forme d’une deuxième matrice précalculée comprenant les informations relatives à la valeur de j en fonction de la position du pixel correspondant dans la vue créée et de coordonnées (xv; yv) ; et
- du type de vue souhaité parmi : une vue panoramique Vpanoramicde la scène capturée, une vue zoomée tournante Vroten fonction de l’angle du volant du véhicule automobile, une vue de dessus Vbirdviewdu véhicule automobile, chacune des vues pouvant comprendre ou non un gabarit d’aide à la conduite.
La répartition des pixels dans l’image native (ainsi que dans la vue créée) étant symétrique par rapport aux axes médians horizontal et vertical de l’image, il n’est pas nécessaire de réaliser les calculs sur l’ensemble de l’image mais de se limiter au traitement d’un quart de l’image.
Ainsi, les informations relatives aux valeurs i et j en fonction de la position du pixel correspondant dans la vue créée et de coordonnées (xv; yv) peuvent respectivement être codées sur un quart de la première et de la deuxième matrice précalculée, la création de la vue se faisant à l’aide des quarts des matrices précalculées correspondantes puis grâce à une reconstruction du reste de l’image de la vue créée à l’aide d’une symétrie de position verticale et/ou d’une symétrie de position horizontale.
Une seule matrice précalculée par indice (une pour i et une pour j) peut donc contenir toutes les informations permettant de reconstruire l’ensemble des vues. Par exemple, le premier quart de la matrice peut contenir les informations relatives à la création de la vue panoramique, le deuxième quart les informations relatives à la création de la vue zoomée tournante, le troisième quart les informations relatives à la création de la vue du dessus et le quatrième quart les informations relatives au gabarit d’aide à la conduite qui pourra être inséré ou non dans les vues précédemment citées.
LesFigures 4 et 5représentent un exemple de matrice précalculée pour l’indice i et un exemple de codage utilisé. Dans la matrice de laFigure 4, le quart haut gauche permet de coder la vue panoramique, le quart haut droit permet de coder le gabarit d’aide à la conduite, le quart bas gauche permet de coder la vue zoomée tournante et le quart bas droit est utilisé pour construire la vue de dessus.
Dans l’exemple de laFigure 5, le codage pour créer l’image du quart gauche supérieur, et donc le codage de la première fonction de transfert associée, est réalisé comme suit :
- pour i inférieur ou égal à 255, les composantes rouge ,verte et bleue (Rv; Gv; Bv) du pixel correspondant au pixel (i ; j) dans la première matrice précalculée et de coordonnées (xv; yv) seront respectivement égales à 0, 0 et i ;
- pour i strictement supérieur 255 et inférieur ou égal à 2*255, les composantes rouge ,verte et bleue (Rv; Gv; Bv) du pixel correspondant au pixel (i ; j) dans la vue créée et de coordonnées (xv; yv) seront respectivement égales à 0, i-255 et 0 ; et
- pour i strictement supérieur 2*255 et inférieur ou égal à 3*255, les composantes rouge ,verte et bleue (Rv; Gv; Bv) du pixel correspondant au pixel (i ; j) dans la vue créée et de coordonnées (xv; yv) seront respectivement égales à i-510, 0 et 0
Par exemple, pour i = 196 et j = 1, si les coordonnées du pixel correspondant dans la vue panoramique sont xv= 44 et yv= 2, 196 < 255 donc le pixel (xv; yv) correspondant a les caractéristiques suivantes : Bv= 196, Gv= 0, Rv= 0, et il est situé en (44 ; 2) sur la vue panoramique.
Pour i = 483 et j = 147, si les coordonnées du pixel correspondant dans la vue panoramique sont xv= 456 et yv= 162, 255 < 483 < 510 donc le pixel (xv; yv) correspondant a les caractéristiques suivantes : Bv= 0, Gv= 483 - 255 = 228,
Rv= 0, et il est situé en (456 ; 162) sur la vue panoramique.
Un exemple de décodage associé, pour cette première fonction de transfert, peut s’effectuer comme suit :
● la première matrice précalculée est ouverte est lue colonne par colonne puis ligne par ligne ;
● pour chaque pixel de coordonnées (xv; yv), les composantes rouge, verte et bleue (Rv;Gv;Bv) sont extraites et :
- si la composante bleu Bvdu pixel (xv; yv) est inférieure ou égale à 255, la composante verte Gvdu pixel (xv; yv) strictement inférieure à 1 et la composante rouge Rvdu pixel (xv; yv) strictement inférieure à 1, i.e. (Rv< 1 ; Gv< 1 ; Bv<= 255), alors i est égal à la composante bleue Bvdu pixel (xv; yv) ;
- si la composante bleu Bvest strictement inférieure à 1, la composante verte Gvinférieure ou égale à 255 et la composante rouge Rvstrictement inférieure à 1, i.e. (Rv< 1 ; Gv<= 255 ; Bv< 1) alors i est égal à la composante verte Gv+ 255 ; et
- la composante bleu Bvest strictement inférieure à 1, la composante verte Gvstrictement inférieure à 1 et la composante rouge Rvinférieure ou égale à 255, i.e. (Rv<= 255 ; Gv< 1 ; Bv< 1) alors i est égal à la composante rouge Rv+ 255*2.
LaFigure 6représente un exemple de matrice précalculée pour l’indice j et un exemple de codage utilisé. De la même manière que précédemment, dans la matrice de laFigure 6, le quart haut gauche permet de coder la vue panoramique, le quart haut droit permet de coder le gabarit d’aide à la conduite, le quart bas gauche permet de coder la vue zoomée tournante et le quart bas droit est utilisé pour construire la vue de dessus.
Dans l’exemple de laFigure 6, le codage pour créer l’image du quart gauche supérieur, et donc le codage de la deuxième fonction de transfert associée, est réalisé comme suit :
- pour j inférieur ou égal à 255, les composantes rouge, verte et bleue (Rv; Gv; Bv) du pixel correspondant au pixel (i ; j) dans la deuxième matrice précalculée et de coordonnées (xv; yv) seront respectivement égales à 0,0,j
- pour j strictement supérieur 255 et inférieur ou égal à 2*255, les composantes rouge ,verte et bleue (Rv; Gv; Bv) du pixel correspondant au pixel (i ; j) dans la vue créée et de coordonnées (xv; yv) seront respectivement égales à 0,j-255,0; et
- pour j strictement supérieur 2*255 et inférieur ou égal à 3*255, les composantes rouge ,verte et bleue (Rv; Gv; Bv) du pixel correspondant au pixel (i ; j) dans la vue créée et de coordonnées (xv; yv) seront respectivement égales à 0,0,j-510
Un exemple de décodage associé, pour cette deuxième fonction de transfert, peut s’effectuer comme suit :
● la deuxième matrice précalculée est ouverte est lue ligne par ligne puis colonne par colonne ;
● pour chaque pixel de coordonnées (xv; yv), les composantes rouge, verte et bleue (Rv;Gv;Bv) sont extraites et :
- si la composante bleue Bvdu pixel (xv; yv) est inférieure ou égale à 255, la composante verte Gvdu pixel (xv; yv) strictement inférieure à 1 et la composante rouge Rvdu pixel (xv; yv) strictement inférieure à 1, i.e. (Rv< 1 ; Gv< 1 ; Bv<= 255), alors j est égal à la composante bleue Bvdu pixel (xv; yv) ;
- si la composante bleue Bvest strictement inférieure à 1, la composante verte Gvinférieure ou égale à 255 et la composante rouge Rvstrictement inférieure à 1, i.e. (Rv< 1 ; Gv<= 255 ; Bv< 1) alors j est égal à la composante verte Gv+ 255 ; et
- si la composante bleue Bvest strictement inférieure à 1, la composante verte Gvstrictement inférieure à 1 et la composante rouge Rvinférieure ou égale à 255, i.e. (Rv<= 255 ; Gv< 1 ; Bv< 1) alors j est égal à la composante rouge Rv+ 255*2.
Les caméras utilisées étant des caméras « grand angle », celles-ci présentent généralement une forte distorsion en bord de champ. Ainsi, il est avantageux de prendre en compte cette distorsion en amont du codage de la première et de la deuxième fonction de transfert pour que les vues créées soient corrigées de celle-ci.
Pour cela, le procédé de création de vue comprend, avant le codage de la première et de la deuxième fonction de transfert, les étapes suivantes :
- une étape E100 de génération d’une première vue de synthèse Isynthcorrespondant à l’image de la scène Iinitcapturée par la caméra grand angle et corrigée des aberrations optiques ; et
- une étape E200 de détermination des coordonnées du pixel corrigé de coordonnées (x’v; y’v) correspondant au pixel (i ; j) dans la vue créée et corrigée des aberrations optiques de la caméra grand champ ;
la première fonction de transfert étant codée de sorte à comprendre les informations relatives à la valeur de i en fonction de la position du pixel corrigé de coordonnées (x’v; y’v) et la deuxième fonction de transfert étant codée de sorte à comprendre les informations relatives à la valeur de j en fonction de la position du pixel corrigé de coordonnées (x’v; y’v).
Un exemple d’application du procédé au cas particulier d’une caméra de recul embarquée et inclinée par rapport au plan d’appui du véhicule automobile sera décrit un peu plus loin.
Les deux matrices précalculées peuvent donc être mises au point lors de la phase de développement d’un véhicule automobile puis stockées dans un calculateur MultiMedia ou un processeur embarqué sur le véhicule.
Le calculateur Multimedia (ou processeur), suivant la vue à afficher (i.e. panoramique, zoomée tournante ou de dessus, avec ou sans gabarit d’aide à la conduite), identifie le quart d’image (de la matrice) dans lequel sélectionner les pixels décrivant l’image (i.e. la vue) à calculer. Pour calculer une vue, la première et la deuxième matrices précalculées sont ouvertes et lues puis décodées.
Ainsi, la gestion de données sous forme d’image est appropriée dans le cas d’utilisation de fonctionnalités de traitement d’image et peu de ressources sont nécessaires.
APPLICATION DU PROCEDE AU CAS PARTICULIER D’UNE CAMERA DE RECUL EMBARQUEE SUR UN VEHICULE AUTOMOBILE
LaF igure 7représente le schéma de principe d’un mode de réalisation général d’une méthode de calcul d’une vue à partir d’une image d’une scène Iinitcapturée par une caméra de recul grand angle embarquée sur un véhicule automobile, la caméra étant inclinée d’un angle Angle_cam non nul par rapport à un plan d’appui du véhicule automobile sur le sol.
Cette méthode de calcul comprend :
● une étape E100 de génération d’une première vue de synthèse Isynthcorrespondant à l’image de la scène Iinitcapturée par la caméra de recul corrigée des aberrations optiques hors champ générées par l’inclinaison de la caméra de recul ; et
● une étape E200 de création de la vue à partir de la première vue de synthèse et en fonction du type de vue souhaité parmi : une vue panoramique Vpanoramicde la scène capturée, une vue zoomée tournante Vroten fonction de l’angle du volant du véhicule automobile, une vue de dessus Vbirdviewdu véhicule automobile.
Dans un premier temps, l’étape E100 de génération de la première vue de synthèse consiste à calculer une vue cylindrique de l’image de la scène capturée Iinit.
CALCUL D’UNE VUE CYLINDRIQUE
Pour cela et comme illustré sur laFigure 8, les pixels de l’image de la scène Iinitcapturée par la caméra sont projetés sur la surface interne d’une demi-sphère 70 de rayon R1 et dont le centre C et le sommet S sont situés sur l’axe optique principal 50 de la caméra.
Les images natives Iinitissues de la caméra sont constituées de Res_h pixels suivant la direction horizontale et Res_v pixels suivant la direction verticale. Pour effectuer la simulation numérique, le plan du capteur 30 de la caméra considérée est virtuellement rapproché de la lentille équivalente à l’objectif de la caméra par homothétie centrée sur le centre A de la lentille équivalente. On se place ici dans le premier plan unitaire PU1 de largeur cXet de hauteur cYdistant de d=1mm par rapport à la lentille équivalente représente ce nouveau plan capteur.
Ce plan a pour repère orthonormé (Xpu 1; Ypu 1) centré sur Rpu 1qui correspond au centre de l’image capteur Iinitainsi projetée.
Dans ce repère (Xpu 1; Ypu 1), un pixel image P a pour coordonnées (xpu 1; ypu 1) tel que :
Où :
● i est un entier compris dans l’intervalle [1; (Res_h)/2] ;
● j est un entier compris dans l’intervalle [1:(Res_v)/2] ; et
● f est la focale de la caméra.
Il est à noter que pour cette première équation et pour toutes les suivantes, les calculs sont uniquement effectués sur un quart de l’image native. Cela permet notamment de réduire le nombre de calcul étant donné que les autres quarts de l’image peuvent respectivement être déduits de ce premier quart image par symétrie selon l’axe Xcapteur, symétrie selon l’axe Ycapteur(ou Ypu 1) et symétrie centrale centrée sur le centre de l’image (i.e. sur le centre du capteur), la répartition des pixels étant symétrique par rapport à ces axes et ce point central.
La demi-sphère 70 a pour repère orthonormé (Xsph; Ysph; Zsph) centré sur C le centre de la demi-sphère 70. Dans ce repère (Xsph; Ysph; Zsph), la projection du pixel P (xpu; ypu) a pour coordonnées P1 (x1; y1; z1).
Les coordonnées du point P1 (x1; y1; z1) peuvent être calculées grâce au théorème de Thalès et à l’équation de la sphère.
Ainsi, l’application du théorème de Thalès donne entre ces deux pixels P et P1donne l’équation suivante :
Où :
cam_sph représente la distance entre le centre A de la lentille équivalente et le centre C de la demi-sphère 70 ; et est une constante (i.e. un nombre réel).
Les coordonnées de P1 peuvent donc s’écrire :
Le point P1 appartenant la demi-sphère 70, ces coordonnées vérifient l’équation de celle-ci à savoir :
La résolution de cette équation du second degré nous permet de déduire la constante positive :
Et donc d’en déduire les valeurs de xsph, ysphet zsph.
Si on transpose en coordonnées sphériques, nous obtenons alors les angles de latitude et longitude suivants :
Le point P1 est ensuite projeté sur la surface interne d’un demi-cylindre 80 vertical de rayon R2 englobant la demi-sphère 70 et dont l’axe de symétrie passe par le centre C de la demi-sphère 70, comme cela est illustré sur laFigure 9.
Le demi-cylindre 80 a pour repère orthonormé (Xcyl; Ycyl; Zcyl) centré sur C le centre de la demi-sphère 70. Dans ce repère (Xcyl; Ycyl; Zcyl), la projection du point P1 est un point P2 de coordonnées (x2; y2; z2), tel que :
Enfin, et comme illustré sur laFigure 10, le point P2 est projeté de nouveau sur le premier plan unitaire PU1 en passant par le centre A de la lentille équivalente.
Dans le repère (Xpu 1; Yp u 1), la projection du point P2 est un point P3 de coordonnées (x3; y3), tel que :
L’image ainsi obtenue par les projections successives de l’ensemble des pixels image P est ensuite redimensionnée à la taille de l’image capteur initiale par homothétie. Ainsi, un pixel P4 de cette image corrigée et redimensionnée a donc les coordonnées suivantes :
Ces coordonnées correspondent aux coordonnées (xv; yv) dans l’application du processus de création de vues.
LaFigure 11représente l’image native Iinitprise par la caméra de recul et laFigure 12représente l’image de la vue cylindrique obtenue après les premiers calculs de cette étape E100.
L’étape de création E200 des vues panoramique, zoomée tournante et de dessus consistent ensuite en un recadrage de l’image de la vue cylindrique accompagné ou non d’un ajustement de celle-ci en fonction de l’écran sur lequel est effectué l’affichage (ex. : inversion haut/bas et/ ou gauche/droite, agrandissement ou réduction de l’image, etc.).
AMELIORATION 1
Selon un premier mode de réalisation particulier de l’invention compatible avec le mode général, la génération de la première vue de synthèse à l’étape E100 peut être réalisée à partir d’une cartographie de correction fournie par le fabricant de la caméra de recul et, pour chaque pixel de l’image de la scène capturée, du calcul d’une valeur de correction spécifique à la position du pixel de l’image de la scène capturée.
En effet, il est courant que le fabricant de caméra fournisse une cartographie permettant une correction de distorsion classique ou distorsion « usine ». Comme illustré sur lesF igures 11 et 13, qui correspondent respectivement à l’image native de la caméra Iinit, et à l’image corrigée de la distorsion « usine », cette méthode spécifique a pour effet de restreindre le champ de vision offert au conducteur et d’étirer les pixels situés en zone périphérique de l’image.
L’objectif de cette amélioration 1 est donc de calculer, en utilisant la cartographie, une valeur de cam_sph pour chaque pixel de l’image. Ainsi, à chaque pixel de l’image avec distorsion correspond un pixel dans l’image non distordue.
LaFigure 14représente le plan du capteur 30 de la caméra de recul de dimension CXmm x CYmm et de résolution Res_h pixels en hauteur et Res_v pixels en largeur. Dans ce plan, on définit le repère (I ; J) dont l’origine O est située en haut à gauche du capteur 30, ainsi que le repère (H ; V) centré sur le centre du capteur 30.
Si (ii ; jj) sont les coordonnées d’un pixel de l’image de la scène capturée par la caméra de recul avec distorsion, où ii est un entier compris dans l’intervalle [1; Res_h/2] et jj est un entier compris dans l’intervalle [1:Res_v/2] (NB : pour rappel, les calculs se font sur un quart de l’image), les coordonnées de ce pixel dans le repère (H ; V) centré sur le centre de l’image sont :
Autrement écrit en coordonnées cylindriques, nous obtenons :
LaFigure 15illustre le principe de la distorsion. Dans le cas d’une lentille parfaite ou mince, un faisceau incident 100 sur l’objectif 40 de la caméra et passant par le centre A de celle-ci ne devrait pas être dévié. En présence de distorsion comme ici où l’objectif n’est pas une lentille mince mais un objectif grand angle (« fish eye »), le faisceau 100 est dévié faisant varier la taille de l’objet imagé sur le capteur 30 de Y0, rayon sans distorsion (undistRadius), à Y, rayon avec distorsion (distRadius).
Le tableau ci-dessous illustre un exemple de table de correction fournie par fabricant de caméra. Ces corrections sont données dans le plan focal de la caméra (i.e. dans le plan capteur 60) dans un rectangle de largeur cXet de hauteur cY.
Grâce à cette table, la plus proche valeur de distRadius (i.e. Y) est identifiée puis, par interpolation linéaire, on en déduit la valeur de correspondante.
On peut alors en déduire la valeur du rayon correspondant au pixel sans distorsion.
Sur lesFigure s 16 et 17, le point A est le centre de la caméra, le point C est le centre de la demi-sphère 70 et on définit un nouveau repère associé à la demi-sphère 70 (Xsph2= - Xsph; Ysph2= - Ysph; Zsph2= Zsph) centré sur C. Le second plan unitaire PU2 de l’image caméra avec distorsion est situé à 1mm du centre A.
Un plan unitaire sans distorsion PUSDest artificiellement créé du côté du premier plan unitaire PU1 et à 1mm du centre C de la demi-sphère 70. Dans ce plan unitaire sans distorsion PUSD, on définit le repère (XSD; YSD; ZSD) centré sur le centre image et où l’axe XSD est parallèle à l’axe Ysph2 et de même sens, et l’axe YSD est parallèle à l’axe Zsph2 mais de sens opposé. Dans ce repère (XSD; YSD; ZSD), un point M, appartenant au plan unitaire sans distorsion PUSD, a pour coordonnées (Xu;Yu).
Pour rappel, on cherche ici à calculer la distance Cam_sph entre le centre A de la caméra et le centre C de la demi-sphère 70 pour un point de l’image capteur.
La droite passant par le point M et le centre C intersecte la demi-sphère 70 de rayon R1 en un point N. Le théorème de Thalès et l’appartenance du point N à la demi-sphère permettent de calculer les coordonnées du point N dans le repère (Xsph 2;Ysph 2;Zsph 2) centré C :
La droite passant par le point N et le centre A de la caméra intersecte quant à elle le second plan unitaire PU2 (donc avec distorsion), en P’.
Dans le second plan unitaire PU2, les coordonnées de P’ sont (xpd1; ypd1) :
Comme illustré sur laFigure 16, on définit le repère caméra (Xcam:Ycam; Zcam) centré sur le centre A de la lentille équivalent à l’objectif 40 de la caméra 20.
Dans ce repère caméra (Xcam:Ycam; Zcam), parallèle au repère (Xsph 2;Ysph 2;Zsph 2), les coordonnées du point P’ sont : (-1mm, xpd1, ypd1).
Dans ce repère caméra (Xcam:Ycam; Zcam), les coordonnées du point M sont : (Cam_sph+x1u, y1u, z1u).
Toujours dans ce repère caméra (Xcam:Ycam; Zcam), le théorème de Thalès donne : (Cam_sph+x1u)/1mm = y1u/xpd1
Soit :
Ainsi, pour chaque pixel de l’image d’origine, une valeur de cam_sph, distance entre le centre C de la demi-sphère 70 et le centre A de la lentille équivalente à l’objectif 40 de la caméra 20 de recul, est calculée.
On injecte ensuite cette valeur de cam_sph dans les équations Math. 7, Math. 8, Math. 9 et Math. 11 du calcul de la vue cylindrique initial. Soit :
Le point M est projeté sur le demi-cylindre 80, de rayon R2et de centre C en un point P’2de coordonnées (x’2, y’2, z’2) dans le repère (Xcyl; Ycyl; Zcyl) :
La droite passant par P’2et le centre A de la caméra intersecte le plan premier focal unitaire PU1 en un point P’3de coordonnées :
Les coordonnées en pixel du point P’4dans le plan focal / plan capteur corrigé de la distorsion sont alors :
Comme énoncé précédemment, les coordonnées (x’4; y’4) (i.e. (x’v; y’v) dans l’application du processus de création de vues) permettent de calculer un quart de l’image. Pour obtenir l’image entière, on effectue une symétrie par rapport à l’axe Xcapteur, une symétrie par rapport à l’axe Ycapteuret une symétrie centrale par rapport au centre de l’image.
Enfin, pour que la vue affichée au conducteur soit orientée à l’endroit, des étapes supplémentaires d’inversion gauche/droite et/ou haut/bas peuvent être effectuées.
LaFigure 18illustre l’image obtenue après ces opérations d’amélioration à partir des tables de correction donnée par le fabricant de caméra. On note que les courbures ne présentent plus les formes vagues constatées sur laFigure 12.
AMELIORATION 2
Selon un deuxième mode de réalisation particulier de l’invention compatible avec le mode général, la génération de la première vue de synthèse à l’étape E100 peut être réalisée à partir d’une cartographie de correction fournie par le fabricant de la caméra de recul et en redressant par traitement numérique l’image de la scène capturée par la caméra de recul inclinée.
LesFigures 19a et 19bmontrent qu’une vue cylindrique réalisée à partir d’une image native lorsque la caméra n’est pas inclinée par rapport au plan d’appui du véhicule automobile sur le sol (Figure 19a) donne après traitement (Figure 19b) un meilleur rendu.
Puisqu’une orientation inclinée est imposée par le besoin de voir une partie de la face arrière du véhicule automobile dans l’image native, ce deuxième mode de réalisation permet de changer l’axe optique de la vue.
Pour cela, pour chaque pixel (ii ; jj), on calcule le point M (Xu;Yu) dans le plan unitaire sans distorsion PUSD.
LaFigure 20représente un véhicule automobile 1 équipée d’une caméra de recul 20 inclinée d’un angle Angle_cam non nul par rapport au plan d’appui du véhicule automobile 1 sur le sol.
Le repère véhicule (Xv ;Yv ; Zv) est défini comme suit : son origine est au milieu de l’essieu avant du véhicule automobile, l’axe Xv est longitudinal, orienté de l’avant vers l’arrière du véhicule, l’axe Zv est vertical vers le haut (i.e, du plan d’appui du véhicule automobile sur le sol vers le ciel / toit du véhicule), et l’axe Yv est latéral, tel que le repère (Xv ; Yv ; Zv) soit orthonormé direct.
Comme précédemment, on définit une demi-sphère S1 de rayon R1 dont le centre C1 est situé sur l’axe optique de la caméra 20 à 1 mm du plan unitaire sans distorsion PUSD.
Dans ce cas-là, la droite passant par M et le centre C1 intersecte :
● le plan xv = a (par exemple a = 4000 mm) en un point de coordonnées (a, y3d1, z3d1) dans le repère véhicule (Xv ;Yv ; Zv) ; et
● le plan zv = b (par exemple b = 0 mm) en un point de coordonnées (x3d2, y3d2, b) dans le repère véhicule (Xv ;Yv ; Zv).
Pour valider le choix des valeurs prisent pour a et b, on vérifie, par simulation numérique, que les intersections avec les plans xv = a et zv = b sont suffisantes pour couvrir l’ensemble du champ de vision de la caméra 20 comme illustré sur laFigure 21.
Sur l’exemple de laFigure 21, la partie claire en haute à droite représente la visualisation d’un rectangle positionné en xv =a, de largeur 20000 mm (suivant Yv) et de hauteur 100000 mm (suivant Zv), la partie sombre en bas à droite représente la visualisation d’un rectangle positionné en zv = 0 mm, de largeur 20000 mm (suivant Yv) et de profondeur 5000 mm (suivant Xv).
Dans cette méthode, seule une moitié de l’image est traitée puisque la problématique est symétrique par rapport à l’axe vertical de l’image.
On considère ensuite une caméra virtuelle ayant les mêmes caractéristiques que la caméra réelle 20, la même position, mais pas d’inclinaison par rapport au plan d’appui du véhicule automobile 1 au sol.
Pour chaque pixel (i2,j2) de l’image issue de la caméra sans inclinaison par rapport au plan d’appui, on calcule, de la même manière, le point M (Xu;Yu) dans le plan unitaire sans distorsion PUSD.
Pour cela, on définit une demi-sphère S2 de rayon R1 dont le centre C2 est situé sur l’axe optique de la caméra 20 à 1 mm du plan unitaire sans distorsion PUSD.
La droite passant par M et le centre C2 de la demi-sphère S2 intersecte :
● le plan xv = a (par exemple a = 4000mm) en un point de coordonnées (a, y3d10, z3d10) ; et
● le plan zv = b (par exemple b=0mm) en un point de coordonnées (x3d20, y3d20 ,b).
On obtient donc quatre tables de correspondance :
● deux tables lorsque la caméra est inclinée d’un angle Angle_cam non nul par rapport au plan d’appui du véhicule automobile sur le sol, à savoir :
- Table 1 : ii ; jj ; a ; y3d1, z3d1 ; et
- Table 2 : ii ; jj ; x3d2, y3d2, b
● deux tables lorsque la caméra n’est virtuellement pas inclinée par rapport au plan d’appui du véhicule automobile sur le sol, à savoir :
- Table 3 : i2 ; j2 ; a ; y3d10, z3d10 ; et
- Table 4 : i2 ; j2 ; x3d20, y3d20, b.
Une fois ces quatre tables établies, un algorithme de tri est réalisé :
● pour chaque ligne de la Table 3, le point (y3d10, z3d10) le plus proche de (y3d1, z3d1) est recherché dans la Table 1. Une correspondance entre (ii ; jj) et (i2 ; j2) est ainsi établie ; et
● pour chaque ligne de la Table 4, le point (x3d20, y3d20) le plus proche de (x3d2, y3d2) est recherché dans la Table 2. Une correspondance entre (ii ; jj) et (i2 ; j2) est ainsi établie.
Grâce à ces correspondances, on génère à partir d’une image native prise par la caméra de recul inclinée dont un pixel à pour coordonnées (ii ; jj) : une première image corrigée de la distorsion pour xv = a dont un pixel a pour coordonnées (ii2 ; jj2) et une deuxième image corrigée de la distorsion pour zv = b dont un pixel a pour coordonnées (ii3 ; jj3). A partir de ces deux images, on génère ensuite la première vue de synthèse telle que :
● la valeur du pixel (i ; j) de la première vue de synthèse sera égale à celle du pixel (ii2 ; jj2) de la première image corrigée si la composante RVB du pixel (i ;j) de l’image native est strictement positive ; et
● la valeur du pixel (i ; j) de la première vue de synthèse sera égale à celle du pixel (ii3 ; jj3) de la deuxième image corrigée si la composante RVB du pixel (i ;j) de l’image native est nulle et si la composante du pixel (ii2 ; jj2) équivalent sur la deuxième image corrigée est strictement positive.
LesFigures 22 , 23 et 24illustrent respectivement la première image corrigée de la distorsion pour xv = a, la deuxième image corrigée de la distorsion pour zv = b et la première vue de synthèse construite à partie de ces deux images corrigées.
VUE PANORAMIQUE
Selon un troisième mode de réalisation, compatible avec les précédents modes de réalisation décrits ci-dessus, la création de la vue panoramique la vue panoramique est réalisée de la même manière que la vue cylindrique mais à partir de la première vue de synthèse corrigée, à savoir:
● par projection des pixels de la première vue de synthèse sur la surface interne d’une demi-sphère de rayon R1 et dont le centre C et le sommet S) sont situés sur un axe optique principal de la caméra de recul 20, les coordonnées des pixels de la première vue de synthèse projetés sur la demi-sphère étant calculées grâce au théorème de Thalès et à l’équation de la sphère ; puis
● par projection des points de la demi-sphère sur la surface interne d’un demi-cylindre vertical de rayon R2 englobant la demi-sphère et dont l’axe de symétrie passe par le centre (C) de la demi-sphère ; et enfin
● par projection retour des points du demi-cylindre sur le plan défini par la première vue de synthèse.
LaFigure 25illustre un exemple de vue panoramique calculée à partir de la première vue de synthèse obtenue précédemment et illustréeFigure 24.
VUE ZOOMEE TOURNANTE
Selon un quatrième mode de réalisation, compatible avec le mode de réalisation général ainsi qu’avec les premier et deuxième modes de réalisation particuliers, la création de la vue zoomée tournante en fonction de l’angle α du volant du véhicule automobile est réalisée :
● par projection des pixels de la première vue de synthèse sur la surface interne d’une demi-sphère de rayon R1 et dont le centre (C) et le sommet (S) sont situés sur un axe optique principal de la caméra de recul, les coordonnées des pixels de la première vue de synthèse projetés sur la demi-sphère étant calculées grâce au théorème de Thalès et à l’équation de la sphère ; puis
● par projection des points de la demi-sphère sur la surface interne d’un demi-cylindre vertical de rayon R2 englobant la demi-sphère et dont l’axe de symétrie passe par le centre (C) de la demi-sphère ;
● par projection retour des points du demi-cylindre sur le plan défini par la première vue de synthèse ; et enfin
● par modification de la répartition des pixels ainsi projetés et recadrage de l’image ainsi obtenue par application d’un coefficient dépendant de l’angle α du volant du véhicule.
Pour calculer cette vue, on modifie la répartition des pixels de la vue cylindrique (cf. Math. 11 et Math. 22) comme suit :
Où Zoom1 et Zoom2 sont des facteurs de zoom définis au moment de la mise au point pendant le développement. Ces coordonnées correspondent aux coordonnées (x’v; y’v) dans l’application du processus de création de vues pour la partie concernant la vue zoomée tournante.
L’image obtenue par ce calcul est ensuite recadrée par application d’un coefficient dépendant de l’angle du volant du véhicule pour former la vue tournant zoomée.
VUE ZOOMEE TOURNANTE AVEC L’AIDE A LA CONDUITE
Avantageusement, la méthode telle que décrite dans le quatrième mode de réalisation, comprend également une étape d’aide à la manœuvre en marche arrière du véhicule automobile équipé de la caméra de recul grand angle, l’étape d’aide à la manœuvre comprenant successivement :
● l'acquisition d'un angle de braquage avant relatif à l'angle d'orientation du volant du véhicule automobile et de la vitesse du véhicule automobile ;
● une opération de calcul d'un gabarit dynamique représentatif de la trajectoire prévisible du véhicule automobile, en fonction dudit angle de braquage avant et en fonction également de la vitesse (V) du véhicule automobile (1) ;
● une opération de détermination d’un gabarit initial dans un plan d’appui du véhicule automobile sur le sol ;
● une opération de changement de repère dudit gabarit initial afin d’en déduire la forme d’un gabarit intermédiaire dans un plan sensiblement confondu avec le plan focal de la caméra de recul, le plan focal de la caméra de recul étant incliné d'un angle de roulis, d'un angle de tangage et d'un angle de lacet par rapport audit plan d'appui, ladite opération de changement de repère étant réalisée en fonction de chaque angle de roulis, de tangage et de lacet ;
● la superposition du gabarit intermédiaire sur la première vue de synthèse ;
● ladite étape d’aide à la manœuvre étant réalisée avant la création de la vue zoomée tournante.
L’étape d’aide à la manœuvre et surtout le tracé des gabarits sont décrits plus en détails dans le document WO 2017/144826 A1.
Pour cela, les gabarits statiques et dynamiques sont :
● tracées au sol ;
● projetées dans le plan focal pour calculer les guidelines dans une image sans distorsion ; puis
● l’image Imu temporaire telle que représentée dans laFigure 26est constituée.
Par ailleurs, on repart des coordonnées de chaque point M (Xu;Yu) du plan unitaire sans distorsion PUSD, qui permettent ensuite de calculer les valeurs des pixels correspondants fonctions de Xu, Yu, Res_h, Res_v, cXet cY.
LaFigure 26illustre un exemple de gabarit à insérer sur une première vue de synthèse corrigée de la distorsion et laFigure 27illustre un exemple de vue tournante que laquelle a été superposé un exemple de gabarit d’aide à la conduite. La vue tournante de laFigure 27a été créée à partir de l’image native de laFigure 11.
VUE DU DESSUS
Selon un cinquième mode de réalisation, compatible avec le mode de réalisation général ainsi qu’avec les premier et deuxième modes de réalisation particuliers, la création de la vue de dessus du véhicule automobile est réalisée : par projection de la première vue de synthèse sur le plan d’appui ; puis par recadrage des pixels ainsi projetés par application d’un coefficient prédéterminé.
Pour calculer cette vue du dessus, on repart des coordonnées de chaque point M (Xu;Yu) du plan unitaire sans distorsion PUSD.
Angle_cam est l’angle d’inclinaison de l’axe de la caméra avec le plan d’appui du véhicule automobile sur le sol.
Sur laFigure 28est représenté le plan PBV, parallèle au plan d’appui du véhicule automobile et distant de f du centre A de la caméra de recul 20.
La droite passant par le centre de la caméra A et le point M intersecte le plan PBVen Puf1.
Les coordonnées de M dans le repère de la caméra (Xcam: Ycam; Zcam) sont (1-cam_sph ; Xu; Yu).
On définit le repère Rcam_hor (X’cam: Y’cam; Z’cam) de centre A, d’axe X’camhorizontal, d’axe Z’camvertical. Rcam_hor est l’image du repère caméra (Xcam: Ycam; Zcam) par la rotation d’axe Ycamlatéral et d’angle -Angle_cam.
Les coordonnées de M dans le repère Rcam_hor sont donc :
M et Puf1sont alignés donc en appliquant le théorème de Thalès :
Les coordonnées de Puf1dans le repère Rcam_hor sont :
Dans le plan PBV, on définit le repère suivant RBV(XBV: YBV): l’origine du repère RBVest l’intersection de l’axe de la caméra (i.e. l’axe optique 50) avec le plan PBV, l’axe XBVest parallèle à l’axe X’camdu repère Rcam_hor, l’axe YBVest parallèle à l’axe Y’camdu repère Rcam_hor.
Dans ce repère RBV, les coordonnées de Puf1sont :
Soit, en pixel :
Où k est un coefficient choisi au moment de la mise au point de la fonctionnalité. C’est un facteur d’homothétie adapté à la taille de la zone que l’on souhaite visualiser (par exemple : k = 10). Ces coordonnées correspondent aux coordonnées (x’v; y’v) dans l’application du processus de création de vues pour la partie concernant la vue de dessus.
VUE DU DESSUS AVEC L’AIDE A LA CONDUITE
De la même manière que précédemment, la méthode telle que décrite dans le cinquième mode de réalisation, peut avantageusement comprendre une étape supplémentaire d’aide à la manœuvre en marche arrière du véhicule automobile équipé de la caméra de recul grand angle, l’étape d’aide à la manœuvre comprenant successivement :
● l'acquisition d'un angle de braquage avant relatif à l'angle d'orientation du volant du véhicule automobile et de la vitesse du véhicule automobile ;
● une opération de calcul d'un gabarit dynamique représentatif de la trajectoire prévisible du véhicule automobile, en fonction dudit angle de braquage avant et en fonction également de la vitesse (V) du véhicule automobile (1 ) ;
● une opération de détermination d’un gabarit initial dans un plan d’appui du véhicule automobile sur le sol ;
● une opération de changement de repère dudit gabarit initial afin d’en déduire la forme d’un gabarit intermédiaire dans un plan sensiblement confondu avec le plan focal de la caméra de recul, le plan focal de la caméra de recul étant incliné d'un angle de roulis, d'un angle de tangage et d'un angle de lacet par rapport audit plan d'appui, ladite opération de changement de repère étant réalisée en fonction de chaque angle de roulis, de tangage et de lacet ;
● la superposition du gabarit intermédiaire sur la première vue de synthèse ;
● ladite étape d’aide à la manœuvre étant réalisée avant la création de la vue de dessus
LaFigure 29illustre une vue de dessus avec l’aide à la conduite. Cette vue a été créée à partir de l’image native de laFigure 11.

Claims (9)

  1. Procédé de création de vues à partir d’une image d’une scène capturée par un capteur d’une caméra grand angle embarquée sur un véhicule automobile, le capteur étant de résolution Resh pixels en horizontal et Resv pixels en vertical, Resh et Resv étant des nombres entiers positifs, le procédé de création de vues comprenant :
    ● une étape d’extraction des composantes rouge, verte et bleue (R ; G ; B) de chaque pixel de l’image de la scène capturée et de coordonnées (i ; j), i étant un entier compris entre 1 et Resh et j étant un entier compris entre 1 et Resv ;
    ● une étape de création de la vue à partir :
    - des composantes rouge, verte et bleue (R ; G ; B) de chaque pixel (i ; j) ;
    - d’une première fonction de transfert codée sous forme d’une première matrice précalculée comprenant les informations relatives à la valeur de i en fonction de la position du pixel correspondant dans la vue créée et de coordonnées (xv; yv), xvétant un entier compris entre 1 et Resh et yvétant un entier compris entre 1 et Resv ;
    - d’une deuxième fonction de transfert codée sous forme d’une deuxième matrice précalculée comprenant les informations relatives à la valeur de j en fonction de la position du pixel correspondant dans la vue créée et de coordonnées (xv; yv) ; et
    - du type de vue souhaité parmi : une vue panoramique de la scène capturée, une vue zoomée tournante en fonction de l’angle du volant du véhicule automobile, une vue de dessus du véhicule automobile, chacune des vues pouvant comprendre ou non un gabarit d’aide à la conduite.
  2. Procédé de création de vues tel que défini dans la revendication 1 dans lequel les informations relatives aux valeurs i et j en fonction de la position du pixel correspondant dans la vue créée et de coordonnées (xv; yv) sont respectivement codées sur un quart de la première et de la deuxième matrice précalculée, la création de la vue se faisant à l’aide des quarts des matrices précalculées correspondantes puis grâce à une reconstruction du reste de l’image de la vue créée à l’aide d’une symétrie de position verticale et/ou d’une symétrie de position horizontale.
  3. Procédé de création de vues tel que défini dans l’une des revendications 1 à 2 dans lequel la première fonction de transfert est codée comme suit :
    ● pour i inférieur ou égal à 255, les composantes rouge ,verte et bleue (Rv; Gv; Bv) du pixel correspondant au pixel (i ; j) dans la première matrice précalculée et de coordonnées (xv; yv) seront respectivement égales à 0, 0 et i ;
    ● pour i strictement supérieur 255 et inférieur ou égal à 2*255, les composantes rouge ,verte et bleue (Rv; Gv; Bv) du pixel correspondant au pixel (i ; j) dans la vue créée et de coordonnées (xv; yv) seront respectivement égales à 0, i-255 et 0 ; et
    ● pour i strictement supérieur 2*255 et inférieur ou égal à 3*255, les composantes rouge ,verte et bleue (Rv; Gv; Bv) du pixel correspondant au pixel (i ; j) dans la vue créée et de coordonnées (xv; yv) seront respectivement égales à i-510, 0 et 0.
  4. Procédé de création de vues tel que défini dans la revendication 3 dans lequel le décodage de la première fonction de transfert s’effectue comme suit :
    ● la première matrice précalculée est ouverte est lue colonne par colonne puis ligne par ligne ;
    ● pour chaque pixel de coordonnées (xv; yv), les composantes rouge, verte et bleue (Rv;Gv;Bv) sont extraites et :
    - si la composante bleu (Bv) est inférieure ou égale à 255, la composante verte (Gv) strictement inférieure à 1 et la composante rouge (Rv) strictement inférieure à 1 alors i est égal à la composante bleue (Bv) ;
    - si la composante bleu (Bv) est strictement inférieure à 1, la composante verte (Gv) inférieure ou égale à 255 et la composante rouge (Rv) strictement inférieure à 1 alors i est égal à la composante verte (Gv) + 255 ; et
    - la composante bleu (Bv) est strictement inférieure à 1, la composante verte (Gv) strictement inférieure à 1 et la composante rouge (Rv) inférieure ou égale à 255 alors i est égal à la composante rouge (Rv) + 255.
  5. Procédé de création de vues tel que défini dans l’une des revendications 1 à 4, dans lequel la deuxième fonction de transfert est codée comme suit :
    ● pour j inférieur ou égal à 255, les composantes rouge, verte et bleue (Rv; Gv; Bv) du pixel correspondant au pixel (i ; j) dans la deuxième matrice précalculée et de coordonnées (xv; yv) seront respectivement égales à 0,0,j ;
    ● pour j strictement supérieur 255 et inférieur ou égal à 2*255, les composantes rouge ,verte et bleue (Rv; Gv; Bv) du pixel correspondant au pixel (i ; j) dans la vue créée et de coordonnées (xv; yv) seront respectivement égales à 0,j-255,0 ; et
    ● pour j strictement supérieur 2*255 et inférieur ou égal à 3*255, les composantes rouge ,verte et bleue (Rv ; Gv ; Bv) du pixel correspondant au pixel (i ; j) dans la vue créée et de coordonnées (xv ; yv) seront respectivement égales à 0,0,j-510.
  6. Procédé de création de vues tel que défini dans la revendication 5 dans lequel le décodage de la deuxième fonction de transfert s’effectue comme suit :
    ● la deuxième matrice précalculée est ouverte est lue ligne par ligne puis colonne par colonne ;
    ● pour chaque pixel de coordonnées (xv; yv), les composantes rouge, verte et bleue (Rv;Gv;Bv) sont extraites et :
    - si la composante bleue Bvdu pixel (xv; yv) est inférieure ou égale à 255, la composante verte Gvdu pixel (xv; yv) strictement inférieure à 1 et la composante rouge Rvdu pixel (xv; yv) strictement inférieure à 1, i.e. (Rv< 1 ; Gv< 1 ; Bv<= 255), alors j est égal à la composante bleue Bvdu pixel (xv; yv) ;
    - si la composante bleue Bvest strictement inférieure à 1, la composante verte Gvinférieure ou égale à 255 et la composante rouge Rvstrictement inférieure à 1, i.e. (Rv< 1 ; Gv<= 255 ; Bv< 1) alors j est égal à la composante verte Gv+ 255 ; et
    - si la composante bleue Bvest strictement inférieure à 1, la composante verte Gvstrictement inférieure à 1 et la composante rouge Rvinférieure ou égale à 255, i.e. (Rv<= 255 ; Gv< 1 ; Bv< 1) alors j est égal à la composante rouge Rv+ 255*2
  7. Procédé de création de vues tel que défini dans l’une des revendications 1 à 6 dans lequel les aberrations optiques générées par la caméra grand champ sont préalablement corrigées, le procédé de création de vue comprenant, avant le codage de la première et de la deuxième fonction de transfert, les étapes suivantes :
    ● une étape (E100) de génération d’une première vue de synthèse (Isynth) correspondant à l’image de la scène (Iinit) capturée par la caméra grand angle et corrigée des aberrations optiques ; et
    ● une étape (E200) de détermination des coordonnées du pixel corrigé de coordonnées (x’v; y’v) correspondant au pixel (i ; j) dans la vue créée et corrigée des aberrations optiques de la caméra grand champ ;
    la première fonction de transfert étant codée de sorte à comprendre les informations relatives à la valeur de i en fonction de la position du pixel corrigé de coordonnées (x’v; y’v) et la deuxième fonction de transfert étant codée de sorte à comprendre les informations relatives à la valeur de j en fonction de la position du pixel corrigé de coordonnées (x’v; y’v).
  8. Dispositif de création d’une vue pour l’aide à la manœuvre d’un véhicule automobile, comprenant :
    ● une caméra grand angle embarquée sur le véhicule automobile et adapter pour capturer une image d’une scène ;
    ● un processeur adapté pour créer une vue à partir de l’image de la scène capturée selon un procédé de création de vues tel que décrit selon l’une des revendications 1 à 7 ; et
    ● un écran d’affichage adapté pour afficher la vue créée par le processeur.
  9. Véhicule automobile comprenant un dispositif de création d’une vue selon la revendication 8.
FR1900457A 2019-01-18 2019-01-18 Procédé de création de vues à partir d’une image capturée par une caméra grand angle Active FR3091946B1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR1900457A FR3091946B1 (fr) 2019-01-18 2019-01-18 Procédé de création de vues à partir d’une image capturée par une caméra grand angle

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1900457A FR3091946B1 (fr) 2019-01-18 2019-01-18 Procédé de création de vues à partir d’une image capturée par une caméra grand angle
FR1900457 2019-01-18

Publications (2)

Publication Number Publication Date
FR3091946A1 true FR3091946A1 (fr) 2020-07-24
FR3091946B1 FR3091946B1 (fr) 2021-10-01

Family

ID=67660170

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1900457A Active FR3091946B1 (fr) 2019-01-18 2019-01-18 Procédé de création de vues à partir d’une image capturée par une caméra grand angle

Country Status (1)

Country Link
FR (1) FR3091946B1 (fr)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150254818A1 (en) * 2014-03-10 2015-09-10 Omnivision Technologies, Inc. Image Transformation And Multi-View Output Systems And Methods
WO2017144826A1 (fr) 2016-02-24 2017-08-31 Renault S.A.S Procédé d'aide à la conduite en marche avant d'un véhicule automobile, muni d'une caméra à objectif de type fish-eye

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150254818A1 (en) * 2014-03-10 2015-09-10 Omnivision Technologies, Inc. Image Transformation And Multi-View Output Systems And Methods
WO2017144826A1 (fr) 2016-02-24 2017-08-31 Renault S.A.S Procédé d'aide à la conduite en marche avant d'un véhicule automobile, muni d'une caméra à objectif de type fish-eye

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JUNHEE PARK ET AL: "Lens distortion correction using ideal image coordinates", IEEE TRANSACTIONS ON CONSUMER ELECTRONICS, IEEE SERVICE CENTER, NEW YORK, NY, US, vol. 55, no. 3, 1 August 2009 (2009-08-01), pages 987 - 991, XP011277853, ISSN: 0098-3063, DOI: 10.1109/TCE.2009.5278053 *
NIKOLAOS BELLAS ET AL: "Real-Time Fisheye Lens Distortion Correction Using Automatically Generated Streaming Accelerators", 17TH IEEE SYMPOSIUM ON FIELD PROGRAMMABLE CUSTOM COMPUTING MACHINES, 2009, IEEE, PISCATAWAY, NJ, USA, 5 April 2009 (2009-04-05), pages 149 - 156, XP031548906 *
PRANALI DHANE ET AL: "A Generic Non-linear Method for Fisheye Correction", INTERNATIONAL JOURNAL OF COMPUTER APPLICATIONS, vol. 51, no. 10, 1 August 2012 (2012-08-01), pages 58 - 65, XP055628101 *

Also Published As

Publication number Publication date
FR3091946B1 (fr) 2021-10-01

Similar Documents

Publication Publication Date Title
EP0661671B1 (fr) Procédé et dispositif de traitement d&#39;image pour construire à partir d&#39;une image source une image cible avec changement de perspective
EP0282364B1 (fr) Procédé de représentation de l&#39;image en perspective d&#39;un terrain et système pour sa mise en oeuvre
EP0650299B1 (fr) Procédé de traitement des niveaux de luminance dans une image composite et système de traitement d&#39;image appliquant ce procédé
EP1713017B1 (fr) Procédé, dispositif et caméra pour la détection d&#39;objets à partir d&#39;images numériques
FR2714503A1 (fr) Procédé et dispositif de traitement d&#39;image pour construire à partir d&#39;une image source une image cible avec changement de perspective.
FR2983330A1 (fr) Procede et dispositif de representation d&#39;environnements synthetiques
CN108171655A (zh) 基于单目摄像头的倒车影像拼接方法和装置
WO2009150361A2 (fr) Procede et dispositif de reconnaissance invariante-affine de formes
WO2005010820A2 (fr) Procede et dispositif automatise de perception avec determination et caracterisation de bords et de frontieres d&#39;objets d&#39;un espace, construction de contours et applications
EP0829029A1 (fr) Procede de transformation d&#39;images en images stereoscopiques et images et suites d&#39;images obtenues par ledit procede
EP2432660B1 (fr) Procede et dispositif pour etendre une zone de visibilite
EP2801075B1 (fr) Procede de traitement d&#39;image d&#39;une camera embarquee sur un vehicule et dispositif de traitement correspondant
FR2965956A1 (fr) Procede et dispositif de representation optique de l&#39;environnement d&#39;un vehicule
WO2013160255A1 (fr) Dispositif de visualisation adapté à fournir un champ visuel étendu
FR2925705A1 (fr) Dispositif d&#39;aide a la capture d&#39;images
FR3091946A1 (fr) Procédé de création de vues à partir d’une image capturée par une caméra grand angle
EP3768555A1 (fr) Système de vision panoramique affichée sur un écran portrait
FR3088754A1 (fr) Methode de creation d’une vue a partir d’une image capturee par une camera grand angle inclinee
EP2297705A1 (fr) Procede de composition temps reel d&#39;une video
EP4200795A1 (fr) Systèmes et procédés de retouche d&#39;images à une meilleure résolution
EP3755138B1 (fr) Procede pour reproduire un motif a marquer sur une zone engazonnee
EP3263406B1 (fr) Système d&#39;aide à la conduite pour un véhicule, véhicule ferroviaire et procédé d&#39;utilisation associés
EP2406962B1 (fr) Système et procédé configurés pour la capture d&#39;une pluralité d&#39;images à destination d&#39;une restitution multiscopique à déformation controlée
FR2926908A1 (fr) Assistance a la conduite d&#39;un vehicule automobile par une vue de dessus
WO2013045853A1 (fr) Méthode et dispositif de filtrage d&#39;une carte de disparité

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20200724

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

CA Change of address

Effective date: 20221005

PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6