Brevet FR3096816A1 — publié le 20201204

Description Titre de l'invention : Procédé, système et appareil pour la détection de façades de produits Arrière-plan [0001] Les environnements où sont gérés les objets, tels que les installations de vente au détail, les installations d'entreposage et de distribution et autres, permettent. de stocker ces objets dans des régions telles que les allées de modules de gondole ou autres. Par exemple, une installation de vente au détail peut comporter des objets tels que les produits à acheter, et une installation de distribution peut comporter des objets tels que les colis ou les palettes. Un appareil d'automatisation mobile peut être déployé dans ces installations pour effectuer des tâches à des emplacements variés. Par exemple, un appareil d'automatisation mobile peut être déployé pour capturer des données représentant une allée et des produits correspondants dans une installation de vente au détail. Cependant, la variabilité des produits dans l'installation, ainsi que les variations des conditions de capture des données (par exemple, l'éclairage et autres) peuvent empêcher la détection précise de produits individuels et de leur statut à partir de ces données. Brève description des différentes vues des dessins 100021 Les figures d'accompagnement, où les mêmes chiffres de référence font référence à des éléments identiques ou fonctionnellement similaires dans les différentes vues, ainsi que la description détaillée ci-dessous, sont incorporées dans la spécification et en font partie, et servent à illustrer davantage les modes de réalisation de concepts qui comportent l'invention revendiquée, et à expliquer les divers principes et avantages de ces modes de réalisation. 100031 Ifi2.1I est un schéma d'un système d'automatisation mobile. 100041 Ifig.21 représente un appareil d'automatisation mobile dans le système de la FIG. 1. 100051 Ifig.31 est un schéma de principe de certains composants internes de l'appareil d'automatisation mobile dans le système de la FIG. I 100061 1E2.41 est un organigramme d'un procédé de détection de façades de produits dans le système de la FIG. 1. 100071 Ifig.5I est un diagramme illustrant des données d'entrées pour le procédé de la FIG. 4. 100081 1E2.61 est un diagramme illustrant une carte de profondeur générée au Hoc 415 du procédé de la FIG. 4. [0009] [fig.7] est un diagramme illustrant la détection de bords candidats dc façade au bloc 415 du procédé dc la FIG. 4 2 100101 Ifig.81 est un diagramme illustrant la détection de bords candidats de façade aux blocs 425 et 430 du procédé de la FIG. 4. [0011] [fig.9] est un diagramme illustrant une combinaison de premier et deuxième ensembles de bords candidats de façade au bloc 435 du procédé de la FIG. 4. [0012] [fig.10] est un diagramme illustrant la génération et la validation de bords candidates de façade aux blocs 440 à 460 du procédé de la FIG. 4. [0013] Les hommes du métier apprécieront le fait que les éléments des figures sont illustrés par souci de simplicité et de clarté et n'ont pas nécessairement été dessinés à l'échelle. Par exemple, les dimensions de certains éléments des figures peuvent être exagérées par rapport à d'autres éléments afin de contribuer à améliorer la compréhension des modes de réalisation de la présente invention. [0014] Les composants de l'appareil et du procédé ont été représentés, le cas échéant, par des symboles conventionnels dans les dessins, montrant uniquement les détails spécifiques qui sont pertinents pour la compréhension des modes de réalisation de la présente invention afin de ne pas obscurcir la divulgation par des détails qui seront évidents pour les personnes de compétence ordinaire dans l'art bénéficiant de la présente description. Description détaillée [0015] Les exemples présentés ici concernent un procédé de détection de façades de produits par une unité de commande d'imagerie à partir de données d'image et de profondeur capturées, le procédé comprenant les étapes consistant à : obtenir, sur l'unité de commande d'imagerie : (i) des mesures de profondeur provenant d'au moins un capteur de profondeur, les mesures de profondeur représentant une structure de support supportant une pluralité de façades de produits, (ii) des données d'images provenant d'au moins un capteur d'images, les données d'images représentant la structure de support, et (iii) un ensemble d'indicateurs de région d'intérêt (ROI), chaque indicateur ROI indiquant une position d'une pluralité desdites façades de produits ; générer, par un détecteur de profondeur de l'unité de commande d'imagerie, à partir des mesures de profondeur, un premier ensemble de bords candidats de façade ; générer, par un détecteur d'images de l'unité de commande d'imagerie, à partir des données d'images, un deuxième ensemble de bords candidats de façade à partir des données d'images ; générer, par un générateur de bords de l'unité de commande d'imagerie : un troisième ensemble de bords candidats de façade en combinant les premier et deuxième ensembles, et une bord candidate de façade pour chaque paire adjacente de bords candidats de façade dans le troisième ensemble de bords candidats de façade ; sélectionner, par le générateur de bords de l'unité de commande d'imagerie, un sous-ensemble de bords de façade de sortie à partir des bords candidates de façade, sur la 3 hase des indicateurs ROI ; présenter, par le générateur de bords de l'unité de commande d'imagerie, une sortie de détection de façade de produit comportant le sous-ensemble sélectionné de bords de façade de sortie. [0016] D'autres exemples divulgués ici concernent un dispositif informatique, comprenant : une mémoire stockant : (i) des mesures de profondeur provenant d'au moins un capteur de profondeur, les mesures de profondeur représentant une structure de support supportant une pluralité de façades de produits, (ii) des données d'images provenant d'au moins un capteur d'images, les données d'images représentant la structure de support, et (iii) un ensemble d'indicateurs de région d'intérêt (ROI), chaque indicateur ROT indiquant une position d'une pluralité desdites façades de produits ; une unité de commande d'imagerie disposant : d'un détecteur de profondeur configuré pour : obtenir les mesures de profondeur et les indicateurs ROI ; et générer, à partir des mesures de profondeur, un premier ensemble de bords candidats de façade ; d'un détecteur d'images configuré pour : obtenir les données d'images et les indicateurs ROT ; et générer, à partir des données d'images, un deuxième ensemble de bords candidats de façade ; et d'un générateur de bords configuré pour générer : un troisième ensemble de bords candidats de façade en combinant les premier et deuxième ensembles ; une bord candidate de façade pour chaque paire adjacente de bords candidats de façade dans le troisième ensemble de bords candidats de façade ; sélectionner un sous-ensemble de bords de façade de sortie à partir des bords candidates de façade, sur la base des indicateurs ROI ; et présenter une sortie de détection de façade de produit comportant le sous-ensemble sélectionné de bords de façade de sortie. [0017] D'autres exemples supplémentaires divulgués ici concernent un support non transitoire lisible par ordinateur stockant des instructions exécutables par une unité de commande d'imagerie pour configurer l'unité de commande d'imagerie pour : obtenir (i) des mesures de profondeur provenant d'au moins un capteur de profondeur, les mesures de profondeur représentant une structure de support supportant une pluralité de façades de produits, (ii) des données d'images provenant d'au moins un capteur d'images, les données d'images représentant la structure de support, et (iii) un ensemble d'indicateurs de région d'intérêt (ROI), chaque indicateur ROI indiquant une position d'une pluralité desdites façades de produits ; générer, au niveau d'un détecteur de profondeur de l'unité de commande d'imagerie, à partir des mesures de profondeur, un premier ensemble de bords candidats de façade ; générer, au niveau d'un détecteur d'images de l'unité de commande d'imagerie, à partir des données d'images, un deuxième ensemble de bords candidats de façade ; générer, au niveau d'un générateur de bords de l'unité de commande d'imagerie, un troisième ensemble de bords candidats de façade en combinant les premier et deuxième ensembles ; générer, au niveau du générateur de bords de l'unité de commande d'imagerie, pour chaque paire adjacente de bords candidats de façade dans le troisième ensemble de bords candidats de façade, une bord candidate de façade ; sélectionner, au niveau du générateur de bords de l'unité de commande d'imagerie, un sous-ensemble de bords de façade de sortie à partir des bords candidates de façade, sur la hase des indicateurs ROI ; et présenter, par le générateur de bords de l'unité de commande d'imagerie, une sortie de détection de façade de produit comportant le sous-ensemble sélectionné de bords de façade de sortie. [0018] La FIG. 1 décrit un système 100 d'automatisation mobile en conformité avec les en- seignements de cette divulgation. Le système 100 comporte un serveur 101 en communication avec au moins un appareil 103 d'automatisation mobile (également appelé ici simplement l'appareil 103) et au moins un dispositif informatique client 104, via des liaisons 105 de communication, illustrées dans le présent exemple comme comportant des liaisons sans fil. Dans le présent exemple, les liaisons 105 sont fournies par un réseau local sans fil (WLAN) déployé via un ou plusieurs points d'accès (non montrés). Dans d'autres exemples, le serveur 101, le dispositif client 104, ou les deux, sont situés à distance (c'est-à-dire en dehors de l'environnement dans lequel l'appareil 103 est déployé), et les liaisons 105 comportent, par conséquent, des réseaux étendus tels que 'Internet, les réseaux mobiles, et analogues. Le système 100 comporte également une station d'accueil 106 pour l'appareil 103 dans le présent exemple. La station (l'accueil 106 est en communication avec le serveur 101 via une liaison 107 qui, dans le présent exemple est une liaison filaire. Dans d'autres exemples cependant, la liaison 107 est une liaison sans fil. [0019] Le dispositif informatique client 104 est illustré clans la FIG. 1 comme un dispositif informatique mobile, tel qu'une tablette, un téléphone intelligent ou analogues. Dans d'autres exemples, le dispositif client 104 est mis en oeuvre comme un autre type de dispositif informatique, tel qu'un ordinateur de bureau, un ordinateur portable, un autre serveur, un kiosque, un moniteur, et analogues. Le système 100 peut comporter une pluralité de dispositifs clients 104 en communication avec le serveur 101 via des liaisons 105 respectives. [0020] Le système 100 est déployé, dans l'exemple illustré, dans une installation de vente au détail comportant une pluralité de structures de support telles que les modules de gondole 110-1, 110-2, 110-3, et ainsi de suite (collectivement appelés modules de gondole 110 ou gondoles 110, et désignés de manière générique par module de gondole 110 ou gondole 110 - cette nomenclature est également employée pour d'autres éléments abordés ici). Chaque module de gondole 110 supporte une pluralité de produits 112. Chaque module de gondole 110 comporte un fond de gondole 116-1, 116-2, 116-3 et une surface de support (par exemple, la surface de support 117-3 comme illustré dans la FIG. 1) s'étendant du fond de gondole 116 à un bord de gondole 118-1, 118-2, 118-3. [0021] Les modules de gondole 110 (également appelés sous-régions de l'installation) sont généralement agencés en une pluralité d'allées (également appelées régions de l'installation), dont chacune comporte une pluralité de modules 110 alignés de bout en bout. Dans ces aménagements, les bords de gondole 118 font face aux allées, dans lesquelles peuvent se déplacer les clients se trouvant dans l'installation de vente au détail, de même que l'appareil 103. Comme le montre la FIG. 1, le terme "bord de gondole" 118, tel qu'il est employé ici, qui peut également être désigné par le bord d'une surface de support (par exemple, les surfaces de support 117), fait référence à une surface délimitée par des surfaces adjacentes ayant des angles d'inclinaison différents. Dans l'exemple illustré dans la FIG. 1, le bord de gondole 118-3 est à un angle d'environ quatre-vingt-dix degrés par rapport à la surface de support 117-3 et par rapport à la face inférieure (non montrée) de la surface de support 117-3. Dans d'autres exemples, l'angle entre le bord de gondole 118-3 et les surfaces adjacentes, telles que la surface de support 117-3, est supérieur ou inférieur à quatre-vingt-dix degrés. [0022] L'appareil 103 est équipé d'une pluralité de capteurs 108 de navigation et de capture de données, tels que les capteurs d'images (par exemple, une ou plusieurs caméras numériques) et les capteurs de profondeur (par exemple, un ou plusieurs capteurs de détection et de télémétrie par la lumière (LIDAR), une ou plusieurs caméras de profondeur employant des motifs de lumière structurés, tels que la lumière infrarouge, ou analogues). L'appareil 103 est déployé au sein de l'installation de vente au détail et, via la communication avec le serveur 101 et l'utilisation des capteurs 108, navigue de manière autonome ou partiellement autonome sur une longueur 119 d'au moins une partie des gondoles 110. [0023] Tout en navigant parmi les gondoles 110, l'appareil 103 peut capturer des images, des mesures de profondeur et autres, représentant les gondoles 110 (globalement appelées données de gondole ou données capturées). La navigation peut être effectuée selon un cadre de référence 102 établi au sein de l'installation de vente au détail. L'appareil 103 suit donc sa posture (c'est-à-dire son emplacement et son orientation) dans le cadre de référence 102. [0024] Le serveur 101 comporte une unité de commande spécifique, telle qu'un processeur 120, spécialement conçue pour commander et/ou assister l'appareil 103 d'automatisation mobile dans sa navigation dans l'environnement et dans la capture des données. Le processeur 120 est également spécialement conçu, comme nous le verrons en détail dans le présent document, pour traiter des données d'images et des mesures de profondeur capturées par l'appareil 103 représentant les modules de gondole 110, afin de détecter des façades de produits sur les modules de gondole 110. 6 Comme pourront le constater les hommes de l'art, une façade de produit est une instance unique d'une façade de produit dans l'allée. Ainsi, si une surface de support 117 porte trois produits identiques adjacents l'un à l'autre, les produits représentent trois façades distinctes. Les façades de produits détectées qui en résultent peuvent être fournies à des mécanismes de détection de statut des produits (qui peuvent également être mis en oeuvre par le processeur 120 lui-même). [0025] Le processeur 120 est interconnecté avec un support de stockage lisible par or- dinateur non transitoire, tel qu'une mémoire 122. La mémoire 122 comporte une combinaison de mémoire volatile (par exemple une mémoire vive ou RAM) et de mémoire non volatile (par exemple une mémoire morte ou ROM, une mémoire morte programmable effaçable électriquement ou EEPROM, une mémoire Flash). Le processeur 120 et la mémoire 122 comprennent chacun un ou plusieurs circuits intégrés. Dans certains modes de réalisation, le processeur 120 est mis en oeuvre sous la forme d'une ou plusieurs unités centrales de traitement (UTC) et/ou unités de traitement graphique (UTG). [0026] La mémoire 122 stocke des instructions lisibles par ordinateur pour effectuer des fonctionnalités variées, comportant la commande de l'appareil 103 pour la navigation des modules 110 et la capture de données de gondole, ainsi que le post-traitement des données de gondole. L'exécution des instructions susmentionnées par le processeur 120 configure le serveur 101 pour effectuer les actions variées abordées ici. Les applications stockées dans la mémoire 122 comportent une application 124 de détection d'artefacts (également, appelée simplement l'application 124). En général, via l'exécution de l'application 124 ou de ses sous-composants, et en conjonction avec d'autres composants du serveur 101, le processeur 120 effectue des actions variées, pour détecter, dans des données d'images et des mesures de profondeur représentant les gondoles 110 (par exemple, des données capturées par l'appareil 103), des façades de produits individuelles, à utiliser dans un traitement en aval pour détecter des informations de statut de produit (par exemple, si des produits sont en rupture de stock, mal placés ou autres). [0027] La FIG. 1 montre certains exemples de composants de l'application 124 comportant un détecteur d'images 126 et un détecteur de profondeur 128. Les détecteurs d'image et de profondeur 126 et 128 détectent des bords de produits dans des images et des mesures de profondeur, respectivement, comme celles capturées par l'appareil 103. L'application 124 comporte également un générateur de bords 130 qui reçoit des bords détectés à partir des détecteurs 126 et 128, et qui génère des bords de façade de produit à partir des bords. Dans d'autres modes de réalisation, l'application 124 peut être mise en oeuvre sous la forme d'une suite d'applications logiquement distinctes, chacune mettant en oeuvre une partie appropriée de la fonctionnalité abordée ci-dessous. Par 7 exemple, les détecteurs 126 et 128, ainsi que le générateur de bords 130, peuvent être mis en oeuvre sous la forme d'applications distinctes. [0028] La mémoire 122 peut également stocker des données à utiliser dans la commande susmentionnée de l'appareil 103, telles qu'un répertoire 132 contenant une carte de l'environnement de la vente au détail et toute autre donnée appropriée (par exemple, les contraintes de fonctionnement à utiliser dans la commande de l'appareil 103, les données capturées par l'appareil 103, et analogues). [0029] Le processeur 120, tel qu'il est configure via l'exécution de l'application de commande 128, est également désigné ici par unité de commande 120 d'imagerie, ou simplement unité de commande 120. Comme cela sera mis en évidence, une partie ou la totalité des fonctionnalités mises en oeuvre par l'unité de commande 120 d'imagerie décrite ci-dessous peuvent également être effectuées par des unités de commande de matériel à usage spécial préconfigurécs (par exemple, un ou plusieurs agencements de circuits logiques configurés spécialement pour optimiser la vitesse de traitement d'images, par exemple via des FPGA et/ou des circuits intégrés à application spécifique (ASIC) configurés à cet effet), plutôt que par l'exécution de l'application 124 par le processeur 120. [0030] Le serveur 101 comporte également une interface de communication 134 inter- connectée avec le processeur 120. L'interface de communication 134 comporte un matériel approprié (par exemple, des émetteurs, des récepteurs, des unités de commande d'interface réseau et analogues) permettant au serveur 101 de communiquer avec d'autres dispositifs informatiques - notamment l'appareil 103, le dispositif client 104 et la station d'accueil 106 - via les liaisons 105 et 107. Les liaisons 105 et 107 peuvent être des liaisons directes, ou des liaisons qui traversent un ou plusieurs réseaux, comportant à la fois des réseaux locaux et étendus. Les composants spécifiques de l'interface de communication 134 sont sélectionnés en fonction du type de réseau ou d'autres liaisons par lesquels le serveur 101 doit communiquer. Dans le présent exemple, comme indiqué précédemment, un réseau local sans fil est mis en oeuvre au sein de l'installation de vente au détail via le déploiement d'un ou de plusieurs points d'accès sans fil. Les liaisons 105 comportent donc l'une ou l'autre des liaisons sans fil, ou les deux, entre l'appareil 103, le dispositif mobile 104 et les points d'accès susmentionnées, et une liaison filaire (par exemple, une liaison basée sur Ethernet) entre le serveur 101 et le point d'accès. [0031] Le processeur 120 peut donc obtenir des données capturées par l'appareil 103 via l'interface de communication 134 pour stockage (par exemple, dans le répertoire 132) et pour traitement ultérieur (par exemple, pour détecter des façades de produits, comme mentionné ci-dessus). Le serveur 101 peut également transmettre au dispositif client 104 des notifications de statut (par exemple, des notifications indiquant que des 8 produits sont en rupture de stock, en faible stock ou mal placés), en réponse à la détermination de données de statut de produit. Le dispositif client 104 comporte une ou plusieurs unités de commande (par exemple, des unités centrales de traitement (UTC) et/ou des réseaux pré-diffusés programmable par l'utilisateur (FPGA) et analogues) configuré pour traiter (par exemple, pour afficher) des notifications reçues à partir du serveur 101. [0032] S'agissant maintenant de la FIG. 2, l'appareil 103 d'automatisation mobile est montré de façon plus détaillée. L'appareil 103 comporte un châssis 201 contenant un ensemble de locomotion 203 (par exemple, une ou plusieurs roues motrices de moteurs électriques, des rails ou analogues). L'appareil 103 comporte en outre un mât 205 de capteur supporté sur le châssis 201 et, dans le présent exemple, s'étendant vers le haut (par exemple, sensiblement verticalement) à partir du châssis 201. Le mât 205 supporte les capteurs 108 mentionnés plus haut. En particulier, les capteurs 108 comportent au moins un capteur d'imagerie 207, tel qu'une caméra numérique. Dans le présent exemple, le mât 205 supporte sept caméras numériques 207-1 à 207-7, orientées de manière à faire face aux gondoles 110. [0033] Le mât 205 supporte également au moins un capteur de profondeur 209, tel qu'une caméra numérique 3D, capable de capturer à la fois des données de profondeur et des données d'images. L'appareil 103 comporte également des capteurs de profondeur supplémentaires, tels que des capteurs LIDAR 211. Dans le présent exemple, le niât 205 supporte deux capteurs LIDAR 211-1 et 211-2. Dans d'autres exemples, le mât 205 peut supporter des capteurs LIDAR 211 supplémentaires (par exemple, quatre LIDAR 211). Comme le montre la FIG. 2, les caméras 207 et les capteurs LIDAR 211 sont agencés sur un côté du mât 205, tandis que le capteur de profondeur 209 est agencé sur l'avant du mât 205. Autrement dit, le capteur de profondeur 209 est tourné vers l'avant (c'est-à-dire qu'il capture les données dans la direction de la circulation de l'appareil 103), tandis que les caméras 207 et les capteurs LIDAR 211 sont tournés vers le côté (c'est-à-dire qu'ils capturent les données le long de l'appareil 103, dans une direction perpendiculaire à la direction de circulation). Dans d'autres exemples, l'appareil 103 comporte des capteurs supplémentaires, tels qu'un ou plusieurs lecteurs RFID, capteurs de température, et analogues. [0034] Le mât 205 supporte également une pluralité d'ensembles d'éclairage 213, configurés pour éclairer les champs de vision des caméras 207 respectives. C'est-à-dire que l'ensemble d'éclairage 213-1 éclaire le champ de vision de la caméra 207-1, et ainsi de suite. Les caméras 207 et les LIDAR 211 sont orientés sur le mât 205 de sorte que les champs de vision des capteurs soient tom-nés chacun vers une gondole 110 sur la longueur 119 de laquelle se déplace l'appareil 103. Comme indiqué précédemment, l'appareil 103 est configuré pour suivre une posture de l'appareil 103 (par exemple, un 9 emplacement et une orientation du centre du châssis 201) dans le cadre de référence 102, ce qui permet d'enregistrer les données capturées par l'appareil 103 dans le cadre de référence 102 pour un traitement ultérieur. [0035] En se référant à la FIG. 3, certains composants de l'appareil 103 d'automatisation mobile sont montrés en plus des caméras 207, du capteur de profondeur 209, des LIDAR 211, et des ensembles d'éclairage 213 mentionnés ci-dessus. L'appareil 103 comporte une unité de commande spécifique, telle qu'un processeur 300, interconnectée avec un support de stockage lisible par ordinateur non transitoire, tel qu'une mémoire 304. La mémoire 304 comporte une combinaison appropriée de mémoire volatile (par exemple, une mémoire vive ou RAM) et de mémoire non volatile (par exemple, une mémoire morte ou ROM, une mémoire morte programmable effaçable électriquement ou EEPROM, une mémoire Flash). Le processeur 300 et la mémoire 304 comprennent chacun un ou plusieurs circuits intégrés. La mémoire 304 stocke des instructions lisibles par ordinateur pour exécution par le processeur 300. En particulier, la mémoire 304 stocke une application 308 de commande d'appareil qui, lorsqu'elle est exécutée par le processeur 300, configure le processeur 300 pour effectuer des fonctions variées liées à la navigation dans l'installation et à la commande des capteurs 108 pour capturer des données, par exemple en réponse à des instructions provenant du serveur 101. Les hommes de l'art apprécieront le fait que la fonctionnalité mise en oeuvre par le processeur 300 via l'exécution de l'application 308 peut également être mise en oeuvre par un ou plusieurs composants matériels et micrologiciels spécialement conçus, tels que les FPGA, les ASIC et analogues dans d'autres modes de réalisation. [0036] La mémoire 304 peut également stocker un répertoire 312, contenant par exemple une carte de l'environnement dans lequel fonctionne l'appareil 103, à utiliser pendant l'exécution de l'application 308. L'appareil 103 comporte également une interface de communication 316 permettant à l'appareil 103 de communiquer avec le serveur 101 (par exemple, via la liaison 105 ou via la station d'accuei1106 et la liaison 107), pour recevoir par exemple des instructions pour naviguer vers des emplacements spécifiés et initier des opérations de capture de données. [0037] En plus des capteurs mentionnés plus haut, l'appareil 103 comporte un capteur de mouvement 318, tel qu'un ou plusieurs odomètres à roue, couplé à l'ensemble de locomotion 203. Le capteur de mouvement 318 peut comporter également, en plus ou au lieu du/des odomètre(s) à roue susmentionné(s), une centrale à inertie (IMU) configurée pour mesurer une accélération le long d'une pluralité d'axes. [0038] Les actions effectuées par le serveur 101, et plus précisément par le processeur 120 tel que configuré via l'exécution de l'application 124, pour détecter les façades de produits à partir de données capturées représentant les gondoles 110 (par exemple, les images et les mesures de profondeur capturées par l'appareil 103) seront maintenant examinées de façon plus détaillée en se référant à la FIG. 4. La FIG. 4 illustre un procédé 400 de détection de façades de produits. Le procédé 400 sera décrit en conjonction avec son accomplissement dans le système 100, et en particulier par le serveur 101, en se référant aux composants illustrés dans la FIG. 1. Comme on le verra dans la discussion ci-dessous, dans d'autres exemples, une partie ou la totalité du traitement décrit ci-dessous comme étant effectué par le serveur 101 peut, en variante, être effectué par l'appareil 103. [0039] Les actions prises par le serveur 101 pendant l'accomplissement du procédé 400 mettent en oeuvre trois phases de traitement. Les première et deuxième phases peuvent être effectuées l'un par rapport à l'autre dans n'importe quel ordre (y compris simultanément). Dans la première phase, le serveur 101 (et plus précisément, le détecteur de profondeur 128) détecte des bords candidats de façade de produit à partir de mesures de profondeur, telles que celles capturées par la caméra de profondeur 209 ou les LIDAR 211. Dans ladeuxième phase, le serveur 101 (et plus précisément, le détecteur d'images 126) détecte des bords candidats de façade de produit à partir de données d'images, telles que les images capturées par les cameras 207. Dans la troisième phase, qui suit l'achèvement des première et deuxième phases, le serveur 101 (et plus précisément le générateur de bords 130) génère des bords de façade de produit en combinant et en traitant les façades de bord candidat à partir des premier et deuxième phases. [0040] Au bloc 405, correspondant à la première phase mentionnée ci-dessus, le serveur 101 obtient une pluralité de mesures de profondeur (qui peuvent également être désignées par nuage de points), par exemple en récupérant les mesures de profondeur dans la mémoire 122. Les mesures de profondeur peuvent avoir été préalablement capturées par l'appareil 103 et fournies au serveur 101, par exemple, via les liaisons 105 et/ou 107. Les mesures de profondeur sont supposées, dans le présent exemple, être définies par des coordonnées dans le cadre de référence 102. Dans d'autres exemples cependant, les mesures de profondeur peuvent être obtenues dans le format dans lequel elles ont été capturées avant l'enregistrement dans le cadre de référence 102 commun. En outre, comme mentionné ci-dessus, l'appareil 103 comporte plusieurs capteurs de profondeur (par exemple, les deux LIDAR 211 montrés dans la FIG. 2). Le processus décrit ci-dessous peut être répété de manière indépendante pour chaque ensemble de mesures de profondeur correspondant à un capteur de profondeur donné, et les résultats peuvent être enregistrés plus tard au cache de référence 102. [0041] Le serveur 101 récupère également, au bloc 405, un ensemble d'indicateurs de région d'intérêt (ROI) indiquant chacun une position d'une pluralité desdites façades de produits. Les indicateurs ROI peuvent également être désignés par blobs de produits, 11 puisque le serveur 101 peut générer les indicateurs ROI en effectuant une opération de détection appropriée de blobsur des images des modules de gondole 110. Les indicateurs ROI sont généralement des boîtes englobantes définies dans le cadre de référence 102. [0042] Au bloc 410 correspondant à la deuxième phase mentionnée ci-dessus, le serveur 101 obtient des données d'images sous la forme d'une ou de plusieurs images des modules de gondole 110, par exemple, capturées par l'appareil 103. Comme pour les mesures de profondeur mentionnées ci-dessus, les images n'ont pas besoin d'être enregistrées au cadre de référence 102 à ce moment-là, mais dans la discussion ci-dessous, les images sont supposées être enregistrées au cadre de référence 102 pour plus de clarté. Le serveur 101 récupère également les indicateurs ROI susmentionnés au bloc 410, puisque les indicateurs ROI sont employés à la fois dans les première et deuxième phases du procédé 400. [0043] S'agissant de la FIG. 5, des exemples des données d'entrées obtenues par le serveur 101 aux blocs 405 et 410 sont illustrés. Notamment, la FIG. 5 illustre un nuage de points 500 contenant une pluralité de mesures de profondeur représentant un module de gondole 110 qui supporte divers produits 112. Notamment, le nuage de points 500 représente deux façades d'un premier produit 112a, deux façades d'un deuxième produit 112b, et trois façades d'un troisième produit 112c. [0044] La FIG. 5 illustre également une image 504 du module de gondole 110 représenté par le nuage de points 500. L'image peut être par exemple une image RVB capturée par l'appareil 103 sensiblement simultanément à la capture du nuage de points 500. L'image 504 représente également (bien qu'en deux dimensions, plutôt qu'en trois dimensions) les bords de gondole 118, le fond de gondole 116, et les produits 112a, 112b et 112c comme nuage de points 500. Enfin, la FIG. 5 illustre un ensemble d'indicateurs ROI 508a, 508b et 508c indiquant des positions de blobs de produits détectés, par exemple, par le serveur 101 ou un autre dispositif informatique. La détection des indicateurs ROI peut être effectuée sur la base de n'importe quelle combinaison appropriée de mesures de profondeur et d'images, comportant le nuage de points 500 et l'image 504. Les indicateurs ROI sont illustrés en deux dimensions, mais peuvent être également définis en trois dimensions, selon le cadre de référence 102. Comme l'indique la FIG. 5, les indicateurs ROI 508 correspondent aux positions respectives des produits 112a, 112b et 112c, mais ne font pas la distinction entre les façades de produits individuelles montrées dans le nuage de points 500 et l'image 504. Les espaces entre les produits sur les gondoles 110 peuvent souvent être suffisamment petits pour que la détection des façades de produits individuelles, en l'absence des techniques de traitement décrites ci-dessous, soit inexacte ou trop coûteuse en calcul. [0045] Pour revenir à la FIG. 4, le premier phase du procédé 400 (la détection de bords 12 candidats de façade sur la base de la profondeur, telle qu'effectuée par le détecteur de profondeur 128) sera décrit avant une présentation de la deuxième phase (la détection de bords candidats de façade sur la hase de l'image, telle qu'effectuée par le détecteur d'images 126). Il sera toutefois entendu que l'ordre des premier et deuxième phases peut être facilement changé, et que les premier et deuxième phases peuvent également être effectués simultanément. [0046] Au bloc 415, le serveur 101 génère une carte de profondeur à partir du nuage de points 500 obtenu au bloc 405. La carte de profondeur est une représentation bidimensionnelle du nuage de points 500, dans laquelle chaque mesure de profondeur faisant face à l'allée (c'est-à-dire non occultée de l'allée par une autre mesure de profondeur) dans le nuage de points 500 se voit attribuer une intensité sur la hase de sa profondeur (c'est-à-dire sa dimension le long de l'axe Y du cadre de référence 102). La FIG. 6 illustre le nuage de points 500 ainsi que le cadre de référence 102, de même qu'une carte de profondeur 600 bidimensionnelle générée à partir du nuage de points 500 au bloc 415. Des valeurs d'intensité sont attribuées à la carte de profondeur 600 de sorte que les points ayant des profondeurs plus faibles (c'est-à-dire se trouvant plus près de l'allée et plus loin du fond de gondole 116) sont plus foncés, tandis que les points ayant des profondeurs plus importantes sont plus clairs. D'autres échelles d'intensité que celle illustrée dans la FIG. 6 peuvent également être employées (par exemple, les points se trouvant à de profondeurs plus importantes peuvent être plus clairs, tandis que les points se trouvant à des profondeurs plus faibles peuvent être plus foncés). [0047] Au bloc 415, le serveur 101 détecte également (les bords dans la carte de profondeur 600. La détection de bords au bloc 415 peut être effectuée en appliquant toute opération de détection appropriée de bords, ou toute combinaison d'opérations de détection de bords, à la carte de profondeur 600. Dans le présent exemple, le serveur 101 effectue la détection de bords au bloc 415 en appliquant un opérateur Sobel à la carte de profondeur 600, suivi d'une transformée de Hough. Comme pourront le constater les hommes de l'art, la transformée de Sobel met l'accent sur les zones de la carte de profondeur 600 qui présentent de forts dégradés (et qui sont donc susceptibles de représenter des bords). Dans des environnements complexes tels que ceux rencontrés dans un environnement de vente au détail, les résultats de l'opérateur Sobel peuvent être perturbés. La transformée de Hough est donc appliquée pour détecter des lignes continues à partir des bords potentiellement perturbés mis en évidence par l'opérateur Sobel. La transformée de Hough, dans le présent mode de réalisation, est configurée pour détecter uniquement les lignes verticales (ou les lignes dont l'orientation est comprise dans un seuil prédéfini de verticalité, comme 5 degrés), car les bords de façades de produits sont supposés être verticaux. [0048] La FIG. 7 illustre un exemple d'accomplissement de la détection de bords au bloc 13 415 via l'application d'un opérateur Sohel et d'une transformée de Hough à la carte de profondeur 600. Notamment, la sortie de l'opérateur Sohel est montrée dans une carte de profondeur traitée 700 (qui peut également être désignée par carte de profondeur à bords pondérés). Comme l'indique la carte de profondeur traitée 700, certains bords des produits 112 sont accentués par des intensités élevées (c'est-à-dire qu'ils sont plus clairs), tandis que les zones de la carte de profondeur 600 qui ne correspondent pas aux bords ont des intensités faibles (c'est-à-dire qu'elles sont plus foncées). [0049] La FIG. 7 illustre également un ensemble 704 de bords candidats de façade dérivés à partir de la carte de profondeur traitée 700 par application d'une transformée de Hough ou toute autre opération de détection appropriée de ligne. Notamment, l'ensemble 704 comporte des bords candidats de façade 708a correspondant aux produits 112a, des bords candidats de façade 708b correspondant aux produits 112b, et des bords candidats de façade 708e correspondant aux produits 112e. Cependant, comme le montre la FIG. 7, les bords candidats de façade 708a et 708h sont incomplets. Plus précisément, les bords intérieurs des produits (où chaque produit 112 est étroitement espacé par rapport à un autre produit 112) n'ont pas été détectés. En outre, l'ensemble 704 comporte un bord 712 qui ne représente aucun produit 112. Le bord 712 peut être un artefact, correspondre à un côté du module de gondole 110, ou autre. De plus, les bords candidats de façade 708h et 708e comportent des détections séparées de certains bords adjacents, comme la paire de bords 716. [0050] Pour en revenir à la FIG. 4, au bloc 420, le serveur 101 regroupe les bords candidats détectés au bloc 415, et filtre les bords candidats sur la base des indicateurs ROI 508. Par exemple, le serveur 101 peut déterminer, pour chaque paire de bords candidats, si la distance entre les bords est en dessous d'un seuil configurable. Si la détermination est positive, le serveur 101 convertit la paire de bords en un boni unique, par exemple, avec une position générée à partir de la moyenne de la paire. Ainsi, en se référant à nouveau à la FIG. 7, celle-ci montre un ensemble final 720 de bonis candidats dans lequel la détection de doublons de bords, comportant la paire 716, ont été regroupées en bords uniques. [0051] De plus, les indicateurs ROI 508 sont superposés à l'ensemble 720 de bords candidats. Au bloc 420, le serveur 101 évalue si un bord quelconque de l'ensemble 704 de bords candidats ne tombe pas dans un indicateur ROI 508. Tout bord qui ne tombe pas dans un indicateur ROI 508 est rejeté, puisque les indicateurs ROI 508 indiquent la présence de produits 112, et les bords en dehors des indicateurs ROI 508 ne sont donc pas des bords liés à des produits. Le bord 712 a donc été retiré de l'ensemble 720. [0052] Après l'achèvement du bloc 420, le détecteur de profondeur 128 fait passer l'ensemble final 720 de bords candidats de façade du premier phase au générateur de bords 130 pour un traitement supplémentaire. Avant d'examiner plus en détail le gé- 14 nérateur de bords 130, le deuxième phase du procédé 400 sera toutefois examiné ci-dessous. [0053] Pour en revenir à la FIG. 4, le deuxième phase commence au bloc 410 décrit plus haut. Après avoir obtenu l'image 504 et les indicateurs ROI 508 au bloc 410, au bloc 425, le serveur 101 est configure pour sélectionner une pluralité de fenêtres de classification à partir de l'image 504, sur la base des indicateurs ROI 508. Le serveur 101 classe ensuite chacune des fenêtres sélectionnées, soit comme contenant un bord de produit, soit comme ne contenant pas de bord de produit. [0054] S'agissant de la FIG. 8, le processus de sélection et de classification des fenêtres au bloc 425 est illustré. Notamment, le serveur 101 sélectionne d'abord les régions 800a, 800h et 800c de l'image 504 dans les indicateurs ROI 508. En d'autres termes, les régions de l'image 504 en dehors des indicateurs ROI 508 ne sont pas traitées au bloc 425. Après avoir sélectionné les régions 800, le serveur 101 divise chaque région 800 en une pluralité de fenêtres 804a, 804b, 804c. Chaque fenêtre a une hauteur égale à la hauteur de la région 800 correspondante, et une largeur égale à une largeur de fenêtre configurablc (par exemple, stockée dans la mémoire 122). Les fenêtres 804 se chevauchent, comme le montre la FIG. 8, de sorte que chaque partie d'une région 800 donnée apparaisse dans plusieurs fenêtres. [0055] Chaque fenêtre 804 est classée comme contenant ou ne contenant pas un bord de façade de produit en fournissant la fenêtre 804 à un classificateur, tel qu'un réseau de neurones convolutif (CNN) préalablement entraîné ou tout autre classificateur approprié. Comme on le verra, le classificateur est préalablement entraîné sur la base d'un ensemble d'entraînement d'images, par exemple, avec des exemples positifs et négatifs étiquetés de fenêtres contenant (ou ne contenant pas) des bords de façade de produit. Le classificateur renvoie, pour chaque fenêtre, une indication binaire permettant de savoir si la fenêtre contient ou non un bord de façade de produit. [0056] Comme nous allons le voir à présent, le chevauchement des fenêtres 804 fait que chaque bord de façade de produit est détecté dans plusieurs fenêtres. Par exemple, la FIG. 8 illustre trois fenêtres 804a-1, 804a-2 et 804a-3 qui contiennent chacune le bord 808 entre les produits 112a. Au bloc 430, le serveur 101 regroupe donc des groupes de fenêtres 804 qui se chevauchent et qui ont été classées comme contenant des bords, en supposant qu'un groupe de fenêtres 804 qui se chevauchent et qui sont classées comme contenant des bords contiennent probablement toutes le même bord. [0057] Plus précisément, comme le montre la FIG. 8, le serveur 101 sélectionne une seule position pour le bord 808, par exemple, en générant un profil d'intensité 812 correspondant à la partie de l'image 504 dans la zone combinée des fenêtres 804a-1, 804a-2 et 804a-3. Le serveur 101 sélectionne ensuite, comme position pour le bord, la position de l'intensité minimale 816 dans le profil d'intensité 812 (c'est-à-dire le point le plus foncé dans le profil d'intensité). Le processus ci-dessus est répété pour chacune des région 800, et le serveur 101 génère ainsi un ensemble final 820 de bords candidats de façade. Comme le montre la FIG. 8, l'ensemble 820 comporte les bords qui n'ont pas été détectés avec succès via le phase basé sur la profondeur examiné plus haut, niais il ne comporte pas les bords correspondant aux côtés le plus à droite des produits 112h et 112e, qui devraient apparaître dans les zones 824 et 828. [0058] Après l'achèvement du bloc 430, le détecteur d'images 126 fait passer l'ensemble final 820 de bords candidats de façade du premier phase au générateur de bords 130 pour un traitement supplémentaire. En se référant à nouveau à la FIG. 4, au bloc 435, le générateur de bords 130 combine les ensembles finaux 720 et 820 de bords candidats de façade à partir des détecteurs 126 et 128 (c'est-à-dire à partir des premier et deuxième phases du procédé 400 énoncés ci-dessus). Le générateur de bords 130 regroupe également des bords candidats de façade, par exemple en écrasant en un bord unique toute paire de bords se trouvant à une distance seuil l'un de l'autre. [0059] S'agissant de la FIG. 9, les premier et deuxième ensembles finaux 720 et 820 de bords candidats de façade sont montrés (l'ensemble 720 étant représenté par des lignes en pointillés pour le distinguer des bords de l'ensemble 820), avec un ensemble 900 combiné comportant tous les bords provenant des deux ensembles 720 et 820. La FIG. 9 illustre également un ensemble 920 combiné et groupé suite au regroupement des bords comme indiqué ci-dessus. [0060] S'agissant à nouveau de la FIG. 4, au bloc 440, le serveur 101 génère des bonis candidates de façade. Dans le présent mode de réalisation, les bords candidates de façade sont des boîtes englobantes générées par l'extension de segments horizontaux entre les extrémités supérieure et inférieure de chaque paire adjacente de bords candidats de façade. Autrement dit, la paire adjacente de bords candidats forme les côtés d'une boni candidate, tandis que les segments horizontaux susmentionnés forment le haut et le bas de la bord candidate. [0061] S'agissant de la FIG. 10, l'ensemble 920 combiné et groupé de bords candidats est montré avec les segments horizontaux susmentionnés. En d'autres termes, le serveur 101 a généré huit bords candidates de façade 1000-1, 1000-2, 1000-3, 1000-4, 1000-5, 1000-6, 1000-7, et 1000-8. Cependant, comme on le verra à partir d'une comparaison de la FIG. 10 avec la FIG. 5, certaines bords candidates de façade ne correspondent pas aux produits réels 112 Afin de supprimer ces faux positifs, au bloc 445, le serveur 101 détermine si chaque bord candidate de façade 1000 se trouve dans un indicateur ROI 508. La bord candidate de façade 1000 n'a pas besoin de se trouver entièrement dans un indicateur ROI. Par exemple, le serveur 101 peut appliquer un seuil de chevauchement au bloc 445, de sorte que la détermination au bloc 445 soit positive lorsqu'au moins 90% de la bord candidate de façade 1000 se trouve dans un indicateur 16 ROT 508. Une grande variété d'autres seuils peuvent également être employés au bloc 445. [0062] Lorsque la détermination au bloc 445 est négative, la bord candidate de façade 1000 est rejetée au bloc 450. Lorsque la détermination au bloc 445 est positive cependant, indiquant que la bord candidate de façade 1000 est valide (c'est-à-dire qu'elle représente un produit réel 112), la bord candidate de façade 1000 est maintenue au bloc 455. Au bloc 460, le serveur 101 complète la détection de façades de produits en délivrant les bords candidates de façade 1000 validées (c'est-à-dire celles pour lesquelles la détermination au bloc 445 était positive). Le serveur 101 peut effectuer le bloc 460, en stockant par exemple les bords candidates de façade 1000 validées systématiquement dans le répertoire 132. Chaque bord candidate de façade 1000 est stockée sous la forme d'une boîte englobante définie dans le cadre de référence 102. La FIG. 10 montre un ensemble final 1020 de bords de façade de sortie, à l'exclusion des bords 1000-3 et 1000-7, qui ne tombent dans aucun des indicateurs ROI 508. [0063] Au bloc 460, le générateur de bords 130 peut également fournir les bords candidates de façade 1000 validées à d'autres processus en aval, qu'ils soient exécutés par le serveur 101 ou par un autre dispositif informatique. Des exemples de ces processus en aval comportent les détecteurs d'espaces vides (permettant de détecter des espaces vides entre des façades, indicatifs de produits en rupture de stock) et analogues. Le générateur de bords 130 peut également commander un dispositif d'affichage connecté au serveur 101 pour présenter l'ensemble de sortie de bords de façades. En d'autres termes, le générateur de bords 130 complète la détection de façades de produits en présentant une sortie de détection de façade de produit qui comporte les bords candidates de façade 1000 validées. [0064] Dans la spécification précédente, des modes de réalisation spécifiques ont été décrits. Cependant, une personne de compétence ordinaire dans l'art sait que diverses modifications et changements peuvent être apportés sans s'écarter de la portée de l'invention, telle qu'exposée dans les revendications ci-dessous. En conséquence, la spécification et les figures doivent être considérées dans un sens illustratif plutôt que restrictif, et toutes ces modifications sont destinées à être incluses dans la portée des présents enseignements. [0065] Les bénéfices, les avantages, les solutions aux problèmes, et tout élément qui peut faire apparaître ou accentuer tout bénéfice, avantage, ou solution ne doivent pas être interprétés comme des caractéristiques ou des éléments cruciaux, nécessaires, ou essentiels de l'une quelconque ou de toutes les revendications. L'invention est définie uniquement par les revendications annexées, y compris toute modification apportée pendant l'existence de la présente demande et tous les équivalents de ces revendications tels que délivrés. 17 [0066] De plus, dans cc document, des ternies relationnels tels que premier et deuxième, haut et fond, et analogues, peuvent être utilisés uniquement pour distinguer une entité ou une action d'une autre entité ou action, sans nécessairement exiger ou impliquer une relation ou un ordre réel entre ces entités ou actions. Le termes "comprend," "comprenant," "a", "ayant", "comporte", "comportant", "contient", "contenant" ou toute autre variante de ces ternies, sont destinés à couvrir une inclusion non exclusive, de sorte qu'un processus, procédé, article, ou appareil qui comprend, a, comporte, contient une liste d'éléments ne comporte pas seulement ces éléments, mais peut comporter d'autres éléments qui ne sont pas expressément énumérés ou inhérents à ce processus, procédé, article, ou appareil. Un élément précédé de "comprend ...un", "a ... un ", "comporte ... un ", "contient ... un " n'exclut pas, sans plus de contraintes, l'existence d'autres éléments identiques dans le processus, procédé, article, ou appareil qui comprend, a, comporte, contient l'élément. Les ternies "un/une/des" sont définis comme singuliers ou pluriels, sauf indication contraire explicite dans le présent document. Les ternies "sensiblement", "essentiellement", "approximativement", "environ" ou toute autre version de ces termes, sont définis comme étant proches de cc que comprend une personne de compétence ordinaire dans l'art, et dans un mode de réalisation non limitatif, le terme est défini à 10 % près, dans un autre mode de réalisation à 5% près, dans un autre mode de réalisation à 1% près et dans un autre mode de réalisation à 0,5% près. Le terme "couplé" tel qu'il est utilisé ici est défini comme étant relié, mais pas nécessairement directement et pas nécessairement mécaniquement. Un dispositif ou une structure qui est "configuré" d'une certaine manière est configuré au moins de cette manière, mais peut également être configuré dans des manières qui ne sont pas énumérées. [0067] Il sera apprécié que certains modes de réalisation puissent être constitués d'un ou de plusieurs processeurs spécialisés (ou "dispositifs de traitement") tels que des microprocesseurs, des processeurs de signaux numériques, des processeurs personnalisés et des réseaux pré-diffusés programmables par l'utilisateur (FPGA) et des instructions de programme stockées uniques (comportant à la fois le logiciel et le micrologiciel) qui commandent le ou les processeurs pour mettre en oeuvre, conjointement avec certains circuits non processeurs, certaines, la plupart ou toutes les fonctions du procédé et/ou appareil décrits ici. En variante, une partie ou la totalité des fonctions pourraient être mises en oeuvre par une machine d'état qui n'a pas d'instructions de programme stockées, ou dans un ou plusieurs circuits intégrés à application spécifique (ASIC), dans lesquels chaque fonction ou certaines combinaisons de certaines des fonctions sont mises en oeuvre comme une logique personnalisée. Bien entendu, une combinaison des deux approches pourrait être utilisée. [0068] De plus, un mode de réalisation peut être mis en oeuvre en tant que support de 18 stockage lisible par ordinateur sur lequel est stocké un code lisible par ordinateur, pour programmer un ordinateur (par exemple, comprenant un processeur), afin d'effectuer un procédé tel que décrit et revendiqué dans le présent document. Des exemples de tels supports de stockage lisibles par ordinateur comportent, sans s'y bordr, un disque dur, un CD-ROM, un dispositif de stockage optique, un dispositif de stockage magnétique, une ROM (mémoire morte), une PROM (mémoire morte programmable), une EPROM (mémoire morte programmable effaçable), une EEPROM (mémoire morte programmable effaçable électriquement) et une mémoire Flash. En outre, on s'attend à ce qu'une personne de compétence ordinaire, en dépit d'efforts éventuellement importants et de nombreux choix de conception motivés, par exemple, par le temps disponible, la technologie actuelle et des considérations économiques, lorsqu'elle est guidée par les concepts et les principes divulgués dans le présent document, soit capable de générer facilement ces instructions et programmes logiciels et ces Cl avec un minimum d'expérimentation. [0069] L'abrégé de la divulgation est fourni pour permettre au lecteur de déceler rapidement la nature de la divulgation technique. Il est soumis avec la compréhension qu'il ne sera pas utilisé pour interpréter ou bordr la portée ou la signification des revendications. En outre, dans la description détaillée qui précède, on peut voir que diverses caractéristiques sont regroupées sous divers modes de réalisation afin de rationaliser la divulgation. Ce procédé de divulgation ne doit pas être interprété comme reflétant une intention selon laquelle les modes de réalisation revendiqués nécessitent plus de caractéristiques que celles qui sont expressément énumérées dans chaque revendication. Au contraire, comme le reflètent les revendications suivantes, l'objet inventif réside dans moins que toutes les caractéristiques d'un seul mode de réalisation divulgué. Les revendications suivantes sont donc incorporées dans la description détaillée, chaque revendication étant considérée comme un objet revendiqué séparément. 19 [Revendication 1] [Revendication 2] REVENDICATIONSProcédé (400) de détection de façades de produits par une unité dc commande d'imagerie (120), à partir de données d'image et de profondeur capturées, le procédé (400) comprenant les étapes consistant à: - obtenir (405, 410), sur l'unité de commande d'imagerie (120) : (i) des mesures dc profondeur provenant d'au moins un capteur de profondeur, les mesures de profondeur représentant une structure de support supportant une pluralité de façades de produits, (ii) des données d'images provenant d'au moins un capteur d'images, les données d'images représentant la structure de support, et (iii) un ensemble d'indicateurs de région d'intérêt (ROI), chaque indicateur ROI indiquant une position d'une pluralité desdites façades de produits ; .générer, par un détecteur de profondeur de l'unité de commande d'imagerie (120), à partir des mesures de profondeur, un premier ensemble de bords candidats de façade ; .générer, par un détecteur d'images de l'unité de commande d'imagerie (120), à partir des données d'images, un deuxième ensemble de bords candidats de façade ; .générer, par un générateur de bords de l'unité de commande d'imagerie (120) : (i) un troisième ensemble de bords candidats de façade en combinant les premier et deuxième ensembles, et (ii) un bord candidate de façade pour chaque paire adjacente de bords candidats de façade dans le troisième ensemble de bords candidats de façade ; .sélectionner, par le générateur de bords de l'unité de commande d'imagerie (120), un sous-ensemble de bords de façade de sortie à partir des bords candidates de façade, sur la base des indicateurs ROI ; et .détecter, par le générateur de bords de l'unité de commande d'imagerie (120), des façades de produits comportant le sous-ensemble sélectionné de bords de façade de sortie. Procédé (400) selon la revendication 1, dans lequel la génération du premier ensemble de bords candidats de façade comporte : .la génération d'une carte bidimensionnelle de profondeur à partir des mesures de profondeur ; et .la détection de bords dans la carte de profondeur. 20 [Revendication 3] [Revendication 4] [Revendication 5] [Revendication 6] [Revendication 7] [Revendication 8] [Revendication 9] [Revendication 10] Procédé (400) selon la revendication 2, dans lequel la détection de bords dans la carte de profondeur comporte : .l'application d'une opération de détection de bords à la carte de profondeur, pour générer une carte de profondeur à bords pondérés ; et .l'application d'une opération de détection de ligne à la carte de profondeur à bords pondérés. Procédé (400) selon la revendication 3, comprenant en outre l'étape consistant à rejeter des bords candidats du premier ensemble qui ne se trouvent pas dans un indicateur ROI. Procédé (400) selon la revendication 1, dans lequel la génération du deuxième ensemble de bords candidats de façade comporte : .la sélection d'une pluralité de fenêtres à partir des données d'images ; et .la classification de chaque fenêtre en l'une parmi une fenêtre contenant un bord et une fenêtre ne contenant pas de bord. Procédé (400) selon la revendication 5, comprenant en outre l'étape consistant à : .déterminer une position de chaque bord candidat de façade du deuxième ensemble sur la hase d'un profil d'intensité d'une fenêtre correspondante des fenêtres. Procédé (400) selon la revendication 1, dans lequel la combinaison des premier et deuxième ensembles de bords candidats de façade comporte : .pour chaque paire de bords candidats de façade adjacents, la détermination, à savoir si une distance séparant ladite paire est en dessous d'un seuil ; .lorsque la distance séparant ladite paire est en dessous du seuil, le remplacement de ladite paire par un bord candidat de façade unique. Procédé (400) selon la revendication 1, dans lequel la génération des bords candidates de façade comporte : .la jonction d'extrémités supérieures de la paire adjacente du troisième ensemble de bords candidats de façade avec un segment de bord supérieure ; et .la jonction d'extrémités inférieures de la paire adjacente du troisième ensemble de bords candidats de façade avec un segment de bord inférieure. Procédé (400) selon la revendication 1, dans lequel la sélection du sous-ensemble de bords de façade de sortie comporte le rejet des bords candidates de façade en dehors des indicateurs ROI. Dispositif informatique, comprenant : 21 [Revendication 11] [Revendication 12] .une mémoire stockant : (i) des mesures de profondeur provenant d'au moins un capteur de profondeur, les mesures de profondeur représentant une structure de support supportant une pluralité de façades de produits, (ii) des données d'images provenant d'au moins un capteur d'images, les données d'images représentant la structure de support, et (iii) un ensemble d'indicateurs de région d'intérêt (ROI), chaque indicateur ROI indiquant une position d'une pluralité desdites façades de produits ; .une unité de commande d'imagerie (120) disposant : ..d'un détecteur de profondeur configure pour : ...obtenir les données d'images et les indicateurs ROI ; et ...générer, à partir des mesures de profondeur, un premier ensemble de bords candidats de façade ; ..d'un détecteur d'images configuré pour : ...obtenir les données d'images et les indicateurs ROI ; et ...générer, à partir des données d'images, un deuxième ensemble de bords candidats de façade ; et ..d'un générateur de bords configuré pour : ...générer un troisième ensemble de bords candidats de façade en combinant les premier et deuxième ensembles ; ...générer une bord candidate de façade pour chaque paire adjacente de bords candidats de façade dans le troisième ensemble de bords candidats de façade ; ...sélectionner un sous-ensemble de bords de façade de sortie à partir des bords candidates de façade, sur la base des indicateurs ROI ; et ...détecter des façades de produits comportant le sous-ensemble sélectionné de bords de façade de sortie. Dispositif informatique selon la revendication 10, dans lequel, afin de générer le premier ensemble de bords candidats de façade, le détecteur de profondeur est configuré pour : .générer une carte bidimensionnelle de profondeur à partir des mesures de profondeur ; et .détecter des bords dans la carte de profondeur. Dispositif informatique selon la revendication 11, dans lequel, afin de détecter des bords dans la carte de profondeur, le détecteur de profondeur est configuré pour : .appliquer une opération de détection de bords à la carte de profondeur, pour générer une carte de profondeur à bords pondérés ; et .appliquer une opération de détection de ligne à la carte de profondeur à [Revendication 13] bords pondérés. [Revendication 14] Dispositif informatique selon la revendication 12, dans lequel le détecteur de profondeur est en outre configure pour rejeter des bords candidats du premier ensemble qui ne se trouvent pas dans un indicateur ROI. [Revendication 15] Dispositif informatique selon la revendication 10, dans lequel, afin de générer le deuxième ensemble de bords candidats de façade, le détecteur d'images est configuré pour : [Revendication 16] .sélectionner une pluralité de fenêtres à partir des données d'images ; et classer chaque fenêtre en l'une parmi une fenêtre contenant un bord et une fenêtre ne contenant pas de bord. [Revendication 17] Dispositif informatique selon la revendication 14, dans lequel le détecteur d'images est en outre configuré pour déterminer une position de chaque bord candidat de façade du deuxième ensemble sur la base d'un profil d'intensité d'une fenêtre correspondante des fenêtres. Dispositif informatique selon la revendication 10, dans lequel, afin de combiner les premier et deuxième ensembles de bords candidats de façade, le générateur de bords est configuré pour : [Revendication 18] .pour chaque paire de bords candidats de façade adjacents, déterminer si une distance séparant ladite paire est en dessous d'un seuil ; [Revendication 19] .lorsque la distance séparant ladite paire est en dessous du seuil, remplacer ladite paire par un bord candidat de façade unique. Dispositif informatique selon la revendication 10, dans lequel, afin de générer les bords candidates de façade, le générateur de bords est configuré pour : joindre des extrémités supérieures de la paire adjacente du troisième ensemble de bords candidats de façade avec un segment de bord supérieure ; et joindre des extrémités inférieures de la paire adjacente du troisième ensemble de bords candidats de façade avec un segment de bord inférieure. Dispositif informatique selon la revendication 10, dans lequel, afin de sélectionner le sous-ensemble de bords de façade de sortie, le générateur de bords est configuré pour rejeter les bords candidates de façade en dehors des indicateurs ROI. Support non transitoire lisible par ordinateur stockant des instructions exécutables par une unité de commande d'imagerie (120) pour configurer l'unité de commande d'imagerie (120) pour : 23 .obtenir (i) des mesures de profondeur provenant d'au moins un capteur de profondeur, les mesures de profondeur représentant une structure de support supportant une pluralité de façades de produits, (ii) des données d'images provenant d'au moins un capteur d'images, les données d'images représentant la structure de support, et (iii) un ensemble d'indicateurs de région d'intérêt (ROT), chaque indicateur ROT indiquant une position d'une pluralité desdites façades de produits ; .générer, au niveau d'un détecteur de profondeur de l'unité de commande d'imagerie, à partir des mesures de profondeur, un premier ensemble de bords candidats de façade ; générer, au niveau d'un détecteur d'images de l'unité de commande d'imagerie, à partir des données d'images, un deuxième ensemble de bords candidats de façade ; générer, au niveau d'un générateur de bords de l'unité de commande d'imagerie, un troisième ensemble de bords candidats de façade en combinant les premier et deuxième ensembles ; générer, au niveau du générateur de bords de l'unité de commande d'imagerie, pour chaque paire adjacente de bords candidats de façade dans le troisième ensemble de bords candidats de façade, une bord candidate de façade .sélectionner, au niveau d'un générateur de bords de l'unité de commande d'imagerie, un sous-ensemble de bords de façade de sortie à partir des bords candidates de façade, sur la base des indicateurs ROI ; et détecter, par le générateur de bords de l'unité de commande d'imagerie, des façades de produits comportant le sous-ensemble sélectionné de bords de façade de sortie.