EP3635630A1 - Computerized device for driving assistance - Google Patents

Computerized device for driving assistance

Info

Publication number
EP3635630A1
EP3635630A1 EP18748960.4A EP18748960A EP3635630A1 EP 3635630 A1 EP3635630 A1 EP 3635630A1 EP 18748960 A EP18748960 A EP 18748960A EP 3635630 A1 EP3635630 A1 EP 3635630A1
Authority
EP
European Patent Office
Prior art keywords
data
node
given
point cloud
height
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
EP18748960.4A
Other languages
German (de)
French (fr)
Inventor
Amaury NEGRE
Christian Laugier
Lukas RUMMELHARD
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.)
Institut National de Recherche en Informatique et en Automatique INRIA
Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
Original Assignee
Commissariat a lEnergie Atomique CEA
Institut National de Recherche en Informatique et en Automatique INRIA
Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
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 Commissariat a lEnergie Atomique CEA, Institut National de Recherche en Informatique et en Automatique INRIA, Commissariat a lEnergie Atomique et aux Energies Alternatives CEA filed Critical Commissariat a lEnergie Atomique CEA
Publication of EP3635630A1 publication Critical patent/EP3635630A1/en
Pending legal-status Critical Current

Links

Classifications

    • 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
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0088Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/29Graphical models, e.g. Bayesian networks
    • G06F18/295Markov models or related models, e.g. semi-Markov models; Markov random fields; Networks embedding Markov models
    • 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/84Arrangements for image or video recognition or understanding using pattern recognition or machine learning using probabilistic graphical models from image or video features, e.g. Markov models or Bayesian networks
    • G06V10/85Markov-related models; Markov random fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/10Terrestrial scenes
    • G06V20/13Satellite images
    • 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/10028Range image; Depth image; 3D point clouds

