WO2023222989A1 - Dispositif de detection d'objets en trois dimensions dans un environnement materiel - Google Patents
Dispositif de detection d'objets en trois dimensions dans un environnement materiel Download PDFInfo
- Publication number
- WO2023222989A1 WO2023222989A1 PCT/FR2023/050721 FR2023050721W WO2023222989A1 WO 2023222989 A1 WO2023222989 A1 WO 2023222989A1 FR 2023050721 W FR2023050721 W FR 2023050721W WO 2023222989 A1 WO2023222989 A1 WO 2023222989A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- point cloud
- points
- current
- reference map
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 46
- 230000009466 transformation Effects 0.000 claims abstract description 11
- 238000003384 imaging method Methods 0.000 claims abstract description 8
- 230000006870 function Effects 0.000 claims description 24
- 239000000463 material Substances 0.000 claims description 14
- 238000005457 optimization Methods 0.000 claims description 10
- 238000010801 machine learning Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 4
- 238000009434 installation Methods 0.000 claims description 2
- 238000001514 detection method Methods 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 235000016795 Cola Nutrition 0.000 description 1
- 241001634499 Cola Species 0.000 description 1
- 235000011824 Cola pachycarpa Nutrition 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000000513 principal component analysis Methods 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S17/00—Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
- G01S17/88—Lidar systems specially adapted for specific applications
- G01S17/89—Lidar systems specially adapted for specific applications for mapping or imaging
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S17/00—Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
- G01S17/88—Lidar systems specially adapted for specific applications
- G01S17/93—Lidar systems specially adapted for specific applications for anti-collision purposes
- G01S17/931—Lidar systems specially adapted for specific applications for anti-collision purposes of land vehicles
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S7/00—Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
- G01S7/48—Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S17/00
- G01S7/4808—Evaluating distance, position or velocity data
Definitions
- the invention relates to the field of object detection in an environment previously scanned in three dimensions.
- a first family of solutions is detection with sensors on the infrastructure, for example of the surveillance camera type connected in a network communicating with the mobile system. These systems are not versatile enough and have extremely high equipment costs.
- RGB camera RGB camera, radar, etc.
- Solutions based on 2D LiDAR only allow the sensor to perceive only a slice of the material environment, which has the consequence that objects on slopes, non-volumetric objects (such as tables) may be missed. - in this case, if the sensor only sees one of the four legs of the table, it will identify the rest of the table as a free space), and the level of occlusion can quickly be significant, making the use of downstream algorithms unusable.
- the invention improves the situation. To this end, it offers a three-dimensional object detection device in a hardware environment comprising: - a memory arranged to receive a reference map comprising a plurality of points in which each point is defined by coordinates in three dimensions, which reference map is taken from a three-dimensional imaging by points of the material environment in l absence of objects to be detected, point cloud data obtained from 3D LIDAR imaging of the hardware environment, and pose data including location and orientation defining a three-dimensional rigid transformation with respect to the reference card,
- an estimator arranged to receive current point cloud data in which each point is defined by coordinates in three dimensions, to determine current pose data from the current point cloud data and initial pose data, and for associating the current pose data with the current point cloud data, the initial pose data being taken from pose data associated with point cloud data obtained before the current point cloud data or pose data of initialization,
- a screener arranged to select object points to be detected in the current point cloud data from associated current pose data and the reference map as a function of the distance between on the one hand the points of the point cloud data current point cloud registered with respect to the reference map according to the current pose data and on the other hand the points of the reference map which are closest to them, and
- a detector arranged to associate as a group some of the object points to be detected by a grouping method, to associate each group with a three-dimensional object.
- This device is particularly advantageous because it makes it possible to detect three-dimensional objects in a hardware environment reliably and in real time.
- the invention may have one or more of the following characteristics:
- the estimator is arranged to apply an optimization loop in which: a) at least some of the data points of the current point cloud are realigned with respect to the reference map according to the initial pose data, b) the points of the reference map closest to them are identified, and, c) the initial pose data is modified in order to minimize a value derived from the distance between the points of operation a) and the points of the operation b), d) if an optimization loop exit condition relating to the number of iterations or the value of operation c) is met, the modified initial pose data is used to define the pose data current, and otherwise the loop optimization resumes with operation a),
- the estimator is arranged to optimize the value 2 '°ù the qi are at least some of the data points of the current point cloud of operation a), the pi are the points of the reference map of operation b), CPos() is the rigid transformation defined by the modified initial pose data, and ni is a normal vector taken at point pi,
- the screener is arranged to register the data points of the current point cloud in relation to the reference map as a function of the associated current pose data, and to select the registered points whose distance to the point of the reference map which corresponds to them is the closest exceeds a chosen threshold,
- the detector is arranged to implement a grouping method by propagation in three dimensions based on the search for nearest neighbor or the search for spherical neighborhood, by propagation based on two-dimensional projections of three-dimensional data, or by machine learning,
- - detector is arranged to implement a propagation grouping method based on a two-dimensional spherical projection
- the detector is arranged to, for each of the current point cloud data, analyze the detected three-dimensional objects to try to associate each with a three-dimensional object detected for the immediately preceding current point cloud data.
- the invention also relates to a method for detecting three-dimensional objects in a material environment comprising: a) receiving a reference map comprising a plurality of points in which each point is defined by coordinates in three dimensions, which reference map is taken from three-dimensional point imaging of the material environment in the absence of objects to be detected, point cloud data obtained from 3D LIDAR imaging of the material environment, and pose data including a location and orientation defining a three-dimensional rigid transformation relative to the reference map, b) receiving current point cloud data in which each point is defined by three-dimensional coordinates, and determine current pose data from the current point cloud data and initial pose data, and to associate the current pose data with the current point cloud data, the initial pose data being derived from associated pose data to point cloud data obtained before the current point cloud data or initialization pose data, c) selecting object points to be detected in the point cloud data current from associated current pose data and the reference map as a function of the distance between on the one hand the points of the current point cloud data registered with respect to the reference map as a function
- this process may have one or more of the following characteristics:
- - operation b) comprises the application of an optimization loop comprising the following operations: bl) realign at least some of the data points of the current point cloud in relation to the reference map as a function of the pose data initial, b2) identify the points of the reference map which are closest to them, and, b3) modify the initial pose data in order to minimize a value taken from the distance between the points of the operation bl) and the points of operation b2), b4) if an optimization loop exit condition relating to the number of iterations or the value of operation b3) is met, the modified initial pose data is used to define the current pose data, and repeat the loop with operation bl) with the modified initial pose data,
- ni a normal vector taken at point pi
- - operation c) includes registering the data points of the current point cloud relative to the reference map as a function of the associated current pose data, and to select the registered points whose distance to the point of the reference map which their closest exceeds a chosen threshold,
- - operation d) comprises the implementation of a method of grouping by propagation in three dimensions based on the search for nearest neighbor or the search for spherical neighborhood, by propagation based on two-dimensional projections of data in three dimensions, or by automatic learning,
- the invention also relates to a computer program comprising instructions for executing the method according to the invention, a data storage medium on which such a computer program is recorded and a computer system comprising a processor coupled to a memory, the memory having recorded such a computer program.
- FIG.l represents a generic diagram of a device according to the invention
- FIG.2 represents an example of an operating loop implemented by the device of [Fig.l],
- FIG.3 represents an example of a function implemented in an operation of [Fig.2],
- FIG.4 represents an example of detection by the screener of [Fig.l]
- FIG.5 represents an example of a function implemented in an optional operation of [Fig.2],
- FIG.l represents a generic diagram of a device 2 according to the invention.
- the device for detecting three-dimensional objects in a hardware environment 2 includes a memory 4, an estimator 6, a screener 8 and a detector 10.
- Memory 4 receives several types of data: data defining a reference map, point cloud data, pose data and detected object data.
- the data defining a reference map are crucial data, since they constitute the reference of the scene in which the device 2 will detect objects.
- This map is a three-dimensional representation (point cloud, 3D mesh, implicit surface) of the environment in which the device will operate.
- the Applicant offers a non-exhaustive list of methods which make it possible to construct a map: 3D LiDAR SLAM system, photogrammetry, topographic system, TLS system ("Terrestrial Laser Scanning” in English for “Terrestrial Laser Scanning”, method which consists of map an environment by scanning the space successively from several fixed stations), MMS system (for "Mobile Mapping System” in English, or “Mobile Mapping System”), which uses 3D LiDAR, profilometer, photogrammetry or any other technology allowing the creation of dense three-dimensional point clouds, with a GPS-type location source with an inertial or odometric unit, or even 3D modeling.
- the Applicant uses a 3D LiDAR SLAM system, which allows it to use the same hardware to obtain the map as to obtain the point clouds.
- the point cloud data is obtained by a 3D LiDAR SLAM system.
- this system is integrated into device 2 which accesses the reference map and the point clouds by accessing memory 4.
- the acquisition system could be remote, device 2 carrying out only the processing of data.
- the three-dimensional point cloud data includes a plurality of points defined by three-dimensional coordinates in the reference system of the system which was used for their acquisition.
- the data for each point may be supplemented by other data, such as color, return intensity, etc.
- they represent at each time step the evolution of the environment in which the device 2 evolves.
- each cloud of points is associated with a unique time step, and vice versa.
- the relationship between point cloud and time step might not be bijective, although generally speaking, a point cloud can be seen as a time step, and vice versa.
- the pose data contains data which allows the registration of a cloud of points in the reference map.
- this data defines a rigid transformation by which point cloud data is associated with the reference map to enable object detection.
- the pose data can be represented in various ways: 4x4 matrix (including a 3x3 part for orientation, being a 3D rotation matrix from the group of orthogonal matrices from the SO(3) group - see for example https://web.archive.org/web/*/https://stringfixer.com/fr/Rotation_group_SO(3) -, a 3x1 column for the reference location, and a null line except for the last term which is 1), position vector and Euler angles, position vector and quaternion, etc.
- the pose data is naturally associated with a time step, and the designation of a time step is equivalent to designation of the corresponding pose data, and vice versa.
- the detected object data may vary. Indeed, they can be defined by an object identifier and a list of object points detected by the device 2, or by a bounding box ("bounding box" in English or "BB").
- Memory 4 can be any type of data storage suitable for receiving digital data: hard disk, hard disk with flash memory, flash memory in any form, random access memory, magnetic disk, storage distributed locally or in the cloud, etc.
- the data calculated by the device can be stored on any type of memory similar to memory 4, or on it. This data may be erased after the device has performed its tasks or retained.
- the estimator 6, the screener 8 and the detector 10 directly or indirectly access the memory 4. They can be produced in the form of appropriate computer code executed on one or more processors.
- processors we must understand any processor adapted to the calculations described below.
- Such a processor can be produced in any known manner, in the form of a microprocessor for a personal computer, laptop, tablet or smartphone, of a dedicated EPGA or SoC type chip, of a calculation resource on a grid or in the cloud, a cluster of graphics processors (GPUs), a microcontroller, or any other form capable of providing the computing power necessary for the achievement described below.
- GPUs graphics processors
- microcontroller or any other form capable of providing the computing power necessary for the achievement described below.
- One or more of these elements can also be produced in the form of specialized electronic circuits such as an ASIC.
- a combination of processors and electronic circuits can also be considered.
- processors dedicated to machine learning could also be considered.
- [Eig.2] represents an example of an operating loop implemented by the device of [Eig.l],
- a first optional operation 200 an acquisition of the reference card is carried out. How to acquire this card has been described above.
- a second operation 220 also optional, an estimate of the initial pose is carried out.
- this operation is only performed for the very first operating loop of the device. Its main purpose is to facilitate the task of estimator 6 for this first loop. It is therefore a question of obtaining or to determine a rough estimate (a few meters and a few degrees of precision are sufficient) of the system's initial pose data.
- This estimation can be carried out in various ways: by manual positioning, by positioning on predetermined stations (or bases), by another positioning system (example: GPS, Camera, Magnetic strip, RFID chip, QR-Code tag , etc). Alternatively, the pose data could be initialized to 0.
- the device 2 executes a loop which consists, at each time step, of determining in an operation 240 pose data for current point cloud data corresponding to the current time step, to be selected in an operation 260 object points to be detected in the current point cloud data registered using the pose data of operation 240, then in an operation 280 the object points to be detected are grouped into detected object data and finally in an optional operation 290, tracking of the detected objects is carried out.
- next loop begins, with the point cloud data of the next time step, and with the data from the previous loop as initialization data.
- FIG.3 represents an example of a function implemented by estimator 6 in operation 240.
- estimator 6 implements a method from the ICP family (for " Iterative Closest Point", which is a classic family of algorithms for calculating the rigid transformation between two sets of points, here the reference map and the current point cloud.
- the current pose CPos is initialized by an Init() function.
- the Init() function therefore uses as initial pose data the pose data determined in the previous execution loop of the device, or the initialization pose data determined by operation 220 if it is the very first execution of operation 240.
- the initial pose data could be initialized by estimation of the current state of the system, for example by Kalman filtering.
- a first loop is launched, in which all the points of the current CCP point cloud will be traversed in order to determine the closest neighbors of each point in the reference map. This is achieved by an operation 310 of unstacking the current CCP point cloud, followed by an operation 320 in which a nearest neighbor query is carried out.
- a nearest neighbor query is an operation which allows, from a point in space (query), to obtain its closest point in the map (nearest neighbor).
- NN() This is done by an NN() function which receives the reference map Ref, the current query point q, and the data from poses CPos as arguments, and returns a triple [p; not; A] where p is the reference map point Ref closest to point q transformed by the pose data CPos, n is the normal at point p, and A is a set of reference map data Ref attached to the point p.
- the point q transformed by the pose data CPos corresponds to the registration of the current point cloud CCP by the pose data CPos and constitutes what the operation 240 seeks to optimize.
- the normal n and the set A can be omitted.
- operation 310 can be preceded by an operation to decimate the CCP point cloud so as not to try to readjust too many points.
- the decimation operation can be integrated into operation 310, by taking only one point q out of 5, out of 10, etc. Indeed, too few points lead to a rough registration, which poorly evaluates the position of the device 2 in the reference card, but too many points prevent effective registration.
- an Opt() function receives the list Q and determines a correction element which is added to the data of pose CPos.
- the Opt() function will look for a correction matrix which improves the value E, Il (CPos (q) ⁇ P -) n 'Il 2 ' This ⁇ Ll ' aims to optimize the distance between each point q aligned and the plane defined by the point p and its normal n.
- a Conv() function determines in an operation 350 whether the ICP method has converged, for example either by comparing the CPos data of the last two loops, or because a determined number of loops was executed. If there is no convergence, the first loop is repeated with the new CPos pose data, and otherwise the function exits and returns in a 399 operation the CPos pose data as pose data associated with the CCP point cloud data of the current time step.
- the device 2 then calls the screener 8 in order to determine the points of the current CCP point cloud data which do not correspond to the reference map Ref.
- 3D LiDAR being very precise, the points of the current CCP point cloud registered must be close to the points of the reference map Ref. If a point in the current point cloud does not respect this condition, it is therefore because it did not appear in the material environment represented by the reference map Ref during its creation, and is therefore a point associated with an object to detect.
- the screener 8 performs a nearest neighbor query on all the points of the current point cloud CCP adjusted by the pose data CPos, and stores all those for which the distance to their nearest neighbor exceeds a predetermined threshold.
- This method by exploring free space, is very effective and is made possible by the adjustment carried out by estimator 6 which was not considered until now in the state of the art.
- FIG.4 illustrates the operation of the screener 8.
- the 3D LiDAR SLAM detects a plurality of points (represented by an empty circle) which correspond to the reference map (in dotted lines), as well as points (represented by a circle with a cross) which belong to an object to be detected (in gray).
- the distance between points that correspond to the reference map and their nearest neighbors in the reference map is extremely small, while the distance between points that belong to an object to be detected and their nearest neighbor in the map reference is more important.
- the detector 10 will group them together in order to define the objects detected. Indeed, as we can clearly see in [Fig.4], depending on the viewing angle of the 3D LiDAR SLAM and an object to be detected, the object points to be detected will not show the entire shape of the object. object but only the occlusion that it induces on the reference map. Thus, the rectangular object in [Fig.4] is detected by a set of points which form an upside-down "L".
- the detector 10 therefore has the function of processing the object points to be detected and of determining among these groups which define the detected objects.
- KNN search nearest neighbor search
- Radius search spherical neighborhood search
- KD-tree octree, voxel grid or other data structure
- the Applicant uses a method based on two-dimensional propagation on a spherical projection image.
- FIG.5 represents an example of implementation of this method.
- all the object points to be detected are the subject of a spherical projection by calculating their spherical coordinates in the reference frame of the current point cloud CCP.
- Arctan2 function with two arguments is a variant of the arctangent function.
- Arctan2() is the angle in radians between the positive part of the abscissa axis of a plane, and the point of this plane of coordinates (x, y).
- the classic ArctanQ function could be used in a function by part according to the sign of x.
- the equivalent pixel coordinates are calculated. If several points are associated with the same pixel, then that pixel receives the lowest r value. If no point is associated with a given pixel, it receives an arbitrarily high value.
- a neighborhood of 4 pixels is defined around each pixel (one pixel above, one to the left, one to the right and one below ) in an operation 510.
- a square neighborhood of size 8 could be produced.
- a region growth algorithm is applied with a growth criterion which separates close objects well, for example as described in the article by Bogoslavskyi, L, & Stachniss, C. "Fast range image-based segmentation of sparse 3D laser scans for online operation", 2016, In 2016 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS) (pp. 163-169), IEEE.
- the detector 10 can carry out the optional operation 290 by seeking to associate the objects detected in the current point cloud with objects previously detected.
- the detector 10 can define bounding boxes for each detected object and match them to the bounding boxes of the previous time step. This can be achieved for example by applying the Hungarian method (see the article by Kuhn, HW, "The Hungarian method for the assignment problem", 1955, Naval research logistics quarterly, 2(1-2), 83-97), or by other known methods.
- the definition of bounding boxes can be carried out by a method drawn from “Rotating calipers", as described in the article by Toussaint, GT, “Solving geometric problems with the rotating calipers", 1983, In Proc. IEEE Melecon, (Vol. 83, p. A10), but other methods could be used, such as F Principal Component Analysis, 2D methods based on orthographic projection or other ranges of box calculation algorithms encompassing.
- the device 2 according to the invention is particularly advantageous because it is extremely versatile due to its independence from the use case and the type of deployment environment. Additionally, it is very robust to lighting conditions and can handle unfamiliar environments. Finally it offers a very high object detection rate, is more robust to occlusions than known methods, and offers very high productivity - map creation, navigation, obstacle detection and map updating can be carried out with the same sensor and day to day.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Physics & Mathematics (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Electromagnetism (AREA)
- Length Measuring Devices By Optical Means (AREA)
- Image Analysis (AREA)
Abstract
Un dispositif de détection d'objets en trois dimensions dans un environnement matériel comprend une mémoire agencée pour recevoir une carte de référence comprenant une pluralité de points dans laquelle chaque point est défini par des coordonnées selon trois dimensions, tirée d'une imagerie en trois dimensions par points de l'environnement matériel en l'absence d'objets à détecter, des données de nuage de points obtenues à partir d'une imagerie LIDAR 3D de l'environnement matériel, et des données de pose comprenant un emplacement et une orientation définissant une transformation rigide en trois dimensions par rapport à la carte de référence (Ref), un estimateur agencé pour recevoir des données de nuage de points courant dans lesquelles chaque point est défini par des coordonnées selon trois dimensions, pour déterminer des données de pose courante à partir des données de nuage de points courant et de données de pose initiale, et pour associer les données de pose courante aux données de nuage de points courant, les données de pose initiale étant tirées de données de pose associées à des données de nuage de points obtenues avant les données de nuage de point courant ou de données de pose d'initialisation, un cribleur agencé pour sélectionner des points d'objet à détecter dans les données de nuage de points courant à partir de données de pose courante associées et de la carte de référence en fonction de la distance entre d'une part les points des données de nuage de point courant recalés par rapport à la carte de référence en fonction des données de pose courante et d'autre part les points de la carte de référence qui leur sont le plus proche, et un détecteur agencé pour associer en groupe certains des points d'objet à détecter par une méthode de regroupement et pour associer chaque groupe à un objet en trois dimensions.
Description
Description
Titre de l’invention : Dispositif de détection d’objets en trois dimensions dans un environnement matériel
[0001] L’invention concerne le domaine de la détection d'objets dans un environnement préalablement scanné en trois dimensions.
[0002] Le domaine de la vision par ordinateur est en plein essor. Dans ce domaine, on distingue les environnements ouverts (ou "open environments" en anglais), comme les milieux routiers où les classes d’objets sont restreintes (voitures, piétons, camions, façades...) par exemple pour les véhicules autonomes, et les environnements contraints (ou "indoor environments" en anglais), c’est-à-dire dont le contenu matériel est plus divers dans le temps, et qui ont des dimensions qui rendent plus simple l'établissement d'une carte.
[0003] Dans le contexte des environnements contraints, plusieurs solutions ont été développées pour permettre de détecter de manière automatisée des objets dans un environnement matériel.
[0004] Une première famille de solutions est la détection avec capteur sur l’infrastructure, par exemple de type caméra de surveillance connectées dans un réseau communiquant avec le système mobile. Ces systèmes ne sont pas assez polyvalents et présentent des coûts d’équipement extrêmement élevés.
[0005] Une deuxième famille de solutions est la détection avec capteur embarqué sur système :
- à partir d’autres capteurs : caméra RGB, radar, etc., et
- à partir de données LiDAR 2D, avec ou sans carte, ou par analyse de l'espace libre.
[0006] Les solutions à base de capteurs de type caméra sont très sensibles aux conditions d'éclairage et offrent des performances insatisfaisantes.
[0007] Les solutions à base de LiDAR 2D ne permettent au capteur de ne percevoir qu'une tranche de l'environnement matériel, ce qui a pour conséquence qu'il peut manquer des objets en dévers, les objets non volumétriques (comme des tables - dans ce cas, si le capteur ne voit qu’un des quatre pieds de la table, il va identifier le reste de la table comme un espace libre), et le niveau d’occlusion peut être rapidement important, rendant l’usage d’algorithmes en aval inutilisable.
[0008] Il existe quelques expériences à partir de données LiDAR 3D sans carte, mais elles utilisent des grilles d'occupation qui sont projetées en deux dimensions, ce qui aboutit à des désavantages similaires à ceux des méthodes LiDAR 2D.
[0009] L’invention vient améliorer la situation. A cet effet, elle propose un dispositif de détection d'objets en trois dimensions dans un environnement matériel comprenant :
- une mémoire agencée pour recevoir une carte de référence comprenant une pluralité de points dans laquelle chaque point est défini par des coordonnées selon trois dimensions, laquelle carte de référence est tirée d'une imagerie en trois dimensions par points de l'environnement matériel en l'absence d'objets à détecter, des données de nuage de points obtenues à partir d'une imagerie LIDAR 3D de l'environnement matériel, et des données de pose comprenant un emplacement et une orientation définissant une transformation rigide en trois dimensions par rapport à la carte de référence,
- un estimateur agencé pour recevoir des données de nuage de points courant dans lesquelles chaque point est défini par des coordonnées selon trois dimensions, pour déterminer des données de pose courante à partir des données de nuage de points courant et de données de pose initiale, et pour associer les données de pose courante aux données de nuage de points courant, les données de pose initiale étant tirées de données de pose associées à des données de nuage de points obtenues avant les données de nuage de point courant ou de données de pose d'initialisation,
- un cribleur agencé pour sélectionner des points d'objet à détecter dans les données de nuage de points courant à partir de données de pose courante associées et de la carte de référence en fonction de la distance entre d'une part les points des données de nuage de point courant recalés par rapport à la carte de référence en fonction des données de pose courante et d'autre part les points de la carte de référence qui leur sont le plus proche, et
- un détecteur agencé pour associer en groupe certains des points d'objet à détecter par une méthode de regroupement, pour associer chaque groupe à un objet en trois dimensions.
[0010] Ce dispositif est particulièrement avantageux car il permet de réaliser une détection d'objets en trois dimensions dans un environnement matériel de manière fiable et en temps réel.
[0011] Selon divers modes de réalisation, l’invention peut présenter une ou plusieurs des caractéristiques suivantes :
- l'estimateur est agencé pour appliquer une boucle d'optimisation dans laquelle : a) certains au moins des points des données du nuage de point courant sont recalés par rapport à la carte de référence en fonction des données de pose initiale, b) les points de la carte de référence qui leur sont le plus proches sont identifiés, et, c) les données de pose initiale sont modifiées afin de minimiser une valeur tirée de la distance entre les points de l'opération a) et les points de l'opération b), d) si une condition de sortie de boucle d'optimisation portant sur le nombre d'itérations ou sur la valeur de l'opération c) est remplie, les données de pose initiale modifiées sont utilisées pour définir les données de pose courante, et sinon la boucle
d'optimisation reprend avec l'opération a),
- l'estimateur est agencé pour optimiser la valeur 2’ °ù
les qi sont les certains au moins des points des données du nuage de point courant de l'opération a), les pi sont les points de la carte de référence de l'opération b), CPos() est la transformation rigide définie par les données de pose initiale modifiées, et ni est un vecteur normal pris au point pi,
- le cribleur est agencé pour recaler les points des données du nuage de points courant par rapport à la carte de référence en fonction des données de pose courante associées, et pour sélectionner les points recalés dont la distance au point de la carte de référence qui leur est le plus proche excède un seuil choisi,
- le détecteur est agencé pour mettre en œuvre une méthode de regroupement par propagation en trois dimensions basée sur la recherche de plus proche voisin ou la recherche de voisinage sphérique, par propagation basée sur des projections en deux dimension de données en trois dimensions, ou par apprentissage automatique,
- détecteur est agencé pour mettre en œuvre une méthode de regroupement par propagation basée sur une projection sphérique en deux dimensions, et
- le détecteur est agencé pour, pour chacune des données de nuage de points courant, analyser les objets en trois dimensions détectés pour essayer de les associer chacun avec un objet en trois dimensions détecté pour les données de nuage de points courant immédiatement précédentes.
[0012] L’invention concerne également un procédé de détection d'objets en trois dimensions dans un environnement matériel comprenant : a) recevoir une carte de référence comprenant une pluralité de points dans laquelle chaque point est défini par des coordonnées selon trois dimensions, laquelle carte de référence est tirée d'une imagerie en trois dimensions par points de l'environnement matériel en l'absence d'objets à détecter, des données de nuage de points obtenues à partir d'une imagerie LIDAR 3D de l'environnement matériel, et des données de pose comprenant un emplacement et une orientation définissant une transformation rigide en trois dimensions par rapport à la carte de référence, b) recevoir des données de nuage de points courant dans lesquelles chaque point est défini par des coordonnées selon trois dimensions, et déterminer des données de pose courante à partir des données de nuage de points courant et de données de pose initiale, et pour associer les données de pose courante aux données de nuage de points courant, les données de pose initiale étant tirées de données de pose associées à des données de nuage de points obtenues avant les données de nuage de point courant ou de données de pose d'initialisation, c) sélectionner des points d'objet à détecter dans les données de nuage de points
courant à partir de données de pose courante associées et de la carte de référence en fonction de la distance entre d'une part les points des données de nuage de point courant recalés par rapport à la carte de référence en fonction des données de pose courante et d'autre part les points de la carte de référence qui leur sont le plus proche, et d) associer en groupe certains des points d'objet à détecter par une méthode de regroupement, pour associer chaque groupe à un objet en trois dimensions.
[0013] Dans diverses variantes, ce procédé peut présenter une ou plusieurs des caractéristiques suivantes :
- l'opération b) comprend l'application d'une boucle d'optimisation comprenant les opérations suivantes : bl) recaler certains au moins des points des données du nuage de point courant par rapport à la carte de référence en fonction des données de pose initiale, b2) identifier les points de la carte de référence qui leur sont le plus proches, et, b3) modifier les données de pose initiale afin de minimiser une valeur tirée de la distance entre les points de l'opération bl) et les points de l'opération b2), b4) si une condition de sortie de boucle d'optimisation portant sur le nombre d'itérations ou sur la valeur de l'opération b3) est remplie, les données de pose initiale modifiées sont utilisées pour définir les données de pose courante, et répéter la boucle avec l'opération bl) avec les données de pose initiale modifiées,
- la valeur à optimiser dans l'opération b3) est jT 2’ °ù
les qi sont les certains au moins des points des données du nuage de point courant de l'opération a), les pi sont les points de la carte de référence de l'opération b), CPos() est la transformation rigide définie par les données de pose initiale modifiées, et ni est un vecteur normal pris au point pi,
- l'opération c) comprend recaler les points des données du nuage de points courant par rapport à la carte de référence en fonction des données de pose courante associées, et pour sélectionner les points recalés dont la distance au point de la carte de référence qui leur est le plus proche excède un seuil choisi,
- l'opération d) comprend la mise en œuvre d'une méthode de regroupement par propagation en trois dimensions basée sur la recherche de plus proche voisin ou la recherche de voisinage sphérique, par propagation basée sur des projections en deux dimension de données en trois dimensions, ou par apprentissage automatique,
- la méthode de regroupement de l'opération d) et une méthode de regroupement par propagation basée sur une projection sphérique en deux dimensions, et
- dans l'opération d), pour chacune des données de nuage de points courant, comprend l'analyse des objets en trois dimensions détectés pour essayer de les associer
chacun avec un objet en trois dimensions détecté pour les données de nuage de points courant précédentes.
[0014] L’invention concerne également un programme informatique comprenant des instructions pour exécuter le procédé selon l'invention, un support de stockage de données sur lequel est enregistré un tel programme informatique et un système informatique comprenant un processeur couplé à une mémoire, la mémoire ayant enregistré un tel programme informatique.
[0015] 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 :
- la [Fig.l] représente un schéma générique d'un dispositif selon l'invention,
- la [Fig.2] représente un exemple d'une boucle de fonctionnement mise en œuvre par le dispositif de la [Fig.l],
- la [Fig.3] représente un exemple de fonction mise en œuvre dans une opération de la [Fig.2],
- la [Fig.4] représente un exemple de détection par le cribleur de la [Fig.l], et
- la [Fig.5] représente un exemple de fonction mise en œuvre dans une opération optionnelle de la [Fig.2],
[0016] 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.
[0017] 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.
[0018] La [Fig.l] représente un schéma générique d'un dispositif 2 selon l'invention. Le dispositif de détection d'objets en trois dimensions dans un environnement matériel 2 comprend une mémoire 4, un estimateur 6, un cribleur 8 et un détecteur 10.
[0019] La mémoire 4 reçoit plusieurs types de données : des données définissant une carte de référence, des données de nuage de points, des données de pose et des données d'objets détectés.
[0020] Les données définissant une carte de référence sont des données cruciales, puisqu'elles constituent la référence de la scène dans laquelle le dispositif 2 va détecter des objets. Cette carte est une représentation en trois dimensions (nuage de points, maillage 3D, surface implicite) de l’environnement dans lequel va évoluer le dispositif.
[0021] Elle peut être munie d’une structure de données (ex : Octree, KD-Tree, Grille de voxels...) qui permet d’accélérer les requêtes de plus proche voisin. Par ailleurs, cette
opération peut retourner des attributs géométriques, ou non, locaux de la carte : normale à la surface, vecteur tangent, couleur, classification, etc...
[0022] La Demanderesse propose une liste non exhaustive de méthodes qui permettent de construire une carte : système SLAM LiDAR 3D, photogrammétrie, système topographique, système TLS ("Terrestrial Laser Scanning" en anglais pour "Scannage Laser Terrestre", méthode qui consiste à cartographier un environnement en scannant l’espace successivement depuis plusieurs stations fixes), système MMS (pour "Mobile Mapping System" en anglais, ou "Système de cartographie mobile"), qui utilise du LiDAR 3D, profilomètre, photogrammétrie ou toute autre technologie permettant la création de nuages de points en trois dimensions denses, avec une source de localisation type GPS avec centrale inertielle, ou odométrique, ou encore modélisation 3D.
[0023] De manière préférée, la Demanderesse utilise un système SLAM LiDAR 3D, ce qui lui permet d'utiliser le même matériel pour obtenir la carte que pour obtenir les nuages de points.
[0024] Les données de nuage de points sont obtenues par un système SLAM LiDAR 3D. Dans l'exemple décrit ici, ce système est intégré au dispositif 2 qui accède à la carte de référence et aux nuages de points par l'accès à la mémoire 4. En variante, le système d'acquisition pourrait être déporté, le dispositif 2 ne procédant qu'au seul traitement des données.
[0025] Les données de nuage de points en trois dimensions comprennent une pluralité de points définis par des coordonnées en trois dimensions dans le référentiel du système qui a servi à leur acquisition. Dans certains modes de réalisation, les données de chaque point pourront être complétées par d'autres données, comme la couleur, l'intensité de retour, etc. Dans les exemples décrits ici, elles représentent à chaque pas de temps l'évolution de l'environnement dans lequel le dispositif 2 évolue. Ainsi, chaque nuage de points est associé à un unique pas de temps, et inversement. En variante, la relation entre nuage de point et pas de temps pourrait ne pas être bijective, même si d'une manière générale, un nuage de point peut être vu comme un pas de temps, et inversement.
[0026] Les données de pose contiennent des données qui permettent le recalage d'un nuage de points dans la carte de référence. Ainsi, ces données définissent une transformation rigide par laquelle des données de nuages de points sont associées à la carte de référence pour permettre de détecter des objets.
[0027] Typiquement, elles représentent la position et l’attitude (ou orientation) du dispositif 2 dans l’espace à 6 degrés de liberté. Les données de poses peuvent être représentées de diverses manières : matrice 4x4 (dont une partie 3x3 pour l’orientation, s’agissant d’une matrice de rotation 3D du groupe des matrices orthogonales du groupe SO(3) - voir par exemple
https://web.archive.org/web/*/https://stringfixer.com/fr/Rotation_group_SO(3) -, une colonne 3x1 pour l’emplacement de référence, et une ligne nulle sauf pour le dernier terme qui vaut 1), vecteur position et angles d’Euler, vecteur position et quaternion, etc.
[0028] Comme les données de nuages de points, les données de pose sont naturellement associées à un pas de temps, et la désignation d'un pas de temps vaut désignation des données de pose correspondantes, et inversement.
[0029] Les données d'objets détectés pourront varier. En effet, elles pourront être définies par un identifiant d'objet et une liste de points d'objets détectés par le dispositif 2, ou encore par une boîte englobante ("bounding box" en anglais ou "BB").
[0030] 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, 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 4, ou sur celle-ci. Ces données peuvent être effacées après que le dispositif a effectué ses tâches ou conservées.
[0031] L'estimateur 6, le cribleur 8 et le détecteur 10 accèdent directement ou indirectement à la mémoire 4. Ils peuvent être réalisés 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, portable, tablette ou smartphone, d’une puce dédiée de type EPGA ou SoC, d’une ressource de calcul sur une grille ou dans le cloud, d’une grappe de processeurs graphiques (GPUs), 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 processeurs et de circuits électroniques peut également être envisagée. Dans le cas de l’unité d’apprentissage automatique basé sur renforcement du gradient, des processeurs dédiés à l’apprentissage automatique pourront aussi être envisagés.
[0032] La [Eig.2] représente un exemple d'une boucle de fonctionnement mise en œuvre par le dispositif de la [Eig.l],
[0033] Dans une première opération 200 optionnelle, une acquisition de la carte de référence est réalisée. La manière d'acquérir cette carte a été décrite plus haut.
[0034] Ensuite, dans une deuxième opération 220 également optionnelle, une estimation de la pose initiale est réalisée. Lorsqu'elle est réalisée, cette opération n'est exécutée que pour la toute première boucle de fonctionnement du dispositif. Elle a pour but principal de faciliter la tâche de l'estimateur 6 pour cette première boucle. Il s'agit donc d'obtenir
ou de déterminer une estimation grossière (quelques mètres et quelques degrés de précision sont suffisants) des données de pose initiale du système.
[0035] Cette estimation peut être réalisée de diverses manières : par positionnement manuel, par positionnement sur des stations (ou bases) prédéterminées, par un autre système de positionnement (exemple : GPS, Caméra, Bande magnétique, Puce RFID, Tag QR- Code, etc...). En variante, les données de pose pourraient être initialisées à 0.
[0036] Ensuite, le dispositif 2 exécute une boucle qui consiste, à chaque pas de temps, à déterminer dans une opération 240 des données de pose pour des données de nuage de points courant correspondant au pas de temps courant, à sélectionner dans une opération 260 des points d'objets à détecter dans les données de nuage de points courant recalées grâce aux données de pose de l'opération 240, puis dans une opération 280 les points d'objets à détecter sont regroupés en données d'objets détectés et enfin dans une opération 290 optionnelle, un suivi des objets détectés est réalisé.
[0037] Une fois une boucle terminée, la boucle suivante commence, avec les données de nuage de points du pas de temps suivant, et avec les données de la boucle précédente comme données d'initialisation.
[0038] La [Fig.3] représente un exemple d'une fonction mise en œuvre par l'estimateur 6 dans l'opération 240. Dans cette opération, l'estimateur 6 met en œuvre une méthode de la famille ICP (pour "Iterative Closest Point" en anglais ou "Point le plus proche par itération"), qui est une famille d'algorithmes classique pour calculer la transformation rigide entre deux ensembles de points, ici la carte de référence et le nuage de points courant.
[0039] Dans une opération 300, la pose courante CPos est initialisée par une fonction Init(). Comme expliqué plus haut, chaque pas de temps sert de référence au pas de temps suivant. La fonction Init() utilise donc comme données de pose initiale les données de pose déterminées à la boucle d'exécution précédente du dispositif, ou les données de pose d'initialisation déterminées par l'opération 220 s'il s'agit de la toute première exécution de l'opération 240. En variante, les données de pose initiale pourraient être initialisées par estimation de l’état courant du système, par exemple par filtrage de Kalman.
[0040] Ensuite, une première boucle est lancée, dans laquelle tous les points du nuage de point courant CCP vont être parcourus afin de déterminer les voisins les plus proches de chaque point dans la carte de référence. Cela est réalisé par une opération 310 de dépilage du nuage de point courant CCP, suivie d'une opération 320 dans laquelle une requête de plus proche voisin est réalisée. Une requête de plus proche voisin est une opération qui permet, à partir d’un point de l’espace (requête), d’obtenir son point le plus proche dans la carte (plus proche voisin). Cela est réalisé par une fonction NN() qui reçoit la carte de référence Ref, le point de requête courant q, et les données de
pose CPos comme arguments, et retourne un triplet [p; n; A] où p est le point de la carte de référence Ref le plus proche du point q transformé par les données de pose CPos, n est la normale au point p, et A est un ensemble de données de la carte de référence Ref attachées au point p. Le point q transformé par les données de pose CPos correspond au recalage du nuage de points courant CCP par les données de pose CPos et constitue ce que l'opération 240 cherche à optimiser. En variante, la normale n et l'ensemble A peuvent être omis.
[0041] Ensuite, dans une opération 330, le quadruplet [q;p;n; A] est ajouté à une liste de points à optimiser, et la boucle reprend avec l'opération 310 jusqu'à ce que tous les points aient été parcourus.
[0042] En variante, l'opération 310 peut être précédée par une opération de décimation du nuage de point CCP afin de ne pas chercher à recaler trop de points. Toujours en variante, l'opération de décimation peut être intégrée à l'opération 310, en ne prélevant qu'un point q sur 5, sur 10, etc. En effet, trop peu de points amènent à un recalage grossier, qui évalue mal la position du dispositif 2 dans la carte de référence, mais trop de points empêchent un recalage efficace.
[0043] Lorsque tous les points ont été parcourus à l'opération 310, la première boucle se termine et une opération 340 est exécutée dans laquelle une fonction Opt() reçoit la liste Q et détermine un élément de correction qui est ajouté aux données de pose CPos. Par exemple, lorsque les données de pose sont stockées sous la forme d'une matrice 4x4, la fonction Opt() va chercher une matrice de correction qui vient améliorer la valeur E , Il (CPos ( q ) ~ P -) n' Il 2’ Ce ^Ll' rev'ent optimiser la distance entre chaque point q recalé et le plan défini par le point p et sa normale n. L'annexe A de l'article de François Pomerleau, Francis Colas, Roland Siegwart, "A Review of Point Cloud Registration Algorithms for Mobile Robotics", Foundations and Trends in Robotics, Now Publishers, 2015, 4 (1), pp.1-104. D'autres distances peuvent être retenues, comme la norme euclidienne ou des distances plus complexes comme décrit dans l'article de Segal, Aleksandr & Hahnel, Dirk & Thrun, Sebastian, "Generalized- ICP", 2009, Proc, of Robotics: Science and Systems, 10.15607/RSS.2009.V.021.
[0044] Une fois l'opération 340 terminée, une fonction Conv() détermine dans une opération 350 si la méthode ICP a convergé, par exemple soit en comparant les données CPos des deux dernières boucles, soit parce qu'un nombre déterminé de boucles a été exécuté. En l'absence de convergence, la première boucle est répétée avec les nouvelles données de pose CPos, et sinon, la fonction se termine et retourne dans une opération 399 les données de pose CPos comme données de pose associées aux données de nuage de points CCP du pas de temps courant.
[0045] Une fois l'opération 240 terminée, le nuage de points courant CCP est recalé par
rapport à la carte de référence Ref par les données de pose CPos.
[0046] Le dispositif 2 appelle alors le cribleur 8 afin de déterminer les points des données de nuages de points courant CCP qui ne correspondent pas à la carte de référence Ref. En effet, le LiDAR 3D étant très précis, les points du nuage de points courant CCP recalé doivent être proches des points de la carte de référence Ref. Si un point du nuage de points courant ne respecte pas cette condition, c'est donc qu’il ne figurait pas dans l’environnement matériel représenté par la carte de référence Ref lors de sa création, et est donc un point associé à un objet à détecter.
[0047] Ainsi, le cribleur 8 opère une requête de plus proche voisin sur tous les points du nuage de points courant CCP recalé par les données de pose CPos, et stocke tous ceux pour lesquels la distance à leur plus proche voisin excède un seuil prédéterminé. Cette méthode, par exploration de l'espace libre est très efficace et est rendue possible par le recalage opéré par l'estimateur 6 qui n'était pas envisagé jusqu'à présent dans l'état de l'art.
[0048] La [Fig.4] illustre le fonctionnement du cribleur 8. Comme on peut le voir sur cette figure, le SLAM LiDAR 3D détecte une pluralité de points (représentés par un rond vide) qui correspondent à la carte de référence (en pointillés), ainsi que des points (représentés par un rond avec une croix) qui appartiennent à un objet à détecter (en gris). La distance entre les points qui correspondent à la carte de référence et leurs voisins les plus proches dans la carte de référence est extrêmement faible, tandis que la distance entre les points qui appartiennent à un objet à détecter et leur voisin le plus proche dans la carte de référence est plus importante.
[0049] Une fois les points d'objets à détecter sélectionnés par le cribleur 8, le détecteur 10 va les regrouper afin de définir les objets détectés. En effet, comme on le voit bien sur la [Fig.4], en fonction de l'angle de vue du SLAM LiDAR 3D et un objet à détecter, les points d'objet à détecter ne vont pas montrer toute la forme de l'objet mais seulement l'occlusion qu'il induit sur la carte de référence. Ainsi, l'objet rectangulaire de la [Fig.4] est détecté par un ensemble de points qui forment un "L" à l'envers.
[0050] Le détecteur 10 a donc pour fonction de traiter les points d'objets à détecter et de déterminer parmi ceux-ci des groupes qui définissent les objets détectés.
[0051] Pour cela, diverses solutions sont possibles. De façon non-exhaustive, les méthodes de clustering (ou regroupement) pouvant être utilisée sont :
- les méthodes de propagation en 3D basées sur de la recherche de plus proche voisin (KNN search) ou recherche de voisinage sphérique (Radius search) dans quelque structure de recherche (KD-tree, octree, grille de voxels ou autre structure de données),
- les méthodes de propagation en 2D basées sur des projections des données 3D et recherches de voisinages dans ces images de projection, ou encore
- les méthodes de deep-learning pour faire du clustering, etc.
[0052] De manière préférée, la Demanderesse utilise une méthode basée sur une propagation en deux dimensions sur une image de projection sphérique. La [Fig.5] représente un exemple de mise en œuvre de cette méthode.
[0053] Dans une opération 500, tous les points d'objets à détecter font l'objet d'une projection sphérique en calculant leurs coordonnées sphériques dans le référentiel du nuage de points courant CCP. Ainsi, pour un point p(x,y,z), on calcule
[0054] La fonction Arctan2 à deux arguments est une variante de la fonction arc tangente. Pour tous arguments réels x et y non nuis, Arctan2() est l'angle en radians entre la partie positive de l'axe des abscisses d'un plan, et le point de ce plan de coordonnées (x, y). En variante, la fonction ArctanQ classique pourrait être utilisée dans une fonction par partie selon le signe de x.
[0055] Les valeurs les plus faibles de theta et phi sont notées thetam et phim et utilisées pour définir des coordonnées en pixel selon la formule (i,j) où i=(phi-phim)/dphi et j=(theta-thetam)/dtheta avec dphi et dtheta définissant des paramètres de résolution.
[0056] Pour chaque point, les coordonnées de pixel équivalentes sont calculées. Si plusieurs points sont associés au même pixel, alors ce pixel reçoit la valeur de r la plus faible. Si aucun point n'est associé à un pixel donné, celui-ci reçoit une valeur arbitrairement élevée.
[0057] Ensuite, à partir de l'image résultant des pixels définis à l'opération 500, un voisinage de 4 pixels est défini autour de chaque pixel (un pixel au-dessus, un à gauche, un à droite et un en dessous) dans une opération 510. En variante, un voisinage carré de taille 8 pourrait être réalisé.
[0058] Enfin dans une opération 520, un algorithme de croissance de région est appliqué avec un critère de croissance qui sépare bien les objets proches, par exemple comme décrit dans l'article de Bogoslavskyi, L, & Stachniss, C. "Fast range image-based segmentation of sparse 3D laser scans for online operation", 2016, In 2016 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS) (pp. 163-169), IEEE.
[0059] D'autres algorithmes pourraient être utilisés, comme décrit dans l'article de Klasing, K., Wollherr, D., & Buss, M. "A clustering method for efficient segmentation of 3D laser data", In 2008 IEEE international conference on robotics and automation (pp. 4043-4048), IEEE.
[0060] Enfin, le détecteur 10 peut réaliser l'opération optionnelle 290 en cherchant à associer les objets détectés dans le nuage de points courant à des objets détectés précédemment. Par exemple, le détecteur 10 peut définir pour chaque objet détecté des boîtes englobantes et les apparier aux boîtes englobantes du pas de temps précédent. Cela peut être réalisé par exemple par l'application de la méthode Hongroise (voir l'article de
Kuhn, H. W., "The Hungarian method for the assignment problem", 1955, Naval research logistics quarterly, 2(1-2), 83-97), ou par d'autres méthodes connues. La définition des boîtes englobantes peut être réalisée par une méthode tirée des "Rotating calipers'", comme décrit dans l'article de Toussaint, G. T., "Solving geometric problems with the rotating calipers", 1983, In Proc. IEEE Melecon, (Vol. 83, p. A10), mais d'autres méthodes pourraient être utilisées, comme F Analyse en Composantes Principales, des méthodes en 2D basées sur une projection orthographique ou d’autres gammes d’algorithmes de calcul de boîte englobante.
[0061] Le dispositif 2 selon l'invention est particulièrement avantageux car il est extrêmement polyvalent du fait de son indépendance au cas d’usage et au type d’environnement de déploiement. En outre, il est très robuste aux conditions d'éclairage et permet de gérer des environnements inconnus. Enfin il offre un taux de détection d'objets très élevés, est plus robuste aux occlusions que les méthodes connues, et offre une très grande productivité - création de carte, navigation, détection des obstacles et mise à jour de la carte peuvent être réalisées avec le même capteur et au jour le jour.
Claims
[Revendication 1] Dispositif de détection d'objets en trois dimensions dans un environnement matériel comprenant :
- une mémoire (4) agencée pour recevoir une carte de référence (Ref) comprenant une pluralité de points dans laquelle chaque point est défini par des coordonnées selon trois dimensions, laquelle carte de référence (Ref) est tirée d'une imagerie en trois dimensions par points de l'environnement matériel en l'absence d'objets à détecter, des données de nuage de points obtenues à partir d'une imagerie LIDAR 3D de l'environnement matériel, et des données de pose (Pos) comprenant un emplacement et une orientation définissant une transformation rigide en trois dimensions par rapport à la carte de référence (Ref),
- un estimateur (6) agencé pour recevoir des données de nuage de points courant (CCP) dans lesquelles chaque point est défini par des coordonnées selon trois dimensions, pour déterminer des données de pose courante (CPos) à partir des données de nuage de points courant (CCP) et de données de pose initiale, et pour associer les données de pose courante (CPos) aux données de nuage de points courant (CCP), les données de pose initiale (CPos) étant tirées de données de pose associées à des données de nuage de points obtenues avant les données de nuage de point courant (CCP) ou de données de pose d'initialisation,
- un cribleur (8) agencé pour sélectionner des points d'objet à détecter dans les données de nuage de points courant (CCP) à partir de données de pose courante (CPos) associées et de la carte de référence (Ref) en fonction de la distance entre d'une part les points des données de nuage de point courant (CCP) recalés par rapport à la carte de référence (Ref) en fonction des données de pose courante (CPos) et d'autre part les points de la carte de référence (Ref) qui leur sont le plus proche, et
- un détecteur (10) agencé pour associer en groupe certains des points d'objet à détecter par une méthode de regroupement, pour associer chaque groupe à un objet en trois dimensions.
[Revendication 2] Dispositif selon la revendication 1, dans lequel l'estimateur (6) est agencé pour appliquer une boucle d'optimisation dans laquelle : a) certains au moins des points des données du nuage de point courant (CCP) sont recalés par rapport à la carte de référence (Ref) en fonction des données de pose initiale, b) les points de la carte de référence qui leur sont le plus proches sont
identifiés, et, c) les données de pose initiale sont modifiées afin de minimiser une valeur tirée de la distance entre les points de l'opération a) et les points de l'opération b), d) si une condition de sortie de boucle d'optimisation portant sur le nombre d'itérations ou sur la valeur de l'opération c) est remplie, les données de pose initiale modifiées sont utilisées pour définir les données de pose courante (CPos), et sinon la boucle d'optimisation reprend avec l'opération a).
[Revendication 3] Dispositif selon la revendication 2, dans lequel l'estimateur (6) est agencé pour optimiser la valeur y °ù
les qi sont les certains au moins des points des données du nuage de point courant (CCP) de l'opération a), les p; sont les points de la carte de référence de l'opération b), CPos() est la transformation rigide définie par les données de pose initiale modifiées, et ly est un vecteur normal pris au point p;.
[Revendication 4] Dispositif selon l'une des revendications précédentes, dans lequel le cribleur (8) est agencé pour recaler les points des données du nuage de points courant (CCP) par rapport à la carte de référence (Ref) en fonction des données de pose courante (CPos) associées, et pour sélectionner les points recalés dont la distance au point de la carte de référence (Ref) qui leur est le plus proche excède un seuil choisi.
[Revendication 5] Dispositif selon l'une des revendications précédentes, dans lequel le détecteur (10) est agencé pour mettre en œuvre une méthode de regroupement par propagation en trois dimensions basée sur la recherche de plus proche voisin ou la recherche de voisinage sphérique, par propagation basée sur des projections en deux dimension de données en trois dimensions, ou par apprentissage automatique.
[Revendication 6] Dispositif selon la revendication 5, dans lequel le détecteur (10) est agencé pour mettre en œuvre une méthode de regroupement par propagation basée sur une projection sphérique en deux dimensions.
[Revendication 7] Dispositif selon l'une des revendications précédentes, dans lequel le détecteur (10) est agencé pour, pour chacune des données de nuage de points courant (CCP), analyser les objets en trois dimensions détectés pour essayer de les associer chacun avec un objet en trois dimensions détecté pour les données de nuage de points courant (CCP) immédiatement précédentes.
[Revendication 8] Procédé de détection d'objets en trois dimensions dans un environnement matériel comprenant : a) recevoir une carte de référence (Ref) comprenant une pluralité de points dans laquelle chaque point est défini par des coordonnées selon trois dimensions, laquelle carte de référence (Ref) est tirée d'une imagerie en trois dimensions par points de l'environnement matériel en l'absence d'objets à détecter, des données de nuage de points obtenues à partir d'une imagerie LIDAR 3D de l'environnement matériel, et des données de pose (Pos) comprenant un emplacement et une orientation définissant une transformation rigide en trois dimensions par rapport à la carte de référence (Ref), b) recevoir des données de nuage de points courant (CCP) dans lesquelles chaque point est défini par des coordonnées selon trois dimensions, et déterminer des données de pose courante (CPos) à partir des données de nuage de points courant (CCP) et de données de pose initiale, et pour associer les données de pose courante (CPos) aux données de nuage de points courant (CCP), les données de pose initiale (CPos) étant tirées de données de pose associées à des données de nuage de points obtenues avant les données de nuage de point courant (CCP) ou de données de pose d'initialisation, c) sélectionner des points d'objet à détecter dans les données de nuage de points courant (CCP) à partir de données de pose courante (CPos) associées et de la carte de référence (Ref) en fonction de la distance entre d'une part les points des données de nuage de point courant (CCP) recalés par rapport à la carte de référence (Ref) en fonction des données de pose courante (CPos) et d'autre part les points de la carte de référence (Ref) qui leur sont le plus proche, et d) associer en groupe certains des points d'objet à détecter par une méthode de regroupement, pour associer chaque groupe à un objet en trois dimensions.
[Revendication 9] Procédé selon la revendication 8, dans lequel l'opération b) comprend l'application d'une boucle d'optimisation comprenant les opérations suivantes : bl) recaler certains au moins des points des données du nuage de point courant (CCP) par rapport à la carte de référence (Ref) en fonction des données de pose initiale, b2) identifier les points de la carte de référence qui leur sont le plus proches, et,
b3) modifier les données de pose initiale afin de minimiser une valeur tirée de la distance entre les points de l'opération bl) et les points de l'opération b2), b4) si une condition de sortie de boucle d'optimisation portant sur le nombre d'itérations ou sur la valeur de l'opération b3) est remplie, les données de pose initiale modifiées sont utilisées pour définir les données de pose courante (CPos), et répéter la boucle avec l'opération bl) avec les données de pose initiale modifiées.
[Revendication 10] Procédé selon la revendication 9, dans lequel la valeur à optimiser dans l'opération b3) est
certains au moins des points des données du nuage de point courant (CCP) de l'opération a), les p; sont les points de la carte de référence de l'opération b), CPos() est la transformation rigide définie par les données de pose initiale modifiées, et n; est un vecteur normal pris au point p;.
[Revendication 11] Procédé selon l'une des revendications 8 à 10, dans lequel l'opération c) comprend recaler les points des données du nuage de points courant (CCP) par rapport à la carte de référence (Ref) en fonction des données de pose courante (CPos) associées, et pour sélectionner les points recalés dont la distance au point de la carte de référence (Ref) qui leur est le plus proche excède un seuil choisi.
[Revendication 12] Procédé selon l'une des revendications 8 à 11, dans lequel l'opération d) comprend la mise en œuvre d'une méthode de regroupement par propagation en trois dimensions basée sur la recherche de plus proche voisin ou la recherche de voisinage sphérique, par propagation basée sur des projections en deux dimension de données en trois dimensions, ou par apprentissage automatique.
[Revendication 13] Procédé selon la revendication 12, dans lequel la méthode de regroupement de l'opération d) et une méthode de regroupement par propagation basée sur une projection sphérique en deux dimensions.
[Revendication 14] Procédé selon l'une des revendications 8 à 13, dans lequel, dans l'opération d), pour chacune des données de nuage de points courant (CCP), comprend l'analyse des objets en trois dimensions détectés pour essayer de les associer chacun avec un objet en trois dimensions détecté pour les données de nuage de points courant (CCP) précédentes.
[Revendication 15] Produit de programme d'ordinateur, caractérisé en ce qu'il est agencé pour mettre en œuvre le procédé selon l'une des revendication 8 à 14 lorsqu'il est exécuté par un ordinateur.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR2204892A FR3135789B1 (fr) | 2022-05-20 | 2022-05-20 | Dispositif de détection d'objets en trois dimensions dans un environnement matériel |
FRFR2204892 | 2022-05-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023222989A1 true WO2023222989A1 (fr) | 2023-11-23 |
Family
ID=83690414
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/FR2023/050721 WO2023222989A1 (fr) | 2022-05-20 | 2023-05-19 | Dispositif de detection d'objets en trois dimensions dans un environnement materiel |
Country Status (2)
Country | Link |
---|---|
FR (1) | FR3135789B1 (fr) |
WO (1) | WO2023222989A1 (fr) |
-
2022
- 2022-05-20 FR FR2204892A patent/FR3135789B1/fr active Active
-
2023
- 2023-05-19 WO PCT/FR2023/050721 patent/WO2023222989A1/fr unknown
Non-Patent Citations (8)
Title |
---|
BOGOSLAVSKYI, I.STACHNISS, C.: "IEEE/RSJ International Conférence on Intelligent Robots and Systems (IROS", 2016, IEEE., article "Fast range image-based segmentation of sparse 3D laser scans for online operation", pages: 163 - 169 |
DUBE RENAUD ET AL: "An online multi-robot SLAM system for 3D LiDARs", 2017 IEEE/RSJ INTERNATIONAL CONFERENCE ON INTELLIGENT ROBOTS AND SYSTEMS (IROS), IEEE, 24 September 2017 (2017-09-24), pages 1004 - 1011, XP033266040, DOI: 10.1109/IROS.2017.8202268 * |
FRANÇOIS POMERLEAUFRANCIS COLAS, ROLAND SIEGWART: "Foundations and Trends in Robotics", vol. 4, 2015, NOW PUBLISHERS, article "A Review of Point Cloud Registration Algorithms for Mobile Robotics", pages: 1 - 104 |
KLASING, K.WOLLHERR, D.BUSS, M.: "IEEE international conférence on robotics and automation", 2008, IEEE., article "A clustering method for efficient segmentation of 3D laser data", pages: 4043 - 4048 |
KUHN, H. W.: "The Hungarian method for the assignment problem", NAVAL RESEARCH LOGISTICS QUARTERLY, vol. 2, no. 1-2, 1955, pages 83 - 97 |
SEGAL, ALEKSANDRHAHNEL, DIRKTHRUN, SEBASTIAN: "Generalized-ICP", PROC. OF ROBOTICS: SCIENCE AND SYSTEMS, 2009 |
TOUSSAINT, G. T.: "Solving géométrie problems with the rotating calipers", IN PROC. IEEE MELECON, vol. 83, 1983, pages A10 |
WELLHAUSEN LORENZ ET AL: "Reliable real-time change detection and mapping for 3D LiDARs", 2017 IEEE INTERNATIONAL SYMPOSIUM ON SAFETY, SECURITY AND RESCUE ROBOTICS (SSRR), IEEE, 11 October 2017 (2017-10-11), pages 81 - 87, XP033242131, DOI: 10.1109/SSRR.2017.8088144 * |
Also Published As
Publication number | Publication date |
---|---|
FR3135789A1 (fr) | 2023-11-24 |
FR3135789B1 (fr) | 2024-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10930005B1 (en) | Profile matching of buildings and urban structures | |
US20240249518A1 (en) | Systems and methods for analyzing remote sensing imagery | |
US10475232B2 (en) | Three-dimentional plane panorama creation through hough-based line detection | |
Whelan et al. | Real-time large-scale dense RGB-D SLAM with volumetric fusion | |
EP2491532B1 (fr) | Procede, programme d'ordinateur et dispositif de suivi hybride de representations d'objets, en temps reel, dans une sequence d'images | |
Gressin et al. | Towards 3D lidar point cloud registration improvement using optimal neighborhood knowledge | |
Remondino et al. | State of the art in high density image matching | |
EP2549434B1 (fr) | Procédé de modélisation de bâtiments à partir d'une image géoréférencée | |
EP2724203B1 (fr) | Génération de données de carte | |
Frahm et al. | Fast robust large-scale mapping from video and internet photo collections | |
JP5833507B2 (ja) | 画像処理装置 | |
Rumpler et al. | Probabilistic range image integration for DSM and true-orthophoto generation | |
CN114648640B (zh) | 一种目标物单体化方法、装置、设备及存储介质 | |
O'Byrne et al. | A stereo‐matching technique for recovering 3D information from underwater inspection imagery | |
WO2014173939A1 (fr) | Recalage d'images sar par information mutuelle | |
WO2019121056A1 (fr) | Methode de reconnaissance d'objets dans une scene observee en trois dimensions | |
US20240135623A1 (en) | Differentiable real-time radiance field rendering for large scale view synthesis | |
EP3384462B1 (fr) | Procede de caracterisation d'une scene par calcul d'orientation 3d | |
Gallup | Efficient 3D reconstruction of large-scale urban environments from street-level video | |
WO2023222989A1 (fr) | Dispositif de detection d'objets en trois dimensions dans un environnement materiel | |
Potje et al. | Towards an efficient 3D model estimation methodology for aerial and ground images | |
Roy et al. | Baseline processing pipeline for fast automatic target detection and recognition in airborne 3D ladar imagery | |
FR2978276A1 (fr) | Procede de modelisation de batiments a partir d'une image georeferencee | |
Milani | Pic2Map: intégration de photographies dans QGIS | |
Zhou et al. | Digital surface model generation from aerial imagery using bridge probability relaxation matching |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23730172 Country of ref document: EP Kind code of ref document: A1 |