-
TECHNISCHES GEBIET
-
Diese Spezifikation bezieht sich auf das Testen von dreidimensionalen (3D) Bildgebungssystemen.
-
ALLGEMEINER STAND DER TECHNIK
-
Es gibt zurzeit keinen Industriestandard für das Benchmarking der Leistung von 3D-Bildgebungssystemen. Unterschiedliche 3D-Bildgebungssysteme können verbesserte Leistung bei verschiedenen Charakteristiken bereitstellen. 3D-Bildgebungssysteme werden typischerweise auf Basis von drei Metriken beurteilt: Rauschen und Einheitlichkeit, Schärfe und Frequenzgang sowie Bewegungsartefakte.
-
KURZDARSTELLUNG DER OFFENBARUNG
-
Tiefen-Bildgebungssysteme, Bereich-Bildgebungssysteme oder 3D-Bildgebungssysteme produzieren 2D-Bilder, die den Abstand zu Punkten in einem Bild von einem spezifischen Punkt aus zeigen. Der Punkt ist typischerweise mit einem Tiefensensor oder einer Kamera des Bildgebungssystems verbunden. Die resultierenden Bilder haben Pixelwerte, die dem Abstand entsprechen. Wenn ein Sensor des Systems richtig kalibriert ist, können die Pixelwerte direkt in physikalischen Einheiten, wie z. B. Meter, angegeben werden.
-
Gemäß einer allgemeinen Implementierung können 3D-Bildgebungssysteme mithilfe einer Kalibrierungseinrichtung und einer Kalibrierungslogik getestet und beurteilt werden. Die Kalibrierungseinrichtung kann verschiedene Kalibrierungsziele beinhalten, um es einem Benutzer zu ermöglichen, verschiedene Charakteristiken eines spezifischen 3D-Bildgebungssystems zu messen.
-
Die Kalibrierungslogik kann durch einen Messprozessor implementiert werden, der die Logik auf nachfolgende Messungen anwendet, die durch das 3D-Bildgebungssystem erfolgen, um verarbeitete Messungen auszugeben. Die verarbeiteten Messungen können Korrekturen für bestimmte Eigenschaften des 3D-Bildgebungssystems auf Basis der früher durchgeführten Messungen beinhalten.
-
In einem allgemeinen System beinhaltet ein System (für das Testen eines 3D-Bildgebungssystems mit einer dreidimensionalen Kamera) eine Halterung für eine dreidimensionale Kamera, eine Halterung für ein Kalibrierungsziel und eine Schiene, mit der die Halterung für das Kalibrierungsziel gekoppelt ist. Die Bewegung der Halterung für das Kalibrierungsziel ist auf die Richtung beschränkt, die sich entlang der Schiene erstreckt. Das System beinhaltet ein Verarbeitungsgerät mit einer Logik, das eine Ablesung von einer spezifischen dreidimensionalen Kamera empfängt, die mit der Halterung für die dreidimensionale Kamera gekoppelt ist. Die Ablesung beinhaltet einen Abstand von der dreidimensionalen Kamera zu einem spezifischen Kalibrierungsziel, das mit der Halterung für das Kalibrierungsziel gekoppelt ist. Die Logik empfängt eine Messung eines tatsächlichen Abstands von der spezifischen dreidimensionalen Kamera zu dem spezifischen Kalibrierungsziel. Die Logik stellt Messcharakteristiken der spezifischen dreidimensionalen Kamera bereit.
-
Implementierungen können zudem ein oder mehrere der folgenden Merkmale beinhalten. Beispielsweise kann das Verarbeitungsgerät ferner eine Logik aufweisen, die konfiguriert ist, eine Ablesung vom bestimmten Kalibrierungsziel zu empfangen, wie z. B. das Empfangen einer Abstandsablesung von der spezifischen dreidimensionalen Kamera zum spezifischen Kalibrierungsziel von einem Laser-Entfernungsmesser. Die Messcharakteristiken können Wertungen sein, die eine spezifische Charakteristik der spezifischen dreidimensionalen Kamera quantifizieren. Die spezifischen Charakteristiken der spezifischen dreidimensionalen Kamera können Abstandsfehler beinhalten. Die spezifischen Charakteristiken der spezifischen dreidimensionalen Kamera können Schärfe oder Frequenzgang beinhalten. Die spezifischen Charakteristiken der spezifischen dreidimensionalen Kamera können Bewegungsartefakte beinhalten. Die Messcharakteristiken können Transformationen sein, die eine Transformation einer nachfolgenden Ablesung von der spezifischen dreidimensionalen Kamera erzeugen. Das Kalibrierungsziel kann eine einheitlich flache Fläche sein. Das Kalibrierungsziel kann geneigte, abgestufte Ziele beinhalten. Das Kalibrierungsziel kann einen rotierenden Propeller beinhalten.
-
In einem allgemeinen Aspekt beinhaltet ein Verfahren, das durch einen oder mehrere Computer durchgeführt wird, das Empfangen einer Ablesung von einer spezifischen dreidimensionalen Kamera, die mit der Halterung für die dreidimensionale Kamera gekoppelt ist. Die Ablesung beinhaltet einen Abstand von der dreidimensionalen Kamera zu einem spezifischen Kalibrierungsziel, das mit der Halterung für das Kalibrierungsziel gekoppelt ist. Das Verfahren beinhaltet das Empfangen einer Messung eines tatsächlichen Abstands von der spezifischen dreidimensionalen Kamera zu dem spezifischen Kalibrierungsziel. Das Verfahren beinhaltet ferner das Bereitstellen von Messcharakteristiken der spezifischen dreidimensionalen Kamera.
-
Implementierungen können zudem ein oder mehrere der folgenden Merkmale beinhalten. Das Verfahren kann zum Beispiel ferner das Empfangen einer Ablesung von dem spezifischen Kalibrierungsziel beinhalten. Die Messcharakteristiken können Wertungen sein, die eine spezifische Charakteristik der spezifischen dreidimensionalen Kamera quantifizieren. Die Messcharakteristiken können Transformationen sein, die eine Transformation einer nachfolgenden Ablesung von der spezifischen dreidimensionalen Kamera erzeugen. Die Transformationscharakteristiken können zum Beispiel eine Funktion sein, die auf Messungen angewandt wird, die durch die spezifische dreidimensionale Kamera durchgeführt werden, um kalibrierte Ergebnisse zu produzieren. Die Funktion kann Unregelmäßigkeiten von idealen Messungen korrigieren.
-
In einem anderen allgemeinen Aspekt ist mindestens ein computerlesbares Speichermedium mit ausführbaren Anweisungen kodiert, die, wenn sie von mindestens einem Prozessor ausgeführt werden, den mindestens einen Prozessor veranlassen, Operationen zum Empfangen einer Ablesung von einer spezifischen Kamera, die mit der Halterung für die dreidimensionale Kamera gekoppelt ist, auszuführen. Die Ablesung beinhaltet einen Abstand von der dreidimensionalen Kamera zu einem spezifischen Kalibrierungsziel, das mit der Halterung für das Kalibrierungsziel gekoppelt ist. Die Operationen beinhalten das Empfangen einer Messung eines tatsächlichen Abstands von der spezifischen dreidimensionalen Kamera zu dem spezifischen Kalibrierungsziel. Die Operationen beinhalten ferner das Bereitstellen von Messcharakteristiken der spezifischen dreidimensionalen Kamera.
-
Implementierungen können zudem ein oder mehrere der folgenden Merkmale beinhalten. Die Operationen können zum Beispiel ferner das Empfangen einer Ablesung von dem spezifischen Kalibrierungsziel beinhalten. Die Messcharakteristiken können Wertungen sein, die eine spezifische Charakteristik der spezifischen dreidimensionalen Kamera quantifizieren. Die Messcharakteristiken können Transformationen sein, die eine Transformation einer nachfolgenden Ablesung von der spezifischen dreidimensionalen Kamera erzeugen. Die Operationen können ferner das Vergleichen der Ablesung von der spezifischen dreidimensionalen Kamera mit einer idealen Messung und das Ermitteln, auf Basis des Vergleichens, der Messcharakteristiken der spezifischen dreidimensionalen Kamera beinhalten. Die Operationen können ferner das Ermitteln, auf Basis der Messcharakteristiken der spezifischen dreidimensionalen Kamera, einer Transformation und das Anwenden der Transformation auf nachfolgende Ablesungen von der dreidimensionalen Kamera beinhalten.
-
Implementierungen können beinhalten, dass das dreidimensionale System zweidimensionale Bilder mit Pixelwerten erfassen kann, die einen Abstand von der dreidimensionalen Kamera zu einem spezifischen Punkt der erfassten Szene des Kalibrierungsziels angeben. Für das Bereitstellen der Messcharakteristiken der spezifischen dreidimensionalen Kamera können mehrere Messungen durchgeführt und ein Abstandsmittelwert und eine Varianz für jedes Pixel bestimmt werden.
-
Die Details einer oder mehrerer Implementierungen sind in den nachstehenden zugehörigen Zeichnungen und der Beschreibung dargelegt. Andere potenzielle Merkmale und Vorteile der Offenbarung werden aus der Beschreibung und den Zeichnungen sowie aus den Ansprüchen ersichtlich.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 veranschaulicht ein exemplarisches System für das Testen eines 3D-Bildgebungssystems.
-
2 veranschaulicht ein exemplarisches System für das Testen eines 3D-Bildgebungssystems durch Messen des Rauschens und der Einheitlichkeit des Bildgebungssystems.
-
3 veranschaulicht ein exemplarisches System für das Testen eines 3D-Bildgebungssystems durch Messen der Schärfe und des Frequenzgangs des Bildgebungssystems.
-
4 veranschaulicht ein exemplarisches System für das Testen eines 3D-Bildgebungssystems durch Messen der Bewegungsartefakte des Bildgebungssystems.
-
5 zeigt ein Ablaufdiagramm, das einen exemplarischen Prozess veranschaulicht, der die Leistung eines 3D-Bildgebungssystems kennzeichnet.
-
In den unterschiedlichen Zeichnungen werden gleiche Bezugszeichen und Bezeichnungen für gleiche Elemente verwendet. Die hier gezeigten Komponenten, ihre Verbindungen und Beziehungen und ihre Funktionen sollen nur exemplarisch sein und die Implementierungen der in diesem Dokument beschriebenen und/oder beanspruchten Implementierungen in keiner Weise einschränken.
-
AUSFÜHRLICHE BESCHREIBUNG
-
1 veranschaulicht ein exemplarisches System für das Testen eines 3D-Bildgebungssystems. Kurz gesagt, beinhaltet, eine Testeinrichtung gemäß dem veranschaulichten Beispiel eine abnehmbare Halterung für ein 3D-Bildgebungssystem, ein 3D-Bildgebungssystem, ein Kalibrierungsziel, eine abnehmbare Halterung für ein Kalibrierungsziel, eine Schiene, mit der die Halterung für das 3D-Bildgebungssystem und die Halterung für das Kalibrierungsziel gekoppelt sind, einen Hostcomputer, der die Position des 3D-Bildgebungssystems und/oder Kalibrierungsziels steuert, und einen Messprozessor, der Logik für das Testen und Kalibrieren von 3D-Systemen bereitstellt. Das 3D-Bildgebungssystem und/oder das Kalibrierungsziel können entlang der Achse der Schiene neu positioniert werden. Die Einrichtung kann ein Strom- und/oder Datenkabel vom 3D-Bildgebungssystem zum Hostcomputer beinhalten. Die Einrichtung kann außerdem ein Strom- und/oder Datenkabel vom Kalibrierungsziel zur Halterung für das Kalibrierungsziel oder den Hostcomputer beinhalten.
-
Das 3D-Bildgebungssystem kann 2D-Bilder mit Pixelwerten aufnehmen, die den Abstand von einem spezifischen Punkt, der mit dem 3D-Bildgebungssystem verbunden ist, zu einem bestimmten Punkt der aufgenommenen Szene angibt. Der spezifische Punkt kann die Mitte des Sensors des 3D-Bildgebungssystems sein. Die Pixelwerte eines Bilds, das von einem spezifischen 3D-Bildgebungssystem aufgenommen wurde, können zum Beispiel einen Abstand von der Mitte des Sensors des 3D-Bildgebungssystems zu entsprechenden Punkten auf einer Stirnfläche eines Kalibrierungsziels mit unterschiedlichen Tiefen angeben.
-
Bei einem richtig kalibrierten 3D-Bildgebungssystem können die Pixelwerte in tatsächlichen Abstandseinheiten, wie z. B. Zoll, Zentimeter, Fuß, Meter und anderen Abstandseinheiten, angegeben werden. Die Pixelwerte eines Bilds, das von einem spezifischen 3D-Bildgebungssystem aufgenommen wurde, können zum Beispiel einen Abstand, in Zoll, von der Mitte des Sensors des 3D-Bildgebungssystems zu entsprechenden Punkten auf einer Stirnfläche eines Kalibrierungsziels mit unterschiedlichen Tiefen angeben.
-
Die Halterung des 3D-Bildgebungssystems kann zum Beispiel einen Entfernungsmesser zum Messen des tatsächlichen Zielabstands beinhalten. Der tatsächliche Zielabstand kann als idealer Wert verwendet werden, mit dem vom 3D-Bildgebungssystem durchgeführte Messungen verglichen werden.
-
Der Hostcomputer kann die Position des 3D-Bildgebungssystems und/oder des Kalibrierungssystems steuern, indem er die Halterung des 3D-Bildgebungssystems bzw. die Halterung des Kalibrierungsziels entlang der Achse der Schiene bewegt. Der Hostcomputer kann zum Beispiel die Position des 3D-Bildgebungssystems steuern, um Messungen desselben Kalibrierungsziels mit dem 3D-Bildgebungssystem in verschiedenen Abständen durchzuführen. In einigen Beispielen steuert der Hostcomputer die Position sowohl des 3D-Bildgebungssystems als auch des Kalibrierungsziels.
-
Genauer gesagt, das Variieren der Abstände, in denen Messungen durchgeführt werden, ermöglichen es dem Messprozessor, charakteristische Mittelwerte und Varianzen für jedes Pixel des Bilds zu ermitteln, das vom 3D-Bildgebungssystem aufgenommen wird. Verschiedene Kalibrierungsziele werden verwendet, um verschiedene Charakteristiken von 3D-Bildgebungssystemen zu messen.
-
Flache Kalibrierungsziele mit einer einheitlichen Tiefe ermöglichen es zum Beispiel einem Benutzer, Rauschen und Einheitlichkeit der Tiefenmessungen zu messen, die vom 3D-Bildgebungssystem bereitgestellt werden. Gekachelte, abgestufte Kalibrierungsziele mit deutlichen Rändern ermöglichen es einem Benutzer, mithilfe einer Tiefen-Kanten-Streufunktion Schärfe und Frequenzgang von Tiefenmessungen zu messen, die vom 3D-Bildgebungssystem bereitgestellt werden. Das Bewegen von Kalibrierungszielen mit bekannten Winkelgeschwindigkeiten ermöglicht es einem Benutzer, Bewegungsartefakte von Messungen zu messen, die vom 3D-Bildgebungssystem bereitgestellt werden.
-
Flache Ziele ermöglichen die Messung der Abstandsgenauigkeit und des Abstandsrauschens mit Varianz. Durch Variieren des Abstands des Kalibrierungsziels nehmen Messungen die Tiefeneinheitlichkeit eines spezifischen 3D-Bildgebungssystems auf. Die optische Achse eines idealen 3D-Bildgebungssystems ist rechtwinklig zu einer flachen Zielebene. In der Praxis kann ein 3D-Bildgebungssystem nie eine perfekte Ausrichtung haben. Korrekturen für Unregelmäßigkeiten von idealen Messungen können mithilfe einer Kalibrierungslogik durchgeführt werden, die vom Messprozessor angewandt wird. In einigen Beispielen kann der Messprozessor eine Ebene der am besten passenden kleinsten Quadrate an die Tiefenkartendaten anpassen, die von einem spezifischen 3D-Bildgebungssystem aufgenommen werden. Der Messprozessor kann dann die am besten passenden Ebenendaten von den Tiefenkartendaten anpassen. In einigen Beispielen wird die am besten passende Ebene von den Tiefenkartendaten subtrahiert, die aufgenommen werden, nachdem Korrekturen für bestimmte Charakteristiken des 3D-Bildgebungssystems, zum Beispiel eine Feldkrümmung, angewandt wurden. Die resultierenden Daten stellen den tatsächlichen Tiefenfehler über das gesamte Sensor-Array des 3D-Bildgebungssystems dar.
-
Tiefeneinheitlichkeitscharateristiken können ein Fixed Pattern Noise (FPN) oder eine vorübergehend konstante, laterale Nichteinheitlichkeit bei einem Bildgebungssystem beinhalten. FPN ist durch ein festes Muster von Pixeln mit hoher Intensität und geringer Intensität in Bildern, die unter denselben Bedingungen aufgenommen werden, gekennzeichnet.
-
Zu den Tiefeneinheitlichkeitscharakteristiken kann auch die Feldkrümmung zählen. Feldkrümmung kann durch eine Krümmung einer flachen Feldobjektnormalen zur optischen Achse, die gekrümmt erscheint, gekennzeichnet sein. Feldkrümmung in einem Tiefenbild kann sich zum Beispiel als Abstandsablesungen darstellen, die kleiner als der tatsächliche Abstand an den Kanten des Tiefenbilds sind: die Kanten eines flachen Ziels können so erscheinen, als ob sie in Richtung des 3D-Bildgebungssystems gekrümmt wären. Feldkrümmung kann ein Objekt auf konvexe oder konkave Art gekrümmt erscheinen lassen.
-
Es werden mehrere Messungen durchgeführt, um einen Abstandsmittelwert und eine Varianz für jedes Pixel zu ermitteln. Die Anzahl der durchgeführten Messungen kann auf Basis der Anzahl der Messungen ermittelt werden, die für eine angemessene Probengröße erforderlich sind. Ein spezifischer Test von 3D-Bildgebungssystemen kann zum Beispiel das Durchführen von 64, 128, 256, 512 usw. Messungen beinhalten. Die mehreren Messungen können durchgeführt werden, nachdem eine Korrektur für die Feldkrümmung erfolgt ist. Mehrere Messungen können zum Beispiel durchgeführt werden, nachdem die Feldkrümmung eines spezifischen 3D-Bildgebungssystem ermittelt und in der Kalbrierungslogik, die durch den Messprozessor auf die Messungen angewandt wird, die durch das 3D-Bildgebungssystem durchgeführt werden, berücksichtigt wurden.
-
Wenn das 3D-Bildgebungssystem zum Beispiel konsistent Tiefenablesungen bereitstellt, die mindestens 5 % zu niedrig außerhalb eines bestimmten Radius von der Fokusmitte des 3D-Sensors liegen, kann die Kalibrierungslogik die Tiefenablesungen außerhalb des Radius um 5 % erhöhen. In einigen Beispielen können die verarbeiteten Messungen konsistent Messungen mit vernachlässigbarer Abweichung von den idealen Messungen bereitstellen. In einigen Beispielen korrigieren die verarbeiteten Messungen nicht alle Aberrationen von idealen Messungen.
-
Der Abstandsfehler kann durch Ermitteln einer Differenz zwischen den mittleren gemessenen Abständen (dem Mittelwert mehrerer Beobachtungswerte) eines 3D-Bildgebungssystems von den tatsächlichen Zielabständen gemessen werden. Der Abstandsfehler eines spezifischen 3D-Bildgebungssystems kann durch Substrahieren der mittleren gemessenen Abstände des 3D-Bildgebungssystems von den tatsächlichen Zielabständen ermittelt werden. Diese Art von Abstandsfehler ist ein statischer Fehler und tritt bei jeder Messung auf.
-
Das Testen des 3D-Bildgebungssystems mit flachen Kalibrierungszielen kann das Messen des Abstandsfehlers eines 3D-Bildgebungssystems für verschiedene Umgebungslichtbedingungen beinhalten. Ein spezifisches 3D-Bildgebungssystem kann zum Beispiel eine begrenzte Abstandsgenauigkeit in hellen Beleuchtungssituationen aufweisen während Messungen, die vom 3D-Bildgebungssystem durchgeführt werden, bei Bedingungen mit mehr Umgebungslicht einen größeren Abstandsfehler aufweisen können. Diese Art von Abstandsfehler ist temporär und kann von den Bedingungen abhängen, unter denen die Messungen durchgeführt werden.
-
Temporäres Rauschen beinhaltet Fehler, die mit der Zeit variieren. Ein 3D-Bildgebungssystem kann zum Beispiel verwendet werden, um zehn Bilder eines flachen Ziels aufzunehmen. Für ein bestimmtes Pixel hat der Abstandsfehler eine statische Komponente und eine temporäre Komponente. Die statische Komponente umfasst Fixed Pattern Noise (FPN) oder Feldkrümmung (die korrigierbar ist) und hat denselben Wert für jedes der zehn aufgenommenen Bilder. Die temporäre Komponente ist die Komponente des Fehlers, die sich ändert – sie ist für jedes der zehn aufgenommenen Bilder verschieden.
-
Ideale Bedingungen für das Durchführen von Messungen mit einem 3D-Bildgebungssystem beinhalten das Durchführen von Messungen in totaler Dunkelheit. Der Effekt des Umgebungslichts spielt eine große Rolle bei der Menge des Rauschens: Typischerweise sind, je höher die Menge des Umgebungslichts, desto rauschbehafteter die Messungen.
-
Die Größe des verwendeten Kalibrierungsziels kann auf Basis des maximalen Sichtfelds (Field of Views, FOV) des 3D-Bildgebungssystems und des maximalen Abstands, der durch die 3D-Bildgebungstesteinrichtung getestet wird, ermittelt werden. Die maximale Abmessung eines Kalibrierungsziels für eine Einrichtung könnte zum Beispiel wie in Gleichung 1 unten dargestellt berechnet werden: Zielabmessung = 2·maximaler Abstand·tan(FOV°/2) (1)
-
In einigen Beispielen werden die Zielmessungen, die im minimalen Abstand durchgeführt werden, der durch die 3D-Bildgebungstesteinrichtung getestet wird, auf gesättigte Pixel geprüft. Gesättigte Pixel stellen einen Maximalwert für die gemessene Charakteristik dar. Ein gesättigtes Pixel kann zum Beispiel eine künstlich hohe Abstandsablesung, wie z. B. unendliche Meter, ergeben.
-
Geneigte, abgestufte Ziele mit scharfen Kanten ermöglichen die Messung der Schärfe und des Frequenzgangs sowie die Tiefen-Kanten-Streufunktion eines 3D-Bildgebungssystems. Die Ziele können in einer beliebigen Anzahl von Graden geneigt sein. Ein Kalibrierungsziel kann zum Beispiel ein Array von Quadratstufen beinhalten, die jeweils 5° um ihre Mitte geneigt sind. Die Breite und Tiefe jedes Ziels können so ausgewählt werden, dass sie für die Parameter der Einrichtung und des spezifischen, getesteten 3D-Bildgebungssystems geeignet sind.
-
Die Tiefen-Kanten-Streufunktion eines 3D-Bildgebungssystems kann durch grafisches Darstellen des erkannten Abstands gegenüber dem Abstand von der Mitte eines geneigten, abgestuften Ziels ermittelt werden. Eine grafische Darstellung mindestens der Pixel aus einem Bild, das durch ein 3D-Bildgebungssystem zwischen einer ersten Linie innerhalb einer Kante eines geneigten, abgestuften Ziels und einer zweite Linie außerhalb der Kante des geneigten, abgestuften Ziels aufgenommen wird, beinhaltet zum Beispiel die Tiefen-Streufunktion des spezifischen 3D-Bildgebungssystems, das das Bild aufgenommen hat.
-
Das Bewegen der Ziele ermöglicht die Messung von Bewegungsartefakten. Ein Kalibrierungsziel kann zum Beispiel einen rotierenden, flachen Propeller beinhalten, um räumliches Schmieren aufzunehmen, das aus der Bewegung in einer Szene resultiert, die durch ein 3D-Bildgebungssystem aufgenommen wurde. Die Breite und Länge des Propellers kann auf Basis der Parameter der Testeinrichtung und des getesteten 3D-Bildgebungssystems ermittelt werden. Die Winkelgeschwindigkeit des beweglichen Ziels kann aufgezeichnet und gegenüber Tiefendaten grafisch dargestellt werden, die durch ein 3D-Bildgebungssystem aufgenommen wurden, um Tiefenkarten zu erstellen.
-
Bewegungsartefakte können mithilfe beweglicher Ziele gemessen werden. Tiefenbilder können bei verschiedenen Winkelgeschwindigkeiten aufgenommen werden. Mithilfe eines Propellers, der sich um seine Mitte dreht, können zum Beispiel Schmierwinkel eines spezifischen 3D-Bildgebungssystem aufgezeichnet und gegenüber Winkelgeschwindigkeiten des Propellers entlang eines Kreises mit einem angegebenen Durchmesser grafisch dargestellt werden.
-
Alternative Verfahren für das Messen von Bewegungsartefakten beinhalten die Verwendung eines flachen Ziels oder geneigter, abgestufter Ziele. Ein flaches Ziel kann zum Beispiel bei einer Abstandsrampenbildung verwendet werden: Ein Hostcomputer kann die Halterung des 3D-Bildgebungssystems entlang der Schiene der Einrichtung automatisch steuern, um den Abstand zwischen dem 3D-Bildgebungssystem und dem Ziel rampenartig ansteigen zu lassen. Ein Entfernungsmesser, der sich mit dem 3D-Bildgebungssystem bewegt, kann zum Beispiel den tatsächlichen Abstand bereitstellen, der dann zusammen mit dem vom 3D-Bildgebungssystem gemessenen Abstand grafisch dargestellt wird. Der Unterschied zwischen den tatsächlichen und gemessenen Abständen kann einen Abstandsfehler angeben. In einigen Beispielen ist dieser Abstandsfehler nicht mit dem Schmieren korreliert, das im vorher beschriebenen Verfahren zur Messung von Bewegungsartefakten gemessen wird. In einigen Beispielen sind die durchgeführten Messungen durch die Geschwindigkeit der sich bewegenden Halterung an der Schiene beschränkt. In einigen Beispielen können die tatsächlichen und gemessenen Abstände gegenüber der Geschwindigkeit des flachen Ziels grafisch dargestellt werden. Dieses Verfahren erfordert keine zusätzlichen Ziele oder Ausrüstung in Verbindung mit der Einrichtung für das Messen der Abstandsgenauigkeit.
-
Ein Verfahren für das Messen von Bewegungsartefakten mithilfe geneigter, abgestufter Ziele beinhaltet das Verwackeln jedes Ziels. Es kann zum Beispiel ein Array geneigter Quadratstufen verwendet werden. Jedes Quadrat kann, z. B. horizontal oder vertikal, verwackelt und das Verwischen entlang der Kanten jedes Ziels beurteilt werden. Die Häufigkeit des Verwackelns jedes Ziels kann gesteuert werden.
-
Bezugnehmend auf 1 beinhaltet ein System 100 zur Messung der Charakteristiken und das Kalibrieren von 3D-Bildgebungssystemen einen Hostcomputer 102, der die Position eines 3D-Bildgebungssystems und/oder eines Kalibrierungsziels einer Testeinrichtung für ein 3D-Bildgebungssystem steuert. Das System 100 beinhaltet ein 3D-Bildgebungssystem 110, das Bilder mit Pixelwerten aufnimmt, die Abstände zwischen einem Punkt, der mit dem 3D-Bildgebungssystem 110 verbunden ist, und einem Objekt angeben.
-
Das 3D-Bildgebungssystem 110 ist mit einer 3D-Bildgebungssystemhalterung 112 abnehmbar gekoppelt. Die Halterung 112 ist auf die Schiene 130 beschränkt. In diesem Beispiel beinhaltet die Halterung 112 Räder, die auf das Bewegen entlang der Achse der Schiene 130 beschränkt sind. In einigen Beispielen kann die Bewegung der Halterung 112 durch andere Befestigungsmittel wie z. B. Teflon-Schieber, Lager usw. auf die Schiene 130 beschränkt werden.
-
Die Halterung 112 kann einen Prozessor und/oder eine Stromquelle beinhalten und sie kann über ein oder mehrere Strom- und/oder Datenkabel mit dem 3D-Bildgebungssystem 110 gekoppelt sein. Ein Satz von Kabeln kann das 3D-Bildgebungssystem 110 zum Beispiel mit der Halterung 112 verbinden und das 3D-Bildgebungssystem 110 mit Strom versorgen, während gleichzeitig Daten zu und von den 3D-Bildgebungsdaten übertragen werden. Daten, die über das oder die Kabel übertragen werden, beinhalten Bewegungsdaten. Der Hostcomputer 102 kann zum Beispiel die Bewegung der Halterung 112 steuern und Abstandsdaten vom 3D-Bildgebungssystem 110 empfangen.
-
Ein Entfernungsmesser 114 ist mit der Halterung 112 abnehmbar gekoppelt und stellt tatsächliche Abstandsdaten zwischen dem 3D-Bildgebungssystem 110 und einem Objekt bereit. Ein Entfernungsmesser 114 kann über ein oder mehrere Strom- und/oder Datenkabel, die denen ähnlich sind, die in Bezug auf das 3D-Bildgebungssystem 110 beschrieben wurden, mit der Halterung 112 gekoppelt sein. Der Hostcomputer 102 kann zum Beispiel Abstandsdaten vom Entfernungsmesser 114 empfangen.
-
Das System 100 beinhaltet einen Messprozessor 120 der Kalibrierungslogik auf Messungen anwendet, die durch das 3D-Bildgebungssystem 110 durchgeführt wurden. Eine Kalibrierungslogik, die konfiguriert ist, die Feldkrümmung des 3D-Bildgebungssystems 110 mithilfe vorher durchgeführter Messungen zu korrigieren, kann zum Beispiel im Messprozessor 120 gespeichert und auf nachfolgende Messungen angewandt werden, die durch das 3D-Bildgebungssystem 110 durchgeführt werden.
-
Das System 100 beinhaltet eine Kalibrierungszielanordnung 150, die mehrere Arten von Kalibrierungszielen beinhaltet. Die Zielanordnung 150 ist mit einer Kalibrierungszielanordnung 152, die der Kopplung zwischen dem 3D-Bildgebungssystem 110 und der Halterung 112 ähnlich ist, abnehmbar gekoppelt. Die Zielanordnung 150 kann mit der Halterung 152 über ein oder mehrere Strom- und/oder Datenkabel verbunden sein.
-
Die exemplarische Zielanordnung 150 beinhaltet drei Arten von Kalibrierungszielen; ein flaches Ziel 154, ein geneigtes, abgestuftes Ziel 156 und ein bewegliches Ziel 158. Das flache Ziel 154 ist ein leeres Ziel mit einer einheitlichen Tiefe. Das geneigte, abgestufte Ziel 158 beinhaltet ein Array geneigter Quadratstufen, die jeweils auf Basis der Charakteristiken des 3D-Bildgebungssystems 110 dimensioniert und angeordnet sind.
-
Das bewegliche Ziel 158 beinhaltet einen rotierenden flachen Propeller. In einigen Beispielen stellt ein Stromkabel, das die Zielanordnung 150 und die Halterung 152 verbindet, Strom für den rotierenden flachen Propeller 158 bereit. In einigen Beispielen übertragen ein oder mehrere Datenkabel, die die Zielanordnung 150 und die Halterung 152 verbinden, Daten zwischen dem rotierenden flachen Propeller 158 und der Halterung 152 und dem Hostcomputer 102. Der Hostcomputer 102 kann zum Beispiel die Winkelgeschwindigkeit des rotierenden Propellers 158 steuern, überwachen und aufzeichnen.
-
2 veranschaulicht ein exemplarisches System 200 zum Testen eines 3D-Bildgebungssystems durch Messen des Rauschens und der Einheitlichkeit des Bildgebungssystems. Das System 200 stellt ein System dar, das zum Durchführen des Tests und der Kalibrierung verwendet werden kann, die in Bezug auf 1 beschrieben sind. Kurz gesagt werden, gemäß einem Beispiel, Tiefenmessungen mithilfe eines 3D-Bildgebungssystems durchgeführt, woraufhin die Ergebnisse analysiert werden, um nachfolgende Messungen zu kalibrieren, die durch das 3D-Bildgebungssystem durchgeführt werden. Tiefenbilder, die durch ein 3D-Bildgebungssystem aufgenommen werden, können zum Beispiel auf Fixed Pattern Noise und transientes Rauschen analysiert werden, um eine geeignete Transformation für nachfolgende Messungen zu ermitteln, die durch das 3D-Bildgebungssystem durchgeführt werden.
-
Das System 200 beinhaltet das 3D-Bildgebungssystem 110, das an der 3D-Bildgebungssystemhalterung 112 angebracht ist. Die Halterung 112 ist mit der Schiene 130 beweglich gekoppelt und ermöglicht eine Neupositionierung des 3D-Bildgebungssystems entlang der Schiene 130, um Tiefenmessungen in verschiedenen Abständen vom flachen Kalibrierungsziel 154 bereitzustellen. Das flache Kalibrierungsziel 154 ist an der Kalbrierungszielhalterung 152 montiert.
-
Das 3D-Bildgebungssystem 110 kann Rohmessungen 202 sammeln. Die Rohmessungen 202 sind Tiefenmessungen, die durch das 3D-Bildgebungssystem 110 durchgeführt werden und auf keine Weise umgewandelt oder geändert wurden. In diesem Beispiel ermöglicht das flache Kalibrierungsziel 154 die Messung der Abstandsgenauigkeit und des Abstandsrauschens mit Varianz. Durch Variieren des Abstands des Kalibrierungsziels 154 nehmen Messungen die Tiefeneinheitlichkeit des 3D-Bildgebungssystems 110 auf.
-
In diesem Beispiel zeigen die Rohmessungen 202, dass Abstandsmessungen oben und unten am flachen Kalibrierungsziel 154 größer sind als die Abstandsmessungen in Richtung Mitte des flachen Kalibrierungsziels 154. Wie durch die gepunktete Linie veranschaulicht, können Unzulänglichkeiten des 3D-Bildgebungssystems 110 Tiefenmessungen produzieren, die ein flaches Objekt gekrümmt erscheinen lassen.
-
Die Rohmessungen 202 können durch einen Messprozessor, wie z. B. den Messprozessor 120 von 1, verarbeitet werden. Es kann zum Beispiel ermittelt werden, dass Tiefenmessungen, die durch das 3D-Bildgebungssystem 110 durchgeführt werden, dazu tendieren, kleiner zu sein als die tatsächliche Tiefe an bestimmten Punkten. Der Messprozessor 120 kann dies dann durch Verarbeitungsmessungen kompensieren, die durch das 3D-Bildgebungssystem 110 durchgeführt werden, sodass die Messungen erhöht werden. In einigen Beispielen können die Messungen um einen festen Umfang erhöht werden. In einigen Beispielen ist das Rauschen in Messungen, die durch das 3D-Bildgebungssystem 110 durchgeführt werden, nicht fest und kann sich mit dem Abstand zwischen dem 3D-Bildgebungssystem 110 und dem flachen Kalibrierungsziel 154 ändern. Das Rauschen in den Messungen kann sich zum Beispiel erhöhen, wenn sich der Abstand zwischen dem 3D-Bildgebungssystem 110 und dem flachen Kalibrierungsziel erhöht.
-
Der Messprozessor 120 kann verarbeitete Messungen 204 produzieren. Die Tiefenmessungen können zum Beispiel um einen variablen Umfang auf Basis eines Abstands zwischen dem 3D-Bildgebungssystem 110 erhöht werden. Die Verarbeitung, die durch den Messprozessor 120 erfolgt, kann an Messungen erfolgen, die durch das 3D-Bildgebungssystem 110 durchgeführt werden, nachdem anfängliche Messungen, die durch das 3D-Bildgebungssystem 110 durchgeführt wurden, analysiert werden, um einen Umfang der anzuwendenden Korrektur zu ermitteln.
-
Ideale Messungen 206 stellen die tatsächlichen Messungen der Tiefe vom 3D-Bildgebungssystem 110 zum flachen Kalibrierungsziel 154 dar. In einigen Beispielen können die idealen Messungen 206 mit den verarbeiteten Messungen 204 verglichen werden, um eine Transformation zu ermitteln, die weitere verarbeitete Messungen produziert. Das System 200 kann zum Beispiel die verarbeiteten Messungen 204 mit den idealen Messungen 206 kombinieren und/oder vergleichen, um eine Transformation 208 zu produzieren. In einigen Beispielen wird die Transformation 208 auf Messungen angewandt, die durch das 3D-Bildgebungssystem 110 durchgeführt werden, um kalibrierte Ergebnisse bereitzustellen. Diese Korrekturen für Unregelmäßigkeiten von den idealen Messungen 206 können mithilfe einer Kalibrierlogik durchgeführt werden, die vom Messprozessor 120 angewandt wird.
-
3 veranschaulicht ein exemplarisches System 300 zum Testen eines 3D-Bildgebungssystems durch Messen der Schärfe und des Frequenzgangs des Bildgebungssystems. Das System 300 stellt ein System dar, das zum Durchführen des Tests und der Kalibrierung verwendet werden kann, die in Bezug auf 1 beschrieben sind. Kurz gesagt, werden, gemäß einem Beispiel, Tiefenmessungen mithilfe von geneigten, abgestuften Zielen mithilfe eines 3D-Bildgebungssystems durchgeführt, woraufhin die Ergebnisse analysiert werden, um nachfolgende Messungen zu kalibrieren, die durch das 3D-Bildgebungssystem durchgeführt werden. Tiefenbilder, die durch ein 3D-Bildgebungssystem aufgenommen werden, können zum Beispiel auf Schärfe und Frequenzgang analysiert werden, um eine geeignete Transformation für nachfolgende Messungen zu ermitteln, die durch das 3D-Bildgebungssystem durchgeführt werden.
-
Das System 300 beinhaltet das 3D-Bildgebungssystem 110, das an der 3D-Bildgebungssystemhalterung 112 angebracht ist. Die Halterung 112 ist mit der Schiene 130 beweglich gekoppelt und ermöglicht eine Neupositionierung des 3D-Bildgebungssystems entlang der Schiene 130, um Tiefenmessungen in verschiedenen Abständen vom geneigten, abgestuften Ziel 156 bereitzustellen. Das geneigte, abgestufte Ziel 156 ist an der Kalbrierungszielhalterung 152 montiert.
-
Die Tiefen-Kanten-Streuung kann die Schärfe und den Frequenzgang eines spezifischen 3D-Bildgebungssystems darstellen. Eine spezifische Konfiguration der Kalibrierungszielekann die Messung einer Tiefen-Kanten-Streufunktion des 3D-Bildgebungssystems 110 ermöglichen. Der Übergang von einer Tiefe zu einer anderen Tiefe ist allmählich und reibungslos; der Grad der Unschärfe stellt einen Index bereit, durch den die Schärfe und der Frequenzgang des 3D-Bildgebungssystems 110 gemessen werden können. Die Steigung der Kanten-Streufunktion kann Erkenntnisse liefern – wenn die Steigung gering ist, kann die Unschärfe größer sein.
-
Geneigte Quadratziele, die eine einheitliche Tiefe vor einer flachen Unterlage erhöht sind, können zum Beispiel die Messung der Schärfe des 3D-Bildgebungssystems 110 ermöglichen. Ein Tiefenbild 302 des geneigten, abgestuften Ziels 156 kann zum Beispiel analysiert und als grafische Darstellung 304 grafisch dargestellt werden. Jedes Pixel des Tiefenbilds 302 kann einen Tiefenwert haben, der einem Punkt auf dem geneigten, abgestuften Ziel 156 entspricht. In diesem Beispiel gibt es zwei tatsächliche Tiefen: d1 und d2. d1 kann die Tiefe eines Ziels des geneigten, abgestuften Ziels 156 sein. d2 kann die Tiefe einer flachen Unterlage sein, an der jedes Ziel des geneigten, abgestuften Ziels 156 montiert ist. Eine Linie, wie z. B. die Linie x, kann durch eine rechtwinklige Achse des Ziels gezogen werden, das im Tiefenbild 302 dargestellt ist. Linien, wie z. B. Linien x1 und x2, können an der Innenseite bzw. der Außenseite der tatsächlichen Kante des Ziels gezogen werden, das im Tiefenbild 302 dargestellt ist.
-
Die grafische Darstellung 304 kann Abstandsachsen entlang der Linie x und Tiefenmessungen haben. Ein ideales 3D-Bildgebungssystem produziert eine Stufenfunktion mit einem scharfen Sprung zwischen den Tiefen d1 und d2. Reale 3D-Bildgebungssysteme, wie z. B. das 3D-Bildgebungssystem 110, können das Tiefenbild 302 mit Pixeln produzieren, die Tiefen mit einer kontinuierlichen Streuung der Werte zwischen der Tiefe des geneigten, abgestuften Ziels 156 und der Tiefe der flachen Unterlage, auf der Ziele des geneigten, abgestuften Ziels 156 montiert sind, aufweisen. Die Tiefen-Kanten-Streuung des 3D-Bildgebungssystems 110 kann durch die Funktion dargestellt werden, die in der grafischen Darstellung 304 grafisch dargestellt ist. Die Tiefen-Kanten-Streufunktion des 3D-Bildgebungssystems 110 kann verwendet werden, um nachfolgende Messungen zu kalibrieren, die durch das 3D-Bildgebungssystem 110 durchgeführt werden.
-
Um nachfolgende Messungen zu kalibrieren, könnten signaldimensionale schnelle Fourier-Transformationen (Fast Fourier Transforms, FFTs) am Signal durchgeführt werden, um verschiedene Frequenzkomponenten des Übergangs zu trennen. Wenn die Steigung abrupt ist, wie dies bei einer idealen Kamera der Fall wäre, gäbe es Frequenzkomponenten mit unendlicher Frequenz. Reale Kameras sind nicht ideal und die Signalverarbeitung kann zeigen, dass höherer Frequenzkomponenten unterdrückt werden. Der Grad der Unterdrückung und die unterdrückten Frequenzen können als Maß der Schärfe verwendet werden.
-
4 veranschaulicht ein exemplarisches System 400 zum Testen eines 3D-Bildgebungssystems durch Messen der Bewegungsartefakte des Bildgebungssystems. Das System 400 stellt ein System dar, das zum Durchführen des Tests und der Kalibrierung verwendet werden kann, die in Bezug auf 1 beschrieben sind. Kurz gesagt, werden, gemäß einem Beispiel, Tiefenkarten als Funktion der Winkelgeschwindigkeit mithilfe eines 3D-Bildgebungssystems aufgenommen, woraufhin die Ergebnisse analysiert werden, um nachfolgende Messungen zu kalibrieren, die durch das 3D-Bildgebungssystem durchgeführt werden. Phasenbilder können zum Beispiel kombiniert werden, um Tiefenkarten zu produzieren, die die Messung des Verwischens eines spezifischen 3D-Bildgebungssystems 110 ermöglichen.
-
Das System 400 beinhaltet das 3D-Bildgebungssystem 110, das an der 3D-Bildgebungssystemhalterung 112 angebracht ist. Die Halterung 112 ist mit der Schiene 130 beweglich gekoppelt und ermöglicht eine Neupositionierung des 3D-Bildgebungssystems entlang der Schiene 130, um Tiefenmessungen in verschiedenen Abständen vom beweglichen Kalibrierungsziel 158 bereitzustellen. Das bewegliche Ziel 158 ist an der Kalbrierungszielhalterung 152 montiert. Je nach Konstruktion eines spezifischen 3D-Bildgebungssystems gibt es verschiedene Arten von Bewegungsartefakten. Wenn eine Tiefenkamera eine bewegliche Kante aufnimmt, kann es zu Verwischungen kommen. Für Tiefenkameras mit 4-phasiger Laufzeit können zum Beispiel vier Phasenbilder, die nacheinander aufgenommen werden, kombiniert werden, um ein Tiefenbild zu bilden. Wenn eine bewegliche Kante vorhanden ist, kann das resultierende Tiefenbild Verwischungen rund um diese Kante enthalten. Die Verwischung kann verwendet werden, um einen Abstandsberechnungsalgorithmus zu ermitteln, der durch das 3D-Bildgebungssystem verwendet wird: verschiedene Bewegungsartefakte werden durch verschiedene verwendete Algorithmen produziert.
-
Es gibt zwei allgemeine Möglichkeiten, Bewegungstiefendaten zu sammeln: temporär und räumlich. Bei temporären oder Laufzeittiefenbildern werden mehrere Messungen am selben Punkt zu verschiedenen Zeiten durchgeführt, wobei Berechnungen bei jeder dieser Messungen erfolgen. Bei räumlicher Messung werden mehrere Punkte, die sich in enger Nähe befinden, gleichzeitig gemessen, wobei die Messungen kombiniert werden, um eine endgültige Messung zu produzieren.
-
Eine Vorderansicht des beweglichen Ziels 402 zeigt die Drehbewegung. Zusammengesetzte Tiefenbilder können mithilfe des 3D-Bildgebungssystems 110 mit verschiedenen Winkelgeschwindigkeiten des beweglichen Ziels 158 aufgenommen werden. Ein exemplarisches zusammengesetztes Tiefenbild 404 zeigt das Verwischen des 3D-Bildgebungssystems 110. In diesem Beispiel verwendet das 3D-Bildgebungssystem 110 die räumliche Bewegung der Bewegungstiefendaten. Das Tiefenbild 404 ermöglicht zum Beispiel die Messung des Verwischungswinkels, der, wie durch die gepunkteten Linien dargestellt, gegenüber der Winkelgeschwindigkeit des beweglichen Ziels 158 entlang eines Kreises mit einem angegebenen Durchmesser grafisch dargestellt werden kann. In diesem Beispiel ist das bewegliche Ziel 158 ein rotierendes Ziel; Verwischen kann sowohl an der vorderen als auch an der hinteren Kante auftreten, da es sich bei beiden um bewegliche Kanten handelt.
-
Die Kalibrierung von Messungen, die durch ein spezifisches 3D-Bildgebungssystem durchgeführt werden, kann durch einen Messprozessor getrennt vom Test und von der Datensammlung erfolgen. Der Messprozessor 120 kann zum Beispiel für das spezifische 3D-Bildgebungssystem bereitgestellte Daten analysieren, um eine Transformation zu ermitteln, Kompensationswerte berechnen usw., ohne die Messungen direkt vom 3D-Bildgebungssystem zu empfangen. In einigen Beisielen können die Einrichtung eines Testsystems, wie z. B. des Systems 100, und die Sammlung der Daten vom 3D-Bildgebungssystem 110 getrennt durchgeführt und die Daten nachfolgend dem Messprozessor 120 bereitgestellt werden.
-
Die Beleuchtung einer Testeinrichtung kann die Messungen, die durch ein 3D-Bildgebungssystem durchgeführt werden, erheblich beeinflussen, was es schwierig macht, Verfahren für das Sammeln von Daten zu standardisieren. In einigen Beispielen kann eine Seitenbeleuchtung von Kalibrierungszielen verwendet werden. Außerdem beeinflussen Faktoren, wie z. B. die Reflektivität und die Materialzusammensetzung der Kalibrierungsziele, die durchgeführten Messungen und die nachfolgende Kalibrierung, die auf die durchgeführten Messungen durch das spezifische 3D-Bildgebungssystem angewandt werden müssen.
-
5 zeigt ein Ablaufdiagramm, das einen exemplarischen Prozess 500 veranschaulicht, der die Leistung eines 3D-Bildgebungssystems kennzeichnet. Kurz gesagt, beinhaltet, gemäß einem Beispiel, der Prozess 500 das Empfangen einer Ablesung von einer spezifischen 3D-Kamera, wobei die Ablesung einen Abstand von der 3D-Kamera zu einem spezifischen Kalibrierungsziel (502) beinhaltet. Die Tiefenmessung, die von der Kalibrierungszielanordnung 150 durch das 3D-Bildgebungssystem 110 durchgeführt wird, kann gesammelt und an den Messprozessor 120 gesendet werden. Der Prozess 500 beinhaltet das Empfangen einer Messung eines tatsächlichen Abstands von der bestimmten 3D-Kamera zu dem spezifischen Kalibrierungsziel (504). Die Abstandsmessung, die durch den Entfernungsmesser 114 der Merkmale der Kalibrierungszielanordnung 150 durchgeführt wurde, kann zum Beispiel zum Messprozessor 120 gesendet werden. Der Prozess 500 schließt mit der Bereitstellung der Messcharakteristiken der spezifischen 3D-Kamera (506) ab. Messcharakteristiken des spezifischen 3D-Bildgebungssystems können zum Beispiel Wertungen beinhalten, die die Leistung der Kamera in einem spezifischen Bereich, wie z. B. Abstandsgenauigkeit, Rauschen, Schärfe, Frequenzgang, Bewegungsartefakte usw., quantifizieren. In einigen Beispielen beinhalten Messcharakteristiken Transformationen oder Kompensationen an Messungen, die durch die spezifische Kamera durchgeführt wurden, um die Messungen genauer an idealen Messungen auszurichten.
-
Es wurde eine Reihe von Implementierungen beschrieben. Trotzdem versteht es sich, dass verschiedene Modifikationen durchgeführt werden können, ohne vom Sinn und Umfang der Offenbarung abzuweichen. Zum Beispiel können verschiedene Formen der vorstehend dargestellten Abläufe verwendet und Schritte neu geordnet, hinzugefügt oder entfernt werden.
-
Alle funktionsfähigen in dieser Beschreibung beschriebenen Operationen können in einer digitalen elektronischen Schaltung oder in Computer-Software, -Firmware oder -Hardware, darunter auch in aus dieser Beschreibung hervorgehenden Strukturen und deren strukturellen Äquivalenten oder in Kombinationen einer oder mehrerer derselben implementiert werden. Die offenbarten Techniken können als ein oder mehrere Computerprogrammprodukte, d. h. als ein oder mehrere Module von Computerprogrammanweisungen implementiert werden, die auf einem computerlesbaren Medium zur Ausführung codiert sind, oder um den Betrieb von Datenverarbeitungsvorrichtungen zu steuern. Das computerlesbare Medium kann ein maschinenlesbares Speichergerät, ein maschinenlesbares Speichersubstrat, ein Speichergerät, eine ein maschinenlesbares propagiertes Signal betreffende Zusammensetzung oder eine Kombination aus einem oder mehreren derselben sein. Das computerlesbare Medium kann ein nicht flüchtiges computerlesbares Medium sein. Der Begriff „Datenverarbeitungsvorrichtung“ umfasst alle Vorrichtungen, Geräte und Maschinen zum Verarbeiten von Daten, einschließlich beispielsweise eines programmierbaren Prozessors, eines Computers oder mehrerer Prozessoren oder Computer. Die Vorrichtung kann zusätzlich zur Hardware Code umfassen, der eine Ausführungsumgebung für das betreffende Computerprogramm, wie z. B. Code, erzeugt, der Prozessorfirmware, einen Protokollstapel, ein Datenbankmanagementsystem, ein Betriebssystem oder eine Kombination aus einem oder mehreren derselben bildet. Ein propagiertes Signal ist ein künstlich erzeugtes Signal, wie z. B. ein maschinengeneriertes elektrisches, optisches oder elektromagnetisches Signal, das erzeugt wird, um Informationen für die Übertragung zu einer geeigneten Empfangsvorrichtung zu codieren.
-
Ein Computerprogramm (das auch als Programm, Software, Softwareanwendung, Script oder Code bezeichnet werden kann) kann in jeder Form von Programmiersprache, darunter auch in kompilierten oder interpretierten Sprachen, geschrieben und in beliebiger Form, wie z. B. als allein lauffähiges Programm oder als Modul, Komponente, Subroutine, oder als eine andere für den Einsatz in einer Computerumgebung geeignete Einheit, bereitgestellt werden. Ein Computerprogramm entspricht nicht unbedingt einer Datei in einem Dateisystem. Ein Programm kann in einem Teil einer Datei, die andere Programme oder Daten (z. B. ein oder mehrere Scripts, die in einem Dokument in Markup-Sprache gespeichert sind) enthält, in einer einzelnen Datei speziell für das betreffende Programm oder in mehreren koordinierten Dateien (z. B. Dateien, die ein oder mehrere Module, Unterprogramme oder Teile von Code speichern) gespeichert sein. Ein Computerprogramm kann derart eingesetzt werden, dass es auf einem Computer oder auf mehreren Computern ausgeführt wird, die sich an einem Standort oder verteilt an mehreren Standorten befinden und miteinander durch ein Kommunikationsnetzwerk verbunden sind.
-
Die in dieser Beschreibung beschriebenen Prozesse und Logikabläufe können durch einen oder mehrere programmierbare Prozessoren ausgeführt werden, die ein oder mehrere Computerprogramme ausführen, um Funktionen durch Verarbeiten von Eingabedaten und Erzeugen von Ausgaben auszuführen. Die Prozesse und Logikabläufe können auch als, Spezial-Logikschaltungen, wie z. B. ein FPGA (feldprogrammierbarer Universalschaltkreis) oder eine ASIC (anwendungsspezifische integrierte Schaltung), implementiert werden, zudem können auch Vorrichtungen als diese implementiert werden.
-
Prozessoren, die für die Ausführung eines Computerprogramms geeignet sind, beinhalten beispielsweise sowohl Universal- als auch Spezialmikroprozessoren, sowie einen oder mehrere Prozessoren einer beliebigen Art von digitalem Computer. Im Allgemeinen empfängt ein Prozessor Befehle und Daten von einem Festwertspeicher oder einem Nur-Lese-Speicher oder von beiden. Die wesentlichen Elemente eines Computers sind ein Prozessor für das Ausführen von Befehlen und ein oder mehrere Speichergeräte zum Speichern von Befehlen und Daten. Im Allgemeinen beinhaltet ein Computer außerdem ein oder mehrere Massenspeichergeräte zum Speichern von Daten, wie z. B. Magnet-, magneto-optische oder optische Disketten, um Daten zu empfangen und/oder zu senden, oder ist operativ an dieselbe(n) gekoppelt. Ein Computer muss jedoch nicht über diese Geräte verfügen. Des Weiteren kann ein Computer in einem anderen Gerät, wie z. B. einem Tabletcomputer, einem Mobiltelefon, einem persönlichen digitalen Assistenten (PDA), einem mobilen Audioplayer, einem globalen Positionsbestimmungssystem-(GPS)-Empfänger integriert sein, um nur einige Beispiele zu nennen. Computerlesbare Medien, die zum Speichern von Computerprogrammanweisungen und Daten geeignet sind, umfassen alle Formen von nicht flüchtigem Speicher, Medien und Speichergeräten, einschließlich beispielsweise Halbleiterspeichergeräten, wie z. B. EPROM, EEPROM und Flash-Speichergeräten, Magnetplatten, wie z. B. interne Festplattenlaufwerke oder Wechselplatten, magneto-optische Platten sowie CD-ROMs und DVD-ROMs. Der Prozessor und der Speicher können mit Spezial-Logikschaltungen ergänzt werden oder darin integriert sein.
-
Um eine Interaktion mit einem Benutzer bereitzustellen, können die offenbarten Techniken auf einem Computer implementiert werden, der ein Anzeigegerät, z. B. einen CRT-(Kathodenstrahlröhren) oder LCD-(Flüssigkristallanzeige)-Monitor, um dem Benutzer Informationen anzuzeigen, sowie eine Tastatur und ein Zeigegerät, z. B. eine Maus oder einen Trackball, aufweist, mittels denen der Benutzer eine Eingabe an dem Computer vornehmen kann. Es können auch andere Arten von Geräten verwendet werden, um eine Interaktion mit einem Benutzer bereitzustellen; beispielsweise kann eine an den Benutzer bereitgestellte Rückmeldung in einer beliebigen Form von sensorischer Rückmeldung, wie z. B. einer visuellen Rückmeldung, akustischen Rückmeldung oder taktilen Rückmeldung, vorliegen; zudem kann eine Eingabe vom Benutzer in beliebiger Form, darunter auch als akustische, taktile oder Spracheingabe empfangen werden.
-
Implementierungen können ein Computersystem beinhalten, das eine Back-End-Komponente, wie z. B. einen Datenserver, oder eine Middleware-Komponente, wie z. B. einen Anwendungsserver, oder eine Front-End-Komponente, wie z. B. einen Client-Computer mit einer grafischen Benutzeroberfläche oder einen Webbbrowser, beinhaltet, durch den ein Benutzer mit einer Implementierung der offenbarten Techniken interagieren kann, oder eine beliebige Kombination aus diesen Backend-, Middleware- oder Frontend-Komponenten beinhaltet. Die Komponenten des Systems können durch eine beliebige Form oder ein beliebiges Medium digitaler Datenkommunikation, wie z. B. ein Kommunikationsnetzwerk, miteinander verbunden sein. Beispiele von Kommunikationsnetzwerken beinhalten ein lokales Netzwerk („LAN“) und ein Großraumnetzwerk („WAN“), wie z. B. das Internet.
-
Das Computersystem kann Clients und Server beinhalten. Ein Client und ein Server befinden sich im Allgemeinen entfernt voneinander und interagieren typischerweise über ein Kommunikationsnetzwerk. Die Beziehung zwischen Client und Server entsteht aufgrund von Computerprogrammen, die auf den jeweiligen Computern laufen und die eine Client-Server-Beziehung zueinander aufweisen.
-
Obwohl diese Spezifikation viele Einzelheiten enthält, sollten diese nicht als Einschränkungen, sondern vielmehr als Beschreibungen von spezifischen Merkmalen bestimmter Ausführungsformen ausgelegt werden. Bestimmte Merkmale, die in dieser Spezifikation im Zusammenhang mit separaten Implementierungen beschrieben werden, können darüber hinaus in Kombination in einer einzelnen Implementierung implementiert werden. Umgekehrt können verschiedene Merkmale, die im Kontext einer einzelnen Implementierung beschrieben sind, auch in mehreren Implementierungen getrennt oder in einer geeigneten Teilkombination implementiert werden. Obwohl Merkmale vorstehend als in bestimmten Kombinationen agierend und sogar anfänglich als solche beansprucht sein können, können des Weiteren ein oder mehrere Merkmale einer beanspruchten Kombination in einigen Fällen aus der Kombination herausgelöst und die beanspruchte Kombination auf eine Teilkombination oder Variation einer Teilkombination gerichtet sein.
-
Gleichermaßen soll, obwohl die Operationen in den Zeichnungen in einer bestimmten Reihenfolge dargestellt sind, dies nicht so verstanden werden, dass die besagten Operationen in der dargestellten Reihenfolge oder in fortlaufender Reihenfolge durchgeführt werden müssen bzw. alle veranschaulichten Operationen durchgeführt werden müssen, um die erwünschten Ergebnisse zu erzielen. Unter bestimmten Umständen können Multitasking und Parallelverarbeitung von Vorteil sein. Darüber hinaus sollte die Trennung verschiedener Systemkomponenten in den vorstehend beschriebenen Implementierungen nicht als in allen Implementierungen erforderlich ausgelegt werden, auch gilt es zu verstehen, dass die beschriebenen Programmkomponenten und Systeme im Allgemeinen in einem einzelnen Softwareprodukt oder in mehreren Softwareprodukten gebündelt integriert sein können.
-
Es wurden somit bestimmte Implementierungen beschrieben. Andere Implementierungen fallen in den Umfang der folgenden Ansprüche. Die in den Ansprüchen angeführten Aktionen können beispielsweise in einer anderen Reihenfolge ausgeführt werden und dennoch gewünschte Ergebnisse erzielen.