Definitions

  • the invention relates to the field of driving assistance.
  • the area of driver assistance includes assistance to fully autonomous vehicles and assistance to assisted vehicles with or without driver. This area may also include other driving situations, such as environmental management, whether on a road or in an industrial environment.
  • autonomous vehicles that are perceptive, that is to say capable of finding their bearings in any environment
  • assisted autonomous vehicles that is to say vehicles that have no real local perception of the environment.
  • these two families are technically very different, and use completely different technologies. Beyond the different techniques, these families of vehicles can be used in very different contexts. For example, a perceptual autonomous vehicle is unavoidable when there is no or little mapping of the environment of use, and / or that geo-localization in this environment is complex. This is the case for example many applications as in the field of agriculture or industrial robotics.
  • the concept of autonomous vehicle will therefore be taken in a broad sense, which can cover cars as much as tractors or other agricultural machinery or a robot capable of moving.
  • the invention is more particularly concerned with the field of autonomous perceptual vehicles.
  • this type of vehicle uses means to analyze their environment in order to define the obstacles. Historically, these obstacles were detected by laser telemetry plan.
  • Techniques have therefore been developed to determine in a point cloud obtained by LIDAR or other technique including the ground in the data points which portions correspond to the ground, and which portions correspond to obstacles.
  • the known techniques are either precise but not real-time (for example current implementations using conditional Markov or MRP fields), or compatible with real-time use but insufficiently precise (for example, by fitting a plane on the ground) .
  • the invention improves the situation.
  • the invention proposes a computing device for driving assistance, comprising a memory arranged to receive data from a cloud of data points in which a cloud of points associates, for a given instant, points presenting each coordinates in a plane associated with the point cloud and a value designating a height.
  • the device further comprises a computer arranged to access the memory and, for a given cloud of points, for calculating, on the one hand, reference area membership probability data associated with each point of the given point cloud, and on the other hand node data associating a value designating a height and two values indicating a slope in a plane associated with the plane of the given point cloud, by determining a Gaussian random conditional field using the data point cloud data. corresponding to the given point cloud, which Gaussian random conditional field is represented by a mesh of nodes in said associated plane, which nodes are defined by the node data, and to return the membership probability data to a reference surface and / or at least some node data and values designating a height.
  • This device is particularly interesting because it makes it possible to distinguish between ground and obstacles, as well as to know a respective height of the data points, with a computational cost compatible with real-time use in an autonomous vehicle.
  • the device may have one or more of the following additional features:
  • the computer is arranged to apply a Gaussian random conditional field comprising a first calculated spatial component, for a given node, from a value derived from the difference between the height of the given node and a height calculated from the coordinates of the node. given, slope data of the given node and coordinates of the points closest to the given node, and a calculated second spatial component, for a given node, from a value derived from the difference between node node data.
  • a Gaussian random conditional field comprising a first calculated spatial component, for a given node, from a value derived from the difference between the height of the given node and a height calculated from the coordinates of the node.
  • slope data of the given node and coordinates of the points closest to the given node slope data of the given node and coordinates of the points closest to the given node
  • a calculated second spatial component for a given node, from a value derived from the difference between node node data.
  • the calculator is furthermore arranged to apply a Gaussian random conditional field comprising a calculated temporal component, for a given node and a given instant, from the node data of the given node and the node data of the given node at a previous instant the given moment,
  • the computer is arranged to apply an expectation-maximization algorithm for calculating the reference surface membership probability data and the node data
  • the computer is arranged, after an initialization step, to apply the expectation-maximization algorithm by alternating an expectancy calculation step and a maximization calculation step;
  • the calculator is arranged to execute the step of calculating expectation by updating the reference area membership probability data of a given point of the given point cloud from a reference distance value derived from the difference between the value designating a height the given point and a height calculated from the coordinates of the given point, the coordinates of the node closest to the given point and the node data of the node closest to the given point, the computer is arranged to update data for the probability of belonging to a reference surface of a given point of the given point cloud as a function of the sign of the reference distance value,
  • the computer is arranged to execute the maximization calculation step by calculating on the one hand an information node data vector and information matrix data from the first spatial component and the second spatial component; , and
  • the computer is further arranged to perform the maximization calculation step from the time component.
  • the invention also relates to a computer method for driving assistance which comprises the following operations:
  • the method may have one or more of the following additional features:
  • the Gaussian random conditional field comprises a first calculated spatial component, for a given node, from a value derived from the difference between the height of the given node and a height calculated from the coordinates of the given node, slope data of the given node and coordinates of the nearest points of the given node, and a calculated second spatial component, for a given node, from a value derived from the difference between the node data of the given node and node data computed from the coordinates of the given node, node data of the nodes closest to the given node and coordinates of the nodes closest to the given node,
  • the Gaussian random conditional field further comprises a calculated temporal component, for a given node and a given instant, from the node data of the given node and the node data of the given node at a time preceding the given instant, the operation b) comprises applying an expectation-maximization algorithm for calculating the reference area membership probability data and the node data,
  • operation b) comprises:
  • steps b2) and b3) being repeated based on the results of the preceding steps until a convergence condition is fulfilled
  • the operation b2) comprises updating the data of probability of belonging to a reference surface of a given point of the given point cloud from a reference distance value drawn from the difference between the value designating a height of the given point and a height calculated from the coordinates of the given point, the coordinates of the node closest to the given point and the node data of the node closest to the given point,
  • the operation b2) comprises updating the data of probability of belonging to a reference surface of a given point of the given point cloud as a function of the sign of the reference distance value
  • operation b3) comprises computing an information node data vector) and information matrix data) from the first spatial component and the second spatial component, and
  • FIG. 1 represents a schematic diagram of a device according to the invention and data it processes
  • FIG. 2 represents an exemplary diagram of the data model used by the device of FIG. 1,
  • FIG. 3 represents an example of an operating loop of the device of FIG. 1, and
  • FIG. 4 represents an exemplary implementation of a function of FIG. 3.
  • CRF Random conditional fields
  • Lu et al. uses supervised learning to classify obstacles using feature extraction, which is expensive and unsuitable for a navigation application with various obstacles such as autonomous driving.
  • Wang et al is specific to the segmentation of image sequences, which also makes it inapplicable to the field of autonomous vehicles.
  • the Applicant has discovered a means of adapting the CRFs to the context of autonomous vehicles in order to discriminate in a cloud of points those relating to the ground, and those belonging to obstacles, and this in real time.
  • Real-time means a device that has an economically reasonable computing power and can be embedded in a vehicle, and is able to process data points faster than the data point acquisition frequency.
  • Figure 1 shows a schematic diagram of a device 2 according to the invention.
  • the device 2 comprises a memory 4 and a computer 6.
  • the memory 4 can be any type of data storage suitable for receiving digital data: hard disk, hard disk flash memory (SSD in English), flash memory in any form, RAM, disk magnetic, distributed storage locally or in the cloud, etc.
  • the data calculated by the device can be stored on any type of memory similar to or on memory 8. This data can be erased after the device has completed its tasks or stored.
  • the memory 4 receives data point cloud data 8 at a frequency corresponding to the acquisition frequency of the sensor of the autonomous vehicle in which the device 2 is installed. Alternatively, the device 2 can be deported and communicate with the autonomous vehicle by any appropriate means.
  • the computer 6 processes the point cloud data and returns discriminated data point cloud data 10, in which each data point is identified as belonging to the ground or to an obstacle.
  • a height relative to the ground may be appended to each data point of the discriminated data point cloud.
  • the data point cloud data 8 as the discriminated data point cloud data 10 is always coupled to a time marker, which makes it possible to determine when the data acquisition was performed.
  • the computer 6 can also return a soil elevation map in the form of a grid of points, with the slope associated with each point of the grid.
  • the computer 6 is an element directly or indirectly accessing the memory 4. It can be implemented in the form of an appropriate computer code executed on one or more processors. By processors, it must be understood any processor adapted to the calculations described below. Such a processor can be made in any known manner, in the form of a microprocessor for a personal computer, a dedicated FPGA or SoC chip ("System on chip"), a computing resource on a grid, a microcontroller, or any other form to provide the computational power necessary for the embodiment described below. One or more of these elements can also be realized in the form of specialized electronic circuits such as an ASIC. A combination of processor and electronic circuits can also be considered.
  • FIG. 2 represents an exemplary diagram of the data model used by the device of FIG. 1.
  • STCRF spatio-temporal random conditional field
  • the ground is modeled as a conditional random field represented by a mesh of nodes in a two-dimensional plane centered on the vehicle.
  • Each node has its own coordinates in this plane and is associated with a continuous random variable hidden in the form of a triplet comprising a height, a slope along a first axis of the two-dimensional plane, and a slope along a second axis of the two-dimensional plane.
  • the measurements contained in the data point cloud data 8 represent coordinate triplets (xj, yj, zj) that are matched to the two-dimensional plane reference.
  • the STCRF is based on three interdependent neighborhood groups:
  • the real neighborhood which includes observations (for example a prior classification of certain points and / or nodes) and hidden variables (such as the height of points and / or nodes and a probability of belonging to the ground).
  • the modeling via this STCRF makes it possible to determine, for each given point, the value of the probability of its belonging to the ground, as well as the height for the nodes of the mesh.
  • the STCRF data is distributed over time planes 20 and 22.
  • the time plane 20 represents the mesh for the particular data point cloud.
  • the time plane 22 represents the mesh for the cloud of data points immediately prior to the particular data point cloud.
  • the temporal neighborhood is thus formed, for a node 24 of the temporal plane 20 by the node 26 which corresponds to it in the temporal plane 22. The manner in which account is taken of the displacement of the vehicle to determine the node 26 will be explained below.
  • Node 24 is surrounded by a set of data points 28.
  • each data point 28 has coordinates (xj, yj, zj) which represent a measure here obtained by LIDAR).
  • a binary random variable cj is associated with each measure.
  • the device 2 implements a calculation loop which makes it possible to evaluate the value of the variable cj. For the purposes of these calculations, each data point 28 is associated with the node Gi of which it is closest according to a metric measurement.
  • Equation [10] relates to the real neighborhood
  • equation [20] concerns the spatial neighborhood
  • equation [30] concerns the temporal neighborhood.
  • W1 is a normalization factor
  • a is a weighting factor
  • Mi is the set of data points that are associated with a given node Gi
  • Hij is a matrix defined by the formula [ 15] of Appendix A.
  • the multiplication of the matrix Hij by Gi amounts to estimating the height of the node Gi at the data point of index j, taking into account the slope sxi and syi of Gi and the distances between the node Gi and the index data point j.
  • equation [10] determines a value derived from the difference between the height of the measurement of each of the data points and the height that would have the nearest node at these points, the variable cj influencing according to each point of data is associated with the ground or not.
  • the selection of the data points of the real neighborhood is performed by shifting the grid grid and centering it on the nodes Gi.
  • each grid square contains the data points closest to the node Gi in the center of the grid square considered.
  • Equation [20] W2 is a normalization factor, ⁇ is a weighting factor, Vi denotes the set of neighboring nodes of a given node Gi, and Fij is a matrix defined by the formula [25] of Annex A.
  • the application of the matrix Fij to Gj amounts to estimating the height of the node Gj at the location of the index node i, taking into account the slope sxj and syj of Gj, and distances between the node Gj and the node Gi.
  • equation [20] determines a value derived from the difference between the height of each of the nodes and the height that neighboring nodes would have at these nodes.
  • the spatial neighbors are the 8 nodes closest to each given node.
  • equation [20] could comprise a weighting factor for each neighboring node Gj, for example of the Gaussian kernel type.
  • W3 is a normalization factor
  • is a weighting factor
  • Qi is a transition matrix of node Gi for the cloud of data points immediately prior to the current data point cloud.
  • Gi node state for the current data point cloud.
  • the matrix Qi is chosen equal to the identity matrix, but it could be different to introduce noise that would correspond to a confidence interval on the measurements that made it possible to interpolate the node Gi t_1 or to hold account of a change in the height of the soil in time (due for example to waves in a maritime application).
  • the determination of the node Gi M is done by transforming the mesh of the data point cloud immediately prior to the current data point cloud according to the displacement and change data. vehicle orientation.
  • This data can be derived from an inertial measurement unit, and / or GPS data, and / or data from an odometer or other methods using other sensors (visual odometry, laser SLAM, etc.).
  • the value of Gi t_1 is then calculated by interpolation of the transformed mesh at the location of the node Gi.
  • Gi t_1 For nodes for which no information was available, that is to say, corresponding to an area not visited by the vehicle, Gi t_1 is marked as undefined, so the couple Gi Gi- t_1 not taken account, while areas that disappear as a result of the transformation may be discarded or stored in a long-term map.
  • the temporal neighborhood might include an even older cloud node.
  • the use of a single temporal neighbor is enough to force coherence for the nodes that are in an area that has become blind because of the occurrence of an obstacle like another vehicle, or by the displacement of the autonomous vehicle itself. even.
  • the temporal neighborhood and the equation [30] could be omitted, provided that they agree to lose the temporal cohesion, and to undergo dynamic shadow zones as a function of the obstacles encountered.
  • the invention is based on the transformation of a mesh a priori into a mesh that maximizes the posterior probability according to the formula [40] of Appendix A.
  • each node is assigned a Gaussian model for the state of the ground, each node Gi being represented by a mean vector Gmi and a covariance matrix Mi.
  • Gmi the matrix of the matrix Pi and the vector Xi are determined.
  • an iterative expectation-maximization algorithm is executed to determine the matrix Pi and the vector Xi, in which the expectation step estimates the probability distribution on the classification distribution of the points.
  • Ci data and a maximization step uses this distribution to estimate the state distribution of the soil.
  • Figure 3 shows an example of a function performed by the computer 6 to implement these calculations.
  • the computer 6 executes an InitQ function.
  • the starting grid is flat.
  • This function therefore initializes the Gmi vectors of G (0) with a height and zero slopes. This also initializes X (0) to 0.
  • the function InitQ would initialize the vectors Gmi according to this other mesh. This initialization will also be performed each time a new node (that is, a node at a location that has not been processed in any of the previous loops) is defined for a cloud of data points, as the vehicle moves.
  • the covariance matrix Mi is initialized with important diagonal coefficients, so that these initialization values do not influence the final result of the algorithm but make it possible to accelerate its convergence.
  • a loop is then executed until the operation of the autonomous vehicle is stopped, with in an operation 310 the incrementation of an index t, in an operation 320 the execution of a function Rec () which receives a cloud of current data point and stores the corresponding measurements in a vector Z, and in an operation 330 the execution of a function EM () which determines the vector G (t) while receiving as arguments the vector Z and the vector G (t -1) of the previous loop.
  • Figure 4 shows an example of implementation of the function EM ().
  • the function EM () is initialized by defining an index i to 0 and an index k to 1, by determining P (t-1) and X (t-1) from G (t-1). ) and defining the current loop index t.
  • the first loop traverses, for a given index k, all the nodes of index i and update the probability C [], the vector X [i] and the matrix P [i].
  • the vector C [] therefore contains, for a given index k, the probabilities of all the nodes of index i of the current loop of index t.
  • the second loop consists in repeating the first loop with the updated nodes, thus varying the index k, until a convergence condition is fulfilled.
  • the operations of the first loop could be performed in parallel.
  • the first loop associated with each index i could be parallelized, and be for example executed all or in part in parallel on a graphics processor, whose qualities are known for these applications.
  • the probability C is updated in an operation 410 by a function East () which receives as argument the vector Z and the vector X [i].
  • the function East () selects the set of data points of the vector Z which are associated with the index node i, and evaluates for each of them a probability cj that it stores in the vector C [k].
  • the probability cj is calculated according to formula [60] of Annex A.
  • a function XMax () receives as arguments the vector C [], the vector X [i] (t-1) and the vector X [i] (k1, t) of the previous iteration, and that the vector Z and update the vector X [i] (k, t) of the current iteration by applying the formula [70] of Annex A.
  • the formula [70] of Annex A amounts to maximizing the formulas [10], [20] and [30] for the vector X [i], the exponential formulation of the latter allowing a linear formula in the presence of the model Gaussian.
  • a function PMax () receives as arguments the vector C [], the matrix P [i] (t-1) and the matrix P [i] (kl, t) of the previous iteration, as well as the vector Z and updates the vector P [i] (k, t) of the current iteration by applying the formula [80] of Annex A.
  • formula [80] of Annex A amounts to maximizing formulas [10], [20] and [30] for matrix P [i], exponential formulation of the latter allowing a linear formula in the presence of the Gaussian model.
  • weighting factor a was set at 1
  • weighting factor ⁇ was set at 0.5
  • weighting factor ⁇ was set at 0.2.
  • the index i is then tested to determine if all the nodes have been updated for the index loop k current in an operation 440. If this is not the case, then the index i is incremented in an operation 450 and operations 410 to 440 are repeated.
  • the estimate for the current iteration of each vector Gmi, stored in a table G (k, t) is computed in an operation 460 which receives as arguments the vector X (k, t) current and the current matrix P (k, t). This is done by applying formula [90] of Annex A, which corresponds to the transposition to the current iteration of formula [50] of Annex A.
  • a function Conv () is executed in an operation 470.
  • the function Conv () determines whether the function EM () has converged, or if it is necessary to make another iteration. This determination can be based on the number of iterations, the Applicant having found that, for the parameters described above, 10 iterations are always sufficient to converge, or on a specific convergence condition, for example the comparison between G (k, t) and G (kl, t).
  • the index k is incremented in an operation 480 and the index i is reset in an operation 490, and the loop resumes with the operation 410. Otherwise, the function EM () ends by returning the array G (k, t) in an operation 499.
  • the example described here was validated with data point clouds obtained by LIDAR, using a Velodyne HDL64 LIDAR mounted on a Renault Zoe as well as with 3 Ibeo Lux LIDARs.
  • other point cloud sources could be used as stereo cameras or Kinect type depth cameras or the like.
  • the actual neighborhood could be reduced by taking into account the distance to the vehicle. Indeed, by nature, the LIDAR returns a lot of points near the vehicle, then less and less as the angle of fire increases. As a variant, the number of neighbors could be conserved, but used to accelerate the convergence by forcing the coherence of the nodes of the mesh with these. To accelerate the convergence, the points very close to the vehicle could also have a height forced to that of the vehicle.
  • the grid described here is patterned squares, but it could be adapted to the technology of capturing clouds of data points, for example be a polar grid with circular patterns.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Remote Sensing (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Probability & Statistics with Applications (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Business, Economics & Management (AREA)
  • Game Theory and Decision Science (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Automation & Control Theory (AREA)
  • Astronomy & Astrophysics (AREA)
  • Navigation (AREA)
  • Image Processing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Image Analysis (AREA)
  • Traffic Control Systems (AREA)

Abstract

A computerized device for driving assistance comprises a memory (4) designed to receive data point cloud data (8) in which a point cloud associates, for a given instant, points each having coordinates in a plane associated with the point cloud and a value denoting a height. The device furthermore comprises a calculator (6) designed to access the memory (4) and, for a given point cloud, to calculate data on the probability of belonging to a reference surface, associated with each point of the data point cloud, on the one hand, and node data associating a value denoting a height (hi) and two values indicating a slope in a plane associated with the plane of the given point cloud, on the other hand, by determining a Gaussian random conditional field by way of the data point cloud data (8) corresponding to the given point cloud, which Gaussian random conditional field is represented by a mesh of nodes in said associated plane, which nodes are defined by the node data, and to return the data on the probability of belonging to a reference surface and/or at least some of the node data and values denoting a height.

Description

Dispositif informatique pour l'aide à la conduite  Computer device for driving assistance
L'invention concerne le domaine de l'aide à la conduite. Le domaine de l'aide à la conduite comprend l'aide aux véhicules entièrement autonomes et l'aide aux véhicules pilotés avec assistance, avec ou sans conducteur. Ce domaine peut aussi concerner d'autres situations liées à la conduite, comme la gestion de l'environnement, que ce soit sur une route ou dans un environnement industriel. The invention relates to the field of driving assistance. The area of driver assistance includes assistance to fully autonomous vehicles and assistance to assisted vehicles with or without driver. This area may also include other driving situations, such as environmental management, whether on a road or in an industrial environment.
Il existe deux grandes familles de technologies pour les véhicules autonomes : les véhicules autonomes perceptifs, c'est-à-dire capables de se repérer dans n'importe quel environnement, et les véhicules autonomes assistés, c'est-à-dire qui n'ont pas de réelle perception locale de l'environnement. Ces deux familles sont techniquement très distinctes, et font appel à des technologies complètement différentes. Au-delà des techniques distinctes, ces familles de véhicules peuvent être utilisées dans des contextes très différents. Par exemple, un véhicule autonome perceptif est incontournable lorsqu'il n'existe pas ou peu de cartographie de l'environnement d'utilisation, et/ou que la géo localisation dans cet environnement est complexe. C'est le cas par exemple de nombreuses applications comme dans le domaine de l'agriculture ou de la robotique industrielle. La notion de véhicule autonome sera donc pris dans un sens large, pouvant couvrir des voitures autant que des tracteurs ou autre machine agricole ou un robot capable de se déplacer. There are two main families of technologies for autonomous vehicles: autonomous vehicles that are perceptive, that is to say capable of finding their bearings in any environment, and assisted autonomous vehicles, that is to say vehicles that have no real local perception of the environment. These two families are technically very different, and use completely different technologies. Beyond the different techniques, these families of vehicles can be used in very different contexts. For example, a perceptual autonomous vehicle is unavoidable when there is no or little mapping of the environment of use, and / or that geo-localization in this environment is complex. This is the case for example many applications as in the field of agriculture or industrial robotics. The concept of autonomous vehicle will therefore be taken in a broad sense, which can cover cars as much as tractors or other agricultural machinery or a robot capable of moving.
L'invention s'intéresse plus particulièrement au domaine des véhicules autonomes perceptifs. Classiquement, ce type de véhicule utilise des moyens pour analyser leur environnement afin de définir les obstacles. Historiquement, ces obstacles étaient détectés par télémétrie laser plan. The invention is more particularly concerned with the field of autonomous perceptual vehicles. Classically, this type of vehicle uses means to analyze their environment in order to define the obstacles. Historically, these obstacles were detected by laser telemetry plan.
Ces technologies ont évolué, et intègrent désormais comme source de télémétrie le LIDAR 3D ou encore des caméras stéréo. Cela permet d'augmenter le nombre de points de données, et donc la perception de l'environnement. Cependant, cela pose le problème que, parmi les points de données détectés, de nombreux correspondent au sol, alors que dans les techniques précédentes, tout point de donnée désignait automatiquement un obstacle. These technologies have evolved, and now include as a source of telemetry the LIDAR 3D or even stereo cameras. This allows to increase the number of data points, and thus the perception of the environment. However, this poses the problem that, of the data points detected, many correspond to the ground, whereas in the previous techniques, any data point automatically designated an obstacle.
Des techniques ont donc été développées afin de déterminer dans un nuage de point obtenu par LIDAR ou autre technique incluant le sol dans les points de données quelles portions correspondent au sol, et quelles portions correspondent à des obstacles. Les techniques connues sont soit précises mais pas temps réel (par exemple les implémentations actuelles utilisant des champs conditionnels de Markov ou MRP), soit compatibles avec une utilisation temps réel mais insuffisamment précises (par exemple, par fitting d'un plan sur le sol). Techniques have therefore been developed to determine in a point cloud obtained by LIDAR or other technique including the ground in the data points which portions correspond to the ground, and which portions correspond to obstacles. The known techniques are either precise but not real-time (for example current implementations using conditional Markov or MRP fields), or compatible with real-time use but insufficiently precise (for example, by fitting a plane on the ground) .
L'invention vient améliorer la situation. A cet effet, l'invention propose un dispositif informatique pour l'aide à la conduite, comprenant une mémoire agencée pour recevoir des données de nuage de points de données dans lesquelles un nuage de points associe, pour un instant donné, des points présentant chacun des coordonnées dans un plan associé au nuage de points et une valeur désignant une hauteur. The invention improves the situation. For this purpose, the invention proposes a computing device for driving assistance, comprising a memory arranged to receive data from a cloud of data points in which a cloud of points associates, for a given instant, points presenting each coordinates in a plane associated with the point cloud and a value designating a height.
Le dispositif comprend en outre un calculateur agencé pour accéder à la mémoire et, pour un nuage de points donné, pour calculer d'une part des données de probabilité d'appartenance à une surface de référence associées à chaque point du nuage de point données, et d'autre part des données de nœuds associant une valeur désignant une hauteur et deux valeurs indiquant une pente dans un plan associé au plan du nuage de points donné, en déterminant un champ conditionnel aléatoire gaussien au moyen des données de nuage de points de données correspondant au nuage de points donné, lequel champ conditionnel aléatoire gaussien est représenté par un maillage de nœuds dans ledit plan associé, lesquels nœuds sont définis par les données de nœuds, et pour retourner les données de probabilité d'appartenance à une surface de référence et/ou certaines au moins des données de nœuds et des valeurs désignant une hauteur. Ce dispositif est particulièrement intéressant car il permet de faire une distinction entre sol et obstacles, ainsi que de connaître une hauteur respective des points de données, avec un coût de calcul compatible avec une utilisation en temps réel dans un véhicule autonome. The device further comprises a computer arranged to access the memory and, for a given cloud of points, for calculating, on the one hand, reference area membership probability data associated with each point of the given point cloud, and on the other hand node data associating a value designating a height and two values indicating a slope in a plane associated with the plane of the given point cloud, by determining a Gaussian random conditional field using the data point cloud data. corresponding to the given point cloud, which Gaussian random conditional field is represented by a mesh of nodes in said associated plane, which nodes are defined by the node data, and to return the membership probability data to a reference surface and / or at least some node data and values designating a height. This device is particularly interesting because it makes it possible to distinguish between ground and obstacles, as well as to know a respective height of the data points, with a computational cost compatible with real-time use in an autonomous vehicle.
Dans d'autres modes de réalisation, le dispositif pourra présenter une ou plusieurs des caractéristiques supplémentaires suivantes : In other embodiments, the device may have one or more of the following additional features:
- le calculateur est agencé pour appliquer un champ conditionnel aléatoire gaussien comprenant une première composante spatiale calculée, pour un nœud donné, à partir d'une valeur tirée de la différence entre la hauteur du nœud donné et une hauteur calculée à partir des coordonnées du nœud donné, des données de pente du nœud donné et des coordonnées des points les plus proches du nœud donné, et une deuxième composante spatiale calculée, pour un nœud donné, à partir d'une valeur tirée de la différence entre les données de nœud du nœud donné et de données de nœud calculées à partir des coordonnées du nœud donné, des données de nœud des nœuds les plus proches du nœud donné et des coordonnées des nœuds les plus proches du nœud donné,  the computer is arranged to apply a Gaussian random conditional field comprising a first calculated spatial component, for a given node, from a value derived from the difference between the height of the given node and a height calculated from the coordinates of the node. given, slope data of the given node and coordinates of the points closest to the given node, and a calculated second spatial component, for a given node, from a value derived from the difference between node node data. given and node data computed from the coordinates of the given node, node data of the nodes closest to the given node and coordinates of the nodes closest to the given node,
- le calculateur est en outre agencé pour appliquer un champ conditionnel aléatoire gaussien comprenant une composante temporelle calculée, pour un nœud donné et un instant donné, à partir des données de nœud du nœud donné et des données de nœud du nœud donné à un instant précédent l'instant donné, the calculator is furthermore arranged to apply a Gaussian random conditional field comprising a calculated temporal component, for a given node and a given instant, from the node data of the given node and the node data of the given node at a previous instant the given moment,
- le calculateur est agencé pour appliquer un algorithme d'espérance-maximisation pour calculer les données de probabilité d'appartenance à une surface de référence et les données de nœuds,  the computer is arranged to apply an expectation-maximization algorithm for calculating the reference surface membership probability data and the node data,
- le calculateur est agencé, après une étape d'initialisation, pour appliquer l'algorithme d'espérance-maximisation en alternant une étape de calcul d'espérance et une étape de calcul de maximisation- le calculateur est agencé pour exécuter l'étape de calcul d'espérance en mettant à jour les données de probabilité d'appartenance à une surface de référence d'un point donné du nuage de points donné à partir d'une valeur de distance à référence tirée de la différence entre la valeur désignant une hauteur du point donné et d'une hauteur calculée à partir des coordonnées du point donné, des coordonnées du nœud le plus proche du point donné et des données de nœud du nœud le plus proche du point donné, - le calculateur est agencé pour mettre à jour des données de probabilité d'appartenance à une surface de référence d'un point donné du nuage de points donné en fonction du signe de la valeur de distance à référence, the computer is arranged, after an initialization step, to apply the expectation-maximization algorithm by alternating an expectancy calculation step and a maximization calculation step; the calculator is arranged to execute the step of calculating expectation by updating the reference area membership probability data of a given point of the given point cloud from a reference distance value derived from the difference between the value designating a height the given point and a height calculated from the coordinates of the given point, the coordinates of the node closest to the given point and the node data of the node closest to the given point, the computer is arranged to update data for the probability of belonging to a reference surface of a given point of the given point cloud as a function of the sign of the reference distance value,
- le calculateur est agencé pour exécuter l'étape de calcul de maximisation en calculant d'une part un vecteur de données de nœud d'information et des données de matrice d'information à partir de la première composante spatiale et de la deuxième composante spatiale, et  the computer is arranged to execute the maximization calculation step by calculating on the one hand an information node data vector and information matrix data from the first spatial component and the second spatial component; , and
- le calculateur est en outre agencé pour exécuter l'étape de calcul de maximisation à partir de la composante temporelle.  - The computer is further arranged to perform the maximization calculation step from the time component.
L'invention concerne également un procédé informatique pour l'aide à la conduite qui comprend les opérations suivantes : The invention also relates to a computer method for driving assistance which comprises the following operations:
a) recevoir des données de nuage de points de données dans lesquelles un nuage de points associe, pour un instant donné, des points présentant chacun des coordonnées dans un plan associé au nuage de points et une valeur désignant une hauteur, a) receiving cloud data from data points in which a point cloud associates, for a given instant, points each having coordinates in a plane associated with the point cloud and a value designating a height,
b) pour un nuage de points donné, calculer d'une part des données de probabilité d'appartenance à une surface de référence associées à chaque point du nuage de point données, et d'autre part des données de nœuds associant une valeur désignant une hauteur et deux valeurs indiquant une pente dans un plan associé au plan du nuage de points donné, b) for a given cloud of points, compute on the one hand reference area membership probability data associated with each point of the given point cloud, and on the other hand node data associating a value designating a height and two values indicating a slope in a plane associated with the plane of the given point cloud,
en déterminant un champ conditionnel aléatoire gaussien au moyen des données de nuage de points de données correspondant au nuage de points donné, lequel champ conditionnel aléatoire gaussien est représenté par un maillage de nœuds dans ledit plan associé, lesquels nœuds sont définis par les données de nœuds, determining a random Gaussian conditional field using the data point cloud data corresponding to the given point cloud, which Gaussian random conditional field is represented by a mesh of nodes in said associated plane, which nodes are defined by the node data ,
c) retourner les données de probabilité d'appartenance à une surface de référence et/ou certaines au moins des données de nœuds et des valeurs désignant une hauteur. c) returning the membership probability data to a reference surface and / or at least some of the node data and values designating a height.
Dans d'autres modes de réalisation, le procédé pourra présenter une ou plusieurs des caractéristiques supplémentaires suivantes : In other embodiments, the method may have one or more of the following additional features:
- le champ conditionnel aléatoire gaussien comprend une première composante spatiale calculée, pour un nœud donné, à partir d'une valeur tirée de la différence entre la hauteur du nœud donné et une hauteur calculée à partir des coordonnées du nœud donné, des données de pente du nœud donné et des coordonnées des points les plus proches du nœud donné, et une deuxième composante spatiale calculée, pour un nœud donné, à partir d'une valeur tirée de la différence entre les données de nœud du nœud donné et de données de nœud calculées à partir des coordonnées du nœud donné, des données de nœud des nœuds les plus proches du nœud donné et des coordonnées des nœuds les plus proches du nœud donné, the Gaussian random conditional field comprises a first calculated spatial component, for a given node, from a value derived from the difference between the height of the given node and a height calculated from the coordinates of the given node, slope data of the given node and coordinates of the nearest points of the given node, and a calculated second spatial component, for a given node, from a value derived from the difference between the node data of the given node and node data computed from the coordinates of the given node, node data of the nodes closest to the given node and coordinates of the nodes closest to the given node,
- le champ conditionnel aléatoire gaussien comprend en outre une composante temporelle calculée, pour un nœud donné et un instant donné, à partir des données de nœud du nœud donné et des données de nœud du nœud donné à un instant précédent l'instant donné, - l'opération b) comprend l'application d'un algorithme d'espérance-maximisation pour calculer les données de probabilité d'appartenance à une surface de référence et les données de nœuds,  the Gaussian random conditional field further comprises a calculated temporal component, for a given node and a given instant, from the node data of the given node and the node data of the given node at a time preceding the given instant, the operation b) comprises applying an expectation-maximization algorithm for calculating the reference area membership probability data and the node data,
- l'opération b) comprend :  operation b) comprises:
bl) une étape d'initialisation,  bl) an initialization step,
b2) une étape de calcul d'espérance, et  b2) a step of calculating expectancy, and
b3) une étape de calcul de maximisation,  b3) a maximization calculation step,
les étapes b2) et b3) étant répétées sur la base des résultats des étapes précédentes jusqu'à ce qu'une condition de convergence soit remplie,  steps b2) and b3) being repeated based on the results of the preceding steps until a convergence condition is fulfilled,
- l'opération b2) comprend la mise à jour les données de probabilité d'appartenance à une surface de référence d'un point donné du nuage de points donné à partir d'une valeur de distance à référence tirée de la différence entre la valeur désignant une hauteur du point donné et d'une hauteur calculée à partir des coordonnées du point donné, des coordonnées du nœud le plus proche du point donné et des données de nœud du nœud le plus proche du point donné,  the operation b2) comprises updating the data of probability of belonging to a reference surface of a given point of the given point cloud from a reference distance value drawn from the difference between the value designating a height of the given point and a height calculated from the coordinates of the given point, the coordinates of the node closest to the given point and the node data of the node closest to the given point,
- l'opération b2) comprend la mise à jour des données de probabilité d'appartenance à une surface de référence d'un point donné du nuage de points donné en fonction du signe de la valeur de distance à référence, the operation b2) comprises updating the data of probability of belonging to a reference surface of a given point of the given point cloud as a function of the sign of the reference distance value,
- l'opération b3) comprend le calcul d'un vecteur de données de nœud d'information) et de données de matrice d'information) à partir de la première composante spatiale et de la deuxième composante spatiale, et  operation b3) comprises computing an information node data vector) and information matrix data) from the first spatial component and the second spatial component, and
- le calcul de l'opération b3) comprend l'utilisation de la composante temporelle. D'autres caractéristiques et avantages de l'invention apparaîtront mieux à la lecture de la description qui suit, tirée d'exemples donnés à titre illustratif et non limitatif, tirés des dessins sur lesquels : the calculation of the operation b3) comprises the use of the temporal component. Other characteristics and advantages of the invention will appear better on reading the description which follows, taken from examples given for illustrative and non-limiting purposes, taken from the drawings in which:
- la figure 1 représente un diagramme schématique d'un dispositif selon invention et des données qu'il traite,  FIG. 1 represents a schematic diagram of a device according to the invention and data it processes,
- la figure 2 représente un schéma en exemple du modèle de données utilisé par le dispositif de la figure 1,  FIG. 2 represents an exemplary diagram of the data model used by the device of FIG. 1,
- la figure 3 représente un exemple d'une boucle de fonctionnement du dispositif de la figure 1 , et  FIG. 3 represents an example of an operating loop of the device of FIG. 1, and
- la figure 4 représente un exemple de mise en œuvre d'une fonction de la figure 3. FIG. 4 represents an exemplary implementation of a function of FIG. 3.
Les dessins et la description ci-après contiennent, pour l'essentiel, des éléments de caractère certain. Ils pourront donc non seulement servir à mieux faire comprendre la présente invention, mais aussi contribuer à sa définition, le cas échéant. The drawings and the description below contain, for the most part, elements of a certain character. They can therefore not only serve to better understand the present invention, but also contribute to its definition, if any.
La présente description est de nature à faire intervenir des éléments susceptibles de protection par le droit d'auteur et/ou le copyright. Le titulaire des droits n'a pas d'objection à la reproduction à l'identique par quiconque du présent document de brevet ou de sa description, telle qu'elle apparaît dans les dossiers officiels. Pour le reste, il réserve intégralement ses droits. This description is likely to involve elements likely to be protected by copyright and / or copyright. The rights holder has no objection to the identical reproduction by anyone of this patent document or its description, as it appears in the official records. For the rest, he reserves his rights in full.
En outre, la description détaillée est augmentée de l'annexe A, qui donne la formulation de certaines formules mathématiques mises en œuvre dans le cadre de l'invention. Cette Annexe est mise à part dans un but de clarification, et pour faciliter les renvois. Elle est partie intégrante de la description, et pourra donc non seulement servir à mieux faire comprendre la présente invention, mais aussi contribuer à sa définition, le cas échéant. In addition, the detailed description is augmented by Appendix A, which gives the formulation of certain mathematical formulas implemented in the context of the invention. This Annex is set aside for the purpose of clarification and to facilitate referrals. It is an integral part of the description, and can therefore not only serve to better understand the present invention, but also contribute to its definition, if any.
Les champs conditionnels aléatoires (ci-après CRF) constituent une alternative aux MRP, mais n'ont pas d'application dans le domaine des véhicules autonomes. Ils ont connu quelques utilisations, par exemple par Lu et al. dans "A hybrid conditional random field for estimating the underlying ground surface from airborne lidar data " IEEE Transactions on Geoscience and Remote Sensing, vol. 47, pp. 2913-2922, Aug 2009 ou par Wang et al. dans "A dynamic conditional random field model for object segmentation in image séquences" in 2005 IEEE Computer Society Conférence on Computer Vision and Pattern Récognition (CVPR'05), vol. 1, pp. 264-270 vol. 1, June 2005. Lu et al concerne la caractérisation d'un sol à partir d'images prises par un LIDAR aérien, en définissant des variables aléatoires discrètes qui représentent l'appartenance ou pas d'un point particulier au sol. Ce type de modèle n'est manifestement pas compatible avec les véhicules autonomes, pour lesquels l'acquisition de données est réalisée beaucoup plus près du sol, ce qui a pour conséquence une discrimination plus complexe à réaliser, ainsi que la présence de parties masquées, que ce soit par le véhicule lui-même ou par tout obstacle dans la ligne de mire du capteur. De plus, Lu et al. utilise un apprentissage supervisé pour classifïer les obstacles à l'aide d'extraction de caractéristiques, ce qui coûteux et inadapté à une application de navigation avec des obstacles variés comme la conduite autonome. Wang et al est lui spécifique à la segmentation de séquences d'images, ce qui le rend également inapplicable au domaine des véhicules autonomes. Random conditional fields (hereinafter CRF) are an alternative to MRPs, but have no application in the field of autonomous vehicles. They have had some uses, for example by Lu et al. in IEEE Transactions on Geoscience and Remote Sensing, vol. 47, pp. 2913-2922, Aug 2009 or by Wang et al. in "A dynamic conditional random field model for object segmentation in image sequences" in 2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR'05), vol. 1, pp. 264-270 vols. 1, June 2005. Lu et al concerns the characterization of a soil from images taken by an aerial LIDAR, by defining discrete random variables which represent the membership or not of a particular point on the ground. This type of model is clearly not compatible with autonomous vehicles, for which data acquisition is performed much closer to the ground, which results in a more complex discrimination to be achieved, as well as the presence of masked parts, whether by the vehicle itself or by any obstacle in the line of sight of the sensor. In addition, Lu et al. uses supervised learning to classify obstacles using feature extraction, which is expensive and unsuitable for a navigation application with various obstacles such as autonomous driving. Wang et al is specific to the segmentation of image sequences, which also makes it inapplicable to the field of autonomous vehicles.
La Demanderesse a découvert un moyen d'adapter les CRF au contexte des véhicules autonomes afin de discriminer dans un nuage de points ceux qui sont relatifs au sol, et ceux qui appartiennent à des obstacles, et cela en temps réel. Par temps réel, on entend un dispositif qui présente une puissance de calcul économiquement raisonnable et peut être embarqué dans un véhicule, et est capable de traiter les points de données plus rapidement que la fréquence d'acquisition des points de données. The Applicant has discovered a means of adapting the CRFs to the context of autonomous vehicles in order to discriminate in a cloud of points those relating to the ground, and those belonging to obstacles, and this in real time. Real-time means a device that has an economically reasonable computing power and can be embedded in a vehicle, and is able to process data points faster than the data point acquisition frequency.
La figure 1 représente un diagramme schématique d'un dispositif 2 selon invention. Le dispositif 2 comprend une mémoire 4 et un calculateur 6. Figure 1 shows a schematic diagram of a device 2 according to the invention. The device 2 comprises a memory 4 and a computer 6.
Dans le cadre de l'invention, la mémoire 4 peut être tout type de stockage de données propre à recevoir des données numériques : disque dur, disque dur à mémoire flash (SSD en anglais), mémoire flash sous toute forme, mémoire vive, disque magnétique, stockage distribué localement ou dans le cloud, etc. Les données calculées par le dispositif peuvent être stockées sur tout type de mémoire similaire à la mémoire 8, ou sur celle-ci. Ces données peuvent être effacées après que le dispositif ait effectué ses tâches ou conservées. La mémoire 4 reçoit des données de nuage de points de données 8 à une fréquence correspondant à la fréquence d'acquisition du capteur du véhicule autonome dans lequel le dispositif 2 est installé. En variante, le dispositif 2 peut être déporté et communiquer avec le véhicule autonome par tout moyen approprié. Le calculateur 6 traite les données de nuage de points et retourne des données de nuage de points de données discriminé 10, dans lesquelles chaque point de données est identifié comme appartenant au sol ou à un obstacle. De manière optionnelle, une hauteur par rapport au sol peut être annexée à chaque point de données du nuage de points de données discriminé. Les données de nuage de points de données 8 comme les données de nuages de points de données discriminé 10 sont toujours couplées à un marqueur de temps, qui permet de déterminer à quel moment l'acquisition des données a été réalisée. En variante, le calculateur 6 peut également retourner une carte d'élévation du sol sous forme d'une grille de points, avec la pente associée à chaque point de la grille. In the context of the invention, the memory 4 can be any type of data storage suitable for receiving digital data: hard disk, hard disk flash memory (SSD in English), flash memory in any form, RAM, disk magnetic, distributed storage locally or in the cloud, etc. The data calculated by the device can be stored on any type of memory similar to or on memory 8. This data can be erased after the device has completed its tasks or stored. The memory 4 receives data point cloud data 8 at a frequency corresponding to the acquisition frequency of the sensor of the autonomous vehicle in which the device 2 is installed. Alternatively, the device 2 can be deported and communicate with the autonomous vehicle by any appropriate means. The computer 6 processes the point cloud data and returns discriminated data point cloud data 10, in which each data point is identified as belonging to the ground or to an obstacle. Optionally, a height relative to the ground may be appended to each data point of the discriminated data point cloud. The data point cloud data 8 as the discriminated data point cloud data 10 is always coupled to a time marker, which makes it possible to determine when the data acquisition was performed. Alternatively, the computer 6 can also return a soil elevation map in the form of a grid of points, with the slope associated with each point of the grid.
Le calculateur 6 est un élément accédant directement ou indirectement à la mémoire 4. Il peut être réalisé sous la forme d'un code informatique approprié exécuté sur un ou plusieurs processeurs. Par processeurs, il doit être compris tout processeur adapté aux calculs décrits plus bas. Un tel processeur peut être réalisé de toute manière connue, sous la forme d'un microprocesseur pour ordinateur personnel, d'une puce dédiée de type FPGA ou SoC (« System on chip » en anglais), d'une ressource de calcul sur une grille, d'un microcontrôleur, ou de toute autre forme propre à fournir la puissance de calcul nécessaire à la réalisation décrite plus bas. Un ou plusieurs de ces éléments peuvent également être réalisés sous la forme de circuits électroniques spécialisés tel un ASIC. Une combinaison de processeur et de circuits électroniques peut également être envisagée. The computer 6 is an element directly or indirectly accessing the memory 4. It can be implemented in the form of an appropriate computer code executed on one or more processors. By processors, it must be understood any processor adapted to the calculations described below. Such a processor can be made in any known manner, in the form of a microprocessor for a personal computer, a dedicated FPGA or SoC chip ("System on chip"), a computing resource on a grid, a microcontroller, or any other form to provide the computational power necessary for the embodiment described below. One or more of these elements can also be realized in the form of specialized electronic circuits such as an ASIC. A combination of processor and electronic circuits can also be considered.
La figure 2 représente un schéma en exemple du modèle de données utilisé par le dispositif de la figure 1. La Demanderesse a découvert qu'un champ conditionnel aléatoire spatio-temporel (ci-après STCRF) permet de résoudre les problèmes liés à la discrimination des nuages de points de données obtenus à faible altitude. Dans l'exemple décrit ici, le sol est modélisé sous la forme d'un champ aléatoire conditionnel représenté par un maillage de nœuds dans un plan bidimensionnel centré sur le véhicule. Chaque nœud a des coordonnées propres dans ce plan et se voit associer une variable aléatoire continue cachée sous la forme d'un triplet comprenant une hauteur, une pente selon un premier axe du plan bidimensionnel, et une pente selon un second axe du plan bidimensionnel. Ainsi, pour un nœud d'indice i et de coordonnées nxi et nyi, la variable aléatoire continue cachée est notée Gi=(hi,sxi,syi)T. Les mesures contenues dans les données de nuage de points de données 8 représentent des triplets de coordonnées (xj, yj, zj) qui sont adaptées au repère du plan bidimensionnel. FIG. 2 represents an exemplary diagram of the data model used by the device of FIG. 1. The Applicant has discovered that a spatio-temporal random conditional field (hereinafter STCRF) makes it possible to solve the problems related to the discrimination of the clouds of data points obtained at low altitude. In the example described here, the ground is modeled as a conditional random field represented by a mesh of nodes in a two-dimensional plane centered on the vehicle. Each node has its own coordinates in this plane and is associated with a continuous random variable hidden in the form of a triplet comprising a height, a slope along a first axis of the two-dimensional plane, and a slope along a second axis of the two-dimensional plane. Thus, for a node of index i and of coordinates nxi and nyi, the hidden continuous random variable is denoted Gi = (hi, sxi, syi) T. The measurements contained in the data point cloud data 8 represent coordinate triplets (xj, yj, zj) that are matched to the two-dimensional plane reference.
Le STCRF est basé sur trois groupes de voisinages interdépendants : The STCRF is based on three interdependent neighborhood groups:
Le voisinage temporel, qui implique qu'un même nœud doit avoir la même classification dans deux nuages de points de données discriminés consécutifs, The temporal neighborhood, which implies that the same node must have the same classification in two consecutive discriminated data point clouds,
Le voisinage spatial, qui implique que des nœuds très proches spatialement ont normalement des hauteurs similaires, et The spatial neighborhood, which implies that nodes very close spatially normally have similar heights, and
Le voisinage réel, qui comprend des observations (par exemple une classification préalable de certains points et/ou nœuds) et des variables cachées (comme la hauteur des points et/ou nœuds et une probabilité d'appartenance au sol).  The real neighborhood, which includes observations (for example a prior classification of certain points and / or nodes) and hidden variables (such as the height of points and / or nodes and a probability of belonging to the ground).
La modélisation via ce STCRF permet de déterminer, pour chaque point donné, la valeur de la probabilité de son appartenance au sol, ainsi que la hauteur pour les nœuds du maillage. The modeling via this STCRF makes it possible to determine, for each given point, the value of the probability of its belonging to the ground, as well as the height for the nodes of the mesh.
Ainsi, comme on peut le voir sur la figure 2, pour un nuage de points de données particulier, les données du STCRF se répartissent sur des plans temporels 20 et 22. Le plan temporel 20 représente le maillage pour le nuage de points de données particulier, et le plan temporel 22 représente le maillage pour le nuage de points de données immédiatement antérieur au nuage de points de données particulier. Dans l'exemple décrit ici le voisinage temporel est donc formé, pour un nœud 24 du plan temporel 20 par le nœud 26 qui lui correspond dans le plan temporel 22. La manière dont il est tenu compte du déplacement du véhicule pour déterminer le nœud 26 sera explicité plus bas. Thus, as can be seen in FIG. 2, for a particular data point cloud, the STCRF data is distributed over time planes 20 and 22. The time plane 20 represents the mesh for the particular data point cloud. , and the time plane 22 represents the mesh for the cloud of data points immediately prior to the particular data point cloud. In the example described here the temporal neighborhood is thus formed, for a node 24 of the temporal plane 20 by the node 26 which corresponds to it in the temporal plane 22. The manner in which account is taken of the displacement of the vehicle to determine the node 26 will be explained below.
Le nœud 24 est entouré d'un ensemble de points de données 28. Comme décrit plus haut, chaque point de données 28 a des coordonnées (xj, yj, zj) qui représentent une mesure ici obtenue par LIDAR). Une variable aléatoire binaire cj est associée à chaque mesure. Comme on le verra plus bas, le dispositif 2 met en œuvre une boucle de calcul qui permet d'évaluer la valeur de la variable cj. Aux fins de ces calculs, chaque point de données 28 est associé au nœud Gi dont il est le plus proche selon une mesure métrique. Node 24 is surrounded by a set of data points 28. As described above, each data point 28 has coordinates (xj, yj, zj) which represent a measure here obtained by LIDAR). A binary random variable cj is associated with each measure. As will be seen below, the device 2 implements a calculation loop which makes it possible to evaluate the value of the variable cj. For the purposes of these calculations, each data point 28 is associated with the node Gi of which it is closest according to a metric measurement.
Les trois voisinages sont réunis dans une distribution de Gibbs sous la forme de trois équations [10], [20] et [30] de l'Annexe A. L'équation [10] concerne le voisinage réel, l'équation [20] concerne le voisinage spatial et l'équation [30] concerne le voisinage temporel. The three neighborhoods are combined in a Gibbs distribution in the form of three equations [10], [20] and [30] of Appendix A. Equation [10] relates to the real neighborhood, the equation [20] concerns the spatial neighborhood and equation [30] concerns the temporal neighborhood.
Dans l'équation [10], Wl est un facteur de normalisation, a est un facteur de pondération, Mi désigne l'ensemble des points de données qui sont associés à un nœud Gi donné, et Hij est une matrice définie par la formule [15] de l'Annexe A. La multiplication de la matrice Hij par Gi revient à estimer la hauteur du nœud Gi au point de données d'indice j, en tenant compte de la pente sxi et syi de Gi et des distances entre le nœud Gi et le point de données d'indice j. Ainsi l'équation [10] détermine une valeur tirée de la différence entre la hauteur de la mesure de chacun des points de données et la hauteur qu'aurait le nœud le plus proche en ces points, la variable cj influant selon que chaque point de données est associé au sol ou pas. Dans l'exemple décrit ici, la sélection des points de données du voisinage réel est réalisée en décalant la grille de maillage et en la centrant sur les nœuds Gi. Ainsi, chaque carré de maillage contient les points de données les plus proches du nœud Gi au centre du carré de maillage considéré. In equation [10], W1 is a normalization factor, a is a weighting factor, Mi is the set of data points that are associated with a given node Gi, and Hij is a matrix defined by the formula [ 15] of Appendix A. The multiplication of the matrix Hij by Gi amounts to estimating the height of the node Gi at the data point of index j, taking into account the slope sxi and syi of Gi and the distances between the node Gi and the index data point j. Thus equation [10] determines a value derived from the difference between the height of the measurement of each of the data points and the height that would have the nearest node at these points, the variable cj influencing according to each point of data is associated with the ground or not. In the example described here, the selection of the data points of the real neighborhood is performed by shifting the grid grid and centering it on the nodes Gi. Thus, each grid square contains the data points closest to the node Gi in the center of the grid square considered.
Dans l'équation [20], W2 est un facteur de normalisation, β est un facteur de pondération, Vi désigne l'ensemble des nœuds voisins d'un nœud Gi donné, et Fij est une matrice définie par la formule [25] de l'Annexe A. L'application de la matrice Fij à Gj revient à estimer la hauteur du nœud Gj à l'emplacement du nœud d'indice i, en tenant compte de de la pente sxj et syj de Gj, et des distances entre le nœud Gj et le nœud Gi. Ainsi l'équation [20] détermine une valeur tirée de la différence entre la hauteur de chacun des nœuds et la hauteur qu'auraient les nœuds voisins en ces nœuds. Dans l'exemple décrit ici, les voisins spatiaux sont les 8 nœuds les plus proches de chaque nœud donné. Cela donne un bon compromis entre nombre d'itérations nécessaires pour converger et quantité de calcul nécessaire pour chaque étape. En variante, le voisinage spatial pourrait être réduit à 4, voire 2 nœuds, ou supérieur à 8. Toujours en variante, l'équation [20] pourrait comprendre un facteur de pondération pour chaque nœud voisin Gj, par exemple du type noyau Gaussien. In equation [20], W2 is a normalization factor, β is a weighting factor, Vi denotes the set of neighboring nodes of a given node Gi, and Fij is a matrix defined by the formula [25] of Annex A. The application of the matrix Fij to Gj amounts to estimating the height of the node Gj at the location of the index node i, taking into account the slope sxj and syj of Gj, and distances between the node Gj and the node Gi. Thus equation [20] determines a value derived from the difference between the height of each of the nodes and the height that neighboring nodes would have at these nodes. In the example described here, the spatial neighbors are the 8 nodes closest to each given node. This gives a good compromise between the number of iterations needed to converge and the amount of computation required for each step. As a variant, the spatial neighborhood could be reduced to 4, or even 2 nodes, or greater than 8. Still alternatively, equation [20] could comprise a weighting factor for each neighboring node Gj, for example of the Gaussian kernel type.
Dans l'équation [30], W3 est un facteur de normalisation, γ est un facteur de pondération, Qi désigne une matrice de transition du nœud Gi pour le nuage de points de données immédiatement antérieur au nuage de points de données courant à l'état du nœud Gi pour le nuage de points de données courant. Dans l'exemple décrit ici, la matrice Qi est choisie égale à la matrice identité, mais elle pourrait être différente pour introduire du bruit qui correspondrait à un intervalle de confiance sur les mesures qui ont permis d'interpoler le nœud Git_1 ou pour tenir compte d'un changement de la hauteur du sol dans le temps (due par exemple des vagues dans une application maritime). Pour tenir compte du fait que le véhicule se déplace, la détermination du nœud GiM est faite en transformant le maillage du le nuage de points de données immédiatement antérieur au nuage de points de données courant en fonction des données de déplacement et de changement d'orientation du véhicule. Ces données peuvent être tirées d'une unité de mesure inertielle, et/ou de données GPS, et/ou de données d'un odomètre ou d'autres méthodes utilisant d'autres capteurs (odométrie visuelle, SLAM laser, etc.). La valeur de Git_1 est alors calculée par interpolation du maillage transformé à l'emplacement du nœud Gi. Pour les nœuds pour lesquels aucune information n'était disponible, c'est-à-dire correspondant à une zone non visitée par le véhicule, Git_1 est marqué comme indéfini, de sorte que le couple Gi- Git_1 n'est pas pris en compte, tandis que les zones qui disparaissent suite à la transformation peuvent être écartées ou stockées dans une cartographie de long terme. Dans d'autres variantes, le voisinage temporel pourrait inclure un nœud d'un nuage encore plus ancien. Néanmoins, l'utilisation d'un seul voisin temporel suffit à forcer la cohérence pour les nœuds qui se trouvent dans une zone devenue aveugle du fait de la survenance d'un obstacle comme un autre véhicule, ou par le déplacement du véhicule autonome lui- même. En variante, le voisinage temporel et l'équation [30] pourraient être omis, à condition d'accepter de perdre la cohésion temporelle, et de subir des zones d'ombre dynamiques en fonction des obstacles rencontrés. In equation [30], W3 is a normalization factor, γ is a weighting factor, Qi is a transition matrix of node Gi for the cloud of data points immediately prior to the current data point cloud. Gi node state for the current data point cloud. In the example described here, the matrix Qi is chosen equal to the identity matrix, but it could be different to introduce noise that would correspond to a confidence interval on the measurements that made it possible to interpolate the node Gi t_1 or to hold account of a change in the height of the soil in time (due for example to waves in a maritime application). To account for the fact that the vehicle is moving, the determination of the node Gi M is done by transforming the mesh of the data point cloud immediately prior to the current data point cloud according to the displacement and change data. vehicle orientation. This data can be derived from an inertial measurement unit, and / or GPS data, and / or data from an odometer or other methods using other sensors (visual odometry, laser SLAM, etc.). The value of Gi t_1 is then calculated by interpolation of the transformed mesh at the location of the node Gi. For nodes for which no information was available, that is to say, corresponding to an area not visited by the vehicle, Gi t_1 is marked as undefined, so the couple Gi Gi- t_1 not taken account, while areas that disappear as a result of the transformation may be discarded or stored in a long-term map. In other variants, the temporal neighborhood might include an even older cloud node. Nevertheless, the use of a single temporal neighbor is enough to force coherence for the nodes that are in an area that has become blind because of the occurrence of an obstacle like another vehicle, or by the displacement of the autonomous vehicle itself. even. Alternatively, the temporal neighborhood and the equation [30] could be omitted, provided that they agree to lose the temporal cohesion, and to undergo dynamic shadow zones as a function of the obstacles encountered.
L'invention repose sur la transformation d'un maillage a priori en un maillage qui maximise la probabilité a posteriori selon la formule [40] de l'Annexe A. Pour cela, chaque nœud se voit affecter un modèle Gaussien pour l'état du sol, chaque nœud Gi étant représenté par un vecteur moyen Gmi et une matrice de covariance Mi. Pour simplifier les calculs, ces relations sont réécrites avec d'une matrice Pi qui est l'inverse de la matrice de covariance Mi et un vecteur Xi qui est égal au produit de la matrice Pi et du vecteur moyen Gmi. Une fois la matrice Pi et le vecteur Xi déterminés, Gmi peut être défini selon la formule [50] de l'Annexe A. The invention is based on the transformation of a mesh a priori into a mesh that maximizes the posterior probability according to the formula [40] of Appendix A. For this, each node is assigned a Gaussian model for the state of the ground, each node Gi being represented by a mean vector Gmi and a covariance matrix Mi. To simplify the calculations, these relations are rewritten with a matrix Pi which is the inverse of the covariance matrix Mi and a vector Xi which is equal to the product of the matrix Pi and the average vector Gmi. Once the matrix Pi and the vector Xi are determined, Gmi can be defined according to the formula [50] of Annex A.
Afin d'approcher la pleine distribution sur G, un algorithme d'espérance-maximisation itératif est exécuté pour déterminer la matrice Pi et le vecteur Xi, dans lequel l'étape d'espérance estime la distribution de probabilité sur la distribution de classification des points de données Ci, et une étape de maximisation utilise cette distribution pour estimer la distribution d'état du sol. Ces deux étapes sont répétées en boucle jusqu'à ce qu'une condition de convergence soit atteinte. In order to approach the full distribution on G, an iterative expectation-maximization algorithm is executed to determine the matrix Pi and the vector Xi, in which the expectation step estimates the probability distribution on the classification distribution of the points. Ci data, and a maximization step uses this distribution to estimate the state distribution of the soil. These two steps are repeated in a loop until a convergence condition is reached.
La figure 3 représente un exemple d'une fonction exécutée par le calculateur 6 pour mettre en œuvre ces calculs. Figure 3 shows an example of a function performed by the computer 6 to implement these calculations.
Dans une opération 300, le calculateur 6 exécute une fonction InitQ. Dans l'exemple décrit, le maillage de départ est plat. Cette fonction initialise donc les vecteurs Gmi de G(0) avec une hauteur et des pentes nulles. Cela initialise donc également X(0) à 0. En partant d'un autre maillage a priori, non plat, la fonction InitQ initialiserait les vecteurs Gmi en fonction de cet autre maillage. Cette initialisation sera également effectuée à chaque fois qu'un nouveau nœud (c'est-à-dire un nœud à un emplacement qui n'a été traité dans aucune des boucles précédentes) est défini pour un nuage de points de données, lorsque le véhicule se déplace. La matrice de covariance Mi est initialisée avec des coefficients diagonaux importants, de sorte que ces valeurs d'initialisation n'influencent pas le résultat final l'algorithme mais permettent d'accélérer sa convergence. In an operation 300, the computer 6 executes an InitQ function. In the example described, the starting grid is flat. This function therefore initializes the Gmi vectors of G (0) with a height and zero slopes. This also initializes X (0) to 0. Starting from another mesh a priori, not flat, the function InitQ would initialize the vectors Gmi according to this other mesh. This initialization will also be performed each time a new node (that is, a node at a location that has not been processed in any of the previous loops) is defined for a cloud of data points, as the vehicle moves. The covariance matrix Mi is initialized with important diagonal coefficients, so that these initialization values do not influence the final result of the algorithm but make it possible to accelerate its convergence.
Une boucle est alors exécutée jusqu'à l'arrêt du fonctionnement du véhicule autonome, avec dans une opération 310 l'incrémentation d'un indice t, dans une opération 320 l'exécution d'une fonction Rec() qui reçoit un nuage de point de données courant et stocke les mesures correspondantes dans un vecteur Z, et dans une opération 330 l'exécution d'une fonction EM() qui détermine le vecteur G(t) en recevant comme arguments le vecteur Z et le vecteur G(t-1) de la boucle précédente. A loop is then executed until the operation of the autonomous vehicle is stopped, with in an operation 310 the incrementation of an index t, in an operation 320 the execution of a function Rec () which receives a cloud of current data point and stores the corresponding measurements in a vector Z, and in an operation 330 the execution of a function EM () which determines the vector G (t) while receiving as arguments the vector Z and the vector G (t -1) of the previous loop.
La figure 4 représente un exemple de mise en œuvre de la fonction EM(). Dans une opération 400, la fonction EM() s'initialise en définissant un indice i à 0 et un indice k à 1, en déterminant P(t-1) et X(t-1) à partir de G(t-1) et en définissant l'indice de boucle courante t. Figure 4 shows an example of implementation of the function EM (). In an operation 400, the function EM () is initialized by defining an index i to 0 and an index k to 1, by determining P (t-1) and X (t-1) from G (t-1). ) and defining the current loop index t.
Deux boucles sont alors lancées. La première boucle parcourt, pour un indice k donné, tous les nœuds d'indice i et mettre à jour la probabilité C[], le vecteur X[i] et la matrice P[i]. Le vecteur C[] contient donc, pour un indice k donné, les probabilités de tous les nœuds d'indice i de la boucle courante d'indice t. La deuxième boucle consiste à répéter la première boucle avec les nœuds mis à jour, en faisant donc varier l'indice k, jusqu'à ce qu'une condition de convergence soit remplie. Two loops are then launched. The first loop traverses, for a given index k, all the nodes of index i and update the probability C [], the vector X [i] and the matrix P [i]. The vector C [] therefore contains, for a given index k, the probabilities of all the nodes of index i of the current loop of index t. The second loop consists in repeating the first loop with the updated nodes, thus varying the index k, until a convergence condition is fulfilled.
Bien que la présentation de la Figure 4 soit présentée sous forme itérative, par la nature même des calculs qu'elles contiennent, les opérations de la première boucle pourraient être réalisées en parallèle. Dit autrement, pour un indice k fixé, la première boucle associée à chaque indice i pourrait être parallélisée, et être par exemple exécutées toutes ou en partie en parallèle sur un processeur graphique, dont les qualités sont connus pour ces applications. Ainsi, la probabilité C est mise à jour dans une opération 410 par une fonction Est() qui reçoit comme argument le vecteur Z et le vecteur X[i]. La fonction Est() sélectionne l'ensemble des points de données du vecteur Z qui sont associés au nœud d'indice i, et évalue pour chacun d'entre eux une probabilité cj qu'il stocke dans le vecteur C[k]. La probabilité cj est calculée selon la formule [60] de l'Annexe A. Pour la première itération de la fonction Est(), lorsque X[i](k-l,t) n'existe pas, c'est X[i](t-1) qui est utilisé. Dans le cas où le sol serait considéré comme mouvant temporellement, cette variation pourrait être prise en compte et appliquée à X[i](t-1). Cette formule revient à déterminer une valeur tirée de la distance entre la mesure zj d'un point de données et la hauteur estimée du nœud Gmi déplacé à l'emplacement du point de données. L'exponentielle avec les facteurs σΐ et σ2 permettent de converger rapidement vers 1 lorsque la différence est proche de zéro. Dans l'exemple décrit ici, σΐ est fixé à 0,05m et σ2 est fixé à 0,5m. Ces valeurs permettent de donner plus d'importance aux points de données dont la hauteur est faible et permet de converger pour la partie basse des obstacles (qui ne sont donc pas du sol). En variante, la formule lorsque la différence de la formule [60] de l'Annexe A est négative pourrait fixer une valeur de cj égale à 1. Une fois l'étape d'espérance terminée avec l'opération 410, l'étape de maximisation est exécutée avec des opérations 420 et 430. Although the presentation of Figure 4 is presented in iterative form, by the very nature of the calculations they contain, the operations of the first loop could be performed in parallel. In other words, for an index k fixed, the first loop associated with each index i could be parallelized, and be for example executed all or in part in parallel on a graphics processor, whose qualities are known for these applications. Thus, the probability C is updated in an operation 410 by a function East () which receives as argument the vector Z and the vector X [i]. The function East () selects the set of data points of the vector Z which are associated with the index node i, and evaluates for each of them a probability cj that it stores in the vector C [k]. The probability cj is calculated according to formula [60] of Annex A. For the first iteration of the function East (), when X [i] (kl, t) does not exist, it is X [i] (t-1) which is used. In the case where the soil is considered as temporally moving, this variation could be taken into account and applied to X [i] (t-1). This formula amounts to determining a value derived from the distance between the measurement zj of a data point and the estimated height of the node Gmi moved to the location of the data point. The exponential with the factors σΐ and σ2 makes it possible to converge quickly to 1 when the difference is close to zero. In the example described here, σΐ is set at 0.05m and σ2 is set at 0.5m. These values make it possible to give more importance to the data points whose height is low and converge for the lower part of the obstacles (which are therefore not the ground). Alternatively, the formula when the difference of the formula [60] of Annex A is negative could set a value of cj equal to 1. Once the expectation step is completed with the operation 410, the step of maximization is performed with operations 420 and 430.
Dans l'opération 420, une fonction XMax() reçoit comme arguments le vecteur C[], le vecteur X[i](t-1) et le vecteur X[i](k-l,t) de l'itération précédente, ainsi que le vecteur Z et met à jour le vecteur X[i](k,t) de l'itération courante en appliquant la formule [70] de l'Annexe A. In the operation 420, a function XMax () receives as arguments the vector C [], the vector X [i] (t-1) and the vector X [i] (k1, t) of the previous iteration, and that the vector Z and update the vector X [i] (k, t) of the current iteration by applying the formula [70] of Annex A.
La formule [70] de l'Annexe A revient à faire une maximisation des formules [10], [20] et [30] pour le vecteur X[i], la formulation exponentielle de ces dernières permettant une formule linéaire en présence du modèle Gaussien. De manière similaire, dans l'opération 430, une fonction PMax() reçoit comme arguments le vecteur C[], la matrice P[i](t-1) et la matrice P[i](k-l,t) de l'itération précédente, ainsi que le vecteur Z et met à jour le vecteur P[i](k,t) de l'itération courante en appliquant la formule [80] de l'Annexe A. The formula [70] of Annex A amounts to maximizing the formulas [10], [20] and [30] for the vector X [i], the exponential formulation of the latter allowing a linear formula in the presence of the model Gaussian. Similarly, in the operation 430, a function PMax () receives as arguments the vector C [], the matrix P [i] (t-1) and the matrix P [i] (kl, t) of the previous iteration, as well as the vector Z and updates the vector P [i] (k, t) of the current iteration by applying the formula [80] of Annex A.
Comme pour la formule [70] de l'Annexe A, la formule [80] de l'Annexe A revient à faire une maximisation des formules [10], [20] et [30] pour la matrice P[i], la formulation exponentielle de ces dernières permettant une formule linéaire en présence du modèle Gaussien. As for formula [70] of Annex A, formula [80] of Annex A amounts to maximizing formulas [10], [20] and [30] for matrix P [i], exponential formulation of the latter allowing a linear formula in the presence of the Gaussian model.
Dans l'exemple décrit ici, le facteur de pondération a a été fixé à 1, le facteur de pondération β a été fixé à 0,5, et le facteur de pondération γ a été fixé à 0,2. Ces facteurs de pondération pourraient être fixés autrement et correspondent à l'importance que l'on souhaite donner aux voisinages respectifs dans la détermination de la solution. In the example described here, the weighting factor a was set at 1, the weighting factor β was set at 0.5, and the weighting factor γ was set at 0.2. These weighting factors could be set differently and correspond to the importance that one wishes to give to the respective neighborhoods in the determination of the solution.
L'indice i est alors testé pour déterminer si tous les nœuds ont été mis à jour pour la boucle d'indice k courant dans une opération 440. Si ce n'est pas le cas, alors l'indice i est incrémenté dans une opération 450 et les opérations 410 à 440 sont répétées. Lorsque tous les nœuds ont été mis à jour, l'estimation pour l'itération courante de chaque vecteur Gmi, stockés dans un tableau G(k,t), est calculée dans une opération 460 qui reçoit comme arguments le vecteur X(k,t) courant et la matrice P(k,t) courante. Cela est réalisé en appliquant la formule [90] de l'Annexe A, qui correspond à la transposition à l'itération courante de la formule [50] de l'Annexe A. The index i is then tested to determine if all the nodes have been updated for the index loop k current in an operation 440. If this is not the case, then the index i is incremented in an operation 450 and operations 410 to 440 are repeated. When all the nodes have been updated, the estimate for the current iteration of each vector Gmi, stored in a table G (k, t), is computed in an operation 460 which receives as arguments the vector X (k, t) current and the current matrix P (k, t). This is done by applying formula [90] of Annex A, which corresponds to the transposition to the current iteration of formula [50] of Annex A.
Enfin, une fonction Conv() est exécutée dans une opération 470. La fonction Conv() détermine si la fonction EM() a convergé, ou s'il est nécessaire de faire une autre itération. Cette détermination peut être basée sur le nombre d'itérations, la Demanderesse ayant constaté que, pour les paramètres décrits ci-dessus, 10 itérations suffisent toujours à converger, ou sur une condition de convergence propre, par exemple la comparaison entre G(k,t) et G(k-l,t). Lorsqu'une nouvelle itération est nécessaire, l'indice k est incrémenté dans une opération 480 et l'indice i est remis à zéro dans une opération 490, et la boucle reprend avec l'opération 410. Sinon, la fonction EM() se termine en retournant le tableau G(k,t) dans une opération 499. Finally, a function Conv () is executed in an operation 470. The function Conv () determines whether the function EM () has converged, or if it is necessary to make another iteration. This determination can be based on the number of iterations, the Applicant having found that, for the parameters described above, 10 iterations are always sufficient to converge, or on a specific convergence condition, for example the comparison between G (k, t) and G (kl, t). When a new iteration is necessary, the index k is incremented in an operation 480 and the index i is reset in an operation 490, and the loop resumes with the operation 410. Otherwise, the function EM () ends by returning the array G (k, t) in an operation 499.
L'exemple décrit ici a été validé avec des nuages de points de données obtenus par LIDAR, au moyen d'un LIDAR Velodyne HDL64 monté sur une Renault Zoe ainsi qu'avec 3 LIDARs Ibeo Lux. En variante, d'autres sources de nuages de points pourraient être utilisées comme des caméras stéréo ou caméra de profondeur de type Kinect ou autres. En outre, pour réduire les calculs, le voisinage réel pourrait être réduit en tenant compte de la distance au véhicule. En effet, par nature, le LIDAR retourne énormément de points près du véhicule, puis de moins en moins au fur et à mesure que l'angle de tir augmente. En variante, le nombre de voisins pourrait être conservé, mais utilisé pour accélérer la convergence en forçant la cohérence des nœuds du maillage avec ceux-ci. Pour accélérer la convergence, les points très proches du véhicule pourraient également avoir une hauteur forcée à celle du véhicule. Enfin, la grille décrite ici est à motif carrés, mais elle pourrait être adaptée à la technologie de capture des nuages de points de données, par exemple être une grille polaire à motifs circulaires. The example described here was validated with data point clouds obtained by LIDAR, using a Velodyne HDL64 LIDAR mounted on a Renault Zoe as well as with 3 Ibeo Lux LIDARs. Alternatively, other point cloud sources could be used as stereo cameras or Kinect type depth cameras or the like. In addition, to reduce calculations, the actual neighborhood could be reduced by taking into account the distance to the vehicle. Indeed, by nature, the LIDAR returns a lot of points near the vehicle, then less and less as the angle of fire increases. As a variant, the number of neighbors could be conserved, but used to accelerate the convergence by forcing the coherence of the nodes of the mesh with these. To accelerate the convergence, the points very close to the vehicle could also have a height forced to that of the vehicle. Finally, the grid described here is patterned squares, but it could be adapted to the technology of capturing clouds of data points, for example be a polar grid with circular patterns.

