-
Technisches Gebiet
-
Einige Implementierungen hier sind auf Techniken und Anordnungen zum effizienten und dynamischen Erzeugen einer Disparitätsabbildung oder eines Disparitätsbildes gerichtet, das zum Detektieren von Hindernissen, Straßenanomalien und anderen Merkmalen mit Genauigkeit mit hoher Tiefe in verschiedenen Szenarien verwendet werden kann, ohne die Verarbeitungslast an den Fahrzeugprozessoren wesentlich zu erhöhen.
-
Stand der Technik
-
Fortschrittliche Fahrerassistenzsysteme (ADAS) sowie halbautonome Fahrzeugsysteme, vollautonome Fahrzeugsysteme oder anderweitige autonome Fahrsysteme (AD-Systeme) sind Systeme, die die Fahrzeugsteuerung für verbesserte Sicherheit, automatisierte Navigation und dergleichen automatisieren oder anderweitig verbessern. Diese Systeme verwenden typischerweise mehrere Typen von Sensoren zum Erkennen der Fahrbahn und zum Erkennen und Meiden von anderen Fahrzeugen, Hindernissen, Fußgängern usw. Insbesondere sind Kameras Sensoren, die auf die Erfassung einer visuellen Darstellung des Umgebungsumfeldes des Fahrzeugs gestützt sein können, wie z. B. zum Durchführen von Straßenerkennung, Schilderkennung, Hindernismeidung und dergleichen.
-
Solche Systeme können zumindest teilweise auf der Erzeugung von Disparitätsabbildungen zum Durchführen von Erkennungsfunktionen auf der Basis von empfangenen Kamerabildern beruhen. Disparitätsabbildungen mit höherer Dichte werden zum Schaffen einer höheren Genauigkeit bevorzugt. Das Erzeugen von Disparitätsabbildungen mit höherer Dichte kann jedoch die Verarbeitungslast an den Fahrzeugprozessoren signifikant erhöhen.
-
Zusammenfassung der Erfindung
-
In einigen Implementierungen kann ein System von mindestens einer Kamera eines Fahrzeugs mindestens ein Bild, das eine Straße enthält, empfangen. Das System kann ferner Fahrzeugortsinformationen mit einer Angabe eines Orts des Fahrzeugs empfangen. Außerdem kann das System historische Informationen von einer historischen Datenbank und/oder Straßenanomalieinformationen empfangen, wobei die Straßenanomalieinformationen von einer Straßenanomaliedatenbank oder einer Echtzeitstraßenanomaliedetektion bestimmt werden. Auf der Basis des mindestens einen Bildes, der Angabe des Orts des Fahrzeugs und der historischen Informationen und/oder der Straßenanomalieinformationen kann das System eine Disparitätsabbildung und/oder ein Disparitätsbild erzeugen.
-
Kurzbeschreibung der Zeichnungen
-
Die ausführliche Beschreibung wird mit Bezug auf die begleitenden Figuren dargelegt. In den Figuren identifizieren die eine oder die mehreren ganz linken Ziffern eines Bezugszeichens die Figur, in der das Bezugszeichen zum ersten Mal erscheint. Die Verwendung derselben Bezugszeichen in verschiedenen Figuren gibt ähnliche oder übereinstimmende Elemente oder Merkmale an.
- [1] 1 stellt ein Beispielerkennungssystem, das zum Durchführen einer Erkennung der Umgebung eines Fahrzeugs konfiguriert ist, gemäß einigen Implementierungen dar.
- [2] 2 stellt eine Beispielarchitektur eines Erkennungssystems, das im Fahrzeug enthalten sein kann, gemäß einigen Implementierungen dar.
- [3] 3 stellt eine Beispielarchitektur eines Erkennungs- und Fahrzeugsteuersystems, das im Fahrzeug enthalten sein kann, gemäß einigen Implementierungen dar.
- [4] 4 stellt ein Beispiel einer Bilderfassung, die durch das Kamerasystem 108 durchgeführt wird, gemäß einigen Implementierungen dar.
- [5] 5 ist ein Ablaufdiagramm, das einen Beispielprozess zum Erzeugen von dynamisch umkonfigurierten Disparitätsabbildungen gemäß einigen Implementierungen darstellt.
- [6] 6 stellt ein Beispiel der Erzeugung einer Historienabbildung gemäß einigen Implementierungen dar.
- [7] 7 stellt ein Beispiel einer Bereichsauswahl zumindest auf der Basis der Historienabbildung gemäß einigen Implementierungen dar.
- [8] 8 umfasst ein Ablaufdiagramm, das einen Beispielprozess zum Bestimmen von ausgewählten Bereichen gemäß einigen Implementierungen darstellt.
- [9] 9 ist ein Ablaufdiagramm, das einen Beispielprozess zum Bestimmen von Bittiefen und Kompressionsniveaus gemäß einigen Implementierungen darstellt.
- [10] 10 stellt eine Beispielbittiefenprioritätstabelle gemäß einigen Implementierungen dar.
- [11] 11 stellt ein Beispiel einer Pixelebenen-Analog-Digital-Umwandlung gemäß einigen Implementierungen dar.
- [12] 12 stellt ein Beispielbild mit einer veränderten Bittiefe für Bereiche mit verschiedenen zugewiesenen Prioritäten gemäß einigen Implementierungen dar.
- [13] 13 stellt eine Beispielkompressionsprioritätstabelle gemäß einigen Implementierungen dar.
- [14] 14 stellt ein Beispielbild mit verschiedenen Regionen, die zum Komprimieren unter Verwendung von verschiedenen Kompressionsniveaus ausgewählt werden, gemäß einigen Implementierungen dar.
- [15] 15 ist ein Ablaufdiagramm, das einen Beispielprozess zum Bestimmen eines optimalen Suchumfangs gemäß einigen Implementierungen darstellt.
- [16] 16 stellt ein Beispiel der Bestimmung von dynamischen dichten Disparitätsinformationen für einen ausgewählten Bereich eines Bildes gemäß einigen Implementierungen dar.
- [17] 17 stellt ein Beispiel der Erzeugung eines Histogramms aus der Disparitätsabbildung des ausgewählten Bereichs des Rahmens N-1 gemäß einigen Implementierungen dar.
- [18] 18 stellt ein Beispiel der Bestimmung von optimalen Suchumfängen für mehrere Bereiche gemäß einigen Implementierungen dar.
- [19] 19 ist ein Ablaufdiagramm, das einen Beispielprozess für einen Stereoabgleich auf der Basis eines adaptiven Fensters gemäß einigen Implementierungen darstellt.
- [20] 20 stellt eine Beispielabgleichsfenstergrößentabelle gemäß einigen Implementierungen dar.
- [21] 21 stellt eine Beispielfarbdifferenzschwellenwerttabelle gemäß einigen Implementierungen dar.
- [22] 22 stellt ein Beispiel eines adaptiven Fensters gemäß einigen Implementierungen dar.
- [23] 23 stellt ein Beispiel einer Erzeugung eines adaptiven Fensters gemäß einigen Implementierungen dar.
- [24] 24 stellt ein Beispiel der Verwendung eines adaptiven Fensters, um ZSAD-Werte zu bestimmen, gemäß einigen Implementierungen dar.
- [25] 25 stellt ein Beispiel der Bestimmung von Abgleichskosten über den optimalen Suchumfang gemäß einigen Implementierungen dar.
- [26] 26 stellt ein Beispiel von ausgewählten Auflösungen, die für Bereiche in einem Bild bestimmt werden, gemäß einigen Implementierungen dar.
- [27] 27 stellt eine Beispielauflösungstabelle gemäß einigen Implementierungen dar.
- [28] 28 stellt ein Beispiel einer dynamisch umkonfigurierten Disparitätsabbildung gemäß einigen Implementierungen dar.
-
Beschreibung von Ausführungsformen
-
Einige Implementierungen hier sind auf Techniken und Anordnungen zum effizienten und dynamischen Erzeugen einer Disparitätsabbildung oder eines Disparitätsbildes gerichtet, das zum Detektieren von Hindernissen, Straßenanomalien und anderen Merkmalen mit Genauigkeit mit hoher Tiefe in verschiedenen Szenarien verwendet werden kann, ohne die Verarbeitungslast an den Fahrzeugprozessoren wesentlich zu erhöhen. Beispiele hier können das Erzeugen von sehr genauen Disparitätsabbildungen umfassen, die zum Detektieren von Merkmalen und ihren jeweiligen Abständen mit entsprechender höherer Genauigkeit verwendet werden können. In einigen Fällen kann eine Historienabbildungsdatenbank aus Betreiberüberwachungsdaten und anderen Daten entwickelt werden, die von mehreren Fahrzeugen empfangen werden, und kann verwendet werden, um die Effizienz der Erzeugung der Disparitätsabbildungen hier zu verbessern. Folglich ermöglichen die Techniken hier die Erzeugung von sehr genauen Disparitätsabbildungen unter Verwendung von geringeren Rechenanforderungen und schaffen dadurch verbesserte Sicherheit für ADAS und AD-Systeme.
-
Als ein Beispiel kann ein Prozessor am Fahrzeug mindestens ein Bild, das die Straße oder einen anderen Fahrweg zeigt, von mindestens einer Kamera des Fahrzeugs empfangen. Der Prozessor kann auch Fahrzeugortsinformationen mit einer Angabe eines aktuellen Orts des Fahrzeugs, wie z. B. auf der Basis von GPS-Informationen (Informationen eines globalen Positionsbestimmungssystems) oder dergleichen, empfangen, die eine aktuelle Fahrspur angeben können, in der das Fahrzeug fährt. Der Prozessor kann auch historische Informationen von einer historischen Datenbank und/oder Straßenanomalieinformationen von einer Straßenanomaliedatenbank empfangen.
-
Der Prozessor kann eine Disparitätsabbildung oder ein Disparitätsbild auf der Basis des mindestens einen Bildes, der Angabe des Orts des Fahrzeugs und der historischen Informationen und/oder der Straßenanomalieinformationen erzeugen. Die Disparitätsabbildung oder das Disparitätsbild kann beispielsweise einige Bereiche mit höherer Disparitätsdichte und einige Bereiche mit niedrigerer Disparitätsdichte aufweisen, die auf der Basis der empfangenen Informationen dynamisch bestimmt werden. Insbesondere können Bereiche, von denen bestimmt wird, dass sie potentielle Hindernisse, Straßenanomalien umfassen, oder andere Bereiche, von denen bestimmt wird, dass sie von Interesse sind, so verarbeitet werden, dass sie Disparitätsinformationen mit höherer Dichte aufweisen, während andere Bereiche der Disparitätsabbildung oder des Disparitätsbildes so verarbeitet werden können, dass sie Disparitätsinformationen mit niedrigerer Dichte aufweisen, z. B. spärliche Disparitätsinformationen. Durch dynamisches Verarbeiten. von nur ausgewählten Abschnitten der Disparitätsabbildung oder des Disparitätsbildes, so dass sie dichte Disparitätsinformationen aufweisen, während ein Rest der Disparitätsabbildung oder des Disparitätsbildes so verarbeitet wird, dass er Disparitätsinformationen mit niedrigerer Dichte oder spärliche Disparitätsinformationen aufweist, können somit beträchtliche Rechenressourcen eingespart werden.
-
In einigen Implementierungen kann das System hier mindestens ein Monokamerasystem oder ein Stereokamerasystem umfassen, das am Fahrzeug montiert sein kann, so dass ein Weitwinkelsichtfeld (FOV) der einen oder der mehreren Kameras im Allgemeinen zur Straßenoberfläche unter normalen Bedingungen parallel ist. Das FOV der einen oder der mehreren Kameras kann weit genug sein, um die vordere Straße und Straßenrandobjekte aufzunehmen. Ferner ist das System hier nicht auf die Aufnahme nur der Straße vor dem Fahrzeug begrenzt. In einigen Beispielen können die eine oder die mehreren Kameras beispielsweise zusätzlich oder alternativ an der Rückseite des Fahrzeugs und/oder an den Seiten des Fahrzeugs montiert sein, um die ganze Umgebungsregion des Fahrzeugs zu detektieren.
-
Einige Beispiele umfassen die Verbesserung der Disparitätsabbildungsgenauigkeit zum Detektieren von Hindernissen, Straßenanomalien und anderen Merkmalen. Das System kann beispielsweise Merkmale und Abstände zu Merkmalen sehr genau detektieren, wodurch die Fahrzeugsicherheit signifikant verbessert wird. Es gibt wenige herkömmliche Techniken, die verfügbar sind, um die Genauigkeit von Disparitätsbildern zu verbessern, die auf der Basis von durch Kameras aufgenommenen Bildern erzeugt werden. Implementierungen hier können datengesteuerte Informationen verwenden, um genauere Disparitätsabbildungen mit effizienter Nutzung von Rechenressourcen zu verwirklichen. Die datengesteuerten Informationen können beispielsweise verwendet werden, um die Bittiefe (Bildqualität) auf der Pixelebene, optimale Bildkompressionsniveaus und Bildkompressionsverfahren auszuwählen und/oder Disparitätsparameter dynamisch abzuschätzen, um die verbesserten dynamisch konfigurierbaren Disparitätsabbildungen hier unter verschiedenen Szenarien der realen Welt zu erzeugen. Folglich schaffen die datengesteuerten dynamisch umkonfigurierbaren Disparitätsabbildungstechniken und die Anordnung hier signifikante Vorteile zum Verbessern der Sicherheit und des Komforts für Fahrzeuginsassen.
-
Einige Beispiele können nur auf Bildern, die vom Kamerasystem empfangen werden, und Informationen, die über ein Netz empfangen werden, zum Auswählen von Prioritätsbereichen in den empfangenen Bildern, Auswählen von Bildkompressionsverfahren für die Verwendung, dynamischen Auswählen der Pixelbittiefe und dynamischen Bestimmen eines optimalen Suchumfangs zum dynamischen Berechnen eines Disparitätsumfangs beruhen. Einige Implementierungen können beispielsweise Informationen des Internets der Dinge (loT) verwenden, um Prioritätsbereiche auszuwählen, die Bildqualität zu bestimmen und Bildkompressionsverfahren zur Verwendung zum Berechnen der Disparitätsabbildungen zu bestimmen.
-
Die Implementierungen hier können eine historische Abbildung verwenden, um die interessierenden Bereiche in Bildern auszuwählen, und können Bereiche mit höherer Priorität zum Erzeugen von dichten Disparitätsinformationen für diese Bereiche mit höherer Priorität auswählen, während spärlichere Disparitätsinformationen für Bereiche außerhalb der Bereiche mit höherer Priorität erzeugt werden. Folglich sind Implementierungen hier nicht auf die Bestimmung von Prioritätsbereichen auf der Basis von detektierten Hindernissen, Straßenanomalien oder anderen Merkmalen begrenzt, sondern können stattdessen die Historienabbildung verwenden, um über die Auflösung von verschiedenen Bereichen der Disparitätsabbildung vorzeitig zu entscheiden. In einigen Beispielen kann die Bestimmung der Bereiche mit höherer Priorität ferner auf Informationen des Internets der Dinge (loT) basieren, z. B. Informationen wie z. B. aktuelle und vergangene Betreiberüberwachungssystemausgabe, Straßenanomalien, die in einer Straßenanomaliedatenbank gespeichert sind und/oder in Echtzeit detektiert werden, und aktuelle und vergangene Verkehrsbewegungen, Verkehrsrichtungen, Staus usw., die alle in der historischen Abbildung enthalten sein können.
-
Auf der Basis der historischen Abbildung und von ausgewählten Bereichen mit höherer Priorität können außerdem eine geeignete Pixelbittiefe und Bildqualität ausgewählt werden. Auf der Basis der historischen Abbildung und von ausgewählten Bereichen mit höherer Priorität können ferner geeignete Bildkompressionsniveaus und Bildkompressionsalgorithmen vor dem Erzeugen einer Disparitätsabbildung aus dem Bild ausgewählt werden. Außerdem kann ein Disparitätssuchumfang dynamisch in Echtzeit für die ausgewählten Bereiche mit höherer Priorität abgeschätzt werden, um eine effiziente Erzeugung von Disparitätsinformationen mit höherer Dichte für die Bereiche mit höherer Priorität zu ermöglichen.
-
Einige Beispiele hier können signifikante Vorteile für aktuelle und zukünftige halbautonome und vollautonome Fahrzeuge schaffen, um sehr genaue Disparitätsabbildungen abzuschätzen, wodurch Merkmale und Merkmalsabstäride mit hoher Genauigkeit detektiert werden. Die Techniken hier können beispielsweise unter Verwendung von verschiedenen Typen von Prozessoren ausgeführt werden, wie z. B. eingebetteten Prozessoren (z. B. eine elektronische AD/ADAS-Steuereinheit (ECU) oder andere Typen von ECUs), Universal-CPUs, Spezialprozessoren sowie Prozessoren von mobilen Vorrichtungen wie z. B. Smartphones, Tablet-Rechenvorrichtungen oder dergleichen. Ferner sind Implementierungen hier nicht auf Personenkraftwagen begrenzt, sondern können auf irgendein Fahrzeug angewendet werden, das eine halbautonome oder vollautonome Fähigkeit umfasst, wie z. B. Pendelbusse, Lastwagen, Züge, Schiffe und so weiter.
-
Für Erörterungszwecke werden einige Beispielimplementierungen in der Umgebung der Erzeugung von Disparitätsbildern mit dynamisch bestimmten dichten Disparitätsbereichen auf der Basis der Detektion und Erkennung von potentiellen Hindernissen oder anderen interessierenden Merkmalen beschrieben. Implementierungen hier sind jedoch nicht auf die bereitgestellten speziellen Beispiele begrenzt und können auf andere Typen von Kameras, andere Typen von Fahrzeugen, andere Typen von Straßen und Merkmalen, andere Wetterbedingungen und so weiter erweitert werden, wie für den Fachmann auf dem Gebiet angesichts der Offenbarung hier ersichtlich ist.
-
1 stellt ein Beispielerkennungssystem 100, das zum Durchführen einer Erkennung der Umgebung eines Fahrzeugs 102 konfiguriert ist, gemäß einigen Implementierungen dar. In diesem Beispiel soll angenommen werden, dass das Fahrzeug 102 auf einer Fahrbahn oder einem anderen Fahrweg 104 in einer durch den Pfeil 106 angegebenen Richtung fährt. Das Erkennungssystem 100 hier kann mindestens ein Kamerasystem 108 umfassen, das am Fahrzeug 102 montiert sein kann. Im dargestellten Beispiel kann das Kamerasystem 108 eine oder mehrere Kameras 110 umfassen. In diesem Beispiel umfassen die eine oder die mehreren Kameras 110 eine Stereokamera. In anderen Beispielen kann das Kamerasystem 108 eine oder mehrere Monokameras anstelle von oder zusätzlich zu einer Stereokamera als die eine oder die mehreren Kameras 110 umfassen. Obwohl die eine oder die mehreren Kameras 110 im Kamerasystem 108 in diesem Beispiel als am Fahrzeugdach angeordnet dargestellt sind, können außerdem in anderen Beispielen die eine oder die mehreren Kameras 110 an irgendeinem von verschiedenen unterschiedlichen Orten am Fahrzeug 102 angeordnet sein.
-
Im dargestellten Beispiel kann ein Sichtfeld (FOV) 114 der einen oder der mehreren Kameras 110 weit genug sein, um die Straße oder den anderen Fahrweg 104 vor dem Fahrzeug 102 aufzunehmen, kann andere Fahrspuren 116, ein oder mehrere andere Fahrzeuge 118, eine Straßenrandfahrspurmarkierung 120, einen Straßenrandbereich 122, Fahrspurmarkierungen 124 und so weiter einschließen. In einigen Fällen kann das Kamerasystem 108 Bilder, die dem FOV 114 entsprechen, während das Fahrzeug 102 in Betrieb ist, kontinuierlich, z. B. mit 10 Rahmen pro Sekunde, 15 Rahmen pro Sekunde, 30 Rahmen pro Sekunde, 60 Rahmen pro Sekunde oder irgendeiner anderen gewünschten Frequenz, aufnehmen, die Bilder mit einer genügend hohen Rate bereitstellt, um die Erkennung des Fahrweges 104 und von beliebigen Hindernissen oder Straßenanomalien im Fahrweg rechtzeitig zu ermöglichen, um eine Ausweichhandlung zu unternehmen oder sich anderweitig an die Erkennungsinformationen anzupassen. Die Bildaufnahmefrequenz (Abtastfrequenz) des Kamerasystems 108 kann beispielsweise zunehmen, wenn die Fahrzeuggeschwindigkeit zunimmt.
-
Das Fahrzeug 102 kann eine oder mehrere Fahrzeugrechenvorrichtungen 126 umfassen, wie nachstehend zusätzlich erörtert. Die eine oder die mehreren Fahrzeugrechenvorrichtungen 126 können ein Erkennungsprogramm 128 und ein Fahrzeugsteuerprogramm 130 ausführen. In einigen Fällen kann das Erkennungsprogramm 128 die durch die Kameras des Kamerasystems 108 aufgenommenen Bilder empfangen und kann eine Verarbeitung an den Bildern durchführen, um eine Erkennung für den aktuellen Fahrweg 104 des Fahrzeugs 102 auf der Basis von einer oder mehreren dynamisch umkonfigurierten Disparitätsabbildungen132 durchzuführen. Die eine oder die mehreren dynamisch umkonfigurierten Disparitätsabbildungen 132 können beispielsweise dynamisch umkonfiguriert werden, so dass sie einige interessierende Regionen mit Disparitätsinformationen mit höherer Dichte und andere Regionen mit Disparitätsinformationen mit niedrigerer Dichte aufweisen. Das Erkennungsprogramm 128 kann Erkennungsinformationen über detektierte und erkannte Hindernisse, Straßenanomalien und andere Merkmale zum Fahrzeugsteuerprogramm 130 liefern, das eine oder mehrere Handlungen auf der Basis der Erkennungsinformationen einleiten kann, wie z. B. Ausgeben eines Alarms zum Warnen eines Fahrzeuginsassen, Bremsen des Fahrzeugs 102, Beschleunigen des Fahrzeugs, Lenken von einem oder mehreren Rädern des Fahrzeugs 102 oder dergleichen.
-
In einigen Fällen kann das Kamerasystem 108 mindestens eine Fahrzeugrechenvorrichtung 126 umfassen, die das Erkennungsprogramm 128 ausführt. In anderen Fällen können die eine oder die mehreren Rechenvorrichtungen 126 vom Kamerasystem 108 separat sein und anderswo im Fahrzeug 102 zum Ausführen des Erkennungsprogramms 128 angeordnet sein. In beiden Fällen können die eine oder die mehreren Fahrzeugrechenvorrichtungen 126 Bilder vom Kamerasystem 108 empfangen und können die Bilder verarbeiten, um Merkmale wie z.B. die Straße, Straßeneigenschaften, Straßenanomalien, Schilder, Hindernisse, andere Fahrzeuge und dergleichen zu detektieren.
-
In einigen Beispielen kann das Erkennungsprogramm 128 eine Disparitätsabbildung aus den empfangenen Bildern erzeugen, z. B. unter Verwendung von Stereokamerabildern, Monokamerabildern oder Bildern, die von mehreren Monokameras aufgenommen werden. Falls eine Monokamera verwendet wird, kann eine Tiefenabbildung unter Verwendung eines trainierten Maschinenlernmodells (in 1 nicht gezeigt) berechnet werden. Anfänglich können beispielsweise ein Satz von monokularen Bildern und ihre entsprechenden Ground-Truth-Parallaxenabbildungen aufgenommen werden und zum Trainieren des Maschinenlernmodells verwendet werden. Anschließend kann das Maschinenlernmodell verwendet werden, um ungefähre Werte der Parallaxenabbildung als Funktion von neu aufgenommenen Bildern vorherzusagen.
-
Im Fall einer Stereokamera oder von mehreren Kameras können alternativ Bilder durch zwei oder mehr Kameras aufgenommen werden. Die aufgenommenen Bilder können verwendet werden um eine Parallaxe unter Verwendung von Blockabgleichstechniken wie z. B. eines halbglobalen Blockabgleichs oder irgendeiner anderen geeigneten Technik zu berechnen. Parallaxeninformationen können verwendet werden, um eine Disparitätsabbildung und/oder ein Disparitätsbild zu erzeugen. In einigen Beispielen hier wird ein Stereokamerasystem als Beispielsystem verwendet, um einige Beispielimplementierungen zu erläutern, aber der Fachmann auf dem Gebiet versteht, dass ähnliche Anordnungen und Techniken unter Verwendung von Systemen mit einer einzelnen Monokamera oder mehreren Monokameras ebenso angewendet werden können.
-
In einem Stereokamerasystem können synchronisierte rechte und linke Kamerabilder unter Verwendung eines Bilderfassungssystems aufgenommen werden, die eine Verzerrung aufgrund der Verlagerung der Kamera während der Installation oder während ungünstigen Fahrbedingungen aufweisen können. Außerdem könnte eine Verzerrung durch die Linsen verursacht werden, die an der Stereokamera befestigt sind. Nachdem die Stereobilder erfasst sind, kann eine Kalibrierungsmatrixbildberichtigung in einigen Beispielen ausgeführt werden, um die Verzerrung zu entfernen und die Bilder erneut auf eine Projektionsebene zu projizieren, die zu einer Linie parallel ist, die die zwei Kameras verbindet. Dies ermöglicht, dass die epipolaren Linien im linken und im rechten Bild übereinstimmen. Gemäß den Beispielen hier kann durch Ausrichten der zwei Kameras, so dass sie koplanar sind, eine Suche, um die Disparitätsabbildung zu erzeugen, auf eine Dimension vereinfacht werden, z. B. eine horizontale Linie, die zur Grundlinie parallel ist, zwischen der linken und der rechten Kamera. Mit berichtigten Stereobildern kann in Abhängigkeit von einer ECU-Fähigkeit ein Stereoblockabgleichsalgorithmus verwendet werden, um die Disparitätsabbildung oder das Disparitätsbild zu berechnen.
-
Nachdem die Stereobilder aufgenommen und auf der Basis von Kalibrierungsinformationen berichtigt sind, kann ein Stereoabgleich an den berichtigten Bildern durchgeführt werden, wie z. B. mit einer vordefinierten interessierenden Region (ROI). Disparität mit vordefinierter Auflösung für jedes Pixel kann beispielsweisedurch Blockabgleichstechniken abgeschätzt werden. Dies kann das Durchsuchen von einem der Bilder eines Bildpaars nach der besten entsprechenden Region für eine Vorlage im anderen Bild umfassen. Die Vorlage kann entlang der epipolaren Linie in einem vordefinierten festen Disparitätsumfang verschoben werden. Der Prozess kann wiederholt werden, bis die Disparität für alle Pixel im rechten Bild abgeschätzt wurde. Eine herkömmliche Technik kann entweder eine spärliche Disparität oder dichte Disparität für das ganze Bild berechnen, wie z. B. auf der Basis der Verarbeitungsfähigkeit der ECU.
-
Die Tiefenabschätzung für ein Merkmal auf der Basis der durch eine Stereokamera aufgenommenen Bilder kann von der Dichte der Disparitätsabbildung abhängen, die unter Verwendung der Stereobilder erzeugt wird, die von der linken und der rechten Kamera der Stereokamera erfasst werden. Eine dichte Disparitätsabbildung oder ansonsten eine Disparitätsabbildung mit höherer Auflösung kann sehr zuverlässige und präzise Tiefeninformationen für alle Pixel im Bild bereitstellen. Andererseits kann eine spärliche Disparität oder ansonsten eine Disparitätsabbildung mit niedrigerer Auflösung auch Tiefeninformationen mit hoher Präzision umfassen, aber nur für eine begrenzte Anzahl von Pixeln. Einige herkömmliche Systeme können feste ROls für linke und rechte Kamerabilder einer Stereokamera verwenden und können entweder spärliche oder dichte Disparitätsabbildungen für das ganze Bild berechnen. Das Berechnen einer dichten Disparitätsabbildung für eine feste ROI kann jedoch häufig rechnerisch aufwändig und ineffizient sein. Andererseits kann eine spärliche Disparitätsabbildung mit einer festen ROI nicht für alle AD/ADAS-Anwendungen geeignet sein, da die Genauigkeit gering sein kann.
-
Ferner kann eine Qualität eines Pixels als Bittiefe (z. B. 8 Bits, 10 Bits, 12 Bits, 16 Bits usw.) von Stereobildern bezeichnet werden und die Bildkompressionsverfahrensverwendung kann sich auch auf die Zuverlässigkeit und Präzision der Erzeugung einer Disparitätsabbildung auswirken. Die Verwendung von Bildern mit niedriger Bittiefe (z. B. 8 Bits) mit verlustbehafteter Bildkompression kann beispielsweise zu geringen Arbeitsspeicheranforderungen führen, kann jedoch spärliche Disparitätsabbildungen ergeben. Andererseits können höhere Bittiefen mit verlustlosen Bildkompressionsverfahren dichte Disparitätsabbildungen ergeben; dies kann jedoch zu höheren Arbeitsspeicheranforderungen führen, wodurch die gesamten Systemverarbeitungs- und Arbeitsspeicherfähigkeiten erhöht werden.
-
Ferner können Disparitätsparameter wie z. B. Suchumfang auch beim Erzeugen einer Disparitätsabbildung oder eines Disparitätsbildes berücksichtigt werden. Der Suchumfang kann beispielsweise den minimalen und maximalen Disparitätswert in einem gegebenen Stereobildpaar definieren. Herkömmliche Techniken können entweder einen festen Suchumfang (beispielsweise: Suchumfang 0-250) für ein ganzes Bild verwenden, um die Disparitätsabbildung ohne Berücksichtigen von verschiedenen unterschiedlichen Szenarien und/oder eines Typs des Hindernisses, einer Straßenanomalie oder anderer Merkmale zu berechnen. Dies kann zu einer Verlängerung der Verarbeitungszeit führen und kann leistungsstärkere Prozessoren für die Verwendung in einem Echtzeitsystem erfordern.
-
Um diese Probleme anzugehen, kann das System hier eine Disparitätsabbildung erzeugen, die eine zuverlässige Merkmalsdetektion, Tiefenabschätzung mit hoher Genauigkeit bereitstellen kann und die Anforderungen eines Fahrzeugherstellers für niedrigere Systemkosten erfüllen kann. Implementierungen hier können beispielsweise eine Disparitätsabbildung oder ein Disparitätsbild durch dynamisches Bestimmen von Prioritätsbereichen innerhalb des Bildes erzeugen, wie z. B. auf der Basis von datengesteuerten Informationen, die von einer Historiendatenbank erhalten werden und über eine Historienabbildung bestimmt werden. Ferner können Implementierungen hier die Prioritätsbereiche betrachten, wenn über eine Bittiefe für jedes Pixel (z. B. die Qualität des Pixels) und das Bildkompressionsverfahren entschieden wird, um die Arbeitsspeicheranforderungen zu verringern und die Tiefenabschätzung für alle Hindernisse, Straßenanomalien und andere Merkmale in allen wahrscheinlichen Szenarien zu verbessern.
-
Einige Beispiele hier können außerdem die Disparitätsparameter dynamisch abschätzen, wie z. B. um die dichte und spärliche Disparitätsabbildung unter Verwendung von Kanten- und Disparitätsinformationen zu berechnen, wodurch die Tiefenabschätzung mit niedrigeren Systemanforderungen verbessert wird. Obwohl einige Beispiele eine Disparitätsabbildung unter Verwendung von Stereokamerabildern erzeugen und umkonfigurieren können, können ferner ähnliche Techniken für Bilder angewendet werden, die durch eine oder mehrere Monokameras aufgenommen werden.
-
2 stellt eine Beispielarchitektur eines Erkennungssystems 200, das im Fahrzeug 102 enthalten sein kann, gemäß einigen Implementierungen dar. Jede Fahrzeugrechenvorrichtung 126 kann einen oder mehrere Prozessoren 202, ein oder mehrere computerlesbare Medien 204 und eine oder mehrere Kommunikationsschnittstellen 206 umfassen. In einigen Beispielen können die eine oder die mehreren Fahrzeugrechenvorrichtungen 126 eine oder mehrere ECUs oder irgendeine von verschiedenen anderen Typen von Rechenvorrichtungen umfassen. Die eine oder die mehreren Rechenvorrichtungen 126 können beispielsweise eine oder mehrere ADAS/AD-ECUs zum Steuern von kritischen Fahrzeugsystemen umfassen, um ADAS- und/oder AD-Aufgaben durchzuführen, wie z. B. Navigation, Bremsen, Lenken, Beschleunigung, Verlangsamung und so weiter. Die eine oder die mehreren Rechenvorrichtungen 126 können auch andere ECUs zum Steuern von anderen Fahrzeugsystemen umfassen.
-
ECU ist ein Oberbegriff für irgendein eingebettetes System, das ein oder mehrere der Systeme, Untersysteme oder Komponenten in einem Fahrzeug steuert. Software, wie z. B. das Erkennungsprogramm 128 und das Fahrzeugsteuerprogramm 130, können durch eine oder mehrere ECUs ausgeführt werden und können in einem Abschnitt der computerlesbaren Medien 204 gespeichert sein (z. B. Programm-ROM), der der jeweiligen ECU zugeordnet ist, um zu ermöglichen, dass die ECU als eingebettetes System arbeitet. ECUs können typischerweise über einen Fahrzeugbus 208 gemäß einem Fahrzeugbusprotokoll miteinander kommunizieren. Als Beispiel ist das Protokoll des Controller-Bereichsnetzbusses (CAN-Busses) ein Fahrzeugbusprotokoll, das ermöglicht, dass ECUs und andere Fahrzeugvorrichtungen und Fahrzeugsysteme ohne Hauptrechner miteinander kommunizieren. Der CAN-Bus kann mindestens zwei verschiedene Typen umfassen. Ein CAN mit hoher Geschwindigkeit kann beispielsweise in Anwendungen verwendet werden, in denen der Bus von einem Ende der Umgebung zum anderen verläuft, während ein fehlertoleranter CAN häufig dort verwendet wird, wo Gruppen von Knoten miteinander verbunden sind.
-
Jede ECU oder andere Fahrzeugrechenvorrichtung 126 kann einen oder mehrere Prozessoren 202 umfassen, die eine oder mehrere von Zentraleinheiten (CPUs), Graphikverarbeitungseinheiten (GPUs), Mikroprozessoren, Mikrocomputern, Mikrocontrollern, Digitalsignalprozessoren, Zustandsmaschinen, Logikschaltungen und/oder beliebigen Vorrichtungen, die Signale auf der Basis von Betriebsanweisungen bearbeiten, umfassen können. Als ein Beispiel können der eine oder die mehreren Prozessoren 202 einen oder mehrere Hardware-Prozessoren und/oder Logikschaltungen irgendeines geeigneten Typs umfassen, die speziell programmiert oder konfiguriert sind, um die Algorithmen und andere hier beschriebene Prozesse auszuführen. Der eine oder die mehreren Prozessoren 202 können dazu konfiguriert sein, computerlesbare Anweisungen abzurufen und auszuführen, die in den computerlesbaren Medien 204 gespeichert sind, die den einen oder die mehreren Prozessoren 202 programmieren können, um die hier beschriebenen Funktionen durchzuführen.
-
Die computerlesbaren Medien 204 können einen flüchtigen und nichtflüchtigen Arbeitsspeicher und/oder entnehmbare und nicht entnehmbare Medien umfassen, die in irgendeinem Typ von Technologie für die Speicherung von Informationen implementiert werden, wie z. B. computerlesbare Anweisungen, Datenstrukturen, Programme, Programmmodule und einen anderen Code oder Daten. Die computerlesbaren Medien 204 können beispielsweise einen RAM, ROM, EEPROM, Flash-Arbeitsspeicher oder eine andere Arbeitsspeichertechnologie, einen optischen Speicher, einen Festkörperspeicher, eine Magnetplatte, einen Cloud-Speicher oder irgendein anderes Medium umfassen, das verwendet werden kann, um die gewünschten Informationen zu speichern, und auf das durch eine Rechenvorrichtung zugegriffen werden kann, sind jedoch nicht darauf begrenzt. In Abhängigkeit von der Konfiguration der einen oder der mehreren Fahrzeugrechenvorrichtungen 126 können die computerlesbaren Medien 204 ein konkretes nichttransitorisches Medium in dem Umfang sein, dass, wenn es erwähnt wird, nichttransitorische computerlesbare Medien Medien ausschließen, wie z. B. Energie, Trägersignale, elektromagnetische Wellen und/oder Signale an sich. In einigen Fällen können die computerlesbaren Medien 204 sich am gleichen Ort wie die Fahrzeugrechenvorrichtung 126 befinden, während die computerlesbaren Medien 204 in anderen Beispielen teilweise von der Fahrzeugrechenvorrichtung 126 entfernt sein können, wie z. B. zugänglich über ein drahtloses Netz oder dergleichen.
-
Die computerlesbaren Medien 204 können verwendet werden, um irgendeine Anzahl von funktionalen Komponenten zu speichern, die durch den einen oder die mehreren Prozessoren 202 ausführbar sind. In vielen Implementierungen umfassen diese funktionalen Komponenten Anweisungen oder Programme, die durch den einen oder die mehreren Prozessoren 202 ausführbar sind, und die, wenn sie ausgeführt werden, speziell den einen oder die mehreren Prozessoren 202 programmieren, um die hier der Fahrzeugrechenvorrichtung 126 zugeschriebenen Handlungen durchzuführen. Funktionale Komponenten, die in den computerlesbaren Medien 204 gespeichert sind, können das Erkennungsprogramm 128 und das Fahrzeugsteuerprogramm 130 umfassen, von denen jedes ein oder mehrere Computerprogramme, Anwendungen, einen ausführbaren Code oder Abschnitte davon umfassen kann. Obwohl diese Programme in diesem Beispiel zusammen dargestellt sind, können ferner während der Verwendung einige oder alle dieser Programme an einer oder mehreren separaten Fahrzeugrechenvorrichtungen 126 ausgeführt werden.
-
Außerdem können die computerlesbaren Medien 204 Daten, Datenstrukturen und andere Informationen speichern, die zum Durchführen der hier beschriebenen Funktionen und Dienste verwendet werden. Die computerlesbaren Medien 204 können beispielsweise eine Historienabbildung 210, Erkennungsinformationen 212, Fahrzeugdaten 214, Bilddaten 216, ein oder mehrere Maschinenlernmodelle (MLM(s)) 218, andere Sensordaten 220 und so weiter speichern. Wie nachstehend zusätzlich erörtert, können die Erkennungsinformationen 212 die eine oder die mehreren dynamisch umkonfigurierten Disparitätsabbildungen 132, die vorstehend erörtert sind, umfassen. Obwohl diese Daten und Datenstrukturen in diesem Beispiel zusammen dargestellt sind, können ferner während der Verwendung einige oder alle dieser Daten und/oder Datenstrukturen durch oder mit einer oder mehreren separaten Rechenvorrichtungen 126 gespeichert werden. Die eine oder die mehreren Rechenvorrichtungen 126 können auch andere funktionale Komponenten und Daten, die Programme, Treiber usw. umfassen können, und die Daten, die durch die funktionalen Komponenten verwendet oder erzeugt werden, umfassen oder unterhalten. Ferner können die eine oder die mehreren Rechenvorrichtungen 126 viele andere logische, programmatische und physikalische Komponenten umfassen, von denen die vorstehend beschriebenen lediglich Beispiele sind, die auf die Erörterung hier bezogen sind.
-
Wie vorstehend erwähnt, kann, falls eine Monokamera als die eine oder die mehreren Kameras 110 verwendet wird, eine Tiefenabbildung unter Verwendung von einem oder mehreren trainierten Maschinenlernmodellen 218 berechnet werden. Anfänglich können beispielsweise ein Satz von monokularen Bildern und ihre entsprechenden Ground-Truth-Parallaxenabbildungen aufgenommen und zum Trainieren des einen oder der mehreren Maschinenlernmodelle 218 verwendet werden. Anschließend können das eine oder die mehreren Maschinenlernmodelle 218 verwendet werden, um ungefähre Werte der Parallaxenabbildung als Funktion von neu aufgenommenen Bildern vorherzusagen.
-
Die eine oder die mehreren Kommunikationsschnittstellen 206 können eine oder mehrere Software- und Hardware-Komponenten zum Ermöglichen einer Kommunikation mit verschiedenen anderen Vorrichtungen umfassen, wie z. B. über den Fahrzeugbus 208 und/oder über ein oder mehrere Netze (in 2 nicht gezeigt). Die eine oder die mehreren Kommunikationsschnittstellen 206 können beispielsweise die Kommunikation durch eines oder mehrere eines LAN, das Internet, Kabelnetze, zellulare Netze, drahtlose Netze (z.B.Wi-Fi) und verdrahtete Netze (z. B. CAN, Fibre Channel, Faseroptik, Ethernet), direkte Verbindungen sowie Nahbereichskommunikationen wie z. B. BLUETOOTH® und dergleichen ermöglichen, wie zusätzlich anderswo hier aufgezählt.
-
In diesem Beispiel umfassen die eine oder die mehreren Kameras 110 im Kamerasystem 108 eine Stereokamera 219. In anderen Beispielen können die eine oder die mehreren Kameras 101 eine oder mehrere Monokameras umfassen. Die eine oder die mehreren Rechenvorrichtungen 126 können mit dem Kamerasystem 108 über den Fahrzeugbus 208, eine direkte Verbindung oder irgendeinen anderen Typ von Verbindung zum Empfangen von Bildern 223 (z. B. linken und rechten Bildern) vom Kamerasystem 108 kommunizieren können. Wie nachstehend im Einzelnen erörtert, kann beispielsweise das Erkennungsprogramm 128 die Bilder 223 vom Kamerasystem 108 empfangen und kann eine Erkennung von Merkmalen in den Bildern 223 durchführen. Die Bilddaten 216 können die Bilder 223 umfassen, die vom Kamerasystem 108 empfangen werden, sowie andere Bildinformationen wie z. B. Metadaten oder verarbeitete Bilder. Einige oder alle der Bilder 223 können beispielsweise als Rohbilder ohne irgendeine wesentliche Verarbeitung empfangen werden. Alternativ kann in anderen Beispielen, wie zusätzlich nachstehend erörtert, z. B. mit Bezug auf 3, das Kamerasystem 108 vielmehr eine Bildverarbeitung und Erkennung in den Bildern 223 durchführen als die Rohbilder 223 zur Fahrzeugrechenvorrichtung 126 zu senden.
-
Außerdem können die eine oder die mehreren Rechenvorrichtungen 126 Fahrzeugdaten 214 von anderen Systemen und/oder anderen Sensoren im Fahrzeug empfangen. Zusätzlich zum Kamerasystem 108 kann das Fahrzeug beispielsweise mehrere andere Sensoren 225 umfassen, die Sensorinformationen bereitstellen können, die durch das Fahrzeugsteuerprogramm 130 verwendet werden. Mehrere nicht erschöpfende Beispiele von anderen Sensoren 225 können Radar, LIDAR, Ultraschall, einen Empfänger eines globalen Positionsbestimmungssystems (GPS), andere Kameras, die z. B. in andere Richtungen gewandt sind, und dergleichen umfassen. Außerdem können die Fahrzeugdaten 214, die durch das Fahrzeugsteuerprogramm 130 verwendet werden, Informationen umfassen, die von verschiedenen Fahrzeugsystemen empfangen werden oder diesen zugeordnet sind, wie z. B. von einem Aufhängungs-Controller 224, der dem Aufhängungssystem zugeordnet ist, einem Lenk-Controller 226, der dem Lenksystem zugeordnet ist, einem Fahrzeuggeschwindigkeits-Controller 228, der einem Brems- und Beschleunigungssystem zugeordnet ist, und so weiter.
-
Als ein Beispiel kann das Erkennungsprogramm 128 die Bilder 223 vom Kamerasystem 108 kontinuierlich empfangen, z. B. wenn das Kamerasystem 108 Bilder 223 des Fahrweges oder einer anderen Umgebung des Fahrzeugs aufnimmt, während sich das Fahrzeug in Bewegung befindet. Ferner kann das Erkennungsprogramm 128 die empfangenen Bilder 223 verarbeiten, um Straßenanomalien, Hindernisse und andere Merkmale zu erkennen. Wie nachstehend zusätzlich erörtert, können die Erkennungsinformationen 212 eine oder mehrere dynamisch umkonfigurierte Disparitätsabbildungen 132 mit einer oder mehreren Disparitätsregionen mit höherer Dichte und einer oder mehreren Disparitätsregionen mit niedrigerer Dichte umfassen.
-
Das Erkennungsprogramm 128 kann die Erkennungsinformationen 212 über irgendwelche erkannten Hindernisse, Straßenanomalien, andere Merkmale usw. zum Fahrzeugsteuerprogramm 130 liefern, das eine oder mehrere Handlungen in Reaktion auf die Erkennungsinformationen 212 unternehmen kann. In einigen Beispielen können das Fahrzeugsteuerprogramm 130 und/oder das Erkennungsprogramm 128 die Erkennungsinformationen 212, die aus den Bildern 223 bestimmt werden, mit den anderen Sensordaten 220 zum Liefern von zusätzlichen verfügbaren Informationen zum Fahrzeugsteuerprogramm 130 zum Steuern des Fahrzeugs fusionieren oder anderweitig kombinieren und vereinigen.
-
Als ein Beispiel kann das Fahrzeugsteuerprogramm 130 Steueralgorithmen auf Regelbasis oder auf der Basis von künstlicher Intelligenz verwenden, um Parameter für die Fahrzeugsteuerung zu bestimmen. Das Fahrzeugsteuerprogramm 130 kann beispielsweise ein oder mehrere Maschinenlernmodelle zum Bestimmen einer geeigneten Handlung wie z. B. Bremsen, Lenken, Verlangsamen, Beschleunigen oder dergleichen anwenden. Ferner kann das Fahrzeugsteuerprogramm 130 ein oder mehrere Steuersignale 238 zu einem oder mehreren Fahrzeugsystemen in Reaktion auf die Erkennungsinformationen 212 senden. Das Fahrzeugsteuerprogramm 130 kann beispielsweise Steuersignale 238 zum Aufhängungs-Controller 224, zum Lenk-Controller 226 und/oder zum Fahrzeuggeschwindigkeits-Controller 228 senden. Die Steuersignale 238 können beispielsweise einen festgelegten Federkoeffizienten und/oder Dämpfungssteuerinformationen, die zum Aufhängungs-Controller 224 gesendet werden; einen festgelegten Lenkwinkel, der zum Lenk-Controller 226 gesendet wird, zum Lenken von einem oder mehreren Rädern; und/oder festgelegte Brems- oder Beschleunigungssteuerinformationen, die zum Fahrzeuggeschwindigkeits-Controller 228 gesendet werden, umfassen.
-
Zusätzlich oder alternativ, wie z. B. falls das Fahrzeug unter der Steuerung eines menschlichen Betreibers steht, kann das Fahrzeugsteuerprogramm 130 ein Steuersignal 238 zu einer Anzeige 240 senden, um einen Alarm und/oder eine oder mehrere Warnvorrichtungen 242 wie z. B. eine hörbare oder visuelle Warnvorrichtung darzustellen. Beispiele von Warnvorrichtungen 242 umfassen Lautsprecher, die einen hörbaren Alarm erzeugen können, haptische Vorrichtungen, die eine Vibration oder einen anderen Typ von taktilem Alarm (z. B. in einem Sitz oder Lenkrad) erzeugen können, und/oder eine visuelle Signalisierungsvorrichtung, die einen visuellen Alarm erzeugen kann.
-
In einigen Beispielen kann das Fahrzeug ein Betreiberüberwachungssystem 244 umfassen, das Betreiberüberwachungsdaten 246 zu der einen oder den mehreren Fahrzeugrechenvorrichtungen 126 liefert. Das Betreiberüberwachungssystem 244 kann beispielsweise die Blickrichtung, die Kopfposition, die Lenkradposition, die Bremslichtaktivität, die Blinkeraktivität, die Fahrpedalaktivität und andere Informationen über den Betreiber des Fahrzeugs und/oder Handlungen, die durch den Betreiber des Fahrzeugs durchgeführt werden, zum Liefern von Betreiberüberwachungsdaten 246 zu der einen oder den mehreren Fahrzeugrechenvorrichtungen 126 überwachen. Die Betreiberüberwachungsdaten 246 können beispielsweise durch das Erkennungsprogramm 128 für die Verwendung zumindest teilweise beim Erzeugen der Historienabbildung 210 empfangen werden.
-
Außerdem kann die Fahrzeugrechenvorrichtung 126 mit einer historischen Datenbank 250 in Kommunikation stehen, die zusätzliche Informationen zu der einen oder den mehreren Fahrzeugrechenvorrichtungen 126 zum Erzeugen der Historienabbildung 210 liefern kann. Die historische Datenbank 250 kann beispielsweise eine Betreiberüberwachüngsdatendatenbank 252, eine Fahrzeuglichtaktivitätsdatenbank 254, eine Lenkradpositionsdatenbank 255 und eine Datenbank 256 für die vergangene und aktuelle Verkehrsrichtung und Verkehrsanwesenheit umfassen. Die Informationen in der historischen Datenbank 250 können vom Fahrzeug 102 und auch von mehreren anderen Fahrzeugen zum Erstellen einer Historie, die jedem Ort auf jeder Fahrbahn oder einem anderen Fahrweg, auf dem die Fahrzeuge fahren, zugeordnet ist, empfangen werden.
-
Ferner können die eine oder die mehreren Fahrzeugrechenvorrichtungen 126 mit einer Straßenanomaliedatenbank 260 in Kommunikation stehen, die Informationen über Straßenanomalien umfassen kann, wie z. B. Schlaglöcher, unregelmäßige Oberflächen, Bodenschwellen und dergleichen. Die Straßenanomaliedatenbank 260 kann beispielsweise unter Verwendung von Straßenanomalieinformationen erstellt werden, die durch eine große Anzahl von Fahrzeugen geliefert wurden, und kann Informationen über Straßenanomalien bereitstellen, die an jedem Ort auf jeder Fahrbahn oder einem anderen Fahrweg angetroffen werden, auf dem die Fahrzeuge fahren. Wie vorstehend erwähnt, können außerdem eine Echtzeithindernisdetektion, Straßenanomaliedetektion und Detektion von anderen Merkmalen durch das Erkennungsprogramm 212 auch berücksichtigt werden, wenn Bereiche des Disparitätsbildes mit höherer Priorität bestimmt werden.
-
In einigen Beispielen können die Straßenanomaliedatenbank 260 und/oder die historische Datenbank 250 lokal auf computerlesbaren Medien am Fahrzeug selbst gespeichert sein. In anderen Beispielen können die historische Datenbank 250 und/oder die Straßenanomaliedatenbank 260 in der Cloud gespeichert sein, wie z. B. auf einer oder mehreren Netzrechenvorrichtungen 262, und können über ein Netz zugänglich sein. Auf die eine oder die mehreren Netzrechenvorrichtungen 262 kann beispielsweise durch die eine oder die mehreren Fahrzeugrechenvorrichtungen 126 in Echtzeit zugegriffen werden, während das Fahrzeug arbeitet, oder auf diese kann beim Bestimmen eines Zielorts zugegriffen werden, um Informationen zum Fahren zum Zielort zu erfassen. Falls die historische Datenbank 250 und/oder die Straßenanomaliedatenbank 260 zumindest teilweise lokal am Fahrzeug 102 gespeichert sind, können diese Datenbanken durch Zugreifen auf aktualisierte Informationen von primären Datenbanken periodisch aktualisiert werden, die an der einen oder den mehreren Netzrechenvorrichtungen 262 gespeichert sind. Wenn das Fahrzeug eine Route befährt, können außerdem neue Informationen hinsichtlich Straßenanomalien, detektierten Merkmalen, detektierten Verkehrsmustern und so weiter für die Netzrechenvorrichtungen hochgeladen werden, um die historische Datenbank 250 und/oder die Straßenanomaliedatenbank 260 für die zukünftige Verwendung durch das Fahrzeug 102 und andere Fahrzeuge zu aktualisieren und zu erweitern.
-
3 stellt eine Beispielarchitektur eines Erkennungs- und Fahrzeugsteuersystems 300, das im Fahrzeug 102 enthalten sein kann, gemäß einigen Implementierungen dar. In diesem Beispiel kann das Kamerasystem 108 eine Verarbeitungsfähigkeit zum Bestimmen von Erkennungsinformationen 212 unabhängig von der einen oder den mehreren Fahrzeugrechenvorrichtungen 126 umfassen. Folglich umfasst das Kamerasystem 108 einen oder mehrere Prozessoren 302, ein oder mehrere computerlesbare Medien 304 und eine oder mehrere Kommunikationsschnittstellen 306. Der eine oder die mehreren Prozessoren 302 können irgendeiner der Prozessoren 202, die vorstehend mit Bezug auf 2 erörtert sind, oder andere geeignete Prozessoren zum Durchführen der hier beschriebenen Operationen sein oder diese umfassen. Ferner können das eine oder die mehreren computerlesbaren Medien 304 irgendeines der computerlesbaren Medien 204, die vorstehend mit Bezug auf 2 erörtert sind, oder andere geeignete computerlesbare Medien sein oder umfassen. Ebenso können die Kommunikationsschnittstellen 306 irgendeine der vorstehend mit Bezug auf 2 erörterten Kommunikationsschnittstellen 206 oder andere geeignete Kommunikationsschnittstellen sein oder umfassen.
-
Außerdem umfasst das Kamerasystem 108 die eine oder die mehreren Kameras 110, die eine oder mehrere Linsen, ein oder mehrere Fokussiersysteme und einen oder mehrere Bildsensoren umfassen können, wie auf dem Fachgebiet bekannt ist. In diesem Beispiel umfassen die eine oder die mehreren Kameras 110 die Stereokamera 219. In anderen Beispielen können die eine oder die mehreren Kameras 110 eine oder mehrere Monokameras umfassen. Das Kamerasystem 108 kann das Erkennungsprogramm 128 an dem einen oder den mehreren Prozessoren 302 ausführen. Folglich kann die Stereokamera 219 Bilder 223 in ihrem FOV aufnehmen und kann die Bilder 223 in den computerlesbaren Medien 304 als Teil der Bilddaten 216 speichern.
-
In einigen Beispielen kann das Erkennungsprogramm 128 Bilder 223 von der einen oder den mehreren Kameras 110 kontinuierlich in einem Puffer in den computerlesbaren Medien 304 empfangen, wenn die jeweiligen Bilder 223 aufgenommen werden. Ferner kann das Erkennungsprogramm 128 die Erkennungsverarbeitung an den empfangenen Bildern 223 durchführen, was die Erzeugung von dynamisch umkonfigurierten Disparitätsabbildungen 132 zumindest teilweise auf der Basis der Historienabbildung 210 umfassen kann, wie nachstehend in zusätzlichem Detail beschrieben. Die Historienabbildung 210 kann beispielsweise auf der Basis von Informationen wie z. B. aktuellen und vergangenen Betreiberüberwachungsdaten 246, Echtzeitstraßenanomalieinformationen, die durch das Erkennungsprogramm detektiert werden, historischen Straßenanomalieinformationen, die von einer Straßenanomaliedatenbank 260 empfangen werden, aktuellen und vergangenen Verkehrsbewegungen, Verkehrsrichtungen und anderen Informationen erzeugt werden, wie zusätzlich nachstehend erörtert. Das Erkennungsprogramm 128 kann dann die Erkennungsinformationen 212 zu den Fahrzeugrechenvorrichtungen 126 in Echtzeit senden (z. B. während sich das Fahrzeug in Bewegung befindet, und rechtzeitig zum Durchführen von Navigationsfunktionen in Reaktion auf detektierte Hindernisse, Straßenanomalien oder andere Merkmale). Das Fahrzeugsteuerprogramm 130 kann dann die Erkennungsinformationen 212 zum Steuern des Fahrzeugs verarbeiten, wie vorstehend mit Bezug auf 2 erörtert und wie nachstehend zusätzlich erörtert.
-
In einigen Beispielen können die eine oder die mehreren Fahrzeugrechenvorrichtungen 126 ein Vereinigungsprogramm 308 ausführen, das anfänglich die Erkennungsinformationen 212 empfangen kann und das auch die anderen Sensordaten 220 empfangen kann. Das Vereinigungsprogramm 308 kann beispielsweise die Erkennungsinformationen 212 mit den anderen Sensordaten 220 vergleichen und in Übereinstimmung bringen, um eine vollständigere Angabe der Umgebung des Fahrzeugs zum Fahrzeugsteuerprogramm 130 zu liefern. Ähnlich zum vorstehend erörterten Beispiel von 2 kann das Fahrzeugsteuerprogramm 130 ein oder mehrere Steuersignale 238 zu einem oder mehreren Fahrzeugsystemen 224, 226, 228, 240 und/oder 242 auf der Basis der empfangenen Erkennungsinformationen 212 und der anderen Sensordaten 220 senden.
-
Ähnlich zum vorstehend erörterten Beispiel von 2 kann ferner das Erkennungsprogramm 128 Informationen zum Konstruieren der Historienabbildung 210 empfangen, wie z. B. Empfangen von Informationen vom Betreiberüberwachungssystem 244, von der historischen Datenbank 250 und/oder der Straßenanomaliedatenbank 260. Zusätzliche Details zum Konstruieren und Verwenden der Historienabbildung 210 werden nachstehend erörtert, z. B. mit Bezug auf 6.
-
4 stellt ein Beispiel 400 einer Bildaufnahme, die durch das Kamerasystem 108 durchgeführt wird, gemäß einigen Implementierungen dar. In diesem Beispiel umfasst das Kamerasystem 108 die Stereokamera 219. Die Stereokamera 219 kann beispielsweise eine rechte Linse 402 und eine linke Linse 404 umfassen. Die rechte Linse 402 kann ein rechtes Bild 406 innerhalb eines rechten Sichtfeldes (FOV) 407 aufnehmen und die linke Linse 404 kann ein linkes Bild 408 innerhalb eines linken FOV 409 aufnehmen. Im dargestellten Beispiel umfasst die Stereokamera 219 einen rechten Bildsensor 410 zum Aufnehmen von Bildern durch die rechte Linse 402 und einen linken Bildsensor 412 zum Aufnehmen von Bildern durch die linke Linse 404. In anderen Beispielen kann die Stereokamera 219 einen einzelnen Bildsensor (in 4 nicht gezeigt) umfassen, der abwechselnd Bilder durch die rechte Linse 402 und die linke Linse 404 aufnimmt.
-
Das System (z. B. das System 100, 200 und/oder 300) kann das rechte und das linke Bild 406 bzw. 408 verwenden, um ein Parallaxenbild zu bestimmen, das als Disparitätsbild bezeichnet wird. Das System kann beispielsweise das Disparitätsbild unter Verwendung des rechten und linken Stereobildes 406 und 408 berechnen, wie z. B. auf der Basis eines Blockabgleichsverfahreηs. Als ein Beispiel, wie auf dem Fachgebiet bekannt ist, wenn ein Punkt P
L=(u1,v1) im linken Bild 408 ist, kann der entsprechende Punkt P
R=(u2,v2) im rechten Bild 406 auf derselben Höhe wie P
L liegen, wenn v1=v2, wie von einer gemeinsamen Grundlinie gemessen. Folglich kann die Parallaxenmessung unter Verwendung einer einfachen Stereokameratheorie bestimmt werden, in der die Parallaxe definiert sein kann als:
-
Auf der Basis der bestimmten Parallaxe können Implementierungen hier das Disparitätsbild durch Bestimmen der Tiefeninformationen eines 3D-Punkts aus der Parallaxe bestimmen, da die Disparität zur entsprechenden Parallaxe umgekehrt proportional ist. Folglich kann die Tiefe unter Verwendung von linken und rechten Bildern und der aktuellen Disparität berechnet werden, z. B.:
wobei Zis der Abstand (Tiefe) entlang der Kameraachse ist, f die Brennweite in Pixeln ist, b eine Grundlinie in Metern ist und d die Disparität in Pixeln ist.
-
Zumindest ein Teil von 5, 8, 9, 16 und 20 umfasst Ablaufdiagramme, die Beispielalgorithmen oder andere Prozesse gemäß einigen Implementierungen darstellen. Die Prozesse sind als Sammlungen von Blöcken in logischen Ablaufdiagrammen dargestellt, die eine Sequenz von Operationen darstellen, von denen einige oder alle in Hardware, Software oder einer Kombination davon implementiert werden können. Im Zusammenhang mit Software können die Blöcke computerausführbare Anweisungen darstellen, die auf einem oder mehreren computerlesbaren Medien gespeichert sind, die, wenn sie durch einen oder mehrere Prozessoren ausgeführt werden, die Prozessoren programmieren, um die angeführten Operationen durchzuführen. Im Allgemeinen umfassen computerausführbare Anweisungen Routinen, Programme, Objekte, Komponenten, Datenstrukturen und dergleichen, die spezielle Funktionen durchführen oder spezielle Datentypen implementieren. Die Reihenfolge, in der die Blöcke beschrieben werden, sollte nicht als Begrenzung aufgefasst werden. irgendeine Anzahl der beschriebenen Blöcke kann in irgendeiner Reihenfolge und/oder parallel kombiniert werden, um den Prozess oder alternative Prozesse zu implementieren, und nicht alle Blöcke müssen ausgeführt werden. Für Erörterungszwecke werden die Prozesse mit Bezug auf die Umgebungen, Gerüste und Systeme beschrieben, die in den Beispielen hier beschrieben sind, obwohl die Prozesse in einer breiten Vielfalt von anderen Umgebungen, Gerüsten und Systemen implementiert werden können.
-
5 ist ein Ablaufdiagramm, das einen Beispielprozess 500 zum Erzeugen von dynamisch umkonfigurierten Disparitätsabbildungen gemäß einigen Implementierungen darstellt. In einigen Beispielen kann der Prozess 500 durch die Systeme 100, 200 und/oder 300, die vorstehend erörtert sind, durch Ausführung des Erkennungsprogramms 128 ausgeführt werden. Die Disparitätsumkonfigurationstechniken hier können beispielsweise das Bestimmen von Prioritätsbereichen in einem Bild unter Verwendung von datengesteuerten Historienabbildungsinformationen umfassen. Ferner kann das System Pixelbittiefen und Bildkompressionsalgorithmen zur Verwendung für die verschiedenen unterschiedlichen Regionen in einem verarbeiteten Bild auswählen. Ferner kann das System einen Disparitätssuchumfang unter Verwendung von Disparitätsabbildungs- und Kanteninformationen bestimmen und kann dann dynamische Stereoabgleichstechniken anwenden, um eine Disparitätsabbildung für jeden im Bild identifizierten Bereich zu erzeugen.
-
Als ein Beispiel kann, nachdem die Kamera gestartet ist und ein Zielort bestimmt wurde, das Erkennungsprogramm ausgeführt werden, um die Aufnahme von rechten und linken Kamerabildern zu starten. Unter Verwendung des aktuellen Orts des Fahrzeugs zusammen mit den Zielortinformationen kann eine Historienabbildung erzeugt werden, um die Bereiche mit höherer Priorität in den aufgenommenen Bildern zu bestimmen. In einigen Beispielen können die Bereiche mit höherer Priorität auch auf der Basis von Straßenanomalieinformationen bestimmt werden, die von einer Straßenanomaliedatenbank empfangen werden. Auf der Basis der identifizierten Bereiche mit höherer Priorität und von aktuellen Wetterinformationen kann das System eine optimale Bildqualität (Bittiefe) für jedes Pixel und einen optimalen Bildkompressionsalgorithmus zur Verwendung für jede Region des Bildes bestimmen. Ferner kann das System einen Disparitätssuchumfang bestimmen und kann einen Stereoabgleich durchführen, um eine Disparitätsabbildung zu erzeugen, in der Bereiche mit Disparitätsinformationen mit höherer Dichte dynamisch zumindest teilweise auf der Basis der Historienabbildung und/oder der Straßenanomalieinformationen bestimmt wurden. Die Erkennung kann zumindest teilweise auf der Basis der erzeugten Disparitätsabbildung durchgeführt werden und zusätzliche Disparitätsabbildungen können wiederholt erzeugt werden, bis das Fahrzeug den Zielort erreicht. Ein Beispielablaufdiagramm dieses Prozesses ist in 5 dargelegt.
-
Bei 502 kann das System bestimmen, dass das Fahrzeug gestartet hat und dass ein Zielort angegeben wurde.
-
Bei 504 kann das System die Erfassung von Bildern von der einen oder den mehreren Kameras beginnen. In einigen Beispielen kann die Kamera eine Stereokamera sein, während die Kamera in anderen Beispielen eine oder mehrere Monokameras sein kann.
-
Bei 506 kann das System den aktuellen Fahrzeugort bestimmen, der eine aktuelle Fahrspur umfassen kann. Das System kann beispielsweise auf einen GPS-Empfänger oder andere Ortsangabeinformationen zugreifen, um den aktuellen Ort des Fahrzeugs zu bestimmen.
-
Bei 508 kann das System Wetterinformationen empfangen. Das System kann beispielsweise die Wetterinformationen über ein Netz empfangen oder kann sie von einem lokalen Sensor an Bord des Fahrzeugs empfangen.
-
Bei 510 kann das System Historienabbildungsinformationen bestimmen. Ein Beispiel der Bestimmung von Historienabbildungsinformationen wird nachstehend mit Bezug auf 6 erörtert.
-
Bei 512 kann das System eine Disparitätsumkonfiguration durch Durchführen der Blöcke 514, 516 und 518 bestimmen.
-
Bei 514 kann das System eine Bereichsauswahl an dem einen oder den mehreren empfangenen Bildern durchführen. Ein Beispielalgorithmus zum Durchführen einer Bereichsauswahl wird nachstehend, z. B. mit Bezug auf 6-8, erörtert.
-
Bei 516 kann das System Bildqualitäts- und Kompressionsparameter auswählen. Wie nachstehend erörtert, z. B. mit Bezug auf 9-11, kann das System beispielsweise eine Bildqualität und ein Kompressionsniveau/Kompressionsverfahren zur Verwendung für verschiedene unterschiedliche Bereiche des Bildes auf der Basis der Bereichsauswahl bestimmen.
-
Bei 518 kann das System Disparitätsparameter zur Verwendung zum Erzeugen der Disparitätsabbildung abschätzen. Das System kann beispielsweise einen optimalen Suchumfang zum Erzeugen der Disparitätsinformationen bestimmen, wie z. B. unter Verwendung der nachstehend mit Bezug auf 15-19 erörterten Techniken.
-
Bei 520 kann das System einen dynamischen Stereoblockabgleich an den empfangenen Bildern durchführen, um eine Disparitätsabbildung oder ein Disparitätsbild auf der Basis der abgeschätzten Disparitätsparameter zu erzeugen. Einige Bereiche der Disparitätsabbildung werden mit Disparitätsinformationen mit höherer Dichte erzeugt und restliche Bereiche der Disparitätsabbildung können mit Disparitätsinformationen mit niedrigerer Dichte erzeugt werden.
-
Bei 522 kann das System eine Detektion und Erkennung unter Verwendung der erzeugten Disparitätsabbildung durchführen.
-
Bei 524 kann das System bestimmen, ob der Zielort erreicht wurde. Wenn nicht, kann der Prozess zu 504 zurückkehren, um das nächste Paar von Stereobildern von der Kamera zu empfangen. Wenn ja, kann der Prozess zu 502 zurückkehren, um zu warten, bis ein neuer Zielort angegeben wurde.
-
6 stellt ein Beispiel der Erzeugung einer Historienabbildung 210 gemäß einigen Implementierungen dar. In einigen Fällen kann eine Hindernis- und/oder Straßenanomaliedetektion verwendet werden, um zu bestimmen, welche Bereiche eines Bildes für eine Disparitätsverarbeitung mit höherer Dichte auszuwählen sind. Mehrere Probleme bei nur der Verwendung der Hindernis- und Straßenanomaliedetektion umfassen jedoch, dass Hindernisse und Straßenanomalien nicht die einzigen Gründe für den Wunsch sind, dass Bereiche mit höherer Disparität erzeugt werden. Wenn beispielsweise das Fahrzeug sich einer Autobahnausfahrt oder Autobahnauffahrt nähert, kann es erwünscht sein, dass dichte Disparitätsinformationen für diese interessierenden Regionen verfügbar sind. Als anderes Beispiel kann, wenn nur detektierte Hindernisse zum Bestimmen von Bereichen mit hoher Dichte in Situationen mit starkem Verkehr verwendet werden, dies schließlich verursachen, dass eine dichte Disparitätsabbildung für virtuell das ganze Bild erzeugt wird, was die Verarbeitungslast an den Prozessoren wesentlich erhöhen kann. Anstatt sich nur auf die Hindernis- und Straßenanomaliedetektion zu verlassen, können folglich Implementierungen hier die Historienabbildung 210 zum Bestimmen von Bereichen mit höherer Priorität zur Auswahl in einem Bild zum Erzeugen von Disparitätsinformationen mit höherer Dichte verwenden.
-
In dem Beispiel von 6 kann die Historienabbildung 210 zumindest teilweise auf der Basis von Informationen erzeugt werden, die von der historischen Datenbank 250 empfangen werden, die vorstehend mit Bezug auf 2 und 3 erörtert ist. Wie vorstehend erwähnt, kann die historische Datenbank 250 beispielsweise aus Informationen erzeugt werden, die von mehreren Fahrzeugen gesammelt werden, die auf derselben Straße wie jener gefahren sind, auf der das Fahrzeug aktuell fährt. In diesem Beispiel umfasst die historische Datenbank 250 die Betreiberüberwachungsdatenbank 252, die Fahrzeuglichtaktivitätsdatenbank 254, die Lenkradpositionsdatenbank 255 und die Datenbank 256 für die vergangene und aktuelle Verkehrsrichtung und Verkehrsanwesenheit. Die Betreiberüberwachungsdatenbank 252 kann beispielsweise Bereiche der Straße umfassen, auf die andere Betreiber zu irgendeinem speziellen Zeitpunkt blicken können, während sie auf der Straße fahren.
-
Die Fahrzeuglichtaktivitätsdatenbank 254 kann angeben, ob Betreiber die Bremsen verwendet haben und/oder den Blinker verwendet haben, während sie ein Fahrzeug auf der Straße betreiben. Die Lenkradpositionsdatenbank 255 kann angeben, ob andere Betreiber das Lenkrad an einem speziellen Ort gedreht haben, während sie ihre Fahrzeuge auf einer Straße betreiben. Außerdem können Echtzeitbetreiberhandlungen auch überwacht und für die Entscheidungsfindung verwendet werden. Die Lenkradbewegung des Lenkrades und/oder die Fahrzeuglichtaktivität des Eigenfahrzeugs können beispielsweise als Echtzeiteingaben überwacht und auch empfangen werden. Die Datenbank 256 für die vergangene und aktuelle Verkehrsrichtung und Verkehrsanwesenheit kann Verkehrsmuster, einen Verkehrsfluss, einen Verkehrsstau oder dergleichen, die durch andere Betreiber angetroffen werden, während sie auf der Straße fahren, sowie aktuelle Verkehrspositionen angeben. Außerdem kann die Straßenanomaliedatenbank 260 irgendwelche Straßenanomalien angeben, die durch die mehreren Fahrzeuge in der Vergangenheit auf der Straße detektiert wurden, auf der das Fahrzeug 102 aktuell fährt. Beispiele von Straßenanomalien können Schlaglöcher, Bodenschwellen, andere Schwellen, andere Typen von unregelmäßigen Oberflächen und so weiter umfassen. Außerdem können irgendwelche aktuell detektierten Hindernisse und aktuelle detektierten Straßenanomalien in Echtzeit durch das Erkennungsprogramm verfolgt und berücksichtigt werden.
-
Wenn die Historienabbildung 210 erzeugt wird, kann außerdem das Erkennungsprogramm auch dazu konfiguriert sein, Eingaben zu berücksichtigen, die vom Betreiberüberwachungssystem an Bord des Fahrzeugs empfangen werden, die den aktuellen Blick oder andere Echtzeiteigenschaften des Betreibers des Fahrzeugs 102 sowie aktuelle Lenkradpositionsinformationen, aktuelle Fahrzeuglichtaktivitätsinformationen und so weiter angeben können. Folglich kann das Erkennungsprogramm 128 Straßenanomaliedatenbankinformationen 602, in Echtzeit detektierte Straßenanomalieinformationen 603, aktuelle und historische Betreiberüberwachungsinformationen 604, aktuelle und historische Fahrzeuglichtaktivitätsinformationen 606, aktuelle und historische Lenkradpositionsinformationen 607, aktuelle und historische Verkehrsdaten 608, Wetterinformationen 610, in Echtzeit verfolgte Hindernisse 612, aktuelle Ortsinformationen 614 und Zielortinformationen 616 berücksichtigen. Durch Berücksichtigen von allen diesen Informationen kann das Erkennungsprogramm 128 Bereiche und Parameter zur Verwendung zum Erzeugen einer Disparitätsabbildung berechnen, wie bei 618 angegeben.
-
7 stellt ein Beispiel einer Bereichsauswahl 700 zumindest auf der Basis der Historienabbildung gemäß einigen Implementierungen dar. In diesem Beispiel soll angenommen werden, dass das linke Bild 408 und das rechte Bild 406, die vorstehend mit Bezug auf 4 erörtert sind, für die Verarbeitung empfangen werden. Ferner kann das Erkennungsprogramm als Eingabe die Informationen von der vorstehend mit Bezug auf 6 erörterten Historienabbildung 210 zum Bestimmen von Prioritätsbereichen in mindestens einem der empfangenen Bilder empfangen. Jede Datenbank 252, 254, 255, 256 in der historischen Datenbank 250 und die Straßenanomaliedatenbank 260 enthalten beispielsweise Listen von detektierten/erkannten Merkmalen mit entsprechenden Ortsinformationen für jedes Merkmal. Auf der Basis des aktuellen Orts des Fahrzeugs kann für jeden Rahmen (d. h. jedes empfangene Bild) auf Inhalte jeder Datenbank für diesen Ort zugegriffen werden. Wenn beispielsweise eine Straßenanomalie vorliegt, die durch die Straßenanomaliedatenbank 260 und/oder Echtzeitstraßenanomaliedetektion angegeben wurde, dann kann der Abstand der Straßenanomalie vom aktuellen Fahrzeugort bestimmt werden. Die Abmessungen der Straßenanomalie können beispielsweise auch aus der Straßenanomaliedatenbank und/oder Erkennungsinformationen zusammen mit einer Priorität bestimmt werden. Die Abstands- und Abmessungsinformationen können in Bildkoordinaten umgewandelt werden. Der Bereich, der der Straßenanomalie entspricht, kann gemäß einem Prioritätsniveauwert bezeichnet werden, wie z. B. zusätzlich nachstehend mit Bezug auf 8 erörtert wird.
-
Im dargestellten Beispiel können die Historienabbildungsinformationen aktuelle Ortsinformationen 614, Straßenanomalieinformationen 602 und 603, vergangene und gegenwärtige Betreiberüberwachungsinformationen 608, die Fahrzeuglichtaktivität 606, Lenkradpositionsinformationen 607, Wetterinformationen 610, verfolgte Hindernisse 612 und Zielortinformationen 616 umfassen. Folglich können die Historienabbildungsinformationen die Anwesenheit eines Schlaglochs, wie bei 702 angegeben, einen Rechtsblick und eine linksseitige Barriere, wie bei 704 angegeben, die Anwesenheit eines Tunnels, wie bei 706 angegeben, und ein oder mehrere verfolgte Fahrzeuge 708 angeben. Auf der Basis dieser Informationen kann das Erkennungsprogramm das System dazu konfigurieren, mehrere Bereiche mit höherer Priorität in mindestens einem der Bilder auszuwählen. Folglich kann das System einen Bereich 710, der einem Schlagloch 712 entspricht, als Bereich mit höherer Priorität auswählen. Ferner kann das System einen Bereich 714, der einem Tunnel 716 entspricht, als Bereich mit höherer Priorität auswählen. Außerdem kann das System einen Bereich 718, der einem verfolgten Fahrzeug 720 entspricht, als anderen Bereich mit höherer Priorität auswählen. Ferner kann das System einen linksseitigen Bereich 722, der einer Betonstraßenbarriere 724 entspricht, als Bereich mit niedrigerer Priorität auswählen (durch Schraffur angegeben) und die Festlegung kann einen rechtsseitigen Bereich 726 als anderen Bereich mit niedrigerer Priorität auswählen (auch durch Schraffur angegeben). Der restliche nicht ausgewählte Bereich des Bildes kann auch als Bereich mit niedrigerer Priorität festgelegt werden. Obwohl die Formen der Prioritätsbereiche 710, 714 und 718 in diesem Beispiel als Rechtecke angegeben sind, sind außerdem Implementierungen hier nicht auf irgendeine spezielle Form für die Prioritätsbereiche begrenzt.
-
8 umfasst ein Ablaufdiagramm, das einen Beispielprozess 800 zum Bestimmen von ausgewählten Bereichen gemäß einigen Implementierungen darstellt. In einigen Beispielen kann der Prozess 800 durch die Systeme 100, 200 und/oder 300 ausgeführt werden, die vorstehend erörtert sind, wie z. B. durch Ausführung des Erkennungsprogramms 128. In einigen Fällen kann der Prozess 800 teilweise dem Block 514 von 5 entsprechen, der vorstehend erörtert ist.
-
Bei 802 kann das System Bereiche, Angaben von Merkmalen und andere Parameter von der Historienabbildung empfangen.
-
Bei 804 kann das System Ortsinformationen empfangen, die einen aktuellen Ort des Fahrzeugs angeben, wie z. B. auf der Basis von Informationen, die vom GPS-Empfänger empfangen werden.
-
Bei 806 kann das System Informationen von der Straßenanomaliedatenbank auf der Basis der Ortsinformationen erhalten.
-
Bei 808 kann das System Abstands- und Abmessungsinformationen für verschiedene Merkmale bestimmen, die in der Historienabbildung und den Straßenanomalieinformationen identifiziert sind.
-
Bei 810 kann das System eine 3D-zu-Bild-Koordinatenumwandlung durchführen, um Abstände vom Fahrzeug zu den verschiedenen identifizierten Merkmalen im Bild zu bestimmen.
-
Bei 812 kann das System die Bereiche bezeichnen, die identifizierten Merkmalen entsprechen. In einigen Beispielen kann das System beispielsweise wahlweise jeden der Bereiche wie z. B. mit einem Merkmalstyp oder dergleichen bezeichnen. Um die Bezeichnung durchzuführen, kann das System auf eine Prioritätsniveautabelle 811 Bezug nehmen, die den Merkmalstyp wie z. B. Fahrzeug, kleines Hindernis, Verkehrsampeln, Verkehrsschild, einen Tunnel/lichtarmen Bereich oder dergleichen angeben kann. Die Tabelle 811 kann ferner eine Nähe des jeweiligen Merkmals, z. B. nah, mittel oder fern, und ein entsprechendes Prioritätsniveau in einem Dezimalwert für jedes Merkmal und jede Nähe, z. B. 1-15, angeben.
-
Bei 814 kann das System die Bereichsinformationen zum nächsten Algorithmus zum Durchführen einer Bildqualitäts- und Kompressionsauswahl liefern, wie nachstehend zusätzlich erörtert.
-
9 ist ein Ablaufdiagramm, das einen Beispielprozess 900 zum Bestimmen von Bittiefen und Kompressionsniveaus gemäß einigen Implementierungen darstellt. In einigen Beispielen kann der Prozess 900 durch die vorstehend erörterten Systeme 100, 200 und/oder 300 durch Ausführung des Erkennungsprogramms 128 ausgeführt werden. Nachdem die Prioritätsbereiche ausgewählt sind, kann das System beispielsweise eine optimale Bittiefe und ein entsprechendes Bildkompressionsniveau für jeden ausgewählten Prioritätsbereich bestimmen. Insbesondere kann in einem Kamerasystem ein Bildsensor wie z. B. eine ladungsgekoppelte Vorrichtung (CCD) oder der Sensor mit aktiven Pixeln (CMOS) Licht durch eine Linse oder eine andere Optik empfangen. Der Sensor kann Informationen in Bezug auf das empfangene Licht zur nächsten Stufe als entweder Spannungssignal oder digitales Signal übertragen. Ein CMOS-Sensor kann beispielsweise Photonen in Elektronen, dann in eine Spannung und dann in einen digitalen Wert unter Verwendung eines Analog-Digital-Wandlers (ADC) umwandeln. Der digitale Wert kann mit einer festgelegten Bittiefe gespeichert werden.
-
Herkömmlich kann eine Pixelbittiefe im ADC vordefiniert (d. h. konstant) sein. Entweder kann beispielsweise eine höhere Bittiefe (z. B. 16 Bits) für das ganze Bild ausgewählt werden oder in einigen Fällen kann eine niedrigere Bittiefe (z. B. 8 Bits) für das ganze Bild ausgewählt werden. Bilder mit niedrigerer Bittiefe können niedrigere Arbeitsspeicheranforderungen aufweisen und können auch Disparitätsabbildungen mit niedrigerer Dichte ergeben. Andererseits können Bilder mit höherer Bittiefe verwendet werden, um Disparitätsabbildungen mit höherer Dichte zu erzeugen, erfordern jedoch auch mehr Arbeitsspeicher für jedes Bild.
-
Außerdem können die Bilder hier komprimiert werden. Einige Kompressionsalgorithmen können jedoch zu einem Verlust an Informationen führen, was für Bereiche mit höherer Priorität unerwünscht sein kann. Folglich kann das System hier ein optimales Kompressionsniveau und einen entsprechenden Kompressionsalgorithmus zur Verwendung für die individuellen ausgewählten Bereiche auf der Basis zumindest eines angegebenen Prioritätsniveaus für jeden Bereich bestimmen. In einigen Fällen kann eine Kompressionsprioritätstabelle zum Bestimmen des optimalen Kompressionsalgorithmus für jeden ausgewählten Bereich verwendet werden.
-
Bei 902 kann das System Informationen empfangen, die die ausgewählten Bereiche und die entsprechende Priorität für jeden ausgewählten Bereich angeben, der z. B. auf der Basis des Prozesses 800 von Fig: 8 bestimmt wird.
-
Bei 904 kann das System einen der ausgewählten Bereiche zur Verarbeitung auswählen.
-
Bei 906 kann das System eine Bittiefe zur Verwendung für den verarbeiteten ausgewählten Bereich bestimmen, z. B. durch Bezugnahme auf eine Bittiefenprioritätstabelle. Eine Beispielbittiefenprioritätstabelle wird nachstehend mit Bezug auf 10 erörtert.
-
Bei 908 kann das System eine Analog-Digital-Umwandlung unter Verwendung einer Pixelebenen-Analog-Digital-Umwandlung für den ausgewählten Bereich durchführen. Ein Beispiel wird nachstehend erörtert, z. B. mit Bezug auf 11.
-
Bei 910 kann das System ein Bildkompressionsniveau und einen entsprechenden Kompressionsalgorithmus zur Verwendung für den ausgewählten Bereich bestimmen und kann die Kompression des ausgewählten Bereichs durchführen.
-
Bei 912 kann das System bestimmen, ob alle ausgewählten Bereiche komprimiert wurden? Wenn ja, geht der Prozess zu 912. Wenn nicht, kehrt der Prozess zu 904 zurück, um einen nächsten ausgewählten Bereich für die Verarbeitung auszusuchen.
-
Bei 914 kann, wenn alle Bereiche des Bildes komprimiert wurden, das komprimierte Bild zum Disparitäts- und Parallaxenabschätzalgorithmus geliefert werden, die zusätzlich nachstehend erörtert wird, z. B. mit Bezug auf 15-22.
-
10 stellt eine Beispielbittiefenprioritätstabelle 1000 gemäß einigen Implementierungen dar. Das System kann beispielsweise eine Bittiefe für jedes Pixel unter Verwendung der ausgewählten Bereiche und der Bittiefenprioritätstabelle 1000 auswählen. In diesem Beispiel enthält die Bittiefenprioritätstabelle 1000 Informationen, die die Bittiefe für jeden ausgewählten Bereich in Abhängigkeit von dem Typ des Merkmals und dem Abstand des Merkmals vom Fahrzeug 102 angeben, wie z. B. auf der Basis von einem oder mehreren aktuellen Szenarien. In Schatten- oder lichtarmen Szenarien (z. B. einem Tunnel) kann es beispielsweise sehr schwierig sein, eine genaue Disparitätsabbildung unter Verwendung einer niedrigen Pixelbittiefe, wie z. B. 8 Bits, zu erzeugen, da nur weniger Umfang von Schatten zum Durchführen der Disparitätsabschätzung verfügbar ist. Um diesem entgegenzuwirken, kann ein zusätzlicher Umfang von Schatten durch Bilder mit hoher Pixelbittiefe (10 bis 12 Bits) es möglich machen, tiefe Schatten und/oder Glanzpunkte zum Erzeugen einer genauen Disparitätsabbildung zu korrigieren.
-
Ebenso kann für Merkmale, die im Abstand (z. B. in der fernen Region) liegen, wie z. B. kleine Hindernisse, eine höhere Pixelbittiefe, wie z. B. 10-12 Bits, verwendet werden. Obwohl die Beispiele hier die Verwendung von Bittiefen von 8 Bits, 10 Bits und 12 Bits beschreiben, sind ferner Implementierungen hier nicht auf irgendwelche speziellen Werte für die Bittiefen begrenzt und irgendeiner von verschiedenen Bittiefenwerten kann auf andere Pixelbittiefeneinrichtungen angewendet werden. Die Pixelbittiefe kann beispielsweise auf der Basis der ECU-Fähigkeit geändert werden, wie z. B. um die Disparitätsgenauigkeit zu erhöhen und verfügbare Ressourcen effizient zu nutzen. In dem Beispiel von 10 umfasst die Bittiefenprioritätstabelle einen Merkmalstyp 1002 und einen Merkmalsort 1004, wie z. B. fern 1006, mittel 1008 und nah 1010.
-
11 stellt ein Beispiel 1100 einer Pixelebenen-Analog-Digital-Umwandlung gemäß einigen Implementierungen dar. Einige Beispiele hier können einen Bildsensor 1102 mit Pixelebenen-Analog-Digital-Wandlern (ADCs) verwenden. Der Bildsensor 1102 umfasst mehrere Pixelblöcke (PBs) 1104, die in Zeilen und Spalten angeordnet sind und mit einem Zeilenselektor 1006 und einem Spaltenselektor 1108 in Kommunikation stehen.
-
Wie bei 1110 in einem vergrößerten Beispiel von einem der Pixelblöcke 1104 dargestellt, enthält jeder Pixelblock 1104 im Bildsensor 1102 seinen eigenen ADC 1112, um einen analogen Signalwert (z. B. Spannung) in einen digitalen Signalwert umzuwandeln. Ein Pixel 1114 im Pixelblock 1104 kann beispielsweise Licht empfangen und ein Verstärker 1116, der dem Pixel 1114 zugeordnet ist, kann ein elektrisches Signal verstärken, das auf der Basis des empfangenen Lichts erzeugt wird. Eine analoge Schaltung 1118 zur korrelierten Doppelabtastung (CDS) kann das Signal zweimal abtasten, um Rauschen zu verringern, und leitet das Signal zum ADC 1112.
-
Die Bittiefe in jedem ADC 1112 für jedes Pixel 1114 kann durch einen Multiplexer 1120 auf der Basis einer empfangenen Pixelbittiefeneingabe 1122 gesteuert werden. Wie mit Bezug auf 9 und 10 erörtert, kann das Erkennungsprogramm 128 beispielsweise ein Prioritätsniveau für jedes Pixel in jedem Bereich des Bildsensors bestimmen und kann auf der Basis der vorstehend mit Bezug auf 10 erörterten Bittiefenprioritätstabelle 1000 die Bittiefe für jeden Pixelblock 1104 im Bildsensor 1002 dynamisch festlegen. Für einen Bereich des Bildsensors, der einem Bereich eines Bildes entspricht; für den ein Prioritätsniveau bestimmt wurde, kann folglich die Bittiefe so festgelegt werden, dass das nächste aufgenommene Bild die festgelegte Pixelniveaubittiefe für jedes Pixel aufweist. Nicht nur die Bittiefe der Graustufe, sondern auch Farbkanäle können beispielsweise dynamisch festgelegt werden, wie z. B. auf der Basis von Merkmalstyp, Abstand und Ort.
-
Die Verwendung einer niedrigeren Bittiefe für Bereiche mit niedrigerer Priorität eines Bildes und höherer Bittiefe für Bereiche mit höherer Priorität desselben Bildes ermöglicht, dass die Bereiche mit niedrigerer Priorität und dadurch das ganze Bild weniger Arbeitsspeicher verbrauchen, während die Bereiche mit höherer Priorität immer noch eine größere Menge an Bildinformationen zum Erzeugen von Disparitätsinformationen mit höherer Dichte aufweisen. Nach der Analog-Digital-Umwandlung im ADC 1112 kann das Signal zu einem digitalen CDS 1124 laufen und dann an den Arbeitsspeicher ausgeben. Nachdem die Werte aller Pixelblöcke 1104 in digitale Werte umgewandelt wurden, wird das Bild im Arbeitsspeicher gespeichert und eine geeignete Bildkompression kann auf das Bild auf der Basis der ausgewählten Prioritätsbereiche angewendet werden, wie nachstehend zusätzlich erörtert.
-
12 stellt ein Beispielbild 1200 mit einer veränderten Bittiefe für Bereiche mit verschiedenen zugewiesenen Prioritäten gemäß einigen Implementierungen dar. In diesem Beispiel soll angenommen werden, dass Bereichen mit niedrigerer Priorität eine Bittiefe von 8 Bits zugewiesen wird, Zwischenprioritätsbereichen eine Bittiefe von 10 Bits zugewiesen wird, und Bereichen mit höherer Priorität eine Bittiefe von 12 Bits zugewiesen wird. Ferner umfasst das Bild eine Angabe von zugewiesenen Abständen, nämlich fern 1202, mittel 1204 und nah 1206. Wie bei 1208 angegeben, sind folglich Bereiche des Bildes mit niedrigerer Priorität mit einer Bittiefe von 8 Bits versehen, wie durch einen ersten Schraffurstil angegeben. Wie bei 1210 angegeben, sind Zwischenprioritätsbereiche des Bildes 1200 mit einer Bittiefe von 10 Bits versehen, wie durch einen zweiten Schraffurstil angegeben. Wie bei 1212 angegeben, sind außerdem Bereiche des Bildes 1200 mit höherer Priorität mit einer Bittiefe von 12 Bits versehen, wie durch einen dritten Schraffurstil angegeben.
-
Das Schlagloch 1214, das vorher als einem Bereich mit höherer Priorität zugeordnet identifiziert wurde, ist beispielsweise in einem Abschnitt 1200 des Bildes enthalten, der mit einer Bittiefe von 12 Bits erzeugt wird. Obwohl acht, 10, und 12 Bits als relative Bittiefe in diesem Beispiel verwendet werden, können ferner in anderen Beispielen höhere oder niedrigere Bittiefen für die verschiedenen unterschiedlichen Prioritätsniveaus verwendet werden. Folglich sind Implementierungen hier nicht auf irgendeine spezielle Bittiefe für irgendein spezielles Prioritätsniveau begrenzt.
-
13 stellt eine Beispielkompressionsprioritätstabelle 1300 gemäß einigen Implementierungen dar. Die Kompressionsprioritätstabelle 1300 kann beispielsweise einen Merkmalstyp 1302 und einen Merkmalsort 1304 umfassen, der fern 1306, mittel 1308 und nah 1310 umfassen kann. Jedes Abstandsniveau, fern 1306, mittel 1308 und nah 1310, kann ein Prioritätsniveau 1312 und ein entsprechendes Bildkompressionsqualitätsniveau 1314 umfassen.
-
Beispiele von Merkmalen können ein Fahrzeug, ein kleines Hindernis, eine Verkehrsampel, ein Verkehrsschild und/oder einen Tunnel oder einen anderen lichtarmen Bereich umfassen. Abschnitte eines Bildes mit Merkmalen, die weiter weg sind und daher schwieriger zu detektieren sind, können beispielsweise unter Verwendung eines gering verlustbehafteten oder verlustlosen Kompressionsalgorithmus komprimiert werden, während Abschnitte des Bildes mit Merkmalen, die näher und daher im Bild leichter zu detektieren sind, mit einem mittel verlustbehafteten oder einem verlustbehafteten Algorithmus, wie z. B. auf der Basis des Merkmalstyps und des Abstandes, komprimiert werden können.
-
Beispiele von Kompressionsalgorithmen sind bei 1316 angegeben. Ein verlustloser Kompressionsalgorithmus kann beispielsweise ein verlustloser Algorithmus für PNG (Portable Network Graphics) sein, während variierende Niveaus des Kompressionsalgorithmus von JPEG (Joint Photographic Experts Group) zum Bereitstellen von niedrig verlustbehafteten, mittel verlustbehafteten oder verlustbehafteten Kompressionsniveaus verwendet werden können. Obwohl mehrere Beispielkompressionsalgorithmen hier erörtert werden, sind ferner Nachbildungen hier nicht auf irgendeinen speziellen Kompressionsalgorithmus begrenzt.
-
14 stellt ein Beispielbild 1400 mit verschiedenen Regionen, die für die Kompression unter Verwendung von verschiedenen Kompressionsniveaus ausgewählt werden, gemäß einigen Implementierungen dar. Sobald ein Bild erzeugt ist, kann eine Bildkompression angewendet werden, um das Bild leichter zu speichern und zu übertragen zu machen. Die Bildkompression verringert beispielsweise die Größe der Daten mit einem steuerbaren Effekt auf die Bildqualität in Abhängigkeit von dem ausgewählten Kompressionsniveau. Als ein Beispiel kann in einer Farbraumtransformation eine einfarbige Eingabe in rote, grüne und blaue Komponenten oder Komponenten von YCbCr (Luminanz, Chrominanz blau, Chrominanz rot) zerlegt und separat gespeichert werden. Eine Abbildungseinrichtung kann Pixelwerte eines Eingangsbildes in Zwischenpixelkoeffizienten transformieren. Eine Quantisierung kann verwendet werden, um die Anzahl von möglichen Werten einer Größe zu verringern, wodurch die Anzahl von Bits verringert wird, die erforderlich ist, um die Größe darzustellen. Außerdem kann eine Entropiecodierung verwendet werden, um die quantisierten Koeffizienten so kompakt wie möglich darzustellen.
-
In einigen Beispielen hier können ein Bildkompressionsalgorithmus und ein Kompressionsniveau unter Verwendung der vorstehend erörterten Kompressionsprioritätstabelle 1300 ausgewählt werden. Die Kompressionsprioritätstabelle 1300 kann beispielsweise einen Kompressionsalgorithmus und ein Kompressionsniveau zur Verwendung zum Komprimieren eines Bildes auf der Basis eines Merkmalstyps, des Abstandes des Merkmals vom Fahrzeug und der aktuellen Verkehrsszenarien angeben.
-
Die Bildkompressionsrate kann einen gewissen Effekt auf das Bild und die Farbqualität des Bildes haben, was sich wiederum auf die Genauigkeit der Disparitätsabbildung auswirken kann. Ein detektiertes Merkmal, das in einer fernen Region angeordnet ist, kann beispielsweise sehr wenig Pixel aufweisen, die verwendet werden können, um die Disparitätsabbildung sehr genau zu berechnen. Wenn eine verlustbehaftete Bildkompression verwendet werden würde, um die Arbeitsspeicherablage zu verringern, können folglich die Bildqualität und die nachfolgenden Disparitätsinformationen auch beeinflusst werden. Wie bei 1402 angegeben, kann beispielsweise ein Fahrzeug in der fernen Region mit dem Hintergrund zerstreut oder vermischt sein, was zu einer ungenauen Disparitätsabbildung führen kann. Andererseits können die Implementierungen hier eine verlustlose Bildkompression für solche Bereiche des Bildes 1400 verwenden, während eine hohe Kompressionsrate für größere Merkmale in der nahen Abstandsregion und für Abschnitte des Bildes ohne interessierende Merkmale verwendet werden kann. Auf der Basis der Kompressionsprioritätstabelle können folglich geeignete Bildkompressionsniveaus ausgewählt werden, um die Systemleistung zu erhöhen, ohne den Ablagearbeitsspeicher zu vergrößern.
-
Im Beispiel von 14, wie vorstehend erwähnt, kann eine niedrig verlustbehaftete oder verlustlose Kompression für den ausgewählten Bereich B verwendet werden, der bei 1402 angegeben ist, und kann auch für den ausgewählten Bereich A verwendet werden, der bei 1404 angegeben ist, der das Schlagloch umfasst. Ferner kann ein mittel verlustbehaftetes Kompressionsniveau für den ausgewählten Bereich D verwendet werden, der bei 1406 angegeben ist, der ein anderes Fahrzeug umfasst. Ein verlustbehaftetes hohes Kompressionsniveau kann für den Rest des Bildes mit den Bereichen E und C verwendet werden.
-
15 ist ein Ablaufdiagramm, das einen Beispielprozess 1500 zum Bestimmen eines optimalen Suchumfangs gemäß einigen Implementierungen darstellt. Nachdem ein Bild komprimiert ist, können Disparitätsparameter zum Erzeugen einer Disparitätsabbildung bestimmt werden. Disparitätsinformationen können entweder unter Verwendung von globalen oder lokalen Verfahren bestimmt werden. Ein Beispiel eines lokalen Verfahrens umfasst einen Blockabgleich, bei dem der Prozessor ein Bild eines Paars von Bildern nach der besten entsprechenden Region für eine Vorlage im anderen Bild des Paars durchsucht. Die Vorlage kann sequentiell entlang einer epipolaren Linie (d. h. einer Abtastlinie) in einem festgelegten Disparitätssuchumfang verschoben werden.
-
Der Disparitätssuchumfang ist ein Parameter, der sich auf sowohl die Disparitätsgenauigkeit als auch die Verarbeitungslast auswirken kann. Herkömmlich kann der Disparitätssuchumfang für das ganze Bild oder eine vordefinierte Region fest sein und kann ungeachtet von Verkehrsszenarien, detektierten Merkmalen oder dergleichen konstant sein. Eine vordefinierte Disparitätssuche kann beispielsweise genaue Disparitätsinformationen für Merkmale in naher und mittlerer Reichweite ergeben; in der fernen Region kann jedoch die Genauigkeit abnehmen und dem Suchprozess kann es misslingen, einen guten Blockabgleich zu finden.
-
Um eine Lösung für die obigen Probleme zu schaffen, können einige Beispiele hier einen dynamischen optimalen Suchumfang verwenden, in dem der Suchumfang dynamisch für jeden ausgewählten Bereich unter Verwendung einer dichten Disparitätsabbildung und von Kantenabbildungsinformationen, die von einem vorherigen Rahmenbild bestimmt werden, bestimmt wird. Diese Technik erreicht nicht nur eine verringerte Verarbeitungszeit, sondern befreit auch mehr Ressourcen, die z. B. für die Disparitätsabschätzung verwendet werden können. In einigen Beispielen kann der Prozess 1500 durch die vorstehend erörterten Systeme 100, 200 und/oder 300 ausgeführt werden, wie z. B. durch Ausführung des Erkennungsprogramms 128, und kann dem Block 518 von 5 entsprechen.
-
Bei 1502 kann das System eine Kantenabbildungsausgabe für ein Bild empfangen, das dem Bild vorangegangen ist, das aktuell verarbeitet wird (z. B. Rahmen N-1). Der vorherige Rahmen kann beispielsweise dem aktuellen Bild innerhalb einer Schwellenzeitdauer vorangegangen sein.
-
Bei 1504 kann das System detektierte Merkmalsinformationen für das Bild empfangen, das dem aktuellen Bild vorangegangen ist (z. B. Rahmen N-1).
-
Bei 1506 kann das System einen Bereich im vorangehenden Bild zum Bestimmen eines optimalen Disparitätssuchumfangs auswählen.
-
Bei 1508 kann das System auf dynamische dichte Disparitätsabbildungsinformationen für den ausgewählten Bereich in dem Bild, das dem aktuellen Bild vorangegangen ist (z. B. Rahmen N-1), zugreifen oder diese anderweitig bestimmen.
-
Bei 1510 kann das System in einigen Beispielen den ausgewählten Disparitätsabbildungsbereich abwärts abtasten.
-
Bei 1512 kann das System ein Histogramm für den ausgewählten Disparitätsbereich berechnen, der auf der Basis der Kantenabbildungsinformationen, den detektierten Merkmalsinformationen und den dichten Disparitätsabbildungsinformationen für das Bild, das dem aktuellen Bild vorangegangen ist, bestimmt wird.
-
Bei 1514 kann das System einen minimalen und maximalen Suchumfang auf der Basis des Histogramms bestimmen.
-
Bei 1516 kann das System einen optimalen Umfang für den ausgewählten Bereich im aktuellen Bild auf der Basis des minimalen und maximalen Suchumfangs bestimmen, der für das vorangehende Bild bestimmt wurde.
-
16 stellt ein Beispiel 1600 zum Bestimmen von dynamischen dichten Disparitätsinformationen für einen ausgewählten Bereich eines Bildes gemäß einigen Implementierungen dar. 16 kann beispielsweise zumindest den Blöcken 1502-1508 von 15 entsprechen. Insbesondere können eine dynamische Disparitätsabbildung 1602 für das Bild des Rahmens N-1, eine Kantenabbildung 1604 für den Rahmen N-1 und ein Bild 1606 mit detektierten Merkmalsinformationen für den Rahmen N-1 zum Bestimmen einer Disparitätsabbildung eines detektierten Fahrzeugs in einem ausgewählten Bereich des Bildes des Rahmens N-1 verwendet werden, wie bei 1608 angegeben. Der ausgewählte Bereich kann beispielsweise dem Bereich 1610 entsprechen, der im Bild 1606 für den Rahmen N-1 angegeben ist.
-
In einigen Fällen kann für den Rahmen N-1 ein fester Disparitätsumfang für das ganze Bild ausgewählt werden und eine Disparitätsabbildung 1602 kann abgeschätzt werden. Dann kann eine dynamische optimale Suchumfangsabschätzung für das aktuelle Bild auf der Basis von Informationen über die vorher detektierten Merkmale im vorangehenden Bild 1606 und ferner auf der Basis der Kantenabbildung 1604 des vorangehenden Bildes und der Disparitätsabbildung des vorangehenden Bildes durchgeführt werden. Die Kanteriabbildung 1604 kann beispielsweise verwendet werden, um den ausgewählten Bereich zu verfeinern, um den ausgewählten Bereich sehr kompakt zu machen. Sobald der Bereich ausgewählt ist, kann die Disparitätsabbildung 1608 des ausgewählten Bereichs in einigen Fällen abwärts abgetastet werden, während in anderen Fällen die Disparitätsabbildung 1608 zur nächsten Stufe für die Erzeugung eines Histogramms ohne Abwärtsabtastung übergeben werden kann. Die Entscheidung hinsichtlich dessen, obabwärts abgetastet werden soll, kann zumindest teilweise von der Verarbeitungsfähigkeit des Prozessors, der die Operationen durchführt, abhängen.
-
17 stellt ein Beispiel der Erzeugung eines Histogramms 1700 aus der Disparitätsabbildung des ausgewählten Bereichs des Rahmens N-1 gemäß einigen Implementierungen dar. Die Disparitätsabbildung 1608 des ausgewählten Abschnitts des vorangehenden Bildes, wie z. B. vorstehend in 16 bestimmt, kann beispielsweise verwendet werden, um das Histogramm 1700 zu erzeugen. Das Histogramm 1700 kann die Anzahl von Pixeln darstellen, die jedem Disparitätswert (Parallaxenwert) in einem Disparitätsumfang 1702 entsprechen. Das Histogramm 1700 kann zum Bestimmen eines optimalen Suchumfangs zur Verwendung zum Bestimmen von Disparitätsinformationen für ein aktuelles Bild N verwendet werden, das dem vorangehenden Bild N-1 folgte.
-
18 stellt ein Beispiel 1800 der Bestimmung von optimalen Suchumfängen für mehrere Bereiche gemäß einigen Implementierungen dar. Mehrere Histogramme 1700 können beispielsweise erzeugt werden, z. B. ein Histogramm für jeden interessierenden Bereich in einem aktuellen Bild, das verarbeitet wird. Sobald ein Histogramm erzeugt ist, können ein maximaler Umfang (Endumfang) und ein minimaler Umfang (Startumfang) abgeschätzt werden und können als optimaler Suchumfang (OSR) für den entsprechenden Bereich des aktuellen Bildes 1802 angegeben werden. In dem Beispielhistogramm 1700 wird auf der Basis der Pixelzählwertinformationen im Histogramm ein Startsuchumfang 1804 als 4 bestimmt und ein Endsuchumfang 1806 ist als 40 angegeben. Folglich ist der OSR 1808, der aus dem Histogramm 1700 bestimmt wird, 4-40, der auf dem Rahmen N-1 basiert.
-
Der OSR 1808 wurde mit Bezug auf den vorherigen Rahmen (N-1) bestimmt. Um den OSR für den aktuellen Rahmen (N) abzuschätzen, können daher vorhergesagte Merkmalsinformationen verwendet werden. Der Endsuchumfang kann beispielsweise verkleinert werden, wenn die relative Geschwindigkeit des detektierten Fahrzeugs größer ist als null, oder kann vergrößert werden, wenn die relative Geschwindigkeit des detektierten Fahrzeugs geringer ist als null. In diesem Beispiel soll angenommen werden, dass die relative Geschwindigkeit des detektierten Fahrzeugs geringer ist als null, und somit wird der OSR für den aktuellen Rahmen als 4-42 anstatt 4-40 abgeschätzt. Dann wird unter Verwendung des vorhergesagten Bereichs der OSR abgeschätzt, der wie in 27 gezeigt ist, verwendet wird, um die Disparitätsabbildung für den aktuellen Rahmen zu berechnen.
-
Für den Rest der interessierenden Bereiche des Bildes können ebenso OSRs auf der Basis der Berechnung von zusätzlichen Histogrammen für die ausgewählten Bereiche im Rahmen N-1 abgeschätzt werden. Wenn der ausgewählte Bereich (Zeile * Spalte = m × n) größer ist als ein vordefinierter Schwellenwert „Th“, wird ein Vorgabe-„mxn“-Block verwendet (beispielsweise Straßenregion). m × n wird beispielsweise auf der Basis der ECU-Fähigkeit ausgewählt. Folglich wird im Bild 1802 der Bereich 1812 als einen OSR von 4-42 aufweisend bestimmt, wie vorstehend erwähnt. Ferner weist der Bereich 1814 einen OSR von 1-5 auf; der Bereich 1816 weist einen OSR von 1-18 auf; der Bereich 1818 weist einen OSR von 60-80 auf, und der Bereich 1820 weist einen OSR von 70-80 auf.
-
19 ist ein Ablaufdiagramm, das einen Beispielprozess 1900 für einen Stereoabgleich auf der Basis eines adaptiven Fensters gemäß einigen Implementierungen darstellt. In einigen Beispielen kann der Prozess 1100 durch die vorstehend erörterten Systeme 100, 200 und/oder 300 durch Ausführung des Erkennungsprogramms 128 ausgeführt werden.
-
Sobald der optimale Disparitätssuchumfang für die jeweiligen interessierenden Bereiche in einem Bild abgeschätzt ist, dann können, um einen besten Abgleich zu finden, verschiedene Kostenmetriken auch in Abhängigkeit von der Verarbeitungsfähigkeit der einen oder der mehreren Fahrzeugrechenvorrichtungen ausgewählt werden. Als ein Beispiel kann das Bestimmen einer Summe absoluter Differenzen (SAD) eine relativ geringe Verarbeitungszeit erfordern; die Genauigkeit der Ähnlichkeitsmessung, die unter Verwendung dieser Technik bestimmt wird, kann jedoch auch niedrig sein. Folglich können einige Beispiele hier eine Null-Mittelwert-Summe absoluter Differenzen (ZSAD) verwenden, die eine verbesserte Technik für den Ähnlichkeitsabgleich ist, die mehr Verarbeitungszeit als SAD verwenden kann, aber die eine genauere Ähnlichkeitsmessung im Vergleich zu jener von SAD schaffen kann.
-
Ferner kann die Gesamtgenauigkeit der Ähnlichkeitsmessung auch von der Größe des verwendeten Abgleichsfensters abhängen. Wenn beispielsweise die für den Blockabgleich verwendete Fenstergröße zu klein ist, kann der Prozess zu einer rauschbehafteten Disparitätsabbildung führen. Wenn andererseits die Fenstergröße zu groß ist, kann die resultierende Disparitätsabbildung zu glatt sein, wie z. B. mit Kanten, die mit dem Hintergrund verstreut sind, was wenig nützliche Informationen schafft.
-
Um die obigen Probleme zu überwinden, umfassen einige Beispiele hier eine neue ZSAD-Stereoabgleichstechnik (Disparitätsabbildungstechnik) auf der Basis eines adaptiven Fensters. Anfänglich können beispielsweise ein Farbähnlichkeitsschwellenwert und ein Zweiglängenschwellenwert ausgewählt werden, wobei der,Zweiglängenschwellenwert eine Rolle auf der Basis der Priorität des ausgewählten Bereichs spielen kann. Unter Verwendung der obigen Parameter kann ein adaptives Fenster für das rechte und das linke Bild individuell erzeugt werden. Unter Verwendung des abgeschätzten OSR-Umfangs für jeden Bereich kann dann der ZSAD-Wert berechnet werden. Sobald die ZSAD über den vollständigen optimalen Disparitätssuchumfang (OSR) berechnet ist, kann ein minimaler Wert berechnet werden und kann als Disparitätswert mit niedriger Auflösung verwendet werden. Dann kann eine Subpixeldisparität auch in einigen Fällen in Abhängigkeit von der gewünschten Auflösung abgeschätzt werden.
-
Bei 1902 kann das System Informationen des ausgewählten Bereichs hinsichtlich der interessierenden Bereiche empfangen, die vorher im verarbeiteten Bild ausgewählt wurden.
-
Bei 1904 kann das System eine Zweiglängen- und Farbähnlichkeitsabschätzung auf der Basis des Zweiglängenschwellenwerts bzw. des Farbähnlichkeitsschwellenwerts durchführen.
-
Bei 1906 kann das System Parameter eines adaptiven Fensters für die ausgewählten Bereiche auswählen.
-
Bei 1908 kann das System ein adaptives Fenster erzeugen.
-
Bei 1910 kann das System abgeschätzte Disparitätsparameter empfangen.
-
Bei 1912 kann das System Abgleichskosten abschätzen.
-
Bei 1914 kann das System einen Disparitätswert, in einigen Beispielen eine Subpixeldisparitätsabschätzung, auswählen.
-
20 stellt eine Beispielabgleichsfenstergrößentabelle 2000 gemäß einigen Implementierungen dar. Nachdem Prioritätsbereiche auf der Basis des Bereichsauswahlprozesses, der vorstehend z. B. mit Bezug auf 5-8 erörtert wurde, bestimmt sind, kann der Zweiglängenschwellenwert (Fenstergröße) für das Abgleichsfenster auf der Basis des Merkmalstyps und des Merkmalsabstandes ausgewählt werden. Die Abgleichsfenstergrößentabelle 2000 kann beispielsweise verwendet werden, um eine geeignete Abgleichsfenstergröße auszuwählen. In diesem Beispiel umfasst die Abgleichsfenstergrößentabelle 2000 einen Merkmalstyp 2002, einen Merkmalsort 2004 und eine horizontale Abgleichsfenstergröße 2008 für verschiedene unterschiedliche Abstände, wie z. B. fern 2008, mittel 2010 und nah 2012.
-
21 stellt eine Beispielfarbdifferenzschwellenwerttabelle 2100 gemäß einigen Implementierungen dar. In diesem Beispiel kann, nachdem Prioritätsbereiche auf der Basis des vorstehend, z. B. mit Bezug auf 5-8, erörterten Bereichsauswahlprozesses bestimmt sind, die Form des Abgleichsferisters, wie z. B. auf der Basis des Merkmalsorts, unter Verwendung der Farbdifferenzschwellenwerttabelle 2100 ausgewählt werden. In diesem Beispiel kann die Farbdifferenzschwellenwerttabelle 2100 ein Farbdifferenzmaximum und ein Farbdifferenzminimum 2102, einen Merkmalsort wie z. B. fern 2106, mittel 2108 oder nah 2110 umfassen. Für jeden Ort können ein minimaler Wert 2112 und ein maximaler Wert 2114 festgelegt werden.
-
22 stellt ein Beispiel 2200 eines adaptiven Fensters 2202 gemäß einigen Implementierungen dar. Das adaptive Fenster 2202 kann beispielsweise auf der Basis von Pixeln definiert werden, die im adaptiven Fenster 2202 enthalten sind oder aus dem adaptiven Fenster 2202 ausgeschlossen sind. In Anbetracht von mehreren Pixeln 2204 kann das adaptive Fenster beispielsweise einen horizontalen Zweig 2206 und einen vertikalen Zweig 2208 mit jeweils einer Zweiglänge aufweisen. Das adaptive Fenster 2202 umfasst ferner eine Grenze 2210, die Grenzen der Pixel entspricht, die im adaptiven Fenster 2202 enthalten sind. Die Größe des horizontalen Zweigs 2206 kann beispielsweise auf der Basis einer Anzahl von Pixeln von p bis pn in der horizontalen Richtung definiert werden und der vertikale Zweig kann ähnlich definiert werden. In einigen Fällen können die mehreren Pixel 2204 der festgelegten Größe eines Blockabgleichsfensters entsprechen, während das adaptive Fenster 2202 innerhalb des Blockabgleichsfensters definiert sein kann.
-
23 stellt ein Beispiel 2300 der Erzeugung des adaptiven Fensters gemäß einigen Implementierungen dar. Dieses Beispiel zeigt eine schematische Darstellung der Erzeugung eines Abgleichsfensters im Matrixformat bei 2302 und ein entsprechendes Bild 2304 mit mehreren adaptiven Beispielfenstern 2306(1), 2306(2) und 2306(3) an mehreren verschiedenen Orten im Bild 2304. Das durch die Matrix 2302 dargestellte Abgleichsfenster 2308, kann beispielsweise mit 9 Pixeln hoch x 11 Pixeln breit bemessen sein, wobei die Werte in der Matrix 2302 in einigen Beispielen Graustufen- oder Intensitätswerte darstellen. In einigen Fällen kann, um die Berechnungen zu vereinfachen, die vertikale Abmessung des Abgleichsfensters fest sein. In anderen Beispielen kann jedoch die vertikale Abmessung unter Verwendung derselben Prozedur wie jener, die für die Berechnung der horizontalen Fenstergröße verwendet wird, auch variabel sein. Sobald beispielsweise eine Fenstergröße und ein Farbdifferenzschwellenwert ausgewählt sind, wie vorstehend mit Bezug auf
19-21 erörtert, kann ein adaptives Fenster 2310 mit einer adaptiven Form und Größe für eines der Bilder des Bildpaars, wie z. B. das linke Bild, unter Verwendung von Gleichungen (3), (4) und (5) wie folgt abgeschätzt werden:
wobei:
- Dc: Graustufenwert oder Farbwert des berücksichtigten Pixels (rechts & links);
- T1 und T2: Farbdifferenzschwellenwerte;
- DS: Raum des berücksichtigten Pixels (rechts & links); und
- L1 und L2: Raumdifferenzschwellenwerte.
-
Wie bei 2312 angegeben, ist ein berücksichtigtes Pixel (für das die Disparität berechnet werden muss) in der n-ten Spalte und der m-ten Zeile angeordnet. Unter Verwendung der obigen Gleichungen können der horizontale Zweig (z. B. die linke und die rechte Seite) und die Länge in der m-ten Zeile berechnet werden. Jedes berücksichtigte Pixel kann beispielsweise mit benachbarten Pixeln verglichen werden. Wenn alle Gleichungen wahr sind, kann die Zweiglänge erhöht werden. Dieser Prozess kann für jede Zeile sowohl aufwärts als auch abwärts wiederholt werden, solange jede Zeile Gl. (3), Gl. (4) und Gl. (5) erfüllt.
-
24 stellt ein Beispiel 2400 der Verwendung eines adaptiven Fensters, um ZSAD-Werte zu bestimmen, gemäß einigen Implementierungen dar. In diesem Beispiel kann ZSAD als Abtastkostenmetriktechnik verwendet werden, um die Ähnlichkeiten oder Abgleichskosten zu messen. Zusätzlich oder alternativ können andere Abgleichskostentechniken angewendet werden. Im Gegensatz zu herkömmlichen Systemen, in denen ein Abgleichsfenster mit fester Größe ungeachtet der Situation und AD/ADAS-Anwendung verwendet wird, kann in einigen Beispielen hier das vorstehend erörterte adaptive Fenster verwendet werden, um die Abgleichskosten abzuschätzen.
-
Als ein Beispiel kann, nachdem das adaptive Fenster berechnet ist, dasselbe adaptive Fenster für sowohl das linke Bild als auch das rechte Bild verwendet werden und der ZSAD-Wert kann unter Verwendung der nachstehenden Gleichung (6) berechnet werden, bis der abgeschätzte OSR erreicht ist:
wobei I'
Right und I'
Left Werte des rechten bzw. des linken Bildes bedeuten und u und v Pixelorte angeben, z. B. wie vorstehend mit Bezug auf die Gleichungen Gl. (1) und Gl. (2) von
4 erörtert.
-
Im dargestellten Beispiel entspricht folglich ein linkes Bild 2402 einem Abgleichsfenster 2404, das als 9×11-Matrix dargestellt ist, und ein rechtes Bild 2406 derselben Szene kann einem Abgleichsfenster 2408 entsprechen, das als andere 9×11-Matrix dargestellt ist. Ein adaptives Fenster 2410, das einem Referenzblock 2412 entspricht, kann für den Blockabgleich entlang einer Abtastlinie 2414 zum Bestimmen von Disparitätsiriformationen innerhalb eines optimalen Suchumfangs 2416 verwendet werden, z. B. wie vorstehend erörtert. Der adaptive Block 2410 kann beispielsweise einem Pixel in der Matrix 2404 entsprechen, während der Referenzblock 2412 einem Pixel in der Matrix 2408 entsprechen kann.
-
25 stellt ein Beispiel 2500 zum Bestimmen von Abgleichskosten über den optimalen Suchumfang gemäß einigen Implementierungen dar. In diesem Beispiel kann, nachdem ZSAD-Werte über den optimalen Suchumfang berechnet sind, ein minimaler Wert abgeschätzt werden und als spärlicher Disparitätswert für den optimalen Suchumfang verwendet werden. Es soll beispielsweise angenommen werden, dass das Minimum des optimalen Suchumfangs 4 ist und das Maximum 42 ist, wie bei 2502 bzw. 2504 angegeben. Mehrere ZSAD-Werte 2506 können über den optimalen Suchumfang berechnet werden, z. B. wie vorstehend erörtert. In diesem Beispiel soll angenommen werden, dass der bei 2508 angegebene Wert der niedrigste Wert ist, der über den Suchumfang berechnet wird, d. h. C2 in diesem Beispiel, wobei C1 und C3 benachbarte Werte sind. Folglich kann der minimale ZSAD-Wert 2508 den minimalen Abgleichskostenwert angeben.
-
26 stellt ein Beispiel von ausgewählten Auflösungen, die für Bereiche in einem Bild 2600 bestimmt werden, gemäß einigen Implementierungen dar. In diesem Beispiel können, nachdem der minimale Abgleichswert bestimmt ist, in Abhängigkeit von der Auflösung Subpixelinformationen auch unter Verwendung von Gleichung (7) berechnet werden:
wobei C2 die Position des minimalen ZSAD-Wert ist, d. h. D2; und C1 und C3 benachbarte Werte von C2 sind.
-
In einigen Beispielen kann die Auflösung der Disparitätsabbildung für die vorstehend ausgewählten Bereiche A-E, z. B. mit Bezug auf 5-8, unter Verwendung einer Disparitätsauflösungstabelle ausgewählt werden, wie nachstehend mit Bezug auf 27 erörtert, die Auflösungen enthält, die für Merkmalstypen und Abstände festgelegt sind. Sobald die Auflösung ausgewählt ist, kann die Disparitätsabbildung unter Verwendung der vorstehend erörterten abgeschätzten Disparitätsparameter berechnet werden, wie z. B. Abgleichsfenstergröße, Farbdifferenzschwellenwerte, optimaler Suchumfang und Abgleichskostenverfahren (z. B. ZSAD mit adaptivem Fenster oder SAD).
-
In diesem Beispiel sind die ausgewählten Disparitätsauflösungen für jeden ausgewählten Bereich A-E bei 2602 angegeben. Der Bereich A und Bereich B als Bereiche mit höherer Priorität weisen beispielsweise eine pixeldichte Disparität von 1x1 auf, der Bereich E weist eine 1/4 abwärts abgetastete spärliche Disparität auf und der Bereich C und der Bereich D weisen eine 1/2 abwärts abgetastete spärliche Zwischendisparität auf.
-
27 stellt eine Beispieldisparitätsauflösungstabelle 2700 gemäß einigen Implementierungen dar. Auf die Disparitätsauflösungstabelle 2700 kann beispielsweise durch das Erkennungsprogramm 128 zum Bestimmen einer Disparitätsauflösung zur Anwendung auf jeden der ausgewählten Bereiche des Bildes Bezug genommen werden. In diesem Beispiel umfasst die Disparitätsauflösungstabelle 2700 einen Merkmalstyp 2702, einen Merkmalsort 2704 und eine Disparitätsauflösung 2706 zur Anwendung für verschiedene unterschiedliche Abstände, wie z. B. fern 2708, mittel 2710 und nah 2712.
-
28 stellt eine dynamisch umkonfigurierte Beispieldisparitätsabbildung oder ein dynamisch umkonfiguriertes Beispieldisparitätsbild 2800 gemäß einigen Implementierungen dar. In diesem Beispiel kann das System eine Disparitätsabbildung oder ein Disparitätsbild erzeugen, das Disparitätsbereiche mit höherer Dichte und Disparitätsbereiche mit niedrigerer Dichte umfasst, die in Echtzeit auf der Basis der vorstehend erörterten Techniken bestimmt werden. Das System kann beispielsweise die Disparitätsinformationen mit höherer Dichte nur für die Bereiche mit höherer Priorität (z. B. Bereiche A und B in diesem Beispiel) berechnen, wohingegen die anderen Regionen mit niedrigeren Prioritäten mit niedrigerer Dichte (niedrigerer Auflösung) von Disparitätsinformationen berechnet werden können.
-
In diesem Beispiel sind die Disparitätsauflösungen für jeden ausgewählten Bereich A-E bei 2802 angegeben. Der Bereich A und der Bereich B als Bereiche mit höherer Priorität weisen beispielsweise eine pixeldichte 1x1-Disparität auf, während der Bereich E eine 1/4 abwärts abgetastete spärliche Disparität aufweist und der Bereich C und der Bereich D eine 1/2 abwärts abgetastete spärliche Zwischendisparität aufweisen. Folglich können Implementierungen hier eine höhere Genauigkeit der Erkennung an den Orten schaffen, die eine höhere Priorität aufweisen, während die Menge an Verarbeitungsressourcen verringert wird, die dazu erforderlich sind.
-
Die erzeugte dynamisch umkonfigurierte Disparitätsabbildung 2800 kann zum Detektieren von Hindernissen und anderen Merkmalen sowie jeweiligen Abständen und/oder Orten der Merkmale verwendet werden. Die detektierten Informationen und irgendwelche Ergebnisse können in eine Netzspeicherstelle hochgeladen werden, wie z. B. die eine oder die mehreren Netzrechenvorrichtungen 262, die vorstehend mit Bezug auf 2-3 erörtert wurden, und können zum Aktualisieren der historischen Datenbank und/oder der Straßenanomaliedatenbank verwendet werden. Diese aktualisierten Informationen können anschließend durch das Fahrzeug und durch andere Fahrzeuge in zukünftigen Historienabbildungen verwendet werden.
-
Die hier beschriebenen Beispielprozesse sind nur Beispiele von Prozessen, die für Erörterungszwecke vorgesehen sind. Zahlreiche andere Variationen sind für den Fachmann auf dem Gebiet angesichts der Offenbarung hier ersichtlich. Obwohl die Offenbarung hier mehrere Beispiele von geeigneten Gerüsten, Architekturen und Umgebungen zur Ausführung der Prozesse darlegt, sind die Implementierungen hier ferner nicht auf die gezeigten und erörterten speziellen Beispiele begrenzt. Ferner schafft diese Offenbarung verschiedene Beispielimplementierungen, wie beschrieben und in den Zeichnungen dargestellt. Diese Offenbarung ist jedoch nicht auf die hier beschriebenen und dargestellten IImplementierungen begrenzt, sondern kann sich auf andere Implementierungen erstrecken, wie dem Fachmann auf dem Gebiet bekannt wäre oder bekannt werden würde.
-
Verschiedene Anweisungen, Prozesse und Techniken, die hier beschrieben sind, können im allgemeinen Zusammenhang mit computerausführbaren Anweisungen betrachtet werden, wie z. B. Computerprogrammen und Anwendungen, die auf computerlesbaren Medien gespeichert sind und durch den einen oder die mehreren Prozessoren hier ausgeführt werden. Im Allgemeinen können die Begriffe Programm und Anwendung austauschbar verwendet werden und können Anweisungen, Routinen, Module, Objekte, Komponenten, Datenstrukturen, einen ausführbaren Code usw. zum Durchführen von speziellen Aufgaben oder Implementieren von speziellen Datentypen umfassen. Diese Programme, Anwendungen und dergleichen können als nativer Code ausgeführt werden oder können heruntergeladen und ausgeführt werden, wie z. B. in einer virtuellen Maschine oder einer anderen gerade rechtzeitigen Kompilierungsausführungsumgebung. Typischerweise kann die Funktionalität der Programme und Anwendungen nach Wunsch in verschiedenen Implementierungen kombiniert oder verteilt werden. Eine Implementierung dieser Programme, Anwendungen und Techniken kann auf Computerspeichermedien gespeichert werden oder über eine gewisse Form von Kommunikationsmedien übertragen werden.
-
Obwohl der Gegenstand in einer Sprache beschrieben wurde, die für strukturelle Merkmale und/oder methodologische Handlungen spezifisch ist, soll selbstverständlich sein, dass der in den beigefügten Ansprüchen definierte Gegenstand nicht notwendigerweise auf die beschriebenen speziellen Merkmale oder Handlungen begrenzt ist. Vielmehr sind die speziellen Merkmale und Handlungen als Beispielformen zum Implementieren der Ansprüche offenbart.