FR3135789A1 - Device for detecting three-dimensional objects in a hardware environment - Google Patents

Device for detecting three-dimensional objects in a hardware environment Download PDF

Info

Publication number
FR3135789A1
FR3135789A1 FR2204892A FR2204892A FR3135789A1 FR 3135789 A1 FR3135789 A1 FR 3135789A1 FR 2204892 A FR2204892 A FR 2204892A FR 2204892 A FR2204892 A FR 2204892A FR 3135789 A1 FR3135789 A1 FR 3135789A1
Authority
FR
France
Prior art keywords
data
point cloud
points
current
pose data
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
FR2204892A
Other languages
French (fr)
Inventor
Hassan BOUCHIBA
Mathias CORSIA
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.)
Exwayz
Original Assignee
Exwayz
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 Exwayz filed Critical Exwayz
Priority to FR2204892A priority Critical patent/FR3135789A1/en
Priority to PCT/FR2023/050721 priority patent/WO2023222989A1/en
Publication of FR3135789A1 publication Critical patent/FR3135789A1/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO 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/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/88Lidar systems specially adapted for specific applications
    • G01S17/89Lidar systems specially adapted for specific applications for mapping or imaging
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO 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/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/88Lidar systems specially adapted for specific applications
    • G01S17/93Lidar systems specially adapted for specific applications for anti-collision purposes
    • G01S17/931Lidar systems specially adapted for specific applications for anti-collision purposes of land vehicles
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO 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/00Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
    • G01S7/48Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S17/00
    • G01S7/4808Evaluating distance, position or velocity data

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)
  • Image Analysis (AREA)
  • Length Measuring Devices By Optical Means (AREA)

Abstract

Dispositif de détection d'objets en trois dimensions dans un environnement matériel 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.Device for detecting three-dimensional objects in a hardware environment A device for detecting three-dimensional objects in a hardware environment comprises a memory arranged to receive a reference map comprising a plurality of points in which each point is defined by coordinates in three dimensions, 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 (Ref), 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 to associate 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 initialization pose data, a screener arranged to select 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 of 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 and to associate each group with a three-dimensional object .

Description

Dispositif de détection d'objets en trois dimensions dans un environnement matérielDevice for detecting three-dimensional objects in a hardware environment

L’invention concerne le domaine de la détection d'objets dans un environnement préalablement scanné en trois dimensions.The invention relates to the field of object detection in an environment previously scanned in three dimensions.

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.The field of computer vision is booming. In this area, we distinguish between open environments, such as road environments where the classes of objects are restricted (cars, pedestrians, trucks, facades, etc.), for example for autonomous vehicles, and constrained environments (or "indoor environments" in English), that is to say whose material content is more diverse over time, and which have dimensions which make the establishment of a map simpler.

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.In the context of constrained environments, several solutions have been developed to enable automated detection of objects in a material environment.

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.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.

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.
A second family of solutions is detection with a system-embedded sensor:
- from other sensors: RGB camera, radar, etc., and
- from 2D LiDAR data, with or without a map, or by analysis of free space.

Les solutions à base de capteurs de type caméra sont très sensibles aux conditions d'éclairage et offrent des performances insatisfaisantes.Solutions based on camera-type sensors are very sensitive to lighting conditions and offer unsatisfactory performance.

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.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 - in this case) may be missed. 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 algorithms in downstream unusable.

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.There are some experiments using mapless 3D LiDAR data, but they use occupancy grids that are projected in two dimensions, which results in similar disadvantages to 2D LiDAR methods.

