EP4409543A1 - Procédé de détection d'obstacles - Google Patents

Procédé de détection d'obstacles

Info

Publication number
EP4409543A1
EP4409543A1 EP22797069.6A EP22797069A EP4409543A1 EP 4409543 A1 EP4409543 A1 EP 4409543A1 EP 22797069 A EP22797069 A EP 22797069A EP 4409543 A1 EP4409543 A1 EP 4409543A1
Authority
EP
European Patent Office
Prior art keywords
image
rectified
images
disparity
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
Application number
EP22797069.6A
Other languages
German (de)
English (en)
Inventor
Thomas CLEON
Joël BUDIN
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Safran Electronics and Defense SAS
Original Assignee
Safran Electronics and Defense SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Safran Electronics and Defense SAS filed Critical Safran Electronics and Defense SAS
Publication of EP4409543A1 publication Critical patent/EP4409543A1/fr
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/10Terrestrial scenes
    • G06V20/17Terrestrial scenes taken from planes or by drones
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/593Depth or shape recovery from multiple images from stereo images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/58Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/70Labelling scene content, e.g. deriving syntactic or semantic representations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • G06T2207/10021Stereoscopic video; Stereoscopic image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10032Satellite or aerial image; Remote sensing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10048Infrared image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Definitions

  • the invention relates to the field of obstacle detection to provide assistance in piloting a vehicle or a robot.
  • Such an obstacle detection system has the particular objective of reducing collision accidents as much as possible by providing the driver or the navigation system of the vehicle with a certain amount of information relating to the obstacles present in the environment of the vehicle: position obstacles, distance between each obstacle and the vehicle, size and type of obstacles, etc.
  • Obstacles are, for example, electric cables, pylons, trees, etc.
  • Obstacle detection systems are thus known that use RADAR technology (for RADio Detection And Ranging) or LIDAR technology (for Light Detection And Ranging).
  • PODS Passive Obstacle Detection System
  • MWIR bands for Mid-Wave InfraRed
  • LWIR bands for Long-Wave InfraRed
  • PMMW sensors for Passive MilliMeter Wave
  • Still other systems use satellite images, but are not intended to be embedded in vehicles such as a helicopter or a drone.
  • the object of the invention is to detect and identify various types of obstacles precisely and reliably, without emitting electromagnetic or light waves, in order to provide assistance in piloting any type of vehicle.
  • a method for detecting obstacles is proposed, implemented in at least one processing unit and comprising the steps of:
  • raw stereo images representative of a environment of a vehicle and produced by stereo cameras, the raw stereo images comprising a left raw image and a right raw image;
  • the obstacle detection method according to the invention detects and differentiates obstacles accurately and reliably.
  • the method for detecting obstacles according to the invention can provide assistance in piloting any type of vehicle and does not require the emission of electromagnetic or light waves.
  • the augmented images can for example be projected onto the visor of a pilot's helmet.
  • a method for detecting obstacles is also proposed as previously described, in which the rectification step comprises a distortion correction and uses first parameters comprising extrinsic and intrinsic parameters of the stereo cameras.
  • a method of detecting obstacles as previously described is further proposed, in which epipolar lines of the rectified stereo images and of the rectified segmented stereo images are horizontal.
  • the integration step comprises the steps, for each predefined obstacle instance, of determining, using coordinates of the obstacle instance predefined and the three-dimensional coordinates of the reconstructed pixels, a distance between said predefined obstacle instance and the vehicle as well as dimensions of said predefined obstacle instance.
  • the integration step comprises, for each instance of predefined obstacle, the step of embedding a cross on a barycenter of said instance of predefined obstacle.
  • a method for detecting obstacles as previously described is also proposed, in which the stereo cameras are infrared cameras.
  • a system comprising stereo cameras and a processing unit in which the method for detecting obstacles as previously described is implemented.
  • a computer program is also proposed comprising instructions which lead the processing unit of the system as previously described to execute the steps of the method for detecting obstacles as previously described.
  • FIG. 1 schematically represents different modules of a helicopter in which the invention is implemented;
  • FIG. 2 represents steps of the method for detecting obstacles according to the invention;
  • FIG. 3 represents the implementation of the semantic segmentation algorithm
  • FIG. 4 represents a U-Net neural network
  • FIG. 5 represents an HRNet neural network
  • FIG. 6 represents stereo images and makes it possible to illustrate the verification of the disparity
  • FIG. 7 represents an object and the optical centers of two cameras
  • FIG. 8 illustrates the way in which the 3D coordinates of a pixel are reconstructed
  • FIG. 9 represents an image corresponding to a real result of the implementation of the method for detecting obstacles according to the invention.
  • a non-limiting embodiment of the invention is described here, in which the method for detecting obstacles according to the invention is used to provide assistance to the pilot of a helicopter.
  • the helicopter 1 firstly comprises a capture device 2 intended to capture images of the environment of the helicopter 1.
  • the capture device 2 here comprises a plurality of infrared stereo cameras 3, in this case two stereo front cameras and two stereo side cameras.
  • the cameras 3 comprise left cameras 3a, located on the left - port side - of the helicopter 1 and right cameras 3b, located on the right - starboard side - of the helicopter 1.
  • the optical sensors of the cameras 3 are wide-field sensors (for example of 180° class, with 80° of field of view per individual camera).
  • the optical sensors are for example of the thermo-detector type using micro-bolometer technology, or of the photodetector type using silicon-based technology.
  • the cameras 3 operate here in the far infrared range (LWIR: Long Wave InfraRed).
  • LWIR Long Wave InfraRed
  • the method for detecting obstacles according to the invention can therefore be used and effective day and night.
  • the helicopter 1 also comprises an inertial unit 4 integrating an inertial measurement unit 5 (UNI) and making it possible to estimate the orientation, position and speed of the helicopter 1.
  • the UNI 5 integrates navigation sensors comprising at least three accelerometers and three gyrometers or gyroscopes.
  • the helicopter 1 further comprises a processing unit 6 comprising at least one processing component 7 which is adapted to execute instructions of a program to implement the obstacle detection method according to the invention.
  • the program is stored in a memory 8 of the processing unit 6.
  • the processing component 7 is for example a conventional processor, a graphics processor (or GPU, for Graphics Processor Unit), a microcontroller, a DSP (for Digital Signal Processor r which can be translated as “digital signal processor”), or else a programmable logic circuit such as an FPGA (for Field Programmable Gate Arrays') or an ASIC (for Application Specific Integrated Circuit).
  • the method of detecting obstacles operates as follows.
  • the processing unit 6 acquires raw stereo images Isb in real time.
  • the raw stereo images Isb are representative of the environment of the helicopter 1 and are produced by the cameras 3 of the capture device 2.
  • the raw stereo images Isb comprise a raw left image and a raw right image.
  • the processing unit 6 then implements a semantic segmentation algorithm of the deep learning type, which uses a neural network suitable for image segmentation.
  • the implementation of the semantic segmentation algorithm makes it possible to produce a first segmented image lel from a first raw image Ibl, the first raw image Ibl being the left raw image or l raw image on the right.
  • the first raw image Ibl is the left raw image.
  • the neural network is for example a U-Net network, an HRNet network (for High-Resolution Network), or an HRNet+OCR network (OCR for Object-Contextual Representation).
  • the U-Net network 10 is a convolutional neural network, which comprises an encoder part 11 and a decoder part 12.
  • the network 10 comprises a network block which processes the response of the image at increasingly smaller successive scales (encoder part), then a network block which processes the response of the image at increasingly larger successive scales (decoder part), before carrying out a semantic segmentation.
  • the HRNet network 14 is characterized by the fact of processing the image at different scales at the same time.
  • the HRNet + OCR network is the sum of two networks.
  • the OCR network is characterized by the use of an attention mechanism which consists in measuring correlations between the channels and the pixels constituting the last blocks of the network.
  • the semantic segmentation algorithm was previously trained using a previously established database.
  • the weights associated with the neurons are calculated from the database during a training process.
  • the database is an annotated database; we also speak for such learning of supervised learning on labeled data.
  • the obstacles have been annotated by hand.
  • This database includes both images from real flights (acquisition flights) and masks.
  • the images come from sequences taken over several hundred hours of flight.
  • the images are infrared images.
  • Each pixel of the images in the database is encoded to designate a particular class among a plurality of classes.
  • the annotated classes were selected to represent two types of object: objects forming obstacles and objects constituting the environment.
  • the objects constituting the environment are intended to be identified in order to facilitate the discrimination of obstacles in different environments.
  • the discrimination of the environment also makes it possible to identify in the image potential landing zones and the horizon line.
  • the plurality of classes here comprises seven classes, which designate respectively the sky, the water, the ground, the vegetation, the cables, the pylons, and the other types of obstacles on the human surface (other than the cables and the pylons) .
  • Other classes can be defined, for example a class designating humans and another class designating vehicles.
  • the definition of the classes is adapted to the application in which the invention is implemented.
  • the classes chosen here make it possible to differentiate types of obstacles which are specifically dangerous for a helicopter, such as cables, and also make it possible to detect obstacles which may constitute passage points, such as pylons.
  • a pylon is an indicator of the flight altitude to be maintained to avoid any collision with cables.
  • the database was created in such a way as to avoid the redundancy of visual information in the different classes. Certain objects are therefore related to other objects of a different type but having a similar visual appearance.
  • a lamp post is not an electric pylon but its visual appearance is such that it can easily be related to it.
  • only part of the base is used for learning, while another part is used to verify the results obtained and thus avoid “overfitting” of the network.
  • the database has three parts: a “training” part which is directly used in the backpropagation of the gradients to iteratively elaborate the weights of the neurons, a “validation” part which is used to monitor the performance of the neural network on non-standard data. training views, and allows to adjust the training hyper-parameter, and finally a "test” part, which is known only to the client entity / organization.
  • the test part can be used by the client entity to measure performance with its own data.
  • This inference block is a matrix of dimension CxHxW, where C is the number of classes, H is the height of the input image and W is the width of the input image.
  • This inference block is the response of the input image to the neural network.
  • Each pixel is then normalized using a Softmax type function. This reflects the response of the image into a matrix where the sum of the C elements of the dimension corresponding to the classes and associated with each particular pixel is equal to approximately 1. This is only a normalized answer and not a probability. This normalized value makes it possible to have visibility on the preponderance of a class compared to the others, simply from its value taken in isolation.
  • the coordinate of the element whose response to the system is the highest is extracted from the line corresponding to the classes and associated with said pixel.
  • a class is thus associated with each pixel of the first raw image.
  • the processing unit 6 then rectifies the raw stereo images Isb to obtain rectified stereo images Isr (pair of rectified images), and the first segmented image lel to obtain a first rectified segmented image lerl.
  • the rectification includes distortion correction and uses first PI parameters including extrinsic and intrinsic parameters of the cameras 3.
  • the extrinsic and intrinsic parameters were produced during calibration operations carried out in the factory.
  • the extrinsic parameters include levels of roll, pitch and yaw of the cameras 3 with respect to the “system” reference (reference associated with the helicopter 1).
  • the intrinsic parameters include the focal length of each camera 3, the distance between the cameras 3, distortion parameters, the size of each pixel, the binocular center distance.
  • the rectification makes it possible to obtain the rectified stereo images Isr and the first rectified segmented image lerl, whose epipolar lines are horizontal.
  • the processing unit 6 then implements an algorithm for calculating the disparity between the rectified stereo images Isr, to obtain a disparity map Cd.
  • the disparity is a measurement used to estimate the depth and therefore to reconstruct a view of the environment of the helicopter 1 in three dimensions.
  • the disparity map Cd is a digital image (disparity image) which contains information on the correspondences of the points of the same scene taken with two different angles of view, in this case with the cameras on the left 3a and with the right cameras 3b of the capture device 2.
  • the images of disparities change in real time.
  • the processing unit 6 then checks the disparity value of each pair of homologous pixels comprising a left pixel of a left image (produced by the left cameras 3a of the capture device 2) and a right pixel of a right image (produced by the right cameras 3b of the capture device 2).
  • disparity checking eliminates false matches caused by occlusions.
  • the pair of homologous pixels comprises a left pixel 15a and a right pixel 15b, which respectively belong to a left image 16a and to a right image 16b (and which have the same vertical y coordinate).
  • the coordinate of the right pixel 15b is:
  • Xd xg - dispg ( xg ,y), dispg being the disparity estimated by taking the left image 16a as a reference.
  • the coordinate of the left pixel 15a is:
  • Xg x d +dispd(x d ,y), dispd being the disparity estimated by taking the right image 16b as a reference.
  • a mechanism for post-accumulation of the disparity images could be used to verify the disparity and, in particular, a mechanism for post-accumulation of the disparity images.
  • This mechanism consists in projecting past disparity images onto the current disparity image, in order to temporally filter the disparity value of each pixel. To do this, we use the disparity values, navigation information from inertial units and GPS information, intrinsic parameters and extrinsic parameters of the cameras. Such a post-accumulation makes it possible to reduce the errors of the disparity.
  • Several verification mechanisms could be used in combination.
  • the detection method then implements a spatial transformation of the first rectified segmented image Ier1, using the disparity map, to produce a second rectified segmented image Ier2.
  • the second rectified segmented image Ier2 corresponds to the side opposite that of the first raw image (that is to say here to the right side). Iser-rectified segmented stereo images are thus produced.
  • the spatial transformation here is a spatial interpolation.
  • the disparity map Cd is therefore used to transpose the first rectified segmented image lerl (here left side image) onto the eye on the other side (here right eye), by spatial interpolation of lerl with the motion field induced by the disparity, to produce a second rectified segmented image ieler2 (here, image of the right side) and thus constitute a segmented stereo pair Iser from a single segmentation inference on the left eye (computational gain).
  • the Isr rectified stereo images and the Iser rectified segmented stereo images are then projected into a frame associated with the helmet of the pilot of helicopter 1.
  • the processing unit 6 then implements a three-dimensional reconstruction algorithm, using the disparity map Cd, to produce three-dimensional coordinates for each pixel of the raw stereo images Isb (original images)
  • the three-dimensional reconstruction algorithm uses second parameters P2 comprising the extrinsic and intrinsic parameters of the cameras 3, as well as navigation data produced by the navigation sensors of the UMI 5.
  • the navigation data comprises roll, pitch and yaw levels of the helicopter 1 in a local geographical reference, as well as roll, pitch and yaw levels of the cameras 3 with respect to the helicopter 1, as well as only one latitude and one longitude of the helicopter 1.
  • Three-dimensional reconstruction uses the following principles.
  • C-C' is the baseline B (base line) and corresponds to the distance between the optical centers of the cameras C and C'.
  • f focal length
  • Tx being the baseline
  • f being the focal length
  • the processing unit 6 thus produces three-dimensional coordinates of pixels of a reconstructed three-dimensional image representative of the environment of the helicopter 1.
  • the three-dimensional coordinates of the pixels are defined in a local geographical reference associated with the helicopter 1 and corrected in yaw (thanks to the navigation data).
  • the three-dimensional coordinates of the pixels are then projected to produce two-dimensional I2D images of the three-dimensional coordinates of each reconstructed pixel.
  • the processing unit 6 analyzes the Iser rectified segmented stereo images and selects the class of each pixel according to its response to the semantic segmentation algorithm.
  • the processing unit 6 then performs an instantiation of each obstacle and produces a list of predefined obstacle instances Obst present in the environment of the helicopter 1 from the rectified segmented stereo images Iser.
  • the processing unit 6 determines that a group of pixels of a rectified segmented stereo image Iser forms an instance of predefined obstacle Obst when said pixels are connected to each other. It is considered here that two pixels are connected together if one of the two pixels belongs to the neighborhood of the other and if the two pixels belong to the same class.
  • the neighborhood of a particular pixel is defined herein as comprising eight "primary" neighboring pixels around said particular pixel.
  • the processing unit 6 allocates a specific identifier for each group of pixels which are adjacent to each other in order to be able to classify each obstacle.
  • the processing unit 6 then produces a stream comprising the images labeled Ilab as well as the coordinates of all the instances of predefined obstacles Obst.
  • the processing unit 6 then integrates, using the three-dimensional coordinates, the instances of predefined obstacles Obst in intermediate images obtained from the rectified stereo images Isr, to produce augmented images Ia intended to provide piloting assistance of helicopter 1.
  • the intermediate images are here the Isr rectified stereo images themselves, that is to say that the instances of predefined obstacles Obst are integrated into the Isr rectified stereo images to produce the augmented images la.
  • the processing unit 6 first of all implements a calculation algorithm to extract global characteristics on the size of each instance of obstacle predefined in height and width by measuring the standard deviation of the 3D positions of the pixels making up said predefined obstacle instance.
  • the calculation algorithm thus acquires the coordinates of each instance of predefined obstacle Obst and uses the two-dimensional I2D images of the three-dimensional coordinates of the reconstructed pixels to calculate, for each instance of predefined obstacle Obst, the average distance between said instance of predefined obstacle and the helicopter, as well as the width and height of said instance predefined obstacle.
  • the processing unit 6 indeed knows the pixels belonging to the same obstacle thanks to the segmentation, the 3D reconstruction of each pixel having a valid disparity, and can therefore deduce the characteristics therefrom in the local geographical reference centered on the helicopter 1 and yaw corrected.
  • Measuring the physical characteristics of obstacles allows the flight path to be adjusted based on the data.
  • the processing unit 6 implements a merging algorithm to merge the instances of predefined obstacles Obst into the rectified stereo images Isr.
  • the fusion is carried out by the embedding of a cross on a barycenter of said instance of predefined obstacle, with additional information on its geometric characteristics.
  • the pixels belonging to a predefined obstacle instance are highlighted by locally increasing the intensity of each pixel of the instance, or else by inserting a false color. This false color can moreover correspond to a type of obstacle.
  • the processing unit 6 thus produces the augmented images 1a (in this case stereo images).
  • the augmented images 1a are then projected onto the visor of the pilot's flight helmet.
  • the headset is a stereoscopic headset.
  • the augmented images are projected in both eyes of the helmet so as to obtain a stereoscopic effect.
  • the processing unit 6 carries out an extraction of the pinhole projection (mark where there is no deformation of the 3D world), corresponding to the field of vision of the pilot and to the orientation of his helmet.
  • the segmentation algorithm is implemented on a single raw image (left or right), called “first raw image”, corresponding to a single eye.
  • the disparity map is then used to project, via a spatial transformation, the segmentation into the unsegmented eye.
  • the spatial transformation step is not carried out and the Iser-rectified segmented stereo images are obtained directly at the output of the rectification step.
  • the invention is not necessarily implemented to provide assistance in piloting a helicopter, but can be used in any type of vehicle, with or without a pilot: aircraft, land vehicle, drone, any type of robot (se moving on the ground, in the air), etc. Augmented images can be used to achieve autonomous navigation.
  • the intermediate images, in which the instances of predefined obstacles are integrated, are not necessarily the Isr rectified stereo images, but could be other images, and for example three-dimensional images.
  • the method for detecting obstacles according to the invention is not necessarily implemented in a single processing unit integrated into a vehicle, but can be implemented in one or more processing units, among which one at least less can be located at a distance from the vehicle (and for example in a base from which the vehicle departed, in another vehicle, in a Cloud server, etc.).

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 Processing (AREA)
  • Image Analysis (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 ou d'un robot.
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) . 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é PODS, pour Passive Obstacle 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 MilliMeter 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 œuvre dans au moins une unité de traitement et comprenant les étapes de :
- acquérir des images stéréos brutes, représentatives d'un 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 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 ou 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 œuvre 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, 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 : dispg(xg , y) = dispd(xg - dispg(xg , y) , y) et dispd(xd , y) = dispg(xd + dispd(xd , y) , y) dispg é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, xg é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 postaccumulation 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 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 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 procédé de détection d'obstacles tel que précédemment 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. 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 (UNI) et permettant d'estimer l'orientation, la position et la vitesse de l'hélicoptère 1. L'UNI 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 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 r 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 œuvre de l'algorithme de segmentation sémantique permet de produire une première image segmentée lel à 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.
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. 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. 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 » ( Overfi tting) 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 1' 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 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é sur 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 lel pour obtenir une première image segmentée rectifiée lerl . La rectification comprend une correction de distorsion et utilise des premiers paramètres PI 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 calibration 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 lerl, 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 3b 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 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.
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 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 = xd + 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) , y) .
D'autres mécanismes pourraient être utilisés pour vérifier la disparité et, notamment, un mécanisme de postaccumulation 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 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 lerl, 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 lerl (ici image du côté gauche) sur l'œil de l'autre côté (ici oeil droit) , par interpolation spatiale de lerl avec le champ de mouvement induit par la disparité, pour produire une deuxième image segmentée rectif iéeler2 (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'œil 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) 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'UMI 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 : U—Uf f
— C-C! = - z (1)
Cette équation donne :
En remplaçant C-C' et u-u' par respectivement B et d, on obtient :
Z = ^(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 (uO, vO) et (u'0, v'0) .
On a :
En injectant le résultat de l'équation (3) dans les equations (4) et (5) à la place de Pz, on obtient :
Py = s<îy» ( 6 ) a
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] • 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 :
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.
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 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 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.
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 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 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'œil 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 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 . ) .

