CA3233479A1 - Procede de detection d'obstacles - Google Patents
Procede de detection d'obstacles Download PDFInfo
- Publication number
- CA3233479A1 CA3233479A1 CA3233479A CA3233479A CA3233479A1 CA 3233479 A1 CA3233479 A1 CA 3233479A1 CA 3233479 A CA3233479 A CA 3233479A CA 3233479 A CA3233479 A CA 3233479A CA 3233479 A1 CA3233479 A1 CA 3233479A1
- Authority
- CA
- Canada
- Prior art keywords
- image
- rectified
- images
- detection method
- obstacle detection
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 11
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 30
- 230000011218 segmentation Effects 0.000 claims abstract description 17
- 238000001514 detection method Methods 0.000 claims description 59
- 238000012545 processing Methods 0.000 claims description 30
- 238000013528 artificial neural network Methods 0.000 claims description 8
- 230000003190 augmentative effect Effects 0.000 claims description 8
- 239000000543 intermediate Substances 0.000 claims description 7
- 230000009466 transformation Effects 0.000 claims description 6
- 238000012795 verification Methods 0.000 claims description 6
- 238000009825 accumulation Methods 0.000 claims description 4
- 230000010354 integration Effects 0.000 claims description 4
- 239000003550 marker Substances 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 238000012937 correction Methods 0.000 claims description 3
- 238000005259 measurement Methods 0.000 claims description 3
- 230000003287 optical effect Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 230000004044 response Effects 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 4
- 238000012549 training Methods 0.000 description 4
- 101150061340 Ier2 gene Proteins 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 230000010006 flight Effects 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000003709 image segmentation Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000033001 locomotion Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 229940050561 matrix product Drugs 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012995 silicone-based technology Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/10—Terrestrial scenes
- G06V20/17—Terrestrial scenes taken from planes or by drones
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
- G06T7/593—Depth or shape recovery from multiple images from stereo images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/56—Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
- G06V20/58—Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/70—Labelling scene content, e.g. deriving syntactic or semantic representations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
- G06T2207/10021—Stereoscopic video; Stereoscopic image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10032—Satellite or aerial image; Remote sensing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10048—Infrared image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Remote Sensing (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
Procédé de détection d'obstacles, comprenant les étapes de : - mettre en ?uvre un algorithme de segmentation sémantique pour produire une première image segmentée (Ie1) à partir d'une première image brute de gauche ou de droite; - rectifier les images stéréos brutes pour obtenir des images stéréos rectifiées (Isr), et la première image segmentée pour obtenir une première image segmentée rectifiée (Ier1); - produire une carte de disparité (Cd); - produire une deuxième image segmentée rectifiée; - produire une liste d'instances d'obstacles prédéfinis (Obst) présentes dans l'environnement du véhicule à partir des images stéréos segmentées rectifiées; - intégrer les instances d'obstacles prédéfinis dans des images intermédiaires obtenues à partir des images stéréos rectifiées (Isr).
Description
PROCEDE DE DETECTION D'OBSTACLES
L'invention concerne le domaine de la détection d'obstacles pour fournir une assistance au pilotage d'un véhicule nu d'un rohot.
ARRIERE PLAN DE L'INVENTION
Il existe aujourd'hui un grand nombre de systèmes de détection d'obstacles, qui sont destinés à fournir une assistance au pilotage de différents types de véhicules :
véhicules volants, terrestres, avec ou sans pilote à bord, véhicules autonomes, robots, etc.
Un tel système de détection d'obstacles a notamment pour objectif de réduire autant que possible les accidents de collision en fournissant au pilote ou au système de navigation du véhicule un certain nombre d'informations relatives aux obstacles présents dans l'environnement du véhicule : position des obstacles, distance entre chaque obstacle et le véhicule, taille et type des obstacles, etc.
Les obstacles sont par exemple des câbles électriques, des pylônes, des arbres, etc.
On connaît ainsi des systèmes de détection d'obstacles qui utilisent la technologie RADAR (pour RAdio Detection And Ranging) ou la technologie LIDAR (pour Light Detection And Ranging).
Ces systèmes présentent l'inconvénient d'émettre des ondes électromagnétiques ou des ondes lumineuses qui rendent le véhicule facilement détectable. Or, dans certaines applications, notamment militaires, il est préférable que le véhicule équipé du système de détection d'obstacles soit difficile à détecter (véhicule furtif).
L'invention concerne le domaine de la détection d'obstacles pour fournir une assistance au pilotage d'un véhicule nu d'un rohot.
ARRIERE PLAN DE L'INVENTION
Il existe aujourd'hui un grand nombre de systèmes de détection d'obstacles, qui sont destinés à fournir une assistance au pilotage de différents types de véhicules :
véhicules volants, terrestres, avec ou sans pilote à bord, véhicules autonomes, robots, etc.
Un tel système de détection d'obstacles a notamment pour objectif de réduire autant que possible les accidents de collision en fournissant au pilote ou au système de navigation du véhicule un certain nombre d'informations relatives aux obstacles présents dans l'environnement du véhicule : position des obstacles, distance entre chaque obstacle et le véhicule, taille et type des obstacles, etc.
Les obstacles sont par exemple des câbles électriques, des pylônes, des arbres, etc.
On connaît ainsi des systèmes de détection d'obstacles qui utilisent la technologie RADAR (pour RAdio Detection And Ranging) ou la technologie LIDAR (pour Light Detection And Ranging).
Ces systèmes présentent l'inconvénient d'émettre des ondes électromagnétiques ou des ondes lumineuses qui rendent le véhicule facilement détectable. Or, dans certaines applications, notamment militaires, il est préférable que le véhicule équipé du système de détection d'obstacles soit difficile à détecter (véhicule furtif).
2 On connaît aussi des systèmes qui utilisent la capture et le traitement d'images pour détecter et identifier les obstacles.
On connaît par exemple un système passif de détection d'obstacles appelé POIDS, pour Passive 05stac7e Detection System, qui est développé par Boeing. Ce système est capable de traiter un flux d'images important et fonctionne avec des images capturées dans les bandes visibles, les bandes MWIR
(pour Mid-Wave InfraRed) ou les bandes LWIR (pour Long-Wave InfraRed), ou bien avec des images produites par des capteurs PMMW (pour Passive 11111114eter Wave).
Cependant, ce système est capable de détecter uniquement des obstacles de type câble, et ne semble fonctionner qu'avec des capteurs petit champ.
On connaît aussi des systèmes qui détectent des obstacles grâce à la stéréovision. Certains systèmes utilisent ainsi la cartographie UV mais sont peu précis et sont incapables de faire la différence entre les différents types d'obstacles.
D'autres systèmes encore utilisent des images satellitaires, mais n'ont pas pour vocation à être embarqués dans des véhicules tels qu'un hélicoptère ou un drone.
OBJET DE L'INVENTION
L'invention a pour objet de détecter et d'identifier de manière précise et fiable différents types d'obstacles, sans émettre d'ondes électromagnétiques ou lumineuses, pour fournir une aide au pilotage de tout type de véhicule.
RESUME DE L'INVENTION
En vue de la réalisation de ce but, on propose un procédé de détection d'obstacles, mis en ouvre dans au moins une unité de traitement et comprenant les étapes de :
- acquérir des images stéréos brutes, représentatives d'un
On connaît par exemple un système passif de détection d'obstacles appelé POIDS, pour Passive 05stac7e Detection System, qui est développé par Boeing. Ce système est capable de traiter un flux d'images important et fonctionne avec des images capturées dans les bandes visibles, les bandes MWIR
(pour Mid-Wave InfraRed) ou les bandes LWIR (pour Long-Wave InfraRed), ou bien avec des images produites par des capteurs PMMW (pour Passive 11111114eter Wave).
Cependant, ce système est capable de détecter uniquement des obstacles de type câble, et ne semble fonctionner qu'avec des capteurs petit champ.
On connaît aussi des systèmes qui détectent des obstacles grâce à la stéréovision. Certains systèmes utilisent ainsi la cartographie UV mais sont peu précis et sont incapables de faire la différence entre les différents types d'obstacles.
D'autres systèmes encore utilisent des images satellitaires, mais n'ont pas pour vocation à être embarqués dans des véhicules tels qu'un hélicoptère ou un drone.
OBJET DE L'INVENTION
L'invention a pour objet de détecter et d'identifier de manière précise et fiable différents types d'obstacles, sans émettre d'ondes électromagnétiques ou lumineuses, pour fournir une aide au pilotage de tout type de véhicule.
RESUME DE L'INVENTION
En vue de la réalisation de ce but, on propose un procédé de détection d'obstacles, mis en ouvre dans au moins une unité de traitement et comprenant les étapes de :
- acquérir des images stéréos brutes, représentatives d'un
3 environnement d'un véhicule et produites par des caméras stéréos, les images stéréos brutes comprenant une image brute de gauche et une image brute de droite ;
- mettre en uvre un algorithme de segmentation sémantique pour produire une première image segmentée à partir d'une première image brute, la première images brute étant l'image brute de gauche ou l'image brute de droite ;
- rectifier les images stéréos brutes pour obtenir des images stéréos rectifiées, et la première image segmentée pour obtenir une première image segmentée rectifiée ;
- mettre en uvre un algorithme de calcul de disparité entre les images stéréos rectifiées, pour produire une carte de disparité ;
- mettre en uvre une transformation spatiale de la première image segmentée rectifiée, en utilisant la carte de disparité, pour produire une deuxième image segmentée rectifiée, correspondant au côté opposé à celui de la première image brute, et produire ainsi des images stéréos segmentées rectifiées ;
- produire une liste d'instances d'obstacles prédéfinis présentes dans l'environnement du véhicule à partir des images stéréos segmentées rectifiées ;
- mettre en uvre un algorithme de reconstruction en trois dimensions, utilisant la carte de disparité, pour produire des coordonnées en trois dimensions pour chaque pixel des images stéréos brutes ;
- intégrer, en utilisant les coordonnées en trois dimensions, les instances d'obstacles prédéfinis dans des images intermédiaires obtenues à partir des images stéréos rectifiées, pour produire des images augmentées destinées à
fournir une assistance au pilotage du véhicule.
Le procédé de détection d'obstacles selon l'invention
- mettre en uvre un algorithme de segmentation sémantique pour produire une première image segmentée à partir d'une première image brute, la première images brute étant l'image brute de gauche ou l'image brute de droite ;
- rectifier les images stéréos brutes pour obtenir des images stéréos rectifiées, et la première image segmentée pour obtenir une première image segmentée rectifiée ;
- mettre en uvre un algorithme de calcul de disparité entre les images stéréos rectifiées, pour produire une carte de disparité ;
- mettre en uvre une transformation spatiale de la première image segmentée rectifiée, en utilisant la carte de disparité, pour produire une deuxième image segmentée rectifiée, correspondant au côté opposé à celui de la première image brute, et produire ainsi des images stéréos segmentées rectifiées ;
- produire une liste d'instances d'obstacles prédéfinis présentes dans l'environnement du véhicule à partir des images stéréos segmentées rectifiées ;
- mettre en uvre un algorithme de reconstruction en trois dimensions, utilisant la carte de disparité, pour produire des coordonnées en trois dimensions pour chaque pixel des images stéréos brutes ;
- intégrer, en utilisant les coordonnées en trois dimensions, les instances d'obstacles prédéfinis dans des images intermédiaires obtenues à partir des images stéréos rectifiées, pour produire des images augmentées destinées à
fournir une assistance au pilotage du véhicule.
Le procédé de détection d'obstacles selon l'invention
4 permet de détecter et de différencier les obstacles de manière précise et fiable. Le procédé de détection d'obstacles selon l'invention peut fournir une assistance au pilotage de tout type de véhicule et ne nécessite pas l'émission d'ondes électromagnétiques nu lumineuses. Les images augmentées peuvent par exemple être projetées sur la visière du casque d'un pilote.
On propose de plus un procédé de détection d'obstacles tel que précédemment décrit, dans lequel l'étape de rectification comprend une correction de distorsion et utilise des premiers paramètres comprenant des paramètres extrinsèques et intrinsèques des caméras stéréos.
On propose de plus un procédé de détection d'obstacles tel que précédemment décrit, dans lequel des lignes épipolaires des images stéréos rectifiées et des images stéréos segmentées rectifiées sont horizontales.
On propose de plus un procédé de détection d'obstacles tel que précédemment décrit, comprenant en outre l'étape, précédant la mise en oeuvre de l'algorithme de calcul de disparité, de projeter les images stéréos rectifiées dans un repère associé à un casque d'un pilote du véhicule.
On propose de plus un procédé de détection d'obstacles tel que précédemment décrit, dans lequel l'algorithme de reconstruction en trois dimensions utilise des deuxièmes paramètres comprenant des paramètres extrinsèques et intrinsèques des caméras stéréos ainsi que des données de navigation produites par des capteurs de navigation d'une unité de mesure inertielle du véhicule.
On propose de plus un procédé de détection d'obstacles tel que précédemment décrit, dans lequel les coordonnées en trois dimensions des pixels reconstruits sont définies dans un repère géographique local associé au véhicule et corrigé
en lacet.
On propose de plus un procédé de détection d'obstacles tel que précédemment décrit, comprenant en outre l'étape, précédant la mise en uvre de l'algorithme de reconstruction,
On propose de plus un procédé de détection d'obstacles tel que précédemment décrit, dans lequel l'étape de rectification comprend une correction de distorsion et utilise des premiers paramètres comprenant des paramètres extrinsèques et intrinsèques des caméras stéréos.
On propose de plus un procédé de détection d'obstacles tel que précédemment décrit, dans lequel des lignes épipolaires des images stéréos rectifiées et des images stéréos segmentées rectifiées sont horizontales.
On propose de plus un procédé de détection d'obstacles tel que précédemment décrit, comprenant en outre l'étape, précédant la mise en oeuvre de l'algorithme de calcul de disparité, de projeter les images stéréos rectifiées dans un repère associé à un casque d'un pilote du véhicule.
On propose de plus un procédé de détection d'obstacles tel que précédemment décrit, dans lequel l'algorithme de reconstruction en trois dimensions utilise des deuxièmes paramètres comprenant des paramètres extrinsèques et intrinsèques des caméras stéréos ainsi que des données de navigation produites par des capteurs de navigation d'une unité de mesure inertielle du véhicule.
On propose de plus un procédé de détection d'obstacles tel que précédemment décrit, dans lequel les coordonnées en trois dimensions des pixels reconstruits sont définies dans un repère géographique local associé au véhicule et corrigé
en lacet.
On propose de plus un procédé de détection d'obstacles tel que précédemment décrit, comprenant en outre l'étape, précédant la mise en uvre de l'algorithme de reconstruction,
5 de vérifier une validité d'une valeur de disparité de chaque couple de pixels homologues comprenant un pixel de gauche d'une image de gauche et un pixel de droite d'une image de droite.
On propose de plus un procédé de détection d'obstacles tel que précédemment décrit, dans lequel la vérification de la validité de la disparité du couple de pixels homologues comprend l'étape de vérifier que :
disp,(xõ y) = dispd(x, - disp,(x, , y), y) et dispd(xd Y) = disPg(xd + dispd(xd Y), Y) disp, étant une disparité estimée en prenant l'image de gauche comme référence, dispd étant une disparité estimée en prenant l'image de droite comme référence, xq étant une coordonnée du pixel de gauche et xd étant une coordonnée du pixel de droite.
On propose de plus un procédé de détection d'obstacles tel que précédemment décrit, dans lequel la vérification de la validité de la disparité du couple de pixels homologues comprend l'étape de mettre en uvre un mécanisme de post-accumulation en projetant des images de disparité passées sur une image de disparité actuelle.
On propose de plus un procédé de détection d'obstacles tel que précédemment décrit, comprenant l'étape de déterminer qu'un groupe de pixels d'une image stéréo segmentée rectifiée forme une instance d'obstacle prédéfini lorsque lesdits pixels sont connectés entre eux.
On propose de plus un procédé de détection d'obstacles tel que précédemment décrit, dans lequel deux pixels sont
On propose de plus un procédé de détection d'obstacles tel que précédemment décrit, dans lequel la vérification de la validité de la disparité du couple de pixels homologues comprend l'étape de vérifier que :
disp,(xõ y) = dispd(x, - disp,(x, , y), y) et dispd(xd Y) = disPg(xd + dispd(xd Y), Y) disp, étant une disparité estimée en prenant l'image de gauche comme référence, dispd étant une disparité estimée en prenant l'image de droite comme référence, xq étant une coordonnée du pixel de gauche et xd étant une coordonnée du pixel de droite.
On propose de plus un procédé de détection d'obstacles tel que précédemment décrit, dans lequel la vérification de la validité de la disparité du couple de pixels homologues comprend l'étape de mettre en uvre un mécanisme de post-accumulation en projetant des images de disparité passées sur une image de disparité actuelle.
On propose de plus un procédé de détection d'obstacles tel que précédemment décrit, comprenant l'étape de déterminer qu'un groupe de pixels d'une image stéréo segmentée rectifiée forme une instance d'obstacle prédéfini lorsque lesdits pixels sont connectés entre eux.
On propose de plus un procédé de détection d'obstacles tel que précédemment décrit, dans lequel deux pixels sont
6 connectés entre eux si l'un des deux pixels appartient au voisinage de l'autre et si les deux pixels appartiennent à
une même classe.
On propose de plus un procédé de détection d'obstacles tel que précédemment décrit, dans lequel l'étape d'intégration comprend les étapes, pour chaque instance d'obstacle prédéfini, de déterminer, en utilisant des coordonnées de l'instance d'obstacle prédéfini et les coordonnées en trois dimensions des pixels reconstruits, une distance entre ladite instance d'obstacle prédéfini et le véhicule ainsi que des dimensions de ladite instance d'obstacle prédéfini.
On propose de plus un procédé de détection d'obstacles tel que précédemment décrit, dans lequel les images intermédiaires sont les images stéréos rectifiées.
On propose de plus un procédé de détection d'obstacles tel que précédemment décrit, dans lequel l'étape d'intégration comprend, pour chaque instance d'obstacle prédéfini, l'étape d'incruster une croix sur un barycentre de ladite instance d'obstacle prédéfini.
On propose de plus un procédé de détection d'obstacles tel que précédemment décrit, dans lequel l'algorithme de segmentation sémantique utilise un réseau de neurones U-Net, HRNet, ou HRNet + OCR.
On propose de plus un procédé de détection d'obstacles tel que précédemment décrit, dans lequel les caméras stéréos sont des caméras infrarouges.
On propose de plus un système comprenant des caméras stéréos et une unité de traitement dans laquelle est mis en uvre le procédé de détection d'obstacles tel que précédemment décrit.
On propose de plus un véhicule comprenant un système
une même classe.
On propose de plus un procédé de détection d'obstacles tel que précédemment décrit, dans lequel l'étape d'intégration comprend les étapes, pour chaque instance d'obstacle prédéfini, de déterminer, en utilisant des coordonnées de l'instance d'obstacle prédéfini et les coordonnées en trois dimensions des pixels reconstruits, une distance entre ladite instance d'obstacle prédéfini et le véhicule ainsi que des dimensions de ladite instance d'obstacle prédéfini.
On propose de plus un procédé de détection d'obstacles tel que précédemment décrit, dans lequel les images intermédiaires sont les images stéréos rectifiées.
On propose de plus un procédé de détection d'obstacles tel que précédemment décrit, dans lequel l'étape d'intégration comprend, pour chaque instance d'obstacle prédéfini, l'étape d'incruster une croix sur un barycentre de ladite instance d'obstacle prédéfini.
On propose de plus un procédé de détection d'obstacles tel que précédemment décrit, dans lequel l'algorithme de segmentation sémantique utilise un réseau de neurones U-Net, HRNet, ou HRNet + OCR.
On propose de plus un procédé de détection d'obstacles tel que précédemment décrit, dans lequel les caméras stéréos sont des caméras infrarouges.
On propose de plus un système comprenant des caméras stéréos et une unité de traitement dans laquelle est mis en uvre le procédé de détection d'obstacles tel que précédemment décrit.
On propose de plus un véhicule comprenant un système
7 tel que précédemment décrit.
On propose de plus un programme d'ordinateur comprenant des instructions qui conduisent l'unité de traitement du système tel que précédemment décrit à exécuter les étapes du procede de detection d'obstacles tel que precedemment décrit.
On propose de plus un support d'enregistrement lisible par ordinateur, sur lequel est enregistré le programme d'ordinateur tel que précédemment décrit.
L'invention sera mieux comprise à la lumière de la description qui suit d'un mode de mise en uvre particulier non limitatif de l'invention.
BREVE DESCRIPTION DES DESSINS
Il sera fait référence aux dessins annexés parmi lesquels :
La figure 1 représente schématiquement différents modules d'un hélicoptère dans lequel est mise en uvre l'invention ;
La figure 2 représente des étapes du procédé de détection d'obstacles selon l'invention ;
La figure 3 représente la mise en uvre de l'algorithme de segmentation sémantique ;
La figure 4 représente un réseau de neurones U-Net ;
La figure 5 représente un réseau de neurones HRNet ;
La figure 6 représente des images stéréos et permet d'illustrer la vérification de la disparité ;
La figure 7 représente un objet et les centres optiques de deux caméras ;
La figure 8 illustre la manière dont sont reconstruites les coordonnées 3D d'un pixel ;
La figure 9 représente une image correspondant à un résultat réel de la mise en uvre du procédé de détection d'obstacles selon l'invention.
On propose de plus un programme d'ordinateur comprenant des instructions qui conduisent l'unité de traitement du système tel que précédemment décrit à exécuter les étapes du procede de detection d'obstacles tel que precedemment décrit.
On propose de plus un support d'enregistrement lisible par ordinateur, sur lequel est enregistré le programme d'ordinateur tel que précédemment décrit.
L'invention sera mieux comprise à la lumière de la description qui suit d'un mode de mise en uvre particulier non limitatif de l'invention.
BREVE DESCRIPTION DES DESSINS
Il sera fait référence aux dessins annexés parmi lesquels :
La figure 1 représente schématiquement différents modules d'un hélicoptère dans lequel est mise en uvre l'invention ;
La figure 2 représente des étapes du procédé de détection d'obstacles selon l'invention ;
La figure 3 représente la mise en uvre de l'algorithme de segmentation sémantique ;
La figure 4 représente un réseau de neurones U-Net ;
La figure 5 représente un réseau de neurones HRNet ;
La figure 6 représente des images stéréos et permet d'illustrer la vérification de la disparité ;
La figure 7 représente un objet et les centres optiques de deux caméras ;
La figure 8 illustre la manière dont sont reconstruites les coordonnées 3D d'un pixel ;
La figure 9 représente une image correspondant à un résultat réel de la mise en uvre du procédé de détection d'obstacles selon l'invention.
8 DESCRIPTION DETAILLEE DE L'INVENTION
On décrit ici un mode de réalisation non limitatif de l'invention, dans lequel le procédé de détection d'obstacles selon l'invention est utilisé pour fournir une assistance au pilote d'un hélicoptère.
En référence à la figure 1, l'hélicoptère 1 comporte tout d'abord un dispositif de capture 2 destiné à capturer des images de l'environnement de l'hélicoptère 1.
Le dispositif de capture 2 comprend ici une pluralité
de caméras stéréos infrarouges 3, en l'occurrence deux caméras frontales stéréos et deux caméras latérales stéréos.
Les caméras 3 comprennent des caméras de gauche 3a, situées à gauche - bâbord - de l'hélicoptère 1 et des caméras de droite 3b, situées à droite - tribord - de l'hélicoptère 1.
Les capteurs optiques des caméras 3 sont des capteurs grand champ (par exemple de classe 180 , avec 80 de champ de vue par caméra individuelle). Les capteurs optiques sont par exemple du type thermo-détecteur utilisant la technologie micro-bolomètre, ou du type photodétecteur utilisant une technologie à base de silicium.
Les caméras 3 fonctionnent ici dans le domaine de l'infrarouge lointain (LWIR : Long Wave InfraRed). Le procédé de détection d'obstacles selon l'invention est donc utilisable et efficace de jour comme de nuit.
L'hélicoptère 1 comprend aussi une centrale inertielle 4 intégrant une unité de mesure inertielle 5 (UMI) et permettant d'estimer l'orientation, la position et la vitesse de l'hélicoptère 1. L'UMI 5 intègre des capteurs de navigation comprenant à minima trois accéléromètres et trois gyromètres ou gyroscopes.
L'hélicoptère 1 comprend de plus une unité de traitement 6 comprenant au moins un composant de traitement 7 qui est
On décrit ici un mode de réalisation non limitatif de l'invention, dans lequel le procédé de détection d'obstacles selon l'invention est utilisé pour fournir une assistance au pilote d'un hélicoptère.
En référence à la figure 1, l'hélicoptère 1 comporte tout d'abord un dispositif de capture 2 destiné à capturer des images de l'environnement de l'hélicoptère 1.
Le dispositif de capture 2 comprend ici une pluralité
de caméras stéréos infrarouges 3, en l'occurrence deux caméras frontales stéréos et deux caméras latérales stéréos.
Les caméras 3 comprennent des caméras de gauche 3a, situées à gauche - bâbord - de l'hélicoptère 1 et des caméras de droite 3b, situées à droite - tribord - de l'hélicoptère 1.
Les capteurs optiques des caméras 3 sont des capteurs grand champ (par exemple de classe 180 , avec 80 de champ de vue par caméra individuelle). Les capteurs optiques sont par exemple du type thermo-détecteur utilisant la technologie micro-bolomètre, ou du type photodétecteur utilisant une technologie à base de silicium.
Les caméras 3 fonctionnent ici dans le domaine de l'infrarouge lointain (LWIR : Long Wave InfraRed). Le procédé de détection d'obstacles selon l'invention est donc utilisable et efficace de jour comme de nuit.
L'hélicoptère 1 comprend aussi une centrale inertielle 4 intégrant une unité de mesure inertielle 5 (UMI) et permettant d'estimer l'orientation, la position et la vitesse de l'hélicoptère 1. L'UMI 5 intègre des capteurs de navigation comprenant à minima trois accéléromètres et trois gyromètres ou gyroscopes.
L'hélicoptère 1 comprend de plus une unité de traitement 6 comprenant au moins un composant de traitement 7 qui est
9 adapté à exécuter des instructions d'un programme pour mettre en uvre le procédé de détection d'obstacles selon l'invention. Le programme est stocké dans une mémoire 8 de l'unité de traitement 6. Le composant de traitement 7 est par exemple un processeur classique, un processeur graphique (ou GPU, pour Graphics Processor Unit), un microcontrôleur, un DSP (pour Digital Signal Processor, que l'on peut traduire par processeur de signal numérique ), ou bien un circuit logique programmable tel qu'un FPGA (pour Field Programmable Gate Arrays) ou un ASIC (pour Application Specific Integrated Circuit).
En référence à la figure 2, le procédé de détection d'obstacles fonctionne de la manière suivante.
L'unité de traitement 6 acquiert en temps réel des images stéréos brutes Isb. Les images stéréos brutes Isb sont représentatives de l'environnement de l'hélicoptère 1 et sont produites par les caméras 3 du dispositif de capture 2. Les images stéréos brutes Isb comprenant une image brute de gauche et une image brute de droite.
L'unité de traitement 6 met alors en uvre un algorithme de segmentation sémantique de type apprentissage profond (deep learning), qui utilise un réseau de neurones adapté à
la segmentation d'images.
En référence à la figure 3, la mise en oeuvre de l'algorithme de segmentation sémantique permet de produire une première image segmentée lei à partir d'une première image brute Ibl, la première images brute Ibl étant l'image brute de gauche ou l'image brute de droite. Ici, par exemple, la première image brute Ibl est l'image brute de gauche.
Le réseau de neurones est par exemple un réseau U-Net, un réseau HRNet (pour High-Resolution Network), ou un réseau HRNet + OCR (OCR pour Object-Contextual Representation).
Le réseau U-Net 10, dont un exemple est visible sur la figure 4, est un réseau de neurones convolutif, qui comporte une partie encodeur 11 et une partie décodeur 12. Le réseau
En référence à la figure 2, le procédé de détection d'obstacles fonctionne de la manière suivante.
L'unité de traitement 6 acquiert en temps réel des images stéréos brutes Isb. Les images stéréos brutes Isb sont représentatives de l'environnement de l'hélicoptère 1 et sont produites par les caméras 3 du dispositif de capture 2. Les images stéréos brutes Isb comprenant une image brute de gauche et une image brute de droite.
L'unité de traitement 6 met alors en uvre un algorithme de segmentation sémantique de type apprentissage profond (deep learning), qui utilise un réseau de neurones adapté à
la segmentation d'images.
En référence à la figure 3, la mise en oeuvre de l'algorithme de segmentation sémantique permet de produire une première image segmentée lei à partir d'une première image brute Ibl, la première images brute Ibl étant l'image brute de gauche ou l'image brute de droite. Ici, par exemple, la première image brute Ibl est l'image brute de gauche.
Le réseau de neurones est par exemple un réseau U-Net, un réseau HRNet (pour High-Resolution Network), ou un réseau HRNet + OCR (OCR pour Object-Contextual Representation).
Le réseau U-Net 10, dont un exemple est visible sur la figure 4, est un réseau de neurones convolutif, qui comporte une partie encodeur 11 et une partie décodeur 12. Le réseau
10 comporte un bloc de réseau qui traite la réponse de l'image à des échelles successives de plus en plus petites (partie encodeur), puis un bloc de réseau qui traite la réponse de l'image à des échelles successives de plus en plus grandes (partie décodeur), avant de réaliser une segmentation sémantique.
10 Le réseau HRNet 14, dont un exemple est visible sur la figure 5, est caractérisé par le fait de traiter l'image à
différentes échelles en même temps.
Le réseau HRNet + OCR est la somme de deux réseaux. Le réseau OCR est caractérisé par l'utilisation d'un mécanisme d'attention qui consiste à mesurer des corrélations entre les canaux et les pixels constituant les derniers blocs du réseau.
L'algorithme de segmentation sémantique a été
préalablement entraîné en utilisant une base de données préalablement établie. Les poids associés aux neurones sont calculés à partir de la base de données lors d'un processus d'entraînement.
La base de données est une base de données annotée ; on parle aussi pour un tel apprentissage d'apprentissage supervisé sur des données étiquetées. Les obstacles ont été
annotés à la main.
Cette base de données comprend à la fois des images issues de vols réels (vols d'acquisition) et des masques.
Les images sont issues de séquences réalisées sur plusieurs centaines d'heures de vol.
Les images sont des images infrarouges.
10 Le réseau HRNet 14, dont un exemple est visible sur la figure 5, est caractérisé par le fait de traiter l'image à
différentes échelles en même temps.
Le réseau HRNet + OCR est la somme de deux réseaux. Le réseau OCR est caractérisé par l'utilisation d'un mécanisme d'attention qui consiste à mesurer des corrélations entre les canaux et les pixels constituant les derniers blocs du réseau.
L'algorithme de segmentation sémantique a été
préalablement entraîné en utilisant une base de données préalablement établie. Les poids associés aux neurones sont calculés à partir de la base de données lors d'un processus d'entraînement.
La base de données est une base de données annotée ; on parle aussi pour un tel apprentissage d'apprentissage supervisé sur des données étiquetées. Les obstacles ont été
annotés à la main.
Cette base de données comprend à la fois des images issues de vols réels (vols d'acquisition) et des masques.
Les images sont issues de séquences réalisées sur plusieurs centaines d'heures de vol.
Les images sont des images infrarouges.
11 Chaque pixel des images de la base de données est encodé
pour désigner une classe particulière parmi une pluralité de classes.
Les classes annotées ont été sélectionnées pour représenter deux types d'objet : des objets formant des obstacles et des objets constituant l'environnement. Les objets constituant l'environnement ont pour but d'être identifiés afin de faciliter la discrimination des obstacles dans différents environnements. La discrimination de l'environnement permet aussi d'identifier dans l'image de potentielles zones d'atterrissage et la ligne d'horizon.
La pluralité de classes comprend ici sept classes, qui désignent respectivement le ciel, l'eau, le sol, la végétation, les câbles, les pylônes, et les autres types d'obstacles de sursol humain (autres que les câbles et les pylônes). D'autres classes peuvent être définies, par exemple une classe désignant les humains et une autre classe désignant des véhicules.
La définition des classes est adaptée à l'application dans laquelle est mise en uvre l'invention. Les classes choisies ici permettent de différencier des types d'obstacles qui sont spécifiquement dangereux pour un hélicoptère, comme les câbles, et permettent aussi la détection d'obstacles qui peuvent constituer des points de passage, comme les pylônes. Un pylône est un indicateur de l'altitude de vol à conserver pour éviter toute collision avec des câbles.
La base de données a été créée de manière à éviter la redondance d'informations visuelles dans les différentes classes. On apparente donc certains objets à d'autres objets de type différent mais ayant une apparence visuelle proche.
pour désigner une classe particulière parmi une pluralité de classes.
Les classes annotées ont été sélectionnées pour représenter deux types d'objet : des objets formant des obstacles et des objets constituant l'environnement. Les objets constituant l'environnement ont pour but d'être identifiés afin de faciliter la discrimination des obstacles dans différents environnements. La discrimination de l'environnement permet aussi d'identifier dans l'image de potentielles zones d'atterrissage et la ligne d'horizon.
La pluralité de classes comprend ici sept classes, qui désignent respectivement le ciel, l'eau, le sol, la végétation, les câbles, les pylônes, et les autres types d'obstacles de sursol humain (autres que les câbles et les pylônes). D'autres classes peuvent être définies, par exemple une classe désignant les humains et une autre classe désignant des véhicules.
La définition des classes est adaptée à l'application dans laquelle est mise en uvre l'invention. Les classes choisies ici permettent de différencier des types d'obstacles qui sont spécifiquement dangereux pour un hélicoptère, comme les câbles, et permettent aussi la détection d'obstacles qui peuvent constituer des points de passage, comme les pylônes. Un pylône est un indicateur de l'altitude de vol à conserver pour éviter toute collision avec des câbles.
La base de données a été créée de manière à éviter la redondance d'informations visuelles dans les différentes classes. On apparente donc certains objets à d'autres objets de type différent mais ayant une apparence visuelle proche.
12 Par exemple, un lampadaire n'est pas un pylône électrique mais son apparence visuelle est telle qu'il peut facilement s'y apparenter.
De plus, on a fixé des limites sur la taille des objets, de sorte que des objets comprenant un faible nombre de pixels ne sont pas annotés. Par exemple, une maison ayant une taille de quatre pixels n'est pas annotée.
Avantageusement, seule une partie de la base est utilisée pour l'apprentissage, alors qu'une autre partie est utilisée pour vérifier les résultats obtenus et éviter ainsi un sur-apprentissage (Overfitting) du réseau.
Plus précisément, la base comporte trois parties : une partie entraînement qui est directement utilisée dans la rétropropagation des gradients pour élaborer itérativement les poids des neurones, une partie validation qui sert à monitorer les performances du réseau de neurones sur des données non vues à l'entraînement, et permet d'ajuster l'hyper-paramètre d'entraînement, et enfin une partie test , qui n'est connue que de l'entité / organisation cliente. La partie test peut être utilisée par l'entité
cliente pour mesurer les performances avec ses propres données.
Une fois que le réseau a été entraîné, on applique une image d'entrée en entrée du réseau, et on obtient typiquement en sortie de réseau un bloc d'inférence. Ce bloc d'inférence est une matrice de dimension CxHxW, où C est le nombre de classes, H est la hauteur de l'image en entrée et W est la largeur de l'image en entrée.
Ce bloc d'inférence est la réponse de l'image d'entrée au réseau de neurone.
On normalise ensuite chaque pixel en utilisant une fonction de type Softmax. Cela traduit la réponse de l'image
De plus, on a fixé des limites sur la taille des objets, de sorte que des objets comprenant un faible nombre de pixels ne sont pas annotés. Par exemple, une maison ayant une taille de quatre pixels n'est pas annotée.
Avantageusement, seule une partie de la base est utilisée pour l'apprentissage, alors qu'une autre partie est utilisée pour vérifier les résultats obtenus et éviter ainsi un sur-apprentissage (Overfitting) du réseau.
Plus précisément, la base comporte trois parties : une partie entraînement qui est directement utilisée dans la rétropropagation des gradients pour élaborer itérativement les poids des neurones, une partie validation qui sert à monitorer les performances du réseau de neurones sur des données non vues à l'entraînement, et permet d'ajuster l'hyper-paramètre d'entraînement, et enfin une partie test , qui n'est connue que de l'entité / organisation cliente. La partie test peut être utilisée par l'entité
cliente pour mesurer les performances avec ses propres données.
Une fois que le réseau a été entraîné, on applique une image d'entrée en entrée du réseau, et on obtient typiquement en sortie de réseau un bloc d'inférence. Ce bloc d'inférence est une matrice de dimension CxHxW, où C est le nombre de classes, H est la hauteur de l'image en entrée et W est la largeur de l'image en entrée.
Ce bloc d'inférence est la réponse de l'image d'entrée au réseau de neurone.
On normalise ensuite chaque pixel en utilisant une fonction de type Softmax. Cela traduit la réponse de l'image
13 en une matrice où la somme des C éléments de la dimension correspondant aux classes et associée à chaque pixel particulier est égale à 1 environ. Il s'agit uniquement d'une réponse normalisée et non d'une probabilité. Cette valeur normalisée permet d'avoir une visibilité SUT- la prépondérance d'une classe par rapport aux autres, simplement à partir de sa valeur prise isolément.
Pour obtenir la classe d'un pixel, on extrait la coordonnée de l'élément dont la réponse au système est la plus élevée de la ligne correspondant aux classes et associée audit pixel.
On associe ainsi une classe à chaque pixel de la première image brute. On peut aussi associer ensuite une couleur à chaque classe.
On note que l'utilisation d'une base de données comprenant des images produites dans le domaine de l'infrarouge, pour entraîner l'algorithme de segmentation sémantique, permet d'améliorer très significativement l'efficacité dudit algorithme en opération pour réaliser la détection et la reconnaissance d'obstacles sur des images infrarouges. En effet, l'entraînement d'un tel algorithme avec une base de données constituée d'images en visible ou d'images synthétiques ne garantit pas son fonctionnement dans un autre domaine. Le changement de domaine du visible en infrarouge est en effet une opération compliquée et mal maîtrisée aujourd'hui.
L'unité de traitement 6 rectifie alors les images stéréos brutes Isb pour obtenir des images stéréos rectifiés Isr (paire d'images rectifiées), et la première image segmentée lei pour obtenir une première image segmentée rectifiée Ierl.
Pour obtenir la classe d'un pixel, on extrait la coordonnée de l'élément dont la réponse au système est la plus élevée de la ligne correspondant aux classes et associée audit pixel.
On associe ainsi une classe à chaque pixel de la première image brute. On peut aussi associer ensuite une couleur à chaque classe.
On note que l'utilisation d'une base de données comprenant des images produites dans le domaine de l'infrarouge, pour entraîner l'algorithme de segmentation sémantique, permet d'améliorer très significativement l'efficacité dudit algorithme en opération pour réaliser la détection et la reconnaissance d'obstacles sur des images infrarouges. En effet, l'entraînement d'un tel algorithme avec une base de données constituée d'images en visible ou d'images synthétiques ne garantit pas son fonctionnement dans un autre domaine. Le changement de domaine du visible en infrarouge est en effet une opération compliquée et mal maîtrisée aujourd'hui.
L'unité de traitement 6 rectifie alors les images stéréos brutes Isb pour obtenir des images stéréos rectifiés Isr (paire d'images rectifiées), et la première image segmentée lei pour obtenir une première image segmentée rectifiée Ierl.
14 La rectification comprend une correction de distorsion et utilise des premiers paramètres Pl comprenant des paramètres extrinsèques et intrinsèques des caméras 3.
Les paramètres extrinsèques et intrinsèques ont été
produits au cours d'opérations de calihration réalisées en usine.
Les paramètres extrinsèques comprennent des niveaux de roulis, tangage et lacet des caméras 3 par rapport au repère système (repère associé à l'hélicoptère 1).
Les paramètres intrinsèques comprennent la distance focale de chaque caméra 3, la distance entre les caméras 3, des paramètres de distorsion, la taille de chaque pixel, l'entraxe binoculaire.
La rectification permet d'obtenir les images stéréos rectifiées Isr et la première image segmentée rectifiée Ierl, dont les lignes épipolaires sont horizontales.
L'unité de traitement 6 met alors en uvre un algorithme de calcul de disparité entre les images stéréos rectifiées Isr, pour obtenir une carte de disparité Cd.
La disparité est une mesure utilisée pour estimer la profondeur et donc pour reconstruire une vue de l'environnement de l'hélicoptère 1 en trois dimensions.
La carte de disparité Cd est une image numérique (image de disparité) qui contient l'information sur les correspondances des points d'une même scène prise avec deux angles de vue différents, en l'occurrence avec les caméras de gauche 3a et avec les caméras de droite 3h du dispositif de capture 2. Les images de disparités évoluent en temps réel.
L'unité de traitement 6 vérifie alors la valeur de disparité de chaque couple de pixels homologues comprenant un pixel de gauche d'une image de gauche (produite par les caméras de gauche 3a du dispositif de capture 2) et un pixel de droite d'une image de droite (produite par les caméras de droite 3b du dispositif de capture 2).
La vérification de la disparité permet notamment 5 d'éliminer les faux appariements causés par les occultations.
En référence à la figure 6, la vérification de la validité de la disparité d'un couple de pixels homologues est ici mise en uvre de la manière suivante.
10 Le couple de pixels homologues comprend un pixel de gauche 15a et un pixel de droite 15b, qui appartiennent respectivement à une image de gauche 16a et à une image de droite 16b (et qui ont une même coordonnée y en vertical).
Avec l'image de gauche 16a comme référence, la
Les paramètres extrinsèques et intrinsèques ont été
produits au cours d'opérations de calihration réalisées en usine.
Les paramètres extrinsèques comprennent des niveaux de roulis, tangage et lacet des caméras 3 par rapport au repère système (repère associé à l'hélicoptère 1).
Les paramètres intrinsèques comprennent la distance focale de chaque caméra 3, la distance entre les caméras 3, des paramètres de distorsion, la taille de chaque pixel, l'entraxe binoculaire.
La rectification permet d'obtenir les images stéréos rectifiées Isr et la première image segmentée rectifiée Ierl, dont les lignes épipolaires sont horizontales.
L'unité de traitement 6 met alors en uvre un algorithme de calcul de disparité entre les images stéréos rectifiées Isr, pour obtenir une carte de disparité Cd.
La disparité est une mesure utilisée pour estimer la profondeur et donc pour reconstruire une vue de l'environnement de l'hélicoptère 1 en trois dimensions.
La carte de disparité Cd est une image numérique (image de disparité) qui contient l'information sur les correspondances des points d'une même scène prise avec deux angles de vue différents, en l'occurrence avec les caméras de gauche 3a et avec les caméras de droite 3h du dispositif de capture 2. Les images de disparités évoluent en temps réel.
L'unité de traitement 6 vérifie alors la valeur de disparité de chaque couple de pixels homologues comprenant un pixel de gauche d'une image de gauche (produite par les caméras de gauche 3a du dispositif de capture 2) et un pixel de droite d'une image de droite (produite par les caméras de droite 3b du dispositif de capture 2).
La vérification de la disparité permet notamment 5 d'éliminer les faux appariements causés par les occultations.
En référence à la figure 6, la vérification de la validité de la disparité d'un couple de pixels homologues est ici mise en uvre de la manière suivante.
10 Le couple de pixels homologues comprend un pixel de gauche 15a et un pixel de droite 15b, qui appartiennent respectivement à une image de gauche 16a et à une image de droite 16b (et qui ont une même coordonnée y en vertical).
Avec l'image de gauche 16a comme référence, la
15 coordonnée du pixel de droite 15b vaut :
Xd ¨ Xg dispg(xg , y), dispg étant la disparité estimée en prenant l'image de gauche 16a comme référence.
Avec l'image de droite 16b comme référence, la coordonnée du pixel de gauche 15a vaut :
xg = dispd(xd Y), dispd étant la disparité estimée en prenant l'image de droite 16b comme référence.
Les disparités estimées doivent vérifier :
dispg(xg , y) = dispd(xg - dispg(xg , Y), Y).
dispd(xd Y) = dispg(xd + dispd(xd . Y) D'autres mécanismes pourraient être utilisés pour vérifier la disparité et, notamment, un mécanisme de post-accumulation des images de disparité. Ce mécanisme consiste à projeter les images de disparité passées sur l'image de disparité actuelle, afin de filtrer temporellement la valeur de disparité de chaque pixel. Pour ce faire, on utilise les
Xd ¨ Xg dispg(xg , y), dispg étant la disparité estimée en prenant l'image de gauche 16a comme référence.
Avec l'image de droite 16b comme référence, la coordonnée du pixel de gauche 15a vaut :
xg = dispd(xd Y), dispd étant la disparité estimée en prenant l'image de droite 16b comme référence.
Les disparités estimées doivent vérifier :
dispg(xg , y) = dispd(xg - dispg(xg , Y), Y).
dispd(xd Y) = dispg(xd + dispd(xd . Y) D'autres mécanismes pourraient être utilisés pour vérifier la disparité et, notamment, un mécanisme de post-accumulation des images de disparité. Ce mécanisme consiste à projeter les images de disparité passées sur l'image de disparité actuelle, afin de filtrer temporellement la valeur de disparité de chaque pixel. Pour ce faire, on utilise les
16 valeurs de disparités, les informations de navigation issues des centrales inertielles et des informations GPS, les paramètres intrinsèques et les paramètres extrinsèques des caméras. Une telle post-accumulation permet de réduire les erreurs de la disparité. Plusieurs mécanismes de vérification pourraient être utilisés de manière combinée.
Le procédé de détection met alors en uvre une transformation spatiale de la première image segmentée rectifiée Ierl, en utilisant la carte de disparité, pour produire une deuxième image segmentée rectifiée Ier2. La deuxième image segmentée rectifiée Ier2 correspond au côté
opposé à celui de la première image brute (c'est-à-dire ici au côté droit). On produit ainsi des images stéréos segmentées rectifiées Iser. La transformation spatiale est ici une interpolation spatiale.
La carte de disparité Cd est donc utilisée pour transposer la première image segmentée rectifiée Ierl (ici image du côté gauche) sur l'oeil de l'autre côté (ici oeil droit), par interpolation spatiale de Ierl avec le champ de mouvement induit par la disparité, pour produire une deuxième image segmentée rectifiéeIer2 (ici, image du côté droit) et constituer ainsi une paire stéréo segmentée Iser à partir d'une seule inférence de segmentation sur l'oeil gauche (gain de calcul).
Les images stéréos rectifiées Isr et les images stéréos segmentées rectifiées Iser sont ensuite projetées dans un repère associé au casque du pilote de l'hélicoptère 1.
L'unité de traitement 6 met alors en uvre un algorithme de reconstruction en trois dimensions, utilisant la carte de disparité Cd, pour produire des coordonnées en trois dimensions pour chaque pixel des images stéréos brutes Isb (images d'origine)
Le procédé de détection met alors en uvre une transformation spatiale de la première image segmentée rectifiée Ierl, en utilisant la carte de disparité, pour produire une deuxième image segmentée rectifiée Ier2. La deuxième image segmentée rectifiée Ier2 correspond au côté
opposé à celui de la première image brute (c'est-à-dire ici au côté droit). On produit ainsi des images stéréos segmentées rectifiées Iser. La transformation spatiale est ici une interpolation spatiale.
La carte de disparité Cd est donc utilisée pour transposer la première image segmentée rectifiée Ierl (ici image du côté gauche) sur l'oeil de l'autre côté (ici oeil droit), par interpolation spatiale de Ierl avec le champ de mouvement induit par la disparité, pour produire une deuxième image segmentée rectifiéeIer2 (ici, image du côté droit) et constituer ainsi une paire stéréo segmentée Iser à partir d'une seule inférence de segmentation sur l'oeil gauche (gain de calcul).
Les images stéréos rectifiées Isr et les images stéréos segmentées rectifiées Iser sont ensuite projetées dans un repère associé au casque du pilote de l'hélicoptère 1.
L'unité de traitement 6 met alors en uvre un algorithme de reconstruction en trois dimensions, utilisant la carte de disparité Cd, pour produire des coordonnées en trois dimensions pour chaque pixel des images stéréos brutes Isb (images d'origine)
17 L'algorithme de reconstruction en trois dimensions utilise des deuxièmes paramètres P2 comprenant les paramètres extrinsèques et intrinsèques des caméras 3, ainsi que des données de navigation produites par les capteurs de navigation de l'UNI 5.
Les données de navigation comprennent des niveaux de roulis, de tangage et de lacet de l'hélicoptère 1 dans un repère géographique local, ainsi que des niveaux de roulis, de tangage et de lacet des caméras 3 par rapport à
l'hélicoptère 1, ainsi qu'une latitude et une longitude de l'hélicoptère 1.
La reconstruction en trois dimensions utilise les principes qui suivent.
Sur la figure 7, on voit que, pour un point objet P
dans un repère cartésien, on peut trouver un point image de coordonnées (u, v) dans un repère associé à une caméra de gauche et un point image de coordonnées (u', v) dans un repère associé à une caméra de droite (pour des caméras rectifiées et un objet visible le champ de vision des deux caméras). Chaque pixel dans la caméra de centre optique C a des coordonnées (u, v) et dans la caméra de centre C' des coordonnées (u', v').
On nomme disparité d la distance (u-u').
Z est la distance du point objet aux centres optiques des deux caméras (Z = Pz).
C-C' est la baseline B (ligne de base) et correspond à
la distance entre les centres optiques des caméras C et C'.
f (distance focale) est la distance des centres optiques aux matrices de pixels.
Pour trouver le lien entre disparité et profondeur, on applique le théorème de Thalès.
On obtient alors :
Les données de navigation comprennent des niveaux de roulis, de tangage et de lacet de l'hélicoptère 1 dans un repère géographique local, ainsi que des niveaux de roulis, de tangage et de lacet des caméras 3 par rapport à
l'hélicoptère 1, ainsi qu'une latitude et une longitude de l'hélicoptère 1.
La reconstruction en trois dimensions utilise les principes qui suivent.
Sur la figure 7, on voit que, pour un point objet P
dans un repère cartésien, on peut trouver un point image de coordonnées (u, v) dans un repère associé à une caméra de gauche et un point image de coordonnées (u', v) dans un repère associé à une caméra de droite (pour des caméras rectifiées et un objet visible le champ de vision des deux caméras). Chaque pixel dans la caméra de centre optique C a des coordonnées (u, v) et dans la caméra de centre C' des coordonnées (u', v').
On nomme disparité d la distance (u-u').
Z est la distance du point objet aux centres optiques des deux caméras (Z = Pz).
C-C' est la baseline B (ligne de base) et correspond à
la distance entre les centres optiques des caméras C et C'.
f (distance focale) est la distance des centres optiques aux matrices de pixels.
Pour trouver le lien entre disparité et profondeur, on applique le théorème de Thalès.
On obtient alors :
18 f ¨ ¨ ¨((1) Z
Cette équation donne :
(C¨CI)f Z = __________________ (2) En remplaçant C-C' et u-u' par respectivement B et d, on obtient :
Z = ¨Bdf (3) Ici, f et d sont exprimées en mètres, mais ces grandeurs sont converties en pixels dans la réalité, ce qui ne change pas l'équation (3). Pour exprimer la disparité d en pixels, il suffit de substituer d par d * pitch dans l'équation ci-dessus, pitch étant la taille en mètres du pixel.
On peut généraliser le raisonnement et, à partir de l'équation (3), on retrouve les coordonnées Px et Py du point objet P. Les centres des repères pixels des caméras ont pour coordonnées (u0, v0) et (u'O, vr0).
On a :
v¨v0 f , õ
¨ = ¨ ) et Py Pz (uo+ufo) r(5) Px Pz En injectant le résultat de l'équation (3) dans les équations (4) et (5) à la place de Pz, on obtient :
B(v¨v0) Py = ______________ d (6) B(u (uo+u,o) Px = 2 (7).
d Pour une carte de disparité donnée, on calcule donc les coordonnées [Px, Py, Pz] de chaque pixel ayant une disparité
valide en utilisant les équations (3), (6) et (7).
Pour chaque pixel (u, v), on crée un vecteur [u, v, d, 1].
Cette équation donne :
(C¨CI)f Z = __________________ (2) En remplaçant C-C' et u-u' par respectivement B et d, on obtient :
Z = ¨Bdf (3) Ici, f et d sont exprimées en mètres, mais ces grandeurs sont converties en pixels dans la réalité, ce qui ne change pas l'équation (3). Pour exprimer la disparité d en pixels, il suffit de substituer d par d * pitch dans l'équation ci-dessus, pitch étant la taille en mètres du pixel.
On peut généraliser le raisonnement et, à partir de l'équation (3), on retrouve les coordonnées Px et Py du point objet P. Les centres des repères pixels des caméras ont pour coordonnées (u0, v0) et (u'O, vr0).
On a :
v¨v0 f , õ
¨ = ¨ ) et Py Pz (uo+ufo) r(5) Px Pz En injectant le résultat de l'équation (3) dans les équations (4) et (5) à la place de Pz, on obtient :
B(v¨v0) Py = ______________ d (6) B(u (uo+u,o) Px = 2 (7).
d Pour une carte de disparité donnée, on calcule donc les coordonnées [Px, Py, Pz] de chaque pixel ayant une disparité
valide en utilisant les équations (3), (6) et (7).
Pour chaque pixel (u, v), on crée un vecteur [u, v, d, 1].
19 On crée alors une matrice Q qui est de la forme suivante pour calculer les coordonnées cartésiennes non-homogènes de chaque pixel par produit matriciel :
1 0 0 ¨Cx 0 1 0 ¨Cy Q =0 0 0 0 0 ¨1/Tx (cx ¨ Cx)/Tx I
Tx étant la baseline, f étant la focale, et (Cx, Cy), (Cx', Cy') étant les coordonnées des centres optiques des caméras en pixels.
L'unité de traitement 6 produit ainsi des coordonnées en trois dimensions de pixels d'une image reconstruite en trois dimensions représentative de l'environnement de l'hélicoptère 1. Les coordonnées en trois dimensions des pixels sont définies dans un repère géographique local associé à l'hélicoptère 1 et corrigé en lacet (grâce aux données de navigation).
Les coordonnées en trois dimensions des pixels sont alors projetées de manière à produire des images en deux dimensions I2D des coordonnées en trois dimensions de chaque pixel reconstruit.
En parallèle, l'unité de traitement 6 analyse les images stéréos segmentées rectifiées Iser et sélectionne la classe de chaque pixel en fonction de sa réponse à l'algorithme de segmentation sémantique.
L'unité de traitement 6 réalise alors une instanciation de chaque obstacle et produit une liste d'instances d'obstacles prédéfinis Obst présentes dans l'environnement de l'hélicoptère 1 à partir des images stéréos segmentées rectifiées Iser.
L'unité de traitement 6 détermine qu'un groupe de pixels d'une image stéréo segmentée rectifiée Iser forme une instance d'obstacle prédéfini Obst lorsque lesdits pixels sont connectés entre eux. On considère ici que deux pixels sont connectés entre eux si l'un des deux pixels appartient au voisinage de l'autre et si les deux pixels appartiennent à une même classe.
5 -Le voisinage d'un pixel particulier est défini ici comme comprenant huit pixels voisins primaires autour dudit pixel particulier.
L'unité de traitement 6 alloue un identifiant spécifique pour chaque groupe de pixels qui sont voisins 10 entre eux afin de pouvoir classifier chaque obstacle.
L'unité de traitement 6 produit alors un flux comprenant les images labellisées Ilab ainsi que les coordonnées de toutes les instances d'obstacles prédéfinis Obst.
L'unité de traitement 6 intègre alors, en utilisant les 15 coordonnées en trois dimensions, les instances d'obstacles prédéfinis Obst dans des images intermédiaires obtenues à
partir des images stéréos rectifiées Isr, pour produire des images augmentées la destinées à fournir une assistance au pilotage de l'hélicoptère 1.
1 0 0 ¨Cx 0 1 0 ¨Cy Q =0 0 0 0 0 ¨1/Tx (cx ¨ Cx)/Tx I
Tx étant la baseline, f étant la focale, et (Cx, Cy), (Cx', Cy') étant les coordonnées des centres optiques des caméras en pixels.
L'unité de traitement 6 produit ainsi des coordonnées en trois dimensions de pixels d'une image reconstruite en trois dimensions représentative de l'environnement de l'hélicoptère 1. Les coordonnées en trois dimensions des pixels sont définies dans un repère géographique local associé à l'hélicoptère 1 et corrigé en lacet (grâce aux données de navigation).
Les coordonnées en trois dimensions des pixels sont alors projetées de manière à produire des images en deux dimensions I2D des coordonnées en trois dimensions de chaque pixel reconstruit.
En parallèle, l'unité de traitement 6 analyse les images stéréos segmentées rectifiées Iser et sélectionne la classe de chaque pixel en fonction de sa réponse à l'algorithme de segmentation sémantique.
L'unité de traitement 6 réalise alors une instanciation de chaque obstacle et produit une liste d'instances d'obstacles prédéfinis Obst présentes dans l'environnement de l'hélicoptère 1 à partir des images stéréos segmentées rectifiées Iser.
L'unité de traitement 6 détermine qu'un groupe de pixels d'une image stéréo segmentée rectifiée Iser forme une instance d'obstacle prédéfini Obst lorsque lesdits pixels sont connectés entre eux. On considère ici que deux pixels sont connectés entre eux si l'un des deux pixels appartient au voisinage de l'autre et si les deux pixels appartiennent à une même classe.
5 -Le voisinage d'un pixel particulier est défini ici comme comprenant huit pixels voisins primaires autour dudit pixel particulier.
L'unité de traitement 6 alloue un identifiant spécifique pour chaque groupe de pixels qui sont voisins 10 entre eux afin de pouvoir classifier chaque obstacle.
L'unité de traitement 6 produit alors un flux comprenant les images labellisées Ilab ainsi que les coordonnées de toutes les instances d'obstacles prédéfinis Obst.
L'unité de traitement 6 intègre alors, en utilisant les 15 coordonnées en trois dimensions, les instances d'obstacles prédéfinis Obst dans des images intermédiaires obtenues à
partir des images stéréos rectifiées Isr, pour produire des images augmentées la destinées à fournir une assistance au pilotage de l'hélicoptère 1.
20 Les images intermédiaires sont ici les images stéréos rectifiées Isr elles-mêmes, c'est-à-dire que les instances d'obstacles prédéfinis Obst sont intégrées dans les images stéréos rectifiées Isr pour produire les images augmentées la.
Pour cela, l'unité de traitement 6 met tout d'abord en uvre un algorithme de calcul pour extraire des caractéristiques globales sur la taille de chaque instance d'obstacle prédéfini en hauteur et largeur en mesurant l'écart-type des positions 3D des pixels composant ladite instance d'obstacle prédéfini.
L'algorithme de calcul acquiert ainsi les coordonnées de chaque instance d'obstacle prédéfini Obst et utilise les
Pour cela, l'unité de traitement 6 met tout d'abord en uvre un algorithme de calcul pour extraire des caractéristiques globales sur la taille de chaque instance d'obstacle prédéfini en hauteur et largeur en mesurant l'écart-type des positions 3D des pixels composant ladite instance d'obstacle prédéfini.
L'algorithme de calcul acquiert ainsi les coordonnées de chaque instance d'obstacle prédéfini Obst et utilise les
21 images en deux dimensions I2D des coordonnées en trois dimensions des pixels reconstruits pour calculer, pour chaque instance d'obstacle prédéfini Obst, la distance moyenne entre ladite instance d'obstacle prédéfini et l'hélicoptère, ainsi que la largeur et la hauteur de ladite instance d'obstacle prédéfini.
L'unité de traitement 6 connaît en effet les pixels appartenant à un même obstacle grâce à la segmentation, la reconstruction 3D de chaque pixel ayant une disparité valide, et peut donc en déduire les caractéristiques dans le repère géographique local centré sur l'hélicoptère 1 et corrigé en lacet.
La mesure des caractéristiques physiques des obstacles permet d'ajuster la trajectoire de vol en fonction des données.
L'unité de traitement 6 met en uvre un algorithme de fusion pour fusionner les instances d'obstacles prédéfinis Obst dans les images stéréos rectifiées Isr.
Pour chaque instance d'obstacle prédéfini Obst, la fusion est réalisée par l'incrustation d'une croix sur un barycentre de ladite instance d'obstacle prédéfini, avec en plus les informations sur ses caractéristiques géométriques.
Les pixels appartenant à une instance d'obstacle prédéfini sont mis en surbrillance en augmentant localement l'intensité de chaque pixel de l'instance, ou bien en insérant une fausse couleur. Cette fausse couleur peut d'ailleurs correspondre à un type d'obstacle.
L'unité de traitement 6 produit ainsi les images augmentées la (en l'occurrence des images stéréos).
Les images augmentées la sont alors projetées sur la visière du casque de pilotage du pilote. Le casque est un casque stéréoscopique. Les images augmentées sont projetées
L'unité de traitement 6 connaît en effet les pixels appartenant à un même obstacle grâce à la segmentation, la reconstruction 3D de chaque pixel ayant une disparité valide, et peut donc en déduire les caractéristiques dans le repère géographique local centré sur l'hélicoptère 1 et corrigé en lacet.
La mesure des caractéristiques physiques des obstacles permet d'ajuster la trajectoire de vol en fonction des données.
L'unité de traitement 6 met en uvre un algorithme de fusion pour fusionner les instances d'obstacles prédéfinis Obst dans les images stéréos rectifiées Isr.
Pour chaque instance d'obstacle prédéfini Obst, la fusion est réalisée par l'incrustation d'une croix sur un barycentre de ladite instance d'obstacle prédéfini, avec en plus les informations sur ses caractéristiques géométriques.
Les pixels appartenant à une instance d'obstacle prédéfini sont mis en surbrillance en augmentant localement l'intensité de chaque pixel de l'instance, ou bien en insérant une fausse couleur. Cette fausse couleur peut d'ailleurs correspondre à un type d'obstacle.
L'unité de traitement 6 produit ainsi les images augmentées la (en l'occurrence des images stéréos).
Les images augmentées la sont alors projetées sur la visière du casque de pilotage du pilote. Le casque est un casque stéréoscopique. Les images augmentées sont projetées
22 dans les deux yeux du casque de manière à obtenir un effet stéréoscopique.
L'unité de traitement 6 réalise une extraction de la projection sténopé (repère où il n'y a pas de déformation du monde 3D), correspondant au champ de vision du pilote et à
l'orientation de son casque.
Bien entendu, l'invention n'est pas limitée au mode de réalisation décrit mais englobe toute variante entrant dans le champ de l'invention telle que définie par les revendications.
Dans le procédé de détection décrit ici, l'algorithme de segmentation est mis en uvre sur une seule image brute (gauche ou droite), appelée première image brute , correspondant à un seul il. La carte de disparité est ensuite utilisée pour projeter, via une transformation spatiale, la segmentation dans l'oeil non segmentée.
Il serait cependant possible de segmenter les deux images brutes, gauche et droite. Dans ce cas, sur la figure 2, l'étape de transformation spatiale n'est pas réalisée et les images stéréos segmentées rectifiées Iser sont obtenues directement en sortie de l'étape de rectification.
La segmentation sur une seule image permet un gain de temps de calcul.
L'invention n'est pas nécessairement mise en uvre pour fournir une aide au pilotage d'un hélicoptère, mais peut être utilisée dans tout type de véhicule, avec ou sans pilote : aéronef, véhicule terrestre, drone, tout type de robot (se déplaçant au sol, dans les airs), etc. Les images augmentées peuvent être utilisées pour réaliser une navigation autonome.
Les images intermédiaires, dans lesquelles sont intégrées les instances d'obstacles prédéfinis, ne sont pas
L'unité de traitement 6 réalise une extraction de la projection sténopé (repère où il n'y a pas de déformation du monde 3D), correspondant au champ de vision du pilote et à
l'orientation de son casque.
Bien entendu, l'invention n'est pas limitée au mode de réalisation décrit mais englobe toute variante entrant dans le champ de l'invention telle que définie par les revendications.
Dans le procédé de détection décrit ici, l'algorithme de segmentation est mis en uvre sur une seule image brute (gauche ou droite), appelée première image brute , correspondant à un seul il. La carte de disparité est ensuite utilisée pour projeter, via une transformation spatiale, la segmentation dans l'oeil non segmentée.
Il serait cependant possible de segmenter les deux images brutes, gauche et droite. Dans ce cas, sur la figure 2, l'étape de transformation spatiale n'est pas réalisée et les images stéréos segmentées rectifiées Iser sont obtenues directement en sortie de l'étape de rectification.
La segmentation sur une seule image permet un gain de temps de calcul.
L'invention n'est pas nécessairement mise en uvre pour fournir une aide au pilotage d'un hélicoptère, mais peut être utilisée dans tout type de véhicule, avec ou sans pilote : aéronef, véhicule terrestre, drone, tout type de robot (se déplaçant au sol, dans les airs), etc. Les images augmentées peuvent être utilisées pour réaliser une navigation autonome.
Les images intermédiaires, dans lesquelles sont intégrées les instances d'obstacles prédéfinis, ne sont pas
23 nécessairement les images stéréos rectifiées Isr, mais pourraient être d'autres images, et par exemple des images en trois dimensions.
Le procédé de détection d'obstacles selon l'invention n'est pas nécessairement mis en uvre dans une seule unité
de traitement intégrée dans un véhicule, mais peut être mis en uvre dans une ou plusieurs unités de traitement, parmi lesquelles l'une au moins peut se trouver à distance du véhicule (et par exemple dans une base de laquelle est parti le véhicule, dans un autre véhicule, dans un serveur du Cloud, etc.).
Le procédé de détection d'obstacles selon l'invention n'est pas nécessairement mis en uvre dans une seule unité
de traitement intégrée dans un véhicule, mais peut être mis en uvre dans une ou plusieurs unités de traitement, parmi lesquelles l'une au moins peut se trouver à distance du véhicule (et par exemple dans une base de laquelle est parti le véhicule, dans un autre véhicule, dans un serveur du Cloud, etc.).
Claims (20)
1. Procédé de détection d'obstacles, mis en uvre dans au moins une unité de traitement (6) et comprenant les étapes de :
- acquérir des images stéréos brutes (Tsh), représentatives d'un environnement d'un véhicule (1) et produites par des caméras stéréos (3), les images stéréos brutes comprenant une image brute de gauche et une image brute de droite ;
- mettre en uvre un algorithme de segmentation sémantique pour produire une première image segmentée (Ie1) à partir d'une première image brute, la première image brute étant l'image brute de gauche ou l'image brute de droite ;
- rectifier les images stéréos brutes pour obtenir des images stéréos rectifiées (Isr), et la première image segmentée pour obtenir une première image segmentée rectifiée (Ierl) ;
- mettre en uvre un algorithme de calcul de disparité entre les images stéréos rectifiées, pour produire une carte de disparité (Cd) ;
- mettre en ,xuvre une transformation spatiale de la première image segmentée rectifiée, en utilisant la carte de disparité, pour produire une deuxième image segmentée rectifiée, correspondant au côté opposé à celui de la première image brute, et produire ainsi des images stéréos segmentées rectifiées (Iser) ;
- produire une liste d'instances d'obstacles prédéfinis (Obst) présentes dans l'environnement du véhicule à partir des images stéréos segmentées rectifiées ;
- mettre en uvre un algorithme de reconstruction en trois dimensions, utilisant la carte de disparité, pour produire des coordonnées en trois dimensions pour chaque pixel des images stéréos brutes (Isb) ;
- intégrer, en utilisant les coordonnées en trois dimensions, les instances d'obstacles prédéfinis dans des images intermédiaires obtenues à partir des images stéréos rectifiées (Isr), pour produire des images augmentées (Ia) destinées à fournir une assistance au pilotage du véhicule.
- acquérir des images stéréos brutes (Tsh), représentatives d'un environnement d'un véhicule (1) et produites par des caméras stéréos (3), les images stéréos brutes comprenant une image brute de gauche et une image brute de droite ;
- mettre en uvre un algorithme de segmentation sémantique pour produire une première image segmentée (Ie1) à partir d'une première image brute, la première image brute étant l'image brute de gauche ou l'image brute de droite ;
- rectifier les images stéréos brutes pour obtenir des images stéréos rectifiées (Isr), et la première image segmentée pour obtenir une première image segmentée rectifiée (Ierl) ;
- mettre en uvre un algorithme de calcul de disparité entre les images stéréos rectifiées, pour produire une carte de disparité (Cd) ;
- mettre en ,xuvre une transformation spatiale de la première image segmentée rectifiée, en utilisant la carte de disparité, pour produire une deuxième image segmentée rectifiée, correspondant au côté opposé à celui de la première image brute, et produire ainsi des images stéréos segmentées rectifiées (Iser) ;
- produire une liste d'instances d'obstacles prédéfinis (Obst) présentes dans l'environnement du véhicule à partir des images stéréos segmentées rectifiées ;
- mettre en uvre un algorithme de reconstruction en trois dimensions, utilisant la carte de disparité, pour produire des coordonnées en trois dimensions pour chaque pixel des images stéréos brutes (Isb) ;
- intégrer, en utilisant les coordonnées en trois dimensions, les instances d'obstacles prédéfinis dans des images intermédiaires obtenues à partir des images stéréos rectifiées (Isr), pour produire des images augmentées (Ia) destinées à fournir une assistance au pilotage du véhicule.
5 2. Prodé.dé de détection d'ohstacles selon la revendication 1, dans lequel l'étape de rectification comprend une correction de distorsion et utilise des premiers paramètres (Pl) comprenant des paramètres extrinsèques et intrinsèques des caméras stéréos (3).
10 3. Procédé de détection d'obstacles selon l'une des revendications précédentes, dans lequel des lignes épipolaires des images stéréos rectifiées (Isr) et des images stéréos segmentées rectifiées (Iser) sont horizontales.
4. Procédé de détection d'obstacles selon l'une des 15 revendications précédentes, comprenant en outre l'étape, précédant la mise en uvre de l'algorithme de calcul de disparité, de projeter les images stéréos rectifiées (Isr) dans un repère associé à un casque d'un pilote du véhicule.
5. Procédé de détection d'obstacles selon l'une des 20 revendications précédentes, dans lequel l'algorithme de reconstruction en trois dimensions utilise des deuxièmes paramètres (P2) comprenant des paramètres extrinsèques et intrinsèques des caméras stéréos (3) ainsi que des données de navigation produites par des capteurs de navigation d'une 25 unité de mesure inertielle (5) du véhicule (1).
6. Procédé de détection d'obstacles selon l'une des revendications précédentes, dans lequel les coordonnées en trois dimensions des pixels reconstruits sont définies dans un repère géographique local associé au véhicule (1) et corrigé en lacet.
7. Procédé de détection d'obstacles selon l'une des revendications précédentes, comprenant en outre l'étape, précédant la mise en uvre de l'algorithme de reconstruction, de vérifier une validité d'une valeur de disparité de chaque couple de pixels homologues comprenant un pixel de gauche (15a) d'une image de gauche (16a) et un pixel de droite (15b) d'une image de droite (16h).
8. Procédé de détection d'obstacles selon la revendication 7, dans lequel la vérification de la validité de la disparité
du couple de pixels homologues comprend l'étape de vérifier que :
dispg(xg , y) = dispd(xg - dispg(xg , y), y) et dispd(xd , Y) = dispg(xd + dispd(xd , y), y) disp, étant une disparité estimée en prenant l'image de gauche (16a) comme référence, dispd étant une disparité
estimée en prenant l'image de droite (16b) comme référence, xõ étant une coordonnée du pixel de gauche (15a) et xd étant une coordonnée du pixel de droite (15b).
du couple de pixels homologues comprend l'étape de vérifier que :
dispg(xg , y) = dispd(xg - dispg(xg , y), y) et dispd(xd , Y) = dispg(xd + dispd(xd , y), y) disp, étant une disparité estimée en prenant l'image de gauche (16a) comme référence, dispd étant une disparité
estimée en prenant l'image de droite (16b) comme référence, xõ étant une coordonnée du pixel de gauche (15a) et xd étant une coordonnée du pixel de droite (15b).
9. Procédé de détection d'obstacles selon l'une des revendications 7 et 8, dans lequel la vérification de la validité de la disparité du couple de pixels homologues comprend l'étape de mettre en uvre un mécanisme de post-accumulation en projetant des images de disparité passées sur une image de disparité actuelle.
10. Procédé de détection d'obstacles selon l'une des revendications précédentes, comprenant l'étape de déterminer qu'un groupe de pixels d'une image stéréo segmentée rectifiée (Iser) forme une instance d'obstacle prédéfini (Obst) lorsque lesdits pixels sont connectés entre eux.
11. Procédé de détection d'obstacles selon la revendication 10, dans lequel deux pixels sont connectés entre eux si l'un des deux pixels appartient au voisinage de l'autre et si les deux pixels appartiennent à une même classe.
12. Procédé de détection d'obstacles selon l'une des revendications précédentes, dans lequel l'étape d'intégration comprend les étapes, pour chaque instance d'obstacle prédéfini (Obst), de déterminer, en utilisant des coordonnées de l'instance d'obstacle prédéfini et les cnordonnees en trois dimensions des pixels reconstruits, une distance entre ladite instance d'obstacle prédéfini et le véhicule (1) ainsi que des dimensions de ladite instance d'obstacle prédéfini.
13. Procédé de détection d'obstacles selon l'une des revendications précédentes, dans lequel les images intermédiaires sont les images stéréos rectifiées (Isr).
14. Procédé de détection d'obstacles selon l'une des revendications précédentes, dans lequel l'étape d'intégration comprend, pour chaque instance d'obstacle prédéfini, l'étape d'incruster une croix sur un barycentre de ladite instance d'obstacle prédéfini.
15. Procédé de détection d'obstacles selon l'une des revendications précédentes, dans lequel l'algorithme de segmentation sémantique utilise un réseau de neurones U-Net, HRNet, ou HRNet + OCR.
16. Procédé de détection d'obstacles selon l'une des revendications précédentes, dans lequel les caméras stéréos (3) sont des caméras infrarouges.
17. Système comprenant des caméras stéréos (3) et une unité
de traitement (6) dans laquelle est mis en uvre le procédé
de détection d'obstacles selon l'une des revendications précédentes.
de traitement (6) dans laquelle est mis en uvre le procédé
de détection d'obstacles selon l'une des revendications précédentes.
18. Véhicule comprenant un système selon la revendication 17.
19. Programme d'ordinateur comprenant des instructions qui conduisent l'unité de traitement (6) du système selon la revendication 17 à exécuter les étapes du procédé de détection d'obstacles selon l'une des revendications 1 à 16.
20. Support d'enregistrement lisible par ordinateur, sur lequel est enregistré le programme d'ordinateur selon la revendication 19.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FRFR2110221 | 2021-09-28 | ||
FR2110221A FR3127611B1 (fr) | 2021-09-28 | 2021-09-28 | Procédé de détection d’obstacles |
PCT/EP2022/077017 WO2023052448A1 (fr) | 2021-09-28 | 2022-09-28 | Procédé de détection d'obstacles |
Publications (1)
Publication Number | Publication Date |
---|---|
CA3233479A1 true CA3233479A1 (fr) | 2023-04-06 |
Family
ID=80449018
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA3233479A Pending CA3233479A1 (fr) | 2021-09-28 | 2022-09-28 | Procede de detection d'obstacles |
Country Status (4)
Country | Link |
---|---|
CA (1) | CA3233479A1 (fr) |
FR (1) | FR3127611B1 (fr) |
IL (1) | IL311708A (fr) |
WO (1) | WO2023052448A1 (fr) |
-
2021
- 2021-09-28 FR FR2110221A patent/FR3127611B1/fr active Active
-
2022
- 2022-09-28 CA CA3233479A patent/CA3233479A1/fr active Pending
- 2022-09-28 IL IL311708A patent/IL311708A/en unknown
- 2022-09-28 WO PCT/EP2022/077017 patent/WO2023052448A1/fr active Application Filing
Also Published As
Publication number | Publication date |
---|---|
FR3127611A1 (fr) | 2023-03-31 |
FR3127611B1 (fr) | 2023-11-10 |
IL311708A (en) | 2024-05-01 |
WO2023052448A1 (fr) | 2023-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110926474B (zh) | 卫星/视觉/激光组合的城市峡谷环境uav定位导航方法 | |
US11570416B2 (en) | Multichannel, multi-polarization imaging for improved perception | |
EP3714596A1 (fr) | Modes de fonctionnement multiples pour étendre la plage dynamique | |
WO2019230339A1 (fr) | Dispositif d'identification d'objet, système de déplacement d'un corps, procédé d'identification d'objet, procédé d'apprentissage d'un modèle d'identification d'objet et dispositif d'apprentissage de modèle d'identification d'objet | |
CN110235026A (zh) | 基于对齐的图像和激光雷达信息的车辆导航 | |
US10708557B1 (en) | Multispectrum, multi-polarization (MSMP) filtering for improved perception of difficult to perceive colors | |
KR20230023530A (ko) | 신뢰할 수 없는 맵 주석 입력들을 사용하는 센서 데이터의 시맨틱 주석 달기 | |
Zhao et al. | Environmental perception and sensor data fusion for unmanned ground vehicle | |
Carmichael et al. | Dataset and benchmark: Novel sensors for autonomous vehicle perception | |
CA3233479A1 (fr) | Procede de detection d'obstacles | |
FR3003356A1 (fr) | Procede d'observation d'une zone au moyen d'un drone | |
EP1570433B1 (fr) | Dispositif de traitement d'images a reconnaissance et selection de sources de lumiere | |
CN113706599B (zh) | 一种基于伪标签融合的双目深度估计方法 | |
Nguyen et al. | Neural network‐based optical flow versus traditional optical flow techniques with thermal aerial imaging in real‐world settings | |
An et al. | A comprehensive survey on image dehazing for different atmospheric scattering models | |
FR2987151A1 (fr) | Systeme d'aide au sauvetage par helicoptere | |
CN107025636A (zh) | 结合深度信息的图像去雾方法及装置和电子装置 | |
GB2582419A (en) | Improvements in and relating to range-finding | |
FR3093573A1 (fr) | Procédé et système de mise à jour automatique d’au moins une base de données aéroportuaires | |
US20240062349A1 (en) | Enhanced high dynamic range pipeline for three-dimensional image signal processing | |
EP4128055A1 (fr) | Dispositif et procédé d'aide à la décision d'un système cognitif artificiel | |
Scaramuzza et al. | Application challenges from a bird's eye view | |
EP4086819A1 (fr) | Procédé d'apprentissage d'une intelligence artificielle supervisée destinée à identifier un objet prédeterminé dans l'environnement d'un aéronef | |
WO2023111189A1 (fr) | Procédé de détection d'un objet dans l'environnement d'un aéronef, système et programme d'ordinateur associés | |
Natraj | Vision Based State Estimation For Unmanned Aerial Vehicles-Assist In Vertical Take Off and Landing & Low Altitude Manoeuvre |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EEER | Examination request |
Effective date: 20240328 |
|
EEER | Examination request |
Effective date: 20240328 |