Claims

Revendications 1. Dispositif informatique pour l'aide à la conduite, comprenant une mémoire (4) agencée pour recevoir des données de nuage de points de données (8) dans lesquelles un nuage de points associe, pour un instant donné (t), des points présentant chacun des coordonnées (xi, yi) dans un plan associé au nuage de points et une valeur désignant une hauteur (zi),  1. A computer device for driving assistance, comprising a memory (4) arranged to receive data point cloud data (8) in which a cloud of points associates, for a given instant (t), points each having coordinates (xi, yi) in a plane associated with the point cloud and a value designating a height (zi),
caractérisé en ce qu'il comprend en outre un calculateur (6) agencé pour accéder à la mémoire (4) et, pour un nuage de points donné, pour calculer d'une part des données de probabilité d'appartenance à une surface de référence (cj) associées à chaque point du nuage de point données, et d'autre part des données de nœuds (hi, sxi, syi) associant une valeur désignant une hauteur (hi) et deux valeurs indiquant une pente (sxi, syi) dans un plan associé au plan du nuage de points donné, en déterminant un champ conditionnel aléatoire gaussien (CRF) au moyen des données de nuage de points de données (8) correspondant au nuage de points donné, lequel champ conditionnel aléatoire gaussien (CRF) est représenté par un maillage de nœuds dans ledit plan associé, lesquels nœuds sont définis par les données de nœuds (hi, sxi, syi), et pour retourner les données de probabilité d'appartenance à une surface de référence (cj) et/ou certaines au moins des données de nœuds (hi, sxi, syi) et des valeurs désignant une hauteur (zi).  characterized in that it further comprises a computer (6) arranged to access the memory (4) and, for a given cloud of points, to calculate on the one hand data of probability of belonging to a reference surface (cj) associated with each point of the given point cloud, and on the other hand node data (hi, sxi, syi) associating a value designating a height (hi) and two values indicating a slope (sxi, syi) in a plane associated with the given point cloud plane, by determining a Gaussian random conditional field (CRF) using the data point cloud data (8) corresponding to the given point cloud, which Gaussian random conditional field (CRF) is represented by a mesh of nodes in said associated plane, which nodes are defined by the node data (hi, sxi, syi), and to return the membership probability data to a reference surface (cj) and / or certain at least data from nodes (hi, sxi, syi) and values designating a height (zi).
2. Dispositif selon la revendication 1 , dans lequel le calculateur (6) est agencé pour appliquer un champ conditionnel aléatoire gaussien (CRF) comprenant une première composante spatiale calculée, pour un nœud donné (Gi), à partir d'une valeur tirée de la différence entre la hauteur (hi) du nœud donné (Gi) et une hauteur (HijGi) calculée à partir des coordonnées du nœud donné (nxi, nyi), des données de pente (sxi, syi) du nœud donné (Gi) et des coordonnées (xj, yj) des points les plus proches (Mi) du nœud donné (Gi), et une deuxième composante spatiale calculée, pour un nœud donné (Gi), à partir d'une valeur tirée de la différence entre les données de nœud du nœud donné (Gi) et de données de nœud (FijGj) calculées à partir des coordonnées du nœud donné (nxi, nyi), des données de nœud (Gj) des nœuds les plus proches (Vi) du nœud donné (Gi) et des coordonnées (xj, yj) des nœuds les plus proches (Gj) du nœud donné (Gi). 2. Device according to claim 1, wherein the computer (6) is arranged to apply a Gaussian random conditional field (CRF) comprising a first calculated spatial component, for a given node (Gi), from a value derived from the difference between the height (hi) of the given node (Gi) and a height (HijGi) calculated from the coordinates of the given node (nxi, nyi), slope data (sxi, syi) of the given node (Gi) and coordinates (xj, yj) of the nearest points (Mi) of the given node (Gi), and a second calculated spatial component, for a given node (Gi), from a value derived from the difference between the data of node of the given node (Gi) and of node data (FijGj) computed from the coordinates of the given node (nxi, nyi), data node (Gj) of the nearest nodes (Vi) of the given node (Gi) and coordinates (xj, yj) of the nearest nodes (Gj) of the given node (Gi).
3. Dispositif selon la revendication 2, dans lequel le calculateur (6) est en outre agencé pour appliquer un champ conditionnel aléatoire gaussien (CRF) comprenant une composante temporelle calculée, pour un nœud donné (Gi) et un instant donné (t), à partir des données de nœud du nœud donné et des données de nœud du nœud donné à un instant précédent l'instant donné (Gi(t-l)). 3. Device according to claim 2, wherein the computer (6) is further arranged to apply a Gaussian random conditional field (CRF) comprising a calculated temporal component, for a given node (Gi) and a given instant (t), from the node data of the given node and the node data of the given node at a time preceding the given instant (Gi (tl)).
4. Dispositif selon l'une des revendications précédentes, dans lequel le calculateur (6) est agencé pour appliquer un algorithme d'espérance-maximisation pour calculer les données de probabilité d'appartenance à une surface de référence (cj) et les données de nœuds (hi, sxi, syi). 4. Device according to one of the preceding claims, wherein the computer (6) is arranged to apply an expectation-maximization algorithm for calculating the reference area membership probability data (cj) and the data of nodes (hi, sxi, syi).
5. Dispositif selon la revendication 4, dans lequel le calculateur (6) est agencé, après une étape d'initialisation, pour appliquer l'algorithme d'espérance-maximisation en alternant une étape de calcul d'espérance et une étape de calcul de maximisation. 5. Device according to claim 4, wherein the computer (6) is arranged, after an initialization step, to apply the expectation-maximization algorithm by alternating an expectancy calculation step and a calculation step of maximization.
6. Dispositif selon la revendication 5, dans lequel le calculateur (6) est agencé pour exécuter l'étape de calcul d'espérance en mettant à jour les données de probabilité d'appartenance à une surface de référence (cj) d'un point donné du nuage de points donné à partir d'une valeur de distance à référence (dzj) tirée de la différence entre la valeur désignant une hauteur (zj) du point donné et d'une hauteur (HijXi) calculée à partir des coordonnées du point donné (xj, yj), des coordonnées (nxi, nyi) du nœud le plus proche du point donné et des données de nœud (hi, nxi, nyi, sxi, syi) du nœud le plus proche du point donné. 6. Device according to claim 5, wherein the computer (6) is arranged to perform the expectancy calculation step by updating the data of probability of belonging to a reference surface (cj) of a point. given given point cloud from a reference distance value (dzj) derived from the difference between the value designating a height (zj) of the given point and a height (HijXi) calculated from the coordinates of the point Given (xj, yj), coordinates (nxi, nyi) of the node closest to the given point and node data (hi, nxi, nyi, sxi, syi) of the node closest to the given point.
7. Dispositif selon la revendication 6, dans lequel le calculateur (6) est agencé pour mettre à jour des données de probabilité d'appartenance à une surface de référence (cj) d'un point donné du nuage de points donné en fonction du signe de la valeur de distance à référence (dzj). 7. Device according to claim 6, wherein the computer (6) is arranged to update data of probability of belonging to a reference surface (cj) of a given point of the given point cloud according to the sign. the reference distance value (dzj).
8. Dispositif selon la revendication 3 et la revendication 7, dans lequel le calculateur (6) est agencé pour exécuter l'étape de calcul de maximisation en calculant d'une part un vecteur de données de nœud d'information (Xi(k,t)) et des données de matrice d'information (Pi(k,t)) à partir de la première composante spatiale et de la deuxième composante spatiale. 8. Device according to claim 3 and claim 7, wherein the computer (6) is arranged to perform the maximization calculation step by calculating on the one hand an information node data vector (Xi (k, t)) and information matrix data (Pi (k, t)) from the first spatial component and the second spatial component.
9. Dispositif selon la revendication 8, dans lequel le calculateur (6) est en outre agencé pour exécuter l'étape de calcul de maximisation à partir de la composante temporelle. 9. Device according to claim 8, wherein the computer (6) is further arranged to perform the maximization calculation step from the time component.
10. Procédé informatique pour l'aide à la conduite, caractérisé en ce qu'il comprend les opérations suivantes : 10. Computer method for driving assistance, characterized in that it comprises the following operations:
a) recevoir des données de nuage de points de données (8) dans lesquelles un nuage de points associe, pour un instant donné (t), des points présentant chacun des coordonnées (xi, yi) dans un plan associé au nuage de points et une valeur désignant une hauteur (zi),  a) receiving cloud data from data points (8) in which a point cloud associates, for a given instant (t), points each having coordinates (xi, yi) in a plane associated with the point cloud and a value designating a height (zi),
b) pour un nuage de points donné, calculer d'une part des données de probabilité d'appartenance à une surface de référence (cj) associées à chaque point du nuage de point données, et d'autre part des données de nœuds (hi, sxi, syi) associant une valeur désignant une hauteur (hi) et deux valeurs indiquant une pente (sxi, syi) dans un plan associé au plan du nuage de points donné,  b) for a given cloud of points, compute on the one hand reference area membership probability data (cj) associated with each point of the given point cloud, and on the other hand node data (hi , sxi, syi) associating a value designating a height (hi) and two values indicating a slope (sxi, syi) in a plane associated with the plane of the given point cloud,
en déterminant un champ conditionnel aléatoire gaussien (CRF) au moyen des données de nuage de points de données (8) correspondant au nuage de points donné, lequel champ conditionnel aléatoire gaussien (CRF) est représenté par un maillage de nœuds dans ledit plan associé, lesquels nœuds sont définis par les données de nœuds (hi, sxi, syi), c) retourner les données de probabilité d'appartenance à une surface de référence (cj) et/ou certaines au moins des données de nœuds (hi, sxi, syi) et des valeurs désignant une hauteur (zi).  determining a Gaussian random conditional field (CRF) using the data point cloud data (8) corresponding to the given point cloud, which Gaussian Random Conditional Field (CRF) is represented by a mesh of nodes in said associated plane, which nodes are defined by the node data (hi, sxi, syi), c) returning the membership probability data to a reference surface (cj) and / or at least some of the node data (hi, sxi, syi) and values designating a height (zi).
EP18748960.4A 2017-06-09 2018-06-06 Computerized device for driving assistance Pending EP3635630A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1755150A FR3067474B1 (en) 2017-06-09 2017-06-09 COMPUTER DEVICE FOR DRIVING ASSISTANCE
PCT/FR2018/051299 WO2018224768A1 (en) 2017-06-09 2018-06-06 Computerized device for driving assistance