Claims

24 REVENDICATIONS
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 (Isb) , 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 (lel) à 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 (lerl) ;
- 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 œ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 (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 (la) destinées à fournir une assistance au pilotage du véhicule.
2. Procédé de détection d'obstacles selon la revendication 1, dans lequel l'étape de rectification comprend une correction de distorsion et utilise des premiers paramètres (PI) comprenant des paramètres extrinsèques et intrinsèques des caméras stéréos (3) .
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 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 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 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 (16b) .
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) dispg é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, xg é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 postaccumulation 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 27 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 coordonnées 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 .
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 28 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.
EP22797069.6A 2021-09-28 2022-09-28 Procédé de détection d'obstacles Pending EP4409543A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
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
EP4409543A1 true EP4409543A1 (fr) 2024-08-07

Family

ID=80449018

Family Applications (1)

Application Number Title Priority Date Filing Date
EP22797069.6A Pending EP4409543A1 (fr) 2021-09-28 2022-09-28 Procédé de détection d'obstacles

Country Status (5)

Country Link
EP (1) EP4409543A1 (fr)
CA (1) CA3233479A1 (fr)
FR (1) FR3127611B1 (fr)
IL (1) IL311708A (fr)
WO (1) WO2023052448A1 (fr)

Also Published As

Publication number Publication date
IL311708A (en) 2024-05-01
FR3127611A1 (fr) 2023-03-31
CA3233479A1 (fr) 2023-04-06
WO2023052448A1 (fr) 2023-04-06
FR3127611B1 (fr) 2023-11-10

