FR 3135789 A1 20231124 FR 2204892 A 20220520 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. Dispositif de détection d'objets en trois dimensions dans un environnement matériel L’invention concerne le domaine de la détection d'objets dans un environnement préalablement scanné en trois 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. 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. 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. 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. Les solutions à base de capteurs de type caméra sont très sensibles aux conditions d'éclairage et offrent des performances insatisfaisantes. 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. 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. 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. 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. 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. 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. 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. 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. 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 . 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. 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. 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. 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. 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. 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, classiﬁcation, 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 ﬁxes), système MMS (pour "Mobile Mapping System" en anglais, ou "Système de cartographie mobile"), qui utilise du LiDAR 3D, proﬁlomè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. 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. 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. 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. 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. 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. 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. 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"). 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. 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. La représente un exemple d'une boucle de fonctionnement mise en œuvre par le dispositif de la . 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. 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. 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. 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é. 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. 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. 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 ﬁltrage de Kalman. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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 . 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. 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. 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. 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é. 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. 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. 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. 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. 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. 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). Dispositif selon la revendication 2, dans lequel l'estimateur (6) est agencé pour optimiser la valeur , où les q i sont les certains au moins des points des données du nuage de point courant (CCP) de l'opération a), les p i 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 i est un vecteur normal pris au 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. 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. 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. 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. 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. 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. Procédé selon la revendication 9, dans lequel la valeur à optimiser dans l'opération b3) est , où les q i sont les certains au moins des points des données du nuage de point courant (CCP) de l'opération a), les p i 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 i est un vecteur normal pris au 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. 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. 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. 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. 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.