Publications (1)

Publication Number Publication Date
EP3635630A1 true EP3635630A1 (en) 2020-04-15

Family

ID=59325548

Family Applications (1)

Application Number Title Priority Date Filing Date
EP18748960.4A Pending EP3635630A1 (en) 2017-06-09 2018-06-06 Computerized device for driving assistance

Country Status (4)

Country Link
US (1) US11574480B2 (en)
EP (1) EP3635630A1 (en)
FR (1) FR3067474B1 (en)
WO (1) WO2018224768A1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11933630B2 (en) * 2017-06-26 2024-03-19 Volvo Truck Corporation Control arrangement for a vehicle
US20190005667A1 (en) * 2017-07-24 2019-01-03 Muhammad Zain Khawaja Ground Surface Estimation
CN110443786B (en) * 2019-07-25 2021-12-07 深圳一清创新科技有限公司 Laser radar point cloud filtering method and device, computer equipment and storage medium
CN112907739B (en) * 2021-01-22 2022-10-04 中北大学 Method, device and system for acquiring height difference information of well lid

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008034465A1 (en) * 2006-09-19 2008-03-27 Telecom Italia S.P.A. Method of deriving digital terrain models from digital surface models
US8215252B1 (en) * 2009-07-14 2012-07-10 Lockheed Martin Corporation System and method for dynamic stabilization and navigation in high sea states
US8605998B2 (en) * 2011-05-06 2013-12-10 Toyota Motor Engineering & Manufacturing North America, Inc. Real-time 3D point cloud obstacle discriminator apparatus and associated methodology for training a classifier via bootstrapping
US9188783B2 (en) * 2011-09-09 2015-11-17 Disney Enterprises, Inc. Reflective and refractive surfaces configured to project desired caustic pattern
CA2834877A1 (en) * 2012-11-28 2014-05-28 Henry Leung System and method for event monitoring and detection
CN104899854B (en) * 2014-03-05 2018-01-16 航天信息股份有限公司 The detection method and device of heap grain altitude line
US10133944B2 (en) * 2016-12-21 2018-11-20 Volkswagen Ag Digital neuromorphic (NM) sensor array, detector, engine and methodologies
US10229341B2 (en) * 2016-12-21 2019-03-12 Volkswagen Ag Vector engine and methodologies using digital neuromorphic (NM) data
JP6565967B2 (en) * 2017-05-12 2019-08-28 トヨタ自動車株式会社 Road obstacle detection device, method, and program