Similar Documents

Publication Publication Date Title
CN110926474B (zh) 卫星/视觉/激光组合的城市峡谷环境uav定位导航方法
JP7536006B2 (ja) 知覚を改善するための多重チャネル多重偏光イメージング
WO2019230339A1 (fr) Dispositif d&#39;identification d&#39;objet, système de déplacement d&#39;un corps, procédé d&#39;identification d&#39;objet, procédé d&#39;apprentissage d&#39;un modèle d&#39;identification d&#39;objet et dispositif d&#39;apprentissage de modèle d&#39;identification d&#39;objet
JP6574611B2 (ja) 立体画像に基づいて距離情報を求めるためのセンサシステム
CA2851750A1 (fr) Procede d&#39;etalonnage d&#39;un systeme de vision par ordinateur embarque sur un mobile
JP2022512290A (ja) 色覚困難の知覚を改善する多重スペクトル多重偏光(msmp)フィルタ処理
CN111209840B (zh) 一种基于多传感器数据融合的3d目标检测方法
US20220383585A1 (en) Systems And Methods For Generating And/Or Using 3-Dimensional Information With Camera Arrays
CN112561996A (zh) 一种自主水下机器人回收对接中目标检测方法
CN116403191A (zh) 一种基于单目视觉的三维车辆跟踪方法、装置和电子设备
Zhao et al. Environmental perception and sensor data fusion for unmanned ground vehicle
WO2021190910A1 (fr) Dispositif et procédé d&#39;aide à la décision d&#39;un système cognitif artificiel
EP4409543A1 (fr) Procédé de détection d&#39;obstacles
EP1570433B1 (fr) Dispositif de traitement d&#39;images a reconnaissance et selection de sources de lumiere
Nguyen et al. Neural network‐based optical flow versus traditional optical flow techniques with thermal aerial imaging in real‐world settings
GB2582419A (en) Improvements in and relating to range-finding
FR3101467A1 (fr) Systeme de traitement d&#39;images par mise en correspondance multifonctions et modulaire pour aeronef, et procede associe
FR3094081A1 (fr) Procédé d’estimation passive du temps avant collision pour un aéronef ou de tout objet volant pouvant être guidé, procédé de navigation associé
JP7242822B2 (ja) 推定システムおよび自動車
EP4086819A1 (fr) Procédé d&#39;apprentissage d&#39;une intelligence artificielle supervisée destinée à identifier un objet prédeterminé dans l&#39;environnement d&#39;un aéronef
Scaramuzza et al. Application challenges from a bird's eye view
WO2023161568A1 (fr) Procédé de calcul de surfaces tridimensionnelles pour véhicule équipé d&#39;un système d&#39;aide à la conduite
WO2023111189A1 (fr) Procédé de détection d&#39;un objet dans l&#39;environnement d&#39;un aéronef, système et programme d&#39;ordinateur associés
FR3103291A1 (fr) Méthode de traitement de données reçues de capteurs configurés pour être embaqués dans un véhicule
CN117576199A (zh) 一种驾驶场景视觉重建方法、装置、设备及介质

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: UNKNOWN

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20240424

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR