DE102019115244A1 - Aktivieren des null-bypasses und des weight-pruning in neuronalen netzwerken für fahrzeugwahrnehmungssysteme - Google Patents

Aktivieren des null-bypasses und des weight-pruning in neuronalen netzwerken für fahrzeugwahrnehmungssysteme Download PDF

Info

Publication number
DE102019115244A1
DE102019115244A1 DE102019115244.5A DE102019115244A DE102019115244A1 DE 102019115244 A1 DE102019115244 A1 DE 102019115244A1 DE 102019115244 A DE102019115244 A DE 102019115244A DE 102019115244 A1 DE102019115244 A1 DE 102019115244A1
Authority
DE
Germany
Prior art keywords
vehicle
computer
memory
images
weight pruning
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE102019115244.5A
Other languages
English (en)
Inventor
Shuqing Zeng
Wei Tong
Shige Wang
Roman L. Millett
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
GM Global Technology Operations LLC
Original Assignee
GM Global Technology Operations LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by GM Global Technology Operations LLC filed Critical GM Global Technology Operations LLC
Publication of DE102019115244A1 publication Critical patent/DE102019115244A1/de
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0088Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R2300/00Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle
    • B60R2300/80Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the intended use of the viewing arrangement
    • B60R2300/8046Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the intended use of the viewing arrangement for replacing a rear-view mirror system

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Remote Sensing (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Automation & Control Theory (AREA)
  • Multimedia (AREA)
  • Game Theory and Decision Science (AREA)
  • Medical Informatics (AREA)
  • Business, Economics & Management (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Electromagnetism (AREA)
  • Image Analysis (AREA)
  • Traffic Control Systems (AREA)
  • Mechanical Engineering (AREA)

Abstract

In einer exemplarischen Ausführungsform gemäß den Aspekten der vorliegenden Offenbarung schließt ein computerimplementiertes Verfahren das Erfassen einer Vielzahl von Bildern an einer einem Fahrzeug zugeordneten Kamera und das Speichern von Bilddaten, die der Vielzahl von Bildern zugeordnet sind, in einem Speicher ein. Das Verfahren schließt ferner das Zuteilen von Fahrzeugwahrnehmungsaufgaben an eine Vielzahl von Verarbeitungselementen eines sich mit dem Speicher in Verbindung befindenden Beschleunigers ein. Das Verfahren schließt ferner das Durchführen der Fahrzeugwahrnehmungsaufgaben für die Fahrzeugwahrnehmung unter Verwendung eines neuronalen Netzwerks durch mindestens eines aus der Vielzahl von Verarbeitungselementen ein, wobei das Durchführen der Fahrzeugwahrnehmungsaufgaben das Durchführen eines Aktivierungsbypasses für Werte unterhalb eines ersten Schwellenwerts und das Durchführen eines Weight-Pruning von Synapsen und Neuronen des neuronalen Netzwerks, basierend mindestens teilweise auf einem zweiten Schwellenwert, umfasst. Das Verfahren schließt ferner das Steuern des Fahrzeugs ein, basierend mindestens teilweise auf einem Ergebnis des Durchführens der Fahrzeugwahrnehmungsaufgaben.

Description

  • EINFÜHRUNG
  • Die vorliegende Offenbarung bezieht sich auf das Steuern eines Fahrzeugs und insbesondere auf das Aktivieren des Null-Bypasses und des Weight-Pruning in neuronalen Netzwerken für F ahrzeugwahrnehmungssysteme.
  • Das maschinelle Lernen beinhaltet das Erzeugen und Verwenden von Algorithmen, die in der Lage sind, von Daten zu lernen und Vorhersagen zu Daten zu treffen. Solche Algorithmen funktionieren in der Regel durch den Aufbau eines Modells aus Beispieleingaben, um datengesteuerte Vorhersagen oder Entscheidungen zu treffen. Es wurden eine Reihe von maschinellen Lernansätzen entwickelt. Ein solcher Ansatz, bekannt als künstliches neuronales Netz (KNN) oder einfach als neuronales Netz (NN), ist ein Lernalgorithmus, der von der Struktur und Funktion biologischer neuronaler Netze inspiriert ist.
  • Ein NN schließt hierarchische Schichten miteinander verbundener Gruppen künstlicher Neuronen (Knoten) ein, wobei jede Schicht von Knoten die Ausgaben einer unteren Schicht als Eingaben empfängt. Tiefe neuronale Netze (deep neuronal networks - DNNs) sind ein Typ von NN, der eine oder mehrere versteckte Schichten von Knoten einschließt. Feed-Forward-NNs sind NNs, in denen Verbindungen zwischen den Knoten keinen Zyklus bilden. Das heißt, Feed-Forward-NNs sind NNs, in denen sich die Informationen nur in eine Richtung bewegen, vorwärts, von den Eingabeknoten, durch die Knoten einer oder mehrerer versteckter Schichten (falls vorhanden) und schließlich zu den Ausgabeknoten. Convolutional NNs bilden eine Klasse von tiefen Feed-Forward-NNs, die Eingabe- und Ausgabeschichten sowie mehrere versteckte Schichten einschließen. Die versteckten Schichten schließen in der Regel Faltungsschichten, Pooling-Schichten, Fully-Connected-Schichten und Normalisierungsschichten ein. Technische Verbesserungen herkömmlicher NNs sind hierin beschrieben.
  • KURZDARSTELLUNG
  • In einem Ausführungsbeispiel schließt ein computerimplementiertes Verfahren das Erfassen einer Vielzahl von Bildern an einer einem Fahrzeug zugeordneten Kamera und das Speichern von Bilddaten, die der Vielzahl von Bildern zugeordnet sind, in einem Speicher ein. Das Verfahren schließt ferner das Zuteilen von Fahrzeugwahrnehmungsaufgaben an eine Vielzahl von Verarbeitungselementen eines sich mit dem Speicher in Verbindung befindenden Beschleunigers ein. Das Verfahren schließt ferner das Durchführen der Fahrzeugwahrnehmungsaufgaben für die Fahrzeugwahrnehmung unter Verwendung eines neuronalen Netzwerks durch mindestens eines aus der Vielzahl von Verarbeitungselementen ein, wobei das Durchführen der Fahrzeugwahrnehmungsaufgaben das Durchführen eines Aktivierungsbypasses für Werte unterhalb eines ersten Schwellenwerts und das Durchführen eines Weight-Pruning von Synapsen und Neuronen des neuronalen Netzwerks, basierend mindestens teilweise auf einem zweiten Schwellenwert, umfasst. Das Verfahren schließt ferner das Steuern des Fahrzeugs ein, basierend mindestens teilweise auf einem Ergebnis des Durchführens der Fahrzeugwahrnehmungsaufgaben.
  • In einer oder mehreren Ausführungsformen umfasst das Durchführen des Weight-Pruning ferner das Durchführen einer Analyse, das Durchführen des Weight-Pruning basierend auf der Analyse und das Optimieren des Weight-Pruning. In einer oder mehreren Ausführungsformen umfasst das Durchführen des Weight-Pruning ferner das Bestimmen, ob eine zusätzliche Kompression durchgeführt werden soll. In einer oder mehreren Ausführungsformen umfasst das Durchführen des Weight-Pruning ferner das erneute Durchführen des Weight-Pruning und des Optimierens als Reaktion auf das Bestimmen, dass zusätzliches Komprimieren durchgeführt werden soll. In einer oder mehreren Ausführungsformen umfasst das Durchführen des Weight-Pruning ferner das Durchführen einer Transformation, als Reaktion auf das Bestimmen, dass kein zusätzliches Komprimieren durchgeführt werden soll. In einer oder mehreren Ausführungsformen vermeidet das Durchführen des Aktivierungsbypasses das Durchführen eines Multiplikations- und Akkumulationsvorgangs (MAC), wobei der MAC-Vorgang für Werte oberhalb des ersten Schwellenwerts durchgeführt wird. In einer oder mehreren Ausführungsformen wird der erste Schwellenwert mindestens teilweise basierend auf einem Prozentsatz der ausgedünnten Vorgänge und einem Prozentsatz der Vorhersagefehler bestimmt. In einer oder mehreren Ausführungsformen umfasst der Beschleuniger ferner einen Anweisungsabrufer für eine neuronale Verarbeitungseinheit, einen Zuteiler, einen Level-1-Cache-Speicher und einen Level-2-Cache-Speicher. In einer oder mehreren Ausführungsformen ist der Beschleuniger über den Speicher kommunikationstechnisch mit einer Zentralverarbeitungseinheit des Hauptrechners gekoppelt, wobei der Beschleuniger ein zweckgebundener Prozessor ist und wobei die Zentralverarbeitungseinheit des Hauptrechners ein Allzweckprozessor ist. In einer oder mehreren Ausführungsformen empfängt die Zentralverarbeitungseinheit des Hauptrechners die Bilddaten von der dem Fahrzeug zugeordneten Kamera und speichert die Bilddaten, die der Vielzahl von Bildern zugeordnet sind, im Speicher.
  • In einem weiteren Ausführungsbeispiel schließt ein System einen Speicher mit computerlesbaren Anweisungen und eine Verarbeitungsvorrichtung zum Ausführen der computerlesbaren Anweisungen zum Durchführen eines Verfahrens ein. Das Verfahren schließt das Erfassen einer Vielzahl von Bildern an einer einem Fahrzeug zugeordneten Kamera und das Speichern von Bilddaten, die der Vielzahl von Bildern zugeordnet sind, in einem Speicher ein. Das Verfahren schließt ferner das Zuteilen von Fahrzeugwahrnehmungsaufgaben an eine Vielzahl von Verarbeitungselementen eines sich mit dem Speicher in Verbindung befindenden Beschleunigers ein. Das Verfahren schließt ferner das Durchführen der Fahrzeugwahrnehmungsaufgaben für die Fahrzeugwahrnehmung unter Verwendung eines neuronalen Netzwerks durch mindestens eines aus der Vielzahl von Verarbeitungselementen ein, wobei das Durchführen der Fahrzeugwahrnehmungsaufgaben das Durchführen eines Aktivierungsbypasses für Werte unterhalb eines ersten Schwellenwerts und das Durchführen eines Weight-Pruning von Synapsen und Neuronen des neuronalen Netzwerks, basierend mindestens teilweise auf einem zweiten Schwellenwert, umfasst. Das Verfahren schließt ferner das Steuern des Fahrzeugs ein, basierend mindestens teilweise auf einem Ergebnis des Durchführens der Fahrzeugwahrnehmungsaufgaben.
  • In einer oder mehreren Ausführungsformen umfasst das Durchführen des Weight-Pruning ferner: das Durchführen einer Analyse; das Durchführen des Weight-Pruning basierend auf der Analyse; und das Optimieren des Weight-Pruning. In einer oder mehreren Ausführungsformen umfasst das Durchführen des Weight-Pruning ferner das Bestimmen, ob eine zusätzliche Kompression durchgeführt werden soll. In einer oder mehreren Ausführungsformen umfasst das Durchführen des Weight-Pruning ferner das erneute Durchführen des Weight-Pruning und des Optimierens als Reaktion auf das Bestimmen, dass zusätzliches Komprimieren durchgeführt werden soll. In einer oder mehreren Ausführungsformen umfasst das Durchführen des Weight-Pruning ferner das Durchführen einer Transformation, als Reaktion auf das Bestimmen, dass kein zusätzliches Komprimieren durchgeführt werden soll. In einer oder mehreren Ausführungsformen vermeidet das Durchführen des Aktivierungsbypasses das Durchführen eines Multiplikations- und Akkumulationsvorgangs (MAC), wobei der MAC-Vorgang für Werte oberhalb des ersten Schwellenwerts durchgeführt wird. In einer oder mehreren Ausführungsformen wird der erste Schwellenwert mindestens teilweise basierend auf einem Prozentsatz der ausgedünnten Vorgänge und einem Prozentsatz der Vorhersagefehler bestimmt. In einer oder mehreren Ausführungsformen umfasst der Beschleuniger ferner einen Anweisungsabrufer für eine neuronale Verarbeitungseinheit, einen Zuteiler, einen Level-1-Cache-Speicher und einen Level-2-Cache-Speicher. In einer oder mehreren Ausführungsformen ist der Beschleuniger über den Speicher kommunikationstechnisch mit einer Zentralverarbeitungseinheit des Hauptrechners gekoppelt, wobei der Beschleuniger ein zweckgebundener Prozessor ist und wobei die Zentralverarbeitungseinheit des Hauptrechners ein Allzweckprozessor ist, und die Zentralverarbeitungseinheit des Hauptrechners die Bilddaten von der dem Fahrzeug zugeordneten Kamera empfängt und die Bilddaten, die der Vielzahl von Bildern zugeordnet sind, im Speicher speichert.
  • In noch einem weiteren Ausführungsbeispiel schließt ein Computerprogrammprodukt ein computerlesbares Speichermedium mit sich darauf befindenden ausführbaren Programmanweisungen ein, wobei die Programmanweisungen von einer Verarbeitungsvorrichtung ausführbar sind, um das Durchführen eines Verfahrens durch die Verarbeitungsvorrichtung zu bewirken. Das Verfahren schließt das Erfassen einer Vielzahl von Bildern an einer einem Fahrzeug zugeordneten Kamera und das Speichern von Bilddaten, die der Vielzahl von Bildern zugeordnet sind, in einem Speicher ein. Das Verfahren schließt ferner das Zuteilen von Fahrzeugwahrnehmungsaufgaben an eine Vielzahl von Verarbeitungselementen eines sich mit dem Speicher in Verbindung befindenden Beschleunigers ein. Das Verfahren schließt ferner das Durchführen der Fahrzeugwahrnehmungsaufgaben für die Fahrzeugwahrnehmung unter Verwendung eines neuronalen Netzwerks durch mindestens eines aus der Vielzahl von Verarbeitungselementen ein, wobei das Durchführen der Fahrzeugwahrnehmungsaufgaben das Durchführen eines Aktivierungsbypasses für Werte unterhalb eines ersten Schwellenwerts und das Durchführen eines Weight-Pruning von Synapsen und Neuronen des neuronalen Netzwerks, basierend mindestens teilweise auf einem zweiten Schwellenwert, umfasst. Das Verfahren schließt ferner das Steuern des Fahrzeugs ein, basierend mindestens teilweise auf einem Ergebnis des Durchführens der Fahrzeugwahrnehmungsaufgaben.
  • Die obigen Merkmale und Vorteile sowie andere Merkmale und Vorteile der Offenbarung werden aus der folgenden detaillierten Beschreibung in Verbindung mit den beigefügten Zeichnungen leicht ersichtlich.
  • Figurenliste
  • Andere Merkmale, Vorteile und Details erscheinen lediglich beispielhaft in der folgenden detaillierten Beschreibung, wobei die detaillierte Beschreibung sich auf die Zeichnungen bezieht, in denen:
    • 1 stellt ein Fahrzeug einschließlich eines Verarbeitungssystems zum Aktivieren des Null-Bypasses und des Weight-Pruning in neuronalen Netzwerken zur Fahrzeugwahrnehmung gemäß einer oder mehreren hierin beschriebenen Ausführungsformen dar;
    • 2 stellt das Verarbeitungssystem von 1 zum Aktivieren des Null-Bypasses und des Weight-Pruning in neuronalen Netzwerken gemäß einer oder mehreren der hierin beschriebenen Ausführungsformen dar;
    • 3 stellt ein Diagramm einer Reihe von Aktivierungen und einer Reihe von Nicht-Null-Aktivierungen für Faltungsschichten eines neuronalen Netzwerks gemäß einer oder mehreren der hierin beschriebenen Ausführungsformen dar;
    • 4 stellt ein Blockdiagramm eines Bypass-Pfades dar, der bei dem Aktivieren von Faltungsschichten eines neuronalen Netzwerks gemäß einer oder mehreren der hierin beschriebenen Ausführungsformen verwendet wird;
    • 5 stellt ein Diagramm eines Schwellenwerts dar, um die Bypass-Bestimmung am Bypass von 4 gemäß einer oder mehreren der hierin beschriebenen Ausführungsformen durchzuführen;
    • 6A stellt ein Knotendiagramm von Knoten und Synapsen dar, die die Knoten vor dem Weight-Pruning verbinden;
    • 6B stellt ein ausgedünntes Knotendiagramm von Knoten und Synapsen dar, die die Knoten nach dem Weight-Pruning gemäß einer oder mehreren der hierin beschriebenen Ausführungsformen verbinden;
    • 7 stellt ein Flussdiagramm eines Verfahrens zum Durchführen von Weight-Pruning während des Aktivierens von Faltungsschichten eines neuronalen Netzwerks gemäß einer oder mehreren der hierin beschriebenen Ausführungsformen dar;
    • 8A und 8B stellen ein Blockdiagramm zum Implementieren einer verlustfreien Komprimierung gemäß einer oder mehreren der hierin beschriebenen Ausführungsformen dar;
    • 9 stellt ein Flussdiagramm eines Verfahrens zum Aktivieren des Null-Bypasses und des Weight-Pruning in neuronalen Netzwerken für Fahrzeugwahrnehmungssysteme gemäß einer oder mehreren der hierin beschriebenen Ausführungsformen dar; und
    • 10 stellt ein Blockdiagramm eines Verarbeitungssystems zum Implementieren der hierin beschriebenen Techniken gemäß den Aspekten der vorliegenden Offenbarung dar.
  • DETAILLIERTE BESCHREIBUNG
  • Die folgende Beschreibung ist lediglich beispielhafter Natur und soll die vorliegende Offenbarung, ihre Anwendung oder Verwendungen nicht einschränken. Wie hierin verwendet, bezieht sich der Begriff Modul auf Verarbeitungsschaltungen, die eine anwendungsspezifische integrierte Schaltung (ASIC), eine elektronische Schaltung, einen Prozessor (gemeinsam genutzt, dediziert oder Gruppe) und einen Speicher einschließen können, der ein oder mehrere Software- oder Firmwareprogramme, eine kombinatorische Logikschaltung und/oder andere geeignete Komponenten ausführt, die die beschriebene Funktionalität bereitstellen.
  • Die hierin beschriebenen technischen Lösungen stellen eine Fahrzeugwahrnehmung unter Verwendung tiefer neuronaler Netzwerke bereit. Die Fahrzeugwahrnehmung stellt die Objekterfassung und -erkennung durch das Verarbeiten von Bildern, die von einer oder mehreren einem Fahrzeug (z. B. einem Auto, einem Motorrad, einem Boot oder einem anderen Fahrzeugtyp) zugeordneten Kameras aufgenommen wurden, bereit. Die Fahrzeugwahrnehmung unterstützt einen Fahrer/Bediener eines Fahrzeugs durch das Bereitstellen von Informationen, die sich auf sich außerhalb des Fahrzeugs befindende Bereiche beziehen, und/oder unterstützt autonome Fahrzeuge durch das Bereitstellen von Informationen, die zum Treffen von Fahrentscheidungen nützlich sind (z. B. ob beschleunigt, gebremst, abgebogen werden soll usw.).
  • Moderne Fahrzeuge schließen im Allgemeinen eine oder mehrere Kameras ein, die zusätzliche Unterstützung bereitstellen, Bilder des Fahrzeugführers aufnehmen, um die Benommenheit oder Aufmerksamkeit des Fahrers zu bestimmen, (während der Fahrt) eine bildliche Erfassung des Straßenverkehrs zu Kollisionsvermeidungszwecken bereitstellen, die das Erkennen von Strukturen, wie Straßenschildern bereitstellt, usw. So kann ein Fahrzeug beispielsweise mit mehreren Kameras ausgestattet sein, und Bilder von mehreren Kameras (so genannten „Surround-View-Kameras“) können verwendet werden, um eine „Surround-“ oder „Vogelperspektive“ des Fahrzeugs zu erstellen. Einige der Kameras (so genannte „Weitsichtkameras“) können zur Aufnahme von Bildern mit großer Reichweite verwendet werden (z. B. zur Objekterkennung zur Kollisionsvermeidung, Strukturerkennung usw.).
  • Diese Fahrzeuge können auch mit einem fahrzeuginternen Display (z. B. einem Touchscreen) ausgestattet sein, das zur Anzeige von Kamerabildern und/oder anderen Bildern für einen Fahrer des Fahrzeugs verwendet wird. So kann ein herkömmlicher Rückspiegel und/oder Seitenspiegel beispielsweise durch ein Display ersetzt werden, das ein Kamerabild von einer an der Rückseite des Fahrzeugs positionierten Kamera anzeigt, um dem Fahrer die „Rückansicht“ anstelle der herkömmlichen Rückspiegelansicht anzuzeigen.
  • Ein Beispiel eines derartigen Fahrzeugs ist in 1 dargestellt. Insbesondere stellt 1 ein Fahrzeug 100 einschließlich eines Verarbeitungssystems zum Aktivieren des Null-Bypasses und des Weight-Pruning in neuronalen Netzwerken zur Fahrzeugwahrnehmung dar; Das Fahrzeug 100 kann ein Personenkraftwagen, ein Lastkraftwagen, ein Lieferwagen, ein Bus, ein Motorrad oder ein anderes geeignetes Fahrzeug sein. Das dem Fahrzeug 100 zugeordnete Verarbeitungssystem 110 ist für die Fahrzeugwahrnehmung verantwortlich, indem es Bilder, die von einer Vielzahl von dem Fahrzeug 100 zugeordneten Kameras aufgenommen wurden, analysiert.
  • In dem Beispiel aus 1 schließt das Fahrzeug 100 die Kameras 120, 121, 122, 123 und die Kameras 130, 131, 132, 133 ein. Gemäß einer oder mehreren der hierin beschriebenen Ausführungsformen sind die Kameras 120-123 Surround-View-Kameras, die Bilder außerhalb und in unmittelbarer Nähe des Fahrzeugs 100 aufnehmen. Die von den Kameras 120-123 aufgenommenen Bilder bilden zusammen eine Surround-Ansicht (manchmal auch als „Top-Down-Ansicht“ oder „Vogelperspektive“ bezeichnet) des Fahrzeugs 100. Diese Bilder können für den Betrieb des Fahrzeugs verwendet werden (z. B. Parken, Rückwärtsfahren usw.). Gemäß einer oder mehreren der hierin beschriebenen Ausführungsformen sind die Kameras 130-133 Weitsichtkameras, die im Vergleich zu den Kameras 120-123 Bilder des Fahrzeugaußenbereichs und von vom Fahrzeug 100 weit entfernten Stellen aufnehmen. Diese Bilder können mit Hilfe von Fahrzeugwahrnehmungstechniken unter Verwendung tiefer neuronaler Netzwerke verarbeitet werden. Die Ergebnisse können beispielsweise zur Objekterkennung und -vermeidung verwendet werden. Es ist zu beachten, dass, obwohl acht Kameras 120-123 und 130-133 gezeigt werden, mehr oder weniger Kameras in verschiedenen Ausführungsformen eingesetzt werden können.
  • Die aufgenommenen Bilder können auf einem Display (nicht dargestellt) angezeigt werden, um dem Fahrer/Bediener des Fahrzeugs 100 externe Ansichten des Fahrzeugs 100 bereitzustellen. Die aufgenommenen Bilder können als Live-Bilder, Standbilder oder eine Kombination davon angezeigt werden. In einigen Beispielen können die Bilder zu einer zusammengesetzten Ansicht, wie etwa der Surround-Ansicht kombiniert werden. Die angezeigten Bilder können auch mit Informationen überlagert werden, die während der Verarbeitung/Analyse ermittelt wurden. So kann beispielsweise ein Bild mit Abstandsinformationen (z. B. Abstand vom Fahrzeug 100 zu einem anderen Objekt/Fahrzeug), Sicherheitsinformationen (z. B. Warnung vor einer möglichen Kollision) und dergleichen überlagert werden.
  • Das Fahrzeug 100 kann auch Sensoren, wie etwa die Sensoren 140, 141, einschließen. Gemäß einer oder mehreren Ausführungsformen stellt der Sensor 140 ein hochauflösendes Radar dar, und der Sensor 141 stellt einen Lidar-Sensor (Light Imaging Detection and Range) dar. Es können auch andere Anzahlen und Typen von Sensoren verwendet werden.
  • Das Verarbeitungssystem 110 verwendet Bilder, die von einer oder mehreren der Kameras 120-123, 130-133 aufgenommen wurden, um die Fahrzeugwahrnehmung unter Verwendung von tiefen neuronalen Netzwerken durchzuführen. So kann die Fahrzeugwahrnehmung beispielsweise das Durchführen einer Merkmalsextraktion, einer Objekterfassung und -vermeidung und dergleichen einschließen.
  • Die verschiedenen Komponenten, Module, Maschinen usw., die in 1 beschrieben sind, können als Anweisungen, die auf einem computerlesbaren Speichermedium gespeichert sind, als Hardwaremodule, als zweckgebundene Hardware (z. B. anwendungsspezifische Hardware, anwendungsspezifische integrierte Schaltungen (ASICs), anwendungsspezifische Spezialprozessoren (ASSPs), feldprogrammierbare Gate-Arrays (FPGAs), als eingebundene Steuereinheiten, fest verdrahtete Schaltlogik usw.) oder als Kombination oder Kombinationen davon implementiert werden. Gemäß den Aspekten der vorliegenden Offenbarung kann die hierin beschriebene Maschine (können die hierin beschriebenen Maschinen) eine Kombination aus Hardware und Programmierung sein. Die Programmierung kann prozessorausführbare Anweisungen sein, die auf einem greifbaren Speicher gespeichert sind, und die Hardware kann eine Verarbeitungsvorrichtung (z. B. die CPU 1021 von 10) zum Ausführen dieser Anweisungen einschließen. Somit kann ein Systemspeicher (z. B. der RAM 1024 von 10) Programmanweisungen speichern, die, wenn sie von der Verarbeitungsvorrichtung ausgeführt werden, die hierin beschriebenen Maschinen implementieren. Andere Maschinen können auch verwendet werden, um andere Merkmale und Funktionen zu integrieren, die in anderen Beispielen hierin beschrieben sind.
  • 2 stellt das Verarbeitungssystem 110 von 1 zum Aktivieren des Null-Bypasses und des Weight-Pruning in neuronalen Netzwerken gemäß einer oder mehreren der hierin beschriebenen Ausführungsformen dar. Das Verarbeitungssystem 110 empfängt Bilder von einer oder mehreren der Kameras 120-123, 130-133 an einer Verarbeitungsvorrichtung 202. Die Verarbeitungsvorrichtung 202 (auch als Zentralverarbeitungseinheit des Hauptrechners bezeichnet) kann Verfolgungen auf Objektebene durchführen, Anwendungen ausführen und andere allgemeine Aufgaben durchführen. Somit ist die Verarbeitungsvorrichtung 202 eine universell einsetzbare Hardwarevorrichtung. Die Verarbeitungsvorrichtung 202 ist konfiguriert, um die Bilder von den Kameras 120-123, 130-133 zu empfangen und die Bilder als Bilddaten in einem Speicher 204 (auch als gemeinsamer Speicher bezeichnet) zu speichern, der ein dynamischer Direktzugriffsspeicher oder ein anderer geeigneter Speicher sein kann.
  • Eine zweckgebundene Hardwarevorrichtung, die als „neuronale Verarbeitungseinheit“ oder „Beschleuniger“ 210 bezeichnet wird, ist konfiguriert, um die im Speicher 204 gespeicherten Bilddaten zu empfangen und um eine Bildverarbeitung an den Bilddaten durchzuführen. Die Bildverarbeitung kann Punktwolkenverarbeitung, NN-Aufgaben und dergleichen einschließen. Der Beschleuniger 210 kann ein ASIC, ein feldprogrammierbares Gate-Array (FPGA), eine Grafikverarbeitungseinheit (GPU) oder eine andere geeignete zweckgebundene Hardwarevorrichtung.
  • Gemäß einer oder mehreren der hierin beschriebenen Ausführungsformen kann der Beschleuniger 210 die Funktionsweise des maschinellen Lernens nutzen, um die verschiedenen hierin beschriebenen Bildverarbeitungen/Analysen zu erzielen. Genauer gesagt, kann der Beschleuniger 210 regelbasierte Entscheidungsfindung und künstliche Intelligenz (KI) integrieren und nutzen, um die verschiedenen Vorgänge des hierin beschriebenen Beschleunigers 210 zu erzielen. Der Begriff „maschinelles Lernen“ beschreibt im weitesten Sinne eine Funktion von aus Daten lernenden elektronischen Systemen. Ein maschinelles Lernsystem, eine Maschine oder ein Modul kann einen trainierbaren maschinellen Lernalgorithmus einschließen, der beispielsweise in einer externen Cloud-Umgebung trainiert werden kann, um funktionale Beziehungen zwischen bislang unbekannten Ein- und Ausgaben zu erlernen, und das dabei entstandene Modell kann verwendet werden, um Merkmalsextraktion, Objekterkennung, Kollisionsvermeidung und dergleichen durchzuführen. In einer oder mehreren Ausführungsformen kann die Funktionsweise des maschinellen Lernens unter Verwendung eines künstlichen neuronalen Netzwerks (ANN) implementiert werden, das die Fähigkeit besitzt, trainiert zu werden, um eine bislang unbekannte Funktion auszuführen. Auf dem Gebiet des maschinellen Lernens und in der Kognitionswissenschaft sind ANNs eine Familie von statistischen Lernmodellen, die von den biologischen neuronalen Netzwerken von Tieren und insbesondere des Gehirns inspiriert sind. ANNs können verwendet werden, um Systeme und Funktionen, die von einer großen Anzahl von Eingaben abhängen, einzuschätzen oder zu approximieren.
  • ANNs können als sogenannte „neuromorphe“ Systeme von miteinander verbundenen Prozessorelementen, die als simulierte „Neuronen“ fungieren und „Nachrichten“ in Form von elektronischen Signalen untereinander austauschen, ausgeführt werden. Ähnlich wie die sogenannte „Plastizität“ von synaptischen Neurotransmitterverbindungen, die Nachrichten zwischen biologischen Neuronen übertragen, werden die Verbindungen in ANNs, die elektronische Nachrichten zwischen simulierten Neuronen übertragen, mit numerischen Gewichten versehen, die der Stärke oder Schwäche einer bestimmten Verbindung entsprechen. Die Gewichte können basierend auf Erfahrungen angepasst und abgestimmt werden, sodass die ANNs an die Eingaben angepasst werden können und lernfähig sind. So wird zum Beispiel ein ANN zum Erkennen und Erfassen von Objekten durch einen Satz von Eingabeneuronen definiert, die durch die Pixel eines Eingabebildes aktiviert werden können. Nach der Gewichtung und Transformation durch eine vom Netzwerkdesigner bestimmte Funktion wird die Aktivierung dieser Eingangsneuronen an andere nachgelagerte Neuronen weitergegeben, die oft als „versteckte“ Neuronen oder „versteckte“ Schichten bezeichnet werden. Dieser Vorgang wird wiederholt, bis ein Ausgangsneuron aktiviert wird. Das aktivierte Ausgangsneuron bestimmt, welches Objekt erkannt wurde.
  • Der Beschleuniger 210 schließt einen Anweisungsabrufer 212 für die neuronale Verarbeitungseinheit (NPU) zum Abrufen/Empfangen von Anweisungen und Bilddaten aus dem Speicher 204 ein. Die Anweisungen können Anweisungen einschließen, um z. B. Merkmalsextraktion, Objekterkennung und dergleichen durchzuführen. Der Beschleuniger 210 schließt auch einen Zuteiler 214 ein, um die Anweisungen an eine Vielzahl von Verarbeitungselementen 220 zuzuteilen/einplanen.
  • Der Beschleuniger 210 schließt auch zusätzliche Speicher, wie etwa Cache-Speicher 216, der ein Level-2-(L2)-Cache-Speicher sein kann, und einen globalen Speicherpuffer 218 ein, der ein Level-1-(L1)-Cache-Speicher sein kann. Der globale Speicherpuffer 218 kann beispielsweise ein statischer Direktzugriffsspeicher sein.
  • Die Verarbeitungselemente 220 führen die auf tiefen neuronale Netzwerken basierenden Techniken zur Fahrzeugwahrnehmung durch. Insbesondere sendet der Zuteiler 214 Anweisungen und Bilddaten an die einzelnen Verarbeitungselemente 220, die gemeinsam die Bilddaten verarbeiten/analysieren, um die Fahrzeugwahrnehmung durchzuführen.
  • In der Regel führen die Verarbeitungselemente 220 eine Aktivierungsfunktion als Teil von auf tiefen neuronale Netzwerken basierenden Techniken zur Fahrzeugwahrnehmung durch. Eine Aktivierungsfunktion definiert die Ausgabe eines Knotens eines neuronalen Netzwerks, der eine Eingabe oder einen Satz von Eingaben erhält. Eingabewerte von null oder nahezu null verbrauchen Rechenressourcen der Verarbeitungselemente 220, wenn die Verarbeitungselemente 220 Aktivierungsfunktionen durchführen. Die vorliegenden Techniken reduzieren den Rechenaufwand für die Verarbeitungselemente 220 durch die Verwendung eines Bypass-Pfades für Eingabewerte von null und/oder nahezu null. Der Bypass-Pfad überspringt während der Aktivierung im Wesentlichen die Eingabewerte von null und/oder nahezu null. Der Bypass-Pfad speichert einen Multiplikations- und Akkumulationsvorgang (MAC) und einen Speicherlesevorgang. Dies kann beispielsweise zu einer Reduzierung der Verarbeitungsressourcen der Verarbeitungselemente 220 um etwa 40 % führen.
  • 3 stellt ein Diagramm 300 einer Reihe von Aktivierungen und einer Reihe von Non-Zero-Aktivierungen 304 für Faltungsschichten 306 eines neuronalen Netzwerks gemäß einer oder mehreren der hierin beschriebenen Ausführungsformen dar. Wie im Diagramm 300 gezeigt, ist die Anzahl der Nicht-Null-Aktivierungen deutlich geringer als die Anzahl der Aktivierungen an jeder Faltungsschicht. Diese Verringerung wird durch den in 4 dargestellten Bypass-Pfad erreicht und stellt eine deutliche Verringerung der von den Verarbeitungselementen 220 verbrauchten Ressourcen dar.
  • 4 stellt ein Blockdiagramm 400 eines Bypass-Pfades dar, der bei dem Aktivieren von Faltungsschichten eines neuronalen Netzwerks gemäß einer oder mehreren der hierin beschriebenen Ausführungsformen verwendet wird. Üblicherweise werden eine Aktivierungseingabe 402 und ein Synapsengewicht 404 in einen MAC-Vorgang 406 eingegeben, der eine Multiplikationskomponente 408 und eine Additionskomponente 410 aufweist. Wie hierin beschrieben, ist die Durchführung der Aktivierung an den Aktivierungseingaben 402 von null- oder nahezu null rechenintensiv und kann die Genauigkeit nur geringfügig (wenn überhaupt) beeinflussen. Dementsprechend reduzieren die im Blockdiagramm 400 dargestellten technischen Lösungen den Rechenaufwand für die Verarbeitungselemente 220 (und damit für den Beschleuniger 210), indem sie einen Bypass 412 mit Werten von null oder nahezu null durchführen. Wenn eine Aktivierungseingabe 402, wie bei Bypass 412 bestimmt, null oder nahezu null ist, wird die Aktivierungseingabe 402, wie im Blockdiagramm 400 dargestellt, als Eingabe 414 direkt in den Multiplexer (MUX) 416 eingespeist, während der MAC-Betrieb 406 „umgangen“ wird, wodurch die Verarbeitungselemente 220 vom Durchführen des MAC-Vorgangs 406 befreit werden. Der MUX 416 wählt zwischen einer Teilsummeneingabe 418 und einer der Ausgaben des MAC-Vorgangs 406 (für Nicht-Bypass-Aktivierungseingaben 402) oder der Eingabe 414, die den Bypass zum MAC-Vorgang 406 für Aktivierungseingaben von 402 null oder nahezu null darstellt. Eine Teilsumme 420 wird von dem MUX 416 ausgegeben.
  • Ein Aktivierungseingabe 402 gilt als „nahezu null“, wenn sie unter einem Schwellenwert liegt. 5 stellt ein Diagramm 500 eines Schwellenwerts 502 dar, um die Bypassbestimmung am Bypass 412 gemäß einer oder mehreren der hierin beschriebenen Ausführungsformen durchzuführen. Der Schwellenwert 502 für die Bypasswerte 504 kann basierend auf einem Prozentsatz der ausgedünnten Vorgänge 506 und einem Vorhersagefehler in Prozent 508 bestimmt werden. Der Schwellenwert 502 ermöglicht einen Kompromiss zwischen Genauigkeit und Verarbeitungsgeschwindigkeit. Mit zunehmender Verarbeitungsgeschwindigkeit steigt auch der Verbrauch an Verarbeitungsressourcen durch die Verarbeitungselemente 220. Gemäß den hierin beschriebenen Beispielen können kleine Abweichungen in der Genauigkeit zu einer deutlichen Verbesserung der Menge an Verarbeitungsressourcen führen, die von den Verarbeitungselementen 220 verbraucht werden, was eine Verbesserung der Funktionalität des Verarbeitungssystems 110 darstellt.
  • Die vorliegenden Techniken verbessern auch das Verarbeitungssystem 110 durch das Weight-Pruning von Neuronen (auch als „Knoten“ bezeichnet) und Synapsen zwischen den Knoten, die für Aktivierungsfunktionen verwendet werden.
  • 6A stellt ein Knotendiagramm 600 der Knoten 602 und Synapsen 604 dar, die die Knoten 602 vor dem Weight-Pruning verbinden; Im Allgemeinen reduziert der Weight-Pruning die Anzahl der Knoten 602 und die Synapsen 604, die die Knoten 602 verbinden. Die Ergebnisse des Weight-Pruning sind in 6B dargestellt. Insbesondere stellt 6B ein ausgedünntes Knotendiagramm 601 der Knoten 603 und Synapsen 605 dar, die die Knoten 603 nach dem Weight-Pruning gemäß einer oder mehreren der hierin beschriebenen Ausführungsformen verbinden.
  • Das Pruning des Knotendiagramms 600 verringert das Gewicht und die MAC-Vorgänge während der Aktivierung, sodass das Gewicht und die Aktivierung im globalen Speicherpuffer 218 statt im Speicher 204 gespeichert werden können. In einigen Beispielen wird das Gewicht um etwa 10 % reduziert, während die Verarbeitungseffizienz der Verarbeitungselemente um etwa 10 % erhöht wird, da Gewicht und Aktivierung im globalen Speicherpuffer 218 statt im Speicher 204 gespeichert werden können. Gemäß einer oder mehreren der hierin beschriebenen Ausführungsformen kann das Gewicht um den Faktor neun verringert werden, während die MAC-Vorgänge um den Faktor drei verringert werden, was eine deutliche Verbesserung der Funktionsweise des Verarbeitungssystems 110 darstellt.
  • Das Weight-Pruning erfolgt unter Verwendung des Verfahrens 700 aus 7. Insbesondere stellt 7 ein Flussdiagramm eines Verfahrens zum Durchführen von Weight-Pruning während des Aktivierens von Faltungsschichten eines neuronalen Netzwerks gemäß einer oder mehreren der hierin beschriebenen Ausführungsformen dar. Das Verfahren 700 kann von jedem geeigneten Verarbeitungssystem und/oder von jeder geeigneten Verarbeitungsvorrichtung durchgeführt werden, wie etwa dem Verarbeitungssystem 110 aus 1 und 2, dem Beschleuniger 210 aus 2, dem Verarbeitungssystem 1000 aus 10 oder einer anderen geeigneten Verarbeitungsvorrichtung und/oder einem anderen geeigneten Verarbeitungssystem.
  • Bei Block 702 führt der Beschleuniger 210 eine Analyse durch. Der Analyseblock 702 empfängt ein Modell von einer vorherigen Schicht des neuronalen Netzwerks in Form eines topologischen Diagramms und erlernter Gewichtsparameter (d. h. Faltungsschichten und vollständig verbundene Schichten). Der Beschleuniger 210 konsolidiert eine Batch-Normalisierungsschicht mit den vorhergehenden Faltungsschichten und/oder vollständig verbundenen Schichten.
  • Bei Block 704 führt der Beschleuniger 210 das Weight-Pruning durch. Insbesondere dünnt der Beschleuniger 210 Synapsen (Verbindungen zwischen Knoten) mit geringem Gewicht, die Synapsen mit Gewichten unterhalb eines Schwellenwerts sein können, aus. Synapsen mit Gewichten, die kleiner als der Schwellenwert sind, werden aus dem neuronalen Netzwerk entfernt. Das Ausdünnen der Synapsen mit Gewichten unterhalb des Schwellenwerts kann zu toten Neuronen führen, also Neuronen ohne Eingabesynapsen oder Ausgabesynapsen. Diese toten Neuronen werden ebenfalls aus dem neuronalen Netzwerk entfernt. Sobald das Ausdünnen von Synapsen und toten Neuronen durchgeführt wurde, bleibt ein ausgedünntes Knotendiagramm (z. B. das ausgedünnte Knotendiagramm 601) erhalten.
  • Bei Block 706 führt der Beschleuniger 210 eine Feinabstimmung des Weight-Pruning von Block 704 durch. Der Beschleuniger 210 trainiert das ausgedünnte Knotendiagramm mit einem Datensatz D, einem ausgedünnten Gewicht W', einer Kostenfunktion C und einem Regularisierungsterm |W'|L1 erneut und wie folgt: W * = a r g m i n w , C ( W ' , D ) + | W ' | L 1 .
    Figure DE102019115244A1_0001
  • Die Regularisierung bestraft große Gewichte und begünstigt die Quantisierungs- und Pruning-Prozesse, die in dem neuronalen Netzwerk verwendet werden.
  • Beim Entscheidungsblock 708 bestimmt der Beschleuniger 210, ob eine zusätzliche Kompression durchgeführt werden soll. Diese Bestimmung basiert auf einer Größe des globalen Speicherpuffers 218 und der Größe des ausgedünnten Knotendiagramms 601. Wenn bestimmt wird, dass eine zusätzliche Komprimierung am Entscheidungsblock 708 durchgeführt werden soll, wird die Komprimierung iterativ fortgesetzt (dargestellt durch Pfeil 709), bis das ausgedünnte Knotendiagramm 601 im globalen Speicherpuffer 218 gespeichert werden kann. Wenn bestimmt wird, dass keine zusätzliche Kompression am Entscheidungsblock 708 durchgeführt wird, geht das Verfahren zu Block 710 über.
  • Bei Block 710 führt der Beschleuniger 210 eine Transformation unter Verwendung einer verlustfreien Komprimierungstechnik durch. Insbesondere wird die verlustfreie Kompressionstechnik auf die iterativ ausgedünnten Gewichte W* angewendet, sodass die Gewichte im globalen Puffer SRAM (z. B. dem globalen Speicherpuffer 218) statt im Speicher 204 gespeichert werden können.
  • 8A stellt ein Blockdiagramm zum Implementieren der verlustfreien Kompressionstechnik, die bei Block 710 von 7 gemäß einer oder mehreren der hierin beschriebenen Ausführungsformen verwendet wird, dar. Der Beschleuniger 210 und die Verarbeitungselemente 220 werden verbessert, wenn das ausgedünnte Knotendiagramm 601 und die zugehörigen ausgedünnten Gewichte W* im globalen Speicherpuffer 218 anstelle des Speichers 204 gespeichert werden. Die Verbesserung tritt ein, weil die Schreib-/Lesezeiten reduziert werden, da das ausgedünnte Knotendiagramm 601 und die zugeordneten ausgedünnten Gewichte W* lokal im globalen Speicherpuffer 218 in Bezug auf den Beschleuniger 210 und die Verarbeitungselemente 220 gespeichert werden.
  • Gemäß einer oder mehreren der hierin beschriebenen Ausführungsformen kann die verlustfreie Kompression mittels Lauflängenkompression (RLC) durchgeführt werden. Bei RLC wird ein Datendurchlauf als ein einzelner Datenwert und Zählwert anstatt als der ursprüngliche Datendurchlauf gespeichert. Als ein Beispiel lautet eine Liste von Synapsengewichten {wik} für ein Neuron yi wie folgt: 0, 0, 12, 0, 0, 0, 0, 53, 0, 0, 22. In diesem Beispiel sind aufeinanderfolgende Nullwerte (0) Datendurchläufe und können als ein einzelner Datenwert und Zählwert komprimiert werden. Die RLC-Ergebnisse dieses Beispiels sind in 88B dargestellt, wobei die fett gedruckten Werte (Blöcke 820a, 820c, 820e) die Zählwerte der Nullwerte und die nicht fett gedruckten Werte (Block 820b, 820d, 820f) die Datenwerte für Nicht-Null-Werte sind. Der Block 820g stellt den Endblock dar. Die Blöcke, die die Nullwerte enthalten (z. B. Blöcke 820a, 820c, 820e), sind 4-Bit-Blöcke, während die Blöcke, die die Nicht-Null-Werte enthalten (z. B. Block 820b, 820d, 820f) 8-Bit-Blöcke sind.
  • Die Blöcke aus 8B werden als Eingaben in das Blockdiagramm zum Implementieren der verlustfreien Kompressionstechnik von 8A verwendet. Insbesondere sind die Nicht-Null-Werte (z. B. die Blöcke 820a, 820c, 820e) versetzte Eingaben in einen Addierer 802. Der Addierer 802 empfängt als Eingabe auch eine Ausgabe 813 aus dem Adressregister 812. Der Addierer addiert den Nicht-Null-Wert und die Ausgabe 813 und sendet die Ergebnisse an einen Multiplexer 806, der zwischen der Ausgabe des Addierers und einer Basisadresse 807, die auf den Ergebnissen eines Vergleichs 810 eines Zählwerts 808 basiert, auswählt. Der Ausgabe des Multiplexers 806 wird in das Adressregister 812 eingegeben, das 813 eine Ausgabeadresse ausgibt. Ein Wertregister 814 gibt einen Ausgabewert 815 für die Nicht-Null-Eingaben 820d, 820d, 820f aus. Die verlustfreie Kompression ist abgeschlossen, wenn der Endblock 820g erreicht ist.
  • 9 stellt ein Flussdiagramm eines Verfahrens 900 zum Aktivieren des Null-Bypasses und des Weight-Pruning in neuronalen Netzwerken für Fahrzeugwahrnehmungssysteme gemäß einer oder mehreren der hierin beschriebenen Ausführungsformen dar. Das Verfahren 900 kann von jedem geeigneten Verarbeitungssystem und/oder von jeder geeigneten Verarbeitungsvorrichtung durchgeführt werden, wie etwa dem Verarbeitungssystem 110 aus 1 und 2, dem Beschleuniger 210 aus 2, dem Verarbeitungssystem 1000 aus 10 oder einer anderen geeigneten Verarbeitungsvorrichtung und/oder einem anderen geeigneten Verarbeitungssystem.
  • Bei Block 902 nimmt eine dem Fahrzeug 100 zugeordnete Kamera (z. B. eine der Kameras 120-123, 130-133) eine Vielzahl von Bildern auf. Die Verarbeitungsvorrichtung 202 speichert Bilddaten, die der Vielzahl von Bildern zugeordnet sind, in dem Speicher 204.
  • Bei Block 904 ruft der NPU-Anweisungsabrufer 212 Fahrzeugwahrnehmungsaufgaben ab, die anzeigen, wie die Vielzahl von Bildern verarbeitet werden soll, und der Zuteiler 214 teilt den mit dem Speicher 204 in Verbindung stehenden Verarbeitungselementen 220 des Beschleunigers 210 Fahrzeugwahrnehmungsaufgaben zu.
  • Bei Block 906 führt mindestens eines aus der Vielzahl von Verarbeitungselementen 220 die Fahrzeugwahrnehmungsaufgaben für die Fahrzeugwahrnehmung unter Verwendung eines neuronalen Netzwerks aus. Dies gilt insbesondere für die Verarbeitungselemente 220, die die Fahrzeugwahrnehmungsaufgaben durch Durchführen eines Aktivierungsbypasses für Werte unterhalb eines ersten Schwellenwerts und durch Durchführen eines Weight-Pruning von Synapsen und Neuronen des neuronalen Netzwerks basierend zumindest teilweise auf einem zweiten Schwellenwert durchführen.
  • Bei Block 908 werden die Ergebnisse der Durchführung der Fahrzeugwahrnehmungsaufgaben zur Steuerung des Fahrzeugs 100 verwendet. So kann ein autonomes Fahrzeug beispielsweise gesteuert werden, um ein infolge der Fahrzeugwahrnehmung erkanntes Objekt zu vermeiden.
  • In einem anderen Beispiel kann ein Fahrer des Fahrzeugs 100 auf ein Objekt aufmerksam gemacht werden, das infolge der Fahrzeugwahrnehmungsaufgabe erkannt wird.
  • Zusätzliche Prozesse können ebenfalls eingeschlossen werden, und es ist zu verstehen, dass der in 9 dargestellte Prozess eine Veranschaulichung darstellt und dass andere Prozesse hinzugefügt oder bestehende Prozesse entfernt, modifiziert oder neu angeordnet werden können, ohne vom Schutzumfang und Geist der vorliegenden Offenbarung abzuweichen.
  • Es versteht sich, dass die vorliegende Offenbarung in Verbindung mit jeder anderen Art von Computerumgebung, die jetzt bekannt oder später entwickelt wird, implementiert werden kann. Zum Beispiel veranschaulicht 10 ein Blockdiagramm eines Verarbeitungssystems 1000 zum Implementieren der hierin beschriebenen Techniken. In Beispielen weist das Verarbeitungssystem 1000 eine oder mehrere Zentralverarbeitungseinheiten (Prozessoren) 1021a, 1021b, 1021c usw. (zusammen oder allgemein als Prozessor(en) 1021 und/oder als Verarbeitungsvorrichtung(en) bezeichnet) auf. In Aspekten der vorliegenden Offenbarung kann jeder Prozessor 1021 einen RISC-Mikroprozessor (Reduced Instruction Set Computer) einschließen. Die Prozessoren 1021 sind über einen Systembus 1033 mit dem Systemspeicher (z. B. Direktzugriffsspeicher (RAM) 1024) und verschiedenen anderen Komponenten gekoppelt. Der Nur-Lese-Speicher (ROM) 1022 ist mit dem Systembus 1033 gekoppelt und kann ein Basis-Ein-/Ausgabesystem (BIOS) einschließen, das bestimmte Grundfunktionen des Verarbeitungssystems 1000 steuert.
  • Ferner sind ein Ein-/Ausgabe-(E/A)-Adapter 1027 und ein an den Systembus 1033 gekoppelter Netzwerkadapter 1026 dargestellt. Der E/A-Adapter 1027 kann ein SCSI-Adapter („Small Computer System Interface“) sein, der mit einer Festplatte 1023 und/oder einem Speicherlaufwerk 1025 oder einer anderen ähnlichen Komponente kommuniziert. E/A-Adapter 1027, Festplatte 1023 und Speichervorrichtung 1025 werden hierin gemeinsam als Massenspeicher 1034 bezeichnet. Das Betriebssystem 1040 zur Ausführung auf dem Verarbeitungssystem 1000 kann im Massenspeicher 1034 gespeichert werden. Der Netzwerkadapter 1026 verbindet den Systembus 1033 mit einem externen Netzwerk 1036, sodass das Verarbeitungssystem 1000 imstande ist mit anderen solchen Systemen zu kommunizieren.
  • Ein Display (z. B. ein Displaymonitor) 1035 ist über den Displayadapter 1032 mit dem Systembus 1033 verbunden, der zur Verbesserung der Leistung von grafikintensiven Anwendungen einen Grafikadapter oder eine Videosteuerung einschließen kann. In einem Aspekt der vorliegenden Offenbarung können die Adapter 1026, 1027 und/oder 1032 mit einem oder mehreren E/A-Bussen, die über eine Zwischenbusbrücke mit dem Systembus 1033 verbunden sind (nicht dargestellt), verbunden sein. Geeignete E/A-Busse zum Verbinden von peripheren Vorrichtungen wie etwa Festplattensteuerungen, Netzwerkadaptern und Grafikadaptern schließen typischerweise gängige Protokolle wie etwa das Peripheral Component Interconnect (PCI) ein. Zusätzliche Ein-/Ausgabegeräte werden als über den Benutzeroberflächenadapter 1028 und den Anzeigeadapter 1032 an den Systembus 1033 angeschlossen gezeigt. Eine Tastatur 1029, eine Maus 1030 und ein Lautsprecher 1031 können über den Benutzerschnittstellenadapter 1028 mit dem Systembus 1033 verbunden werden, der beispielsweise einen Super-E/A-Chip einschließen kann, der mehrere Geräteadapter in einer einzigen integrierten Schaltung integriert.
  • In einigen Aspekten der vorliegenden Offenbarung schließt das Verarbeitungssystem 1000 eine Grafikverarbeitungseinheit 1037 ein. Die Grafikverarbeitungseinheit 1037 ist eine spezielle elektronische Schaltung, die entwickelt wurde, um den Speicher zu manipulieren und zu ändern, um die Erzeugung von Bildern in einem Rahmenpuffer zu beschleunigen, der zur Ausgabe auf einem Display bestimmt ist. Im Allgemeinen ist die Grafikverarbeitungseinheit 1037 sehr effizient bei der Manipulation von Computergrafiken und der Bildverarbeitung und weist eine hochparallele Struktur auf, die sie effektiver als Universal-CPUs für Algorithmen macht, bei denen die Verarbeitung großer Datenblöcke parallel erfolgt.
  • So schließt das Verarbeitungssystem 1000, wie hierin konfiguriert, die Verarbeitungskapazität in Form von Prozessoren 1021, die Speicherkapazität einschließlich Systemspeicher (z. B. RAM 1024) und Massenspeicher 1034, Eingabemittel wie etwa Tastatur 1029 und Maus 1030 sowie die Ausgabefähigkeit einschließlich Lautsprecher 1031 und Anzeige 1035 ein. In einigen Aspekten der vorliegenden Offenbarung speichern ein Teil des Systemspeichers (z. B. RAM 1024) und der Massenspeicher 1034 gemeinsam ein Betriebssystem, um die Funktionen der verschiedenen im Verarbeitungssystem 1000 dargestellten Komponenten zu koordinieren.
  • Während die vorgenannte Offenbarung unter Bezugnahme auf Ausführungsbeispiele beschrieben wurde, wird der Fachmann verstehen, dass verschiedene Änderungen vorgenommen werden können und Äquivalente für Elemente davon ersetzt werden können, ohne von ihrem Schutzumfang abzuweichen. Zusätzlich können viele Modifikationen vorgenommen werden, um eine bestimmte Situation oder ein bestimmtes Material an die Lehren der Offenbarung anzupassen, ohne von deren wesentlichem Schutzumfang abzuweichen. Daher soll die vorliegende Offenbarung nicht auf die besonderen offenbarten Ausführungsformen beschränkt sein, sondern alle Ausführungsformen einschließen, die in den Schutzumfang davon fallen.

Claims (11)

  1. Beansprucht wird:
  2. Computerimplementiertes Verfahren zur Fahrzeugwahrnehmung, wobei das Verfahren Folgendes umfasst: Erfassen einer Vielzahl von Bildern an einer einem Fahrzeug zugeordneten Kamera und Speichern von Bilddaten, die der Vielzahl von Bildern zugeordnet sind, in einem Speicher; Zuteilen von Fahrzeugwahrnehmungsaufgaben an eine Vielzahl von Verarbeitungselementen eines mit dem Speicher in Verbindung stehenden Beschleunigers; Durchführen der Fahrzeugwahrnehmungsaufgaben für die Fahrzeugwahrnehmung unter Verwendung eines neuronalen Netzwerks durch mindestens eines aus der Vielzahl von Verarbeitungselementen, wobei das Durchführen der Fahrzeugwahrnehmungsaufgaben das Folgende umfasst: Durchführen eines Aktivierungsbypasses für Werte unterhalb eines ersten Schwellenwerts und Durchführen eines Weight-Pruning von Synapsen und Neuronen des neuronalen Netzwerks, das zumindest teilweise auf einem zweiten Schwellenwert basiert; und Steuern des Fahrzeugs, basierend zumindest teilweise auf einem Ergebnis der Durchführung der Fahrzeugwahrnehmungsaufgaben.
  3. Computerimplementiertes Verfahren nach Anspruch 1, wobei das Durchführen des Weight-Pruning ferner das Folgende umfasst: Durchführen einer Analyse; Durchführen eines Weight-Pruning basierend auf der Analyse; und Optimierung des Weight-Pruning.
  4. Computerimplementiertes Verfahren nach Anspruch 2, wobei das Durchführen des Weight-Pruning ferner das Bestimmen umfasst, ob eine zusätzliche Kompression durchgeführt werden soll.
  5. Computerimplementiertes Verfahren nach Anspruch 3, wobei das Durchführen des Weight-Pruning ferner das erneute Durchführen des Weight-Pruning und des Optimierens als Reaktion auf das Bestimmen, dass zusätzliches Komprimieren durchgeführt werden soll, umfasst.
  6. Computerimplementiertes Verfahren nach Anspruch 3, wobei das Durchführen des Weight-Pruning ferner das Durchführen einer Transformation, als Reaktion auf das Bestimmen, dass kein zusätzliches Komprimieren durchgeführt werden soll, umfasst.
  7. Computerimplementiertes Verfahren nach Anspruch 1, wobei das Durchführen des Aktivierungsbypasses das Durchführen eines Multiplikations- und Akkumulationsvorgangs (MAC) vermeidet, wobei der MAC-Vorgang für Werte oberhalb des ersten Schwellenwertes durchgeführt wird.
  8. Computerimplementiertes Verfahren nach Anspruch 1, wobei der erste Schwellenwert mindestens teilweise basierend auf einem Prozentsatz der ausgedünnten Vorgänge und einem Prozentsatz der Vorhersagefehler bestimmt wird.
  9. Computerimplementiertes Verfahren nach Anspruch 1, wobei der Beschleuniger ferner einen Anweisungsabrufer für eine neuronale Verarbeitungseinheit, einen Zuteiler, einen Level-1-Cache-Speicher und einen Level-2-Cache-Speicher umfasst.
  10. Computerimplementiertes Verfahren nach Anspruch 1, wobei der Beschleuniger über den Speicher kommunikationstechnisch mit einer Zentralverarbeitungseinheit des Hauptrechners gekoppelt ist, wobei der Beschleuniger ein zweckgebundener Prozessor ist, wobei die Zentralverarbeitungseinheit des Hauptrechners ein Allzweckprozessor ist, und wobei die Zentralverarbeitungseinheit des Hauptrechners die Bilddaten von der dem Fahrzeug zugeordneten Kamera empfängt und die der Vielzahl von Bildern zugeordneten Bilddaten im Speicher speichert.
  11. System umfassend: einen Speicher, der computerlesbare Anweisungen umfasst; und eine Verarbeitungsvorrichtung zum Ausführen der computerlesbaren Anweisungen zum Durchführen eines Verfahrens zur Fahrzeugwahrnehmung, wobei das Verfahren Folgendes umfasst: Erfassen einer Vielzahl von Bildern an einer einem Fahrzeug zugeordneten Kamera und Speichern von Bilddaten, die der Vielzahl von Bildern zugeordnet sind, in einem Speicher; Zuteilen von Fahrzeugwahrnehmungsaufgaben an eine Vielzahl von Verarbeitungselementen eines mit dem Speicher in Verbindung stehenden Beschleunigers; Durchführen der Fahrzeugwahrnehmungsaufgaben für die Fahrzeugwahrnehmung unter Verwendung eines neuronalen Netzwerks durch mindestens eines aus der Vielzahl von Verarbeitungselementen, wobei das Durchführen der Fahrzeugwahrnehmungsaufgaben das Folgende umfasst: Durchführen eines Aktivierungsbypasses für Werte unterhalb eines ersten Schwellenwerts und Durchführen eines Weight-Pruning von Synapsen und Neuronen des neuronalen Netzwerks, das zumindest teilweise auf einem zweiten Schwellenwert basiert; und Steuern des Fahrzeugs, basierend zumindest teilweise auf einem Ergebnis der Durchführung der Fahrzeugwahrnehmungsaufgaben.
DE102019115244.5A 2018-10-25 2019-06-05 Aktivieren des null-bypasses und des weight-pruning in neuronalen netzwerken für fahrzeugwahrnehmungssysteme Ceased DE102019115244A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/170,698 US11281974B2 (en) 2018-10-25 2018-10-25 Activation zero-bypass and weight pruning in neural networks for vehicle perception systems
US16/170,698 2018-10-25

Publications (1)

Publication Number Publication Date
DE102019115244A1 true DE102019115244A1 (de) 2020-04-30

Family

ID=70326322

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019115244.5A Ceased DE102019115244A1 (de) 2018-10-25 2019-06-05 Aktivieren des null-bypasses und des weight-pruning in neuronalen netzwerken für fahrzeugwahrnehmungssysteme

Country Status (3)

Country Link
US (1) US11281974B2 (de)
CN (1) CN111105030B (de)
DE (1) DE102019115244A1 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11210149B2 (en) * 2018-11-16 2021-12-28 International Business Machines Corporation Prioritization of data collection and analysis for incident detection
US11056098B1 (en) 2018-11-28 2021-07-06 Amazon Technologies, Inc. Silent phonemes for tracking end of speech
JP7354736B2 (ja) * 2019-09-30 2023-10-03 富士通株式会社 情報処理装置、情報処理方法、情報処理プログラム
KR102321049B1 (ko) * 2019-11-19 2021-11-02 아주대학교산학협력단 상이한 희소 수준을 갖는 신경망 다중 프루닝 장치 및 방법
JP7427200B2 (ja) * 2020-11-02 2024-02-05 本田技研工業株式会社 ノード枝刈り装置、ノード枝刈り方法、およびプログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11029949B2 (en) * 2015-10-08 2021-06-08 Shanghai Zhaoxin Semiconductor Co., Ltd. Neural network unit
US20170300763A1 (en) * 2016-04-19 2017-10-19 GM Global Technology Operations LLC Road feature detection using a vehicle camera system
CN107444264A (zh) * 2016-05-31 2017-12-08 法拉第未来公司 使用相机检测车辆附近的物体
KR20180034853A (ko) * 2016-09-28 2018-04-05 에스케이하이닉스 주식회사 합성곱 신경망의 연산 장치 및 방법
US20180164866A1 (en) * 2016-12-13 2018-06-14 Qualcomm Incorporated Low-power architecture for sparse neural network
US10832135B2 (en) * 2017-02-10 2020-11-10 Samsung Electronics Co., Ltd. Automatic thresholds for neural network pruning and retraining
US11373088B2 (en) * 2017-12-30 2022-06-28 Intel Corporation Machine learning accelerator mechanism
CN108090560A (zh) * 2018-01-05 2018-05-29 中国科学技术大学苏州研究院 基于fpga的lstm递归神经网络硬件加速器的设计方法
CN108259136B (zh) * 2018-01-12 2020-10-16 重庆邮电大学 一种智能旅居商务房车的跨模态智能感知方法
CN110087084B (zh) * 2018-01-25 2022-03-18 联咏科技股份有限公司 视频处理装置及视频处理方法

Also Published As

Publication number Publication date
CN111105030B (zh) 2024-04-12
CN111105030A (zh) 2020-05-05
US11281974B2 (en) 2022-03-22
US20200134459A1 (en) 2020-04-30

Similar Documents

Publication Publication Date Title
DE102019115244A1 (de) Aktivieren des null-bypasses und des weight-pruning in neuronalen netzwerken für fahrzeugwahrnehmungssysteme
EP2368216B1 (de) Verfahren und einrichtung zur analyse von umgebungsobjekten und/oder umgebungsszenen, wie zur objekt- und szenenklassensegmentierung
WO2019001649A1 (de) Wissenstransfer zwischen verschiedenen deep-learning architekturen
DE102018217090A1 (de) Verfahren, künstliches neuronales Netz, Vorrichtung, Computerprogramm und maschinenlesbares Speichermedium zur semantischen Segmentierung von Bilddaten
DE102019115665A1 (de) Optimierung tiefer neuronaler netze unter beibehaltung der richtigkeit
DE102017108255A1 (de) Parallele detektion von primitiven in einer szene unter verwendung eines rundum-kamerasystems
DE102017108248A1 (de) Strassenmerkmalserkennung mit einem fahrzeugkamerasystem
DE102019214402A1 (de) Verfahren und vorrichtung zum verarbeiten von daten mittels eines neuronalen konvolutionsnetzwerks
DE102020209538A1 (de) Vorrichtung und Verfahren zum Ermitteln einer physikalischen Eigenschaft eines physikalischen Objekts
DE102018217091A1 (de) Verfahren, künstliches neuronales Netz, Vorrichtung, Computerprogramm und maschinenlesbares Speichermedium zur semantischen Segmentierung von Bilddaten
DE102022130893A1 (de) Systeme und Verfahren für tiefes Multitask-Lernen für eingebettete Machine-Vision-Anwendungen
DE102020107868A1 (de) Objektdetektionssystem für die detektion eines objekts mit hilfe einer hierarchie-pyramide und objektdetektionsverfahren
DE102019114732A1 (de) Festkomma-quantisierung in neuronalen netzwerken für fahrzeugwahrnehmungssysteme
DE102017128082A1 (de) Meta-Architektur-Design für ein CNN-Netzwerk
DE102020100210A1 (de) Neuronaler Netzwerkprozessor zum Komprimieren von Merkmalsabbildungsdaten und Computersystem dasselbe enthaltend
DE102019213931A1 (de) Verfahren und Computerprogrammprodukt zur Identifizierung eines Fahrzeugnutzers und Steuergerät für automatisierte Fahrfunktionen
DE102022204722A1 (de) Verfahren zum Trainieren eines neuronalen Konvolutionsnetzwerks
DE102021200643B3 (de) Verfahren zur Umfelderkennung für teilautonome oder autonome Fahrfunktionen eines Kraftfahrzeugs mittels eines neuronalen Netzes
DE102022109385A1 (de) Belohnungsfunktion für Fahrzeuge
DE102021213344A1 (de) Verfahren zum Ermitteln von Agenten-Trajektorien in einem Multi-Agenten-Szenario
DE102021202813A1 (de) Verfahren, Vorrichtung und Computerprogramm für eine Unsicherheitsbewertung einer Bildklassifikation
EP4053593A1 (de) Verarbeitung von sensordaten in einem fortbewegungsmittel
DE102019130484A1 (de) Verfahren und Vorrichtung zum Anlernen eines Ensembles von neuronalen Netzen
DE102019215912A1 (de) Verfahren und vorrichtung zum computer-implementierten betreiben eines neuronalen netzwerks
DE102019216184A1 (de) Verfahren zum Robustifizieren eines Neuronalen Netzes gegen adversariale Störungen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: LKGLOBAL LORENZ UND KOPF PATENTANWALT, ATTORNE, DE

Representative=s name: LKGLOBAL | LORENZ & KOPF PARTG MBB PATENTANWAE, DE

Representative=s name: LKGLOBAL ] LORENZ & KOPF PARTG MBB PATENTANWAE, DE

R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final