-
GEBIET DER ERFINDUNG
-
Diese Erfindung betrifft Fahrzeugsysteme und insbesondere Systeme und Verfahren zum Erzeugen von Trainingsdaten, die zur Verwendung beim Entwickeln, Trainieren und Beweisen von Algorithmen zum Verwenden von Bilddaten geeignet sind, um Regen, andere Niederschläge oder andere Wetterbedingungen zu detektieren.
-
ALLGEMEINER STAND DER TECHNIK
-
Regen und andere Wetterbedingungen können die Funktionalität von Fahrzeugen beeinflussen. Zum Beispiel kann Regen die Traktion verringern, die Blendung verstärken, die Sicht beeinträchtigen oder Ähnliches. Dementsprechend werden Computeralgorithmen zum Detektieren von und Reagieren auf Regen und andere Wetterbedingungen benötigt. Was ferner benötigt wird, sind Systeme und Verfahren zum Erzeugen von Trainingsdaten, die zur Verwendung beim Entwickeln, Trainieren und Beweisen derartiger Algorithmen geeignet sind.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Um die Vorteile der Erfindung ohne Weiteres zu verstehen, wird eine genauere Beschreibung der oben kurz beschriebenen Erfindung durch Verweis auf spezifische Ausführungsformen, welche in den beigefügten Zeichnungen veranschaulicht sind, bereitgestellt. Unter der Kenntnisnahme, dass diese Zeichnungen lediglich typische Ausführungsformen der Erfindung darstellen und daher nicht als den Geltungsbereich beschränkend aufzufassen sind, wird die Erfindung mit zusätzlicher Genauigkeit und Ausführlichkeit durch die Verwendung der begleitenden Zeichnungen beschrieben und erläutert, wobei:
-
1 ein schematisches Blockdiagramm ist, das eine Ausführungsform eines Sensordatenerzeugungssystems gemäß der vorliegenden Erfindung veranschaulicht;
-
2 ein schematisches Diagramm ist, das eine Ausführungsform einer virtuellen Fahrumgebung veranschaulicht, die simulierte Wetterbedingungen gemäß der vorliegenden Erfindung einschließen kann;
-
3 ein schematisches Diagramm ist, das ein virtuelles Fahrzeug zu einem ersten Zeitpunkt veranschaulicht, bei dem ein oder mehrere virtuelle Sensoren eine Straßenoberfläche und/oder andere Bedingungen einer virtuellen Fahrumgebung „betrachten”;
-
4 ein schematisches Diagramm ist, das eine Ausführungsform von Sensordaten veranschaulicht, die mit einer oder mehreren Kennzeichnungen gemäß der vorliegenden Erfindung versehen sind;
-
5 ein schematisches Blockdiagramm ist, das eine Ausführungsform einer Kennzeichnung gemäß der vorliegenden Erfindung veranschaulicht; und
-
6 ein schematisches Blockdiagramm von einer Ausführungsform eines Verfahrens zum Erzeugen von Trainingsdaten gemäß der vorliegenden Erfindung ist.
-
DETAILLIERTE BESCHREIBUNG
-
Es versteht sich ohne Weiteres, dass die Komponenten der vorliegenden Erfindung, wie sie hierin allgemein beschrieben und in den Figuren veranschaulicht sind, in einer großen Bandbreite unterschiedlicher Konfigurationen angeordnet und gestaltet sein können. Somit ist die folgende detailliertere Beschreibung der Ausführungsformen der Erfindung, wie sie in den Figuren dargestellt ist, nicht als den Geltungsumfang der beanspruchten Erfindung einschränkend, sondern als rein repräsentativ für bestimmte Beispiele von gegenwärtig in Erwägung gezogenen Ausführungsformen gemäß der Erfindung zu verstehen. Die gegenwärtig beschriebenen Ausführungsformen werden am besten unter Bezugnahme auf die Zeichnungen verstanden, in denen gleiche Teile durch gleiche Bezugszeichen bezeichnet sind.
-
In Bezug auf 1 stellt die reale Welt eine Reihe von Bedingungen und Hindernissen dar, die sich beständig ändern. Diese Realität erzeugt wesentliche Herausforderungen für fahrzeugbasierte Systeme, die eine autonome Steuerung bestimmter Fahrzeugfunktionen, Fahrzeugdynamik und/oder autonomes Fahren bereitstellen. Um diese Herausforderungen zu überwinden, kann ein Fahrzeug mit Sensoren und Computersystemen ausgestattet sein, die gemeinsam eine Umgebung erfassen, interpretieren und entsprechend darauf reagieren. Wichtige Komponenten derartiger Computersysteme können ein oder mehrere Algorithmen sein, die zum Interpretieren einer Datenausgabe durch verschiedene Sensoren verwendet werden, die sich an Bord derartiger Fahrzeuge befinden.
-
Zum Beispiel können mit bestimmten Algorithmen ein oder mehrere Ströme von Sensordaten analysiert werden, die einen Bereich (z. B. eine Straßenoberfläche) in der Nähe eines Fahrzeugs und die Wetterbedingungen (z. B. Art, Vorhandensein, Fehlen oder Menge eines Niederschlags) in diesem Bereich kennzeichnen. Andere Algorithmen können für ein Entscheiden, was auf Grundlage dieser Daten passieren soll, verantwortlich sein. Alle derartigen Algorithmen müssen gut entwickelt und gründlich getestet sein. In ausgewählten Ausführungsformen kann ein anfänglicher und wesentlicher Teil einer derartigen Entwicklung und derartiger Tests in einer virtuellen Umgebung realisiert werden. Dementsprechend kann ein System 10 gemäß der vorliegenden Erfindung Sensordaten 12 produzieren, die für ein Entwickeln, Testen und/oder Trainieren von verschiedenen Algorithmen geeignet sind.
-
Zum Beispiel kann ein System 10 in bestimmten Ausführungsformen eine Simulation ausführen, um Sensordaten 12 zu produzieren, die für eine sichtbasierte Niederschlagsdetektion unter Verwendung von Deep Learning geeignet sind, um zwischen „Regen-” und „Nicht-Regen-” (oder anderen „Wetter-” oder „Nicht-Wetter-”) Klassen oder Bedingungen zu unterscheiden. Um dies zu tun, kann ein System 10 als Hardware, Software oder eine Kombination davon ausgeführt sein.
-
In ausgewählten Ausführungsformen kann ein System 10 Computer-Hardware und Computer-Software einschließen. Die Computer-Hardware eines Systems 10 kann einen oder mehrere Prozessoren 14, einen Speicher 16, eine Benutzerschnittstelle 18, andere Hardware 20 oder Ähnliches oder eine Kombination oder Unterkombination davon einschließen. Der Speicher 16 kann mit dem einen oder den mehreren Prozessoren 14 wirkverbunden sein und die Computer-Software speichern. Dies kann den einen oder die mehreren Prozessoren 14 dazu befähigen, die Computer-Software auszuführen.
-
Eine Benutzerschnittstelle 18 eines Systems 10 kann einen Ingenieur, einen Techniker oder dergleichen dazu befähigen, verschiedene Aspekte eines Systems 10 auszuführen, anzupassen, zu steuern oder mit ihnen zu interagieren. In ausgewählten Ausführungsformen kann eine Benutzerschnittstelle 18 eines Systems 10 einen/eine/ein oder mehrere Tastenfelder, Tastaturen, Touchscreens, Zeigevorrichtungen oder Ähnliches oder eine Kombination oder Unterkombination davon einschließen.
-
In ausgewählten Ausführungsformen kann der Speicher 16 eines Computersystems 12 ein oder mehrere Fahrzeugbewegungsmodelle 22, ein oder mehrere Sensormodelle 24, eine oder mehrere virtuelle Fahrumgebungen 26 (z. B. eine virtuelle Umgebung, die unter Verwendung von dreidimensionalen Modellierungs- und Animationswerkzeugen erstellt wurde und verschiedene virtuelle Wetterbedingungen 28 enthält), ein Simulationsmodul 30, Sensordaten 12, andere Daten oder Software 32 oder Ähnliches oder Kombinationen oder Unterkombinationen davon speichern.
-
Ein Fahrzeugbewegungsmodell 22 kann ein Software-Modell sein, das für bestimmte Situationen die Bewegung der Karosserie eines entsprechenden Fahrzeugs definieren kann. In bestimmten Ausführungsformen kann ein derartiges Fahrzeugbewegungsmodell 22 ziemlich einfach sein. Zum Beispiel kann es einfach einen Weg definieren, der beim Durchfahren von einem oder mehreren virtuellen Sensoren (z. B. Sensoren, die durch ein oder mehrere Sensormodelle 24 definiert werden) durch eine virtuelle Fahrumgebung 26 einzuschlagen ist. In anderen Ausführungsformen kann ein Fahrzeugbewegungsmodell 22 robuster sein (z. B. eine höhere Genauigkeit in Bezug auf die Realität aufweisen). Zum Beispiel kann ein Fahrzeugbewegungsmodell 22 mit einer oder mehreren Fahrereingaben (z. B. ein oder mehrere Werte, die Elemente wie etwa Geschwindigkeit, Antriebsdrehmoment, Bremswirkung, Lenkeingabe oder Ähnliches oder Kombinationen oder Unterkombinationen davon charakterisieren) und/oder Informationen (z. B. Daten aus einer virtuellen Fahrumgebung 26) ausgestattet sein, die eine Straßenoberfläche charakterisieren. Mit diesen Eingaben und Informationen kann ein Fahrzeugbewegungsmodell 22 Bewegungszustände der Karosserie eines entsprechenden Fahrzeugs vorhersagen.
-
Die Parameter eines Fahrzeugbewegungsmodells 22 können auf jede geeignete Weise bestimmt oder spezifiziert werden. In ausgewählten Ausführungsformen können bestimmte Parameter eines Fahrzeugbewegungsmodells 22 von früheren Kenntnissen der mechanischen Eigenschaften (z. B. Geometrien, Trägheit, Steifigkeit, Dämpfungskoeffizienten usw.) eines entsprechenden Fahrzeugs in der realen Welt abgeleitet werden.
-
Wie anerkannt, können sich die Parameter bei verschiedenen Fahrzeugen unterscheiden. Dementsprechend kann ein Fahrzeugbewegungsmodell 22 in ausgewählten Ausführungsformen fahrzeugspezifisch sein. Das heißt, dass ein Fahrzeugbewegungsmodell 22 dazu geeignet sein kann, die Karosseriedynamik eines ersten Fahrzeugs (z. B. eines bestimmten Sportwagens) zu modellieren, während ein anderes Fahrzeugbewegungsmodell 22 dazu geeignet sein kann, die Karosseriedynamik eines zweiten Fahrzeugs (z. B. eines bestimmten Pick-Ups) zu modellieren.
-
Ein Sensormodell 24 kann ein Software-Modell sein, das für bestimmte Situationen oder „Betrachtungen” die Ausgabe eines entsprechenden Sensors für die reale Welt definieren oder vorhersagen kann. In bestimmten Ausführungsformen kann ein Sensormodell 24 mit Informationen (z. B. Daten aus einer virtuellen Fahrumgebung 26) ausgestattet sein, die verschiedene Betrachtungen einer Straßenoberfläche oder von einem oder mehreren Bereichen in ihrer Nähe, Umgebungswetterbedingungen oder Ähnliches charakterisieren. Mit diesen Informationen kann ein Sensormodell 24 das produzieren, was ein tatsächlicher Sensor ausgeben würde, wenn diese Betrachtungen ihm in der realen Welt präsentiert werden würden.
-
In ausgewählten Ausführungsformen können interessierende Sensoren der realen Welt Wandler umfassen, die einige Eigenschaften einer Umgebung erfassen oder detektieren und eine entsprechende Ausgabe (z. B. ein elektrisches oder optisches Signal) bereitstellen, die diese Eigenschaft definiert. Zum Beispiel können ein oder mehrere interessierende Sensoren der realen Welt Kameras (z. B. Digitalkameras) sein. Kameras können verwendet werden, um Bilder einer Fahrumgebung zu produzieren. Derartige Bilder können analysiert werden, um etwas über diese Fahrumgebung zu lernen.
-
Ein Sensormodell 24 kann die Ausgabe modellieren, die durch einen beliebigen interessierenden Sensor der realen Welt produziert wird. Wie anerkannt, können sich die Ausgaben bei verschiedenen Sensoren der realen Welt unterscheiden. Dementsprechend kann ein Sensormodell 24 in ausgewählten Ausführungsformen sensorspezifisch sein. Das heißt, dass ein Sensormodell 24 dazu geeignet sein kann, die Ausgabe eines ersten Sensors (z. B. einer bestimmten nach vorn gerichteten Digitalkamera) zu modellieren, während ein anderes Sensormodell 24 dazu geeignet sein kann, die Ausgabe eines zweiten Sensors (z. B. einer bestimmten nach hinten gerichteten Digitalkamera) zu modellieren.
-
Ein Sensormodell 24 kann eine Ausgabe von jedem geeigneten Format produzieren. Ein Sensormodell 24 kann in ausgewählten Ausführungsformen ein Signal (z. B. ein digitales Signal) ausgeben, das ein entsprechender Sensor der realen Welt produzieren würde. Zum Beispiel kann ein Sensormodell 24, das einer Kamera entspricht oder eine Kamera modelliert, Bilddaten in Form eines Videos oder einem oder mehreren Standbildern ausgeben, die eine Vielzahl von Frames definieren oder bilden.
-
Ein Simulationsmodul 30 kann programmiert werden, um eine virtuelle Fahrumgebung 26, ein Fahrzeugbewegungsmodell 22 und ein oder mehrere Sensormodelle 24 zu verwenden, um eine Ausgabe (z. B. Sensordaten 12) zu produzieren, die das modelliert, was durch einen oder mehrere entsprechende Sensoren der realen Welt ausgegeben werden würde, wenn der eine oder die mehreren Sensoren der realen Welt an einem Fahrzeug (z. B. das Fahrzeug, das durch das Fahrzeugbewegungsmodell 22 modelliert wird) befestigt wäre(n), das in einer tatsächlichen Fahrumgebung wie (z. B. im Wesentlichen oder genau übereinstimmend mit) der virtuellen Fahrumgebung 26 gefahren wird.
-
In Bezug auf 2 kann eine virtuelle Fahrumgebung 26 in ausgewählten Ausführungsformen eine virtuelle Fahroberfläche 34 (z. B. die Straße 34) und verschiedene virtuelle Wetterbedingungen 28 umfassen, die in Bezug auf die Fahroberfläche 34 an verschiedenen Stellen, mit verschiedenen Intensitäten (z. B. Niederschlagsintensität oder Menge an Niederschlag) oder Ähnlichem positioniert sind. Die virtuellen Wetterbedingungen 28 in einer virtuellen Fahrumgebung 26 können einem oder mehreren optischen Merkmalen 36 entsprechen, die mit verschiedenen Arten oder Graden von Wetter in der realen Welt verknüpft sind, oder diese einschließen.
-
Zum Beispiel können bestimmte optische Merkmale 36 mit einer „Regen-” Bedingung verknüpft sein. Derartige Merkmale 36 können einen bedeckten Himmel, Tropfen an der Außenseite einer Fensterfläche (z. B. Tropfen, die für eine Kamera sichtbar sind, die sich in einem Fahrgastraum oder einem Führerhaus eines Fahrzeugs befindet), die relative Dunkelheit in der Umgebung unter Berücksichtigung der Tageszeit, Straßenbefeuchtung, eine verdeckte Sicht (z. B. Unvermögen entfernte Objekte zu erkennen oder zu sehen), Fahrzeugscheinwerfer, die zu einer Tageszeit eingeschaltet sind, zu der sie normalerweise nicht eingeschaltet sind, „glänzende” oder spiegelnde Straßenoberflächen, Spuren, die für kurze Zeit zurückbleiben, nachdem die Reifen eines Fahrzeugs (z. B. des betreffenden Fahrzeugs oder von einem oder mehreren anderen Fahrzeugen vor dem betreffenden Fahrzeug) das Wasser auf einer Straßenoberfläche geteilt haben oder Ähnliches oder eine beliebige Kombination oder Unterkombination davon einschließen. Andere optische Merkmale können mit einer „Nicht-Regen-” Bedingung verknüpft sein. Derartige Merkmale 36 können einen klaren Himmel, das Fehlen von Tropfen an einer Außenseite einer Fensterfläche, normale Lichtverhältnisse in der Umgebung unter Berücksichtigung der Tageszeit, eine gute Sicht (z. B. Fähigkeit entfernte Objekte zu erkennen oder zu sehen), matte Straßenoberflächen, das Fehlen von Fahrzeugspuren oder Ähnliches oder eine beliebige Kombination oder Unterkombination davon einschließen. Andere optische Merkmale 36 können anderen Formen des Niederschlags oder anderen Wetterbedingungen entsprechen. Dementsprechend kann eine virtuelle Fahrumgebung 26 verschiedene optische Merkmale 36 umfassen, die in Bezug auf die Fahroberfläche 34, andere Fahrzeuge, die auf der Fahroberfläche 34 fahren oder Ähnliches an verschiedenen Stellen, in verschiedenen Ausrichtungen oder Ähnlichem positioniert sind, um das Vorhandensein, das Fehlen oder den Grad (d. h. die Menge) von Regen, Schnee, einem anderen Niederschlag, Nebel oder Ähnlichem zu simulieren.
-
In ausgewählten Ausführungsformen kann eine virtuelle Fahrumgebung 26 zahlreiche Strukturen einschließen, die wetterunabhängig sind, wie etwa Straßenoberflächen 34 (z. B. einspurige, mehrspurige Ausführungsformen und/oder Ausführungsformen mit gegenüberliegenden Fahrspuren von verschiedenen Konstruktionsarten), Hügel, Ebenen, Konfigurationen am Straßenrand, Kurven, Kreuzungen oder Ähnliches oder Kombinationen davon mit und ohne andere Fahrzeuge. Zusätzlich dazu kann eine virtuelle Fahrumgebung 26 zahlreiche Wetterbedingungen 28 auf Grundlage der Art, des Vorhandenseins, des Fehlens oder des Grads von einem oder mehreren optischen Merkmalen 36 bereitstellen, unterstützen oder simulieren. Die Anzahl der Permutationen zwischen zahlreichen wetterunabhängigen Strukturen und zahlreichen Wetterbedingungen 28 kann signifikant sein. Dementsprechend kann ein System 10 gemäß der vorliegenden Erfindung innerhalb eines kurzen Zeitraums virtuelle Sensordaten 12 in großen Mengen produzieren. Zudem können relevante Parameter, wie etwa Wetterbedingungen 28 (z. B. Niederschlag, Nebel oder Ähnliches oder ein diesbezügliches Fehlen), die Tageszeit, die Umgebungsbeleuchtung, die relative Position und die relativen Anordnungen der wetterunabhängigen Strukturen und Ähnliches, in den aufgezeichneten Sensordaten 12 randomisiert werden, um einen vielfältigen Datensatz mit minimaler Verzerrung zu gewährleisten.
-
Ein derartiger vielfältiger Datensatz kann verwendet werden, um einen oder mehrere Algorithmen, die korrekt und wiederholbar eine Fahrumgebung in der realen Welt interpretieren, zu entwickeln und/oder zu trainieren. Wenn diese Algorithmen in der realen Welt implementiert sind, können sie die nachteiligen Wirkungen in Verbindung mit verschiedenen Wetterbedingungen und bei Anwendungen mit oder ohne Fahrer verringern. Zum Beispiel kann ein derartiger Datensatz verwendet werden, um ein Klassifizierungssystem zu entwickeln, das gegenüber einem bestimmten Merkmal agnostisch ist, das in dem einen oder den mehreren Bildern enthalten ist, die von einer Kamera aufgenommen wurden. Das heißt, dass ein neuronales Netzwerk, das im Hinblick auf einen derartigen Datensatz trainiert wurde, ein Bild nicht zwangsläufig nach einem bestimmten Merkmal absuchen muss. Vielmehr kann das neuronale Netzwerk beurteilen, ob ein Bild in seiner Gesamtheit für eine Klasse oder eine andere bezeichnender ist.
-
Dieser Agnostizismus kann deutliche Vorteile bereitstellen. Zum Beispiel kann es diese Art des Trainings ermöglichen, dass jedes Bild, das in der realen Welt aufgenommen wurde, so untersucht oder analysiert wird, „wie es ist.” Das heißt, dass möglicherweise kein Bedarf für eine Bildvorverarbeitung besteht, damit ein Klassifizierungssystem in der realen Welt korrekt funktioniert. Ferner ist nicht zwangsläufig eine zusätzliche Kalibrierung erforderlich. Zudem kann ein neuronales Netzwerk in der realen Welt ein oder mehrere Bilder ohne Rücksicht darauf klassifizieren, ob eine Kamera, die das eine oder die mehreren Bilder aufgenommen hat, an einer exakten Stelle fixiert war, mehr zum Himmel zeigte, mehr zur Straße zeigte, mehr nach vorn zeigte, mehr nach hinten zeigte oder Ähnliches.
-
Zum Beispiel können eine oder mehrere Kameras (z. B. eine oder mehrere nach vorn gerichtete Kamera, eine oder mehrere nach hinten gerichtete Kameras oder eine Kombination davon) einen Bereich um ein Fahrzeug in der realen Welt überwachen. Dementsprechend können Algorithmen, die unter Verwendung virtueller Daten 12 entwickelt und/oder trainiert werden, die unter Verwendung von Systemen und/oder Verfahren gemäß der vorliegenden Erfindung erzeugt werden, verwendet werden, um Wetterbedingungen (z. B. Regen und Nicht-Regen, Schnee und Nicht-Schnee, Nebel und Nicht-Nebel oder Ähnliches) zu erkennen und geeignete Antworten oder Vorbereitungen zu implementieren.
-
In Bezug auf 3 kann ein Simulationsmodul 30 durch eine Reihe von Berechnungen effektiv eine oder mehrere virtuelle Kameras 38 (z. B. eine oder mehrere virtuelle, nach vorn gerichtete Kameras 38a, eine oder mehrere virtuelle, nach hinten gerichtete Kameras 38b oder eine Kombination davon) durch eine virtuelle Fahrumgebung 26 durchfahren, die eine oder mehrere Wetterbedingungen 28 definiert oder einschließt. In ausgewählten Ausführungsformen kann dies ein Manipulieren eines Betrachtungspunkts von bestimmten virtuellen Kameras 38 in Bezug auf die virtuelle Fahrumgebung 26 während eines solchen Durchfahrens einschließen. Konkreter kann es, während eines solchen Durchfahrens, das Bewegen von einer oder mehreren virtuellen Kameras 38 in Bezug auf die virtuelle Fahrumgebung 26, so wie durch ein Fahrzeugbewegungsmodell 22 vorgegeben, das die Bewegung eines entsprechenden virtuellen Fahrzeugs 40 modelliert, das in der virtuellen Fahrumgebung 26 fährt und die eine oder die mehreren virtuellen Kameras 38 trägt, einschließen.
-
In ausgewählten Ausführungsformen kann ein Simulationsmodul 30 drei Koordinatensysteme berücksichtigen, um die Bewegung der einen oder der mehreren virtuellen Kameras 38 korrekt zu erfassen. Das erste kann ein globales Trägheitskoordinatensystem innerhalb einer virtuellen Fahrumgebung 26 sein. Das zweite kann ein ungestörtes Koordinatensystem eines virtuellen Fahrzeugs 40 sein, das durch ein oder entsprechend einem Fahrzeugbewegungsmodell 22 definiert wird. Dies kann das Koordinatensystem einer „ungestörten” Version des virtuellen Fahrzeugs 40 sein, bei dem seine „xy”-Ebene parallel zu einer Bodenebene (z. B. eine geschätzte, virtuelle Bodenebene) definiert sein kann. Das dritte kann ein gestörtes Koordinatensystem des Fahrzeugs 40 sein. Dies kann das Koordinatensystem des virtuellen Fahrzeugs 40 sein, das Roll-, Neige-, Hebe- und Gierbewegungen ausführt, die fahrerinduziert (z. B. verursacht durch virtualisiertes Lenken, Bremsen, Beschleunigen oder Ähnliches) und/oder straßeninduziert (z. B. verursacht durch eine virtuelle Fahrumgebung 26) oder auf andere virtuelle Störungen (z. B. Wetterbedingungen 28, wie etwa Seitenwind, Radschlupf aufgrund von Traktionsverlust oder Ähnliches) zurückzuführen sind. Ein Simulationsmodul 30 kann zwei oder mehr dieser verschiedenen Koordinatensysteme verwenden, um zu bestimmen, welche Betrachtungen oder Bedingungen zu welchen virtuellen Kameras 38 während eines Simulationsprozesses gehören.
-
Das heißt, dass in der realen Welt die Kameras, die durch ein oder mehrere Sensormodelle 24 modelliert werden, an Bord eines entsprechenden Fahrzeugs getragen werden können. Bestimmte derartige Kameras können gesichert sein, um sich mit der Karosserie eines entsprechenden Fahrzeugs zu bewegen. Dementsprechend kann sich die Betrachtung, die von derartigen Kameras geprüft wird, in Abhängigkeit von der Ausrichtung des entsprechenden Fahrzeugs in Bezug auf die Umgebung verändern.
-
Um derartige Auswirkungen in einem System 10 gemäß der vorliegenden Erfindung zu simulieren, kann ein Simulationsmodul 30 die Stelle und Ausrichtung von einer oder mehreren virtuellen Kameras 38 (z. B. Sensoren, die durch ein oder mehrere entsprechende Sensormodelle 24 modelliert werden) innerhalb eines Koordinatensystems berücksichtigen, das dem virtuellen Fahrzeug 40 (z. B. das Fahrzeug, das durch das Fahrzeugbewegungsmodell 22 modelliert wird) entspricht. Ein Simulationsmodul 30 kann auch berücksichtigen, wie ein derartiges fahrzeugbasiertes Koordinatensystem in der Form von Roll-, Neige-, Hebe- und Gierbewegungen, die durch ein Fahrzeugbewegungsmodell 22 auf Grundlage von virtualisierten Fahrereingaben, durch eine virtuelle Fahrumgebung 26 definierte Straßeneingaben und Ähnliches vorhergesagt werden, gestört wird. Dementsprechend kann ein Simulationsmodul 30 für jeden simulierten interessierenden Zeitpunkt eine Stelle und Ausrichtung einer bestimmten virtuellen Kamera 38 in Bezug auf eine virtuelle Fahrumgebung 26 berechnen und die Betrachtung innerhalb der virtuellen Fahrumgebung 26, die zu diesem Zeitpunkt durch diese bestimmte virtuelle Kamera 38 zu erfassen ist, bestimmen.
-
Für einen ersten simulierten Zeitpunkt kann ein Simulationsmodul 30 die Betrachtungen der virtuellen Fahrumgebung 26, die zu diesem Zeitpunkt durch eine oder mehrere virtuelle Kameras 38 zu erfassen sind, bestimmen. Ein Simulationsmodul 30 kann dann von einem oder mehreren geeigneten Sensormodellen 24 Ausgaben erhalten, die diese Betrachtungen charakterisieren. Dieser Prozess kann für einen zweiten simulierten Zeitpunkt, einen dritten simulierten Zeitpunkt und so weiter wiederholt werden. Dementsprechend kann ein Simulationsmodul 30 durch das Fortschreiten von einem Zeitpunkt zum nächsten einen oder mehrere Datenströme erhalten, die jeweils das modellieren, was der Ausgabe von der einen oder den mehreren Kameras 38 entsprechen würde, wenn sie und die entsprechende virtuelle Fahrumgebung 26 real wären.
-
In Bezug auf 4 und 5 können unterschiedliche Datenströme 42 in ausgewählten Ausführungsformen die Ausgabe von unterschiedlichen Kameras 38 darstellen. Zum Beispiel kann ein erster Datenstrom 42a die Ausgabe von einer virtuellen Kamera 38a darstellen, die so befestigt ist, dass sie an dem vorderen Teil eines virtuellen Fahrzeugs 40 nach vorn gerichtet ist und ein zweiter Datenstrom 42b kann die Ausgabe von einer virtuellen Kamera 38b darstellen, die so befestigt ist, dass sie an dem hinteren Teil eines virtuellen Fahrzeugs 40 nach hinten gerichtet ist. Zusammen können die verschiedenen Datenströme 42, welche die Sensordaten 12 für einen bestimmten Durchlauf bilden (z. B. ein bestimmtes virtuelles Durchfahren eines bestimmten virtuellen Fahrzeugs 40 durch eine bestimmte virtuelle Fahrumgebung 26), eine oder mehrere (z. B. alle oder weniger als alle) Eingaben darstellen oder erfassen, die ein bestimmter Algorithmus (z. B. der sichtbasierte Regendetektionsalgorithmus, der entwickelt oder getestet wird) in der realen Welt verwenden würde.
-
In bestimmten Ausführungsformen oder Situationen kann ein Simulationsmodul 30 Sensordaten 12 mit einer oder mehreren Kennzeichnungen 44 koppeln. Jede derartige Kennzeichnung 44 kann „Ground-Truth” entsprechend der virtuellen Fahrumgebung 26 bereitstellen. In ausgewählten Ausführungsformen kann die in einer oder mehreren Kennzeichnungen 44 enthaltene Ground-Truth dazu verwendet werden, die Leistung eines Algorithmus beim Klassifizieren von Wetterbedingungen in einer überwachten Lernmethode zu quantifizieren.
-
Zum Beispiel können eine oder mehrere Kennzeichnungen 44 einen oder mehrere Wettercodes 46 (z. B. binäre Werte, die Regen gegenüber Nicht-Regen, das Vorhandensein oder Fehlen von einer oder mehreren anderen Wetterbedingungen 28 oder Kombinationen davon bezeichnen), andere Informationen 48 oder Ähnliches einschließen, was verschiedenen Wetterbedingungen 28 entspricht, auf die ein virtuelles Fahrzeug 40 in einem bestimmten Durchlauf trifft. Die Kennzeichnungen 44 können mit bestimmten Teilen (z. B. einem oder mehreren Frames) der Datenströme 42 verknüpft, verbunden oder anderweitig assoziiert sein. Dementsprechend kann die Ground-Truth, die einer bestimmten Wetterbedingung 28 oder Ähnlichem entspricht, mit dem Teil von einem oder mehreren Datenströmen 42 verknüpft sein, welche die Wahrnehmung von einer oder mehreren virtuellen Kameras 38 dieser Wetterbedingung 28 wiedergeben. In ausgewählten Ausführungsformen kann dies durch das Verknüpfen von unterschiedlichen Kennzeichnungen 44a, 44b mit unterschiedlichen Teilen von einem oder mehreren Datenströmen 42 erreicht werden.
-
In Bezug auf 6 kann ein System 10 einen Prozess 52 gemäß der vorliegenden Erfindung unterstützen, ermöglichen oder ausführen. In ausgewählten Ausführungsformen kann ein derartiger Prozess 52 mit dem Erzeugen 54 einer virtuellen Fahrumgebung 26, einschließend verschiedene Wetterbedingungen 28, beginnen. Die virtuelle Fahrumgebung 26 kann dann in einem Simulationsprozess mit einer oder mehreren virtuellen Kameras 38 durchfahren 56 werden.
-
Wenn die virtuelle Fahrumgebung 26 mit einer oder mehreren virtuellen Kameras 38 durchfahren 56 wird, kann sich der Betrachtungspunkt der einen oder der mehreren virtuellen Kameras 38 in Bezug auf die virtuelle Fahrumgebung 26 mit jedem Schritt ändern. In ausgewählten Ausführungsformen kann der Betrachtungspunkt von einer oder mehreren virtuellen Kameras 38 in Bezug auf die virtuelle Fahrumgebung 26 so manipuliert 58 werden, wie durch ein Fahrzeugbewegungsmodell 22 vorgegeben. Dementsprechend können die verschiedenen Betrachtungen, die durch die eine oder die mehreren virtuellen Kameras 38 zu verschiedenen simulierten Zeitpunkten zu erfassen sind, erhalten 60 oder identifiziert 60 werden.
-
Die verschiedenen Betrachtungen, die so erhalten 60 oder identifiziert 60 werden, können durch oder über entsprechende Sensormodelle 24 analysiert werden, um Daten 12 zu erhalten 62, die widerspiegeln, was eine entsprechende Digitalkamera in der realen Welt, welche die verschiedenen Betrachtungen in der realen Welt betrachtet, produziert oder ausgegeben hätte. In ausgewählten Ausführungsformen können diese Daten 12 mit Ground-Truth-Informationen gekennzeichnet 64 werden, um bestimmte überwachte Lernmethoden zu unterstützen oder zu ermöglichen.
-
Somit können eine oder mehrere virtuelle Kameras 38 in Bezug auf eine virtuelle Fahrbahn 34 gemäß ihrer geplanten Positionierung an einem Fahrzeug in der realen Welt positioniert werden. Die virtuellen Kameras 38 können dann entlang der virtuellen Fahrbahn 34 zu Stellen bewegt werden, an denen sie eine oder mehrere Wetterbedingungen 28 beobachten können. Der eine oder die mehreren virtuellen Kameras 38 können dann Daten 42 produzieren, während sie sich durch die virtuelle Umgebung 26 bewegen.
-
Für jeden Zeitschritt von produzierten Daten 42 können die Kennzeichnungen 44 automatisch bereitgestellt werden, um Ground-Truth-Informationen über die Wetterbedingungen aufzuzeichnen. Zum Beispiel kann jeder Frame (z. B. eigenständiges Bild) von produzierten Daten 42 einen entsprechenden Eintrag in einer Protokolldatei aufweisen, welcher die Ground-Truth dafür darlegt oder identifiziert, ob eine Regenbedingung (oder eine andere Niederschlags- oder Wetterbedingung) in diesem Frame vorliegt (z. B. aufgezeichnet wurde).
-
Sobald erzeugt, können die Sensordaten 12 gemäß der vorliegenden Erfindung dazu verwendet werden, verschiedene Algorithmen zu trainieren oder zu testen. In bestimmten Ausführungsformen kann der die Ground-Truth-Informationen bildende Teil der Sensordaten 12 dazu verwendet werden, einen oder mehrere Algorithmen (z. B. einen oder mehrere Wahrnehmungsalgorithmen) unter Verwendung von überwachtem Lernen zu trainieren oder einen bestehenden Algorithmus zu testen und dessen Leistung zu quantifizieren.
-
Zum Beispiel können die Sensordaten 12 verwendet werden, um einen oder mehrere Algorithmen zu trainieren oder zu testen, die von Fahrzeugsystemen verwendet werden, um auf die nachteiligen Wirkungen, die mit verschiedenen Wetterbedingungen in der realen Welt verknüpft sind, vorzubereiten oder diese zu verringern. Dementsprechend können die Sensordaten 12 verwendet werden, um einen oder mehrere Algorithmen dazu zu trainieren, Regen, Schnee, Nebel oder andere Wetterbedingungen zu erkennen, dem Wetter entsprechende Antworten oder Vorbereitungen zu implementieren, wenn derartige Bedingungen wahrgenommen werden, oder Ähnliches oder Kombinationen oder Unterkombinationen davon (oder ihre diesbezügliche Fähigkeit zu testen).
-
Das Ablaufdiagramm in 6 veranschaulicht die Architektur, die Funktionalität und den Betrieb einer möglichen Implementierung eines Systems, Verfahrens und Computerprogrammprodukts gemäß einer Ausführungsform der vorliegenden Erfindung. In dieser Hinsicht kann jeder Block in dem Ablaufdiagramm ein Modul, ein Segment oder einen Abschnitt eines Codes darstellen, das bzw. der eine oder mehrere ausführbare Anweisungen zum Implementieren der spezifizierten logischen Funktion(en) umfasst. Es wird außerdem festgestellt, dass jeder Block der Ablaufdiagrammdarstellung sowie Kombinationen der Blöcke in der Ablaufdiagrammdarstellung von Hardware-basierten Systemen für spezielle Zwecke, welche die spezifizierten Funktionen oder Aktionen ausführen oder Kombinationen aus Hardware für spezielle Zwecke und Computeranweisungen implementiert werden können.
-
Außerdem ist anzumerken, dass in einigen alternativen Implementierungen die in den Blöcken vermerkten Funktionen in einer anderen als der in der Figur dargestellten Reihenfolge auftreten können. In bestimmten Ausführungsformen können zwei Blöcke, die aufeinanderfolgend gezeigt sind, eigentlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal in umgekehrter Reihenfolge ausgeführt werden, je nach der beteiligten Funktionalität. Alternativ können bestimmte Schritte oder Funktionen ausgelassen werden, wenn sie nicht benötigt werden.
-
In der vorangehenden Offenbarung wurde auf die beigefügten Zeichnungen Bezug genommen, die einen Teil hiervon bilden und in denen spezifische Implementierungen, in denen die Offenbarung durchgeführt werden kann, veranschaulichend gezeigt werden. Es versteht sich, dass andere Implementierungen verwendet werden können und strukturelle Änderungen vorgenommen werden können, ohne vom Umfang der vorliegenden Offenbarung abzuweichen. Bezugnahmen in der Patentschrift auf „eine Ausführungsform”, „ein Ausführungsbeispiel”, „ausgewählte Ausführungsformen”, „bestimmte Ausführungsformen” usw. geben an, dass die beschriebene Ausführungsform oder die beschriebenen Ausführungsformen ein(e) bestimmte(s) Merkmal, Struktur oder Eigenschaft einschließen kann bzw. können, jedoch nicht jede Ausführungsform notwendigerweise diese(s) bestimmte Merkmal, Struktur oder Eigenschaft einschließen muss. Zudem beziehen sich derartige Wendungen nicht zwangsläufig auf dieselbe Ausführungsform. Ferner sei darauf hingewiesen, dass, wenn ein(e) bestimmte(s) Merkmal, Struktur oder Eigenschaft in Verbindung mit einer Ausführungsform beschrieben wird, es im Bereich des Fachwissens des Fachmanns liegt, ein(e) derartige(s) Merkmal, Struktur oder Eigenschaft in Verbindung mit anderen Ausführungsformen umzusetzen, ob dies nun ausdrücklich beschrieben ist oder nicht.
-
Implementierungen der hierin offenbarten Systeme, Vorrichtungen und Verfahren können einen Spezial- oder Universalcomputer umfassen oder verwenden, der Computerhardware einschließt, wie etwa zum Beispiel einen oder mehrere Prozessoren und einen oder mehrere Systemspeicher, wie hierin erörtert. Implementierungen innerhalb des Umfangs der vorliegenden Offenbarung können außerdem physische und andere computerlesbare Medien zum Transportieren oder Speichern von computerausführbaren Anweisungen und/oder Datenstrukturen einschließen. Bei solchen computerlesbaren Medien kann es sich um beliebige verfügbare Medien handeln, auf die durch ein Universal- oder Spezialcomputersystem zugegriffen werden kann. Bei computerlesbaren Medien, auf denen computerausführbare Anweisungen gespeichert werden, handelt es sich um Computerspeichermedien (-vorrichtungen). Bei computerlesbaren Medien, die computerausführbare Anweisungen transportieren, handelt es sich um Übertragungsmedien. Daher können Implementierungen der Offenbarung beispielsweise und nicht einschränkend mindestens zwei deutlich unterschiedliche Arten von computerlesbaren Medien umfassen: Computerspeichermedien (-vorrichtungen) und Übertragungsmedien.
-
Computerspeichermedien (-vorrichtungen) schließen RAM, ROM, EEPROM, CD-ROM, Solid-State-Drives („SSDs”) (z. B. auf Grundlage von RAM), Flash-Speicher, Phasenänderungsspeicher („PCM”), andere Speichertypen, andere optische Plattenspeicher, Magnetplattenspeicher oder andere magnetische Speichervorrichtungen oder ein beliebiges anderes Medium ein, das verwendet werden kann, um die gewünschten Programmcodemittel in Form von computerausführbaren Anweisungen oder Datenstrukturen zu speichern, und auf das durch einen Universal- oder Spezialcomputer zugegriffen werden kann.
-
Eine Implementierung der hierin offenbarten Vorrichtungen, Systeme und Verfahren kann über ein Computernetzwerk kommunizieren. Ein „Netzwerk” ist als eine oder mehrere Datenverbindungen definiert, die den Transport elektronischer Daten zwischen Computersystemen und/oder Modulen und/oder anderen elektronischen Geräten ermöglichen. Wenn Informationen über ein Netzwerk oder eine andere (entweder festverdrahtete, drahtlose oder eine Kombination aus festverdrahteter oder drahtloser) Kommunikationsverbindung an einem Computer bereitgestellt oder auf diesen übertragen werden, zeigt der Computer die Verbindung dementsprechend als ein Übertragungsmedium an. Übertragungsmedien können ein Netzwerk und/oder Datenverbindungen einschließen, die dazu verwendet werden können, gewünschte Programmcodemittel in Form von computerausführbaren Anweisungen oder Datenstrukturen zu transportieren, und auf die durch einen Universal- oder Spezialcomputer zugegriffen werden kann. Kombinationen aus den Vorstehenden sollten ebenfalls im Umfang computerlesbarer Medien eingeschlossen sein.
-
Computerausführbare Anweisungen umfassen zum Beispiel Anweisungen und Daten, die bei Ausführung an einem Prozessor einen Universalcomputer, Spezialcomputer oder eine Spezialverarbeitungsvorrichtung dazu veranlassen, eine bestimmte Funktion oder Gruppe von Funktionen auszuführen. Die computerausführbaren Anweisungen können zum Beispiel Binärdateien, Zwischenformatanweisungen, wie etwa Assemblersprache, oder auch Quellcode sein. Obwohl der Gegenstand in für Strukturmerkmale und/oder methodische Handlungen spezifischer Sprache beschrieben wurde, versteht es sich, dass der in den beigefügten Ansprüchen definierte Gegenstand nicht notwendigerweise auf die vorangehend beschriebenen Merkmale oder Handlungen beschränkt ist. Die beschriebenen Merkmale und Handlungen werden vielmehr als beispielhafte Formen der Implementierung der Ansprüche offenbart.
-
Der Fachmann kann nachvollziehen, dass die Offenbarung in Network-Computing-Umgebungen mit vielen Arten von Computersystemkonfigurationen durchgeführt werden kann, einschließend einen Armaturenbrett-Fahrzeugcomputer, PCs, Desktop-Computer, Laptops, Nachrichtenprozessoren, Handgeräte, Multiprozessorsysteme, Unterhaltungselektronik auf Mikroprozessorbasis oder programmierbare Unterhaltungselektronik, Netzwerk-PCs, Minicomputer, Mainframe-Computer, Mobiltelefone, PDAs, Tablets, Pager, Router, Switches, verschiedene Speichervorrichtungen und Ähnliches. Diese Offenbarung kann außerdem in Umgebungen mit verteilten Systemen durchgeführt werden, in denen sowohl lokale Computersysteme als auch Remotecomputersysteme, die durch ein Netzwerk (entweder durch festverdrahtete Datenverbindungen, drahtlose Datenverbindungen oder durch eine Kombination aus festverdrahteten und drahtlosen Datenverbindungen) verbunden sind, Aufgaben durchführen. In einer Umgebung mit verteilten Systemen können sich Programmmodule sowohl in lokalen Speichervorrichtungen als auch in Fernspeichervorrichtungen befinden.
-
Ferner können die hier beschriebenen Funktionen gegebenenfalls in einem oder mehreren der Folgenden ausgeführt werden: Hardware, Software, Firmware, digitalen Komponenten oder analogen Komponenten. Ein oder mehrere anwendungsspezifische integrierte Schaltkreise (ASICs) können zum Beispiel programmiert sein, um eines oder mehrere der hierin beschriebenen Systeme und Verfahren auszuführen. Bestimmte Ausdrücke werden in der Beschreibung und den Ansprüchen in Bezug auf bestimmte Systemkomponenten verwendet. Der Fachmann wird zu schätzen wissen, dass auf Komponenten durch verschiedene Bezeichnungen Bezug genommen werden kann. In diesem Dokument soll nicht zwischen Komponenten unterschieden werden, die sich dem Namen nach unterscheiden, nicht jedoch von der Funktion her.
-
Es ist anzumerken, dass die vorstehend erörterten Sensorausführungsformen Computerhardware, -software, -firmware oder eine beliebige Kombination davon umfassen können, um zumindest einen Teil ihrer Funktionen auszuführen. Ein Sensor kann zum Beispiel Computercode einschließen, der dazu konfiguriert ist, in einem oder mehreren Prozessoren ausgeführt zu werden, und kann eine Hardware-Logikschaltung/elektrische Schaltung einschließen, die durch den Computercode gesteuert wird. Diese Vorrichtungsbeispiele werden hier zum Zwecke der Veranschaulichung bereitgestellt und sollen nicht der Einschränkung dienen. Ausführungsformen der vorliegenden Offenbarung können in weiteren Arten von Vorrichtungen implementiert werden, wie es einem einschlägigen Fachmann bekannt ist.
-
Zumindest einige Ausführungsformen der Offenbarung wurden Computerprogrammprodukten zugeführt, die eine solche Logik (z. B. in Form von Software) umfassen, die auf einem beliebigen computernutzbaren Medium gespeichert ist. Solche Software veranlasst bei Ausführung in einer oder mehreren Datenverarbeitungsvorrichtungen eine Vorrichtung dazu, wie hier beschrieben zu arbeiten.
-
Während vorstehend verschiedene Ausführungsformen der vorliegenden Offenbarung beschrieben wurden, versteht es sich, dass diese lediglich als Beispiele dienen und nicht als Einschränkung. Für Personen, die in dem entsprechenden Fachbereich qualifiziert sind, wird ersichtlich, dass verschiedene Änderungen in Form und Detail daran vorgenommen werden können, ohne vom Geist und Umfang der Offenbarung abzuweichen. Daher sollen die Breite und der Umfang der vorliegenden Offenbarung durch keines der vorstehend beschriebenen Ausführungsbeispiele eingeschränkt werden, sondern sollen lediglich in Übereinstimmung mit den folgenden Ansprüchen und ihren Äquivalenten definiert sein. Die vorstehende Beschreibung wurde zum Zwecke der Veranschaulichung und Beschreibung dargelegt. Sie ist nicht als umfassend anzusehen und soll die Offenbarung nicht auf die spezifische offenbarte Form beschränken. Viele Modifikationen und Variationen sind in Anbetracht der vorstehenden Lehren möglich. Ferner ist anzumerken, dass eine beliebige oder alle der vorangehend genannten alternativen Implementierungen in einer beliebigen gewünschten Kombination verwendet werden können, um zusätzliche Hybridimplementierungen der Offenbarung zu bilden.