DE102022204722A1 - Verfahren zum Trainieren eines neuronalen Konvolutionsnetzwerks - Google Patents

Verfahren zum Trainieren eines neuronalen Konvolutionsnetzwerks Download PDF

Info

Publication number
DE102022204722A1
DE102022204722A1 DE102022204722.2A DE102022204722A DE102022204722A1 DE 102022204722 A1 DE102022204722 A1 DE 102022204722A1 DE 102022204722 A DE102022204722 A DE 102022204722A DE 102022204722 A1 DE102022204722 A1 DE 102022204722A1
Authority
DE
Germany
Prior art keywords
training
convolution
input image
feature map
training input
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.)
Pending
Application number
DE102022204722.2A
Other languages
English (en)
Inventor
Tamas Kapelner
Thomas Wenzel
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102022204722.2A priority Critical patent/DE102022204722A1/de
Priority to US18/298,613 priority patent/US20230368334A1/en
Priority to CN202310539488.4A priority patent/CN117057398A/zh
Publication of DE102022204722A1 publication Critical patent/DE102022204722A1/de
Pending 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/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/40Scaling the whole image or part thereof
    • G06T3/4046Scaling the whole image or part thereof using neural networks
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20016Hierarchical, coarse-to-fine, multiscale or multiresolution image processing; Pyramid transform
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning

Abstract

Gemäß verschiedenen Ausführungsformen wird ein Verfahren zum Trainieren eines neuronalen Konvolutionsnetzwerks beschrieben, aufweisend, für jedes einer Vielzahl von Trainings-Eingabebildern, Verarbeiten des Trainings-Eingabebilds durch das Konvolutionsnetzwerk, Verarbeiten einer skalierten Version des Trainings-Eingabebilds durch das Konvolutionsnetzwerk, Bestimmen eines Paares von Konvolutionsschichten des Konvolutionsnetzwerk, sodass eine Konvolutionsschicht des Paares für das Trainings-Eingabebild eine erste Merkmalskarte erzeugt, die die gleiche Größe hat wie eine zweite Merkmalskarte, die die andere Konvolutionsschicht des Paares für die skalierte Version des Trainings-Eingabebilds erzeugt und Berechnen eines Verlusts zwischen der ersten Merkmalskarte und der zweiten Merkmalskarte und Trainieren des neuronalen Konvolutionsnetzwerks zum Verringern eines Gesamtverlusts, der die berechneten Verluste beinhaltet.

