-
GEBIET DER ERFINDUNG
-
Die vorliegende Erfindung betrifft die Navigation zwischen Panoramabildern.
-
ALLGEMEINER STAND DER TECHNIK
-
Es gibt Computersysteme, die eine Vielzahl von Panoramabildern beinhalten, die mit Orten auf einer Karte geocodiert sind. Um zwischen benachbarten Panoramabildern zu navigieren, kann der Nutzer eine Schaltfläche auf einer Karte auswählen und ein neues, benachbartes Panoramabild kann geladen und angezeigt werden. Obwohl diese Technik ihre Vorzüge hat, kann das Springen von einem Bild zum nächsten den Nutzer verwirren. Deshalb werden neue Navigationssysteme notwendig.
-
KURZE ZUSAMMENFASSUNG
-
Unter Schutz gestellt werden und Gegenstand des Gebrauchsmusters sind dabei, entsprechend den Vorschriften des Gebrauchsmustergesetzes, lediglich Vorrichtungen wie in den beigefügten Schutzansprüchen definiert, jedoch keine Verfahren. Soweit nachfolgend in der Beschreibung gegebenenfalls auf Verfahren Bezug genommen wird, dienen diese Bezugnahmen lediglich der beispielhaften Erläuterung der in den beigefügten Schutzansprüchen unter Schutz gestellten Vorrichtung oder Vorrichtungen. Die vorliegende Erfindung betrifft die Verwendung von Bildinhalten zur Navigation in Panoramabilddaten. In einer ersten Ausführungsform beinhaltet ein computerimplementiertes Verfahren zur Navigation in Panoramabilddaten Folgendes: (1) das Bestimmen einer Schnittstelle eines Strahls und eines virtuellen Modells, worin der Strahl von einem Kamera-Viewport eines Bilds ausgeht und das virtuelle Modell eine Vielzahl von Fassadenflächen umfasst; (2) das Abrufen eines Panoramabilds; (3) das Ausrichten des Panoramabilds zur Schnittstelle hin; und (4) das Darstellen des ausgerichteten Panoramabilds.
-
In einer zweiten Ausführungsform beinhaltet ein Verfahren zur Erstellung und Darstellung von Kommentaren Folgendes: (1) das Erstellen eines virtuellen Modells aus einer Vielzahl von zweidimensionalen Bildern; (2) das Bestimmen einer Schnittstelle von einem Strahl und dem virtuellen Modell, worin der Strahl von einem Kamera-Viewport des ersten Bilds ausgeht; (3) das Abrufen des Panoramabilds; (4) das Ausrichten des Panoramabilds zur Schnittstelle hin; und (5) das Darstellen des Panoramabilds.
-
In einer dritten Ausführungsform erstellt ein System Kommentare in Übereinstimmung mit einem virtuellen Modell und zeigt diese an, worin das virtuelle Modell aus einer Vielzahl von zweidimensionalen Bildern erstellt wurde. Das System beinhaltet einen Navigationscontroller, der die Schnittstelle eines Strahls, der von einem Kamera-Viewport des ersten Bilds ausgeht, und einem virtuellen Modell festlegt, ein drittes Panoramabild gewinnt und das dritte Panoramabild zur Schnittstelle hin orientiert. Das virtuelle Modell umfasst eine Vielzahl von Fassadenflächen.
-
Weitere Ausführungsformen, Merkmale und Vorteile der Erfindung sowie Struktur und Funktionsweise der verschiedenen Ausführungsformen der Erfindung werden unten mit Bezug auf die begleitenden Zeichnungen genau beschrieben.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN/FIGUREN
-
Die begleitenden Zeichnungen, die hierin enthalten sind und einen Teil der Spezifikation bilden, veranschaulichen die vorliegende Erfindung und dienen zusammen mit der Beschreibung außerdem dazu, Prinzipien der Erfindung zu erklären, um es Fachleuten zu ermöglichen, die Erfindung zu erstellen und zu nutzen.
-
1 ist ein Diagramm, das die Verwendung von Bildinhalten zur Vereinfachung der Navigation in Panoramabilddaten veranschaulicht, gemäß einer Ausführungsform der vorliegenden Erfindung.
-
2A–D sind Diagramme, die Möglichkeiten zur Vereinfachung der Navigation in Panoramabilddaten detaillierter beschreiben.
-
3 ist ein Flussdiagramm, das ein Verfahren zur Navigation in Panoramabilddaten einer Ausführungsform der vorliegenden Erfindung veranschaulicht.
-
4 ist ein Flussdiagramm, das ein Verfahren zur Erstellung eines virtuellen Modells aus Bilddaten gemäß einer Ausführungsform der vorliegenden Erfindung darstellt.
-
5A–C sind Diagramme, die die Zuordnung von Merkmalen gemäß dem Verfahren aus 4 veranschaulichen.
-
6–7 sind Diagramme, die die Bestimmung eines Punkts basierend auf einem zugeordneten Merkmalpaar gemäß dem Verfahren in 4 veranschaulichen.
-
8A–B sind Diagramme, die eine Vielzahl von nach dem Verfahren in 4 festgelegten Punkten darstellen.
-
9A–C sind Diagramme, die eine Fläche darstellen, die auf einer Vielzahl von Punkten gemäß dem Verfahren in 4 basiert.
-
10 ist ein Diagramm, das ein System zur Verwendung eines virtuellen Modells zur Navigation in Bilddaten gemäß einer Ausführungsform der Erfindung darstellt.
-
11 ist ein Diagramm, das ein System zur Erstellung eines virtuellen Modells aus Bilddaten gemäß einer Ausführungsform der Erfindung darstellt.
-
Die Zeichnung, in der ein Element zum ersten Mal erscheint, ist normalerweise durch die Ziffer ganz links oder Ziffern in der entsprechenden Bezugsnummer angegeben. In den Zeichnungen können gleiche Bezugsnummern identische oder funktionell ähnliche Elemente angeben.
-
AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
-
Die vorliegende Erfindung betrifft die Verwendung von Bildinhalten zur Navigation in Panoramabilddaten. In der folgenden detaillierten Beschreibung der Erfindung weisen Bezugnahmen in der Beschreibung auf „eine Ausführungsform”, „eine exemplarische Ausführungsform” usw. darauf hin, dass die beschriebene Ausführungsform ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft beinhalten kann, aber dass nicht unbedingt jede Ausführungsform das besondere Merkmal, die besondere Struktur oder die bestimmte Eigenschaft beinhalten muss. Außerdem beziehen sich solche Ausdrücke nicht unbedingt auf dieselbe Ausführungsform. Wenn ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft im Zusammenhang mit einer Ausführungsform beschrieben ist, so wird weiterhin unterstellt, dass Fachleute die Kenntnis besitzt, ein solches Merkmal, eine Struktur oder Eigenschaft im Zusammenhang mit anderen Ausführungsformen zu bewirken, unabhängig davon, ob sie ausführlich beschrieben sind oder nicht.
-
Wie hierin beschrieben, ermöglichen Ausführungsformen der vorliegenden Erfindung die Navigation der Nutzer zwischen Panoramabildern mithilfe von Bildinhalten. In einer Ausführungsform wird ein Modell erstellt, das den Bildinhalt wiedergibt. Ein Nutzer kann ein Objekt auswählen, das in einem ersten Panoramabild enthalten ist. Der Ort des Objekts wird durch die Projektion der Nutzerauswahl auf das Modell bestimmt. Ein zweites Panorama wird in Übereinstimmung mit diesem Ort ausgewählt und/oder orientiert. Auf diese Weise ermöglichen die Ausführungsformen dieser Erfindung die Navigation der Nutzer zwischen dem ersten und dem zweiten Panorama mithilfe von Bildinhalten.
-
1 ist ein Diagramm 100, das die Verwendung von Bildinhalten zur vereinfachten Navigation in Panoramabilddaten gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht. Diagramm 100 zeigt ein Gebäude 114 und einen Baum 116. Die Standorte des Gebäudes 114 sowie des Baums 116 werden durch ein virtuelles Modell 112 angenähert. Das virtuelle Modell 112 kann ein dreidimensionales Modell sein, das mithilfe von Bildern, die von dem Gebäude 114 und dem Baum 116 gemacht wurden, erstellt wurde, wie unten beschrieben. Eine Straße 102 führt am Gebäude 114 und am Baum 116 vorbei.
-
Einige virtuelle Figuren (z. B., Autos) 104, 106, 108, und 110 werden an Orten der Straße 102 dargestellt. Jede virtuelle Figur 104, 106, 108, und 110 hat ein mit ihr verbundenes Panoramabild, das mit dem Standort dieser Figur auf der Straße 102 geocodiert ist. Das Panoramabild kann Inhalte von 360 Grad um die Figur herum beinhalten. Es kann jedoch nur ein Teil des Panoramas für den Nutzer gleichzeitig abgebildet werden, zum Beispiel durch einen Kamera-Viewport. In Diagramm 100 wird der Teil des Panoramas, der dem Nutzer gezeigt wird, durch die jeweilige Ausrichtung der Figuren dargestellt. Die Figuren 104, 106, 108, und 110 haben die Ausrichtungen 124, 126, 122, beziehungsweise 120.
-
Figur 104 hat die Ausrichtung 124 zu einen Punkt 118 hin. Der Viewport der Figur 104 würde einen Teil eines Panoramas darstellen, der mit dem Standort der Figur 104 geocodiert ist. Der Teil des Panoramas, der im Viewport dargestellt wird, würde einen Punkt 118 beinhalten. Ausführungsformen der vorliegenden Erfindung verwenden ein virtuelles Modell 112, um von der Position der Figur 104 zu den Positionen der Figuren 106, 108 und 110 zu navigieren.
-
In einer ersten Ausführungsform der vorliegenden Erfindung, im Folgenden als Spurwechselausführung bezeichnet, kann der Nutzer zwischen Spuren navigieren. Die Spurwechselausführung ermöglicht die Navigation der Nutzer vom Panorama der Figur 104 zum Panorama der Figur 106. Das Panorama der Figur 106 ist mit einem Standort geocodiert, der dem Panorama der Figur 104 ähnelt, jedoch auf einer anderen Spur der Straße 102. Da das Panorama mit einem anderen Standort geocodiert ist, würden die entsprechenden Viewports der Figur 104 und der Figur 106 bei gleicher Ausrichtung der Figuren verschiedene Inhalte anzeigen. Der im Viewport dargestellte veränderte Inhalt kann den Nutzer verwirren. Die Spurwechselausführung orientiert die Figur 106 auf den Punkt 118 im virtuellen Modell 112 hin. Auf diese Weise enthält der im Viewport der Figur 106 dargestellte Panoramaausschnitt denselben Inhalt wie der Panoramaausschnitt, der im Viewport der Figur 104 dargestellt wird. Auf diese Weise führt die Spurwechselausführung dazu, dass das Wechseln der Spuren den Nutzer weniger verwirrt.
-
In einer zweiten Ausführungsform der vorliegenden Erfindung, hiernach als die Walk-Around-Ausführung bezeichnet, kann der Nutzer ein Objekt leichter aus verschiedenen Perspektiven betrachten. Der Nutzer kann den Eindruck erhalten, dass er um das Objekt herumgeht. Die Walk-Around-Ausführung ermöglicht die Navigation des Nutzers vom Panorama der Figur 104 zum Panorama der Figur 108. Der Standort der Figur 108 kann beispielsweise vom Nutzer ausgewählt werden. Ein Nutzer kann beispielsweise den Standort der Figur 108 auswählen, indem er einen Standort auf einer Karte wählt oder eine Pfeiltaste auf einer Tastatur drückt. Da das Panorama mit einem anderen Standort geocodiert ist, würden die jeweiligen Viewports von Figur 104 und Figur 106 bei gleicher Ausrichtung der Figuren verschiedene Inhalte darstellen und ein im Viewport von Figur 104 dargestelltes Objekt von Interesse wird möglicherweise im Viewport von Figur 106 nicht dargestellt. Die Walk-Around-Ausführung orientiert die Figur 108 zum Punkt 118 auf dem virtuellen Modell 112. Auf diese Weise enthält der im Viewport der Figur 106 dargestellte Panoramaausschnitt denselben Inhalt wie der Panoramaausschnitt, der im Viewport der Figur 104 dargestellt wird. Der Nutzer kann so leichter ein Objekt aus verschiedenen Perspektiven betrachten.
-
In einer Ausführungsform kann für den Nutzer ein Übergang zwischen Figur 104 und Figur 108 dargestellt werden. Der Übergang kann Zwischenpanoramas für die Figurpositionen zwischen der Figur 104 und der Figur 108 darstellen. Die Zwischenpanoramas können ebenfalls zum Punkt 118 hin orientiert sein.
-
In einer dritten Ausführungsform, hiernach als Click-and-Go-Ausführungsform bezeichnet, kann ein Nutzer zu einem zweiten Panoramabild an einem neuen Standort navigieren entsprechend dem Standort eines Objekts eines ersten Panoramas. Die Click-and-Go-Ausführungsform ermöglicht dem Nutzer die Navigation vom Panorama der Figur 104 zum Panorama der Figur 110. Die Position der Figur 110 ist die Position des nächsten verfügbaren Panoramas zum Punkt 118 auf dem virtuellen Modell 112. Punkt 118 kann entsprechend einer vom Nutzer im ersten Panorama getroffenen Auswahl bestimmt werden.
-
In den Ausführungsformen kann Figur 110 eine Ausrichtung 120 zum Punkt 118 hin oder eine andere Ausrichtung 128 haben. Ausrichtung 128 kann die Ausrichtung der Ausrichtung der Straße 102 sein.
-
Wird Figur 110 entsprechend Punkt 118 auf dem virtuellen Modell 112 ausgewählt, verwendet die Click-and-Go-Ausführung das virtuelle Modell 112 für die Navigation zwischen den Panoramabildern. Wie unten beschrieben, wird in einer Ausführungsform unter Verwendung des Inhalts der Panoramabilder ein virtuelles Modell 112 erstellt.
-
In einem Beispiel kann die Click-and-Go-Ausführung dem Nutzer einen nähere Ansicht des Objekts ermöglichen. In dem Beispiel kann der Nutzer ein Objekt in einem ersten Panorama auswählen und ein zweites Panorama, das das Objekt näher zeigt, wird geladen. Des Weiteren kann der Ausschnitt des zweiten Panoramas, in dem das Objekt enthalten ist, im Viewport dargestellt werden. Auf diese Weise wird durch die Verwendung der Inhalte der Panoramabilder die Navigation zwischen den Panoramabildern für den Nutzer zufriedenstellender und weniger verwirrend.
-
In einer Ausführungsform kann ein Panoramaviewer einen Übergang zwischen der Figur 104 und der Figur 108 darstellen. Der Übergang kann Zwischenpanoramas für die Figurpositionen zwischen Figur 104 und 108 darstellen. Die Zwischenpanoramas können ebenfalls zum Punkt 118 hin orientiert sein.
-
2A–D sind Diagramme, die Möglichkeiten zur Vereinfachung der Navigation in Panoramabilddaten detaillierter beschreiben.
-
2A ist ein Diagramm 200, das zeigt, wie ein Punkt auf einem Modell, wie der Punkt 118 in 1, erzeugt werden kann. Diagramm 200 zeigt ein Gebäude 262 und einen Baum 264. Ein virtuelles Modell 202 stellt ein Gebäude 262 und einen Baum 264 dar. Modell 202 kann unter Verwendung von Bildinhalten, wie unten im Detail beschrieben, erstellt werden. Diagramm 200 zeigt auch ein Bild 266, das vom Gebäude 262 und vom Baum 264 aufgenommen wurde. Bild 266 kann ein Ausschnitt eines Panoramabilds sein, das von der Straßenebene gemacht wurde und dem Nutzer durch einen Viewport dargestellt wurde. Ein Punkt 268 wird auf dem Bild 266 gezeigt. In einigen Ausführungsformen, wie den Spurwechsel- und Walk-Around-Ausführungsformen, kann der Punkt 268 der Mittelpunkt des Bilds 266 sein. In anderen Ausfürungsformen, wie der Click-and-Go-Ausführung, kann der Nutzer mithilfe eines Eingabegeräts, wie einer Maus, den Punkt 268 auswählen.
-
Ein Strahl 212 erstreckt sich von einem Kamera-Viewport 210 durch den Punkt 268. In einem Beispiel kann der Kamera-Viewport 210 der Brennpunkt der Kamera sein, die zur Aufnahme des Photos 266 verwendet wurde. In diesem Beispiel ist der Abstand zwischen dem Bild 266 und dem Kamera-Viewport 210 die Brennweite 270.
-
Ein Punkt 204 ist die Schnittstelle zwischen Strahl 212 und dem virtuellen Modell 202. Punkt 204 kann verwendet werden, um zwischen den Panoramabildern der Straßenebene, wie in 2B–D dargestellt, zu navigieren.
-
2B ist ein Diagramm 220, das ein Beispiel der Spurwechselausführung zeigt. Strahl 212 und Punkt 204 auf Modell 202 werden mit Hilfe eines Bilds festgelegt, das einen Standpunkt 214 auf einer Straße 208 besitzt. Ein Panoramabild, das von Standort 206 in der Nähe von Standort 214 aufgenommen wurde, jedoch auf einer anderen Spur der Straße 208, wird ebenfalls in 2B angegeben. Das Panoramabild mit dem Standort 206 ist zum Punkt 204 orientiert.
-
2C ist ein Diagramm 230, das ein Beispiel für die Walk-Around-Ausführung zeigt. Strahl 212 und Punkt 204 auf Modell 202 werden unter Verwendung eines von Standort 214 aufgenommenen Bilds bestimmt. Ein Panoramabild mit einem Standort 232 kann beispielsweise von einem Nutzer ausgewählt werden. Das Panoramabild mit dem Standort 232 ist zum Punkt 204 orientiert.
-
2D ist ein Diagramm 250, das ein Beispiel der Click-and-Go-Ausführung zeigt. Strahl 212 und Punkt 204 auf Modell 202 werden unter Verwendung eines Bilds mit einem Standort 214 bestimmt. Ein Panoramabild mit dem Standort 252, der in der Nähe des Standorts 204 liegt, wird ausgewählt. In einem Beispiel kann der Punkt 204 normal zur Straße 208 von einem Standort 252 entfernt sein, wie in 2D gezeigt. In einem anderen Beispiel kann der Standort 252 normal zum virtuellen Modell 202 vom Punkt 204 entfernt liegen. Das Panoramabild mit dem Standort 252 kann zum Punkt 204 orientiert sein oder kann in der Richtung der Straße 208 orientiert sein.
-
3 ist ein Flussdiagramm, das ein Verfahren 300 zur Navigation innerhalb der Panoramabilddaten gemäß einer Ausführungsform der vorliegenden Erfindung darstellt. Verfahren 300 beginnt mit der Ausrichtung eines ersten Panoramabilds bei Schritt 302. In Schritt 304 erstreckt sich ein Strahl in die Richtung der Ausrichtung des ersten Panoramabilds, wie beispielsweise in Bezug auf 2A beschrieben. Ein Strahl kann ebenfalls entsprechend einem vom Benutzer ausgewählten Punkts auf dem Panoramabild bestimmt werden. In Schritt 306 wird eine Schnittstelle zwischen dem Strahl und einem virtuellen Modell bestimmt. Das virtuelle Modell kann unter Verwendung von Bildinhalten festgelegt werden.
-
In Ausführungsformen kann die Schnittstelle auf verschiedene Weisen zur Navigation zwischen Panoramabildern verwendet werden. In den Spurwechsel- oder Walk-Around-Ausführungen kann beispielsweise ein zweites Panoramabild bei Schritt 310 ausgewählt werden. In der Spurwechselausführung hat das zweite Panoramabild einen ähnlichen Standort, wie das erste Panoramabild, jedoch auf einer anderen Spur. In der Walk-Around-Ausführung kann das zweite Panoramabild beispielsweise von einem Nutzer ausgewählt werden. Das zweite Panoramabild ist in Schritt 316 zur Schnittstelle hin orientiert. Nach Schritt 316 endet das Verfahren 300.
-
In der Click-and-Go-Ausführung kann ein zweites Panoramabild derart gestaltet sein, dass es bei Schritt 308 nahe der Schnittstelle (beispielsweise innerhalb eines ausgewählten oder vorher festgelegten Abstands zur Schnittstelle) liegt, wie in Bezug auf 2D gezeigt. In Schritt 314 kann das zweite Panoramabild zur Schnittstelle hin orientiert sein, oder das zweite Panoramabild kann in andere Richtungen orientiert sein. Das zweite Panoramabild kann beispielsweise in der Richtung der Straße orientiert sein. Nach Schritt 314 endet das Verfahren 300.
-
4 ist ein Flussdiagramm, das ein Verfahren 400 zur Erzeugung eines virtuellen Modells aus den Bilddaten gemäß einer Ausführungsform der Erfindung darstellt.
-
Verfahren 400 beginnt mit Schritt 402. In Schritt 402 werden die Merkmale der Bilder bestimmt. In einer Ausführungsform werden die Merkmale aus den Bildern für einen späteren Vergleich extrahiert. Dies wird unten genauer in Bezug auf 5A–B beschrieben. In einer Ausführung sind die verwendeten Bilder Panoramabilder von der Straßenebene, die von nahegelegenen Standorten entlang einer Fahrtroute aufgenommen wurden.
-
In Schritt 404 werden Merkmale in benachbarten Bildern zugeordnet. In einer Ausführungsform kann die Zuordnung der Merkmale die Erstellung eines Überlagerungsbaums beinhalten. Dies wird unten detaillierter mit Bezug auf 5C beschrieben.
-
In Schritt 406, werden die Standorte der Merkmale beispielsweise als Punkte im dreidimensionalen Raum berechnet. In einer Ausführungsform werden die Punkte durch die Berechnung von Stereo-Triangulationen bestimmt, wobei zugeordnete Merkmalpaare, wie in Schritt 404 festgelegt, verwendet werden. Die Berechnung von Punkten im dreidimensionalen Raum wird unten detaillierter mit Bezug auf 6–7 beschrieben. Das Ergebnis aus Schritt 406 ist eine Punktewolke.
-
In Schritt 408 werden basierend auf der in Schritt 406 berechneten Punktewolke Fassadenflächen berechnet. In einer Ausführungsform kann Schritt 408 die Verwendung eines dynamischen Optimierungsalgorithmus oder eines Best-Fit-Algorithmus umfassen. In einer Ausführungsform umfasst Schritt 408 beispielsweise das Bearbeiten einer Ebene, die zu einer Straße gefluchtet ist, mithilfe eines Sweeps, wie unten in Bezug auf 9 beschrieben.
-
In Schritt 410 werden Straßenflächen auf der Grundlage des Straßenstandorts berechnet. Diese Straßenflächen werden zusammen mit den in Schritt 408 berechneten Fassadenflächen zur Erstellung eines virtuellen Modells verwendet, entsprechend den in einer Vielzahl von zweidimensionalen Bildern gezeigten Objekten.
-
5A–C veranschaulicht ein Beispiel zur Bestimmung und Abgleichung von Eigenschaften in Bildern gemäß Verfahren 400.
-
5A zeigt ein Bild 502 und ein Bild 504. Bild 502 und Bild 504 Stellen beispielsweise zwei Fotos des gleichen Gebäudes und des gleichen Baums aus unterschiedlichen Perspektiven dar. In einer Ausführungsform können Bild 502 und Bild 504 Ausschnitte von Panoramabildern von der Straßenebene sein. Die beiden Bilder 502 und 504 können von benachbarten Standorten, jedoch aus unterschiedlichen Perspektiven, aufgenommen worden sein.
-
In einer Ausführungsform können die Bilder 502 und 504 aus einem fahrenden Fahrzeug aufgenommen worden sein, an dem eine Rosette von acht Kameras angebracht ist. Die acht Kameras nehmen gleichzeitig acht Bilder aus unterschiedlichen Perspektiven auf. Die acht Bilder können danach so miteinander verbunden werden, dass sie ein Panorama bilden. Bild 502 kann ein unverbundenes Bild aus einer ersten Kamera in der Rosette von acht Kameras sein, die senkrecht zum Fahrzeug ausgerichtet ist. Bild 504 kann ein unverbundenes Bild aus einer zweiten, zur ersten Kamera benachbarten Kamera sein, das zu einem späteren Zeitpunkt aufgenommen wurde.
-
5B veranschaulicht Bild 502 und Bild 504 mit repräsentativen Merkmalen, die entsprechend Schritt 404 aus Verfahren 400 bestimmt/extrahiert wurden. Bild 502 beinhaltet die repräsentativen Merkmale 506, 508 und 512. Bild 504 beinhaltet die repräsentativen Merkmale 510, 514 und 516. Während nur sechs repräsentative Merkmale gezeigt werden, kann es in Wirklichkeit Tausende Merkmale geben, die für jedes Bild bestimmt und extrahiert werden.
-
In einer Ausführungsform kann der Schritt des Extrahierens von Merkmalen die Erkennung von interessanten Punkten und die Beschreibung von Bildmerkmalen beinhalten. Bei der Erkennung von interessanten Punkten (POIs) werden Punkte in einem Bild in Übereinstimmung mit einer Vorgabe erkannt. Dies ist bevorzugt reproduzierbar, wenn Veränderungen im Bild auftreten, wie veränderte Helligkeit oder veränderte Perspektive. Die Umgebung eines jeden POIs ist ein Merkmal. Jedes Merkmal wird von einem Feature-Deskriptor wiedergegeben. Bevorzugt ist ein Feature-Deskriptor unverwechselbar.
-
In einem Beispiel wird ein Speeded Up Robust Features (SURF) Algorithmus verwendet, um Merkmale aus benachbarten Bildern zu extrahieren. Der SURF-Algorithmus wird beispielsweise beschrieben in
Herbert Bay, Tinne Tuytelaars, Luc Van Gool, "SURF: Speeded Up Robust Features", Proceedings of the Ninth European Conference on Computer Vision, May 2006. Der SURF Algorithmus beinhaltet ein Schema zur POI-Erkennung und zur Beschreibung von Merkmalen. Im SURF-Algorithmus beinhaltet jeder Feature-Deskriptor einen Vektor. In einer Umsetzung kann der Vektor 128-dimensional sein. In einem Beispiel, wo es sich bei den Bildern um von der Straßenebene aufgenommene Panoramabilder handelt, kann der SURF-Algorithmus vier- bis fünftausend Merkmale in jedem Bild extrahieren, was zu einer Feature-Deskriptor-Datei von ein bis zwei Megabyte führt.
-
5C veranschaulicht die Zuordnung der extrahierten Merkmale. 5C zeigt eine Zuordnung 520 und eine Zuordnung 522. Zuordnung 520 beinhaltet Merkmal 512 und Merkmal 514. Zuordnung 522 beinhaltet Merkmal 506 und Merkmal 516. Wie in 5C dargestellt, hat nicht jedes Merkmal in Bild 502 ein entsprechendes Merkmal in Bild 504 und umgekehrt. Merkmal 508 in Bild 502 hat beispielsweise kein entsprechendes Merkmal in Bild 504, weil Merkmal 508 einen Ausschnitt eines Baums zeigt, der in Bild 504 verdeckt ist. In einem anderen Beispiel hat Merkmal 510 in Bild 504 beispielsweise keine Zuordnung in Bild 502, weil bei der Merkmalerkennung eine Ungenauigkeit aufgetreten ist. Die Merkmalerkennung sollte so genau wie möglich sein. Aufgrund von Schwankungen bei der Beleuchtung, der Ausrichtung sowie von anderen Faktoren sind Ungenauigkeiten jedoch wahrscheinlich. Aus diesem Grund ist ein Merkmalzuordnungsschema erforderlich, das diese Ungenauigkeiten ausgleicht. Ein Merkmalzuordnungsschema wird unten beschrieben.
-
In einer Ausführungsform wird jedes Merkmal, wie Merkmal 512, von einem Feature-Deskriptor wiedergegeben. Jeder Feature-Deskriptor beinhaltet einen 128-dimensionalen Vektor. Die Ähnlichkeit zwischen dem ersten und dem zweiten Merkmal kann durch die Bestimmung des euklidischen Abstands zwischen dem Vektor des ersten Feature-Deskriptors und dem Vektor des zweiten Feature-Deskriptors festgelegt werden.
-
Eine Zuordnung für ein Merkmal im ersten Bild aus den Merkmalen im zweiten Bild kann beispielsweise wie folgt bestimmt werden. Zuerst wird der nächste Nachbar [nearest neighbor](z. B. im 128-dimensionalen Raum) eines Merkmals im ersten Bild aus den Merkmalen im zweiten Bild bestimmt. Als zweites wird der zweitnächste Nachbar (z. B. im 128-dimensionalen Raum) des Merkmals im ersten Bild aus den Merkmalen im zweiten Bild bestimmt. Der dritte Schritt ist die Bestimmung eines ersten Abstands zwischen dem Merkmal im ersten Bild und dem nächst benachbarten Merkmal im zweiten Bild, sowie eines zweiten Abstands zwischen dem Merkmal im ersten Bild und dem zweit nächst benachbarten Merkmal im zweiten Bild. Viertens wird ein Merkmalähnlichkeitsverhältnis errechnet, indem man den ersten Abstand durch den zweiten Abstand teilt. Liegt das Merkmalähnlichkeitsverhältnis unter einem bestimmten Schwellenwert, gibt es eine Zuordnung zwischen dem Merkmal des ersten Bilds und dem nächsten Nachbarn des zweiten Bilds.
-
Wenn das Merkmalähnlichkeitsverhältnis zu niedrig ist, sind nicht genügend Zuordnungen bestimmt worden. Wenn das Merkmalähnlichkeitsverhältnis zu hoch ist, sind zu viele falsche Zuordnungen bestimmt worden. In einer Ausführungsform kann das Merkmalähnlichkeitsverhältnis zwischen 0,5 und einschließlich 0,95 liegen.
-
In einer Ausführungsform können der nächste und der zweitnächste Nachbar durch das Erstellen eines Überlagerungsbaums der Merkmale des zweiten Bilds bestimmt werden. Der Überlagerungsbaum nähert die nächsten Nachbarn an und nutzt die Prozessorressourcen effektiv. In einem Beispiel, wo es sich bei den abgeglichenen Bildern um von der Straßenebene aufgenommene Panoramabilder handelt, kann es Hunderte zugeordnete Merkmalpaare für jedes Bildpaar geben. Für jedes zugeordnete Merkmalpaar kann ein Punkt im dreidimensionalen Raum beispielsweise durch Verwendung von Stereo-Triangulation bestimmt werden.
-
6 und 7 veranschaulichen ein Beispiel zur Bestimmung eines Punkts im dreidimensionalen Raum auf der Basis von zugeordneten Merkmalen mittels dreidimensionaler Stereo-Triangulation. In einer Ausführungsform wird diese Technik beispielsweise verwendet, um Schritt 406 des Verfahrens 400 zu implementieren. Zur Bestimmung eines Punkts im dreidimensionalen Raum in Übereinstimmung mit einem zugeordneten Merkmalpaar werden für das zugeordnete Merkmalpaar Strahlen konstruiert und der Punkt dann auf der Grundlage der Schnittstelle der Strahlen bestimmt. Dies wird unten detaillierter beschrieben.
-
6 zeigt ein Beispiel 600, das zeigt, wie ein Strahl erstellt wird. Wie in 6 gezeigt, kann ein Strahl 606 durch die Projektion oder Verlängerung eines Strahls aus einem Kamera-Viewport 602 eines Bilds 608 durch ein Merkmal 604 eines Bilds 608 erzeugt werden. In Beispiel 600 entspricht der Kamera-Viewport 602 dem Brennpunkt der Kamera, mit der das Bild 608 aufgenommen wurde. Der Abstand zwischen Bild 608 und dem Kamera-Viewport 602 entspricht der Brennweite 610.
-
Nachdem für alle zugeordneten Merkmale ein Strahl erzeugt wurde, kann ein Punkt im dreidimensionalen Raum bestimmt werden. 7 veranschaulicht ein Beispiel 700, das die Bestimmung eines Punkts darstellt.
-
In Beispiel 700 werden zwei Kamerarosetten 702 und 704 gezeigt. In einer Ausführungsform können diese beiden Kamerarosetten dieselben sein (z. B. dieselbe Kamerarosette kann zur Aufnahme von Bildern an verschiedenen Orten und zu verschiedenen Zeitpunkten verwendet werden). Jede Kamerarosette 702 und 704 beinhaltet ein Bild mit einem zugeordneten Merkmal. In Beispiel 700 beinhaltet die Kamerarosette 702 ein Merkmal 706, dem ein Merkmal 708 der Kamerarosette 704 zugeordnet wird. Wie in 7, ein erster Strahl 710 wird durch die Verlängerung von Strahl 710 aus dem Kamera-Viewport der Kamerarosette 702 durch das Merkmal 706 gebildet. Ähnlich wird ein zweiter Strahl 712 durch die Verlängerung von Strahl 712 aus dem Kamera-Viewport der Kamerarosette 704 durch das Merkmal 708 gebildet. Die Schnittstelle von Strahl 710 und Strahl 712 stellt einen dreidimensionalen Punkt 714 dar. In Ausführungsformen schneiden sich die Strahlen 710 und 712 möglicherweise nicht tatsächlich am Punkt 714, beispielsweise aufgrund von Ungenauigkeiten bei der Bestimmung und Zuordnung der Merkmale. Falls sich die Strahlen 710 und 712 nicht tatsächlich schneiden, kann ein Liniensegment festgelegt werden, wo sich die Strahlen am nächsten kommen. In diesen Fällen kann der verwendete dreidimensionale Punkt 714 der Mittelpunkt des Liniensegments sein.
-
In Ausführungsformen, wie oben beschrieben, werden die in den Beispielen 600 und 700 aufgeführten Schritte bei jedem zugeordneten Merkmalpaar wiederholt, um so eine Wolke an dreidimensionalen Punkten zu bestimmen.
-
8A zeigt ein Beispiel 800 eines dreidimensionalen Raums, der ein Gebäude 806 und einen Baum 808 beinhaltet. Beispiel 800 beinhaltet auch eine Straße 810. In einer Ausführungsform können Fotos des Gebäudes 806 und des Baums 808 von einem Fahrzeug aus aufgenommen worden sein, das die Straße 810 entlang fährt. Ein erstes Foto kann aus Position 802 gemacht worden sein, während ein zweites Foto aus Position 804 gemacht worden sein kann.
-
Wie hierin beschrieben werden die Merkmale gemäß einer Ausführungsform der vorliegenden Erfindung aus dem ersten und dem zweiten Bild herausgefiltert. Merkmalzuordnungen werden bestimmt und für jedes zugeordnete Merkmalpaar wird beispielsweise mithilfe von Stereo-Triangulation ein dreidimensionaler Punkt festgelegt. Dies ergibt eine Wolke von dreidimensionalen Punkten, wie in 8B dargestellt. 8B veranschaulicht ein Beispiel 850, bei dem eine Wolke von dreidimensionalen Punkten 852 wiedergegeben wird.
-
9A–C veranschaulicht ein Beispiel, wie eine Fassadenfläche auf der Basis von einer Vielzahl von Punkten im dreidimensionalen Raum bestimmt werden kann. Dieses Beispiel dient nur zur Veranschaulichung und kann beispielsweise zur Umsetzung von Schritt 408 des Verfahrens 400 verwendet werden. In anderen Ausführungsformen kann die Fläche durch Verwendung eines Best-Fit-Algorithmus oder eines Regressions-Analyse-Algorithmus, wie beispielsweise ein Algorithmus der kleinsten Quadrate oder ein Algorithmus der dynamischen Optimierung, bestimmt werden. Beispiele für Algorithmen der dynamischen Optimierung beinhalten Aufstiegsalgorithmen, stochastische Aufstiegsalgorithmen, einen A*-Algorithmus und einen genetischen Algorithmus.
-
9A stellt eine Straße 908 und eine Wolke von dreidimensionalen Punkten 910 dar. Parallel zur Straße 908 verläuft eine Fassadenfläche 902. In der Anwendung wird die Fassadenfläche 902 nach außen auf einer Achse von Straße 908 übertragen. In jeder sich nach außen bewegenden Position wird die Anzahl der Punkte innerhalb eines bestimmten Bereichs der Fassadenfläche 902 berechnet. In 9A wird der Bereich durch die gepunkteten Linien 912 und 914 gezeigt. Wie in 9A, null Punkte befinden sich zwischen den gepunkteten Linien 912 und 914.
-
9B zeigt eine Fassadenfläche 904, die auf einer Achse von Straße 908 nach außen übertragen wird. In 9B, Fassadenfläche 904 wurde von der Straße 908 nach draußen bewegt, so dass ein größerer Abstand als der der Fassadenfläche 902, dargestellt in 9A, entstanden ist. Deshalb liegen nun drei Punkte innerhalb des Bereichs von Fassadenfläche 904.
-
In einer Ausführungsform kann, falls für die Fassadenfläche keine Position gefunden wird (z. B. eine Position mit einer vorgegebenen Anzahl von benachbarten Punkten), der Winkel der Fassadenfläche zur Straße verändert werden. Entsprechend zeigt 9C eine Fassadenfläche 906, die bezüglich der Straße 908 in einem nicht parallelen Winkel verläuft. Wie in 9C, fünf Punkte liegen nahe der Fassadenfläche 906.
-
Wie hierin beschrieben, wird ein virtuelles Modell entsprechend der vorliegenden Erfindung aus Fassadenflächen erstellt. Die Fassadenflächen können entsprechend dem Bildinhalt erzeugt werden. In einer Ausführungsform kann das Modell auch eine oder mehrere Straßenflächen (z. B. eine Ebene parallel zur Straße) beinhalten. In einer Ausführungsform kann eine Straßenfläche basierend auf einer bekannten Position einer Straße berechnet werden (z. B. kann die Position der Straße bezüglich der Kamera, mit der die Bilder aufgenommen wurden, bekannt sein). Das virtuelle Modell kann zweidimensional oder dreidimensional sein.
-
10 zeigt ein System 1000 zur Verwendung eines dreidimensionalen Modells zur Navigation zwischen Bilddaten entsprechend einer Ausführungsform der Erfindung. Wie in 10, System 1000 beinhaltet einen Client 1002. Der Client 1002 kommuniziert mit einem oder mehreren Servern 1024 beispielsweise durch ein Netzwerk/Netzwerke 1044. Der Client 1002 kann ein Universalrechner sein. Alternativ kann der Klient 1002 ein spezielles Computergerät, wie beispielsweise ein Mobiltelefon, sein. Ähnlich können Server 1024 eingesetzt werden, die ein Computergerät verwenden, das den Client 1002 mit Daten versorgen kann.
-
Der Server 1024 kann einen Webserver beinhalten. Ein Webserver ist ein Software-Bauteil, das mit einer HTTP-Antwort auf eine Anfrage eines Hypertext-Übertragungsprotokolls antwortet. Als veranschaulichende Beispiele kann der Server, ohne darauf beschränkt zu sein, ein Apache HTTP Server, ein Apache Tomcat, ein Microsoft Internet Information Server, ein JBoss Application Server, ein WebLogic Application Server, oder ein Sun Java System Web Server sein. Der Webserver kann Inhalte, wie Hypertext-Auszeichnungssprache (HTML), erweiterbare HTML (XML), Dokumente, Videos, Bilder, Multimedia-Features oder eine Kombination davon, bereitstellen. Dieses Beispiel dient nur zur Veranschaulichung und ist keine Beschränkung der vorliegenden Erfindung.
-
Der Server 1024 kann Kartenkacheln 1014, ein Programm 1016, Konfigurationsinformationen 1018 und/oder Panoramakacheln 1020, wie unten besprochen, bereitstellen.
-
Das/die Netzwerk(e) 1044 kann/können irgendein Netzwerk oder eine Kombination aus Netzwerken sein, das/die Datenkommunikation übertragen kann/können, und kann hier als Computernetzwerk bezeichnet werden. Das/die Netzwerk(e) 1044 kann/können ein Local Area Network, ein Medium Area Network und/oder ein Wide Area Network, wie das Internet, sein, sind aber nicht auf diese beschränkt. Das/die Netzwerk(e) 1044 kann/können Protokolle und Techniken sein, wie World Wide Web-Protokolle und/oder -Dienste, sind aber nicht auf diese beschränkt. Zwischengeschaltete Webserver, Gateways oder andere Server können zwischen den Bauteilen des Systems 1000 angebracht werden, abhängig von einer bestimmten Anwendung oder Umgebung.
-
Der Server 1024 ist gekoppelt an eine Panoramadatenbank 1028 und eine Modelldatenbank 1030. Die Panoramadatenbank 1028 speichert Bilder. In einem Beispiel können die Bilder Fotos sein, die von der Straßenebene aufgenommen wurden. Die vom gleichen Ort aufgenommenen Fotos können zu einem Panorama verbunden werden. Die Modelldatenbank 1030 speichert ein dreidimensionales Modell entsprechend den Bildern in der Panoramadatenbank 1028. Ein Beispiel für eine Möglichkeit der Erzeugung eines dreidimensionalen Modells wird unten genauer besprochen. Die Kommentardatenbank 1032 speichert die vom Nutzer erstellten Kommentare.
-
Sowohl die Panoramadatenbank 1028, als auch die Modelldatenbank 1030 und die Kommentardatenbank 1032 können auf einem relationalen Datenbankmanagementsystem umgesetzt werden. Beispiele für relationale Datenbanken beinhalten Oracle, Microsoft SQL Server und MySQL. Die Beispiele sind nur zur Veranschaulichung und sollen keine Einschränkung der vorliegenden Erfindung darstellen.
-
Der Server 1024 umfasst einen Navigationscontroller 1032. Der Navigationscontroller 1032 verwendet ein aus Bildinhalten erzeugtes Modell in der Modelldatenbank 1030, um die Navigation zwischen den Panoramas zu erleichtern. Der Navigationscontroller 1032 erhält Eingaben von Navigationsdaten 1042. Die Navigationsdaten 1042 enthalten Daten über die derzeitige Position und Ausrichtung sowie Daten über die gewünschte nächste Position. In der Click-and-Go-Ausführung können die Navigationsdaten 1042 beispielsweise ein erstes Panoramabild und den Ort in einem ersten Panoramabild, zu dem der Nutzer gehen möchte, enthalten. Die Navigationsdaten 1042 können beispielsweise eine HTTP-Anfrage mit als HTTP-Parameter codierten Daten sein.
-
Als Reaktion auf die Navigationsdaten 1042 legt der Navigationscontroller 1032 das neue Panorama in der Panoramadatenbank 1028 basierend auf dem Modell in der Modelldatenbank 1030 fest. Der Navigationscontroller 1032 bestimmt auch die Ausrichtung für die Anzeige eines zweiten Panoramas. Der Navigationscontroller 1032 gibt das neue Panorama und die Ausrichtung als Konfigurationsinformationen 1018 und Panoramakacheln 1020 aus.
-
Der Navigationscontroller 1032 kann einen Spurwechselcontroller 1034, einen Click-and-Go-Controller 1036, und einen Rundum-Controller 1038 beinhalten. Gemäß einer Ausführungsform der vorliegenden Erfindung reagiert sowohl der Spurwechselcontroller 1034 als auch der Click-and-Go-Controller 1036 und der Walk-Around-Controller 1038 auf die Navigationsdaten 1042.
-
Der Spurwechselcontroller 1034 funktioniert entsprechend der Spurwechselausführung der vorliegenden Erfindung. Als Reaktion auf die Navigationsdaten 1042 wählt der Spurwechselcontroller 1034 ein zweites Panoramabild aus der Panoramadatenbank 1028 aus. Das zweite Panoramabild ist in der Nähe des Standorts des ersten Panoramabilds, jedoch in einer anderen Spur. In einem Beispiel kann das zweite Panoramabild das nächste Panoramabild in der Panoramadatenbank 1028 sein, das in einer anderen Spur besteht. Der Spurwechselcontroller 1034 bestimmt den Ort im Modell in der Modelldatenbank 1030 entsprechend der Position und Ausrichtung des ersten Panoramas in den Navigationsdaten 1042. Um den Ort zu bestimmen, verlängert der Spurwechselcontroller 1034 in einer Ausführungsform einen Strahl von der Position in der Richtung der Ausrichtung, wie in 2A basiert. Der Spurwechselcontroller 1034 bestimmt dann die Ausrichtung des zweiten Panoramas, wie in Bezug auf 2B angegeben. Schließlich zerlegt der Spurwechselcontroller 1034 das zweite Panorama in Panoramakacheln 1020 und die Ausrichtung des zweiten Panoramas in Konfigurationsinformationen 1018.
-
Der Click-and-Go-Controller 1036 funktioniert entsprechend der Click-and-Go-Ausführung der vorliegenden Erfindung. Als Reaktion auf die Navigationsdaten 1042 wählt der Click-and-Go-Controller 1036 ein zweites Panoramabild aus der Panoramadatenbank 1028 aus. Der Click-and-Go-Controller 1036 wählt ein zweites Panoramabild basierend auf dem Standort des ersten Panoramabilds aus den Navigationsdaten 1042 aus. Der Standort des ersten Panoramabilds kann durch ein Eingabegerät des Nutzers, wie beispielsweise eine Maus, bestimmt werden. Der Click-and-Go-Controller 1036 verwendet den Standort des ersten Panoramabilds zur Bestimmung eines Orts im Modell in der Modelldatenbank 1042, wie mit Bezug auf 2A beschrieben. Der Click-and-Go-Controller 1036 wählt dann ein zweites Panoramabild basierend auf dem Ort im Modell aus. Das zweite Panoramabild befindet sich in der Nähe des Orts im Modell, wie mit Bezug auf 2D gezeigt. In einem Beispiel kann der Standpunkt des zweiten Panoramabilds so sein, dass der Standpunkt auf dem Modell zur Straße normal ist. In einem anderen Beispiel kann das zweite Panoramabild einen Standpunkt haben, der zum virtuellen Modell normal ist. Der Click-and-Go-Controller 1036 bestimmt die Ausrichtung des zweiten Panoramas. Das zweite Panorama kann zum Standpunkt im Modell orientiert sein, oder das zweite Panorama kann in die Richtung der Straße orientiert sein. Schließlich gibt der Click-and-Go-Controller 1036 das zweite Panorama in Panoramakacheln 1020 wieder sowie dessen Ausrichtung in Konfigurationsinformationen 1018.
-
Der Walk-Around-Controller 1038 wählt ein zweites Panoramabild aus der Panoramadatenbank 1028 als Reaktion auf die Navigationsdaten 1042 aus. Das zweite Panoramabild kann beispielsweise in Übereinstimmung mit einer vom Nutzer eingegebenen Position in den Navigationsdaten 1042 ausgewählt werden. Der Walk-Around-Controller 1038 bestimmt einen Standpunkt im Modell in der Modelldatenbank 1030 entsprechend der Position und Ausrichtung des ersten Panoramas in den Navigationsdaten 1042. Zur Bestimmung des Standpunkts verlängert der Walk-Around-Controller 1038 einen Strahl aus der Position in die Richtung der Ausrichtung, wie mit Bezug auf 2A basiert. Der Walk-Around-Controller 1038 bestimmt eine Ausrichtung des zweiten Panoramas, wie oben beschrieben. Schließlich gibt der Walk-Around-Controller 1038 das zweite Panorama in Panoramakacheln 1020 sowie die Ausrichtung des zweiten Panoramas in Konfigurationsinformationen 1018 wieder.
-
In einer Ausführungsform kann der Client 1002 einen Mapping-Dienst 1006 und einen Panorama-Viewer 1008 beinhalten. Sowohl Mapping-Dienst 1006 als auch Panorama-Viewer 1008 können eine eigenständige Anwendung sein oder in einem Browser 1004 ausgeführt werden. In Ausführungsformen kann der Browser 1004 Mozilla Firefox oder Microsoft Internet Explorer sein. Der Panorama-Viewer 1008 kann beispielsweise als ein Script im Browser 1004, als ein Plug-In im Browser 1004 oder als ein Programm, das in einem Browser Plug-In abläuft, wie dem Adobe (Macromedia) Flash Plug-In, durchgeführt werden.
-
Der Mapping-Dienst 1006 zeigt eine visuelle Darstellung einer Karte, beispielsweise als Viewport in ein Gitter aus Kartenkacheln. Für die Implementierung des Mapping-Systems 1006 wird eine Kombination von Markup- und Scripting-Elementen, wie beispielsweise HTML und Javascript, verwendet. Wenn das Viewportfenster bewegt wird, braucht der Mapping-Dienst 1006 zusätzliche Kartenkacheln 1014 vom Server/von den Servern 1024, soweit die erforderlichen Kartenkacheln nicht bereits im örtlichen Cache zwischengespeichert sind. Insbesondere der/die Server, die die Kartenkacheln 1014 bereitstellen, kann/können der/die selbe(n) Server oder andere Server sein, als der/die, die die Panoramakacheln 1020, die Konfigurationsinformationen 1018 oder die anderen hierin benötigten Daten bereitstellen.
-
In einer Ausführungsform kann der Mapping-Dienst 1006 erfordern, dass der Browser 1004 ein Programm 1016 für einen Panorama-Viewer 1008 von dem/den Server(n) 1024 downloadet und das nötige Plug-In instantiiert, damit das Programm 1016 läuft. Das Programm 1016 kann eine Flash-Datei sein oder eine andere Art von ausführbaren Inhalten. Der Panorama-Viewer 1008 arbeitet entsprechend dem Programm 1016.
-
Der Panorama-Viewer 1008 benötigt Konfigurationsinformationen 1018 von dem/den Server(n) 1024. Die Konfigurationsinformationen beinhalten Meta-Informationen über ein zu ladendes Panorama, einschließlich Informationen über Links in den Panoramas zu anderen Panoramas. In einer Ausführungsform wird die Konfigurationsinformation in einer Form, wie beispielsweise als Extensible Markup Language (XML), dargestellt. Der Panorama-Viewer 1008 ruft visuelle Elemente 1020 für das Panorama beispielsweise in Form von Panoramabildern oder in Form von Panoramakacheln ab. In einer anderen Ausführungsform beinhalten die visuellen Elemente die Konfigurationsinformationen im jeweiligen Dateiformat. Der Panorama-Viewer 1008 gibt eine visuelle Darstellung auf dem Client-Display des Panoramas und anderen Nutzerschnittstellen wieder, wie sie aus den Konfigurationsinformationen 1018 und den visuellen Elementen 1020 erzeugt wurde. Wenn ein Nutzer die visuelle Wiedergabe des Panoramas mit einem Eingabegerät bearbeitet, aktualisiert der Panorama-Viewer 1008 die visuelle Darstellung und lädt dann nach Bedarf weitere Konfigurationsinformationen und visuelle Elemente herunter.
-
Sowohl der Browser 1004 als auch der Mapping-Dienst 1006 und der Panorama-Viewer 1008 können als Hardware, Software, Firmware oder einer Kombination daraus implementiert werden.
-
11 zeigt ein System 1100 zur Erzeugung eines virtuellen Modells aus Bilddaten gemäß einer Ausführungsform der Erfindung. System 1100 beinhaltet eine Panoramadatenbank 1028 und eine Modelldatenbank 1030, die jeweils mit einem Verarbeitungspipeline-Server 1124 gekoppelt sind. Verarbeitungspipeline-Server 1124 kann jedes Computergerät sein. Beispiele für Computergeräte sind ein Computer, ein Arbeitsplatzrechner, ein verteiltes Rechnersystem, ein integriertes System, ein eigenständiges elektronisches Gerät, ein Netzwerkgerät, ein Mobilgerät, ein Rackserver, ein Fernsehgerät oder eine andere Art Computersystem, jedoch nicht auf diese Geräte beschränkt.
-
Der Verarbeitungspipeline-Server 1124 beinhaltet ein Merkmalextraktor 1116, einen Merkmalzuordner 1118, einen Punktkalkulator 1120, und einen Flächenberechner 1122. Sowohl der Merkmalextraktor 1116, aus auch der Merkmalzuordner 1118, der Punktkalkulator 1120 und der Flächenberechner 1122 können als Hardware, Software, Firmware oder einer Kombination daraus implementiert werden.
-
Der Merkmalextraktor 1116 wählt Bilder 1102 aus der Panoramadatenbank 1028 aus. In einer Ausführungsform können Bilder 1102 zwei Bilder beinhalten, die unverbundene Panoramabilder von der Straßenebene sind. Die beiden Bilder können von benachbarten Standpunkten aufgenommen worden sein, jedoch aus unterschiedlichen Perspektiven. In einer Ausführungsform werden die Bilder von einem fahrenden Fahrzeug, an dem eine Rosette aus acht Kameras befestigt ist, aufgenommen. Die acht Kameras nehmen gleichzeitig acht Bilder aus unterschiedlichen Perspektiven auf. Die acht Bilder können danach so miteinander verbunden werden, dass sie ein Panorama bilden. Das erste Bild kann ein unverbundenes Bild aus einer ersten Kamera in der Rosette aus acht Kameras sein. Das zweite Bild kann ein unverbundenes Bild aus einer zweiten, zur ersten Kamera benachbarten Kamera sein, das zu einem späteren Zeitpunkt aufgenommen wurde.
-
Der Merkmalextraktor 1116 extrahiert Merkmale aus Bildern 1102. In einer Ausführungsform kann der Merkmalextraktor 1116 mehr als eine Funktion durchführen, wie beispielsweise POI-Erkennung und Merkmalbeschreibung. Die POI-Erkennung erkennt Punkte in einem Bild entsprechend der Vorgaben und ist bevorzugt reproduzierbar bei Bildveränderungen, wie beispielsweise Veränderungen der Helligkeit oder der Perspektive. Die Umgebung eines POI wird dann als Merkmal bezeichnet. Diese Merkmale werden durch Feature-Deskriptoren wiedergegeben. Die Feature-Deskriptoren sind bevorzugt unverwechselbar.
-
In einem Beispiel kann ein Speeded Up Robust Features (SURF) Algorithmus zum Extrahieren der Merkmale aus den Bildern verwendet werden. Der SURF Algorithmus beinhaltet ein Schema zur POI-Erkennung und zur Beschreibung von Merkmalen. Im SURF-Algorithmus beinhaltet jeder Feature-Deskriptor einen Vektor. In einer Umsetzung kann der Vektor 128-dimensional sein. In einem Beispiel, wo die Bilder von der Straßenebene aufgenommene Panoramas sind, kann der SURF-Algorithmus vier- bis fünftausend Merkmale aus jedem Bild extrahieren, was zu einer Feature-Deskriptor-Datei 1104 von ein bis zwei Megabyte führt.
-
Der Merkmalzuordner 1118 verwendet die Feature-Deskriptor-Datei 1104 für die Zuordnung der Merkmale in den beiden Bildern. In einem Beispiel wird jedes Merkmal durch einen Feature-Deskriptor in der Feature-Deskriptor-Datei 1104 wiedergegeben. Jeder Feature-Deskriptor beinhaltet einen 128-dimensionalen Vektor. Die Ähnlichkeit zwischen einem ersten Merkmal und einem zweiten Merkmal kann durch die Bestimmung des euklidischen Abstands zwischen dem Vektor des ersten Merkmals und dem Vektor des zweiten Merkmals bestimmt werden.
-
Eine Zuordnung für ein Merkmal im ersten Bild aus den Merkmalen im zweiten Bild kann wie folgt bestimmt werden. Als erstes bestimmt der Merkmalzuordner 1118 den nächsten Nachbarn (z. B. im 118-dimensionalen Raum) des Merkmals im ersten Bild, der aus den Merkmalen im zweiten Bild bestimmt wird. Zweitens bestimmt der Merkmalzuordner 1118 den zweitnächsten Nachbarn des Merkmals im ersten Bild, der aus den Merkmalen im zweiten Bild bestimmt wird. Drittens bestimmt der Merkmalzuordner 1118 einen ersten Abstand zwischen dem Merkmal im ersten Bild und dem nächst benachbarten Merkmal im zweiten Bild, und der Merkmalzuordner 1118 bestimmt einen zweiten Abstand zwischen dem Merkmal im ersten Bild und dem zweit nächst benachbarten Merkmal im zweiten Bild. Viertens berechnet der Merkmalzuordner 1118 ein Merkmalähnlichkeitsverhältnis, indem der erste Abstand durch den zweiten Abstand geteilt wird. Liegt das Merkmalähnlichkeitsverhältnis unter einem bestimmten Schwellenwert, gibt es eine Zuordnung zwischen dem Merkmal des ersten Bilds und dem nächsten Nachbarn des zweiten Bilds.
-
Der Merkmalzuordner 1118 kann den nächsten Nachbarn und den zweitnächsten Nachbarn beispielsweise durch Erstellung eines Überlagerungsbaums bestimmen.
-
Falls das Merkmalähnlichkeitsverhältnis zu niedrig ist, kann der Merkmalzuordner 1118 nicht genügend Matches bestimmen. Falls das Merkmalähnlichkeitsverhältnis zu hoch ist, kann der Merkmalzuordner 1118 zu viele falsche Matches bestimmen. In einer Ausführungsform kann das Merkmalähnlichkeitsverhältnis zwischen 0,5 und einschließlich 0,95 liegen. In Beispielen, wo Panoramas von der Straßenebene aufgenommen wurden, kann es mehrere hundert zugeordnete Merkmale geben. Die zugeordneten Merkmale werden zum Punktkalkulator 1120 als zugeordnete Merkmale 1106 geschickt.
-
Der Punktkalkulator 1120 bestimmt einen Punkt im dreidimensionalen Raum für jedes zugeordnete Merkmalpaar 1106. Zur Bestimmung eines Punkts im dreidimensionalen Raum wird für jedes Merkmal ein Strahl erzeugt oder festgelegt, und der Punkt wird basierend auf der Schnittstelle der Strahlen für jedes Merkmal bestimmt. In einer Ausführungsform wird der Punkt, falls sich die Strahlen nicht schneiden, basierend auf dem Mittelpunkt des kürzesten Liniensegments, das die beiden Strahlen verbindet, bestimmt. Die Ausgabe des Punktkalkulators 1120 ist eine Wolke aus dreidimensionalen Punkten 1108 (z. B. ein Punkt für jedes zugeordnete Merkmalpaar).
-
Der Flächenberechner 1122 bestimmt eine Fassadenfläche basierend auf der Wolke aus Punkten 1108. Der Flächenberechner 1122 kann die Fassadenfläche mithilfe eines Best-Fit-Algorithmus oder eines Regressions-Analyse-Algorithmus, wie beispielsweise ein Algorithmus der kleinsten Quadrate oder ein Algorithmus der dynamischen Optimierung, bestimmt werden. Beispiele für Algorithmen der dynamischen Optimierung beinhalten Aufstiegsalgorithmen, stochastische Aufstiegsalgorithmen, einen A*-Algorithmus und einen genetischen Algorithmus. Alternativ kann der Flächenberechner 1122 die Fassadenfläche durch Übertragung einer Fläche bestimmen, so dass die beste Position der Fläche entlang einer Achse bestimmt wird, wie oben hinsichtlich 9A–C beschrieben.
-
Der Flächenberechner 1122 kann auch eine oder mehrere Straßenflächen bestimmen. Die Straßenflächen und die Fassadenflächen bilden gemeinsam die Oberflächen 1110. Der Flächenberechner 1122 speichert die Oberflächen 1110 in der Modelldatenbank 1030.
-
Es wird erwartet, dass die Detaillierte Beschreibung und nicht die Zusamenfassungs- und Kurzfassungsabschnitte für die Interpretation der Ansprüche verwendet wird. Die Zusammenfassungs- und Kurzfassungsabschnitte können eine oder mehrere, aber nicht alle exemplarischen Ausführungsformen der vorliegenden Erfindung wie von den Erfindern betrachtet, erwaitern und sollen daher die vorliegende Erfindung und die angehängten Ansprüche in keinster Weise einschränken.
-
Die vorliegende Erfindung wurde vorstehend mittels funktionaler Bausteine beschrieben, die die Implementierung der angegebenen Funktionen und deren Beziehungen veranschaulichen. Die Grenzen dieser funktionalen Bausteine wurden zum besseren Verständnis der Beschreibung hierin willkürlich definiert. Alternative Grenzen können definiert werden, solange deren spezifizierte Funktionen und Beziehungen angemessen durchgeführt werden.
-
Die vorstehende Beschreibung der spezifischen Ausführungsformen zeigt somit die allgemeine Natur der Erfindung vollständig, die andere durch die Anwendung fachgerechter Technik problemlos ändern bzw. für verschiedene Anwendungen solcher spezifischer Ausführungsformen anpassen können, ohne unangemessenes Experimentieren und ohne vom allgemeinen Konzept der vorliegenden Erfindung abzuweichen. Daher sind solche Anpassungen und Modifikationen auf Basis der hierin präsentierten Lehre und Anleitung als innerhalb der Bedeutungen des Bereichs der Äquivalente der offenbarten Ausführungsformen zu betrachten. Es versteht sich, dass die hierin enthaltene Phraseologie oder Terminologie dem Zweck der Beschreibung und nicht der Einschränkung dient, sodass die Terminologie oder Phraseologie der vorliegenden Spezifikation von Fachleuten angesichts der Lehren und Anleitung zu interpretieren ist.
-
Die Breite und der Wirkungsbereich der vorliegenden Erfindung sollen durch keinerlei der vorstehend beschriebenen exemplarischen Ausführungsformen eingeschränkt sein, sondern lediglich in Übereinstimmung mit den folgenden Ansprüchen und ihren Äquivalenten definiert werden.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-
- Herbert Bay, Tinne Tuytelaars, Luc Van Gool, ”SURF: Speeded Up Robust Features”, Proceedings of the Ninth European Conference on Computer Vision, May 2006 [0053]