-
HINTERGRUND
-
Der Transport und die Lagerung von Objekten wie Paketen kann die Kenntnis der Dimensionen eines Pakets erfordern. Solche Informationen können verwendet werden, um die Nutzung des verfügbaren Raumes in einem Container (z.B. einem Anhänger) zu optimieren, um die Versand- oder Lagerkosten für das Paket zu ermitteln oder ähnliches. Die Dimensionen von Paketen sind jedoch unter Umständen nicht im Voraus bekannt, so dass es für die Arbeiter erforderlich sein kann, die Dimensionen der Pakete durch manuelles Vermessen der Pakete zu ermitteln. Das manuelle Messen kann zeitaufwendig und fehleranfällig sein. Systeme zur automatischen Messung von Paketdimensionen können auch unter einer verminderten Genauigkeit leiden, z.B. bei der Messung von sich bewegenden Paketen, Paketen mit dunklen (z.B. schwarzen) Oberflächen und ähnlichem.
US 2004/0023 612 A1 beschreibt ein Verfahren und eine Vorrichtung zum Messen der physikalischen Eigenschaften von Nutztieren wie Rindern und Schweinen. Die erfindungsgemäße Vorrichtung umfasst eine Vielzahl strategisch positionierter Kameras, die verwendet werden, um Daten bezüglich volumetrischer, krummliniger (Oberflächen-) und linearer Messungen von Nutztieren wie Rindern und Schweinen und deren vollständigen Kadavern zu erhalten.
US 2017 / 0 280 125 A1 beschreibt eine Vielzahl von dreidimensionalen (3D) Kameras, die um eine Zone herum eingesetzt werden, durch die Fracht zu einem Versandcontainer befördert wird. Die 3D-Kameras verfügen über Sensoren mit Sichtfeldern, über die mehrere Voxel-Punktwolken aus der Fracht erfasst werden. Ein Server kombiniert die Punktwolken, um eine zusammengesetzte Punktwolke der Fracht zu erhalten, schließt die zusammengesetzte Punktwolke mit einer Begrenzungsbox mit Abmessungen ein und bemisst die Fracht anhand der Abmessungen der Begrenzungsbox. Eine optionale Waage wiegt die Fracht, während sie vermessen und durch die Zone bewegt wird.
WO 2017/ 056 035 A1 beschreibt ein Verfahren und ein System zum Auslesen codierter Informationen von einem Objekt. Das System umfasst eine oder mehrere dreidimensionale Kameras, die so konfiguriert sind, dass sie dreidimensionale Bilder des Objekts erfassen, und einen Prozessor, der so konfiguriert ist, dass er die erfassten dreidimensionalen Bilder verarbeitet. Der Prozessor ist dazu ausgelegt, Ebenen zu identifizieren, auf denen Flächen des Objekts liegen, zweidimensionale Bilder zu extrahieren, die auf den identifizierten Ebenen liegen, Erkennungsalgorithmen für codierte Informationen auf zumindest einen Teil der extrahierten zweidimensionalen Bilder anzuwenden.
-
Figurenliste
-
Die beigefügten Figuren, in denen gleiche Bezugszeichen identische oder funktional ähnliche Elemente in den einzelnen Ansichten bezeichnen, sind zusammen mit der nachfolgenden detaillierten Beschreibung in die Offenbarung inkorporiert und bilden einen Bestandteil der Offenbarung und dienen dazu, hierin beschriebene Ausführungsformen von Konzepten, die die beanspruchte Erfindung umfassen, weiter zu veranschaulichen und verschiedene Prinzipien und Vorteile dieser Ausführungsformen zu erklären.
- 1 ist ein Schema eines Datenerfassungssystems zur Obj ektdimensionierung.
- 2 ist ein Diagramm eines beispielhaften Einsatzes bestimmter Komponenten des Systems von 1.
- 3A ist ein Blockdiagramm bestimmter interner Komponenten des Bildverarbeitungsservers von 1.
- 3B ist ein Blockdiagramm bestimmter interner Komponenten der Erfassungssteuerung aus 1.
- 4 ist ein Flussdiagramm eines Verfahrens zur Datenerfassung für die Obj ektdimensionierung.
- 5 zeigt beispielhafte Bilder, die über die Durchführung des Verfahrens von 4 im System der 1 und 2 erfasst werden.
- 6 ist ein Diagramm eines weiteren Beispiels für den Einsatz bestimmter Komponenten des Systems von 1.
-
Fachleute werden erkennen, dass Elemente in den Figuren der Einfachheit und Klarheit halber dargestellt sind und nicht notwendigerweise maßstabsgetreu gezeichnet wurden. Zum Beispiel können die Dimensionen einiger der Elemente in den Figuren relativ zu anderen Elementen übertrieben sein, um das Verständnis von Ausführungsformen der vorliegenden Erfindung zu verbessern.
-
Die Vorrichtungs- und Verfahrenskomponenten wurden, wo es angemessen ist, durch herkömmliche Symbole in den Zeichnungen dargestellt, die nur jene spezifischen Details zeigen, die zum Verständnis der Ausführungsformen der vorliegenden Erfindung relevant sind, um somit die Offenbarung nicht mit Einzelheiten zu verdecken, die für die Fachleute auf dem Gebiet, die auf die vorliegende Beschreibung zurückgreifen, ohne weiteres ersichtlich sind.
-
DETAILLIERTE BESCHREIBUNG
-
Die hier offenbarten Beispiele sind auf ein Datenerfassungssystem zur Objektdimensionierung gerichtet, das umfasst: einen Bewegungssensor, der so konfiguriert ist, dass er ein Erkennungssignal als Reaktion auf die Erkennung eines Objekts an einer Erfassungsposition innerhalb eines Erfassungsvolumens erzeugt; eine Erfassungssteuerung, die mit dem Bewegungssensor verbunden und so konfiguriert ist, dass sie als Reaktion auf den Empfang des Erkennungssignals im Wesentlichen gleichzeitig einen Verschluss (shutter)-befehl erzeugt und an jede einer Vielzahl von Kameras überträgt, der bewirkt, dass jede Kamera ein entsprechendes Bild eines synchronen Satzes von Bildern des Erfassungsvolumens erfasst; einen Bildverarbeitungsserver, der mit jeder der mehreren Kameras verbunden und so konfiguriert ist, dass er den synchronen Satz von Bildern von den Kameras empfängt und den synchronen Satz von Bildern in einem gemeinsamen Speicher speichert; wobei der Bildverarbeitungsserver ferner so konfiguriert ist, dass er eine Punktwolke erzeugt, die das Objekt auf der Grundlage des synchronen Satzes von Bildern repräsentiert, zur Verwendung bei der Bestimmung der Dimensionen des Objekts. Das Datenerfassungssystem erfasst ferner einen mit der Erfassungssteuerung verbundenen Leistungsschalter, wobei die Erfassungssteuerung konfiguriert ist, um als Reaktion auf die Erfassung der Aktivierung des Leistungsschalters einen Einschaltbefehl an jede der Vielzahl von Kameras zu übertragen.
-
Zusätzliche Beispiele, die hier offenbart werden, beziehen sich auf ein Verfahren zur Objektdimensionierung in einem Datenerfassungssystem, wobei das Verfahren umfasst: Erzeugen, an einem Bewegungssensor, eines Erkennungssignals als Reaktion auf die Erkennung eines Objekts an einer Erfassungsposition innerhalb eines Erfassungsvolumens; als Reaktion auf den Empfang des Erkennungssignals an einer Erfassungssteuerung, die mit dem Bewegungssensor verbunden ist, Erzeugen und Übertragen eines Verschlussbefehls im Wesentlichen gleichzeitig von der Erfassungssteuerung an jede einer Vielzahl von Kameras, der jede Kamera dazu veranlasst, ein jeweiliges Bild eines synchronen Satzes von Bildern des Erfassungsvolumens zu erfassen; an einem Bildverarbeitungsserver, der mit jeder der Vielzahl von Kameras verbunden ist, Empfangen des synchronen Satzes von Bildern von den Kameras und Speichern des synchronen Satzes von Bildern in einem gemeinsamen Speicher; und an dem Bildverarbeitungsserver, Erzeugen einer Punktwolke, die das Objekt auf der Grundlage des synchronen Satzes von Bildern repräsentiert, zur Verwendung bei der Bestimmung der Dimensionen des Objekts.
-
1 zeigt ein Datenerfassungssystem 100 zur Objektdimensionierung. Das Datenerfassungssystem 100 ist so konfiguriert, dass es Punktwolkendaten erzeugt, die ein Objekt 104 innerhalb eines Erfassungsvolumens darstellen, und die Punktwolkendaten über ein Netzwerk 110 einem Dimensionierungssystem 108 (z.B. einem oder mehreren Rechengeräten) zur Verfügung stellt. Das Dimensionierungssystem 108 wiederum ist so konfiguriert, dass es die Punktwolkendaten verarbeitet und mindestens eine Dimension (z.B. Höhe, Breite, Länge oder ähnliches) des Objekts 104 bestimmt.
-
Das Objekt 104 ist im vorliegenden Beispiel ein Paket und wird daher hier auch als Paket 104 bezeichnet. Das Paket 104 kann z.B. eines von mehreren Paketen sein, die vom Dimensionierungssystem 108 vor dem Versand, der Lagerung o.ä. dimensioniert werden müssen. Das System 100 kann z.B. in einer Transport- und Logistikanlage (T&L) eingesetzt werden, in der eine Vielzahl von Paketen 104 zur Datenerfassung und anschließenden Dimensionierung durch das System 100 bewegt wird.
-
Das System 100 umfasst einen Bildverarbeitungsserver 112 (hier auch als Server 112 bezeichnet), der so konfiguriert ist, dass er die oben erwähnten Punktwolkendaten erzeugt, die das Paket 104 repräsentieren. Der Bildverarbeitungsserver 112 ist als ein geeignetes Rechengerät implementiert, dessen Komponenten im Folgenden näher beschrieben werden.
-
Der Server 112 ist so konfiguriert, dass er die oben genannten Punktwolkendaten, die das Paket 104 repräsentieren, auf der Grundlage eines synchronen Satzes von Bildern erzeugt, die von einer Vielzahl von Kameras 116-1, 116-2, ..., 116-n (zusammen als die Kameras 116 bezeichnet und allgemein als Kamera 116 bezeichnet; eine ähnliche Nomenklatur wird hier für andere Elemente verwendet) erfasst wurden, die mit Sichtfeldern angeordnet sind, die ein Erfassungsvolumen umfassen, das das Paket 104 enthält. Bei der Kamera 116 handelt es sich im vorliegenden Beispiel um Farbkameras (z.B. konfiguriert zur Erzeugung von Bilddateien mit RGB-Daten), wie z.B. digitale Spiegelreflexkameras (DSLR). In anderen Beispielen können die Kameras 116 eine oder mehrere Graustufenkameras, Infrarotkameras o.ä. enthalten. Darüber hinaus können auch andere Kameraformate als das oben erwähnte DSLR-Format implementiert werden.
-
Ein synchroner Satz von Bildern, auf den hier Bezug genommen wird, enthält ein Bild, das von jeder Kamera im Wesentlichen zur gleichen Zeit aufgenommen wurde. Beispielsweise können die Bilder in einem synchronen Satz von Bildern innerhalb einer Zeitspanne von etwa 0,5 Sekunden oder weniger erfasst werden. In einigen Ausführungsformen können die Bilder in einem synchronen Satz von Bildern innerhalb einer Zeitspanne von etwa 0,2 Sekunden oder weniger erfasst werden. Somit stellt jedes Bild des Satzes das Paket 104 im Wesentlichen zum gleichen Zeitpunkt dar, jedoch aus einer anderen Betrachtungsposition als die anderen Bilder, was auf die unterschiedlichen physischen Positionen der Kameras 116 relativ zum Erfassungsvolumen zurückzuführen ist.
-
Die Bilder, die vom Server 112 zur Erzeugung von Punktwolkendaten verwendet werden, werden von den Kameras 116 an den Server 112 übertragen, im vorliegenden Beispiel über einen Satz von Doppelverbindern 120-1, 120-2, ..., 120-n. Jeder Doppelverbinder 120 enthält ein Kamerasegment 124, das so konfiguriert ist, dass es in einen Kommunikationsanschluss 126 der entsprechenden Kamera 116 eingreift. Der Kommunikationsanschluss 126 umfasst einen Satz von Steuerkontakten (z.B. Stifte oder andere geeignete elektrische Kontakte) und einen Satz von Datenübertragungskontakten. Beispielsweise können die Datenübertragungskontakte auf dem USB-Standard (Universal Serial Bus) basieren. Ein Beispiel für einen Kommunikationsanschluss 126 ist ein Sony™ Multiport-Anschluss (auch als Multi Terminal bezeichnet), der fünf USB-Kontakte und zehn Steuerkontakte umfasst.
-
Das Kamerasegment 124 jedes Doppelverbinders 120 enthält elektrische Leitungen, die sowohl den oben genannten Datenübertragungskontakten als auch den Steuerkontakten entsprechen. Jeder Doppelverbinder 120 enthält auch ein Übertragungssegment 128 und ein Steuersegment 132. Wie in 1 dargestellt, trennen sich die Segmente 128 und 132 vom Kamerasegment 124. Insbesondere enthält das Übertragungssegment 128 die oben erwähnten Datenübertragungsleitungen, während das Steuersegment 132 die oben erwähnten Steuerleitungen enthält.
-
In der in 1 dargestellten Ausführungsform sind die Kameras 116 daher so konfiguriert, dass die erfassten Bilder über die beiden Doppelverbinder 120 (und zwar über die Kamerasegmente 124 und die Übertragungssegmente 128) an den Server 112 übertragen werden. Das System 100 enthält auch einen Kommunikationshub 136, z.B. einen USB-Hub, der die Übertragungssegmente 128 mit dem Server 112 verbindet (z.B. mit einem einzelnen USB-Anschluss des Servers 112). In anderen Beispielen wird der Kommunikationshub 136 weggelassen und die Übertragungssegmente 128 werden direkt mit dem Server 112 verbunden, z.B. wenn der Server 112 eine ausreichende Anzahl von Anschlüssen (z.B. USB-Anschlüsse) enthält, um die Übertragungssegmente 128 aufzunehmen.
-
Die Kameras 116 sind so konfiguriert, dass sie Bilder erfassen als Reaktion auf Befehle, die über die Steuersegmente 132 der Doppelverbinder 120 an die Kameras ausgegeben werden. Insbesondere enthält das System 100 einen Erfassungssteuerung 140, die so konfiguriert ist, dass sie jedes der Steuersegmente 132 empfängt und Befehle über die Steuersegmente 132 an die Kameras 116 überträgt.
-
Der Erfassungssteuerung 140 ist als geeignetes Rechengerät implementiert, wie z.B. ein oder mehrere Single-Board-Mikrocontroller (z.B. Raspberry Pi™). In anderen Beispielen kann die Steuerung 140 als ein Desktop-Computer, ein Laptop-Computer, ein Tablet-Computer oder ähnliches implementiert werden. Der Erfassungssteuerung 140 ist so konfiguriert, dass sie Steuersignale zur Übertragung an die Kameras 116 erzeugt, einschließlich eines synchronen Verschlussbefehls, der als Reaktion auf ein an der Steuerung 140 empfangenes Objekterkennungssignal erzeugt wird.
-
Das Objekterkennungssignal wird im vorliegenden Beispiel von einem Bewegungssensor 144 erzeugt, der so konfiguriert ist, dass er die Ankunft des Pakets 104 im Erfassungsvolumen erkennt. Der Bewegungssensor 144 enthält jede geeignete Bewegungserfassungsvorrichtung, wie z.B. eine Lichterkennungs- und Entfernungs (Lidar) -vorrichtung, einen Ultraschallsensor, eine weitere Kamera und einen zugehörigen Bildprozessor, der so konfiguriert ist, dass er die Anwesenheit des Pakets 104 erkennt, oder ähnliches. Der Bewegungssensor 144 ist über eine geeignete Kommunikationsverbindung (z.B. USB, I2C-Schnittstelle o.ä.) mit der Steuerung 140 verbunden.
-
Das System 100 umfasst auch einen Leistungsschalter 148, der mit der Erfassungssteuerung 140 verbunden ist. Der Leistungsschalter 148 ist im vorliegenden Beispiel ein manuell bedienbarer Schalter, der so konfiguriert ist, dass er die Steuerung 140 veranlasst, Steuerbefehle an die Kameras 116 zum Einschalten und Ausschalten zu senden. Die Steuerung 140 kann auch so konfiguriert werden, dass sie den Bewegungssensor 144 als Reaktion auf die Betätigung des Leistungsschalters 148 ein- oder ausschaltet. In anderen Ausführungsformen kann der Leistungsschalter 148 weggelassen oder durch einen Soft-Schalter ersetzt werden, der in einer von der Steuerung 140 ausgeführten Software implementiert ist und durch Manipulation eines Eingabegeräts (z.B. einer Tastatur, eines Touchscreens, eines Mikrofons oder ähnlichem) betätigt wird.
-
Um zu 2 zu kommen, werden bestimmte Komponenten des Systems 100 in einem beispielhaften Einsatz gezeigt. Der in 2 gezeigte beispielhafte Einsatz umfasst sechzehn Kameras 116, die in vier Gruppen 200-1, 200-2, 200-3 und 200-4 angeordnet sind, wobei jede Gruppe 200 vier Kameras 116 umfasst. Wie aus 2 ersichtlich ist, ist der Abstand der Kameras 116 innerhalb jeder Gruppe 200 kleiner als der Abstand zwischen benachbarten Gruppen 200.
-
Die Kameras 116 werden auf einer Tragstruktur 204 (z.B. etwa am Umfang der Tragstruktur 204) getragen, z.B. einem im Wesentlichen ringförmigen Rahmen, der von einer Decke (nicht abgebildet) der Einrichtung, in der das System 100 eingesetzt wird, abgehängt sein kann. Es kann auch eine Vielzahl anderer Tragestrukturen zum Tragen der Kameras 116 verwendet werden, einschließlich diskreter Tragestrukturen für jede Gruppe 200 oder für jede Kamera 116. In anderen Ausführungsformen sind die Kameras 116 in gleichen Abständen um die Tragstruktur 204 angeordnet. In weiteren Ausführungsformen kann eine andere Anzahl von Kameras 116 eingesetzt werden. Beispielsweise können bei einer anderen Ausführung zwölf Kameras 116 in drei Vierergruppen oder in vier Dreiergruppen um die Tragstruktur 204 herum angeordnet sein.
-
Die Kameras 116 werden durch die Tragstruktur 204 so positioniert, dass das Sichtfeld jeder Kamera 116 mindestens einen Teil eines Erfassungsvolumens 208 umfasst. Außerdem überlappen sich die Sichtfelder benachbarter Kameras 116 innerhalb jeder Gruppe 200 um etwa 40%. Zusammen bieten die Kameras 116 somit eine im Wesentlichen vollständige Abdeckung des Erfassungsvolumens 208 (z.B. liegt jede Position im Erfassungsvolumen 208 innerhalb des Sichtfeldes von mindestens zwei Kameras 116). Im vorliegenden Beispiel hat das Erfassungsvolumen 208 eine Höhe, eine Breite und eine Länge von jeweils etwa acht Fuß; die Kameras 116 können so angeordnet werden, dass sie verschiedene andere Erfassungsvolumen in anderen Ausführungsformen umfassen, z.B. in Abhängigkeit von der Größe des zu erfassenden Pakets 104.
-
Das Paket 104 kann durch das Erfassungsvolumen 208 transportiert werden, z.B. auf einem Förderband 212 oder einem anderen Lokomotivmechanismus (z.B. in einer Erfassungsvorrichtung eines Fahrzeugs). Der Bewegungssensor 144 wird daher, wie in 2 dargestellt, auf dem Weg, auf dem das Paket 104 transportiert wird, eingesetzt, um die Ankunft des Pakets 104 an einer vordefinierten Erfassungsposition innerhalb des Erfassungsvolumens 208 zu erkennen. Bei Ankunft des Pakets 104 an der Erfassungsposition wird der Bewegungssensor 144 so konfiguriert, dass er das oben erwähnte Erkennungssignal erzeugt.
-
Vor einer ausführlichen Erörterung der Funktionsweise des Systems 100 werden bestimmte interne Komponenten des Servers 112 und der Steuerung 140 unter Bezugnahme auf 3A und 3B erörtert.
-
Unter Bezugnahme auf 3A sind bestimmte interne Komponenten des Servers 112 dargestellt. Der Server 112 enthält eine zentrale Prozessoreinheit (CPU), auch Prozessor 300 genannt, die mit einem nicht flüchtigen computerlesbaren Speichermedium, wie z.B. einem Speicher 304, verbunden ist. Der Speicher 304 umfasst jede geeignete Kombination aus flüchtigem (z.B. Random Access Memory (RAM)) und nichtflüchtigem (z.B. Read Only Memory (ROM), Electrically Erasable Programmable Read Only Memory (EEPROM), Flash) Speicher. Der Prozessor 300 und der Speicher 304 umfassen jeweils einen oder mehrere integrierte Schaltkreise (ICs).
-
Der Server 112 umfasst auch eine Kommunikationsschnittstelle 308, die es dem Server 112 ermöglicht, über das Netzwerk 110 Daten mit anderen Rechengeräten, wie z.B. dem Dimensionierungssystem 108, auszutauschen. Die Kommunikationsschnittstelle 308 umfasst daher jede geeignete Hardware (z.B. Sender, Empfänger, Netzschnittstellen-Steuerung und dergleichen), die es dem Server 112 ermöglicht, über das Netzwerk 110 zu kommunizieren.
-
Der Server 112 verfügt außerdem über eine Eingabe/Ausgabeschnittstelle 312, die auch als lokale Kommunikationsschnittstelle bezeichnet werden kann und es dem Server 112 ermöglicht, Daten mit Geräten wie den Kameras 116 auszutauschen. Im vorliegenden Beispiel enthält die Schnittstelle 312 eine USB-Schnittstelle, die an den Kommunikationshub 136 angeschlossen ist. Für die Schnittstelle 312 können auch andere geeignete Schnittstellentechnologien eingesetzt werden, einschließlich Ethernet, Wi-Fi, Thunderbolt™ und dergleichen).
-
Der Server 112 kann auch Eingabegeräte (z.B. eine Tastatur, eine Maus, ein Mikrofon o.ä.) und Ausgabegeräte (z.B. einen Bildschirm, einen Lautsprecher o.ä.) enthalten, die nicht gezeigt sind. Die Komponenten des Servers 112 sind über Kommunikationsbusse (nicht gezeigt) miteinander verbunden und werden über die oben genannten Kommunikationsbusse oder über separate Leistungsbusse (nicht gezeigt) von einer Batterie oder einer anderen Leistungsquelle gespeist.
-
Der Speicher 304 des Servers 112 speichert eine Vielzahl von Anwendungen, von denen jede eine Vielzahl von computerlesbaren Anweisungen enthält, die vom Prozessor 300 ausgeführt werden können. Die Ausführung der oben genannten Anweisungen durch den Prozessor 300 veranlasst den Server 112, bestimmte Funktionen zu implementieren, wie hier besprochen. In der nachfolgenden Diskussion wird daher gesagt, dass die Anwendungen so konfiguriert sind, dass sie diese Funktionalität ausführen. Im vorliegenden Beispiel speichert der Speicher 304 des Servers 112 eine Überwachungsanwendung 316 und eine Punktwolkengenerator-Anwendung 320 (hier auch einfach als Anwendungen 316 bzw. 320 bezeichnet).
-
Der Server 112 ist so konfiguriert, dass er durch die Ausführung der Anwendung 316 durch den Prozessor 300 den Inhalt eines gemeinsamen Bildspeichers 324 im Speicher 304 (z.B. einer Datenbank, eines Ordners o.ä.) auf Änderungen überwacht und die Anwendung 320 des Punktwolkengenerators veranlasst, um eine Erzeugung von Punktwolken auf der Grundlage des Inhalts des Speichers 324 einzuleiten, wenn Änderungen festgestellt werden. Die Anwendung 320 ist eine geeignete Anwendung zur Punktwolkenerzeugung, wie z.B. Agisoft PhotoScan.
-
Die Anwendungen 316 und 320 können, in anderen Beispielen, als eine einzige Anwendung oder als mehr als zwei Anwendungen implementiert werden. In anderen Beispielen wird der Prozessor 300, wie er durch die Ausführung der Anwendungen 316 und 320 konfiguriert wird, als ein oder mehrere spezifisch konfigurierte Hardware-Elemente implementiert, wie z.B. FPGAs (Field Programmable Gate Arrays) und/oder anwendungsspezifische integrierte Schaltungen (ASICs).
-
Unter Bezugnahme auf 3B sind einige interne Komponenten der Steuerung 140 dargestellt. Die Steuerung 140 enthält eine zentrale Prozessoreinheit (CPU), auch Prozessor 350 genannt, die mit einem nicht flüchtigen computerlesbaren Speichermedium, wie z.B. einem Speicher 354, verbunden ist. Der Speicher 354 enthält jede geeignete Kombination aus flüchtigem (z.B. Random Access Memory (RAM)) und nichtflüchtigem (z.B. Read Only Memory (ROM), Electrically Erasable Programmable Read Only Memory (EEPROM), Flash) Speicher. Der Prozessor 350 und der Speicher 354 umfassen jeweils eine oder mehrere integrierte Schaltungen (ICs).
-
Die Steuerung 140 umfasst außerdem eine Eingabe/Ausgabeschnittstelle 358, über die die Steuerung 140 Daten mit Geräten wie den Kameras 116 und dem Bewegungssensor 144 austauschen kann. Im vorliegenden Beispiel enthält die Schnittstelle 358 eine Anordnung von bestimmten Eingabe/Ausgabe-(GPIO - General Purpose Input/Output)-Pins (z.B. mindestens ein Satz von 40 GPIO-Pins). Die Schnittstelle 358 kann auch einen oder mehrere USB-Anschlüsse oder ähnliches enthalten. Ein erster Teil 360 der Schnittstelle 358 (z.B. eine erste Teilmenge der GPIO-Pins) ist mit dem Leistungsschalter 148 verbunden. Ein zweiter Teil 362 der Schnittstelle 358 (z.B. eine zweite Teilmenge der GPIO-Pins oder ein USB-Anschluss) ist mit dem Bewegungssensor 144 verbunden. Ein dritter Teil 364 der Schnittstelle 358 (z.B. eine dritte Teilmenge der GPIO-Pins) ist mit den Kameras 116 verbunden. Das heißt, der dritte Teil 364 stellt Verbindungen zwischen der Steuerung 140 und dem Steuersegment 132 jedes Doppelanschlusses 120 her. Im vorliegenden Beispiel stellt der dritte Teil 364 also sechzehn Verbindungen (zu jeder der sechzehn Kameras 116) her, wobei jede Verbindung über eine ausreichende Anzahl von Kontakten (z.B. GPIO-Pins) verfügt, um die unten näher besprochenen Befehle an die Kameras 116 zu übertragen.
-
Die Steuerung 140 kann auch eine weitere Kommunikationsschnittstelle (nicht gezeigt) enthalten, die eine geeignete Kombination von Sendern, Empfängern, Netzwerkschnittstellen-Steuerungen und dergleichen umfasst und es der Steuerung 140 ermöglicht, mit anderen Rechengeräten zu kommunizieren, z.B. über das Netzwerk 110.
-
Die Steuerung 140 kann auch Eingabegeräte (z.B. eine Tastatur, eine Maus, ein Mikrofon o.ä.) und Ausgabegeräte (z.B. ein Display, einen Lautsprecher o.ä.) enthalten, die nicht gezeigt sind. Die Komponenten des Steuerung 140 sind über Kommunikationsbusse (nicht gezeigt) miteinander verbunden und werden über die oben genannten Kommunikationsbusse oder über separate Leistungsbusse (nicht gezeigt) von einer Batterie oder einer anderen Leistungsquelle mit Strom versorgt.
-
Der Speicher 354 der Steuerung 140 speichert eine Vielzahl von Anwendungen, von denen jede eine Vielzahl von computerlesbaren Befehlen enthält, die vom Prozessor 350 ausgeführt werden können. Die Ausführung der oben genannten Befehle durch den Prozessor 350 veranlasst die Steuerung 140, bestimmte Funktionen zu implementieren, wie hier besprochen. In der nachfolgenden Diskussion wird daher gesagt, dass die Anwendungen so konfiguriert sind, dass sie diese Funktionalität ausführen. Im vorliegenden Beispiel speichert der Speicher 354 der Steuerung 140 eine Erfassungssteuerungs-Anwendung 368 (hier auch als Anwendung 368 bezeichnet).
-
Die Steuerung 140 wird durch die Ausführung der Anwendung 368 durch den Prozessor 350 so konfiguriert, dass sie Objekterkennungssignale vom Bewegungssensor 144 empfängt und als Reaktion darauf die Kameras 116 steuert, um Bilder zu erfassen und die Bilder an den Server 112 zur Speicherung im Speicher 324 und zur Erzeugung einer Punktwolke zu übertragen.
-
Die Anwendung 368 kann, in anderen Beispielen, als eine Vielzahl logisch verschiedener Anwendungen implementiert werden. In anderen Beispielen ist der Prozessor 350, wie er durch die Ausführung der Anwendung 368 konfiguriert wird, als ein oder mehrere spezifisch konfigurierte Hardware-Elemente implementiert, wie z.B. FPGAs (Field-Programmable Gate Arrays) und/oder anwendungsspezifische integrierte Schaltungen (ASICs).
-
Um nun zu 4 zu kommen, wird ein Verfahren 400 zur Datenerfassung zur Objektdimensionierung veranschaulicht. Das Verfahren 400 wird im Zusammenhang mit seiner Durchführung im System 100 beschrieben, wie oben im Zusammenhang mit 1, 2 und 3A-3B besprochen. Insbesondere veranschaulicht das Verfahren 400 die Aktionen, die von der Erfassungssteuerung 140 und vom Server 112 unternommen werden, um Bilder eines Pakets 104 innerhalb des Erfassungsvolumens 208 zu erfassen und eine Punktwolke zu erzeugen, die das Paket 104 repräsentiert, zur Übertragung an das Dimensionierungssystem 108.
-
Beginnend mit Block 405 wird die Steuerung 140 über die Ausführung der Anwendung 368 konfiguriert, um die Kameras 116 und den Bewegungssensor 144 zu initialisieren. Erfindungsgemäß ist die Steuerung 140 so konfiguriert, dass sie eine Aktivierung des Leistungsschalters 148 erkennt (z.B. über den ersten Teil 360 der Schnittstelle 358) und als Reaktion darauf Einschaltbefehle an den Bewegungssensor 144 (z.B. über den zweiten Teil 362 der Schnittstelle 358) und jede der Kameras 116 (z.B. über den dritten Teil 364 der Schnittstelle 358) überträgt.
-
Bei Block 410 ist der Server 112 so konfiguriert, dass er die Ausführung der Überwachungsanwendung 316 und der Punktwolkengenerator-Anwendung 320 initiiert. Die Initiierung der Ausführung der Punktwolkengenerator-Anwendung 320 kann das Laden von Kalibrierungsdaten, die mit den Kameras 116 korrespondieren, beinhalten. Die Kalibrierungsdaten definieren die physikalischen Positionen und Ausrichtungen (z.B. Nicken, Rollen und Gieren) der Kameras 116 relativ zu einem vordefinierten Bezugsrahmen (z.B. ein Koordinatensystem, das das Erfassungsvolumen 208 repräsentiert).
-
Der Server 112 kann auch in Block 410 konfiguriert werden, zusammen mit der Initiierung der Ausführung der Anwendung 320, um den gemeinsamen Speicher 324 zu initialisieren. Genauer gesagt kann der Server 112 so konfiguriert werden, dass er den Speicher 324 mit einem initialen Satz von Bildern füllt, die das Erfassungsvolumen 208 repräsentieren. Der initiale Satz von Bildern kann das Erfassungsvolumen 208 repräsentieren, wenn kein Paket 104 vorhanden ist. Zur Initialisierung des Speichers 324 können verschiedene Mechanismen implementiert werden. Zum Beispiel kann ein statischer Satz von initialen Bildern im Speicher 304 gespeichert werden, und bei Block 410 kann der Server 112 so konfiguriert werden (z.B. durch Ausführen der Anwendung 320), dass er den Inhalt des Speichers 324 löscht und eine Kopie des Satzes von initialen Bildern in den Speicher schreibt. In einem anderen Beispiel kann die Steuerung 140 so konfiguriert werden, dass sie bei Erkennung einer Aktivierung des Leistungsschalters 148 nicht nur einen Einschaltbefehl an die Kameras 116 sendet, sondern auch einen Verschlussbefehl an die Kameras 116 sendet, wodurch die Kameras veranlasst werden, einen initialen Satz von Bildern zu erfassen und den initialen Satz von Bildern an den Server 112 zur Speicherung im Speicher 324 zu übertragen.
-
Wenn der Speicher 324 bei Block 410 initialisiert wird, kann der Server 112 auch so konfiguriert werden, dass er eine initiale Punktwolke auf der Grundlage des im Speicher 324 festgelegten initialen Bildsatzes erzeugt. Die Erzeugung einer Punktwolke aus einem Satz zweidimensionaler Bilder erfolgt gemäß jedem geeigneten konventionellen Mechanismus und wird hier nicht im Detail besprochen. Die erzeugte initiale Punktwolke wird im Speicher 304 gespeichert (z.B. im Archiv 324). Die Initialisierung des Speichers 324 und die Erzeugung einer initialen Punktwolke, wie oben beschrieben, kann die Erzeugung von Punktwolkendaten, die die Pakete 104 repräsentieren, später bei der Durchführung des Verfahrens 400 beschleunigen. Beispielsweise kann die Anwendung 320 so konfiguriert werden, dass sie nachfolgende Punktwolkendaten erzeugt, indem Teile nachfolgender Bildsätze, die mit der initialen Punktwolke übereinstimmen, erkannt und entsprechende Teile der initialen Punktwolke wiederverwendet werden. In anderen Ausführungsformen kann auf die Initialisierung des Speichers 324 und die Erzeugung einer initialen Punktwolke am Block 410 verzichtet werden.
-
In Block 415 wird nach der Initialisierung der Kameras 116 und des Bewegungssensors 144 die Steuerung 140 konfiguriert, um zu bestimmen, ob vom Bewegungssensor 144 ein Objekterkennungssignal empfangen wurde, das die Anwesenheit eines Objekts (z.B. des Pakets 104) an einer Erfassungsposition innerhalb eines Erfassungsvolumens anzeigt. Kurz auf 2 verweisend, wird ein solches Erkennungssignal vom Bewegungssensor 144 erzeugt, wenn das Paket 104 den vom Bewegungssensor 144 ausgesandten Lichtstrahl (z.B. Laser, IR o.ä.) unterbricht.
-
Wenn die Bestimmung an Block 415 negativ ist, wird die Steuerung 140 so konfiguriert, dass sie die Durchführung von Block 415 wiederholt. Wenn die Bestimmung bei Block 415 jedoch positiv ist, wird die Steuerung 140 so konfiguriert, dass sie mit Block 420 fortfährt. Bei Block 420 ist die Steuerung 140 so konfiguriert, dass sie einen Verschlussbefehl erzeugt und den Verschlussbefehl an jede Kamera 116 überträgt. Genauer gesagt wird der Verschlussbefehl im Wesentlichen gleichzeitig auf jedes Steuersegment 132 angewendet, das mit dem dritten Teil 364 der Schnittstelle 358 verbunden ist, so dass die Kameras 116 den Verschlussbefehl im Wesentlichen zur gleichen Zeit empfangen. Beispielsweise können die Kameras 116 den Verschlussbefehl innerhalb einer Gesamtzeitspanne von etwa 0,2 Sekunden empfangen, wie bereits erwähnt. Die Zeitspanne, über die jede Kamera 116 den Verschlussbefehl empfängt, kann teilweise auf der Grundlage der Geschwindigkeit ausgewählt werden, mit der sich das Objekt 104 durch das Erfassungsvolumen bewegt (z.B. auf dem Förderband 212). Wie den Fachleuten klar sein wird, kann es bei größeren Bewegungsgeschwindigkeiten des Pakets 104 erforderlich sein, dass der Verschlussbefehl an allen Kameras 116 innerhalb eines kürzeren Zeitraums empfangen wird. Die hier genannten Beispielzeiträume entsprechen Paketbewegungsgeschwindigkeiten von bis zu etwa 8 mph (Meilen pro Stunde).
-
Die Art des Verschlussbefehls hängt von den Fähigkeiten der Kameras 116 ab. Beispielsweise kann der Anschluss 126 jeder Kamera sowohl Verschlusssteuerkontakte als auch Autofokuskontakte, Blitzaktivierungskontakte und ähnliches enthalten. Die Steuersegmente 132 enthalten Leitungen, die mit den oben genannten Kontakten korrespondieren, und der Verschlussbefehl kann daher ein Signal enthalten, das an eine oder mehrere der Leitungen angelegt wird (z.B. eine hohe Spannung, um die Aktivierung eines Verschlusses, Blitzes oder ähnliches anzuzeigen, oder eine niedrige Spannung, um die Nichtaktivierung anzuzeigen). Im vorliegenden Beispiel enthält der Verschlussbefehl ein Verschlussaktivierungssignal und ein Autofokusaktivierungssignal, wodurch jede Kamera 116 angewiesen wird, gleichzeitig den Autofokus und den Verschluss auszulösen.
-
Nach Erzeugung und Übertragung des Verschlussbefehls ist die Steuerung 140 so konfiguriert, dass sie zum Block 415 zurückkehrt und weitere Objekterkennungssignale überwacht. Wie dem Fachmann jetzt klar sein wird, kann bei einigen Konfigurationen des Bewegungssensors 144 ein bestimmtes Paket 104 die Erzeugung von mehr als einem Erkennungssignal durch den Bewegungssensor 144 verursachen. Die Steuerung 140 kann daher so konfiguriert werden, dass die Überwachung bei Block 415 nach einer Durchführung von Block 420 nach einer vordefinierten Zeitspanne wieder aufgenommen wird, damit das Paket 104 den Erfassungsbereich des Bewegungssensors 144 freigeben kann. Bei einem Erfassungsvolumen 208 mit einer Länge von etwa 8 Fuß, wie oben erwähnt, und einem Förderband 212, das so konfiguriert ist, dass es Objekte mit einer Geschwindigkeit von etwa 8 mph durch das Erfassungsvolumen 208 transportiert, kann die Steuerung 140 so konfiguriert werden, dass sie alle vom Bewegungssensor empfangenen Erkennungssignale innerhalb von etwa 0,3 Sekunden nach einer Durchführung von Block 420 ignoriert.
-
Als Reaktion auf die Durchführung des Blocks 420 durch die Steuerung 140 wird jede Kamera 116 beim Empfang des Verschlussbefehls so konfiguriert, dass sie den Verschlussbefehl ausführt (z.B. durch Aktivieren des Autofokus und des Verschlusses, wie oben erwähnt), um ein Bild zu erfassen. Jede Kamera 116 ist ferner so konfiguriert, dass sie das erfasste Bild automatisch über das entsprechende Kamerasegment 124 und das Übertragungssegment 128 an den Server 112 überträgt. Im vorliegenden Beispiel ist der Server 112 damit so konfiguriert, dass er einen synchronen Satz von Bildern zur Speicherung im Speicher 324 über den Kommunikationshub 136 empfängt.
-
Im vorliegenden Beispiel ist jede Kamera 116 auch so konfiguriert, dass sie allen erfassten Bildern einen statischen Dateinamen zuweist, der spezifisch für diese Kamera 116 ist. Das heißt, jeder Satz von synchronen Bildern, die von den Kameras erfasst werden, trägt denselben Satz von Dateinamen. Somit überschreibt die Übertragung der erfassten Bilder in jedem synchronen Bildsatz im Speicher 324 den vorherigen Satz von Bildern, der im Speicher 324 gespeichert ist. Das Überschreiben der Dateien im Speicher 324 anstelle des Schreibens neuer Dateien in den Speicher 324 kann die Nachbearbeitung der Bilder beschleunigen, z.B. indem es dem Punktwolkengenerator erlaubt, eine statische Liste der zu verarbeitenden Dateinamen zu führen, anstatt vor der Verarbeitung jedes Satzes von Bildern einen Entdeckungsprozess durchzuführen.
-
Um kurz auf 5 zurückzukommen, wird ein synchroner Satz von Bildern 500-1, 500-2, ..., 500-16 (d.h. ein Bild pro Kamera 116) gezeigt, die an den Speicher 324 übertragen werden, als Reaktion auf den erzeugten und bei Block 420 gesendeten Verschlussbefehl. Wie aus 5 ersichtlich, stellen die Bilder 500 das Paket 104 aus einer Vielzahl von Perspektiven dar, die durch die Positionen und Ausrichtungen bestimmt werden, in denen die Kameras 116 von der Tragstruktur 204 getragen werden.
-
Zurück zu
4, bei Block 425 wird nach der Initialisierung, die oben im Zusammenhang mit Block 410 diskutiert wurde, der Server 112 konfiguriert, um zu bestimmen, ob der Inhalt des Speichers 324 aktualisiert wurde. Wie in
1 zu sehen ist, erreicht der Verschlussbefehl den Server 112 nicht direkt, und der Server 112 ist daher so konfiguriert, dass er erkennt, dass Bilder indirekt erfasst wurden. Insbesondere die Überwachungsanwendung 316 ist so konfiguriert, dass sie bestimmt, ob der Speicher 324 aktualisiert wurde. Im vorliegenden Beispiel, in dem jede Kamera 116 so konfiguriert ist, dass sie den erfassten Bildern einen statischen Dateinamen zuweist, ist die Überwachungsanwendung 316 so konfiguriert, dass sie bestimmt, ob der Speicher 324 aktualisiert wurde, indem Zeitstempel, die mit den im Speicher 324 gespeicherten Dateien verknüpft sind, überprüft werden. Tabelle 1 zeigt zum Beispiel eine Auflistung des Inhalts des Speichers 324 vor einer Durchführung von Block 420 (z.B. nach der Initialisierung des Speichers 324), während Tabelle 2 eine Auflistung des Inhalts des Speichers 324 nach der Durchführung von Block 420 zeigt. Tabelle 1: Initialer Inhalt von Speicher 324
Name der Datei | Datum/Uhrzeit geändert |
IMG_Kamera_ 1 .jpg | 5/1/2018 10:01:15.9 AM |
IMG_Kamera_2.jpg | 5/1/2018 10:01:15.9 AM |
... | ... |
IMG_Kamera_15.jpg | 5/1/2018 10:01:16.2 AM |
IMG_Kamera_16.jpg | 5/1/2018 10:01:16.2 AM |
Tabelle 2: Aktualisierter Inhalt von Speicher 324
Name der Datei | Datum/Uhrzeit geändert |
IMG_Kamera_1.jpg | 5/1/2018 10:01:16.7 AM |
IMG_Kamera_2.jpg | 5/1/2018 10:01:16.7 AM |
... | ... |
IMG_Kamera_15.jpg | 5/1/2018 10:01:16.9 AM |
IMG_Kamera_16.jpg | 5/1/2018 10:01:16.2 AM |
-
Wie oben gesehen, enthält der Speicher 324 in beiden Fällen Bilder mit den gleichen Dateinamen. In Tabelle 2 tragen jedoch alle Bilder bis auf eines („IMG_Kamera_16.jpg“) einen anderen Zeitstempel als in Tabelle 1. Die aktualisierten Zeitstempel zeigen an, dass diese Bilder nach einer Durchführung des Blocks 420 durch die Steuerung 140 überschrieben wurden (was zu Bildaufnahmen durch jede Kamera 116 und zur Übertragung der Bilder an den Speicher 324 führt). Bei Block 425 ist die Überwachungsanwendung 316 so konfiguriert, dass sie nur dann eine positive Entscheidung trifft, wenn jedes Bild überschrieben wurde (d.h. wenn ein vollständiger neuer synchroner Satz von Bildern empfangen wurde). In dem durch die Tabellen 1 und 2 dargestellten Beispiel ist also die Bestimmung an Block 425 negativ, bis das endgültige Bild empfangen wird, was zu einer Aktualisierung des Zeitstempels für das Bild „IMG_Camera_16.jpg“ führt. In anderen Ausführungsformen ist die Überwachungsanwendung 316 so konfiguriert, dass sie eine bestätigende Bestimmung vornimmt, wenn eines der Bilder im Speicher 324 aktualisiert wird.
-
In weiteren Ausführungsformen braucht sich die Bestimmung in Block 425 nicht auf die Erkennung von Zeitstempelaktualisierungen stützen. Beispielsweise ist in Ausführungsformen, in denen die Bilder nicht mit statischen Dateinamen in den Speicher 324 geschrieben werden, die Überwachungsanwendung 316 so konfiguriert, dass sie bei Erkennung neuer Dateinamen im Speicher (z.B. mindestens eine neue Datei, eine vorbestimmte Anzahl neuer Dateien oder ähnliches) eine positive Bestimmung vornimmt. In weiteren Ausführungsformen ist der Server 112 so konfiguriert, dass er andere geeignete Metadaten in Verbindung mit den erfassten Bildern untersucht, um Aktualisierungen des Speichers 324 zu erkennen. Zum Beispiel kann der Server 112 so konfiguriert werden, dass er Änderungen der Dateigrößen bei Block 425 erkennt.
-
Wenn die Bestimmung in Block 425 negativ ist, überwacht die Überwachungsanwendung 316 weiterhin den Speicher 324 auf Aktualisierungen. Wenn die Bestimmung in Block 425 positiv ist, geht die Durchführung des Verfahrens 400 zu Block 430 über. Bei Block 430 ist die Überwachungsanwendung 316 so konfiguriert, dass sie einen Befehl an die Punktwolkengenerator-Anwendung 320 generiert, um die Erzeugung von Punktwolkendaten auf der Grundlage des bei Block 425 erkannten Bildsatzes einzuleiten. Die Erzeugung von Punktwolkendaten erfolgt, wie bereits erwähnt, über einen geeigneten Punktwolkenerzeugungsmechanismus und wird hier nicht im Detail besprochen. Im Allgemeinen umfasst die Erzeugung von Punktwolkendaten in Block 435 die Erzeugung einer Vielzahl von Voxeln, die jeweils Farbdaten (z.B. Rot-, Grün- und Blauwerte oder Werte, die einem anderen geeigneten Farbmodell entsprechen) und Positionsdaten in drei Dimensionen enthalten. Die Positions- und Farbdaten für die Voxel werden aus den Bildern im synchronen Satz auf der Grundlage der oben erwähnten Kalibrierungsdaten abgeleitet. Die Kalibrierungsdaten werden verwendet, um die Positionen innerhalb des Erfassungsvolumens 208 zu bestimmen, die von jedem Pixel jedes Bildes repräsentiert werden. Mit anderen Worten, es können dreidimensionale Positionen für jedes Pixel in den Bildern erzeugt werden. Jede eindeutige dreidimensionale Position kann in einem Voxel gespeichert werden, und Farbdaten können dem Voxel auf der Grundlage der Farbdaten von einem oder mehreren Pixeln, die der dreidimensionalen Position entsprechen, zugewiesen werden.
-
Die im Block 435 erzeugten Punktwolkendaten werden im Speicher 304 abgelegt. Beispielsweise können die Punktwolkendaten im Speicher 324 oder in einem separaten, im Speicher 304 definierten Speicher gespeichert werden. In Beispielen, in denen eine initiale Punktwolke erzeugt wird, werden die in Block 435 erzeugten Punktwolkendaten getrennt von der initialen Punktwolke gespeichert. Spätere Durchführungen des Blocks 435 können jedoch dazu führen, dass Punktwolkendaten aus früheren Durchführungen des Blocks 435 überschrieben werden.
-
In Block 440 werden die in Block 435 erzeugten Punktwolkendaten verwendet, um Dimensionen für das Paket 104 zu erhalten. Im vorliegenden Beispiel ist der Server 112 so konfiguriert, dass er die Punktwolkendaten über das Netzwerk 110 an das Dimensionierungssystem 108 überträgt, und das Dimensionierungssystem 108 ist so konfiguriert, dass es die Darstellung des Pakets 104 in den Punktwolkendaten erkennt und die Dimensionen für das Paket 104 bestimmt. In anderen Beispielen ist die gesamte oder ein Teil der Funktionalität des Dimensionierungssystem 108 im Server 112 implementiert. Beispielsweise kann der Server 112 eine Dimensionierungsanwendung (nicht gezeigt) enthalten, die so konfiguriert ist, dass sie Kanten oder andere Merkmale in den Punktwolkendaten erkennt und die Dimensionen solcher Merkmale berechnet. Die aus den Punktwolkendaten erhaltenen Dimensionen können an den Server 112 zurückgegeben werden, auf einem mit dem Server 112 oder dem Dimensionierungssystem 108 gekoppelten Display oder ähnlichem dargestellt werden. Die Dimensionen können auch an ein weiteres Rechengerät übertragen werden, z.B. zur Bestimmung von Transport- oder Lagerkosten, zur räumlichen Optimierungsverarbeitung oder ähnlichem.
-
Nach der Durchführung von Block 440 wird der Server 112 so konfiguriert, dass er zu Block 425 zurückkehrt, an dem die Überwachungsanwendung 316 weiterhin den Inhalt des Speichers 324 auf weitere Aktualisierungen überwacht.
-
Variationen zu den oben genannten Systemen und Verfahren werden in Betracht gezogen. Beispielsweise können in einigen Ausführungsformen die Doppelverbinder 120 weggelassen werden. In solchen Ausführungsformen können Verbindungen zwischen den Kameras 116 und dem Server 112 entsprechend einer geeigneten drahtgebundenen (z.B. USB, Thunderbolt™) oder drahtlosen (z.B. Bluetooth™, Wi-Fi) Verbindung implementiert werden. Verbindungen zwischen den Kameras 116 und der Steuerung 140 können über eine andere geeignete drahtgebundene oder drahtlose Verbindung hergestellt werden.
-
In einigen Ausführungsformen ist die Steuerung 140 als zwei oder mehrere physikalische Geräte implementiert, z.B. wenn die Schnittstelle 358 eines einzelnen Geräts nicht genügend Kontakte enthält, um Verbindungen mit allen Kameras 116 sowie dem Leistungsschalter 148 und dem Bewegungssensor 144 herzustellen. In solchen Ausführungsformen kann jedes Segment 132 in zwei oder mehrere Segmente aufgeteilt werden, wobei bestimmte Steuerleitungen (z.B. Verschluss und Autofokus) mit einer ersten Steuerung 140 und andere Steuerleitungen (z.B. Leistungsschalter für die Kameras 116) mit einer zweiten Steuerung 140 verbunden werden. Die Steuerungen 140 stehen in solchen Ausführungsformen miteinander in Kommunikation, z.B. über eine drahtgebundene (z.B. Ethernet) oder drahtlose (z.B. Wi-Fi, Bluetooth™) Verbindung.
-
In weiteren Ausführungsformen umfasst das System 100 einen oder mehrere Projektoren, die so angeordnet sind, dass sie das Erfassungsvolumen 208 beleuchten, beispielsweise mit strukturiertem Licht, das von den Kameras 116 erfasst werden kann. Wie in 6 dargestellt, kann das System 100 beispielsweise einen ersten Projektor 600-1 und einen zweiten Projektor 600-2 umfassen, die von der Tragstruktur 204 getragen werden, um das Erfassungsvolumen 208 zu beleuchten.
-
In der vorstehenden Beschreibung wurden spezifische Ausführungsformen beschrieben. Ein Durchschnittsfachmann erkennt jedoch, dass verschiedene Modifikationen und Änderungen vorgenommen werden können, ohne den Schutzumfang der Erfindung, wie sie in den untenstehenden Ansprüchen definiert ist, abzuweichen. Dementsprechend sind die Beschreibung und die Figuren vielmehr in einem illustrativen als in einem einschränkenden Sinne zu betrachten, und alle derartigen Modifikationen sollen im Umfang der vorliegenden Lehren eingeschlossen sein.
-
Die Nutzen, Vorteile, Lösungen für Probleme und alle Elemente, die zum Auftreten oder einer Verstärkung eines Nutzens, eines Vorteils, oder einer Lösung führen können, sind nicht als kritische, erforderliche oder wesentliche Merkmale oder Elemente in einigen oder sämtlichen Ansprüchen zu verstehen. Die Erfindung ist lediglich durch die angehängten Ansprüche definiert, einschließlich jeglicher Änderungen, die während der Anhängigkeit dieser Anmeldung vorgenommen wurden und aller Äquivalente der erteilten Ansprüche.
-
Darüber hinaus können in diesem Dokument relationale Begriffe wie erster und zweiter, oberer und unterer und dergleichen lediglich verwendet sein, um eine Entität oder Aktion von einer anderen Entität oder Aktion zu unterscheiden, ohne notwendigerweise eine tatsächliche derartige Beziehung oder Reihenfolge zwischen solchen Entitäten oder Aktionen zu erfordern oder zu implizieren. Die Ausdrücke „umfasst“, „umfassend“, „hat“, „haben“, „aufweist“, „aufweisend“, „enthält“, „enthaltend“ oder jede andere Variation davon sollen eine nicht-ausschließliche Einbeziehung abdecken, derart, dass ein Prozess, Verfahren, Produkt oder Vorrichtung, das eine Liste von Elementen umfasst, hat, aufweist, enthält, nicht nur diese Elemente aufweist, sondern auch andere Elemente aufweisen kann, die nicht ausdrücklich aufgelistet sind oder einem solchen Prozess, Verfahren, Produkt oder Vorrichtung inhärent sind. Ein Element, dem „umfasst ... ein“, „hat ... ein“, „aufweist ... ein“ oder „enthält ...ein“ vorausgeht, schließt ohne weitere Einschränkungen die Existenz zusätzlicher identischer Elemente in dem Prozess, dem Verfahren, dem Produkt oder der Vorrichtung, die das Element umfasst, hat, aufweist oder enthält, nicht aus. Die Begriffe „ein“ und „eine“ sind als eine oder mehrere definiert, sofern es hierin nicht ausdrücklich anders angegeben wird. Die Begriffe „im Wesentlichen“, „im Allgemeinen“, „ungefähr“, „etwa“ oder jede andere Version davon sind so definiert, dass sie von einem Fachmann auf diesem Gebiet nahekommend verstanden werden, und in einer nicht-einschränkenden Ausführungsform ist der Ausdruck definiert als innerhalb von 10%, in einer weiteren Ausführungsform als innerhalb von 5%, in einer weiteren Ausführungsform als innerhalb von 1% und in einer weiteren Ausführungsform als innerhalb von 0,5%. Der Ausdruck „gekoppelt“, wie er hierin verwendet wird, ist als verbunden definiert, jedoch nicht notwendigerweise direkt und nicht notwendigerweise mechanisch. Eine Vorrichtung oder eine Struktur, die auf eine bestimmte Art „ausgeführt“ ist, ist zumindest auch so ausgeführt, kann aber auch auf Arten ausgeführt sein, die nicht aufgeführt sind.
-
Es versteht sich, dass einige Ausführungsformen von einem oder mehreren generischen oder spezialisierten Prozessoren (oder „Verarbeitungsgeräten“) wie Mikroprozessoren, digitale Signalprozessoren, kundenspezifische Prozessoren und Field-Programmable-Gate-Arrays (FPGAs) und einmalig gespeicherten Programmanweisungen (einschließlich sowohl Software als auch Firmware) umfasst sein können, die den einen oder die mehreren Prozessoren steuern, um in Verbindung mit bestimmten Nicht-Prozessorschaltungen einige, die meisten oder alle der hierin beschriebenen Funktionen des Verfahrens und/oder der Vorrichtung zu implementieren. Alternativ können einige oder alle Funktionen durch eine Zustandsmaschine implementiert sein, die keine gespeicherten Programmanweisungen aufweist, oder in einer oder mehreren anwendungsspezifischen integrierten Schaltungen (ASICs), in denen jede Funktion oder einige Kombinationen von bestimmten Funktionen als benutzerdefinierte Logik implementiert sind. Natürlich kann eine Kombination der beiden Ansätze verwendet werden.
-
Darüber hinaus kann eine Ausführungsform als ein computerlesbares Speichermedium implementiert sein, auf dem computerlesbarer Code gespeichert ist, um einen Computer (der zum Beispiel einen Prozessor umfasst) zu programmieren, um ein Verfahren auszuführen, wie es hierin beschrieben und beansprucht ist. Beispiele solcher computerlesbaren Speichermedien weisen eine Festplatte, eine CD-ROM, eine optische Speichervorrichtung, eine magnetische Speichervorrichtung, einen ROM (Nur-Lese-Speicher), einen PROM (programmierbarer Nur-Lese-Speicher), einen EPROM (löschbarer programmierbarer Nur-Lese-Speicher), einen EEPROM (elektrisch löschbarer programmierbarer Nur-Lese-Speicher) und einen Flash-Speicher auf, sind aber nicht hierauf beschränkt auf. Ferner wird davon ausgegangen, dass ein Durchschnittsfachmann, ungeachtet möglicher signifikanter Anstrengungen und vieler Designwahlen, die zum Beispiel durch verfügbare Zeit, aktuelle Technologie und wirtschaftliche Überlegungen motiviert sind, ohne Weiteres in der Lage ist, solche Softwareanweisungen und -programme und ICs mit minimalem Experimentieren zu generieren, wenn er durch die hierin offenbarten Konzepte und Prinzipien angeleitet wird.
-
Die Zusammenfassung der Offenbarung wird bereitgestellt, um es dem Leser zu ermöglichen, schnell das Wesen der technischen Offenbarung zu ermitteln. Sie wird mit dem Verständnis bereitgestellt, dass sie nicht zur Auslegung oder Einschränkung des Umfangs oder der Bedeutung der Ansprüche verwendet wird. Ferner kann der vorangehenden detaillierten Beschreibung entnommen werden, dass verschiedene Merkmale in verschiedenen Ausführungsformen zum Zwecke der Verschlankung der Offenbarung zusammengefasst sind. Diese Art der Offenbarung ist nicht so auszulegen, dass sie die Absicht widerspiegelt, dass die beanspruchten Ausführungsformen mehr Merkmale erfordern, als ausdrücklich in jedem Anspruch angegeben sind. Vielmehr ist es so, wie die folgenden Ansprüche zeigen, dass der erfinderische Gegenstand in weniger als allen Merkmalen einer einzigen offenbarten Ausführungsform liegt. Somit werden die folgenden Ansprüche hiermit in die detaillierte Beschreibung inkorporiert, wobei jeder Anspruch für sich als ein separat beanspruchter Gegenstand steht.