L’invention vient améliorer la situation. À 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.
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.

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.This device is particularly advantageous because it makes it possible to detect three-dimensional objects in a hardware environment reliably and in real time.

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 , où 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.
According to various embodiments, 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 aligned with respect to the reference map according to the initial pose data,
b) the points on the reference map closest to them are identified, and,
c) the initial pose data is modified in order to minimize a value taken from the distance between the points of operation a) and the points of 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 current pose data, and otherwise the optimization loop resumes with operation a),
- the estimator is arranged to optimize the value , where 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 defined rigid transformation 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, and
- 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.

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.
The invention also relates to a method for detecting three-dimensional objects in a hardware environment comprising:
a) receiving a reference map comprising a plurality of points in which each point is defined by three-dimensional coordinates, which reference map is derived 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 hardware environment, and pose data including location and orientation defining a three-dimensional rigid transformation relative to the map of reference,
b) receiving current point cloud data in which each point is defined by three-dimensional coordinates, and determining current pose data from the current point cloud data and initial pose data, and for associating the current pose data to 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 initialization pose data,
c) selecting 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 the points of the point cloud data on the one hand current realigned in relation to the reference card according to the current pose data and on the other hand the points of the reference card which are closest to them, and
d) associating as a group some of the object points to be detected by a grouping method, to associate each group with a three-dimensional object.

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 :
b1) 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 b1) 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 b1) avec les données de pose initiale modifiées,
- la valeur à optimiser dans l'opération b3) est , où 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.
In various variants, this process may have one or more of the following characteristics:
- operation b) includes the application of an optimization loop comprising the following operations:
b1) register at least some of the data points of the current point cloud in relation to the reference map according to the initial pose data,
b2) identify the points on the reference map closest to them, and,
b3) modify the initial pose data in order to minimize a value taken from the distance between the points of operation b1) and the points of operation b2),
b4) if an optimization loop exit condition relating to the number of iterations or the value of the operation b3) is met, the modified initial pose data is used to define the current pose data, and repeat the loop with operation b1) with the initial pose data modified,
- the value to be optimized in operation b3) is , where 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 defined rigid transformation by the modified initial pose data, and ni is 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 grouping method of operation d) and a method of grouping by propagation based on a two-dimensional spherical projection, and
- in operation d), for each of the current point cloud data, comprises the analysis of the detected three-dimensional objects to try to associate each with a three-dimensional object detected for the previous current point cloud data .

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.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.

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 représente un schéma générique d'un dispositif selon l'invention,
- la représente un exemple d'une boucle de fonctionnement mise en œuvre par le dispositif de la ,
- la représente un exemple de fonction mise en œuvre dans une opération de la ,
- la représente un exemple de détection par le cribleur de la , et
- la représente un exemple de fonction mise en œuvre dans une opération optionnelle de la .
Other characteristics and advantages of the invention will appear better on reading the description which follows, taken from examples given by way of illustration and not limitation, taken from the drawings in which:
- there represents a generic diagram of a device according to the invention,
- there represents an example of an operating loop implemented by the device of the ,
- there represents an example of a function implemented in an operation of the ,
- there represents an example of detection by the screener of the , And
- there represents an example of a function implemented in an optional operation of the .

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 description below contain, for the most part, elements of a certain nature. They can therefore not only be used to better understand the present invention, but also contribute to its definition, if necessary.

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 owner of the rights has no objection to the identical reproduction by anyone of this patent document or its description, as it appears in official records. For the rest, he reserves his rights in full.

La 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.There 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.

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.Memory 4 receives several types of data: data defining a reference map, point cloud data, pose data and detected object data.

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.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.

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…It can be equipped with a data structure (e.g. Octree, KD-Tree, Voxel Grid, etc.) which makes it possible to accelerate nearest neighbor queries. Furthermore, this operation can return local geometric or non-geometric attributes of the map: surface normal, tangent vector, color, classification, etc.

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.The Applicant offers a non-exhaustive list of methods which make it possible to construct a map: 3D SLAM LiDAR system, photogrammetry, topographical system, TLS system ("Terrestrial Laser Scanning" in English for "Terrestrial Laser Scanning", method which consists of mapping 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.

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.Preferably, the Applicant uses a 3D SLAM LiDAR system, which allows it to use the same hardware to obtain the map as to obtain the point clouds.

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.The point cloud data is obtained by a 3D SLAM LiDAR system. In the example described here, this system is integrated into device 2 which accesses the reference map and the point clouds by accessing memory 4. Alternatively, the acquisition system could be remote, device 2 carrying out only the processing of data.

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.The three-dimensional point cloud data includes a plurality of points defined by three-dimensional coordinates in the system reference frame from which they were acquired. In certain embodiments, the data for each point may be supplemented by other data, such as color, return intensity, etc. In the examples described here, they represent at each time step the evolution of the environment in which the device 2 evolves. Thus, each cloud of points is associated with a unique time step, and vice versa. Alternatively, 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.

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.The pose data contains data that allows the registration of a cloud of points in the reference map. Thus, this data defines a rigid transformation by which point cloud data is associated with the reference map to enable object detection.

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.Typically, they represent the position and attitude (or orientation) of device 2 in space with 6 degrees of freedom. 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 zero line except for the last term which is 1 ), position vector and Euler angles, position vector and quaternion, etc.

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.Like point cloud data, 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.

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").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").

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.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.

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 FPGA 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.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. By 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 chip of the FPGA or SoC type, 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. 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. In the case of the machine learning unit based on gradient reinforcement, processors dedicated to machine learning could also be considered.

