-
TECHNISCHES GEBIET
-
Die Anmeldung bezieht sich allgemein auf das Gebiet digitaler Karten.
-
STAND DER TECHNIK
-
Digitale Karten speichern Abbildungsinformationen in einem computerinterpretierbaren Format und können ähnliche Merkmale einschließen und anzeigen wie herkömmliche Papierkarten, wie geografische Merkmale, topografische Merkmale, politische Grenzen, Attraktionen und Transportnetze. Fotografische Bilder können mit Abbildungsinformationen kombiniert werden, wie durch Anzeigen von Kartenmerkmalen, die auf einem Bild überlagert sind. Diese Art der Anzeige kann dazu verwendet werden, um Benutzern von Karten zusätzliche Informationen bereitzustellen, oder kann als Grundlage für die Anmerkung von Karten (d. h. Hinzufügen zusätzlicher Abbildungsinformationen) verwendet werden, um Merkmale zu beschreiben, die in dem Bild zu sehen sind. Diese Bilder werden üblicherweise mit Kameras aufgenommen, die von Satelliten oder Flugzeugen getragen werden.
-
KURZDARSTELLUNG
-
Ein Gesichtspunkt der Offenbarung ist ein Verfahren, das das Erhalten von Bildern, das Erhalten dreidimensionaler Oberflächenmessungen, das Definieren eines dreidimensionalen Netzes unter Verwendung der dreidimensionalen Oberflächenmessungen, das Texturieren des dreidimensionalen Netzes unter Verwendung der Bilder, um ein texturiertes dreidimensionales Netz zu definieren, das Identifizieren eines ersten Abschnitts des texturierten dreidimensionalen Netzes, das Identifizieren eines zweiten Abschnitts des texturierten dreidimensionalen Netzes, der die Sichtbarkeit eines Teils des ersten Abschnitts des texturierten dreidimensionalen Netzes aus einer Überkopfperspektive behindert, und das Rendern eines simulierten perspektivischen Überkopfbildes, sodass der zweite Abschnitt des texturierten dreidimensionalen Netzes nicht in dem simulierten perspektivischen Überkopfbild dargestellt wird, einschließt.
-
In einigen Implementierungen des Verfahrens schließt das Rendern des simulierten perspektivischen Überkopfbildes das Entfernen des zweiten Abschnitts aus dem texturierten dreidimensionalen Netz während des Renderns ein.
-
In einigen Implementierungen des Verfahrens schließt das Rendern des simulierten perspektivischen Überkopfbildes das Ignorieren des zweiten Abschnitts des texturierten dreidimensionalen Netzes während des Renderns ein.
-
In einigen Implementierungen des Verfahrens wird das Rendern des simulierten perspektivischen Überkopfbildes unter Verwendung einer Projektionsebene durchgeführt, die zwischen dem ersten Abschnitt des texturierten dreidimensionalen Netzes und dem zweiten Abschnitt des texturierten dreidimensionalen Netzes positioniert ist.
-
In einigen Implementierungen des Verfahrens wird das Rendern des simulierten perspektivischen Überkopfbildes durchgeführt, indem bewirkt wird, dass der zweite Abschnitt des texturierten dreidimensionalen Netzes nicht sichtbar ist.
-
In einigen Implementierungen des Verfahrens wird der zweite Abschnitt des dreidimensionalen Netzes basierend auf der Position des zweiten Abschnitts des dreidimensionalen Netzes über dem ersten Abschnitt des dreidimensionalen Netzes identifiziert.
-
In einigen Implementierungen des Verfahrens wird der zweite Abschnitt des texturierten dreidimensionalen Netzes basierend auf einem Schnittpunkt einer Projektionslinie von dem ersten Abschnitt des dreidimensionalen texturierten Netzes mit dem zweiten Abschnitt des texturierten dreidimensionalen Netzes identifiziert.
-
In einigen Implementierungen des Verfahrens wird der zweite Abschnitt des texturierten dreidimensionalen Netzes unter Verwendung einer Clipping-Ebene identifiziert, die sich zwischen dem ersten Abschnitt des texturierten dreidimensionalen Netzes und dem zweiten Abschnitt des texturierten dreidimensionalen Netzes befindet.
-
In einigen Implementierungen des Verfahrens wird das Rendern des simulierten perspektivischen Überkopfbildes unter Verwendung einer Projektionsebene und Projektionslinien, die sich orthogonal zur Projektionsebene erstrecken, durchgeführt.
-
In einigen Implementierungen des Verfahrens wird das Erhalten von Bodenniveaubildern unter Verwendung einer Kamera durchgeführt.
-
In einigen Implementierungen des Verfahrens wird das Erhalten dreidimensionaler Oberflächenmessungen auf Bodenniveau unter Verwendung eines dreidimensionalen Sensors durchgeführt.
-
In einigen Implementierungen des Verfahrens definieren die dreidimensionalen Oberflächenmessungen eine Punktwolke.
-
Ein weiterer Gesichtspunkt der Offenbarung ist eine nicht-transitorische computerlesbare Festspeichervorrichtung, die Programmanweisungen einschließt, die von einem oder mehreren Prozessoren ausgeführt werden können, die, wenn sie ausgeführt werden, bewirken, dass der eine oder die mehreren Prozessoren Operationen ausführen. Die Operationen schließen das Erhalten von Bildern, das Erhalten dreidimensionaler Oberflächenmessungen, das Definieren eines dreidimensionalen Netzes unter Verwendung der dreidimensionalen Oberflächenmessungen, das Texturieren des dreidimensionalen Netzes unter Verwendung der Bilder, um ein texturiertes dreidimensionales Netz zu definieren, das Identifizieren eines ersten Abschnitts des texturierten dreidimensionalen Netzes, das Identifizieren eines zweiten Abschnitts des texturierten dreidimensionalen Netzes, der die Sichtbarkeit eines Teils des ersten Abschnitts des texturierten dreidimensionalen Netzes aus einer Überkopfperspektive behindert, und das Rendern eines simulierten perspektivischen Überkopfbildes, sodass der zweite Abschnitt des texturierten dreidimensionalen Netzes nicht in dem simulierten perspektivischen Überkopfbild dargestellt wird, ein.
-
In einigen Implementierungen der nicht-transitorischen computerlesbaren Speichervorrichtung schließt das Rendern des simulierten perspektivischen Überkopfbildes das Entfernen des zweiten Abschnitts aus dem texturierten dreidimensionalen Netz während des Renderns ein.
-
In einigen Implementierungen der nicht-transitorischen computerlesbaren Speichervorrichtung schließt das Rendern des simulierten perspektivischen Überkopfbildes das Ignorieren des zweiten Abschnitts des texturierten dreidimensionalen Netzes während des Renderns ein.
-
In einigen Implementierungen der nicht-transitorischen computerlesbaren Speichervorrichtung wird das Rendern des simulierten perspektivischen Überkopfbildes unter Verwendung einer Projektionsebene durchgeführt, die zwischen dem ersten Abschnitt des texturierten dreidimensionalen Netzes und dem zweiten Abschnitt des texturierten dreidimensionalen Netzes positioniert ist.
-
In einigen Implementierungen der nicht-transitorischen computerlesbaren Speichervorrichtung wird das Rendern des simulierten perspektivischen Überkopfbildes durchgeführt, indem bewirkt wird, dass der zweite Abschnitt des texturierten dreidimensionalen Netzes nicht sichtbar ist.
-
In einigen Implementierungen der nicht-transitorischen computerlesbaren Speichervorrichtung wird der zweite Abschnitt des dreidimensionalen Netzes basierend auf der Position des zweiten Abschnitts des dreidimensionalen Netzes über dem ersten Abschnitt des dreidimensionalen Netzes identifiziert.
-
In einigen Implementierungen der nicht-transitorischen computerlesbaren Speichervorrichtung wird der zweite Abschnitt des texturierten dreidimensionalen Netzes basierend auf einem Schnittpunkt einer Projektionslinie von dem ersten Abschnitt des dreidimensionalen texturierten Netzes mit dem zweiten Abschnitt des texturierten dreidimensionalen Netzes identifiziert.
-
In einigen Implementierungen der nicht-transitorischen computerlesbaren Speichervorrichtung wird der zweite Abschnitt des texturierten dreidimensionalen Netzes unter Verwendung einer Clipping-Ebene identifiziert, die sich zwischen dem ersten Abschnitt des texturierten dreidimensionalen Netzes und dem zweiten Abschnitt des texturierten dreidimensionalen Netzes befindet.
-
In einigen Implementierungen der nicht-transitorischen computerlesbaren Speichervorrichtung wird das Rendern des simulierten perspektivischen Überkopfbildes unter Verwendung einer Projektionsebene und Projektionslinien, die sich orthogonal zur Projektionsebene erstrecken, durchgeführt.
-
In einigen Implementierungen der nicht-transitorischen computerlesbaren Speichervorrichtung wird das Erhalten von Bodenniveaubildern unter Verwendung einer Kamera durchgeführt.
-
In einigen Implementierungen der nicht-transitorischen computerlesbaren Speichervorrichtung wird das Erhalten dreidimensionaler Oberflächenmessungen auf Bodenniveau unter Verwendung eines dreidimensionalen Sensors durchgeführt.
-
In einigen Implementierungen der nicht-transitorischen computerlesbaren Speichervorrichtung definieren die dreidimensionalen Oberflächenmessungen eine Punktwolke.
-
Ein weiterer Gesichtspunkt der Offenbarung ist ein System, das einen Speicher und einen Prozessor einschließt, der dazu konfiguriert ist, um Anweisungen auszuführen, die in dem Speicher gespeichert sind. Die Ausführung der Anweisungen bewirkt, dass der Prozessor Bilder erhält, dreidimensionale Oberflächenmessungen erhält, ein dreidimensionales Netz unter Verwendung der dreidimensionalen Oberflächenmessungen definiert, das dreidimensionale Netz unter Verwendung der Bilder texturiert, um ein texturiertes dreidimensionales Netz zu definieren, einen ersten Abschnitt des texturierten dreidimensionalen Netzes identifiziert, einen zweiten Abschnitt des texturierten dreidimensionalen Netzes identifiziert, der die Sichtbarkeit eines Teils des ersten Abschnitts des texturierten dreidimensionalen Netzes aus einer Überkopfperspektive behindert, und ein simuliertes perspektivisches Überkopfbild rendert, sodass der zweite Abschnitt des texturierten dreidimensionalen Netzes nicht in dem simulierten perspektivisches Überkopfbild dargestellt wird.
-
In einigen Implementierungen des Systems schließen die Anweisungen, die bewirken, dass der Prozessor das simulierte perspektivische Überkopfbild rendert, Anweisungen zum Entfernen des zweiten Abschnitts aus dem texturierten dreidimensionalen Netz während des Renderns ein.
-
In einigen Implementierungen des Systems schließen die Anweisungen, die bewirken, dass der Prozessor das simulierte perspektivische Überkopfbild rendert, Anweisungen ein, um den zweiten Abschnitt des texturierten dreidimensionalen Netzes während des Renderns zu ignorieren.
-
In einigen Implementierungen des Systems schließen die Anweisungen, die bewirken, dass der Prozessor das simulierte perspektivische Überkopfbild rendert, Anweisungen zum Verwenden einer Projektionsebene ein, die zwischen dem ersten Abschnitt des texturierten dreidimensionalen Netzes und dem zweiten Abschnitt des texturierten dreidimensionalen Netzes positioniert ist.
-
In einigen Implementierungen des Systems schließen die Anweisungen, die bewirken, dass der Prozessor das simulierte perspektivische Überkopfbild wiederzugeben, Anweisungen ein, die den zweiten Abschnitt des texturierten dreidimensionalen Netzes veranlassen, nicht sichtbar zu sein.
-
In einigen Implementierungen des Systems wird der zweite Abschnitt des dreidimensionalen Netzes basierend auf der Position des zweiten Abschnitts des dreidimensionalen Netzes über dem ersten Abschnitt des dreidimensionalen Netzes identifiziert.
-
In einigen Implementierungen des Systems wird der zweite Abschnitt des texturierten dreidimensionalen Netzes basierend auf einem Schnittpunkt einer Projektionslinie von dem ersten Abschnitt des dreidimensionalen texturierten Netzes mit dem zweiten Abschnitt des texturierten dreidimensionalen Netzes identifiziert.
-
In einigen Implementierungen des Systems wird der zweite Abschnitt des texturierten dreidimensionalen Netzes unter Verwendung einer Clipping-Ebene identifiziert, die sich zwischen dem ersten Abschnitt des texturierten dreidimensionalen Netzes und dem zweiten Abschnitt des texturierten dreidimensionalen Netzes befindet.
-
In einigen Implementierungen des Systems schließen die Anweisungen, die bewirken, dass der Prozessor das simulierte perspektivische Überkopfbild rendert, Anweisungen zum Verwenden einer Projektionsebene und Projektionslinien ein, die sich orthogonal zur Projektionsebene erstrecken.
-
In einigen Implementierungen des Systems werden die Bodenniveaubilder unter Verwendung einer Kamera erhalten.
-
In einigen Implementierungen des Systems werden die dreidimensionalen Oberflächenmessungen auf Bodenniveau unter Verwendung eines dreidimensionalen Sensors erhalten.
-
In einigen Implementierungen des Systems definieren die dreidimensionalen Oberflächenmessungen eine Punktwolke.
-
Figurenliste
-
- 1 ist ein Blockdiagramm, das ein System zum Erzeugen von Bildern aus einer Überkopfperspektive unter Verwendung von auf Bodenniveau aufgenommenen Bildern zeigt.
- 2 ist eine Veranschaulichung, die einen Datensammler zeigt, der eine Datensammlungsoperation in einer natürlichen Umgebung gemäß einem ersten Beispiel durchführt.
- 3 ist eine Veranschaulichung, die einen Datensammler zeigt, der eine Datensammlungsoperation in einer natürlichen Umgebung gemäß einem zweiten Beispiel durchführt.
- 4 ist eine Veranschaulichung, die einen Datensammler zeigt, der eine Datensammlungsoperation in einer natürlichen Umgebung gemäß einem dritten Beispiel durchführt.
- 5 ist eine Veranschaulichung, die eine Renderingoperation gemäß einem ersten Beispiel mit vorhandenen verdeckenden Objekten zeigt.
- 6 ist eine Veranschaulichung, die die Renderingoperation gemäß dem ersten Beispiel mit entfernten verdeckenden Objekten zeigt.
- 7 ist eine Veranschaulichung, die eine Renderingoperation gemäß einem zweiten Beispiel mit vorhandenen verdeckenden Objekten zeigt.
- 8 ist eine Veranschaulichung, die die Renderingoperation gemäß dem zweiten Beispiel mit entfernten verdeckenden Objekten zeigt.
- 9 ist eine Veranschaulichung, die eine Renderingoperation gemäß einem dritten Beispiel mit vorhandenen verdeckenden Objekten zeigt.
- 10 ist eine Veranschaulichung, die die Renderingoperation gemäß dem dritten Beispiel mit entfernten verdeckenden Objekten zeigt.
- 11 ist eine Veranschaulichung, die eine Renderingoperation gemäß einem vierten Beispiel mit vorhandenen verdeckenden Objekten zeigt.
- 12 ist eine Veranschaulichung, die die Renderingoperation gemäß dem vierten Beispiel mit entfernten verdeckenden Objekten zeigt.
- 13 ist ein Flussdiagramm, das einen Prozess zum Erzeugen von Bildern aus einer Überkopfperspektive unter Verwendung von Bildern zeigt, die auf Bodenniveau aufgenommen wurden.
- 14 ist ein Beispiel für ein Bild, das aus einer Überkopfperspektive unter Verwendung von Bildern erzeugt wird, die auf Bodenniveau aufgenommen werden.
- 15 ist ein Blockdiagramm, das eine beispielhafte Hardwarekonfiguration für eine Steuerung zeigt.
-
DETAILLIERTE BESCHREIBUNG
-
Bildern, die unter Verwendung von Kameras aufgenommen werden, die von Satelliten oder Flugzeugen getragen werden, fehlen möglicherweise einige Merkmale aufgrund von Sichtlinienhindernissen, die zwischen den Merkmalen und der Kamera vorhanden sind. Merkmale, die in der Nähe der Bodenoberfläche vorhanden sind, können hierin als Merkmale auf Bodenniveau bezeichnet werden, wobei der Begriff „Bodenniveau“ die Nähe zur Bodenoberfläche angibt. Als ein Beispiel können Merkmale einer baumgesäumten Fahrbahn durch ein Baumdach verdeckt werden. Als weiteres Beispiel können Gebäude überhängende Strukturen einschließen, die Bodenmerkmale verdecken. Als weiteres Beispiel werden Merkmale einer Fahrbahn in dem Bereich, in dem eine Überführung über der Fahrbahn vorliegt, verdeckt.
-
Die Offenbarung hierin richtet sich auf das Erzeugen von Bildern aus simulierter Überkopfperspektive unter Verwendung von Bildern, die auf Bodenhöhe aufgenommen werden, und dreidimensionalen Oberflächenmessungen, die auf Bodenhöhe aufgenommen werden. Die Bilder, die von den hierin beschriebenen Systemen und Verfahren erzeugt werden, werden unter Verwendung fotografischer Bilder erzeugt und ähneln Fotografien, werden jedoch unter Verwendung dreidimensionaler Rendering-Techniken erzeugt und sind keine tatsächlichen Fotografien. Unter Verwendung von am Boden aufgenommenen Bildern
-
Bilder, die auf Bodenniveau aufgenommen werden, können hierin als Bodenniveaubilder bezeichnet werden und werden üblicherweise unter Verwendung von Kameras aufgenommen, die von Personen oder Fahrzeugen getragen werden, die sich in der Nähe der Bodenoberfläche befinden, wie Autos, Personen oder tieffliegende Luftfahrzeuge. Ein Beispiel für ein tieffliegendes Luftfahrzeug ist eine Vierrotordrohne, die in einer Höhe fliegt, die niedriger ist als in der Nähe befindliche Objekte, die die Luftaufnahmen verdecken würden (z. B. unter einer Baumdachhöhe), wie zwanzig Fuß oder weniger über der Bodenoberfläche. Die Ausrichtung der optischen Achse der Kamera, in der Bodenniveaubilder aufgenommen werden, kann eine allgemein horizontale Ausrichtung sein, wie eine Ausrichtung zwischen fünfundvierzig Grad über der Horizontalen und fünfundvierzig Grad unter der Horizontalen.
-
In den hierin beschriebenen Systemen und Verfahren werden Bilder und dreidimensionale Oberflächenmessungen in einem Bereich von Bodenniveau mit einer Sensorausrichtung erhalten, die allgemein horizontal ist (z. B. eine Ausrichtung zwischen fünfundvierzig Grad über der Horizontalen und fünfundvierzig Grad unter der Horizontalen). Die dreidimensionalen Oberflächenmessungen werden verwendet, um ein dreidimensionales Netz zu definieren. Die Bilder sind räumlich relativ zu dem dreidimensionalen Netz ausgerichtet, um Texturen für das dreidimensionale Netz zu definieren, um ein texturiertes dreidimensionales Netz zu definieren. Das texturierte dreidimensionale Netz wird aus einer Überkopfperspektive gerendert. Ein Beispiel für eine Überkopfperspektive ist eine orthographische Perspektive, in der ein Bild durch Projektion von Licht von der Oberfläche, die gerendert wird, auf eine Projektionsebene entlang Projektionslinien erzeugt wird, die in einer Richtung ausgerichtet sind, die senkrecht zu der Ebene ist. Während des Renderns können überhängende Merkmale aus dem dreidimensionalen Netz ignoriert werden. Das Ignorieren von Merkmalen aus dem dreidimensionalen Netz bedeutet, dass das Renderingsystem das texturierte dreidimensionale Netz auf eine Weise rendert, die bewirkt, dass die Merkmale in dem Bild fehlen, das durch das Renderingsystem erzeugt wird. Dadurch fehlen überhängende Merkmale in dem gerenderten Bild, und Bodenmerkmale können ohne Okklusionen dargestellt werden. In einigen Implementierungen kann eine Erhebung zum Rendern ausgewählt werden, wie bei Überführungen oder Mehrebenenstraßen.
-
1 ist ein Blockdiagramm, das ein System 100 zum Erzeugen von Bildern aus einer Überkopfperspektive unter Verwendung von Bildern, die auf Bodenniveau aufgenommen wurden, zeigt. In der veranschaulichten Implementierung schließt das System 100 einen Datensammler 102 ein, der Bodenniveaubilder 104 und dreidimensionale Oberflächenmessungen 106 erhält, die einem Modellierungssystem 108 als Eingaben bereitgestellt werden. Das Modellierungssystem 108 erzeugt ein dreidimensionales Modell, wie ein texturiertes dreidimensionales Netz 110, unter Verwendung der Bodenniveaubilder 104 und der dreidimensionalen Oberflächenmessungen 106. Das texturierte dreidimensionale Netz 110 wird als Eingabe für ein Renderingsystem 112 bereitgestellt, das simulierte perspektivische Überkopfbilder 114 unter Verwendung des texturierten dreidimensionalen Netzes 110 erzeugt.
-
Der Datensammler 102 ist ein physisches System, das mobil ist und dazu konfiguriert ist, um sich in einer natürlichen Umgebung zu bewegen, während Informationen erhalten werden. Als ein Beispiel kann der Datensammler 102 in Form von Datensammlungskomponenten implementiert sein, die von einem straßentauglichen Fahrzeug während einer Datensammlungsoperation getragen werden. Als weiteres Beispiel kann der Datensammler 102 in Form von Datensammlungskomponenten implementiert sein, die in einem Rucksack untergebracht sind und von diesem unterstützt werden, der von einer Person während eines Datensammlungsoperation getragen wird.
-
Als weiteres Beispiel kann der Datensammler 102 in Form von Datensammlungskomponenten implementiert sein, die von einem unbemannten Luftfahrzeug (z. B. einer Vierrotordrohne) getragen werden.
-
Die natürliche Umgebung ist eine reale (d. h. nicht simulierte) Umgebung. Als ein Beispiel kann ein Datenerfassungsvorgang das Durchlaufen eines Straßennetzes einschließen, um zweidimensionale Daten und dreidimensionale Daten zu erhalten, die Abschnitte des Straßennetzes beschreiben, wie die Orte und Konfigurationen einer Straße, Fahrbahnmarkierungen, Verkehrsschilder, Verkehrssteuersignale, Fahrradspuren, Gehwege und Merkmale, die sich an Land befinden, das an die Straße angrenzt, wie Bäume und Gebäude.
-
Der Datensammler 102 schließt eine Kamera 116 und einen dreidimensionalen Sensor 118 ein. Die Kamera 116 und der dreidimensionale Sensor 118 sind dazu konfiguriert, um Informationen (z. B. Bilder und Punktwolken) zu erhalten, die eine natürliche Umgebung um den Datensammler 102 beschreiben. Die Informationen, die vom Datensammler 102 erhalten werden, können zur Weiterverarbeitung durch ein anderes System, wie das Modelliersystem 108, gespeichert werden (z. B. unter Verwendung einer nichtflüchtigen Speichervorrichtung).
-
Die Kamera 116 ist eine Bilderfassungsvorrichtung, die betreibbar ist, um die Bodenniveaubilder 104 zu erhalten. Bei der Kamera 116 kann es sich zum Beispiel um eine digitale Standbildkamera oder eine digitale Videokamera jeglicher Art handeln. Die Kamera 116 ist betreibbar, um Bilder, einschließlich der Bodenniveaubilder 104, in jeder geeigneten Form auszugeben, wie in Form von Informationen, die ein Array von Pixeln definieren, die jeweils einen Farbwert aufweisen.
-
Der dreidimensionale Sensor 118 kann unter Verwendung bekannter Technologien implementiert werden, die in der Lage sind, das Vorhandensein und die Position von Oberflächen im dreidimensionalen Raum zu identifizieren und Informationen, die dem Vorhandensein und der Position von Oberflächen im dreidimensionalen Raum entsprechen, als die dreidimensionalen Oberflächenmessungen 106 auszugeben. Beispiele für Sensoren, die verwendet werden können, um den dreidimensionalen Sensor 118 zu implementieren, schließen LIDAR-Sensoren, Stereosensoren mit strukturiertem Licht und Stereokameras ein. Andere Arten von Sensoren können verwendet werden, um den dreidimensionalen Sensor 118 zu implementieren, und der dreidimensionale Sensor 118 kann mehrere Sensoren verschiedener Arten einschließen. Die vom dreidimensionalen Sensor 118 ausgegebenen Informationen schließen die dreidimensionalen Oberflächenmessungen 106 ein, die in Form einer Punktwolke (d. h. Positionen, die in dreidimensionalen Koordinaten ausgedrückt sind, oder einer anderen geeigneten Form, die das Vorhandensein einer Oberfläche an der Position anzeigen) oder in jeder anderen geeigneten Form vorliegen können.
-
Das Modellierungssystem 108 ist dazu konfiguriert, um Informationen zu verarbeiten, die von dem Datensammler 102 empfangen werden, um ein digitales Modell der natürlichen Umgebung zu erzeugen, das von dem Datensammler 102 während der Datensammlungsoperation durchlaufen wurde. In dem veranschaulichten Beispiel schließt das Modellierungssystem 108 einen Netzprozessor 120 und einen Texturprozessor 122 ein. Die Ausgabe des Modellierungssystems 108 ist das texturierte dreidimensionale Netz 110, das ein Netz 124, Texturen 126 und Ausrichtungsdaten 128 einschließen kann.
-
Der Netzprozessor 120 des Modellierungssystems 108 ist konfiguriert, um die dreidimensionalen Oberflächenmessungen 106 als Eingabe zu empfangen, und erzeugt die Masche 124 als Ausgabe. Das Netz 124 ist ein computerinterpretierbares Modell, das Oberflächen aus der natürlichen Umgebung in einer Form darstellt, die durch eine Rendering-Engine gerendert werden kann, zum Beispiel zur Verwendung bei der Visualisierung, Bilderfassung oder Simulation. Das Netz 124 kann als Informationen unter Verwendung von Datenformaten gespeichert werden, die auf dem Gebiet von Computergrafiken gut bekannt sind, wie in Form von Oberflächen, die durch miteinander verbundene Dreiecke mit Eckpunkten definiert sind. Das Netz 124 kann zusätzliche Informationen, wie Oberflächennormalen, einschließen.
-
Um das Netz 124 zu definieren, verwendet der Netzprozessor 120 die dreidimensionalen Oberflächenmessungen 106, um die Positionen und Ausrichtungen oder Oberflächen (und Abschnitte von Oberflächen) zu schätzen. Der Netzprozessor 120 kann unter Verwendung eines beliebigen einer Vielzahl von bekannten Algorithmen implementiert werden, die Positionen und Ausrichtungen von Oberflächen aus dreidimensionalen Messungen, wie Punktwolken, schätzen. Zum Beispiel identifizieren einige Techniken eine Gruppierung von Punkten aus einer Punktwolke und definieren einen Oberflächenabschnitt (z. B. eine dreieckige Ebene, die durch drei Eckpunkte definiert ist), der im Durchschnitt tangential zu Linien ist, die zwischen Paaren der Punkte konstruiert sind. Beispiele für Techniken, die vom Netzprozessor 120 verwendet werden können, schließen Poisson-Oberflächenrekonstruktion und verallgemeinerte Abstandsfunktionen ein.
-
Der Texturprozessor 122 ist betreibbar, um eine räumliche Entsprechung zwischen Abschnitten des Netzes 124 und Abschnitten der Bodenniveaubilder 104 zu bestimmen. Diese Entsprechung wird verwendet, um die Textur 126 unter Verwendung der Bodenniveaubilder 104 zu erzeugen und die Ausrichtungsdaten 128 zu erzeugen.
-
Die Textur 126 ist ein Bild, das auf den Bodenniveaubildern 104 basiert und die Farben definiert, die auf die Oberflächen des Netzes 124 aufgebracht werden. Die Textur für einen Abschnitt des Netzes 124 kann basierend auf einem einzelnen der Bodenniveaubilder 104 oder aus mehreren der Bodenniveaubilder 104 (z. B. erfasst aus Differenzperspektiven) definiert werden. Zum Beispiel kann unter Verwendung einer bekannten geometrischen Beziehung zwischen der Kamera 116 und dem dreidimensionalen Sensor 118 das Netz 124 relativ zu jedem der Bodenniveaubilder 104 in den Bildraum projiziert werden. In einer Implementierung, in der das Netz 124 durch Dreiecke definiert ist, führt die Projektion der Eckpunkte der Dreiecke in den Bildraum zu zweidimensionalen Bildraumkoordinaten für jeden der Eckpunkte des Netzes 124.
-
Die Positionen der Eckpunkte des Netzes 124 definieren bei Projektion in den Bildraum relativ zu den Bodenniveaubildern 104 einen Patch (z. B. einen dreieckigen Abschnitt) eines der Bodenniveaubilder 104, der in die Textur 126 aufgenommen werden kann, um die Färbung des entsprechenden Abschnitts des Netzes 124 darzustellen. Als Beispiele kann ein Abschnitt eines der Bodenniveaubilder 104 in die Textur 126 kopiert werden oder mit Abschnitten von anderen der Bodenniveaubilder kombiniert werden (z. B. durch Mittelwertbildung). Die Position dieses Teils der Textur 126 definiert die Ausrichtungsdaten 128, die beschreiben, wie die Textur 126 auf das Netz 124 angewendet wird. Als ein Beispiel können die Ausrichtungsdaten 128 gemäß bekannten UV-Mapping-Techniken implementiert werden. Unter Verwendung der Ausrichtungsdaten 128 kann die Textur 126 auf das Netz 124 angewendet werden, um das Netz 124 auf eine Weise zu texturieren, die für das reale Erscheinungsbild der Objekte repräsentativ ist, die in dem Netz 124 dargestellt sind. Somit wirken das Netz 124, die Textur 126 und die Ausrichtungsdaten 128 zusammen, um das texturierte dreidimensionale Netz 110 zu definieren.
-
In den hierin beschriebenen Implementierungen verwendet das Modellierungssystem 108 Informationen, die vom Datensammler 102 nach Abschluss des Datensammlungsoperation gesammelt wurden, um das digitale Modell der natürlichen Umgebung zu erzeugen. In alternativen Implementierungen könnte das Modelliersystem 108 konfiguriert sein, um in Echtzeit zu arbeiten, indem Informationen von dem Datensammler 102 an das Modelliersystem 108 übertragen werden, wie sie erhalten werden, und Abschnitte des digitalen Modells erzeugt werden, wie Informationen von dem Datensammler 102 empfangen werden.
-
Das Renderingsystem 112 erzeugt die simulierten perspektivischen Überkopfbilder 114 unter Verwendung des texturierten dreidimensionalen Netzes 110. Das Renderingsystem 112 ist dazu konfiguriert, um zweidimensionale Bilder zu erzeugen, die das Erscheinungsbild des texturierten dreidimensionalen Netzes 110 aus einem Überkopfsichtpunkt darstellen. Als ein Beispiel kann das Renderingsystem 112 konfiguriert sein, um die simulierten perspektivischen Überkopfbilder 114 unter Verwendung einer orthographischen Projektion zu erzeugen. Bei der orthographischen Projektion werden Bilder aus der Perspektive einer Projektionsebene entlang von Projektionslinien erzeugt, die orthogonal zur Projektionsebene ausgerichtet sind. Die Projektionsebene kann so positioniert sein, dass sie sich über dem texturierten dreidimensionalen Netz 110 in einer Ausrichtung befindet, die parallel zu einer Bezugserhebung (z. B. Meeresspiegel) ist, eine lokale Erhöhung relativ zu dem texturierten dreidimensionalen Netz 110, eine Ebene, die basierend auf einer durchschnittlichen Oberflächenerhöhung in dem texturierten dreidimensionalen Netz 110 konstruiert ist, oder eine Ebene, die basierend auf beliebigen anderen Kriterien konstruiert ist.
-
Wie hierin beschrieben, ist das Renderingsystem 112 dazu konfiguriert, um das texturierte dreidimensionale Netz 110 zu analysieren, um verdeckte Abschnitte einer Bodenoberfläche zu identifizieren, die durch das texturierte dreidimensionale Netz 110 und Merkmale, die auf der Bodenoberfläche (z. B. Straßen, Bordsteine) ausgebildet sind oder sich in unmittelbarer Nähe zur Bodenoberfläche befinden, dargestellt wird. Das Renderingsystem 112 kann bestimmen, ob die simulierten perspektivischen Überkopfbilder 114 gerendert werden, sodass Merkmale in dem texturierten dreidimensionalen Netz 110, die verdeckende Abschnitte sind, die Bodenoberfläche darstellen, in den simulierten perspektivischen Überkopfbildern 114 weggelassen werden. Durch Weglassen der verdeckenden Merkmale des texturierten dreidimensionalen Netzes 110 aus den simulierten perspektivischen Überkopfbildern 114 werden Merkmale auf Bodenniveau, die sonst nicht sichtbar wären (z. B. aus einer Luftaufnahme), in den simulierten perspektivischen Überkopfbildern 114 sichtbar gemacht. Renderingoperationen, bei denen verdeckende Merkmale aus dem texturierten dreidimensionalen Netz 110 aus den simulierten perspektivischen Überkopfbildern 114 weggelassen werden, werden hierin ausführlich erläutert.
-
2 ist eine Veranschaulichung, die einen Datensammler 202 zeigt, der eine Datensammlungsoperation in einer natürlichen Umgebung 230 gemäß einem ersten Beispiel durchführt.
-
In dem veranschaulichten Beispiel schließt die natürliche Umgebung 230 eine Bodenfläche 232, eine Fahrbahn 234 und Bäume 236 ein. Bei Betrachtung von oben würden die Bäume 236 die Sicht auf Abschnitte der Bodenoberfläche 232 und der Fahrbahn 234 behindern.
-
Der Datensammler 202 ist eine Implementierung des Datensammlers 102, und die Beschreibung des Datensammlers 102 gilt für den Datensammler 202, außer wie hierin anderweitig angegeben. In dem veranschaulichten Beispiel ist der Datensammler 202 ein straßentaugliches Fahrzeug (z. B. ein Automobil), das zum Fahren auf einer Fahrbahn konfiguriert ist und in Bezug auf die Fahrbahn durch Räder gestützt wird.
-
Der Datensammler 202 schließt eine Kamera 216 und einen dreidimensionalen Sensor 218 ein, die in der in Bezug auf die Kamera 116 und den dreidimensionalen Sensor 118 beschriebenen Weise implementiert sind. Die Kamera 216 und der dreidimensionale Sensor 218 erhalten Informationen (z. B. Bilder und Punktwolken), die natürliche Umgebung aus einer Perspektive auf Bodenniveau beschreiben. Zum Beispiel können die Kamera 216 und der dreidimensionale Sensor 218 durch den Datensammler 202 in einer allgemein horizontalen Ausrichtung unterstützt werden, wie Ausrichtungen, in denen die Mittelachsen der Erfassungsfelder der Kamera 216 und des dreidimensionalen Sensors 218 innerhalb von fünfundvierzig Grad über oder unter der Horizontalen liegen. Die Kamera 216 und der dreidimensionale Sensor 218 können Informationen erhalten, während der Datensammler 202 die natürliche Umgebung 230 durchquert, zum Beispiel durch Fahren entlang der Fahrbahn 234. Diese Informationen werden für eine spätere Verarbeitung gespeichert, zum Beispiel wie in Bezug auf das System 100 beschrieben.
-
3 ist eine Veranschaulichung, die einen Datensammler 302 zeigt, der eine Datensammlungsoperation in der natürlichen Umgebung 230 gemäß einem zweiten Beispiel durchführt.
-
Der Datensammler 302 ist eine Implementierung des Datensammlers 102, und die Beschreibung des Datensammlers 102 gilt für den Datensammler 302, außer wie hierin anderweitig angegeben. Im dargestellten Beispiel ist der Datensammler 302 in Form eines von einer Person getragenen Rucksacks implementiert, der eine Kamera 316 und einen dreidimensionalen Sensor 318 trägt, die in der bezüglich der Kamera 116 und des dreidimensionalen Sensors 118 beschriebenen Weise implementiert sind. Der Betrieb des Datensammlers 302 ähnelt dem Betrieb des Datensammlers 202. Zum Beispiel können die Kamera 316 und der dreidimensionale Sensor 318 Informationen erhalten, während der Datensammler 202 die natürliche Umgebung 230 durchquert, wenn die Person entlang eines Gehwegs oder einer anderen Fußgängereinrichtung geht. Diese Informationen werden für eine spätere Verarbeitung gespeichert, zum Beispiel wie in Bezug auf das System 100 beschrieben.
-
4 ist eine Veranschaulichung, die einen Datensammler 402 zeigt, der eine Datensammlungsoperation in einer natürlichen Umgebung 230 gemäß einem dritten Beispiel durchführt.
-
Der Datensammler 402 ist eine Implementierung des Datensammlers 102, und die Beschreibung des Datensammlers 102 gilt für den Datensammler 402, außer wie hierin anderweitig angegeben. Im veranschaulichten Beispiel ist der Datensammler 402 in Form eines unbemannten Luftfahrzeugs (z. B. einer Vierrotordrohne) implementiert, das eine Kamera 416 und einen dreidimensionalen Sensor 418 trägt. Die Kamera 416 und der dreidimensionale Sensor 418 sind in der bezüglich der Kamera 116 und des dreidimensionalen Sensors 118 beschriebenen Weise implementiert. Der Betrieb des Datensammlers 402 ähnelt dem Betrieb des Datensammlers 202. Zum Beispiel können die Kamera 416 und der dreidimensionale Sensor 418 Informationen erhalten, während der Datensammler 202 die natürliche Umgebung 230 durchquert, wenn das unbemannte Luftfahrzeug über der Bodenoberfläche 232 fliegt. Diese Informationen werden für eine spätere Verarbeitung gespeichert, zum Beispiel wie in Bezug auf das System 100 beschrieben.
-
5 ist eine Veranschaulichung, die eine Renderingoperation 540 gemäß einem ersten Beispiel mit vorhandenen verdeckenden Objekten zeigt, und 6 ist eine Darstellung, die die Renderingoperation 540 gemäß dem ersten Beispiel mit entfernten verdeckenden Objekten zeigt.
-
Die Renderingoperation 540 kann vom Renderingsystem 112 durchgeführt werden, um die simulierten perspektivischen Überkopfbilder 114 zu erzeugen. Die Renderingoperation 540 wird in Bezug auf ein texturiertes dreidimensionales Netz 510 durchgeführt, das auf die in Bezug auf das texturierte dreidimensionale Netz 110 beschriebene Weise erzeugt werden kann.
-
Die Renderingoperation 540 kann eine Projektionsebene 542 verwenden, um die simulierten perspektivischen Überkopfbilder 114 durch Simulieren der Projektion von Licht aus dem texturierten dreidimensionalen Netz 510 entlang Projektionslinien 544, die sich allgemein senkrecht zur Projektionsebene 542 erstrecken, zu bilden. In dem veranschaulichten Beispiel schließt das texturierte dreidimensionale Netz 510 einen Bodenabschnitt 546 und einen Objektabschnitt 548 ein. Im dargestellten Beispiel stellt der Bodenabschnitt 546 eine Bodenoberfläche aus der natürlichen Umgebung und der Objektabschnitt 548 einen Baum aus der natürlichen Umgebung dar.
-
Der Objektabschnitt 548 befindet sich über dem Bodenabschnitt 546 und behindert teilweise die Sichtbarkeit des Bodenabschnitts 546 von der Projektionsebene 542 entlang der Projektionslinien in behinderten Bereichen 550, die sich zwischen dem Bodenabschnitt 546 und dem Objektabschnitt 548 befinden. Das Renderingsystem 112 ist dazu konfiguriert, um die behindernden Bereiche 550 zu identifizieren. Zum Beispiel kann das Renderingsystem 112 konfiguriert sein, um die behinderten Bereiche durch Projektion der Projektionslinien 544 vom Bodenabschnitt 546 in Richtung der Projektionsebene 542, Erfassen einer Kollision einiger der Projektionslinien 544 mit dem Objektabschnitt 548 und Identifizieren des entsprechenden Bereichs als einen der behinderten Bereiche 550 zu identifizieren.
-
Wie in 6 gezeigt, werden die Teile des Objektabschnitts 548, die sich in den behinderten Bereichen 550 befinden, durch das Renderingsystem 112 ignoriert. Als ein Beispiel kann das Renderingsystem 112 einen Teil oder die Gesamtheit des Objektabschnitts 548 ignorieren, indem es das texturierte dreidimensionale Netz 510 modifiziert, um einen Teil oder die Gesamtheit des Objektabschnitts 548 aus dem texturierten dreidimensionalen Netz 510 zu entfernen. Als weiteres Beispiel kann das Renderingsystem 112 einen Teil oder die Gesamtheit des Objektabschnitts 548 ignorieren, indem Informationen einem Teil oder der Gesamtheit des Objektabschnitts 548 aus dem texturierten dreidimensionalen Netz 510 zugeordnet werden, was bewirkt, dass das Renderingsystem 112 diejenigen Abschnitte des texturierten dreidimensionalen Netzes 510 während der Erzeugung der simulierten perspektivischen Überkopfbilder 114 als nicht behindernd behandelt (z. B. durch Ermöglichung der Projektion des simuliertes Lichts durch jene Abschnitte des texturierten dreidimensionalen Netzes 510 entlang der Projektionslinien 544). Als weiteres Beispiel kann das Renderingsystem einen Teil oder die Gesamtheit des Objektabschnitts 548 ignorieren, indem es das texturierte dreidimensionale Netz 510 modifiziert, um einen Shader auf einen Teil oder die Gesamtheit des Objektabschnitts 548 aus dem texturierten dreidimensionalen Netz 510 anzuwenden, was bewirkt, dass diese Abschnitte des texturierten dreidimensionalen Netzes 110 während des Renderns nicht sichtbar sind.
-
7 ist eine Veranschaulichung, die eine Renderingoperation 740 gemäß einem zweiten Beispiel mit vorhandenen verdeckenden Objekten zeigt, und 8 ist eine Veranschaulichung, die die Renderingoperation 740 gemäß dem zweiten Beispiel mit entfernten verdeckenden Objekten zeigt.
-
Die Renderingoperation 740 kann vom Renderingsystem 112 durchgeführt werden, um die simulierten perspektivischen Überkopfbilder 114 zu erzeugen. Die Renderingoperation 740 wird in Bezug auf ein texturiertes dreidimensionales Netz 710 durchgeführt, das auf die in Bezug auf das texturierte dreidimensionale Netz 110 beschriebene Weise erzeugt werden kann.
-
Die Renderingoperation 740 kann eine Projektionsebene 742 verwenden, um die simulierten perspektivischen Überkopfbilder 114 durch Simulieren der Projektion von Licht aus dem texturierten dreidimensionalen Netz 710 entlang Projektionslinien 744, die sich allgemein senkrecht zur Projektionsebene 742 erstrecken, zu bilden. In dem veranschaulichten Beispiel schließt das texturierte dreidimensionale Netz 710 einen Bodenabschnitt 746 und einen Objektabschnitt 748 ein. Im dargestellten Beispiel stellt der Bodenabschnitt 746 eine Bodenoberfläche aus der natürlichen Umgebung und der Objektabschnitt 748 einen Baum aus der natürlichen Umgebung dar.
-
Der Objektabschnitt 748 befindet sich über dem Bodenabschnitt 746 und behindert teilweise die Sichtbarkeit des Bodenabschnitts 746 von der Projektionsebene 742 entlang der Projektionslinien 744 in behinderten Bereichen 750, die sich zwischen dem Bodenabschnitt 746 und dem Objektabschnitt 748 befinden. Das Renderingsystem 112 ist dazu konfiguriert, um den Objektabschnitt 748 zu identifizieren und die Sichtbarkeit der behinderten Bereiche 750 unter Verwendung einer Clipping-Ebene 752 wiederherzustellen. Die Clipping-Ebene 752 wird konstruiert, indem eine maximale Höhe des Bodenabschnitts 746 in einem Bereich des texturierten dreidimensionalen Netzes 710 bestimmt wird und die Erhebung der Clipping-Ebene 752 basierend auf der maximalen Erhebung des Bodenabschnitts 746 des texturierten dreidimensionalen Netzes 710 in dem Bereich festgelegt wird. Zum Beispiel kann das Renderingsystem 112 die Höhe der Clipping-Ebene 752 so einstellen, dass die Clipping-Ebene 752 geringfügig über dem Bodenabschnitt 746 des texturierten dreidimensionalen Netzes 710, jedoch unter Hindernissen liegt, die die Sichtbarkeit des Bodenabschnitts 746 des texturierten dreidimensionalen Netzes 710 von der Projektionsebene 742 entlang der Projektionslinien 744 verdecken würden.
-
Wie in 8 gezeigt, werden die Teile des texturierten dreidimensionalen Netzes 710, das in diesem Beispiel Teil des Objektabschnitts 748 ist, die sich oberhalb der Clipping-Ebene 752 befinden, durch das Renderingsystem 112 ignoriert. Als ein Beispiel kann das Renderingsystem 112 einen Teil oder die Gesamtheit des Objektabschnitts 748 ignorieren, indem es das texturierte dreidimensionale Netz 710 modifiziert, um den Teil des Objektabschnitts 748, der sich über der Clipping-Ebene 752 befindet, aus dem texturierten dreidimensionalen Netz 710 zu entfernen. Als weiteres Beispiel kann das Renderingsystem 112 den Teil des Objektabschnitts 748 ignorieren, der sich über der Clipping-Ebene 752 befindet, indem Informationen dem Teil des Objektabschnitts 748 zugeordnet werden, der sich über der Clipping-Ebene 752 befindet, was bewirkt, dass das Renderingsystem 112 diejenigen Abschnitte des texturierten dreidimensionalen Netzes 710 während der Erzeugung der simulierten perspektivischen Überkopfbilder 114 als nicht behindernd behandelt. Als weiteres Beispiel kann das Renderingsystem 112 den Teil des Objektabschnitts 748 ignorieren, der sich über der Clipping-Ebene 752 befindet, indem es das texturierte dreidimensionale Netz 710 modifiziert, um einen Shader auf einen Teil oder den gesamten Objektabschnitt 748 aus dem texturierten dreidimensionalen Netz 710 anzuwenden, was bewirkt, dass der Teil des Objektabschnitts 748, der sich über der Clipping-Ebene 752 befindet, während des Renderns nicht sichtbar ist. Als weiteres Beispiel kann das Renderingsystem 112 den Teil des Objektabschnitts 748 ignorieren, der sich über der Clipping-Ebene 752 befindet, indem die Projektionsebene 742 zu der Erhebung der Clipping-Ebene 752 bewegt wird, sodass sich die Projektionsebene 742 unter den Hindernissen befindet.
-
9 ist eine Veranschaulichung, die eine Renderingoperation 940 gemäß einem dritten Beispiel mit vorhandenen verdeckenden Objekten zeigt, und 10 ist eine Veranschaulichung, die die Renderingoperation 940 gemäß dem dritten Beispiel mit entfernten verdeckenden Objekten zeigt.
-
Die Renderingoperation 940 kann vom Renderingsystem 112 durchgeführt werden, um die simulierten perspektivischen Überkopfbilder 114 zu erzeugen. Die Renderingoperation 940 wird in Bezug auf ein texturiertes dreidimensionales Netz 910 durchgeführt, das auf die in Bezug auf das texturierte dreidimensionale Netz 110 beschriebene Weise erzeugt werden kann.
-
Die Renderingoperation 940 kann eine Projektionsebene 942 verwenden, um die simulierten perspektivischen Überkopfbilder 114 durch Simulieren der Projektion von Licht aus dem texturierten dreidimensionalen Netz 910 entlang Projektionslinien 944, die sich allgemein senkrecht zur Projektionsebene 942 erstrecken, zu bilden. In dem veranschaulichten Beispiel schließt das texturierte dreidimensionale Netz 910 einen Bodenabschnitt 946 und einen Objektabschnitt 948 ein. Im dargestellten Beispiel stellt der Bodenabschnitt 946 eine Bodenoberfläche aus der natürlichen Umgebung und der Objektabschnitt 948 einen Baum aus der natürlichen Umgebung dar.
-
Der Objektabschnitt 948 befindet sich über dem Bodenabschnitt 946 und behindert teilweise die Sichtbarkeit des Bodenabschnitts 946 von der Projektionsebene 942 entlang der Projektionslinien in behinderten Bereichen 950, die sich zwischen dem Bodenabschnitt 946 und dem Objektabschnitt 948 befinden. Das Renderingsystem 112 ist dazu konfiguriert, um den Objektabschnitt 948 zu identifizieren und die Sichtbarkeit der behinderten Bereiche 950 wiederherzustellen, indem semantische Etiketten 954 auf Abschnitte des texturierten dreidimensionalen Netzes 910 aufgebracht werden und basierend auf den semantischen Etiketten 954 bestimmt wird, ob Abschnitte des texturierten dreidimensionalen Netzes 910 ignoriert werden sollen. Mit den semantischen Bezeichnungen 954 werden die Arten von Merkmalen beschrieben, die in dem texturierten dreidimensionalen Netz 910 vorhanden sind. Zum Beispiel kann jedes der semantischen Etiketten 954 einer Objektklassifikation zugeordnet sein. Zuordnung eines der semantischen Etiketten 954 einem Teil des texturierten dreidimensionalen Netzes 910 zeigt an, dass der angegebene Abschnitts des texturierten dreidimensionalen Netzes 910 der Objektart entspricht, die durch das semantische Etikett 954 dargestellt wird. In dem veranschaulichten Beispiel identifiziert ein erstes der semantischen Etiketten 954 die Bodenabschnitte 946 unter Verwendung des Etiketts „Boden“, und ein zweites der semantischen Etiketten 954 identifiziert den Objektabschnitt 948 unter Verwendung des Etiketts „Baum“.
-
Als ein Beispiel können die semantischen Etiketten 954 durch ein automatisiertes Klassifikatorsystem angewendet werden. Ein automatisiertes Klassifikatorsystem ist in der Lage, Objekte unter Verwendung von Informationen wie Bildern und Punktwolken zu identifizieren, und ist in der Lage, Klassifizierungen, wie die semantischen Etiketten 954, für die identifizierten Objekte zu bestimmen. Ein automatisiertes Klassifikatorsystem kann nach bekannten Verfahren implementiert werden. Als ein Beispiel kann ein automatisiertes Klassifikatorsystem unter Verwendung eines trainierten Maschinenlernmodells, wie eines trainierten tiefen neuronalen Netzes, implementiert werden. In alternativen Implementierungen können die semantischen Etiketten 954 durch manuelle Klassifizierung angewendet werden.
-
Wie in 10 gezeigt, können Abschnitte des texturierten dreidimensionalen Netzes 910 durch das Renderingsystem 112 basierend auf den semantischen Etiketten 954 ignoriert werden. In dem veranschaulichten Beispiel werden Abschnitte des texturierten dreidimensionalen Netzes 910 ignoriert, die mit dem semantischen Etikett 954 angegeben wurden, das „Baum“ entspricht. Als ein Beispiel kann das Renderingsystem 112 einen Teil des texturierten dreidimensionalen Netzes 910 ignorieren, indem es das texturierte dreidimensionale Netz 910 modifiziert, um die angegebenen Teile basierend auf den semantischen Beschriftungen 954 zu entfernen. Als weiteres Beispiel kann das Renderingsystem 112 Informationen dem Teil des texturierten dreidimensionalen Netzes 910 zuordnen, der durch die semantischen Etiketten 954 angegeben wird, was bewirkt, dass das Renderingsystem 112 diejenigen Abschnitte des texturierten dreidimensionalen Netzes 910 während der Erzeugung der simulierten perspektivischen Überkopfbilder 114 als nicht behindernd behandelt. Als weiteres Beispiel kann das Renderingsystem 112 den Teil des texturierten dreidimensionalen Netzes 910 basierend auf den semantischen Etiketten 954 ignorieren, indem es das texturierte dreidimensionale Netz 910 modifiziert, um einen Shader auf einen Teil oder die Gesamtheit der Objektabschnitte 948 aus dem texturierten dreidimensionalen Netz 910 anzuwenden, was bewirkt, dass die durch die semantischen Etiketten 954 angegebenen Abschnitte während des Renderns nicht sichtbar sind.
-
11 ist eine Darstellung, die eine Renderingoperation 1140 gemäß einem vierten Beispiel mit vorhandenen verdeckenden Objekten zeigt, und 12 ist eine Darstellung, die Renderingoperation 1140 gemäß dem vierten Beispiel mit entfernten verdeckenden Objekten zeigt.
-
Die Renderingoperation 1140 kann vom Renderingsystem 112 durchgeführt werden, um die simulierten perspektivischen Überkopfbilder 114 zu erzeugen. Die Renderingoperation 1140 wird in Bezug auf ein texturiertes dreidimensionales Netz 1110 durchgeführt, das auf die in Bezug auf das texturierte dreidimensionale Netz 110 beschriebene Weise erzeugt werden kann.
-
Die Renderingoperation 1140 kann eine Projektionsebene 1142 verwenden, um die simulierten perspektivischen Überkopfbilder 114 durch Simulieren der Projektion von Licht aus dem texturierten dreidimensionalen Netz 1110 entlang Projektionslinien 1144, die sich allgemein senkrecht zur Projektionsebene 1142 erstrecken, zu bilden. In dem veranschaulichten Beispiel schließt das texturierte dreidimensionale Netz 1110 einen ersten Bodenabschnitt 1146, einen zweiten Bodenabschnitt 1147 und einen Objektabschnitt 1148 ein. In dem veranschaulichten Beispiel stellen der erste Bodenabschnitt 1146 und der zweite Bodenabschnitt 1147 Bodenoberflächen aus der natürlichen Umgebung dar und der Objektabschnitt 1148 stellt eine Struktur dar (z. B. eine Brücke), die den ersten Bodenabschnitt 1146 über dem zweiten Bodenabschnitt 1147 trägt, sodass der erste Bodenabschnitt 1146 und der Objektabschnitt 1148 die Sicht auf einen Teil des zweiten Bodenabschnitts von der Projektionsebene 1142 entlang der Projektionslinien 1144 behindern.
-
Das Renderingsystem 112 ist dazu konfiguriert, um auszuwählen, ob der erste Bodenabschnitt 1146 oder der zweite Bodenabschnitt 1147 in den simulierten perspektivischen Überkopfbildern 114 sichtbar gemacht werden soll. Als ein Beispiel kann das Renderingsystem 112 eine erste Gruppe von einem oder mehreren der simulierten perspektivischen Überkopfbilder 114 erzeugen, in denen der erste Bodenabschnitt 1146 sichtbar ist, wobei ein Teil des zweiten Bodenabschnitts 1147 verdeckt ist, und eine zweite Gruppe von einem oder mehreren der simulierten perspektivischen Überkopfbilder 114, in denen der zweite Bodenabschnitt 1147 sichtbar ist und ein Teil des ersten Bodenabschnitts 1146 ignoriert wird und ein Teil des Objektabschnitts 1148 ignoriert wird.
-
Das Renderingsystem 112 kann eine Referenzebene 1156 verwenden, um zu bestimmen, welche Abschnitte des texturierten dreidimensionalen Netzes 1110 ignoriert werden sollen. Das Renderingsystem 112 ignoriert behindernde Objekte, die sich über der Referenzebene 1156 befinden. Behindernde Objekte, die sich über der Referenzebene befinden, können mit jedem der in vorherigen Beispielen beschriebenen Verfahren ignoriert werden. In 11 hat das Renderingsystem 112 die Referenzebene 1156 über dem ersten Bodenabschnitt 1146, dem zweiten Bodenabschnitt 1147 und dem Objektabschnitt 1148 platziert. Infolgedessen zeigt das vom Renderingsystem 112 gerenderte Bild den ersten Bodenabschnitt 1146, wobei ein Teil des zweiten Bodenabschnitts 1147 behindert ist. In 12 hat das Renderingsystem 112 die Referenzebene 1156 unter dem ersten Bodenabschnitt 1146 und dem Objektabschnitt 1148 und über dem zweiten Bodenabschnitt 1147 platziert. Infolgedessen lässt das durch das Renderingsystem 112 gerenderte Bild einen Teil des ersten Bodenabschnitts 1146 aus und zeigt den Teil des zweiten Bodenabschnitts 1147 an, der in dem in 11 gezeigten Beispiel behindert wurde.
-
13 ist ein Flussdiagramm, das einen Prozess 1360 zum Erzeugen von Bildern aus einer Überkopfperspektive unter Verwendung von Bildern, die auf Bodenniveau aufgenommen wurden, zeigt. Der Prozess 1360 kann verwendet werden, um die simulierten perspektivischen Überkopfbilder 114 zu erzeugen. Der Prozess 1360 kann unter Verwendung des Systems 100 durchgeführt werden, und Operationen des Prozesses 1360 können durch eine Rechenvorrichtung bewirkt, gesteuert oder durchgeführt werden. Die Rechenvorrichtung ist mit Anweisungen versehen, die in einer Speichervorrichtung gespeichert sind, und einem Prozessor, der betreibbar ist, um die Programmanweisungen auszuführen. Wenn sie durch den Prozessor ausgeführt werden, bewirken die Programmanweisungen, dass die Rechenvorrichtung die Operationen des Prozesses 1360, wie hierin beschrieben, durchführt.
-
Operation 1361 schließt das Erhalten von Bodenniveaubildern ein. Die Bodenniveaubilder können jeweils einem bekannten Ort und einer bekannten Ausrichtung zugeordnet sein, aus denen die Bodenniveaubilder erhalten wurden. Das Erhalten der Bodenniveaubilder kann durch Zugreifen auf die Bilder von einer Speichervorrichtung, Empfangen der Bilder in einer Datenübertragung oder Aufnehmen der Bilder unter Verwendung einer Bildgebungsvorrichtung, wie einer Kamera, die sich auf Bodenniveau befindet, die zuvor in Bezug auf den Datensammler 102, die Bodenniveaubilder 104 und die Kamera 116 beschrieben wurde, durchgeführt werden.
-
Operation 1362 schließt das Erhalten dreidimensionaler Oberflächenmessungen auf Bodenniveau ein. Das Erhalten dreidimensionaler Oberflächenmessungen kann durch Zugreifen auf die Bilder von einer Speichervorrichtung, Empfangen der Bilder in einer Datenübertragung oder Erfassen der Messungen auf Bodenniveau unter Verwendung eines dreidimensionalen Sensors durchgeführt werden. Als ein Beispiel kann ein LIDAR-Sensor verwendet werden, um die dreidimensionalen Oberflächenmessungen auf Bodenniveau zu erhalten. Operation 1362 kann auf die in Bezug auf den Datensammler 102, die dreidimensionalen Oberflächenmessungen 106 und den dreidimensionalen Sensor 118 beschriebene Weise durchgeführt werden.
-
Die dreidimensionalen Bodenoberflächenmessungen können in jeder geeigneten Datenform vorliegen, wie einer Datenform, in der die dreidimensionalen Oberflächenmessungen eine Punktwolke definieren. Die dreidimensionalen Oberflächenmessungen können Informationen einschließen, die Punkte im dreidimensionalen Raum beschreiben, an denen eine Oberfläche vorhanden ist, wie XYZ-Koordinaten. Die Positionen der dreidimensionalen Oberflächenmessungen entsprechen den Positionen der Bodenniveaubilder. Somit entsprechen mindestens einige der dreidimensionalen Oberflächenmessungen Oberflächen, die in einem oder mehreren der Bodenniveaubilder dargestellt sind.
-
Operation 1363 schließt das Definieren eines dreidimensionalen Netzes ein. Das dreidimensionale Netz wird unter Verwendung der dreidimensionalen Oberflächenmessungen definiert, die in Operation 1362 erhalten wurden. Operation 1363 kann gemäß bekannten Verfahren erzeugt werden, die ein Netz für Oberflächenpositionsproben, wie eine Punktwolke, bestimmen. Als ein Beispiel kann die Operation 1363 in der in Bezug auf den Netzprozessor 120 des Modellierungssystems 108 und das Netz 124 beschriebenen Weise durchgeführt werden.
-
Operation 1364 schließt das Texturieren des dreidimensionalen Netzes ein. Das dreidimensionale Netz wird unter Verwendung der Bodenniveaubilder, die in Operation 1361 erhalten wurden, und unter Verwendung von Informationen, die den Bodenniveaubildern und dem dreidimensionalen Netz zugeordnet sind, texturiert, um die Bodenniveaubilder in Bezug auf das dreidimensionale Netz räumlich auszurichten. Wie zuvor erläutert, kann ein einzelner Bereich des dreidimensionalen Netzes unter Verwendung von Abschnitten von mehreren der dreidimensionalen Bodenniveaubilder texturiert werden, wie durch Mittelwertbildung. Das Ergebnis der Operation 1364 ist ein texturiertes dreidimensionales Netz. Das texturierte dreidimensionale Netz kann in Operation 1364 auf die in Bezug auf das Modellierungssystem 108 und das dreidimensionale texturierte Netz 110 beschriebene Weise erzeugt werden.
-
Operation 1365 schließt das Identifizieren eines ersten Abschnitts des texturierten dreidimensionalen Netzes ein. Der erste Abschnitt des texturierten dreidimensionalen Netzes kann Merkmale einschließen, die auf Bodenniveau vorhanden sind, wie eine Bodenoberfläche und eine Fahrbahnoberfläche. Der erste Abschnitt des dreidimensionalen Netzes kann zum Beispiel durch Analysieren der Erhebung von Abschnitten des dreidimensionalen Netzes identifiziert werden. Als ein Beispiel kann bestimmt werden, dass der Abschnitt des dreidimensionalen Netzes, der eine niedrigste Erhebung (z. B. Z-Koordinate) an einer bestimmten lateralen und longitudinalen Position (z. B. X- und Y-Koordinate) aufweist, Teil des ersten Abschnitts des texturierten dreidimensionalen Netzes ist. Als weiteres Beispiel kann der erste Abschnitt des texturierten dreidimensionalen Netzes auf die in Bezug auf die Referenzebene 1156 beschriebene Weise identifiziert werden.
-
Operation 1366 schließt das Identifizieren eines zweiten Abschnitts des texturierten dreidimensionalen Netzes ein. Der zweite Abschnitt des texturierten dreidimensionalen Netzes ist ein Merkmal, das die Sichtbarkeit eines Teils des ersten Abschnitts des texturierten dreidimensionalen Netzes aus einer Überkopfperspektive behindert. Der zweite Abschnitt des texturierten dreidimensionalen Netzes kann zum Beispiel wie in Bezug auf die Renderingoperation 540, die Renderingoperation 740, die Renderingoperation 940 oder die Renderingoperation 1140 beschrieben identifiziert werden.
-
Als ein Beispiel kann der zweite Abschnitt des dreidimensionalen Netzes basierend auf der Position des zweiten Abschnitts des dreidimensionalen Netzes über dem ersten Abschnitt des dreidimensionalen Netzes identifiziert werden. Als weiteres Beispiel kann der zweite Abschnitt des texturierten dreidimensionalen Netzes basierend auf dem Schnittpunkt einer Projektionslinie von dem ersten Abschnitt des dreidimensionalen texturierten Netzes mit dem zweiten Abschnitt des texturierten dreidimensionalen Netzes identifiziert werden. Als weiteres Beispiel wird der zweite Abschnitt des texturierten dreidimensionalen Netzes unter Verwendung einer Clipping-Ebene identifiziert, die sich zwischen dem ersten Abschnitt des texturierten dreidimensionalen Netzes und dem zweiten Abschnitt des texturierten dreidimensionalen Netzes befindet.
-
Operation 1367 schließt das Rendern eines simulierten perspektivischen Überkopfbildes ein. Zum Beispiel kann Operation 1367 das Rendern eines simulierten perspektivischen Überkopfbildes einschließen, sodass der zweite Abschnitt des texturierten dreidimensionalen Netzes nicht in dem simulierten perspektivischen Überkopfbild dargestellt wird. Operation 1367 kann zum Beispiel in der in Bezug auf das Renderingsystem 112, die Renderingoperation 540, die Renderingoperation 740, die Renderingoperation 940 oder die Renderingoperation 1140 beschriebenen Weise durchgeführt werden.
-
In einigen Implementierungen schließt das Rendern des simulierten perspektivischen Überkopfbildes das Entfernen des zweiten Abschnitts aus dem texturierten dreidimensionalen Netz während des Renderns ein. In einigen Implementierungen schließt das Rendern des simulierten perspektivischen Überkopfbildes das Ignorieren des zweiten Abschnitts des texturierten dreidimensionalen Netzes während des Renderns ein. In einigen Implementierungen wird das Rendern des simulierten perspektivischen Überkopfbildes unter Verwendung einer Projektionsebene durchgeführt, die zwischen dem ersten Abschnitt des texturierten dreidimensionalen Netzes und dem zweiten Abschnitt des texturierten dreidimensionalen Netzes positioniert ist. In einigen Implementierungen wird das Rendern des simulierten perspektivischen Überkopfbildes durchgeführt, indem bewirkt wird, dass der zweite Abschnitt des texturierten dreidimensionalen Netzes nicht sichtbar ist. In einigen Implementierungen wird das Rendern des simulierten perspektivischen Überkopfbildes unter Verwendung einer Projektionsebene und Projektionslinien, die sich orthogonal zur Projektionsebene erstrecken, durchgeführt.
-
14 ist ein Beispiel für ein Bild 1470, das aus einer Überkopfperspektive unter Verwendung von Bildern erzeugt wird, die auf Bodenniveau aufgenommen wurden. Das Bild 1470 kann zum Beispiel durch das System 100 unter Verwendung eines der zuvor beschriebenen Verfahren erzeugt werden.
-
Im Bild 1470 ist eine Bodenfläche 1472 sowie eine Fahrbahn 1474 mit Bordsteinen 1476 sichtbar. Einige behindernde Objekte wurden während der Erzeugung des Bildes 1470 entfernt, wie Bäume, die im Bild 1470 nicht sichtbar sind. Stattdessen sind Baumschatten 1478 sichtbar, die auf die Bodenoberfläche 1472 geworfen werden. Da behindernde Objekte, wie die Bäume, im Bild 1470 nicht sichtbar sind, sind Merkmale sichtbar, die sonst durch die behindernden Objekte verdeckt würden. Zum Beispiel sind die Bordsteinabschnitte 1477 innerhalb der Baumschatten 1478 sichtbar, würden aber andernfalls verdeckt werden, wenn die Bäume im Bild 1470 vorhanden wären.
-
15 ist ein Blockdiagramm, das eine beispielhafte Hardwarekonfiguration für eine Steuerung 1580 zeigt, die verwendet werden kann, um einen Teil oder die Gesamtheit der hierin beschriebenen Systeme zu implementieren, wie das System 100 oder Komponenten des Systems 100. Die Steuerung 1580 schließt eine Datenverarbeitungseinrichtung 1581, eine Datenspeichervorrichtung 1582, eine Bedienerschnittstelle 1583, eine Steuerungsschnittstelle 1584 und eine Verschaltung 1585, über die die Datenverarbeitungseinrichtung 1581 auf die anderen Komponenten zugreifen kann. Die Datenverarbeitungseinrichtung 1581 ist betreibbar, um Anweisungen auszuführen, die in einer Datenspeichervorrichtung 1582 gespeichert wurden. In einigen Implementierungen ist die Datenverarbeitungseinrichtung 1581 ein Prozessor mit Direktzugriffsspeicher zum temporären Speichern von Anweisungen, die von der Datenspeichervorrichtung 1582 gelesen werden, während die Anweisungen ausgeführt werden. Zum Beispiel kann die Datenspeichereinrichtung 1582 eine nichtflüchtige Informationsspeichervorrichtung, wie ein Festplattenlaufwerk oder ein Solid-State-Laufwerk, sein. Die Bedienerschnittstelle 1583 erleichtert die Kommunikation mit einem Benutzer der Steuerung 1580 und kann jede Art von Mensch-Maschine-Schnittstelle wie Tasten, Schalter, eine Touchscreen-Eingabevorrichtung, eine Gesteneingabevorrichtung, eine Audioeingabevorrichtung, eine Anzeige und/oder einen Lautsprecher einschließen. Die Steuerungsschnittstelle 1584 ermöglicht zum Beispiel die Ein- und Ausgabe von Informationen an andere Systeme, um eine Anzeige an einem externen System oder eine automatisierte Steuerung eines anderen Systems zu ermöglichen. Die Verschaltung 1585 kann als Beispiele ein Systembus, ein drahtgebundenes Netzwerk oder ein drahtloses Netzwerk sein.