-
TECHNISCHES GEBIET
-
Die Offenbarung bezieht sich im Allgemeinen auf Fahrzeugsensoren und Computersysteme.
-
STAND DER TECHNIK
-
Fahrzeuge können so ausgerüstet werden, dass sie sowohl im autonomen als auch im insassengesteuerten Modus betrieben werden können. Fahrzeuge können mit Rechenvorrichtungen, Netzwerken, Sensoren und Steuergeräten ausgestattet werden, um Daten über die Fahrzeugumgebung zu erfassen und das Fahrzeug auf der Grundlage dieser Daten zu betreiben. Ein sicherer und komfortabler Betrieb des Fahrzeugs kann davon abhängen, dass genaue und rechtzeitige Daten über die Umgebung des Fahrzeugs erfasst werden. Fahrzeugsensoren können Daten über zu fahrende Strecken und zu vermeidende Objekte in der Umgebung des Fahrzeugs bereitstellen. Ein sicherer und effizienter Betrieb des Fahrzeugs kann davon abhängen, dass während des Betriebs des Fahrzeugs auf einer Straße genaue und zeitnahe Daten über Strecken und Objekte in der Umgebung des Fahrzeugs erfasst werden.
-
KURZDARSTELLUNG
-
Fahrzeuge können so ausgerüstet werden, dass sie sowohl im autonomen als auch im insassengesteuerten Modus betrieben werden können. Unter einem halb- oder vollautonomen Modus verstehen wir eine Betriebsart, wobei ein Fahrzeug als Teil eines Informationssystems, das Sensoren und Steuergeräte aufweist, teilweise oder ganz von einer Rechenvorrichtung gesteuert werden kann. Das Fahrzeug kann besetzt oder unbesetzt sein, aber in beiden Fällen kann das Fahrzeug teilweise oder vollständig ohne die Hilfe eines Insassen gesteuert werden. Für die Zwecke dieser Offenbarung wird ein autonomer Modus als ein Modus definiert, in dem der Fahrzeugantrieb (z. B. über einen Antriebsstrang einschließlich eines Verbrennungs- und/oder Elektromotors), das Bremsen und die Lenkung jeweils von einem oder mehreren Fahrzeugcomputern gesteuert werden; In einem halbautonomen Modus steuert (steuern) der (die) Fahrzeugcomputer eines oder zwei von Fahrzeugantrieb, Bremse und Lenkung. In einem nicht autonomen Modus wird nichts davon von einem Computer gesteuert.
-
Eine Rechenvorrichtung in einem Fahrzeug kann so programmiert werden, dass sie Daten über die äußere Umgebung eines Fahrzeugs erfasst und die Daten dazu verwendet, den Weg eines Fahrzeugs zu bestimmen, auf dem ein Fahrzeug auf der Grundlage des Weges eines Fahrzeugs im autonomen oder halbautonomen Modus betrieben werden kann. Der Weg eines Fahrzeugs ist eine gerade und/oder gekrümmte Linie, die aufeinanderfolgende Standorte (d. h. Standorte zu unterschiedlichen Zeiten) eines Fahrzeugs auf einer zweidimensionalen (2D-)Ebene parallel zur Oberfläche einer Fahrbahn beschreibt, auf der das Fahrzeug betrieben wird. Ein Fahrzeug kann auf einer Fahrbahn auf der Grundlage des Weges eines Fahrzeugs betrieben werden, indem Befehle zur Steuerung der Antriebsstrang-, Brems- und Lenkkomponenten des Fahrzeugs bestimmt werden, um das Fahrzeug so zu betreiben, dass es sich entlang des Weges bewegt. Die Daten bezüglich der äußeren Umgebung können den Standort eines verfolgten Objekts in globalen Koordinaten einschließen. Ein Beispiel für ein verfolgtes Objekt kann ein anderes Fahrzeug sein. Die Daten können von einem Verkehrsdatensystem empfangen werden und können auf der Verarbeitung eines Frames von Videokameradaten mit einem Kapselnetzwerk basieren.
-
Hierin wird ein Verfahren offenbart, das das Erfassen und Lokalisieren eines Objekts durch Verarbeitung von Videokameradaten mit einem Kapselnetzwerk einschließt, wobei das Training des Kapselnetzwerks das Bestimmen von Routing-Koeffizienten mit einer skaleninvarianten Normierungsfunktion und das Empfangen des erfassten und lokalisierten Objekts an einer Rechenvorrichtung einschließt. Das Training des Kapselnetzwerks kann das Bestimmen von Routing-Koeffizienten einschließen, die den Strecken zwischen den Kapselschichten entsprechen. Routing-Koeffizienten können durch Gruppierung von Strecken auf der Grundlage eines oder mehrerer von Korrelation oder Clustern nach dem Training auf der Grundlage eines ersten Trainingsdatensatzes bestimmt werden, wobei die Strecke bestimmte Elemente in einer Kapselschicht mit Standorten in einer nachfolgenden Kapselschicht verbindet. Das Training des Kapselnetzwerks kann das Bestimmen von Routing-Koeffizienten mit der skaleninvarianten Normalisierungsfunktion innerhalb einer Zählschleife einschließen. Die skaleninvariante Normalisierungsfunktion kann eine Maxmino-Funktion einschließen.
-
Das Betreiben eines Fahrzeugs kann auf dem Empfangen des erfassten und lokalisierten Objekts basieren. Das Betreiben des Fahrzeugs kann auf dem Empfangen des erfassten und lokalisierten Objekts basieren, einschließlich des Bestimmens eines vorhergesagten Standorts des Objekts in globalen Koordinaten. Das Bestimmen von Verkehrsdaten kann auf dem Empfangen des erfassten und lokalisierten Objekts basieren. Videokameradaten können mit einem oder mehreren von einer stationären Videokamera, die in einem Verkehrsinfrastruktursystem eingeschlossen ist, und einer mobilen Videokamera, die in einem oder mehreren von einem Fahrzeug und einer Drohne eingeschlossen ist, erfasst werden. Das Betreiben des Fahrzeugs auf der Grundlage der Objektstandortvorhersage kann das Bestimmen eines Fahrzeugweges und das Kombinieren der Objektstandortvorhersage mit dem Fahrzeugweg einschließen. Das Betreiben des Fahrzeugs auf der Grundlage der Standortvorhersage kann das Steuern eines oder mehrerer von Fahrzeugantriebsstrang, Bremsen und Lenkung einschließen. Die globalen Koordinaten können auf der Grundlage eines Standorts und eines Sichtbereichs einer Videokamera bestimmt werden. Die Routing-Koeffizienten können durch Iteration über einen Prozess bestimmt werden, der die maximalen Routing-Koeffizienten durch Abwechseln eines Erwartungsschritts und eines Maximierungsschritts bestimmt. Der Erwartungsschritt kann eine Kapselposition und neue Schätzungen der Routing-Koeffizienten ausgeben.
-
Ferner wird ein computerlesbares Medium offenbart, das Programmanweisungen zur Ausführung einiger oder aller der oben genannten Verfahrensschritte speichert. Ferner wird ein Computer offenbart, der zur Ausführung einiger oder aller der obigen Verfahrensschritte programmiert ist, einschließlich einer Computervorrichtung, die so programmiert ist, dass sie ein Objekt durch Verarbeiten von Videokameradaten mit einem Kapselnetzwerk erfasst und lokalisiert, wobei das Training des Kapselnetzwerks das Bestimmen von Routing-Koeffizienten mit einer skaleninvarianten Normierungsfunktion und den Empfang des erfassten und lokalisierten Objekts an einer Rechenvorrichtung einschließt. Das Training des Kapselnetzwerks kann das Bestimmen von Routing-Koeffizienten einschließen, die den Strecken zwischen den Kapselschichten entsprechen. Routing-Koeffizienten können durch Gruppierung von Strecken auf der Grundlage eines oder mehrerer von Korrelation oder Clustern nach dem Training auf der Grundlage eines ersten Trainingsdatensatzes bestimmt werden, wobei die Strecke bestimmte Elemente in einer Kapselschicht mit Standorten in einer nachfolgenden Kapselschicht verbindet. Das Training des Kapselnetzwerks kann das Bestimmen von Routing-Koeffizienten mit der skaleninvarianten Normalisierungsfunktion innerhalb einer Zählschleife einschließen. Die skaleninvariante Normalisierungsfunktion kann eine Max-min()-Funktion einschließen.
-
Der Computer kann ferner programmiert werden, um ein Fahrzeug auf der Grundlage des Empfangens des erfassten und lokalisierten Objekts zu betreiben. Das Betreiben des Fahrzeugs kann auf dem Empfangen des erfassten und lokalisierten Objekts basieren, einschließlich des Bestimmens eines vorhergesagten Standorts des Objekts in globalen Koordinaten. Das Bestimmen von Verkehrsdaten kann auf dem Empfangen des erfassten und lokalisierten Objekts basieren. Videokameradaten können mit einem oder mehreren von einer stationären Videokamera, die in einem Verkehrsinfrastruktursystem eingeschlossen ist, und einer mobilen Videokamera, die in einem oder mehreren von einem Fahrzeug und einer Drohne eingeschlossen ist, erfasst werden. Das Betreiben des Fahrzeugs auf der Grundlage der Objektstandortvorhersage kann das Bestimmen eines Fahrzeugweges und das Kombinieren der Objektstandortvorhersage mit dem Fahrzeugweg einschließen. Das Betreiben des Fahrzeugs auf der Grundlage der Standortvorhersage kann das Steuern eines oder mehrerer von Fahrzeugantriebsstrang, Bremsen und Lenkung einschließen. Die globalen Koordinaten können auf der Grundlage eines Standorts und eines Sichtbereichs einer Videokamera bestimmt werden. Die Routing-Koeffizienten können durch Iteration über einen Prozess bestimmt werden, der die maximalen Routing-Koeffizienten durch Abwechseln eines Erwartungsschritts und eines Maximierungsschritts bestimmt. Der Erwartungsschritt kann eine Kapselposition und neue Schätzungen der Routing-Koeffizienten ausgeben.
-
Figurenliste
-
- 1 ist ein Blockdiagramm eines beispielhaften Verkehrsinfrastruktursystems.
- 2 ist ein Diagramm eines beispielhaften Kapselnetzwerks.
- 3 ist ein Flussdiagramm eines beispielhaften Routing-Algorithmus.
- 4 ist ein Flussdiagramm eines weiteren beispielhaften Routing-Algorithmus.
- 5 ist ein Diagramm einer beispielhaften Verkehrsszene mit einer stationären Kamera.
- 6 ist ein Flussdiagramm eines Prozesses zum Bestimmen von Objektpositionen.
-
DETAILLIERTE BESCHREIBUNG
-
1 ist ein Diagramm eines Verkehrsinfrastruktursystems 100, das ein Fahrzeug 110 einschließt, das im autonomen („autonom“ bedeutet in dieser Offenbarung „völlig autonom“), halbautonomen und insassengesteuerten (auch als nicht autonom bezeichnet) Modus betrieben werden kann. Eine oder mehrere Rechenvorrichtungen 115 des Fahrzeugs 110 können Daten über den Betrieb des Fahrzeugs 110 von den Sensoren 116 empfangen. Die Rechenvorrichtung 115 kann das Fahrzeug 110 in einem autonomen Modus, einem halbautonomen Modus oder einem nicht autonomen Modus betreiben.
-
Die Rechenvorrichtung 115 schließt einen Prozessor und einen Speicher ein, wie sie bekannt sind. Ferner schließt der Speicher eine oder mehrere Formen von computerlesbaren Medien ein und speichert Anweisungen, die vom Prozessor ausgeführt werden können, um verschiedene Operationen durchzuführen, einschließlich der hierin offenbarten. Die Rechenvorrichtung 115 kann beispielsweise die Programmierung zur Betätigung eines oder mehrerer von Fahrzeugbremsen, Antrieb (z. B. Steuerung der Beschleunigung im Fahrzeug 110 durch Steuern eines oder mehrerer von einem Verbrennungsmotor, Elektromotor, Hybridmotor usw.), Lenkung, Klimaanlage, Innen- und/oder Außenbeleuchtung usw. sowie zur Bestimmung, ob und wann die Rechenvorrichtung 115 im Gegensatz zu einem menschlichen Bediener diese Vorgänge steuern soll, einschließen.
-
Die Rechenvorrichtung 115 kann mehrere Rechenvorrichtungen, z. B. Steuergeräte oder dergleichen, die im Fahrzeug 110 zum Überwachen und/oder Steuern verschiedener Fahrzeugkomponenten eingeschlossen sind, z. B. ein Antriebsstrangsteuergerät 112, ein Bremsensteuergerät 113, ein Lenkungssteuergerät 114 usw., einschließen oder mit diesen kommunikativ gekoppelt sein, z. B. über einen Fahrzeug-Kommunikationsbus, wie weiter unten beschrieben. Die Rechenvorrichtung 115 ist im Allgemeinen für die Kommunikation in einem Fahrzeugkommunikationsnetz, z. B. einschließlich eines Busses im Fahrzeug 110, wie z. B. ein Controller Area Network (CAN) oder ähnliches, eingerichtet; das Netzwerk des Fahrzeugs 110 kann zusätzlich oder alternativ kabelgebundene oder drahtlose Kommunikationsmechanismen einschließen, wie sie bekannt sind, z. B. Ethernet oder andere Kommunikationsprotokolle.
-
Über das Fahrzeugnetzwerk kann die Rechenvorrichtung 115 Nachrichten an verschiedene Vorrichtungen im Fahrzeug übertragen und/oder Nachrichten von den verschiedenen Vorrichtungen, z. B. Steuergeräte, Stellantriebe, Sensoren usw., einschließlich der Sensoren 116, empfangen. Alternativ oder zusätzlich kann in Fällen, in denen die Rechenvorrichtung 115 tatsächlich mehrere Vorrichtungen umfasst, das FahrzeugKommunikationsnetz für die Kommunikation zwischen Vorrichtungen verwendet werden, die in dieser Offenbarung als die Rechenvorrichtung 115 dargestellt werden. Ferner können, wie unten erwähnt, verschiedene Steuergeräte oder Sensorelemente, wie Sensoren 116, Daten über das Fahrzeugkommunikationsnetz an die Rechenvorrichtung 115 bereitstellen.
-
Darüber hinaus kann die Rechenvorrichtung 115 so konfiguriert werden, dass sie über eine Fahrzeug-zu-Infrastruktur-Schnittstelle (V-zu-I-Schnittstelle) 111 mit einem entfernten Servercomputer 120, z. B. einem Cloud-Server, über ein Netzwerk 130 kommuniziert, das, wie unten beschrieben, Hardware, Firmware und Software einschließt, die es Rechenvorrichtung 115 ermöglicht, mit einem Remote-Servercomputer 120 über ein Netzwerk 130 wie z. B. drahtloses Internet (Wi-Fi) oder zellulare Netzwerke zu kommunizieren. Die V-zu-I-Schnittstelle 111 kann dementsprechend Prozessoren, Speicher, Sender-Empfänger usw. einschließen, die so konfiguriert sind, dass sie verschiedene drahtgebundene und/oder drahtlose Netzwerktechnologien nutzen, z. B. zellulare, BLUETOOTH®- und drahtgebundene und/oder drahtlose Paketnetzwerke. Die Rechenvorrichtung 115 kann für die Kommunikation mit anderen Fahrzeugen 110 über die V-zu-I-Schnittstelle 111 unter Verwendung von Fahrzeug-zu-Fahrzeug-Netzwerken (V-zu-V-Netzwerken) konfiguriert werden, z. B. gemäß Dedicated Short Range Communications (DSRC) und/oder dergleichen, die z. B. auf Ad-hoc-Basis zwischen nahegelegenen Fahrzeugen 110 oder über infrastrukturbasierte Netzwerke gebildet werden. Die Rechenvorrichtung 115 schließt auch nichtflüchtigen Speicher ein, wie er bekannt ist. Die Rechenvorrichtung 115 kann Daten protokollieren, indem sie die Daten in einem nichtflüchtigen Speicher für den späteren Abruf und die Übertragung über das Fahrzeugkommunikationsnetzwerk und eine Schnittstelle 111 vom Fahrzeug zur Infrastruktur (V-zu-I) an einen Servercomputer 120 oder eine mobile Benutzervorrichtung 160 speichert.
-
Wie bereits erwähnt, ist in der Regel in Anweisungen, die im Speicher gespeichert und vom Prozessor der Rechenvorrichtung 115 ausführbar sind, die Programmierung für das Betreiben einer oder mehrerer Komponenten des Fahrzeugs 110, z. B. Bremsen, Lenkung, Antrieb usw., ohne Eingriff eines menschlichen Bedieners eingeschlossen.
-
Unter Verwendung der in der Rechenvorrichtung 115 empfangenen Daten, z. B. der Sensordaten der Sensoren 116, des Servercomputers 120 usw., kann die Rechenvorrichtung 115 verschiedene Bestimmungen vornehmen und/oder verschiedene Komponenten des Fahrzeugs 110 und/oder Vorgänge ohne einen Fahrer zum Betrieb des Fahrzeugs 110 steuern. Zum Beispiel kann die Rechenvorrichtung 115 eine Programmierung zur Regelung des Betriebsverhaltens des Fahrzeugs 110 (d. h. der physikalischen Erscheinungsformen des Betriebs des Fahrzeugs 110) wie Geschwindigkeit, Beschleunigung, Verlangsamung, Lenkung usw. sowie des taktischen Verhaltens (d. h, Steuerung des Betriebsverhaltens in der Regel in einer Weise, die ein sicheres und effizientes Überqueren einer Strecke ermöglicht), wie z. B. Abstand zwischen Fahrzeugen und/oder Zeit zwischen Fahrzeugen, Spurwechsel, Mindestabstand zwischen Fahrzeugen, Wegminimum beim Linksabbiegen, Zeit bis zur Ankunft an einem bestimmten Standort und Kreuzung (ohne Signal), Mindestzeit bis zur Ankunft zum Überqueren der Kreuzung, einschließen.
-
Steuergeräte, wie dieser Begriff hierin verwendet wird, schließen Rechenvorrichtungen, die typischerweise zur Steuerung eines bestimmten Fahrzeug-Subsystems programmiert sind, ein. Beispiele schließen ein Antriebsstrangsteuergerät 112, ein Bremsensteuergerät 113 und ein Lenkungssteuergerät 114 ein. Ein Steuergerät kann eine elektronische Steuereinheit (ECU) sein, wie sie bekannt ist, möglicherweise einschließlich zusätzlicher Programmierung, wie hierin beschrieben. Die Steuergeräte können kommunikativ an die Rechenvorrichtung 115 angeschlossen werden und von dieser Anweisungen erhalten, um das Subsystem gemäß den Anweisungen zu betätigen. Zum Beispiel kann das Bremssteuergerät 113 von der Rechenvorrichtung 115 Anweisungen zum Betrieb der Bremsen des Fahrzeugs 110 erhalten.
-
Das eine oder die mehreren Steuergeräte 112, 113, 114 für das Fahrzeug 110 können bekannte elektronische Steuereinheiten (ECUs) oder dergleichen einschließen, einschließlich, als nicht limitierende Beispiele, eines oder mehrerer Antriebsstrangsteuergeräte 112, eines oder mehrerer Bremsensteuergeräte 113 und eines oder mehrerer Lenkungssteuergeräte 114. Jedes der Steuergeräte 112, 113, 114 kann entsprechende Prozessoren und Speicher sowie einen oder mehrere Stellantriebe einschließen. Die Steuergeräte 112, 113, 114 können programmiert und an einen Kommunikationsbus des Fahrzeugs 110, wie einen Controller Area Network-Bus (CAN-Bus) oder Local Interconnect Network-Bus (LIN-Bus), angeschlossen werden, um Anweisungen vom Computer 115 zu empfangen und Stellantriebe auf der Grundlage der Anweisungen zu steuern.
-
Sensoren 116 können eine Vielzahl von Vorrichtungen einschließen, die bekanntermaßen Daten über den Fahrzeugkommunikationsbus bereitstellen. Zum Beispiel kann ein Radar, das an einem vorderen Stoßfänger (nicht gezeigt) des Fahrzeugs 110 befestigt ist, einen Abstand vom Fahrzeug 110 zu einem nächsten Fahrzeug vor dem Fahrzeug 110 bereitstellen, oder ein im Fahrzeug 110 angeordneter Global Positioning System-Sensor (GPS-Sensor) kann geographische Koordinaten des Fahrzeugs 110 bereitstellen. Der (die) vom Radar und/oder anderen Sensoren 116 bereitgestellte(n) Abstand (Abstände) und/oder die vom GPS-Sensor bereitgestellten geographischen Koordinaten können von der Rechenvorrichtung 115 verwendet werden, um das Fahrzeug 110 z. B. autonom oder halbautonom zu betreiben.
-
Das Fahrzeug 110 ist im Allgemeinen ein Landfahrzeug 110, das autonom und/oder halbautonom betrieben werden kann und drei oder mehr Räder hat, z. B. ein PKW, ein leichter LKW usw. Das Fahrzeug 110 schließt einen oder mehrere Sensoren 116, die V-zu-I-Schnittstelle 111, die Rechenvorrichtung 115 und eines oder mehrere Steuergeräte 112, 113, 114 ein. Die Sensoren 116 können Daten sammeln, die sich auf das Fahrzeug 110 und die Umgebung, in der das Fahrzeug 110 betrieben wird, beziehen. Beispielhaft, aber nicht einschränkend, können die Sensoren 116 z. B. Höhenmesser, Kameras, LIDAR, Radar, Ultraschallsensoren, Infrarotsensoren, Drucksensoren, Beschleunigungsmesser, Gyroskope, Temperatursensoren, Drucksensoren, Hallensensoren, optische Sensoren, Spannungssensoren, Stromsensoren, mechanische Sensoren wie Schalter usw. einschließen. Die Sensoren 116 können dazu verwendet werden, die Umgebung abzutasten, in der das Fahrzeug 110 betrieben wird, z. B. können die Sensoren 116 Phänomene wie Wetterbedingungen (Niederschlag, äußere Umgebungstemperatur usw.), die Neigung einer Straße, die Lage einer Straße (z. B. durch Verwendung von Straßenrändern, Fahrbahnmarkierungen usw.) oder die Standorte von Zielobjekten wie z. B. benachbarte Fahrzeuge 110 erfassen. Die Sensoren 116 können ferner zur Erfassung von Daten einschließlich dynamischer Daten des Fahrzeugs 110 (z. B. Daten, die periodisch oder im Wesentlichen in Echtzeit während des Betriebs des Fahrzeugs 110 bereitgestellt werden) verwendet werden, die sich auf den Betrieb des Fahrzeugs 110 beziehen, wie Geschwindigkeit, Gierrate, Lenkwinkel, Motordrehzahl, Bremsdruck, Öldruck, das an die Steuergeräte 112, 113, 114 im Fahrzeug 110 angelegte Leistungsniveau, die Konnektivität zwischen den Komponenten und die genaue und zeitgerechte Leistung der Komponenten des Fahrzeugs 110.
-
2 ist ein Diagramm eines Beispielkapselnetzes 200, das darauf trainiert werden kann, ein Objekt auf der Grundlage von Videokameradaten zu erfassen, zu klassifizieren und zu lokalisieren. Ein Kapselnetzwerk 200 ist ein faltendes neuronales Netzwerk, das Objektmerkmale im Bild durch das Bestimmen von Kapseln bestimmt. Kapseln sind Tensoren, die eine Vielzahl von Werten einschließen, die einer Vielzahl von Merkmalen entsprechen, die von Faltungsschichten im neuronalen Netzwerk ausgegeben werden. Die Vielzahl der in einer Kapsel eingeschlossenen Merkmale kann Daten kodieren, die der Identität, dem Standort, der Größe und der Position von Objekten in einem Frame von Videodaten entsprechen. Faltende neuronale Netzwerke bestimmen in der Regel Beziehungen zwischen Merkmalen, indem sie die Ergebnisse mehrerer benachbarter Pixel zu einem Pixel zusammenfassen. Kapselnetzwerke 200 behalten die volle oder im Wesentlichen volle Auflösung bei und bestimmen die Beziehungen zwischen ihnen durch Routing. Routing ist ein Verfahren zur Verbindung von Höchstwertkapseln in einer ersten Schicht mit Kapseln in einer nachfolgenden Schicht des Kapselnetzwerks 200, um zu bestimmen, welche Faltungsgewichte mit einer Ausgangs- und daraus resultierenden Verlustfunktion während des Trainings assoziiert werden sollen.
-
Ein Kapselnetzwerk 200 ist ein neuronales Netzwerk, das die Faltungsschichten 204 (CON), die erste Kapselschicht 204, (CP1), die zweite Kapselschicht 208 (CP2) und die vollständig verbundenen Schichten 216 (FC) einschließt. Das Kapselnetzwerk 200 kann einen Frame 202 von Zeitreihen-Videodaten eingeben, wobei es sich um eine Zeitreihe von Videoframes 202 handelt, die in gleichen Zeitintervallen erfasst werden. Das Kapselnetzwerk 200 verarbeitet jeweils einen Videoframe 202 der Zeitreihen-Videobilddaten 202 auf einmal. Faltungsebenen 204 können einen Videoframe verarbeiten, indem ein oder mehrere Faltungsfilter auf die Eingabedaten angewendet werden, um Merkmale zu bestimmen. Beispielsweise können die Faltungsebenen 204 zwei aufeinanderfolgende 9x9-Filter auf den Eingangs-Videoframe 202 anwenden, um die Vorhersage-Tensoren 206 zu bestimmen. Die Vorhersagetensoren 206 schließen Vorhersagen ein, die den Standorten von Objektmerkmalen in einem Videoframe 202 entsprechen. Zu den Objektmerkmalen im Videoframe 202, die durch die Faltungsschichten 204 bestimmt werden, gehören zum Beispiel Fahrzeuge und Fußgänger. Die Vorhersagetensoren 206 werden in die erste Kapselschicht 208 eingegeben. Die erste Kapselschicht 208 ist eine Faltungskapselschicht, die Kapseln durch Falten der Kapsel mit einem 9 mal 9 Pixel großen Faltungskern verarbeitet, um z. B. Ausgabevorhersage-Tensoren 210 zu erzeugen.
-
Ein Vorhersagetensor ist ein Tensor mit Dimension (16, 1152, 10), wobei z. B. 16 die Größe eines einzelnen Objektmerkmalsvektors ist, wobei ein Objektmerkmalsvektor 16 Komponenten aufweist, die jeweils einen einzelnen Gesichtspunkt eines Objekts beschreiben. Die Zahl 1152 bezeichnet die Anzahl der Kapseln i in der Schicht l, die mit jeder der 10 Kapseln in der übergeordneten Schicht j verbunden werden können. Ein Beispiel für einen Vorhersagetensor schließt einen Vorhersagevektor mit 16 Werten, eine Kapselnummer von eins bis 1152, die als Index verwendet wird, und 10 Kapselnummern, die Links zu Kapseln in der nächsten Ebene leiten, ein. Die Routing-Koeffizienten jeder Kapsel (i) der unteren Ebene sind für die Verknüpfung eines einzelnen Vorhersagevektors mit einer Kapsel j der übergeordneten Ebene verantwortlich. Die Vorhersagevektoren werden von dem Netzwerk gelernt, das Daten zur Klassifizierung der Merkmale einschließt. Die erste Kapselschicht 208 kann die Vorhersagetensoren 210 zur Ausgabe an die zweite Kapselschicht 212 bestimmen.
-
Die zweite Kapselschicht 212 gibt die Vorhersagetensoren 210 ein und verarbeitet sie zur Erzeugung der Ausgabevorhersagetensoren 214 auf dieselbe Weise wie die erste Kapselschicht 208, d. h. durch Falten der Kapseln zur Bildung der Ausgabevorhersagetensoren 214. Die Ausgabevorhersagetensoren 214 können z. B. gemessen werden, indem die Absolutwerte der Tensorkomponenten summiert und mit anderen summierten Vorhersagetensoren verglichen werden, um zu bestimmen, welcher Vorhersagetensor am besten zu einem Objekt passt. Zur Trainingszeit wird eine Vielzahl von Videoframes 202 in das Kapselnetzwerk 200 eingegeben und die resultierenden Kapseln werden weitergeleitet, um die Kapseln zu bestimmen, die den auf der Grundlage der Ground Truth bestimmten Objekten der realen Welt entsprechen.
-
Ground Truth sind Daten, die der Objekterfassung und -lokalisierung in Videodaten 202 entsprechen, die von einer vom Kapselnetzwerk 200 unabhängigen Quelle bestimmt werden, z. B. Benutzereingaben auf der Grundlage der manuellen Identifizierung und Messung von Objekten. Ground Truth kann auch durch die Verwendung von synthetischen Videoframes 202 als Eingabe bestimmt werden, wobei der Standort und Größe der Objekte im Videoframe 202 auf der Benutzereingabe basiert.
-
Das Routing ist ein iterativer Prozess, der die Kapseln cj Schicht für Schicht durchsucht, um Strecken zwischen den Schichten zu bestimmen, die Kapseln mit Objektbeschreibungen produzieren, die der Ground Truth am nächsten kommen. Die hierin offenbarten Techniken verbessern frühere Routing-Techniken durch die Verwendung einer skaleninvarianten Max-min()-Funktion zur Bestimmung eines Maximalwertes für die Kapseln, wodurch die Testgenauigkeit des Kapselnetzwerks 200 im Vergleich zu Techniken, die skalenvariante Max-Funktionen wie eine Softmax-Funktion verwenden, verbessert wird. Der Betrieb des Trainings der Kapselnetzwerke 200 unter Verwendung der skaleninvarianten Max-min()-Funktion führt zu einer erhöhten Genauigkeit der Objekterfassung und ermöglicht ein stabileres Training des Kapselnetzwerks 200, wenn die Anzahl der Routing-Iterationen erhöht wird. Die hierin beschriebenen Techniken erhöhen auch die Stabilität des Trainings, indem sie vermehrte Routing-Vorgänge ohne Überanpassung an die Trainingsdaten ermöglichen. Die hierin beschriebenen Techniken verwenden eine Min-Max-Normalisierung, es können jedoch auch andere skaleninvariante Techniken wie die zentrierte Max-Min-Normalisierung oder die Summennormalisierung verwendet werden.
-
Auf der Grundlage der hierin beschriebenen Techniken wird den übergeordneten Kapseln im Netzwerk die Möglichkeit gegeben, nicht wesentliche Merkmale, die von den untergeordneten Kapseln dargestellt werden, völlig außer Acht zu lassen. Dies kann als eine Form des dynamischen Aussetzens der Routing-Koeffizienten betrachtet werden und zwingt das Netzwerk zu einer besseren Verallgemeinerung, indem es korrekte Ergebnisse für eine größere Vielfalt von Eingabebildern bestimmt. Darüber hinaus ermöglichen die Routing-Koeffizienten, dass jede Kapsel der unteren Ebene eine unabhängige Zuordnungswahrscheinlichkeit zu jeder der Kapseln der oberen Ebene hat. Das heißt, die Summe der Wahrscheinlichkeiten für eine einzelne Kapsel der unteren Ebene über jede der Kapseln der höheren Ebene ist nicht mehr begrenzt. Dies ist für das Kapselnetzwerk 200 von Vorteil, da ein einzelnes Merkmal mit gleich hoher Wahrscheinlichkeit mehreren übergeordneten Objekten zugeordnet werden kann. Einzelheiten zur Berechnung einer skaleninvarianten Max-min()-Funktion sind in Bezug auf die nachfolgenden 3 und 4 angegeben.
-
Die Vorhersagetensoren 214 werden an vollständig verbundene Schichten 216 (FC) ausgegeben, wobei nichtlineare Funktionen der Ausgabe-Vorhersagetensoren 214 berechnet werden, was zu Ausgabeobjekterfassungs- und -positionsdaten 218 führt. Die Objekterfassungs- und Standortdaten 218 werden unter Bezugnahme auf die Eingangsvideodaten 202 bestimmt. Zur Bestimmung einer geometrischen Projektion, die die Pixelpositionen in einem Bild in reale Koordinaten umwandelt, sind Daten über den Standort, Richtung und Größe des Sichtbereichs des Sensors sowie Annahmen über den Schnittpunkt einer ebenen Oberfläche parallel zu einer Fahrbahn erforderlich.
-
3 ist ein Flussdiagramm eines Prozesses 300 zur Bestimmung der Routing-Koeffizienten für ein Kapselnetzwerk 200. Prozess 300 kann durch einen Prozessor der Rechenvorrichtung 115 implementiert werden, der als Eingangsdaten von den Sensoren 116 nimmt, Befehle ausführt und Ausgangssignale an einen Servercomputer 120 sendet. Prozess 300 schließt mehrere aufgenommene Blöcke in der offenbarten Reihenfolge ein. Prozess 300 könnte alternativ oder zusätzlich weniger Blöcke einschließen oder kann die aufgenommenen Blöcke in unterschiedlicher Reihenfolge einschließen. Prozess 300 wird in Bezug auf einen einzelnen Eingangs-Videoframe 202 beschrieben. Die Analysen und Erklärungen, die folgen, wenn die Anzahl der Videoframes in das Netzwerk eingegeben wird, entweder während des Trainings oder bei Tests. Darüber hinaus sind die hierin als Parameter angegebenen Werte nur Beispiele und können ohne Änderung des Prozesses 300 geändert werden.
-
Prozess 300 gibt eine Reihe von Vorhersagetensoren (ûi|j), eine Anzahl von Malen zur Durchführung des Routing-Verfahrens (r) und eine Netzwerkschichtnummer (l) ein. Die Ausgabe des Routing-Algorithmus ist ein Satz von Kapseltensoren auf übergeordneter Ebene (vj). Die anfänglichen Eingabe-Vorhersagetensoren ûi|j werden aus einem Eingabe-Videoframe 202 durch Faltungsschichten 204 berechnet. Die Routing-Koeffizienten cj sind auf 1,0 initialisiert. Wenn die Vorhersagetensoren in den Routing-Algorithmus eingespeist werden, hat ein einzelner Vorhersagetensor beispielsweise eine Dimension (16, 1152, 10). Andere Dimensionen können ohne Änderung der hierin beschriebenen Techniken verwendet werden. Die erste Zahl, 16, bezeichnet die Dimension eines einzelnen Vorhersagevektors (d. h. ein einzelner Vorhersagevektor ist ein Vektor mit 16 Komponenten, und jede Komponente beschreibt einen bestimmten Gesichtspunkt eines Objekts). Die zweite Zahl, 1152, gibt an, wie viele Kapseln i in Schicht l jeder der 10 Kapseln, j, in Schicht l + 1 zugeordnet werden können. Die Routing-Koeffizienten jeder Kapsel (i) der unteren Ebene sind für die Verknüpfung eines einzelnen Vorhersagevektors mit einer Kapsel j der übergeordneten Ebene verantwortlich. Die Vorhersagevektoren werden vom Netzwerk durch Backpropagation gelernt und stellen dar, wie ein Objekt nach Ansicht des Netzwerks mit einer Reihe von Merkmalen aussehen sollte. Die Kapseln j auf übergeordneter Ebene werden ebenfalls gelernt und stellen das eigentliche Objekt als Ganzes dar. Im gesamten Routing-Algorithmus werden die Routing-Koeffizienten iterativ berechnet, um die Kapseln der unteren Ebene mit den Kapseln der oberen Ebene zu verbinden. Bei jedem neuen Bild, das das Netzwerk sieht, werden diese Berechnungen zwischen jeder der 1152 Kapseln der unteren Ebene, i, und jeder der 10 Kapseln der oberen Ebene, j, durchgeführt. Prozess 300 beginnt im Block 302, wobei die Routing-Koeffizienten cj mit jedem der Vorhersagevektoren multipliziert und über die Kapseln i summiert werden, um eine Matrix sj mit den Dimensionen (10, 16) zu bilden. Jede Zeile entspricht einer der 10 Klassen oder Objekte im Datensatz, die das Modell erfassen soll, und die 16 Elemente in jeder Zeile stellen die verschiedenen Gesichtspunkte oder Merkmale des Objekts dar, die durch den Routing-Algorithmus bestimmt werden.
-
Im Block
304 wird dann die Matrix s
j unter Verwendung einer nichtlinearen Funktion, wie sie durch Gleichung (1) gegeben ist, gequetscht:
-
Die Quetschfunktion stellt sicher, dass die Länge jeder der 10 Zeilen in sj zwischen 0 und 1 begrenzt ist. Die Quetschfunktion wandelt sj in vj um, die Kapseln auf übergeordneter Ebene, die die Ausgaben des Routing-Algorithmus sind. Die Erkennung auf dem Eingabebild kann durch Auswahl der Zeile in vj mit der größten Länge entschieden werden.
-
Im Block 306 werden die Routing-Koeffizienten cij unter Verwendung des Punktprodukts zwischen den Vorhersagetensoren ûi|j und den Kapseln auf Übergeordneter Ebene vj aktualisiert, und das Ergebnis des Punktprodukts wird zu cij addiert.
-
Im Block
308 werden die maximalen Routing-Koeffizienten c
ij bestimmt, indem ein durch Gleichung (2) definierter Max-min()-Vorgang auf die Routing-Koeffizienten c
ij angewendet wird, um ein skaleninvariantes Maximum zu bestimmen:
-
In Gleichung (2) werden die Konstanten a und b durch Benutzereingaben bestimmt, um das Ergebnis zu skalieren und auszugleichen. Die Konstante a stellt einen Mindestwert für den Prozess 300 bereit, während die Konstante (b - a) das Ergebnis skaliert. Beispielsweise würde a = 0,5, b = 1,0 sicherstellen, dass das Ergebnis von Gleichung (2) zwischen 0,5 und 1,0 liegt, während das Ergebnis von Gleichung (2) ansonsten beispielsweise zwischen 0,0 und 1,0 liegen würde. Prozess 300 verbessert frühere Routing-Algorithmen durch die Verwendung von Gleichung (2) zur Bestimmung eines Maximums cij anstelle einer Softmax-Funktion, wodurch das Maximum der Berechnung skaleninvariant wird und nicht, wie es bei der Verwendung einer Softmax-Funktion der Fall wäre, skalenvariant.
-
Bei Block 310 prüft Prozess 300 eine Iterationsnummer, um zu bestimmen, ob die Anzahl der Iterationen gleich r, der eingegebenen Anzahl von Iterationen, ist. Wenn die Iterationsnummer kleiner als r ist, wird die Iterationsnummer inkrementiert und Prozess 300 kehrt zum Block 302 zurück, um die Routing-Koeffizienten cij erneut zu verarbeiten. Wenn die Iterationszahl gleich r ist, wird der Prozess 300 beendet.
-
4 ist ein Flussdiagramm eines Prozesses 400 zur Bestimmung der Routing-Koeffizienten für ein Kapselnetzwerk 200. Prozess 400 kann durch einen Prozessor der Rechenvorrichtung 115 implementiert werden, der als Eingangsdaten von den Sensoren 116 nimmt, Befehle ausführt und Ausgangssignale an einen Servercomputer 120 sendet. Prozess 400 schließt mehrere aufgenommene Blöcke in der offenbarten Reihenfolge ein. Prozess 400 könnte alternativ oder zusätzlich weniger Blöcke einschließen oder kann die aufgenommenen Blöcke in unterschiedlicher Reihenfolge einschließen. Prozess 400 wird in Bezug auf einen einzelnen Eingangs-Videoframe 202 beschrieben. Die Analysen und Erklärungen, die folgen, wenn die Anzahl der Videoframes in das Netzwerk eingegeben wird, entweder während des Trainings oder bei Tests. Darüber hinaus sind die hierin als Parameter angegebenen Werte nur Beispiele und können ohne Änderung des Prozesses 400 geändert werden.
-
Prozess
400 verwendet die Erwartungs-Maximierung (EM), um Kapseln auf niedrigerer Ebene mit Kapseln auf höherer Ebene zu verbinden. Die Eingabe für den Routing-Algorithmus ist ein Satz von Aktivierungen a und die Stimmen der Kapseln V in der Schicht L. Eingaben in den Routing-Algorithmus sind Objektmerkmale, die von Faltungsschichten als Aktivierungen a und Stimmen V sowie Positionen der Kapseln M für Schicht L + 1 ausgegeben werden. Die Positionen der Kapseln in Schicht L + 1 sind in den Variablen
(zusammen als M in Prozess
400 bezeichnet) enthalten. Die Kapseln aus Schicht L werden aus dem Eingangsvideoframe
202 durch eine Faltungsschicht
204 berechnet, wie oben in Bezug auf
3 erläutert, obwohl die Kapseln mit jeder Art von Filteroperation berechnet werden können, die geeignete Kapseln erzeugen kann. In Prozess
400 sind die Variablen R
ij die Routing-Koeffizienten. Während der gesamten Zählschleifeniterationen des EM-basierten Routing-Algorithmus werden die R
ijs dynamisch, d. h. im Wesentlichen in Echtzeit auf der Basis von Eingaben, berechnet, so wie die c
ijs im Routing-Verfahren des Prozesses
300 dynamisch berechnet werden. Genau wie in Prozess
300 verbessert der Prozess
400 die Berechnung der Routing-Koeffizienten R
ij durch die Verwendung einer skaleninvarianten Maxmino-Funktion, die eine logistische Funktion ersetzt. Logistische Funktionen sind eine Spezialisierung einer Softmax-Funktion und sind ebenfalls skalenvariant.
-
Im Block 402 kann eine Rechenvorrichtung 115, die den Prozess 400 ausführt, einen Satz von Aktivierungen eingeben, die den Kapseln, a, und den Stimmen der Kapseln, V, in einer Schicht L entsprechen, wobei die Aktivierungen a und die Stimmen V die Werte sind, die den Objektmerkmalen entsprechen.
-
Im Block
404 führt der Prozess
400 einen Maximierungsschritt (M-Schritt) durch, der auf den Aktivierungen a, den Routing-Koeffizienten R, den Stimmen V und der übergeordneten Ebene j gemäß den Gleichungen (3)-(7) basiert:
-
Routing-Koeffizienten R
ij werden mit den Aktivierungen a
i für alle Kapseln Ω
L in einer Schicht L multipliziert.
-
Der Vorhersage-Tensor
wird durch Multiplikation der Routing-Koeffizienten R
ij mit den Stimmen
bestimmt.
-
Die Varianz
wird durch Summierung über die quadrierte Differenz zwischen den Stimmen
und dem Vorhersagetensor
und Normalisierung bestimmt.
-
Eine Kostenfunktion cost
h kann auf der Grundlage von Gleichung (6) bestimmt werden, wobei β
µ empirisch bestimmt werden kann, indem die Ausgabekostenfunktionen cost
h gegen die Ground Truth gereiht werden.
-
Max-min()-Funktion wird gemäß Gleichung (2) berechnet. Parameter βα und βµ werden während der Trainingszeit gelernt, um die Unterscheidung zwischen maximalen und nicht-maximalen Werten zu verbessern. Die inverse Temperatur λ kann bei jeder Iteration gemäß einem festen Zeitplan, der durch Benutzereingaben bestimmt wird, ansteigen.
-
Im Block
406 führt der Prozess
400 einen Erwartungsschritt (E-Schritt) durch, der auf Vorhersagetensor
Varianz
Aktivierungen a, Stimmen V und der übergeordneten Ebene j gemäß den Gleichungen (8) und (9) basiert, um die Kapselposition p
j und neue Schätzungen der Routing-Koeffizienten R
ij für die Kapseln Ω
L+1 in der Schicht L+1 auszugeben.
-
Im Block 408 wird ein Iterationszähler inkrementiert und mit einer maximalen Anzahl verglichen, die durch Benutzereingaben bestimmt werden kann. Die maximale Anzahl kann eine kleine Zahl sein, zum Beispiel 20. Wenn der Iterationszähler kleiner oder gleich der maximalen Anzahl ist, kann Prozess 400 zu Block 402 zurückschleifen und Blöcke 404 und 406 wiederholen. Wenn der Iterationszähler größer als die maximale Anzahl ist, wird Prozess 400 beendet.
-
5 ist ein Diagramm einer Verkehrsszene 500. Verkehrsszene 500 schließt eine Fahrbahn 502 ein, auf der Fahrzeuge 504 betrieben werden. Verkehrsszene 500 schließt auch eine stationäre Videokamera 506 ein. Stationäre Videokamera 506 kann auf einem Mast 508 oder einer anderen stationären Struktur, einschließlich eines Gebäudes, montiert werden, um der stationären Videokamera 506 einen Sichtbereich 510 zu bieten, der einen Abschnitt von Fahrbahn 502 und in der Regel von Zeit zu Zeit auch Fahrzeuge 504 einschließt. Stationäre Videokamera 506 kann am Mast 508 befestigt werden, so dass die stationäre Videokamera 506 einen im Wesentlichen unveränderlichen Sichtbereich 510 unter Bezugnahme auf Fahrbahn 502 beibehalten kann. Stationäre Videokamera 506 kann kalibriert werden, um den dreidimensionalen (3D-) Standort des Sichtbereichs 510 in globalen Koordinaten zu bestimmen. Globale Koordinaten sind Positionswerte wie Breiten- und Längengrad und Höhe, die auf einem globalen Koordinatensystem basieren, wie es z. B. von einem GPS verwendet wird. Durch die Bestimmung des 3D-Standorts des Sichtbereichs 510 in globalen Koordinaten kann z. B. der 3D-Standort in globalen Koordinaten einer Region in den Daten einer stationären Videokamera bestimmt werden, die einem Objekt entspricht. Die Standorte von Merkmalen in Videodaten können auf der Grundlage von Projektionsgleichungen in globale Koordinaten umgewandelt werden, die auf Daten über gemessene Standorte in der realen Welt, einen Sichtbereich 510 und die Vergrößerung eines in der stationären Videokamera 506 eingeschlossenen Objektivs basieren, um die Standorten von Standorten in der realen Welt in Videodaten in globalen Koordinaten zu bestimmen.
-
Stationäre Videokamera 506 kann in ein Verkehrsinformationssystem 100 eingeschlossen werden. Ein Verkehrsinformationssystem 100 kann einen oder mehrere Servercomputer 120 einschließen, die so konfiguriert sind, dass sie stationäre Videokameradaten erfassen und diese verarbeiten, um Objekte zu verfolgen und die verfolgten Objekte in globalen Koordinaten zu lokalisieren.
-
Verkehrsinformationssystem 100 kann auch mit einem Fahrzeug 110 kommunizieren, basierend auf dem Standort des Fahrzeugs 110. Beispielsweise kann ein Verkehrsinformationssystem 100 mit einem Fahrzeug 110 auf Grundlage seiner Nähe zu einer stationären Videokamera 506 kommunizieren. Das Verkehrsinformationssystem 100 kann Daten zu einem verfolgten Objekt bestimmen, die sich außerhalb des Sichtbereichs der in einem Fahrzeug 110 eingeschlossenen Sensoren befinden können, aber beispielsweise in naher Zukunft für das Fahrzeug 110 sichtbar sein könnten.
-
Die Objekterfassung und -lokalisierung durch ein Kapselnetzwerk 200 kann von einer Rechenvorrichtung 115 für eine Vielzahl von Aufgaben, die sich auf den Fahrzeugbetrieb beziehen, genutzt werden. Objekterfassungs- und Standortdaten, die auf Videodaten 202 basieren, die von einer stationären Videokamera 506 erfasst wurden, können auf ein Fahrzeug 110 heruntergeladen werden, um Fahrzeug 110 zu betreiben. Beispielsweise kann ein Fahrzeug 110 einen Fahrzeugweg bestimmen, auf dem es auf der Grundlage eines vorhergesagten Standorts für ein Objekt betrieben werden kann, wobei Fahrzeug 110 eine Kollision oder eine Beinahe-Kollision zwischen einem vorhergesagten Standort von Fahrzeug 110 und einem vorhergesagten Standort eines Objekts erfassen kann. Objekterfassungs- und Standortdaten können z. B. von einer Videokamera erfasst werden, die an einem Fahrzeug 110 montiert ist. Das Fahrzeug 110 kann die Objekterfassungs- und Standortdaten nutzen, um z. B. Kollisionen und Beinahe-Kollisionen zwischen vorhergesagten Standorten des Fahrzeugs 110 und vorhergesagten Standorten des Objekts vorherzusagen.
-
Objekterfassungs-, Klassifizierungs- und Standortdaten können auch von einer Videokamera erfasst werden, die auf einer mobilen Plattform, z. B. einer Drohne, montiert ist. Die von einer auf einer Drohne montierten Videokamera erfassten Objekterfassungs-, Klassifizierungs- und Standortdaten können von einem Servercomputer 120 in einem Verkehrsinformationssystem 100 empfangen werden, um Verkehrsdaten zu bestimmen. Beispielsweise kann ein Servercomputer 120 Verkehrsdaten wie Daten zu Verkehrsstaus und Verkehrsunfällen auf der Grundlage der empfangenen Objekterfassung, Klassifizierung und des Standorts bestimmen und auf ein Fahrzeug 110 herunterladen. Prozesse, die Fahrzeuge betreiben oder den Fahrzeugbetrieb auf der Grundlage des Erfassens und Lokalisierens von Objekten unterstützen, können von Verbesserungen in Kapselnetzwerken 200 profitieren, einschließlich der Bestimmung maximaler Routing-Koeffizienten unter Verwendung von Max-min()-Funktionen oder anderer hierin beschriebener skaleninvarianter Techniken.
-
6 ist ein Diagramm eines Flussdiagramms, das in Bezug auf die 1 bis 5 beschrieben ist, eines Prozesses 600 zur Bestimmung eines Objektstandorts, zur Verfolgung eines Objekts auf der Grundlage des Objektstandorts und zum Herunterladen der Objektverfolgungsdaten auf ein Fahrzeug. Prozess 600 kann von einem Prozessor einer Rechenvorrichtung 115 oder einem Servercomputer 120 implementiert werden, der als Eingangsdaten von Sensoren Befehle ausführt und z. B. Objektdaten an ein Fahrzeug 110 sendet. Prozess 600 schließt mehrere Blöcke in der offenbarten Reihenfolge ein. Prozess 600 könnte alternativ oder zusätzlich weniger Blöcke einschließen oder kann die aufgenommenen Blöcke in unterschiedlicher Reihenfolge einschließen.
-
Der Prozess 600 beginnt im Block 602, wobei eine Rechenvorrichtung 115 oder ein Servercomputer 120 einen Videoframe von einer Videokamera einschließlich einer stationären Videokamera 506 erfasst und in ein trainiertes Kapselnetzwerk 200 eingibt. Das Kapselnetzwerk 200 wurde unter Verwendung von Routing-Koeffiziententensoren trainiert, wie oben unter Bezugnahme auf 2 bis 5 beschrieben. Das Kapselnetzwerk 200 gibt Videoframedaten 202 ein und kann Objekterfassungs- und Standortdaten 218 ausgeben, die den unter Bezugnahme auf einen Videoframe gemessenen Objekterfassungs- und Standortdaten entsprechen. Videokameradaten können von einer stationären Videokamera oder einer mobilen Videokamera eingegeben werden. Eine mobile Videokamera kann z. B. auf einem Fahrzeug 110 oder einer Drohne montiert werden.
-
Im Block 604 kann der Servercomputer 120 die Objekterfassungs- und Standortdaten 218, die vom Kapselnetzwerk 200 ausgegeben werden, mit Ground Truth-Daten bezüglich des Standorts der Fahrbahn 502 unter Bezugnahme auf den Sichtbereich 510 der stationären Videokamera 506 in globalen Koordinaten kombinieren, um die ausgegebenen Objekterfassungs- und Standortdaten 218 in globale Koordinaten umzuwandeln, wie in Bezug auf 5 oben erläutert. Eine Folge von Objektstandorten in globalen Koordinaten, die in gleichen Zeitintervallen erfasst werden, sind Zeitreihendaten, die in einen Prozess eingegeben werden können, von dem bekannt ist, dass er die Objektbewegung vorhersagen und dadurch das Objekt auf der Grundlage der Objektstandorte verfolgen kann. Beispielsweise kann ein neuronales Netzwerk darauf trainiert werden, Objektstandorte in globalen Koordinaten einzugeben und vorhergesagte Objektstandorte auszugeben. Ein Servercomputer 120 kann vorhergesagte Objektstandorte in globalen Koordinaten auf ein Fahrzeug 110 herunterladen oder ein Fahrzeug 110 kann Objektstandorte von heruntergeladenen Objektstandorten vorhersagen. Vorhersagen bezüglich Objektstandorten können in Prozesse eingegeben werden, die Fahrzeugwege bestimmen, damit eine Rechenvorrichtung 115 in einem Fahrzeug 110 einen Pfad bestimmen kann, auf dem es auf der Grundlage der heruntergeladenen Objektdaten betrieben werden kann. Beispielsweise kann ein Fahrzeugweg bestimmt werden, der eine Kollision oder Beinahe-Kollision mit einem vorhergesagten Objektstandort vermeidet.
-
In Beispielen, in denen die Videokameradaten von einer mobilen Plattform erfasst werden, können die Objekterfassungs- und Standortdaten in globale Koordinaten umgewandelt werden, die auf einem Standort und einem Sichtbereich basieren, die dem Standort und dem Sichtbereich einer in der mobilen Plattform eingeschlossenen Videokamera entsprechen. Da sich die Plattform bewegen kann, wenn die Videokameradaten erfasst werden, können die Videokameradaten mit einem Zeitstempel versehen werden, um einen Standort der Videokamera zu identifizieren, wenn die Videokameradaten erfasst wurden. Von mobilen Plattformen erfasste Objekterfassungs- und Standortdaten können direkt auf ein Fahrzeug 110 heruntergeladen oder von einem Servercomputer 120 empfangen werden, um sie mit Objekterfassungs- und Standortdaten aus anderen Quellen zu kombinieren und so Verkehrsdaten zu bestimmen. Verkehrsdaten können z. B. eine Karte einer Straße mit beweglichen und festen Objekten einschließen. Die beweglichen und festen Objekte können ein oder mehrere Fahrzeuge 110 einschließen. Ein Verkehrsinfrastruktursystem 110 kann mit einem Fahrzeug 110 kommunizieren, um Verkehrsdaten auf ein Fahrzeug 110 herunterzuladen, um z. B. das Fahrzeug 110 beim Betrieb auf einer Fahrbahn 502 zu unterstützen. Nach Block 604 endet der Prozess 600.
-
Rechenvorrichtungen wie die hierin erläuterten schließen in der Regel jeweils Befehle ein, die von einem oder mehreren Rechenvorrichtungen wie den oben genannten ausführbar sind und zur Ausführung der oben beschriebenen Blöcke oder Schritte von Prozessen dienen. Beispielsweise können die oben erläuterten Prozessblöcke als computerausführbare Befehle verkörpert werden.
-
Computerausführbare Befehle können aus Computerprogrammen kompiliert oder interpretiert werden, die mit einer Vielzahl von Programmiersprachen und/oder Technologien erstellt wurden, einschließlich, ohne Einschränkung, und 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 und führt dabei einen oder mehrere Prozesse aus, einschließlich eines oder mehrerer der hierin beschriebenen Prozesse. Solche Befehle und andere Daten können in Dateien gespeichert und mit einer Vielzahl von computerlesbaren Medien übertragen werden. Eine Datei in einer Rechenvorrichtung ist im Allgemeinen eine Sammlung von Daten, die auf einem computerlesbaren Medium, wie z. B. einem Speichermedium, einem Direktzugriffsspeicher usw., gespeichert sind.
-
Ein computerlesbares Medium schließt jedes Medium ein, das an der Bereitstellung von Daten (z. B. Befehle) beteiligt ist, die von einem Computer gelesen werden können. Ein solches Medium kann viele Formen annehmen, einschließlich, aber nicht beschränkt auf, nichtflüchtige Medien, flüchtige Medien usw. Zu den nichtflüchtigen Medien gehören z. B. optische oder magnetische Platten und andere persistente Speicher. Flüchtige Medien schließen dynamische Direktzugriffsspeicher (DRAM) ein, die in der Regel einen Hauptspeicher darstellen. Gängige Formen von computerlesbaren Medien sind z. B. eine Diskette, eine flexible Diskette, eine Festplatte, ein Magnetband, ein beliebiges anderes magnetisches Medium, eine CD-ROM, eine DVD, ein beliebiges anderes optisches Medium, Lochkarten, ein Papierband, ein beliebiges anderes physikalisches Medium mit Lochmustern, ein RAM, ein PROM, ein EPROM, ein FLASH-EEPROM, ein beliebiger anderer Speicherchip oder eine Kassette oder ein beliebiges anderes Medium, von dem ein Computer lesen kann.
-
Alle in den Ansprüchen verwendeten Begriffe sollen ihre einfache und gewöhnliche Bedeutung erhalten, wie sie von Fachleuten verstanden wird, es sei denn, es wird hierin ausdrücklich das Gegenteil angegeben. Insbesondere sollte die Verwendung der einzelnen Artikel wie „ein“, „eine“, „der“, „die“, „das“ usw. gelesen werden, um eines oder mehrere der bezeichneten Elemente anzugeben, es sei denn, in einem Anspruch wird eine ausdrückliche gegenteilige Einschränkung angegeben.
-
Der Begriff „beispielhaft“ wird hierin in dem Sinne verwendet, dass ein Beispiel gemeint ist, z. B. sollte eine Referenz auf ein „beispielhaftes Widget“ einfach als sich auf ein Beispiel eines Widgets beziehend gelesen werden.
-
Das Adverb „etwa“, das einen Wert oder ein Ergebnis modifiziert, bedeutet, dass eine Form, Struktur, Messung, Wert, Bestimmung, Berechnung usw. von einer genau beschriebenen Geometrie, einem Abstand, einer Messung, einem Wert, einer Bestimmung, einer Berechnung usw. aufgrund von Unvollkommenheiten bei Materialien, Bearbeitung, Herstellung, Sensormessungen, Berechnungen, Verarbeitungszeit, Kommunikationszeit usw. abweichen kann.
-
In den Zeichnungen weisen die gleichen Referenznummern auf die gleichen Elemente hin. Ferner könnten einige oder alle diese Elemente geändert werden. Im Hinblick auf die hierin beschriebenen Medien, Prozesse, Systeme, Verfahren usw. ist zu verstehen, dass, obwohl die Schritte oder Blöcke solcher Prozesse usw. als in einer bestimmten Reihenfolge ablaufend beschrieben wurden, solche Prozesse mit den beschriebenen Schritten in einer anderen als der hierin beschriebenen Reihenfolge ausgeführt werden könnten. Es sollte ferner verstanden werden, dass bestimmte Schritte gleichzeitig ausgeführt werden können, dass andere Schritte hinzugefügt werden können oder dass bestimmte hierin beschriebene Schritte ausgelassen werden können. Mit anderen Worten, die Beschreibungen der Prozesse hierin werden zum Zweck der Veranschaulichung bestimmter Ausführungsformen bereitgestellt und sollten in keiner Weise so ausgelegt werden, dass sie die beanspruchte Erfindung einschränken.
-
Gemäß der vorliegenden Erfindung schließt ein Verfahren das Erfassen und Lokalisieren eines Objekts durch Verarbeitung von Videokameradaten mit einem Kapselnetzwerk ein, wobei das Training des Kapselnetzwerks das Bestimmen von Routing-Koeffizienten mit einer skaleninvarianten Normierungsfunktion einschließt; und
Empfangen des erfassten und lokalisierten Objekts an einer Rechenvorrichtung.
-
Gemäß einer Ausführungsform schließt das Kapselnetz das Bestimmen von Routing-Koeffizienten ein, die den Strecken zwischen den Kapselschichten entsprechen.
-
Gemäß einer Ausführungsform werden Routing-Koeffizienten durch Gruppierung von Strecken auf der Grundlage einer oder mehrerer von Korrelation oder Clustern nach dem Training auf der Grundlage eines ersten Trainingsdatensatzes bestimmt, wobei die Strecke bestimmte Elemente in einer Kapselschicht mit Standorten in einer nachfolgenden Kapselschicht verbindet.
-
Gemäß einer Ausführungsform schließt das Training des Kapselnetzes die Bestimmung von Routing-Koeffizienten mit der skaleninvarianten Normierungsfunktion innerhalb einer Zählschleife ein.
-
Gemäß einer Ausführungsform schließt die skaleninvariante Normalisierungsfunktion eine Max-min()-Funktion ein.
-
Gemäß einer Ausführungsform ist die Erfindung ferner dadurch gekennzeichnet, dass ein Fahrzeug basierend auf dem Empfangen des erfassten und lokalisierten Objekts betrieben wird.
-
Gemäß einer Ausführungsform schloss der Betrieb des Fahrzeugs auf der Grundlage des Empfangs des erfassten und lokalisierten Objekts die Bestimmung eines vorhergesagten Standorts des Objekts in globalen Koordinaten ein.
-
Gemäß einer Ausführungsform ist die Erfindung ferner dadurch gekennzeichnet, dass Verkehrsdaten auf der Grundlage des Empfangs des erfassten und lokalisierten Objekts bestimmt werden.
-
Gemäß einer Ausführungsform ist die Erfindung ferner dadurch gekennzeichnet, dass die Videokameradaten mit einer oder mehreren stationären Videokameras, die in einem Verkehrsinfrastruktursystem eingeschlossen sind, und einer mobilen Videokamera, die in einem oder mehreren von einem Fahrzeug und einer Drohne eingeschlossen ist, erfasst werden.
-
Gemäß der vorliegenden Erfindung wird ein System mit einem Prozessor bereitgestellt; und ein Speicher, wobei der Speicher Anweisungen einschließt, die vom Prozessor ausgeführt werden sollen, um: ein Objekt durch Verarbeitung von Videokameradaten mit einem Kapselnetzwerk zu erfassen und zu lokalisieren, wobei das Training des Kapselnetzwerks die Bestimmung von Routing-Koeffizienten mit einer skaleninvarianten Normalisierungsfunktion einschließt; und ein erfasstes und lokalisiertes Objekt an einer Rechenvorrichtung zu empfangen.
-
Gemäß einer Ausführungsform schließt das Kapselnetzwerk ein neuronales Netzwerk, wobei die Anweisungen ferner Anweisungen zur Bestimmung von Routing-Koeffizienten einschließen, die den Strecken zwischen den Kapselschichten entsprechen.
-
Gemäß einer Ausführungsform schließen die Anweisungen ferner Anweisungen zur Bestimmung von Routing-Koeffizienten durch Gruppierung von Strecken auf der Grundlage einer oder mehrerer von Korrelation oder Clustern nach einem Training auf der Grundlage eines ersten Trainingsdatensatzes ein, wobei die Strecke bestimmte Elemente in einer Kapselschicht mit Standorten in einer nachfolgenden Kapselschicht verbindet.
-
Gemäß einer Ausführungsform schließt das Training des Kapselnetzes die Bestimmung von Routing-Koeffizienten mit der skaleninvarianten Normierungsfunktion innerhalb einer Zählschleife ein.
-
Gemäß einer Ausführungsform schließt die skaleninvariante Normalisierungsfunktion eine Max-min()-Funktion ein.
-
Gemäß einer Ausführungsform ist die Erfindung ferner dadurch gekennzeichnet, dass ein Fahrzeug basierend auf der Vorhersage eines Objektstandortes auf der Grundlage des Empfangs des erfassten und lokalisierten Objekts betrieben wird.
-
Gemäß einer Ausführungsform schloss der Betrieb des Fahrzeugs auf der Grundlage des Empfangs des erfassten und lokalisierten Objekts die Bestimmung eines vorhergesagten Standorts des Objekts in globalen Koordinaten ein.
-
Gemäß einer Ausführungsform ist die Erfindung ferner dadurch gekennzeichnet, dass Verkehrsdaten auf der Grundlage des Empfangs des erfassten und lokalisierten Objekts bestimmt werden.
-
Gemäß einer Ausführungsform schließen die Anweisungen ferner Anweisungen zur Erfassung der Videokameradaten mit einer oder mehreren von einer stationären Videokamera, die in einem Verkehrsinfrastruktursystem eingeschlossen ist, und einer mobilen Videokamera, die in einem oder mehreren von einem Fahrzeug und einer Drohne eingeschlossen ist, ein.
-
Gemäß der vorliegenden Erfindung wird ein System bereitgestellt, das über Mittel zur Steuerung der Lenkung, der Bremsen und des Antriebsstrangs von Fahrzeugen; und Mittel zum Erfassen und Lokalisieren eines Objekts durch Verarbeitung von Videokameradaten mit einem Kapselnetzwerk, wobei das Training des Kapselnetzwerks die Bestimmung von Routing-Koeffizienten mit einer skaleninvarianten Normalisierungsfunktion einschließt; und Mittel zum Empfangen des erfassten und lokalisierten Objekts an einer Rechenvorrichtung verfügt; und zum Betreiben eines Fahrzeugs auf der Grundlage des erfassten und lokalisierten Objekts und die Mittel zur Steuerung der Lenkung, der Bremsen und des Antriebsstrangs des Fahrzeugs.
-
Gemäß einer Ausführungsform schließt das Kapselnetz das Bestimmen von Routing-Koeffizienten ein, die den Strecken zwischen den Kapselschichten entsprechen.