DE102019203024A1 - Paddingverfahren für ein Convolutional Neural Network - Google Patents

Paddingverfahren für ein Convolutional Neural Network Download PDF

Info

Publication number
DE102019203024A1
DE102019203024A1 DE102019203024.6A DE102019203024A DE102019203024A1 DE 102019203024 A1 DE102019203024 A1 DE 102019203024A1 DE 102019203024 A DE102019203024 A DE 102019203024A DE 102019203024 A1 DE102019203024 A1 DE 102019203024A1
Authority
DE
Germany
Prior art keywords
data
padding
real
data array
array
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
DE102019203024.6A
Other languages
English (en)
Inventor
Geza Velkey
Kornel Istvan
Peter Korosi-Szabo
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 DE102019203024.6A priority Critical patent/DE102019203024A1/de
Priority to US16/808,672 priority patent/US11531890B2/en
Priority to CN202010149865.XA priority patent/CN111667397A/zh
Publication of DE102019203024A1 publication Critical patent/DE102019203024A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/10Terrestrial scenes
    • 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/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • 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
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • 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/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • 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
    • 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

Landscapes

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

Abstract

Die Erfindung betrifft ein verbessertes Paddingverfahren für ein Convolutional Neural Network, insbesondere für konzentrisch aufgebaute Daten.Paddingverfahren für ein Convolutional Neural Network, umfassend die Schritte:Empfangen von konzentrisch aufgebauten Daten eines Objekts, wobei die konzentrisch aufgebauten Daten mit einem Bild korrelieren, das konzentrisch zu dem Objekt aufgenommen wurde.Entfalten der konzentrisch aufgebauten Daten zu einem Datenarray, umfassend real-kohärente Daten an sich gegenüberliegenden Seiten des Datenarrays;Ausführen einer Faltungsoperation unter Benutzung von Ringpadding, wobei bei dem Ringpadding die real-kohärenten Daten einer Seite des Datenarrays zum Padding der real-kohärenten Daten einer dieser gegenüberliegenden Seite des Datenarrays verwendet werden und/oder vice versa.