La représente un exemple d'une boucle de fonctionnement mise en œuvre par le dispositif de la .There represents an example of an operating loop implemented by the device of the .

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.In a first optional operation 200, an acquisition of the reference card is carried out. How to acquire this card has been described above.

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.Then, in a second operation 220 also optional, an estimate of the initial pose is carried out. When 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 determining a rough estimate (a few meters and a few degrees of precision are sufficient) of the initial pose data of the system.

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.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.

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é.Then, 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, of selecting in an operation 260 points of objects 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 operation 290 optional, tracking of detected objects is carried out.

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.Once a loop completes, the next loop begins, with the point cloud data from the next time step, and with the data from the previous loop as initialization data.

La 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.There represents an example of a function implemented by estimator 6 in operation 240. In this operation, estimator 6 implements a method from the ICP family (for "Iterative Closest Point" in English or "Point closest by iteration"), 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.

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.In an operation 300, the current pose CPos is initialized by an Init() function. As explained above, each time step serves as a reference to the next time step. 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. Alternatively, the initial pose data could be initialized by estimating the current state of the system, for example by Kalman filtering.

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.Then, 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). This is achieved by an NN() function which receives the reference map Ref, the current query point q, and the pose data 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. Alternatively, the normal n and the set A can be omitted.

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.Then, in an operation 330, the quadruplet [q;p;n;A] is added to a list of points to be optimized, and the loop resumes with operation 310 until all the points have been covered.

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.Alternatively, operation 310 can be preceded by a decimation operation of the CCP point cloud so as not to try to readjust too many points. Still as a variant, 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.

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 , ce qui revient à 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 & Hähnel, Dirk & Thrun, Sebastian, "Generalized-ICP", 2009, Proc. of Robotics: Science and Systems, 10.15607/RSS.2009.V.021.When all points have been covered in operation 310, the first loop ends and an operation 340 is executed in which an Opt() function receives the list Q and determines a correction element which is added to the pose data CPos. For example, when the pose data is stored in the form of a 4x4 matrix, the Opt() function will look for a correction matrix which improves the value , which amounts to optimizing the distance between each aligned point q and the plane defined by point p and its normal n. Appendix A of the article by 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. Other distances can be retained, such as the Euclidean norm or more complex distances as described in the article by Segal, Aleksandr & Hähnel, Dirk & Thrun, Sebastian, "Generalized-ICP", 2009, Proc. of Robotics: Science and Systems, 10.15607/RSS.2009.V.021.

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.Once the operation 340 is completed, 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 has been 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.

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.Once operation 240 is completed, the current point cloud CCP is aligned with respect to the reference map Ref by the pose data CPos.

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.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. Indeed, 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.

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.Thus, the screener 8 performs a nearest neighbor query on all the points of the current point cloud CCP aligned 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.

La 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.There illustrates the operation of the screener 8. As can be seen in this figure, the 3D LiDAR SLAM detects a plurality of points (represented by an empty circle) which correspond to the reference map (dotted), 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.

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 , 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 est détecté par un ensemble de points qui forment un "L" à l'envers.Once the object points to be detected have been selected by the screener 8, the detector 10 will group them together in order to define the detected objects. Indeed, as we clearly see on the , 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 but only the occlusion that it induces on the map. reference. Thus, the rectangular object of the is detected by a set of points that form an upside-down "L".

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.The detector 10 therefore has the function of processing the object points to be detected and of determining among these groups which define the objects detected.

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.
For this, various solutions are possible. Non-exhaustively, the clustering (or grouping) methods that can be used are:
- 3D propagation methods based on nearest neighbor search (KNN search) or spherical neighborhood search (Radius search) in some search structure (KD-tree, octree, voxel grid or other data structure) ,
- 2D propagation methods based on projections of 3D data and neighborhood searches in these projection images, or even
- deep-learning methods for clustering, etc.

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 représente un exemple de mise en œuvre de cette méthode.Preferably, the Applicant uses a method based on two-dimensional propagation on a spherical projection image. There represents an example of implementation of this method.

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 , , et .In an operation 500, 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. Thus, for a point p(x,y,z), we calculate , , And .

