FR3081248A1 - Systeme et procede de determination d’un emplacement pour le placement d'un paquet - Google Patents

Systeme et procede de determination d’un emplacement pour le placement d'un paquet Download PDF

Info

Publication number
FR3081248A1
FR3081248A1 FR1905208A FR1905208A FR3081248A1 FR 3081248 A1 FR3081248 A1 FR 3081248A1 FR 1905208 A FR1905208 A FR 1905208A FR 1905208 A FR1905208 A FR 1905208A FR 3081248 A1 FR3081248 A1 FR 3081248A1
Authority
FR
France
Prior art keywords
depth data
packet
occlusion
data
depth
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR1905208A
Other languages
English (en)
Other versions
FR3081248B1 (fr
Inventor
David Korobov
Jay J. Williams
Cuneyt M. Taskiran
Yan Zhang
Sheida Gohari
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zebra Technologies Corp
Original Assignee
Zebra Technologies Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zebra Technologies Corp filed Critical Zebra Technologies Corp
Publication of FR3081248A1 publication Critical patent/FR3081248A1/fr
Application granted granted Critical
Publication of FR3081248B1 publication Critical patent/FR3081248B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
    • G06Q10/083Shipping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • GPHYSICS
    • G08SIGNALLING
    • G08BSIGNALLING OR CALLING SYSTEMS; ORDER TELEGRAPHS; ALARM SYSTEMS
    • G08B7/00Signalling systems according to more than one of groups G08B3/00 - G08B6/00; Personal calling systems according to more than one of groups G08B3/00 - G08B6/00
    • G08B7/06Signalling systems according to more than one of groups G08B3/00 - G08B6/00; Personal calling systems according to more than one of groups G08B3/00 - G08B6/00 using electric transmission, e.g. involving audible and visible signalling through the use of sound and light sources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20112Image segmentation details
    • G06T2207/20132Image cropping

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Economics (AREA)
  • Human Resources & Organizations (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • Operations Research (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Quality & Reliability (AREA)
  • Development Economics (AREA)
  • Geometry (AREA)
  • Image Analysis (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Image Processing (AREA)
  • Supply And Installment Of Electrical Components (AREA)
  • Auxiliary Devices For And Details Of Packaging Control (AREA)

Abstract

Un procédé de détermination d'un emplacement pour le placement d'un paquet dans un contrôleur de formation d'image comprend : l'obtention de données de profondeur d'un espace de paquets (110) ; la détection d'une partie occluse des données de profondeur représentant une zone de l'espace de paquets (110) obstruée par une occlusion ; la récupération de données de profondeur non obstruées mémorisées représentant la zone de l'espace de paquets (110) en l'absence de l'occlusion ; le remplacement de la partie occluse par les données de profondeur non obstruées pour générer des données de profondeur corrigées ; l'obtention, sur la base des données de profondeur corrigées, d'un emplacement dans l'espace de paquets (110) pour le placement d'un paquet ; et la présentation d'une indication de l'emplacement. Figure pour l’abrégé : Fig. 1.

Description

Titre de l’invention : SYSTEME ET PROCEDE DE DETERMINATION D’UN EMPLACEMENT POUR LE PLACEMENT D'UN PAQUET
Domaine technique [0001] Le transport et le stockage d'objets tels que des paquets nécessitent généralement que les paquets soient chargés manuellement, par un opérateur de chargement (également appelé chargeur), dans des contenants (par exemple, des remorques, des conteneurs d'expédition et similaire). Lors du remplissage de contenants avec des paquets, le chargeur cherche généralement à utiliser au maximum l'espace dans les contenants afin de réduire le nombre de contenants (et les coûts associés à chaque contenant) requis pour gérer les paquets. L'utilisation de l’espace est généralement estimée par le chargeur pendant le processus de chargement, et peut par conséquent varier largement en fonction de l’expérience du chargeur. Les tentatives pour fournir une assistance automatisée au chargeur pour évaluer l’utilisation d'un espace et sélectionner les emplacements de placement de paquets peuvent être compromises par les tailles et formes variables des paquets et des contenants, ainsi que par les difficultés à acquérir des représentations précises utilisables par une machine de l'état actuel du contenant.
Brève description des dessins [0002] Les figures jointes, où des numéros de référence identiques font référence à des éléments identiques ou fonctionnellement similaires dans toutes les vues séparées, ainsi que la description détaillée qui suit, sont incorporées dans la spécification et font partie de celle-ci, et servent en outre à illustrer des modes de réalisation de concepts qui comprennent l'invention revendiquée, et expliquent divers principes et avantages de ces modes de réalisation.
[0003] [fig-1] La figure 1 est un schéma d'un système de placement de paquet.
[0004] [fig.2] La figure 2 est un schéma de principe de certains composants internes d'un dispositif informatique dans le système de la Eig. 1.
[0005] [fig.3] La figure 3 est un organigramme d'un procédé de détermination d’un emplacement pour le placement d'un paquet.
[0006] [fig.4] La figure 4 représente un mode de réalisation d'un procédé pour effectuer l’étape du bloc 310 du procédé de la Eig. 3.
[0007] [fig.5] La figure 5 représente un filtrage de bruit employé dans le procédé de la Eig.
4.
[0008] [fig.6] La figure 6 représente un mode de réalisation d'un procédé pour effectuer les étapes des blocs 315 et 320 du procédé de la Eig. 3.
[0009] [fig-7] La figure 7 représente les résultats de l’exécution du procédé de la Lig. 6.
[0010] [fig.8] La figure 8 représente un mode de réalisation d'un procédé pour effectuer l’étape du bloc 335 du procédé de la Lig. 3.
[0011] [fig.9] La figure 9 représente les résultats de l’exécution du procédé de la Lig. 8.
[0012] Les hommes du métier apprécieront que les éléments sur les figures sont illustrés à des fins de simplicité et de clarté et n'ont pas nécessairement été dessinés à l'échelle. Par exemple, les dimensions de certains des éléments sur les figures peuvent être exagérées par rapport à d'autres éléments pour aider à améliorer la compréhension des modes de réalisation de la présente invention.
[0013] Les composants d'appareil et de procédé ont été représentés où cela est approprié par des symboles classiques sur 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 de manière à ne pas obscurcir la description avec des détails qui seront facilement évidents aux hommes du métier tirant profit de la présente description. Description des modes de réalisation [0014] Les exemples présentés dans le présent document concernent un procédé de détermination d'un emplacement pour le placement d'un paquet dans un contrôleur de formation d'image. Le procédé comprend : l'obtention de données de profondeur d'un espace de paquets ; la détection d'une partie occluse des données de profondeur représentant une zone de l'espace de paquets obstruée par une occlusion ; la récupération des données de profondeur non obstruées mémorisées représentant la zone de l'espace de paquets en l'absence de l'occlusion ; le remplacement de la partie occluse par les données de profondeur non obstruées pour générer des données de profondeur corrigées ; l'obtention, sur la base des données de profondeur corrigées, d'un emplacement dans l'espace de paquets pour le placement d'un paquet ; et la présentation d'une indication de l'emplacement.
[0015] Les exemples supplémentaires présentés dans le présent document concernent un dispositif informatique pour déterminer un emplacement pour le placement d'un paquet, le dispositif informatique comprenant : une interface de communication couplée à un dispositif de capture de données ; une mémoire ; et un contrôleur de formation d'image connecté à la mémoire et à l'interface de communication, le contrôleur de formation d'image étant configuré pour : obtenir des données de profondeur représentant un espace de paquets ; détecter une partie occluse des données de profondeur représentant une région de l'espace de paquets obstruée par une occlusion ; récupérer les données de profondeur non obstruées mémorisées représentant la zone de l'espace de paquets en l'absence de l'occlusion ; remplacer la partie occluse par les données de profondeur non obstruées pour générer des données de profondeur corrigées ; obtenir, sur la base des données de profondeur corrigées, un emplacement dans l'espace de paquets pour le placement d'un paquet ; et présenter une indication de l'emplacement.
[0016] La Fig. 1 représente un système de placement de paquet 100 selon les enseignements de la présente description. Le système 100 comprend un dispositif informatique 101 en communication avec un dispositif de formation d'image 103 et un dispositif de rétroaction 106 par l'intermédiaire de liaisons de communication 107. Le système 100 est déployé, dans l'exemple illustré, dans un espace de paquets 110 pour charger des paquets. L'espace de paquets 110 comprend un conteneur comportant des parois latérales, un plafond, un plancher, une paroi arrière et une extrémité de chargement. L'espace de paquets 110 comprend une paroi de paquets 112 comprenant des paquets chargés 114-1, 114-2, et ainsi de suite (auxquels il est fait référence collectivement en tant que paquets chargés 114, et auxquels il est fait référence génériquement en tant que paquet chargé 114), la paroi arrière du conteneur, ou une combinaison des paquets chargés 114 et de la paroi arrière, telle que visible par le dispositif de formation d'image 103. L'espace de paquets 110 peut en outre comprendre une pluralité de paquets empilés ou en file d’attente 116-1, 116-2, et ainsi de suite (auxquels il est fait référence collectivement en tant que paquets 116, et auxquels il est fait référence génériquement en tant que paquet 116). Un chargeur 108 est dans l'espace de paquets 110 obstruant une partie de la paroi de paquets 112. Le dispositif de formation d'image 103 est par conséquent positionné à l'extrémité de chargement pour capturer des données d'image et des données de profondeur représentant l'espace de paquets 110. Par exemple, le dispositif de formation d'image 103 peut être positionné dans le conteneur, ou au niveau d'une porte de quai du conteneur faisant face à la paroi de paquets 112.
[0017] Plus spécifiquement, le dispositif de formation d'image 103 est déployé pour capturer des données d'image et des données de profondeur de l'espace de paquets 110 et communique avec le dispositif informatique 101 pour un traitement ultérieur. Le dispositif 103 comprend un capteur d'image 104 (par exemple, une ou plusieurs caméras numériques) et un capteur de profondeur 105 (par exemple, un ou plusieurs capteurs de détection et d’estimation de la distance par la lumière (LIDAR) ou une ou plusieurs caméras de profondeur, comprenant celles utilisant des motifs de lumière structurés, tels que des capteurs infrarouges et/ou d’image stéréo). En variante ou en plus, la profondeur peut être déterminée sur la base d'une longueur focale de l'optique du dispositif de formation d'image 103. Dans le présent exemple, le dispositif 103, et en particulier le capteur de profondeur 105 est configuré pour capturer des données de profondeur (auxquelles il est également fait référence en tant que trame ou ensemble de données de profondeur) comprenant une pluralité de mesures de profondeur correspondant aux paquets 114 ou 116 ou à d'autres objets, tels que le chargeur 108 plaçant les paquets à l'intérieur de l'espace de paquets 110. Chaque mesure définit une distance du capteur de profondeur 105 à un point dans l'espace de paquets 110. Le dispositif 103, et en particulier le capteur d'image 104, est configuré pour capturer des données d'image (auxquelles il est également fait référence en tant que trame ou ensemble de données d’image) de l'espace de paquets 110. Le dispositif 103 peut être une caméra de profondeur comportant un capteur de profondeur 105 et un capteur d'image 104 intégrés. Dans d'autres modes de réalisation, le capteur d'image 104 et le capteur de profondeur 105 peuvent être mis en œuvre en tant que capteurs indépendants plutôt qu’en tant que dispositif intégré 103.
[0018] Le dispositif informatique 101 peut être un ordinateur de bureau, un ordinateur portable, un serveur, un kiosque, ou un autre dispositif approprié. Dans d'autres exemples, le dispositif informatique 101 comprend un dispositif informatique mobile tel qu'une tablette, un téléphone intelligent ou similaire. Le dispositif informatique 101 comprend un contrôleur de formation d'image d'usage spécial, tel qu'un processeur 120, spécifiquement conçu pour commander le dispositif de formation d'image 103 pour capturer des données (par exemple, les données de profondeur et/ou les données d’image mentionnées ci-dessus), obtenir les données capturées par l'intermédiaire d'une interface de communication 124 et mémoriser les données capturées dans un référentiel 132 dans une mémoire 122. Le dispositif informatique 101 est en outre configuré pour effectuer diverses opérations de traitement ultérieur sur les données capturées pour détecter certaines caractéristiques structurelles - telles que le chargeur 108 - dans les données capturées. Le traitement ultérieur des données capturées par le dispositif informatique 101 sera examiné ci-dessous plus en détail.
[0019] Le processeur 120 est interconnecté avec un support de mémorisation non transitoire pouvant être lu par un ordinateur, tel que la mémoire 122 mentionnée ci-dessus, sur lequel des instructions pouvant être lues par un ordinateur sont mémorisées pour exécuter la commande du dispositif 101 pour capturer des données, ainsi que la fonctionnalité de traitement ultérieur mentionnée ci-dessus, comme examiné plus en détail ci-dessous. La mémoire 122 comprend une combinaison d'une mémoire volatile (par exemple, une mémoire vive ou RAM) et d’une mémoire non volatile (par exemple, une mémoire morte ou ROM, une mémoire morte effaçable et programmable é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 un mode de réalisation, le processeur 120 comprend une ou plusieurs unités centrales (CPU) et/ou unités de traitement graphique (GPU). Dans un mode de réalisation, un circuit intégré conçu spécialement, tel qu'un réseau de portes programmables sur site (LPGA), est conçu pour effectuer les fonctions telles que décrites dans le présent document, soit en variante, soit en plus du contrôleur/processeur de formation d'image 120 et de la mémoire 122.
Comme les hommes du métier l'apprécieront, le dispositif de formation d'image 103 comprend également un ou plusieurs contrôleurs ou processeurs et/ou FPGA, en communication avec le contrôleur 120, configurés spécifiquement pour commander les aspects de capture de données du dispositif 103. Le dispositif de rétroaction 106 comprend également un ou plusieurs contrôleurs ou processeurs et/ou LPGA, en communication avec le contrôleur 120, configurés spécifiquement pour présenter (par exemple, pour afficher) les indications d'emplacement reçues du dispositif informatique 101. Le dispositif de rétroaction 106 peut être un dispositif informatique mobile tel qu'une tablette, un téléphone intelligent, ou il peut être un afficheur, tel qu'un moniteur, périphérique du dispositif informatique 101.
[0020] Le dispositif informatique 101 comprend également l'interface de communication 124 mentionnée ci-dessus interconnectée avec le processeur 120. L'interface de communication 124 comprend un matériel approprié (par exemple, des émetteurs, des récepteurs, des contrôleurs d’interface de réseau et similaire) permettant au dispositif informatique 101 de communiquer avec d'autres dispositifs informatiques - en particulier le dispositif 103 et le dispositif de rétroaction 106 - par l'intermédiaire des liaisons 107. Les liaisons 107 peuvent être des liaisons directes, ou des liaisons qui traversent un ou plusieurs réseaux, comprenant à la fois des réseaux locaux et étendus. Les composants spécifiques de l'interface de communication 124 sont sélectionnés en fonction du type de réseau ou des autres liaisons sur lesquelles le dispositif informatique 101 doit communiquer.
[0021] La mémoire 122 mémorise une pluralité d'applications, comprenant chacune une pluralité d'instructions pouvant être lues par un ordinateur exécutables par le processeur 120. L'exécution des instructions mentionnées ci-dessus par le processeur 120 configure le dispositif informatique 101 pour effectuer les diverses actions décrites dans le présent document. Les applications mémorisées dans la mémoire 122 comprennent une application de commande 128, qui peut également être mise en œuvre en tant que suite d'applications logiquement distinctes. Généralement, par l'exécution de l'application de commande 128 ou des sous-composants de celle-ci, le processeur 120 est configuré pour mettre en œuvre diverses fonctionnalités. Il est également fait référence au processeur 120, tel que configuré par l'exécution de l'application de commande 128, en tant que contrôleur 120. Comme cela sera maintenant évident, certaines ou la totalité des fonctionnalités mises en œuvre par le contrôleur 120 décrit ci-dessous peuvent également être effectuées par des éléments matériels préconfigurés (par exemple, un ou plusieurs circuits intégrés à application spécifique (ASIC)) plutôt que par l'exécution de l'application de commande 128 par le processeur 120.
[0022] Dans le présent exemple, en particulier, le dispositif informatique 101 est configuré par l'exécution de l'application de commande 128 par le processeur 120, pour traiter les données d’image et de profondeur capturées par le dispositif 103 pour détecter et remplacer les occlusions, telles que le chargeur 108, dans l'espace de paquets 110, et pour déterminer un emplacement pour le placement d'un paquet 116.
[0023] La mémoire 122 mémorise les données d'image et les données de profondeur dans le référentiel 132. Pour chaque trame (c’est-à-dire, un ensemble de mesures de profondeur formant un nuage de points et un ensemble de pixels d’image représentant l’espace de paquets 110) capturée par le capteur d'image 104 et/ou le capteur de profondeur 105, le dispositif de formation d'image 103 s'interface avec le dispositif informatique 101 pour mémoriser les données d'image actuelles et les données de profondeur actuelles dans le référentiel 132. Le référentiel 132 mémorise également les données de profondeur non obstruées et les données d'image non obstruées pour corriger les parties occluses, comme cela sera décrit davantage ci-dessous. Le référentiel 132 mémorise également des métadonnées de paquet pour les paquets chargés 114 et les paquets 116 à charger. Les métadonnées de paquet comprennent les dimensions, le poids, la destination, et ainsi de suite, des paquets.
[0024] Les données de profondeur peuvent prendre un grand nombre de formes, en fonction du capteur de profondeur utilisé (par exemple, par le dispositif 103) pour capturer les données de profondeur. Par exemple, le dispositif 103 peut comprendre une caméra de profondeur, telle qu'une caméra stéréoscopique comprenant un projecteur de lumière structurée (par exemple, qui projette un motif de lumière infrarouge sur l’espace de paquets). Dans ces exemples, le dispositif 103 capture des ensembles de données de profondeur. Les ensembles de données de profondeur comprennent chacune un réseau de mesures de profondeur (par exemple, un réseau de valeurs de profondeur en mètres ou en une autre unité appropriée). Le réseau peut également contenir des valeurs d'intensité (par exemple, un réseau de valeurs, chaque valeur allant de 0 à 255) qui cartographient les valeurs de profondeur, plutôt que les valeurs de profondeur elles-mêmes. Les données de profondeur définissent ainsi un nuage de points 3D. De manière similaire, les données d'image peuvent prendre un grand nombre de formes, en fonction du capteur d'image utilisé (par exemple, par le dispositif 103) pour capturer les données d'image. Par exemple, le capteur d'image 104 peut capturer des ensembles de données d'image, comprenant chacun un réseau de pixels, chaque pixel contenant une valeur d'image (par exemple, une valeur de couleur RVB).
[0025] Dans certains exemples, le dispositif 103 peut être configuré pour capturer simultanément des données d'image et des données de profondeur en utilisant le capteur d'image 104 et le capteur de profondeur 105, respectivement. Le dispositif 103 peut en outre être configuré pour mémoriser une association de données d'image et de données de profondeur dans le référentiel 132. Par exemple, le référentiel 132 peut mémoriser un mappage des pixels d'image provenant du réseau de pixels de données d'image vers les pixels de profondeur provenant du réseau de données de profondeur. Dans certains exemples, le mappage peut être un mappage un-vers-un entre les réseaux de pixels, tandis que dans d'autres exemples, le mappage peut être un mappage un-vers-plusieurs ou un mappage plusieurs-vers-un, conformément aux résolutions respectives du capteur d'image 104 et du capteur de profondeur 105. Plus généralement, les données de profondeur et les données d'image sont enregistrées les unes avec les autres, de sorte qu'une mesure de profondeur donnée, par sa position dans le réseau de mesures de profondeur, corresponde (c’est-à-dire, représente la même partie de l’espace de paquets 110) à un pixel d'image ou à un groupe de pixels connu dans les données d'image.
[0026] Avec référence maintenant à la Fig. 2, avant de décrire le fonctionnement de l'application 128 pour déterminer un emplacement pour le placement d'un paquet, certains composants de l'application 128 vont être décrits plus en détail. Comme cela sera évident aux hommes du métier, dans d'autres exemples, les composants de l'application 128 peuvent être séparés en des applications distinctes, ou combinés en d'autres ensembles de composants. Certains ou la totalité des composants illustrés sur la Fig. 2 peuvent également être mis en œuvre en tant que composants matériels dédiés, tels qu'un ou plusieurs ASIC ou FPGA. Par exemple, dans un mode de réalisation, pour améliorer la fiabilité et la vitesse de traitement, au moins certains des composants de la Fig. 2 sont programmés directement dans le contrôleur de formation d'image 120, qui peut être un FGPA ou un ASIC ayant une configuration de circuit et de mémoire spécifiquement conçue pour optimiser le traitement d'image d'un grand volume de données de capteur reçues du dispositif de formation d'image 103. Dans un tel mode de réalisation, certaines ou la totalité des applications de commande 128, examinées ci-dessous, sont un FGPA ou une puce d'ASIC.
[0027] L'application de commande 128 comprend un préprocesseur 200 configuré pour obtenir des données d'image et des données de profondeur représentant l'espace de paquets 110 et effectuer des opérations de filtrage sur les données capturées. L'application de commande 128 comprend également un gestionnaire d'occlusion 204 configuré pour détecter et remplacer une partie occluse des données capturées. L'application de commande 128 comprend également un module de placement de paquet 208 configuré pour recadrer un amas de paquets, générer une matrice d'occupation 2D, et générer un emplacement pour le placement du paquet sur la base de la matrice d'occupation. L'emplacement pour le placement du paquet est optimisé pour la qualité et la stabilité de chargement ainsi que l’espace dans l'espace de paquets 110. L'application de commande 128 comprend également un module de sortie 212 configuré pour présenter une indication de l'emplacement pour le placement du paquet.
[0028] La fonctionnalité de l'application de commande 128 va maintenant être décrite plus en détail. Avec référence à la Fig. 3, un procédé 300 de détermination d'un emplacement pour le placement d'un paquet est montré. Le procédé 300 va être décrit conjointement avec son exécution sur le système 100 et avec référence aux composants illustrés sur la Fig. 2. Autrement dit, dans l'examen ci-dessous, le paquet est un paquet 116 et l'emplacement pour le placement à déterminer est un emplacement dans l'espace de paquets 110. Dans d'autres exemples, un emplacement pour le placement d'autres paquets dans d'autres espaces de paquet peut être déterminé par l'exécution du procédé 300.
[0029] Au bloc 303, le contrôleur 120, et en particulier le préprocesseur 200, est configuré pour recevoir un balayage de code à barres du paquet 116 à charger. Le balayage de code à barres peut correspondre à un identifiant de paquet du paquet 116. Par exemple, le chargeur 108 peut utiliser un scanner de code à barres pour scanner un code à barres associé au paquet 116. Dans d'autres exemples, le préprocesseur 200 peut recevoir une indication différente de l'identifiant de paquet du paquet 116. Par exemple, l'identifiant de paquet peut être entré manuellement, sélectionné dans une liste, reçu à partir de la lecture d'une étiquette RFID (identification radiofréquence) ou NFC (communication en champ proche) par l'intermédiaire d'un dispositif de lecteur correspondant, ou autrement fourni au préprocesseur 200. Dans certains exemples, le scanner de code à barres ou un autre dispositif de fourniture d'identifiant de paquet peut être intégré avec le dispositif de rétroaction 106 (par exemple, une application de balayage de code à barres ou une application de gestion de paquets d’un téléphone intelligent). Le préprocesseur 200 est configuré pour rechercher l'identifiant dans le référentiel 132 et obtenir les métadonnées de paquet, telles que le poids, les dimensions, la destination du paquet et ainsi de suite, associées à l'identifiant de paquet et mémorisées dans le référentiel 132. Dans d'autres exemples, les métadonnées de paquet peuvent être mémorisées à distance, par exemple sur un serveur à distance, et le dispositif informatique 101 peut être configuré pour demander les métadonnées de paquet au serveur à distance.
[0030] Au bloc 305, le contrôleur 120, et en particulier le préprocesseur 200, est configuré pour obtenir les données d'image et les données de profondeur capturées par le capteur d'image 104 et le capteur de profondeur 105, respectivement, et correspondant à l'espace de paquets 110. Autrement dit, dans le présent exemple, les données de profondeur correspondent à l'espace de paquets 110 contenant les paquets chargés 114 associés à la paroi de paquets 112, les paquets empilés et en file d’attente 116 à charger, le conteneur, et le chargeur 108 ou n'importe quelles autres occlusions dans l'espace de paquets 110. Les données de profondeur obtenues au bloc 305 sont, par exemple, capturées par le dispositif de formation d'image 103 et mémorisées dans le référentiel 132. Le préprocesseur 200 est par conséquent configuré, dans l'exemple ci-dessus, pour obtenir les données de profondeur en récupérant les données dans le référentiel 132. Dans d'autres exemples, le préprocesseur 200 est configuré pour commander le dispositif 103 pour capturer les données d'image et les données de profondeur.
[0031] L'application de commande 128 est ensuite configurée pour avancer au bloc 310. Au bloc 310, le préprocesseur 200 est configuré pour effectuer une ou plusieurs opérations de prétraitement sur les données de profondeur. Dans le présent exemple, les opérations de prétraitement comprennent l'étalonnage des données de profondeur, le filtrage de bruit, et l’abandon des ensembles de données de profondeur avec une proportion élevée de valeurs de profondeur manquantes.
[0032] Avec référence à la Eig. 4, un procédé 400 d'exécution d’opérations de prétraitement est représenté.
[0033] Au bloc 405, le préprocesseur 200 détermine une proportion de données de profondeur manquantes. Les données de profondeur manquantes peuvent comprendre des mesures de profondeur dans le réseau pour lequel aucune valeur de profondeur n'a été obtenue (par exemple, du fait d’une obstruction suffisamment proche du capteur 105 pour empêcher le capteur 105 d’obtenir une lecture), ou des mesures de profondeur dans le réseau qui ont été abandonnées. Par exemple, lorsqu'un chargeur ou une autre occlusion se trouve à proximité du capteur 105, les valeurs de profondeur obtenues peuvent être au-dessous d'une distance de seuil minimum prédéfinie, et peuvent ainsi être supposées imprécises et abandonnées.
[0034] Au bloc 410, lorsque la proportion est au-dessus d'un seuil prédéfini (par exemple, 50 à 60 %), le préprocesseur 200 est configuré pour abandonner les données de profondeur et retourner au bloc 305 du procédé 300 pour obtenir de nouvelles données de profondeur. Lorsque la proportion est au-dessous du seuil prédéfini, le préprocesseur 200 est configuré pour avancer au bloc 415.
[0035] Au bloc 415, le préprocesseur 200 est configuré pour étalonner les données de profondeur et faire tourner le nuage de points de sorte que le plan de la paroi de paquets 112 soit perpendiculaire à l'angle d'observation du dispositif de formation d'image 103. Dans le présent exemple, le préprocesseur 200 utilise deux itérations d'un ajustement de plan de consensus d'échantillon aléatoire (RANSAC). Dans la première itération, un ajustement de plan de RANSAC est appliqué à l'ensemble entier de données de profondeur telles qu'obtenues au bloc 305 pour obtenir un sous-ensemble de données de profondeur représentant les emplacements approximatifs des plans principaux définissant le conteneur (c’est-à-dire, les parois latérales, le plancher et le plafond du conteneur). Dans la deuxième itération, un ajustement de plan de RANSAC est appliqué au sous-ensemble de données de profondeur pour obtenir un ajustement de plan plus précis. Le préprocesseur 200 détermine ensuite un angle d'un ou de plusieurs des plans (par exemple, le plan de la paroi arrière) et le compare à un angle prédéterminé (par exemple, 90 degrés par rapport au capteur de profondeur 105) pour déterminer un angle de rotation. Le préprocesseur 200 fait ensuite tourner le nuage de points de l'angle de rotation. Ainsi, dans le présent exemple, le plan de la paroi arrière est tourné pour être orthogonal à l'angle de caméra.
[0036] Au bloc 420, le préprocesseur 200 est configuré pour filtrer le bruit des données de profondeur. Spécifiquement, pour un point donné dans le nuage de points, le préprocesseur 200 sélectionne un rayon et un nombre seuil de points pour appliquer un filtre d'observation aberrante de rayon. Pour le point donné, le préprocesseur 200 détermine s'il y a au moins le nombre seuil de points dans le nuage de points dans les limites d’une sphère centrée au niveau du point donné et ayant le rayon sélectionné. Lorsque le point donné n'a pas au moins le nombre seuil de points dans le nuage de points avec la sphère ayant le rayon sélectionné, le point donné est déterminé comme étant du bruit, et la valeur de profondeur est abandonnée. Dans certains exemples, le filtrage de bruit au bloc 420 est effectué avant le bloc 405 pour déterminer la proportion de données de profondeur manquantes compte tenu du bruit abandonné.
[0037] Dans le présent exemple, le préprocesseur 200 est en outre configuré pour modifier les paramètres du filtre d'observation aberrante de rayon sur la base de la valeur de profondeur du point sélectionné pour représenter la distance par rapport au capteur de profondeur 105. Pour les points plus proches du capteur de profondeur 105, le rayon est plus petit, et le nombre seuil de points est plus grand. Pour les points plus éloignés du capteur de profondeur 105, le rayon est plus grand, et le nombre seuil de points est plus petit.
[0038] La Lig. 5 illustre une application du filtre d'observation aberrante de rayon variable par le préprocesseur 200. En particulier, le filtre d'observation aberrante de rayon variable est appliqué à un premier point 512-1 et à un deuxième point 512-2 dans un espace de paquets 510. Dans l'exemple de la Lig. 5, le premier point 512-1 est proche de la paroi de paquets, tandis que le deuxième point 512-2 est proche de l’extrémité de chargement de l'espace de paquets, ainsi le point 512-1 est plus éloigné du capteur de profondeur 105 que le point 512-2.
[0039] La Lig. 5 montre en outre des illustrations agrandies des régions 514-1 et 514-2 du nuage de points contenant le premier point 512-1 et le deuxième point 512-2, respectivement. Etant donné que la région 514-1 est plus éloignée du capteur de profondeur 105 que la région 514-2, le nuage de points de la région 514-1 est moins peuplé et a une densité de pixels de profondeur plus faible que le nuage de points de la région 514-2. C'est à dire que chaque point dans le nuage de points de la région 514-1 représente une plus grande zone physique qu'un point dans le nuage de points de la région 514-2. Ainsi, les filtres d'observation aberrante de rayon 516-1 et 516-2 sont modifiés pour s'adapter à la différence de granularité des données de profondeur et pour maintenir une qualité de filtrage de bruit similaire. Par exemple, le filtre d'observation aberrante de rayon 516-1 pour le point 512-1 peut avoir un rayon rl de 8 cm et un nombre seuil de points égal à 4. Dans l'exemple de la Fig. 5, le point 512-1 a 5 points dans le rayon rl du filtre d'observation aberrante de rayon 516-1, et ainsi le point 512-1 est un point valide. En revanche, le filtre d'observation aberrante de rayon 516-2 pour le point 512-2 peut avoir un rayon r2 de 2 cm et un nombre seuil de points égal à 50. Dans l'exemple de la Fig. 5, le point 512-2 a également 5 points dans le rayon r2 du filtre d'observation aberrante de rayon 516-2, et ainsi est considéré comme du bruit. C'est à dire que, étant donné que le point 512-2 a une densité de pixels de nuage de points plus élevée, il est attendu que pour un point valide, un plus grand nombre de points seront voisins (c’est-à-dire dans les limites d’une sphère centrée autour du point 512-2).
[0040] De retour à la Fig. 3, l'application de commande 128 est ensuite configurée pour avancer au bloc 315. Au bloc 315, le contrôleur 120, et plus spécifiquement le gestionnaire d'occlusion 204, est configuré pour déterminer si une partie occluse des données de profondeur prétraitées est détectée. La partie occluse représente une zone de l'espace de paquets obstruée par une occlusion, spécifiquement, le chargeur 108. Lorsqu'une partie occluse est détectée, l'application de commande 128 avance au bloc 320. Au bloc 320, le gestionnaire d'occlusion 204 est configuré pour remplacer la partie occluse par des données non obstruées pour générer des données corrigées.
[0041] Avec référence maintenant à la Fig. 6, un procédé 600 de détection et de remplacement d'une partie occluse est montré. En particulier, le gestionnaire d'occlusion 204 est configuré pour effectuer le procédé 600 en utilisant les données de profondeur prétraitées générées au bloc 310. L'exécution du procédé 600 résulte en une séquence 700 de données d'image et de résultats de données de profondeur montrés sur la Fig. 7. Par conséquent, le procédé 600 de la Fig. 6 et la séquence 700 de la Fig. 7 vont être décrits en tandem.
[0042] Au bloc 605, le gestionnaire d'occlusion 204 est configuré pour obtenir des données d'image 705 capturées par le capteur d'image 104 et correspondant à l'espace de paquets 110. Dans le présent exemple, les données d'image 705 représentent un espace de paquets comprenant des paquets 114 et 116 et un chargeur 108. Les données d'image 705 obtenues au bloc 605 sont, par exemple, capturées par le capteur d'image 104 simultanément avec les données de profondeur capturées par le capteur de profondeur 105 et mémorisées dans le référentiel 132. Le gestionnaire d'occlusion 204 est par conséquent configuré, dans l'exemple ci-dessus, pour obtenir les données d'image en récupérant les données d'image dans le référentiel 132.
[0043] Au bloc 610, le gestionnaire d'occlusion 204 est configuré pour recadrer les données d'image 705 obtenues au bloc 605 pour générer des données d'image recadrées 710. Spécifiquement, le gestionnaire d'occlusion 204 peut recadrer les données d'image 705 conformément à un rapport d'aspect attendu par un détecteur d'occlusion du gestionnaire d'occlusion 204. En recadrant les données d'image et représentant le rapport d'aspect du détecteur d'occlusion, une distorsion et un retrait de forme des données d'image sont réduits.
[0044] Dans certains exemples, le gestionnaire d'occlusion 204 peut être configuré pour déterminer si une occlusion antérieure a été détectée dans une trame antérieure. Par exemple, le gestionnaire d'occlusion 204 peut se référer à des données de profondeur antérieures mémorisées dans le référentiel 132. Lorsqu'une occlusion antérieure a été détectée, le gestionnaire d'occlusion 204 établit un centre de recadrage à un centre de l'occlusion antérieure. Le gestionnaire d'occlusion 204 établit les dimensions de recadrage sur la base des dimensions de l'occlusion antérieure, d'une quantité de remplissage minimum prédéfinie et du rapport d'aspect attendu par le détecteur d'occlusion. Par exemple, pour un système capturant des trames à 3 trames par seconde (fps), la quantité de remplissage minimum peut être de 100 pixels. A une fréquence de trame de 3 fps, et sur la base d'une distance maximum de laquelle un être humain peut se déplacer pendant ce temps, cette quantité de remplissage minimum permet au gestionnaire d'occlusion 204 de supposer en toute sécurité que le chargeur 108 restera dans les données d'image recadrées 710. Dans d'autres exemples, des systèmes fonctionnant à différentes fréquences de trame peuvent avoir une quantité de remplissage minimum différente définie pour permettre la supposition que le chargeur 108 restera dans les données d'image recadrées 710. Dans certains exemples, la quantité de remplissage minimum peut également varier en fonction de la valeur de profondeur de l'occlusion antérieure. Ainsi, le gestionnaire d'occlusion 204 suit l'occlusion lors des exécutions successives du procédé 300, par la capture de trames séparées (par exemple, un chargeur se déplaçant à différentes positions dans l’espace de paquets 110). Le suivi d'occlusions permet au gestionnaire d'occlusion 204 de fournir des données d'image recadrées 710 conformément au rapport d'aspect attendu par le détecteur d'occlusion, tout en maintenant l'occlusion dans les données d'image recadrées.
[0045] Dans l'exemple de la Fig. 7, les données d'image recadrées 710 suivent l'occlusion antérieure et sont ainsi centrées autour du point 711, représentant le centre de l'occlusion antérieure. Les dimensions du recadrage sont établies sur la base de l'occlusion antérieure et remplies au moins de la quantité de remplissage minimum. Les dimensions du recadrage peuvent en outre être remplies pour satisfaire au rapport d'aspect attendu par le détecteur d'occlusion.
[0046] Dans d'autres exemples, le gestionnaire d'occlusion 204 peut recadrer les données d'image conformément à des dimensions par défaut prédéfinies et sur la base d'un centre des données d'image capturées. Par exemple, lorsque le système s'initialise, lorsqu'aucune occlusion antérieure n'a été détectée (par exemple, parce que le chargeur 108 s’est déplacé hors de la vue du dispositif de formation d’imagel03), ou lorsqu’un suivi d'occlusion n’est pas autrement utilisé (par exemple, lorsque les données d’image/de profondeur sont capturées peu fréquemment), le gestionnaire d'occlusion 204 recadre les données d'image conformément à des dimensions par défaut prédéfinies autour du centre des données d'image capturées et conformément au rapport d'aspect attendu par le détecteur d'occlusion. Par exemple, pour un capteur d'image ayant une résolution de 1920 x 1080, les dimensions par défaut prédéfinies peuvent être de 1000 x 1000 pixels.
[0047] Au bloc 615, le gestionnaire d'occlusion 204 fournit les données d'image recadrées 710 au détecteur d'occlusion pour générer une région préliminaire 715 approchant l'emplacement d'une occlusion. Le détecteur d'occlusion accepte les données d'image ayant une résolution prédéfinie. Par conséquent, les données d'image recadrées 710 générées au bloc 610 sont recadrées sur la base de la résolution prédéfinie. Dans certains exemples, les données d'image recadrées 710 peuvent être recadrées pour avoir le même rapport d'aspect, ainsi, au bloc 615, le gestionnaire d'occlusion 204 peut réduire la taille des données d'image recadrées 710 avant de fournir les données d'image recadrées 710 au détecteur d'occlusion. Dans d'autres exemples, les données d'image recadrées 710 peuvent être recadrées à la résolution prédéfinie acceptée par le détecteur d'occlusion. Dans l'exemple de la Lig. 7, l'occlusion identifiée par la région préliminaire 715 est le chargeur 702.
[0048] Le détecteur d'occlusion peut comprendre une GPU utilisant des algorithmes d'apprentissage automatique pour générer une région préliminaire représentant une occlusion, spécifiquement le chargeur 108, dans l'espace de paquets 110. Par exemple, le détecteur d'occlusion peut utiliser un réseau neuronal à convolution tel que YOLO (You Only Look Once) ou Darknet, configuré pour identifier des visages humains. Dans certains exemples, le réseau neuronal ou un autre algorithme d'apprentissage automatique approprié peut être entraîné spécifiquement pour identifier le chargeur 108 dans un environnement de chargement tel que l'espace de paquets 110. Dans certains exemples, la région préliminaire 715 peut comprendre deux parties ou plus, chaque partie représentant un visage humain identifié par le détecteur d'occlusion.
[0049] Lorsqu'aucune occlusion n’est détectée au bloc 615, l'application de commande 128 est configurée pour avancer au bloc 325 du procédé 300, comme cela sera décrit davantage ci-dessous. Lorsqu'une occlusion est détectée et que la région préliminaire 715 est générée par le gestionnaire d'occlusion 204, l'application de commande 128 avance au bloc 620.
[0050] Au bloc 620, le gestionnaire d'occlusion 204 récupère un sous-ensemble des données de profondeur 720 correspondant aux données d'image dans la région préliminaire 715. Par exemple, le gestionnaire d'occlusion 204 peut rechercher le mappage des données d'image vers les données de profondeur mémorisées dans le référentiel 132 pour récupérer les données de profondeur 720.
[0051] Au bloc 625, le gestionnaire d'occlusion 204 détecte la partie occluse 725 dans le sous-ensemble des données de profondeur 720. Spécifiquement, le gestionnaire d'occlusion 204 sélectionne des groupes des données de profondeur 720 en comparant les données de profondeur 720 à des identifiants d'occlusion prédéfinis définissant les propriétés structurelles d'une occlusion attendue. Dans l'exemple de la Fig. 7, les identifiants d'occlusion peuvent comprendre des plages moyennes de hauteur, de largeur et de profondeur d'un visage humain pour sélectionner des groupes représentant le chargeur 108. Par exemple, le gestionnaire d'occlusion 204 peut utiliser, à une première étape, un groupement euclidien pour trouver des groupes candidats dans le sous-ensemble 720 du nuage de points. A une deuxième étape, le gestionnaire d'occlusion 204 compare les attributs des groupes candidats aux identifiants d'occlusion pour la sélection. Spécifiquement, le gestionnaire d'occlusion 204 sélectionne des groupes conformément à des hauteurs, des largeurs et des profondeurs minimums et maximums prédéfinies, et conformément à un nombre minimum de points dans le groupe. Par exemple, le gestionnaire d'occlusion 204 peut sélectionner une groupe unique ayant une hauteur entre 1 mètre (m) et 2 m, une largeur entre 0,5 m et 1 m et une profondeur entre 0,5 m et 1 m. Dans d'autres exemples, le gestionnaire d'occlusion 204 peut sélectionner plusieurs groupes conformément à des parties de corps humain (par exemple, un groupe de tête, un groupe de torse, et un ou plusieurs groupes de membres). Ainsi, les groupes sélectionnés (c’est-à-dire, la partie occluse 725) forment une approximation d'un visage humain. Dans le présent exemple, la partie occluse 725 est montrée en tant que cadre, cependant, dans d'autres exemples, la partie occluse 725 peut être les zones représentées par les groupes sélectionnés.
[0052] Lorsque la région préliminaire 715 comprend deux parties ou plus, le gestionnaire d'occlusion 204 est configuré pour sélectionner des groupes représentant une approximation d'un visage humain dans chaque partie. Autrement dit, le gestionnaire d'occlusion 204 recherche un chargeur 702 dans chaque partie de la région préliminaire. Lorsqu'aucun groupe n'est sélectionné au bloc 625 (c’est-à-dire qu’aucun groupe dans la région préliminaire ne satisfait aux valeurs d’identifiant d’occlusion de seuil), le gestionnaire d'occlusion 204 détermine au bloc 315 du procédé 300 qu'aucune occlusion n'est détectée et avance au bloc 325 du procédé 300.
[0053] Au bloc 630, le gestionnaire d'occlusion 204 récupère les données de profondeur non obstruées mémorisées représentant la zone de l'espace de paquets en l'absence de l'occlusion (c’est-à-dire, la zone contenant le chargeur 108). Par exemple, le ges tionnaire d'occlusion 204 récupère les données de profondeur non obstruées mémorisées dans le référentiel 132. La mise à jour des données de profondeur non obstruées sera examinée plus en détail ci-dessous. En particulier, le dispositif de formation d'image 103 est supposé être fixe par rapport à l'espace de paquets 110, et ainsi les pixels ayant les mêmes coordonnées de pixel dans le réseau de pixels sont supposés représenter une même zone de l'espace de paquets. Par conséquent, le gestionnaire d'occlusion 204 est configuré pour récupérer une partie 730 des données de profondeur non obstruées ayant les mêmes coordonnées de pixel que la partie occluse 725. Dans certains exemples, le gestionnaire d'occlusion 204 peut en outre récupérer les données d'image non obstruées mémorisées associées aux données de profondeur non obstruées 730, par exemple, telles que définies par le mappage des données d'image vers les données de profondeur mémorisées dans le référentiel 132. Dans le présent exemple, la partie 730 comprend un paquet 114 qui a été occlus par le chargeur 108.
[0054] Au bloc 635, le gestionnaire d'occlusion 204 remplace la partie occluse 725 par la partie 730 des données de profondeur non obstruées pour générer des données de profondeur corrigées 735. Lorsque le gestionnaire d'occlusion 204 récupère les données d'image non obstruées, le gestionnaire d'occlusion 204 remplace les données d'image associées à la partie occluse par les données d'image non obstruées 736. Ainsi, le gestionnaire d'occlusion 204 génère des données de profondeur et des données d'image corrigées représentant l'espace de paquets en l'absence de l'occlusion. L'application de commande 128 est ensuite configurée pour avancer au bloc 330 du procédé 300.
[0055] De retour à la Fig. 3, lorsqu'aucune occlusion n'est détectée au bloc 315, et en particulier au bloc 615 du procédé 600, l'application de commande 128 est configurée pour avancer au bloc 325. Au bloc 325, le contrôleur 120, et en particulier le gestionnaire d'occlusion 204, est configuré pour déterminer si une occlusion a été détectée dans un nombre seuil d'ensembles antérieurs de données de profondeur. En particulier, avant la capture des données de profondeur actuelles, le contrôleur 120 obtient une pluralité d'ensembles antérieurs de données de profondeur (par exemple, à partir de trames antérieures). Lorsqu'aucune occlusion n'est détectée pour les données de profondeur actuelles, et qu'aucune occlusion n'a été détectée pour un nombre seuil de la pluralité d'ensembles antérieurs de données de profondeur, l'application de commande 128 est configurée pour avancer au bloc 330. Par exemple, après 5 secondes sans détection du chargeur 108 (c’est-à-dire un nombre seuil de 15 ensembles de données de profondeur à un débit de trame de 3 fps), il est supposé que le chargeur 108 n'est pas dans l'espace de paquets 110. Au bloc 330, le gestionnaire d'occlusion 204 mémorise les données de profondeur actuelles (c’est-à-dire les données de profondeur telles que capturées à l’origine, dans lesquelles aucune occlusion n’a été détectée, ou les données corrigées, comme décrit davantage ci-dessous) en tant que données de profondeur non obstruées. En plus, les données d'image actuelles peuvent être mémorisées en tant que données d'image non obstruées. [0056] Par exemple, si au bloc 315, le gestionnaire d'occlusion 204 produit un faux résultat négatif (c’est-à-dire que le gestionnaire d’occlusion 204 ne détecte pas d’occlusion, mais une occlusion est présente), le bloc 325 réalise un contrôle pour réduire la probabilité de sauvegarde du faux résultat négatif en tant que données non obstruées mises à jour et préserve l'intégrité des données de profondeur non obstruées. Spécifiquement, si une occlusion a été détectée dans la trame antérieure, il est peu vraisemblable que l'occlusion ait complètement quitté le champ d'une vision du dispositif de formation d'image 103 (par exemple, à un débit de trame de 3 fps, un chargeur ne peut pas se déplacer suffisamment rapidement pour être présent dans une trame et absent dans la suivante), ainsi l'application de commande 128 avance au bloc 305 pour obtenir de nouvelles données de profondeur. D'autre part, si au bloc 325, aucune occlusion n'est détectée pour un nombre seuil d'ensembles de données de profondeur, il peut être raisonnablement supposé qu'aucune occlusion n'est présente (par exemple, le chargeur a en effet quitté le champ de vision du dispositif de formation d’image 103), et ainsi l'application de commande 128 avance au bloc 330 pour mémoriser les données de profondeur actuelles en tant que données de profondeur non obstruées.
[0057] Dans certains exemples, le nombre seuil d'ensembles antérieurs de données de profondeur peut être modifié sur la base de la distance de l'occlusion la plus récemment détectée au bord de la trame et/ou de la fréquence de capture de données de profondeur. Par exemple, si un chargeur se trouve à proximité du bord de la trame, le nombre de trames requises pour quitter le champ de vision du dispositif de formation d'image 103 est inférieur à celui lorsque le chargeur se trouve au centre de la trame. [0058] Dans l'exemple ci-dessus, le procédé 300 peut encore résulter en la sauvegarde dans certains cas de faux négatifs en tant que données non obstruées (c’est-à-dire, la sauvegarde de trames où un chargeur est visible en tant que données non obstruées), résultant en ce que les images suivantes sont corrigées avec les données non obstruées « sales ». Cependant, le déplacement du chargeur dans l'espace de paquets provoquera, dans le temps, la correction des données non obstruées « sales » avec des données non obstruées propres.
[0059] Dans d'autres exemples, au bloc 330, le gestionnaire d'occlusion 204 ne met les données non obstruées à jour qu’avec des données corrigées. Autrement dit, les trames dans lesquelles aucun chargeur n'a été détecté ne sont pas supposées représenter des données non obstruées. Dans cet exemple, le procédé 300 peut comprendre une étape d'initialisation pour mémoriser les premières données de profondeur et données d'image capturées en tant que données non obstruées, dans lesquelles la première trame est supposée ne pas être obstruée. Par exemple, l'étape d'initialisation peut être effectuée à la mise sous tension du dispositif informatique 101. L'étape d'initialisation peut comprendre en outre l'affichage d'un message, par exemple sur le dispositif de rétroaction 106 pour ordonner au chargeur de rester hors de la remorque pour capturer une première trame non obstruée. Les parties occluses des trames suivantes sont par conséquent corrigées en utilisant les données non obstruées, et les images corrigées (c’est-à-dire dont les parties occluses ont été remplacées par les données non obstruées) sont mémorisées en tant que données non obstruées pour les futures trames.
[0060] Au bloc 335, le contrôleur 120, et en particulier le module de placement de paquet 208, obtient un emplacement pour le paquet balayé au bloc 303.
[0061] Avec référence maintenant à la Fig. 8, un procédé 800 d'obtention d'un emplacement pour le paquet est représenté. En particulier, le module de placement de paquet 208 est configuré pour effectuer le procédé 800 en utilisant les données de profondeur non obstruées 735 provenant du bloc 330. L'exécution du procédé 800 résulte en une séquence 900 de résultats de données d'image et de données de profondeur montrés sur la Fig. 7. Par conséquent, le procédé 800 de la Fig. 8 et la séquence 900 de la Fig. 9 vont être décrits en tandem.
[0062] Au bloc 805, le module de placement de paquet 208 détecte une partie d’amas de paquets des données de profondeur non obstruées. Dans le présent exemple, les données de profondeur non obstruées représentent l'espace de paquets 110 comprenant la paroi de paquets 112, et une partie d’amas de paquets 905. Le module de placement de paquet 208 détecte la paroi de paquets 112 de l'espace de paquets, par exemple en utilisant un algorithme de groupement à k moyennes sur le nuage de points de l'espace de paquets 110 pour identifier différents objets (par exemple, les paquets 116 ou la paroi de paquets 112) dans le nuage de points. La paroi de paquets 112 est ensuite identifiée sur la base des qualités de l'objet. Par exemple, la paroi de paquets 112 peut être identifiée comme l'objet ou le groupe d'objets ayant les valeurs de profondeur les plus élevées, ou l'objet le plus grand, ou d'autres identifiants appropriés. Le module de placement de paquet 208 est en outre configuré pour établir un seuil de distance. Par exemple, le module de placement de paquet 208 peut définir une valeur de distance unique représentative de la paroi de paquets 112 telle qu'identifiée à partir du groupement à k moyennes. Par exemple, la valeur de distance peut être la valeur de profondeur moyenne des points associés à la paroi de paquets 112, ou la valeur de distance minimum des points associés à la paroi de paquets 112. Le module de placement de paquet 208 établit ensuite le seuil de distance sur la base de la valeur de distance de la paroi de paquets et d'une valeur de remplissage de distance. Par exemple, la valeur de remplissage de distance peut être une mesure prédéfinie (par exemple, cm à l’avant de la paroi de paquets). Dans d'autres exemples, la valeur de remplissage de distance peut être variable, par exemple, un écart type calculé de tous les points dans le nuage de points. Dans cet exemple, la valeur de remplissage de distance peut comprendre la distance de la paroi de paquets 112 par rapport au capteur de profondeur 105 en représentant tous les autres points dans le nuage de points. Le module de placement de paquet 208 identifie les points des données de profondeur non obstruées ayant une plus petite distance que le seuil de distance. Ces points définissent la partie d’amas de paquets 905. Dans certains exemples, la partie d’amas de paquets 905 peut comprendre des paquets empilés et en file d’attente. Dans d'autres exemples, la partie d’amas de paquets 905 peut comprendre des parties du conteneur, comprenant les parois latérales, le plancher et le plafond.
[0063] Au bloc 810, le module de placement de paquet 208 recadre la partie d’amas de paquets 905 pour générer des données de profondeur recadrées 910. Etant donné que des paquets seront chargés au niveau ou à proximité de la paroi de paquets 112, la partie d’amas de paquets fournit des données sans rapport non pertinentes pour placer le paquet. Ainsi, le module de placement de paquet 208 génère les données de profondeur recadrées 910 en se focalisant sur la paroi de paquets pour le traitement au bloc 815.
[0064] Au bloc 815, le module de placement de paquet 208 génère une matrice d'occupation 2D sur la base des données de profondeur recadrées 910. Par exemple, le module de placement de paquet 208 peut extraire les mesures de profondeur de chaque point dans les données de profondeur recadrées 910 pour générer une carte de profondeur 2D (c’est-à-dire, la matrice d’occupation). Le module de placement de paquet 208 segmente ensuite la paroi de paquets 112 en régions 915 de la matrice d'occupation. Par exemple, les régions 915 peuvent être détectées dans un espace 2D en utilisant une fonction de segmentation à décalage moyen. Spécifiquement, la fonction de segmentation à décalage moyen identifie différents objets dans la matrice d'occupation 2D. Dans l'exemple de la Fig. 9, la région 915-1 correspond au paquet 114-1, la région 915-2 correspond au paquet 114-2, et la région 915-3 correspond à la partie de la paroi arrière du conteneur n'ayant pas de paquets chargés 114 empilés à l'avant. Chaque région 915 est transformée pour fermer les trous et éliminer le bruit, par exemple en appliquant une opération d'érosion morphologique suivie d'une opération de dilatation. Les régions 915 sont ensuite ajustées dans des polygones de 3 segments de droite ou plus. Le module de placement de paquet 208 identifie les segments de droite sensiblement horizontaux 916 représentant des surfaces plates pour le placement de paquet.
[0065] Au bloc 820, le module de placement de paquet 208 obtient un emplacement dans l'espace de paquets pour le placement du paquet. En particulier, le module de placement de paquet 208 utilise la matrice d'occupation, les régions 915 et les segments de droite horizontaux 916 compte tenu des métadonnées du paquet (par exemple, les dimensions, le poids, la destination, etc. du paquet obtenus au bloc 303) pour obtenir un emplacement pour le placement du paquet.
[0066] De retour à la Fig. 3, l'application de commande 128 est ensuite configurée pour avancer au bloc 340. Au bloc 340, le contrôleur 120, et en particulier le module de sortie, est configuré pour présenter une indication de l'emplacement obtenu au bloc 335.
[0067] En particulier, le module de sortie 212 est configuré pour communiquer avec le dispositif de rétroaction 106 pour présenter l'indication. Dans certains exemples, le dispositif de rétroaction peut comprendre un téléphone intelligent, une tablette, un dispositif portable, etc. et la présentation de l'indication comprend l'affichage d'une image à réalité augmentée sur le dispositif. C'est à dire que le dispositif 106 affiche les données d'image non obstruées et superpose une indication visuelle, telle qu'un contour ou un paquet reproduit numériquement à l'emplacement généré au bloc 335. Dans d'autres exemples, le dispositif de rétroaction 106 peut être un dispositif de pointage orientable configuré pour projeter l'indication dans l'espace de paquets. Par exemple, le dispositif de pointage orientable peut être accouplé de manière mobile à un cadre pour la navigation, et le module de sortie 212 peut être configuré pour commander et diriger le déplacement du dispositif de pointage orientable. Le dispositif de pointage orientable comprend également par conséquent un élément d'affichage, tel qu'un projecteur, une pluralité de pointeurs laser, ou similaire, pour projeter une indication du paquet, tel qu'un contour ou un paquet reproduit numériquement, directement sur l'emplacement dans l'espace de paquets 110. Dans encore d'autres exemples, le dispositif de rétroaction 106 peut comprendre un dispositif audio, par exemple, des haut-parleurs connectés au dispositif informatique 101, ou intégrés avec une tablette, un téléphone intelligent, un dispositif portable, etc. Le module de sortie 212 peut être configuré pour commander le haut-parleur pour fournir une communication audio en tant qu'indication.
[0068] Des variantes des systèmes et procédés ci-dessus sont envisagées. Par exemple, le système 100 peut être déployé dans un environnement dans lequel une pluralité de conteneurs, ayant chacun un espace de paquets 110 respectif, sont remplis à partir d’une alimentation commune de paquets. Dans un tel déploiement, le système peut comprendre une pluralité de dispositifs de formation d'image, configurés chacun pour capturer des données pour un conteneur respectif. En outre, le dispositif informatique 101 peut être configuré pour traiter les données capturées à partir de la pluralité de conteneurs en parallèle, et pour sélectionner un emplacement de placement pour un paquet donné dans l'un quelconque des conteneurs.
[0069] Autrement dit, à la suite de l'exécution du bloc 303, le dispositif informatique 101 peut être configuré pour exécuter une pluralité d'instances des blocs 305 à 330 en parallèle (une instance par conteneur). Le dispositif informatique 101 peut en outre être configuré, ayant achevé les instances parallèles des blocs 305 à 330, pour effectuer les étapes des blocs 335 et 340 pour le paquet unique scanné au bloc 303 sur la base d'une pluralité de cartes de profondeur distinctes. Ainsi, un emplacement peut être sélectionné et indiqué pour un paquet dans l'un quelconque de la pluralité de conteneurs. L'indication présentée au bloc 340 peut par conséquent comprendre non seulement l'emplacement sélectionné dans un espace de paquets 110 donné, mais également un identifiant de l'espace de paquets (par exemple, l’un d’un ensemble d’) dans lequel le paquet doit être placé.
[0070] Dans d’autres modes de réalisation, le dispositif de capture de données, au lieu d'être positionné à l’extrémité ou à proximité de l’extrémité de chargement d'un conteneur comme mentionné précédemment, peut être installé sur le chargeur 108. Par exemple, le chargeur peut être équipé d'un dispositif à réalité augmentée comprenant non seulement un afficheur, mais également une caméra de profondeur ou d'autres capteurs appropriés (par exemple, un afficheur tête haute incorporant un capteur de profondeur et une caméra). Le dispositif 101 est configuré pour obtenir un emplacement du chargeur (plus spécifiquement, du dispositif à réalité augmentée), ainsi que les données de profondeur et d'image capturées par le dispositif. Un tel dispositif peut compléter ou remplacer le dispositif de formation d'image 103 fixe mentionné ci-dessus.
[0071] Dans la description qui précède, des modes de réalisation spécifiques ont été décrits. Cependant, un homme du métier appréciera que divers modifications et changements peuvent être effectués sans s'écarter de l'étendue de l'invention telle qu'exposée dans les revendications qui suivent. Par conséquent, la description et les figures doivent être considérées dans un sens illustratif plutôt que limitatif, et toutes ces modifications sont destinées à être incluses dans l'étendue des présents enseignements.
[0072] Les bénéfices, avantages, solutions aux problèmes, et tous les éléments qui peuvent apporter ou accentuer un bénéfice, un avantage, ou une solution quelconque ne doivent pas être interprétés comme des caractéristiques ou des éléments critiques, requis, ou essentiels de l'une quelconque ou de l’ensemble des revendications. L'invention est seulement définie par les revendications jointes comprenant tous les amendements effectués pendant la litispendance de la présente demande et tous les équivalents de ces revendications telles que publiées.
[0073] De plus, dans le présent document, les termes relationnels tels que premier et deuxième, haut et bas et similaires peuvent être utilisés seulement pour distinguer une entité ou une action d'une autre entité ou d'une autre action sans exiger ou impliquer nécessairement une quelconque relation réelle ou un quelconque ordre réel entre ces entités ou actions. Les termes « comprend », « comprenant », « a », « ayant », « inclut, « incluant », « contient », « contenant » ou toute autre variante de ceux-ci, sont destinés à couvrir une inclusion non exclusive, de sorte qu'un processus, un procédé, un article, ou un appareil qui comprend, a, inclut, contient une liste d'éléments ne comprend pas uniquement ces éléments, mais peut comprendre d'autres éléments non énumérés expressément ou inhérents à ce processus, procédé, article, ou appareil. Un élément précédé de « comprend ... un », « a ... un », « inclut... un », « contient... un » n'exclut pas, sans plus de contraintes, l'existence d'éléments identiques supplémentaires dans le processus, procédé, article, ou appareil qui comprend, a, inclut, contient l'élément. Le terme « un » est défini en tant qu'un ou plusieurs, sauf spécification contraire dans le présent document. Les termes « sensiblement », « essentiellement », « approximativement », « environ » ou n'importe quelle autre version de ceux-ci, sont définis comme « proche de » comme compris par un homme du métier, et, dans un mode de réalisation non limitatif, le terme est défini pour être dans les limites de 10 %, dans un autre mode de réalisation, dans les limites de 5 %, dans un autre mode de réalisation, dans les limites de 1 % et dans un autre mode de réalisation, dans les limites de 0,5 %. Le terme « couplé » tel qu'utilisé dans le présent document est défini comme connecté, bien que 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é de manières qui ne sont pas énumérées.
[0074] On appréciera que certains modes de réalisation peuvent être composés d'un ou de plusieurs processeurs génériques ou 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 de portes programmables sur site (FPGA) et d’instructions de programme mémorisées uniques (comprenant à la fois logicielles et matérielles) qui commandent lesdits un ou plusieurs processeurs pour mettre en œuvre, conjointement avec certains circuits non de processeurs, certaines, la plupart, ou la totalité des fonctions du procédé et/ou de l'appareil décrits dans le présent document. En variante, certaines ou la totalité des fonctions pourraient être mises en œuvre par une machine à états qui n'a pas d’instructions de programme mémorisées, ou dans un ou plusieurs circuits intégrés spécifiques à une application (ASIC), dans lesquels chaque fonction ou certaines combinaisons de certaines des fonctions sont mises en œuvre en tant que logique personnalisée. Bien entendu, une combinaison des deux approches pourrait être utilisée.
[0075] De plus, un mode de réalisation peut être mis en œuvre en tant que support de mémorisation pouvant être lu par un ordinateur sur lequel un code pouvant être lu par un ordinateur est mémorisé pour programmer un ordinateur (par exemple, comprenant un processeur) pour effectuer un procédé tel que décrit et revendiqué dans le présent document. Des exemples de ces supports de mémorisation pouvant être lus par un ordinateur comprennent, mais sans y être limités, un disque dur, un CD-ROM, un dispositif de mémorisation optique, un dispositif de mémorisation magnétique, une ROM (mémoire morte), une PROM (mémoire morte programmable), une EPROM (mémoire morte effaçable et programmable), une EEPROM (mémoire morte effaçable et programmable électriquement) et une mémoire flash. En outre, il est attendu qu'un homme du métier, néanmoins avec un éventuel effort significatif et de nombreux choix de conception motivés, par exemple, par le temps disponible, la technologie actuelle, et les considérations économiques, lorsqu'il est guidé par les concepts et les principes présentés dans le présent document, sera facilement capable de générer ces instructions logicielles et programmes et circuits intégrés avec une expérimentation minimale.
[0076] L'abrégé de l’invention est fourni pour permettre au lecteur d’établir rapidement la nature de l’invention technique. Il est soumis en sous-entendant qu'il ne sera pas utilisé pour interpréter ou limiter l'étendue ou la signification des revendications. De plus, dans la description détaillée qui précède, on peut voir que diverses caractéristiques sont groupées les unes avec les autres dans divers modes de réalisation en vue de rationaliser la description. Ce procédé de la description ne doit pas être interprété comme reflétant une intention que les modes de réalisation revendiqués nécessitent plus de caractéristiques que celles exposées expressément dans chaque revendication. Au lieu de cela, comme les revendications qui suivent le reflètent, l’objet de l'invention repose sur moins de caractéristiques que la totalité des caractéristiques d'un mode de réalisation présenté unique. Ainsi, les revendications qui suivent sont incorporées par le présent document dans la description détaillée, chaque revendication étant indépendante en tant qu’objet revendiqué séparément.

Claims (1)

  1. Revendications [Revendication 1] Procédé de détermination d'un emplacement pour le placement d'un paquet dans un contrôleur de formation d'image comprenant : - l'obtention de données de profondeur représentant un espace de paquets ; la détection d'une partie occluse des données de profondeur représentant une zone de l'espace de paquets obstruée par une occlusion ; - la récupération de données de profondeur non obstruées mémorisées représentant la zone de l'espace de paquets en l'absence de l'occlusion ; le remplacement de la partie occluse par les données de profondeur non obstruées pour générer des données de profondeur corrigées ; - l'obtention, sur la base des données de profondeur corrigées, d'un emplacement dans l'espace de paquets pour le placement d'un paquet ; et la présentation d'une indication de l'emplacement. [Revendication 2] Procédé selon la revendication 1, comprenant en outre : - la détection d'une partie d’amas de paquets des données de profondeur, la partie d’amas de paquets représentant un ou plusieurs paquets empilés ou en file d’attente dans l'espace de paquets ; et - le recadrage de la partie d’amas de paquets des données de profondeur. [Revendication 3] Procédé selon la revendication 2, dans lequel la détection de la partie d’amas de paquets des données de profondeur comprend : - la détection d'une paroi de paquets de l'espace de paquets ; - l'établissement d'un seuil de distance ; et - l'identification d'un ou de plusieurs sous-ensembles des données de profondeur ayant une distance plus petite que le seuil de distance, les sous-ensembles définissant la partie d’amas de paquets. [Revendication 4] Procédé selon la revendication 1, dans lequel la détection comprend : - l'obtention de données d'image de l'espace de paquets ; - l'identification d'une région préliminaire contenant l'occlusion en utilisant les données d'image ; - la récupération d'un sous-ensemble des données de profondeur correspondant aux données d'image dans la région préliminaire ; et - la détection de la partie occluse dans le sous-ensemble des données de profondeur. [Revendication 5] Procédé selon la revendication 4, dans lequel l'identification de la région préliminaire comprend : - le recadrage des données d'image ; et
    - la fourniture des données d'image recadrées à un détecteur d'occlusion pour générer la région préliminaire. [Revendication 6] Procédé selon la revendication 4, dans lequel la détection de la partie occluse comprend : - la sélection de groupes des données de profondeur en comparant les données de profondeur à des identifiants d'occlusion prédéfinis définissant les propriétés structurelles d'une occlusion attendue. [Revendication 7] Procédé selon la revendication 1, comprenant en outre la mémorisation des données de profondeur corrigées en tant que données de profondeur non obstruées. [Revendication 8] Procédé selon la revendication 1, comprenant en outre, avant la capture des données de profondeur : - l'obtention d'une pluralité d'ensembles antérieurs de données de profondeur ; - l'obtention de données de profondeur intermédiaires représentant l'espace de paquets ; et - lorsqu'aucune occlusion n'a été détectée pour les données de profondeur intermédiaires, et qu'aucune occlusion n'a été détectée pour un nombre seuil de la pluralité d'ensembles antérieurs de données de profondeur, la mémorisation des données de profondeur intermédiaires en tant que données de profondeur non obstruées. [Revendication 9] Procédé selon la revendication 1, comprenant en outre : - avant la détection de la partie occluse, la détermination d'une proportion de données de profondeur manquantes ; - lorsque la proportion est au-dessous d'un seuil prédéfini, la détection de la partie occluse ; et - lorsque la proportion est au-dessus du seuil prédéfini, l’abandon des données de profondeur. [Revendication 10] Procédé selon la revendication 1, dans lequel la présentation de l'indication comprend au moins l'un : de l'affichage d'une image à réalité augmentée, de la projection de l'indication par l'intermédiaire d'un dispositif de pointage orientable, et de la réalisation d'une communication audio. [Revendication 11] Procédé selon la revendication 1, comprenant en outre : avant l'obtention de l'emplacement, la réception d'un balayage de code à barres du paquet. [Revendication 12] Dispositif informatique (101) pour déterminer un emplacement pour le placement d'un paquet, le dispositif informatique (101) comprenant :
    - une interface de communication (124) couplée à un dispositif de capture de données ; - une mémoire (122) ; et - un contrôleur de formation d'image connecté à la mémoire (122) et à l'interface de communication (124), le contrôleur de formation d'image étant configuré pour : (i) obtenir des données de profondeur représentant un espace de paquets (ii) détecter une partie occluse des données de profondeur représentant une zone de l'espace de paquets obstruée par une occlusion ; (iii) récupérer des données de profondeur non obstruées mémorisées représentant la zone de l'espace de paquets en l'absence de l'occlusion ; (iv) remplacer la partie occluse par les données de profondeur non obstruées pour générer des données de profondeur corrigées ; (v) obtenir, sur la base des données de profondeur corrigées, un emplacement dans l'espace de paquets pour le placement d'un paquet ; et (vi) présenter une indication de l'emplacement. [Revendication 13] Dispositif informatique (101) selon la revendication 12, dans lequel le contrôleur de formation d'image est en outre configuré pour : - détecter une partie d’amas de paquets des données de profondeur, la partie d’amas de paquets représentant un ou plusieurs paquets empilés ou en file d’attente dans l'espace de paquets ; et - recadrer la partie d’amas de paquets des données de profondeur. [Revendication 14] Dispositif informatique (101) selon la revendication 13, dans lequel le contrôleur de formation d'image est en outre configuré pour détecter la partie d’amas de paquets des données de profondeur en : - détectant une paroi de paquets de l'espace de paquets ; - établissant un seuil de distance ; et - identifiant un ou plusieurs sous-ensembles des données de profondeur ayant une distance plus petite que le seuil de distance, les sous-ensembles définissant la partie d’amas de paquets. [Revendication 15] Dispositif informatique (101) selon la revendication 12, dans lequel le contrôleur de formation d'image est en outre configuré pour détecter une partie occluse en : - obtenant des données d'image de l'espace de paquets ; - identifiant une région préliminaire contenant l'occlusion en utilisant les données d'image ; - récupérant un sous-ensemble des données de profondeur cor-
    respondant aux données d'image dans la région préliminaire ; et - détectant la partie occluse dans le sous-ensemble des données de profondeur. [Revendication 16] Dispositif informatique (101) selon la revendication 15, dans lequel le contrôleur de formation d'image est en outre configuré pour identifier la région préliminaire en : - recadrant les données d'image ; et - fournissant les données d'image recadrées à un détecteur d'occlusion pour générer la région préliminaire. [Revendication 17] Dispositif informatique (101) selon la revendication 15, dans lequel le contrôleur de formation d'image est en outre configuré pour détecter la partie occluse en : - sélectionnant des groupes des données de profondeur en comparant les données de profondeur à des identifiants d'occlusion prédéfinis définissant les propriétés structurelles d'une occlusion attendue. [Revendication 18] Dispositif informatique (101) selon la revendication 12, dans lequel le contrôleur de formation d'image est en outre configuré pour mémoriser les données de profondeur corrigées dans la mémoire (122) en tant que données de profondeur non obstruées. [Revendication 19] Dispositif informatique (101) selon la revendication 12, dans lequel le contrôleur de formation d'image est en outre configuré, avant la capture des données de profondeur, pour : - obtenir une pluralité d'ensembles antérieurs de données de profondeur ; - obtenir des données de profondeur intermédiaires représentant l'espace de paquets ; et - lorsqu'aucune occlusion n'a été détectée pour les données de profondeur intermédiaires, et qu'aucune occlusion n'a été détectée pour un nombre seuil de la pluralité d'ensembles antérieurs de données de profondeur, mémoriser les données de profondeur intermédiaires en tant que données de profondeur non obstruées. [Revendication 20] Dispositif informatique (101) selon la revendication 12, dans lequel le contrôleur de formation d'image est en outre configuré pour : - avant la détection de la partie occluse, déterminer une proportion de données de profondeur manquantes ; - lorsque la proportion est au-dessous d'un seuil prédéfini, détecter la partie occluse ; et - lorsque la proportion est au-dessus du seuil prédéfini, abandonner les données de profondeur.
    [Revendication 21] Dispositif informatique (101) selon la revendication 12, dans lequel le contrôleur de formation d'image est en outre configuré pour présenter l'indication en commandant au moins l'un :
    - d'un afficheur pour afficher une image à réalité augmentée contenant l'indication ;
    - d’un dispositif de pointage orientable pour projeter l'indication ; et
    - d’un haut-parleur pour générer une indication audible.
    [Revendication 22] Dispositif informatique (101) selon la revendication 12, dans lequel le contrôleur de formation d'image est en outre configuré, avant l'obtention de l'emplacement, pour recevoir un balayage de code à barres du paquet.
FR1905208A 2018-05-18 2019-05-17 Systeme et procede de determination d’un emplacement pour le placement d'un paquet Active FR3081248B1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/983,325 US10783656B2 (en) 2018-05-18 2018-05-18 System and method of determining a location for placement of a package
US15/983,325 2018-05-18

Publications (2)

Publication Number Publication Date
FR3081248A1 true FR3081248A1 (fr) 2019-11-22
FR3081248B1 FR3081248B1 (fr) 2022-06-24

Family

ID=67514256

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1905208A Active FR3081248B1 (fr) 2018-05-18 2019-05-17 Systeme et procede de determination d’un emplacement pour le placement d'un paquet

Country Status (8)

Country Link
US (1) US10783656B2 (fr)
CN (1) CN112204593B (fr)
BE (1) BE1026263B1 (fr)
DE (1) DE112019002547B4 (fr)
FR (1) FR3081248B1 (fr)
GB (1) GB2586424B (fr)
MX (1) MX2020011141A (fr)
WO (1) WO2019221994A1 (fr)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10867275B1 (en) 2018-09-17 2020-12-15 Amazon Technologies, Inc. Optimized package loading
US11506483B2 (en) * 2018-10-05 2022-11-22 Zebra Technologies Corporation Method, system and apparatus for support structure depth determination
US11257199B2 (en) * 2018-10-18 2022-02-22 Wisconsin Alumni Research Foundation Systems, methods, and media for detecting manipulations of point cloud data
US11536844B2 (en) * 2018-12-14 2022-12-27 Beijing Voyager Technology Co., Ltd. Dynamic sensor range detection for vehicle navigation
FR3098332B1 (fr) * 2019-07-05 2022-01-07 Fond B Com Procédé et dispositif de détermination de l’amplitude d’un mouvement effectué par un membre d’un corps articulé
US10762331B1 (en) * 2019-10-11 2020-09-01 Zebra Technologies Corporation Three-dimensional (3D) depth and two-dimensional (2D) imaging systems and methods for automatic container door status recognition
US11120280B2 (en) * 2019-11-15 2021-09-14 Argo AI, LLC Geometry-aware instance segmentation in stereo image capture processes
CN111062282B (zh) * 2019-12-05 2023-09-29 武汉科技大学 基于改进yolov3模型的变电站指针式仪表识别方法
CN111260544B (zh) * 2020-01-20 2023-11-03 浙江商汤科技开发有限公司 数据处理方法及装置、电子设备和计算机存储介质
CN111582054B (zh) * 2020-04-17 2023-08-22 中联重科股份有限公司 点云数据处理方法及装置、障碍物检测方法及装置
DE102020127881B3 (de) 2020-10-22 2022-02-24 IGZ Ingenieurgesellschaft für logistische Informationssysteme mbH Vorrichtung zur Installation an einem Kommissionier- und/oder Verpackungsarbeitsplatz
DE102021118879A1 (de) 2021-07-21 2023-01-26 Zf Cv Systems Global Gmbh Verfahren und System zur Überwachung eines Laderaums
US11946796B2 (en) * 2021-08-18 2024-04-02 Zebra Technologies Corporation Container load quality monitoring and feedback system
US20230112666A1 (en) * 2021-10-12 2023-04-13 Zebra Technologies Corporation System and Method for Detecting Calibration of a 3D Sensor
US11763439B2 (en) * 2021-10-26 2023-09-19 Zebra Technologies Corporation Systems and methods for assessing trailer utilization

Family Cites Families (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3140009A (en) 1961-05-31 1964-07-07 Eastman Kodak Co Article storage and retrieval device
US4408782A (en) 1981-01-19 1983-10-11 Merriam, Marshall & Bicknell Graphic means and method for maximizing utilization of cargo space
US5474083A (en) 1986-12-08 1995-12-12 Empi, Inc. Lifting monitoring and exercise training system
US5265006A (en) 1990-12-14 1993-11-23 Andersen Consulting Demand scheduled partial carrier load planning system for the transportation industry
US5430831A (en) 1991-03-19 1995-07-04 Koninklijke Ptt Nederland N.V. Method of packing rectangular objects in a rectangular area or space by determination of free subareas or subspaces
US6332098B2 (en) 1998-08-07 2001-12-18 Fedex Corporation Methods for shipping freight
US6269175B1 (en) 1998-08-28 2001-07-31 Sarnoff Corporation Method and apparatus for enhancing regions of aligned images using flow estimation
US6744436B1 (en) 1999-05-25 2004-06-01 Anthony Chirieleison, Jr. Virtual reality warehouse management system complement
DE10050385A1 (de) 2000-10-12 2002-04-18 Abb Patent Gmbh Verfahren und Vorrichtung zur Füllgraderfassung von Transportbehältern
US20080303897A1 (en) 2000-12-22 2008-12-11 Terahop Networks, Inc. Visually capturing and monitoring contents and events of cargo container
US20020150294A1 (en) 2001-02-02 2002-10-17 Honeywell Federal Manufacturing & Technologies, Llc Automated imaging system and method for concrete quality analysis
US7353181B2 (en) 2001-08-15 2008-04-01 Hewlett-Packard Development Company, L.P. Allocating freight haulage jobs
DE10212590A1 (de) 2002-03-15 2003-10-09 Demag Mobile Cranes Gmbh Optische Einrichtung zur automatischen Be- und Entladung von Containern auf Fahrzeugen
US20040066500A1 (en) 2002-10-02 2004-04-08 Gokturk Salih Burak Occupancy detection and measurement system and method
US7746379B2 (en) 2002-12-31 2010-06-29 Asset Intelligence, Llc Sensing cargo using an imaging device
AU2003292490A1 (en) 2003-01-17 2004-08-13 Koninklijke Philips Electronics N.V. Full depth map acquisition
US7421112B2 (en) 2004-03-12 2008-09-02 General Electric Company Cargo sensing system
US7455621B1 (en) 2004-08-12 2008-11-25 Anthony Donald D Free-weight exercise monitoring and feedback system and method
US7728833B2 (en) 2004-08-18 2010-06-01 Sarnoff Corporation Method for generating a three-dimensional model of a roof structure
US8009871B2 (en) 2005-02-08 2011-08-30 Microsoft Corporation Method and system to segment depth images and to detect shapes in three-dimensionally acquired data
US8130285B2 (en) 2005-04-05 2012-03-06 3Vr Security, Inc. Automated searching for probable matches in a video surveillance system
CA2614636A1 (fr) 2005-07-13 2007-01-18 Christopher F. Bielefeld Systemes et procedes servant a prevoir la densite d'un conteneur
US7468660B2 (en) 2005-10-04 2008-12-23 Delphi Technologies, Inc. Cargo sensing apparatus for a cargo container
US20070297560A1 (en) 2006-03-03 2007-12-27 Telesecurity Sciences, Inc. Method and system for electronic unpacking of baggage and cargo
US7940955B2 (en) 2006-07-26 2011-05-10 Delphi Technologies, Inc. Vision-based method of determining cargo status by boundary detection
US20080042865A1 (en) 2006-08-09 2008-02-21 Dock Watch, Llc Loading dock monitoring device and method
US7773773B2 (en) 2006-10-18 2010-08-10 Ut-Battelle, Llc Method and system for determining a volume of an object from two-dimensional images
US20100213313A1 (en) * 2006-11-06 2010-08-26 Goodrich Corporation Integrated aircraft cargo loading and cargo video monitoring system
US8149126B2 (en) 2007-02-02 2012-04-03 Hartford Fire Insurance Company Lift monitoring system and method
US7667596B2 (en) 2007-02-16 2010-02-23 Panasonic Corporation Method and system for scoring surveillance system footage
US20080204225A1 (en) 2007-02-22 2008-08-28 David Kitchen System for measuring and analyzing human movement
US8091782B2 (en) 2007-11-08 2012-01-10 International Business Machines Corporation Using cameras to monitor actual inventory
AT506887A1 (de) * 2008-05-26 2009-12-15 Tgw Mechanics Gmbh Lagersystem und verfahren zum betreiben desselben
US20150170256A1 (en) 2008-06-05 2015-06-18 Aisle411, Inc. Systems and Methods for Presenting Information Associated With a Three-Dimensional Location on a Two-Dimensional Display
US20100073476A1 (en) 2008-09-24 2010-03-25 Industrial Technology Research Institute Systems and methods for measuring three-dimensional profile
EP2178035A1 (fr) 2008-10-17 2010-04-21 Contronix GmbH Procédé et agencement de mesure de pièce vide pour des pièces de stockage ou de transport
CA2683357C (fr) 2008-10-21 2015-06-02 Motion Metrics International Corp. Methode, systeme et appareil de surveillance de chargement d'une charge utile dans un conteneur
US9020846B2 (en) * 2008-12-19 2015-04-28 United Parcel Service Of America, Inc. Trailer utilization systems, methods, computer programs embodied on computer-readable media, and apparatuses
DE102009011287B4 (de) 2009-03-02 2022-12-01 Kuka Roboter Gmbh Automatisierte Palettierung stabiler Paketstapel
US8269616B2 (en) 2009-07-16 2012-09-18 Toyota Motor Engineering & Manufacturing North America, Inc. Method and system for detecting gaps between objects
EP2302564A1 (fr) 2009-09-23 2011-03-30 Iee International Electronics & Engineering S.A. Génération dynamique d'images de référence en temps réel pour système d'imagerie à plage
US7961910B2 (en) 2009-10-07 2011-06-14 Microsoft Corporation Systems and methods for tracking a model
US8725273B2 (en) * 2010-02-17 2014-05-13 Irobot Corporation Situational awareness for teleoperation of a remote vehicle
WO2012012943A1 (fr) 2010-07-28 2012-02-02 Shenzhen Institute Of Advanced Technology Chinese Academy Of Sciences Procédé de reconstruction de scènes urbaines
US8346056B2 (en) 2010-10-14 2013-01-01 Honeywell International Inc. Graphical bookmarking of video data with user inputs in video surveillance
KR101752690B1 (ko) 2010-12-15 2017-07-03 한국전자통신연구원 변이 맵 보정 장치 및 방법
US8488888B2 (en) 2010-12-28 2013-07-16 Microsoft Corporation Classification of posture states
CN104272329A (zh) * 2011-03-17 2015-01-07 P·坎贝尔 货架跟踪(ost)系统
US9171277B2 (en) 2011-05-04 2015-10-27 Victaulic Company Generation of plans for loading and unloading a container
US8873835B2 (en) 2011-11-30 2014-10-28 Adobe Systems Incorporated Methods and apparatus for correcting disparity maps using statistical analysis on local neighborhoods
EP2664553B1 (fr) 2012-05-03 2017-09-20 Matthias Ehrat Procédé d'insertion de produits individuels dans des récipients dans une suite de robots
US9779546B2 (en) 2012-05-04 2017-10-03 Intermec Ip Corp. Volume dimensioning systems and methods
US10158842B2 (en) 2012-06-20 2018-12-18 Honeywell International Inc. Cargo sensing detection system using spatial data
EP2888720B1 (fr) * 2012-08-21 2021-03-17 FotoNation Limited Système et procédé pour estimer la profondeur à partir d'images capturées à l'aide de caméras en réseau
US9838669B2 (en) 2012-08-23 2017-12-05 Stmicroelectronics (Canada), Inc. Apparatus and method for depth-based image scaling of 3D visual content
US9514522B2 (en) * 2012-08-24 2016-12-06 Microsoft Technology Licensing, Llc Depth data processing and compression
JP5296913B1 (ja) * 2012-10-02 2013-09-25 株式会社小松製作所 エンジンユニット
WO2014055716A1 (fr) * 2012-10-04 2014-04-10 Amazon Technologies, Inc. Remplissage d'une commande à un quai de stockage
DE102013209362A1 (de) 2013-05-21 2014-11-27 Krones Ag Überwachung und Steuerung einer Transportvorrichtung für Behälter
US20140372183A1 (en) 2013-06-17 2014-12-18 Motorola Solutions, Inc Trailer loading assessment and training
US20140372182A1 (en) * 2013-06-17 2014-12-18 Motorola Solutions, Inc. Real-time trailer utilization measurement
US20150130592A1 (en) * 2013-11-13 2015-05-14 Symbol Technologies. Inc. Package-loading system
US20150241209A1 (en) * 2014-02-25 2015-08-27 Astronics Advanced Electronic Systems Corp. Apparatus and method to monitor the occupied volume within a fixed or variable volume
US9626766B2 (en) 2014-02-28 2017-04-18 Microsoft Technology Licensing, Llc Depth sensing using an RGB camera
ES2826476T3 (es) 2014-05-15 2021-05-18 Federal Express Corp Dispositivos portátiles para el procesamiento de mensajería y métodos de uso de los mismos
US9460524B1 (en) 2014-05-30 2016-10-04 Amazon Technologies, Inc. Estimating available volumes using imaging data
US9460562B2 (en) * 2015-01-09 2016-10-04 International Business Machines Corporation Providing volume indicators based on received images of containers
WO2016133609A1 (fr) 2015-02-18 2016-08-25 Fedex Corporate Services, Inc. Gestion d'informations de logistique concernant un contenant de logistique à l'aide d'un appareil d'affichage d'interface de contenant
US9576166B2 (en) 2015-02-18 2017-02-21 Fedex Corporate Services, Inc. Apparatus, non-transient computer readable media, and methods for automatically quantifying space within a logistics container using a scanning sensor node disposed within the container
US9940730B2 (en) 2015-11-18 2018-04-10 Symbol Technologies, Llc Methods and systems for automatic fullness estimation of containers
US10713610B2 (en) * 2015-12-22 2020-07-14 Symbol Technologies, Llc Methods and systems for occlusion detection and data correction for container-fullness estimation

Also Published As

Publication number Publication date
US20190355144A1 (en) 2019-11-21
GB2586424A (en) 2021-02-17
GB2586424B (en) 2021-09-08
BE1026263A9 (nl) 2020-01-07
GB202017981D0 (en) 2020-12-30
CN112204593A (zh) 2021-01-08
CN112204593B (zh) 2021-10-29
BE1026263B1 (nl) 2020-08-14
BE1026263A1 (nl) 2019-12-04
FR3081248B1 (fr) 2022-06-24
MX2020011141A (es) 2022-07-20
US10783656B2 (en) 2020-09-22
DE112019002547T5 (de) 2021-03-11
WO2019221994A1 (fr) 2019-11-21
DE112019002547B4 (de) 2023-06-29

Similar Documents

Publication Publication Date Title
FR3081248A1 (fr) Systeme et procede de determination d’un emplacement pour le placement d'un paquet
BE1022630B1 (fr) Procédé et système pour déterminer des candidats points de fuite pour la correction projective
BE1022636B1 (fr) Procede et methode de correction de distorsions projectives avec des etapes d'elimination a des multiples niveaux
BE1022635B1 (fr) Procede et systeme de correction de distorsions projectives utilisant des points propres
FR3026291A1 (fr) Dispositif destine a etre utilise pour identifier ou authentifier un sujet
FR3025918A1 (fr) Procede et systeme de modelisation automatisee d'une piece
EP3614306A1 (fr) Procédé de localisation et d'identification de visage et de détermination de pose, à partir d'une vue tridimensionnelle
FR3071344A1 (fr) Procede de determination d'une fonction d'etalement de point d'un systeme d'imagerie
FR3042893A1 (fr) Procede de detection de fraude par projection d'image pre-enregistree
CA2949683A1 (fr) Procede de determination d'au moins un parametre comportemental
EP3216213B1 (fr) Procédé de détection de pixels défectueux
EP3073441B1 (fr) Procédé de correction d'une image d'au moins un objet présenté à distance devant un imageur et éclairé par un système d'éclairage et système de prise de vues pour la mise en oeuvre dudit procédé
EP3761267A1 (fr) Procédé et dispositif de détermination de l'amplitude d'un mouvement effectué par un membre d'un corps articulé
FR3096816A1 (fr) Procédé, système et appareil pour la détection de façades de produits
FR3101174A1 (fr) Dispositif de détection d’odeur, procédé de détection d’odeur et programme d’ordinateur correspondant
EP3170205B1 (fr) Dispositif de détection de mouvement
EP0559594B1 (fr) Procédé de création de la signature d'un objet représenté sur une image numérique,du type consistant à définir au moins un calibre dimensionnel caractéristique dudit objet, et procédé correspondant de vérification de la signature d'un objet
CA2897674C (fr) Estimation de mouvement d'une image
FR2945883A1 (fr) Procede et systeme de detection de l'etat ouvert ou ferme des yeux d'un visage.
FR3065097B1 (fr) Procede automatise de reconnaissance d'un objet
EP2590137B1 (fr) Procède et dispositif pour optimiser la quantité d'information contenue dans une image traitée
EP3274913A1 (fr) Dispositif et procede pour l'acquisition biometrique de l'iris
FR3013492A1 (fr) Procede utilisant des donnees de geometrie 3d pour une presentation et une commande d'image de realite virtuelle dans un espace 3d
FR3096787A1 (fr) 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
CA3230088A1 (fr) Procede de mise en relation d'une image candidate avec une image de reference

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20201106

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6