Description

  • Die vorliegende Erfindung betrifft ein Paddingverfahren für ein Convolutional Neural Network, eine Vorrichtung, ein Computerprogramm und ein maschinenlesbares Speichermedium.
  • Stand der Technik
  • Convolutional Neural Networks, die auch faltenden neuronale Netzwerke genannt werden, werden als eines der effizientesten Werkzeuge für Bildbearbeitung oder Videobearbeitung betrachtet.
  • Bei der Steuerung wenigstens teilautonomer Roboter, insbesondere zumindest teilweise automatisiert fahrender Fahrzeuge, sind Bilddaten und andere physikalische Beobachtungen aus dem Roboterumfeld eine wichtige Informationsquelle. Um aus diesen sehr hochdimensionalen Daten zu klassifizieren, welche Objekte im Roboterumfeld vorhanden sind, kommen künstliche neuronale Netzwerke, wie beispielsweise Convolutional Neural Networks zum Einsatz.
  • Moderne Convolutional Neural Networks weisen verschiedene Schichten, sogenannte Convolutional Layer, auf. Über eine diskrete Faltung mit einem Filterkernel, der wesentlich einer Faltungsmatrix entspricht, werden aus einem Eingangsdatenarray, beispielsweise Bilddaten, einer Convolutional Layer ein Ausgangsdatenarray generiert. Da der Filterkernel selbst üblicherweise mehrere Dimensionen aufweist, weist das Ausgangsdatenarray eine geringere Dimension auf als das Eingangsdatenarray. Bei der Anwendung mehrerer Convolutional Layer auf ein Eingangsdatenarray verringert sich somit stetig dessen Dimension.
  • Deshalb weisen solche Convolutional Neural Networks üblicherweise einen sogenannten Padding-Mechanismus auf, um sicherzugehen, dass das Eingangsdatenarray und das Ausgangsdatenarray des Convolutional Neural Networks numerisch kompatibel, also insbesondere gleich dimensioniert, sind.
  • Bekannt ist hierfür vor allem das sogenannte Null-Padding, bei dem das Eingangsdatenarray an dessen Rändern um genau die Dimension von Daten erweitert wird, die es bei der Anwendung des Filterkernels verringert wird. Die dafür verwendeten Daten sind hierbei einfache Nullen.
  • Bildet das Eingangsdatenarray allerdings eine ringförmige Umgebungsinformation ab, wie es beispielsweise bei wenigstens teilautonomen Robotern der Fall ist, so bieten die bekannten Paddingverfahren keine Möglichkeiten, besonders auf eine solche Art von Eingangsdaten einzugehen.
  • Es besteht daher der Wunsch, ein verbessertes Paddingverfahren für ein Convolutional Neural Network, insbesondere für konzentrisch aufgebaute Daten, bereitzustellen.
  • Offenbarung der Erfindung
  • Gemäß einem Aspekt umfasst ein Paddingverfahren für ein Convolutional Neural Network die Schritte:
    • Empfangen von konzentrisch aufgebauten Daten eines Objekts, wobei die konzentrisch aufgebauten Daten mit einem Bild korrelieren, das konzentrisch zu dem Objekt aufgenommen wurde.
    • Entfalten der konzentrisch aufgebauten Daten zu einem Datenarray, umfassend real-kohärente Daten an sich gegenüberliegenden Seiten des Datenarrays;
    • Ausführen einer Faltungsoperation unter Benutzung von Ringpadding, wobei bei dem Ringpadding die real-kohärenten Daten einer Seite des Datenarrays zum Padding der real-kohärenten Daten einer dieser gegenüberliegenden Seite des Datenarrays verwendet werden und/oder vice versa.
  • Der Begriff „konzentrisch aufgebaute Daten“ umfasst Daten, die konzentrisch um ein Objekt erfasst werden. Vorzugsweise werden solche Daten auch Ringdaten oder ringförmige Daten genannt.
  • Der Begriff „Convolutional Neural Network“ wird vorzugsweise auch durch den Begriff „faltendes neuronales Netzwerk“ beschrieben.
  • Der Begriff „real-kohärente Daten“ umfasst Daten, insbesondere Umgebungsdaten, die in der Realität nebeneinander angeordnet sind.
  • Der Begriff „Convolutional Layer“ wird auch durch den Begriff „faltende Schicht“ beschrieben. Das Convolutional Neural Network weist verschiedene Convolutional Layer auf. Jede Convolutional Layer umfasst ein Datenarray auf das eine Faltungsoperation mit Hilfe eines Filterkernels angewendet wird. Die Ausgangsdaten der Faltungsoperation bestimmen ein weiteres Datenarray, vorzugsweise einer weiteren Convolutional Layer. So kann das ursprüngliche Datenarray über mehrere aufeinander folgende Convolutional Layer verarbeitet werden. Vorzugsweise wird das unverarbeitete Datenarray einer Convolutional Layer als Eingangsdatenarray bezeichnet und das durch die Faltungsoperation generierte Datenarray als Ausgangsdatenarray bezeichnet. Das Ausgangsdatenarray einer Convolutional Layer entspricht vorzugsweise dem Eingangsdatenarray einer weiteren Convolutional Layer.
  • Konzentrisch aufgebaute Daten zeichnen sich vor allem dadurch aus, dass sie in einer Richtung durchgängig miteinander verbunden sind. Wird beispielsweise, wie beim automatisierten Fahren, die gesamte Umgebung eines Objektes erfasst, entstehen konzentrisch aufgebaute Daten. Diese kann man sich beispielsweise als Hohlzylinder vorstellen. In Umfangsrichtung des Hohlzylinders sind somit sämtliche Daten von weiteren Daten umgeben.
  • Korrelieren die Daten beispielsweise mit einem Bild, das konzentrisch rund um das Objekt aufgenommen wurde, so kann man sich die daraus entstehenden Daten in Form eines Hohlzylinders vorstellen. Im Falle von solch hohlzylindrischen Daten, wird der Hohlzylinder beim Entfalten an einer Längsseite geöffnet und „ausgerollt“. Das dadurch entstandene Datenarray weist somit an zwei sich gegenüberliegenden Seiten des Datenarrays real-kohärente Daten auf. Diese real-kohärenten Daten bilden zwar Daten ab, die in der Realität nebeneinanderliegen, im Datenarray liegen sie jedoch an sich gegenüberliegenden Seiten.
  • Selbstverständlich sind über dieses Beispiel hinausgehende konzentrisch aufgebaute Daten vorstellbar.
  • Auf diese Weise wird Rauschen, das durch konventionelle Paddingverfahren zu den konzentrisch aufgebauten Daten hinzugefügt wird, eliminiert. Weiter können real-kohärente Daten somit zueinander geführt werden.
  • Der Filterkernel wird auf echte Daten und auf Daten, die durch das Paddingverfahren hinzugefügt werden, angewendet. Auf diese Weise verringert sich zwar in keinem Convolutional Layer die Dimension des Datenarrays, jedoch wird Rauschen in den Informationsfluss der Daten eingebracht. Im Gegensatz zu üblichen Paddingverfahren, benötigt das Convolutional Neural Network deutlich weniger Convolutional Layer, um das Rauschen wieder zu eliminieren. Auf diese Weise können weniger tiefe Architekturen oder Modelle des Convolutional Neural Networks eingesetzt werden.
  • Außerdem bringt ein automatischer Anti-Rauschen Prozess, der von dem Convolutional Neural Network gelernt werden muss, um das Rauschen zu eliminieren eine unnötige Komplexität mit sich und vergeudet somit Netzwerkkapazitäten des Convolutional Neural Networks. Durch das Ringpadding kann dieses Problem eliminiert werden, wodurch kleinere, schnellere und weniger komplexe Modelle des Convolutional Neural Networks möglich sind.
  • Gemäß einer bevorzugten Ausgestaltung weist das Datenarray real-nicht-kohärente Daten an sich gegenüberliegenden Seiten des Datenarrays auf, wobei das Verfahren ferner umfasst:
    • Padding der real-nicht-kohärenten Daten des Datenarrays durch konventionelle Paddingverfahren, vorzugsweise konstantem Padding, Null Padding oder Reflection Padding.
  • Vorzugsweise ist ein beschriebenes Ringpadding bei real-nicht-kohärenten Daten nicht notwendig.
  • Gemäß einer bevorzugten Ausgestaltung weist das Datenarray ein linkes Ende und ein rechtes Ende auf, welche jeweils die real-kohärenten Daten aufweisen, wobei das Verfahren ferner umfasst:
    • Padding der real-kohärenten Daten des linken Endes des Datenarrays mit den real-kohärenten Daten des rechten Endes des Datenarrays und/oder vice versa.
  • Gemäß einer bevorzugten Ausgestaltung umfasst das Datenarray ein oberes Ende und ein unteres Ende, welche jeweils die real-nicht-kohärenten Daten aufweisen, wobei das Verfahren ferner umfasst:
    • Padding der real-nicht-kohärenten Daten des oberen Endes und des unteren Endes des Datenarrays durch konventionelle Paddingverfahren, vorzugsweise konstantem Padding, Null Padding oder Reflection Padding.
  • Gemäß einer bevorzugten Ausgestaltung weist das Datenarray eine beliebige Anzahl an Dimensionen auf.
  • Üblicherweise weist das Datenarray, das mit einem Bild korreliert eine oder zwei Dimensionen auf. Allerdings sind auch weitere Dimensionen denkbar.
  • Gemäß einer bevorzugten Ausgestaltung hängt die Dimension des Ringpaddings von der Dimension eines für die Faltungsoperation verwendeten Filterkernels ab.
  • Je größer der Filterkernel dimensioniert wird, desto größer muss auch das Ringpadding dimensioniert werden. Die Anzahl der durch das Ringpadding hinzugefügten real-kohärenten Daten an der Seite an der Ringpadding durchgeführt wird ist vorzugsweise abhängig von der Dimension des verwendeten Filterkernels und damit von der Verringerung des Datenarrays durch die Faltungsoperation.
  • Gemäß einer bevorzugten Ausgestaltung umfasst das Paddingverfahren ferner:
  • Lernen des Verhältnisses zwischen real-kohärenten Daten von sich gegenüberliegenden Seiten des Datenarrays innerhalb einer Convolutional Layer des Convolutional Neural Networks.
  • Wenn konzentrisch aufgebaute Daten zu nicht-ringförmigen Daten entfaltet werden, werden zwei Enden dieser Daten weit voneinander entfernt angeordnet, obwohl sie in Realität nahe nebeneinander angeordnet sind. In üblichen Paddingverfahren muss das Convolutional Neural Network das Verhältnis zwischen real-kohärenten Daten von sich gegenüberliegenden Seiten des Datenarrays lernen. Hierfür wird eine tiefe Architektur des Convolutional Neural Networks benötigt, um die Informationen hierfür zu haben. Durch das Ringpadding kann das Verhältnis zwischen real-kohärenten Daten von sich gegenüberliegenden Seiten des Datenarrays innerhalb einer Convolutional Layer des Convolutional Neural Networks erlernt werden.
  • Gemäß einem weiteren Aspekt ist eine Vorrichtung eingerichtet, ein Paddingverfahren, wie es hier beschrieben ist, auszuführen.
  • Ein weiterer Aspekt bezieht sich auf ein Steuerungsverfahren für einen wenigstens teilautonomen Roboter, umfassend die Schritte:
    • Empfangen von Umgebungsdaten des wenigstens teilautonomen Roboters, wobei die Umgebungsdaten konzentrisch aufgebaute Daten umfassen, die mit einem Bild korrelieren, das konzentrisch zu dem wenigstens teilautonomen Roboter aufgenommen wurde;
    • Anwenden einer Bilderkennung auf das aufgenommene Bild unter Durchführung eines Paddingverfahrens, wie es hier beschrieben ist; und
    • Steuern des wenigstens teilautonomen Roboters abhängig von der auf das aufgenommene Bild angewandten Bilderkennung.
  • Auf diese Weise kann ein wenigstens teilautonomer Roboter verbessert basierend auf empfangenen Umgebungsdaten gesteuert werden.
  • Allgemein kann es sich bei dem, insbesondere wenigstens teilautonomen, Roboter um ein zumindest teilweise automatisiert fahrendes Fahrzeug handeln. Alternativ dazu, kann es sich bei dem wenigstens teilautonomen Roboter auch um einen anderen mobilen Roboter handeln, beispielsweise um einen solchen, der sich durch Fliegen, Schwimmen, Tauchen oder Schreiten fortbewegt. Bei dem mobilen Roboter kann es sich beispielsweise auch um einen wenigstens teilautonomen Rasenmäher oder einen wenigstens teilautonomen Putzroboter oder ähnliches handeln.
  • Gemäß einem weiteren Aspekt umfasst ein Computerprogramm Befehle, die bei der Ausführung des Computerprogramms durch einen Computer diesen veranlassen, ein Verfahren, wie es hier beschrieben ist, auszuführen.
  • Gemäß einem weiteren Aspekt ist auf einem maschinenlesbaren Speichermedium das Computerprogramm, wie es hier beschrieben ist, gespeichert.
  • Weitere, die Erfindung verbessernde Maßnahmen werden nachstehend gemeinsam mit der Beschreibung der bevorzugten Ausführungsbeispiele der Erfindung anhand von Figuren näher dargestellt.
  • Ausführungsbeispiele
  • Es zeigt:
    • 1a zweidimensional konzentrisch aufgebaute Daten, die zu einem Datenarray entfalten werden;
    • 1b eindimensional konzentrisch aufgebaute Daten, die zu einem Datenarray entfalten werden;
    • 2a eine schematische Darstellung des Null-Paddings auf ein Datenarray;
    • 2b eine schematische Darstellung des Ringpaddings auf ein Datenarray;
    • 3a Null-Padding angewendet auf ein Polygon;
    • 3b Ringpadding angewendet auf ein Polygon;
    • 4a eine schematische Darstellung von Null-Padding beim Lernen des Verhältnisses zwischen real-kohärenten Daten von sich gegenüberliegenden Seiten eines Datenarrays;
    • 4b eine schematische Darstellung von Ringpadding beim Lernen des Verhältnisses zwischen real-kohärenten Daten von sich gegenüberliegenden Seiten eines Datenarrays; und
    • 5 eine schematische Darstellung eines Paddingverfahrens in einem Convolutional Neural Networks.
  • 1a zeigt zweidimensionale konzentrisch aufgebaute Daten 10. Beispielsweise korrelieren die konzentrisch aufgebauten Daten 10 zu Umgebungsdaten, die konzentrisch zu einem Objekt, insbesondere einem zumindest teilweise automatisiert fahrenden Fahrzeug, aufgenommen wurden. Zum Verarbeiten der konzentrisch aufgebauten Daten 10 müssen diese entfalten werden. Die konzentrisch aufgebauten Daten 10 haben, wie in 1a gezeigt ist, die Form eines Hohlzylinders, in deren Mitte konzentrisch das besagte Objekt angeordnet war.
  • Zum Entfalten der konzentrisch aufgebauten Daten 10 werden diese an einer Trennstelle 11 aufgetrennt und zu einem Datenarray 20 entfalten. Auf diese Weise werden real-kohärente Daten 21, 26, die an der Trennstelle 11 angeordnet waren, an zwei sich gegenüberliegenden Seiten des Datenarrays 20 angeordnet.
  • 1b zeigt eindimensionale konzentrisch aufgebaute Daten 10. Das Entfalten solcher konzentrisch aufgebauten Daten 10 entspricht den Ausführungen zu den zweidimensional konzentrisch aufgebauten Daten 10 aus 1a.
  • 2a und 2b zeigen eine schematische Darstellung einer Faltungsoperation unter Benutzung von Null-Padding in 2a und Ringpadding in 2b auf ein Datenarray 20, das aus konzentrisch aufgebauten Daten 10 besteht.
  • Das gezeigte Datenarray 20 umfasst sechs Datensätze 21, 22, 23, 24, 25, 26, insbesondere einen ersten Datensatz 21, einen zweiten Datensatz 22, einen dritten Datensatz 23, einen vierten Datensatz 24, einen fünften Datensatz 25 und einen sechsten Datensatz 26. Auf das Datenarray 20 wird eine Faltungsoperation mit Hilfe eines Filterkernels 30 durchgeführt. Der Filterkernel 30 weist eine Dimension von drei auf, das heißt, dass jeweils drei Datensätze von dem Filterkernel 30 verarbeitet werden und zu einem Ausgangsdatensatz des Ausgangsarrays 40 diskret gefalten werden. Dieses Verfahren wird solange schrittweise ausgeführt, bis das gesamte Datenarray 20 abgearbeitet wurde. Aufgrund der Limitierung des Datenarrays 20 an den Randbereichen, würde eine Faltungsoperation auf das Datenarray 20 ohne eine Art von Paddingverfahren, zu einer Reduzierung der Dimension des Datenarrays 20 führen. In dem gezeigten Fall würde der Filterkernel 30 das Datenarray 20 in vier Schritten abarbeiten Hierfür würde der Filterkernel 30 in einem ersten Schritt die diskrete Faltung basierend auf dem vierten Datensatz 24, dem fünften Datensatz 25 und dem sechsten Datensatz 26 durchführen, in einem zweiten Schritt die diskrete Faltung basierend auf dem dritten Datensatz 23, vierten Datensatz 24 und dem fünften Datensatz 25 durchführen, in einem dritten Schritt die diskrete Faltung basierend auf dem zweiten Datensatz 22, dem dritten Datensatz 23 und dem vierten Datensatz 24 durchführen und in einem vierten Schritt die diskrete Faltung basierend auf dem ersten Datensatz 21, dem zweiten Datensatz 22 und dem dritten Datensatz 23 durchführen. Auf diese Weise würde sich die Dimension des Datenarrays 20 zu dem Ausgangsarray 40 von sechs auf vier reduzieren.
  • Deshalb wird üblicherweise das Datenarray 20 durch ein Paddingverfahren künstlich vergrößert, in diesem Fall von sechs auf acht, damit das Ausgangsarray 40 nach der Faltungsoperation weiterhin eine Dimension von sechs aufweist.
  • Beim Null-Padding in 2a wird das Datenarray 20 an beiden Enden um jeweils einen linken Null-Datensatz 21a und einen rechten Null-Datensatz 26a mit jeweils dem Wert null erweitert. In Schritt S1 führt der Filterkernel 30 die diskrete Faltung basierend auf dem fünften Datensatz 25, dem sechsten Datensatz 26 und dem rechten Null-Datensatz 26a durch. Der Filterkernel 30 arbeitet das Datenarray 20 in den Schritten S2 bis S5 wie oben beschrieben nach links ab. In Schritt S6 führt der Filterkernel 30 die diskrete Faltung basierend auf dem linken Null-Datensatz 21a, dem ersten Datensatz 21 und dem zweiten Datensatz 22 durch. Auf diese Weise weist das Ausgangsarray 40 eine weitere Dimension von sechs auf.
  • Beim Ringpadding in 2b wird das Datenarray 20 nicht künstlich erweitert. Stattdessen führt der Filterkernel 30 in Schritt S1 die diskrete Faltung basierend auf dem fünften Datensatz 25, dem sechsten Datensatz 26 und dem ersten Datensatz 21 durch. Da das Datenarray 20 auf konzentrisch aufgebauten Daten 10 besteht, sind der erste Datensatz 21 und der sechste Datensatz 26 real-kohärente Daten. Das Ringpadding benutzt auf diese Weise reale Daten anstelle von Nullen, um ein Paddingverfahren auf das Datenarray 20 anzuwenden.
  • Der Filterkernel 30 arbeitet das Datenarray 20 in den Schritten S2 bis S5 wie oben beschrieben nach links ab. In Schritt S6 führt der Filterkernel 30 die diskrete Faltung basierend auf dem sechsten Datensatz 26, dem ersten Datensatz 21 und dem zweiten Datensatz 22 durch. Auf diese Weise weist das Ausgangsarray 40 eine Dimension von sechs auf. Das Ringpadding benutzt auf diese Weise reale Daten anstelle von Nullen, um ein Paddingverfahren auf das Datenarray 20 anzuwenden.
  • Die 3a und 3b zeigen den Unterschied zwischen Null-Padding und Ringpadding am Beispiel eines Polygons.
  • Die gezeigten Ergebnisse stammen von einem Faltungs-auto-Encoder, dem die Aufgabe gegeben wurde ein Polygon zu reproduzieren, das als ein 1D Array repräsentiert wird. Jedes Polygon besteht aus 360 Nummern, die die Entfernungen zu einem Ursprung in einem Polarkoordinatensystem mit einer Auflösung von 360 Grad darstellen. Die Grundform 50 stellt die Realität dar. Die Ausgangsformen 51 enthalten jeweils die gelernten Werte.
  • Die in 3a gezeigte Ausgangsform 51 wurde mit Hilfe von Null-Padding erstellt, während die in 3b gezeigte Ausgangsform 51 mit Hilfe von Ringpadding erstellt wurde. In 3a ist klar zu erkennen, welchen Fehler das Null-Padding in das System einbringt, da die zum Null-Padding benötigten zusätzlichen Datensätze mit Nullen beschrieben sind. Dahingegen ist die in 3b gezeigte Ausgangsform 51, die mit Hilfe von Ringpadding erlernt wurde, vergleichsweise fehlerfrei.
  • Die 4a und 4b zeigen den Informationsfluss der Datensätze von der linken Seite des Datenarrays 20 zu der rechten Seite des Datenarrays 20 und vice versa.
  • Der Grundaufbau der Datenarrays 20 entspricht den in 2a und 2b gezeigten Datenarrays 20. 4a zeigt die Anwendung der Faltungsoperation mit Hilfe von Null-Padding über mehrere Convolutional Layer L1, L2, L3, L4, L5, L6. Der erste Datensatz 21 benötigt sechs Convolutional Layer L1, L2, L3, L4, L5, L6, um von der linken Seite des Datenarrays 20 zu der rechten Seite des Datenarrays 20 durchzudringen. Erst dann kann über einen Lernalgorithmus ein Verhältnis des ersten Datensatzes 21 zu dem sechsten Datensatz 26 hergestellt werden und erkannt werden, dass es sich hierbei um real-kohärente Daten handelt. Dasselbe gilt für anders herum für den sechsten Datensatz 26, der ebenfalls 6 Convolutional Layer L1, L2, L3, L4, L5, L6 benötigt, um bis zu der linken Seite des Datenarrays 20 durchzudringen.
  • Im Gegensatz dazu kann wie in 4b gezeigt ist, über einen Lernalgorithmus ein Verhältnis des ersten Datensatzes 21 zu dem sechsten Datensatz 26 bereits nach einer ersten Convolutional Layer L1 hergestellt werden und erkannt werden, dass es sich hierbei um real-kohärente Daten handelt.
  • 5 zeigt eine schematische Darstellung eines Paddingverfahrens in einem Convolutional Neural Networks.
  • In Schritt Z1 werden konzentrisch aufgebaute Daten eines Objekts empfangen, wobei die konzentrisch aufgebauten Daten mit einem Bild korrelieren, das konzentrisch zu dem Objekt aufgenommen wurde.
  • In Schritt Z2 werden die konzentrisch aufgebauten Daten zu einem Datenarray entfalten, umfassend real-kohärente Daten an sich gegenüberliegenden Seiten des Datenarrays.
  • In Schritt Z3 wird eine Faltungsoperation unter Benutzung von Ringpadding ausgeführt, wobei bei dem Ringpadding die real-kohärenten Daten einer Seite des Datenarrays zum Padding der real-kohärenten Daten einer dieser gegenüberliegenden Seite des Datenarrays verwendet werden und/oder vice versa.