La fonction Arctan2 à deux arguments est une variante de la fonction arc tangente. Pour tous arguments réels x et y non nuls, 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 Arctan() classique pourrait être utilisée dans une fonction par partie selon le signe de x.The two-argument Arctan2 function is a variation of the arctangent function. For all non-zero real arguments x and y, Arctan2() is the angle in radians between the positive part of the abscissa axis of a plane, and the point of this coordinate plane (x, y). Alternatively, the classic Arctan() function could be used in a part function depending on the sign of x.

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.The lowest values of theta and phi are denoted thetam and phim and used to define pixel coordinates according to the formula (i,j) where i=(phi-phim)/dphi and j=(theta-thetam)/dtheta with dphi and dtheta setting resolution parameters.

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.For each point, 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.

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é.Then, from the image resulting from the pixels defined in operation 500, 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 a operation 510. Alternatively, a square neighborhood of size 8 could be produced.

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, I., & 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.Finally in an operation 520, a region growth algorithm is applied with a growth criterion which separates close objects well, for example as described in the article by Bogoslavskyi, I., & 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.

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.Other algorithms could be used, as described in the article by 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.

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 l’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.Finally, the detector 10 can carry out the optional operation 290 by seeking to associate the objects detected in the current point cloud with objects detected previously. For example, 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 the application of the Hungarian method (see the article by Kuhn, H. W., "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, G. T., "Solving geometric problems with the rotating calipers", 1983, In Proc. IEEE Melecon, (Vol. 83, p. A10), but other methods could be used, such as Principal Component Analysis, 2D methods based on an orthographic projection or other ranges of algorithms for calculating bounding box.

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.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.

Claims (15)

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.
Device for detecting three-dimensional objects in a hardware environment comprising:
- a memory (4) arranged to receive a reference map (Ref) comprising a plurality of points in which each point is defined by coordinates in three dimensions, which reference map (Ref) is taken from three-dimensional imagery by points of the material environment in the absence of objects to be detected, point cloud data obtained from 3D LIDAR imagery of the material environment, and pose data (Pos) including a location and an orientation defining a rigid transformation in three dimensions relative to the reference map (Ref),
- an estimator (6) arranged to receive current point cloud data (CCP) in which each point is defined by coordinates in three dimensions, to determine current pose data (CPos) from the point cloud data current pose data (CCP) and initial pose data, and to associate the current pose data (CPos) with the current point cloud data (CCP), the initial pose data (CPos) being taken from pose data associated with point cloud data obtained before the current point cloud (CCP) data or initialization pose data,
- a screener (8) arranged to select object points to be detected in the current point cloud data (CCP) from associated current pose data (CPos) and the reference map (Ref) as a function of the distance between on the one hand the points of the current point cloud data (CCP) registered with respect to the reference map (Ref) according to the current pose data (CPos) and on the other hand the points of the map reference (Ref) which are closest to them, and
- a detector (10) 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.
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).
Device according to claim 1, in which the estimator (6) is arranged to apply an optimization loop in which:
a) at least some of the data points of the current point cloud (CCP) are aligned with respect to the reference map (Ref) according to the initial pose data,
b) the points on the reference map closest to them are identified, and,
c) the initial pose data is modified in order to minimize a value taken from the distance between the points of operation a) and the points of 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 current pose data (CPos) , and otherwise the optimization loop resumes with operation a).
Dispositif selon la revendication 2, dans lequel l'estimateur (6) est agencé pour optimiser la valeur , où les qisont les certains au moins des points des données du nuage de point courant (CCP) de l'opération a), les pisont 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 niest un vecteur normal pris au point pi.Device according to claim 2, in which the estimator (6) is arranged to optimize the value , where the q i are at least some of the data points of the current point cloud (CCP) of operation a), the p i are the points of the reference map of operation b), CPos() is the rigid transformation defined by the modified initial pose data, and n i is a normal vector taken at point p i . 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.Device according to one of the preceding claims, in which the screener (8) is arranged to register the data points of the current point cloud (CCP) relative to the reference map (Ref) as a function of the current pose data ( CPos) associated, and to select the registered points whose distance to the point of the reference map (Ref) which is closest to them exceeds a chosen threshold. 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.Device according to one of the preceding claims, in which the detector (10) is arranged to implement a method of grouping by propagation in three dimensions based on the nearest neighbor search or the spherical neighborhood search, by propagation based on two-dimensional projections of three-dimensional data, or by machine learning. 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.Device according to claim 5, wherein the detector (10) is arranged to implement a method of grouping by propagation based on a two-dimensional spherical projection. 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.Device according to one of the preceding claims, in which the detector (10) is arranged to, for each of the current point cloud (CCP) data, analyze the three-dimensional objects detected to try to associate each of them with an object in three dimensions detected for the immediately preceding current point cloud (CCP) data. 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.
Method for detecting three-dimensional objects in a hardware environment comprising:
a) receiving a reference map (Ref) comprising a plurality of points in which each point is defined by three-dimensional coordinates, which reference map (Ref) is taken from three-dimensional point imaging of the environment hardware in the absence of objects to be detected, point cloud data obtained from 3D LIDAR imaging of the hardware environment, and pose (Pos) data including a location and orientation defining a rigid transformation in three dimensions compared to the reference map (Ref),
b) receiving current point cloud (CCP) data in which each point is defined by coordinates in three dimensions, and determining current pose data (CPos) from the current point cloud (CCP) data and initial pose data, and to associate the current pose data (CPos) with the current point cloud data (CCP), the initial pose data (CPos) being taken from pose data associated with point cloud data obtained before the current point cloud (CCP) data or initialization pose data,
c) selecting object points to be detected in the current point cloud (CCP) data from associated current pose data (CPos) and the reference map (Ref) as a function of the distance between a on the one hand the points of the current point cloud data (CCP) registered with respect to the reference map (Ref) according to the current pose data (CPos) and on the other hand the points of the reference map (Ref) which are closest to them, and
d) associating as a group some of the object points to be detected by a grouping method, to associate each group with a three-dimensional object.
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 :
b1) 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 b1) 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 b1) avec les données de pose initiale modifiées.
Method according to claim 8, in which operation b) comprises the application of an optimization loop comprising the following operations:
b1) register at least some of the data points of the current point cloud (CCP) in relation to the reference map (Ref) according to the initial pose data,
b2) identify the points on the reference map closest to them, and,
b3) modify the initial pose data in order to minimize a value taken from the distance between the points of operation b1) and the points of operation b2),
b4) if an optimization loop exit condition relating to the number of iterations or the value of the operation b3) is met, the modified initial pose data is used to define the current pose data (CPos) , and repeat the loop with operation b1) with the modified initial pose data.
Procédé selon la revendication 9, dans lequel la valeur à optimiser dans l'opération b3) est , où les qisont les certains au moins des points des données du nuage de point courant (CCP) de l'opération a), les pisont 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 niest un vecteur normal pris au point pi.Method according to claim 9, in which the value to be optimized in operation b3) is , where the q i are at least some of the data points of the current point cloud (CCP) of operation a), the p i are the points of the reference map of operation b), CPos() is the rigid transformation defined by the modified initial pose data, and n i is a normal vector taken at point p i . 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.Method according to one of claims 8 to 10, in which operation c) comprises registering the data points of the current point cloud (CCP) relative to the reference map (Ref) as a function of the current pose data ( CPos) associated, and to select the registered points whose distance to the point of the reference map (Ref) which is closest to them exceeds a chosen threshold. 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.Method according to one of claims 8 to 11, in which operation d) comprises the implementation of a method of grouping by propagation in three dimensions based on the nearest neighbor search or the spherical neighborhood search, by propagation based on two-dimensional projections of three-dimensional data, or by machine learning. 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.A method according to claim 12, wherein the clustering method of operation d) and a propagation clustering method based on a two-dimensional spherical projection. 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.Method according to one of claims 8 to 13, wherein, in operation d), for each of the current point cloud (CCP) data, comprises the analysis of the three-dimensional objects detected to try to associate each with a three-dimensional object detected for the previous current point cloud (CCP) data. 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.Computer program product, characterized in that it is arranged to implement the method according to one of claims 8 to 14 when executed by a computer.
FR2204892A 2022-05-20 2022-05-20 Device for detecting three-dimensional objects in a hardware environment Pending FR3135789A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR2204892A FR3135789A1 (en) 2022-05-20 2022-05-20 Device for detecting three-dimensional objects in a hardware environment
PCT/FR2023/050721 WO2023222989A1 (en) 2022-05-20 2023-05-19 Device for detecting three-dimensional objects in a physical environment

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2204892A FR3135789A1 (en) 2022-05-20 2022-05-20 Device for detecting three-dimensional objects in a hardware environment
FR2204892 2022-05-20

