BE1028059B1 - Vervoerder-segmentatie voor datavastlegsysteem - Google Patents

Vervoerder-segmentatie voor datavastlegsysteem Download PDF

Info

Publication number
BE1028059B1
BE1028059B1 BE20215129A BE202105129A BE1028059B1 BE 1028059 B1 BE1028059 B1 BE 1028059B1 BE 20215129 A BE20215129 A BE 20215129A BE 202105129 A BE202105129 A BE 202105129A BE 1028059 B1 BE1028059 B1 BE 1028059B1
Authority
BE
Belgium
Prior art keywords
bounding box
point cloud
server
point
processor
Prior art date
Application number
BE20215129A
Other languages
English (en)
Other versions
BE1028059A1 (nl
Inventor
Stanko Jelavic
Bassam S Arshad
Charles Burton Swope
Original Assignee
Zebra Technologies
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 filed Critical Zebra Technologies
Publication of BE1028059A1 publication Critical patent/BE1028059A1/nl
Application granted granted Critical
Publication of BE1028059B1 publication Critical patent/BE1028059B1/nl

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • G06T7/62Analysis of geometric attributes of area, perimeter, diameter or volume
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • 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/10Segmentation; Edge detection
    • G06T7/149Segmentation; Edge detection involving deformable models, e.g. active contour models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • 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
    • 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/30Subject of image; Context of image processing
    • G06T2207/30108Industrial image inspection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30204Marker
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/12Bounding box

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Image Processing (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Processing Of Solid Wastes (AREA)
  • Traffic Control Systems (AREA)

Abstract

Een server omvattend: een geheugen dat kalibratiedata opslaat; en een processor verbonden met het geheugen, waarbij de processor geconfigureerd is om: een puntenwolk te verkrijgen die een opnamevolume weergeeft omvattend een vervoerder met een lichaam en een houder die een object draagt dat moet worden gedimensioneerd; het verkrijgen van een set posities geassocieerd met de vervoerder; op basis van de set posities en de kalibratiedata, het selecteren van een eerste deel van de puntenwolk met uitzondering van het lichaam van de vervoerder en een mast van de houder; op basis van de kalibratiedata, het selecteren van een tweede deel van de puntenwolk van het eerste deel, met uitzondering van een basis van de houder; en het dimensioneren van het object op basis van het tweede deel van de puntenwolk.

Description

Vervoerder-segmentatie voor datavastlegsysteem
ACHTERGROND Voor het vervoer en de opslag van objecten zoals pakketten kan kennis van de afmetingen van een pakket nodig zijn. Dergelijke informatie kan worden gebruikt om het gebruik van de beschikbare ruimte in een container (e.g. een aanhangwagen) te optimaliseren, om verzend- of opslagkosten voor het pakket te bepalen, en dergelijke. Het is echter mogelijk dat afmetingen van een pakket vooraf niet bekend zijn, en dat werknemers daardoor de afmetingen van het pakket moeten verkrijgen door de pakketten handmatig op te meten. Het doen van handmatige metingen kan tijdrovend en foutgevoelig zijn. Systemen voor het automatisch meten van afmetingen van pakketten kunnen ook minder nauwkeurig zijn, bijvoorbeeld bij het meten van pakketten in beweging, pakketten met donkere (e.g. zwarte) oppervlakken, en dergelijke.
SAMENVATTING VAN DE UITVINDING Volgens een aspect van de uitvinding, is er een server voorzien, omvattend: een geheugen dat data als puntenwolk opslaat; en een processor verbonden met het geheugen, waarbij de processor is geconfigureerd voor: het verkrijgen van de puntenwolk van het geheugen, waarbij de puntenwolk een weergave van een object dat moet worden gedimensioneerd omvat; het genereren van een begrenzingskader dat correspondeert met het object; het bepalen van puntdichtheden voor elk van een veelheid aan snede grenzend aan een oppervlak van het begrenzingskader; het selecteren van een geüpdatete begrenzingskaderoppervlak dat correspondeert met één van de sneden met de grootste puntdichtheid; het updaten van het begrenzingskader dat correspondeert met het object op basis van het geselecteerde geüpdatete begrenzingskaderoppervlak, resulterend in een geüpdatete begrenzingskader.
De server kan verder een communicatie-interface omvatten; voor het verkrijgen van de puntenwolk, het ontvangen van initiële puntenwolken van een veelheid aan vastlegknooppunten via het communicatie-interface en het combineren van de initiële puntenwolken voor het genereren van de puntenwolk.
De processor kan geconfigureerd zijn, om het begrenzingskader te genereren, van het begrenzingskader, voor: het verkrijgen, uit de puntenwolk, van een set posities geassocieerd met een vervoerder van het object; en het selecteren, op basis van de set posities, van een eerste deel van de puntenwolk met uitzondering van het lichaam van de vervoerder door een snijvlak te genereren dat correspondeert met een voorvlak van een mast van de vervoerder en punten aan een vooraf bepaalde zijde van het snijvlak weg te gooien.
De processor kan verder geconfigureerd zijn voor: het detecteren van een ondervlak van een basis van een houder van het object; het genereren van een bovenvlak van de basis; en het weggooien van punten tussen het ondervlak en het bovenvlak.
Alternatief of aanvullend kan de processor verder geconfigureerd zijn voor: het identificeren van een midden van het begrenzingskader; het genereren van zijvlakken corresponderend met zijden van de basis volgens het midden; en het weggooien van punten tussen een ondervlak van het begrenzingskader, een bovenvlak van het begrenzingskader, en zijvlakken van het begrenzingskader.
De processor kan ook worden geconfigureerd voor het genereren van het ondervlak met een voorgedefinieerde hoek ten opzichte van het snijvlak.
De processor kan verder worden geconfigureerd voor het herhalen van de bepaling van puntdichtheden en selectie van het geüpdatete begrenzingskaderoppervlak voor elk overblijvend oppervlak van het begrenzingskader.
Alternatief of aanvullend kan de processor verder worden geconfigureerd voor: het detecteren van een referentieoppervlak van de vervoerder op basis van de set posities en de kalibratiedata; en het schatten van een ruisniveau in de puntenwolk van het referentieoppervlak.
Volgens een ander aspect van de uitvinding is een werkwijze voorzien, omvattend: het opslaan van kalibratiedata; het verkrijgen van een puntenwolk die een opnamevolume weergeeft dat een vervoerder omvat met een lichaam en een houder die een object draagt dat moet worden gedimensioneerd; het verkrijgen van een set posities geassocieerd met de vervoerder; op basis van de set posities en de kalibratiedata, het selecteren van een eerste deel van de puntenwolk met uitzondering van het lichaam van de vervoerder en een mast van de houder; op basis van de kalibratiedata, het selecteren van een tweede deel van de puntenwolk van het eerste deel, met uitzondering van een basis van de houder; en het dimensioneren van het object op basis van het tweede deel van de puntenwolk.
In de werkwijze kan het verkrijgen van de puntenwolk het ontvangen van initiële puntenwolken van een veelheid van vastlegknooppunten via een communicatie-interface omvatten, en het combineren van de initiële puntenwolken om de puntenwolk te genereren.
In de werkwijze kan het selecteren van het eerste deel omvatten: het genereren van een snijvlak dat correspondeert met een voorvlak van de mast; en het weggooien van punten op een vooraf bepaalde zijde van het snijvlak.
Het selecteren van het tweede deel kan verder omvatten: het detecteren van een ondervlak van de basis; het genereren van een bovenvlak van de basis volgens de kalibratiedata; en het weggooien van punten tussen het ondervlak en het bovenvlak.
In de werkwijze kan het detecteren van het ondervlak ook het genereren van een begrenzingskader omvattend het object en de basis, op basis van het eerste deel, omvatten.
De werkwijze kan verder omvatten: het identificeren van een midden van het begrenzingskader; het genereren van zijvlakken corresponderend met zijden van de basis volgens het midden en de kalibratiedata; en het weggooien van punten tussen het ondervlak, het bovenvlak, en de zijvlakken.
Alternatief of aanvullend kan de werkwijze verder het genereren van het ondervlak met een voorgedefinieerde hoek ten opzichte van het snijvlak omvatten.
Volgens de werkwijze kan het dimensioneren van het object omvatten: het genereren van een begrenzingskader corresponderend met het object van het tweede deel van de puntenwolk; het bepalen van puntdichtheden voor elk van een veelheid van sneden grenzend aan een oppervlak van het begrenzingskader; en het selecteren van een geüpdatete begrenzingskader corresponderend met degene van de sneden met de grootste puntdichtheid.
De werkwijze kan verder omvatten: het herhalen van de bepaling van puntdichtheden en selectie van een geüpdatete begrenzingskaderoppervlak voor elk overblijvend oppervlak van het begrenzingskader.
De werkwijze kan verder omvatten: het detecteren van een referentieoppervlak van de vervoerder op basis van de set posities en de kalibratiedata; en het schatten van een ruisniveau in de puntenwolk van het referentieoppervlak.
KORTE BESCHRIJVING VAN DE VERSCHILLENDE
AANZICHTEN VAN DE TEKENINGEN De begeleidende figuren, waarbij gelijke referentienummers verwijzen naar identieke of functioneel gelijke elementen in de verschillende aanzichten, samen met de getailleerde beschrijving hieronder, zijn opgenomen in en maken deel uit van de specificatie, en dienen ter verdere illustratie van belichamingen van concepten die de geclaimde uitvinding omvatten, en leggen verschillende principes en voordelen van die
5 belichamingen uit.
FIG. 1 is een blokdiagram van een voorbeeld datavastlegsysteem.
FIG. 2 is een blokdiagram dat aanvullende componenten van het systeem van FIG. 1 toont.
FIG. 3 is een diagram dat een voorbeeld implementatie van het datavastlegsysteem van FIG. 1 toont.
FIG. 4 is een stroomschema van een datavastlegwerkwijze voor het dimensioneren van een object.
FIG. 5 is een diagram dat een voorbeeld puntenwolk gegenereerd door het systeem van FIG. 1 toont.
FIG. 6 is een diagram dat het genereren van een snijvlak toont in blok 420 van de werkwijze van FIG. 4. FIG. 7 is een diagram dat een voorbeeld prestatie van blok 420 van de werkwijze van FIG. 4 toont.
FIG. 8 is een diagram dat een voorbeeld prestatie van blok 425 van de werkwijze van FIG. 4 toont.
FIG. 9 is een diagram dat een andere voorbeeld prestatie van blok 425 van de werkwijze van FIG. 4 toont.
FIGS. 10-11 zijn diagrammen die een voorbeeld prestatie van blok 440 van de werkwijze van FIG. 4 illustreren.
FIG. 12 is een diagram dat puntdichtheid gradiënten gebruikt in een voorbeeld prestatie van blok 450 van de werkwijze van FIG. 4 toont.
Bekwame vakmannen zullen op prijs stellen dat elementen in de figuren zijn geïllustreerd voor eenvoud en duidelijkheid en zijn niet noodzakelijk op schaal getekend.
Bijvoorbeeld, de afmetingen van sommige van de elementen in de figuren kunnen bijvoorbeeld worden overdreven ten opzichte van andere elementen om te helpen het begrip van de belichamingen van de onderhavige uitvinding te verbeteren.
De componenten van het apparaat en de werkwijze waar nodig weergegeven in de tekeningen met conventionele symbolen, waarbij alleen die specifieke details getoond worden die pertinent zijn voor het begrijpen van de belichamingen van de onderhavige uitvinding zodat de openbaring niet wordt vertroebeld door details die gemakkelijk zichtbaar zullen zijn voor degene met de nodige vakbekwaamheid en met het voordeel van de beschrijving hierin.
GEDETAILLEERDE BESCHRIJVING Hierin geopenbaarde voorbeelden zijn gericht op een server, omvattend: een geheugen dat kalibratiedata opslaat; en een processor verbonden met het geheugen, de processor is geconfigureerd om: een puntenwolk te verkrijgen die een opnamevolume weergeeft dat een vervoerder omvat met een lichaam en een houder die een object draagt dat moet worden gedimensioneerd; op basis van de set posities en de kalibratiedata, het selecteren van een eerste deel van de puntenwolk met uitzondering van het lichaam van de vervoerder en een mast van de houder; op basis van de kalibratiedata, het selecteren van een tweede deel van de puntenwolk van het eerste deel, met uitzondering van een basis van de houder; en het dimensioneren van het object op basis van het tweede deel van de puntenwolk. Aanvullende hierin geopenbaarde voorbeelden zijn gericht op een werkwijze, omvattend: het opslaan van kalibratiedata; het verkrijgen van een puntenwolk die een opnamevolume weergeeft dat een vervoerder omvat met een lichaam en een houder die een object draagt dat moet worden gedimensioneerd; het verkrijgen van een set posities geassocieerd met de vervoerder; op basis van de set posities en de kalibratiedata, het selecteren van een eerste deel van de puntenwolk met uitzondering van het lichaam van de vervoerder en een mast van de houder; op basis van de kalibratiedata, het selecteren van een tweede deel van de puntenwolk van het eerste deel, met uitzondering van een basis van de houder; en het dimensioneren van het object op basis van het tweede deel van de puntenwolk.
FIG. 1 toont een datavastlegsysteem 100 voor de dimensionering van objecten. Het datavastlegsysteem 100 is geconfigureerd om beelddata vast te leggen welke een object weergeeft binnen een opnamevolume. De beelddata (e.g. een set van tweedimensionale beelden die vrijwel gelijktijdig zijn vastgelegd) kunnen worden verwerkt om een puntenwolk te genereren die het te dimensioneren object representeert. Afmetingen voor het object kunnen dan worden bepaald op basis van de puntenwolk.
In het bijzonder omvat het systeem 100 een veelheid aan vastlegknooppunten 104. In het geïllustreerde voorbeeld zijn vier vastlegknooppunten 104-1, 104-2, 104-3 en 104-4 getoond. In andere voorbeelden kan een groter of kleiner aantal vastlegknooppunten 104 worden voorzien. Zoals hieronder in meer detail zal worden besproken, omvat elk vastlegknooppunt 104 een set camera’s die bestuurbaar zijn om respectieve beelden van het bovengenoemde opnamevolume vast te leggen.
Meer specifiek leggen de camera’s van elk vastlegknooppunt 104 beelden van een gegeven regio van het opnamevolume vast. Samen omvatten de dekkingsgebieden van de vastlegknooppunten 104 vrijwel het gehele opnamevolume. Van de beelden vastgelegd door de camera’s van een gegeven knooppunt 104, genereert een computer geassocieerd met dat knooppunt 104 een puntenwolk (e.g. via de uitvoering van een fotogrammetrie toepassing of ander geschikt mechanisme voor het genereren van een puntenwolk).
In het geïllustreerde voorbeeld produceren de vastlegknooppunten 104 daarom vier puntenwolken, waarbij elk een respectieve regio van het opnamevolume weergeeft die het object omvat. De regio’s, en daarom de puntenwolken gegenereerd op de vastlegknooppunten 104, overlappen normaal aan de grenzen ervan.
Het systeem 100 omvat ook een datavastlegserver 108, waar ook eenvoudig naar gerefereerd wordt als de server 108. De server 108 is verbonden met de computers van elk van de vastlegknooppunten 104, en ontvangt de bovengenoemde puntenwolken van de vastlegknooppunten 104. De server 108 is geconfigureerd om de puntenwolken van de vastlegknooppunten 104 te combineren om een enkele puntenwolk te produceren die ten minste een deel van het opnamevolume weergeeft. De server 108 is verder geconfigureerd, zoals in meer detail zal worden beschreven hieronder, om een deel van de gecombineerde puntenwolk te selecteren die het object omvat en andere vervoer structuren, zoals een vorkheftruck of andere vervoer die het object draagt, uitsluit. Wanneer het deel van de puntenwolk dat het object representeert is geselecteerd, dan kan de server 108 de afmetingen voor het object bepalen.
Het genereren van puntenwolken voor regio’s van het opnamevolume op de individuele vastlegknooppunten 104, en het combineren van de knooppunt-specifieke puntenwolken in de server 108, maakt het mogelijk de computationeel veeleisende taak van het genereren van puntenwolken te parallelliseren. Dergelijke parallellisatie kan het systeem 100 in staat stellen om een complete puntenwolk te genereren en sneller afmetingen voor het object in het opnamevolume te bepalen dan in een systeem waarin het genereren van puntenwolken wordt uitgevoerd op een enkel apparaat, op basis van de complete set beelden van alle camera’s.
FIG. 1 toont ook bepaalde interne componenten van de server 108. De server 108 omvat een centrale verwerkingseenheid (CPU), ook wel processor 112 genoemd, onderling verbonden met een niet-overdraagbaar computer- leesbaar opslagmedium, zoals een geheugen 116. Het geheugen 116 omvat een geschikte combinatie van vluchtig geheugen (e.g. Random Access Memory (RAM)) en niet-vluchtig geheugen (e.g. read only memory (ROM),
Electrically Erasable Programmable Read Only Memory (EEPROM), flash) geheugen. De processor 112 en het geheugen 116 omvatten elk een of meer geïntegreerde circuits (ICs).
De server 108 omvat ook een communicatie-interface 120, die het mogelijk maakt voor de server 108 om data uit te wisselen met andere computers, bijvoorbeeld via een netwerk 124. De communicatie-interface 120 omvat daarom geschikte hardware (e.g. zenders, ontvangers, netwerk interface controllers en dergelijke) waardoor de server 108 via het netwerk 124 kan communiceren.
De server 108 omvat verder een invoer/uitvoer samenstel 128, welke een geschikte combinatie van invoer apparaten (e.g. een toetsenbord, een muis, een microfoon, en dergelijke) en uitvoer apparaten (e.g. een scherm, een luidspreker en dergelijke) kan omvatten. De componenten van de server 108 zijn onderling verbonden door communicatiebussen (niet afgebeeld), en gevoed door een batterij of andere stroombron, via de bovengenoemde communicatiebussen of via afzonderlijke energiebussen (niet afgebeeld).
Het geheugen 116 van de server 108 slaat een veelheid van toepassingen op, elk omvattend een veelheid van computer leesbare instructies uitvoerbaar door de processor 112. De uitvoering van de bovengenoemde instructies door de processor 112 zorgt ervoor dat de server 108 bepaalde functionaliteiten implementeert, zoals hierin besproken. De toepassingen worden daarom gezegd te zijn geconfigureerd om die functionaliteit in de bespreking hieronder uit te voeren. In het huidige voorbeeld, slaat het geheugen 116 van de server 108 een puntenwolk generator toepassing 132, en een dimensionering toepassing 136 (ook eenvoudigweg respectievelijk de toepassing 132 en 136 genoemd) op.
De server 108 is geconfigureerd, via uitvoering van de toepassing 132 door de processor 112, om puntenwolken te verkrijgen van ten minste een subset van de vastlegknooppunten 104 (tot en met alle vastlegknooppunten 104), en om daarvan een gecombineerde puntenwolk te genereren. Via uitvoering van de toepassing 136, kan de server 108 worden geconfigureerd om een object te detecteren binnen de gecombineerde puntenwolk en om de afmetingen voor het object te bepalen.
De toepassingen 132 en 136 kunnen, in andere voorbeelden, worden geïmplementeerd als een enkele toepassing, of als meer dan twee toepassingen. In andere voorbeelden is de processor 112, zoals geconfigureerd in de uitvoering van de toepassingen 132 en 136, worden geïmplementeerd als een of meer specifiek-geconfigureerde hardware elementen, zoals veld-programmeerbare poort reeksen (FPGAs) en/of toepassings-specifieke geïntegreerde circuits (ASICS). In verdere voorbeelden kan de functionaliteit die geïmplementeerd is door de server 108 via de uitvoering van een toepassing, zoals de toepassing 136, worden geïmplementeerd door een afzonderlijke computer, zoals een dimensionering server die toegankelijk is via het netwerk 124, in plaats van door de server
108.
In FIG. 2 zijn voorbeeld componenten van een vastlegknooppunt 104 getoond. Elk van de vastlegknooppunten 104 getoond in FIG. 1 kunnen de componenten geïllustreerd in FIG. 2 en hieronder besproken omvatten.
Het vastlegknooppunt 104 omvat een veelheid van beeldsensoren 200- 1, 200-2, … 200-n. Elk vastlegknooppunt 104 kan bijvoorbeeld vier beeldsensoren 200 omvatten. De beeldsensoren 200 kunnen ook camera’s 200 worden genoemd. Elke camera 200 heeft een ander gezichtsveld (FOV), aangezien de camera’s 200 op verschillende fysieke posities ten opzichte van elkaar zijn geplaatst. De FOV’s van de camera’s 200 van een gegeven vastlegknooppunt 104 overlappen (e.g. voor 40%, hoewel grotere en kleinere overlappingen ook worden overwogen). FIG. 2 toont een FOV 202 voor het vastlegknooppunt 104 als geheel. Het FOV 202 omvat een regio van het opnamevolume waarvoor het vastlegknooppunt 104 een puntenwolk kan genereren. De puntenwolk kan ten minste een deel van een object 203 binnen het opnamevolume weergeven.
Het vastlegknooppunt 104 omvat ook een projector 204. In andere voorbeelden, meerdere projectoren 204 kunnen worden omvat in het vastlegknooppunt 104. In verdere voorbeelden kunnen bepaalde vastlegknooppunten 104 een of meer projectoren 204 omvatten, terwijl andere vastlegknooppunten de projector 204 kunnen weglaten.
De projector 204 is regelbaar om een gestructureerd lichtpatroon op het opnamevolume te projecteren, e.g. om het object 203 te verlichten binnen het opnamevolume.
Het gestructureerde lichtpatroon kan worden geselecteerd om makkelijk te detecteren zijn in beelden die door de camera’s 200 zijn genomen, om het genereren van de bovengenoemde puntenwolk te faciliteren.
Het vastlegknooppunt 104 omvat ook een computer 208 verbonden met de camera’s 200 en de projector 204. De computer 208 kan de camera’s 200 besturen om beelden vast te leggen van het opnamevolume binnen het FOV 202, terwijl de projector 204 het opnamevolume verlicht.
De computer 208 genereert ook een puntenwolk van de beelden die zijn vastgelegd door de camera’s 200. Zoals nu zal blijken, representeert de puntenwolk een deel van het opnamevolume, en kan deze daarom sommige, alle of geen van het object 203 (afhankelijk van de positie van het object 203 binnen het opnamevolume) representeren.
De puntenwolk, of puntenwolk-data, die gegenereerd zijn door de computer 208 worden uitgewisseld over het netwerk 124 met de server 108, hier een datavastlegserver 108. In FIG. 3 zijn bepaalde componenten van het systeem 100 getoond in een voorbeeld implementatie.
De voorbeeld implementatie getoond in FIG. 3 omvat de vier bovengenoemde vastlegknooppunten 104, e.g. met de camera’s 200 en projector 204 (niet getoond in FIG. 3) van elk knooppunt 104 omvat in een in hoofdzaak cilindrische behuizing, als e.g. getoond in FIG. 3. Een grote verscheidenheid aan andere structurele regelingen kunnen ook worden gebruikt voor elk knooppunt 104.
De knooppunten 104 worden ondersteund, e.g. door een centrale ondersteuningsstructuur 300 verbonden met de knooppunten 104 via buizen
304. De knooppunten 104 kunnen ook worden ondersteund door ondersteuningsleden die zich uitstrekken van een plafond (niet getoond) van de faciliteit. De buizen 304 kunnen, wanneer gebruikt in het systeem 100, communicatielijnen en koelvloeistof (e.g. geconditioneerde lucht en dergelijke) dragen. De centrale ondersteuningsstructuur 300 kan daarom koel- of andere conditioneringsapparatuur omvatten, en kan ook de server 108 omvatten.
Zoals eerder opgemerkt zijn de camera’s 200 van de knooppunten 104 zodanig gepositioneerd dat het gezichtsveld van elke camera 200 omvat ten minste een deel van een opnamevolume 308, zoals een 10 x 10 x 10 voet volume. De gezichtsvelden van aangrenzende camera’s 200 overlappen verder binnen elk knooppunt 104, e.g. voor ongeveer 40%. Samen voorzien de camera’s 200 dus in hoofdzaak volledige dekking van het opnamevolume 308 (e.g. elke positie in het opnamevolume 308 bevindt zich binnen het gezichtsveld van ten minste twee camera’s 200).
Het object 203 kan binnen het opnamevolume 308 worden geplaatst om stationair te blijven tijdens vastlegging en dimensionering, of het object 203 kan worden vervoerd door het opname volume 308 via een geschikt locomotief mechanisme. Het systeem 100 kan, in andere woorden, het object 203 in rust of in beweging dimensioneren. In het geïllustreerde voorbeeld is het locomotief mechanisme een vervoerder zoals een vorkheftruck 309. De vorkheftruck 309 omvat een lichaam 310, e.g. omvattend een cabine, stoel of iets dergelijks voor een operator, motor en andere componenten. De vorkheftruck 309 omvat ook een houder 311 om het object 203 te ondersteunen. In het huidige voorbeeld omvat de houder 311 een mast 3114, welke een wacht of dergelijke kan omvatten als getoond in FIG. 3. De houder 311 omvat ook een basis 311b, zoals het paar vorken geïllustreerd in FIG. 3. Over het algemeen brengt de mast 311a een achter steunvlak voor het object 203 tot stand, terwijl de basis 311b een lager steunvlak voor het object 203 tot stand brengt.
Het systeem 100 is geconfigureerd om te detecteren wanneer het object 203 het opnamevolume 308 is binnengekomen, en als reactie op dergelijke detectie, om componenten daarvan te besturen om de projectoren 204 en camera’s 200 van de knooppunten 104-1 tot en met 104-4 te configureren, beelden vast te leggen met de camera’s 200 van de respectieve knooppunten 104, en puntenwolk-data te genereren. In het bijzonder is de computer 208 van elk knooppunt 104 geconfigureerd om een puntenwolk te genereren van de beelden die zijn vastgelegd door de camera’s 200 van dat knooppunt 104. Hier zijn vier knooppunten 104-1, 104-2, 104-3, 104-4 getoond, echter knooppunten 104-1 tot en met 104-i kunnen worden voorzien. De puntenwolk gegenereerd door een gegeven knooppunt 104 geeft dus een deel van het opnamevolume 308 corresponderend met het FOV 202 van dat knooppunt 104 weer. De puntenwolken gegenereerd door de knooppunten 104 kunnen een lokaal referentiekader gebruiken dat specifiek is voor elk knooppunt 104, of kunnen een gemeenschappelijk referentiekader 312 gebruiken dat tot stand gebracht 1s voor het opnamevolume 308 wanneer het systeem 100 1s ingezet. Wanneer de knooppunten 104 puntenwolken genereren met behulp van het gemeenschappelijke referentiekader 312, kan de computer 208 van elk knooppunt 104 kalibratiedata opslaan die de fysieke positie van de camera’s 200 definiëren van dat knooppunt 104 ten opzichte van de oorsprong van het gemeenschappelijke referentiekader 312. Wanneer de knooppunten 104 lokale referentiekaders gebruiken, kan de server 108 de knooppunt- specifieke puntenwolken registreren in het gemeenschappelijke referentiekader 312 met behulp van kalibratiedata. De knooppunten 104 zijn ook geconfigureerd om, in de beelden die zijn vastgelegd en gebruikt voor het genereren van puntenwolken, een set van vaste markers te detecteren die zijn aangebracht op de vorkheftruck
309. De vaste markers kunnen een van een verscheidenheid aan typen markers, omvattend IR-reflectieve markers, reflectieve tape, en dergelijke, omvatten. De markers worden op vooraf bepaalde locaties op de vorkheftruck 309 geplaatst, en bij het detecteren van de markers in vastgelegde beelden, wordt elk knooppunt 104 geconfigureerd om de gedetecteerde posities van elke marker (e.g. in het referentiekader 312) aan de server 108 te voorzien. De markers kunnen, in sommige voorbeelden, worden gecodeerd met verschillende identificeerders om elke marker van de anderen te onderscheiden, als ook om foutieve marker detecties te beperken en het systeem in staat te stellen om onderscheid te maken tussen verschillende vervoerders. Het coderen van de markers met verschillende identificeerders kan de server 108 ook in staat stellen om de oriëntatie van de vorkheftruck te bepalen, aangezien de vorkheftruck het opnamevolume 308 vanuit verschillende richtingen mag binnen gaan.
De knooppunten 104 kunnen daarom elk aan de server 108 een puntenwolk en een of meer marker posities en identificeerders voorzien. Zoals hieronder zal worden besproken, gebruikt de server 108 de marker posities en vorkheftruck-specifieke kalibratiedata om een deel van de gecombineerde puntenwolk die het object 203 omvat te selecteren maar met uitzondering van de vorkheftruck 309 (zowel het lichaam 310 als de houder 311). Het isoleren van het object 203 faciliteert daaropvolgende dimensionering van het object 203.
De vorkheftruck 309 kan ook een referentievlak 314 omvatten dat daarop is geplaatst en detecteerbaar is door additionele vaste markers, een voorgedefinieerde kleur of oppervlakte patroon, en dergelijke. Zoals hieronder zal worden besproken, kan in sommige voorbeelden de locatie van het referentievlak 314 als gedetecteerd door de knooppunten 104 worden gerapporteerd aan de server 108 en de server 108 kan het referentievlak 314 gebruiken om de kwaliteit (e.g. ruisniveau) van de gecombineerde puntenwolk te beoordelen.
In FIG. 4 is een werkwijze 400 voor het vastleggen van data voor het dimensioneren van objecten geïllustreerd. De werkwijze 400 zal worden omschreven in combinatie met zijn prestaties in het systeem 100, en in het bijzonder door de server 108. Over het algemeen stelt de prestatie van de werkwijze 400 de server 108 in staat om individuele puntenwolken te verkrijgen van de knooppunten 104, die elk een deel van het opnamevolume 308 vertegenwoordigen, en om een gecombineerde puntenwolk te genereren volgens het gemeenschappelijke referentiekader 312. Uit de gecombineerde puntenwolk kan de server 108 dan de afmetingen voor het object 203 bepalen.
Bij blok 405 is de server 108 geconfigureerd om te bepalen of een object (e.g. het object 203) is gedetecteerd binnen het opnamevolume 308, of grenzend aan het opnamevolume 308. Object detectie in blok 405 kan worden gebaseerd op een van een verscheidenheid aan geschikte trigger mechanismes. Een lidar sensor, IR sensor en dergelijke die dicht bij de omtrek van het opnamevolume 308 geplaatst worden kan bijvoorbeeld een detectiesignaal genereren wanneer het object 203 het opnamevolume 308 binnen komt. In andere voorbeelden kan ten minste een van de knooppunten 104 worden geconfigureerd om een stroom van beelden vastgelegd via ten minste een camera 200 te zenden naar de server 108. De server 108 kan de beelden verwerken om objecten in beweging daarin te detecteren. Wanneer de bepaling in blok 405 bevestigend is, gaat de server over naar blok 410. Wanneer de bepaling in blok 405 negatief is, kan de server 108 de prestatie van blok 405 herhalen.
In blok 410 genereert de server 108 een trigger commando om ten minste een van de knooppunten 104 beelden te laten vastleggen en daaruit een puntenwolk te genereren. Bijvoorbeeld, de server 108 kan een subset van de knooppunten 104, of alle knooppunten 104, selecteren en een trigger commando zenden naar elk geselecteerd knooppunt 104. Op elk knooppunt 104 dat het trigger commando ontvangt, bestuurt de corresponderende computer 208 ten minste een subset van de camera’s 200 om beelden in hoofdzaak gelijktijdig vast te leggen, en genereert deze een puntenwolk van de beelden via de uitvoering van een geschikte puntenwolk generatie mechanisme (e.g. een fotogrammetrie toepassing of iets dergelijks).
Na het genereren van het trigger commando en het zenden van het trigger commando naar de knooppunten 104 om het genereren van puntenwolken op de knooppunten 104 te initiëren, gaat de server 108 verder naar blok 415. Bij blok 415 is de server 108 geconfigureerd om puntenwolken te ontvangen van elk van de knooppunten 104, alsook de posities en de identificeerders van alle vaste markers gedetecteerd door de knooppunten 104, in het referentiekader 312. De server 108 is geconfigureerd om een enkele gecombineerde puntenwolk te genereren van de puntenwolken ontvangen van de knooppunten 104. In sommige voorbeelden omvat het genereren van de gecombineerde puntenwolken het registreren van elke ontvangen knooppunt-specifieke puntenwolk in het referentiekader 312. In andere voorbeelden kan de gecombineerde puntenwolk worden gegenereerd door het selecteren van delen van elke knooppunt-specifieke puntenwolk met uitzondering van andere delen; een dergelijke functionaliteit valt echter buiten de reikwijdte van de huidige bespreking.
FIG. 5 toont een voorbeeld puntenwolk 501 gegenereerd in blok 415, die de vorkheftruck 309 en het object 203 weergeeft. Ook aangegeven in FIG. 5 zijn vaste markers 500, 504, 508 en 512. Zoals eerder opgemerkt, worden de posities van de markers 500-512 gerapporteerd aan de server 108 door de knooppunten 104, welke worden geconfigureerd om de markers te detecteren in beelden die zijn vastgelegd via de camera’s 200. Elke marker 500-512 is gedefinieerd als ontvangen op de server 108, door een positie (als getoond in FIG. 5) en een identificeerder (e.g. de referentienummer getoond in FIG. 5).
Bij blok 420, zie FIG. 4, is de server 108 geconfigureerd om een eerste deel van de gecombineerde puntenwolk met uitzondering van het lichaam 310 van de vervoerder en de mast 311a van de houder 311 te selecteren. De server 108 slaat vorkheftruck kalibratiedata op, e.g. in het geheugen 116, welke de posities van verschillende structurele kenmerken van de vorkheftruck 309 ten opzichte van de posities van de markers 500-512 definiëren. De kalibratiedata kan bijvoorbeeld posities definiëren voor de markers 500-512 alsook posities van andere structurele kenmerken van de vorkheftruck 309 in een lokaal referentiekader. Op basis van de posities van de markers 500-512 in het referentiekader 312, kunnen de posities van de andere structurele kenmerken van de vorkheftruck 309 in het referentiekader 312 worden bepaald. Wanneer verschillende typen vervoerders zoals vorkheftrucks in een faciliteit worden gebruikt, kan de server 108 verschillende kalibratiedata opslaan voor elke vorkheftruck. Bij blok 420 kan de server 108 ook een van de sets van kalibratiedata selecteren, bijvoorbeeld op basis van een indicia (e.g. een barcode) op de vorkheftruck (e.g. op het referentievlak 314). In andere voorbeelden kunnen de markers 500-512 zelf unieke identificeerder coderen, en kan de set van markers gedetecteerd in de vastgelegde data worden geraadpleegd om te bepalen welke vorkheftruck aanwezig is.
In het bijzonder definieert, verwijzend naar FIG. 6, de vorkheftruck kalibratiedata een positie van een voorvlak 600 van de mast 3114 van de houder 311 ten opzichte van de markers 500-512, zoals bijvoorbeeld gegenereerd zijn door blok 420 van FIG. 4. De vorkheftruck kalibratiedata kan bijvoorbeeld een offset 604 definiëren tussen een vlak omvattend het voorvlak 600 en de marker 504, alsook een offset 608 tussen het bovengenoemde vlak en de marker 500. Vergelijkbare offsets kunnen worden opgeslagen voor de markers 508 en 512, welke niet zichtbaar zijn in FIG. 6. Op basis van de offsets 604 en 608, en de posities van de markers 500 en 504 in puntenwolk, wordt een snijvlak 612 gedefinieerd in het referentiekader, dat parallel is aan het voorvlak 600, en het voorvlak 600 kan omvatten.
Zoals duidelijk zal zijn voor de vakman, kan het vlak 612 worden gegenereerd op basis van een subset van de markers 500-512, e.g. als bepaalde markers niet waren gedetecteerd in de initiële data vastlegging.
In het huidige voorbeeld kunnen ten minste drie van de markers 500-512 worden gebruikt om het vlak 612 te genereren.
Andere mechanismes voor het genereren van het snijvlak 612 zijn ook overwogen.
De vorkheftruck kalibratiedata kan bijvoorbeeld een oriëntatie en afstand van een mastvlak (i.e. een vlak dat de lengte van de mast 3114 doorkruist) tot het snijvlak 612 definiëren.
In dergelijke implementaties kan de server 108 het mastvlak op basis van de posities van de markers 500-512 (e.g. met de markers 500-512 als punten op het mastvlak) genereren, en voeg de bovengenoemde offset toe om het snijvlak 612 te genereren.
Nadat het snijvlak 612 is gegenereerd, kan de server 108 worden geconfigureerd om een eerste deel van de puntenwolk te selecteren dat de punten “achter” het snijvlak 612 uitsluit.
Met andere woorden, het deel van de puntenwolk dat de markers 500-512 omvat kan worden weggegooid, of behouden maar uitgesloten van verdere verwerking.
Als resultaat van de prestatie van blok 420, selecteert de server 108 een eerste deel 700, zoals getoond in FIG. 7, dat nog steeds het object 203 representeert en ten minste een deel van de basis 311b van de houder 311, maar de rest van de vorkheftruck 309 weglaat.
Terugkerend naar FIG. 4, bij blok 425 1s de server 108 geconfigureerd om een tweede deel van de puntenwolk 501 te selecteren van het eerste deel 700, geselecteerd in blok 420. Het tweede deel is geselecteerd om het object 203 te omvatten, maar de rest van de houder 311 uit te sluten (i.e. de basis 311b nog steeds gerepresenteerd in het eerste deel 700). Om het tweede deel te selecteren, identificeert de server 108 een ondervlak van de basis 311b.
Bijvoorbeeld opnieuw verwijzend naar FIG. 7, kan de server 108 een begrenzingskader 704 genereren, voor het uitvoeren van blok 425, zoals een as-uitgelijnd begrenzingskader (AABB) met zijden parallel aan respectieve assen van het referentiekader 312. Het begrenzingskader heeft een ondervlak 708 met een voorgedefinieerde hoek ten opzichte van het snijvlak 612, waarbij de hoek wordt gedefinieerd in de vorkheftruck kalibratiedata als de hoek tussen de mast 3114 en de basis 311b. Het ondervlak 708 is gepositioneerd op de hoogte (i.e. positie langs de Z as) van het laagste punt in het deel 700 (i.e. het punt met de laagste Z-coördinaat).
Het begrenzingskader 704 omvat ook zijvlakken 712 en 716, e.g. parallel aan het XZ-vlak van het referentiekader 312, gepositioneerd langs de Y-as op de maximale en minimale Y-waarden aanwezig in het deel 700, respectievelijk. Vergelijkbaar boven- en voorvlakken van het begrenzingskader 704 zijn gedefinieerd door de uitgestrektheden van de punten in het deel 700. Een achtervlak van het begrenzingskader 704 is coplanair met het snijvlak 612.
Nadat een ondervlak van de basis 311b (dat aangenomen wordt het ondervlak 708 van het begrenzingskader 704 te zijn) is geïdentificeerd, kan de server 108 een offset corresponderend met een hoogte van de basis 311b op het ondervlak toepassen, om een verder snijvlak te genereren. Verwijzend naar FIG. 8, is een snijvlak 800 geïllustreerd op een offset 804 corresponderend met de hoogte van de basis 311b, zoals aangeduid in de vorkheftruck kalibratiedata. Om het tweede deel van de puntenwolk te selecteren van het eerste deel 700, kan de server 108 elk van de punten onder het snijvlak 800 weggooien. Alternatief kan de server 108 elk van de punten tussen het snijvlak 800 en het ondervlak 708 van het begrenzingskader 704 weggooien.
In verdere voorbeelden kan de server 108 een snijkader genereren door het definiëren van het snijvlak 800 zoals hierboven opgemerkt, alsook zijsnijvlakken. Verwijzend naar FIG. 9, in aanvulling op het snijvlak 800, welke het bovenvlak van een snijkader vormt, kan de server 108 een midden van het begrenzingskader 704 (langs de Y-as in het huidige voorbeeld)
bepalen, en tegengestelde offsets 900 corresponderend met een helft van de afstand tussen de vorken van de basis 311b naar het midden toepassen. De afstand tussen de vorken kan worden gespecificeerd in de vorkheftruck kalibratiedata. Op basis van de offsets 900, kan de server 108 zijvlakken voor een snijkader 904 als getoond in FIG. 9 definiëren. De server 108 kan dan elk van de punten van het deel 700 weggooien die binnen het snijkader liggen. De benadering getoond in FIG. 9 kan wenselijk zijn om het uitsluiten van delen van een object die over de zijden van de vorken hangen te voorkomen.
Terugkerend naar FIG. 4, bij blok 430 is de server 108 dan geconfigureerd om een object begrenzingskader te genereren. Zoals duidelijk zal zijn uit de bespreking hierboven, sluit het tweede deel van de puntenwolk in hoofdzaak alle opnamevolumes ut behalve het object 203 zelf. De server 108 kan daarom een begrenzingskader genereren corresponderend met de buitenste grenzen van het object 203 via geschikte vlakaanpassingsoperaties of andere mechanismes voor het genereren van een begrenzingskader.
In blok 435 is de server 108 geconfigureerd om afmetingen van het object 203 te bepalen, zoals een breedte, hoogte en/of lengte van het object 203, een volume van het object, en dergelijke, op basis van het bovengenoemde begrenzingskader.
In sommige voorbeelden kan de server 108 worden geconfigureerd om het begrenzingskader dat gegenereerd is in blok 430 te verfijnen voorafgaand aan het dimensioneren van het object 203. Wanneer een dergelijke verfijning wordt geïmplementeerd, zoals getoond in stippellijnen in FIG. 4, gaat de server 108 verder van blok 430 naar blok 440 voorafgaand aan het dimensioneren in blok 435. Over het algemeen omvat de verfijning van het begrenzingskader in blok 440 het evalueren van puntdichtheden van het tweede deel van de puntenwolk op verschillende dieptes ten opzichte van de oppervlakken van het begrenzingskader, en het bepalen of een van deze oppervlakken moet worden aangepast. De puntenwolk kan een mate van ruis in de punten die de oppervlakken van het object 203 definiëren omvatten, wat erin kan resulteren dat de oppervlakken van het begrenzingskader groter zijn dan het object 203 zelf. Verfijning van het begrenzingskader in blok 440 kan de server 108 in staat stellen om de nauwkeurigheid van het begrenzingskader te verhogen.
Verwijzend naar FIG. 10, wanneer blok 440 wordt uitgevoerd, kan de server 108 de onderstaande opeenvolging van bewerkingen voor ten minste een van de oppervlakken van het begrenzingskader herhalen, voor alle oppervlakken van het begrenzingskader. FIG. 10 toont een begrenzingskader 1000 (in vaste lijnen) omvattend de punten (in stippellijnen) die het object 203 definiëren. De punten binnen het begrenzingskader 1000, zijn met andere woorden het tweede deel dat geselecteerd is in blok 425, met uitzondering van in hoofdzaak de hele vorkheftruck 309.
Zoals getoond in de detailweergave 1004, wordt een grens 1008 van het begrenzingskader 1000 gegenereerd op basis van een veelheid van punten 1012. Om de grens 1008 te verfijnen, kijkend naar FIG. 11, is de server 108 geconfigureerd om een veelheid van sneden, of regio’s, parallel aan de grens 1008 en op voorgedefinieerde dieptes in het object 203 beginnend bij de grens 1008 te genereren. Drie voorbeeldsneden 1100-1, 1100-2 en 1100-3 zijn getoond in FIG. 11, hoewel kleinere en grotere aantallen sneden kunnen worden gebruikt in andere voorbeelden.
Voor elke snede 1100, is de server 108 geconfigureerd om een puntdichtheid of een puntentelling te bepalen, aanduidend hoe dichtbevolkt met punten 1012 de relevante snede 1100 is. Zoals geïllustreerd in FIG. 11, omvat de snede 1100-3 slechts een enkel punt, terwijl de sneden 1100-2 en 1100-1, respectievelijk, acht en zes punten omvatten.
De server 108 is geconfigureerd om de snede 1100 te selecteren met de grootste puntdichtheid (i.e. de snede 1100-2 in het geïllustreerde voorbeeld), en de grens 1008 te updaten om overeen te komen met de positie van die snede 1100. Bijvoorbeeld, zoals getoond in het lagere deel van FIG. 11, kan de grens 1008 worden vervangen door een geüpdatete grens 1104-2, waarvan de positie in het midden van de snede 1100-2 is. In andere voorbeelden kan een grens van de geselecteerde snede 1100 worden gebruikt in plaats van een midden van de geselecteerde snede 1100. Na herhaling van het bovenstaande proces voor elk van de resterende oppervlakken van het begrenzingskader 1000, kan het geüpdatete begrenzingskader worden gebruikt voor het dimensioneren in blok 435.
Het gebruik van sneden om puntdichtheden te beoordelen voor de oppervlakken van een begrenzingskader kunnen ook worden gebruikt om de kwaliteit van de originele puntenwolk te beoordelen in sommige voorbeelden. Terugkerend naar FIG. 4 kan in sommige voorbeelden de server 108 verder gaan van blok 415 naar blok 445 in plaats van direct naar blok 420. Bij blok 445 is de server 108 geconfigureerd om een mate van ruis te schatten voor een referentievlak in de puntenwolk, zoals het referentievlak 314 getoond in FIG. 3. Omdat het referentievlak 314 op de vorkheftruck 309 is, kan de positie van het referentievlak worden bepaald van de eerder genoemde posities van de markers 500-512, volgens de vorkheftruck kalibratiedata.
Om ruis te schatten voor het referentievlak 314, kan de server 108 een deel van de puntenwolk dat slechts het referentievlak 314 omvat selecteren en de hierboven besproken verfijningsprocedure om puntdichtheden te bepalen voor elke van een set van sneden omvattend de punten die het referentievlak 314 definiëren. Omdat het referentievlak 314 een vlak oppervlak is, wordt een laag ruisniveau verwacht te resulteren in puntdichtheden in een reeks van sneden die een piek weergeven zoals getoond in FIG. 12 in de grafiek 1200. Puntdichtheden die meer geleidelijk veranderen, zoals getoond in de grafiek 1204 in FIG. 12, kunnen excessieve ruis in de puntenwolk aanduiden. De server 108 kan daarom worden geconfigureerd om een gradiënt te bepalen tussen de puntdichtheidsmetingen voor elke snede, waarbij hogere gradiënten lagere graden van ruis aanduiden. Een gemiddelde van de bovenstaande gradiënten kan bijvoorbeeld worden gebruikt als een indicator van een ruisniveau in de puntenwolk.
In blok 450 bepaalt de server 108 of een ruisniveau dat bepaald is in blok 445 een drempel overschrijdt. Wanneer het gemiddelde gradiënt dat bepaald 1s in blok 445 bijvoorbeeld een bepaalde drempel overschrijdt, is de bepaling in blok 450 bevestigend, en kan de server 108 verder gaan naar blok 455 in plaats van naar blok 420. Bij blok 455 kan de server 108 een waarschuwing (e.g. aan een andere computer en/of via een scherm, luidspreker of iets dergelijks van de server 108) genereren die aanduidt dat de puntenwolk kwaliteit niet geschikt is voor het dimensioneren van het object 203. In andere voorbeelden kan de server 108 dan een ruisverlagingsoperatie uitvoeren. Wanneer de bepaling in blok 450 negatief is, gaat het hierboven besproken proces verder bij blok 420.
In de voorgaande specificatie zijn specifieke uitvoeringsvormen beschreven. De vakman beseft echter dat verschillende aanpassingen en wijzigingen kunnen worden gedaan zonder af te wijken van de omvang van de uitvinding zoals uiteengezet in de onderstaande conclusies. Overeenkomstig zijn de specificatie en figuren in eerder een illustratieve dan beperkende zin te beschouwen, en al dergelijke wijzigingen zijn bedoeld om te worden omvat in de omvang van de huidige openbaarmaking.
De voordelen, oplossingen voor problemen en willekeurig welk der element(en) die een voordeel of oplossing kunnen veroorzaken of meer uitgesproken laten worden, dienen niet te worden uitgelegd als kritische, vereiste of essentiële kenmerken of elementen van een of alle conclusies. De uitvinding is uitsluitend gedefinieerd door de bijgevoegde conclusies omvattend eventuele aangebrachte wijzigingen tijdens de verleningsprocedure van deze aanvraag en alle equivalenten van die conclusies zoals verleend. Voor de duidelijkheid en een beknopte beschrijving zijn kenmerken hierin beschreven als onderdeel van dezelfde of afzonderlijke uitvoeringen, echter, het zal duidelijk zijn dat de omvang van de uitvinding uitvoeringen met combinaties van alle of enkele van de beschreven kenmerken kan omvatten. Het moge duidelijk zijn dat de getoonde uitvoeringen dezelfde of soortgelijke componenten hebben, behalve waar ze worden beschreven als verschillend.
Bovendien kunnen in dit document relationele termen zoals eerste en tweede, boven en onder, en dergelijke alleen worden gebruikt om een entiteit of actie van een andere entiteit of actie te onderscheiden zonder noodzakelijk een daadwerkelijke dergelijke relatie of volgorde tussen dergelijke entiteiten of acties te vereisen of impliceren. De termen "omvat", "omvattende", "heeft", "hebben", "bevat", "bevattende", "met" of enige andere variant daarvan, zijn bedoeld om een niet-exclusieve opname te dekken, zodat een proces, werkwijze, artikel of apparaat dat een lijst van elementen omvat, heeft, bevat niet alleen die elementen, maar ook andere elementen kan omvatten die niet uitdrukkelijk worden vermeld of inherent zijn aan een dergelijk proces, werkwijze, artikel of apparaat. Een element gevolgd door “omvat... een”, “heeft… een”, “bevat… een”, “met... een” sluit niet, zonder meer beperkingen, het bestaan van aanvullende identieke elementen in het proces, de werkwijze, het artikel of het apparaat dat het element omvat, heeft, bevat, uit. De term "een" wordt gedefinieerd als een of meer, tenzij expliciet anders vermeld hierin. De termen "in wezen", "in hoofdzaak", "ongeveer" of elke andere versie daarvan, zijn gedefinieerd als zijnde in de buurt van zoals begrepen door de vakman, en in een niet-beperkende uitvoering is de term gedefinieerd als zijnde binnen 10%, in een andere uitvoering binnen 5%, in een andere uitvoering binnen 1% en in een andere uitvoering binnen 0,5%. De voorwaarde "gekoppeld" zoals hierin gebruikt, wordt gedefinieerd als verbonden, hoewel niet noodzakelijk direct en niet noodzakelijk mechanisch. Een apparaat of structuur die is "geconfigureerd"
op een bepaalde manier is op zijn minst zo geconfigureerd, maar kan ook worden geconfigureerd op manieren die niet worden vermeld.
Het zal duidelijk zijn dat enkele uitvoeringen een of meer gespecialiseerde processors (of "verwerkingsapparaten") kunnen omvatten zoals microprocessors, digitale signaalprocessors, aangepaste processors en veld programmeerbare gate arrays (FPGA 's) en uniek opgeslagen programma-instructies (inclusief zowel software als firmware) die de een of meer processors besturen om te implementeren, in combinatie met bepaalde niet-processor schakelingen, enkele, de meeste, of alle functies van de hierin beschreven werkwijze en/of het apparaat. Als alternatief kunnen sommige of alle functies worden geïmplementeerd door een toestandmachine die geen opgeslagen programma-instructies heeft, of in een of meer toepassingsspecifieke geïntegreerde schakelingen (ASIC's), waarin elke functie of sommige combinaties van bepaalde functies geïmplementeerd worden als aangepaste logica. Natuurlijk zou een combinatie van de twee benaderingen kunnen worden gebruikt.
Bovendien kan een uitvoering worden geïmplementeerd als een computer-leesbaar opslagmedium waarop computer leesbare code is opgeslagen voor het programmeren van een computer (e.g. omvattende een processor) om een werkwijze uit te voeren zoals hierin beschreven en geclaimd. Voorbeelden van dergelijke computerleesbaar opslagmedia omvatten, maar zijn niet beperkt tot, een harde schijf, een cd-rom, een optisch opslagapparaat, een magnetisch opslagapparaat, een ROM (alleen- lezen geheugen), een PROM (programmeerbaar alleen-lezen geheugen), een EPROM (uitwisbaar programmeerbaar alleen-lezen geheugen), een EEPROM (elektrisch uitwisbaar programmeerbaar alleen-lezen geheugen) en een flash-geheugen. Verder wordt verwacht dat de vakman niettegenstaande mogelijk significante inspanning en veel ontwerpkeuzes gemotiveerd door bijvoorbeeld beschikbare tijd, huidige technologie en economische overwegingen, indien geleid door de hierin geopenbaarde concepten en principes gemakkelijk in staat zal zijn dergelijke software- instructies en programma's en IC's met minimaal experimenteren te genereren.
De Samenvatting van de Openbaarmaking wordt verstrekt om het voor de lezer mogelijk te maken snel de aard van de technische openbaarmaking vast te stellen. Het is ingediend met het besef dat het niet zal worden gebruikt om de omvang of betekenis van de conclusies te interpreteren. Daarnaast kan in de voorgaande Gedetailleerde Beschrijving worden gezien dat verschillende functies in verschillende uitvoeringen gegroepeerd zijn met als doel de openbaarmaking te stroomlijnen. Deze manier van openbaarmaking dient niet te worden geïnterpreteerd als een weerspiegeling van een intentie dat de geclaimde uitvoeringen meer kenmerken vereisen dan uitdrukkelijk in elke conclusie worden genoemd. In plaats daarvan ligt, zoals de volgende conclusies weergeven, de inventieve materie van de uitvinding juist in minder dan alle kenmerken van een enkele geopenbaarde uitvoering. Aldus zijn de volgende conclusies hierbij opgenomen in de Gedetailleerde Beschrijving, met elke conclusie op zichzelf staand als een afzonderlijk geclaimd onderwerp. Het simpele feit dat bepaalde maatregelen worden gereciteerd in onderling verschillende conclusies geeft niet aan dat een combinatie van deze maatregelen niet bruikbaar is voor een voordeel. Vele varianten zullen voor de vakman duidelijk zijn. Alle varianten worden geacht binnen de omvang van de uitvinding gedefinieerd in de volgende conclusies te vallen.

Claims (18)

CONCLUSIES
1. Server, omvattend: een geheugen dat data als puntenwolk opslaat; en een processor verbonden met het geheugen, waarbij de processor is geconfigureerd voor: het verkrijgen van de puntenwolk van het geheugen, waarbij de puntenwolk een weergave van een object dat moet worden gedimensioneerd omvat; het genereren van een begrenzingskader dat correspondeert met het object; het bepalen van puntdichtheden voor elk van een veelheid aan snede grenzend aan een oppervlak van het begrenzingskader; het selecteren van een geüpdatete begrenzingskaderoppervlak dat correspondeert met één van de sneden met de grootste puntdichtheid; het updaten van het begrenzingskader dat correspondeert met het object op basis van het geselecteerde geüpdatete begrenzingskaderoppervlak, resulterend in een geüpdatete begrenzingskader.
2. Server volgens conclusie 1, verder omvattend: een communicatie-interface; waarbij de processor verder is geconfigureerd, voor het verkrijgen van de puntenwolk, het ontvangen van initiële puntenwolken van een veelheid aan vastlegknooppunten via het communicatie-interface en het combineren van de initiële puntenwolken voor het genereren van de puntenwolk.
3. Server volgens conclusie 1 of 2, waarbij de processor geconfigureerd is voor het genereren van het begrenzingskader, voor: het verkrijgen, uit de puntenwolk, van een set posities geassocieerd met een vervoerder van het object; en het selecteren, op basis van de set posities, van een eerste deel van de puntenwolk met uitzondering van het lichaam van de vervoerder door een snijvlak te genereren dat correspondeert met een voorvlak van een mast van de vervoerder en punten aan een vooraf bepaalde zijde van het snijvlak weg te gooien.
4. Server volgens een van de voorgaande conclusies, waarbij de processor is geconfigureerd voor: het detecteren van een ondervlak van een basis van een houder van het object; het genereren van een bovenvlak van de basis ; en het weggooien van punten tussen het ondervlak en het bovenvlak.
5. Server volgens een van de voorgaande conclusies, waarbij de processor verder is geconfigureerd voor: het identificeren van een midden van het begrenzingskader; het genereren van zijvlakken corresponderend met zijden van de basis volgens het midden; en het weggooien van punten tussen een ondervlak van het begrenzingskader, een bovenvlak van het begrenzingskader, en zijvlakken van het begrenzingskader.
6. Server volgens conclusie 4 of 5, waarbij de processor geconfigureerd is voor het genereren van het ondervlak met een voorgedefinieerde hoek ten opzichte van het snijvlak.
7. Server volgens een van de voorgaande conclusies, waarbij de processor verder is geconfigureerd voor het herhalen van de bepaling van puntdichtheden en selectie van het geüpdatete begrenzingskaderoppervlak voor elk overblijvend oppervlak van het begrenzingskader.
8. Server volgens een van de conclusies 3 - 7, waarbij de processor verder is geconfigureerd voor: het detecteren van een referentieoppervlak van de vervoerder op basis van de set posities en de kalibratiedata; en het schatten van een ruisniveau in de puntenwolk van het referentieoppervlak.
9. Werkwijze, omvattend: het opslaan van kalibratiedata; het verkrijgen van een puntenwolk die een opnamevolume weergeeft dat een vervoerder omvat met een lichaam en een houder die een object draagt dat moet worden gedimensioneerd; het verkrijgen van een set posities geassocieerd met de vervoerder; op basis van de set posities en de kalibratiedata, het selecteren van een eerste deel van de puntenwolk met uitzondering van het lichaam van de vervoerder en een mast van de houder; op basis van de kalibratiedata, het selecteren van een tweede deel van de puntenwolk van het eerste deel, met uitzondering van een basis van de houder; en het dimensioneren van het object op basis van het tweede deel van de puntenwolk.
10. Werkwijze volgens conclusie 9, waarbij het verkrijgen van de puntenwolk het ontvangen van initiële puntenwolken van een veelheid van vastlegknooppunten via een communicatie-interface omvat, en het combineren van de initiële puntenwolken om de puntenwolk te genereren.
11. Werkwijze volgens conclusie 9 of 10, waarbij het selecteren van het eerste deel omvat: het genereren van een snijvlak dat correspondeert met een voorvlak van de mast; en het weggooien van punten op een vooraf bepaalde zijde van het snijvlak.
12. Werkwijze volgens een van de conclusies 9 - 11, waarbij het selecteren van het tweede deel omvat: het detecteren van een ondervlak van de basis;
het genereren van een bovenvlak van de basis volgens de kalibratiedata; en het weggooien van punten tussen het ondervlak en het bovenvlak.
13. Werkwijze volgens conclusie 12, waarbij het detecteren van het ondervlak het genereren van een begrenzingskader omvattend het object en de basis, op basis van het eerste deel, omvat.
14. Werkwijze volgens conclusie 12 of 13, verder omvattend: het identificeren van een midden van het begrenzingskader; het genereren van zijvlakken corresponderend met zijden van de basis volgens het midden en de kalibratiedata; en het weggooien van punten tussen het ondervlak, het bovenvlak, en de zijvlakken.
15. Werkwijze volgens een van de conclusies 12 - 14, verder omvattend het genereren van het ondervlak met een voorgedefinieerde hoek ten opzichte van het snijvlak.
16. Werkwijze volgens een van conclusies 9 - 15, waarbij het dimensioneren van het object omvat: het genereren van een begrenzingskader corresponderend met het object van het tweede deel van de puntenwolk; het bepalen van puntdichtheden voor elk van een veelheid van sneden grenzend aan een oppervlak van het begrenzingskader; en het selecteren van een geüpdatete begrenzingskader corresponderend met degene van de sneden met de grootste puntdichtheid.
17. Werkwijze volgens conclusie 16, verder omvattend: het herhalen van de bepaling van puntdichtheden en selectie van een geüpdatete begrenzingskaderoppervlak voor elk overblijvend oppervlak van het begrenzingskader.
18. Werkwijze volgens een van de conclusies 9 - 17, verder omvattend: het detecteren van een referentieoppervlak van de vervoerder op basis van de set posities en de kalibratiedata; en het schatten van een ruisniveau in de puntenwolk van het referentieoppervlak.
BE20215129A 2020-02-25 2021-02-24 Vervoerder-segmentatie voor datavastlegsysteem BE1028059B1 (nl)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US16/800,805 US11227404B2 (en) 2020-02-25 2020-02-25 Transporter segmentation for data capture system

Publications (2)

Publication Number Publication Date
BE1028059A1 BE1028059A1 (nl) 2021-09-07
BE1028059B1 true BE1028059B1 (nl) 2022-05-04

Family

ID=75339193

Family Applications (1)

Application Number Title Priority Date Filing Date
BE20215129A BE1028059B1 (nl) 2020-02-25 2021-02-24 Vervoerder-segmentatie voor datavastlegsysteem

Country Status (7)

Country Link
US (1) US11227404B2 (nl)
KR (1) KR20220131968A (nl)
CN (1) CN113379827A (nl)
BE (1) BE1028059B1 (nl)
DE (1) DE102021104352A1 (nl)
GB (1) GB2595753A (nl)
WO (1) WO2021173402A1 (nl)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11995157B2 (en) * 2020-12-04 2024-05-28 Caterpillar Inc. Intelligent LiDAR scanning
US20230112666A1 (en) * 2021-10-12 2023-04-13 Zebra Technologies Corporation System and Method for Detecting Calibration of a 3D Sensor

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170228885A1 (en) * 2014-08-08 2017-08-10 Cargometer Gmbh Device and method for determining the volume of an object moved by an industrial truck

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9465997B2 (en) 2012-09-26 2016-10-11 General Electric Company System and method for detection and tracking of moving objects
US9811714B2 (en) 2013-08-28 2017-11-07 Autodesk, Inc. Building datum extraction from laser scanning data
US10769806B2 (en) * 2015-09-25 2020-09-08 Logical Turn Services, Inc. Dimensional acquisition of packages
US10145955B2 (en) 2016-02-04 2018-12-04 Symbol Technologies, Llc Methods and systems for processing point-cloud data with a line scanner
US9898833B1 (en) * 2016-07-15 2018-02-20 Northrop Grumman Systems Corporation Apparatus and method for determining the dimensions of a package while in motion
US10451405B2 (en) 2016-11-22 2019-10-22 Symbol Technologies, Llc Dimensioning system for, and method of, dimensioning freight in motion along an unconstrained path in a venue
US11558601B2 (en) 2017-11-06 2023-01-17 Symbol Technologies, Llc Methods and apparatus for initializing object dimensioning systems
US10930001B2 (en) 2018-05-29 2021-02-23 Zebra Technologies Corporation Data capture system and method for object dimensioning
CN109145969B (zh) * 2018-08-03 2020-07-28 百度在线网络技术(北京)有限公司 三维物体点云数据的处理方法、装置、设备及介质
CN109948661B (zh) * 2019-02-27 2023-04-07 江苏大学 一种基于多传感器融合的3d车辆检测方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170228885A1 (en) * 2014-08-08 2017-08-10 Cargometer Gmbh Device and method for determining the volume of an object moved by an industrial truck

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ANONYMOUS: "Random sample consensus - Wikipedia", 14 November 2018 (2018-11-14), pages 1 - 9, XP055563496, Retrieved from the Internet <URL:https://en.wikipedia.org/w/index.php?title=Random_sample_consensus&oldid=868775538> [retrieved on 20190301] *

Also Published As

Publication number Publication date
CN113379827A (zh) 2021-09-10
US11227404B2 (en) 2022-01-18
WO2021173402A1 (en) 2021-09-02
GB2595753A (en) 2021-12-08
GB202102589D0 (en) 2021-04-07
KR20220131968A (ko) 2022-09-29
DE102021104352A1 (de) 2021-08-26
BE1028059A1 (nl) 2021-09-07
US20210264634A1 (en) 2021-08-26

Similar Documents

Publication Publication Date Title
US10713610B2 (en) Methods and systems for occlusion detection and data correction for container-fullness estimation
BE1026263B1 (nl) Systeem en werkwijze voor het bepalen van een locatie voor plaatsing van een pakket
BE1028059B1 (nl) Vervoerder-segmentatie voor datavastlegsysteem
US9823059B2 (en) Dimensioning system with guided alignment
CA3005452C (en) Methods and systems for container fullness estimation
US20190311489A1 (en) Method, system and apparatus for recovering label positions
US11062472B1 (en) Transporter segmentation for data capture system
WO2019140395A1 (en) Systems and methods for mobile parcel dimension calculation and predictive condition analysis
CA3119342C (en) Mixed depth object detection
US20200380317A1 (en) Method, System and Apparatus for Gap Detection in Support Structures with Peg Regions
US11341663B2 (en) Method, system and apparatus for detecting support structure obstructions
BE1026203B1 (nl) Werkwijzen en inrichting voor het bepalen van afmetingen van vracht met gebruik van een lasergordijn
US20210272316A1 (en) Method, System and Apparatus for Object Detection in Point Clouds
US11158075B2 (en) Method, system and apparatus for depth sensor artifact removal
CA3113942C (en) Method, system and apparatus for support structure depth determination
US11804051B2 (en) Parallel data capture system
US11836937B2 (en) System and method for dimensioning target objects
JP2024527887A (ja) ターゲット物体の寸法を測るためのシステム及び方法

Legal Events

Date Code Title Description
FG Patent granted

Effective date: 20220504