Note : Les descriptions sont présentées dans la langue officielle dans laquelle elles ont été soumises.
WO 2023/052448
PCT/EP2022/077017
1
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).
CA 03233479 2024- 3- 28
WO 2023/052448
PCT/EP2022/077017
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
CA 03233479 2024- 3- 28
WO 2023/052448
PCT/EP2022/077017
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
CA 03233479 2024- 3- 28
WO 2023/052448
PCT/EP2022/077017
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é
CA 03233479 2024- 3- 28
WO 2023/052448
PCT/EP2022/077017
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
CA 03233479 2024- 3- 28
WO 2023/052448
PCT/EP2022/077017
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
CA 03233479 2024- 3- 28
WO 2023/052448
PCT/EP2022/077017
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.
CA 03233479 2024- 3- 28
WO 2023/052448
PCT/EP2022/077017
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
CA 03233479 2024- 3- 28
WO 2023/052448
PCT/EP2022/077017
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).
CA 03233479 2024- 3- 28
WO 2023/052448
PCT/EP2022/077017
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
5
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.
CA 03233479 2024- 3- 28
WO 2023/052448
PCT/EP2022/077017
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.
CA 03233479 2024- 3- 28
WO 2023/052448
PCT/EP2022/077017
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
CA 03233479 2024- 3- 28
WO 2023/052448
PCT/EP2022/077017
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.
CA 03233479 2024- 3- 28
WO 2023/052448
PCT/EP2022/077017
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
CA 03233479 2024- 3- 28
WO 2023/052448
PCT/EP2022/077017
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
CA 03233479 2024- 3- 28
WO 2023/052448
PCT/EP2022/077017
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)
CA 03233479 2024- 3- 28
WO 2023/052448
PCT/EP2022/077017
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 :
CA 03233479 2024- 3- 28
WO 2023/052448
PCT/EP2022/077017
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)
2
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].
CA 03233479 2024- 3- 28
WO 2023/052448
PCT/EP2022/077017
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
CA 03233479 2024- 3- 28
WO 2023/052448
PCT/EP2022/077017
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
CA 03233479 2024- 3- 28
WO 2023/052448
PCT/EP2022/077017
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
CA 03233479 2024- 3- 28
WO 2023/052448
PCT/EP2022/077017
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
CA 03233479 2024- 3- 28
WO 2023/052448
PCT/EP2022/077017
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.).
CA 03233479 2024- 3- 28