Claims (11)

  1. Paddingverfahren für ein Convolutional Neural Network, umfassend die Schritte: Empfangen von konzentrisch aufgebauten Daten (10) eines Objekts, wobei die konzentrisch aufgebauten Daten (10) mit einem Bild korrelieren, das konzentrisch zu dem Objekt aufgenommen wurde. Entfalten der konzentrisch aufgebauten Daten (10) zu einem Datenarray (20), umfassend real-kohärente Daten (21, 26) an sich gegenüberliegenden Seiten des Datenarrays (20); Ausführen einer Faltungsoperation unter Benutzung von Ringpadding, wobei bei dem Ringpadding die real-kohärenten Daten (21, 26) einer Seite des Datenarrays (20) zum Padding der real-kohärenten Daten (21, 26) einer dieser gegenüberliegenden Seite des Datenarrays (20) verwendet werden und/oder vice versa.
  2. Paddingverfahren nach Anspruch 1, wobei das Datenarray (20) real-nicht-kohärente Daten an sich gegenüberliegenden Seiten des Datenarrays aufweist, wobei das Verfahren ferner umfasst: Padding der real-nicht-kohärenten Daten des Datenarrays (20) durch konventionelle Paddingverfahren, vorzugsweise konstantem Padding, Null Padding oder Reflection Padding.
  3. Paddingverfahren nach einem der voranstehenden Ansprüche, wobei das Datenarray (20) ein linkes Ende und ein rechtes Ende aufweist, welche jeweils die real-kohärenten Daten (21, 26) aufweisen, wobei das Verfahren ferner umfasst: Padding der real-kohärenten Daten (21, 26) des linken Endes des Datenarrays (20) mit den real-kohärenten Daten (21, 26) des rechten Endes des Datenarrays (20) und/oder vice versa.
  4. Paddingverfahren nach einem der Ansprüche 2 oder 3, wobei das Datenarray (20) ein oberes Ende und ein unteres Ende umfasst, welche jeweils die real-nicht-kohärenten Daten aufweisen, wobei das Verfahren ferner umfasst: Padding der real-nicht-kohärenten Daten des oberen Endes und des unteren Endes des Datenarrays (20) durch konventionelle Paddingverfahren, vorzugsweise konstantem Padding, Null Padding oder Reflection Padding.
  5. Paddingverfahren nach einem der voranstehenden Ansprüche, wobei das Datenarray (20) eine beliebige Anzahl an Dimensionen aufweist.
  6. Paddingverfahren nach einem der voranstehenden Ansprüche, wobei die Dimension des Ringpaddings von der Dimension eines für die Faltungsoperation verwendeten Filterkernels (30) abhängt.
  7. Paddingverfahren nach einem der voranstehenden Ansprüche, ferner umfassend: Lernen des Verhältnisses zwischen real-kohärenten Daten (21, 26) von sich gegenüberliegenden Enden des Datenarrays (20) innerhalb einer Convolutional Layer (L1) des Convolutional Neural Networks.
  8. Vorrichtung, die eingerichtet ist, ein Paddingverfahren gemäß einem der Ansprüche 1 bis 7 auszuführen.
  9. Steuerungsverfahren für einen wenigstens teilautonomen Roboter, umfassend die Schritte: Empfangen von Umgebungsdaten des wenigstens teilautonomen Roboters, wobei die Umgebungsdaten konzentrisch aufgebaute Daten (10) umfassen, die mit einem Bild korrelieren, das konzentrisch zu dem wenigstens teilautonomen Roboter aufgenommen wurde; Anwenden einer Bilderkennung auf das aufgenommene Bild unter Durchführung eines Paddingverfahrens gemäß einem der Ansprüche 1 bis 7; und Steuern des wenigstens teilautonomen Roboters abhängig von der auf das aufgenommene Bild angewandten Bilderkennung.
  10. Computerprogramm, umfassend Befehle, die bei der Ausführung des Computerprogramms durch einen Computer diesen veranlassen, ein Verfahren gemäß einem der Ansprüche 1 bis 7 auszuführen.
  11. Maschinenlesbares Speichermedium, auf dem das Computerprogramm nach Anspruch 10 gespeichert ist.
