-
ALLGEMEINER STAND DER TECHNIK
-
GEBIET DER ERFINDUNG
-
Diese Erfindung betrifft die automatisierte Erkennung von Fahrzeugfehlfunktionen.
-
ALLGEMEINER STAND DER TECHNIK
-
Ein Fluidleck unter dem Auto kann oft eine gefährliche Situation anzeigen, die besonderer Aufmerksamkeit bedarf. Eine unverzügliche Erkennung des Problems kann den Fahrzeugbesitzer davor bewahren, mehrere Tausend Dollar für Werkstattdienste auszugeben. Zwar können Fahrzeugsensoren eine Fehlfunktion aufgrund eines Fluidlecks erkennen, jedoch kann bereits ein umfangreicher Schaden entstanden sein.
-
Die hier offenbarten Vorrichtungen und Verfahren stellen einen verbesserten Ansatz zum Erkennen eines Fluidlecks von einem Automobil bereit.
-
Figurenliste
-
Damit die Vorteile der Erfindung ohne Weiteres verstanden werden, erfolgt durch Bezugnahme auf konkrete Ausführungsformen, die in den beigefügten Zeichnungen veranschaulicht sind, eine genauere Beschreibung der vorstehend kurz beschriebenen Erfindung. Unter der Kenntnisnahme, dass diese Zeichnungen lediglich typische Ausführungsformen der Erfindung darstellen und daher nicht als den Umfang beschränkend aufzufassen sind, wird die Erfindung mit zusätzlicher Genauigkeit und Ausführlichkeit durch die Verwendung der beigefügten Zeichnungen beschrieben und erläutert, in denen Folgendes gilt:
- 1 ist ein schematisches Blockdiagramm, das ein Fahrzeug veranschaulicht, für das eine Leckerkennung gemäß einer Ausführungsform der vorliegenden Erfindung durchgeführt werden kann;
- 2 ist ein schematisches Blockdiagramm einer beispielhaften Rechenvorrichtung, die zum Umsetzen von Verfahren gemäß den Ausführungsformen der Erfindung geeignet ist;
- 3 ist ein Prozessablaufdiagramm eines Verfahrens zum Identifizieren von Ankunfts- und Abfahrtsbildern gemäß einer Ausführungsform der vorliegenden Erfindung;
- 4 ist ein Prozessablaufdiagramm eines Verfahrens zum Erkennen von Lecks gemäß einer Ausführungsform der vorliegenden Erfindung;
- 5A bis 5C veranschaulichen eine Bildverarbeitung zur Leckerkennung gemäß einer Ausführungsform der vorliegenden Erfindung;
- 6 ist ein Prozessablaufdiagramm eines Verfahrens zum Erzeugen von Trainingsdaten zur automatischen Leckerkennung unter Verwendung eines dreidimensionalen Modells gemäß einer Ausführungsform der vorliegenden Erfindung;
- 7A und 7B sind Veranschaulichungen eines beispielhaften Szenarios, das gerendert werden kann, um Trainingsdaten gemäß einer Ausführungsform der vorliegenden Erfindung zu erzeugen;
- 8 ist ein Prozessablaufdiagramm eines Verfahrens zum Erzeugen von Trainingsdaten aus dreidimensionalen Bildern gemäß einer Ausführungsform der vorliegenden Erfindung; und
- 9 ist ein Prozessablaufdiagramm eines Verfahrens zum Trainieren eines maschinellen Lemmodells unter Verwendung der Trainingsdaten gemäß einer Ausführungsform der vorliegenden Erfindung.
-
DETAILLIERTE BESCHREIBUNG
-
Unter Bezugnahme auf 1 kann ein Fahrzeug 100 eine Steuerung 102 und eines oder beide von einem GPS-Empfänger 104 und einer inertialen Messeinheit (inertial measurement unit - IMU) 106 beinhalten. Die Steuerung 102 kann Ausgaben von einem oder beiden von dem GPS-Empfänger 104 und der IMU 106 dazu verwenden, eine Position des Fahrzeugs 100 zu bestimmen. Zum Beispiel können GPS-Koordinaten von dem GPS-Empfänger 104 empfangen werden und kleinere Bewegungen des Fahrzeugs 100 relativ zu diesen Koordinaten von der IMU 106 bestimmt werden. Insbesondere kann es sich bei der IMU 106 um eine auf einem Beschleunigungsmesser basierende Vorrichtung handeln, die eine Beschleunigung erkennt und diese in eines oder beide von Geschwindigkeits- und Abstandsmessungen auflöst.
-
Das Fahrzeug 100 kann eine oder beide von einer nach vorn gerichteten Kamera 108 und einer nach hinten gerichteten Kamera 110 beinhalten. Die hier offenbarten Verfahren beinhaltet das Auswerten von Bildern eines Parkplatzes. Da die meisten Menschen vorwärts in einen Parkplatz fahren, kann eine nach vorn gerichtete Kamera 108 bevorzugt sein. Für Fälle, in denen ein Fahrer rückwärts in einen Parkplatz fährt, kann jedoch eine nach hinten gerichtete Kamera 110 hilfreich sein. Für die Zwecke der folgenden Offenbarung wird Vorwärtseinparken angenommen und nur die nach vorn gerichtete Kamera 108 verwendet. Die hier beschriebenen Verfahren können jedoch zum Rückwärtseinparken verwendet werden, wobei die Kamera 110 auf die gleiche Art und Weise verwendet wird.
-
2 ist ein Blockdiagramm, das eine beispielhafte Rechenvorrichtung 200 veranschaulicht. Die Rechenvorrichtung 200 kann dazu verwendet werden, verschiedene Vorgänge auszuführen, wie etwa die hier erörterten. Die Steuerung 102 kann einige oder alle der Attribute der Rechenvorrichtung 200 aufweisen.
-
Die Rechenvorrichtung 200 beinhaltet einen oder mehrere Prozessor(en) 202, eine oder mehrere Speichervorrichtung(en) 204, eine oder mehrere Schnittstelle(n) 206, eine oder mehrere Massenspeichervorrichtung(en) 208, eine oder mehrere Ein-/Ausgabe-(E/A-)Vorrichtung(en) 210 und eine Anzeigevorrichtung 230, die alle an einen Bus 212 gekoppelt sind. Der/Die Prozessor(en) 202 beinhaltet/beinhalten einen oder mehrere Prozessoren oder Steuerungen, der/die in der/den Speichervorrichtung(en) 204 und/oder der/den Massenspeichervorrichtung(en) 208 gespeicherte Anweisungen ausführen. Der/Die Prozessor(en) 202 kann/können zudem verschiedene Arten von computerlesbaren Medien beinhalten, wie etwa Cache-Speicher.
-
Die Speichervorrichtung(en) 204 beinhaltet/beinhalten verschiedene computerlesbare Medien, wie etwa flüchtigen Speicher (z. B. Direktzugriffsspeicher (random access memory - RAM) 214) und/oder nichtflüchtigen Speicher (z. B. Festwertspeicher (read-only memory - ROM) 216). Die Speichervorrichtung(en) 204 kann/können zudem wiederbeschreibbaren ROM beinhalten, wie etwa Flash-Speicher.
-
Die Massenspeichervorrichtung(en) 208 beinhaltet/beinhalten verschiedene computerlesbare Medien, wie etwa Magnetbänder, Magnetplatten, optische Platten, Festkörperspeicher (z. B. Flash-Speicher) und so weiter. Wie in 2 gezeigt, ist eine besondere Massenspeichervorrichtung ein Festplattenlaufwerk 224. Zudem können verschiedene Laufwerke in der/den Massenspeichervorrichtung(en) 208 beinhaltet sein, um ein Auslesen aus und/oder Schreiben auf die verschiedenen computerlesbaren Medien zu ermöglichen. Die Massenspeichervorrichtung(en) 208 beinhaltet/beinhalten entfernbare Medien 226 und/oder nichtentfernbare Medien.
-
Die E/A-Vorrichtung(en) 210 beinhaltet/beinhalten verschiedene Vorrichtungen, die es ermöglichen, dass Daten und/oder andere Informationen in die Rechenvorrichtung 200 eingegeben oder daraus abgerufen werden. Zu (einer) beispielhaften E/A-Vorrichtung(en) 210 gehören Cursorsteuervorrichtungen, Tastaturen, Tastenfelder, Mikrofone, Monitore oder andere Anzeigevorrichtungen, Lautsprecher, Netzschnittstellenkarten, Modems, Linsen, CCDs oder andere Bilderfassungsvorrichtungen und dergleichen.
-
Die Anzeigevorrichtung 230 beinhaltet eine beliebige Art von Vorrichtung, die dazu in der Lage ist, einem oder mehreren Benutzern der Rechenvorrichtung 200 Informationen anzuzeigen. Zu Beispielen für eine Anzeigevorrichtung 230 gehören ein Monitor, ein Anzeigeendgerät, eine Videoprojektionsvorrichtung und dergleichen.
-
Die Schnittstelle(n) 206 beinhaltet/beinhalten verschiedene Schnittstellen, die der Rechenvorrichtung 200 ermöglichen, mit anderen Systemen, Vorrichtungen oder Rechenumgebungen zu interagieren. Zu (einer) beispielhaften Schnittstelle(n) 206 gehören eine beliebige Anzahl von unterschiedlichen Netzschnittstellen 220, wie etwa Schnittstellen zu lokalen Netzen (local area networks - LANs), Großraumnetzen (wide area networks - WANs), drahtlosen Netzen und dem Internet. Zu (einer) andere(n) Schnittstelle(n) gehören eine Benutzerschnittstelle 218 und eine Peripherievorrichtungsschnittstelle 222. Zu der/den Schnittstelle(n) 206 können zudem eine oder mehrere Peripherieschnittstellen gehören, wie etwa Schnittstellen für Zeigevorrichtungen (Mäuse, Trackpad etc.), Tastaturen und dergleichen.
-
Der Bus 212 ermöglicht dem/den Prozessor(en) 202, der/den Speichervorrichtung(en) 204, der/den Schnittstelle(n) 206, der/den Massenspeichervorrichtung(en) 208, der/den E/A-Vorrichtung(en) 210 und der Anzeigevorrichtung 230, miteinander sowie mit anderen Vorrichtungen oder Komponenten, die an den Bus 212 gekoppelt sind, zu kommunizieren. Der Bus 212 stellt eine oder mehrere von mehreren Arten von Busstrukturen dar, wie etwa einen Systembus, PCI-Bus, IEEE-1394-Bus, USB-Bus und so weiter.
-
Zum Zwecke der Veranschaulichung sind Programme und andere ausführbare Programmkomponenten hier als diskrete Blöcke gezeigt, auch wenn es sich versteht, dass sich derartige Programme und Komponenten zu verschiedenen Zeitpunkten in unterschiedlichen Speicherkomponenten der Rechenvorrichtung 200 befinden können, und werden durch den/die Prozessor(en) 202 ausgeführt. Alternativ können die hier beschriebenen Systeme und Vorgänge in Hardware oder einer Kombination aus Hardware, Software und/oder Firmware umgesetzt sein. Ein oder mehrere anwendungsspezifische integrierte Schaltkreise (application specific integrated circuits - ASICs) können zum Beispiel so programmiert sein, dass sie eines bzw. einen oder mehrere der hier beschriebenen Systeme und Vorgänge ausführen.
-
3 veranschaulicht ein Verfahren 300, das durch die Steuerung 102 ausgeführt werden kann. Um Lecks zu identifizieren, können insbesondere Bilder, die von der Kamera 108 bei Ankunft an einem Parkplatz empfangen werden, mit Bildern, die von der Kamera 108 bei Abfahrt von dem Parkplatz empfangen werden, verglichen werden, um Veränderungen zu identifizieren, die ein ausgelaufenes Fluid anzeigen können.
-
Zum Beispiel kann das Verfahren 300 Empfangen 302 von einem oder mehreren Kamerabildern 108 beinhalten. Die Kamera 108 kann zum Beispiel einen Strom von Bildern in Form einer Videoübertragung oder eine Reihe von Standbildern mit einer vorgegebenen Bildwechselrate ausgeben.
-
Das Verfahren 300 kann ferner Bestimmen 304 des Standorts des Fahrzeugs 100 beinhalten. Dies kann Empfangen von Ausgaben von einem oder beiden von dem GPS-Empfänger 104 und der IMU 106 beinhalten. Die Art und Weise, auf die der Standort des Fahrzeugs 100 aus diesen Ausgaben bestimmt wird, kann gemäß einem beliebigen auf dem Fachgebiet bekannten Verfahren zum Bestimmen eines Standorts sein. Zum Beispiel können GPS-Koordinaten zu einem Zeitpunkt empfangen werden. Bewegungen des Fahrzeugs relativ zu diesen Koordinaten können dann auf Grundlage der Ausgaben der IMU 106 bestimmt werden.
-
Die Bilder aus Schritt 302 können mit den Standorten aus Schritt 304 markiert werden und vorübergehend in einem Zwischenspeicher gespeichert werden. Alternativ kann eine Anordnung von Bildern gespeichert werden und eine Anordnung von Standorten, die jedem Bild entsprechen, kann in einer separaten Anordnung gespeichert werden.
-
Das Verfahren 300 kann Bestimmen 306 beinhalten, ob Parken erkannt wurde. Parken kann erkannt werden, indem die Beendigung einer Bewegung des Fahrzeugs 100 für eine Zeitspanne oberhalb eines Schwellenwerts (z. B. 1 Minute oder mehr), die Entfernung des Schlüssels aus dem Fahrzeug, das Aussteigen des Fahrers aus dem Fahrzeug oder die Ankunft an einem bekannten Parkplatz, wie etwa dem Zuhause, dem Arbeitsplatz, dem Geschäft oder einem anderen häufig besuchten Ort des Fahrers erkannt wird. Ein Fahrer kann die Steuerung 102 so programmieren, dass sie bestimmte Orte als Parkplätze wiedererkennt.
-
Als Reaktion auf das Erkennen 306 des Parkens kann das Verfahren 300 Speichern 308 eines oder mehrerer Ankunftsbilder und ihrer entsprechenden Standorte aus den Bildern und Standorten aus Schritt 302, 304 beinhalten. Zum Beispiel können Bilder und Standorte aus Schritt 302, 304 vorübergehend gespeichert werden, sodass nur die letzten M Bilder und Standorte aufbewahrt werden. Nach dem Erkennen 306 des Parkens können die Ankunftsbilder aus diesen vorübergehend gespeicherten Bildern und entsprechenden Standorten ausgewählt werden. Alternativ können die Schritte 302-304 durchgeführt werden, nachdem eine Ankunft innerhalb einer näheren Umgebung eines bekannten Parkplatzes oder eine Verlangsamung des Fahrzeugs unter eine Schwellengeschwindigkeit, die ein mögliches Parken anzeigt, erkannt wurde.
-
Ein Satz des einen oder der mehreren Bilder und ihrer entsprechenden Standorte kann zum Beispiel unmittelbar vor der Beendigung der Bewegung an dem Parkplatz empfangen werden. Die Ankunftsbilder können derart ausgewählt werden, dass sie Bilder der Fläche sind, die sich unter dem Fahrzeug 100 befinden wird, während es parkt. Wenn das Fahrzeug ein Länge L aufweist, können zum Beispiel die Ankunftsbilder als die Bilder ausgewählt werden, die entsprechende Standorte innerhalb der Längen L + B + A und L + B - A von dem Standort des Fahrzeugs 100, wenn dieses parkt, aufweisen. B kann ein Korrekturfaktor sein, der experimentell oder mathematisch bestimmt wird, indem der Abstand von dem Standort des Fahrzeugs, wenn es parkt, in dem die Kamera 108 den Parkplatz in ihrem Sichtfeld aufweist, gemessen oder bestimmt wird. Der Wert von A kann derart ausgewählt werden, dass es eine Toleranz oder einen Bereich von Abständen gibt, für die/den Bilder als Ankunftsbilder gespeichert 308 werden. Zum Beispiel kann ein Bildstabilisierungsprozess durchgeführt werden, sodass mehrere Ankunftsbilder benötigt werden. Alternativ kann es sich bei den Ankunftsbildern um eine feste Anzahl von N Bildern handeln, die auf L + B zentrierte Standorte aufweisen und die ein letztes Bild mit einem zu L + B am nächsten gelegenen Standort oder ein zu L + B am nächsten gelegenes erstes Bild relativ zu den Standorten anderer Bilder aus Schritt 302 und 304 aufweisen.
-
Das Verfahren 300 kann Bestimmen 310 der Abfahrt des Fahrzeugs beinhalten. Dies kann das Erkennen des Startens des Fahrzeugs und den Beginn einer Bewegung des Fahrzeugs beinhalten. Das Verfahren 300 kann dann Auswählen 312 eines Abfahrtsbildes beinhalten. Das Abfahrtsbild kann so ausgewählt werden, dass es einen entsprechenden Standort aufweist, der annähernd der gleiche wie der des Ankunftsbildes ist, z. B. innerhalb von 15 cm, bevorzugt innerhalb von 5 cm, weiter bevorzugt innerhalb von 1 cm. Wie vorstehend angemerkt, können Ankunftsbilder für einen Standort oder einen Bereich von Standorten ausgewählt werden. Dementsprechend kann/können ein oder mehrere Abfahrtsbilder aus seinem Strom von Bildern von der Kamera 108 ausgewählt 312 werden, die entsprechende Standorte aufweisen, die dem Standort oder dem Bereich von Standorten für die Ankunftsbilder im Vergleich zu den Standorten anderer Abfahrtsbilder am nächsten sind. Die Art und Weise, auf die die Bilder nach der Abfahrt aufgenommen und mit Standorten markiert werden, kann so sein, wie sie vorstehend in Bezug auf Schritt 302 und 304 beschrieben ist.
-
Unter Verwendung des einen oder der mehreren gespeicherten Ankunftsbilder aus Schritt 308 und der Abfahrtsbilder aus Schritt 312 kann das Verfahren 300 Durchführen 314 einer Leckerkennung beinhalten. Das Durchführen 314 der Leckerkennung kann Ausführen des Verfahrens 400 aus 4 beinhalten.
-
Das Verfahren 400 nimmt die Ankunftsbilder 402 und die Abfahrtsbilder 404 als Eingaben und führt eine Bildstabilisierung 406, 408 in Bezug auf jedes Bild durch. In einigen Ausführungsformen wird die Bildstabilisierung durch die Kamera 108 durchgeführt. In anderen Ausführungsformen wird eine Reihe von Ankunftsbildern 402 und Abfahrtsbildern 404 durch die Steuerung 102 verarbeitet, um die Bildstabilisierung durchzuführen 406, 408. Die Schritte 406, 408 können jede beliebige auf dem Fachgebiet bekannte Bildstabilisierungstechnik beinhalten.
-
Das Verfahren 400 berechnet 410 dann ein Restbild. Dies kann Subtrahieren des stabilisierten Ankunftsbildes von dem stabilisierten Abfahrtsbild beinhalten. Das Abfahrtsbild und das Ankunftsbild werden nicht aus genau der gleichen Position aufgenommen. Dementsprechend können das stabilisierte Ankunftsbild und das stabilisierte Abfahrtsbild vor der Subtraktion relativ zueinander verschoben werden, um diese Bewegung auszugleichen. Die Art und Weise, auf die die Ankunftsbilder und die Abfahrtsbilder relativ zueinander verschoben werden, kann Durchführen einer Bildkorrelation oder einer beliebigen anderen Bildanalysetechnik zum Bestimmen einer Bewegung zwischen einem Bilderpaar beinhalten.
-
Das Verfahren 400 kann dann Durchführen 412 einer Anomalieerkennung in Bezug auf das Restbild beinhalten, zum Beispiel unter Bezugnahme auf 5A bis 5C. Eine Darstellung eines stabilisierten Ankunftsbildes ist in 5A gezeigt und eine Darstellung eines stabilisierten Abfahrtsbildes ist in 5B gezeigt. Das Restbild auf Grundlage dieser Bilder ist in 5C gezeigt. Wie in 5C ersichtlich, ist ein Fluidfleck vorhanden, der ein Fluidleck anzeigen kann. Die Art und Weise, auf die das Restbild analysiert wird, um Unterschiede zu identifizieren, kann jede beliebige auf dem Fachgebiet bekannte rechnergestützte Bildverarbeitungstechnik beinhalten. In einigen Ausführungsformen kann das Restbild durch einen maschinellen Lernalgorithmus, der zum Identifizieren von Fluidlecks trainiert ist, verarbeitet werden.
-
Wenn festgestellt 414 wird, dass eine Anomalie vorhanden ist, kann das Verfahren 400 Durchführen 416 einer Texturanalyse und Versuchen einer Klassifizierung 418 der Anomalie beinhalten. Die Texturanalyse kann Identifizieren von Attributen wie etwa Farbe, Reflexionsvermögen und Dichte der Anomalie beinhalten. Die Attribute können dann dazu verwendet werden, die Anomalie zu klassifizieren 418. Zum Beispiel kann durch die Steuerung auf ein Archiv von Automobilfluiden zugegriffen werden, das die Werte oder Bereiche von möglichen Werten für diese Attribute auflistet. Wenn die Werte für die durch die Texturanalyse identifizierten Attribute mit denen eines Automobilfluids übereinstimmen, kann bestimmt werden, dass dieses Fluid die Anomalie darstellt.
-
In einigen Ausführungsformen kann der maschinelle Lernalgorithmus so trainiert werden, dass er Fluidlecks identifiziert, indem er Trainingssätze von Ankunfts- und Abfahrtsbildern empfängt, und ein Indikator, ob ein Fluidleck vorhanden ist, eine gewünschte Ausgabe darstellt. In derartigen Ausführungsformen kann Schritt 410 ausgelassen werden und die stabilisierten Ankunfts- und Abfahrtsbilder können in den maschinellen Lernalgorithmus eingegeben werden, der dann eine Klassifizierung einer beliebigen erkannten Anomalie als ein bestimmtes Automobilfluid oder nicht ausgibt. In derartigen Ausführungsformen können die Schritte 414-418 durch den maschinellen Lernalgorithmus anstatt als separate Schritte durchgeführt werden.
-
Wenn bei der Klassifizierung 420 festgestellt wird, dass es sich um ein Automobilfluid handelt, kann ein Alarm erzeugt 422 werden. Der Alarm kann Beleuchten einer Motorwarnleuchte, Anzeigen einer Textnachricht auf einem Bildschirm eines fahrzeuginternen Infotainmentsystems, Übertragen einer Nachricht an ein Mobiltelefon eines Fahrers oder eine andere Art von Alarm beinhalten. Der Alarm kann die Klassifizierung der Art des Fluids aus Schritt 418 beinhalten. Der Alarm kann eine Menge des Fluids anzeigen, die etwa anhand einer Fläche der bei Schritt 414 erkannten Anomalie bestimmt wird. Unter Verwendung der Fläche der Anomalie und einer Viskosität des erkannten Fluids kann das Volumen des ausgelaufenen Fluids bestimmt werden. Unter Verwendung der verstrichenen Zeit zwischen Ankunft und Abfahrt und des Volumens kann eine Leckrate bestimmt werden. Aus der Leckrate kann unter Verwendung eines bekannten Volumens des Fluids in dem Fahrzeug, wie etwa des Volumens eines Behälters, der das Fluid enthält, oder der Empfehlung des Herstellers für das Volumen des Fluids eine Zeit, bis das Fluid verschwunden sein oder einen kritischen Pegel erreicht haben wird, bestimmt werden. Die Zeit, bis der Pegel des Fluids kritisch ist, kann in dem Alarm beinhaltet sein.
-
Unter Bezugnahme auf 6 kann das veranschaulichte Verfahren 600 dazu verwendet werden, ein maschinelles Lernmodell zu trainieren, das dazu in der Lage ist, Fluidlecks aus Ankunfts- und Abfahrtsbildern zu identifizieren. Das Verfahren 600 kann durch ein Computersystem ausgeführt werden, wie ein Computersystem, das einige oder alle der Attribute des Computersystems 200 aus 2 aufweist.
-
Das Verfahren 600 kann Definieren 602 eines Szenarios beinhalten, bei dem es sich um ein dreidimensionales Modell eines Parkszenarios handelt, das eine Parkfläche, eine Position und möglicherweise eine Geschwindigkeit des parkenden Fahrzeugs beinhaltet, und wobei ein Blickwinkel auf das Modell einem Standort einer an dem parkenden Auto montierten Kamera entspricht.
-
7A veranschaulicht ein beispielhaftes Szenario. In diesem Beispiel ist ein Fahrzeugmodell 700 wie gezeigt in dem Modell positioniert. Das Fahrzeugmodell 700 kann Teil des Modells sein oder ausgelassen werden. Insbesondere definiert das Fahrzeug 700 einen Standort einer oder mehrerer Kameras 702a-702b und möglicherweise einer oder mehrerer Lichtquellen 704, z. B. Scheinwerfer oder Rückleuchten. Dementsprechend können die Standorte der Kameras 702a-702b und möglicherweise der Lichtquellen 704 gemäß ihrer Position an einem Fahrzeugmodell 700 definiert werden, aber der Rest des Fahrzeugmodells 700 wird als für die Wahrnehmung eines Parkplatzes irrelevant ignoriert.
-
Das Modell kann zusätzlich zu den Scheinwerfern 704 eine oder mehrere simulierte Lichtquellen beinhalten, wie etwa Sonnenlicht, Mondlicht, Straßenbeleuchtung 706 oder Leuchten 708, die an einer Struktur 710 montiert sind, die einen Parkplatz 712 enthält oder an diesen angrenzt.
-
Das Modell kann ferner ein oder mehrere Objekte 714, 716 beinhalten, wie etwa Gebüsch, Bäume, andere Fahrzeuge, Gebäude etc. Schatten 718 von derartigen Objekte auf den Parkplatz 712 können simuliert werden.
-
Das Modell ist in zwei Auslegungen definiert, einer ersten Auslegung mit einem simulierten Fluidfleck 720 auf dem Parkplatz 712 und einer zweiten Auslegung ohne den Fluidfleck 720. Der simulierte Fluidfleck 720 kann ein Modell beinhalten, das Eigenschaften wie etwa Farbe, Reflexionsvermögen, Textur, Viskosität oder andere Eigenschaften eines Fluids definiert. Simulierte Fluidflecken 720 können für verschiedene Fluide erzeugt werden, d. h. jeder simulierte Fluidfleck 700 kann Eigenschaften eines bestimmten Fluids beinhalten, z. B. Motoröl, Getriebefluid, Kühlmittel für den Kühler, Servolenkfluid etc. In einigen Ausführungsformen können die Fluidflecken 720 Modelle von Nicht-Fahrzeugfluiden beinhalten (Wasser, alkoholfreie Getränke etc.), um zu ermöglichen, dass ein maschinelles Lernmodell dahingehend trainiert wird, zwischen Fahrzeug- und Nicht-Fahrzeugfluiden zu unterscheiden.
-
Unter erneuter Bezugnahme auf 6 kann das Verfahren 600 Rendern 604 eines Bildes des Szenarios aus dem Blickwinkel der Kamera 702a (oder der Kamera 702b, wenn Rückwärtseinfahrt angenommen wird) beinhalten, um ein simuliertes Ankunftsbild zu erzeugen.
-
Das Verfahren 600 kann Hinzufügen 606 des simulierten Fluidflecks 720 zu dem Szenario und Rendern 608 des modifizierten Szenarios aus dem Blickwinkel der Kamera 702a beinhalten, um das Abfahrtsbild zu erlangen. 7B veranschaulicht ein beispielhaftes Rendering des Abfahrtsbildes für das Szenario aus 7A. Das Rendering des Ankunftsbildes würde auf ähnliche Art und Weise erzeugt werden, aber kein Rendering des Fluidflecks 720 aufweisen.
-
In einigen Ausführungsformen kann das zum Rendern aus Schritt 608 verwendete modifizierte Szenario eine oder mehrere Modifikationen zusätzlich zu dem Fluidfleck 720 beinhalten. Zum Beispiel kann die Beleuchtung verändert werden, um eine Veränderung der Beleuchtung zwischen dem Parken am Morgen und der Abfahrt am Abend oder umgekehrt zu simulieren. Gleichermaßen können Schmutz hinzugefügt, Fahrzeuge neben dem Parkplatz 712 hinzugefügt oder entfernt werden oder andere Änderungen an dem Szenario vorgenommen werden, um mögliche Veränderungen zu simulieren, die zwischen Ankunft und Abfahrt auftreten können.
-
Die Art und Weise, auf die das Szenario bei Schritt 604 und 608 gerendert wird, kann eine beliebige auf dem Fachgebiet der Computeranimation und computererzeugten Bilder bekannte computergestützte Renderingtechnik beinhalten. Gleichermaßen kann das Szenario unter Verwendung einer beliebigen auf dem Fachgebiet bekannten Computeranimationstechnik modelliert werden. Wie auf dem Fachgebiet bekannt, sind fotorealistische Renderings von Computermodellen möglich. Dementsprechend können die Auflösung der Renderings 604, 608 und die Detailliertheit des Szenarios derart sein, dass die simulierten Ankunfts- und Abfahrtsbilder fotorealistisch sind, wodurch ein genaues Training eines maschinellen Lemmodells ermöglicht wird.
-
Das Verfahren 600 kann ferner Speichern 610 des Ankunftsbildes aus Schritt 604, des Abfahrtsbildes aus Schritt 608 und einer Klassifizierung des Fluidflecks aus Schritt 606 in einer Datenbank beinhalten. Insbesondere kann die Klassifizierung einfach anzeigen, ob ein Fluidfleck in dem Abfahrtsbild vorhanden ist oder nicht. In einigen Ausführungsformen wird Schritt 606 bei einigen Iterationen des Verfahrens 600 ausgelassen, um das maschinelle Lernmodell dahingehend zu trainieren, zwischen Fällen, in denen ein Fluidfleck vorhanden ist, und solchen, in denen keiner vorhanden ist, zu unterscheiden.
-
In einigen Ausführungsformen kann die Klassifizierung anzeigen, ob ein Fluidfleck 720 ein Fahrzeugfluid oder ein Nicht-Fahrzeugfluid ist. In einigen Ausführungsformen kann die Klassifizierung anzeigen, welche Art des Fahrzeugfluids durch den Fluidfleck 720 modelliert wird.
-
Das Verfahren 600 kann ferner Modifizieren 612 des Szenarios und Wiederholen der Schritte 602-610 beinhalten. Das Modifizieren des Szenarios kann Modifizieren beliebiger der Merkmale 706-718 des Szenarios beinhalten. Zum Beispiel kann die Textur des Parkplatzes 712 modifiziert werden (Beton, Asphalt, Kies etc.), um das Training eines maschinellen Lemmodells dahingehend zu ermöglichen, dass es Fluidflecken 720 auf verschiedenen Oberflächen wiedererkennt. Gleichermaßen kann die Beleuchtung modifiziert werden, um das Training des maschinellen Lernmodells dahingehend zu ermöglichen, dass es Fluidflecken 720 für verschiedene Beleuchtungsbedingungen wiedererkennt. Die Modifikation 612 kann ferner Hinzufügen, Entfernen oder Modifizieren von umgebenden Strukturen des Szenarios beinhalten, wie etwa Modellen von benachbarten Fahrzeugen.
-
Das Verfahren 600 kann mehrmals durchgeführt werden, z. B. Hunderte oder sogar Tausende Male, um eine Datenbank von Ankunfts- und Abfahrtsbildern mit ihren entsprechenden Klassifizierungen zum Training eines maschinellen Lernmodells aufzubauen.
-
Unter Bezugnahme auf Fig. 8 können in einigen Ausführungsformen Ankunfts- und Abfahrtsbilder zu Trainingszwecken aus zweidimensionalen Bildern erzeugt werden, anstatt dass ein dreidimensionales Szenario definiert wird. Das Verfahren 800 kann ausgeführt werden, um Trainingsdaten zu erzeugen, und kann durch ein Computersystem durchgeführt werden, das einige oder alle der Attribute des Computersystems 200 aus 2 aufweist.
-
Das Verfahren 800 kann Abrufen 802 eines Ankunftsbildes beinhalten. Das Ankunftsbild kann ein Rendering eines simulierten Szenarios sein, wie vorstehend in Bezug auf 6 beschrieben. Das Ankunftsbild kann ein tatsächliches Ankunftsbild sein, das durch die Kamera eines Fahrzeugs bei Ankunft nahe einem Parkplatz aufgenommen wird. Zum Beispiel kann das Ankunftsbild ein gemäß dem Verfahren 300 aus 3 identifiziertes und gespeichertes Ankunftsbild sein.
-
Das Verfahren 800 kann ferner Überlagern 804 eines Renderings eines Fluidflecks auf ein Bild, das dem Ankunftsbild aus Schritt 802 entspricht, beinhalten. Dies kann Rendern des Fluidflecks auf einen Parkplatz beinhalten, der in dem Ankunftsbild aus Schritt 802 sichtbar ist. Alternativ kann das Abfahrtsbild, das dem Ankunftsbild entspricht, bei Schritt 804 so modifiziert werden, dass es ein Rendering eines Fluidflecks beinhaltet. Zum Beispiel kann das Abfahrtsbild aus Schritt 804 als Teil der gleichen Iteration des Verfahrens 300, die das Ankunftsbild aus Schritt 802 erzeugte, identifiziert und gespeichert werden.
-
Das Verfahren 800 kann dann Speichern 806 des Ankunftsbildes, Abfahrtsbildes und einer Klassifizierung in einer Datenbank beinhalten. Wie zuvor kann die Klassifizierung anzeigen, ob ein Fahrzeugfluidfleck in dem Abfahrtsbild vorhanden ist oder nicht. Wie bei dem Verfahren 600 kann der Schritt 804 bei einigen Iterationen des Verfahrens 800 ausgelassen werden. Die Klassifizierung kann anzeigen, ob der bei Schritt 804 überlagerte Fluidfleck ein Fahrzeugfluid ist, und kann ferner eine Art von Fahrzeugfluid anzeigen. Dementsprechend kann Überlagern 804 des Renderings eines Fluidflecks bei Schritt 804 Eigenschaften des Fahrzeug- oder Nicht-Fahrzeugfluids simulieren, und die Klassifizierung kann anzeigen, welches Fluid simuliert wurde. Die simulierten Eigenschaften können Farbe, Reflexionsvermögen, Textur oder eine beliebige andere sichtbare Eigenschaft eines Fluids beinhalten.
-
Das Verfahren 800 kann Verändern 808 des Szenarios beinhalten, wie etwa durch Auswählen eines anderen Fluids zum Rendern bei Schritt 804 oder durch Auswählen eines anderen Ankunfts- und/oder Abfahrtsbildes. Das Verfahren 800 kann mehrmals durchgeführt werden, z. B. Hunderte oder sogar Tausende Male, um eine Datenbank von Ankunfts- und Abfahrtsbildern mit ihren entsprechenden Klassifizierungen zum Training eines maschinellen Lemmodells aufzubauen.
-
Unter Bezugnahme auf 9 kann ein maschinelles Lernmodell unter Verwendung von Sätzen von Trainingsdaten trainiert werden, wobei jeder Satz ein Ankunftsbild, ein Abfahrtsbild und eine Klassifizierung (z. B. Fluidfleck ist vorhanden/nicht vorhanden, Fahrzeug-/Nicht-Fahrzeugfluid, Fahrzeugfluidart) beinhaltet. Die Trainingsdatensätze können gemäß einigen oder allen von dem Verfahren 600 aus 6, dem Verfahren 800 aus 8 oder durch Aufnehmen tatsächlicher Ankunfts- und Abfahrtsbilder eines Parkplatzes unter Verwendung einer Kamera eines Fahrzeugs und Bereitstellen einer Klassifizierung des Abfahrtsbildes, die durch einen Menschen etwa auf Grundlage von absichtlichem oder bekanntem Verschütten von Fahrzeugfluid vor der Aufnahme des Abfahrtsbildes oder einem bekannten Mangel an Verschütten von Fahrzeugfluid vor der Aufnahme des Abfahrtsbildes vorgegeben wird, erlangt 902 werden. In diesem Fall können die Ankunfts- und Abfahrtsbilder gemäß dem Verfahren 300 aus 3 identifiziert werden.
-
Das Verfahren 900 kann Eingeben 904 der Trainingsdatensätze in einen maschinellen Lernalgorithmus beinhalten, wie etwa ein tiefes neuronales Netz, wobei jedoch andere Arten von maschinellen Lernalgorithmen verwendet werden können, wie etwa ein Entscheidungsbaum, ein Cluster, ein Bayessches Netz, ein genetischer oder eine andere Art von maschinellem Lernalgorithmus. Die Eingaben in den maschinellen Lernalgorithmus sind die Ankunfts- und Abfahrtsbilder, und die gewünschte Ausgabe für jeden Trainingsdatensatz ist die Klassifizierung.
-
Das Verfahren 900 kann ferner Empfangen 906 eines Modells, das durch den maschinellen Lernalgorithmus aus Schritt 904 trainiert wurde, und Laden 908 des Modells in eine Steuerung eines Fahrzeugs beinhalten. Das Fahrzeug kann das Modell dann zum Klassifizieren von Abfahrts- und Ankunftsbildern verwenden, wie vorstehend in Bezug auf 3 und 4 beschrieben.
-
In der vorstehenden Offenbarung wurde auf die beigefügten Zeichnungen Bezug genommen, die einen Teil davon bilden und in denen zur Veranschaulichung konkrete Umsetzungen gezeigt sind, in denen die Offenbarung ausgeführt sein kann. Es versteht sich, dass andere Umsetzungen verwendet werden können und strukturelle Änderungen vorgenommen werden können, ohne vom Umfang der vorliegenden Offenbarung abzuweichen. Bezugnahmen in der Beschreibung auf „eine Ausführungsform“, „ein Ausführungsbeispiel“ etc. geben an, dass die beschriebene Ausführungsform ein(e) bestimmte(s) Merkmal, Struktur oder Eigenschaft beinhalten kann, doch es muss nicht notwendigerweise jede Ausführungsform diese(s) bestimmte Merkmal, Struktur oder Eigenschaft beinhalten. Darüber hinaus beziehen sich derartige Formulierungen nicht unbedingt 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.
-
Umsetzungen der hier offenbarten Systeme, Vorrichtungen und Verfahren können einen Spezial- oder Universalcomputer umfassen oder verwenden, der Computerhardware beinhaltet, wie etwa zum Beispiel einen oder mehrere Prozessoren und einen oder mehrere Systemspeicher, wie hier erörtert. Umsetzungen 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 beinhalten. Bei derartigen 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 Umsetzungen der Offenbarung beispielsweise und nicht einschränkend mindestens zwei deutlich unterschiedliche Arten von computerlesbaren Medien umfassen: Computerspeichermedien (-vorrichtungen) und Übertragungsmedien.
-
Computerspeichermedien (-vorrichtungen) beinhalten 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, das dazu verwendet werden kann, gewünschte Programmcodemittel in Form von computerausführbaren Anweisungen oder Datenstrukturen zu speichern, und auf das durch einen Universal- oder Spezialcomputer zugegriffen werden kann.
-
Eine Umsetzung der hier 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 Vorrichtungen ermöglichen. Wenn Informationen über ein Netzwerk oder eine andere (entweder festverdrahtete, drahtlose oder eine Kombination aus festverdrahteter oder drahtloser) Kommunikationsverbindung einem Computer bereitgestellt oder auf diesen übertragen werden, sieht der Computer die Verbindung korrekt als Übertragungsmedium an. Übertragungsmedien können ein Netzwerk und/oder Datenverbindungen beinhalten, 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 enthalten 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 Patentansprüchen definierte Gegenstand nicht notwendigerweise auf die vorstehend beschriebenen Merkmale oder Handlungen beschränkt ist. Die beschriebenen Merkmale und Handlungen werden vielmehr als beispielhafte Formen der Umsetzung der Patentansprüche offenbart.
-
Der Fachmann kann nachvollziehen, dass die Offenbarung in Network-Computing-Umgebungen mit vielen Arten von Computersystemkonfigurationen durchgeführt werden kann, einschließlich eines Armaturenbrett-Fahrzeugcomputers, PCs, Desktop-Computern, Laptops, Nachrichtenprozessoren, Handvorrichtungen, Multiprozessorsystemen, Unterhaltungselektronik auf Mikroprozessorbasis oder programmierbarer Unterhaltungselektronik, Netzwerk-PCs, Minicomputern, Mainframe-Computern, Mobiltelefonen, PDAs, Tablets, Pagern, Routern, Switches, verschiedenen Speichervorrichtungen und dergleichen. Die Offenbarung kann zudem in Umgebungen mit verteilten Systemen angewendet werden, in denen sowohl lokale Computersysteme als auch entfernte Computersysteme, die durch ein Netzwerk (entweder durch festverdrahtete Datenverbindungen, drahtlose Datenverbindungen oder durch eine Kombination aus festverdrahteten und drahtlosen Datenverbindungen) verbunden sind, Aufgaben ausfü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 von Folgenden ausgeführt werden: Hardware, Software, Firmware, digitalen Komponenten oder analogen Komponenten. Ein oder mehrere anwendungsspezifische integrierte Schaltkreise (ASICs) können zum Beispiel so programmiert sein, dass sie eines bzw. einen oder mehrere der hier beschriebenen Systeme und Vorgänge ausführen. Bestimmte Ausdrücke werden in der gesamten Beschreibung und den Patentansprüchen verwendet, um auf bestimmte Systemkomponenten Bezug zu nehmen. Der Fachmann wird zu schätzen wissen, dass auf Komponenten durch unterschiedliche Bezeichnungen Bezug genommen werden kann. In dieser Schrift 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 daraus umfassen können, um mindestens einen Teil ihrer Funktionen auszuführen. Ein Sensor kann zum Beispiel Computercode beinhalten, der dazu konfiguriert ist, in einem oder mehreren Prozessoren ausgeführt zu werden, und kann eine Hardware-Logikschaltung/elektrische Schaltung beinhalten, die durch den Computercode gesteuert wird. Diese beispielhaften Vorrichtungen sind hier zum Zwecke der Veranschaulichung bereitgestellt und sollen nicht einschränkend sein. Ausführungsformen der vorliegenden Offenbarung können in weiteren Arten von Vorrichtungen umgesetzt werden, wie es dem einschlägigen Fachmann bekannt ist.
-
Mindestens 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 den einschlägigen Fachmann 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 Patentansprüchen und ihren Äquivalenten definiert sein. Die vorstehende Beschreibung wurde zum Zwecke der Veranschaulichung und Beschreibung dargelegt. Sie erhebt keinerlei Anspruch auf Vollständigkeit und soll die Offenbarung nicht auf die konkrete offenbarte Form beschränken. Viele Modifikationen und Variationen sind in Anbetracht der vorstehenden Lehren möglich. Ferner ist anzumerken, dass beliebige oder alle der vorangehend genannten alternativen Umsetzungen in einer beliebigen gewünschten Kombination verwendet werden können, um zusätzliche Hybridumsetzungen der Offenbarung zu bilden.
-
Die vorliegende Erfindung kann in anderen konkreten Formen ausgeführt sein, ohne von ihrem Geist oder ihren wesentlichen Eigenschaften abzuweichen. Die beschriebenen Ausführungsformen sind in jeder Hinsicht nur als veranschaulichend und nicht einschränkend zu betrachten. Der Geltungsbereich der Erfindung wird daher vielmehr von den beigefügten Patentansprüchen als von der vorangegangenen Beschreibung angegeben. Alle Änderungen, die in die Bedeutung und den Bereich der Äquivalenz der Patentansprüche fallen, sind als in deren Geltungsbereich eingeschlossen zu verstehen.