Description

  • Stand der Technik
  • Die vorliegende Offenbarung bezieht sich auf Verfahren zum Trainieren eines neuronalen Konvolutionsnetzwerks.
  • In vielen Computer-Vision-Anwendungen, wie der Objekterkennung oder der semantischen Segmentierung, ist es unerlässlich, Muster auf mehreren Skalen zu erkennen, z. B. sowohl große (nahe) als auch kleine (ferne) Objekte in einem Bild. Eine gängige Praxis bei solchen Anwendungen ist die Verwendung von Multi-Skalen-Netzen, d. h. von neuronalen Faltungsnetzen (CNNs für engl. convolutional neural networks), bei denen der Ausgang direkt mit mehreren Faltungsschichten der Netze verbunden ist, die auf Daten unterschiedlicher Auflösungen operieren. Dieses Konzept ist am weitesten verbreitet in der Objekterkennung, kann aber z. B. auch für die Standard-Bildklassifikation oder zur Erkennung von Mustern anstelle von Objekten verwendet werden.
  • Dahinter steht die Idee, dass kleine Objekte (oder Muster) bei höheren Auflösungen leichter zu erkennen sind, aber Konvolutionsschichten mit geringerer Auflösung besser Merkmale erkennen sollten, da sie tiefer im Netzwerk liegen (d.h. weiter entfernt vom Eingang des neuronalen Netzwerks). Es wird angenommen, dass die Kombination von beidem die Übereinstimmung der Merkmale während des Trainings fördert, d. h., dass die Merkmale für dieselben Objekte (oder allgemein Bildelemente) ähnlich bestimmt werden, unabhängig von der der Skalierung des Objekts auf dem Eingangsbild des neuronalen Netzwerks. Einige Methoden fördern es, dass diese Annahme, dass die Darstellung der Bildmerkmale über die Skalierungen hinweg ähnlich ist, berechtigt ist, indem sie gemeinsame Merkmale in verschiedenen Skalierungen verwenden. Dies bedeutet, dass die Ermittlung der Merkmale unabhängig von der Auflösung der Konvolutionsschichten mit denselben Faltungen (d.h. denselben Faltungskernen) erfolgt.
  • Es kann jedoch der Fall auftreten, dass jede Skalierung einen „reservierten Unterraum“ im Eingaberaum der gemeinsamen Merkmale hat, weil das neuronale Netzwerk beim Training gelernt hat, zumindest einige Merkmale separat zu speichern.
  • Es sind deshalb Herangehensweisen wünschenswert, die das Training eines neuronalen Netzwerks, das mehrere Konvolutionsschichten aufweist, die für unterschiedliche Auflösungen Merkmale bestimmen, ermöglichen, sodass das neuronale Netzwerk für Bildelemente, die unterschiedlich skaliert sind, aber dieselben Merkmale haben, dieselben Merkmale erkennt.
  • Offenbarung der Erfindung
  • Gemäß verschiedenen Ausführungsformen wird ein Verfahren zum Trainieren eines neuronalen Konvolutionsnetzwerks bereitgestellt, aufweisend, für jedes einer Vielzahl von Trainings-Eingabebildern, Verarbeiten des Trainings-Eingabebilds durch das Konvolutionsnetzwerk, Verarbeiten einer skalierten Version des Trainings-Eingabebilds durch das Konvolutionsnetzwerk, Bestimmen eines Paares von Konvolutionsschichten des Konvolutionsnetzwerks, sodass eine Konvolutionsschicht des Paares für das Trainings-Eingabebild eine erste Merkmalskarte erzeugt, die die gleiche Größe hat wie eine zweite Merkmalskarte, die die andere Konvolutionsschicht des Paares für die skalierte Version des Trainings-Eingabebilds erzeugt und Berechnen eines Verlusts zwischen der ersten Merkmalskarte und der zweiten Merkmalskarte und Trainieren des neuronalen Konvolutionsnetzwerks zum Verringern eines Gesamtverlusts, der die berechneten Verluste beinhaltet.
  • Das oben beschriebene Verfahren ermöglicht das Trainieren eines neuronalen Netzwerks, sodass es, wenn dasselbe Merkmal mit unterschiedlichen Skalierungen in Eingabedaten repräsentiert ist, für jede dieser Repräsentationen das Merkmal erkennt. Beispielsweise kann das Netzwerk für ein Bildelement, das (zumindest ähnlich) in unterschiedlichen Skalierungen in einem Eingabebild vorhanden ist, dieselben Merkmale erkennen und so z.B. das Bildelement in allen Skalierungen gleich klassifizieren. Das Verfahren kann so die Leistungsfähigkeit des neuronalen Netzwerks erhöhen, ohne dass es zusätzlichen Speicher oder zusätzliche Verarbeitungsressourcen erfordert.
  • Das oben beschriebene Verfahren kann auf jegliche Art von neuronalem Netzwerk mit Schichten, die auf unterschiedlichen Auflösungen arbeiten, angewendet werden und ist nicht auf eine bestimmte Aufgabe eingeschränkt. Das neuronale Netzwerk kann z.B. für Bildklassifizierung und semantische Segmentierung trainiert werden. Es ist auch nicht auf Computer-Vision und z.B. die Verarbeitung von RGB-Bilddaten eingeschränkt. Das neuronale Netzwerk kann z.B. auch zur Verarbeitung von Radardaten oder LiDAR-Daten trainiert und eingesetzt werden.
  • Im Folgenden werden verschiedene Ausführungsbeispiele angegeben.
  • Ausführungsbeispiel 1 ist ein Verfahren Trainieren eines neuronalen Konvolutionsnetzwerks, wie oben beschrieben.
  • Ausführungsbeispiel 2 ist ein Verfahren nach Ausführungsbeispiel 1, wobei die skalierte Version des Trainings-Eingabebilds durch Skalieren des Trainings-Eingabebilds um den Downsampling-Faktor zwischen aufeinanderfolgenden Konvolutionsschichten des Konvolutionsnetzwerks, eine Potenz des Downsampling-Faktors, den Kehrwert des Downsampling-Faktors oder einer Potenz des Kehrwerts des Downsampling-Faktors erzeugt wird.
  • Dies erlaubt es einander in Hinblick auf ihre Größe entsprechende Merkmalskarten zu finden, zwischen denen ein Verlust berechnet werden kann. Der Downsampling-Faktor ist beispielsweise ein Pooling-Faktor oder der Downsampling-Faktor durch eine Schrittweite (engl. Stride) der Faltung, d.h. ein Stride-Faktor.
  • Ausführungsbeispiel 3 ist ein Verfahren nach Ausführungsbeispiel 1 oder 2, wobei der Gesamtverlust ferner einen Trainingsverlust zum Training des Konvolutionsnetzwerks für eine vorgegebene Aufgabe aufweist und wobei das Verfahren ferner das Gewichten der berechneten Verluste im Gesamtverlust gegenüber dem Trainingsverlust aufweist.
  • Der Verlust zwischen den Merkmalskarten kann also durch einen zusätzlichen Verlustterm in einer Verlustfunktion gegeben sind, die zusätzlich einen „normalen“ Verlust, also einen Trainingsverlust für die Aufgabe des neuronalen Netzwerks (z.B. ein Klassifikationsverlust oder Segmentierungsverlust) aufweist, wobei diese Verluste gegeneinander gewichtet werden. Durch die Wahl dieser Gewichtung ist der Grad der Merkmals-Korrespondenz, die durch das Training erreicht wird, steuerbar.
  • Ausführungsbeispiel 4 ist ein Verfahren nach einem der Ausführungsbeispiele 1 bis 3, aufweisend Bestimmen, für jedes der Vielzahl von Trainings-Eingabebildern, mehrerer Paare von Konvolutionsschichten des Konvolutionsnetzwerks, sodass, für jedes Paar, eine Konvolutionsschicht des Paares für das Trainings-Eingabebild eine erste Merkmalskarte erzeugt, die die gleiche Größe hat wie eine zweite Merkmalskarte, die die andere Konvolutionsschicht des Paares für eine jeweilige skaliertes Version des Trainings-Eingabebild erzeugt, wobei ein Verlust zwischen der ersten Merkmalskarte und der zweiten Merkmalskarte berechnet wird, und der Gesamtverlust die für die Paare berechneten Verluste beinhaltet.
  • Damit kann erreicht werden, dass das Konvolutionsnetzwerk so trainiert wird, dass eine Merkmalskorrespondenz nicht nur zwischen zwei Konvolutionsschichten sondern zwischen mehreren Konvolutionsschichten besteht. Es können auch unterschiedliche skalierte Versionen des Trainings-Eingabebilds durch das Konvolutionsnetzwerk verarbeitet werden, um Paare von Konvolutionsschichten bestimmen zu können, die sich darin unterscheiden, wie stark zwischen den beiden Konvolutionsschichten skaliert wird (z.B. wie weit die Konvolutionsschichten bzgl. ihrer Tiefe im Konvolutionsnetzwerk voneinander entfernt sind).
  • Ausführungsbeispiel 5 ist ein Verfahren nach einem der Ausführungsbeispiele 1 bis 4, wobei das neuronale Netzwerk mittels eines Trainingsdatensatzes von Trainings-Eingabebildern trainiert wird, die Vielzahl von Trainings-Eingabebilder aus dem Trainingsdatensatz ausgewählt wird und für die Trainings-Eingabebilder skalierte Versionen der Trainings-Eingabebilder erzeugt, sodass für jedes Trainings-Eingabebild der Vielzahl von Trainings-Eingabebildern und jeder skalierten Version des Trainings-Eingabebilds das Konvolutionsnetzwerk ein Paar von Konvolutionsschichten aufweist, sodass eine Konvolutionsschicht des Paares für das Trainings-Eingabebild eine Merkmalskarte erzeugt, die die gleiche Größe hat wie eine Merkmalskarte, die die andere Konvolutionsschicht des Paares für die skalierte Version des Trainings-Eingabebilds erzeugt.
  • Durch die Auswahl, für welchen Anteil der Trainings-Eingabebilder aus den Trainingsdaten skalierte Eingabebilder erzeugt und beim Training entsprechend dem oben beschriebenen Verfahren verwendet werden, ist der Grad der Merkmals-Korrespondenz, die durch das Training erreicht wird, steuerbar. Die skalierten Versionen können für verschiedene Abstände von Konvolutionsschichten bzgl. ihrer Tiefe im Konvolutionsnetzwerk erzeugt werden.
  • Ausführungsbeispiel 6 ist eine Trainingseinrichtung für ein neuronales Konvolutionsnetzwerk, die eingerichtet ist, ein Verfahren nach einem der Ausführungsbeispiel e 1 bis 5 durchzuführen.
  • Ausführungsbeispiel 7 ist ein Computerprogramm mit Befehlen, die, wenn sie durch einen Prozessor ausgeführt werden, bewirken, dass der Prozessor ein Verfahren nach einem der Ausführungsbeispiele 1 bis 5 durchführt.
  • Ausführungsbeispiel 8 ist ein Computerlesbares Medium, das Befehle speichert, die, wenn sie durch einen Prozessor ausgeführt werden, bewirken, dass der Prozessor ein Verfahren nach einem der Ausführungsbeispiele 1 bis 5 durchführt.
  • In den Zeichnungen beziehen sich ähnliche Bezugszeichen im Allgemeinen auf dieselben Teile in den ganzen verschiedenen Ansichten. Die Zeichnungen sind nicht notwendigerweise maßstäblich, wobei die Betonung stattdessen im Allgemeinen auf die Darstellung der Prinzipien der Erfindung gelegt wird. In der folgenden Beschreibung werden verschiedene Aspekte mit Bezug auf die folgenden Zeichnungen beschrieben.
    • 1 zeigt ein Fahrzeug.
    • 2 zeigt ein Beispiel für ein neuronales Netzwerk.
    • 3 zeigt ein Beispiel eines neuronalen Konvolutionsnetzwerks.
    • 4 veranschaulicht ein Training eines neuronalen Netzwerks für Merkmalskorrespondenz zwischen Paaren von Schichten gemäß einer Ausführungsform.
    • 5 veranschaulicht ein Training eines neuronalen Netzwerks gemäß einer Ausführungsform.
  • Die folgende ausführliche Beschreibung bezieht sich auf die begleitenden Zeichnungen, die zur Erläuterung spezielle Details und Aspekte dieser Offenbarung zeigen, in denen die Erfindung ausgeführt werden kann. Andere Aspekte können verwendet werden und strukturelle, logische und elektrische Änderungen können durchgeführt werden, ohne vom Schutzbereich der Erfindung abzuweichen. Die verschiedenen Aspekte dieser Offenbarung schließen sich nicht notwendigerweise gegenseitig aus, da einige Aspekte dieser Offenbarung mit einem oder mehreren anderen Aspekten dieser Offenbarung kombiniert werden können, um neue Aspekte zu bilden.
  • Im Folgenden werden verschiedene Beispiele genauer beschrieben.
  • Beim maschinellen Lernen wird eine Funktion gelernt, die Eingabedaten auf Ausgabedaten abbildet. Beim überwachten Lernen (beispielsweise dem Training eines neuronalen Netzwerks oder eines anderen Modells) wird aus einem Eingabedatensatz (auch bezeichnet als Trainingsdatensatz), der zu jeder Eingabe eine gewünschte Ausgabe (z.B. eine gewünschte Klassifikation der Eingabedaten) vorgibt, die Funktion derart bestimmt, dass sie diese Zuordnung von Eingaben auf Ausgaben bestmöglich abbildet.
  • Ein Beispiel für eine Anwendung einer solchen maschinell gelernten Funktion ist die Objektklassifizierung oder semantische Segmentierung in digitalen Bildern, z.B. für das autonome Fahren, wie es in 1 veranschaulicht ist.
  • 1 zeigt ein (z.B. autonomes) Fahrzeug 101.
  • Es ist zu beachten, dass im Folgenden Bilder bzw. Bilddaten sehr allgemein als eine Sammlung von Daten, die einen oder mehreren Objekte oder Muster darstellen, aufgefasst werden. Die Bilddaten können von Sensoren bereitgestellt werden die sichtbares oder unsichtbares Licht messen, wie z.B. Infrarot- oder Ultraviolettlicht, Ultraschall- oder Radarwellen, oder andere elektromagnetische oder akustische Signale.
  • Im Beispiel von 1 ist das Fahrzeug 101, beispielsweise ein PKW oder LKW, mit einer Fahrzeugsteuereinrichtung 102 versehen.
  • Die Fahrzeugsteuereinrichtung 102 weist Datenverarbeitungskomponenten auf, z.B. einen Prozessor (z.B. eine CPU (Zentraleinheit)) 103 und einen Speicher 104 zum Speichern von Steuersoftware, gemäß der die Fahrzeugsteuereinrichtung 102 arbeitet, und Daten, die von dem Prozessor 103 verarbeitet werden.
  • Beispielsweise weist die gespeicherte Steuerungssoftware (Computerprogramm) Anweisungen auf, die, wenn der Prozessor sie ausführt, bewirken, dass der Prozessor 103 ein oder mehrere neuronale Netzwerke 107 implementiert.
  • Die im Speicher 104 gespeicherten Daten können beispielsweise Bilddaten beinhalten, die von einer oder mehreren Kameras 105 erfasst werden. Die eine oder die mehreren Kameras 105 können beispielsweise ein oder mehrere Graustufen- oder Farbfotos der Umgebung des Fahrzeugs 101 aufnehmen.
  • Die Fahrzeugsteuereinrichtung 102 kann basierend auf den Bilddaten ermitteln, ob und welche Objekte, z.B. feste Objekte wie Verkehrszeichen oder Straßenmarkierungen oder bewegliche Objekte wie Fußgänger, Tiere und andere Fahrzeuge in der Umgebung des Fahrzeugs 101 vorhanden sind.
  • Das Fahrzeug 101 kann dann von der Fahrzeugsteuereinrichtung 102 gemäß den Ergebnissen der Objektbestimmung gesteuert werden. So kann die Fahrzeugsteuereinrichtung 102 beispielsweise einen Aktuator 106 (z.B. eine Bremse) steuern, um die Geschwindigkeit des Fahrzeugs zu steuern, z.B. um das Fahrzeug zu bremsen.
  • Gemäß einer Ausführungsform erfolgt im Beispiel von 1 die Steuerung auf der Grundlage einer Bildklassifizierung oder semantischen Segmentierung, die von einem neuronalen Netzwerk durchgeführt wird.
  • 2 zeigt ein Beispiel für ein neuronales Netzwerk 200, das eingerichtet ist, Eingabedaten auf Ausgabedaten abzubilden, zum Beispiel kann das neuronale Netzwerk eingerichtet sein, Bilder in eine vordefinierte Anzahl von Klassen zu klassifizieren.
  • In diesem Beispiel beinhaltet das neuronale Netzwerk 200 eine Eingangsschicht 201, mehrere „versteckte“ Schichten (engl.: hidden layers) 202 und eine Ausgangsschicht 203.
  • Es ist zu beachten, dass das neuronale Netzwerk 200 ein vereinfachendes Beispiel für ein tatsächliches neuronales Netzwerk ist, welches viel mehr Verarbeitungsknoten und versteckte Schichten beinhalten kann.
  • Die Eingabedaten entsprechen der Eingabeschicht 201 und können im Allgemeinen als eine mehrdimensionale Anordnung von Werten angesehen werden, z.B. kann ein Eingabebild als eine zweidimensionale Anordnung von Werten betrachtet werden, die den Pixelwerten des Bildes entsprechen. Die Eingabe der Eingangsschicht 201 wird mit den Verarbeitungsknoten 204 verbunden.
  • Handelt es sich bei einer Schicht 202 um eine „vollständig verbundene“ Schicht, so multipliziert ein Verarbeitungsknoten 204 jeden Eingabewert der Eingabedaten der Schicht mit einem Gewicht und summiert die berechneten Werte. Zusätzlich kann ein Knoten 204 einen Bias zur Summe hinzufügen. Außerdem folgt auf den Verarbeitungsknoten 204 bei einer vollständig verbundenen Schicht eine nichtlineare Aktivierungsfunktion 205, z.B. eine ReLU-Einheit (f(x)= max(0,x)) oder eine Sigmoidfunktion (f(x)=1/(1+exp(-x))). Der resultierende Wert wird dann an die nächste Schicht ausgegeben.
  • Zumindest ein Teil der Schichten 202 kann aber auch nicht-vollständig verbundene Schichten aufweisen, z.B. Konvolutionsschichten im Fall eines neuronalen Konvolutionsnetzwerks.
  • Die Ausgabeschicht 203 empfängt Werte von der letzten Schicht 202 (der Folge von Schichten 202). Typischerweise verarbeitet die Ausgabeschicht 203 diese empfangenen Werte und gibt sie dann zur weiteren Verarbeitung aus. Zum Beispiel im Fall, dass das neuronalen Netzwerks zur Bildklassifizierung dient, wandelt die Ausgabeschicht 203 die empfangenen Werte in Konfidenzen um, wobei jede Konfidenz anzeigt, wie sicher ein Bild einer jeweiligen vordefinierten Klasse entspricht. Die Klasse mit der höchsten Wahrscheinlichkeit kann dann von der Ausgabeschicht 203 als vorhergesagte Klasse zur weiteren Verarbeitung ausgegeben werden. Zum Training des neuronalen Netzwerks 200 kann für Trainingsdaten mit bekannter Klassenzuordnung ermittelt werden, ob die von dem neuronalen Netzwerk 200 vorhergesagte Klasse mit der bekannten Klasse übereinstimmt bzw. die Wahrscheinlichkeit bewertet werden, die das neuronale Netzwerk für die bekannte Klasse ermittelt hat, typischerweise mittels einer Verlustfunktion (engl. loss function). Ähnlich kann beim Training des neuronalen Netzwerks 200 für eine Segmentierung oder Regression etc. vorgegangen werden.
  • Es ist zu beachten, dass die Klassifizierung eines Bildes als gleichwertig mit der Klassifizierung eines Objekts, das im Bild dargestellt ist, angesehen werden kann. Wenn ein Originalbild mehrere Objekte aufweist, wie beim autonomen Fahren, kann eine semantische Segmentierung (möglicherweise durch ein anderes neuronales Netzwerk) durchgeführt werden, so dass jedes Segment ein Objekt zeigt und die Segmente als Eingang für das Bild klassifizierende neuronale Netzwerk verwendet werden.
  • Neuronale Konvolutionsnetzwerke (engl.: convolutional neural network, CNN) sind eine besondere Art von neuronalen Netzwerken, die insbesondere gut geeignet sind, um Bilddaten zu analysieren und zu klassifizieren.
  • 3 zeigt ein Beispiel eines neuronalen Konvolutionsnetzwerks 300.
  • Es ist zu beachten, dass in der Darstellung von 3 nur die Eingabe- bzw. Ausgabedaten der verschiedenen Schichten des neuronalen Netzwerks 300 dargestellt sind und die Schichten nur durch gestrichelte Linien symbolisiert sind. Die Schichten können eine Form wie mit Bezug auf 2 beschrieben haben.
  • Die Eingabedaten entsprechen einer Eingabeschicht 301. Zum Beispiel sind die Eingabedaten RGB-Bilder, die als drei zweidimensionale Matrizen (die den Pixelwerten des Bildes entsprechen) betrachtet werden können. Die drei Matrizen können auch als ein einziges dreidimensionales Feld betrachtet werden, das auch als Tensor bezeichnet wird. Ein Tensor kann als ein n dimensionales Feld (engl.: Array) angesehen werden, bzw. kann als eine Verallgemeinerung einer Matrix verstanden werden.
  • Neuronale Konvolutionsnetzwerke verwenden oft drei- und vierdimensionale Tensoren, z.B. können mehrere RGB-Bilder als vierdimensionale Tensoren aufgefasst werden (Anzahl der Bilder * Anzahl der Kanäle (z.B. drei) * Höhe * Breite).
  • Die Eingabedaten werden von einer ersten Faltungsoperationsschicht 302 verarbeitet. In einer Faltungsoperationsschicht werden die Eingabedaten durch Konvolutionsfilter, auch Faltungsfilter genannt, modifiziert, die als eine (zwei- oder auch dreidimensionale) Anordnung von Werten betrachtet werden können.
  • Die Konvolutionsfilter nehmen eine Teilmenge der Eingabedaten, und wenden eine Konvolution (Faltung) auf sie an. Sie können so interpretiert werden, dass sie mögliche Merkmale in den Eingangsdaten repräsentieren, z.B. eine bestimmte Form.
  • Typischerweise wird ein Konvolutionsfilter „pixelweise“ über die gesamten Eingabedaten (der Schicht 202, zu dem der Konvolutionsfilter gehört), verschoben. Beispielsweise entsprechen bei RGB-Bildern als Eingabedaten die Konvolutionsfilter dreidimensionalen Tensoren (bzw. drei Filtermatrizen „übereinander“), und werden über alle „Pixel“ (Elemente) der Bilder verschoben. Es können aber auch andere Schrittgrößen (engl.: stride) für die Filter gewählt werden, z.B. eine Schrittgröße von 2, d.h. nur jeder zweite Wert wird betrachtet.
  • In der Faltungsoperationsschicht 302 folgt nach den Konvolutionsfiltern typischerweise eine nichtlineare Aktivierungsfunktion (nicht in 3 gezeigt), z.B. eine ReLU Einheit.
  • Die Daten werden dann an eine Pooling-Schicht 303 weitergegeben. In der Pooling-Schicht 303 wird ebenfalls ein Filter über die Eingabedaten verschoben, wobei dieser Filter in der Regel das Maximum oder den Durchschnitt aus mehreren Eingabewerte ausgibt. In anderen Worten führt die Pooling-Schicht mehrere Eingabewerte zusammen, d.h. aggregiert sie, weshalb sie auch als Aggregationsschicht bezeichnet wird. Man kann die Operation der Pooling-Schicht auch als Unterabtasten ansehen, weshalb sie auch als Subsampling-Schicht (oder Unterabtast-Schicht) bezeichnet werden kann.
  • In anderen Worten kann eine Pooling-Schicht als eine Form des nichtlinearen Down-Samplings betrachtet werden, bei dem die Menge an Daten reduziert wird, indem die Ausgaben mehrerer Knoten in der nächsten Schicht zu einem einzigen Knoten kombiniert werden, z.B. durch die Aufnahme des Maximalwerts der Ausgaben. Alternativ zum Pooling können die Faltungsschichten auch die jeweiligen Konvolutionsfilter auch nicht auf jeden Pixel anwenden sondern mit einer bestimmten Schrittweite Pixel überspringen (dies wird als Striding bezeichnet). Auch dadurch erfolgt ein Downsampling.
  • In der Pooling-Schicht 303 gibt es typischerweise keine Aktivierungsfunktion, deshalb kann das Pooling auch zusammen mit der vorhergehenden Faltungsoperationsschicht 302 als Teil einer Konvolutionsschicht angesehen werden (denn üblicherweise hat jede Schicht eines neuronalen Netzwerks eine Aktivierungsfunktion). Hierin wird also unter einer Konvolutionsschicht eine Faltungsoperationsschicht 302 mit Aktivierungsfunktion und (falls vorhanden) nachfolgender Pooling-Schicht 303 verstanden (oder eine Konvolutionsschicht mit Downsampling durch Striding). Die Ausgabe jeder Konvolutionsschicht ist eine Merkmalskarte (engl.: feature map).
  • In dem gezeigten Beispiel von 3 mit Pooling folgt nach der Pooling-Schicht 303 folgt eine zweite Faltungsoperationsschicht 304, auf die wiederum eine zweite Pooling-Schicht 305 folgt.
  • Es ist zu beachten, dass auf eine Faltungsoperationsschicht auch eine weitere Faltungsoperationsschicht folgen kann, und dass viel mehr Konvolutions- und/oder Pooling-Schichten Teil eines neuronalen Konvolutionsnetzwerks sein können.
  • Während die Eingabe der ersten Faltungsoperationsschicht 302 beispielsweise ein digitales Bild ist, ist die Eingabe einer nachfolgenden Faltungsoperationsschicht 304 eine Merkmalskarte, die von der vorhergehenden Konvolutionsschicht (d.h. ggf. der Pooling-Schicht 303) ausgegeben wird.
  • Nach der zweiten Konvolutionsschicht folgen eine oder mehrere vollständig verbundene Schichten (engl.: fully connected layers) 306. Davor wird der von der zweiten Konvolutionsschicht erhaltene Tensor zu einem (eindimensionalen) Vektor verflacht (engl.: flattening).
  • Eine Ausgabeschicht empfängt die Daten aus der letzten vollständig verbundenen Schicht 306 und gibt Ausgabedaten 307 aus.
  • Die Ausgabeschicht kann eine Verarbeitung enthalten, beispielsweise werden Werte in Wahrscheinlichkeiten bzw. Wahrscheinlichkeitsvektoren umgewandelt, z.B. durch die Anwendung der Softmax-Funktion oder der Sigmoid-Funktion auf sie, und dann die Klasse mit der höchste Wahrscheinlichkeit zur weiteren Verarbeitung ausgegeben.
  • Es ist zu beachten, dass ein neuronaler Konvolutionsnetzwerk nicht zwangsläufig eine (oder mehrere) vollständig verbundene Schicht besitzen muss (bzw. am Ende aufweisen muss). Es ist des Weiteren auch möglich, dass ein neuronaler Konvolutionsnetzwerk mehrere Schichten parallel verarbeitet.
  • Durch das Downsampling, das durch die Pooling-Schichten und/oder ein Striding bewirkt wird, haben die Eingangsdaten für tiefere Konvolutionsschichten (d.h. Konvolutions-Schichten weiter entfernt von der Eingabeschicht 301 in Richtung der Verarbeitung) geringere Auflösungen als die weniger tiefen Schichten. Anders ausgedrückt ermitteln die Konvolutionsschichten Merkmale für unterschiedliche Auflösungen.
  • Es kann nun der Fall auftreten, dass ein Bildelement mehrmals in einem Bild zu sehen ist (z.B. ähnliche Fahrzeuge), aber in unterschiedlichen Größen (z.B. weil eines der Fahrzeuge weiter entfernt ist als das andere). Das bedeutet, dass ein Bildelement (zumindest ähnlich) in unterschiedlichen Skalierungen in einem Bild auftreten kann. Es ist in so einem Fall wünschenswert, dass das neuronale Netzwerk für das Bildelement in allen seinen Skalierungen dieselben Merkmale erkennt, d.h. das Konvolutionsschichten für unterschiedliche Skalierungen einander entsprechende Merkmale erkennen. Allgemeiner gesprochen ist es wünschenswert, dass, wenn dasselbe Merkmal mit unterschiedlichen Skalierungen repräsentiert ist, für jede dieser Repräsentationen das Merkmal erkannt wird.
  • Um eine solche Korrespondenz von (erkannten) Merkmalen für unterschiedliche Skalierungen zu erreichen, wird gemäß verschiedenen Ausführungsformen ein Trainingsverfahren bereitgestellt, dass eine solche Korrespondenz (in gewissem Maße) erzwingt. Dabei ist der Grad der Feature-Ähnlichkeiten von Repräsentationen derselben Merkmale (d.h. von Bildelementen, die dieselben Merkmale aufweisen), d.h. der Grad der Merkmals-Korrespondenz steuerbar. Außerdem vereinfacht die Bewertung von Objekten verschiedener Skalierungen durch einen Klassifikator (z.B. eine letzte Konvolutionsschicht eines neuronalen Netzwerks) das Training und reduziert letztendlich die Komplexität der Lernaufgabe.
  • 4 veranschaulicht ein Training eines neuronalen Netzwerks für Merkmals-Korrespondenz gemäß einer Ausführungsform.
  • Es wird angenommen, dass ein Eingangsbild 401 der Größe N x N hintereinander durch Konvolutionsschichten eines neuronales Konvolutionsnetzwerks (jeweils inklusive Pooling-Schicht und/oder mit Striding) verarbeitet wird, wie oben mit Bezug auf 3 beschrieben.
  • Nach der ersten Konvolutionsschicht (Tiefe d=1) ist das Ergebnis eine erste Merkmalskarte 402, nach der zweiten Konvolutionsschicht (Tiefe d=2) ist das Ergebnis eine zweite Merkmalskarte 403 und nach der dritten Konvolutionsschicht (Tiefe d=3) ist das Ergebnis eine dritte Merkmalskarte 404. Jede Merkmalskarte 402, 403, 404 hat eine zugeordnete Skalierung s, d.h. hat eine Größe N/s x N/s. Ist nun beispielsweise der Skalierungsfaktor von Schicht zu Schicht 2 (Standard-Pooling), so ist die Größe (und damit Auflösung) der von der Konvolutionsschicht mit Tiefe d ausgegebenen Merkmalskarte N/2d × N/2d, d.h. s = 2d.
  • Wird dem neuronalen Netzwerk eine auf 2N × 2N skalierte Version 405 des Eingangsbilds 401 zugeführt, dann hat die von der Konvolutionsschicht mit Tiefe d ausgegebene Merkmalskarte jedoch die Größe N/2d-1 × N/2d-1, d.h. dieselbe Skalierung wird erst durch eine Konvolutionsschicht später erreicht. Konkret hat die für das skalierte Eingangsbild (d.h. die skalierte Version des Eingangsbilds) durch die erste Konvolutionsschicht (Tiefe d=1) erzeugte (vierte) Merkmalskarte 406 die Größe N × N, die für das skalierte Eingangsbild durch die zweite Konvolutionsschicht (Tiefe d=2) erzeugte (fünfte) Merkmalskarte 407 die Größe N/2*N/2, die für das skalierte Eingangsbild durch die dritte Konvolutionsschicht (Tiefe d=3) erzeugte (sechste) Merkmalskarte 408 die Größe N/4 x N/4 und die die für das skalierte Eingangsbild durch die vierte Konvolutionsschicht (Tiefe d=4) erzeugte (siebte) Merkmalskarte 409 die Größe N/8 x N/8.
  • Es gibt also eine Entsprechung hinsichtlich der Größe zwischen der ersten Merkmalskarte 402 und der fünften Merkmalskarte 407, zwischen der zweiten Merkmalskarte 403 und der sechsten Merkmalskarte 408 und zwischen der dritten Merkmalskarte 404 und der siebten Merkmalskarte 409.
  • Da diese Merkmalskarten ausdemselben Bild (nur in unterschiedlichen Skalierungen) hervorgehen, sollten sie dieseleben Merkmale enthalten (um z.B. ein enthaltenes Objekt in beiden Skalierungen zu erkennen).
  • Dies wird gemäß verschiedenen Ausführungsformen dadurch erreicht, dass eine explizite Korrespondenz zwischen der Merkmalskarte, die für das Eingabebild 401 von der Konvolutionsschicht mit Tiefe d ausgegeben wird, und der Merkmalskarte, die für die skalierte Version des Eingabebilds 405 von der Konvolutionsschicht mit Tiefe d+1 ausgegeben wird, gefordert wird, da diese Konvolutionsschichten dieselben Merkmale (z.B. Muster) erkennen sollten. Dazu wird das neuronale Netzwerk mittels einer Verlustfunktion trainiert, die einen (Ähnlichkeits-basierten) Verlustterm enthält, der einen Unterschied zwischen diesen beiden Merkmalskarten bezieht. Dieser Verlustterm wird als zusätzlicher Verlustterm in die Verlustfunktion (zusätzlich zu dem normalen Verlust, mit dem das neuronale Netzwerk gemäß seiner Funktion trainiert werden soll, d.h. einen Klassifizierungs- oder Segmentierungsverlust) eingefügt, z.B. für mehrere Paare von Schichten (z.B. alle möglichen Paare), also z.B.
    • • einen Verlustterm für den Unterschied zwischen der ersten Merkmalskarte 402 und der fünften Merkmalskarte 407
    • • einen Verlustterm für den Unterschied zwischen der zweiten Merkmalskarte 403 und der sechsten Merkmalskarte 408 und
    • • einen Verlustterm für den Unterschied zwischen der dritten Merkmalskarte 404 und der siebten Merkmalskarte 409
    (für Eingabebilder 401 und deren skalierte Versionen 405 eines Trainings-Batches, summiert oder gemittelt über die Eingabebilder).
  • Der Verlustterm ist z.B. der Wert einer Distanzmetrik wie ein L2-Verlust zwischen den beiden Merkmalskarten, sodass beim Training des neuronalen Netzwerks zum Reduzieren (idealerweise Minimieren) der Verlustfunktion bewirkt wird, dass die sich (hinsichtlich ihrer Größe) einander entsprechenden Merkmalskarten für jedes Eingabebild 401 möglichst gut übereinstimmen (im Mittel über die Eingabebilder).
  • Der Verlustterm wird für Paare von Eingabebildern 401, 405, wobei eines eine skalierte Version des anderen ist, verwendet. Dies muss nicht für alle Eingabebilder des Batches gemacht werden. Im obigen Beispiel ist die skalierte Version 405 größer als das Eingabebild 401, d.h. hat allgemein die Größe N * F x N * F wobei F (oben F = 2) der Skalierungsfaktor zwischen Schichten des Konvolutionsschichten (oder eine ganzzahlige Potenz davon, da Korrespondenzen auch analog zwischen Konvolutionsschichten erzwungen werden können, die weiter auseinander liegen; das Skalierungsverhältnis zwischen Eingabebild 401 und skalierter Version 405 kann beliebig gewählt werden, solange es sich in eine Korrespondenz von Merkmalskarten, die von Konvolutionsschichten unterschiedlicher Tiefe erzeugt werden, übertragen lässt). Analog kann auch der Kehrwert von F verwendet werden, also das Eingangsbild 401 zu dem skalierten Eingangsbild 405 runterskaliert werden. Dann drehen sich die obigen Verhältnisse entsprechend um. Es können auch für ein Eingangsbild mehrere skalierte Versionen erzeugt werden und je nach den Skalierungsverhältnissen entsprechende Verlustterme in die Verlustfunktion eingefügt werden. Die Verlustfunktion kann auch so angewendet werden, dass nur die Bereiche berücksichtigt werden, die ein Objekt enthalten, also der Verlustterm nicht zwischen den ganzen Merkmalskarten, sondern auf einem Ausschnitt berechnet wird, wobei der Ausschnitt einem mit s skalierten Ausmaß des Objektes entspricht.
  • Wie stark das neuronale Netzwerk für eine Merkmalskorrespondenz zwischen Merkmalskarten, die von Konvolutionsschichten unterschiedlicher Tiefe erzeugt werden, trainiert werden soll, kann durch Wahl der Gewichtung des zusätzlichen Verlustterms (oder der zusätzlichen Verlustterme für mehrere Paare von Merkmalskarten) in der Verlustfunktion (also im Gesamtverlust) eingestellt werden und dadurch, für wie viele Eingangsbilder der Trainingsdaten skalierte Versionen erzeugt werden und der zusätzliche Verlustterm (oder die zusätzlichen Verlustterme) entsprechend verwendet wird.
  • Für ein Paar aus Eingangsbild 401 und skalierter Version davon 405 können zum Ermitteln der jeweiligen Merkmalskarten 402 bis 404 und 406 bis 409 das Eingangsbild 401 und die skalierte Version 405 nacheinander dem neuronalen Netzwerk zugeführt werden.
  • Alternativ kann es im Sinne eines siamesischen Netzwerks zwei (oder mehr) Instanzen des neuronalen Netzwerks geben, wobei einer Instanz das Eingangsbild 401 und einer anderen Instanz eine skalierte Version 405 zugeführt wird. Das neuronale Netzwerk kann dann parallel mittels Eingangsbildern in unterschiedlichen Skalierungen trainiert werden (d.h. parallel jeweilige Verluste für die Funktion des neuronalen Netzwerks wie ein Klassifizierungsverlust ermittelt werden), wobei der zusätzliche Verlustterm das Training der Schichten verknüpft. Dazu können zwei Skalierungen eines Einsgangsbilds von zwei Instanzen des neuronalen Netzwerks parallel verarbeitet werden, sodass die Merkmalskarten aus der Verarbeitung einer Skalierung nicht bis zur Verarbeitung der anderen Skalierung gespeichert werden brauchen. Dies kann auch für mehr als zwei Instanzen gemacht werden
  • Zusammengefasst wird gemäß verschiedenen Ausführungsformen ein Verfahren bereitgestellt, wie in 5 dargestellt.
  • 5 zeigt ein Ablaufdiagramm 500, das ein Verfahren zum Trainieren eines neuronalen Konvolutionsnetzwerks darstellt.
  • In 501 wird für jedes einer Vielzahl von Trainings-Eingabebildern
    • • in 502 das Trainings-Eingabebild durch das Konvolutionsnetzwerk verarbeitet,
    • • in 503 eine skalierte Version des Trainings-Eingabebilds durch das Konvolutionsnetzwerk verarbeitet
    • • in 504 (mindestens) ein Paar von Konvolutionsschichten des Konvolutionsnetzwerk bestimmt, sodass eine Konvolutionsschicht des Paares für das Trainings-Eingabebild eine erste Merkmalskarte erzeugt, die die gleiche Größe hat wie eine zweite Merkmalskarte, die die andere Konvolutionsschicht des Paares für die skalierte Version des Trainings-Eingabebilds erzeugt, und
    • • in 505 ein Verlusts zwischen der ersten Merkmalskarte und der zweiten Merkmalskarte berechnet.
  • In 506 wird das neuronale Konvolutionsnetzwerks zum Verringern eines Gesamtverlusts, der die berechneten Verluste (d.h. den für jedes Paar berechneten Verlust) beinhaltet, trainiert.
  • Das Training zum Verringern des Gesamtverlusts beinhaltet typischerweise das Anpassen der Gewichte des neuronalen Konvolutionsnetzwerks (insbesondere von Filtergewichten), in Richtung abnehmenden Gesamtverlusts.
  • Es sollte beachtet werden, das als Konvolutionsschicht des Konvolutionsnetzwerks hier eine Schicht verstanden wird, die eine Faltungsoperationen auf ihren Eingangsdaten, ggf. gefolgt von einer Aktivierungsfunktion und anschließend ein Pooling durchführt oder ein Striding enthält, sodass die Dimension der Ausgabedaten der Schicht geringer ist als ihre Eingabedaten (z.B. die Anzahl der Komponenten in einer Längenrichtung und/oder in einer Breitenrichtung bei Darstellung der Eingabedaten und Ausgabedaten als Matrix oder Tensor bei den Ausgabedaten geringer ist als bei den Eingabedaten).
  • Es sollte außerdem beachtet werden, dass die Schritte nicht notwendig in der dargestellten Reihenfolge ausgeführt werden brauchen. Beispielsweise können das Trainings-Eingabebild und dessen skalierte Funktion auch gleichzeitig verarbeitet werden (bei Verwendung von zwei Instanzen des neuronalen Netzwerks).
  • Das Verfahren von 5 kann durch einen oder mehrere Computer mit einer oder mehreren Datenverarbeitungseinheiten durchgeführt werden. Der Begriff „Datenverarbeitungseinheit“ kann als irgendein Typ von Entität verstanden werden, die die Verarbeitung von Daten oder Signalen ermöglicht. Die Daten oder Signale können beispielsweise gemäß mindestens einer (d.h. einer oder mehr als einer) speziellen Funktion behandelt werden, die durch die Datenverarbeitungseinheit durchgeführt wird. Eine Datenverarbeitungseinheit kann eine analoge Schaltung, eine digitale Schaltung, eine Logikschaltung, einen Mikroprozessor, einen Mikrocontroller, eine Zentraleinheit (CPU), eine Graphikverarbeitungseinheit (GPU), einen Digitalsignalprozessor (DSP), eine integrierte Schaltung einer programmierbaren Gatteranordnung (FPGA) oder irgendeine Kombination davon umfassen oder aus dieser ausgebildet sein. Irgendeine andere Weise zum Implementieren der jeweiligen Funktionen, die hierin genauer beschrieben werden, kann auch als Datenverarbeitungseinheit oder Logikschaltungsanordnung verstanden werden. Es können ein oder mehrere der im Einzelnen hier beschriebenen Verfahrensschritte durch eine Datenverarbeitungseinheit durch eine oder mehrere spezielle Funktionen ausgeführt (z. B. implementiert) werden, die durch die Datenverarbeitungseinheit durchgeführt werden.
  • Die Eingabedatenbilder des neuronalen Netzwerks können Sensorsignale von verschiedenen Sensoren (in Bildform d.h. zweidimensionaler Form) wie z. B. Video, Radar, LiDAR, Ultraschall, Bewegung, Wärmeabbildung enthalten. Die Verarbeitung durch das neuronale Netzwerk kann die Klassifikation der Sensordaten oder das Durchführen einer semantischen Segmentierung an den Sensordaten umfassen, beispielsweise um die Anwesenheit von Objekten (in der Umgebung, in der die Sensordaten erhalten wurden) zu detektieren.
  • Obwohl spezielle Ausführungsformen hier dargestellt und beschrieben wurden, wird vom Fachmann auf dem Gebiet erkannt, dass die speziellen Ausführungsformen, die gezeigt und beschrieben sind, gegen eine Vielfalt von alternativen und/oder äquivalenten Implementierungen ausgetauscht werden können, ohne vom Schutzbereich der vorliegenden Erfindung abzuweichen. Diese Anmeldung soll irgendwelche Anpassungen oder Variationen der speziellen Ausführungsformen abdecken, die hier erörtert sind. Daher ist beabsichtigt, dass diese Erfindung nur durch die Ansprüche und die Äquivalente davon begrenzt ist.

Claims (8)

  1. Verfahren zum Trainieren eines neuronalen Konvolutionsnetzwerks, aufweisend: Für jedes einer Vielzahl von Trainings-Eingabebildern Verarbeiten des Trainings-Eingabebilds durch das Konvolutionsnetzwerk; Verarbeiten einer skalierten Version des Trainings-Eingabebilds durch das Konvolutionsnetzwerk; Bestimmen eines Paares von Konvolutionsschichten des Konvolutionsnetzwerk, sodass eine Konvolutionsschicht des Paares für das Trainings-Eingabebild eine erste Merkmalskarte erzeugt, die die gleiche Größe hat wie eine zweite Merkmalskarte, die die andere Konvolutionsschicht des Paares für die skalierte Version des Trainings-Eingabebilds erzeugt; und Berechnen eines Verlusts zwischen der ersten Merkmalskarte und der zweiten Merkmalskarte; und Trainieren des neuronalen Konvolutionsnetzwerks zum Verringern eines Gesamtverlusts, der die berechneten Verluste beinhaltet.
  2. Verfahren nach Anspruch 1, wobei die skalierte Version des Trainings-Eingabebilds durch Skalieren des Trainings-Eingabebilds um den Downsampling-Faktor zwischen aufeinanderfolgenden Konvolutionsschichten des Konvolutionsnetzwerks, eine Potenz des Downsampling-Faktors, den Kehrwert des Downsampling-Faktors oder einer Potenz des Kehrwerts des Downsampling-Faktors erzeugt wird.
  3. Verfahren nach Anspruch 1 oder 2, wobei der Gesamtverlust ferner einen Trainingsverlust zum Training des Konvolutionsnetzwerks für eine vorgegebene Aufgabe aufweist und wobei das Verfahren ferner das Gewichten der berechneten Verluste im Gesamtverlust gegenüber dem Trainingsverlust aufweist.
  4. Verfahren nach einem der Ansprüche 1 bis 3, aufweisend Bestimmen, für jedes der Vielzahl von Trainings-Eingabebildern, mehrerer Paare von Konvolutionsschichten des Konvolutionsnetzwerks, sodass, für jedes Paar, eine Konvolutionsschicht des Paares für das Trainings-Eingabebild eine erste Merkmalskarte erzeugt, die die gleiche Größe hat wie eine zweite Merkmalskarte, die die andere Konvolutionsschicht des Paares für eine jeweilige skaliertes Version des Trainings-Eingabebild erzeugt, wobei ein Verlust zwischen der ersten Merkmalskarte und der zweiten Merkmalskarte berechnet wird, und der Gesamtverlust die für die Paare berechneten Verluste beinhaltet.
  5. Verfahren nach einem der Ansprüche 1 bis 4, wobei das neuronale Netzwerk mittels eines Trainingsdatensatzes von Trainings-Eingabebildern trainiert wird, die Vielzahl von Trainings-Eingabebilder aus dem Trainingsdatensatz ausgewählt wird und für die Trainings-Eingabebilder skalierte Versionen der Trainings-Eingabebilder erzeugt, sodass für jedes Trainings-Eingabebild der Vielzahl von Trainings-Eingabebildern und jeder skalierten Version des Trainings-Eingabebilds das Konvolutionsnetzwerk ein Paar von Konvolutionsschichten aufweist, sodass eine Konvolutionsschicht des Paares für das Trainings-Eingabebild eine Merkmalskarte erzeugt, die die gleiche Größe hat wie eine Merkmalskarte, die die andere Konvolutionsschicht des Paares für die skalierte Version des Trainings-Eingabebilds erzeugt.
  6. Trainingseinrichtung für ein neuronales Konvolutionsnetzwerk, die eingerichtet ist, ein Verfahren nach einem der Ansprüche 1 bis 5 durchzuführen.
  7. Computerprogramm mit Befehlen, die, wenn sie durch einen Prozessor ausgeführt werden, bewirken, dass der Prozessor ein Verfahren nach einem der Ansprüche 1 bis 5 durchführt.
  8. Computerlesbares Medium, das Befehle speichert, die, wenn sie durch einen Prozessor ausgeführt werden, bewirken, dass der Prozessor ein Verfahren nach einem der Ansprüche 1 bis 5 durchführt.