DE102019203024.6A 2019-03-06 2019-03-06 Paddingverfahren für ein Convolutional Neural Network Pending DE102019203024A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102019203024.6A DE102019203024A1 (de) 2019-03-06 2019-03-06 Paddingverfahren für ein Convolutional Neural Network
US16/808,672 US11531890B2 (en) 2019-03-06 2020-03-04 Padding method for a convolutional neural network
CN202010149865.XA CN111667397A (zh) 2019-03-06 2020-03-06 用于卷积神经网络的填充方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102019203024.6A DE102019203024A1 (de) 2019-03-06 2019-03-06 Paddingverfahren für ein Convolutional Neural Network

Publications (1)

Publication Number Publication Date
DE102019203024A1 true DE102019203024A1 (de) 2020-09-10

Family

ID=72146513

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019203024.6A Pending DE102019203024A1 (de) 2019-03-06 2019-03-06 Paddingverfahren für ein Convolutional Neural Network

Country Status (3)

Country Link
US (1) US11531890B2 (de)
CN (1) CN111667397A (de)
DE (1) DE102019203024A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021255514A1 (en) 2020-06-15 2021-12-23 Universidade Do Porto Padding method for convolutional neural network layers adapted to perform multivariate time series analysis

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3573520A4 (de) * 2017-01-27 2020-11-04 Arterys Inc. Automatisierte segmentierung unter verwendung vollständig konvolutionaler netze
US10646288B2 (en) * 2017-04-12 2020-05-12 Bio-Medical Engineering (HK) Limited Automated steering systems and methods for a robotic endoscope
US11574148B2 (en) * 2018-11-05 2023-02-07 Royal Bank Of Canada System and method for deep reinforcement learning

Also Published As

Publication number Publication date
US20200285963A1 (en) 2020-09-10
CN111667397A (zh) 2020-09-15
US11531890B2 (en) 2022-12-20

Similar Documents

Publication Publication Date Title
DE3587061T2 (de) Bildverarbeitungseinrichtung und verfahren zu deren steuerung.
EP3785177A1 (de) Verfahren und vorrichtung zum ermitteln einer netzkonfiguration eines neurona-len netzes
EP3701433B1 (de) Verfahren, vorrichtung und computerprogramm zur erstellung eines tiefen neuronalen netzes
WO2014187828A1 (de) Methode zur ermittlung eines modells einer ausgangsgrösse eines technischen systems
DE102019209644A1 (de) Verfahren zum Trainieren eines neuronalen Netzes
EP3825796A1 (de) Verfahren und vorrichtung zum ki-basierten betreiben eines automatisierungssystems
DE102019203024A1 (de) Paddingverfahren für ein Convolutional Neural Network
EP3786853A1 (de) Komprimieren eines tiefen neuronalen netzes
EP3748574A1 (de) Adaptive bereinigung von messdaten um unterschiedliche arten von störungen
EP3736742A1 (de) Maschinelles lernsystem, sowie ein verfahren, ein computerprogramm und eine vorrichtung zum erstellen des maschinellen lernsystems
DE19703964C1 (de) Verfahren zur Transformation einer zur Nachbildung eines technischen Prozesses dienenden Fuzzy-Logik in ein neuronales Netz
DE102018129871A1 (de) Trainieren eins tiefen konvolutionellen neuronalen Netzwerks zum Verarbeiten von Sensordaten zur Anwendung in einem Fahrunterstützungssystem
DE202019102260U1 (de) Vorrichtung zum Erstellen eines neuronalen Netzes
DE102020116013A1 (de) Verfahren zum Bereitstellen eines komprimierten künstlichen neuronalen Netzes mittels eines Autoencoders
WO2017182378A1 (de) Verfahren und vorrichtung zur kantendetektion
DE69120854T2 (de) Lernverfahren fÜr Datenverarbeitungssystem
DE102020211596A1 (de) Verfahren zum Generieren eines trainierten neuronalen Faltungs-Netzwerks mit invarianter Integrationsschicht zum Klassifizieren von Objekten
DE102021114350A1 (de) Verfahren und Vorrichtung zur faltungsfreien Bildverarbeitung
DE102020208765A1 (de) Bildklassifikator mit variablen rezeptiven Feldern in Faltungsschichten
DE202019103323U1 (de) Vorrichtung zum Erstellen eines maschinellen Lernsystems
DE69030907T2 (de) Datenverarbeitungsanlage
DE102019216973A1 (de) Lernverfahren für neuronale netze basierend auf evolutionären algorithmen
WO2020187394A1 (de) Verfahren zum trainieren eines autoencoders und zum klassifizieren von daten sowie autoencoder und computerprogramm hierzu
DE102019100660B4 (de) Verfahren zur Transformation zwischen Bildpunkten und Objektpunkten
DE102023125854A1 (de) Code-analysevorrichtung und code-analyseverfahren unter verwendung des modifizierten bedingungs-/entscheidungsüberdeckung (mcdc) verfahrens