-
GEBIET DER TECHNIK
-
Die Offenbarung betrifft im Allgemeinen Fahrzeugsensoren.
-
ALLGEMEINER STAND DER TECHNIK
-
Fahrzeuge können dazu ausgestattet sein, sowohl in einem autonomen als auch in einem insassengesteuerten Modus betrieben zu werden. Fahrzeuge können mit Rechenvorrichtungen, Netzwerken, Sensoren und Steuerungen ausgestattet sein, um Informationen bezüglich der Umgebung des Fahrzeugs zu erfassen und das Fahrzeug basierend auf den Informationen zu betreiben. Der sichere und komfortable Betrieb des Fahrzeugs kann vom Erfassen genauer und rechtzeitiger Informationen bezüglich der Umgebung des Fahrzeugs abhängen. Fahrzeugsensoren können Daten über zu fahrende Routen und Objekte bereitstellen, die in der Umgebung des Fahrzeugs zu vermeiden sind. Der sichere und effiziente Betrieb des Fahrzeugs kann vom Erfassen genauer und rechtzeitiger Informationen in Bezug auf Routen und Objekte in der Umgebung eines Fahrzeugs abhängig sein, während das Fahrzeug auf einer Fahrbahn betrieben wird.
-
KURZDARSTELLUNG
-
Fahrzeuge können dazu ausgestattet sein, sowohl in einem autonomen als auch in einem insassengesteuerten Modus betrieben zu werden. Mit einem halbautonomen oder vollautonomen Modus ist ein Betriebsmodus gemeint, bei dem ein Fahrzeug teilweise oder vollständig durch eine Rechenvorrichtung als Teil eines Informationssystems gelenkt werden kann, das Sensoren und Steuerungen aufweist. Das Fahrzeug kann besetzt oder unbesetzt sein, jedoch kann das Fahrzeug in beiden Fällen teilweise oder vollständig ohne die Unterstützung eines Insassen gelenkt werden. Für die Zwecke dieser Offenbarung ist ein autonomer Modus als ein Modus definiert, bei dem Antrieb (z. B. über einen Antriebsstrang, der eine Brennkraftmaschine und/oder einen Elektromotor beinhaltet), Bremsung und Lenkung des Fahrzeugs jeweils durch einen oder mehrere Fahrzeugcomputer gesteuert werden; in einem halbautonomen Modus steuert der bzw. steuern die Fahrzeugcomputer eines oder zwei von Antrieb, Bremsung und Lenkung des Fahrzeugs. In einem nichtautonomen Fahrzeug werden keine davon durch einen Computer gesteuert.
-
Eine Rechenvorrichtung in einem Fahrzeug kann dazu programmiert sein, Informationen in Bezug auf die äußere Umgebung eines Fahrzeugs zu erfassen und die Informationen zu verwenden, um einen Weg des Fahrzeugs zu bestimmen, auf dem das Fahrzeug basierend auf einem Weg des Fahrzeugs in einem autonomen oder halbautonomen Modus betrieben werden soll. Ein Weg des Fahrzeugs ist eine gerade oder eine gekrümmte Linie, die aufeinanderfolgende Standorte (d. h. Standorte zu verschiedenen Zeitpunkten) eines Fahrzeugs in einer zweidimensionalen Ebene (2D-Ebene) beschreibt, die parallel zu der Fläche einer Fahrbahn verläuft, auf der das Fahrzeug betrieben wird. Ein Fahrzeug kann auf einer Fahrbahn basierend auf einem Weg des Fahrzeugs betrieben werden, indem Befehle zum Führen des Antriebsstrangs, der Bremsung und von Lenkkomponenten des Fahrzeugs bestimmt werden, um ein Fahrzeug derart zu betreiben, dass es sich entlang des Weges bewegt. Die Informationen in Bezug auf die äußere Umgebung können den Standort eines verfolgten Objektes in globalen Koordinaten beinhalten. Bei einem beispielhaften verfolgten Objekt kann es sich um ein weiteres Fahrzeug handeln. Die Informationen können von einem Verkehrsinformationssystem empfangen werden und können auf der Verarbeitung von Daten von stationären Videokameras mit einem Kapselnetzwerk basieren.
-
In dieser Schrift wird ein Verfahren offenbart, das Detektieren, Klassifizieren und Lokalisieren eines Objektes durch Verarbeiten von Videokameradaten mit einem Kapselnetzwerk beinhaltet, wobei das Trainieren des Kapselnetzwerkes Speichern von Routing-Koeffizienten und Empfangen des detektierten, klassifizierten und lokalisierten Objektes an einer Rechenvorrichtung beinhaltet. Das Kapselnetzwerk kann ein neuronales Netzwerk sein, wobei die Datenaggregation zwischen Kapselschichten auf der Bestimmung von Routing-Koeffizienten basiert, die Routen zwischen Kapselschichten entsprechen. Routing-Koeffizienten können bestimmt werden, indem Routen basierend auf einem oder mehreren von Korrelation oder Clustering im Anschluss an das Training basierend auf einem ersten Trainingsdatensatz gruppiert werden, wobei eine Route bestimmte Elemente in einer Kapselschicht mit Standorten in einer folgenden Kapselschicht verbindet. Routing-Koeffizienten können durch Verarbeitung mit parallelen Arrays bestimmt werden.
-
Das Trainieren des Kapselnetzwerkes kann Neutrainieren des Kapselnetzwerkes basierend auf einem zweiten Trainingsdatensatz und gespeicherten Routing-Koeffizienten beinhalten. Ein Fahrzeug kann basierend auf dem Empfang eines detektierten, klassifizierten und lokalisierten Objektes betrieben werden. Der Betrieb eines Fahrzeugs kann auf dem Empfang eines detektierten, klassifizierten und lokalisierten Objektes basieren, einschließlich der Bestimmung eines vorhergesagten Standortes des Objektes in globalen Koordinaten. Verkehrsinformationen können auf dem Empfang eines detektierten, klassifizierten und lokalisierten Objektes basieren. Die Videokameradaten können mit einer oder mehreren von einer in einem Verkehrsinfrastruktursystem beinhalteten stationären Videokamera und einer in einem oder mehreren von einem Fahrzeug oder einer Drohne beinhalteten mobilen Videokamera erfasst werden. Ein Standort des Fahrzeugs und ein Standort des Objektes können in globalen Koordinaten gemessen werden. Bei den globalen Daten kann es sich um Breitengrad, Längengrad und Höhenlage handeln. Das Fahrzeug kann basierend auf dem detektierten, klassifizierten und lokalisierten Objekt betrieben werden. Das Betreiben des Fahrzeugs kann Steuern eines oder mehrerer von Fahrzeugantriebsstrang, Fahrzeuglenkung und Fahrzeugbremsen beinhalten. Das Betreiben des Fahrzeugs kann Bestimmen eines Fahrzeugweges beinhalten.
-
Ferner wird ein computerlesbares Medium offenbart, auf dem Programmanweisungen zum Ausführen einiger oder aller der vorstehenden Verfahrensschritte gespeichert sind. Ferner offenbart wird ein Computer zum Ausführen einiger oder aller der vorstehenden Verfahrensschritte, einschließlich einer Computervorrichtung, dazu programmiert, ein Objekt durch Verarbeiten von Videokameradaten mit einem Kapselnetzwerk zu detektieren, zu klassifizieren und zu lokalisieren, wobei das Trainieren des Kapselnetzwerkes Speichern von Routing-Koeffizienten und Empfangen der detektierten, klassifizierten und lokalisierten Objekte an einer Rechenvorrichtung beinhaltet. Das Kapselnetzwerk kann ein neuronales Netzwerk beinhalten, wobei die Datenaggregation zwischen Kapselschichten auf der Bestimmung von Routing-Koeffizienten basiert, die Routen zwischen Kapselschichten entsprechen. Routing-Koeffizienten können bestimmt werden, indem Routen basierend auf einem oder mehreren von Korrelation oder Clustering im Anschluss an das Training basierend auf einem ersten Trainingsdatensatz gruppiert werden, wobei eine Route bestimmte Elemente in einer Kapselschicht mit Standorten in einer folgenden Kapselschicht verbindet. Routing-Koeffizienten können durch Verarbeitung mit parallelen Arrays bestimmt werden.
-
Die Computervorrichtung kann ferner dazu programmiert sein, das Kapselnetzwerk zu trainieren, einschließlich Neutrainieren des Kapselnetzwerkes basierend auf einem zweiten Trainingsdatensatz und gespeicherten Routing-Koeffizienten. Ein Fahrzeug kann basierend auf dem Empfang eines detektierten, klassifizierten und lokalisierten Objektes betrieben werden. Der Betrieb eines Fahrzeugs kann auf dem Empfang eines detektierten, klassifizierten und lokalisierten Objektes basieren, einschließlich der Bestimmung eines vorhergesagten Standortes des Objektes in globalen Koordinaten. Verkehrsinformationen können auf dem Empfang eines detektierten, klassifizierten und lokalisierten Objektes basieren. Die Videokameradaten können mit einer oder mehreren von einer in einem Verkehrsinfrastruktursystem beinhalteten stationären Videokamera und einer in einem oder mehreren von einem Fahrzeug oder einer Drohne beinhalteten mobilen Videokamera erfasst werden. Ein Standort des Fahrzeugs und ein Standort des Objektes können in globalen Koordinaten gemessen werden. Bei den globalen Daten kann es sich um Breitengrad, Längengrad und Höhenlage handeln. Das Fahrzeug kann basierend auf dem detektierten, klassifizierten und lokalisierten Objekt betrieben werden. Das Betreiben des Fahrzeugs kann Steuern eines oder mehrere von Fahrzeugantriebsstrang, Fahrzeuglenkung und Fahrzeugbremsen beinhalten. Das Betreiben des Fahrzeugs kann Bestimmen eines Fahrzeugweges beinhalten.
-
Figurenliste
-
- 1 ist ein Blockdiagramm eines beispielhaften Verkehrsinfrastruktursystems.
- 2 ist ein Diagramm einer beispielhaften Verkehrsszene mit einer stationären Kamera.
- 3 ist ein Diagramm eines beispielhaften Kapselnetzwerkes.
- 4 ist ein Ablaufdiagramm eines beispielhaften Routing-Algorithmus.
- 5 ist ein Diagramm beispielhafter Master-Matrizen für Routing-Koeffizienten.
- 6 ist ein anderes Diagramm beispielhafter Master-Matrizen für Routing-Koeffizienten.
- 7 ist ein anderes Diagramm beispielhafter Master-Matrizen für Routing-Koeffizienten.
- 8 ist ein Ablaufdiagramm eines Prozesses zum Bestimmen von Objektpositionen und zum Herunterladen dieser in ein Fahrzeug.
-
DETAILLIERTE BESCHREIBUNG
-
1 ist ein Diagramm eines Verkehrsinfrastruktursystems 100, das ein Fahrzeug 110 beinhaltet, welches in einem autonomen („autonom“ bedeutet in dieser Offenbarung alleinstehend „vollautonom“), einem halbautonomen und einem von einem insassengesteuerten (auch als nichtautonom bezeichneten) Modus betrieben werden kann. Eine oder mehrere Rechenvorrichtungen 115 des Fahrzeugs 110 kann/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 diese bekannt sind. Ferner beinhaltet der Speicher eine oder mehrere Arten von computerlesbaren Medien und speichert Anweisungen, die durch den Prozessor ausgeführt werden können, um verschiedene Vorgänge durchzuführen, einschließlich der in dieser Schrift offenbarten. Zum Beispiel kann die Rechenvorrichtung 115 Programmierung beinhalten, um eines oder mehrere von Bremsen, Antrieb (z. B. Steuerung der Beschleunigung in dem Fahrzeug 110 durch Steuern von einem oder mehreren von einer Brennkraftmaschine, einem Elektromotor, Hybridmotor usw.), Lenkung, Klimasteuerung, 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 Fahrzeugführer derartige Vorgänge steuern soll.
-
Die Rechenvorrichtung 115 kann mehr als eine Rechenvorrichtung beinhalten, z. B. Steuerungen oder dergleichen, die zum Überwachen und/oder Steuern verschiedener Fahrzeugkomponenten in dem Fahrzeug 110 beinhaltet sind, z. B. eine Antriebsstrangsteuerung 112, eine Bremssteuerung 113, eine Lenksteuerung 114 usw., oder z. B. über einen Kommunikationsbus des Fahrzeugs, wie nachfolgend genauer beschrieben, mit diesen kommunikativ gekoppelt sein. Die Rechenvorrichtung 115 ist im Allgemeinen zur Kommunikation in einem Kommunikationsnetzwerk des Fahrzeugs 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 dazu drahtgebundene oder drahtlose Kommunikationsmechanismen beinhalten, wie sie bekannt sind, z. B. Ethernet oder andere Kommunikationsprotokolle.
-
Über das Netzwerk des Fahrzeugs 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 dazu kann in Fällen, in denen die Rechenvorrichtung 115 tatsächlich mehrere Vorrichtungen umfasst, das Kommunikationsnetzwerk des Fahrzeugs zur Kommunikation zwischen Vorrichtungen verwendet werden, die in dieser Offenbarung als die Rechenvorrichtung 115 dargestellt sind. Ferner können, wie nachstehend erwähnt, verschiedene Steuerungen oder Erfassungselemente, wie etwa die Sensoren 116, der Rechenvorrichtung 115 Daten über das Kommunikationsnetzwerk des Fahrzeugs bereitstellen.
-
Darüber hinaus kann die Rechenvorrichtung 115 zur Kommunikation durch eine Fahrzeug-Infrastruktur-Schnittstelle (F-I-Schnittstelle) 111 mit einem Remote-Servercomputer 120, z. B. einem Cloud-Server, über ein Netzwerk 130 konfiguriert sein, die, wie nachstehend beschrieben, Hardware, Firmware und Software beinhaltet, welche es der Rechenvorrichtung 115 ermöglichen, mit einem entfernten Servercomputer 120 über ein Netzwerk 130, wie etwa drahtlose Internet- (Wi-Fi-) oder Mobilfunknetzwerke, zu kommunizieren. Die F-I-Schnittstelle 111 kann dementsprechend Prozessoren, einen Speicher, Sendeempfänger usw. beinhalten, die dazu konfiguriert sind, verschiedene drahtgebundene und/oder drahtlose Netzwerktechnologien zu nutzen, z. B. Mobilfunk, BLULTOOTH® und drahtgebundene und/oder drahtlose Paketnetzwerke. Die Rechenvorrichtung 115 kann zum Kommunizieren mit anderen Fahrzeugen 110 über die F-I-Schnittstelle 111 unter Verwendung von Fahrzeug-Fahrzeug-Netzwerken (F-F-Netzwerken) z. B. gemäß dedizierter Nahbereichskommunikation (Dedicated Short Range Communications - DSRC) und/oder dergleichen konfiguriert sein, die z. B. ad hoc zwischen Fahrzeugen 110 in der Nähe gebildet werden oder über infrastrukturbasierte Netzwerke gebildet werden. Die Rechenvorrichtung 115 beinhaltet zudem 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(F-I)-Schnittstelle 111 an einen Servercomputer 120 oder eine mobile Benutzervorrichtung 160 in nichtflüchtigem Speicher speichert.
-
Wie bereits erwähnt, ist in Anweisungen, die auf dem Speicher gespeichert sind und durch den Prozessor der Rechenvorrichtung 115 ausgeführt werden können, im Allgemeinen Programmierung zum Betreiben einer oder mehrerer Komponenten des Fahrzeugs 110, z. B. Bremsung, Lenkung, Antrieb usw., ohne Eingreifen eines menschlichen Fahrzeugführers enthalten. Unter Verwendung von in der Rechenvorrichtung 115 empfangenen Daten, z. B. den 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. Die Rechenvorrichtung 115 kann zum Beispiel Programmierung beinhalten, um Betriebsverhalten des Fahrzeugs 110 (d.h. physische Manifestationen des Betriebs des Fahrzeugs 110), wie etwa Geschwindigkeit, Beschleunigung, Verzögerung, Lenken usw., sowie taktisches Verhalten (d. h. Steuerung des Betriebsverhaltens typischerweise auf eine Weise, mit der ein sicheres und effizientes Zurücklegen einer Route erreicht werden soll), wie etwa eine Entfernung zwischen Fahrzeugen und/oder eine Zeitspanne zwischen Fahrzeugen, einen Spurwechsel, einen Mindestabstand zwischen Fahrzeugen, einen minimalen Linksabbiegeweg, eine Zeit bis zur Ankunft an einem bestimmten Ort und eine minimale Zeit bis zur Ankunft an einer Kreuzung (ohne Ampel) zum Überqueren der Kreuzung zu regulieren.
-
Im vorliegenden Zusammenhang beinhaltet der Ausdruck Steuerungen Rechenvorrichtungen, die typischerweise zum Steuern eines bestimmten Fahrzeugteilsystems programmiert sind. Beispiele beinhalten eine Antriebsstrangsteuerung 112, eine Bremssteuerung 113 und eine Lenksteuerung 114. Bei einer Steuerung kann es sich um eine elektronische Steuereinheit (electronic control unit - ECU), wie sie bekannt ist, handeln, die möglicherweise eine zusätzliche Programmierung, wie in dieser Schrift beschrieben, beinhaltet. Die Steuerungen können mit der Rechenvorrichtung 115 kommunikativ verbunden sein und Anweisungen von dieser empfangen, um das Teilsystem gemäß den Anweisungen zu betätigen. Beispielsweise kann die Bremssteuerung 113 Anweisungen von der Rechenvorrichtung 115 zum Betreiben der Bremsen des Fahrzeugs 110 empfangen.
-
Die eine oder mehreren Steuerungen 112, 113, 114 für das Fahrzeug 110 können bekannte elektronische Steuereinheiten (ECUs) oder dergleichen einschließen, zu denen als nicht einschränkende Beispiele eine oder mehrere Antriebsstrangsteuerungen 112, eine oder mehrere Bremssteuerungen 113 und eine oder mehrere Lenksteuerungen 114 gehören. Jede der Steuerungen 112, 113, 114 kann entsprechende 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-Bus (CAN-Bus) oder Local-Interconnect-Network-Bus (LIN-Bus), um Anweisungen von dem Computer 115 zu empfangen und Aktoren basierend auf den Anweisungen zu steuern.
-
Die Sensoren 116 können eine Vielfalt an Vorrichtungen beinhalten, die für die Bereitstellung von Daten über den Kommunikationsbus des Fahrzeugs bekannt sind. Beispielsweise kann ein Radar, das an einem vorderen Stoßfänger (nicht gezeigt) des Fahrzeugs 110 befestigt ist, einen Abstand des Fahrzeugs 110 zu einem nächsten Fahrzeug vor dem Fahrzeug 110 bereitstellen oder kann ein Sensor eines globalen Positionierungssystems (GPS), der in dem Fahrzeug 110 angeordnet ist, geographische Koordinaten des Fahrzeugs 110 bereitstellen. Der/Die durch das Radar und/oder die anderen Sensoren 116 bereitgestellte(n) Abstand/Abstände und/oder die durch den GPS-Sensor bereitgestellten geographischen Koordinaten 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 landbasiertes Fahrzeug 110, das zu einem autonomen und/oder halbautonomen Betrieb in der Lage ist und drei oder mehr Räder aufweist, z. B. ein Personenkraftwagen, ein Leichtlastkraftwagen usw. Das Fahrzeug 110 beinhaltet einen oder mehrere Sensoren 116, die F-I-Schnittstelle 111, die Rechenvorrichtung 115 und eine oder mehrere Steuerungen 112, 113, 114. Die Sensoren 116 können Daten in Bezug auf das Fahrzeug 110 und die Umgebung, in der das Fahrzeug 110 betrieben wird, sammeln. Beispielsweise und nicht einschränkend können zu den 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. gehören. Die Sensoren 116 können dazu verwendet werden, die Umgebung zu erfassen, in der das Fahrzeug 110 betrieben wird, z. B. können die Sensoren 116 Phänomene, wie etwa Wetterbedingungen (Niederschlag, externe Umgebungstemperatur usw.), die Neigung einer Straße, die Lage einer Straße (z. B. unter Verwendung von Straßenrändern, Spurmarkierungen usw.) oder Standorte von Zielobjekten, wie etwa benachbarten Fahrzeugen 110, erfassen. Die Sensoren 116 können ferner dazu verwendet werden, Daten zu sammeln, die dynamische Daten des Fahrzeugs 110 in Bezug auf Vorgänge des Fahrzeugs 110 wie etwa Geschwindigkeit, Gierrate, Lenkwinkel, Motordrehzahl, Bremsdruck, Öldruck, der an die Steuerungen 112, 113, 114 in dem Fahrzeug 110 angelegte Leistungspegel, Konnektivität zwischen Komponenten und genaue und rechtzeitige Leistung von Komponenten des Fahrzeugs 110 beinhalten.
-
2 ist ein Diagramm einer Verkehrsszene 200. Die Verkehrsszene 200 beinhaltet eine Fahrbahn 202, auf der Fahrzeuge 204 betrieben werden. Die Verkehrsszene 200 beinhaltet zudem eine stationäre Videokamera 206. Die stationäre Videokamera 206 kann an einem Mast 208 oder einer anderen stationären Struktur, einschließlich eines Gebäudes, montiert sein, um der stationären Videokamera 206 ein Sichtfeld 210 zu gewähren, das eine Lage der Fahrbahn 202 und normalerweise von Zeit zu Zeit Fahrzeuge 204 beinhaltet. Die stationäre Videokamera 206 kann an einem Mast 208 angebracht sein, um der stationären Videokamera 206 zu ermöglichen, ein im Wesentlichen unveränderliches Sichtfeld 210 in Bezug auf die Fahrbahn 202 beizubehalten. Die stationäre Videokamera 206 kann derart kalibriert sein, dass sie den dreidimensionalen (3D-) Standort, in globalen Koordinaten, des Sichtfeldes 210 bestimmt. Bei den globalen Koordinaten handelt es sich beispielsweise um auf einem globalen Koordinatensystem, wie es etwa durch ein GPS verwendet wird, basierende Positionsdaten, wie etwa Breitengrad, Längengrad und Höhenlage. Durch das Bestimmen des 3D-Standortes des Sichtfeldes 210 in globalen Koordinaten kann der 3D-Standort in globalen Koordinaten einer Region in einem Datensatz der stationären Videokamera bestimmt werden, wobei die Region beispielsweise einem Objekt entspricht.
-
Eine stationäre Videokamera 206 kann kalibriert werden, indem ein Bild einer stationären Videokamera erfasst wird, das ein Objekt mit gemessenen Merkmalen an einem gemessenen Standort beinhaltet. Die Größen der Merkmale können in dem Bild der stationären Videokamera bestimmt und mit den Größen der Merkmale in der realen Welt unter Verwendung von Projektionsgeometrie verglichen werden. Projektionsgeometrie ist eine Technik zum Bestimmen von Standorten in der realen Welt, die Standorten in einem Bild entsprechen, indem Standorte in der realen Welt von Standorten in Bilddaten gemessen werden, um Standorte in der realen Welt und Größen von Objekten in Bildern zu bestimmen. Die Standortmerkmale in Bilddaten können basierend auf Projektionsgleichungen, die auf Informationen bezüglich gemessener Standorte in der realen Welt, dem Sichtfeld 208 und der Vergrößerung einer in der stationären Videokamera 206 beinhalteten Linse basieren, um die Standorte in der realen Welt der Standorte in Bilddaten in globalen Koordinaten zu bestimmen.
-
Die stationäre Videokamera 206 kann in einem Verkehrsinformationssystem 100 beinhaltet sein. Ein Verkehrsinformationssystem 100 kann Servercomputer 120 beinhalten, die dazu konfiguriert sind, Daten der stationären Videokamera zu erfassen und zu verarbeiten, um Objekte zu verfolgen und die verfolgten Objekte in globalen Koordinaten zu lokalisieren. Das Verkehrsinformationssystem 100 kann zudem mit einem Fahrzeug 110 basierend auf dem Standort des Fahrzeugs 110 kommunizieren. Zum Beispiel kann ein Verkehrsinformationssystem 100 mit einem Fahrzeug 110 basierend auf dessen Nähe zu einer stationären Videokamera 206 kommunizieren. Das Verkehrsinformationssystem 100 kann Informationen bezüglich eines verfolgten Objektes bestimmen, das sich außerhalb des Sichtfeldes von in einem Fahrzeug 110 beinhalteten Sensoren befinden, jedoch beispielsweise in naher Zukunft durch das Fahrzeug 110 gesehen werden können.
-
3 ist ein Diagramm eines beispielhaften Kapselnetzwerkes 300, das trainiert werden kann, um ein Objekt in einem Sichtfeld 210 basierend auf Videokameradaten zu detektieren, zu klassifizieren und zu lokalisieren. Bei dem Kapselnetzwerk 300 handelt es sich um neuronales Netzwerk, das Kapselschichten C1 304 (C1), C2 308 (C2), C3 312 (C3) und vollständig verbundene Schichten 320 (fully connected - FC) beinhaltet. Das Kapselnetzwerk 300 kann Videobilddaten 302 eingeben, wobei die Videobilddaten einen Rahmen von Videodaten beinhalten, die in einer Zeitfolge von in gleichen Zeitintervallen erfassten Zeitrahmen erfasst wurden. Das Kapselnetzwerk 300 verarbeitet die eingegebenen Videobilddaten 302 Rahmen für Rahmen. Ein Rahmen der Videobilddaten 302 wird in die Kapselschichten C1 304 (C1), C2 308 (C2), C3 312 (C3), gemeinsam 324, zur Verarbeitung eingegeben. Das Kapselnetzwerk 300 ist mit drei Kapselschichten C1 304, C2 308, C3 312 gezeigt, jedoch kann das Kapselnetzwerk 300 mehr oder weniger Schichten 324 aufweisen. Die erste Kapselschicht 304 kann einen Rahmen von Videodaten verarbeiten, indem eine Reihe von Faltungsfiltern auf Eingangsdaten angewendet wird, um Merkmale zu bestimmen. Von der ersten Kapselschicht 304 werden Merkmale zur Verarbeitung an die nachfolgenden Kapselschichten 308, 312 ausgegeben, um Merkmale zu identifizieren, Merkmale zu gruppieren und Eigenschaften von Gruppen von Merkmalen zu messen, indem Kapseln erzeugt werden, die Standort, Größe und Ausrichtung in Bezug auf einen Videorahmen und somit das Sichtfeld 210 beinhalten.
-
Zwischenergebnisse 314, die von den Kapselschichten 324 ausgegeben werden, werden in eine Routing-Schicht 316 (routing layer - RL) eingegeben. Die Routing-Schicht 316 wird verwendet, wenn ein Kapselnetzwerk 300 trainiert wird, und gibt die Zwischenergebnisse 314 an vollständig verbundene Schichten 320 sowohl zur Trainingszeit als auch zur Laufzeit zur weiteren Verarbeitung weiter. Die Routing-Schicht 316 bildet Routen oder Verbindungen zwischen den Kapselschichten 324 basierend auf einer Backpropagation von basierend auf einer Grundwahrheit bestimmten Belohnungsfunktionen aus, die mit Zustandsvariablen 322 verglichen wird, welche von den vollständig verbundenen Schichten 320 ausgegeben werden. Die Grundwahrheit ist eine Zustandsvariableninformation, die unabhängig von Zustandsvariablen 322, welche von den vollständig verbundenen Schichten 320 ausgegeben werden, bestimmt werden. Zum Beispiel entsprechen die Zustandsvariablen 322 der Detektion, Klassifizierung und dem Standort für das verfolgte Objekt. Dieselben Informationen können bestimmt werden, indem Standortinformationen der verfolgten Objekte basierend auf GPS- und inertialen Messeinheitssensoren (IME-Sensoren), die in dem verfolgten Objekt beinhaltet sind, aufgezeichnet werden. Die aufgezeichneten Standortinformationen können verarbeitet werden, um Grundwahrheit-Zustandsvariablen zu bestimmen, die dem Standort für das Objekt entsprechen, das den Rahmen von Videodaten entspricht, die als Videobilddaten 302 in das Kapselnetzwerk 300 eingegeben werden.
-
Die Rechenvorrichtung 115 kann die von dem Kapselnetzwerk 300 ausgegebenen und per Backpropagation übermittelte Zustandsvariablen 322 mit Grundwahrheit-Zustandsvariablen vergleichen, um eine Ergebnisfunktion während des Trainierens des Kapselnetzwerkes 300 auszubilden. Die Ergebnisfunktion wird verwendet, um Gewichtungen oder Parameter auszuwählen, die Filtern für die Kapselschicht 324 entsprechen, wobei Filtergewichtungen, die positive Ergebnisse erzeugen, durch die Belohnungsfunktion bestimmt werden. Kapselnetzwerke führen Datenaggregation von Filtergewichtungen aus, indem Routen oder Verbindungen zwischen den Kapselschichten 324 basierend auf Kapseln ausgebildet werden, wobei eine Kapsel ein n-Tupel von n Datenelementen ist, die als ein Datenelement einen Standort in der Kapselschicht 324 und als ein anderes Datenelement eine dem Standort entsprechende Belohnungsfunktion beinhaltet. In der Routing-Schicht 316 durchläuft eine for-Schleife mehrere Iterationen, um dynamisch einen Satz von Routing-Koeffizienten zu berechnen, die Kapseln der unteren Schicht (d. h. die Eingaben in die Routing-Schicht) mit Kapseln der höheren Schicht (d. h. den Ausgaben der Routing-Schicht) verbinden. Die zweiten Zwischenergebnisse 318, die von der Routing-Schicht 316 ausgegeben werden, werden dann an die vollständig verbundenen Schichten 320 des Netzwerks zur weiteren Verarbeitung gesendet. Es können auch zusätzliche Routing-Schichten im restlichen Teil des Kapselnetzwerkes 300 vorhanden sein.
-
Die durch die Routing-Schicht 316 ausgegebenen zweiten Zwischenergebnisse 318 werden in die vollständig verbundenen Schichten 320 eingegeben. Die vollständig verbundenen Schichten können die zweiten Zwischenergebnisse 318 eingeben und Zustandsvariablen 322, die Zielstandorten entsprechen, ausgeben. Eine Zeitfolge von Zielstandorten kann der Bewegung eines festen 3D-Objektes in einer parallel zu einer Fahrbahn 202 verlaufenden Ebene entsprechen, die der Newtonschen Physik unterliegt. Die Zielverfolgung beinhaltet Bestimmen der Zustandsvariablen 322, die einem Standort des verfolgten Objektes entsprechen, in Bezug auf einen Videorahmen und somit ein Sichtfeld 210 einer stationären Videokamera 206. Das Kapselnetzwerk 300 kann daraufhin trainiert werden, Objekte basierend auf Sensordateneingaben von einer Vielfalt an Sensoren, einschließlich Radarsensoren, LIDAR-Sensoren, Infrarotsensoren und Videosensoren, zu detektieren, zu klassifizieren und zu lokalisieren. Die Sensoren können an einer Vielfalt von stationären oder mobilen Plattformen, einschließlich beispielsweise Fahrzeugen 110 und Drohnen, montiert sein.
-
Die Objektdetektion kann Bestimmen von Vordergrundpixeln und Hintergrundpixeln in Videokameradaten beinhalten, wobei es sich beispielsweise bei Vordergrundpixeln um Pixel handelt, die sich bewegenden Objekten entsprechen, und Hintergrundpixel sich nicht bewegenden Regionen in den Videokameradaten 302 entsprechen. Das Kapselnetzwerk 300 kann ein Objekt detektieren, indem eine verbundene Region von Vordergrundpixeln bestimmt wird. Das detektierte Objekt kann klassifiziert werden, indem geometrische Messungen an der verbundenen Region durchgeführt werden. Zum Beispiel können eine Größe und eine Form eines Rechtecks mit minimalem Umfang bestimmen, welcher Klasse ein detektiertes Objekt zugewiesen werden kann. Detektierte Objekte können klassifiziert werden, indem die detektierten Objekte einer Klasse zugewiesen werden, die einem Fahrzeug, einem Fußgänger oder einem Tier entspricht, je nach Größe und Form. Detektierte und klassifizierte Objekte können lokalisiert werden, indem ein Maß, wie der Massenschwerpunkt, an der in dem Objekt beinhalteten zusammenhängenden Region von Pixeln bestimmt wird. Daten, die der Detektion, Klassifizierung und dem Standort eines Objektes in den Videokameradaten 302 entsprechen, können durch das Kapselnetzwerk 300 als die Zustandsvariablen 322 ausgegeben werden.
-
Die Daten zur/zum Objektdetektion, -klassifizierung und -standort für ein Objekt können durch eine Rechenvorrichtung für eine Vielfalt an Aufgaben, die den Fahrzeugbetrieb betreffen, verwendet werden. Daten zur/zum Objektdetektion, -klassifizierung und -standort anhand der Videokameradaten 302, die durch eine stationäre Videokamera 206 erfasst werden, können in ein Fahrzeug 110 heruntergeladen werden, um zum Betreiben des Fahrzeugs 110 verwendet zu werden. Zum Beispiel kann ein Fahrzeug 110 basierend auf einem vorhergesagten Standort für ein Objekt einen Fahrzeugweg bestimmen, auf dem es betrieben werden soll, wobei das Fahrzeug 110 eine Kollision oder Beinahekollision zwischen einem vorhergesagten Standort des Fahrzeugs 110 und einem vorhergesagten Standort eines Objektes detektieren kann. Daten zur/zum Objektdetektion, -standort und -klassifizierung können von einer an einem Fahrzeug 110 montierten Videokamera erfasst werden. Das Fahrzeug 110 kann die Daten zur/zum Objektdetektion, -klassifizierung und -standort verwenden, um Kollisionen und Beinahekollisionen zwischen vorhergesagten Standorten des Fahrzeugs 110 und vorhergesagten Standorten des Objektes zu bestimmen.
-
Daten zur/zum Objektdetektion, -klassifizierung und -standort können zudem durch eine Videokamera erfasst werden, die an einer mobilen Plattform, wie etwa einer Drohne, montiert ist. Daten zur/zum Objektdetektion, -klassifizierung und -standort, die durch eine an einer Drohne montierte Videokamera erfasst werden, können durch einen Servercomputer 120 in einem Verkehrsinformationssystem 100 zum Bestimmen von Verkehrsinformationen empfangen werden. Zum Beispiel kann ein Servercomputer Verkehrsinformationen, wie Informationen hinsichtlich Verkehrsstaus und Verkehrsunfällen, basierend auf einer/einem empfangenen Objektdetektion, -klassifizierung und -standort bestimmen und diese in ein Fahrzeug 110 herunterladen. Prozesse, die basierend auf dem Detektieren, Klassifizieren und Lokalisieren von Objekten Fahrzeuge betreiben oder den Fahrzeugbetrieb unterstützen, können durch Verbesserungen beim Trainieren des Kapselnetzwerkes 300 profitieren, einschließlich des in dieser Schrift offenbarten schnellen Routings des Kapselnetzwerkes 300, indem ermöglicht wird, dass das Kapselnetzwerk 300 effizienter trainiert, neu trainiert und optimiert wird als Kapselnetzwerke 300, die keine wie in dieser Schrift beschriebenen Master-Routing-Koeffizienten speichern und wiedergeben.
-
4 ist ein Ablaufdiagramm eines Prozesses 400 zum Bestimmen von Routing-Koeffizienten für ein Kapselnetzwerk 300. Der Prozess 400 kann durch einen Prozessor der Rechenvorrichtung 115 umgesetzt werden, wobei zum Beispiel Informationen von den Sensoren 116 als Eingabe herangezogen werden und Befehle ausgeführt und Steuersignale über die Steuerungen 112, 113, 114 gesendet werden. Der Prozess 400 beinhaltet mehrere Blöcke, die in der offenbarten Reihenfolge ausgeführt werden. Der Prozess 400 könnte alternativ oder zusätzlich dazu weniger Blöcke beinhalten oder kann die Blöcke in unterschiedlichen Reihenfolgen beinhalten.
-
Der Prozess 400 beginnt bei Block 402, bei dem der Prozess 400 einen Satz von Vorhersagetensoren, ûj|i, die Anzahl der Male zum Durchführen des Routings, r, und die Anzahl der Netzwerkschichten, l, als Eingabe heranzieht. Die Vorhersagetensoren ûj|i werden anhand des Eingabebildes berechnet. Der Prozess 400 beinhaltet Bestimmen von Routing-Koeffizienten als Elternschicht-Kapseltensoren vj für ein einzelnes Eingabebild. Elternschicht-Kapseltensoren vj sind durch die nachstehende Gleichung (2) definiert und werden verwendet, um eine Route mit einem maximalen Wert gemäß den per Backpropagation übermittelten Ergebnissen auszuwählen. Der Prozess 400 wird eine durch einen Benutzer eingegebene Anzahl von Malen pro Bild für eine Vielzahl von Eingabebildern mit entsprechenden Grundwahrheitsdaten bei Trainieren eines Kapselnetzwerkes 300 wiederholt. Die in dieser Schrift verwendeten Zahlen zum Beschreiben einer Größe von Tensoren sind Beispiele und können vergrößert oder verkleinert werden, ohne die Techniken zu ändern.
-
Der Prozess 400 beginnt im Block 402, indem ein einzelner Vorhersagetensor mit der Dimension (16, 1152, 10) eingegeben wird. Die erste Zahl, 16, kennzeichnet die Dimension eines einzelnen Vorhersagevektors, wobei es sich bei einem einzelnen Vorhersagevektor um einen Vektor mit 16 Komponenten handelt, wobei jede Komponente einem konkreten Aspekt eines Objektes entspricht. Die zweite Zahl, 1152, kennzeichnet, wie viele Kapseln i in Schicht l jeder der 10 Kapseln, j, in Schicht l + 1 zugewiesen werden können. Jede Unterschicht-Kapsel i ist für die Verknüpfung eines einzelnen Vorhersagevektors mit einer Elternschicht-Kapsel j verantwortlich. Die Vorhersagevektoren werden durch das Netzwerk während des Trainings erlernt und entsprechen Objekten, wie sie durch das Netzwerk bei einem gegebenen Satz von Merkmalen bestimmt werden. Die Elternschicht-Kapseln j entsprechen den Objekten im Ganzen. Im Verlauf des gesamten Routing-Algorithmus werden die Routing-Koeffizienten iterativ berechnetet, um Unterschicht-Kapseln mit korrekten Oberschicht-Kapseln zu verbinden. Mit jedem neuen Bild, welches das Netzwerk sieht, werden diese Berechnungen zwischen jeder der 1152 Unterschicht-Kapseln i und jeder der 10 Oberschicht-Kapseln j für jede Schicht l von Beginn an durchgeführt. Ein Tensor bij mit den Dimensionen (1152, 10) wird anfangs auf null gesetzt und die Iterationsanzahl k wird anfangs auf 1 gesetzt.
-
Bei Block
402 wird eine Softmax-Funktion gemäß Gleichung (1) auf einen Tensor b
ij mit den Dimensionen (1152, 10) zum Bestimmen von Routing-Koeffizienten c
ij angewendet:
-
Die Softmax-Funktion wandelt die Anfangswerte des Tensors bij in Zahlen zwischen 0 und 0,1 um. Die Softmax-Funktion ist eine in dieser Schrift verwendete beispielhafte Normierungstechnik, allerdings können andere skaleninvariante Normierungsfunktionen vorteilhafterweise mit in dieser Schrift beschriebenen Techniken verwendet werden.
-
Bei Block 404 werden die Routing-Koeffizienten cij mit jedem der Vorhersagevektoren multipliziert und summiert, um eine Matrix sij = ∑i cij ûj|i zu bilden.
-
Bei Block
406 wird die Matrix s
ij mit Gleichung (2) komprimiert, um Ausgabe-Elternschicht-Kapseltensoren v
j:
-
Die Komprimierung gewährleistet, dass die Länge jeder der zehn Zeilen in sj auf einen Wert zwischen null und eins beschränkt wird.
-
Wenn die Iterationsanzahl k größer als eins ist, werden die Routing-Koeffizienten cij der Matrix sij bei Block 408 aktualisiert, indem das Skalarprodukt zwischen den Vorhersagevektoren ûj|i und den Elternschicht-Kapseltensoren vj gebildet und das Ergebnis zu dem Tensor bij addiert wird. Das Kapselnetzwerk 300 kann daraufhin trainiert werden, Objekte in Eingabebildern zu erkennen, indem die Zeile in vj ausgewählt wird, welche die längste Länge und somit die höchste Wahrscheinlichkeit für das korrekte Erkennen des Objektes aufweist.
-
Bei Block 410 inkrementiert der Prozess die Iterationsanzahl und vergleicht diese mit j. Wenn die Iterationsanzahl geringer als oder gleich j ist, kehrt der Prozess 400 zu Block 402 für eine weitere Iteration zurück. Wenn die Iterationsanzahl größer als j ist, endet der Prozess 400.
-
Bei dem Prozess 400 handelt es sich um eine Technik zum Bestimmen, welche Kapselrouten am wahrscheinlichsten einem erfolgreichen Betrieb des Kapselnetzwerkes 300 entsprechen, z. B. Ausgeben von Statusvariablen 322, die mit den Grundwahrheitsdaten übereinstimmen. Die bestimmten Kapselrouten können auf Datenaggregation basieren, wobei mehrere durch Faltungsfilterung bestimmte Merkmale (Kapseln) durch Routing kombiniert werden, um einem einzelnen Objekt zu entsprechen, und durch Einbeziehung von Informationen zu dessen Detektion, Klassifizierung und Standort in einem Bild. Schnelles Routing wird während der Ableitung umgesetzt, wenn das Routing der auf diese Weise bestimmten Kapsel nach dem Training verworfen werden kann, weil die Routing-Gewichtungen während des Trainings gespeichert werden können. Bei der Verwendung kann das Kapselnetzwerk 300 basierend auf den gespeicherten Routing-Gewichtungen betrieben werden und zu korrekten Ausgabe-Zustandsvariablen 322 gelangen, ohne Kapselrouten individuell zu bestimmen, da diese während des Prozesses 400 während des Trainings gespeichert wurden.
-
Andere Techniken zum Bestimmen von Kapselrouten, beispielsweise Routing über Erwartungsminimierung (EM), verwenden dynamische Programmierung, um optimale Sätze von Kapsel-Routings anstelle der Technik aus dem Prozess 400 zu bestimmen. Bei der dynamischen Programmierung handelt es sich um eine Technik zum Lösen eines komplexen Problems, indem dieses in eine Reihe kleinerer Schritte aufgegliedert wird. Die Schritte können aufeinanderfolgend sein, wobei die Ausgabe von jedem Schritt die Eingabe für den nächsten Schritt bildet. Zwischenergebnisse zwischen Schritten können im Speicher der Rechenvorrichtung 115 gespeichert und iterativ verarbeitet werden, bis vorbestimmte Endbedingungen erfüllt sind. Zum Beispiel kann eine Endbedingung sein, dass der Änderungsbetrag in der finalen Ausgabe zwischen zwei aufeinanderfolgenden Schritten weniger als ein benutzerdefinierter Schwellenwert beträgt.
-
Auf dynamischer Programmierung basierende Routing-Techniken, wie EM-Routing, sind dem Prozess 400 dahingehend ähnlich, dass die Routing-Informationen nach dem Training verworfen werden. Die in dieser Schrift beschriebenen Techniken verbessern die Verarbeitung des Kapselnetzwerkes 300, indem Routing-Informationen der Kapsel nach dem Training in einer Master-Matrix für Routing-Koeffizienten aufbewahrt werden, welche die Ableitungszeit des Kapselnetzwerkes 300 beschleunigen können, die Optimierung des Kapselnetzwerkes 300 nach dem Anfangstraining unterstützen und dabei helfen, das Kapselnetzwerk 300 schneller zu trainieren. Die in dieser Schrift beschriebenen Techniken können die Verarbeitungszeit exponentiell verringern, indem die for-Schleife in einem dynamischen Algorithmus übersprungen und diese mit einer einzelnen Tensormultiplizierungsoperation ersetzt wird, die über mehrere Graphikprozessoren (graphics processing units - GPUs) parallel geschaltet werden kann, indem das Routing nach dem Trainieren durchgeführt wird, nachdem alle Kapselrouten bestimmt wurden. Wenn zum Beispiel der ursprüngliche dynamische Routing-Algorithmus zehn Iterationen zum Berechnen der Routing-Koeffizienten verwendet, ersetzen die in dieser Schrift beschriebenen Techniken die zehn Iterationen mit einer einzelnen Tensormultiplikation. Wenn der dynamische Routing-Algorithmus 100 Iterationen zum Berechnen der Routing-Koeffizienten verwendet, können die in dieser Schrift beschriebenen Techniken die 100 Iterationen mit einer einzelnen Tensormultiplikation ersetzen und so weiter. Die in dieser Schrift beschriebenen Techniken können auf eine beliebige Kapselnetzwerkarchitektur angewendet werden, die Routing-Koeffizienten verwendet, um Objektteile dem jeweiligen gesamten Objekt zuzuweisen. Zusammengefasst kann die Verarbeitungseffizienz des Computers, einschließlich der Verringerung der Verarbeitungszeit und/oder der erforderlichen Verarbeitungsleitung, durch die in dieser Schrift offenbarten Techniken deutlich erhöht werden.
-
Master-Routing-Koeffizienten können anhand von individuellen Routing-Koeffizienten erzeugt werden, die während des Trainings des Kapselnetzwerkes 300 auftreten und den Eingaben des Kapselnetzwerkes 300 entsprechen. Dieser einzelne Satz von Master-Routing-Koeffizienten kann dann verwendet werden, um das Netzwerk während der Ableitung schneller zu machen. Die Routing-Koeffizienten können bestimmt werden, indem zuerst ein Kapselnetzwerk 300 unter Verwendung eines Trainingsdatensatzes und entsprechender Grundwahrheitsdaten trainiert wird. Routing-Koeffizienten können beispielsweise für jede Trainingseingabe in der for-Schleife des Prozesses 400 wie vorstehend erörtert dynamisch bestimmt werden. Das Kapselnetzwerk 300 kann dahingehend bestimmt sein, dass es trainiert wird, wenn ein Gesamtverlustwert gleich einer Differenz zwischen den Zustandsvariablen 322 und den Grundwahrheitsdaten stabil ist. Der Gesamtverlustwert ist dann stabil, wenn er um einen Mittelwert schwankt und nicht länger zu- oder abnimmt. Das Kapselnetzwerk 300 kann dahingehend bestimmt sein, dass es trainiert wird, wenn der Gesamtverlustwert einen maximalen Wert erreicht hat.
-
Routing-Koeffizienten können von dem Routing-Algorithmus für jede Eingabe bei jeder Routing-Iteration gespeichert werden. Das heißt, für jede Eingabe in einem Trainingssatz ist ein Satz von Routing-Koeffizienten vorhanden, die in dem Routing-Algorithmus über r Iterationen dynamisch berechnet werden. Für den Prozess 400 sind die Koeffizienten für eine einzelne Eingabe in dem Tensor cij mit der Dimension (r, 1152, 10) beinhaltet, wobei die Zahlen 1152 und 10 nur als Beispiel stehen und größer oder kleiner sein können. Für einen Stapel Eingaben ist cij ein Tensor mit der Dimension (N, r, 1152, 10), wobei N für die Anzahl der Eingaben in dem Stapel steht. Die cij sind die Routing-Koeffizienten, die gespeichert werden, wenn ein trainiertes Kapselnetzwerk 300 auf dem Trainingsdatensatz ausgewertet wird. Die gespeicherten Routing-Koeffizienten können sortiert werden, um zwischen Routing-Koeffizienten, die mit genauen Ergebnissen in hohem Ausmaß (typischerweise > 90 %) korrelieren, und Routing-Koeffizienten zu unterscheiden, die nicht in hohem Ausmaß mit genauen Ergebnissen korrelieren. Die Zahlen, die den Elementen r, 1152, 10 des Tensors cij entsprechen, können in Abhängigkeit der Anwendung variieren. Die Zahl 10 stellt die Anzahl der durch den Tensor cij bearbeiteten Klassen dar und ist für Aufgaben, wie Fahrzeugobjektverfolgung und Detektion handschriftlicher Zeichen, geeignet.
-
Die Routing-Koeffizienten können allesamt sortiert werden oder die Routing-Koeffizienten können vor dem Sortieren gefiltert werden. Das Sortieren aller Routing-Koeffizienten kann brauchbare Ergebnisse erzeugen; angesichts der Zeitspanne und des Speicherbedarfs zum Durchführen einer vollständigen Sortierung an einem vollen Satz von Routing-Koeffizienten kann ein Tensor mit der Dimension (N, r, 1152, 10) praktisch untragbar sein. Das auf Clustering-Algorithmen oder Ähnlichkeitsmaßen basierende Filtern vor dem Sortieren kann die Datenmenge und den Berechnungsaufwand wesentlich reduzieren. Das auf Clustering-Algorithmen basierende Filtern beinhaltet Filtern basierend auf bekannten Techniken, wie etwa EM-Routing, K-Mittel oder dichtebasiertem räumlichen Clustering. Das EM-Routing kann Routing-Koeffizienten basierend auf Annahmen bezüglich der Gauß-Verteilung der Koeffizienten clustern. Bei dem K-Mittel handelt es sich um eine statistische Technik, die Gruppen basierend auf der Maximierung von Wahrscheinlichkeiten bilden kann. Das dichtebasierte räumliche Clustering kann gemeinsame Wahrscheinlichkeiten basierend auf einem Modell für Gaußsches Rauschen maximieren. Eine Gemeinsamkeit dieser Techniken besteht darin, dass sie Gruppen von Clustern von Routing-Koeffizienten bilden und Daten reduzieren, indem die Gruppe oder der Cluster durch einen einzelnen Routing-Koeffizienten dargestellt wird. Nach dem Filtern durch Clustering kann ein Satz von Routing-Koeffizienten sortiert werden.
-
Das Sortieren kann an Routing-Koeffizienten durchgeführt werden, indem die Leistung von zwei Kopien eines Kapselnetzwerkes 300 verglichen wird, wobei eines Gewichtungen beinhaltet, die einem Routing-Koeffizienten entsprechen, und ein anderes keine Gewichtungen beinhaltet, die dem Routing-Koeffizienten entsprechen. Die Genauigkeit der Leistung der beiden Kapselnetzwerke 300 an einem Testdatensatz, der Bilder und Grundwahrheiten beinhaltet, kann verglichen werden. Wenn die Genauigkeit des Kapselnetzwerkes 300 mit den Routing-Koeffizientengewichtungen größer als oder gleich dem Kapselnetzwerk 300 ohne die Routing-Koeffizientengewichtungen ist, werden die Routing-Koeffizienten als „OK“ bestimmt und aufbewahrt. Wenn die Genauigkeit des Kapselnetzwerkes 300 mit den Routing-Koeffizientengewichtungen an einem Testdatensatz, der Grundwahrheiten einschließt, schlechter als die Genauigkeit des Kapselnetzwerkes 300 ohne die Routing-Koeffizientengewichtungen ist, werden die Routing-Koeffizienten als „NICHT OK“ bestimmt und verworfen.
-
Ähnlichkeitsmaße können Routing-Koeffizienten filtern, indem ein Ähnlichkeitsmaß, wie es bekannt ist, einschließlich eines Pearson-Korrelationskoeffizienten, Kreuzproduktes, einer Norm, eines Winkels usw., auf die Routing-Koeffizienten angewendet wird. Diese Maße bestimmen jeweils eine Metrik für Routing-Koeffizienten, die einen Abstand zwischen den Koeffizienten misst und diesen anwendet, um die Ähnlichkeit zu bestimmen. Ähnlichkeitsmaße können Klassen von Routing-Koeffizienten bestimmen, indem Gruppen von Koeffizienten mit zueinander kleinen Abstandsmaßen ausgewählt werden. Die Klassen können durch einen einzelnen Vertreter dargestellt werden, wodurch eine Datenreduzierung ohne Genauigkeitsverlust erzielt wird. Im Anschluss an das Filtern können die Klassen sortiert werden, um Klassen zu verwerfen, die nicht genauen Ergebnissen entsprechen, wie vorstehend erörtert. Im Anschluss an das Filtern und Sortieren kann eine Master-Matrix für Routing-Koeffizienten erstellt und gespeichert werden, um sie bei einer folgenden Verarbeitung zu verwenden.
-
5 ist ein Diagramm beispielhafter Matrizen 500 für Routing-Koeffizienten. Die Matrizen 500 für Routing-Koeffizienten beinhalten eine Matrix 502 für Routing-Koeffizienten (routing coefficient matrix - RCM) und eine Master-Matrix 510 für Routing-Koeffizienten (master routing coefficient matrix - MRCM). Der Tensor cij mit der Dimension (N, r, 1152, 10) von Gleichung (1) und 4 beinhaltet eine Matrix 502 für Routing-Koeffizienten, bei der es sich um einen Tensor mit der Dimension (r, 1152, 10) für jedes Eingabebild n in N handelt. Im Anschluss an das Filtern und Sortieren, wie vorstehend beschrieben, wird eine Matrix 502 für Routing-Koeffizienten mit der Dimension (r, 1152, 10) gebildet. Die Anzahl der Routing-Iterationen zur Verwendung für die Extraktion der (1152, 10)-Matrix von Routing-Koeffizienten kann ausgewählt werden. Die Testdaten- und Grundwahrheitsgenauigkeit eines Kapselnetzwerkes 300, einschließlich jeder der r Routing-Koeffizientengewichtungen, kann vs. eine Kopie des Kapselnetzwerkes 300 ohne beliebige der r Routing-Koeffizientengewichtungen bestimmt werden. Auf diese Weise können Routing-Koeffizienten 504 bestimmt werden, die höchstwahrscheinlich genau sind.
-
Nach der Auswahl einer Routing-Iteration weist der resultierende Routing-Koeffiziententensor beispielsweise die Dimension (1152, 10) auf, wobei 10 die Anzahl der Klassen in dem Datensatz ist. Für jede Trainingseingabe kann die Bezeichnung (d. h. Klasse) dieser Eingabe durch eine Benutzereingabe bestimmt werden. Diese Bezeichnung entspricht einer der 10 Spalten 504 in der (1152, 10)-Matrix. Diese einzelne Spalte 504 wird dann extrahiert und in die entsprechende Spalte 508 in einer leeren (1152, 10)-Master-Matrix 510 für Routing-Koeffizienten eingefügt. Bei der leeren (1152, 10)-Master-Matrix 510 für Routing-Koeffizienten handelt es sich um den Master-Satz von Routing-Koeffizienten. Eine Routing-Iteration wird für jede Trainingseingabe n in dem Trainingssatz ausgewählt. Für wiederholte Bezeichnungen werden die Werte aus der Grundwahrheitsspalte 502 einer individuellen (1152, 10)-Koeffizientenmatrix einfach mit den vorhandenen Werten in der entsprechenden Spalte 508 in der (1152, 10)-Master-Matrix 510 für Routing-Koeffizienten summiert.
-
Wenn die Koeffizienten der Grundwahrheitsspalte für alle Trainingseingaben summiert wurden, wird jede Spalte in der (1152, 10)-Master-Matrix 510 für Routing-Koeffizienten durch Klassenhäufigkeit normiert und eine nichtlineare Funktion kann auf die (1152, 10)-Master-Matrix 510 für Routing-Koeffizienten angewendet werden. Die Nichtlinearität kann in derselben Art und Weise bestimmt werden, in der die ursprünglichen Routing-Koeffizienten während des Trainings dynamisch berechnet wurden. Zum Beispiel kann die Softmax-Funktion von Gleichung (1) auf jede Zeile in der (1152, 10)-Master-Matrix 510 für Routing-Koeffizienten angewendet werden. Nachdem die Master-Matrix 510 für Routing-Koeffizienten bestimmt wurde, kann die Master-Matrix 510 für Routing-Koeffizienten dann N-mal repliziert werden, um der Anzahl von Eingaben pro in dem Kapselnetzwerk 300 verwendeten Stapel zu entsprechen, womit die finale Dimension des Master-Koeffiziententensors (N, 1152, 10) ist.
-
6 ist ein Diagramm beispielhafter Matrizen 600 für Routing-Koeffizienten. Die Matrizen 600 für Routing-Koeffizienten beinhalten eine Matrix 602 für Routing-Koeffizienten (RCM) und eine Master-Matrix 610 für Routing-Koeffizienten (MRCM). Der Tensor cij mit der Dimension (N, r, 1152, 10) von vorstehender Gleichung (1) und 4 beinhaltet eine Matrix 602 für Routing-Koeffizienten, bei der es sich um einen Tensor mit der Dimension (r, 1152, 10) für jedes Eingabebild n in N handelt. Im Anschluss an das Filtern und Sortieren, wie vorstehend beschrieben, wird eine Matrix 602 für Routing-Koeffizienten mit der Dimension (r, 1152, 10) gebildet. Der in 6 veranschaulichte Prozess ist derselbe wie in 5, mit der Ausnahme, dass für jede Eingaben eine ganze (1152, 10)-Matrix 602 für Routing-Koeffizienten verarbeitet wird anstatt jeder Spalte 504 der Matrix 502 für Routing-Koeffizienten. Nachdem die Routing-Koeffizienten aus allen Eingaben übertragen wurden, kann jede Spalte der Master-Matrix 610 für Routing-Koeffizienten durch die Klassenhäufigkeit für diese Spalte normiert werden.
-
7 ist ein Diagramm beispielhafter Matrizen 700 für Routing-Koeffizienten. Die Matrizen 700 für Routing-Koeffizienten beinhalten eine erste Matrix 702 für Routing-Koeffizienten (RCM1), eine zweite Matrix 704 für Routing-Koeffizienten (RCM2), eine erste Master-Matrix 710 für Routing-Koeffizienten (MRCM1) und eine zweite Master-Matrix 712 für Routing-Koeffizienten (MRCM2). Der Tensor cij mit der Dimension (N, r, 1152, 10) von vorstehender Gleichung (1) und 4 beinhaltet eine Matrix 702, 704 für Routing-Koeffizienten für jede Klasse, auf die ein Kapselnetzwerk 300 trainiert wird. Wenn X die Anzahl der Klassen von Eingabedaten ist, auf die ein Kapselnetzwerk hinsichtlich einer Erkennung trainiert ist, ist eine Klasse als eine Gruppe von Eingabebildern definiert, für die ein Kapselnetzwerk 300 im Wesentlichen dasselbe Ergebnis ausgibt. Für jede Klasse in X Klassen kann ein Tensor mit der Dimension (r, 1152, 10) für jedes Eingabebild n in N bestimmt werden. Im Anschluss an das Filtern und Sortieren, wie vorstehend beschrieben, werden eine erste Matrix 702 für Routing-Koeffizienten und eine zweite Matrix 704 für Routing-Koeffizienten (X = 2) gebildet.
-
Nachdem X Sätze von Koeffizienten erzeugt wurden, können sie zu einem einzelnen Master-Tensor für Koeffizienten mit der Dimension (X, 1152, 10) verknüpft und dann N mal repliziert werden, um der Anzahl von Eingaben pro in dem Kapselnetzwerk verwendeten Stapel zu entsprechen - somit ist die finale Dimension des Master-Tensors für Koeffizienten (N, X, 1152, 10). Bei der Verwendung für ein schnelles Training kann die Klassenbezeichnung der Trainingseingabe verwendet werden, um auszuwählen, welches x in X für jede Eingabe angewendet werden soll.
-
Master-Tensoren für Routing-Koeffizienten können die Ableitungsgeschwindigkeit des trainierten Kapselnetzwerkes 300 verbessern, indem die for-Schleife in dem Routing-Algorithmus entfernt wird.
-
Master-Tensoren für Routing-Koeffizienten können die Ableitung eines Kapselnetzwerkes 300 verbessern, indem die Ableitung schneller gemacht wird. Für das Training wird ein Teilsatz des vollen Trainingsdatensatzes zuerst dazu verwendet, das Kapselnetzwerk zu trainieren, d. h., das Netzwerk wird unter Verwendung eines Routing-Algorithmus aus vorstehender 4 trainiert. Danach werden die Master-Tensoren für Routing-Koeffizienten extrahiert, wie in Bezug auf 5-7 beschrieben. Dann wird ein Test an einem zweiten Teilsatz des vollen Trainingsdatensatzes unter Verwendung der Master-Routing-Koeffizienten durchgeführt, die basierend auf einem ersten Teilsatz der Trainingsdaten bestimmt wurden. Für ein Kapselnetzwerk 300 mit einer Architektur, die der in 3 gezeigten ähnlich ist, kann dies die Teil/Gesamt-Beziehung eines Objektes optimieren.
-
Master-Tensoren für Routing-Koeffizienten können das Training von Kapselnetzwerken 300 verbessern, indem ein Kapselnetzwerk 300 optimiert wird. Das Optimieren eines Kapselnetzwerkes 300 bezieht sich auf den Prozess des Trainierens eines Kapselnetzwerkes 300, wobei bestimmte Schichten des Kapselnetzwerkes 300 fest sind. Zum Optimieren eines Kapselnetzwerkes 300 wird das Kapselnetzwerk 300 unter Verwendung eines Routing-Algorithmus trainiert, der eine for-Schleife aufweist, wobei ein erster Teilsatz des vollen Trainingsdatensatzes verwendet wird. Danach werden die Master-Routing-Koeffizienten aus den Trainingsdaten extrahiert. Dann wird eine Optimierung an einem zweiten Teilsatz des vollen Trainingsdatensatzes unter Verwendung der Master-Routing-Koeffizienten als feste Koeffizienten (d. h., es wird keine for-Schleife in der Routing-Prozedur verwendet) durchgeführt, indem das Kapselnetzwerk 300 mit denselben Daten und der derselben Grundwahrheit ohne die Bestimmung von beliebigen neuen Routing-Koeffizienten neu trainiert.
-
8 ist ein Diagramm eines Ablaufdiagramms, beschrieben in Bezug auf 1-7, eines Prozesses 800 zum Bestimmen einer Objektposition, zum Verfolgen eines Objektes basierend auf der Objektposition und zum Herunterladen der Objektverfolgungsinformationen in ein Fahrzeug. Der Prozess 800 kann durch einen Prozessor des Servercomputers 120 umgesetzt werden, indem zum Beispiel Informationen von Sensoren als Eingabe dienen und Befehle ausgeführt werden und Objektverfolgungsinformationen an ein Fahrzeug 110 gesendet werden. Der Prozess 800 beinhaltet mehrere Blöcke in der offenbarten Reihenfolge. Der Prozess 800 könnte alternativ oder zusätzlich dazu weniger Blöcke beinhalten oder kann die Blöcke in unterschiedlichen Reihenfolgen beinhalten.
-
Der Prozess 800 beginnt bei Block 802, wobei ein Servercomputer 120 ein Videobild von einer Videokamera, einschließlich einer stationären Videokamera 206, erfasst und dieses in ein trainiertes Kapselnetzwerk 300 eingibt. Das Kapselnetzwerk 300 wurde unter Verwendung von Master-Tensoren für Routing-Koeffizienten trainiert, wie vorstehend in Bezug auf 3-7 beschrieben. Das Kapselnetzwerk 300 gibt die Videobilddaten 302 ein und kann Zustandsvariablen 322 ausgeben, die Daten zur/zum Objektdetektion, -klassifizierung und -standort in Bezug auf einen Videorahmen entsprechen. Videokameradaten können von einer stationären Videokamera oder einer mobilen Videokamera eingegeben werden. Eine mobile Videokamera kann beispielsweise an einem Fahrzeug 110 oder einer Drohne montiert sein.
-
Bei Block 804 kann der Servercomputer 120 die Zustandsvariablen 322, einschließlich der Daten zur/zum Objektdetektion, -klassifizierung und -standort, die von dem Kapselnetzwerk 300 ausgegeben werden, mit Grundwahrheitsinformationen bezüglich der Lage der Fahrbahn 202 in Bezug auf das Sichtfeld 210 der stationären Videokamera 206 in globalen Koordinaten kombinieren, um die Zustandsvariablen 322 in einen Standort des verfolgten Objektes in globalen Koordinaten, wie vorstehend in Bezug auf 2 beschrieben, umzuwandeln. Bei einer Sequenz von in gleichmäßigen Zeitintervallen erfassten Objektstandorten in globalen Koordinaten handelt es sich um Zeitreihendaten, die in einen Steuerprozess eingegeben werden können, der eine Objektbewegung vorhersagen und dadurch das Objekt basierend auf den Objektstandorten verfolgen kann. Der Servercomputer 120 kann zudem Objektstandorte in globalen Koordinaten in ein Fahrzeug 110 herunterladen und dem Fahrzeug 110 die Verfolgung des Objektes ermöglichen.
-
In Beispielen, in denen die Videokameradaten von einer mobilen Plattform erfasst werden, können die Daten zur/zum Objektdetektion, -klassifizierung und -standort basierend auf einem Standort und einem Sichtfeld, die einem Standort und einem Sichtfeld einer in der mobilen Plattform beinhalteten Videokamera entsprechen, in globale Koordinaten umgewandelt werden. 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 zum Zeitpunkt der Erfassung der Videokameradaten zu identifizieren. Von mobilen Plattformen erfasste Daten zum/zur Objektdetektion, -klassifizierung und -standort können direkt in ein Fahrzeug 110 heruntergeladen oder durch einen Servercomputer 120 empfangen werden, um mit Daten zur/zum Objektdetektion, -klassifizierung und -standort aus anderen Quellen zum Bestimmen von Verkehrsinformationen kombiniert zu werden. Verkehrsinformationen können beispielsweise Verkehrsstaus oder Verkehrsunfälle beinhalten. Verkehrsinformationen können in ein Fahrzeug 110 heruntergeladen werden, um den Betrieb des Fahrzeugs 110 auf einer Fahrbahn 202 zu unterstützen. Im Anschluss an Block 804 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 ausgeführt werden können. Zum Beispiel können die vorstehend erörterten Prozessblöcke als computerausführbare Befehle ausgebildet sein.
-
Computerausführbare Befehle können anhand von Computerprogrammen zusammengestellt oder ausgelegt werden, die unter Verwendung vielfältiger Programmiersprachen und/oder -technologien erstellt werden, einschließlich unter anderem und für sich 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, einschließlich eines oder mehrerer der in dieser Schrift beschriebenen Prozesse, ausführt. 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 ein beliebiges Medium, das am Bereitstellen von Daten (z. B. Befehlen), die durch einen Computer gelesen werden können, beteiligt ist. Ein derartiges Medium kann viele Formen annehmen, einschließlich unter anderem nichtflüchtiger Medien, flüchtiger Medien usw. Nichtflüchtige Medien beinhalten beispielsweise optische oder Magnetplatten und anderen dauerhaften Speicher. Flüchtige Medien beinhalten dynamischen Direktzugriffsspeicher (dynamic random access memory - DRAM), der üblicherweise einen Hauptspeicher darstellt. Zu gängigen Formen computerlesbarer Medien gehören zum Beispiel 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, ein RAM, ein PROM, ein EPROM, ein FLASH-EEPROM, ein beliebiger anderer Speicherchip oder eine beliebige andere Speicherkassette oder ein beliebiges anderes Medium, das durch einen Computer ausgelesen werden kann.
-
Allen in den Patentansprüchen verwendeten Ausdrücken soll deren allgemeine und gewöhnliche Bedeutung zukommen, wie sie vom Fachmann verstanden wird, sofern nicht ausdrücklich etwas anderes angegeben ist. Insbesondere ist die Verwendung der Singularartikel wie etwa „ein“, „eine“, „der“, „die“, „das“ usw. dahingehend auszulegen, dass eines oder mehrere der aufgeführten Elemente genannt wird bzw. werden, es sei denn, ein Patentanspruch enthält ausdrücklich eine gegenteilige Einschränkung.
-
Der Ausdruck „beispielhaft“ wird in dieser Schrift in dem Sinne verwendet, dass er ein Beispiel angibt, z. B. sollte ein Verweis auf eine „beispielhafte Vorrichtung“ einfach als Bezugnahme auf ein Beispiel für eine Vorrichtung 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 die gleichen Bezugszeichen die gleichen Elemente an. Ferner könnten einige oder alle dieser Elemente geändert werden. Hinsichtlich der in dieser Schrift beschriebenen Medien, Prozesse, Systeme, Verfahren usw. versteht es sich, dass die Schritte derartiger Prozesse usw. zwar als gemäß einer bestimmten geordneten 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 ferner, dass bestimmte Schritte gleichzeitig durchgeführt, andere Schritte hinzugefügt oder bestimmte in dieser Schrift beschriebene Schritte weggelassen werden könnten. Anders ausgedrückt dienen die Beschreibungen von Prozessen in dieser Schrift der Veranschaulichung bestimmter Ausführungsformen und sollten keinesfalls dahingehend ausgelegt werden, dass sie die beanspruchte Erfindung einschränken.
-
Gemäß der vorliegenden Erfindung ist ein Verfahren bereitgestellt, das Folgendes aufweist: Detektieren, Klassifizieren und Lokalisieren eines Objektes durch Verarbeiten von Videokameradaten mit einem Kapselnetzwerk, wobei das Trainieren des Kapselnetzwerkes Speichern von Routing-Koeffizienten beinhaltet; und Empfangen des detektierten, klassifizierten und lokalisierten Objektes an einer Rechenvorrichtung.
-
Gemäß einer Ausführungsform beinhaltet das Kapselnetzwerk Bestimmen von Routing-Koeffizienten, die Routen zwischen Kapselschichten entsprechen.
-
Gemäß einer Ausführungsform werden Routing-Koeffizienten bestimmt, indem Routen basierend auf einem oder mehreren von Korrelation oder Clustering im Anschluss an das Training basierend auf einem ersten Trainingsdatensatz gruppiert werden, wobei eine Route bestimmte Elemente in einer Kapselschicht mit Standorten in einer folgenden Kapselschicht verbindet.
-
Gemäß einer Ausführungsform werden Routing-Koeffizienten durch Verarbeitung mit parallelen Arrays bestimmt.
-
Gemäß einer Ausführungsform beinhaltet das Trainieren des Kapselnetzwerkes Neutrainieren des Kapselnetzwerkes basierend auf einem zweiten Trainingsdatensatz und Speichern von Routing-Koeffizienten.
-
Gemäß einer Ausführungsform ist die Erfindung ferner gekennzeichnet durch Betreiben eines Fahrzeugs basierend auf dem Empfang eines detektierten, klassifizierten und lokalisierten Objektes.
-
Gemäß einer Ausführungsform beinhaltet das Betreiben eines Fahrzeugs basierend auf dem Empfang eines detektierten, klassifizierten und lokalisierten Objektes Bestimmen eines vorhergesagten Standortes des Objektes in globalen Koordinaten.
-
Gemäß einer Ausführungsform ist die Erfindung ferner gekennzeichnet durch Bestimmen von Verkehrsinformationen basierend auf dem Empfang eines detektierten, klassifizierten und lokalisierten Objektes.
-
Gemäß einer Ausführungsform ist die Erfindung ferner gekennzeichnet durch Erfassen der Videokameradaten mit einer oder mehreren von einer in einem Verkehrsinfrastruktursystem beinhalteten stationären Videokamera und einer in einem oder mehreren von einem Fahrzeug oder einer Drohne beinhalteten mobilen Videokamera.
-
Gemäß der vorliegenden Erfindung ist ein System bereitgestellt, das einen Prozessor; und einen Speicher aufweist, wobei der Speicher durch den Prozessor auszuführende Anweisungen für Folgendes beinhaltet: Detektieren, Klassifizieren und Lokalisieren eines Objektes durch Verarbeiten von Videokameradaten mit einem Kapselnetzwerk, wobei das Trainieren des Kapselnetzwerkes Speichern von Routing-Koeffizienten beinhaltet; und Empfangen des detektierten, klassifizierten und lokalisierten Objektes an einer Rechenvorrichtung.
-
Gemäß einer Ausführungsform beinhaltet das Kapselnetzwerk ein neuronales Netzwerk, wobei die Anweisungen ferner Anweisungen zum Bestimmen von Routing-Koeffizienten, die Routen zwischen Kapselschichten entsprechen, beinhalten.
-
Gemäß einer Ausführungsform beinhalten die Anweisungen ferner Anweisungen zum Bestimmen von Routing-Koeffizienten, indem Routen basierend auf einem oder mehreren von Korrelation oder Clustering im Anschluss an das Training basierend auf einem ersten Trainingsdatensatz gruppiert werden, wobei eine Route bestimmte Elemente in einer Kapselschicht mit Standorten in einer folgenden Kapselschicht verbindet.
-
Gemäß einer Ausführungsform beinhalten die Anweisungen ferner Anweisungen zum Bestimmen von Routing-Koeffizienten durch Verarbeitung mit parallelen Arrays.
-
Gemäß einer Ausführungsform beinhalten die Anweisungen ferner Anweisungen zum Neutrainieren des Kapselnetzwerkes basierend auf einem zweiten Trainingsdatensatz und Speichern von Routing-Koeffizienten.
-
Gemäß einer Ausführungsform ist die Erfindung ferner gekennzeichnet durch Betreiben eines Fahrzeugs basierend auf der Vorhersage eines Objektstandortes basierend auf dem Empfang eines detektierten, klassifizierten und lokalisierten Objektes.
-
Gemäß einer Ausführungsform beinhaltet das Betreiben eines Fahrzeugs basierend auf dem Empfang eines detektierten, klassifizierten und lokalisierten Objektes Bestimmen eines vorhergesagten Standortes des Objektes in globalen Koordinaten.
-
Gemäß einer Ausführungsform ist die Erfindung ferner gekennzeichnet durch Bestimmen von Verkehrsinformationen basierend auf dem Empfang eines detektierten, klassifizierten und lokalisierten Objektes.
-
Gemäß einer Ausführungsform beinhalten die Anweisungen ferner Anweisungen zum Erfassen der Videokameradaten mit einer oder mehreren von einer in einem Verkehrsinfrastruktursystem beinhalteten stationären Videokamera und einer in einem oder mehreren von einem Fahrzeug oder einer Drohne beinhalteten mobilen Videokamera.
-
Gemäß der vorliegenden Erfindung ist ein System bereitgestellt, das Folgendes aufweist: Mittel zum Steuern der Lenkung, der Bremsung und des Antriebsstrangs des Fahrzeugs; Mittel zum Detektieren, Klassifizieren und Lokalisieren eines Objektes durch Verarbeiten von Videokameradaten mit einem Kapselnetzwerk, wobei das Trainieren des Kapselnetzwerkes Speichern von Routing-Koeffizienten beinhaltet; und Mittel zum Empfangen des detektierten, klassifizierten und lokalisierten Objektes an einer Rechenvorrichtung; Mittel zum Betreiben eines Fahrzeugs basierend auf dem detektierten, klassifizierten und lokalisierten Objekt; und Mittel zum Steuern der Lenkung, der Bremsung und des Antriebsstrangs des Fahrzeugs.
-
Gemäß einer Ausführungsform beinhaltet das Kapselnetzwerk Bestimmen von Routing-Koeffizienten, die Routen zwischen Kapselschichten entsprechen.