PL239620B1 - Sposoby i układ do szacowania napełnienia pojemnika - Google Patents

Sposoby i układ do szacowania napełnienia pojemnika Download PDF

Info

Publication number
PL239620B1
PL239620B1 PL430920A PL43092016A PL239620B1 PL 239620 B1 PL239620 B1 PL 239620B1 PL 430920 A PL430920 A PL 430920A PL 43092016 A PL43092016 A PL 43092016A PL 239620 B1 PL239620 B1 PL 239620B1
Authority
PL
Poland
Prior art keywords
container
mesh
mesh element
depth
point cloud
Prior art date
Application number
PL430920A
Other languages
English (en)
Other versions
PL430920A1 (pl
Inventor
Yan Zhang
Jay J. Williams
Kevin J. O'connell
Kevin J. O’Connell
Cuneyt M. Taskiran
Original Assignee
Symbol Technologies Llc
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
Priority claimed from US14/944,860 external-priority patent/US9940730B2/en
Priority claimed from US14/978,367 external-priority patent/US10713610B2/en
Application filed by Symbol Technologies Llc filed Critical Symbol Technologies Llc
Publication of PL430920A1 publication Critical patent/PL430920A1/pl
Publication of PL239620B1 publication Critical patent/PL239620B1/pl

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01FMEASURING VOLUME, VOLUME FLOW, MASS FLOW OR LIQUID LEVEL; METERING BY VOLUME
    • G01F17/00Methods or apparatus for determining the capacity of containers or cavities, or the volume of solid bodies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/77Retouching; Inpainting; Scratch removal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • 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
    • G06T7/62Analysis of geometric attributes of area, perimeter, diameter or volume
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/04Indexing scheme for image data processing or generation, in general involving 3D image data
    • 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/10016Video; Image sequence
    • 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/20021Dividing image into blocks, subimages or windows
    • 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/20036Morphological image processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Quality & Reliability (AREA)
  • Geometry (AREA)
  • Fluid Mechanics (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Length Measuring Devices With Unspecified Measuring Means (AREA)
  • Image Analysis (AREA)
  • Measurement Of Levels Of Liquids Or Fluent Solid Materials (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

Skuteczny załadunek pojemników jest kluczowym elementem zapewniającym właściwą dystrybucję w przemyśle transportowym i logistyce. Zagwarantowanie, że każdy pojemnik został odpowiednio załadowany w procesie załadunku, jest bardzo istotne dla właściwej dystrybucji. Jednak, w przemyśle obserwuje się problem związany z niemożnością sprawdzenia, czy każdy pojemnik spełnia powyższy warunek.
Istnieje zatem potrzeba zapewnienia monitoringu lub pomiarów pojemników w czasie rzeczywistym podczas procesu załadunku. Dzięki optymalizacji załadunku wymieniona funkcjonalność zapewnia dostawcom opłacalność biznesową.
Zatem, istnieje zapotrzebowanie na sposoby i układy do automatycznego szacowania napełnienia pojemników, oraz do wykrywania - i korygowania - okluzji, dla utrzymania dokładnego szacowania napełnienia pojemników.
Publikacja zgłoszenia wynalazku nr US2014372182 ujawnia układ do szacowania napełnienia pojemnika zawierający czujnik głębokości skierowany w stronę otwartego końca pojemnika ładunkowego, przy czym dane w postaci chmury punktów uzyskane z czujnika pozwalają na oszacowanie napełnienia pojemnika.
Znana jest również publikacja zgłoszenia wynalazku nr US2014055560 w którym przedstawiono system do szacowania głębi umożliwiający segmentację obrazu obejmującą m.in. analizę krawędzi elementów obrazu.
Krótki opis wielu widoków na figurach rysunku
Załączone figury, na których te same numery odniesienia dotyczą tych samych lub funkcjonalnie podobnych elementów występujących na poszczególnych widokach, wraz ze szczegółowym opisem zamieszczonym poniżej, stanowią część opisu, i ich zadaniem je st przedstawienie ujawnionych w dokumencie przykładów wykonania, i wyjaśnienie różnych zasad i korzyści wymienionych przykładów wykonania.
Fig. 1 przedstawia pojemnik ładunkowy według niektórych przykładów wykonania.
Fig. 2A przedstawia płaską tylną powierzchnię pojemnika ładunkowego według niektórych przykładów wykonania.
Fig. 2B przedstawia zakrzywioną tylną powierzchnię pojemnika ładunkowego według niektórych przykładów wykonania.
Fig. 3 przedstawia chmurę punktów załadowanego pojemnika według niektórych przykładów wykonania.
Fig. 4 przedstawia segmentowaną chmurę punktów załadowanego pojemnika według niektórych przykładów wykonania.
Fig. 5 przedstawia powiększony element siatki segmentowanej chmury punktów załadowanego pojemnika według niektórych przykładów wykonania.
Fig. 6 przestawia architekturę przykładowego urządzenia obliczającego, według niektórych przykładów wykonania
Fig. 7 przedstawia pierwszy przykładowy sposób według niektórych przykładów wykonania.
Fig. 8 przedstawia pojemnik ładunkowy mający odczytywany optycznie identyfikator, według niektórych przykładów wykonania.
Fig. 9 przedstawia drugi przykładowy sposób według niektórych przykładów wykonania.
Fig. 10 przedstawia przykładowy scenariusz wykrywania okluzji w pojemniku ładunkowym, według niektórych przykładów wykonania.
Fig. 11 przedstawia przykładowy podproces wykrywania bliskich okluzji według niektórych przykładów wykonania.
Fig. 12 przedstawia przykładowy podproces wykrywania dalekich okluzji według niektórych przykładów wykonania.
Fig. 13 przedstawia przykładową analizę czasową według niektórych przykładów wykonania.
Fig. 14A i 14B stanowią przykłady graficznego przedstawienia wyników oszacowania napełnienia pojemników odpowiednio ze skorygowaniem okluzji i bez niej, według niektórych przykładów wykonania.
Znawcy w dziedzinie rozumieją, że elementy na figurach zostały przedstawione dla uproszczenia i zachowania przejrzystości i niekoniecznie zostały przedstawione w odpowiedniej skali. Na przy
PL 239 620 B1 kład, wymiary niektórych elementów na figurach mogą być powiększone w porównaniu z innymi elementami dla lepszego zrozumienia przykładów wykonania ujawnionych w dokumencie.
Elementy urządzenia i sposobu przedstawiono w odpowiednich miejscach na figurach rysunku za pomocą konwencjonalnych symboli, ukazując tylko te szczegóły, które są istotne dla zrozumienia przykładów wykonania ujawnionych w dokumencie, i zrezygnowano z przedstawienia szczegółów oczywistych dla znawcy, co sprawia, że opis jest bardziej zrozumiały.
Opis szczegółowy
Jeden przykład wykonania ma postać procesu, który obejmuje (a) otrzymywanie trójwymiarowej (3D) chmury punktów z czujnika głębokości, który jest skierowany w stronę otwartego końca pojemnika ładunkowego, przy czym chmura punktów zawiera wiele punktów i każdy z nich ma odpowiednią wartość głębokości, (b) segmentację otrzymanej trójwymiarowej chmury punktów pomiędzy wiele elementów siatkowych, (c) obliczanie odpowiedniej objętości elementu siatkowego części załadowanej pojemnika dla każdego elementu siatkowego, (d) obliczanie objętości części załadowanej pojemnika w pojemniku ładunkowym przez zsumowanie obliczonych odpowiednich objętości elementów siatkowych części załadowanej pojemnika, (e) obliczanie szacowanego napełnienia pojemnika ładunkowego w oparciu o objętość części załadowanej pojemnika i ładowność pojemnika ładunkowego; oraz (f) uzyskanie obliczonego szacowanego napełnienia pojemnika ładunkowego.
Kolejny przykład wykonania ma postać układu, który zawiera czujnik głębokości, interfejs komunikacyjny, procesor, pamięć danych zawierającą instrukcje wykonywane przez procesor dla zrealizowania przez układ co najmniej funkcji opisanych w poprzednim punkcie.
W co najmniej jednym przykładzie wykonania, wiele elementów siatkowych tworzy razem dwuwymiarowy (2D) obraz siatki, który odpowiada płaszczyźnie równoległej do otwartego końca pojemnika ładunkowego, przy czym każdy element siatkowy ma odpowiadającą powierzchnię elementu siatkowego, i sposób obejmuje ponadto określanie odpowiedniej wartości głębokości elementu siatkowego części załadowanej pojemnika dla każdego elementu siatkowego, przy czym obliczanie odpowiedniej objętości elementu siatkowego części załadowanej pojemnika dla każdego elementu siatkowego opiera się na co najmniej odpowiedniej powierzchni elementu siatkowego i odpowiedniej wartości głębokości elementu siatkowego części załadowanej pojemnika dla każdego odpowiedniego elementu siatkowego.
W co najmniej jednym przykładzie wykonania, sposób obejmuje ponadto określanie wartości głębokości w części niezaładowanej pojemnika dla każdego elementu siatkowego, i określanie odpowiedniej wartości głębokości elementu siatkowego w części załadowanej pojemnika dla każdego odpowiedniego elementu siatkowego opiera się co najmniej częściowo na różnicy pomiędzy (i) wymiarem głębokości pojemnika ładunkowego oraz (ii) określoną wartością głębokości w części niezaładowanej pojemnika dla odpowiadającego elementu siatkowego.
W co najmniej jednym przykładzie wykonania, wyznaczenie wartości głębokości elementu siatkowego dla określonego elementu siatkowego w oparciu o wartości głębokości punktów w chmurze punktów, które odpowiadają określonemu elementowi siatkowemu, obejmuje wyznaczanie jako wartości głębokości elementu siatkowego dla określonego elementu siatkowego, minimalnej wartości spośród wartości głębokości punktów w chmurze punktów, które odpowiadają określonemu elementowi siatkowem u.
W co najmniej jednym przykładzie wykonania, wyznaczanie wartości głębokości elementu siatkowego dla określonego elementu siatkowego w oparciu o wartości głębokości punktów w chmurze punktów, które odpowiadają określonemu elementowi siatkowemu, obejmuje wyznaczanie jako wartości głębokości elementu siatkowego dla określonego elementu siatkowego, średniej wartości spośród wartości głębokości punktów w chmurze punktów, które odpowiadają określonemu elementowi siatkowemu.
W co najmniej jednym przykładzie wykonania wymiar głębokości pojemnika ładunkowego stanowi wymiar głębokości charakterystyczny dla elementu siatkowego, który opiera się na odpowiadającym elemencie siatkowym w referencyjnej chmurze punktów w pustym pojemniku. W co najmniej jednym takim przykładzie wykonania, referencyjna chmura punktów w pustym pojemniku przedstawia tylną ścianę pojemnika ładunkowego jako płaską powierzchnię. W co najmniej jednym takim przykładzie wykonania, referencyjna chmura punktów w pustym pojemniku przedstawia tylną ścianę pojemnika ładunkowego jako powierzchnię zakrzywioną.
W co najmniej jednym przykładzie wykonania, sposób obejmuje ponadto oczyszczenie dwuwymiarowego obrazu siatkowego zanim określona zostanie odpowiednia wartość głębokości elementu siatkowego w części załadowanej pojemnika dla każdego elementu siatkowego.
PL 239 620 B1
W co najmniej jednym przykładzie wykonania, czujnik głębokości ma oś optyczną i płaszczyznę obrazu, i sposób obejmuje ponadto, przed segmentacją otrzymanej chmury punktów spośród wielu elementów siatkowych, obrócenie otrzymanej trójwymiarowej chmury punktów dla zrównania (i) osi optycznej z poziomem gruntu oraz (ii) płaszczyzny obrazu z końcową płaszczyzną pojemnika ładunkowego.
W co najmniej jednym przykładzie wykonania, obrócenie chmury punktów opiera się na procesie kalibracji w trybie offline z zastosowaniem poziomu gruntu i płaszczyzny końcowej jako punktów odniesienia.
W co najmniej jednym przykładzie wykonania sposób obejmuje ponadto określanie ładowności pojemnika ładunkowego w oparciu co najmniej częściowo o otrzymaną trójwymiarową chmurę punktów.
W co najmniej jednym przykładzie wykonania sposób obejmuje ponadto (i) otrzymywanie obrazu optycznego pojemnika ładunkowego oraz (ii) określanie ładowności pojemnika ładunkowego w oparciu co najmniej częściowo o otrzymany obraz optyczny. W co najmniej jednym przykładzie wykonania, określanie ładowności pojemnika ładunkowego w oparciu co najmniej częściowo o otrzymany obraz optyczny obejmuje (i) określanie co najmniej jednego fizycznego wymiaru pojemnika ładunkowego na podstawie otrzymanego obrazu optycznego oraz (ii) określanie ładowności pojemnika ładunkowego w oparciu o co najmniej jeden określony fizyczny wymiar. W co najmniej jednym wymienionym przykładzie wykonania, określanie ładowności pojemnika ładunkowego w oparciu co najmniej częściowo o otrzymany obraz optyczny obejmuje (i) stosowanie optycznego rozpoznawania znaków (OCR - ang. optical character recognition) w co najmniej jednym otrzymanym obrazie optycznym dla sprawdzenia co najmniej jednego identyfikatora pojemnika ładunkowego oraz (ii) stosowanie co najmniej jednego sprawdzonego identyfikatora pojemnika ładunkowego dla określenia ładowności pojemnika ładunkowego.
W co najmniej jednym przykładzie wykonania, każdy element siatkowy ma boki zasadniczo równe 5 milimetrom (mm) na długość.
W co najmniej jednym przykładzie wykonania każdy element siatkowy ma zasadniczo kwadratowy kształt, i długość boku elementu siatkowego jest parametrem, który można dostosować.
Jeden przykład wykonania ma postać sposobu, który obejmuje otrzymywanie ramki głębokości z czujnika głębokości skierowanego w stronę otwartego końca pojemnika ładunkowego, przy czym ramka głębokości jest rzutowana na dwuwymiarową mapę siatkową, która zawiera wiele elementów siatkowych, i każdy z nich ma odpowiadającą wartość głębokości; zidentyfikowanie jednej lub wielu okluzji w ramce głębokości; skorygowanie jednej lub wielu okluzji w ramce głębokości przy użyciu jednej lub wielu czasowo bliskich ramek głębokości; oraz wysłanie poprawionej ramki głębokości dla oszacowania napełnienia.
W niektórych przykładach wykonania, jedna lub kilka okluzji obejmuje okluzję z danymi brakującymi. W niektórych przykładach wykonania, zidentyfikowanie okluzji z danymi brakującymi obejmuje (i) generowanie mapy binaryzacji pomiędzy (a) elementami siatkowymi, dla których odpowiednia wartość głębokości jest poprawna oraz (b) elementami siatkowymi, dla których odpowiednia wartość głębokości nie jest poprawna, oraz (ii) zidentyfikowanie okluzji z danymi brakującymi jako klaster elementów siatkowych na mapie binaryzacji, dla których odpowiednia wartość głębokości nie jest poprawna. W niektórych przykładach wykonania, zidentyfikowanie okluzji z danymi brakującymi obejmuje ponadto potwierdzenie, że zidentyfikowany klaster elementów siatkowych wykracza poza określoną wcześniej wartość progową wielkości okluzji. W niektórych przykładach wykonania, zidentyfikowanie okluzji z danymi brakującymi obejmuje ponadto wykonanie wykrywania krawędzi klastra elementów siatkowych. W niektórych przykładach wykonania, zidentyfikowanie okluzji z danymi brakującymi obejmuje ponadto wykonanie identyfikacji obrysu klastra elementów siatkowych.
W niektórych przykładach wykonania, jedna lub kilka okluzji obejmuje okluzję ruchomą. W niektórych przykładach wykonania, okluzja ruchoma jest powiązana z pojedynczym elementem siatkowym pośród wielu elementów siatkowych. W niektórych przykładach wykonania, zidentyfikowanie okluzji ruchomej obejmuje zidentyfikowanie wartości progowej zmiany głębokości w pojedynczym elemencie siatkowym między ramką głębokości i co najmniej jedną czasowo bliską ramką głębokości. W niektórych przykładach wykonania, zidentyfikowanie okluzji ruchomej obejmuje zidentyfikowanie, że wartość głębokości związana z pojedynczym elementem siatkowym zmniejsza się względem poprzednich ramek, a następnie zwiększa się w następnych ramkach w stopniu mniejszym niż wartość progowa ilość czasu pomiędzy kilkoma ramkami głębokości.
PL 239 620 B1
W niektórych przykładach wykonania, jedna lub kilka okluzji obejmuje okluzję nieciągłą. W niektórych przykładach wykonania, zidentyfikowanie okluzji nieciągłej obejmuje zidentyfikowanie klastra elementów siatkowych mających wspólną wartość głębokości, która jest większa niż różnica progowa i mniejsza niż wartość głębokości granicy części załadowanej w pojemniku ładunkowym. W niektórych przykładach wykonania, zidentyfikowanie okluzji nieciągłej obejmuje potwierdzenie, że zidentyfikowany klaster elementów siatkowych wykracza poza określoną wcześniej wartość progową wielkości okluzji. W niektórych przykładach wykonania, zidentyfikowanie okluzji nieciągłej obejmuje ponadto wykonanie wykrywania krawędzi klastra elementów siatkowych. W niektórych przykładach wykonania, zidentyfikowanie okluzji nieciągłej obejmuje ponadto wykonanie identyfikacji obrysu klastra elementów siatkowych.
W niektórych przykładach wykonania, elementy siatkowe stanowią piksele. W niektórych przykładach wykonania, elementy siatkowe stanowią grupy pikseli.
W niektórych przykładach wykonania, jedna lub kilka zidentyfikowanych okluzji odpowiada zbiorowi okluzji elementów siatkowych w ramce głębokości, i skorygowanie jednej lub wielu okluzji w ramce głębokości przy użyciu jednej lub wielu czasowo bliskich ramek głębokości obejmuje nadpisanie zbioru okluzji w ramce głębokości danymi odpowiadającymi elementom siatkowym bez okluzji z jednej lub wielu czasowo bliskich ramek głębokości.
W niektórych przykładach wykonania, zidentyfikowanie jednej lub wielu okluzji obejmuje analizę buforu ramek głębokości, przy czym bufor obejmuje otrzymaną ramkę głębokości
Jeden przykład wykonania ma postać układu, który zawiera czujnik głębokości skierowany w stronę otwartego końca pojemnika ładunkowego, interfejs komunikacyjny, procesor, pamięć danych zawierającą instrukcje wykonywane przez procesor dla zrealizowania przez układ zbioru funkcji, przy czym zbiór funkcji obejmuje: otrzymywanie ramki głębokości z czujnika głębokości, przy czym ramka głębokości zawiera wiele elementów siatkowych, i każdy z nich ma odpowiadającą wartość głębokości; zidentyfikowanie jednej lub wielu okluzji w ramce głębokości; skorygowanie jednej lub wielu okluzji w ramce głębokości przy użyciu jednej lub wielu czasowo bliskich ramek głębokości; oraz wysłanie poprawionej ramki głębokości dla oszacowania napełnienia.
Ponadto, wszelkie warianty i kombinacje opisane w dokumencie można zastosować w każdym przykładzie wykonania, w tym w każdym przykładzie wykonania sposobu i każdym przykładzie wykonania układu. Ponadto, wymieniona elastyczność i możliwość wzajemnego zastosowania przykładów wykonania możliwa jest mimo użycia nieco innych określeń (np. takich jak proces, sposób, etapy, funkcje, zbiór funkcji, i temu podobne) używanych do opisania lub scharakteryzowania wymienionych przykładów wykonania.
Zanim przedstawiony zostanie szczegółowy opis należy zauważyć, że jednostki, połączenia, rozmieszczenia, i temu podobne, które ukazano i opisano w związku z różnymi figurami, przedstawiono w drodze przykładu, a nie ograniczenia. Zatem, wszelkie i wszystkie stwierdzenia lub inne sugestie w zakresie tego, co „ukazuje” określona figura, co „stanowi” lub „zawiera” określony element lub jednostka, a także wszelkie i wszystkie temu podobne stwierdzenia - które samodzielne lub wyjęte z kontekstu można odczytać jako jedyne i przez to ograniczające - należy interpretować wyłącznie jako poprzedzone stwierdzeniem „W co najmniej jednym przykładzie wykonania,...”. Zatem dla lepszej zwięzłości i jasności, w poniższym szczegółowym opisie wymienione powyżej stwierdzenie poprzedzające nie będzie powtarzane ad nauseum.
Fig. 1 przedstawia pojemnik ładunkowy według niektórych przykładów wykonania. W szczególności, fig. 1 przedstawia (i) pojemnik ładunkowy 102 oraz (ii) czujnik 104 głębokości, który jest skierowany w stronę otwartego końca pojemnika ładunkowego 102. W wielu różnych przykładach, pojemnik ładunkowy 102 może być zaprojektowany tak, aby był transportowany ciężarówką, pociągiem, statkiem, samolotem, i/lub jakimkolwiek innym odpowiednim środkiem lub środkami transportu. Ponadto, jak zostanie to bardziej szczegółowo omówione, pojemnik ładunkowy 102 może mieć wiele różnych kształtów; zasadniczo prostokątny kształt (tj. cylindra prostokątnego) przedstawiono w drodze przykładu na fig. 1. Jak przedstawiono na fig. 1, pojemnik ładunkowy 102 zawiera obiekty (tj. pudła i/lub inne opakowania) 106. Pojemnik ładunkowy 102 może mieć kilka różnych powierzchni, na przykład płaskich, na przykład zakrzywionych, oprócz wielu innych możliwych kształtów, które można wymienić w dokumencie.
Istnieje wiele rodzajów czujników 104 głębokości, które można stosować, na przykład takich, które stanowią czujnik RGB, skokowy ruch (ang. leap motion), przetwarzanie percepcyjne Intel (ang. Intel perceptual computing), Microsoft Kinect, oprócz wielu innych możliwości, które można wymienić w dokumencie. Istnieje także wiele technik wykrywania głębokości, które można zastosować w czujni
PL 239 620 B1 ku 104 głębokości, na przykład przy użyciu triangulacji stereo, czasu przelotu, przy użyciu apertury kodowanej, oprócz wielu innych możliwości, które można wymienić w dokumencie. W jednym przykładzie, czujnik 104 głębokości może być przymocowany do ściany lub kolumny lub temu podobnego elementu w określonym magazynie wysyłkowym, i pojemnik 102 można umieścić z tyłu ciężarówki, i następnie umieścić (tj. odwrócić) w położeniu, w którym czujnik 104 głębokości jest skierowany w stronę otwartego końca pojemnika ładunkowego 102, jak przedstawiono to na fig. 1.
Jak już wspomniano, różne pojemniki ładunkowe mogą mieć różne kształty. Dwa przykłady przedstawiono na fig. 2A i 2B. W szczególności, fig. 2A przedstawia (i) płaską tylną ścianę (tj. powierzchnię) 202 pojemnika ładunkowego oraz (ii) czujnik 204 głębokości, podczas gdy fig. 2B przedstawia (i) zakrzywioną tylną ścianę (tj. powierzchnię) 206 pojemnika ładunkowego oraz (ii) czujnik 208 głębokości. Bez wątpienia można zaprezentować tutaj wiele innych przykładowych kształtów pojemnika ładunkowego.
Fig. 3 przedstawia chmurę punktów w załadowanym pojemniku według niektórych przykładów wykonania. W szczególności, fig. 3 przedstawia trójwymiarową chmurę 302 punktów. Na ogół, czujnik głębokości, który jest skierowany w stronę otwartego końca pojemnika ładunkowego może gromadzić informacje dotyczące głębokości w określonym polu widzenia, i przesyłać te informacje do układu, który można odpowiednio wyposażyć, zaprogramować i konfigurować dla wykonania układów i sposobów. Wymieniony zbiór informacji (tj. punktów) w dokumencie nazywany jest trójwymiarową chmurą punktów (lub po prostu chmurą punktów); przy czym każdy punkt w takiej chmurze odpowiada dostrzeżonej głębokości w odpowiadającym punkcie w polu widzenia czujnika głębokości.
Wracając do fig. 3, przedstawiono obrys 304 pojemnika ładunkowego, oraz obrysy 306A, 306B i 306C przykładowych opakowań w przykładowym pojemniku ładunkowym. Wymienione obrysy 304 i 306A-C odpowiadają na ogół pojemnikowi ładunkowemu 104 i opakowaniom 106, które przedstawiono na fig. 1, dla łatwiejszego ukazania czytelnikowi prawdziwego scenariusza, w którym przykładowa chmura 302 punktów może zostać utworzona, zgromadzona, i temu podobne. Ponadto, w celach ilustracyjnych, każdy punkt w chmurze 302 punktów przedstawiono na fig. 3 z przyporządkowaniem liczby całkowitej, która odpowiada przykładowej wartości głębokości (w przykładowej jednostce np. wyrażonej w metrach) W rzeczywistości, w chmurze 302 punktów może występować dowolna liczna punktów, ponieważ różne punkty, które przedstawiono na fig. 3, będące częścią chmury 302 punktów stanowią ilustrację i nie są wyczerpujące.
Ponadto, co zostanie omówione bardziej szczegółowo w dalszej części, w niektórych przykładach wykonania czujnik głębokości, który jest skierowany w stronę otwartego końca pojemnika ładunkowego zajmuje dogodny punkt względem otwartego końca pojemnika ładunkowego, który nie jest zrównany ze środkiem otwartego końca pojemnika ładunkowego w jego jednym lub wielu wymiarach. Zatem, czujnik głębokości i pojemnik ładunkowy mogą być umieszczone względem siebie tak, że czujnik głębokości jest w pewnym stopniu bliżej jednej lub drugiej strony, a także może znajdować się poza środkiem w pionie (np. może znajdować się powyżej). Zatem, czujnik głębokości może być umieszczony na przykład powyżej i w prawo od środka płaszczyzny, który odpowiada otwartemu końcowi pojemnika ładunkowego.
Jak zostanie to opisane bardziej szczegółowo w dalszej części, ujawnienie obejmuje segmentację i rzutowanie otrzymanej chmury punktów na kilka elementów siatkowych na dwuwymiarowej mapie siatkowej, które razem odpowiadają otwartemu końcowi pojemnika ładunkowego. Jeśli czujnik głębokości jest umieszczony prostopadle do otwartego końca pojemnika ładunkowego i jest także pionowo wyśrodkowany na wymienionym otwartym końcu, wymieniony etap segmentacji i rzutowania można przeprowadzić pomijając wykonanie wcześniej jednej lub wielu rotacji geometrycznych. Jednak, w pozostałych przypadkach, przed przeprowadzeniem opisanego poniżej etapu segmentacji, oraz następujących po nim różnych innych etapów, układy i sposoby obejmują etap jednej lub wielu rotacji geometrycznych w odniesieniu do względnych położeń czujnika głębokości i otwartego końca pojemnika ładunkowego. Wymienione względne położenie można wstępnie zaprogramować w układzie, lub można określić w inny sposób przy użyciu czujników głębokości, kamer optycznych, i/lub innego odpowiedniego oprzyrządowania.
Fig. 4 przedstawia segmentowaną chmurę punktów w załadowanym pojemniku według niektórych przykładów wykonania. W szczególności, fig. 4 przedstawia segmentowaną trójwymiarową chmurę punktów 402, którą można generować na kilka różnych sposobów, takich jak segmentacja w oparciu o krawędzie, segmentacja w oparciu o powierzchnie, i/lub segm entacja w oparciu o skanowanie, oprócz wielu innych możliwości, które można wymienić w dokumencie. Ponadto, należy
PL 239 620 B1 zauważyć, że fig. 4 przedstawia segmentowaną chmurę punktów 402 po wykonaniu niezbędnych rotacji dla uwzględnienia względnych położeń i zrównania czujnika głębokości i otwartego końca pojemnika ładunkowego.
Jak opisano powyżej, w co najmniej jednym przykładzie wykonania, chmura punktów 402 jest segmentowana na wiele elementów siatkowych, które razem tworzą dwuwymiarowy obraz siatkowy odpowiadający płaszczyźnie, która jest równoległa do otwartego końca pojemnika ładunkowego. Każdy element siatkowy ma odpowiadającą powierzchnię elementu siatkowego. Na fig. 4, elementy siatkowe przedstawiono tak, że mają zasadniczo kwadratowy kształt (np. 5 mm na 5 mm), chociaż stanowi to jedynie przykład i nie jest ograniczeniem, ponieważ można zastosować jakiekolwiek wymiary i/lub kształty, które znawca w dziedzinie może uznać za odpowiednie dla danego zastosowania. Ponadto, w niektórych przykładach wykonania, długość boku elementów siatkowych jest parametrem, który można dostosować. W niektórych przypadkach, wymieniony parametr jest ustawiony na tak małą wielkość, na jaką pozwala powiązany czujnik głębokości. W rzeczywistości, rozdzielczość czujnika głębokości odgrywa duże znaczenie w określeniu, czy napełnienie jest przeszacowane czy niedoszacowane. Jak widać na fig. 4, jeden przykład elementu siatkowego 404 został uwidoczniony w drodze przykładu. Element siatkowy 404 przedstawiono tak, że zawiera łącznie dziesięć punktów spośród segmentowanej chmury 402 punktów; cztery z dziesięciu punktów mają wartość głębokości 1 (np. 1 metr), pięć z wymienionych dziesięciu punktów ma wartość głębokości 2 (np. 2 metry), i jeden z wymienionych dziesięciu punktów ma wartość głębokości 3 (np. 3 metry). Wymieniona liczba punktów w elemencie siatkowym 404 oraz odpowiednie wartości głębokości przedstawiono wyłącznie w drodze przykładu i w celach ilustracyjnych, a nie ograniczających.
Fig. 5 przedstawia powiększony element siatki segmentowanej chmury punktów w załadowanym pojemniku według niektórych przykładów wykonania. W szczególności, fig. 5 przedstawia segmentowaną trójwymiarową chmurę 502 punktów (chociaż jej pomniejszenie jest zbyt duże, aby ukazać pojedyncze punkty) i powiększony element siatkowy 504. Powiększony element siatkowy 504 zawiera, wyłącznie w drodze przykładu, taki sam zbiór dziesięciu punktów, które znajdowały się w elemencie siatkowym na fig. 4, chociaż są one w innym ułożeniu; tj. łącznie występuje dziesięć punktów, w tym cztery punkty mające wartość głębokości 1, pięć punktów mających wartość głębokości 2, i jeden punkt mający wartość głębokości 3.
W powiązaniu z różnymi przykładami wykonania, element siatkowy 504 ma przypisaną określoną wartość głębokości opartą na wartościach głębokości punktów w części trójwymiarowej chmury punktów, które są umiejscowione w określonym elemencie siatkowym 504. Spośród wymienionych wartości głębokości, charakterystyczna wartość głębokości dla elementu siatkowego może stanowić wartość minimalną, wartość modową (tj. najczęściej występująca), wartość średnią, lub inną. Wykorzystując przykładowe dane zaprezentowane na fig. 5: jeśli wykorzystana zostanie wartość minimalna, wówczas wartość charakterystyczna dla elementu siatkowego 504 wynosi 1; jeśli wykorzystana zos tanie wartość modowa, wówczas wartość charakterystyczna dla elementu siatkowego 504 wynosi 2; jeśli wykorzystana zostanie wartość średnia, wówczas wartość charakterystyczna dla elementu siatkowego 504 wynosi 1,7 (lub 2 w przypadku zaokrąglenia do liczby całkowitej w górę). Bez wątpienia można tutaj wymienić wiele innych możliwych rozwiązań. Jak zostanie to opisane bardziej szczegółowo poniżej, charakterystyczna wartość głębokości, którą przypisuje się określonemu elementowi siatkowemu, jest wykorzystywana, na powierzchni tego elementu siatkowego, dla obliczenia pojemności części załadowanej dla tego konkretnego elementu siatkowego.
Fig. 6 przestawia architekturę przykładowego urządzenia obliczającego, według niektórych przykładów wykonania. Przykładowe urządzenia obliczające 600 można tak skonfigurować, aby wykonywało funkcje opisane w dokumencie, i jak pokazano zawiera interfejs komunikacyjny 602, procesor 604, pamięć 606 danych (która zawiera instrukcje 608 i dane operacyjne 610), interfejs użytkownika 612, urządzenia peryferyjne 614 i magistralę komunikacyjną 616. Wymienione rozmieszczenia przedstawiono w drodze przykładu, a nie ograniczenia, ponieważ można opisać także inne rozmieszczenia.
Interfejs komunikacyjny 602 można zaprojektować tak, aby zapewniać komunikację przy użyciu jednego lub wielu protokołów komunikacji bezprzewodowej, na przykład LMR, LTE, APCO P25, ETSI DMR, TETRA, Wi-Fi, Bluetooth, lub temu podobnych. Interfejs komunikacyjny 602 może ponadto lub zamiast tego zawierać jeden lub kilka interfejsów komunikacji przewodowej (na przykład Ethernet, USB, i/lub jeden/lub kilka innych protokołów.) Interfejs komunikacyjny 602 może zawierać niezbędny sprzęt (np. zestaw układów scalonych, anten, interfejsów Ethernet, itd.), niezbędne mikrooprogramo
PL 239 620 B1 wanie, oraz niezbędne oprogramowanie umożliwiające przeprowadzenie jednej luk więcej form komunikacji za pomocą jednej lub wielu opisanych tutaj jednostek.
Procesor 604 może zawierać jeden lub kilka procesorów jakiegokolwiek rodzaju, który znawcy w dziedzinie uznają za odpowiedni, na przykład mikroprocesor ogólnego przeznaczenia lub cyfrowy procesor sygnałowy (ang. digital signal processor, DSP).
Pamięć 606 danych może mieć postać trwałego nośnika umożliwiającego komputerowe odczytanie lub kombinacji takiego nośnika, na przykład pamięci typu flash, ROM, RAM, lub innych rodzajów trwałej pamięci danych, które znawcy w dziedzinie uznają za odpowiednie do zastosowania. Jak zaprezentowano na fig. 6, pamięć 606 danych zawiera instrukcje programowe 608 wykonywane przez procesor 604 dla zrealizowania różnych funkcji opisanych w dokumencie, i ponadto przedstawiono, że zawiera dane operacyjne 610, które mogą zawierać jedną lub wiele wartości danych przechowywanych i/lub udostępnianych przez urządzenie obliczające dla zrealizowania jednej lub wielu funkcji opisanych w tym ujawnieniu.
Interfejs 612 użytkownika może zawierać jedno lub kilka urządzeń wejściowych (zwanych też komponentami lub temu podobnymi) i/lub jedno lub kilka urządzeń wyjściowych (zwanych też komponentami lub temu podobnymi). Jeśli chodzi o urządzenia wejściowe, interfejs 612 użytkownika może zawierać jeden lub kilka ekranów dotykowych, przycisków, przełączników, mikrofonów, i temu podobnych. Jeśli chodzi o urządzenia wyjściowe, interfejs 612 użytkownika może zawierać jeden lub kilka wyświetlaczy, głośników, diod LED, i temu podobnych. Ponadto, jeden lub kilka komponentów (np. interaktywny ekran dotykowy i wyświetlacz) interfejsu 612 użytkownika może zapewniać użytkownikowi funkcjonalność wejściową i wyjściową.
Urządzenia peryferyjne 614 mogą obejmować akcesoria lub komponent urządzenia obliczającego, do którego urządzenie obliczające 600 ma dostęp i z którego korzysta podczas działania. W niektórych przykładach wykonania, urządzenia peryferyjne 614 obejmują czujnik głębokości. W niektórych przykładach wykonania, urządzenia peryferyjne 614 obejmują kamerę rejestrującą obraz cyfrowy i/lub obrazy nieruchome. Bez wątpienia można tu także wymienić inne urządzenia peryferyjne.
Fig. 7 przedstawia pierwszy przykładowy sposób według niektórych przykładów wykonania. W szczególności, fig. 7 przedstawia sposób 700, który obejmuje etapy 702, 704, 706, 708, 710, i 712, i który zgodnie z przykładowym opisem może być wykonywany przez układ obliczający 600 z fig. 6, choć na ogół sposób 700 można przeprowadzić przy użyciu dowolnego urządzenia obliczającego, które jest odpowiednio wyposażone, zaprogramowane i skonfigurowane.
W etapie 702, układ obliczający 600 przyjmuje trójwymiarową chmurę punków z czujnika głębokości, który jest skierowany w stronę otwartego końca pojemnika ładunkowego. Chmura punktów zawiera wiele punktów i każdy z nich ma określoną wartość głębokości. Jak opisano powyżej, jeśli jest to konieczne z powodu względnego położenia i zrównania czujnika głębokości i otwartego końca pojemnika ładunkowego, układ obliczający 600, po przyjęciu trójwymiarowej chmury punktów, może obrócić otrzymaną trójwymiarową chmurę punktów dla zrównania (i) osi optycznej z poziomem gruntu oraz (ii) płaszczyzny obrazu z końcową płaszczyzną pojemnika ładunkowego. Wymieniona rotacja otrzymanej chmury punktów może opierać się na procesie kalibracji (np. procesie kalibracji offline), który jako punkt odniesienia stosuje poziom gruntu i końcową płaszczyznę.
W etapie 704, układ obliczający 600 dzieli trójwymiarową chmurę punktów, która została otrzymana w etapie 702, na wiele elementów siatkowych. Jak opisano powyżej, wymienione elementy siatkowe mogą być zasadniczo prostokątne (np. kwadratowe), i mogą razem tworzyć dwuwymiarowy obraz siatkowy, który odpowiada płaszczyźnie równoległej do otwartego końca pojemnika ładunkowego, przy czym każdy element siatkowy ma odpowiadającą powierzchnię elementu siatkowego.
W etapie 706 układ obliczający 600 oblicza odpowiednią pojemność elementu siatkowego w części załadowanej pojemnika dla każdego elementu siatkowego. Układ obliczający 600 może to zrobić określając najpierw odpowiednią wartość głębokości elementu siatkowego w części załadowanej pojemnika dla każdego elementu siatkowego, a następnie określając odpowiednią pojemność elementu siatkowego w części załadowanej pojemnika dla każdego elementu siatkowego, przez pomnożenie określonej powierzchni elementu siatkowego przez określoną wartość głębokości elementu siatkowego w części załadowanej pojemnika dlatego elementu siatkowego. W niektórych przykładach wykonania, układ obliczający 600 oczyszcza dwuwymiarowy obraz siatkowy zanim określona zostanie odpowiednia wartość głębokości elementu siatkowego w części załadowanej pojemnika dla każdego elementu siatkowego.
PL 239 620 B1
Jeśli chodzi o sposób, w jaki układ obliczający 600 może określić wartość głębokości elementu siatkowego w określonej części załadowanej pojemnika dla tego elementu siatkowego, w jednym przykładzie wykonania, układ obliczający 600 określa wartość głębokości w części niezaładowanej pojemnika dla danego elementu siatkowego, i następnie określa odpowiednią wartość głębokości elementu siatkowego w części załadowanej pojemnika dla danego elementu siatkowego, w oparciu co najmniej częściowo o różnicę pomiędzy (i) wymiarem głębokości pojemnika ładunkowego oraz (ii) określoną wartością głębokości w części niezaładowanej pojemnika dla odpowiadającego elementu siatkowego. Zatem, na przykład, jeśli układ obliczający 600 określi, że wartość głębokości elementu siatkowego w określonej części niezaładowanej pojemnika wynosiła 3 metry i wie, że wymiary pojemnika ładunkowego na głębokość wynoszą 50 metrów, układ obliczający 600 może określić, że wartość głębokości elementu siatkowego w części załadowanej pojemnika dla danego elementu siatkowego wynosi 47 metrów.
Jeśli chodzi o sposób, w jaki układ obliczający 600 może określić wartość głębokości elementu siatkowego w określonej części niezaładowanej pojemnika dla tego elementu siatkowego, w niektórych przykładach wykonania, układ obliczający 600 wyznacza charakterystyczną wartość głębokości elementu siatkowego dla określonego elementu siatkowego w oparciu o wartości głębokości punktów w chmurze punktów, które odpowiadają określonemu elementowi siatkowemu. Jak opisano powyże j, w niektórych rozwiązaniach wybierana jest wartość minimalna, wartość modowa, lub wartość średnia. Można wybrać także wartość maksymalną, choć może to prowadzić do zbyt małego załadowania pojemników w wyniku przeszacowania ich napełnienia, co jest niekorzystne.
Po przypisaniu charakterystycznej wartości głębokości elementu siatkowego, układ obliczający 600 może następnie określić odpowiednią wartość głębokości w części niezaładowanej pojemnika dla danego elementu siatkowego, w oparciu co najmniej częściowo o różnicę pomiędzy (i) przypisaną charakterystyczną wartością głębokości elementu siatkowego dla danego elementu siatkowego oraz (ii) przesuniętą wartością głębokości odpowiadającą głębokości pomiędzy trójwymiarowym czujnikiem głębokości i przednią płaszczyzną pojemnika ładunkowego. Zatem, jeśli czujnik głębokości zarejestruje wartość bezwzględną wynoszącą np. 7 metrów jako wartość głębokości danego punktu lub elementu siatkowego, i wiadomo, że czujnik głębokości jest 4 metry od przedniej płaszczyzny otwartego końca pojemnika ładunkowego, układ obliczający 600 może uznać, że wartość głębokości w części niezaładowanej pojemnika dla tego elementu siatkowego wynosi 3 metry. Bez wątpienia można tutaj wymienić wiele innych przykładów.
W niektórych przypadkach, wymiar głębokości pojemnika ładunkowej, który jest wykorzystywany dla określenia wartości głębokości w części załadowanej pojemnika na podstawie wartości głębokości w części niezaładowanej pojemnika dla danego elementu siatkowego, jest wymiarem głębokości charakterystycznym dla elementu siatkowego, który opiera się na odpowiadającym elemencie siatkowym w referencyjnej chmurze punktów w pustym pojemniku. Jak opisano powyżej, tylna ściana może być płaska lub zakrzywiona, jak przedstawiono to na fig. 2A i 2B, i wymiar głębokości charakterystyczny dla elementu siatkowego w danym elemencie siatkowym może to odzwierciedlać. Referencyjna chmura punktów może zostać opracowana przy użyciu pustego pojemnika ładunkowego tego samego rodzaju, i wymienioną referencyjną chmurę punktów można przechowywać w pamięci danych i z niej korzystać, na przykład dla wykonania opisywanych obliczeń na podstawie zależności pomiędzy elementami siatkowymi.
W etapie 708, układ obliczający 600 oblicza pojemność w części załadowanej pojemnika ładunkowego przez zsumowanie odpowiednich pojemności elementów siatkowych w części załadowanej pojemnika, które obliczono w etapie 706, w wyniku czego otrzymuje się informację, jaka objętość (np. w metrach sześciennych) pojemnika ładunkowego została załadowana. Należy zauważyć, że w pojęcie „załadowana” oznacza w tym kontekście, że dana część pojemnika nie jest już dostępna w celach dalszego ładowania. Zatem, pusta przestrzeń, która nie jest już dostępna ze względu na opakowania, które są ustawione jeden na drugim, uznawana jest za załadowaną na równi z przestrzenią pojemnika ładunkowego, która jest faktycznie zajęta opakowaniami.
W etapie 710, układ obliczający 600 oblicza szacunkowe napełnienie pojemnika ładunkowego w oparciu o (i) objętość części załadowanej pojemnika, którą obliczono w etapie 708 oraz (ii) pojemność pojemnika ładunkowego. W szczególności, szacunkowe napełnienie pojemnika ładunkowego można obliczyć jako objętość części załadowanej w pojemniku ładunkowym segmentowaną przez ładowność pojemnika ładunkowego. Ładowność pojemnika ładunkowego można określić na wiele różnych sposobów, przy czym niektóre z nich są opisane w dokumencie poniżej.
PL 239 620 B1
W jednym przykładzie układ obliczający 600 określa ładowność pojemnika ładunkowego w oparciu co najmniej częściowo o otrzymaną trójwymiarową chmurę punktów. Zatem, trójwymiarowa chmura punktów może wskazywać na wymiary pojemnika ładunkowego, dzięki czemu można określić ładowność pojemnika ładunkowego. W kolejnym przykładzie wykonania układ obliczający przyjmuje obraz optyczny pojemnika ładunkowego i określa ładowność pojemnika ładunkowego w oparciu co najmniej częściowo o otrzymany obraz optyczny. Może to obejmować określanie rzeczywistych wymiarów pojemnika ładunkowego w oparciu o obraz optyczny, i może zamiast tego lub dodatkowo obejmować generowanie z obrazu optycznego identyfikatora pojemnika ładunkowego, na przykład przy użyciu OCR, i następnie wysłanie zapytania do lokalnej lub zdalnej bazy danych wykorzystując ten identyfikator, dla uzyskania informacji na temat wymiarów i/lub ładowności tego konkretnego pojemnika ładunkowego.
Należy zauważyć, że w niektórych przykładach wykonania, układ może określić, że całe wnętrze pojemnika ładunkowego nie jest widoczne dla czujnika głębokości, być może ze względu na względne położenie i rozmieszczenie czujnika głębokości i pojemnika ładunkowego. W takich przypadkach, układ może określić objętość zainteresowania (ang. volume of interest, VOI), stanowiące część wnętrza pojemnika, która jest widoczna dla czujnika głębokości. W niektórych przypadkach układ może obliczyć szacunkowe napełnienie pojemnika jako załadowaną część VOI segmentowaną przez ładowność (tj. łączną pojemność) VOI. W kolejnym przykładzie wykonania, układ może zwyczajnie uznać, że każda wewnętrzna część pojemnika ładunkowego, która jest niewidoczna dla kamery głębokości, jest załadowana, i w takich przypadkach może nadal obliczyć szacunkowe napełnienie, jako część załadowaną całego pojemnika ładunkowego segmentowaną przez łączną ładowność całego pojemnika ładunkowego. Bez wątpienia można tu także wymienić inne przykładowe rozwiązania.
W etapie 712, układ obliczający 600 wysyła obliczone szacunkowe napełnienie pojemnika ładunkowego, na przykład do wyświetlacza, pamięci danych, na przykład przy użyciu komunikacji bezprzewodowej i/lub przewodowej, dla przekazania obliczonego szacunkowego napełnienia pojemnika ładunkowego do jednego lub wielu urządzeń lub układów, i/lub jednego lub wielu innych punktów docelowych.
Fig. 8 przedstawia pojemnik ładunkowy mający odczytywany optycznie identyfikator, według niektórych przykładów wykonania. W szczególności, fig. 8 przedstawia pojemnik 802, wskaźnik 804 (np. kod kreskowy lub identyfikator alfanumeryczny) i czytnik optyczny 806. Można wykorzystywać do tego kilka różnych rodzajów czytników optycznych 806, na przykład skaner kodu kreskowego, kamerę, i/lub temu podobne. W jednym przykładzie wykonania, czytnik optyczny 806 otrzymuje identyfikator alfanumeryczny z pojemnika przy użyciu OCR. Układ obliczający może następnie stosować odczytany identyfikator alfanumeryczny pojemnika i wysłać zapytanie do bazy danych dotyczące wymiarów tego konkretnego pojemnika ładunkowego. Bez wątpienia można tu także wymienić inne przykładowe rozwiązania.
W niektórych przypadkach, występować może jedna lub kilka ruchomych lub nieruchomych okluzji (np. ładowarka opakowania, zagubione opakowania - ang. stray packages, itp.) pomiędzy trójwymiarowym czujnikiem głębokości i załadowaną częścią pojemnika. Niektóre okluzję powodują niedoszacowanie napełnienia pojemnika, na przykład są umiejscowione tak blisko trójwymiarowego czujnika głębokości, że tworzą luki w danych w chmurze punktów. Niektóre okluzję powodują przeszacowanie napełnienia pojemnika, na przykład są umiejscowione tak blisko załadowanych w rzeczywistości pudełek, że są mylone (np. klastrowane z) z opakowaniami załadowanymi w pojemniku. Zatem, na ogół, bez właściwego wykrycia i skorygowania, występowanie okluzji może spowodować błędne oszacowanie napełnienia pojemnika ładunkowego.
Fig. 9 przedstawia drugi przykładowy sposób według niektórych przykładów wykonania. W szczególności, fig. 9 przedstawia sposób 900, który obejmuje etapy przyjęcia, w etapie 902 ramki głębokości z czujnika głębokości skierowanego w stronę otwartego końca pojemnika, przy czym ramka głębokości zawiera wiele elementów siatkowych, i każdy z nich ma określoną wartość głębokości. Sposób 900 obejmuje ponadto zidentyfikowanie, w etapie 904, jednej lub wielu okluzji w ramce głębokości. W niektórych przypadkach, wykryta zostaje tylko jedna lub wiele dalekich okluzji. W niektórych przypadkach, wykryta zostaje tylko jedna lub wiele bliskich okluzji. W niektórych przypadkach, wykryte zostają zarówno dalekie, jak i bliskie okluzje. Sposób 900 obejmuje ponadto skorygowanie, w etapie 906, jednej lub wielu okluzji w ramce głębokości przy użyciu jednej lub wielu czasowo bliskich ramek głębokości, i wysłanie, w etapie 908 poprawionej ramki głębokości dla oszacowania napełnienia.
Fig. 10 przedstawia przykładowy scenariusz wykrywania okluzji w pojemniku ładunkowym, według niektórych przykładów wykonania. W szczególności, fig. 10 przedstawia przykładowy scenariusz, w którym czujnik 1030 głębokości jest skonfigurowany na gromadzenie danych głębokości, gdy jest
PL 239 620 B1 skierowany w stronę pojemnika ładunkowego 1000. W przykładowym momencie scenariusza, występują dwa okluzyjne obiekty, bliski obiekt okluzyjny 1005 i daleki obiekt okluzyjny 1015. Jak pokazano, bliskie okluzje mogą być spowodowane zasłonięciem obiektów blisko czujnika 1030 głębokości (np. ładowarkami, niezaładowanymi opakowaniami, patrz fig. 10 obiekt 1005). W niektórych przykładach wykonania, bliskie okluzje występują jako luki lub otwory (brak danych (lub brak ważnych danych)) w trójwymiarowych danych głębokości, co może powodować niedoszacowanie napełnienia, ponieważ przetwarzany jest niepełny zbiór danych dotyczący trójwymiarowej głębokości pojemności.
Ponieważ bliskie okluzje stanowią często luki danych, można je także uznać za „okluzje z danymi brakującymi”. Jak pokazano, obiekt 1005 znajduje w obrębie minimalnego zasięgu wykrywania przez czujnik głębokości, i czujnik głębokości może nie zgromadzić danych dla obszarów zablokowanych przez obiekt 1005. Wymieniona luka w trójwymiarowych danych głębokości powoduje, że przy obliczaniu napełnienia układ pominie objętość zasłoniętą przez obszar 1010, co spowoduje niedoszacowanie napełnienia pojemnika ładunkowego. W kolejnych przykładach wykonania, niektóre czujniki 1030 głębokości mogą wysłać dane zgromadzone w minimalnym zasięgu odległości dotyczące wykrytych w tym minimalnym zasięgu obiektów, co może z kolei spowodować przeszacowanie, ponieważ układ może uznać, że w obszarze 1010 są umiejscowione załadowane pudełka. Bez wątpienia można tu także wymienić inne przykładowe scenariusze.
[0082] W niektórych przykładach wykonania, wykrycie okluzji z danymi brakującymi obejmuje przeprowadzenie podprocesu 1100, jak pokazano na fig. 11. Jak pokazano, podproces 1100 obejmuje etapy przyjęcia rzutowanego w etapie 1101 dwumiarowego obrazu elementów siatkowych i generowanie mapy binaryzacji w etapie 1102, wykonując co najmniej jedno otwarcie morfologiczne w etapie 1104, wykonując wykrywanie krawędzi co najmniej jednego otwarcia morfologicznego w etapie 1106 i określając obrysy okluzji w oparciu o krawędzie wykryte w etapie 1108. W niektórych przykładach wykonania mapa binaryzacji jest wytyczona pomiędzy (i) elementami siatkowymi, dla których odpowiednia wartość głębokości jest poprawna oraz (ii) elementami siatkowymi, dla których odpowiednia wartość głębokości nie jest poprawna (tj. stanowi mapę punktów w poprawnymi danymi i punktów z niepoprawnymi (brakującymi) danymi). W niektórych przykładach wykonania, wykonanie otwarcia morfologicznego w etapie 1104 obejmuje zidentyfikowanie zbioru elementów siatkowych na mapie binaryzacji, dla których odpowiednia wartość głębokości nie jest poprawna. W niektórych przykładach wykonania, zidentyfikowany zbiór elementów siatkowych może wymagać rozszerzenia określonej wcześniej wartości progowej wielkości okluzji w elementach siatkowych i określenia jej jako otwarcia morfologicznego, a zatem (potencjalnego) bliskiego obiektu okluzyjnego.
W niektórych przykładach wykonania, wykrywanie krawędzi w etapie 1106 może stanowić wykrywanie krawędzi metodą Canny. W niektórych przykładach wykonania, przeprowadzenie wykrywania krawędzi w etapie 1106 może obejmować określanie zbioru elementów siatkowych w zidentyfikowanym klastrze, który określa krawędzie dwuwymiarowego obrazu siatkowego po wykonaniu otwarcia morfologicznego. W niektórych przykładach wykonania, przeprowadza się to po kolei dla każdego elementu siatkowego. W niektórych przykładach wykonania, elementy siatkowe stanowią pojedyncze piksele w chmurze punktów. W niektórych przykładach wykonania, elementy siatkowe stanowią grupy pikseli, i można nadać im średnią wartość (lub scharakteryzować w inny sposób przy użyciu pojedynczego numeru, jak opisano powyżej). W niektórych przykładach wykonania, określanie obrysów okluzji w etapie 1108 obejmuje utworzenie maski okluzji (w tym lokalizacji okluzji, długości obrysu, i obrazu maski, w niektórych przykładach wykonania) w oparciu o elementy siatkowe, które zidentyfikowano w poprzednich etapach jako krawędzie. W niektórych przykładach wykonania obrysy okluzji opierają się na długości obrysu i współczynniku kształtu. W końcu, lokalizacja okluzji, długość obrysu i obraz maski mogą być stosowane do korygowania okluzji (np. w etapie 906 na fig. 9).
Drugi rodzaj obiektów okluzyjnych omawianych w dokumencie stanowią dalekie obiekty okluzyjne (patrz np. fig. 10, obiekt 1015). W niektórych przykładach wykonania, dalekie obiekty okluzyjne mogą obejmować jeden lub oba spośród dwóch różnych rodzajów dalekich okluzji: okluzje ruchome i okluzje nieciągłe. Dalekie okluzje mogą być spowodowane przez obiekty okluzyjne, które są umiejscowione dalej od czujnika 1030 głębokości (tj. bliżej załadowanych pudeł w pojemniku), w porównaniu z obiektami okluzyjnymi, które w opisie scharakteryzowano jako bliskie okluzje. Dalekie okluzje mogą spowodować obliczanie napełnienia, które jest przeszacowane. W niektórych przykładach wykonania sposób obliczania napełnienia przyjmuje, że pojemnik ładunkowy był za pełniany od tyłu ku przodowi. Zatem, jeśli występuje okluzja nieciągła (np. ładowarka, lub pudełko, które j eszcze nie
PL 239 620 B1 zostało załadowane), układ może uznać, że w obszarze 1020 występują pudełka za obiektem okluzyjnym 1015, podczas gdy w rzeczywistości część przestrzeni za obiektem 1050 może być niezajęta.
Fig. 12 przedstawia podproces wykrywania okluzji nieciągłych (na ogół 1205) i okluzji ruchomych (na ogół 1210).
Jak wspomniano powyżej, w niektórych przykładach wykonania, przyjmuje się, że pudełka są umieszczane od tyłu ku przodowi pojemnika ładunkowego; a zatem, w niektórych przykładach wykonania, zidentyfikowanie okluzji nieciągłej obejmuje zidentyfikowanie, w etapie 1207, klastra elementów siatkowych z pojedynczej ramki w trójwymiarowej chmurze punktów, przy czym klaster elementów siatkowych ma wartości głębokości, które są większe niż różnica progowa i mniejsze niż wartość głębokości granicy części załadowanej w pojemniku ładunkowym (tj. wartości głębokości dla załadowanych pudełek). W niektórych przykładach wykonania, klaster nieciągłych punktów okluzyjnych jest identyfikowany przy użyciu technik klasteryzacji, które są powszechnie znane znawcom w dziedzinie. Analogicznie do identyfikowania bliskich okluzji, w niektórych przykładach wykonania, zidentyfikowanie nieciągłych okluzji może obejmować znalezienie klastrów charakteryzujących się lokalizacją i ograniczeniami geometrycznymi, takimi jak szerokość, długość klastra i współczynnik kształtu w etapie 1209, i może ponadto obejmować potwierdzenie, że zidentyfikowany klaster elementów siatkowych wykracza poza określoną wcześniej wartość progową wielkości okluzji. W niektórych przykładach wykonania, zidentyfikowanie okluzji nieciągłej obejmuje wykonanie wykrywania krawędzi klastra elementów siatkowych. W niektórych przykładach wykonania, zidentyfikowanie okluzji nieciągłej obejmuje wykonanie identyfikacji obrysu klastra elementów siatkowych. W niektórych przykładach wykonania elementy siatkowe stanowią pojedyncze piksele, natomiast w innych przykładach wykonania elementy siatkowe stanowią grupy pikseli.
W niektórych przykładach, obiekty (np. ładowarka), które są umiejscowione blisko załadowanych pudełek (tj. dalekie okluzje) mogą nie zostać wykryte podczas analizy pojedynczej ramki, a zatem do wykrycia ruchomych okluzji może być stosowana analiza czasowa (wykonywana w etapie 1213). W niektórych przykładach wykonania, przejściowy charakter danego obiektu można stosować do zidentyfikowania takiego obiektu jako okluzji ruchomej. W niektórych przykładach wykonania, wymieniony przejściowy charakter można uznać za wartości głębokości, które zmieniają się za bardzo pomiędzy dwoma sąsiadującymi ramkami w danym elemencie siatkowym, co może sugerować ruch, zamiast załadowanego w sposób stały pudełka w odpowiadającej lokalizacji. W niektórych przykładach wykonania, korzystne może być posiadanie wiedzy o tym, że gdy pudełka są ładowane do pojemnika ładunkowego od tyłu ku przodowi, wartości głębokości elementów siatkowych w rzutowanych dwuwymiarowym obrazie powinny zmniejszać się stopniowo i stale od punktu widzenia czujnika głębokości, przyjmując że pudełka są ładowane od tyłu ku przodowi. W niektórych przykładach wykonania, etap czasowej analizy obejmuje zidentyfikowanie, że wartość głębokości związana z pojedynczym elementem siatkowym zmniejsza się względem poprzednich ramek, a następnie zwiększa się w następnych ramkach w stopniu mniejszym niż wartość progowa ilości czasu pomiędzy kilkoma ramkami głębokości, co jest zgodne z sytuacją, gdy obiekt przejściowy przechodzi przez pole widzenia trójwymiarowego czujnika głębokości.
Fig. 13 przedstawia przykładową analizę czasową według niektórych przykładów wykonania. W szczególności, fig. 13 przedstawia wykres wartości głębokości dla przykładowego pojedynczego elementu siatkowego w pięciu czasowo bliskich ramkach głębokości, przedstawionych w odpowiadających odstępach czasowych t1-t5. W niektórych przykładach wykonania, bez ograniczeń, każdy odstęp czasu może wynosić 1/10 sekundy. Jak pokazano, wartość głębokości w t3 przekracza przykładową wartość progową zmiany głębokości pomiędzy co najmniej jedną wartością głębokości t2 i wartością głębokości t4, a zatem element siatkowy w ramce głębokości t3 można uznać za część okluzji ruchomej. W niektórych przykładach wykonania, wykrycie okluzji ruchomej obejmuje analizowanie wielu elementów siatkowych w pobliżu wykrytego elementu siatkowego z okluzją ruchomą dla wykrycia całego dalekiego obiektu okluzyjnego. W niektórych przykładach wykonania, górna granica poziomu napełnienia może mieć wcześniej określoną wartość progową zmiany pomiędzy sąsiednimi ramkami głębokości, tj. jeśli zmiana szacunkowego poziomu napełnienia przekracza określony wcześniej poziom graniczny, wskazywać to może na przykład na obecność ładowarki. Innymi słowy, jeśli ładowarka jest stosunkowo blisko czujnika głębokości w obszarze pojemnika ładunkowego, którego jeszcze nie załadowano (jednak nie na tyle blisko czujnika głębokości, aby spowodować wystąpienie danych brakujących), przy szacowaniu napełnienia pojemnika ładunkowego wystąpić może duży wzrost, jeśli taka przejściowa okluzja nie zostanie wykryta i skorygowana.
PL 239 620 B1
W niektórych przykładach wykonania, jedna lub kilka zidentyfikowanych okluzji odpowiada zbiorowi okluzji elementów siatkowych w ramce głębokości, i skorygowanie jednej lub wielu okluzji w ramce głębokości przy użyciu jednej lub wielu czasowo bliskich ramek głębokości obejmuje nadpisanie zbioru okluzji w ramce głębokości danymi odpowiadającymi elementom siatkowym bez okluzji z jednej lub wielu czasowo bliskich ramek głębokości. Innymi słowy, niezasłonięte elementy siatkowe najbardziej przylegających ramek głębokości można stosować do uzupełnienia zbioru okluzji w elementach siatkowych w zasłoniętych ramkach głębokości.
Fig. 14A i 14B przedstawiają przykłady szacowania napełnienia pojemnika ładunkowego odpowiednio bez korygowania okluzji i z korygowaniem okluzji. Jak pokazano, oś x na fig. 14A i 14B oznacza czas, podczas gdy oś y oznacza bieżące szacowanie napełnienia pojemnika ładunkowego. Jak przedstawiono, fig. 14A przedstawia wyniki nieskorygowanych okluzji (na przykład między czasem ~ 150-225). Opisane w dokumencie sposoby wykrywają i korygują wymienione okluzje, dzięki czemu możliwe jest osiągnięcie w czasie dokładniejszego szacowania napełnienia pojemnika ładunkowego, na co wskazuje łagodnie wzrastająca krzywa na fig. 14B.
Wszystkie scenariusze z okluzjami powodują utratę ważnych, trójwymiarowych pomiarów pudełek zasłoniętych ładowarkami lub innymi przejściowymi lub nieruchomymi obiektami znajdującymi się przed opakowaniami. Powoduje to, że szacowanie napełnienia jest niedokładne (niedoszacowanie lub przeszacowanie).
Ujawnienie przedstawia rozwiązania odpowiednio dla tych dwóch rodzajów okluzji. W przypadku bliskich okluzji (które powodują niedoszacowanie napełnienie pojemnika) luki są wykrywane z trójwymiarowych danych głębokości. Do zidentyfikowania prawdziwych okluzji stosuje się różne ograniczenia geometryczne, w tym długość obrysu, współczynnik kształtu luk. W przypadku dalekich okluzji (które powodują przeszacowanie napełnienia), do zidentyfikowania takich okluzji można stosować klasteryzację i analizę czasową.
Stopień napełnienia pojemnika należy oszacować w sposób dokładny, nawet w przypadku występowania okluzji. Trójwymiarowe dane głębokości są korygowane w oparciu o analizę czasową wielu ramek ładowania po zidentyfikowaniu okluzji. W szczególności, każda ramka jest porównywana z ramkami sąsiednimi, i zasłonięte obszary są „wypełniane” danymi pochodzącymi z odpowiadających niezasłoniętych obszarów w sąsiednich ramkach. Stopień napełnienia szacuje się wówczas w oparciu o skorygowane dane.
W przytoczonym opisie przedstawiono określone przykłady wykonania. Jednak, znawca dziedziny rozumie, że możliwe jest wprowadzenie różnych modyfikacji i zmian bez odbiegania od zakresu ujawnienia, które zdefiniowano w zastrzeżeniach poniżej. Zatem, specyfikacja i figury należy interpretować jako środki służące zilustrowaniu, a nie ograniczeniu wynalazku, i wszystkie wymienione modyfikacje zawierają się w zakresie ujawnienia.
Zalety, korzyści, rozwiązania problemów, oraz wszelkie elementy, które mogą stanowić zaletę, korzyść lub rozwiązanie, które zostanie zadeklarowane, nie należy interpretować jako krytycznych, niezbędnych lub zasadniczych cech lub elementów któregokolwiek lub wszystkich zastrzeżeń patentowych.
Ponadto, w dokumencie, określenia względne takie jak pierwszy i drugi, górny i dolny, i temu podobne, używa się jedynie dla odróżnienia jednej jednostki lub czynności od innej jednostki lub czynności, nie wymagając ani nie narzucając tym samym takiej faktycznej zależności lub kolejności pomiędzy wymienionymi jednostkami lub czynnościami. Pojęcia „zawiera”, „zawierający”, „ma”, „mający”, „dotyczy”, „dotyczący”, „posiada”, „posiadający”, lub ich różne wersje, dotyczą niewyczerpującego włączenia, na przykład procesu, sposobu, elementu, lub urządzenia, które zawiera, ma, dotyczy, posiada listę elementów, i nie dotyczy tylko tych elementów, lecz może także zawierać inne elementy, których nie wyszczególniono lub nie powiązano wyraźnie z takim procesem, sposobem, elementem, lub urządzeniem. Jeśli przetwarzany element „zawiera....”, „ma...”, „dotyczy...”, „posiada...”, nie wyklucza to, bez ograniczeń, istnienia dodatkowych identycznych elementów w procesie, sposobie, elemencie lub urządzeniu, które zawiera, ma, dotyczy, posiada ten element. O ile nie określono inaczej, użycie liczby pojedynczej lub mnogiej określa jedną lub wiele elementów. Pojęcia „zasadniczo”, „znacząco”, „w przybliżeniu”, „około”, lub ich wersje, oznaczają wartość lub cechę zbliżoną, zgodnie z interpretacją znawcy, i w jednym nieograniczającym przykładzie wykonania pojęcie zawiera się w 10%, w kolejnym przykładzie wykonania w 5%, w kolejnym przykładzie wykonania w 1% i w kolejnym przykładzie wykonania w 0,5%. Pojęcie „połączony” stosowane w dokumencie określa połączenie, chociaż niekoniecznie bezpośrednie i niekoniecznie mechaniczne. Urządzenie lub konstrukcja, która jest „za
PL 239 620 B1 projektowana” w określony sposób jest zaprojektowana co najmniej w ten sposób, lecz może być także zaprojektowana w sposób, którego nie wymieniono.
Należy rozumieć, że niektóre przykłady wykonania mogą zawierać jeden lub kilka ogólnych lub szczególnych procesorów (lub „urządzeń przetwarzających”), takich jak mikroprocesory, procesory sygnału cyfrowego, procesory zindywidualizowane i bezpośrednio programowalne macierze bramek (ang. field programmable gate arrays, FPGA) i unikalne instrukcje programowe (w tym oprogramowanie i sprzęt), które kontrolują jeden lub kilka zastosowanych procesorów, w połączeniu z określonymi obwodami poza procesorem, niektóre, większość, lub wszystkie funkcje sposobu i/lub urządzenia opisane w dokumencie. Alternatywnie, niektóre lub wszystkie funkcje można wdrożyć przez maszynę stanu, która nie posiada zapisanych instrukcji programu, lub w jednym lub wielu dedykowanych układach scalonych (ang. application specific integrated circuits, ASIC), w których każda funkcja lub niektóre kombinacje niektórych funkcji są wdrażane jako niestandardowe układy logiczne. Oczywiście można stosować połączenie dwóch tych podejść.
Ponadto, przykład wykonania można wdrożyć jako odczytywany przez komputer nośnik danych mający zapisany na nim kod programujący komputer (np. zawierający procesor) dla wykonania sposobu opisanego i zastrzeżonego w dokumencie. Przykłady takiego odczytywanego przez komputer nośnika pamięci obejmują, bez ograniczania, CD-ROM, dysk magnetooptyczny, pamięć tylko do odczytu (ROM), pamięć PROM, pamięć EPROM, pamięć EEPROM, i pamięć typu flash. Ponadto, uznaje się, że znawca, bez względu na trud i różne opcje projektowe zależne, na przykład, od dostępnego czasu, technologii, aspektów ekonomicznych, wykorzystując koncepcje i zasady ujawnione w dokumencie bez problemu stworzy instrukcje w oprogramowaniu i programy oraz IC, wykonując jedynie minimum testów eksperymentalnych.
Skrót ujawnienia zapewniono dla przedstawienia czytelnikowi szybkiego wglądu w charakter ujawnienia technicznego. Opracowano go z założeniem, że nie będzie wykorzystywany do interpretowania bądź ograniczenia zakresu zastrzeżeń patentowych. Ponadto, w przytoczonym opisie szczegółowym widać, że dla uproszczenia ujawnienia różne cechy zostały pogrupowane w różnych przykładach wykonania. Wymienionego sposobu według ujawnienia nie należy interpretować tak, że zastrzeżone przykłady wykonania wymagają większej liczby cech niż zdefiniowane w sposób wyraźny w każdym zastrzeżeniu. Przeciwnie, zgodnie z poniższymi zastrzeżeniami, przedmiot wynalazku nie opiera się na wszystkich cechach pojedynczego przykładu wykonania, który ujawniono. Zatem, zastrzeżenia patentowe zdefiniowane poniżej uwzględniono w opisie szczegółowym, przy czym każde zastrzeżenie stanowi oddzielnie zastrzeżone rozwiązanie.
Zastrzeżenia patentowe

Claims (21)

  1. Zastrzeżenia patentowe
    1. Sposób szacowania napełnienia pojemnika znamienny tym, że obejmuje:
    otrzymywanie trójwymiarowej (3D) chmury punktów z czujnika głębokości skierowanego w stronę otwartego końca pojemnika ładunkowego, przy czym chmura punktów zawiera wiele punktów, i każdy z nich ma określoną wartość głębokości;
    segmentację otrzymanej trójwymiarowej chmury punktów pomiędzy wiele elementów siatkowych;
    obliczanie odpowiedniej objętości elementu siatkowego części załadowanej pojemnika dla każdego elementu siatkowego; przy czym obliczanie odpowiedniej objętości elementu siatkowego części załadowanej pojemnika dla każdego elementu siatkowego opiera się co najmniej na odpowiedniej powierzchni elementu siatkowego i odpowiedniej wartości głębokości elementu siatkowego części załadowanej pojemnika dla każdego odpowiedniego elementu siatkowego;
    obliczanie objętości części załadowanej pojemnika w pojemniku ładunkowym przez zsumowanie obliczonych, odpowiednich objętości elementów siatkowych części załadowanej pojemnika;
    obliczanie szacowanego napełnienia pojemnika ładunkowego w oparciu o objętość części załadowanej pojemnika i ładowność pojemnika ładunkowego; i uzyskanie obliczonego szacowanego napełnienia pojemnika ładunkowego.
    PL 239 620 B1
  2. 2. Sposób według zastrz. 1, znamienny tym, że wiele elementów siatkowych tworzy razem dwuwymiarowy (2D) obraz siatki, który odpowiada płaszczyźnie równoległej do otwartego końca pojemnika ładunkowego, przy czym każdy element siatkowy ma odpowiadającą powierzchnię elementu siatkowego, przy czym sposób obejmuje ponadto:
    określanie odpowiedniej wartości głębokości elementu siatkowego części załadowanej pojemnika dla każdego elementu siatkowego.
  3. 3. Sposób według zastrz. 2, znamienny tym, że obejmuje ponadto:
    określanie wartości głębokości części niezaładowanej pojemnika dla każdego elementu siatkowego, przy czym określanie odpowiedniej wartości głębokości elementu siatkowego części załadowanej pojemnika dla każdego elementu siatkowego opiera się co najmniej częściowo na różnicy pomiędzy (i) wymiarem głębokości pojemnika ładunkowego oraz (ii) określoną wartością głębokości części niezaładowanej pojemnika dla odpowiadającego elementu siatkowego.
  4. 4. Sposób według zastrz. 3, znamienny tym, że określanie wartości głębokości części niezaładowanej pojemnika dla danego elementu siatkowego obejmuje:
    wyznaczanie wartości głębokości elementu siatkowego dla danego elementu siatkowego w oparciu o wartości głębokości punktów w chmurze punktów, które odpowiadają danemu elementowi siatkowemu; i określanie wartości głębokości części niezaładowanej pojemnika dla danego elementu siatkowego, w oparciu co najmniej częściowo o różnicę pomiędzy (i) przypisaną wartością głębokości elementu siatkowego dla danego elementu siatkowego oraz (ii) przesuniętą wartością głębokości odpowiadającą głębokości pomiędzy trójwymiarowym czujnikiem głębokości i przednią płaszczyzną pojemnika ładunkowego.
  5. 5. Sposób według zastrz. 4, znamienny tym, że wyznaczanie wartości głębokości elementu siatkowego dla danego elementu siatkowego w oparciu o wartości głębokości punktów w chmurze punktów, które odpowiadają danemu elementowi siatkowemu, obejmuje wyznaczanie jako wartości głębokości elementu siatkowego dla danego elementu siatkowego, minimalnej wartości spośród wartości głębokości punktów w chmurze punktów, które odpowiadają danemu elementowi siatkowemu.
  6. 6. Sposób według zastrz. 4, znamienny tym, że wyznaczanie wartości głębokości elementu siatkowego dla danego elementu siatkowego w oparciu o wartości głębokości punktów w chmurze punktów, które odpowiadają danemu elementowi siatkowemu, obejmuje wyznaczanie jako wartości głębokości elementu siatkowego dla danego elementu siatkowego, średniej wartości spośród wartości głębokości punktów w chmurze punktów, które odpowiadają danemu elementowi siatkowemu.
  7. 7. Sposób według zastrz. 3, znamienny tym, że wymiar głębokości pojemnika ładunkowego stanowi wymiar głębokości charakterystyczny dla elementu siatkowego, który opiera się na odpowiadającym elemencie siatkowym w referencyjnej chmurze punktów dla pustego pojemnika.
  8. 8. Sposób według zastrz. 7, znamienny tym, że referencyjna chmura punktów dla pustego pojemnika przedstawia tylną ścianę pojemnika ładunkowego jako płaską powierzchnię.
  9. 9. Sposób według zastrz. 7, znamienny tym, że referencyjna chmura punktów dla pustego pojemnika przedstawia tylną ścianę pojemnika ładunkowego jako powierzchnię zakrzywioną.
  10. 10. Sposób według zastrz. 2, znamienny tym, że obejmuje ponadto czyszczenie dwuwymiarowego obrazu siatkowego, zanim określona zostanie odpowiednia wartość głębokości elementu siatkowego części załadowanej pojemnika dla każdego elementu siatkowego.
  11. 11. Sposób według zastrz. 1, znamienny tym, że czujnik głębokości ma oś optyczną i płaszczyznę obrazu, przy czym sposób obejmuje ponadto:
    przed segmentacją otrzymanej chmury punktów spośród wielu elementów siatkowych, obracanie otrzymaną, trójwymiarową chmurą punktów dla zrównania (i) osi optycznej z poziomem gruntu oraz (ii) płaszczyzny obrazu z końcową płaszczyzną pojemnika ładunkowego.
    PL 239 620 B1
  12. 12. Sposób według zastrz. 11, znamienny tym, że obracanie chmury punktów opiera się na procesie kalibracji w trybie offline z zastosowaniem poziomu gruntu i płaszczyzny końcowej jako punktów odniesienia.
  13. 13. Sposób według zastrz. 1, znamienny tym, że obejmuje ponadto określanie ładowności pojemnika ładunkowego w oparciu co najmniej częściowo o otrzymaną trójwymiarową chmurę punktów.
  14. 14. Sposób według zastrz. 1, znamienny tym, że obejmuje ponadto:
    otrzymywanie obrazu optycznego pojemnika ładunkowego; i określanie ładowności pojemnika ładunkowego w oparciu co najmniej częściowo o otrzymany obraz optyczny.
  15. 15. Sposób według zastrz. 14, znamienny tym, że określanie ładowności pojemnika ładunkowego oparte co najmniej częściowo na otrzymanym obrazie optycznym, obejmuje: określanie co najmniej jednego fizycznego wymiaru pojemnika ładunkowego na podstawie otrzymanego obrazu optycznego; i określanie ładowności pojemnika ładunkowego w oparciu o co najmniej jeden określony fizyczny wymiar.
  16. 16. Sposób według zastrz. 14, znamienny tym, że określanie ładowności pojemnika ładunkowego oparte co najmniej częściowo na otrzymanym obrazie optycznym, obejmuje: stosowanie optycznego rozpoznawania znaków (OCR) w co najmniej jednym otrzymanym obrazie optycznym dla sprawdzenia co najmniej jednego identyfikatora pojemnika ładunkowego; i stosowanie co najmniej jednego sprawdzonego identyfikatora pojemnika ładunkowego dla określenia ładowności pojemnika ładunkowego.
  17. 17. Sposób według zastrz. 1, znamienny tym, że każdy element siatkowy ma boki zasadniczo równe 5 milimetrom (mm) na długość.
  18. 18. Sposób według zastrz. 1, znamienny tym, że każdy element siatkowy ma zasadniczo kwadratowy kształt, i długość boku elementu siatkowego jest parametrem, który można dostosować.
  19. 19. Układ do szacowania napełnienia pojemnika, znamienny tym, że zawiera:
    czujnik głębokości skierowany w stronę otwartego końca pojemnika ładunkowego;
    interfejs komunikacyjny; procesor; i pamięć danych zawierającą instrukcje wykonywane przez procesor dla zrealizowania przez układ zbioru funkcji, przy czym zbiór funkcji obejmuje:
    otrzymywanie trójwymiarowej (3D) chmury punktów z czujnika głębokości, przy czym chmura punktów zawiera wiele punktów, i każdy z nich ma określoną wartość głębokości;
    segmentację otrzymanej trójwymiarowej chmury punktów pomiędzy wiele elementów siatkowych;
    obliczanie odpowiedniej objętości elementu siatkowego części załadowanej pojemnika dla każdego elementu siatkowego, przy czym obliczanie odpowiedniej objętości elementu siatkowego części załadowanej pojemnika dla każdego elementu siatkowego opiera się co najmniej na odpowiedniej powierzchni elementu siatkowego i odpowiedniej wartości głębokości elementu siatkowego części załadowanej pojemnika dla każdego odpowiedniego elementu siatkowego;
    obliczanie objętości części załadowanej pojemnika w pojemniku ładunkowym przez zsumowanie obliczonych, odpowiednich objętości elementów siatkowych części załadowanej pojemnika;
    obliczanie szacowanego napełnienia pojemnika ładunkowego w oparciu o objętość części załadowanej pojemnika i ładowność pojemnika ładunkowego; i wysłanie obliczonego, szacowanego napełnienia pojemnika ładunkowego.
    PL 239 620 B1
  20. 20. Układ według zastrz. 19, znamienny tym, że wiele elementów siatkowych tworzy razem dwuwymiarowy (2D) obraz siatki, który odpowiada płaszczyźnie równoległej do otwartego końca pojemnika ładunkowego, przy czym każdy element siatkowy ma odpowiadającą powierzchnię elementu siatkowego;
    zbiór funkcji obejmuje ponadto określanie odpowiedniej wartości głębokości elementu siatkowego części załadowanej pojemnika dla każdego elementu siatkowego.
  21. 21. Sposób szacowania napełnienia pojemnika znamienny tym, że obejmuje:
    otrzymywanie trójwymiarowej (3D) chmury punktów z czujnika głębokości skierowanego w stronę otwartego końca pojemnika ładunkowego, przy czym chmura punktów zawiera wiele punktów, i każdy z nich ma określoną wartość głębokości, przy czym czujnik głębokości ma oś optyczną i płaszczyznę obrazu;
    obracanie otrzymanej, trójwymiarowej chmury punktów dla zrównania (i) osi optycznej z poziomem gruntu oraz (ii) płaszczyzny obrazu z końcową płaszczyzną pojemnika ładunkowego;
    segmentację obróconej trójwymiarowej chmury punktów na wiele elementów siatkowych, które tworzą razem dwuwymiarowy (2D) obraz siatki, który odpowiada płaszczyźnie równoległej do otwartego końca pojemnika ładunkowego, przy czym każdy element siatkowy ma odpowiadającą powierzchnię elementu siatkowego;
    określanie odpowiedniej wartości głębokości elementu siatkowego części załadowanej pojemnika dla każdego elementu siatkowego co najmniej częściowo przez porównanie (i) odpowiedniej części rzutowanej chmury punktów, na którą nakłada się obszar odpowiedniego elementu siatkowego, z (ii) odpowiednią odpowiadającą częścią referencyjnej chmury punktów dla pustego pojemnika;
    obliczanie odpowiedniej objętości elementu siatkowego części załadowanej pojemnika dla każdego elementu siatkowego w oparciu o co najmniej odpowiednią powierzchnię elementu siatkowego i odpowiednią wartość głębokości elementu siatkowego części załadowanej pojemnika dla każdego odpowiedniego elementu siatkowego;
    obliczanie objętości części załadowanej pojemnika w pojemniku ładunkowym przez zsumowanie obliczonych, odpowiednich objętości elementów siatkowych części załadowanej pojemnika;
    określanie ładowności pojemnika ładunkowego w oparciu co najmniej częściowo o otrzymane dane głębokości;
    obliczanie szacowanego napełnienia pojemnika ładunkowego w oparciu o objętość części załadowanej pojemnika i określoną wcześniej ładowność pojemnika ładunkowego; i wysłanie obliczonego szacowanego napełnienia pojemnika ładunkowego.
PL430920A 2015-11-18 2016-11-10 Sposoby i układ do szacowania napełnienia pojemnika PL239620B1 (pl)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US14/944,860 US9940730B2 (en) 2015-11-18 2015-11-18 Methods and systems for automatic fullness estimation of containers
US14/944,860 2015-11-18
US14/978,367 2015-12-22
US14/978,367 US10713610B2 (en) 2015-12-22 2015-12-22 Methods and systems for occlusion detection and data correction for container-fullness estimation
PCT/US2016/061279 WO2017087244A1 (en) 2015-11-18 2016-11-10 Methods and systems for container fullness estimation

Publications (2)

Publication Number Publication Date
PL430920A1 PL430920A1 (pl) 2019-11-04
PL239620B1 true PL239620B1 (pl) 2021-12-20

Family

ID=57389569

Family Applications (2)

Application Number Title Priority Date Filing Date
PL426752A PL426752A1 (pl) 2015-11-18 2016-11-10 Sposoby i układy do szacowania napełnienia pojemnika
PL430920A PL239620B1 (pl) 2015-11-18 2016-11-10 Sposoby i układ do szacowania napełnienia pojemnika

Family Applications Before (1)

Application Number Title Priority Date Filing Date
PL426752A PL426752A1 (pl) 2015-11-18 2016-11-10 Sposoby i układy do szacowania napełnienia pojemnika

Country Status (6)

Country Link
CA (1) CA3005452C (pl)
DE (1) DE112016005287T5 (pl)
GB (1) GB2558507B (pl)
MX (1) MX2018006105A (pl)
PL (2) PL426752A1 (pl)
WO (1) WO2017087244A1 (pl)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10628772B2 (en) * 2017-12-22 2020-04-21 Symbol Technologies, Llc Computing package wall density in commercial trailer loading
US10657666B2 (en) * 2017-12-22 2020-05-19 Symbol Technologies, Llc Systems and methods for determining commercial trailer fullness
US10690533B2 (en) * 2017-12-29 2020-06-23 Symbol Technologies, Llc Illumination pattern system and methods for 3D-time of flight systems
US11010915B2 (en) 2019-07-11 2021-05-18 Zebra Technologies Corporation Three-dimensional (3D) depth imaging systems and methods for dynamic container auto-configuration
US12051208B2 (en) 2019-07-11 2024-07-30 Zebra Technologies Corporation Three-dimensional (3D) depth imaging systems and methods for dynamic container auto-configuration
CN111442814B (zh) * 2020-05-13 2022-01-18 武汉市异方体科技有限公司 一种非接触式测量异形物体排水体积的装置
WO2022054497A1 (ja) * 2020-09-08 2022-03-17 パナソニックIpマネジメント株式会社 充填率計測方法、情報処理装置およびプログラム
CN112874927B (zh) * 2021-02-03 2023-07-07 四川物联亿达科技有限公司 物流包装箱箱型推荐方法
CN113657191A (zh) * 2021-07-26 2021-11-16 浙江大华技术股份有限公司 堆积物识别方法、装置和电子装置
DE102021127789A1 (de) 2021-10-26 2023-04-27 Zf Cv Systems Global Gmbh Verfahren zur Erfassung von Ladegut

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
EP2302564A1 (en) * 2009-09-23 2011-03-30 Iee International Electronics & Engineering S.A. Real-time dynamic reference image generation for range imaging system
US9514522B2 (en) * 2012-08-24 2016-12-06 Microsoft Technology Licensing, Llc Depth data processing and compression
US20140372182A1 (en) * 2013-06-17 2014-12-18 Motorola Solutions, Inc. Real-time trailer utilization measurement

Also Published As

Publication number Publication date
GB2558507B (en) 2022-04-20
GB201807994D0 (en) 2018-07-04
CA3005452A1 (en) 2017-05-26
GB2558507A (en) 2018-07-11
PL430920A1 (pl) 2019-11-04
PL426752A1 (pl) 2019-03-25
DE112016005287T5 (de) 2018-08-02
MX2018006105A (es) 2018-08-24
WO2017087244A1 (en) 2017-05-26
CA3005452C (en) 2020-07-14

Similar Documents

Publication Publication Date Title
PL239620B1 (pl) Sposoby i układ do szacowania napełnienia pojemnika
US10713610B2 (en) Methods and systems for occlusion detection and data correction for container-fullness estimation
EP3012601B1 (en) Handheld dimensioning system with measurement-conformance feedback
US10229509B2 (en) Methods and systems for automatic fullness estimation of containers
US20230349686A1 (en) Systems and Methods for Volumetric Sizing
CN105787923B (zh) 用于平面表面分割的视觉系统和分析方法
US10096131B2 (en) Dimensional acquisition of packages
CA2967025C (en) Non-parametric method of and system for estimating dimensions of objects of arbitrary shape
US9552514B2 (en) Moving object detection method and system
US10290115B2 (en) Device and method for determining the volume of an object moved by an industrial truck
JP6649796B2 (ja) 物体状態特定方法、物体状態特定装置、および、搬送車
KR101918168B1 (ko) 3차원 계측 방법 및 그 장치
US11017548B2 (en) Methods, systems, and apparatuses for computing dimensions of an object using range images
EP3438602B1 (en) Dimension measurement apparatus and control method of the same
EP3242108A1 (en) Information processing apparatus, information processing method, program, system, and article manufacturing method
WO2023236825A1 (zh) 容积使用率的监控方法、装置和计算机可读存储介质
US20200103218A1 (en) Methods and systems for measuring dimensions of a 2-d object
CN106240454A (zh) 提供车辆碰撞预警的系统及车载设备
CN108701344B (zh) 在确定移动盒体的尺寸时突出显示盒体表面和边缘的方法和系统
JP7288568B1 (ja) 自動採寸システム
US11093730B2 (en) Measurement system and measurement method
CN115427755A (zh) 填充率测量方法、信息处理装置以及程序
CN114897964A (zh) 容积测量方法、装置、系统和计算机可读存储介质
WO2022054497A1 (ja) 充填率計測方法、情報処理装置およびプログラム
CN114187236A (zh) 一种物体参数确定方法、装置及电子设备