-
TECHNISCHES GEBIET
-
Die Offenbarung betrifft im Allgemeinen Verfahren, Systeme und Vorrichtungen zum Erkennen von Objekten oder visuellen Merkmalen und betrifft insbesondere Verfahren, Systeme und Vorrichtungen zur Erkennung von Objekten unter Verwendung eines rekurrenten neuronalen Netzwerks und einer verketteten Merkmalsabbildung.
-
ALLGEMEINER STAND DER TECHNIK
-
Automobile stellen einen erheblichen Teil des Transports für gewerbliche, behördliche und private Einrichtungen bereit. Autonome Fahrzeuge und Fahrassistenzsysteme werden gegenwärtig entwickelt und eingesetzt, um Sicherheit bereitzustellen, eine Menge von erforderlichen Benutzereingabe zu verringern oder eine Benutzerbeteiligung sogar gänzlich zu eliminieren. Zum Beispiel können einige Fahrassistenzsystem, wie beispielsweise Unfallvermeidungssysteme, die Fahrt, Positionen und eine Geschwindigkeit des Fahrzeugs und anderer Objekte überwachen, während ein Mensch fährt. Wenn das System erkennt, dass ein Unfall oder Zusammenstoß unmittelbar bevorsteht, kann das Unfallvermeidungssystem eingreifen und eine Bremse betätigen, das Fahrzeug lenken oder andere Ausweich- oder Sicherheitsmanöver durchführen. Als ein anderes Beispiel können autonome Fahrzeuge ein Fahrzeug mit wenig oder keiner Benutzereingabe fahren und navigieren. Die Objekterkennung basierend auf Sensordaten ist häufig notwendig, um automatisierten Fahrsystemen oder Fahrassistenzsystemen das sichere Identifizieren und Umfahren von Hindernissen oder das sichere Fahren zu ermöglichen.
-
Figurenliste
-
Nicht einschränkende und nicht erschöpfende Umsetzungen der vorliegenden Offenbarung werden in Bezug auf die folgenden Figuren beschrieben, wobei sich in den verschiedenen Ansichten gleiche Bezugszeichen auf gleiche Teile beziehen, sofern nicht anderweitig angegeben. Vorteile der vorliegenden Offenbarung können unter Bezugnahme auf die folgende Beschreibung und beigefügten Zeichnungen besser nachvollzogen werden, in welchen Folgendes gilt:
- 1 ist ein schematisches Blockdiagramm, das eine Umsetzung eines Fahrzeugsteuersystems veranschaulicht, welches ein automatisiertes Fahr-/Assistenzsystem beinhaltet;
- 2 ist ein schematisches Blockdiagramm, das ein neuronales Netzwerk mit rekurrenten Verbindungen gemäß einer Umsetzung veranschaulicht;
- 3 veranschaulicht eine perspektivische Ansicht einer Fahrbahn, wie sie durch eine Fahrzeugkamera aufgenommen wird, gemäß einer Umsetzung;
- 4 ist ein schematisches Blockdiagramm, das die Integration von zeitlichen Informationen zwischen Rahmen von Sensordaten während der Objekterkennung gemäß einer Umsetzung veranschaulicht;
- 5 ist eine schematische Darstellung eines Ablaufdiagramms, das ein Verfahren zur Objekterkennung gemäß einer Umsetzung veranschaulicht;
- 6 ist ein schematisches Blockdiagramm, das die Erzeugung und Verwendung einer verketteten Merkmalsabbildung in Kombination mit der Integration von zeitlichen Informationen zwischen Rahmen von Sensordaten während der Objekterkennung gemäß einer Umsetzung veranschaulicht;
- 7 ist eine schematische Darstellung eines Ablaufdiagramms, das ein Verfahren zur Objekterkennung gemäß einer Umsetzung veranschaulicht; und
- 8 ist ein schematisches Blockdiagramm, das ein Rechensystem gemäß einer Umsetzung veranschaulicht.
-
DETAILLIERTE BESCHREIBUNG
-
Aus Sicherheitsgründen kann ein intelligentes oder autonomes Fahrzeug in der Lage sein müssen, Objekte in dynamischen Umgebungen zu klassifizieren. Tiefe neuronale Faltungsnetzwerke weisen große Erfolge im Bereich der Objekterkennung auf, die unter einigen Bedingungen sogar die Leistung von Menschen übersteigen. Tiefe neuronale Faltungsnetzwerke können beim Extrahieren von Zuordnungen, bei welchen Merkmale auf hoher Ebene in Bildern gefunden werden, hochgradig kompetent sein. Die Merkmalsabbildungen können aus Faltungen auf einem statischen Bild extrahiert werden und dann zur Bild- oder Objekterkennung verwendet werden.
-
Objekterkennung auf dem Stand der Technik in Bildern/Videos hat sich auf das Extrahieren von Merkmalsabbildungen aus statischen Bildern und das anschließende Einspeisen in Klassifizierungs- und Regressionsmodelle zur Objekterkennung/-klassifizierung bzw. -lokalisierung fokussiert. Während tiefe neuronale Faltungsnetzwerke große Erfolge im Bereich der Objekterkennung aufweisen, bringt die Erkennung einer unbekannten Anzahl von Objekten innerhalb einer Szene eine viel größere Herausforderung hervor. Während jüngste Innovationen beeindruckende Ergebnisse beim Erkennen von Objekten innerhalb statischer Bilder erreicht haben, haben die Anmelder erkannt, dass bestehenden Modellen die Fähigkeit fehlt, zeitliche Informationen für die Objekterkennung in Videos oder anderen Reihen oder Folgen von Sensordaten zu nutzen. Dies kann zu unsicherer Objektlokalisierung führen, und zwar insbesondere dann, wenn Objekte vorübergehend verdeckt werden.
-
Darüber hinaus bleibt das Erkennen von Objekten in Videos mit unerwünschten Beleuchtungsbedingungen in hohem Maße eine Herausforderung. Zum Beispiel können grelles Sonnenlicht oder Bedingungen in einer dunklen Nacht visuelle Algorithmen beinahe nutzlos machen. Die Anmelder haben erkannt, dass verfügbaren Modellen die Fähigkeit fehlt, auf der Merkmalsebene mit Informationen von alternativen Sensoren kombinierte zeitliche Dynamik zur Objekterkennung zu nutzen. Dies kann zu unsicherer Objektlokalisierung führen, die unter schlechten Beleuchtungsbedingungen versagt.
-
In der vorliegenden Offenbarung offenbaren die Anmelder die Verwendung verketteter Merkmalsabbildungen und rekurrenter Verbindungen in Klassifizierungs- und Regressionsmodellen (wie beispielsweise einem neuronalen Netzwerk), wenn Merkmalsabbildungen aus Videosequenzen extrahiert oder Objekte in diesen Videosequenzen erkannt werden. Gemäß einer Ausführungsform beinhaltet ein System eine Sensorkomponente und eine Erkennungskomponente. Die Sensorkomponente ist konfiguriert, eine erste Folge von Sensordaten und eine zweite Folge von Sensordaten zu erlangen, wobei jede der ersten Folge und der zweiten Folge eine Vielzahl von Sensorrahmen umfasst. Die Erkennungskomponente ist konfiguriert, eine verkettete Merkmalsabbildung basierend auf einem Sensorrahmen einer ersten Art und einem Sensorrahmen einer zweiten Art zu erzeugen. Die Erkennungskomponente ist konfiguriert, ein oder mehrere Objekte basierend auf der verketteten Merkmalsabbildung zu erkennen. Eines oder mehrere des Erzeugens und Erkennens umfasst das Erzeugen oder Erkennen unter Verwendung eines neuronalen Netzwerks mit einer rekurrenten Verbindung, die Informationen über Merkmale oder Objekte aus vorhergehenden Rahmen (z. B. Merkmalsabbildungen oder Objektvorhersagen aus dem oder den vorhergehenden Rahmen) einspeist.
-
Gemäß einer weiteren beispielhaften Ausführungsform beinhaltet ein Verfahren zur Objekterkennung in Videos (oder anderen Reihen von Sensorrahmen) das Bestimmen, unter Verwendung eines oder mehrerer neuronaler Netzwerke, einer Ausgabe für einen ersten Sensorrahmen, die ein Vorhandensein eines Objekts oder Merkmals angibt. Das Verfahren beinhaltet das Vorwärtseinspeisen der Ausgabe für den ersten Sensorrahmen als eine Eingabe zum Verarbeiten eines zweiten Sensorrahmens. Das Verfahren beinhaltet ebenfalls das Bestimmen einer Ausgabe für den zweiten Sensorrahmen, die ein Vorhandensein eines Objekts oder Merkmals basierend auf der Ausgabe für den ersten Sensorrahmen angibt.
-
In einer Ausführungsform handelt es sich bei rekurrenten Verbindungen um Verbindungen, die einem neuronalen Netzwerk die Verwendung von Ausgaben vom vorhergehenden Bildrahmen als Eingaben für den aktuellen Bildrahmen ermöglichen. Die hier offenbarten rekurrenten Verbindungen können neuronalen Netzwerken das Aufrechterhalten von Statusinformationen effektiv gestatten. Wenn zum Beispiel ein neuronales Netzwerk ein Auto im aktuellen Bildrahmen erkennt, könnte dies den aktuellen Status des Netzwerks beeinflussen und es wahrscheinlicher machen, ein Auto bei dieser Position oder einer nahegelegenen Position in dem nächsten Rahmen zu erkennen. Rekurrente Schichten können zum Befassen mit dynamischen Objektpositionen vor den finalen Objektklassifizierungs- und lokalisierungsschichten verwendet werden. Sie könnten ebenfalls während der finalen Objektklassifizierungsstufe verwendet werden. Diese rekurrenten Schichten können Eingaben von Merkmalsabbildungen empfangen, die aus einer oder mehreren Schichten des Faltungsnetzwerks extrahiert wurden.
-
Während Merkmalsextraktionstechniken variierende Ausmaße zeitlicher Informationen enthalten haben können, haben sich Regressions- und Klassifizierungsmodelle, die zum Befassen mit und/oder Klassifizieren von Objekten verwendet werden, auf statische Bilder fokussiert, wobei wertvolle zeitliche Informationen ignoriert wurden. Der Anmelder schlägt eine Lösung zum Nutzen rekurrenter Verbindungen in den Regressions- und Klassifizierungsmodellen vor, die Objekterkennungseinrichtungen die Integration von Schätzungen der Objektpositionen/-arten aus den vorhergehenden Zeitrahmen ermöglicht, wodurch die Vorhersagen verbessert werden. Die rekurrenten Verbindungen können Vorteile der Objektverfolgung auf einer niedrigen Stufe und mit Vertrauensmetriken bereitstellen, die durch die neuronalen Modelle implizit erlernt werden. In einer Ausführungsform können die hier offenbarten Techniken für Ende-zu-Ende-Objekterkennungsalgorithmen verwendet werden, die auf derartige Aufgaben wie Auto-, Fahrrad- und Fußgängererkennung angewendet werden sollen. Zusätzlich dazu können spezifische Bild- oder Sensordatenmerkmale unter Verwendung dieser Verfahren verwendet werden, um die Merkmalserkennung zu verbessern. Merkmale können Muster in Daten, wie etwa Bilddaten, Tiefenabbildungsdaten, Punktwolkendaten oder sonstigen Daten, beinhalten. Zum Beispiel kann ein Merkmal in Bilddaten eine Kante (Position mit hohem Kontrast) oder Linien mit spezifischen Krümmungen, Mustern oder Formen beinhalten, die bei der Objekterkennung relevant sein können.
-
Die vorliegende Offenbarung schlägt ebenfalls die Verwendung mehrerer Folgen von Merkmalsabbildungsextraktionen für von mehreren Sensorarten erreichten Informationen vor, wie etwa RGB-Zuordnungen (Bilder) und Tiefenabbildungen. Rekurrente Verbindungen können während einer Fusion der Merkmalsabbildungen oder während einer Objekterkennung verwendet werden. Tiefenabbildungen können von Sensoren, wie etwa LIDAR, Radar oder Kameras (wie etwa Infrarottiefenkameras), extrahiert werden. Im Fall von Sensoren, die Punktwolken zurückgeben (z. B. Zeit von Flugsensoren wie Radar oder LIDAR), kann eine zusätzliche Verarbeitung durchgeführt werden, um die Punktwolke in eine Tiefenabbildung umzuwandeln. Zum Beispiel kann ein modifizierter bilateraler Filter verwendet werden, um die Punktwolke zu einer Tiefenabbildung zu glätten, während Kanten beibehalten werden. Nachdem die Tiefenabbildung mit dem RGB-Kamerarahmen erfasst wurde, kann die Tiefenabbildung anschließend zusätzlich in Merkmale, wie etwa horizontale Ungleichheit, Höhe über dem Boden und den Winkel der lokalen Pixelflächennormalen, zerlegt werden.
-
Die Tiefenabbildung kann in ein tiefes vollständiges Faltungsnetzwerk eingespeist werden, um eine Merkmalsabbildung zu extrahieren. Dies kann parallel zu dem entsprechenden RGB-Bildrahmen durchgeführt werden. Eine Bildzuordnung kann eine Zuordnung in Hinblick darauf beinhalten, welche Merkmale an welchen Positionen auf einem Bild- oder einem anderen Sensorrahmen zu finden sind. Zum Beispiel kann eine Merkmalsabbildung Bereiche angeben, in denen sich Merkmale befinden, die Fußgängern entsprechen. Die Merkmalsabbildungen aus den Tiefen- und RGB-Merkmalsabbildungen werden anschließend verkettet und durch weitere Faltungsschichten in dem Netzwerk weitergesendet. Die verkettete Merkmalsabbildung kann Merkmale beinhalten, die sowohl aus einem Bild (z. B. einem RGB-Bild) als auch aus einer Tiefenabbildung abgeleitet werden. Zum Beispiel kann eine Merkmalsabbildung alle Fußgänger oder andere Merkmale beinhalten, die basierend auf einer Analyse jeglicher für die gleiche Zeitspanne verfügbarer Sensorrahmen erkannt wurden. Zum Beispiel können eine LIDAR-Punktwolke und ein LIDAR-Bildrahmen innerhalb der gleichen Zeitspanne aufgenommen werden und die erkannten Merkmale können in einer einzelnen Merkmalsabbildung kombiniert werden.
-
Rekurrente Schichten können zum Befassen mit dynamischen Objektpositionen vor den finalen Objektklassifizierungs- und lokalisierungsschichten verwendet werden. Sie könnten ebenfalls während der finalen Objektklassifizierungsstufe verwendet werden. Diese rekurrenten Schichten empfangen Eingaben von Merkmalsabbildungen, die aus den kombinierten Tiefen- und RGB-Merkmalsabbildungen aus einer oder mehreren Schichten des Faltungsnetzwerks extrahiert wurden. Dies ermöglicht die Extraktion von raumzeitlichen Beziehungen aus Fusionen der Farb- und Tiefenfolgen.
-
Während Merkmalsextraktionstechniken variierende Ausmaße zeitlicher Informationen beinhalteten, haben sich Regressions- und Klassifizierungsmodelle, die zum Befassen mit und/oder Klassifizieren von Objekten verwendet werden, auf statische Bilder fokussiert, wobei wertvolle zeitliche Informationen ignoriert wurden. Der Anmelder schlägt eine Lösung zum Nutzen rekurrenter Verbindungen in den Regressions- und Klassifizierungsmodellen vor, die Objekterkennungseinrichtungen die Integration von Schätzungen der Objektpositionen/-arten aus den vorhergehenden Zeitrahmen ermöglicht, wodurch die Vorhersagen verbessert werden. Dies kann ähnliche oder verbesserte Vorteile gegenüber der Objektverfolgung bereitstellen, jedoch auf einer niedrigeren Stufe und mit Vertrauensmetriken, die durch die neuronalen Modelle implizit erlernt werden. Darüber hinaus kann die Verwendung von verketteten Merkmalsabbildungen eine Objekterkennung im Falle von schlechter Qualität für eine Art von Sensordaten wesentlich verbessern.
-
Weitere Ausführungsformen und Beispiele werden in Bezug auf die nachstehenden Figuren erörtert.
-
Nun wird auf die Figuren Bezug genommen, wobei 1 ein beispielhaftes Fahrzeugsteuersystem 100 veranschaulicht, das zur automatischen Erkennung, Klassifizierung und/oder Lokalisierung von Objekten verwendet werden kann. Das automatisierte Fahr-/Assistenzsystem 102 kann verwendet werden, um den Betrieb eines Fahrzeugs zu automatisieren oder zu steuern oder einen menschlichen Fahrer zu unterstützen. Das automatisierte Fahr-/Assistenzsystem 102 kann zum Beispiel eines oder mehrere von Bremsung, Lenkung, Beschleunigung, Licht, Alarmen, Fahrerbenachrichtigungen, Radio und/oder beliebigen weiteren Hilfssystemen des Fahrzeugs steuern. In einem anderen Beispiel ist das automatisierte Fahr-/Assistenzsystem 102 unter Umständen nicht in der Lage, jegliche Steuerung des Fahrens (z B. der Lenkung, Beschleunigung oder Bremsung) bereitzustellen, kann jedoch Benachrichtigungen und Warnmeldungen bereitstellen, um einen menschlichen Fahrer darin zu unterstützen, sicher zu fahren. Das automatisierte Fahr-/Assistenzsystem 102 kann ein neuronales Netzwerk oder ein anderes Modell oder einen anderen Algorithmus zum Erkennen oder Lokalisieren von Objekten basierend auf Wahrnehmungsdaten verwenden, die durch einen oder mehrere Sensoren gesammelt wurden.
-
Das Fahrzeugsteuersystem 100 beinhaltet ebenfalls ein/e oder mehrere Sensorsysteme/-vorrichtungen zum Erkennen eines Vorhandenseins von Objekten in der Nähe oder innerhalb eines Sensorbereichs eines Stammfahrzeugs (z. B. eines Fahrzeugs, welches das Fahrzeugsteuersystem 100 beinhaltet). Das Fahrzeugsteuersystem 100 kann zum Beispiel ein oder mehrere Radarsysteme 106, ein oder mehrere LIDAR-Systeme 108, ein oder mehrere Kamerasysteme 110, ein globales Positionsbestimmungssystem (GPS) 112 und/oder ein oder mehrere Ultraschallsysteme 114 beinhalten. Das Fahrzeugsteuersystem 100 kann einen Datenspeicher 116 zum Speichern relevanter oder nützlicher Daten zur Navigation und Sicherheit beinhalten, wie etwa Kartendaten, Fahrverlauf oder sonstige Daten. Das Fahrzeugsteuersystem 100 kann zudem einen Sendeempfänger 118 zur drahtlosen Kommunikation mit einem mobilen oder drahtlosen Netzwerk, anderen Fahrzeugen, Infrastruktur oder einem beliebigen anderen Kommunikationssystem beinhalten.
-
Das Fahrzeugsteuersystem 100 kann Fahrzeugsteuerungsaktoren 120 beinhalten, um verschiedene Aspekte des Fahrens des Fahrzeugs zu steuern, wie beispielsweise Elektromotoren, Schalter oder andere Aktuatoren, um die Bremsung, Beschleunigung, Lenkung oder dergleichen zu steuern. Das Fahrzeugsteuersystem 100 kann außerdem eine(n) oder mehrere Anzeigen 122, Lautsprecher 124 oder andere Vorrichtungen beinhalten, sodass einem menschlichen Fahrer oder Fahrgast Benachrichtigungen bereitgestellt werden können. Eine Anzeige 122 kann eine Frontanzeige, eine Anzeige oder eine Angabe am Armaturenbrett, einen Bildschirm oder eine beliebige andere visuelle Angabe beinhalten, die von einem Fahrer oder einem Fahrgast eines Fahrzeugs gesehen werden kann. Die Lautsprecher 124 können einen oder mehrere Lautsprecher eines Soundsystems eines Fahrzeugs beinhalten oder können einen für die Fahrerbenachrichtigung vorgesehenen Lautsprecher beinhalten.
-
Es versteht sich, dass die Ausführungsform aus 1 lediglich als Beispiel dient. Andere Ausführungsformen können weniger oder zusätzliche Komponenten beinhalten, ohne vom Schutzumfang der Offenbarung abzuweichen. Zusätzlich können veranschaulichte Komponenten ohne Beschränkung kombiniert oder in anderen Komponenten enthalten sein.
-
In einer Ausführungsform ist das automatisierte Fahr-/Assistenzsystem 102 dazu konfiguriert, das Fahren oder Navigieren eines Stammfahrzeugs zu steuern. Beispielsweise kann das automatisierte Fahr-/Assistenzsystem 102 die Fahrzeugsteuerungsaktoren 120 steuern, um eine Strecke auf einer Straße, einem Parkplatz, einer Einfahrt oder an einem anderen Ort zu fahren. Beispielsweise kann das automatisierte Fahr-/Assistenzsystem 102 eine Strecke basierend auf durch eine beliebige der Komponenten 106 - 118 bereitgestellten Informationen oder Wahrnehmungsdaten bestimmen. Die Sensorsysteme/-vorrichtungen 106- 110 und 114 können verwendet werden, um Echtzeitsensordaten zu erlangen, sodass das automatisierte Fahr-/Assistenzsystem 102 in Echtzeit einen Fahrer unterstützen oder ein Fahrzeug führen kann. Das automatisierte Fahr-/Assistenzsystem 102 kann einen Algorithmus umsetzen oder ein Modell verwenden, wie etwa ein tiefes neuronales Netzwerk, um die Sensordaten zum Erkennen, Identifizieren und/oder Lokalisieren eines oder mehrerer Objekte verarbeiten. Um ein Modell oder einen Algorithmus zu trainieren oder zu testen, werden möglicherweise große Mengen an Sensordaten und Anmerkungen zu den Sensordaten benötigt.
-
Das automatisierte Fahr-/Assistenzsystem 102 kann eine Erkennungskomponente 104 zum Erkennen von Objekten, Bildmerkmalen oder anderen Merkmalen von Objekten in Sensordaten beinhalten. In einer Ausführungsform erzeugt die Erkennungskomponente 104 eine verkettete Merkmalsabbildung basierend auf mehreren Arten von Sensordatenfolgen. Zum Beispiel kann die Erkennungskomponente 104 eine Merkmalsabbildung basierend auf einem Bild und eine Merkmalsabbildung basierend auf einer Tiefenabbildung erzeugen, die aus Radar-, LIDAR, Infrarotkamera- oder sonstigen Sensordaten abgeleitet wurde. Es kann eine verkettete Merkmalsabbildung erzeugt werden, die alle Merkmale aus den unterschiedlichen Sensorabbildungen beinhaltet. Wenn ein Sensor keine guten Daten bereitstellt, kann die verkettete Merkmalsabbildung somit unter Verwendung von Daten von einem anderen Sensor dennoch alle Merkmale oder erkannten Objekte aufweisen.
-
In einer Ausführungsform kann die Erkennungskomponente 104 rekurrente Verbindungen in einem Klassifizierungs- oder Regressionsmodell zum Erkennen von Objektmerkmalen oder Objekten verwenden. Zum Beispiel kann die Erkennungskomponente 104 ein tiefes neuronales Faltungsnetzwerk beinhalten oder nutzen, das über eine Klassifizierungsschicht eine Angabe dafür ausgibt, ob ein Objekt oder Merkmal vorhanden ist. Diese Ausgabe kann dann vorwärts an ein anschließendes Bild oder einen anschließenden Sensorrahmen eingespeist werden. Das Einspeisen der Ausgabe eines Sensorrahmens an den nächsten kann Vorteile erlauben, die der Objektverfolgung ähnlich sind, jedoch auf einer viel niedrigeren Ebene, welche einem System das Profitieren von der Leistung neuronaler Netzwerke gestattet, wie etwa Trainieren und maschinelles Lernen.
-
2 ist eine schematische Darstellung, die ein tiefes neuronales Netzwerk 200 mit einer rekurrenten Verbindung veranschaulicht. Tiefe neuronale Netzwerke sind vorwärtsgekoppelte Computerdiagramme mit Eingabeknoten (wie etwa den Eingabeknoten 202), einer oder mehreren verborgenen Schichten (wie etwa den verborgenen Schichten 204, 206 und 208) und Ausgabeknoten (wie etwa den Ausgabeknoten 210). Zur Klassifizierung von Inhalten oder Informationen über ein Bild werden den Eingabeknoten Pixelwerte des Eingabebildes zugewiesen und anschließend durch die verborgenen Schichten 204, 206, 208 des Netzwerks eingespeist, wobei sie eine Reihe von nicht linearen Transformationen durchlaufen. Am Ende der Berechnung ergeben die Ausgabeknoten 210 Werte, welche der durch das neuronale Netzwerk abgeleiteten Klasse entsprechen. Ein ähnlicher Vorgang kann zur Klassifizierung oder Merkmalserkennung von Pixel-Cloud-Daten oder Tiefenabbildungen verwendet werden, wie etwa Daten, die von Bereichssensoren wie LIDAR-, Radar-, Ultraschall- oder anderen Sensoren empfangen werden. Die Anzahl an Eingabeknoten 202, verborgenen Schichten 204 - 208 und Ausgabeknoten 210 ist nur veranschaulichend. Zum Beispiel können größere Netzwerke einen Eingabeknoten 202 für jedes Pixel eines Bildes beinhalten und können damit hunderte, tausende oder eine andere Anzahl an Eingabeknoten aufweisen.
-
Gemäß einer Ausführungsform kann ein tiefes neuronales Netzwerk 200 aus 2 zum Klassifizieren des/der Inhalts/Inhalte eines Bildes in vier unterschiedliche Klassen verwendet werden: eine erste Klasse, eine zweite Klasse, eine dritte Klasse und eine vierte Klasse. Gemäß der vorliegenden Offenbarung kann ein ähnliches oder unterschiedlich großes neuronales Netzwerk in der Lage sein, einen Wert auszugeben, der angibt, ob eine spezifischer Objektart in dem Bild (oder einem Teilbereich des Bildes, das in das Netzwerk 200 eingespeist wurde) vorhanden ist. Zum Beispiel kann die erste Klasse dem entsprechen, ob ein Fahrzeug vorhanden ist, die zweite Klasse kann dem entsprechen, ob ein Fahrrad vorhanden ist, die dritte Klasse kann dem entsprechen, ob ein Fußgänger vorhanden ist, und die vierte Klasse kann dem entsprechen, ob ein Bordstein oder eine Barriere vorhanden ist. Eine einer Klasse entsprechende Ausgabe kann hoch (z. B. 0,5 oder mehr) sein, wenn in der entsprechenden Klasse ein Objekt erkannt wird, und niedrig (z. B. weniger als 0,5) sein, wenn kein Objekt der Klasse erkannt wird. Dies ist nur veranschaulichend, da ein neuronales Netzwerk zum Klassifizieren von Objekten in einem Bild Eingaben beinhalten kann, um hunderte oder tausende von Pixeln unterzubringen, und möglicherweise eine größere Anzahl an unterschiedlichen Objektarten erkennen muss. Somit kann ein neuronales Netzwerk zum Erkennen oder Klassifizieren von Objekten in einem Kamerabild oder einem anderen Sensorrahmen hunderte oder tausende Knoten bei einer Eingabeschicht und/oder mehr (oder weniger als) vier Ausgabeknoten erfordern.
-
Zum Beispiel kann das Einspeisen eines rohen Sensorrahmens (z. B. ein Bild, ein LIDAR-Rahmen, Radarrahmen oder dergleichen, aufgenommen durch einen Sensor eines Fahrzeugsteuersystems 100) in das Netzwerk 200 das Vorhandensein eines Fußgängers in diesem Abschnitt angeben. Daher kann das neuronale Netzwerk 100 ein Rechensystem zum automatischen Ableiten befähigen, dass ein Fußgänger bei einer spezifischen Position innerhalb eines Bildes oder eines Sensorrahmens und in Bezug auf das Fahrzeug vorhanden ist. Ähnliche Techniken oder Prinzipien können zum Ableiten von Informationen über oder zum Erfassen von Fahrzeugen, Verkehrszeichen, Fahrrädern, Barrieren und/oder dergleichen verwendet werden.
-
Ein neuronales Netzwerk (mit oder ohne rekurrente Verbindungen) kann ebenfalls verwendet werden, um Merkmale innerhalb eines Sensorrahmens oder innerhalb von Teilbereichen eines Sensorrahmens zu identifizieren oder zu erkennen.
-
Das neuronale Netzwerk 200 beinhaltet ebenfalls eine Vielzahl von rekurrenten Verbindungen zwischen den Ausgabeknoten 210 und den Eingabeknoten 202. Werte bei den Ausgabeknoten 210 können durch Verzögerungen 212 zurück zu einem oder mehreren Eingabeknoten eingespeist werden. Die Verzögerungen 212 können die Ausgabewerte zur Eingabe während eines späteren Sensorrahmens verzögern/speichern. Zum Beispiel kann eine Teilmenge der Eingabeknoten 202 die Ausgabe von einem vorhergehenden Sensorrahmen (wie etwa einem Bildrahmen) empfangen, während die verbleibenden Eingabeknoten 202 Pixel- oder Punktwerte für einen aktuellen Sensorrahmen empfangen können. Somit kann die Ausgabe der vorhergehenden Rahmen dahingehend beeinflussen, ob ein spezifisches Objekt erneut erkannt wird. Wenn zum Beispiel ein Fußgänger in dem Bild erkannt wird, kann die Ausgabe, welche das Vorhandensein des Fußgängers angibt, in einen Eingabeknoten 202 eingespeist werden, sodass es wahrscheinlicher ist, dass das Netzwerk den Fußgänger in dem folgenden Rahmen erkennt. Dies kann in einem Video nützlich sein, bei welchem eine Reihe von Bilder aufgenommen wird, und ein Fahrzeug Hindernisse erkennen und umfahren muss. Zusätzlich dazu kann ein beliebiger Sensor, der eine Reihe von Sensorrahmen bereitstellt (wie etwa LIDAR oder RADAR), ebenfalls von der rekurrenten Verbindung profitieren.
-
Obwohl das neuronale Netzwerk 200 die rekurrente Verbindung der Darstellung nach zwischen den Ausgabeknoten 210 und den Eingabeknoten 202 aufweist, kann die rekurrente Verbindung in unterschiedlichen Ausführungsformen zwischen einem beliebigen Knoten oder einer beliebigen Schicht auftreten. Zum Beispiel kann eine rekurrente Verbindung die Werte der Ausgabeknoten 210 in Knoten in einer verborgenen Schicht (z. B. 204, 206 und 208) oder als Eingabe in die Ausgabeknoten 210 einspeisen. Die rekurrenten Verbindungen können die Erkennung von Objekten oder Merkmalen aus einem vorhergehenden Sensorrahmen gestatten, um die Erkennung von Objekten oder Merkmalen für einen späteren Sensorrahmen zu beeinflussen.
-
Damit ein tiefes neuronales Netzwerk in der Lage ist, zwischen beliebigen gewünschten Klassen zu unterscheiden, muss das neuronale Netzwerk basierend auf Beispielen trainiert werden. Sobald die Bilder mit Markierungen (Trainingsdaten) erlangt wurden, kann das Netzwerk trainiert werden. Ein beispielhafter Algorithmus zum Trainieren beinhaltet den Rückpropagierungsalgorithmus, der markierte Sensorrahmen zum Trainieren eines neuronalen Netzwerks verwenden kann. Das Training kann das neuronale Netzwerk 200 dahingehend trainieren, wie Objekte oder Merkmale nicht nur basierend auf Sensordaten, sondern auch basierend auf Ausgaben oder Informationen, die aus vorhergehenden Sätzen von Pixel-/Rahmendaten bestimmt werden, zu erkennen sind. Sobald das neuronale Netzwerk 200 trainiert wurde, kann es zur Verwendung in einer Betriebsumgebung bereit sein.
-
3 veranschaulicht ein Bild 300 einer perspektivischen Ansicht, die durch eine Kamera eines Fahrzeugs in einer Fahrumgebung aufgenommen worden sein kann. Zum Beispiel veranschaulicht das Bild 300 eine Szene einer Straße vor einem Fahrzeug, die aufgenommen worden sein kann, während sich ein Fahrzeug die Straße entlang bewegt. Das Bild 300 beinhaltet eine Vielzahl von relevanten Objekten auf oder in der Nähe der Fahrbahn. In einer Ausführungsform ist das Bild 300 zu groß, um bei voller Auflösung durch ein verfügbares neuronales Netzwerk verarbeitet zu werden. Somit kann jeweils ein Teilbereich des Bildes verarbeitet werden. Zum Beispiel stellt das Fenster 302 einen Abschnitt des Bildes 302 dar, der zur Objekt- oder Merkmalserkennung an ein neuronales Netzwerk eingespeist werden kann. Das Fenster 302 kann zu unterschiedlichen Positionen geschoben werden, um das gesamte Bild 302 effektiv zu verarbeiten. Zum Beispiel kann das Fenster 302 in einer Ecke beginnen und dann anschließend von Punkt zu Punkt bewegt werden, um Merkmale zu erkennen.
-
In einer Ausführungsform können unterschiedliche Größen von Schiebefenstern verwendet werden, um Merkmale oder Objekte bei unterschiedlichen Auflösungen aufzunehmen. Zum Beispiel können Merkmale oder Objekte, die sich näher bei einer Kamera befinden, unter Verwendung eines größeren Fensters genauer erkannt werden, während Merkmale oder Objekte, die weiter von der Kamera entfernt sind, unter Verwendung eines kleineren Fensters genauer erkannt werden können. Die Auflösung größerer Fenster kann reduziert werden, um zu der Anzahl an Eingabeknoten eines neuronalen Netzwerks zu passen. Zum Beispiel kann das Bild 300 abwärtsgetastet werden, um das Vollbild 300 oder einen größeren Abschnitt oder ein Fenster 302 des Bildes 300 mit anderem Maßstab zu verarbeiten.
-
In einer Ausführungsform können Ausgaben eines neuronalen Netzwerks für jede Position des Fensters 302 für dieselbe oder eine nahegelegene Position des Fensters 302 auf einem nachfolgenden Bild vorwärts eingespeist werden. Wenn zum Beispiel ein Fußgänger durch ein neuronales Netzwerk bei einer Position in einem ersten Bild erkannt wird, kann eine Angabe, dass ein Fußgänger bei dieser Position erkannt wurde, während der Fußgängererkennung bei dieser Position für ein zweites, späteres Bild unter Verwendung des neuronalen Netzwerks vorwärts eingespeist werden. Gleichermaßen können Merkmale, die an einer spezifischen Position in einem Bild oder einem anderen Sensorrahmen erkannt wurden, vorwärts eingespeist werden. Somit können Objekte oder Merkmale in einer Reihe von Bildern bei der Schicht des neuronalen Netzwerks oder des Modells konsistent erkannt oder verfolgt werden.
-
In einer Ausführungsform kann nach der Verarbeitung oder als deren Folge unter Verwendung eines Schiebefensters eine Merkmalsabbildung erzeugt werden, die angibt, welche Merkmale oder Objekte bei welchen Positionen lokalisiert worden sind. Die Merkmalsabbildung kann Angaben von Merkmalen eines Bildes einer niedrigen Ebene (oder eines anderen Sensorrahmens) beinhalten, die beim Erkennen von Objekten oder beim Klassifizieren von Objekten relevant sein können. Die Merkmale können zum Beispiel Barrieren, Kurven, Ecken oder andere Merkmale beinhalten, welche die Objektart bei einer Position angeben können (wie etwa ein Fahrzeug, das Gesicht eines Fußgängers oder dergleichen). Die Merkmalsabbildungen können anschließend zur Objekterkennung oder -klassifizierung verwendet werden. Zum Beispiel kann eine Merkmalsabbildung erzeugt werden und anschließend kann/können die Merkmalsabbildung und/oder der Bereich des Bildes verarbeitet werden, um eine Objektart zu identifizieren und/oder eine Position des Objekts zwischen Rahmen von Sensordaten zu verfolgen. Die Merkmalsabbildung kann angeben, wo in dem Bild 300 bestimmte Arten von Merkmalen erkannt werden. In einer Ausführungsform kann eine Vielzahl von unterschiedlichen rekurrenten neuronalen Netzwerken zum Erzeugen jeder Merkmalsabbildung verwendet werden. Zum Beispiel kann eine Merkmalsabbildung zur Fußgängererkennung unter Verwendung eines neuronalen Netzwerks erzeugt werden, welches für die Fußgängererkennung trainiert ist, während eine Merkmalsabbildung zur Fahrzeugerkennung unter Verwendung eines neuronalen Netzwerks erzeugt werden kann, welches für die Fahrzeugerkennung trainiert ist. Somit kann eine Vielzahl von unterschiedlichen Merkmalsabbildungen für das in 3 gezeigte einzelne Bild 300 erzeugt werden. Wie vorstehend beschrieben, können die erkannten Merkmale zwischen Rahmen für die gleichen Teilbereiche vorwärts eingespeist werden, um die Merkmalsabbildung und/oder die Objekterkennung zu verbessern.
-
Obwohl 3 ein Bild zeigt, kann die Verarbeitung an jeder Art von Sensordaten oder Rahmen von Daten durchgeführt werden. Zum Beispiel kann eine Tiefenabbildung auf ähnliche Weise unter Verwendung von Fenstern, neuronalen Netzwerken und dergleichen zum Erkennen von Merkmalen oder Objekten verarbeitet werden. In einer Ausführungsform können Rahmen unterschiedlicher Arten von Sensordaten jeweils verarbeitet werden, um eine oder mehrere Merkmalsabbildungen zu erzeugen, die anschließend zu einer verketteten Merkmalsabbildung kombiniert werden können. Nach der Verkettung der Merkmalsabbildung können die Merkmale alle Merkmale beinhalten, die durch eine(n) beliebige(n) der verfügbaren Sensoren oder Datenquellen erkannt wurden. Selbst wenn keine Merkmale basierend auf Daten von einem der Sensoren erkannt werden, können somit die Merkmale, die basierend auf Daten von den verbleibenden Sensoren erkannt wurden, immer noch genug Informationen für eine genaue und verlässliche Merkmals- oder Objekterkennung bereitstellen. Zum Beispiel können Fahrzeuge oder Objekte in der Dunkelheit oder bei grellem Sonnenlicht basierend auf den Merkmalen aus LIDAR-, Radar- oder anderen Sensorquellen weiterhin erkannt werden. Zusätzlich dazu können die rekurrenten Verbindungen zwischen Rahmen eine Erkennung von Objekten oder Merkmalen selbst unter sehr schlechten Bedingungen erlauben, wenn ein vorhergehender Rahmen die Objekte oder Merkmale aufgespürt hat.
-
4 ist ein schematisches Blockdiagramm, das die Integration von zeitlichen Informationen zwischen Rahmen von Sensordaten während der Objekterkennung veranschaulicht. Eine Vielzahl von Verarbeitungsstufen, einschließlich einer ersten Stufe 402, einer zweiten Stufe 404 und einer dritten Stufe 406, zum Verarbeiten unterschiedlicher Bilder, einschließlich Bild 0, Bild 1 und Bild 2, ist gezeigt. Jede Stufe 402, 404, 406 kann einer anderen Zeitspanne zum Verarbeiten eines anderen Satzes von Sensordaten entsprechen. Zum Beispiel können die Stufen einer Verarbeitung in Echtzeit während der Erfassung von Sensordaten entsprechen. Die erste Stufe 402 zeigt die Eingabe von Bild 0 für die Erzeugung einer oder mehrerer Merkmalsabbildungen 408. Die Merkmalsabbildungen 408 können unter Verwendung eines oder mehrerer neuronaler Netzwerke erzeugt werden. Für jeden Teilbereich 410 (wie etwa eine Position des Fensters 302 aus 3) wird eine Objektvorhersage erzeugt. Sowohl die Erzeugung der Merkmalsabbildung als auch die Objektvorhersage können unter Verwendung eines oder mehrerer neuronaler Netzwerke durchgeführt werden.
-
Die Objektvorhersagen können eine Objektart und/oder eine Objektposition angeben. Zum Beispiel kann ein Wert von „0“ für die Objektvorhersage angeben, dass kein Objekt vorhanden ist, eine „1“ kann angeben, dass das Objekt ein Auto ist, eine „2“ kann angeben, dass das Objekt ein Fußgänger ist, und so weiter. Ein Positionswert kann ebenfalls bereitgestellt werden, der angibt, wo in dem Teilbereich 410 das Objekt angeordnet ist. Zum Beispiel kann in dem Status eine zweite Zahl enthalten sein, die eine Position in der Mitte, rechts des, über oder unter dem Teilbereich 410 angibt. Der Status des rekurrenten neuronalen Netzwerks (RNN) von 0-0 ist die resultierende Vorhersage für Objekt 0 bei dem Teilbereich 410, der RNN-Status von 0-1 ist die resultierende Vorhersage für Objekt 1 bei dem Teilbereich 410 und der RNN-Status von 0-2 ist die resultierende Vorhersage für Objekt 2 bei dem Teilbereich 410. Somit kann eine Vielzahl von Objekten und/oder Objektvorhersagen für jeden Teilbereich 410 erkannt oder erzeugt werden.
-
Die Statusinformationen, einschließlich RNN-Status 0-0, RNN-Status 0-1 und RNN-Status 0-2 von Stufe 402, werden unter Verwendung einer rekurrenten Verbindung 420 zur Verwendung während der Verarbeitung des nächsten Bildes, Bild 1, während Stufe 404 vorwärts eingespeist. Zum Beispiel können die Objektvorhersagen und die assoziierten Werte entlang der rekurrenten Verbindung 420 als Eingabe für einen oder mehrere Knoten desselben oder mehrerer neuronaler Netzwerke während der Verarbeitung von Bild 1 und/oder dessen Merkmalsabbildung 412 in ein neuronales Netzwerk eingespeist werden. Während Stufe 404 werden Objektvorhersagen nicht nur basierend auf Bild 1 und den Merkmalsabbildungen 412, sondern auch basierend auf dem RNN-Status 0-0, RNN-Status 0-1 und RNN-Status 0-2 erzeugt. Das Ergebnis der Vorhersage führt zum RNN-Status 1-0, RNN-Status 1-1 und RNN-Status 1-2 für den Teilbereich 414. Die rekurrente Verbindung 420 kann Statusinformationen für denselben Teilbereich 410 vorwärts einspeisen. Somit können nur Statusinformationen für denselben Teilbereich aus dem vorhergehenden Bild zum Bestimmen einer Objektvorhersage oder einer Merkmalserkennung für ein aktuelles Bild verwendet werden. In einer Ausführungsform werden in den Merkmalsabbildungen 408 erkannte Merkmale ebenfalls entlang der rekurrenten Verbindung 420 vorwärts eingespeist. Somit können neuronale Netzwerke zum Erzeugen der Merkmalsabbildungen sowie der Objektvorhersagen verwendet werden.
-
Während Stufe 406 werden Objektvorhersagen nicht nur basierend auf Bild 2 und den Merkmalsabbildungen 416, sondern auch basierend auf den Statusinformationen, einschließlich des RNN-Status 1-0, RNN-Status 1-1 und RNN-Status 1-2, erzeugt, die unter Verwendung einer rekurrenten Verbindung 422 zur Verwendung während der Verarbeitung von Bild 2 für den Teilbereich 418 vorwärts eingespeist werden. Objektvorhersagen für den RNN-Status 2-0, RNN-Status 2-1 und RNN-Status 2-2 werden basierend auf Bild 2 sowie den Statusinformationen, einschließlich RNN-Status 1-0, RNN-Status 1-1 und RNN-Status 1-2 aus Bild 1, bestimmt. Zusätzlich dazu können die Merkmalsabbildungen 416 basierend auf den Merkmalsabbildungen (oder Positionen von erkannten Merkmalen) für die vorhergehende, zweite Stufe 404 erzeugt werden.
-
In einer Ausführungsform läuft die Verarbeitung, die in jeder Stufe 402, 404, 406 abläuft, in Echtzeit auf einer Folge von ankommenden Sensordaten ab. Bei der Verarbeitung eines Videos kann zum Beispiel jeder Rahmen des Videos verarbeitet werden und die entsprechenden Objektvorhersagen, Merkmalserkennungen und/oder Merkmalsabbildungen können gespeichert/in die Modelle oder neuronalen Netzwerke eingegeben werden, wenn der nächste Rahmen des Videos empfangen wird. Die rekurrenten Verbindungen 420, 422 gestatten das Übertragen der Objektvorhersagen von einem früheren Rahmen zu einem späteren Rahmen. Somit können zeitliche Informationen auf der Ebene des Modells oder des neuronalen Netzwerks integriert werden, welche gestatten, dass das neuronale Netzwerk zur Verarbeitung nicht nur von Informationen für einen aktuellen Sensorrahmen, sondern auch für vorhergehende Sensorrahmen trainiert wird und diese Verarbeitung durchführt. Dies unterscheidet sich von Ausführungsformen, bei denen Merkmale für jeden Rahmen neu extrahiert und dann verworfen werden. In einer Ausführungsform wird ein einzelnes neuronales Netzwerk oder ein Satz von neuronalen Netzwerken während jeder Stufe derart verwendet, dass die rekurrenten Verbindungen 420, 422 Ausgaben von den vorhergehenden Rahmen als Eingaben in einen aktuellen Rahmen einfach rückführen.
-
5 ist eine schematische Darstellung eines Ablaufdiagramms, das ein Verfahren 500 zur Objekterkennung veranschaulicht. Das Verfahren 500 kann durch eine Erkennungskomponente oder ein Fahrzeugsteuersystem, wie etwa die Erkennungskomponente 104 oder das Fahrzeugsteuersystem 100 aus 1, durchgeführt werden.
-
Das Verfahren 500 beginnt und eine Erkennungskomponente 104 bestimmt bei 502 unter Verwendung eines oder mehrerer neuronaler Netzwerke eine Ausgabe für einen ersten Sensorrahmen, der ein Vorhandensein eines Objekts oder Merkmals angibt. Zum Beispiel kann die Erkennungskomponente 104 bei 502 ein beliebiges der Objektvorhersage oder der Status (wie etwa RNN-Status 0-0, RNN-Status 0-1, RNN-Status 0-2, RNN-Status 1-0, RNN-Status 1-1 oder RNN-Status 1-2) aus 4 bestimmen. Die Erkennungskomponente 102 kann bei 502 die Status basierend auf Daten in einem Sensorrahmen in einer Reihe von Sensorrahmen bestimmen. Eine Sensorkomponente (die ein Radar-System 106, ein LIDAR-System 108, ein Kamerasystem 110 oder einen anderen Sensor beinhalten kann) kann Sensorrahmen aufnehmen oder erlangen, die Bilddaten, LIDAR-Daten, Radar-Daten oder Infrarotbilddaten beinhalten. Eine Erkennungskomponente 104 speist bei 504 die Ausgabe (die eine Angabe von erkannten Merkmalen oder Objekten beinhalten kann) für den ersten Sensorrahmen als eine Eingabe zur Verarbeitung eines zweiten Sensorrahmens vorwärts ein. Zum Beispiel kann die Erkennungskomponente 104 eine rekurrente Verbindung in einem neuronalen Netzwerk beinhalten oder verwenden. Die Erkennungskomponente 104 bestimmt bei 506 eine Ausgabe für den zweiten Sensorrahmen, der ein Vorhandensein eines Objekts oder Merkmals angibt, basierend auf der Ausgabe für den ersten Sensorrahmen. Zum Beispiel kann die Erkennungskomponente 104 ein beliebiges der Objektvorhersage oder der Status (wie etwa RNN-Status 1-0, RNN-Status 1-1, RNN-Status 1-2, RNN-Status 2-0, RNN-Status 2-1 oder RNN-Status 2-2) aus 4 basierend auf den Status oder einer vorhergehenden Stufe bestimmen.
-
Das Verfahren 500 kann das Bereitstellen einer Ausgabe oder von Vorhersagen an ein anderes System zum Treffen einer Entscheidung beinhalten. Zum Beispiel kann das automatisierte Fahr-/Assistenzsystem 102 aus 1 ein Fahrmanöver basierend auf einem erkannten Objekt oder Merkmal bestimmen. Beispielhafte Manöver beinhalten Zusammenstoßvermeidungsmanöver oder andere Fahrmanöver zum sicheren Führen des Fahrzeugs. Das Verfahren 500 kann ebenfalls das Trainieren des einen oder der mehreren neuronalen Netzwerke beinhalten, um eine Ausgabe basierend auf Daten für einen späteren Sensorrahmen unter Verwendung einer Ausgabe eines früheren Rahmens zu erzeugen. Das Verfahren 500 kann eine effizientere und genauere Objekterkennung und -verfolgung in einer Reihe von Sensorrahmen, wie etwa in einem Video, gestatten. Die verbesserte Objekterkennung und -verfolgung kann die Fahr- und Fahrgastsicherheit und -genauigkeit verbessern.
-
6 ist ein schematisches Blockdiagramm, das die Integration von zeitlichen Informationen aus mehreren Arten von Sensordaten zwischen Sätzen von Rahmen von Sensordaten während der Objekterkennung veranschaulicht. Eine Vielzahl von Verarbeitungsstufen, einschließlich einer ersten Stufe 602, einer zweiten Stufe 604 und einer dritten Stufe 606, zum Verarbeiten unterschiedlicher Sätze von Sensorrahmen ist gezeigt. Die Sensorrahmen beinhalten Bilder (Bild 0, Bild 1 und Bild 2) sowie Tiefenabbildungen (Tiefe 0, Tiefe 1 und Tiefe 2), die während ihrer jeweiligen Stufe verarbeitet werden, obwohl andere Arten von Sensordaten oder -rahmen verwendet werden können. Jede Stufe 602, 604, 606 kann einer anderen Zeitspanne zum Verarbeiten eines anderen Satzes von Sensordaten entsprechen. Zum Beispiel können die Stufen einer Verarbeitung in Echtzeit während der Erfassung von Sensordaten der zuletzt aufgenommenen Sensordaten entsprechen.
-
Die erste Stufe 602 zeigt die Eingabe von Bild 0 und der Tiefe 0, die jeweils verarbeitet werden, um eine oder mehrere Merkmalsabbildungen zu erzeugen. Zum Beispiel kann das Bild 0 mit einem oder mehreren neuronalen Netzwerken verarbeitet werden, um eine oder mehrere unterschiedliche Merkmalsabbildungen zu erzeugen, die wiedergeben, wo bestimmte Arten von Merkmalen erkannt wurden. Auf ähnliche Weise können mehr als eine Merkmalsabbildung basierend auf der Tiefe 0 erzeugt werden. Die Merkmalsabbildungen werden in ein rekurrentes neuronales Faltungsnetzwerk oder ein anderes Modell eingegeben werden, das mehrmaßstäbliche Faltungen verwendet, um verkettete Merkmalsabbildungen 608 zu erzeugen. Die verketteten Merkmalsabbildungen 608 können alle Merkmale der jeweiligen Sensormerkmalsabbildungen beinhalten. Zum Beispiel kann eine verkettete Merkmalsabbildung Angaben von Merkmalen beinhalten, die sowohl durch eine Bildmerkmalsabbildung als auch durch eine Tiefenmerkmalsabbildung erkannt wurden.
-
Die verketteten Merkmalsabbildungen können zur Objekterkennung verarbeitet werden. Für jeden Teilbereich 614 (wie etwa eine Position des Fensters 302 aus 3) wird eine Objektvorhersage erzeugt. Die Erzeugung der Sensormerkmalsabbildung, die Erzeugung der verketteten Merkmalsabbildung und die Objektvorhersage können unter Verwendung eines oder mehrerer neuronaler Netzwerke durchgeführt werden. Die Objektvorhersage kann eine Vorhersage für Obj 0 und eine Vorhersage für Obj 1 beinhalten, die basierend auf dem Teilbereich 614 der verketteten Merkmalsabbildung 608 erzeugt wurden. Die Objektvorhersage kann eine Objektart oder -klassifizierung sowie eine Position beinhalten.
-
Ähnlich der Ausführungsform aus 4 speisen rekurrente Verbindungen 620, 622 Informationen zwischen den Verarbeitungsstufen vorwärts ein. Zum Beispiel können Merkmalsabbildungen, erkannte Merkmale, Objektvorhersagen oder dergleichen vorwärts an ein rekurrentes neuronales Faltungsnetzwerk zur Verwendung während der Verarbeitung eines folgenden Satzes von Bildern eingespeist werden. Somit können zeitliche Informationen während der Objekt- oder Merkmalserkennung berücksichtigt werden. Das Merkmal oder die Objekte, das bzw. die für eine vorhergehende Zeitspanne (z. B. die Zeitspanne, die einem vorhergehenden Satz von Sensorrahmen entspricht) erkannt wurde bzw. wurden, kann bzw. können vorwärts eingespeist werden und beeinflussen, ob dieselben Objekte oder dasselbe Merkmal für einen späteren Satz von Sensorrahmen erkannt werden bzw. wird. Während Stufe 604 und Stufe 606 kann eine ähnliche Erzeugung verketteter Merkmalsabbildungen 610 und 612 und Objektvorhersagen für Teilbereiche 616 und 618 durchgeführt und unter Verwendung rekurrenter Verbindungen 622 und 624 vorwärts eingespeist werden.
-
7 ist a eine schematische Darstellung eines Ablaufdiagramms, das ein Verfahren 700 zur Objekterkennung veranschaulicht. Das Verfahren 700 kann durch eine Erkennungskomponente oder ein Fahrzeugsteuersystem, wie etwa die Erkennungskomponente 104 oder das Fahrzeugsteuersystem 100 aus 1, durchgeführt werden.
-
Das Verfahren 700 beginnt und eine oder mehrere Sensorkomponenten erlangen bei 702 eine erste Folge von Sensordaten und eine zweite Folge von Sensordaten. Jede der ersten Folge und der zweiten Folge beinhaltet eine Vielzahl von Sensorrahmen. Zum Beispiel kann eine Sensorkomponente einen oder mehrere der Sensoren 106, 108, 110, 114 oder einen anderen Sensor beinhalten. Eine Erkennungskomponente 104 erzeugt bei 704 eine verkettete Merkmalsabbildung basierend auf einem Sensorrahmen einer ersten Art und einem Sensorrahmen einer zweiten Art. Der Sensorrahmen der ersten Art kann aus der ersten Folge stammen oder auf dieser basieren und der Sensorrahmen der zweiten Art kann aus der zweiten Folge stammen oder auf dieser basieren. Die Erkennungskomponente 104 erkennt bei 706 ein oder mehrere Objekte basierend auf der verketteten Merkmalsabbildung. In einer Ausführungsform umfasst/umfassen eines oder mehrere von Erzeugen bei 704 und Erkennen bei 706 das Erzeugen oder Erkennen unter Verwendung eines neuronalen Netzwerks mit einer rekurrenten Verbindung, die Informationen über Merkmale oder Objekte aus vorhergehenden Rahmen einspeist.
-
Nun wird unter Bezugnahme auf 8 ein Blockdiagramm einer beispielhaften Rechenvorrichtung 800 veranschaulicht. Die Rechenvorrichtung 800 kann verwendet werden, um verschiedene Verfahren, wie etwa die hier erörterten, auszuführen. In einer Ausführungsform kann die Rechenvorrichtung 800 als eine Erkennungskomponente 104, ein automatisiertes Fahr-/Assistenzsystem 102, ein Fahrzeugsteuersystem 100 oder dergleichen dienen. Die Rechenvorrichtung 800 kann verschiedene Überwachungsfunktionen, wie hier erörtert, durchführen und kann eine oder mehrere Anwendungsprogramme, wie etwa die hier beschriebenen Anwendungsprogramme oder Funktionalitäten, ausführen. Die Rechenvorrichtung 800 kann eine beliebige aus einer Reihe von Rechenvorrichtungen, wie beispielsweise ein Desktop-Computer, ein eingebauter Computer, ein Fahrzeugsteuersystem, ein Notebook-Computer, ein Server-Computer, ein tragbarer Computer, Tablet-Computer und dergleichen, sein.
-
Die Rechenvorrichtung 800 beinhaltet einen oder mehrere Prozessor(en) 802, eine oder mehrere Speichervorrichtung(en) 804, eine oder mehrere Schnittstelle(n) 806, eine oder mehrere Massenspeichervorrichtung(en) 808, eine oder mehrere Ein-/Ausgabe-(E/A-)Vorrichtung(en) 810 und eine Anzeigevorrichtung 830, die alle an einen Bus 812 gekoppelt sind. Der/Die Prozessor(en) 802 beinhaltet/beinhalten eine(n) oder mehrere Prozessoren oder Steuerungen, der/die in der/den Speichervorrichtung(en) 804 und/oder der/den Massenspeichervorrichtung(en) 808 gespeicherte Anweisungen ausführen. Der/Die Prozessoren) 802 kann/können zudem verschiedene Arten von computerlesbaren Medien beinhalten, wie etwa Cache-Speicher.
-
Die Speichervorrichtung(en) 804 beinhaltet/beinhalten verschiedene computerlesbare Medien, wie etwa flüchtigen Speicher (z. B. Direktzugriffsspeicher (random access memory - RAM) 814) und/oder nichtflüchtigen Speicher (z. B. Festwertspeicher (read-only memory - ROM) 816). Die Speichervorrichtung(en) 804 kann/können zudem wiederbeschreibbaren ROM beinhalten, wie etwa Flash-Speicher.
-
Die Massenspeichervorrichtung(en) 808 beinhaltet/beinhalten verschiedene computerlesbare Medien, wie etwa Magnetbänder, Magnetplatten, optische Platten, Festkörperspeicher (z. B. Flash-Speicher) und so weiter. Wie in 8 gezeigt, ist eine besondere Massenspeichervorrichtung ein Festplattenlaufwerk 824. Zudem können verschiedene Laufwerke in der/den Massenspeichervorrichtung(en) 808 enthalten sein, um ein Auslesen aus und/oder Schreiben auf die verschiedenen computerlesbaren Medien zu ermöglichen. Die Massenspeichervorrichtung(en) 808 beinhaltet/beinhalten entfernbare Medien 826 und/oder nichtentfernbare Medien.
-
Die E/A-Vorrichtung(en) 810 beinhaltet/beinhalten verschiedene Vorrichtungen, die es ermöglichen, dass Daten und/oder andere Informationen in die Rechenvorrichtung 800 eingegeben oder daraus abgerufen werden. (Eine) Beispielhafte E/A-Vorrichtung(en) 810 beinhaltet/beinhalten Cursorsteuervorrichtungen, Tastaturen, Tastenfelder, Mikrofone, Monitore oder andere Anzeigevorrichtungen, Lautsprecher, Drucker, Netzschnittstellenkarten, Modems und dergleichen.
-
Die Anzeigevorrichtung 830 beinhaltet eine beliebige Art von Vorrichtung, die dazu in der Lage ist, einem oder mehreren Benutzern der Rechenvorrichtung 800 Informationen anzuzeigen. Zu Beispielen für eine Anzeigevorrichtung 830 gehören ein Monitor, ein Anzeigeendgerät, eine Videoprojektionsvorrichtung und dergleichen.
-
Die Schnittstelle(n) 806 beinhaltet/beinhalten verschiedene Schnittstellen, die es der Rechenvorrichtung 800 ermöglichen, mit anderen Systemen, Vorrichtungen oder Rechenumgebungen zu interagieren. (Eine) Beispielhafte Schnittstelle(n) 806 kann/können eine beliebige Anzahl von unterschiedlichen Netzwerkschnittstellen 820, wie beispielsweise Schnittstellen zu lokalen Netzen (LANs), Großraumnetzen (WANs), drahtlosen Netzen und dem Internet, beinhalten. Zu (einer) andere(n) Schnittstelle(n) gehören eine Benutzerschnittstelle 818 und eine Peripherievorrichtungsschnittstelle 822. Die Schnittstelle(n) 806 kann/können ebenfalls eine oder mehrere Benutzerschnittstellenelemente 818 beinhalten. Die Schnittstelle(n) 806 kann/können ebenfalls eine oder mehrere periphere Schnittstellen, wie etwa Schnittstellen für Drucker, Zeigevorrichtungen (Mäuse, Touchpad oder eine beliebige geeignete Benutzerschnittstelle, die dem Durchschnittsfachmann jetzt bekannt ist oder später entdeckt wird), Tastaturen und dergleichen, beinhalten.
-
Der Bus 812 ermöglicht es dem/den Prozessor(en) 802, der/den Speichervorrichtung(en) 804, der/den Schnittstelle(n) 806, der/den Massenspeichervorrichtung(en) 808 und der/den E/A-Vorrichtung(en) 810 miteinander sowie mit anderen Vorrichtungen oder Komponenten, die an den Bus 812 gekoppelt sind, zu kommunizieren. Der Bus 812 stellt eine oder mehrere von verschiedenen Arten von Busstrukturen dar, wie beispielsweise einen Systembus, PCI-Bus, IEEE-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 800 befinden können, und werden durch den/die Prozessor(en) 802 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) kann/können zum Beispiel programmiert sein, um eines oder mehrere der hierin beschriebenen Systeme und Verfahren durchzuführen.
-
Beispiele
-
Die folgenden Beispiele betreffen weitere Ausführungsformen.
-
Beispiel 1 ist ein Verfahren zum Erkennen von Objekten oder Merkmalen in Sensordaten. Das Verfahren beinhaltet das Erzeugen einer verketteten Merkmalsabbildung basierend auf einem Sensorrahmen einer ersten Art und einem Sensorrahmen einer zweiten Art. Das Verfahren beinhaltet das Erkennen eines oder mehrerer Objekte basierend auf der verketteten Merkmalsabbildung. In dem Verfahren beinhaltet/beinhalten eines oder mehrere von Erzeugen und Erkennen das Erzeugen oder Erkennen unter Verwendung eines neuronalen Netzwerks mit einer rekurrenten Verbindung, die Informationen über Merkmale oder Objekte aus vorhergehenden Rahmen einspeist.
-
In Beispiel 2 beinhaltet das Verfahren aus Beispiel 1 ferner das Erzeugen einer ersten Merkmalsabbildung basierend auf dem Sensorrahmen der ersten Art und das Erzeugen einer zweiten Merkmalsabbildung basierend auf dem Sensorrahmen der zweiten Art. Das Erzeugen der verketteten Merkmalsabbildung beinhaltet das Erzeugen basierend auf den Merkmalen auf hoher Ebene in der ersten Merkmalsabbildung oder der zweiten Merkmalsabbildung.
-
In Beispiel 3 beinhaltet das Erzeugen der verketteten Merkmalsabbildung, wie in Beispiel 2, das Erzeugen einer fusionierten Merkmalsabbildung, welche die Merkmale sowohl aus der ersten Merkmalsabbildung als auch aus der zweiten Merkmalsabbildung beinhaltet.
-
In Beispiel 4 beinhaltet der Sensorrahmen der ersten Art, wie in einem der Beispiele 1 - 3, ein Bild und der Sensorrahmen der zweiten Art beinhaltet eine Tiefenabbildung.
-
In Beispiel 5 speist die rekurrente Verbindung des neuronalen Netzwerks, wie in einem der Beispiele 1 - 4, eines oder mehrere von einem Merkmal in einer vorhergehenden verketteten Merkmalsabbildung, einem in einem vorhergehenden Rahmen oder einer vorhergehenden Zeitspanne erkannten Objekt und einem Merkmal in einem vorhergehenden Sensorrahmen vorwärts ein.
-
In Beispiel 6 beinhaltet der Sensorrahmen der ersten Art, wie in einem der Beispiele 1 - 5, einen ersten Sensorrahmen der ersten Art, der Sensorrahmen der zweiten Art beinhaltet einen ersten Sensorrahmen der zweiten Art, die verkettete Merkmalsabbildung beinhaltet eine erste verkettete Merkmalsabbildung und das eine oder die mehreren Objekte beinhaltet/beinhalten ein erstes oder mehrere erste Objekte. Das Verfahren beinhaltet ferner das Erzeugen einer zweiten verketteten Merkmalsabbildung basierend auf einem zweiten Sensorrahmen der ersten Art und einem zweiten Sensorrahmen der zweiten Art. Das Verfahren beinhaltet ferner das Erkennen eines zweiten oder mehrerer zweiter Objekte basierend auf der zweiten verketteten Merkmalsabbildung. Das Verfahren beinhaltet ferner das Vorwärtseinspeisen eines oder mehrerer von einem Merkmal der zweiten verketteten Merkmalsabbildung oder dem zweiten oder den mehreren zweiten Objekten unter Verwendung der rekurrenten Verbindung des neuronalen Netzwerks zum Erzeugen der ersten verketteten Merkmalsabbildung oder zum Erkennen des einen ersten oder der mehreren ersten Objekte.
-
In Beispiel 7 beinhaltet das neuronale Netzwerk, wie in einem der Beispiele 1 - 6, eine Eingabeschicht, eine oder mehrere verborgene Schichten und eine Klassifizierungsschicht. Die rekurrente Verbindung speist eine Ausgabe der Klassifizierungsschicht aus einem vorhergehenden Rahmen in eine oder mehrere der Eingabeschicht oder einer verborgenen Schicht der einen oder der mehreren verborgenen Schichten während des Erzeugens der verketteten Merkmalsabbildung oder des Erkennens des einen oder der mehreren Objekte ein.
-
In Beispiel 8 beinhaltet das Verfahren, wie in einem der Beispiele 1 - 7, das Bestimmen eines Merkmals oder das Erkennen eines Objekts für eine Vielzahl von Teilbereichen, wobei ein Merkmal oder ein Objekt für die Vielzahl von Teilbereichen als Eingabe für einen entsprechenden Teilbereich für eine spätere Zeitspanne vorwärts eingespeist wird.
-
In Beispiel 9 beinhaltet das Bestimmen eines Merkmals oder das Erkennen eines Objekts für eine Vielzahl von Teilbereichen, wie im Beispiel 8, das Bestimmen von Merkmalen oder das Erkennen von Objekten für unterschiedlich bemessene Teilbereiche, um unterschiedlich bemessene Merkmale oder Objekte zu erkennen.
-
In Beispiel 10 speist die rekurrente Verbindung, wie in einem der Beispiele 1 - 9, Informationen vorwärts ein, die eine oder mehrere einer Angabe einer Art des erkannten Objekts oder Merkmals oder eine Angabe einer Position des Objekts oder Merkmals beinhalten.
-
In Beispiel 11 beinhaltet das Verfahren, wie in einem der Beispiele 1 - 10, ferner das Bestimmen eines Fahrmanövers basierend auf dem einen oder den mehreren erkannten Objekten oder Merkmalen der verketteten Merkmalsabbildung.
-
In Beispiel 12 beinhaltet das Verfahren, wie in einem der Beispiele 1 - 11, ferner das Trainieren des neuronalen Netzwerks zum Erkennen von Objekten oder Merkmalen unter Verwendung der rekurrenten Verbindung.
-
Beispiel 13 ist ein computerlesbares Speichermedium, das Anweisungen speichert, die, wenn sie durch einen oder mehrere Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren veranlassen, ein Verfahren wie in einem der Beispiele 1 - 12 umzusetzen.
-
Beispiel 14 ist ein System oder eine Vorrichtung, das/die Mittel zum Umsetzen eines Verfahrens oder Realisieren eines Systems oder einer Vorrichtung nach einem der Beispiele 1 - 13 beinhaltet.
-
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 Schutzumfang der vorliegenden Offenbarung abzuweichen. Bezugnahmen in der Beschreibung auf „eine Ausführungsform“, „ein Ausführungsbeispiel“ usw. geben an, dass die beschriebene Ausführungsform ein bestimmtes Merkmal, eine bestimmte Struktur oder Eigenschaft beinhalten kann, doch es muss nicht notwendigerweise jede Ausführungsform dieses bestimmte Merkmal, diese bestimmte 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 zu bewirken, 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 beispielsweise einen oder mehrere Prozessoren und einen oder mehrere Systemspeicher, wie hier erörtert. Umsetzungen innerhalb des Schutzumfangs 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, Festkörperlaufwerke (solid state drives - SSDs) (z. B. basierend auf RAM), Flash-Speicher, Phasenänderungsspeicher (phase-change memory - PCM), andere Speicherarten, andere optische Plattenspeicher, Magnetplattenspeicher oder andere magnetische Speichervorrichtungen oder ein beliebiges anderes Medium, 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 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 an einen Computer übertragen oder diesem bereitgestellt werden, sieht der Computer die Verbindung ordnungsgemäß als Übertragungsmedium an. Übertragungsmedien können ein Netzwerk und/oder Datenverbindungen beinhalten, die verwendet werden können, um gewünschte Programmcodemittel in der Form von computerausführbaren Anweisungen oder Datenstrukturen zu übertragen und auf die durch einen Universal- oder Spezialcomputer zugegriffen werden kann. Kombinationen aus den Vorstehenden sollten ebenfalls im Schutzumfang computerlesbarer Medien beinhaltet 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.
-
Für den Fachmann versteht es sich, dass die Offenbarung in Netzwerkcomputerumgebungen mithilfe vieler Arten von Computersystemkonfigurationen angewendet werden kann, die einen Armaturenbrett-Fahrzeugcomputer, PCs, Desktop-Computer, Laptops, Nachrichtenprozessoren, Handgeräte, Multiprozessorsysteme, Unterhaltungselektronik auf Mikroprozessorbasis oder programmierbare Unterhaltungselektronik, Netzwerk-PCs, Minicomputer, Großcomputer, Mobiltelefone, PDAs, Tablets, Pager, Router, Switches, verschiedene Speichervorrichtungen und dergleichen beinhalten. 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 der Folgenden ausgeführt werden: Hardware, Software, Firmware, digitale Komponenten oder analoge Komponenten. Ein oder mehrere anwendungsspezifische integrierte Schaltkreise (ASICs) kann/können zum Beispiel programmiert sein, um eines oder mehrere der hierin beschriebenen Systeme und Verfahren durchzuführen. Bestimmte Ausdrücke werden in der gesamten Beschreibung und den Patentansprüchen verwendet, um auf bestimmte Systemkomponenten Bezug zu nehmen. Die Begriffe „Module“ und „Komponenten“ werden in den Bezeichnungen von bestimmten Komponenten verwendet, um ihre Umsetzungsunabhängigkeit in Software, Hardware, Schaltungen, Sensoren und dergleichen wiederzugeben. Für den Fachmann versteht es sich, 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. Derartige 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.
-
Ferner soll die Offenbarung, auch wenn spezifische Umsetzungen der Offenbarung beschrieben und dargestellt wurden, nicht auf die somit beschriebenen und dargestellten spezifischen Formen oder Anordnungen der Teile beschränkt werden. Der Umfang der Offenbarung ist durch die hieran beigefügten Patentansprüche, jegliche zukünftigen hier beantragten Patentansprüche und in verschiedenen Anwendungen und deren Äquivalenten zu definieren.