-
GEBIET DER ERFINDUNG
-
Diese Erfindung betrifft Benutzerschnittstellen für Systeme eines Fahrzeugs.
-
ALLGEMEINER STAND DER TECHNIK
-
Ein modernes Fahrzeug erfüllt viele Funktionen über den Transport hinaus. Zum Beispiel können Soundsysteme, Klimaregelungen, Schnittstellen zu einem Mobiltelefon oder einem anderen Kommunikationssystem und andere Funktionen für einen Insassen eines Fahrzeugs bereitgestellt werden. Dementsprechend müssen Bedienelemente für diese Funktionen bereitgestellt werden. Um die Anzahl der Tasten zu reduzieren, können Schnittstellenfunktionen unter Verwendung einer Berührungsbildschirmschnittstelle implementiert werden. Die Bedienelemente können weiter vereinfacht werden, indem ein Sprachsteuersystem, wie etwa das FORD SYNC-System, bereitgestellt wird.
-
Die hierin offenbarten Systeme und Verfahren stellen einen verbesserten Ansatz zum Empfangen von Benutzereingaben von Hörgeschädigten bereit, ohne dass eine Interaktion mit einem Berührungsbildschirm oder einem anderen physischen Schnittstellenelement erforderlich ist.
-
-
KURZE BESCHREIBUNG 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. Da es sich versteht, dass diese Zeichnungen nur typische Ausführungsformen der Erfindung darstellen und daher nicht als ihren Umfang einschränkend zu betrachten sind, wird die Erfindung mit zusätzlicher Genauigkeit und in Einzelheiten durch die Verwendung der beigefügten Zeichnungen beschrieben und erläutert, wobei:
- 1 ein schematisches Blockdiagramm eines Systems zum Implementieren von Ausführungsformen der Erfindung ist;
- 2 ein schematisches Blockdiagramm einer beispielhaften Rechenvorrichtung ist, die zum Implementieren von Verfahren gemäß Ausführungsformen der Erfindung geeignet ist;
- 3 ein schematisches Diagramm eines Fahrzeugs mit Sensoren zum Erkennen von visuellen Eingaben gemäß einer Ausführungsform der vorliegenden Erfindung ist;
- 4 ein Prozessablaufdiagramm eines Verfahrens zum Decodieren von visuellen Symbolen von mehreren Sensoren gemäß einer Ausführungsform der vorliegenden Erfindung ist;
- 5 ein Prozessablaufdiagramm eines Verfahrens zum Steuern eines Fahrzeugsystems unter Verwendung eines visuellen Symbols gemäß einer Ausführungsform der vorliegenden Erfindung ist;
- 6 ein Diagramm ist, das in einem Bild erkannte Ziele gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht; und
- 7A und 7B ein Verfahren zum Bereitstellen einer visuellen Bestätigung der Eingabe eines visuellen Symbols gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulichen.
-
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 Umfang 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.
-
Ausführungsformen gemäß der vorliegenden Erfindung können als eine Vorrichtung, ein Verfahren oder ein Computerprogrammprodukt ausgeführt sein. Dementsprechend kann die vorliegende Offenbarung die Form einer vollständig in Hardware enthaltenen Ausführungsform, einer vollständig in Software enthaltenen Ausführungsform (einschließlich Firmware, residente Software, Microcode usw.), oder einer Ausführungsform, die Software und Hardware kombiniert, annehmen, die alle allgemein hierin als ein „Modul“ oder „System“ bezeichnet werden. Weiterhin kann die vorliegende Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem konkreten Ausdrucksmedium mit vom Computer verwendbarem Programmcode, der im Medium enthalten ist, ausgeführt wird.
-
Jede Kombination von einem oder mehreren computerverwendbaren oder computerlesbaren Medien kann verwendet werden. Beispielsweise kann ein computerlesbares Medium eines oder mehrere von einer tragbaren Computerdiskette, einer Festplatte, eines Arbeitsspeicher (RAM)-Gerät, eines schreibgeschützten Speicher (ROM)-Gerät, eines programmierbaren Nur-Lesespeicher (EPROM- oder Flash-Speicher)-Geräts, eines tragbaren Compact Disc-Lesespeicher (CDROM)-Geräts, eines optischen Speichergeräts und eines magnetischen Speichergeräts beinhalten. In ausgewählten Ausführungsformen kann ein computerlesbares Medium jedes nicht-transitorische Medium umfassen, das das Programm zum Verwenden durch oder in Verbindung mit dem Befehlsausführungssystem, der Vorrichtung oder dem Gerät enthalten, speichern, kommunizieren, verbreiten oder transportieren kann.
-
Ein Computerprogrammcode zum Ausführen von Vorgängen der vorliegenden Erfindung kann in jeder beliebigen Kombination von einer oder mehreren Programmiersprachen, einschließlich einer objektorientierten Programmiersprache, wie beispielsweise Java, Smalltalk, C++ oder dergleichen, und herkömmlicher prozeduraler Programmiersprachen, wie beispielsweise die „C“-Programmiersprache oder ähnliche Programmiersprachen, geschrieben sein. Der Programmcode kann gänzlich auf einem Computersystem als ein eigenständiges Software-Paket, auf einer eigenständigen Hardware-Einheit, teilweise auf einem Ferncomputer, der sich in einigem Abstand zum Computer befindet, oder gänzlich auf einem Ferncomputer oder - server ausgeführt werden. In letztgenanntem Fall kann der Ferncomputer mit dem Computer mittels einer beliebigen Art von Netz verbunden sein, einschließlich eines lokalen Netzes (LAN) oder eines Großraumnetzes (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel mittels des Internets unter Verwendung eines Internetdienstleistungsanbieters).
-
Die vorliegende Erfindung wird nachfolgend unter Bezugnahme auf Ablaufdiagrammveranschaulichungen und/oder Blockdiagramme von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Ablaufdiagrammveranschaulichungen und/oder Blockdiagramme und Kombinationen von Blöcken in den Ablaufdiagrammveranschaulichungen und/oder Blockdiagrammen durch Computerprogrammanweisungen oder einen Computerprogrammcode eingerichtet sein kann. Diese Computerprogrammanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren, Daten verarbeitenden Vorrichtung zur Herstellung einer Maschine bereitgestellt sein, sodass die Anweisungen, die über den Prozessor des Computers oder der anderen programmierbaren, Daten verarbeitenden Vorrichtung ausgeführt werden, Mittel zum Einrichten der Funktionen/Handlungen, die in dem Block oder den Blöcken des Flussdiagramms und/oder des Blockdiagramms spezifiziert sind, schaffen.
-
Diese Computerprogrammanweisungen können ebenso in einem nichtflüchtigen computerlesbaren Medium gespeichert werden, das einen Computer oder eine andere programmierbare, Daten verarbeitende Vorrichtung dazu veranlasst, in einer bestimmten Art und Weise zu funktionieren, sodass die im computerlesbaren Medium gespeicherten Anweisungen einen Fertigungsgegenstand herstellen, einschließlich Anweisungsmitteln, die die Funktion/Handlung, die in dem Block oder den Blöcken des Ablaufdiagramms und/oder des Blockdiagramms spezifiziert ist, einrichten.
-
Die Computerprogrammanweisungen können ebenso auf einen Computer oder eine andere programmierbare, Daten verarbeitende Vorrichtung geladen werden, um zu veranlassen, dass eine Reihe von Verfahrensschritten auf dem Computer oder der anderen programmierbaren Vorrichtung durchgeführt wird, um ein computereingerichtetes Verfahren herzustellen, sodass die Anweisungen, die auf dem Computer oder der anderen programmierbaren Vorrichtung ausgeführt werden, Verfahren zum Einrichten der Funktionen/Handlungen bereitstellen, die in dem Block oder den Blöcken des Flussdiagramms und/oder des Blockdiagramms spezifiziert sind.
-
1 veranschaulicht elektronische Komponenten 100, die in ein Fahrzeug eingebaut sein können. Die elektronischen Komponenten 100 können eine Steuerung 102 beinhalten, die in einem Fahrzeug untergebracht ist. Das Fahrzeug kann jedes auf dem Gebiet bekannte Fahrzeug einschließen. Das Fahrzeug kann alle Strukturen und Merkmale eines auf dem Gebiet bekannten beliebigen Fahrzeugs aufweisen, einschließlich Rädern, eines mit den Rädern gekoppelten Antriebsstrangs, eines mit dem Antriebsstrang gekoppelten Motors, eines Lenksystems, eines Bremssystems und anderer Systeme, die auf dem Gebiet dahingehend bekannt sind, dass sie in einem Fahrzeug beinhaltet sind. Wie hierin genauer erörtert wird, kann die Steuerung 102 ein oder mehrere Fahrzeugsysteme gemäß visuellen Symbolen steuern, wie nachstehend in Bezug auf die Verfahren der 4 und 5 beschrieben wird.
-
Die Steuerung 102 kann einen oder mehrere Datenströme von einem oder mehreren Bildgebungssensoren 104 empfangen. Die Bildgebungssensoren 104 können dreidimensionale Bildgebungssensoren sein, die sowohl ein Bild von Objekten in ihrem Sichtfeld als auch eine Tiefe der Objekte bereitstellen. Zum Beispiel kann der Bildgebungssensor 104 ein Tiefensensor sein, wie er von MICROSOFT KINECT oder dergleichen bereitgestellt wird.
-
Andere Sensoren können ebenfalls an die Steuerung 102 gekoppelt sein und eine Abschätzung einer Tiefe für ein Objekt in ihrem Sichtfeld bereitstellen. Zum Beispiel kann ein Ultraschallsensor 106 an die Steuerung 102 gekoppelt sein. Die Steuerung 102 kann zudem an ein Mikrofon 108 gekoppelt sein, das in der Kabine des Fahrzeugs positioniert ist, um gesprochene oder andere hörbare Befehle zu empfangen.
-
Die Steuerung 102 kann ein Symbolerkennungsmodul 110 ausführen, das die Datenströme von den Sensoren 104, 106 empfängt und visuelle Symbole identifiziert, die durch einen Insassen des Fahrzeugs ausgeführt werden. Beispielsweise können ausgeführte Symbole ASL-Symbole (American Sign Language (amerikanische Gebärdensprache)) sein. Auch wenn die hierin offenbarten Systeme und Verfahren in Bezug auf ASL beschrieben sind, kann jede andere Gebärdensprache in identischer Weise implementiert werden.
-
Das Symbolerkennungsmodul 110 kann ein Sensorvorverarbeitungsmodul 112a beinhalten. Das Sensorvorverarbeitungsmodul 112a verarbeitet rohe Ausgaben jedes Sensors einzeln und identifiziert Ziele in den Sensorausgaben. Ziele im hier verwendeten Sinne beziehen sich auf Teile einer Hand, eines Arms oder eines Gesichts eines Insassen. Insbesondere können für eine Hand Fingerspitzen, Gelenke, Spannweiten zwischen Gelenken, eine Handfläche, ein Handrücken und ein Handgelenk identifiziert werden. Für einen Arm können ein Ellbogen, eine Schulter, ein Unterarm und ein Oberarm identifiziert werden. Für ein Gesicht können Augen, Nase, Mund identifiziert werden. Die Art und Weise, in der Ziele identifiziert werden, kann ein beliebiges Verfahren beinhalten, das auf dem Gebiet der Bildverarbeitung bekannt ist, wie beispielsweise solche, die durch MICROSOFT KINECT oder ähnliche Systeme implementiert werden. Die Ausgabe des Sensorvorverarbeitungsmoduls 112a kann eine Liste von Zielstellen sein, wobei solche Einträge die Werte <a, x, y, z> beinhalten, wobei ,a` eine Kennung des Ziels ist (Fingerspitze, Auge, Handfläche, erster Knöchel des Zeigefingers usw.) und ,x, y, z' dreidimensionale Koordinaten des Ziels im Sichtfeld des Sensors sind. In einigen Ausführungsformen kann die Liste von Zielstellen skelettartige Abbildungsvektoren repräsentieren oder in solche umgewandelt werden, die die Position der Ausrichtung von Knochen der Hand repräsentieren, um die Identifikation eines Symbols, das durch den Benutzer ausgeführt wird, zu erleichtern. Skelettartige Abbildungsvektoren können als Liniensegmente verkörpert sein, die die verschiedenen Knochen in den Händen, dem Handgelenk, dem Unterarm usw. definieren und eine Translation und Rotation in Bezug auf die Körpermitte aufweisen. Diese Liniensegmente variieren im Laufe der Zeit. Diese Liniensegmente können im Laufe der Zeit verfolgt werden und dem korrekten Körperteil zugeordnet werden. Die Bewegung der Körperpaare kann dann erfasst und interpretiert werden.
-
Das Symbolerkennungsmodul 110 kann ein Zielzuordnungsmodul 112b beinhalten. Wenn mehrere Sensoren 104, 106 einen Insassen in ihrem Sichtfeld haben, können alle dasselbe Ziel erkennen. Dementsprechend kann das Zielzuordnungsmodul versuchen, Zielstellen, die dem gleichen Ziel entsprechen, miteinander abzugleichen. Wie nachstehend genauer beschrieben wird, kann dies das Ausführen eines Rao Blackwellized Monte Carlo Data Association (RBMCDA)-Algorithmus beinhalten. Die Ausgabe des Zielzuordnungsmoduls 112b kann eine Liste von Stellen für die nachverfolgten Ziele sein, wobei die Einträge für jede Liste einem einzelnen Ziel entsprechen, das aus den mehreren Messungen des einzelnen Ziels durch die mehreren Sensoren 104, 106 gemäß dem RBMCDA-Algorithmus abgeleitet wird.
-
Die Ausgabe des Zielzuordnungsmoduls 112b wird in ein Zielnachverfolgungsmodul 112c eingegeben, das die Liste von Zielstellen im Kontext der Bewegung des Ziels über die Zeit verarbeitet. Zum Beispiel kann das Zielnachverfolgungsmodul 112c die Stellen jedes Ziels über die Zeit gemäß einem Kalman-Filter unter Verwendung von Kontextinformationen verarbeiten. Der Kalman-Filter entfernt Rauschen in der erkannten Stelle jedes Ziels, d. h zufällige Abweichung, Ausreißer, die eindeutig fehlerhaft sind, usw.
-
Der Kalman-Filter, der auch als lineare quadratische Schätzung bezeichnet wird, ist ein Filter, der eine Reihe von Messungen über die Zeit hinweg durchführt und Schätzungen erzeugt, die genauer sind als diejenigen, die nur auf einer einzelnen Messung beruhen. Die Kontextinformationen sind die Messungen, die in der Vergangenheit und Zukunft einer konkreten Schätzung vorgenommen wurden/werden. Zum Beispiel verwendet die Schätzung für Zeitschritt = k Informationen von Zeitschritten = k-1, k und k+ 1.
-
Die Stellen der Ziele, wie sie durch das Zielnachverfolgungsmodul 112c verarbeitet werden, können in das Decodierungsmodul 112d eingegeben werden. Das Decodierungsmodul 112d bildet einen Zustand der Ziele zu einem gegebenen Zeitpunkt und/oder eine Progression der Ziele über die Zeit auf ein ASL-Wort oder Zeichenausgangsdaten (z. B. Text) entsprechend dem ASL-Wort oder -Zeichen ab.
-
Die Ausgabe des Decodierungsmoduls 112d kann in eine Fahrzeugsystemschnittstelle 114 eingegeben werden. Die Fahrzeugsystemschnittstelle 114 kann eine Rechenvorrichtung oder eine durch die Steuerung 102 selbst implementierte Funktionalität sein, die Befehle an ein oder mehrere Fahrzeugsysteme 116a-116e koppelt und/oder Statusinformationen von diesen empfängt. Zum Beispiel können die Fahrzeugsysteme ein Soundsystem 116a, ein Navigationssystem 116b, mobile Anwendungen 116c, Mobiltelefonfunktionen 116d oder andere Funktionen 116e beinhalten. In einigen Ausführungsformen kann das Soundsystem 116a Teil eines Fahrzeug-Infotainmentsystems sein.
-
Die Steuerung 102 kann an eine Anzeigevorrichtung 118 und eine Eingabevorrichtung 120 gekoppelt sein. Die Anzeigevorrichtung 118 und die Eingabevorrichtung 120 können als ein Berührungsbildschirm ausgebildet sein. In einigen Ausführungsformen ist die Anzeigevorrichtung 118 eine Heads-Up-Anzeige (HUD), die Informationen auf der Windschutzscheibe des Fahrzeugs oder auf einem anderen transparenten Bildschirm darstellt. Statusinformationen für die Fahrzeugsysteme 116a-116e können durch die Anzeigevorrichtung 118 dargestellt werden. Eingaben zum Steuern der Fahrzeugsysteme können auch durch die Eingabevorrichtung 120 empfangen werden. Die durch die Fahrzeugsystemschnittstelle 114 über die Eingabevorrichtung 120 empfangenen Eingaben können dieselben Funktionen aufrufen, die unter Verwendung von ASL-Symbolen aufgerufen werden können, die durch das Symbolerkennungsmodul 110 decodiert wurden.
-
2 ist ein Blockdiagramm zur Veranschaulichung einer beispielhaften Rechenvorrichtung 200. Die Rechenvorrichtung 200 kann verwendet werden, um verschiedene Prozeduren, wie beispielsweise die hierin erläuterten, durchzuführen. Die Steuerung 102 und die Fahrzeugsystemschnittstelle 114 können einige oder alle 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, die Anweisungen ausführen, die in der/den Speichervorrichtung(en) 204 und/oder der Massenspeichervorrichtung(en) 208 gespeichert sind. Der/die Prozessor(en) 202 kann/können auch verschiedene Arten von computerlesbaren Medien, wie beispielsweise einen Cache-Speicher, beinhalten.
-
Die Speichervorrichtung(en) 204 beinhaltet/beinhalten verschiedene computerlesbare Medien, wie beispielsweise einen flüchtigen Speicher (z. B. Arbeitsspeicher (Random Access Memory - RAM 214) und/oder einen nichtflüchtigen Speicher (z. B. einen Nur-Lese-Speicher (Read-Only Memory - ROM 216). Die Speichervorrichtung(en) 204 kann/können auch einen wiederbeschreibbaren ROM, wie beispielsweise einen Flash-Speicher, beinhalten.
-
Die Massenspeichervorrichtung(en) 208 beinhalten verschiedene computerlesbare Medien, wie beispielsweise Magnetbänder, Magnetplatten, optische Platten, Solid-State-Speicher (z. B. Flash-Speicher) und so weiter. Wie in 2 gezeigt, ist eine konkrete Massenspeichervorrichtung ein Festplattenlaufwerk 224. Verschiedene Laufwerke können auch in dem/den Massenspeichervorrichtung(en) 208 beinhaltet sein, um das Lesen von und/oder das Schreiben auf die verschiedenen computerlesbaren Medien zu ermöglichen. Die Massenspeichervorrichtung(en) 208 beinhaltet/beinhalten Wechselmedien 226 und/oder nicht entfernbare Medien.
-
Die E/A-Vorrichtung(en) 210 beinhaltet/beinhalten verschiedene Vorrichtungen, die ermöglichen, dass Daten und/oder andere Informationen in die Rechenvorrichtung 200 eingegeben werden 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 Informationen für einen oder mehrere Benutzer der Rechenvorrichtung 200 anzeigen kann. Beispiele einer Anzeigevorrichtung 230 beinhalten einen Bildschirm, ein Anzeigegerät, eine Videoprojektionsvorrichtung und dergleichen.
-
Die Schnittstelle(n) 206 beinhaltet/beinhalten verschiedene Schnittstellen, die ermöglichen, dass die Rechenvorrichtung 200 mit anderen Systemen, Vorrichtungen oder Rechenumgebungen interagiert. Beispielhafte Schnittstelle(n) 206 beinhalten eine beliebige Anzahl verschiedener Netzwerkschnittstellen 220, wie beispielsweise Schnittstellen zu lokalen Netzwerken (LAN), Wide Area Networks (WAN), drahtlosen Netzen und dem Internet. Andere Schnittstelle(n) beinhaltet/beinhalten 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 usw.), Tastaturen und dergleichen.
-
Der Bus 212 ermöglicht das Kommunizieren des Prozessors/der Prozessoren 202, der Speichervorrichtung(en) 204, der Schnittstelle(n) 206, der Massenspeichervorrichtung(en) 208, der E/A-Vorrichtung(en) 210 und der Anzeigevorrichtung 230 miteinander sowie mit anderen Vorrichtungen oder Komponenten, die an den Bus 212 gekoppelt sind. Der Bus 212 stellt eine oder mehrere verschiedene Arten von Busstrukturen dar, wie beispielsweise einen Systembus, PCI-Bus, IEEE 1394-Bus, USB-Bus und so weiter.
-
Zum Zwecke der Veranschaulichung werden Programme und andere ausführbare Programmkomponenten hierin als diskrete Blöcke dargestellt, auch wenn sich versteht, dass derartige Programme und Komponenten sich zu verschiedenen Zeiten in unterschiedlichen Speicherkomponenten der Rechenvorrichtung 200 befinden können und von dem/den Prozessor(en) 202 ausgeführt werden. Alternativ können die hierin beschriebenen Systeme und Vorgänge in Hardware oder einer Kombination aus Hardware, Software und/oder Firmware umgesetzt sein. Ein oder mehrere anwendungsspezifische integrierte Schaltkreise (ASIC) können zum Beispiel dazu programmiert sein, eines bzw. einen oder mehrere der hier beschriebenen Systeme und Vorgänge auszuführen.
-
Bezugnehmend auf 3 kann ein Fahrzeug 300 die darin untergebrachte Steuerung 102 sowie einige oder alle der anderen in 1 gezeigten elektronischen Komponenten beinhalten. Wie gezeigt, können die Bildgebungssensoren 104 in der Fahrzeugkabine derart angebracht sein, dass sie einen Insassen der Kabine in ihrem Sichtfeld haben. Ein Ultraschallsensor 106 oder eine andere Art von Sensor kann ebenfalls in der Fahrzeugkabine angebracht sein, der einen Insassen der Kabine in seinem Sichtfeld hat. In dem veranschaulichten Beispiel haben die Sensoren 104, 106 eine Fahrersitzposition in ihrem Sichtfeld. In einigen Ausführungsformen befinden sich sowohl die Fahrer- als auch die Beifahrersitzposition im Sichtfeld der Sensoren 104, 106. In einigen Ausführungsformen werden separate Sensoren 104, 106 für jede der Fahrersitzposition und der Beifahrersitzposition verwendet. In einigen Ausführungsformen befinden sich Rücksitzpositionen ebenfalls im Sichtfeld derselben Sensoren 104, 106 oder eines separaten Satzes von Sensoren 104, 106.
-
Bezugnehmend auf 4 kann das veranschaulichte Verfahren 400 durch die Steuerung 102 ausgeführt werden, beispielsweise innerhalb der Fahrzeugsystemschnittstelle 114, um ASL-Symbole zu identifizieren, die in den Sichtfeldern der Sensoren 104, 106 ausgeführt werden. Das Verfahren 400 kann Empfangen (402) von Ausgaben der Sensoren 104, 106 beinhalten.
-
Die Ausgaben werden dann unabhängig verarbeitet (404), um Zielstellen in jeder Sensorausgabe zu identifizieren. Insbesondere kann eine beliebige auf dem Gebiet bekannte Bildanalysetechnik verwendet werden, um Ziele in jeder Sensorausgabe individuell zu identifizieren. Die identifizierten Ziele können Teile der Hand, des Arms und des Gesichts des Benutzers, wie oben beschrieben, beinhalten. Wie ebenfalls oben angemerkt, kann das Identifizieren von Zielstellen das Identifizieren einer dreidimensionalen Stelle des Ziels beinhalten, d. h. einer Stelle, die Tiefe sowie vertikale und laterale Stellen innerhalb eines Bildes beinhaltet.
-
Das Verfahren 400 kann dann Zuordnen (406) der Zielstellen zueinander beinhalten. Insbesondere können die Stellen, die aus den Sensorausgaben bestimmt wurden, die dem gleichen Ziel entsprechen, identifiziert und gruppiert oder anderweitig kombiniert werden. Die Art und Weise, in der aus den Ausgaben mehrerer Sensoren bestimmte Zielstellen bestimmt werden, um dem gleichen Ziel zu entsprechen, kann Ausführen des Rao Blackwellized Monte Carlo Data Association (RBMCDA)-Algorithmus beinhalten, wobei die aus jeder Sensorausgabe bestimmten Zielstellen die Eingaben sind und die Ausgaben Gruppierungen von Stellen sind, wobei jede Gruppierung Zielstellen von mehreren Sensorausgaben beinhaltet, die gemäß dem RBMCDA-Algorithmus bestimmt werden, um dem gleichen Ziel zu entsprechen.
-
Die Ausgabe des Zuordnungsschritts 406 kann eine Liste von Zielstellen für eine Vielzahl von Zielen sein. Der Schritt des Empfangens (402) von Sensorausgaben und die nachfolgenden Verarbeitungsschritte 404-406 können periodisch wiederholt werden, sodass Listen von Zielstellen als Ergebnis von Schritt 406 periodisch ausgegeben werden. Das Verfahren 400 kann ferner Filtern (408) dieser Listen von Stellen enthalten, um Rauschen und eindeutig fehlerhafte Ausreißer zu entfernen. Dementsprechend kann jede Zielstelle zu einer Reihe von vorhergehenden Zielstellen für das gleiche Ziel hinzugefügt werden, und diese Reihe von Werten kann gefiltert werden (408), wie etwa unter Verwendung eines Kalman-Filters. Der Filterungsschritt kann Kontextinformationen berücksichtigen.
-
Bezugnehmend auf 5 ist die Ausgabe des Filterungsschritts 408 ebenfalls eine Liste von Zielstellen, die gegenüber der in Schritt 406 ausgegebenen Liste modifiziert sein kann, und kann gemäß dem Verfahren 500 verarbeitet werden. Einige ASL-Symbole involvieren Bewegung sowie konkrete Konfigurationen der Hand, Finger und Arme. Dementsprechend kann das Verfahren 500 in Bezug auf einen Satz von Listen von Zielstellen über einen Zeitraum ausgeführt werden, um Bewegungen sowie die Position zu bestimmen.
-
Das Verfahren 500 kann Identifizieren (502) eines Symbols gemäß einer Liste von Zielstellen oder einem Satz von Listen von Zielstellen beinhalten. Zum Beispiel kann das System kalibriert werden, indem es den Benutzer eine Vielzahl von ASL-Symbolen ausführen lässt. Wenn der Benutzer die Symbole ausführt, kann eine kalibrierte Liste von Zielstellen oder ein kalibrierter Satz von Listen von Zielstellen in der gleichen Weise wie für das Verfahren 400 der 4 bestimmt werden. Eine Bibliothek von kalibrierten Listen von Zielstellen oder kalibrierte Sätze von Listen von Zielstellen kann auf diese Weise erlangt werden, wobei jede kalibrierte Liste oder jeder kalibrierte Satz von Listen auf ein Symbol abgebildet wird, das ausgeführt wurde, als die zum Erlangen derselben verwendeten Sensorausgaben empfangen wurden.
-
In einigen Ausführungsformen wird die Kalibrierung in Kombination mit einer Anwendung durchgeführt, die auf einem Mobiltelefon oder einer anderen Vorrichtung des Benutzers ausgeführt wird. Durch die Anwendung kann der Benutzer angewiesen werden, ein Symbol für eine konkrete Schnittstellenanweisung, ein Wort, ein Zeichen oder andere Daten auszuführen, und die Ausführung des Symbols kann dann aufgezeichnet und dieser konkreten Schnittstellenanweisung, dem Wort, dem Zeichen oder anderen Daten in der oben beschriebenen Weise zugeordnet werden.
-
In einigen Ausführungsformen kann, wie oben angemerkt, eine Liste von Zielstellen als skelettartige Abbildungsvektoren verkörpert sein oder in diese umgewandelt werden, die die Position und Ausrichtung der Knochen des Benutzers basierend auf den Zielstellen repräsentieren. Die skelettartigen Abbildungsvektoren können dann mit kalibrierten skelettartigen Abbildungsvektoren verglichen werden, die aus der Beobachtung des Benutzers erlangt wurden, der Symbole während der Kalibrierungsphase, wie oben beschrieben, ausführt.
-
Das Identifizieren (502) eines Symbols kann das Vergleichen einer aktuellen Liste von Zielstellen oder eines aktuellen Satzes von Listen von Zielstellen basierend auf Sensorausgaben während der Benutzerausführung eines Symbols mit der Bibliothek beinhalten. Die kalibrierte Liste oder der kalibrierte Satz von Listen, die mit der aktuellen Liste von Zielstellen oder dem aktuellen Satz von Listen von Zielstellen übereinstimmen, können identifiziert werden.
-
Sobald eine Übereinstimmung identifiziert ist, wird das Symbol, das auf die identifizierte kalibrierte Liste oder den identifizieren kalibrierten Satz von Listen abgebildet ist, auf einen Fahrzeugschnittstellenbefehl abgebildet (504). Dieser Befehl wird dann beispielsweise durch die Fahrzeugsystemschnittstelle 114 ausgeführt (506).
-
Bezugnehmend auf 6 können die Sensoren 104, 106 in einem Beispiel ein dreidimensionales Bild des Gesichts, der Hand und des Unterarms eines Benutzers erfassen. Für jede Sensorausgabe können Stellen 600 von Zielen identifiziert werden, einander zugeordnet, gefiltert und als eine Liste von Zielstellen ausgegeben werden, wie zuvor in Bezug auf 4 beschrieben wurde. In dem veranschaulichten Beispiel ist die Konfiguration der Hand in Bezug auf das Gesicht des Benutzers das ASL-Symbol für Telefon. Dementsprechend kann die Fahrzeugsystemschnittstelle beim Erkennen dieses Symbols Tätigen eines Telefonanrufs oder eine andere Handlung in Bezug auf das Mobiltelefon eines Benutzers aufrufen. Mehrere Symbole können erfasst werden, um komplexere Aufgaben aufzurufen oder um Parameter bereitzustellen, die die Ausführung einer Aufgabe definieren.
-
In einigen Ausführungsformen kann eine Übersetzungsfunktion derart implementiert sein, dass eine Text- oder Sprachwiedergabe eines oder mehrerer decodierter Symbole ausgegeben wird. Zum Beispiel kann ein Fahrer ASL-Symbole eingeben, die dann für einen Beifahrer, der keine ASL versteht, in Text oder Sprache übersetzt werden.
-
Bezugnehmend auf die 7A und 7B kann in einigen Ausführungsformen eine Rückmeldung an den Benutzer bereitgestellt werden. Zum Beispiel kann, wie in 7A gezeigt, die Hand 700 eines Benutzers (oder andere Teile des Benutzers, die zur Ausführung eines ASL-Symbols erforderlich sein können) auf einer Anzeigevorrichtung 118 dargestellt werden. Wenn das ausgeführte Symbol erfolgreich decodiert wurde, kann die Darstellung der Hand des Benutzers geändert werden, um zu bestätigen, dass das Symbol decodiert wurde. In dem veranschaulichten Beispiel ist eine Gitterdarstellung 702 der Hand des Benutzers gezeigt, beispielsweise basierend auf den Zielstellen, die gemäß den hierin offenbarten Verfahren identifiziert wurden.
-
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 Umfang 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 Umfang eingeschlossen zu verstehen.