Publications (1)

Publication Number Publication Date
FR3135789A1 true FR3135789A1 (en) 2023-11-24

Family

ID=83690414

Family Applications (1)

Application Number Title Priority Date Filing Date
FR2204892A Pending FR3135789A1 (en) 2022-05-20 2022-05-20 Device for detecting three-dimensional objects in a hardware environment

Country Status (2)

Country Link
FR (1) FR3135789A1 (en)
WO (1) WO2023222989A1 (en)

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
BOGOSLAVSKYI, I.STACHNISS, C.: "2016 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 COLASROLAND 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, ALEKSANDRHÂHNEL, DIRKTHRUN, SEBASTIAN: "Generalized-ICP", PROC. OF ROBOTICS: SCIENCE AND SYSTEMS, 2009
TOUSSAINT, G. T.: "Proc. IEEE Melecon", vol. 83, 1983, article "Solving géométrie problems with the rotating calipers", 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
WO2023222989A1 (en) 2023-11-23

Similar Documents

Publication Publication Date Title
Acharya et al. BIM-PoseNet: Indoor camera localisation using a 3D indoor model and deep learning from synthetic images
US10930005B1 (en) Profile matching of buildings and urban structures
Gressin et al. Towards 3D lidar point cloud registration improvement using optimal neighborhood knowledge
Hamzah et al. Literature survey on stereo vision disparity map algorithms
Remondino et al. State of the art in high density image matching
EP2491532B1 (en) Method, computer program and device for real-time hybrid tracking of object representations in an image sequence
Kim et al. 3d scene reconstruction from multiple spherical stereo pairs
US9483703B2 (en) Online coupled camera pose estimation and dense reconstruction from video
Bradski et al. Learning-based computer vision with intel's open source computer vision library.
US9836871B2 (en) Three-dimentional plane panorama creation through hough-based line detection
Kang et al. Automatic targetless camera–lidar calibration by aligning edge with gaussian mixture model
EP2549434B1 (en) Method of modelling buildings from a georeferenced image
Lafarge et al. A hybrid multiview stereo algorithm for modeling urban scenes
EP2724203B1 (en) Generation of map data
Frahm et al. Fast robust large-scale mapping from video and internet photo collections
Rumpler et al. Probabilistic range image integration for DSM and true-orthophoto generation
O'Byrne et al. A stereo‐matching technique for recovering 3D information from underwater inspection imagery
EP3729327A1 (en) Method for recognising objects in a three dimensional scene
WO2014173939A1 (en) Registration of sar images by mutual information
CN114648640B (en) Target object monomer method, device, equipment and storage medium
EP3384462B1 (en) Method for characterising a scene by calculating the 3d orientation
KR102249381B1 (en) System for generating spatial information of mobile device using 3D image information and method therefor
Gallup Efficient 3D reconstruction of large-scale urban environments from street-level video
WO2023222989A1 (en) Device for detecting three-dimensional objects in a physical environment
Potje et al. Towards an efficient 3D model estimation methodology for aerial and ground images

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20231124

PLFP Fee payment

Year of fee payment: 3