-
TECHNISCHES GEBIET
-
Die Offenbarung betrifft im Allgemeinen Fahrzeugsensoren und insbesondere das Detektieren und Umfahren von Objekten.
-
ALLGEMEINER STAND DER TECHNIK
-
Fahrzeuge können derart ausgestattet sein, dass sie sowohl in einem autonomen als auch in einem insassengesteuerten Modus arbeiten. Fahrzeuge können mit Rechenvorrichtungen, Netzwerken, Sensoren und Steuerungen ausgestattet sein, um Informationen bezüglich der Umgebung des Fahrzeugs zu erfassen und das Fahrzeug auf Grundlage der Informationen zu betreiben. Ein sicherer und komfortabler Betrieb des Fahrzeugs kann vom Erfassen genauer und aktueller Informationen bezüglich der Umgebung des Fahrzeugs abhängen. Fahrzeugsensoren können Daten bezüglich zurückzulegenden Routen und zu umfahrenden Objekten in der Umgebung des Fahrzeugs bereitstellen. Ein sicherer und effizienter Betrieb des Fahrzeugs kann vom Erfassen genauer und aktueller Informationen bezüglich Routen und Objekten in der Umgebung eines Fahrzeugs während des Betriebs des Fahrzeugs auf einer Fahrbahn abhängen.
-
KURZDARSTELLUNG
-
Fahrzeuge können derart ausgestattet sein, dass sie sowohl in einem autonomen als auch in einem insassengesteuerten Modus arbeiten. Unter einem halb- oder vollautonomen Modus verstehen die Erfinder einen Betriebsmodus, in dem ein Fahrzeug teilweise oder vollständig von einer Rechenvorrichtung als Teil eines Informationssystems gesteuert werden kann, das Sensoren und Steuerungen aufweist. Das Fahrzeug kann belegt oder unbelegt sein; doch in beiden Fällen kann das Fahrzeug teilweise oder vollständig ohne Unterstützung eines Insassen gesteuert werden. Für die Zwecke dieser Offenbarung ist ein autonomer Modus als ein Modus definiert, bei dem alles von Antrieb (z. B. über einen Antriebsstrang, der eine Brennkraftmaschine und/oder einen Elektromotor beinhaltet), Bremsung und Lenkung des Fahrzeugs durch einen oder mehrere Fahrzeugcomputer gesteuert wird; in einem halbautonomen Modus steuert/steuern der/die Fahrzeugcomputer eines oder zwei von Antrieb, Bremsung und Lenkung des Fahrzeugs. In einem nichtautonomen Fahrzeug wird keines von diesen von einem Computer gesteuert.
-
Eine Rechenvorrichtung in einem Fahrzeug kann dazu programmiert sein, Daten bezüglich einer Außenumgebung eines Fahrzeugs zu erfassen und die Daten dazu zu verwenden, einen Fahrzeugweg zu bestimmen, auf dem ein Fahrzeug in einem autonomen oder halbautonomen Modus betrieben werden soll. Ein Fahrzeugweg ist eine gerade und/oder gekrümmte Linie, die aufeinanderfolgende Standorte (d. h. Standorte zu unterschiedlichen Zeiten) eines Fahrzeugs in einer zweidimensionalen (2D) Ebene parallel zu der Oberfläche einer Fahrbahn beschreibt, auf der das Fahrzeug fährt. Ein Fahrzeug kann auf Grundlage eines Fahrzeugwegs auf einer Fahrbahn fahren, indem Befehle bestimmt werden, die Antriebsstrang-, Brems- und Lenkungskomponenten des Fahrzeugs derart steuern, dass das Fahrzeug so betrieben wird, dass es sich entlang des Wegs bewegt. Die Daten bezüglich der Außenumgebung können die Lage eines Objekts in globalen Koordinaten beinhalten. Globale Koordinaten werden in Bezug auf einen definierten Bezugsrahmen gemessen, beispielsweise Breitengrad, Längengrad und Höhe. Zu beispielhaften Objekten können Fahrzeuge und Fußgänger gehören. Die Daten sich bewegender Objekte können auf der Verarbeitung von Videokameradaten beruhen, die von Fahrzeugsensoren oder Sensoren, die in einem Verkehrsinfrastruktursystem enthalten sind, erfasst werden.
-
Das Betreiben eines Fahrzeugs auf Grundlage von Daten sich bewegender Objekte kann ein Bestimmen eines Fahrzeugwegs, der die sich bewegenden Objekte umfährt, beinhalten. Das Vorhersagen eines Wegs für sich bewegende Objekte, der zukünftige Standorte für sich bewegende Objekte beinhaltet, kann es einer Rechenvorrichtung ermöglichen, einen Fahrzeugweg zu bestimmen, der die sich bewegenden Objekte umfährt. In dieser Schrift erörterte Techniken können den Fahrzeugbetrieb verbessern, indem Geschwindigkeit und Richtung von sich bewegenden Objekten bestimmt wird, die in Videostreamdaten von einer stationären Videokamera detektiert werden. Die Geschwindigkeit und Richtung der sich bewegenden Objekte kann auf Grundlage einer Verarbeitung der Videostreamdaten zum Bestimmen einer Exzentrizitätsabbildung, wie nachstehend in Bezug auf 3 beschrieben, bestimmt werden. Die Geschwindigkeit und Richtung sich bewegender Objekte kann auf Grundlage einer Exzentrizitätsabbildung ohne vorherige Informationseingabe oder Offline-Schulung bestimmt werden. In dieser Schrift beschriebene Techniken können eine verbesserte Rechengeschwindigkeit und -effizienz bereitstellen, z. B. können sie unter Verwendung aktueller Rechentechnologie die Geschwindigkeit und Richtung sich bewegender Objekte in Bezug auf Pixelkoordinaten in einem Einzelbild von Videodaten mit einer Rate von mehr als hundert Einzelbildern pro Sekunde schätzen. Die in dieser Schrift beschriebenen Techniken benötigen keine Bilddaten entsprechenden benutzerdefinierten Parameter oder Annahmen bezüglich Wahrscheinlichkeitsverteilungen. Die in dieser Schrift beschriebenen Techniken können mit Konzeptdrift oder Konzeptentwicklung umgehen, wobei sich Konzeptdrift oder Konzeptentwicklung auf Änderungen der zugrundeliegenden Pixeldaten bezieht, die einem sich bewegenden Objekt in Videostreamdaten über die Zeit entsprechen.
-
In dieser Schrift wird ein Verfahren offenbart, das ein Detektieren eines sich bewegenden Objekts in Videostreamdaten auf Grundlage einer Bestimmung einer Exzentrizitätsabbildung, ein Bestimmen einer Größe und Richtung der Bewegung des sich bewegenden Objekts, ein Umwandeln der Größe und Richtung in globale Koordinaten und ein Betreiben eines Fahrzeugs auf Grundlage der umgewandelten Größe und Richtung beinhaltet. Die Exzentrizitätsabbildung kann auf Grundlage eines Pro-Pixel-Mittelwerts und einer Pro-Pixel-Varianz bestimmt werden, die anhand der Videostreamdaten berechnet werden. Die Exzentrizitätsabbildung kann auf Grundlage eines begrenzten Fensters von Videoeinzelbildern bestimmt werden, das durch einen von einem Benutzer eingegebenen Vernächlässigungsfaktor bestimmt wirdα. Das sich bewegende Objekt kann detektiert werden, indem auf Grundlage einer Schwellenwertbestimmung für die Exzentrizitätsabbildung eine Vordergrundmaske bestimmt wird. Das sich bewegende Objekt kann detektiert werden, indem auf Grundlage der Vordergrundmaske eine verbundene Pixelregion bestimmt wird und auf Grundlage der verbundenen Region ein Begrenzungsrahmen bestimmt wird. Der x- und der y-Bewegungsgradient des sich bewegenden Objekts können bestimmt werden, indem Gradienten horizontaler bzw. vertikaler Liniensegmente von Vordergrundpixeln im Begrenzungsrahmen berechnet und kumuliert werden. Die Größe und Richtung der Bewegung des sich bewegenden Objekts können auf Grundlage des x- und des y-Bewegungsgradienten bestimmt werden.
-
Die Größe und Richtung können auf Grundlage einer dreidimensionalen, sechsachsigen Lage und Richtung eines Sichtfelds einer Videokamera, welche die Videostreamdaten erfasst hat, eines Vergrößerungsfaktors einer in der Videokamera enthaltenen Linse und einer Lage einer zweidimensionalen Ebene, die einer Fahrbahn entspricht, im Sichtfeld der Videokamera von Pixelkoordinaten in globale Koordinaten umgewandelt werden. Ein Fahrzeugweg kann auf Grundlage der Größe und Richtung bestimmt werden. Das Fahrzeug kann auf dem Fahrzeugweg betrieben werden und dadurch das sich bewegende Objekt umfahren. Die Exzentrizitätsabbildung kann auf Grundlage von Videostreamdaten bestimmt werden, die von einer in einem Verkehrsinfrastruktursystem enthaltenen stationären Videokamera erfasst wurden. Die Größe und Richtung der Bewegung des sich bewegenden Objekts können von einem Servercomputer bestimmt werden, der in dem Verkehrsinfrastruktursystem enthalten ist. Die Größe und Richtung der Bewegung des sich bewegenden Objekts können von dem in dem Verkehrsinfrastruktursystem enthaltenen Servercomputer an eine in dem Fahrzeug enthaltene Rechenvorrichtung kommuniziert werden. Das sich bewegende Objekt kann eines oder mehrere von einem Fußgänger, einem Fahrradfahrer, einem Fahrzeug oder einem beliebigen anderen Objekt von Interesse beinhalten.
-
Außerdem wird ein computerlesbares Medium offenbart, auf dem Programmanweisungen zum Ausführen einiger oder sämtlicher der vorstehenden Verfahrensschritte gespeichert sind. Darüber hinaus wird ein Computer offenbart, der dazu programmiert ist, einige oder sämtliche der vorstehenden Verfahrensschritte auszuführen, einschließlich einer Computereinrichtung, die dazu programmiert ist, auf Grundlage einer Bestimmung einer Exzentrizitätsabbildung ein sich bewegendes Objekt in Videostreamdaten zu detektieren, eine Größe und Richtung der Bewegung des sich bewegenden Objekts zu bestimmen, die Größe und Richtung in globale Koordinaten umzuwandeln und ein Fahrzeug auf Grundlage der umgewandelten Größe und Richtung zu betreiben. Die Exzentrizitätsabbildung kann auf Grundlage eines Pro-Pixel-Mittelwerts und einer Pro-Pixel-Varianz bestimmt werden, die anhand der Videostreamdaten berechnet wurden. Die Exzentrizitätsabbildung kann auf Grundlage eines begrenzten Fensters von Videoeinzelbildern bestimmt werden, das durch einen von einem Benutzer eingegebenen Vernächlässigungsfaktor bestimmt wirdα. Das sich bewegende Objekt kann detektiert werden, indem auf Grundlage einer Schwellenwertbestimmung für die Exzentrizitätsabbildung eine Vordergrundmaske bestimmt wird. Das sich bewegende Objekt kann detektiert werden, indem auf Grundlage der Vordergrundmaske eine verbundene Pixelregion bestimmt wird und auf Grundlage der verbundenen Region ein Begrenzungsrahmen bestimmt wird. Der x- und der y-Bewegungsgradient des sich bewegenden Objekts können bestimmt werden, indem Gradienten horizontaler bzw. vertikaler Liniensegmente von Vordergrundpixeln im Begrenzungsrahmen berechnet und kumuliert werden. Die Größe und Richtung der Bewegung des sich bewegenden Objekts können auf Grundlage des x- und des y-Bewegungsgradienten bestimmt werden.
-
Die Computereinrichtung kann ferner dazu programmiert sein, die Größe und Richtung auf Grundlage einer dreidimensionalen, sechsachsigen Lage und Richtung eines Sichtfelds einer Videokamera, welche die Videostreamdaten erfasst hat, eines Vergrößerungsfaktors einer in der Videokamera enthaltenen Linse und einer Lage einer zweidimensionalen Ebene, die einer Fahrbahn entspricht, im Sichtfeld der Videokamera von Pixelkoordinaten in globale Koordinaten umzuwandeln. Ein Fahrzeugweg kann auf Grundlage der Größe und Richtung bestimmt werden. Das Fahrzeug kann auf dem Fahrzeugweg betrieben werden und dadurch das sich bewegende Objekt umfahren. Die Exzentrizitätsabbildung kann auf Grundlage von Videostreamdaten bestimmt werden, die von einer in einem Verkehrsinfrastruktursystem enthaltenen stationären Videokamera erfasst wurden. Die Größe und Richtung der Bewegung des sich bewegenden Objekts können von einem Servercomputer bestimmt werden, der in dem Verkehrsinfrastruktursystem enthalten ist. Die Größe und Richtung der Bewegung des sich bewegenden Objekts können von dem in dem Verkehrsinfrastruktursystem enthaltenen Servercomputer an eine in dem Fahrzeug enthaltene Rechenvorrichtung kommuniziert werden. Das sich bewegende Objekt kann eines oder mehrere von einem Fußgänger und einem Fahrzeug beinhalten.
-
Figurenliste
-
- 1 ist ein Blockdiagramm eines beispielhaften Verkehrsinfrastruktursystems.
- 2 ist eine Darstellung eines beispielhaften Bilds einer Verkehrsszene.
- 3 ist eine Darstellung eines beispielhaften Bilds einer Verkehrsszene, das von einer stationären Kamera erfasst wurde.
- 4 ist eine Darstellung eines beispielhaften Bilds einer Verkehrsszene, die Exzentrizitätsverarbeitung veranschaulicht.
- 5 ist eine Darstellung eines beispielhaften Bilds einer Verkehrsszene mit identifizierten sich bewegenden Objekten.
- 6 ist eine Darstellung eines beispielhaften Exzentrizitätsgradienten.
- 7 ist eine Darstellung eines beispielhaften Bilds einer Verkehrsszene mit sich bewegenden Objekten, einschließlich Richtung und Geschwindigkeit.
- 8 ist ein Ablaufdiagramm eines Prozesses zum Betreiben eines Fahrzeugs auf Grundlage von Bewegungskomponenten sich bewegender Objekte.
-
DETAILLIERTE BESCHREIBUNG
-
1 ist eine Darstellung eines Verkehrsinfrastruktursystems 100, das ein Fahrzeug 110 beinhaltet, das in einem autonomen („autonom“ für sich bedeutet in dieser Offenbarung „vollautonom“), halbautonomen und/oder insassengesteuerten (auch als nichtautonom bezeichneten) Modus betrieben werden kann. Eine oder mehrere Rechenvorrichtungen 115 des Fahrzeugs 110 können Informationen bezüglich des Betriebs des Fahrzeugs 110 von Sensoren 116 empfangen. Die Rechenvorrichtung 115 kann das Fahrzeug 110 in einem autonomen Modus, einem halbautonomen Modus oder einem nichtautonomen Modus betreiben.
-
Die Rechenvorrichtung 115 beinhaltet einen Prozessor und einen Speicher, wie sie bekannt sind. Zudem beinhaltet der Speicher eine oder mehrere Arten computerlesbarer Medien und speichert Anweisungen, die durch den Prozessor ausführbar sind, um verschiedene Vorgänge durchzuführen, einschließlich der hier offenbarten. Beispielsweise kann die Rechenvorrichtung 115 eine Programmierung beinhalten, um eines oder mehrere von Bremsen, Antrieb (z. B. Beschleunigungssteuerung in dem Fahrzeug 110 durch Steuern eines oder mehrerer von einer Brennkraftmaschine, einem Elektromotor, Hybridmotor usw.), Lenkung, Klimaregelung, Innen- und/oder Außenleuchten usw. des Fahrzeugs zu betreiben sowie um zu bestimmen, ob und wann die Rechenvorrichtung 115 im Gegensatz zu einem menschlichen Fahrer derartige Vorgänge steuern soll.
-
Die Rechenvorrichtung 115 kann mehr als eine Rechenvorrichtung, z. B. Steuerungen oder dergleichen, die in dem Fahrzeug 110 zum Überwachen und/oder Steuern verschiedener Fahrzeugkomponenten beinhaltet sind, z.B. eine Antriebsstrangsteuerung 112, eine Bremssteuerung 113, eine Lenksteuerung 114 usw., beinhalten oder z.B. über einen Fahrzeugkommunikationsbus, wie nachstehend ausführlicher beschrieben, kommunikativ mit dieser/diesen gekoppelt sein. Die Rechenvorrichtung 115 ist im Allgemeinen zur Kommunikation in einem Fahrzeugkommunikationsnetzwerk angeordnet, das z. B. einen Bus in dem Fahrzeug 110, wie etwa ein Controller Area Network (CAN) oder dergleichen, beinhaltet; das Netzwerk des Fahrzeugs 110 kann zusätzlich oder alternativ drahtgebundene oder drahtlose Kommunikationsmechanismen, wie sie bekannt sind, beinhalten, z. B. Ethernet oder andere Kommunikationsprotokolle.
-
Über das Fahrzeugnetzwerk kann die Rechenvorrichtung 115 Nachrichten an verschiedene Vorrichtungen in dem Fahrzeug übertragen und/oder Nachrichten von den verschiedenen Vorrichtungen, z. B. Steuerungen, Aktoren, Sensoren usw., einschließlich der Sensoren 116, empfangen. Alternativ oder zusätzlich kann in Fällen, bei denen die Rechenvorrichtung 115 tatsächlich mehrere Vorrichtungen umfasst, das Fahrzeugkommunikationsnetzwerk für Kommunikationen zwischen Vorrichtungen verwendet werden, die in dieser Offenbarung als die Rechenvorrichtung 115 wiedergegeben sind. Zudem können, wie nachstehend erwähnt, verschiedene Steuerungen oder Erfassungselemente, wie etwa die Sensoren 116, der Rechenvorrichtung 115 Daten über das Fahrzeugkommunikationsnetzwerk bereitstellen.
-
Darüber hinaus kann die Rechenvorrichtung 115 dazu konfiguriert sein, über ein Netzwerk 130, das, wie nachstehend beschrieben, Hardware, Firmware und Software beinhaltet, die es der Rechenvorrichtung 115 ermöglichen, über ein Netzwerk 130, wie etwa drahtloses Internet (WLAN) oder Mobilfunknetzwerke, mit einem entfernten Servercomputer 120 zu kommunizieren, durch eine Fahrzeug-Infrastruktur-Schnittstelle (V-to-I-Schnittstelle) 111 mit einem entfernten Servercomputer 120, z. B. einem Cloud-Server, zu kommunizieren. Die V-to-I-Schnittstelle 111 kann dementsprechend Prozessoren, Speicher, Sendeempfänger usw. beinhalten, die dazu konfiguriert sind, verschiedene drahtgebundene und/oder drahtlose Netzwerktechnologien zu nutzen, z. B. Mobilfunk, BLUETOOTH® und drahtgebundene und/oder drahtlose Paketnetzwerke. Die Rechenvorrichtung 115 kann dazu konfiguriert sein, mit anderen Fahrzeugen 110 über die V-to-I-Schnittstelle 111 unter Verwendung von Fahrzeug-zu-Fahrzeug(V-to-V)-Netzwerken zu kommunizieren, z. B. gemäß dedizierter Nahbereichskommunikation (Dedicated Short Range Communications - DSRC) und/oder dergleichen, die z. B. auf einer Ad-hoc-Grundlage unter nahegelegenen Fahrzeugen 110 oder durch infrastrukturbasierte Netzwerke gebildet werden. Die Rechenvorrichtung 115 beinhaltet zudem einen nichtflüchtigen Speicher, wie er bekannt ist. Die Rechenvorrichtung 115 kann Informationen protokollieren, indem sie die Informationen zum späteren Abrufen und Übertragen über das Fahrzeugkommunikationsnetzwerk und eine Fahrzeug-Infrastruktur(V-to-I)-Schnittstelle 111 an einen Servercomputer 120 oder eine mobile Vorrichtung 160 eines Benutzers in nichtflüchtigem Speicher speichert.
-
Wie bereits erwähnt, ist in Anweisungen, die in dem Speicher gespeichert und durch den Prozessor der Rechenvorrichtung 115 ausführbar sind, im Allgemeinen eine Programmierung zum Betreiben einer oder mehrerer Komponenten des Fahrzeugs 110, z. B. Bremsen, Lenkung, Antrieb usw., ohne Eingreifen eines menschlichen Bedieners enthalten. Unter Verwendung von in der Rechenvorrichtung 115 empfangenen Daten, z. B. der Sensordaten von den Sensoren 116, dem Servercomputer 120 usw., kann die Rechenvorrichtung 115 ohne einen Fahrer zum Betreiben des Fahrzeugs 110 verschiedene Bestimmungen vornehmen und/oder verschiedene Komponenten und/oder Vorgänge des Fahrzeugs 110 steuern. Beispielsweise kann die Rechenvorrichtung 115 eine Programmierung zum Regeln des Betriebsverhaltens des Fahrzeugs 110 (d. h. physische Manifestationen des Betriebs des Fahrzeugs 110), wie etwa Geschwindigkeit, Beschleunigung, Abbremsung, Lenken usw., sowie des taktischen Verhaltens (d. h. Steuerung des Betriebsverhaltens auf eine Weise, die in der Regel ein sicheres und effizientes Abfahren einer Route erreichen soll), wie etwa einer Entfernung zwischen Fahrzeugen und/oder einer Zeit zwischen Fahrzeugen, Spurwechseln, des Mindestabstands zwischen Fahrzeugen, der Mindestzeit zur Wegquerung bei Linksabbiegung, der Zeit bis zur Ankunft an einem bestimmten Standort und der Mindestzeit bis zum Überqueren der Kreuzung an einer Kreuzung (ohne Ampel).
-
Im hier verwendeten Sinne beinhaltet der Ausdruck Steuerungen Rechenvorrichtungen, die in der Regel zum Steuern eines konkreten Fahrzeugteilsystems programmiert sind. Zu Beispielen zählen eine Antriebsstrangsteuerung 112, eine Bremssteuerung 113 und eine Lenksteuerung 114. Eine Steuerung kann eine elektronische Steuereinheit (electronic control unit - ECU) sein, wie sie bekannt ist, und möglicherweise eine zusätzliche Programmierung, wie hier beschrieben, beinhalten. Die Steuerungen können kommunikativ mit der Rechenvorrichtung 115 verbunden sein und Anweisungen von dieser empfangen, um das Teilsystem gemäß den Anweisungen zu betätigen. Beispielsweise kann die Bremssteuerung 113 Anweisungen zum Betreiben der Bremsen des Fahrzeugs 110 von der Rechenvorrichtung 115 empfangen.
-
Die eine oder die mehreren Steuerungen 112, 113, 114 für das Fahrzeug 110 können bekannte elektronische Steuereinheiten (ECUs) oder dergleichen beinhalten, die als nicht einschränkende Beispiele eine oder mehrere Antriebsstrangsteuerungen 112, eine oder mehrere Bremssteuerungen 113 und eine oder mehrere Lenksteuerungen 114 beinhalten. Jede der Steuerungen 112, 113, 114 kann jeweilige Prozessoren und Speicher und einen oder mehrere Aktoren beinhalten. Die Steuerungen 112, 113, 114 können mit einem Kommunikationsbus des Fahrzeugs 110 programmiert und verbunden sein, wie etwa einem Controller-Area-Network(CAN)-Bus oder Local-Interconnect-Network(LIN)-Bus, um Anweisungen vom Computer 115 zu empfangen und Aktoren auf Grundlage der Anweisungen zu steuern.
-
Die Sensoren 116 können eine Vielfalt an Vorrichtungen beinhalten, die für die Bereitstellung von Daten über den Fahrzeugkommunikationsbus bekannt sind. Zum Beispiel kann ein Radar, das an einem vorderen Stoßfänger (nicht gezeigt) des Fahrzeugs 110 befestigt ist, eine Entfernung des Fahrzeugs 110 zu einem nächsten Fahrzeug vor dem Fahrzeug 110 bereitstellen, oder kann ein Sensor für ein globales Positionsbestimmungssystem (GPS), der in dem Fahrzeug 110 angeordnet ist, geografische Koordinaten des Fahrzeugs 110 bereitstellen. Die Entfernung(en), die durch das Radar und/oder andere Sensoren 116 bereitgestellt wird/werden, und/oder die geografischen Koordinaten, die durch den GPS-Sensor bereitgestellt werden, können durch die Rechenvorrichtung 115 verwendet werden, um das Fahrzeug 110 zum Beispiel autonom oder halbautonom zu betreiben.
-
Das Fahrzeug 110 ist im Allgemeinen ein Landfahrzeug 110, das autonom und/oder halbautonom betrieben werden kann und das drei oder mehr Räder aufweist, z. B. ein PKW, ein Kleinlaster usw. Das Fahrzeug 110 beinhaltet einen oder mehrere Sensoren 116, die V-to-I-Schnittstelle 111, die Rechenvorrichtung 115 und eine oder mehrere Steuerungen 112, 113, 114. Die Sensoren 116 können Daten bezüglich des Fahrzeugs 110 und der Umgebung, in der das Fahrzeug 110 betrieben wird, sammeln. Beispielhaft und nicht einschränkend können die Sensoren 116 z. B. Höhenmesser, Kameras, LIDAR, Radar, Ultraschallsensoren, Infrarotsensoren, Drucksensoren, Beschleunigungsmesser, Gyroskope, Temperatursensoren, Drucksensoren, Hall-Sensoren, optische Sensoren, Spannungssensoren, Stromsensoren, mechanische Sensoren, wie etwa Schalter, usw. beinhalten. Die Sensoren 116 können verwendet werden, um die Umgebung zu erfassen, in der das Fahrzeug 110 betrieben wird, z.B. können die Sensoren 116 Phänomene wie etwa Wetterbedingungen (Niederschlag, Außenumgebungstemperatur usw.), die Neigung einer Straße, den Standort einer Straße (z. B. unter Verwendung von Straßenrändern, Spurmarkierungen usw.) oder Standorte von Zielobjekten wie etwa Nachbarfahrzeugen 110 detektieren. Die Sensoren 116 können ferner verwendet werden, um Daten, einschließlich dynamischer Daten des Fahrzeugs 110, die sich auf Vorgänge des Fahrzeugs 110 beziehen, wie etwa Geschwindigkeit, Gierrate, Lenkwinkel, Motordrehzahl, Bremsdruck, Öldruck, des auf die Steuerungen 112, 113, 114 in dem Fahrzeug 110 angewandten Leistungspegels, Konnektivität zwischen Komponenten und einer genauen und rechtzeitigen Leistung von Komponenten des Fahrzeugs 110, zu sammeln.
-
2 ist eine Darstellung einer Verkehrsszene 200. Die Verkehrsszene 200 beinhaltet eine Fahrbahn 202 und auf der Fahrbahn 202 fahrende Fahrzeuge 204. Die Verkehrsszene 200 beinhaltet zudem eine Videokamera 206, die an einer Stange 208 montiert ist, was es der Videokamera 206 ermöglicht, Videostreamdaten zu erfassen, die Einzelbilder von Videodaten aus einem Sichtfeld 210 beinhalten, das in der Verkehrsszene 200 durch gepunktete Linien veranschaulicht ist. Die Videokamera 206 kann Rot-Grün-Blau(RGB)-Videodaten oder Videodaten, die andere Codierungen und Wellenlängen von Licht beinhalten, erfassen. Beispielsweise kann die Videokamera 206 Infrarot(IR)-Videodaten oder Kombinationen von sichtbaren und IR-Wellenlängen erfassen. Die Videokamera 206 kann an anderen Plattformen montiert sein, die einen Blick auf die Fahrbahn 202 und von Zeit zu Zeit auf Fahrzeuge 204, wenn sie das Sichtfeld 210, beispielsweise Gebäude oder andere Strukturen wie Überführungen, Schilder oder Ampeln, passieren, bereitstellen. Die Videokamera 206 kann zudem an sich bewegenden Plattformen wie Fahrzeugen, Drohnen oder mobilen Masten montiert sein, solange die Videokamera 206 und somit das Sichtfeld 210 für einen Zeitraum stationär gehalten werden kann, der zur Durchführung der hierin erörterten Berechnungen erforderlich ist. Der zum Durchführen der hierin erörterten Berechnungen erforderliche Zeitraum kann von weniger als einer Sekunde bis zu weniger als 10 Sekunden reichen.
-
Die Videokamera 206 kann mit einem Verkehrsinfrastruktursystem 100 in Kommunikation stehen. Das Verkehrsinfrastruktursystem 100 kann eine Rechenvorrichtung beinhalten, die Videostreamdaten von einer Videokamera 206 erfasst und die Videostreamdaten verarbeitet, um Daten bezüglich sich bewegenden Objekten, einschließlich beispielsweise Fahrzeugen 204 und Fußgängern, in einem Sichtfeld 210 zu bestimmen. Das Verkehrsinfrastruktursystem 100 kann Daten bezüglich der sechsachsigen Lage der Videokamera 206 erfassen. Daten bezüglich der sechsachsigen Lage einer Videokamera können erhalten werden, indem ein Bild eines Objekts erfasst wird, wobei die Größe, Lage und Ausrichtung des Objekts in Bezug auf die Fahrbahn 202 in der realen Welt in globalen Koordinaten gemessen werden. Die sechsachsige Lage beinhaltet die dreidimensionale (3D) Position der Videokamera 206 auf einer x-, einer y- und einer z-Achse, die in Bezug auf ein globales Koordinatensystem, wie etwa Breitengrad, Längengrad und Höhe, gemessen werden. Die sechsachsige Lage beinhaltet zudem die Richtung, die als Roll-, Nick- und Gier-Drehung um jeweils die x-, die y- bzw. die z-Achse gemessen wird. Durch Bestimmen der sechsachsigen Lage einer Videokamera 206, des Vergrößerungsfaktors einer in der Videokamera 206 enthaltenen Linse und daher der Form und Größe des Sichtfelds 210 zusammen mit Daten bezüglich der Lage einer zweidimensionalen Ebene parallel zur Fahrbahn 202 können Objekte, die sich in Videodaten der Videokamera 206 befinden, von Pixelkoordinaten bezüglich eines Videoeinzelbilds in Koordinaten in der realen Welt umgewandelt werden.
-
3 ist eine Darstellung eines Bilds 300 einer Verkehrsszene, das in Schwarzweiß wiedergegeben ist, um den Vorschriften des Patentamts nachzukommen. Bei dem Bild 300 kann es sich beispielsweise um ein Einzelbild von Videodaten einer Videokamera 206 handeln. Das Bild 300 beinhaltet eine Fahrbahn 302 und Pixeldaten, die zwei Fußgängern 304, 306 entsprechen. Die in dieser Schrift beschriebenen Techniken können den Betrieb eines Fahrzeugs 110 verbessern, indem eine Geschwindigkeit und Richtung von sich bewegenden Objekten in einem Sichtfeld 210 einer Videokamera 206, in diesem Beispiel zweier Fußgänger 304, 306, bestimmt werden. Ein Fahrzeug 110 kann auf einer Fahrbahn 302 betrieben werden, indem ein Fahrzeugweg bestimmt wird, der zukünftige Standorte des Fahrzeugs 110, während es auf der Fahrbahn 302 fährt, vorhersagt. Das Bestimmen der Geschwindigkeit und Richtung von sich bewegenden Objekten in Bezug auf ein Fahrzeug 110 kann es einer Rechenvorrichtung 115 ermöglichen, auf Grundlage vorhergesagter zukünftiger Standorte des Fahrzeugs 110 und der sich bewegenden Objekte einen Fahrzeugweg zu bestimmen, der die sich bewegenden Objekte umfährt.
-
4 ist ein/e beispielhafte/s Exzentrizitätsbild oder -abbildung 400, das/die in Schwarzweiß wiedergegeben ist, um den Vorschriften des Patentamts nachzukommen. Darüber hinaus ist anzumerken, dass der Hintergrund der Exzentrizitätsabbildung
400 in Weiß wiedergegeben ist, das für gewöhnlich für hohe Exzentrizitätswerte steht, und nicht in Schwarz, das für gewöhnlich für niedrige Exzentrizitätswerte steht, um die Lesbarkeit zu verbessern. Die Exzentrizitätsabbildung
400 wird von einem Exzentrizitätsprozess, der in den Gleichungen (1)-(5) beschrieben ist, als Reaktion auf eingegebene Videostreamdaten ausgegeben. Vor dem Berechnen der Exzentrizitätsabbildung
440 können Pixeldaten beispielsweise aus einem Mehrfachwertformat wie der Rot-Grün-Blau(RGB)-Codierung, bei der jedes Pixel drei Acht-Bit-Werte beinhalten kann, die einem roten, einem grünen und einem blauen Videokanal entsprechen, in einen einzelnen Acht-Bit-Graustufenwert umgewandelt werden. Die Exzentrizität ist ein Maß für das Ausmaß an Wertänderung von Pixeln in Videostreamdaten, wenn die Videostreamdaten eine Vielzahl von Einzelbildern von Videodaten beinhalten, die in regelmäßigen Zeitintervallen erfasst wurden. Die Exzentrizitätsverarbeitung berechnet eine pro Pixel normierte Exzentrizität ε
k für ein Videoeinzelbild (einen Videobildzeitpunkt) k von Videostreamdaten auf Grundlage einer Bestimmung eines Pro-Pixel-Mittelwerts und einer Pro-Pixelvarianz für Videostreamdaten und eines Vergleichs des aktuellen Werts eines Pixels mit dem Mittelwert für dieses Pixel, einschließlich der Varianz. Die Exzentrizität ε
k kann zusammenhänge Pixelregionen bestimmen, die sich bewegenden Objekten in Videostreamdaten entsprechen, indem auf Grundlage des Exzentrizitätswerts ε
k eines Pixels Vordergrund- und Hintergrundpixel bestimmt werden. Die Exzentrizität ε
k liegt bei Pixeln, deren Werte sich über die Zeit von Videoeinzelbild zu Videoeinzelbild nicht ändern, d. h. Hintergrundpixeln, tendenziell bei null oder einem kleinen Wert (nahe null). Die Exzentrizität ε
k beträgt bei Pixeln, deren Werte sich über die Zeit ändern, d.. Vordergrundpixeln, tendenziell nicht null. Vordergrundpixel entsprechen sich bewegenden Objekten wie Fahrzeugen und Fußgängern. Zum Zeitpunkt k kann durch Gleichung (1) ein Pro-Pixel-Mittelwert µ
k für Pixelabtastwerte bis zum Zeitpunkt k berechnet werden.
wobei x
k der Pixelwert zum Zeitpunkt k ist und α ein exponentieller Abklingfaktor im Bereich (0,1) ist und einem „Vernachlässigungsfaktor“ entspricht, der die Wirkung von Videodaten auf die Exzentrizität ε
k bei zunehmender Entfernung zum Zeitpunkt k verringert, was ein begrenztes Fenster von Videoeinzelbildern schafft, das bei jedem Einzelbild aktualisiert wird. Die Konstante α kann durch Benutzereingabe bestimmt werden. Die Pro-Pixel-Varianz
für Abtastwerte bis zum Zeitpunkt k kann durch die Gleichungen (2) und (3) unter Verwendung einer temporären Variable
berechnet werden:
-
Der Pro-Pixel-Mittelwert µ
k und die Pro-Pixel-Varianz
können kombiniert werden, um die Exzentrizität ε
k zu berechnen:
wobei max
eine Funktion ist, die das Maximum zwischen der Varianz
und einer Konstante y auswählt, die durch Benutzereingabe bestimmt werden kann, um eine numerische Instabilität zu vermeiden, wenn
gegen null geht. Die normierte Exzentrizität ε
k
norm kann durch Gleichung (5) berechnet werden, welche die Exzentrizität ε
k
norm auf Werte im Bereich (0,1) normiert:
-
4 beinhaltet zwei sich bewegende Objekte 402, 404, die den Fußgängern 302, 304 aus 3 entsprechen. Pixeldaten, die den sich bewegenden Objekten 402, 404 entsprechen, weisen nahe dem Rand des sich bewegenden Objekts 402, 404, das der Bewegungsrichtung am nächsten liegt, die höchste durchschnittliche Intensität auf, wobei die Pixelintensitäten proportional zur Geschwindigkeit der sich bewegenden Objekte 402, 404 sind. Die in dieser Schrift beschriebenen Techniken detektieren und analysieren Pixeldaten, die den sich bewegenden Objekten 402, 404 entsprechen, um die Geschwindigkeit und Richtung der sich bewegenden Objekte 402, 404 zu bestimmen. Ein Videodatenstream kann verarbeitet werden, um eine Exzentrizitätsabbildung 400 zu bestimmen. Die Exzentrizitätsabbildung 400 kann verarbeitet werden, um durch eine Schwellenwertbestimmung für die Exzentrizitätsbildung 400 unter Verwendung eines von einem Benutzer eingegebenen Schwellenwerts eine Vordergrundabbildung zu bestimmen, um Vordergrundpixel (nicht null) von Hintergrundpixeln (null oder nahe null) zu trennen. Die Vordergrundpixel können unter Verwendung von Bildmorphologie verarbeitet werden, um verbundene Regionen zusammenhängender Vordergrundpixel zu erzeugen. Bei der Bildmorphologie handelt es sich um eine Bildverarbeitungstechnik, die 2D-Formen nutzt, um räumliche Filter zu bilden. Die Vordergrundmaske kann verwendet werden, um sich bewegende Objekte zu identifizieren und deren Position zu bestimmen. Durch Bilden eines logischen UND zwischen den Pixeln der Exzentrizitätsabbildung 400 und der Vordergrundmaske können Exzentrizitätspixeldaten, die sich bewegenden Objekten 402, 404 entsprechen, identifiziert und ihre Position bestimmt werden.
-
5 ist eine Darstellung einer Exzentrizitätsabbildung 500, die sich bewegende Objekte 402, 404, einschließlich Begrenzungsrahmen 502, 504, die jeweils um die sich bewegenden Objekte 402, 404 passen, beinhaltet. Ähnlich wie bei 4 ist anzumerken, dass der Hintergrund der Exzentrizitätsabbildung 500 in Weiß wiedergegeben ist, das für gewöhnlich für hohe Exzentrizitätswerte steht, und nicht in Schwarz, das für gewöhnlich für niedrige Exzentrizitätswerte steht, um die Lesbarkeit zu verbessern. Die Begrenzungsrahmen 502, 504 werden gebildet, indem kleinstmögliche umschließende Rechtecke um die verbundenen Regionen zusammenhängender Vordergrundpixel bestimmt werden, die sich bewegenden Objekten 402, 404 entsprechen, wie vorstehend in Bezug auf 4 bestimmt. Die Lage der Begrenzungsrahmen 502, 504 in den Pixelkoordinaten stellt die Lage der sich bewegenden Objekte 402, 404 dar. Beispielsweise kann der geometrische Mittelpunkt der Begrenzungsrahmen 502, 504 in den Pixelkoordinaten die Lage des jeweiligen sich bewegenden Objekts 402, 404 darstellen. Die Pixeldaten innerhalb der Begrenzungsrahmen 502, 504 können verarbeitet werden, indem Gradienten berechnet werden, wie nachstehend in Bezug auf 6 erörtert, um eine Richtung und Geschwindigkeit für die sich bewegenden Objekte 402, 404 zu bestimmen.
-
6 ist eine Darstellung einer beispielhaften Exzentrizitätsgradientenberechnung. Ähnlich wie bei den 4 und 5 ist anzumerken, dass der Hintergrund des Begrenzungsrahmens 602 in Weiß wiedergegeben ist, das für gewöhnlich für hohe Exzentrizitätswerte steht, und nicht in Schwarz, das für gewöhnlich für niedrige Exzentrizitätswerte steht, um die Lesbarkeit zu verbessern. Die Exzentrizitätsgradientenberechnung bestimmt Gradienten für jedes sich bewegende Objekt 402, 404, indem zunächst ein horizontaler Gradient gx und ein vertikaler Gradient gy berechnet werden. 6 veranschaulicht dies mithilfe eines beispielhaften Begrenzungsrahmens 602, der Vordergrundpixel 604 beinhaltet, die einem sich bewegenden Objekt 402, 404 entsprechen. Die Exzentrizitätsgradientenberechnung extrahiert ein horizontales Liniensegment 606 aus dem Begrenzungsrahmen 602, indem sie die Pixelwerte 608 innerhalb des horizontalen Liniensegments 606 in einen Zwischenspeicher 610 kopiert. Der Zwischenspeicher 610 ist in einen linken Teil 612 und einen rechten Teil 614 unterteilt. Der horizontale Gradient gx wird bestimmt, indem die Summe der Pixelwerte 608 im linken Teil 612 (in diesem Beispiel 1,0) von der Summe der Pixelwerte 608 im rechten Teil 614 (in diesem Beispiel 4,6) subtrahiert und das Ergebnis (in diesem Beispiel 3,6) zum horizontalen Gradienten gx addiert wird. Diese Berechnung wird für jedes horizontale Liniensegment 606 im Begrenzungsrahmen 602 wiederholt, um den horizontalen Gradienten gx zu bestimmen.
-
Die Exzentrizitätsgradientenberechnung berechnet den vertikalen Gradienten g
y auf die gleiche Weise, indem sie Pixelwerte
608 aus jedem im Begrenzungsrahmen
602 enthaltenen vertikalen Liniensegment extrahiert, den summierten unteren Teil vom summierten oberen Teil des daraus resultierenden Zwischenspeichers subtrahiert und das Ergebnis zum vertikalen Gradienten g
y addiert. Der horizontale Gradient g
x und der vertikale Gradient g
y können gemäß den folgenden Gleichungen kombiniert werden, um Bewegungskomponenten einschließlich Bewegungsrichtung θ und Größe oder Geschwindigkeit G zu berechnen:
-
Für jedes sich bewegende Objekt 402, 404 können Werte für Richtung θ und Geschwindigkeit G mit derx-, y-Lage aus dem Begrenzungsrahmen kombiniert werden.
-
7 ist eine Darstellung eines Bilds 700 einer Verkehrsszene, die sich bewegende Objekte 402, 404 jeweils mit über das Bild 700 gelegtem Pfeil 706, 708 beinhaltet, wobei die Richtung des Pfeils 706, 708 der Bewegungsrichtung θ entspricht und die Länge des Pfeils 706, 708 proportional zu der Geschwindigkeit G ist, wie sie durch die Gradientenberechnungen bestimmt wurde, die an den Exzentrizitätsabbildungsdaten durchgeführt wurden, wie vorstehend in Bezug auf die vorstehenden 4-6 erörtert. Werte für Richtung θ und Geschwindigkeit G für jedes sich bewegende Objekt 402, 404 und eine Lage in Pixelkoordinaten können unter Verwendung von Daten bezüglich der sechsachsigen Lage und Ausrichtung der Videokamera, welche die Videostreamdaten erfasst hat, eines Vergrößerungsfaktors einer in der Videokamera enthaltenen Linse und Daten bezüglich der Lage einer 2D-Ebene parallel zu einer Fahrbahn 710, die im Sichtfeld der Videokamera enthalten ist, in globale Koordinaten umgewandelt werden. Die Lage und Ausrichtung der Videokamera, der Vergrößerungsfaktor und die Lage der 2D-Ebene können empirisch bestimmt werden, indem ein Videobild eines Objekts mit gemessenen Merkmalen an einer gemessenen Lage im Sichtfeld erfasst wird, wie vorstehend erörtert.
-
Die Lage, Richtung und Geschwindigkeit für sich bewegende Objekte in globalen Koordinaten können an eine in einem Fahrzeug 110 enthaltene Rechenvorrichtung 115 kommuniziert werden. Die Rechenvorrichtung 115 kann die Lage-, Geschwindigkeits- und Richtungsdaten verwenden, um einen Fahrzeugweg zu bestimmen, auf dem das Fahrzeug 110 betrieben werden soll. Die Rechenvorrichtung 115 kann einen Fahrzeugweg bestimmen und den Antriebsstrang, die Lenkung und die Bremsen des Fahrzeugs über die Steuerungen 112, 113, 114 anweisen, das Fahrzeug 110 dazu zu bringen, den Fahrzeugweg entlangzufahren. Die sich bewegenden Objekten 402, 404 entsprechenden Daten bezüglich Lage, Richtung und Geschwindigkeit können in die Bestimmung des Fahrzeugwegs einbezogen werden, um beispielsweise einen Fahrzeugweg zu bestimmen, der die sich bewegenden Objekte 402, 404 umfährt. Die hier beschriebenen Techniken verbessern den Betrieb des Fahrzeugs 110, indem sie schnelle und effiziente Berechnungen der Richtung, Geschwindigkeit und Lage eines sich bewegenden Objekts 402, 404 bereitstellen, ohne dass komplexe benutzerdefinierte Parameter erforderlich sind, wodurch es der Rechenvorrichtung 115 ermöglicht wird, effizient einen Fahrzeugweg für den Betrieb des Fahrzeugs 110 zu bestimmen, der die sich bewegenden Objekte 402, 404 sicher umfährt.
-
8 ist ein Ablaufdiagramm eines Prozesses 800 zum Betreiben eines Fahrzeugs auf Grundlage einer Bestimmung von Bewegungskomponenten für sich bewegende Objekte, das in Bezug auf die 1-7 beschrieben wird. Der Prozess 800 kann durch einen Prozessor der Rechenvorrichtung 115 umgesetzt werden, der als Eingabe Informationen von Sensoren heranzieht und Befehle ausführt und zum Beispiel Objektnachverfolgungsinformationen an ein Fahrzeug 110 sendet. Der Prozess 800 beinhaltet mehrere Blöcke, die in der offenbarten Reihenfolge erfolgen. Der Prozess 800 könnte alternativ oder zusätzlich weniger Blöcke beinhalten oder kann die Blöcke in anderen Reihenfolgen beinhalten.
-
Der Prozess 800 beginnt bei einem Block 802, in dem eine Rechenvorrichtung Videostreamdaten erfasst und eine Exzentrizitätsabbildung bestimmt, wie vorstehend in Bezug auf 4 erörtert. Die Videostreamdaten können von einer stationären Videokamera 206 mit bestimmter sechsachsiger Lage und Ausrichtung, bestimmtem Linsenvergrößerungsfaktor und einer Lage einer 2D-Ebene parallel zu einer Fahrbahn 202 im Sichtfeld 210 der Videokamera 206 erfasst werden.
-
Bei Block 804 bestimmt eine Rechenvorrichtung sich bewegende Objekte 402, 404 durch Bestimmen einer Vordergrundmaske, wie vorstehend in Bezug auf 4 erörtert, und Legen der Maske über die Exzentrizitätsabbildung 400, um verbundene Pixelregionen und Begrenzungsrahmen 502, 504 für jedes sich bewegende Objekt 402 404 zu bestimmen.
-
Bei Block 806 berechnet eine Rechenvorrichtung den horizontalen Gradienten gx und den vertikalen Gradienten gy für jedes sich bewegende Objekt 402, 404 gemäß den Berechnungen, die in Bezug auf die vorstehende 5 und die Gleichungen (6) und (7) erörtert wurden.
-
Bei Block 808 bestimmt eine Rechenvorrichtung Richtungs- und Geschwindigkeitsbewegungskomponenten für jedes sich bewegende Objekt 402, 404 auf Grundlage der horizontalen Gradienten gx und der vertikalen Gradienten gy. Diese Daten können mit Lagedaten von den Begrenzungsrahmen 502, 504 kombiniert und von Pixelkoordinaten in globale Koordinaten umgewandelt werden, wie vorstehend in Bezug auf die vorstehende 6 beschrieben.
-
Bei Block 810 kann eine Rechenvorrichtung 115 in einem Fahrzeug 110 auf Grundlage der umgewandelten Richtungs- und Geschwindigkeitskoordinaten einen Fahrzeugweg bestimmen, der das sich bewegende Objekt 402, 404 umfährt, und das Fahrzeug 110 betreiben, indem sie den Fahrzeugantriebsstrang, die Lenkung und die Bremsen anweist, das Fahrzeug 110 dazu zu bringen, den Fahrzeugweg entlangzufahren. Im Anschluss an Block 810 endet der Prozess 800.
-
Rechenvorrichtungen, wie etwa die in dieser Schrift erörterten, beinhalten im Allgemeinen jeweils Befehle, die durch eine oder mehrere Rechenvorrichtungen, wie etwa die vorstehend genannten, und zum Ausführen von Blöcken oder Schritten von vorstehend beschriebenen Prozessen ausführbar sind. Beispielsweise können die vorstehend erörterten Prozessblöcke als computerausführbare Befehle umgesetzt sein.
-
Computerausführbare Befehle können von Computerprogrammen zusammengestellt oder interpretiert werden, die unter Verwendung vielfältiger Programmiersprachen und/oder - technologien erstellt wurden, einschließlich unter anderem, entweder allein oder in Kombination Java™, C, C++, Python, Julia, SCALA, Visual Basic, Java Script, Perl, HTML usw. Im Allgemeinen empfängt ein Prozessor (z. B. ein Mikroprozessor) Befehle, z. B. von einem Speicher, einem computerlesbaren Medium usw., und führt diese Befehle aus, wodurch er einen oder mehrere Prozesse durchführt, einschließlich eines oder mehrerer der hierin beschriebenen Prozesse. Derartige Befehle und andere Daten können in Dateien gespeichert und unter Verwendung vielfältiger computerlesbarer Medien übertragen werden. Eine Datei in einer Rechenvorrichtung ist im Allgemeinen eine Sammlung von Daten, die auf einem computerlesbaren Medium, wie etwa einem Speichermedium, einem Direktzugriffsspeicher usw., gespeichert ist.
-
Ein computerlesbares Medium beinhaltet jedes beliebige Medium, das am Bereitstellen von Daten (z. B. Befehlen) beteiligt ist, die durch einen Computer gelesen werden können. Ein derartiges Medium kann viele Formen annehmen, einschließlich unter anderem nichtflüchtiger Medien, flüchtiger Medien usw. Zu nicht flüchtigen Medien zählen zum Beispiel optische oder magnetische Platten und sonstige Dauerspeicher. Flüchtige Medien beinhalten einen dynamischen Direktzugriffsspeicher (dynamic random access memory - DRAM), der in der Regel einen Hauptspeicher darstellt. Gängige Formen computerlesbarer Medien beinhalten beispielsweise eine Diskette, eine Folienspeicherplatte, eine Festplatte, ein Magnetband, ein beliebiges anderes magnetisches Medium, eine CD-ROM, eine DVD, ein beliebiges anderes optisches Medium, Lochkarten, Lochstreifen, ein beliebiges anderes physisches Medium mit Lochmustern, einen RAM, einen PROM, einen EPROM, einen FLASH-EEPROM, einen beliebigen anderen Speicherchip oder eine beliebige andere Speicherkassette oder ein beliebiges anderes Medium, das von einem Computer gelesen werden kann.
-
Alle in den Patentansprüchen verwendeten Ausdrücke sollen ihre klare und gewöhnliche Bedeutung aufweisen, wie sie von einem Fachmann verstanden wird, sofern hierin nicht ausdrücklich das Gegenteil angegeben wird. Insbesondere ist die Verwendung der Singularartikel, wie etwa „ein“, „eine“, „der“, „die“, „das“ usw., dahingehend auszulegen, dass ein oder mehrere der aufgeführten Elemente genannt werden, sofern ein Anspruch nicht eine ausdrückliche gegenteilige Einschränkung enthält.
-
Der Ausdruck „beispielhaft“ wird hier in dem Sinne verwendet, dass er ein Beispiel angibt; z. B. sollte ein Verweis auf ein „beispielhaftes Gerät“ einfach als Bezugnahme auf ein Beispiel für ein Gerät gelesen werden.
-
Das einen Wert oder ein Ergebnis modifizierende Adverb „ungefähr“ bedeutet, dass eine Form, eine Struktur, eine Messung, ein Wert, eine Bestimmung, eine Berechnung usw. von einer/einem genau beschriebenen Geometrie, Entfernung, Messung, Wert, Bestimmung, Berechnung usw. aufgrund von Mängeln hinsichtlich Materialien, Bearbeitung, Herstellung, Sensormessungen, Berechnungen, Bearbeitungszeit, Kommunikationszeit usw. abweichen kann.
-
In den Zeichnungen geben gleiche Bezugszeichen gleiche Elemente an. Zudem könnten einige oder alle dieser Elemente geändert werden. Hinsichtlich der hierin beschriebenen Medien, Prozesse, Systeme, Verfahren usw. versteht es sich, dass, obwohl die Schritte oder Blöcke derartiger Prozesse usw. zwar als gemäß einer bestimmten Abfolge erfolgend beschrieben worden sind, derartige Prozesse jedoch so umgesetzt werden könnten, dass die beschriebenen Schritte in einer anderen Reihenfolge als der in dieser Schrift beschriebenen Reihenfolge durchgeführt werden. Es versteht sich zudem, dass bestimmte Schritte gleichzeitig durchgeführt, andere Schritte hinzugefügt oder bestimmte hierin beschriebene Schritte weggelassen werden könnten. Anders ausgedrückt, werden die vorliegenden Beschreibungen von Prozessen zur Veranschaulichung bestimmter Ausführungsformen bereitgestellt und sollten keinesfalls dahingehend ausgelegt werden, dass sie die beanspruchte Erfindung einschränken.
-
Gemäß der vorliegenden Erfindung wird ein Computer bereitgestellt, der Folgendes aufweist: einen Prozessor; und einen Speicher, wobei der Speicher Anweisungen beinhaltet, die von dem Prozessor ausgeführt werden, um Folgendes durchzuführen: Detektieren eines sich bewegenden Objekts in Videostreamdaten auf Grundlage einer Bestimmung einer Exzentrizitätsabbildung; Bestimmen einer Größe und Richtung der Bewegung des sich bewegenden Objekts; Umwandeln der Größe und Richtung in globale Koordinaten; und Betreiben eines Fahrzeugs auf Grundlage der umgewandelten Größe und Richtung.
-
Gemäß einer Ausführungsform ist die Erfindung ferner dadurch gekennzeichnet, dass sie Anweisungen zum Bestimmen der Exzentrizitätsabbildung auf Grundlage eines Pro-Pixel-Mittelwerts und einer Pro-Pixel-Varianz, die anhand von Videostreamdaten berechnet wurden, beinhaltet.
-
Gemäß einer Ausführungsform ist die Erfindung ferner dadurch gekennzeichnet, dass sie Anweisungen zum Bestimmen der Exzentrizitätsabbildung auf Grundlage von Videostreamdaten, die durch einen von einem Benutzer eingegebenen Vernachlässigungsfaktor α bestimmt werden, beinhaltet.
-
Gemäß einer Ausführungsform ist die Erfindung ferner dadurch gekennzeichnet, dass sie Anweisungen zum Detektieren des sich bewegenden Objekts durch Bestimmen einer Vordergrundmaske auf Grundlage einer Schwellenwertbestimmung für die Exzentrizitätsabbildung beinhaltet.
-
Gemäß einer Ausführungsform ist die Erfindung ferner dadurch gekennzeichnet, dass sie Anweisungen zum Detektieren des sich bewegenden Objekts durch Bestimmen einer verbundenen Pixelregion auf Grundlage der Vordergrundmaske und Bestimmen eines Begrenzungsrahmens auf Grundlage der verbundenen Region beinhaltet.
-
Gemäß einer Ausführungsform ist die Erfindung ferner dadurch gekennzeichnet, dass sie Anweisungen zum Bestimmen eines x- und eines y-Bewegungsgradienten des sich bewegenden Objekts durch Berechnen und Kumulieren von Gradienten horizontaler bzw. vertikaler Liniensegmente von Vordergrundpixeln im Begrenzungsrahmen beinhaltet.
-
Gemäß einer Ausführungsform ist die Erfindung ferner dadurch gekennzeichnet, dass sie Anweisungen zum Bestimmen einer Größe und Richtung der Bewegung des sich bewegenden Objekts auf Grundlage des x- und des v-Bewegungsgradienten beinhaltet.
-
Gemäß einer Ausführungsform ist die Erfindung ferner dadurch gekennzeichnet, dass sie Anweisungen zum Umwandeln der Größe und Richtung von Pixelkoordinaten in globale Koordinaten auf Grundlage einer dreidimensionalen, sechsachsigen Lage und Richtung eines Sichtfelds einer Videokamera, welche die Videostreamdaten erfasst hat, eines Vergrößerungsfaktors einer in der Videokamera enthaltenen Linse und einer Lage einer zweidimensionalen Ebene, die in einer Fahrbahn entspricht, in dem Sichtfeld der Videokamera beinhaltet.
-
Gemäß einer Ausführungsform ist die Erfindung ferner dadurch gekennzeichnet, dass sie Anweisungen zum Bestimmen eines Fahrzeugwegs auf Grundlage der Größe und Richtung beinhaltet.
-
Gemäß einer Ausführungsform ist die Erfindung ferner dadurch gekennzeichnet, dass sie Anweisungen zum Betreiben des Fahrzeugs auf dem Fahrzeugweg und dadurch Umfahren des sich bewegenden Objekts beinhaltet.
-
Gemäß der vorliegenden Erfindung beinhaltet ein Verfahren Folgendes: Detektieren eines sich bewegenden Objekts in Videostreamdaten auf Grundlage einer Bestimmung einer Exzentrizitätsabbildung; Bestimmen einer Größe und Richtung der Bewegung des sich bewegenden Objekts; Umwandeln der Größe und Richtung in globale Koordinaten; und Betreiben eines Fahrzeugs auf Grundlage der umgewandelten Größe und Richtung.
-
Gemäß einer Ausführungsform ist die Erfindung ferner gekennzeichnet durch ein Bestimmen der Exzentrizitätsabbildung auf Grundlage eines Pro-Pixel-Mittelwerts und einer Pro-Pixel-Varianz, die anhand von Videostreamdaten berechnet wurden.
-
Gemäß einer Ausführungsform ist die Erfindung ferner gekennzeichnet durch ein Bestimmen der Exzentrizitätsabbildung auf Grundlage von Videostreamdaten, die durch einen von einem Benutzer eingegebenen Vernachlässigungsfaktor α bestimmt werden.
-
Gemäß einer Ausführungsform ist die Erfindung ferner gekennzeichnet durch ein Detektieren des sich bewegenden Objekts durch Bestimmen einer Vordergrundmaske auf Grundlage einer Schwellenwertbestimmung für die Exzentrizitätsabbildung.
-
Gemäß einer Ausführungsform ist die Erfindung ferner gekennzeichnet durch ein Detektieren des sich bewegenden Objekts durch Bestimmen einer verbundenen Pixelregion auf Grundlage der Vordergrundmaske und Bestimmen eines Begrenzungsrahmens auf Grundlage der verbundenen Region.
-
Gemäß einer Ausführungsform ist die Erfindung ferner gekennzeichnet durch ein Bestimmen eines x- und eines y-Bewegungsgradienten des sich bewegenden Objekts durch Berechnen und Kumulieren von Gradienten horizontaler bzw. vertikaler Liniensegmente von Vordergrundpixeln im Begrenzungsrahmen.
-
Gemäß einer Ausführungsform ist die Erfindung ferner gekennzeichnet durch ein Bestimmen einer Größe und Richtung der Bewegung des sich bewegenden Objekts auf Grundlage des x- und des y-Bewegungsgradienten.
-
Gemäß einer Ausführungsform ist die Erfindung ferner gekennzeichnet durch ein Umwandeln der Größe und Richtung von Pixelkoordinaten in globale Koordinaten auf Grundlage einer dreidimensionalen, sechsachsigen Lage und Richtung eines Sichtfelds einer Videokamera, welche die Videostreamdaten erfasst hat, eines Vergrößerungsfaktors einer in der Videokamera enthaltenen Linse und einer Lage einer zweidimensionalen Ebene, die einer Fahrbahn entspricht, in dem Sichtfeld der Videokamera.
-
Gemäß einer Ausführungsform ist die Erfindung ferner gekennzeichnet durch ein Bestimmen eines Fahrzeugwegs auf Grundlage der Größe und Richtung.
-
Gemäß einer Ausführungsform ist die Erfindung ferner gekennzeichnet durch ein Betreiben des Fahrzeugs auf dem Fahrzeugweg und dadurch Umfahren des sich bewegenden Objekts.