DE102022204722.2A 2022-05-13 2022-05-13 Verfahren zum Trainieren eines neuronalen Konvolutionsnetzwerks Pending DE102022204722A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102022204722.2A DE102022204722A1 (de) 2022-05-13 2022-05-13 Verfahren zum Trainieren eines neuronalen Konvolutionsnetzwerks
US18/298,613 US20230368334A1 (en) 2022-05-13 2023-04-11 Method for training a convolutional neural network
CN202310539488.4A CN117057398A (zh) 2022-05-13 2023-05-12 用于训练卷积神经网络的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102022204722.2A DE102022204722A1 (de) 2022-05-13 2022-05-13 Verfahren zum Trainieren eines neuronalen Konvolutionsnetzwerks

Publications (1)

Publication Number Publication Date
DE102022204722A1 true DE102022204722A1 (de) 2023-11-16

Family

ID=88510156

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022204722.2A Pending DE102022204722A1 (de) 2022-05-13 2022-05-13 Verfahren zum Trainieren eines neuronalen Konvolutionsnetzwerks

Country Status (3)

Country Link
US (1) US20230368334A1 (de)
CN (1) CN117057398A (de)
DE (1) DE102022204722A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11964654B2 (en) * 2020-10-30 2024-04-23 GM Global Technology Operations LLC Spatially invariant 3D convolutional network over spherical coordinate input

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
LI, Xingjian [et al.]: Delta: Deep learning transfer using feature map with attention for convolutional networks. arXiv preprint arXiv:1901.09229v4, 2020
TAKIMOGLU, Aysegul: What is Data Augmentation? Techniques & Examples in 2022. URL: https://research.aimultiple.com/data-augmentation/, Archiviert in archive.org am 12.02.2022 [abgerufen am 04.01.2023]