Also Published As

Publication number Publication date
US11574480B2 (en) 2023-02-07
WO2018224768A1 (en) 2018-12-13
US20200104606A1 (en) 2020-04-02
WO2018224768A4 (en) 2019-01-31
FR3067474A1 (en) 2018-12-14
FR3067474B1 (en) 2021-11-19

Similar Documents

Publication Publication Date Title
EP3635630A1 (en) Computerized device for driving assistance
US20190005068A1 (en) Information processing device, map update method, program, and information processing system
EP3138079B1 (en) Method of tracking shape in a scene observed by an asynchronous light sensor
EP2572319B1 (en) Method and system for fusing data arising from image sensors and from motion or position sensors
EP2724203B1 (en) Generation of map data
EP3614306B1 (en) Method for facial localisation and identification and pose determination, from a three-dimensional view
Shinzato et al. Road estimation with sparse 3D points from stereo data
FR3005187A1 (en) SAR IMAGE RECOVERY BY MUTUAL INFORMATION.
US11656365B2 (en) Geolocation with aerial and satellite photography
EP2517152B1 (en) Method of object classification in an image observation system
EP4002274A1 (en) Iterative method for estimating the movement of a material body by generating a filtered movement grid
EP3384462B1 (en) Method for characterising a scene by calculating the 3d orientation
CA2709180C (en) Methods for updating and training for a self-organising card
CN116403191A (en) Three-dimensional vehicle tracking method and device based on monocular vision and electronic equipment
Zhang et al. Feature regions segmentation based RGB-D visual odometry in dynamic environment
Wang et al. Simultaneous clustering classification and tracking on point clouds using Bayesian filter
Seo et al. Segment-based free space estimation using plane normal vector in disparity space
Deledalle et al. Glaciermonitoring: Correlation versus texture tracking
Bradski et al. Robot-vision signal processing primitives [applications corner]
FR3135789A1 (en) Device for detecting three-dimensional objects in a hardware environment
EP3757942A1 (en) Method and device for passive telemetry by image processing
Akay et al. Camera Auto-calibration for Planar Aerial Imagery, Supported by Camera Metadata
FR3138944A1 (en) Device and method for estimating the traversability of terrain by a mobile system
EP3757943A1 (en) Method and device for passive telemetry by image processing and use of three-dimensional models
EP4168828A1 (en) Method and device for controlling the movement of a vehicle

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: 20191209

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

AX Request for extension of the european patent

Extension state: BA ME

DAV Request for validation of the european patent (deleted)
DAX Request for extension of the european patent (deleted)
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: EXAMINATION IS IN PROGRESS

17Q First examination report despatched

Effective date: 20210820

P01 Opt-out of the competence of the unified patent court (upc) registered

Effective date: 20230527

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

Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED