Brevet FR3096787A1 — publié le 20201204

Description Titre de l'invention : Procédé, système et appareil pour la détection d'espaces vides dans des structures de support dotées de régions de broches Arrière-plan 100011 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 analogues, permettent de stocker ces objets dans des régions telles que les allées de structures de support (par exemple, des modules de gondole). 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 des colis ou des palettes. Un appareil d'automatisation mobile peut être déployé dans ces installations pour effectuer des tâches à différents endroits. Par exemple, un appareil d'automatisation mobile peut être déployé pour capturer des données représentant une allée dans une installation de vente au détail, afin de les utiliser pour identifier des informations de statuts de produits. Les structures de support dans l'installation peuvent toutefois présenter des caractéristiques structurelles variables, cc qui peut réduire la précision de la détermination de statuts de produits. Brève description des différentes vues des dessins [0002] 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. [0003] [fig.1] est un schéma d'un système d'automatisation mobile. [0004] [fig.2] représente un appareil d'automatisation mobile dans le système de la FIG. 1. [0005] [fig.3] est un schéma de principe de certains composants internes de l'appareil d'automatisation mobile dans le système de la FIG. 1. [0006] [fig.4] est un organigramme d'un procédé de détection d'espaces vides sur des structures de support dans le système de la FIG. 1. [0007] [fig.5] est un diagramme illustrant des exemples de données d'entrées pour le procédé de la FIG. 4. [0008] [fie.6] est un organigramme d'un procédé de réalisation du bloc 410 du procédé de la FIG. 4. [0009] [fie.7] est un diagramme illustrant l'accomplissement des blocs 610, 615 et 620 du 2 procédé de la FIG. 6. [0010] [fig.8] est un organigramme d'un procédé de réalisation du bloc 415 du procédé de la FIG. 4. [0011] [fig.9] est un diagramme illustrant des exemples d'accomplissement du procédé de la FIG. 8. [0012] [fig.10] est un diagramme illustrant un ensemble de résultats du procédé de la FIG. 8. [0013] [fig.1 1] est un organigramme d'un procédé de réalisation du bloc 420 du procédé de la FIG. 4. [0014] [fig.12] est un diagramme illustrant l'accomplissement du procédé de la FIG. 11. [0015] 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. [0016] 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 [0017] Les exemples présentés ici concernent un procédé de détection d'espaces vides sur une structure de support, le procédé comprenant les étapes consistant à : obtenir, sur une unité de commande d'imagerie, (i) une pluralité de mesures de profondeur représentant la structure de support selon un cadre commun de référence, et (ii) une pluralité d'indicateurs d'étiquette, définissant chacun une position d'étiquette dans le cadre commun de référence ; pour chacun des indicateurs d'étiquettes : classer l'indicateur d'étiquette, soit comme étiquette de broche, soit comme étiquette de gondole, sur la hase d'une partie des mesures de profondeur sélectionnées selon la position d'étiquette, et d'une partie des mesures de profondeur adjacentes à la position d'étiquette ; générer un espace de recherche d'article dans le cadre commun de référence, selon la classe de l'indicateur d'étiquette ; et déterminer, sur la base d'un sous-ensemble des mesures de profondeur au sein de l'espace de recherche d'article, si l'espace de recherche d'article contient un article. [0018] D'autres exemples présentés ici concernent un dispositif informatique comprenant : une mémoire stockant (i) une pluralité de mesures de profondeur représentant une structure de support selon un cadre commun de référence, et (ii) une pluralité 3 d'indicateurs d'étiquette, définissant chacun une position d'étiquette dans le cadre commun de référence ; une unité de commande d'imagerie configurée, pour chacun des indicateurs d'étiquette, pour : classer l'indicateur d'étiquette, soit comme étiquette de broche, soit comme étiquette de gondole, sur la hase d'une partie des mesures de profondeur sélectionnées selon la position d'étiquette, et d'une partie des mesures de profondeur adjacentes à la position d'étiquette ; générer un espace de recherche d'article dans le cadre commun de référence, selon la classe de l'indicateur d'étiquette ; et déterminer, sur la hase d'un sous-ensemble des mesures de profondeur au sein de l'espace de recherche d'article, si l'espace de recherche d'article contient un article. [0019] 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 l'internet, les réseaux mobiles, et analogues. Le système 100 comporte également une station 106 pour l'appareil 103 dans le présent exemple. La station 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. [0020] Le dispositif informatique client 104 est illustré dans 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. [0021] 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é d'articles, également appelés ici 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 dc support 117-3 comme illustré dans la FIG. 1) s'étendant du fond de gondole 116 à un bord dc gondole 118-1, 118-2, 118-3. Comme nous le verrons plus loin, les modules de gondole 110 peuvent également comporter des zones dans lesquelles les produits 112 sont supportés par des broches s'étendant à partir du fond de gondole 116, plutôt que par les surfaces de support 117. [0022] 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 dc support 117-3. Dans d'autres exemples, les angles 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. [0023] 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. [0024] 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. [0025] Le serveur 101 comporte une unité de commande à usage spécial, 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 les données d'image et les mesures de profondeur capturées par l'appareil 103 représentant les modules de gondole 110, afin de détecter des espaces vides sur les modules de gondole 110 où les produits 112 devraient apparaître, mais où ils n'apparaissent pas actuellement (c'est-à-dire indiquant qu'un produit peut être en rupture de stock). Les espaces vides détectés qui en résultent peuvent être fournis à des mécanismes de traitement de statut des produits (qui peuvent également être mis en oeuvre par le processeur 120 lui-même). [0026] 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). [0027] 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'espaces vides (é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 mesures de profondeur représentant les gondoles 110 (par exemple, des données capturées par l'appareil 103) des espaces vides indicatifs de produits 112 qui sont en rupture de stock, à utiliser dans un traitement en aval pour détecter des informations de statut de produit et agir en fonction de celles-ci. [0028] Certains exemples de composants de l'application 124 montrés dans la FIG. 1 comportent un classificateur d'étiquette 126. Le classificateur d'étiquette 126 attribue des classifications à des indicateurs d'étiquettes reçus en entrée à l'application 124. Plus précisément, le classificateur 126 détermine si chaque indicateur d'étiquette correspond à une étiquette montée sur gondole ou à une étiquette montée sur broche. Comme pourront le constater les hommes de l'art, la mise en place des produits 112 par rapport à des étiquettes correspondantes dans l'installation varie selon que les 6 produits 112 ont pour support les surfaces de support 117 ou les broches. La classification des étiquettes comme étiquettes de broche ou de gondole permet au serveur 101 de sélectionner les régions appropriées des données capturées associées à chaque étiquette afin de détecter les espaces vides. [0029] L'application 124 comporte également un générateur d'espace de recherche pour sé- lectionner les régions susmentionnées, dans lesquelles le serveur 101 doit rechercher des espaces vides, et un détecteur d'espaces vides 130 pour déterminer si des espaces vides sont présents dans les régions. 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 exemple, le classificateur 126, le générateur d'espace de recherche 128, et le détecteur d'espaces vides 130 peuvent être mis en oeuvre sous la forme d'applications distinctes. [0030] 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). [0031] Le processeur 120, tel qu'il est configuré 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ées (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. [0032] 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 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, 7 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. [0033] 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 une mise en avant 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 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écs pour traiter (par exemple, pour afficher) les notifications reçues à partir du serveur 101. [0034] 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 de capteur 205 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. [0035] 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'image L'appareil 103 comporte également des capteurs de profondeur supplémentaires, tels que des capteurs LIDAR211. Dans le présent exemple, le mâ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é 8 (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 (dentification par radiofréquence), capteurs de température, et analogues. [0036] 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 tourné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 configure pour suivre une posture de l'appareil 103 (par exemple, un 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. [0037] 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 à usage spécial, 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. [0038] 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 9 (par exemple, via la liaison 105 ou via la station 106 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. [0039] 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 odornetre(s) à roue susmentionné(s), une centrale à inertie (TIV1U) configurée pour mesurer une accélération le long d'une pluralité d'axes. [0040] 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 classer des indicateurs d'étiquettes et détecter des espaces vides à partir de données capturées représentant les gondoles 110 (par exemple, 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 d'espaces vides. 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. [0041] Commençant au bloc 405, le serveur 101 obtient une pluralité de mesures de profondeur (c'est-à-dire un nuage de points) représentant une structure de support telle qu'un ou plusieurs des modules de gondole 110 susmentionnés. Les mesures de profondeur peuvent être récupérées à partir de la mémoire 122 (par exemple à partir du répertoire 132), ayant été préalablement stockées sur le serveur 101 à la suite de leur réception à partir de l'appareil 103. Les mesures de profondeur représentent la position, en trois dimensions (par exemple selon le cadre de référence 102), d'une pluralité d'emplacements sur la structure de support. [0042] Le serveur 101 obtient également, au bloc 405, une pluralité d'indicateurs d'étiquette. Les indicateurs d'étiquettes définissent des positions (par exemple des boîtes englobantes), également selon le cadre de référence 102, d'étiquettes sur la structure de support représentée par le nuage de points mentionné ci-dessus. Plus particulièrement, les indicateurs d'étiquettes définissent généralement des boîtes englobantes indiquant l'étendue de chaque étiquette. Les indicateurs d'étiquettes peuvent être générés via des mécanismes variés, aussi bien sur le serveur 101 lui-même que sur un autre dispositif informatique. Par exemple, les indicateurs d'étiquettes peuvent être générés en détectant des caractéristiques d'étiquettes (par exemple, des codes à ban-es, un texte, des dégradés et analogues) sur des images capturées par l'appareil 103. [0043] S'agissant de la FIG. 5, celle-ci montre un exemple de nuage de points 500 re- présentant une structure de support qui comporte les deux surfaces de support 117 (ayant des bords de gondole 118) et un certain nombre de broches 502. Comme le montre la FIG. 5, chaque broche 502 s'étend vers l'extérieur à partir du fond de gondole 116, et un ou plusieurs produits 112 peuvent être suspendus à partir de la broche 502. Des indicateurs d'étiquettes 504 sont également illustrés dans la FIG. 5. Plus précisément, les indicateurs d'étiquettes 504-1, 504-2 et 504-3 indiquent les positions d'étiquettes placées sur le bord de gondole 118, tandis que les indicateurs d'étiquettes 504 4, 504-5, 504-6, 504-7 et 504-8 indiquent les positions d'étiquettes montées sur les extrémités des broches 502 respectives. Chaque étiquette est associée à un espace sur la surface de support 117 ou broche 502 correspondante, qui supporte un produit donné, généralement identifié par l'étiquette elle-même. Comme le montre la FIG. 5, certaines broches 502 supportent des produits 112, tandis que d'autres broches 502 sont vides. De même, certaines parties de la surface de gondole 117 supportent des produits 112, tandis que d'autres (telles que la partie de la surface de gondole 117 au-dessus de l'indicateur d'étiquette 504-3) sont vides. Grâce au processus de classification d'étiquettes et de détection d'espaces vides abordé ici, le serveur 101 détermine quelles broches 502 et/ou régions de gondole sont vides (c'est-à-dire quelles parties de la structure de support présentent des espaces vides où des produits 112 sont prévus). [0044] S'agissant de la FIG. 4 de nouveau, au bloc 410 le serveur 101, et en particulier le classificateur d'étiquette 126, classe les indicateurs d'étiquettes 504. Chaque indicateur d'étiquette 504 est classé, soit comme étiquette de gondole (c'est-à-dire qu'il correspond à une étiquette montée sur un bord de gondole 118), soit comme étiquette de broche (c'est-à-dire qu'il correspond à une étiquette montée sur une broche 502). Comme nous le verrons plus loin, les indicateurs d'étiquettes 504 sont classés sur la base des sous-ensembles des mesures de profondeur, sélectionnées selon l'emplacement des indicateurs d'étiquettes 504. [0045] S'agissant de la FIG. 6, un procédé 600 de classification des indicateurs d'étiquettes 504 (c'est-à-dire de réalisation du bloc 410 du procédé 400) est illustré. Le procédé 600 est effectué pour chaque indicateur d'étiquette 504 obtenu au bloc 405. À l'issue du procédé 600 pour chaque indicateur d'étiquette 504, le serveur 101 retourne au procédé 400 lui-même (plus précisément, au bloc 415). [0046] Au bloc 605, avant de commencer la classification des indicateurs d'étiquettes 504, le serveur 101 peut effectuer une ou plusieurs actions de prétraitement sur les indicateurs d'étiquettes 504. Par exemple, le serveur 101 peut retirer des indicateurs d'étiquettes 504 erronés et/ou ajuster la position de l'indicateur d'étiquette 504. La détection des étiquettes, par exemple à partir de données d'image comme mentionné ci-dessus, peut parfois donner lieu à des erreurs de position mineures, où l'indicateur 11 d'étiquette 504 s'écarte dans une certaine mesure de l'étiquette réelle dont il indique la position. Le serveur 101, au bloc 605, tente de corriger de tels écarts en générant un ensemble d'indicateurs d'étiquettes 504 candidats ajustés. Par exemple, huit indicateurs d'étiquettes candidats ajustés peuvent être générés, chacun décalé dans une direction différente (par exemple, gauche, gauche et haut, haut, droite et haut, droite, droite et bas, bas, gauche et bas) d'une distance prédéfinic (par exemple, 5 mm). Le classificateur d'étiquette 126 détermine alors une mesure de variabilité pour les mesures de profondeur dans chaque candidat (ainsi que dans l'indicateur 504 original). Autrement dit, pour chaque candidat, le classificateur d'étiquette 126 sélectionne toutes les mesures de profondeur dont les coordonnées sur les axes X et Z (comme le montre la FIG. 5) sont comprises dans l'indicateur de candidat concerné. La mesure de variabilité peut par exemple être l'écart-type des mesures de profondeur. Le classificateur d'étiquette 126 sélectionne celui parmi les candidats ou l'indicateur 504 original qui possède la plus faible variabilité. La faible variabilité indique que l'indicateur de candidat englobe une surface sensiblement plane (c'est-à-dire une étiquette), plutôt qu'une partie d'étiquette et qu'une partie d'une autre structure, telle qu'un produit 112, le fond de gondole 116, ou autres. [0047] D'autres opérations de prétraitement peuvent également être effectuées au bloc 605. Par exemple, le classificateur d'étiquette 126 peut également rejeter tout indicateur d'étiquette 504 dont les dimensions dépassent un certain seuil maximal configurable, aussi bien que tout indicateur d'étiquette 504 dont les dimensions ne dépassent pas un seuil minimal configurable. Dans un autre exemple, dans certains modes de réalisation, les indicateurs d'étiquettes reçus au bloc 405 peuvent ne pas avoir encore été vérifiés pour la détection de doublons des mêmes étiquettes physiques. Le classificateur d'étiquette 126 peut donc également déterminer si chaque indicateur d'étiquette 504 chevauche un autre indicateur d'étiquette 504 (par exemple, avec un degré de chevauchement quelconque, ou répondant au moins à un seuil de chevauchement minimal). Les indicateurs d'étiquettes 504 qui se chevauchent suffisamment sont combinés en un indicateur d'étiquette 504 unique, soit en rejetant tous les indicateurs 504 qui se chevauchent sauf un, soit en calculant un nouvel indicateur d'étiquette centré sur une moyenne des centres des indicateurs 504 qui se chevauchent, ou autre. Dans d'autres exemples, le bloc 605 peut simplement être omis. [0048] Au bloc 610, le classificateur d'étiquette 126 détermine si l'indicateur d'étiquette 504 en cours de classification est situé à une distance de seuil configurable d'un indicateur 504 d'étiquette adjacent. Plus précisément, la distance évaluée au bloc 610 est la distance à l'indicateur d'étiquette 504 adjacent gauche et/ou choit (plutôt qu'aux indicateurs 504 au-dessus ou en dessous de l'indicateur 504 en cours de traitement). La distance de seuil peut être, par exemple, une distance égale à la largeur prévue d'une 12 étiquette dans l'installation où le nuage de points 500 a été capturé. Cependant, une grande variété d'autres distances de seuil peuvent également être appliquées. Lorsque la détermination au bloc 610 est négative (c'est-à-dire que l'indicateur d'étiquette 504 est suffisamment espacé de ses voisins), l'accomplissement du procédé 600 passe au bloc 615. Lorsque la détermination au bloc 610 est positive, l'accomplissement du procédé 600 passe au bloc 620. Les blocs 615 et 620 seront abordés ci-dessous, en se référant à la FIG. 7. [0049] La FIG. 7 illustre un exemple d'accomplissement du bloc 615, et un exemple d'accomplissement du bloc 620. Dans le premier exemple, pendant le traitement de l'indicateur d'étiquette 504-4, le classificateur d'étiquette 126 identifie l'indicateur d'étiquette 504-5 comme le voisin le plus proche à gauche ou à droite (comme le montre la FIG. 5, l'indicateur d'étiquette 504 4 n'a pas d'indicateurs à gauche). Le classificateur d'étiquette 126 détermine la distance 800 entre les indicateurs 504 4 et 504-5, et compare la distance 800 à un seuil, tel que la largeur W de l'indicateur 504-4 lui-même. La largeur W est inférieure à la distance 800, et le classificateur d'étiquette 126 passe donc au bloc 615. Au bloc 615, le classificateur d'étiquette 126 sélectionne des mesures de profondeur selon une fenêtre d'étiquette 804 4 ainsi que des fenêtres voisines gauche et droite 808-L et 808-R. La fenêtre 804 4 a la même taille et le même emplacement que l'indicateur d'étiquette 504-4, et les fenêtres 808-L et 808-R ont la même taille que l'indicateur d'étiquette 504 4, mais des emplacements qui sont immédiatement adjacents à l'indicateur d'étiquette 504 4. [0050] Chacune des fenêtres 804 et 808, comme le montre la FIG. 7, définit une colonne s'étendant de la fenêtre elle-même au fond de gondole 116. Ainsi, le classificateur d'étiquette 126 est configuré pour sélectionner trois sous-ensembles des mesures de profondeur au bloc 615 : un sous-ensemble contenu dans la colonne définie par la fenêtre 808-L, et des sous-ensembles supplémentaires contenus dans les colonnes définies par les fenêtres 804 4 et 808-R. [0051] La section inférieure de la FIG. 7 illustre l'évaluation au bloc 610 pour l'indicateur d'étiquette 504-7. Comme illustré, une distance 810 entre l'indicateur d'étiquette 504-7 et l'indicateur d'étiquette 504-8 est inférieure à la largeur W, et la détermination au bloc 610 est donc négative. Si des fenêtres étaient sélectionnées pour l'indicateur d'étiquette 504-7 de la même manière que celle illustrée pour le bloc 615, la fenêtre voisine droite inclurait une partie importante des mesures de profondeur dans l'indicateur d'étiquette 504-8. Comme nous le verrons plus loin, la classification des indicateurs d'étiquettes 504 est basée sur des différences de profondeurs entre l'indicateur d'étiquette 504 et la zone environnante. Plus précisément, les étiquettes de broche sont supposées avoir des profondeurs sensiblement différentes de celles de leurs zones environnantes, tandis que les étiquette de gondoles devraient avoir sen- 13 siblement la même profondeur que leurs zones environnantes (parce que ces zones environnantes sont supposées contenir des bords de gondole 118). Les indicateurs d'étiquettes 504 rapprochés, tels que les indicateurs 504-7 et 504-8, sont donc susceptibles d'être incorrectement classés comme étiquettes de gondole. [0052] Pour atténuer ces erreurs de classification, au bloc 620, le classificateur d'étiquette 126 sélectionne quatre sous-ensembles de mesures de profondeur plutôt que les trois sous-ensembles susmentionnés. En particulier, le classificateur d'étiquette 126 sélectionne un sous-ensemble d'étiquette qui consiste en deux colonnes de mesures de profondeur, définies par les fenêtres d'étiquettes 804-7 et 804-8. Le classificateur d'étiquette 126 sélectionne également une fenêtre gauche 818-L adjacente à la fenêtre 804-7, et une fenêtre droite 818-R adjacente à la fenêtre 804-8. Enfin, le classificateur d'étiquette sélectionne une fenêtre d'espace vide 818-G entre les fenêtres 804-7 et 804-8. En d'autres termes, les sous-ensembles sélectionnés au bloc 620 entraînent le traitement simultané des deux indicateurs d'étiquettes 504 adjacents, ainsi que la sélection d'une plus petite fenêtre 818-G entre les fenêtres 804-7 et 804-8. L'accomplissement du bloc 620 peut également englober plus de deux indicateurs d'étiquettes 504 adjacents. [0053] S'agissant de la FIG. 6 de nouveau, au bloc 625 le classificateur d'étiquette 126 génère une métrique de profondeur pour chacun des sous-ensembles sélectionnés de mesures de profondeur (c'est-à-dire chacune des fenêtres 804, 808, 818 abordées ci-dessus). Dans le présent exemple, les métriques de profondeur sont des vecteurs unidimensionnels. Plus précisément, un vecteur de profondeur est généré au bloc 625 pour chaque fenêtre sélectionnée. Le vecteur de profondeur pour une fenêtre donnée contient une ou plusieurs mesures liées à la profondeur, dérivées des mesures de profondeur à l'intérieur de cette fenêtre. Des exemples de ces mesures sont (a) un nombre de mesures de profondeur dans la fenêtre, (b) une profondeur minimale représentée dans la fenêtre, (c) une profondeur maximale représentée dans la fenêtre, (d) une moyenne des mesures de profondeur dans la fenêtre, (e) une première profondeur quartile dans la fenêtre, (f) une troisième profondeur quartile dans la fenêtre, (g) une médiane des mesures de profondeur dans la fenêtre, (h) une plage (c'est-à-dire une différence entre les profondeurs minimale et maximale susmentionnées), et (i) un écart-type. [0054] Au bloc 630, le classificateur d'étiquette 126 compare les métriques générées au bloc 625 en générant des mesures d'erreurs entre diverses paires des métriques. Lorsque le bloc 615 est effectué, une mesure d'erreurs est générée entre la métrique pour la fenêtre gauche (par exemple, 808-L) et la fenêtre d'étiquette (par exemple, 804 4), et une autre mesure d'erreurs est générée entre la métrique pour la fenêtre d'étiquette et la fenêtre droite (par exemple, 808-R). La mesure d'erreurs peut être, par exemple, une 14 valeur d'erreur quadratique moyenne (RMSE) calculée pour chacune des paires susmentionnées. [0055] Lorsque le bloc 620 est effectué, trois mesures d'erreurs sont générées. Les mesures d'erreurs comportent une première mesure d'erreurs entre la métrique pour les fenêtres d'étiquettes (par exemple, 804-7 et 804-8) et la métrique pour la fenêtre gauche (par exemple, 818-L), et une deuxième mesure d'erreurs entre la métrique pour les fenêtres d'étiquettes et la métrique pour la fenêtre droite (par exemple, 818-R). Les mesures d'erreurs comportent également une troisième mesure d'erreurs entre la métrique pour les fenêtres d'étiquettes et la métrique pour la fenêtre d'espace vide (par exemple, 818-G). [0056] La détermination au bloc 630 est positive lorsque toutes les mesures d'erreurs sus- mentionnées dépassent un certain seuil configurable. Comme cela sera mis en évidence, les mesures d'erreurs qui dépassent le seuil indiquent des profils de profondeur sensiblement différents entre les diverses fenêtres, qui indiquent à leur tour que la zone entourant l'indicateur d'étiquette 504 (ou plusieurs indicateurs 504, dans le cas du bloc 620) se trouve dans un plan sensiblement différent de l'indicateur d'étiquette 504 lui-même. L'indicateur d'étiquette 504 représente donc probablement une étiquette de broche, et est classé comme étiquette de broche au bloc 635. Lorsqu'au moins une des mesures d'erreurs susmentionnées ne dépasse pas le seuil, la détermination au bloc 630 est négative, et l'indicateur d'étiquette 504 est classé comme étiquette de gondole au bloc 640. [0057] Au bloc 645, le classificateur d'étiquette 126 peut éventuellement reclasser chaque indicateur d'étiquette 504, une fois que tous les indicateurs d'étiquettes 504 ont été classés, en se basant sur les voisins les plus proches de l'indicateur d'étiquette 504. L'accomplissement du bloc 645 reflète une hypothèse selon laquelle les étiquettes de broche ont tendance à être regroupées, tout comme les étiquettes de gondole. Autrement dit, on suppose qu'il est peu probable qu'une seule étiquette de broche soit entourée d'étiquettes de gondole. Par conséquent, au bloc 645, les classes des voisins les plus proches (par exemple, un à trois voisins à gauche, et un à trois voisins à droite) d'un indicateur 504 peuvent être récupérées, et l'indicateur d'étiquette peut être reclassé dans la classe de la majorité des indicateurs 504 voisins. Dans d'autres exemples toutefois, le bloc 645 peut être omis. [0058] Après l'achèvement du procédé 600 pour chaque indicateur d'étiquette 504, le serveur 101 retourne au procédé 400 (plus précisément, au bloc 415). Au bloc 415, le générateur d'espace de recherche 128 définit des espaces de recherche d'articles pour chaque indicateur d'étiquette 504, sur la base de la classe attribuée à l'indicateur d'étiquette 504 au bloc 410. Les espaces de recherche d'articles définis au bloc 415 représentent, pour chaque indicateur d'étiquette 504, une région dans le nuage de points 500 dans lequel devrait apparaître un produit 112 correspondant à l'indicateur d'étiquette 504. L'emplacement d'un produit donné 112 par rapport à l'étiquette correspondante varie toutefois, en fonction de la nature de la structure de support où sont situés le produit 112 et l'étiquette. [0059] Plus précisément, comme indiqué précédemment, les broches 502 supportent les étiquettes au niveau de leurs extrémités et supportent les produits 112 sous les broches 502. Autrement dit, les produits 112 devraient généralement apparaître en dessous des indicateurs d'étiquettes 504 correspondants lorsque les indicateurs d'étiquettes 504 sont classés comme étiquettes de broche. Pour leur part, les étiquettes de gondole sont supportées par les bords de gondole 118, et les produits correspondants apparaissent sur la surface de support 117 tout de suite sur le bord de gondole 118. Les produits 112 devraient donc apparaître au-dessus des indicateurs d'étiquettes 504 correspondants lorsque les indicateurs d'étiquettes 504 sont classés comme étiquettes de gondole. [0060] S'agissant de la FIG. 8, un procédé 800 de génération d'espaces de recherche d'articles (c'est-à-dire de réalisation du bloc 415 du procédé 400) est illustré. Le procédé 800 est effectué pour chaque indicateur d'étiquette 504. Le générateur d'espace de recherche 128 détermine, au bloc 805, si l'indicateur d'étiquette 504 est classé comme étiquette de gondole ou étiquette de broche. Lorsque l'indicateur d'étiquette est classé comme étiquette de broche, le générateur d'espace de recherche 128 définit des limites d'un espace de recherche pour l'indicateur d'étiquette aux blocs 810, 815 et 820, qu'il ne faut pas effectuer dans l'ordre montré dans la FIG. 8. [0061] Au bloc 810, une limite supérieure est définie en fonction de l'indicateur d'étiquette lui-même. En particulier, comme le montre la FIG. 9, des limites supérieures pour les étiquettes de broche sont placées en ligne avec le bord inférieur de l'indicateur d'étiquette 504. Ainsi, une limite supérieure 900 d'un espace de recherche 904-5 correspondant à l'indicateur d'étiquette 504-5 se trouve en ligne avec le bord inférieur de l'indicateur d'étiquette 504-5. De même, une limite supérieure 910 d'un espace de recherche 904-7 correspondant à l'indicateur d'étiquette 504-7 se trouve en ligne avec le bord inférieur de l'indicateur d'étiquette 504-7. [0062] S'agissant de la FIG. 8 de nouveau, au bloc 815, les limites latérales sont définies sur la base des voisins à gauche et à droite de l'indicateur d'étiquette 504. En particulier, comme le montre la FIG. 9, les limites latérales 906-1 et 906-2 de l'espace de recherche 904-5 sont placées à une fraction prédéfinie (à mi-chemin, dans le présent exemple) de la distance entre l'indicateur d'étiquette 504-5 et des indicateurs d'étiquettes 504 4 et 504-6 voisins. Une limite latérale 914-2 de l'espace de recherche 904-7 est attribuée de manière similaire Cependant, la limite latérale 914-1 opposée de l'espace de recherche 904-7 est placée en ligne avec le bord gauche de l'indicateur d'étiquette 504-7, parce que l'indicateur d'étiquette 504-7 n'a pas d'indicateur 16 d'étiquette 504 voisin à gauche. Dans d'autres modes de réalisation, en l'absence de voisin pertinent, les limites peuvent être placées selon divers autres critères (par exemple, à une distance prédéfinic du côté correspondant de l'indicateur d'étiquette 504). [0063] Au bloc 820, une limite inférieure est définie selon la classification de l'indicateur d'étiquette 504 le plus proche en dessous (c'est-à-dire le voisin le plus bas) de l'indicateur d'étiquette 504 en cours de traitement. Plus précisément, la limite inférieure est placée en ligne avec le bord supérieur du voisin le plus has si le voisin le plus bas est une étiquette de broche, ou à une fraction prédéfinic d'une distance entre l'indicateur d'étiquette 504 et le voisin le plus bas, si le voisin le plus has est une étiquette de gondole. Se référant à nouveau à la FIG. 9, une limite inférieure 908 de l'espace de recherche 904-5 est placée en ligne avec le bord supérieur de l'indicateur d'étiquette 504-7. L'indicateur d'étiquette 504-7 est le voisin le plus bas de l'indicateur d'étiquette 504-5, et est classé comme étiquette de broche. En revanche, une limite inférieure 918 de l'espace de recherche 904-7 est placée à mi-chemin entre l'indicateur d'étiquette 504-7 et le voisin le plus bas de l'indicateur d'étiquette 504-7, qui est classé comme étiquette de gondole. [0064] Lorsque l'indicateur d'étiquette 504, pour lequel un espace de recherche doit être généré, est une étiquette de gondole, les limites de l'espace de recherche sont générées par le générateur d'espace de recherche 128 selon les blocs 825, 830 et 835 (bien que, comme indiqué ci-dessus, les blocs 825, 830 et 835 ne doivent pas être effectués dans l'ordre montré). [0065] Au bloc 825, une limite inférieure de l'espace de recherche est générée sur la base de l'indicateur d'étiquette 504. En particulier, en se référant à la FIG. 9, la limite inférieure est placée en ligne avec le bord supérieur de l'indicateur d'étiquette 504. Par exemple, les limites inférieures 928 et 938 des espaces de recherche 904-3 et 904-2 sont placées en ligne respectivement avec les bords supérieurs des indicateurs d'étiquettes 504-3 et 504-2. Au bloc 830, les limites latérales sont placées en fonction de l'indicateur d'étiquette 504 lui-même et de l'indicateur d'étiquette 504 voisin gauche. S'agissant de nouveau de la FIG. 9, les limites droites 924-2 et 934-2 des espaces de recherche 904-3 et 904-2 sont placées en ligne avec les bords droits des indicateurs d'étiquettes 504-3 et 504-2, respectivement. Les limites gauches 924-1 et 934-1, pour leur part, sont placées en ligne avec les bords droits des indicateurs voisins d'étiquette 504-2 et 504-1, respectivement. Enfin, au bloc 835, une limite supérieure est générée sur la base de la classification du voisin supérieur (c'est-à-dire l'indicateur d'étiquette 504 le plus proche au-dessus de l'indicateur d'étiquette 504 en cours de traitement via le procédé 800). [0066] En se référant encore une fois à la FIG. 9, le voisin supérieur de l'indicateur 17 d'étiquette 504-3 (l'indicateur d'étiquette 504-7) est une étiquette de broche, et une limite supérieure 920 de l'espace de recherche 904-3 est donc placée à une fraction prédéfinic (par exemple, à mi-chemin) de la distance entre les indicateurs d'étiquettes 504-3 et 504-7. Le voisin supérieur de l'indicateur d'étiquette 504-2 (l'indicateur d'étiquette 504-10) est, pour sa part, classé comme étiquette de gondole. Une limite supérieure 930 de l'espace de recherche 904-2 est donc placée sur le bord inférieur de l'indicateur d'étiquette 504-10. [0067] La FIG. 10 illustre un ensemble d'espaces de recherche générés via le procédé 800 pour chacun des indicateurs d'étiquettes 504. En plus des espaces de recherche 904 mentionnés ci-dessus, la FIG. 10 illustre les espaces de recherche 1004-1, 1004 4 , 1004-6, 1004-8, 1004-9 et 1004-10. Comme on le verra dans la FIG. 10, certains espaces de recherche (par exemple, les espaces de recherche 1004-1 et 1004-9) s'étendent jusqu'aux limites du module de gondole 110 lui-même, en l'absence d'indicateurs d'étiquettes 504 voisins pertinents. Lorsque les espaces de recherche pour chaque indicateur d'étiquette 504 ont été générés via le procédé 800, l'accomplissement du procédé 400 se poursuit au bloc 420. [0068] S'agissant de la FIG. 4 de nouveau, au bloc 420 le détecteur d'espaces vides 130 détermine, sur la base des mesures de profondeur au sein de l'espace de recherche pour chaque indicateur d'étiquette 504, si un article (c'est-à-dire un produit 112, dans l'exemple illustré) est présent dans l'espace de recherche correspondant à cet indicateur d'étiquette 504. Divers mécanismes sont envisagés pour la réalisation du bloc 420. Dans certains exemples, au bloc, 420 le détecteur d'espaces vides 130 génère une métrique de profondeur, telle que le vecteur de profondeur préalablement mentionné, sur la base des mesures de profondeur au sein de l'espace de recherche. Le détecteur d'espaces vides 130 peut alors déterminer une grandeur du vecteur de profondeur (par exemple, en calculant la norme du vecteur de profondeur) et comparer la grandeur à un seuil prédéfini. Un vecteur de profondeur d'un espace de recherche qui ne contient aucun produit 112 a généralement des profondeurs minimale et maximale supérieures, des profondeurs moyenne et médiane supérieures, et des première et troisième profondeurs quartiles supérieures à celles d'un vecteur de profondeur d'un espace de recherche qui contient des produits 112. Par conséquent, si la norme du vecteur de profondeur dépasse le seuil, la détermination au bloc 420 est négative (c'est-à-dire que l'espace de recherche ne contient aucun produit 112). À la suite d'une détermination négative au bloc 420, le détecteur d'espaces vides 130 signale un espace vide au bloc 425. Par exemple, le détecteur d'espaces vides 130 peut générer un indicateur d'espace vide définissant un emplacement dans le cadre de référence 102 de l'espace vide détecté. L'emplacement peut par exemple être défini par la même boîte englobante que l'espace de recherche évalué au bloc 420. 18 [0069] Lorsque la détermination au bloc 420 est positive (c'est-à-dire lorsque le vecteur de profondeur susmentionné ne dépasse pas le seuil), le détecteur d'espaces vides passe au bloc 430. Au bloc 430, le détecteur d'espaces vides 130 peut signaler un indicateur d'article. L'indicateur d'article peut comporter une boîte englobante équivalente à l'espace dc recherche, et peut comporter également le vecteur de profondeur. [0070] Dans d'autres modes dc réalisation, le détecteur d'espaces vides 130 peut effectuer une opération de segmentation sur les mesures de profondeur dans l'espace de recherche pour y identifier les articles (par exemple les produits 112). La FIG. 11 illustre un procédé 1100 dc réalisation du bloc 420 dans de tels modes de réalisation. Au bloc 1105, le détecteur d'espaces vides 130 peut adapter une surface tridimensionnelle aux mesures de profondeur dans l'espace de recherche, selon toute opération d'adaptation de surface appropriée (par exemple, une opération d'interpolation basée sur un maillage). Dans certains exemples, le bloc 1105 peut être omis, par exemple, si l'espace dc recherche contient une densité minimale de mesures de profondeur. [0071] Au bloc 1110 le détecteur d'espaces vides 130 génère une carte bidimensionnelle de profondeur à partir de la surface de bloc 1105 (ou directement à partir des mesures de profondeur dans l'espace de recherche, si le bloc 1105 est omis). La carte de profondeur projette les mesures dc profondeur, ou des parties de la surface adaptée, en deux dimensions, et attribue une valeur d'intensité à chaque partie ou mesure de profondeur sur la base de la profondeur de cette partie ou mesure de profondeur. La FIG. 12 illustre une carte de profondeur 1200 générée à partir des mesures de profondeur dans l'espace de recherche 904-5. [0072] Au bloc 1115, le détecteur d'espaces vides 130 génère une pluralité de masques binaires à partir de la carte de profondeur, en appliquant une série de seuils d'intensité (qui sont donc effectivement des seuils de profondeur) à la carte de profondeur. Pour chaque seuil d'intensité, tous les pixels de la carte de profondeur dont l'intensité est inférieure au seuil (c'est-à-dire représentant des profondeurs plus importantes) se voient accorder une première intensité dans le masque binaire, tandis que tous les pixels restants se voient accorder une deuxième intensité dans le masque binaire. Les seuils d'intensité sont par exemple sélectionnés en tant que fractions d'une profondeur maximale dans l'espace de recherche. Par exemple, une série de seuils d'intensité peuvent être générés, de 95% de la profondeur maximale à 50% de la profondeur maximale, à des intervalles de 5%. Cependant, une grande variété d'autres séries de seuils d'intensité peuvent également être employées. [0073] La FIG. 12 illustre un ensemble de quatre masques binaires 1204, 1208, 1212 et 1216. Le masque binaire 1204 correspond à un seuil d'intensité de 50% de la profondeur maximale dans l'espace de recherche 904-5. La profondeur maximale est la profondeur du fond de gondole 116, et dans l'exemple illustré, on suppose que 50% de 19 la profondeur maximale se trouve devant le produit 112. Par conséquent, aucun pixel de la carte de profondeur 1200 n'est en dessous du seuil, et le masque binaire 1204 est entièrement constitué de pixels "zéro", ce qui indique qu'aucun article n'est présent. [0074] Les masques 1208, 1212 et 1216 correspondent à des seuils progressivement plus élevés (par exemple, se terminant à 95% de la profondeur maximale). Chaque masque binaire comporte donc une région (indiquée en noir) de haute intensité, correspondant à des pixels de la carte de profondeur dont les intensités sont inférieures au seuil correspondant. Le détecteur d'espaces vides 130, pour chaque masque binaire, détermine si une quelconque région contiguë de haute intensité est présente, selon toute opération de détection de grands objets hinaires appropriée. Ces régions contiguës représentent des articles potentiels (par exemple, les produits 112) au sein de l'espace de recherche. [0075] Au bloc 1120, le détecteur d'espaces vides 130 détermine si les régions contiguës détectées dans les masques hinaires indiquent la présence d'un produit 112. Le détecteur d'espaces vides 130 peut par exemple déterminer si l'une des régions satisfait à des critères dimensionnels, tels qu'une largeur minimale et/ou une hauteur minimale. Le détecteur d'espaces vides 130 peut également déterminer si l'une des régions satisfait à un critère de détection, tel qu'un nombre minimal de régions qui se chevauchent, à partir de masques hinaires adjacents. S'agissant de la FIG. 12, il est évident que les masques 1208, 1212 et 1216 contiennent chacun des régions qui se chevauchent (la région du masque 1208 est représentée par des lignes blanches en pointillés dans le masque 1212, et les régions des masques 1208 et 1212 sont représentées par des lignes blanches en pointillés dans le masque 1216). Ainsi, les régions dans les masques 1208, 1212 et 1216 correspondent probablement au même article physique, qui a donc été détecté dans trois masques. [0076] Lorsque la détermination au bloc 1120 est positive, le détecteur d'espaces vides 130 passe au bloc 430 comme indiqué ci-dessus. En revanche, lorsque la détermination au bloc 1120 est négative, le détecteur d'espaces vides 130 passe au bloc 425 comme indiqué ci-dessus. [0077] Le serveur 101 est activé, via les procédés abordés ci-dessus, pour distinguer des parties d'une structure de support où les produits 112 sont suspendus aux broches 502, et des parties de la structure de support qui supporte les produits 112 sur les surfaces 117. Le serveur 101 est en outre activé pour déterminer, sur la base de la distinction ci-dessus, la définition des espaces de recherche dans lesquels rechercher les produits 112, et pour renvoyer soit des indicateurs d'articles, soit des indicateurs d'espaces vides en conséquence. Les indicateurs d'articles ou d'espaces vides sont stockés dans la mémoire 122 (par exemple, dans le répertoire 132), et destinés à être utilisés dans le cadre d'un traitement supplémentaire, par exemple pour générer des alertes de rupture de stock à transmettre au dispositif client 104. Les indicateurs d'articles ou d'espaces vides peuvent également être transmis à d'autres dispositifs informatiques, présentés sur un dispositif d'affichage connecté au serveur 101, ou analogues. [0078] 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. [0079] Les bénéfices, les avantages, les solutions aux problèmes, et tout élément qui peut faire apparaître ou s'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. [0080] 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 termes, 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 termes "un/une/des" sont définis comme singuliers ou pluriels, sauf indication contraire explicite dans le présent document. Les termes "sensiblement", "essentiellement", "approximativement", "environ" ou toute autre version de ces termes, sont définis comme étant proches de ce 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é 21 au moins de cette manière, mais peut également être configure dans de manières qui ne sont pas énumérées. [0081] Tl 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. [0082] De plus, un mode de réalisation peut être mis en oeuvre en tant que support de 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 limiter, un disque dur, un CD-ROM, un dispositif de stockage optique, un dispositif de stockage magnétique, une ROM (mémoire moite), 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 CI avec un minimum d'expérimentation. [0083] 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 limiter 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. 23 [Revendication 1] [Revendication 2] [Revendication 3] [Revendication 4] REVENDICATIONSProcédé (400) de détection d'espaces vides sur une structure de support, le procédé comprenant les étapes consistant à : - obtenir (405), sur une unité de commande d'imagerie (120), (i) une pluralité de mesures de profondeur représentant la structure de support selon un cadre commun de référence, et (ii) une pluralité d'indicateurs d'étiquettes (504), définissant chacun unc position d'étiquette dans le cadre commun de référence ; - pour chacun des indicateurs d'étiquettes (504) : classer (410) l'indicateur d'étiquette (504), soit comme étiquette de broche, soit comme étiquette de gondole, sur la base d'une partie des mesures de profondeur sélectionnées selon la position d'étiquette, et d'une partie des mesures de profondeur adjacentes à la position d'étiquette générer (415) un espace de recherche d'article dans le cadre commun de référence, selon la classe de l'indicateur d'étiquette (504) ; et détermine (420)r, sur la base d'un sous-ensemble des mesures de profondeur au sein de l'espace de recherche d'article, si l'espace de recherche d'article contient un article. Procédé (400) selon la revendication 1, comprenant en outre l'étape consistant à : lorsque la détermination est négative, générer un indicateur d'espace vide en association avec l'indicateur d'étiquette. Procédé (400) selon la revendication 1, dans lequel la classification des indicateurs d'étiquettes (504) comprend : - la sélection, en tant que partie des mesures de profondeur, (i) d'une fenêtre d'étiquette (804) à la position d'étiquette, et (ii) de fenêtres voisines (808) sur l'un ou l'autre des côtés de la position d'étiquette ; - la génération de métriques de profondeur pour chacune de la fenêtre d'étiquette (804) et des fenêtres voisines (808) ; - lorsque des mesures d'erreurs entre la métrique de profondeur de fenêtre d'étiquette et chacune des métriques de profondeur de fenêtres voisines dépassent un certain seuil, la classification de l'indicateur d'étiquette (504) comme étiquette de broche ; et - autrement, la classification de l'indicateur d'étiquette (504) comme étiquette de gondole. Procédé (400) selon la revendication 1, dans lequel la classification des indicateurs d'étiquettes (504) comprend : 24 - l'identification d'une paire d'indicateurs d'étiquettes (504) adjacents séparés par une distance inférieure à un seuil de distance ; - la sélection, en tant que partie des mesures de profondeur, (i) de fenêtres d'étiquettes (804) aux positions d'étiquettes de chacun de la paire d'indicateurs, (ii) de fenêtres voisines (808) sur l'un ou l'autre des côtés des positions d'étiquettes de la paire d'indicateurs, et (iii) d'une fenêtre d'espace vide entre les positions d'étiquettes de la paire d'indicateurs ; - la génération d'une métrique unique de profondeur pour les fenêtres d'étiquettes (804) ; - la génération de métriques de profondeur pour chacune des fenêtres voisines (808) et de la fenêtre d'espace vide ; lorsque des mesures d'erreurs entre la métrique unique de profondeur et chacune des métriques de profondeur de fenêtres voisines et de la métrique de profondeur de fenêtre d'espace vide dépassent un certain seuil, la classification de l'indicateur d'étiquette (504) comme étiquette de broche ; et autrement, la classification de l'indicateur d'étiquette (504) comme étiquette de gondole. [Revendication 5] Procédé (400) selon la revendication 3, dans lequel la métrique de profondeur est un vecteur contenant au moins l'un parmi : un nombre de mesures de profondeur, une profondeur minimale, une profondeur maximale, une profondeur moyenne, une première profondeur quartile, une troisième profondeur quartile, une profondeur médiane, une plage de profondeurs, et un écart-type. [Revendication 6] Procédé (400) selon la revendication 5, dans lequel les mesures d'erreurs sont des erreurs quadratiques moyennes (RMSE). [Revendication 7] Procédé (400) selon la revendication 1, dans lequel la génération de l'espace de recherche d'article comporte, lorsque l'indicateur d'étiquette (504) est classé comme étiquette de broche : - le paramétrage de limites latérales sur la base d'indicateurs d'étiquettes (504) voisins gauches et droits ; - le paramétrage d'une limite supérieure en dessous de l'indicateur d'étiquette (504) ; et - le paramétrage d'une limite inférieure selon une classe d'un indicateur d'étiquette (504) voisin inférieur. [Revendication 8] Procédé (400) selon la revendication 1, dans lequel la génération de l'espace de recherche d'article comporte, lorsque l'indicateur d'étiquette 25 [Revendication 9] [Revendication 10] [Revendication 11] (504) est classé comme étiquette de gondole : - le paramétrage de limites latérales sur la base de l'indicateur d'étiquette (504) et d'un indicateur d'étiquette (504) voisin ; -le paramétrage d'une limite supérieure selon une classe d'un indicateur d'étiquette (504) voisin supérieur ; et -le paramétrage d'une limite inférieure sur la base de l'indicateur d'étiquette (504). Procédé (400) selon la revendication 1, dans lequel le fait de déterminer si l'espace de recherche d'article contient un article comprend : - la génération d'une métrique de profondeur à partir des mesures de profondeur au sein de l'espace de recherche d'article ; - lorsque la métrique atteint un certain seuil, la détermination de la présence d'un article dans l'espace de recherche d'article ; et - lorsque la métrique n'attcint pas un certain seuil, la détermination de la présence d'un espace vide dans l'espace de recherche d'article. Procédé (400) selon la revendication 1, dans lequel le fait de déterminer si l'espace de recherche d'article contient un article comprend : - la génération d'une carte de profondeur à partir des mesures de profondeur au sein de l'espace de recherche d'article ; - la génération d'un ensemble de masques binaires à partir de la carte de profondeur ; et - la détection de la présence ou de l'absence d'un article en se basant sur les masques binaires. Dispositif informatique comprenant : - une mémoire stockant (i) une pluralité de mesures de profondeur représentant une structure de support selon un cadre commun de référence, et (ii) une pluralité d'indicateurs d'étiquette, définissant chacun une position d'étiquette dans le cadre commun de référence ; - une unité de commande d'imagerie (120) configurée, pour chacun des indicateurs d'étiquette, pour : .classer l'indicateur d'étiquette (504), soit comme étiquette de broche, soit comme étiquette de gondole, sur la base d'une partie des mesures de profondeur sélectionnées selon la position d'étiquette, et d'une partie des mesures de profondeur adjacentes à la position d'étiquette ; .générer un espace de recherche d'article dans le cadre commun de référence, selon la classe de l'indicateur d'étiquette (504) ; et .déterminer, sur la base d'un sous-ensemble des mesures de profondeur au sein de l'espace de recherche d'article, si l'espace de recherche 26 [Revendication 12] [Revendication 13] [Revendication 14] d'article contient un article. Dispositif informatique de la revendication 11, dans lequel l'unité de commande d'imagerie (120) est en outre configure° pour : lorsque la détermination est négative, générer un indicateur d'espace vide en association avec l'indicateur d'étiquette (504). Dispositif informatique de la revendication 11, dans lequel, afin de classer les indicateurs d'étiquette, l'unité de commande d'imagerie (120) est en outre configure° pour : - sélectionner, en tant que partie des mesures de profondeur, (i) une fenêtre d'étiquette (804) à la position d'étiquette, et (ii) des fenêtres voisines (808) sur l'un ou l'autre des côtés de la position d'étiquette ; - générer des métriques de profondeur pour chacune de la fenêtre d'étiquette (804) et des fenêtres voisines (808) ; - lorsque des mesures d'erreurs entre la métrique de profondeur de fenêtre d'étiquette et chacune des métriques de profondeur de fenêtres voisines dépassent un certain seuil, classer l'indicateur d'étiquette (504) comme étiquette de broche ; et - autrement, classer l'indicateur d'étiquette (504) comme étiquette de gondole. Dispositif informatique de la revendication 11, dans lequel, afin de classer les indicateurs d'étiquette, l'unité de commande d'imagerie (120) est en outre configurée pour : - identifier une paire d'indicateurs d'étiquettes (504) adjacents séparés par une distance inférieure à un seuil de distance ; - sélectionner, en tant que partie des mesures de profondeur, (i) des fenêtres d'étiquettes (804) aux positions d'étiquettes de chacun de la paire d'indicateurs, (ii) des fenêtres voisines (808) sur l'un ou l'autre des côtés des positions d'étiquettes de la paire d'indicateurs, et (iii) une fenêtre d'espace vide entre les positions d'étiquettes de la paire d'indicateurs ; - générer une métrique unique de profondeur pour les fenêtres d'étiquettes (804) ; - générer des métriques de profondeur pour chacune des fenêtres voisines (808) et de la fenêtre d'espace vide ; - lorsque des mesures d'erreurs entre la métrique unique de profondeur et chacune de la métrique de profondeur de fenêtre voisine et de la métrique de profondeur de fenêtre d'espace vide dépassent un certain seuil, classer l'indicateur d'étiquette (504) comme étiquette de broche ; 27 [Revendication 15] [Revendication 16] [Revendication 17] [Revendication 18] [Revendication 19] et - autrement, classer l'indicateur d'étiquette (504) comme étiquette de gondole. Dispositif informatique de la revendication 13, dans lequel la métrique de profondeur est un vecteur contenant au moins l'un parmi un nombre de mesures de profondeur, une profondeur minimale, une profondeur maximale, une profondeur moyenne, une première profondeur quartile, une troisième profondeur quartile, une profondeur médiane, une plage de profondeurs, et un écart-type. Dispositif informatique de la revendication 15, dans lequel les mesures d'erreurs sont des erreurs quadratiques moyennes (RMSE). Dispositif informatique de la revendication 11, dans lequel, afin de générer l'espace de recherche d'article, lorsque l'indicateur d'étiquette (504) est classé comme étiquette de broche, l'unité de commande d'imagerie (120) est en outre configurée pour : - paramétrer des limites latérales sur la base d'indicateurs d'étiquettes (504) voisins gauches et droits ; - paramétrer une limite supérieure en dessous de l'indicateur d'étiquette (504) ; et - paramétrer une limite inférieure selon une classe d'un indicateur d'étiquette (504) voisin inférieur. Dispositif informatique de la revendication 11, dans lequel, afin de générer l'espace de recherche d'article, lorsque l'indicateur d'étiquette (504) est classé comme étiquette de gondole, l'unité de commande d'imagerie (120) est en outre configurée pour : - paramétrer des limites latérales sur la base de l'indicateur d'étiquette (504) et d'un indicateur d'étiquette (504) voisin ; - paramétrer une limite supérieure selon une classe d'un indicateur d'étiquette (504) voisin supérieur ; et - paramétrer une limite inférieure sur la base de l'indicateur d'étiquette (504). Dispositif informatique de la revendication 11, dans lequel, afin de déterminer si l'espace de recherche d'article contient un article, l'unité de commande d'imagerie (120) est en outre configurée pour : - générer une métrique de profondeur à partir des mesures de profondeur au sein de l'espace de recherche d'article ; - lorsque la métrique atteint un certain seuil, déterminer que l'espace de recherche d'article contient un article ; et 28 [Revendication 20] - lorsque la métrique n'atteint pas un certain seuil, déterminer que l'espace de recherche d'article contient un espace vide. Dispositif informatique de la revendication 11, dans lequel, afin de déterminer si l'espace de recherche d'article contient un article, l'unité de commande d'imagerie (120) est en outre configurée pour : - générer une carte de profondeur à partir des mesures de profondeur au sein de l'espace de recherche d'article ; - générer un ensemble de masques binaires à partir de la carte de profondeur ; et - détecter la présence ou l'absence d'un article en se basant sur les masques binaires.