Also Published As

Publication number Publication date
CN117057398A (zh) 2023-11-14
US20230368334A1 (en) 2023-11-16

Similar Documents

Publication Publication Date Title
DE102017220307B4 (de) Vorrichtung und Verfahren zum Erkennen von Verkehrszeichen
DE102017127592A1 (de) Verfahren zum Klassifizieren von Bildszenen in einem Fahrunterstützungssystem
WO2010040668A1 (de) Verfahren und einrichtung zur analyse von umgebungsobjekten und/oder umgebungsszenen, wie zur objekt- und szenenklassensegmentierung
DE102019214402A1 (de) Verfahren und vorrichtung zum verarbeiten von daten mittels eines neuronalen konvolutionsnetzwerks
WO2019001649A1 (de) Wissenstransfer zwischen verschiedenen deep-learning architekturen
WO2018158020A1 (de) Verfahren und vorrichtung zur ermittlung einer trajektorie in off-road-szenarien
DE102018217090A1 (de) Verfahren, künstliches neuronales Netz, Vorrichtung, Computerprogramm und maschinenlesbares Speichermedium zur semantischen Segmentierung von Bilddaten
DE102019115244A1 (de) Aktivieren des null-bypasses und des weight-pruning in neuronalen netzwerken für fahrzeugwahrnehmungssysteme
DE102018217091A1 (de) Verfahren, künstliches neuronales Netz, Vorrichtung, Computerprogramm und maschinenlesbares Speichermedium zur semantischen Segmentierung von Bilddaten
DE102020202160A1 (de) Verfahren zum Bestimmen einer Symmetrieeigenschaft in Bilddaten, Verfahren zum Steuern einer Funktion und Vorrichtung
DE102022204722A1 (de) Verfahren zum Trainieren eines neuronalen Konvolutionsnetzwerks
DE102018119467B4 (de) Verfahren zum durchführen eines autonomen betriebs eines fahrzeugs durch tiefes räumlich-zeitliches lernen
DE102021205230A1 (de) Gefahrendetektions-ensemblearchitektursystem und-verfahren
DE102021200348A1 (de) Computerimplementiertes verfahren zum trainieren eines computervisionsmodells
DE102021200643B3 (de) Verfahren zur Umfelderkennung für teilautonome oder autonome Fahrfunktionen eines Kraftfahrzeugs mittels eines neuronalen Netzes
DE102019215912A1 (de) Verfahren und vorrichtung zum computer-implementierten betreiben eines neuronalen netzwerks
DE102020105070A1 (de) Verfahren zum Erkennen eines befahrbaren Bereichs in einer Umgebung eines Fahrzeugs mithilfe eines binären künstlichen neuronalen Netzes, Recheneinrichtung sowie Fahrerassistenzsystem
DE102021200568A1 (de) Computerimplementiertes verfahren zur analyse der relevanz visueller parameter zum trainieren eines computer-vision -modells
DE102020208765A1 (de) Bildklassifikator mit variablen rezeptiven Feldern in Faltungsschichten
DE102020211596A1 (de) Verfahren zum Generieren eines trainierten neuronalen Faltungs-Netzwerks mit invarianter Integrationsschicht zum Klassifizieren von Objekten
DE102018126826A1 (de) Verfahren zum Bestimmen eines Konfidenzwerts für eine Erfassungsqualität einer Fahrbahnmarkierungsgrenze, Fahrerassistenzsystem sowie Kraftfahrzeug
DE102016200854B4 (de) Verfahren und Recheneinheit zur Dimensionierung eines Klassifikators
DE102017127170A1 (de) Verfahren zur Fahrzeugerfassung für ein Kraftfahrzeug mit einem Fahrunterstützungssystem
DE102022121839A1 (de) Texterkennung basierend auf einem verzeichneten Kamerabild
DE102006012477A1 (de) Bewertungsvorrichtung, Verfahren und Computerprogramm

Legal Events

Date Code Title Description
R163 Identified publications notified