DE102022210129A1 - Bildverarbeitung über isotonische faltungs-neuronalnetze - Google Patents
Bildverarbeitung über isotonische faltungs-neuronalnetze Download PDFInfo
- Publication number
- DE102022210129A1 DE102022210129A1 DE102022210129.4A DE102022210129A DE102022210129A1 DE 102022210129 A1 DE102022210129 A1 DE 102022210129A1 DE 102022210129 A DE102022210129 A DE 102022210129A DE 102022210129 A1 DE102022210129 A1 DE 102022210129A1
- Authority
- DE
- Germany
- Prior art keywords
- feature map
- sensor
- size
- image
- channels
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/243—Classification techniques relating to the number of classes
- G06F18/2431—Multiple classes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2413—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
- G06F18/24133—Distances to prototypes
- G06F18/24143—Distances to neighbourhood prototypes, e.g. restricted Coulomb energy networks [RCEN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10032—Satellite or aerial image; Remote sensing
- G06T2207/10044—Radar image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10132—Ultrasound image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20021—Dividing image into blocks, subimages or windows
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Biology (AREA)
- Biomedical Technology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Mathematical Physics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Probability & Statistics with Applications (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Medical Informatics (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
Ein Faltungs-Neuronalnetzsystem umfasst einen Sensor und eine Steuerung, wobei die Steuerung ausgelegt ist zum Empfangen eines Bildes von dem Sensor; Aufteilen des Bildes in Patches, wobei jedes Patch die Größe p aufweist; Extrahieren einer Merkmalabbildung, die eine Anzahl von Kanälen auf der Basis eines Merkmaldetektors der Größe p aufweist, über eine erste Faltungsschicht, wobei der Merkmaldetektor ein Stride gleich der Größe p aufweist; Verfeinern der Merkmalabbildung durch abwechselndes Anwenden von tiefenweisen Faltungsschichten und punktweisen Faltungsschichten, um eine verfeinerte Merkmalabbildung zu erhalten, wobei die Anzahl der Kanäle in der Merkmalabbildung und die Größe der Merkmalabbildung im Verlauf aller Operationen in der Verfeinerung konstant bleibt; und Ausgeben der verfeinerten Merkmalabbildung.
Description
- Technisches Gebiet
- Die vorliegende Offenbarung betrifft allgemein Bildverarbeitung unter Verwendung eines isotonischen Faltungs-Neuronalnetzes. Spezieller betrifft die vorliegende Anmeldung Verbesserungen, die reduzierte Parameter in einem isotonischen Faltungs-Neuronalnetz erlauben.
- Hintergrund
- Objekterkennung ist ein Grundproblem in der Computervision, bei dem ein Bild in eine vordefinierte Anzahl von Klassen klassifiziert wird. CNN (Faltungs-Neuronalnetze) haben bezüglich dieses Problems aufgrund der Verfügbarkeit großer und gekennzeichneter Datenmengen und einer leistungsstarken Berechnungsinfrastruktur hochmoderne Ergebnisse erzielt. CNN extrahieren automatisch diskrimminative Klassifizierungsmerkmale aus den Trainingsbildern und verwenden sie in Kombination zur Erkennung komplexer Objekte. Dadurch können CNN herkömmliche Computervisionsansätze an Datenmengen auf großem Maßstab wie ImageNet deutlich übertreffen, da letztere gewöhnlich heuristische Merkmale verwenden.
- Kurzfassung
- Eine erste beispielhafte Ausführungsform offenbart ein Computer-implementiertes Verfahren zum Verarbeiten eines Bildes unter Verwendung eines Faltungs-Neuronalnetzes. Das Computer-implementierte Verfahren umfasst: Empfangen eines Bildes; Aufteilen des Bildes in Patches, wobei jedes Patch die Größe p aufweist; Extrahieren einer Merkmalabbildung, die eine Anzahl von Kanälen auf der Basis eines Merkmaldetektors der Größe p aufweist, über eine erste Faltungsschicht, wobei der Merkmaldetektor ein Stride gleich der Größe p aufweist; Verfeinern der Merkmalabbildung durch abwechselndes Anwenden von tiefenweisen Faltungsschichten und punktweisen Faltungsschichten, um eine verfeinerte Merkmalabbildung zu erhalten, wobei die Anzahl der Kanäle in der Merkmalabbildung und die Größe der Merkmalabbildung im Verlauf aller Operationen in der Verfeinerung konstant bleibt; und Ausgeben der verfeinerten Merkmalabbildung.
- Eine zweite beispielhafte Ausführungsform offenbart ein Computer-implementiertes Verfahren zum Verarbeiten eines Bildes unter Verwendung eines Faltungs-Neuronalnetzes. Das Computer-implementierte Verfahren umfasst: Empfangen eines Bildes der Größe L × W; Aufteilen des Bildes in Patches, wobei eine kombinierte Größe jedes Patch gleich L × W ist; Extrahieren einer Merkmalabbildung, die eine Anzahl von Kanälen auf der Basis eines Merkmaldetektors einer Größe gleich der Patchgröße aufweist, über eine erste Faltungsschicht, wobei der Merkmaldetektor ein Stride gleich der Patchgröße aufweist; Verfeinern der Merkmalabbildung durch abwechselndes Anwenden von tiefenweisen Faltungsschichten und punktweisen Faltungsschichten, um eine verfeinerte Merkmalabbildung zu erhalten, wobei die Anzahl der Kanäle in der Merkmalabbildung und die Größe der Merkmalabbildung im Verlauf aller Operationen in der Verfeinerung konstant bleibt; und Ausgeben der verfeinerten Merkmalabbildung.
- Eine dritte beispielhafte Ausführungsform offenbart ein Faltungs-Neuronalnetzsystem, umfassend: einen Sensor; und eine Steuerung, wobei die Steuerung ausgelegt ist zum Empfangen eines Bildes von dem Sensor, Aufteilen des Bildes in Patches, wobei jedes Patch die Größe p aufweist; Extrahieren einer Merkmalabbildung, die eine Anzahl von Kanälen auf der Basis eines Merkmaldetektors der Größe p aufweist, über eine erste Faltungsschicht, wobei der Merkmaldetektor ein Stride gleich der Größe p aufweist; Verfeinern der Merkmalabbildung durch abwechselndes Anwenden von tiefenweisen Faltungsschichten und punktweisen Faltungsschichten, um eine verfeinerte Merkmalabbildung zu erhalten, wobei die Anzahl der Kanäle in der Merkmalabbildung und die Größe der Merkmalabbildung im Verlauf aller Operationen in der Verfeinerung konstant bleibt; und Ausgeben der verfeinerten Merkmalabbildung.
- Figurenliste
-
-
1 ist eine Blockdarstellung eines Systems zum Trainieren eines neuronalen Netzes. -
2 ist ein Flussdiagramm eines isotropischen Faltungs-Neuronalnetzes, wobei die Anzahl der Kanäle in der Merkmalabbildung und die Größe der Merkmalabbildung im Verlauf aller Operationen konstant bleiben. -
3 ist eine Blockdarstellung eines Datenannotationssystems, das ein Maschinenlernmodell benutzt. -
4 ist eine grafische Darstellung von Patch-Einbettungsgewichten für einen ConvMixer-1024/20 mit Patchgröße 14. -
5 ist eine Blockdarstellung eines elektronischen Datenverarbeitungssystems. -
6 ist eine grafische Darstellung von Bild, Patchgröße und Kanaltiefe. -
7 ist eine grafische Darstellung von Gewichtsvektoren für die Patcheinbettungen des Bildes von6 . -
8 ist eine grafische Darstellung eines 2-dimensionalen Layouts der Kanaltiefe für jedes Patch. -
9 ist eine grafische Darstellung eines 3-dimensionalen Layouts für jede Merkmalabbildung mit Kanaltiefe. -
10 ist eine grafische Darstellung spezifischer Teilmengen von 64 tiefenweisen Faltungskernen aus schrittweise tieferen Schichten von ConvMixer-1536/20. -
11 ist eine schematische Darstellung eines Steuersystems, das dafür ausgelegt ist, ein Fahrzeug zu steuern. -
12 ist eine schematische Darstellung eines Steuersystems, das dafür ausgelegt ist, eine Produktionsmaschine zu steuern. -
13 ist eine schematische Darstellung eines Steuersystems, das dafür ausgelegt ist, ein Elektrowerkzeug zu steuern. -
14 ist eine schematische Darstellung eines Steuersystems, das dafür ausgelegt ist, einen automatisierten persönlichen Assistenten zu steuern. -
15 ist eine schematische Darstellung eines Steuersystems, das dafür ausgelegt ist, ein Überwachungssystem zu steuern. -
16 ist eine schematische Darstellung eines Steuersystems, das dafür ausgelegt ist, ein medizinisches Bildgebungssystem zu steuern. - Ausführliche Beschreibung
- Wie erforderlich werden hier ausführliche Ausführungsformen der vorliegenden Erfindung offenbart; es versteht sich jedoch, dass die offenbarten Ausführungsformen lediglich beispielhaft für die Erfindung sind, die in verschiedenen und alternativen Formen realisiert werden kann. Die Figuren sind nicht unbedingt maßstabsgetreu; einige Merkmale können übertrieben oder minimiert sein, um Einzelheiten bestimmter Komponenten zu zeigen. Spezifische Struktur- und Funktionsdetails, die hier offenbart werden, sind deshalb nicht als Einschränkung aufzufassen, sondern lediglich als repräsentative Grundlage, um es Fachleuten zu lehren, die vorliegende Erfindung verschiedenartig einzusetzen.
- Der Ausdruck „im Wesentlichen“ kann hier verwendet werden, um offenbarte oder beanspruchte Ausführungsformen zu beschreiben. Der Ausdruck „im Wesentlichen“ kann einen Wert oder ein relatives Charakteristikum modifizieren, der bzw. das in der vorliegenden Offenbarung offenbart oder beansprucht wird. In solchen Fällen kann „im Wesentlichen“ bedeuten, dass der Wert oder das relative Charakteristikum, das er modifiziert, innerhalb von ± 0%, 0,1%, 0,5%, 1%, 2%, 3%, 4%, 5% oder 10% des Werts oder des relativen Charakteristikums modifiziert wird.
- Der Ausdruck Sensor bezieht sich auf eine Vorrichtung, die eine physikalische Eigenschaft detektiert oder misst und sie aufzeichnet, angibt oder anderweitig darauf reagiert. Der Ausdruck Sensor umfasst einen optischen, Licht-, Bildgebungs- oder Photonensensor (z. B. ein CCD (Charge-Coupled Device), einen CMOS-APS (Aktivpixelsensor), einen IR-Sensor (Infrarot), einen CMOS-Sensor), einen akustischen, Schall- oder Vibrationssensor (z. B. ein Mikrofon, ein Geofon, Hydrofon), einen Kraftfahrzeugsensor (z. B. Radgeschwindigkeit, Parken, Radar, Sauerstoff, toter Winkel, Drehmoment), einen chemischen Sensor (z. B. einen ISFET (ionenempfindlichen Feldeffekttransistor), Sauerstoff-, Kohlendioxid-, Chemiwiderstand-, holografischer Sensor), einen Elektrischer-Strom-, einen Elektrisches-Potential-, einen Magnet- oder Hochfrequenzsensor (z. B. Halleffekt, Magnetometer, Magnetowiderstand, Faradayscher Becher, Galvanometer), einen Umgebungs-, Wetter-, Feuchtigkeits- oder Feuchtesensor (z. B. Wetterradar, Actinometer), einen Durchfluss- oder Fluidgeschwindigkeitssensor (z. B. Luftmassensensor, Anemometer), einen Sensor für ionisierende Strahlung oder subatomische Teilchen (z. B. Ionisierungskammer, Geigerzähler, Neutronendetektor), einen Navigationssensor (z. B. einen GPS-Sensor (Global Positioning System), MHD-Sensor (magnetohydrodynamisch)), einen Positions-, Winkel-, Verschiebungs-, Distanz-, Geschwindigkeits- oder Beschleunigungssensor (z. B. einen LIDAR-, Beschleunigungsmesser-, Ultrabreitbandradar-, piezoelektrischen Sensor), einen Kraft-, Dichte- oder Pegelsensor (z. B. Dehnungsmesssensor, Kerndichtemessgerät), einen thermischen, Wärme- oder Temperatursensor (z. B. Infrarotthermometer, Pyrometer, Thermoelement, Thermistor, Mikrowellenradiometer) oder andere Vorrichtungen, Module, Maschinen oder Subsysteme, deren Zweck darin besteht, eine physikalische Eigenschaft zu detektieren oder zu messen und diese aufzuzeichnen, anzugeben oder anderweitig darauf zu reagieren.
-
1 zeigt ein System 100 zum Trainieren eines neuronalen Netzes. Das System 100 kann eine Eingabeschnittstelle zum Zugreifen auf Trainingsdaten 192 für das neuronale Netz umfassen. Zum Beispiel kann, wie in1 dargestellt, die Eingabeschnittstelle durch eine Datenspeicherungsschnittstelle 180 dargestellt werden, die auf die Trainingsdaten 192 aus einer Datenspeicherung 190 zugreifen kann. Die Datenspeicherungsschnittstelle 180 kann zum Beispiel eine Speicherschnittstelle oder eine persistente Speicherungsschnittstelle sein, z. B. eine Festplatten- oder eine SSD-Schnittstelle, kann aber auch eine persönliche, lokale oder großflächige Netzwerkschnittstelle sein, wie etwa eine Bluetooth-, Zigbee- oder Wifi-Schnittstelle oder eine Ethernet- oder faseroptische Schnittstelle. Die Die Datenspeicherung 190 kann eine interne Datenspeicherung des Systems 100 sein, wie etwa eine Festplatte oder ein SSD, kann aber auch externe Datenspeicherung sein, z. B. eine netzwerkzugängliche Datenspeicherung. - Bei einigen Ausführungsformen kann die Datenspeicherung 190 ferner eine Datenrepräsentation 194 einer untrainierten Version des neuronalen Netzes umfassen, worauf das System 100 aus der Datenspeicherung 190 zugreifen kann. Es versteht sich jedoch, dass auf die Trainingsdaten 192 und die Datenrepräsentation 194 des untrainierten neuronalen Netzes auch jeweils aus einer anderen Datenspeicherung zugegriffen werden kann, z. B. über ein anderes Teilsystem der Datenspeicherungsschnittstelle 180. Jedes Teilsystem kann von einer Art sein, wie oben für die Datenspeicherungsschnittstelle 180 beschrieben. Bei anderen Ausführungsformen kann die Datenrepräsentation 194 des untrainierten neuronalen Netzes intern durch das System 100 auf der Basis von Entwurfsparametern für das neuronale Netz erzeugt werden und kann deshalb nicht ausdrücklich in der Datenspeicherung 190 gespeichert sein. Das System 100 kann ferner ein Prozessorteilsystem 160 umfassen, das für Folgendes ausgelegt sein kann: Bereitstellen einer iterativen Funktion während des Betriebs des Systems 100 als Ersatz für einen Stapel von Schichten des zu trainierenden neuronalen Netzes. Bei einer Ausführungsform können die jeweiligen Schichten des Stapels von Schichten, der ersetzt wird, untereinander geteilte Gewichte aufweisen und können als Eingabe eine Ausgabe einer vorherigen Schicht empfangen, oder für eine erste Schicht des Stapels von Schichten eine anfängliche Aktivierung und einen Teil der Eingabe des Stapels von Schichten. Das System kann auch mehrere Schichten umfassen. Das Prozessorteilsystem 160 kann ferner dafür ausgelegt sein, das neuronale Netz unter Verwendung der Trainingsdaten 192 iterativ zu trainieren. Eine Iteration des Trainings durch das Prozessorteilsystem 160 kann hier einen Vorwärtsausbreitungsteil und einen Rückwärtsausbreitungsteil umfassen. Das Prozessorteilsystem 160 kann dafür ausgelegt sein, den Vorwärtsausbreitungsteil, neben anderen Operationen, die den Vorwärtsausbreitungsteil definieren, die ausgeführt werden können, durch Bestimmen eines Gleichgewichtspunkts der iterativen Funktion auszuführen, an dem die iterative Funktion auf einen Fixpunkt konvergiert, wobei Bestimmen des Gleichgewichtspunkts Verwendung eines numerischen Wurzelfindungsalgorithmus umfasst, um eine Wurzellösung für die iterative Funktion minus ihrer Eingabe zu finden, und durch Bereitstellen des Gleichgewichtspunkts als Ersatz für eine Ausgabe des Stapels von Schichten in dem neuronalen Netz. Das System 100 kann ferner eine Ausgabeschnittstelle zum Ausgeben einer Datenrepräsentation 196 des trainierten neuronalen Netzes umfassen, wobei diese Daten auch als Trainiertes-Modell-Daten 196 bezeichnet werden können. Zum Beispiel kann, wie auch in
1 dargestellt ist, die Ausgabeschnittstelle durch die Datenspeicherungsschnittstelle 180 dargestellt werden, wobei diese Schnittstelle bei diesen Ausführungsformen eine Eingabe/Ausgabe-(„EA“-)Schnittstelle sein kann, über die die Trainiertes-Modell-Daten 196 in der Datenspeicherung 190 gespeichert werden können. Die Datenrepräsentation 194, die das „untrainierte“ neuronale Netz definiert, kann zum Beispiel während oder nach dem Training insofern mindestens teilweise durch die Datenrepräsentation 196 des trainierten neuronalen Netzes ersetzt werden, als die Parameter des neuronalen Netzes, wie etwa Gewichte, Hyperparameter und andere Arten von Parametern neuronaler Netze, angepasst werden können, um das Training an den Trainingsdaten 192 widerzuspiegeln. Dies ist auch in1 durch die Bezugszahlen 194, 196 dargestellt, die sich auf denselben Datensatz in der Datenspeicherung 190 beziehen. Bei anderen Ausführungsformen kann die Datenrepräsentation 196 getrennt von der das „untrainierte“ neuronale Netz definierenden Datenrepräsentation 194 gespeichert werden. Bei einigen Ausführungsformen kann die Ausgabeschnittstelle von der Datenspeicherungsschnittstelle 180 getrennt sein, kann aber im Allgemeinen von einer Art sein wie oben für die Datenspeicherungsschnittstelle 180 beschrieben. -
2 ist ein Flussdiagramm eines isotropischen Faltungs-Neuronalnetzes 200, wobei die Anzahl der Kanäle in der Merkmalabbildung und die Größe der Merkmalabbildung im Verlauf aller Operationen konstant bleiben. In Schritt 202 führt eine Steuerung eine Faltung durch. Die Faltung kann eine pixelweise Faltung (z. B. 1 × 1) oder eine patchweise Faltung (z. B. p × p) sein. Wenn die Faltung patchweise ist, wie p × p, wäre das Stride p, so dass keine Überlappung besteht. - In Schritt 204 führt die Steuerung eine Aktivierungsfunktion aus, die eine nichtlineare Funktion umfasst, die auf jedes Element der Merkmalabbildung angewandt wird. Die Aktivierungsfunktion ist als eine GELU (Gaussian Error Linear Unit) gezeigt, aber die Aktivierungsfunktion kann auch eine ReLU (Rectified Linear Unit), eine ELU (Exponential Linear Unit), eine Leaky-ReLU (Leaky Rectified Linear Unit), eine SELU (Scaled Exponential Linear Unit) oder eine andere Aktivierungsfunktion sein. In Schritt 206 führt die Steuerung eine Batch-Normierungsfunktion aus, die eine Mittelung von Werten über den gesamten Batch ist. Die Schritte 202, 204 und 206 bilden eine Faltungsschicht.
- In Schritt 208 befindet sich eine tiefenweise Faltung. In Schritt 210 führt die Steuerung eine Aktivierungsfunktion aus, wie in Schritt 204 beschrieben. In Schritt 212 führt die Steuerung eine Batch-Normierungsfunktion aus, die eine Mittelung von Werten über das gesamte Batch ist. Die Schritte 208, 210 und 212 bilden eine tiefenweise Faltungsschicht. Die Steuerung kann gegebenenfalls die Eingangsmerkmalabbildung der tiefenweisen Faltungsschicht zur Ausgabe hinzufügen.
- In Schritt 214 befindet sich eine punktweise Faltung, die Faltung kann eine pixelweise Faltung (z. B. 1 × 1) sein. In Schritt 216 führt die Steuerung eine Aktivierungsfunktion aus, wie in Schritt 204 beschrieben. In Schritt 218 führt die Steuerung eine Batch-Normierungsfunktion aus, die eine Mittelung von Werten über das gesamte Batch ist. Die Schritte 214, 216 und 218 bilden eine punktweise Faltungsschicht. Die Steuerung kann gegebenenfalls die Eingangsmerkmalabbildung der pixelweisen Faltungsschicht zur Ausgabe hinzufügen.
- In Schritt 220 mittelt die Steuerung über alle Pixel in den Merkmalabbildungen. In Schritt 222 führt die Steuerung eine lineare Transformation aus, um Klassen vorherzusagen.
- Einer der Vorteile der Kombination abwechselnder Faltungen tiefenweise und punktweise umfasst eine Verringerung der Parameter mit Bezug auf traditionelle CNN. Die hier dargestellte Architektur umfasst drei Phasen: (1) eine Patcheinbettung zum Projizieren von Eingaben auf einen höherdimensionalen Raum zur Verarbeitung, (2) wiederholte Anwendungen eines Voll-Faltungs-Blocks und (3) globales Pooling, gefolgt von einem linearen Klassifizierer (z. B. Softmax). Der erste Schritt (1) kann eine p × p-Kernfaltung von 3→h Kanälen mit Stride p umfassen, wobei p die Patchgröße ist. Schritt (2) umfasst dann eine k × k-Kern-tiefenweise-trennbare-Faltung von h→h-Kanälen (mit Stopfung, so dass Eingangs- und Ausgangsdimensionen gleich sind), gefolgt von einer 1×1-Kernfaltung von h→h-Kanälen. Jeder Faltung folgt eine Aktivierungsfunktion wie oben beschrieben (z. B. GELU) und nach-Aktivierungs-Batch-Normierungsfunktion (z. B. BatchNorm).
- Danach kommt Mischung. Die Tiefenweise-Trennbare-Faltung hat verbesserte Ergebnisse mit einer relativ großen Kerngröße k, wie etwa 9, produziert. Diese Schicht mischt räumliche Informationen, einschließlich von fernen Orten aufgrund der großen Kerngröße. Als Nächstes mischt die 1×1-Faltung Kanalinformationen. Diese sind den Schritten Token-Mischung und Kanalmischung des MLP-Mischers analog.
- Isotropie. Nach dem Patcheinbettungsschritt trägt die interne Auflösung des Netzes immer h/p×w/p. Das Durchführen von Faltungen mit großen Kerngrößen an hochauflösenden internen Repräsentationen kann kostspielig sein. Im Fourierbereich ist die Laufzeit dieser Operation jedoch unabhängig von der Kerngröße, dies könnte in ausgewählten Tief-Lern-Rahmen ausgenutzt werden, in denen der Rahmen automatisch zu FFT-Verarbeitung wechselt.
-
3 zeigt ein Datenannotationssystem 300 zur Implementierung eines Systems zum Annotieren von Daten. Das Datenannotationssystem 300 kann mindestens ein Datenverarbeitungssystem 302 umfassen. Das Datenverarbeitungssystem 302 kann mindestens einen Prozessor 304 umfassen, der wirksam mit einer Speichereinheit 308 verbunden ist. Der Prozessor 304 kann eine oder mehrere integrierte Schaltungen umfassen, die die Funktionalität einer CPU (Zentralverarbeitungseinheit) 306 implementieren. Die CPU 306 kann eine im Handel erhältliche Verarbeitungseinheit sein, die einen Anweisungssatz implementiert, wie etwa eine der Anweisungssatzfamilien x86, ARM, Power oder MIPS. Während des Betriebs kann die CPU 306 gespeicherte Programmanweisungen ausführen, die aus der Speichereinheit 308 abgerufen werden. Die gespeicherten Programmanweisungen können Software umfassen, die den Betrieb der CPU 306 steuert, um die hier beschriebene Operation auszuführen. In einigen Beispielen kann der Prozessor 304 ein SoC (System auf einem Chip), das Funktionalität der CPU 306, der Speichereinheit 308, einer Netzwerkschnittstelle und von Eingabe-/Ausgabeschnittstellen in einer einzigen integrierten Vorrichtung integriert, sein. Das Datenverarbeitungssystem 302 kann zur Verwaltung verschiedener Aspekte des Betriebs ein Betriebssystem implementieren. - Die Speichereinheit 308 kann flüchtigen Speicher und nichtflüchtigen Speicher zum Speichern von Anweisungen und Daten umfassen. Der nichtflüchtige Speicher kann Halbleiterspeicher umfassen, wie etwa NAND-Flash-Speicher, magnetische und optische Speicherungsmedien und eine beliebige andere geeignete Datenspeicherungsvorrichtung, die Daten behält, wenn das Datenverarbeitungssystem 302 deaktiviert wird oder die Stromversorgung verliert. Der flüchtige Speicher kann statischen und dynamischen RAM (Direktzugriffsspeicher) umfassen, der Programmanweisungen und Daten speichert. Zum Beispiel kann die Speichereinheit 308 ein Maschinenlernmodell 310 oder einen Algorithmus, eine Trainingsdatenmenge 312 für das Maschinenlernmodell 310, einen unverarbeiteten Quellendatensatz 315 speichern. Das Modell 310 kann ein Faltungs-Neuronalnetz umfassen, so wie es in der vorliegenden Offenbarung beschrieben und in
2 dargestellt wird. Außerdem kann die Trainingsdatenmenge 312 Merkmale und den Merkmalextraktor umfassen, wie in der vorliegenden Offenbarung beschrieben und in2 ,4 ,6 ,7 ,8 ,9 und10 dargestellt. Und die unverarbeitete Quelle 315 kann Daten von mehreren Eingangsmodalitäten umfassen, wie in der vorliegenden Offenbarung beschrieben und in6 ,11 ,12 ,13 ,14 ,15 und16 dargestellt. - Das Datenverarbeitungssystem 302 kann eine Netzwerkschnittstellenvorrichtung 322 umfassen, die dafür ausgelegt ist, Kommunikation mit externen Systemen und Vorrichtungen bereitzustellen. Zum Beispiel kann die Netzwerkschnittstellenvorrichtung 322 eine drahtgebundene und/oder drahtlose Ethernet-Schnittstelle umfassen, so wie sie von der Standardfamilie IEEE 802.11 (Institute of Electrical and Electronics Engineers) definiert wird. Die Netzwerkschnittstellenvorrichtung 322 kann eine Mobilfunk-Kommunikationsschnittstelle zur Kommunikation mit einem Mobilfunknetz (z. B. 3G, 4G, 5G) umfassen. Die Netzwerkschnittstellenvorrichtung 322 kann ferner dafür ausgelegt sein, eine Kommunikationsschnittstelle zu einem externen Netzwerk 324 oder einer Cloud bereitzustellen.
- Das externe Netzwerk 324 kann als World-Wide Web oder das Internet bezeichnet werden. Das externe Netzwerk 324 kann ein Standard-Kommunikationsprotokoll zwischen Datenverarbeitungsvorrichtungen herstellen. Das externe Netzwerk 324 kann leichten Austausch von Informationen und Daten zwischen Datenverarbeitungsvorrichtungen und Netzwerken erlauben. Mit dem externen Netzwerk 324 können sich ein oder mehrere Server 330 in Kommunikation befinden.
- Das Datenverarbeitungssystem 302 kann eine Eingabe/Ausgabe- bzw. E/A-Schnittstelle 320 umfassen, die dafür ausgelegt sein kann, digitale und/oder analoge Eingaben und Ausgaben bereitzustellen. Die E/A-Schnittstelle 320 kann zusätzliche serielle Schnittstellen zur Kommunikation mit externen Vorrichtungen umfassen (z. B. eine USB-Schnittstelle (Universal Serial Bus)).
- Das Datenverarbeitungssystem 302 kann eine Mensch-Maschine-Schnittstellen- bzw. HMI-Vorrichtung 318 umfassen, die eine beliebige Vorrichtung umfassen kann, die es dem System 300 ermöglicht, Steuereingaben zu empfangen. Beispiele für Eingabevorrichtungen wären Menschen-Schnittstelleneingänge wie Tastaturen, Mäuse, Touchscreens, Spracheingabevorrichtungen und andere ähnliche Vorrichtungen. Das Datenverarbeitungssystem 302 kann eine Anzeigevorrichtung 332 umfassen. Das Datenverarbeitungssystem 302 kann Hardware und Software zum Ausgeben von Grafik- und Textinformationen an die Anzeigevorrichtung 332 umfassen. Die Anzeigevorrichtung 332 kann einen elektronischen Anzeigebildschirm, einen Projektor, einen Drucker oder eine beliebige andere geeignete Vorrichtung zum Anzeigen von Informationen für einen Benutzer oder Bediener umfassen. Das Datenverarbeitungssystem 302 kann ferner dafür ausgelegt sein, Interaktion mit Fern-HMI- und Fern-Anzeigevorrichtungen über die Netzwerkschnittstellenvorrichtung 322 zu erlauben.
- Das System 300 kann unter Verwendung eines oder mehrerer Datenverarbeitungssysteme implementiert werden. Obwohl das Beispiel ein einziges Datenverarbeitungssystem 302 abbildet, das alle beschriebenen Merkmale implementiert, ist beabsichtigt, dass verschiedene Merkmale und Funktionen getrennt und durch mehrere Datenverarbeitungseinheiten in Kommunikation miteinander implementiert werden können. Die konkrete ausgewählte Systemarchitektur kann von vielfältigen Faktoren abhängen.
- Das System 300 kann einen Maschinenlernalgorithmus 310 implementieren, der dafür ausgelegt ist, die unverarbeitete Quellendatenmenge 315 zu analysieren. Die unverarbeitete Quellendatenmenge 315 kann unverarbeitete bzw. Roh-Sensordaten umfassen, die eine Eingangsdatenmenge für ein Maschinenlernsystem repräsentieren können. Die unverarbeitete Quellendatenmenge 315 kann Video, Videosegmente, Bilder, Informationen auf Textbasis und unverarbeitete oder teilweise verarbeitete Sensordaten (z.B. eine Radarkarte von Objekten) umfassen. In einigen Beispielen kann der Maschinenlernalgorithmus 310 ein Neuronalnetzalgorithmus sein, der dafür ausgelegt ist, eine vorbestimmte Funktion auszuführen. Zum Beispiel kann der Neuronalnetzalgorithmus in Kraftfahrzeuganwendungen dafür ausgelegt sein, Fußgänger in Videobildern zu identifizieren.
- Das Computersystem 300 kann eine Trainingsdatenmenge 312 für den Maschinenlernalgorithmus 310 speichern. Die Trainingsdatenmenge 312 kann eine Menge von zuvor konstruierten Daten zum Training des Maschinenlernalgorithmus 310 repräsentieren. Die Trainingsdatenmenge 312 kann von dem Maschinenlernalgorithmus 310 zum Lernen von einem Neuronalnetzalgorithmus zugeordneten Gewichtsfaktoren verwendet werden. Die Trainingsdatenmenge 312 kann eine Menge von Quellendaten umfassen, die entsprechende Ergebnisse oder Resultate aufweist, die der Maschinenlernalgorithmus 310 über den Lernprozess zu duplizieren versucht. In diesem Beispiel kann die Trainingsdatenmenge 312 Quellenvideos mit und ohne Fußgänger und entsprechende Anwesenheits- und Ortsinformationen umfassen. Die Quellenvideos können verschiedene Szenarien umfassen, in denen Fußgänger identifiziert werden.
- Der Maschinenlernalgorithmus 310 kann unter Verwendung der Trainingsdatenmenge 312 als Eingabe in einem Lernmodus betrieben werden. Der Maschinenlernalgorithmus 310 kann über eine Anzahl von Iterationen unter Verwendung der Daten aus der Trainingsdatenmenge 312 ausgeführt werden. Mit jeder Iteration kann der Maschinenlernalgorithmus 310 interne Gewichtsfaktoren auf der Basis der erzielten Ergebnisse aktualisieren. Zum Beispiel kann der Maschinenlernalgorithmus 310 Ausgangsergebnisse (z.B. Annotationen) mit denen vergleichen, die in der Trainingsdatenmenge 312 enthalten sind. Da die Trainingsdatenmenge 312 die erwarteten Ergebnisse umfasst, kann der Maschinenlernalgorithmus 310 bestimmen, wann die Leistungsfähigkeit akzeptabel ist. Nachdem der Maschinenlernalgorithmus 310 ein vorbestimmtes Leistungsfähigkeitsniveau erreicht (z.B. 100% Übereinstimmung mit den der Trainingsdatenmenge 312 zugeordneten Ergebnissen), kann der Maschinenlernalgorithmus 310 unter Verwendung von Daten ausgeführt werden, die sich nicht in der Trainingsdatenmenge 312 befinden. Der trainierte Maschinenlernalgorithmus 310 kann auf neue Datenmengen angewandt werden, um annotierte Daten zu erzeugen.
- Der Maschinenlernalgorithmus 310 kann dafür ausgelegt werden, ein bestimmtes Merkmal in den unverarbeiteten Quellendaten 315 zu identifizieren. Die unverarbeiteten Quellendaten 315 können mehrere Instanzen oder Eingangsdatenmengen umfassen, wofür Annotationsergebnisse erwünscht sind. Zum Beispiel kann der Maschinenlernalgorithmus 310 dafür ausgelegt sein, die Anwesenheit eines Fußgängers in Videobildern zu identifizieren und die Vorfälle zu annotieren. Der Maschinenlernalgorithmus 310 kann dafür programmiert werden, die unverarbeiteten Quellendaten 315 zu verarbeiten, um die Anwesenheit der bestimmten Merkmale zu identifizieren. Der Maschinenlernalgorithmus 310 kann dafür ausgelegt sein, ein Merkmal in den unverarbeiteten Quellendaten 315 als ein vorbestimmtes Merkmal (z.B. einen Fußgänger) zu identifizieren. Die unverarbeiteten Quellendaten 315 können aus vielfältigen Quellen abgeleitet werden. Zum Beispiel können die unverarbeiteten Quellendaten 315 tatsächliche Eingangsdaten sein, die von einem Maschinenlernsystem gesammelt werden. Die unverarbeiteten Quellendaten 315 können zum Testen des Systems maschinenerzeugt werden. Beispielsweise können die unverarbeiteten Quellendaten 315 unverarbeitete Videobilder von einer Kamera umfassen.
- In dem Beispiel kann der Maschinenlernalgorithmus 310 die unverarbeiteten Quellendaten 315 verarbeiten und eine Angabe einer Repräsentation eines Bildes ausgeben. Die Ausgabe kann auch ergänzte Repräsentation des Bildes umfassen. Ein Maschinenlernalgorithmus 310 kann ein Konfidenzniveau oder einen Faktor für jede erzeugte Ausgabe erzeugen. Zum Beispiel kann ein Konfidenzwert, der eine vorbestimmte Hochkonfidenzschwelle überschreitet, angeben, dass der Maschinenlernalgorithmus 310 zuversichtlich ist, dass das identifizierte Merkmale dem bestimmten Merkmal entspricht. Ein Konfidenzwert von weniger als einer Niedrig-Konfidenzschwelle kann angeben, dass der Maschinenlernalgorithmus 310 eine gewisse Ungewissheit hat, dass das bestimmte Merkmal anwesend ist.
-
4 ist eine grafische Darstellung von Patch-Einbettungsgewichtsvisualisierungen 400 für einen ConvMixer-1024/20 mit Patchgröße 14 wie in Tabelle 1 beschrieben. - Beispielhafte Maschinenarchitektur und maschinen-lesbares Medium.
5 ist eine Blockdarstellung eines zur Implementierung der Systeme oder zur Ausführung der Verfahren, die hier offenbart werden, geeigneten elektronischen Datenverarbeitungssystems. Die Maschine von5 ist als selbständige Vorrichtung gezeigt, was für die Implementierung der Konzepte innerhalb der vorliegenden Offenbarung geeignet ist. Für die oben beschriebenen Serveraspekte können mehrere solche Maschinen verwendet werden, die in einem Datencenter, einem Teil einer Cloud-Architektur und so weiter operieren. Bezüglich Serveraspekten werden nicht alle der dargestellten Funktionen und Vorrichtungen benutzt. Zum Beispiel besitzen, obwohl ein System, eine Vorrichtung usw., womit ein Benutzer mit einem Server und/oder den Cloud-Architekturen in Interaktion tritt, einen Bildschirm, einen Berührungsschirmeingang usw. aufweisen kann, Server oft keine Bildschirme, Berührungsschirme, Kameras und so weiter und treten typischerweise mittels verbundener Systeme, die geeignete Eingabe- und Ausgabeaspekte aufweisen, mit Benutzern in Interaktion. Die nachfolgende Architektur sollte deshalb als mehrere Arten von Vorrichtungen und Maschinen einschließend aufgefasst werden und abhängig von dem Formfaktor und Zweck können verschiedene Aspekte in beliebiger konkreter Vorrichtung oder Maschine vorliegen oder nicht (zum Beispiel besitzen Server selten Kameras, während Wearables selten magnetische Datenträger umfassen). Die beispielhafte Erläuterung von5 ist jedoch dafür geeignet, es Fachleuten zu erlauben, zu bestimmen, wie die zuvor beschriebenen Ausführungsformen mit einer geeigneten Kombination von Hardware und Software zu verwenden sind, wobei eine angemessene Modifikation der dargestellten Ausführungsform für die konkrete Vorrichtung, Maschine usw. verwendet wird. - Obwohl nur eine einzige Maschine dargestellt ist, soll der Ausdruck „Maschine“ auch so aufgefasst werden, dass er eine beliebige Ansammlung von Maschinen umfasst, die einzeln oder zusammen eine Menge (oder mehrere Mengen) von Anweisungen ausführen, um eine beliebige oder mehrere der hier besprochenen Methodologien auszuführen.
- Das Beispiel für die Maschine 500 umfasst mindestens einen Prozessor 502 (z.B. Steuerung, Mikrocontroller, eine CPU (Zentralverarbeitungseinheit), eine GPU (Grafikverarbeitungseinheit), eine TPU (Tensorverarbeitungseinheit), eine APU (Advanced Processing Unit) oder Kombinationen davon), einen oder mehrere Speicher, wie etwa einen Hauptspeicher 504, einen statischen Speicher 506 oder andere Arten von Speicher, die über die Verbindung 508 miteinander kommunizieren. Die Verbindung 508 kann ein Bus oder eine andere Art von Verbindungskanal sein. Die Maschine 500 kann weitere optionale Aspekte umfassen, wie etwa eine Grafikanzeigeeinheit 510, die eine beliebige Art von Anzeige umfasst. Die Maschine 500 kann auch andere optionale Aspekte umfassen, wie etwa eine alphanumerische Eingabevorrichtung 512 (z.B. eine Tastatur, ein Touchscreen und so weiter), eine Benutzeroberflächen- bzw. Ul-Navigationsvorrichtung 514 (z.B. eine Maus, ein Trackball, eine Berührungsvorrichtung und so weiter), eine Speicherungseinheit 516 (z.B. ein Laufwerk oder andere Speicherungsvorrichtung(en)), eine Signalerzeugungsvorrichtung 518 (z.B. einen Lautsprecher), Sensor(en) 521 (z.B. globaler Positionsbestimmungssensor, Beschleunigungsmesser, Mikrofon(e), Kamera(s) und so weiter), eine Ausgabesteuerung 528 (z.B. eine drahtgebundene oder drahtlose Verbindung zur Verbindung und/oder Kommunikation mit einer oder mehreren anderen Vorrichtungen, wie etwa einem USB (Universal Serial Bus), NFC( Nahfeldkommunikation), IR (Infrarot), ein serieller/paralleler Bus usw.) und eine Netzwerkschnittstellenvorrichtung 520 (z.B. drahtgebunden und/oder drahtlos) zur Verbindung mit einem oder mehreren Netzwerken 526 und/oder zur Kommunikation über diese.
- Die verschiedenen Speicher (d.h. 504, 506 und/oder Speicher von Prozessor(en) 502) und/oder die Speicherungseinheit 516 können eine oder mehrere Mengen von Anweisungen und Datenstrukturen (z.B. Software) 524 speichern, die eine beliebige oder mehrere der hier beschriebenen Methodologien oder Funktionen realisieren oder von ihnen benutzt werden. Diese Anweisungen bewirken, wenn sie durch Prozessor(en) 502 ausgeführt werden, verschiedene Operationen zur Implementierung der offenbarten Ausführungsformen.
-
6 ist eine grafische Darstellung eines Bildes 600 mit einer Länge 602 und Breite 604 (hier als n × n) gezeigt, einer Patchgröße, die durch eine Patchlänge 606 und Patchbreite 608 (hier als p × p gezeigt) definiert ist, und Kanaltiefe 610 (hier als c gezeigt). Wenn zum Beispiel das Bild ein auf RGB (rot grün blau) basierendes Bild ist, könnte c die Anzahl der Eingangskanäle oder 3 für RGB sein. Wenn das Bild jedoch abhängig davon, wie es repräsentiert wird, mehr oder weniger Kanäle aufweisen kann. Man betrachte ein Bild, das etwa erzeugt wird durch Schall, IR, RADAR, LIDAR, magnetische Bildgebung usw. können mehr als 3 Kanäle aufweisen. -
7 ist eine grafische Darstellung von Gewichtsvektoren für die Patcheinbettungen des Bildes von6 . Hier ist h die Anzahl der Kanäle in der Merkmalabbildung, die von der Architektur abhängt. Da Patch und Stride gleich sind, besteht keine Überlappung, und y1 würde dem oberen linken Patch des Bildes entsprechen, y2 dem oberen mittleren Patch des Bildes, y3 dem oberen rechten Patch des Bildes und so weiter. -
8 ist eine grafische Darstellung eines 2-dimensionalen Layouts 800 der Kanaltiefe für jedes Patch. Ein Vorteil des Betrachtens eines 2D-Layouts umfasst, dass die punktweise Faltung an jedem Pixel getrennt wird und deshalb die räumliche Beziehung nicht berücksichtigt wird, um somit Dicht-Matrixmultiplikation zu erlauben, die effizienter sein kann. -
9 ist eine grafische Darstellung eines 3-dimensionalen Layouts 900 für jede Merkmalabbildung mit Kanaltiefe. Das 3D-Layout hält räumliche Beziehung aufrecht, so dass die Tiefe nun durch h repräsentiert wird, das heißt, die Dimension der Patcheinbettungen, oder anders ausgedrückt, h ist die Anzahl der Kanäle in der Merkmalabbildung. -
10 ist eine grafische Darstellung spezifischer Teilmengen von 64 tiefenweisen Faltungskernen aus schrittweise tieferen Schichten von ConvMixer-1536/20. Die Bilder entsprechen (a) Schicht 1, (b) Schicht 4, (c) Schicht 6, (d) Schicht 9, (e) Schicht 11, (f) Schicht 13, (g) Schicht 15, (h) Schicht 17 und (i) Schicht 19. - Faltungen wurden zunehmend durch Selbst-Aufmerksamkeits- und allgemeinere lineare Transformationen ersetzt, oft in Netzen, die auf das traditionelle pyramidenförmige Design verzichten. Diese Netze haben ein nachsichtigeres induktives Bias und erfordern folglich oft viel mehr Daten. Diese Netze tendieren dazu, Gewichtsteilen zu vergrößern, Pooling zu vermeiden und Informationen von entfernten räumlichen Orten zu mischen. Die vorliegende Offenbarung präsentiert eine einfache und dennoch wettbewerbsfähige Voll-Faltungs-Architektur, die die Eigenschaften beibehält, die unter Verwendung der Selbst-Aufmerksamkeits- und allgemeineren linearen Transformationen aufgeopfert wurden, erhöhen aber die Dateneffizienz und Trainierbarkeit. Die einfache und dennoch wettbewerbsfähige Voll-Faltungs-Architektur „ConvMixer“ erreicht die hohe Genauigkeit an ImageNet-1K und CIFAR-10 ohne Vortraining und typischerweise mit einem Bruchteil der Parameter. Man erreicht zum Beispiel 96,3% Genauigkeit an CIFAR-10 mit 672K Parametern und 77,5% Top-1-Genauigkeit an ImageNet-1K mit 14,6M Parametern.
- Faltungs-Neuronalnetze waren viele Jahre lang der dominante Ansatz bei Computervisions-Aufgaben. In der letzten Zeit hat sich mit dem Aufkommen von Visionstransformierern das Interesse jedoch auf alternative Architekturen verlagert, mit einem großen Fokus auf Selbst-Aufmerksamkeit, die anstelle von Faltung neuartige Operatoren präsentieren. Diese Architekturen sind oft einfacher als moderne Faltungsnetze: Sie schließen z.B. tendenziell Abwärtsabtastung (wie Striding und Pooling) aus und umfassen stattdessen identische Blöcke, die wiederholt auf Merkmalabbildungen angewandt werden, die alle dieselbe Größe aufweisen (oder isotropisch sind).
- Dieses Abkommen von relativ komplexen Faltungsnetzen geht mit der Einführung von Patcheinbettungen einher. Das heißt, die erste Schicht ist eine lineare Transformation, die identisch auf sich nicht überlappende rechteckige Regionen der Eingabe angewandt werden (
6 ). Dann verarbeitet das Modell die Patcheinbettungen anstelle des Originalbildes (7 ). - Bei diesen neuen Architekturen lag das Hauptaugenmerk primär auf unkonventionellen und oft ausdrucksstärkeren Operatoren wie Selbst-Aufmerksamkeit oder einfach Mehrschicht-Perzeptronen. Bei Computervisions-Aufgaben wurden diese neuen Operationen jedoch gleichzeitig mit neuartigen Netzentwürfen eingeführt. Die vorliegende Offenbarung veranschaulicht den Vorteil des Entflechtens des Effekts der Operatoren von dem der Architektur. Selbst-Aufmerksamkeit wird oft in traditionell entworfene neuronale Netze oder fusionierte Faltung und Selbst-Aufmerksamkeit gelegt. Die vorliegende Offenbarung präsentiert nur traditionelle Operationen (d.h., Faltung) in isotropischen Architekturen.
- Die vorliegende Offenbarung präsentiert eine äußerst einfache Architektur im Geiste der Visionstransformierer unter Verwendung von Patcheinbettungen, die nur standardmäßige tiefenweise und punktweise Faltungsoperationen verwenden.
- Trotz ihrer Einfachheit und ihrer Verwendung von theoretisch weniger kostspieligen Faltungsschichten ist diese Architektur mit jetzt-kanonischen Modellen wie ResNet und DeiT wettbewerbsfähig, sogar wenn alle in derselben modernen Pipeline trainiert werden (d.h. nahezu Vorgabeeinstellungen in timm).
- Dadurch werden die Vorteile der neuen einfachen isotropischen Architekturentwürfe hervorgehoben, die in vielen neueren Arbeiten benutzt werden. Um zu betonen, dass es Patcheinbettungen sind, die diesen Netzentwurf ermöglichen, überdies: Statt schrittweisem Abwärtsabtasten wandelt die Patch-Schicht die Eingaben sofort in eine vernünftige vorbestimmte Größe um, die im ganzen Netz aufrechterhalten wird.
- Dieses Modell mit der Bezeichnung ConvMixer besteht aus Patcheinbettungen, gefolgt von wiederholten Anwendungen eines einfachen Voll-Faltungs-Blocks.
-
-
- Nach mehreren Anwendungen dieses Blocks führt das System dann globales Pooling durch, um einen Merkmalvektor der Größe h zu erhalten, der dann mit einem linearen Klassifizierer klassifiziert werden kann.
- Entwurfsparameter. Eine Instanziierung von ConvMixer hängt von vier Parametern ab: (1) der verborgenen Dimension h (d.h., der Dimension der Patcheinbettungen), (2) der Tiefe d oder der Anzahl der Wiederholungen des Voll-Faltungs-Blocks, (3) der Patchgröße p, die die interne Auflösung des Modells steuert, (4) der Kerngröße k der tiefenweisen Faltungsschicht. Die Nomenklatur von ConvMixers basiert gemäß ihrer verborgenen Dimension und Tiefe, wie ConvMixer-h/d. Wie später in der vorliegenden Offenbarung veranschaulicht wird, funktionieren ConvMixers am besten mit ungewöhnlich großen Kerngrößen und kleinen Patchgrößen. Die (beabsichtigte) Eingangsgröße n, dividiert durch die Patchgröße p, wird als die interne Auflösung bezeichnet.
- Motivation. Diese Architektur basiert auf dem Prinzip des Mischens. Man betrachte zum Beispiel tiefenweise Faltung zum Mischen von räumlichen Orten und punktweise Faltung zum Mischen von Kanalorten. Ein Grundprinzip ist, dass MLPs und Selbst-Aufmerksamkeit entfernte räumliche Orte mischen können, d.h., sie können ein beliebig großes rezeptives Feld aufweisen. Folglich kann man hypothetisieren, dass zum Mischen entfernter räumlicher Orte große Kerne entscheidend wären.
- Patcheinbettungen. Einfach eine Faltung mit Kerngröße p, Stride p und h Kernen. h ist die Patcheinbettungsdimension. Bei einer anderen Ausführungsform kann dies zu einer h × (n/p)2-Matrix umgeformt werden. Somit bleiben die räumlichen Daten intakt und funktionieren mit h × n/p × n/p-Tensoren. Da dieses Modell durchweg dieselbe interne Auflösung aufrechterhält, was durch Patcheinbettungen ermöglicht wird, kann es als isotropisch bezeichnet werden.
- Während Selbst-Aufmerksamkeit und MLPs (Mehrschicht-Perzeptrons) flexibler sind, um somit große rezeptive Felder und inhaltsbewusstes Verhalten zu erlauben, hat eine Faltung mehrere Vorteile. Ihr induktives Bias, das Translationsinvarianz umfasst, ist geeignet für Visionsaufgaben und führt zu hoher Dateneffizienz. Ferner kann Voll-Faltung auf Eingaben variabler Größe angewandt werden, was in der Praxis nützlich ist und Trainingsbeschleunigungen erlaubt; Faltung ist sehr gut für Optimierungen auf niedriger Ebene geeignet.
- Es folgt eine Implementierung einer Ausführungsform dieses Modells in PyTorch, mit der Fähigkeit zu 81,4% Top-1-Genauigkeit an ImageNet mit minimaler Abstimmung. Die Module Reduce und Residual befinden sich in der einops-Package und sind nachfolgend gezeigt.
1 def ConvMixer(dim, depth, kern_größe =9, patch_größe=7, n_classes=1000): 2 return nn.Sequential( 3 nn.Conv2d(3, dim, kern_größe =patch_größe, stride=patch_größe), 4 nn.GELU(), nn.BatchNorm2d(dim), 5 *(nn.Sequential( 6 Residual(nn.Sequential( 7 nn.Conv2d(dim, dim, kern_größe , groups=dim, padding="same"), 8 nn.GELU(), nn.BatchNorm2d(dim))), 9 nn.Conv2d(dim, dim, kern_größe =1), 10 nn.GELU(), nn.BatchNorm2d(dim) 11 ) for i in range(depth)], 12 Reduce("b c h w → b c", "mean"), 13 nn.Linear(dim, n_classes))
Dies ist eine beispielhafte PyTorch-Implementierung von ConvMixer mit h = dim, d = depth, p = patch_größe, k = kern_größe.
Bei einer Ausführungsform wurde ein Experiment auf kleinem Maßstab an CIFAR-10 durchgeführt, wobei ConvMixers über 96% Genauigkeit mit sogar nur 0,7M Parametern erreichen. Dadurch wurde die Dateneffizienz eines induktiven Faltungs-Bias demonstriert. Es wurden mehrere Konfigurationen für Restverbindungen verwendet, und es wurde entdecket, dass der Ausschluss einer nach punktweiser Faltung (Gl. 3) zu schnellerer Konvergenz führte. Ersetzung von Batch Norm mit LayerNorm verringerte die Genauigkeit um ≈ 1%. Siehe Tabelle 1. Tabelle 1: Kleine Ablationsstudie des Trainierens eines ConvMixer-256/8 an CIFAR-10
Ablation von ConvMixer-256/8 an CIFAR-10 | |
Ablation | CIFAR-10 Gen. (%) |
Grundlinie | 95,88 |
BatchNorm → LayerNorm | 94,44 |
GELU → ReLU | 95,51 |
- Mixup und CutMix | 95,92 |
- Zufalls-Löschung | 95,24 |
- RandAug | 92,86 |
- Zufalls-Skalierung | 86,24 |
- Gradientennorm-Clipping | 86,33 |
Ergebnisse. Ein ConvMixer-1536/20 mit etwa 50M Parametern erreichte 81,4% Top-1-Genauigkeit an ImageNet, und ein ConvMixer-768/32 mit 20M Parametern erreichte etwa 80,2% (siehe Tabelle 1). Breitere ConvMixer scheinen in weniger Epochen zu konvergieren, sind aber speicher- und rechenintensiv. ConvMixers mit kleineren Patches funktionierten wesentlich besser. Größere Patches erfordern tiefere ConvMixers. Obwohl man erwarten kann, dass große Kerne entscheidend sind, empfing jedoch ConvMixer-1536/20 81,37% Genauigkeit mit k = 9 und 80,4% mit k = 3, was ein kleinerer Effekt als erwartet ist. Im Hinblick auf Parameter ist Setzen von k = 9 ein guter Kompromiss, aber Durchsatz und Trainingszeit sind etwa zweimal so schnell für k = 3.
Tabelle 2 zeigt, dass ConvMixers wettbewerbsfähige Genauigkeiten für ein gegebenes Parameterbudget erreichen: DeiT-B erhält 81,8% Genauigkeit für 86M Param., während ConvMixer-1536/20 81,37% Genauigkeit für 52M Param. erhält. Derselbe ConvMixer übertrifft auch ResNet-152, trainiert auf dieselbe Weise, mit 79,64% Genauigkeit und 60M Param. Ein vergleichbarer ConvMixer ist jedoch 4× langsamer als ResNet und bis zu 7× langsamer als DeiT. Zukünftige Optimierungen können dies ändern. Der Grund dafür liegt hauptsächlich darin, dass ConvMixer p = 7 benutzt hat, während DeiT p = 16 benutzte, wodurch dieser Vergleich begrenzt wird. Für einen engeren Vergleich erhält ConvMixer-512/16 mit p = 16 und 5,8M Parametern 72,6% Genauigkeit, während DeiT-Ti mit 5M Parametern 72,2% Genauigkeit erhält; der ConvMixer ist ≈ 2,5× langsamer. Für ähnliche Patchgröße und Parameter ist ConvMixer-768/32 etwas genauer als ResMLP-S12/8, hat aber 0,3× den Durchsatz. Tabelle 2: Alle Durchsätze, gemessen an einer RTX8000-GPU unter Verwendung der Batch-Größe 64.
Vergleich mit anderen einfachen Modellen, trainiert an ImageNet-1k nur mit der Eingangsgröße 224. | ||||||
Netz | PatchGröße | Anz. Param. (×106) | Durchsatz (Bld/s) | Anz. Epochen | Batch-Größe | ImNet Top-1 (%) |
ConvMixer-1536/20 | 7 | 51,6 | 89 | 150 | - | 81,37 |
ConvMixer-768/32 | 7 | 21,1 | 203 | 300 | - | 80,16 |
ConvMixer-1024/16 | 7 | 19,4 | 173 | 110 | - | 79,45 |
ConvMixer-1024/20 | 14 | 24,4 | 520 | 150 | - | 76,94 |
ConvMixer-1512/16 | 16 | 5,8 | 1129 | 90 | - | 72,60 |
ResNet-152 | - | 60,19 | 872 | 150 | - | 79,64 |
ResNet-101 | - | 44,55 | 1040 | 150 | - | 78,33 |
ResNet-50 | - | 25,56 | 1942 | 150 | - | - |
DeiT-Ti | 16 | 5 | 2727 | 300 | - | 72,2 |
DeiT-S | 16 | 22 | 1491 | 300 | - | 79,8 |
DeiT-B | 16 | 86 | 703 | 300 | - | 81,8 |
ResMLP-B24 | 16 | 116 | 1191 | 400 | - | 81,0 |
ResMLP-S12/8 | 8 | 22,1 | 638 | 400 | - | 79,1 |
ResMLP-B24/8 | 8 | 129,1 | 140 | 400 | - | 81,0 |
Vit-B/16 | 16 | 86 | 704 | 300 | 4096 | 77,9 |
Mixer-B/16 | 16 | 59 | 816 | 300 | 4096 | 76,44 |
MobileNetv3 large/1,0 MobileNetv3 small/1,0 | 5,4 | 3466 | 75,2 | |||
2,5 | 4156 | 67,5 | ||||
Isotropic MobileNetv3 Isotropic MobileNetv3 | 8 | 20 | 80,6 | |||
16 | 20 | 77,6 |
Isotropische Architekturen. Visionstransformierer haben ein neues Paradigma isotropischer Architekturen inspiriert, die Patcheinbettungen für die erste Schicht benutzen. Diese Modelle sehen wiederholten Transformierer-Codierer-Blöcken ähnlich, wobei verschiedene Operationen die Selbst-Aufmerksamkeits- und MLP-Operationen ersetzen. Zum Beispiel ersetzt MLP-Mixer beides mit über verschiedene Dimensionen angewandten MLPs (d.h., räumliches und Kanal-Ortsmischung); ResMLP ist eine dateneffiziente Variante dieses Prinzips. CycleMLP, gMLP und der Visionspermutator ersetzen einen dieser Blöcke oder beide mit verschiedenen neuartigen Operationen. Diese sind alle relativ leistungsstark, was typischerweise der neuartigen Wahl von Operationen zugeschrieben wird. Eine Studie aus der Zeit vor Visionstransformierern untersucht isotropische (oder „isometrische“) MobileNets und implementiert sogar Patcheinbettungen unter einem anderen Namen. Ihre Architektur wiederholt einfach einen isotropischen MobileNetv3-Block. Sie identifizieren eine Kompromiss zwischen Patchgröße und Genauigkeit, der mit den Erfahrungen der Erfinder übereinstimmt, und trainieren ähnlich leistungsstarke Modelle (siehe Anhang 2). Ihr Block ist jedoch wesentlich komplexer als hier; die vorliegende Arbeit zeichnet sich durch Einfachheit und Motivation aus. Es werden die Gemeinsamkeiten dieser Arbeiten betont: Patcheinbettungen ermöglichen eine einfache Architektur.
Visionstransformierer-Leistungsfähigkeit kann vergrößert werden, indem Standard-Patcheinbettungen mit einem anderen Stamm ersetzt werden, zum Beispiel einem Standard-Faltungs-Stamm, oder durch wiederholtes Kombinieren von nahegelegenen Patcheinbettungen. Dies kann jedoch einfach über komplexere Stämme faltungs-artige induktive Biasse, d.h., Lokalität, zu Visionstransformierern hinzufügen. Anders ausgedrückt, verflechten die Arbeiten die Entfernung von Patcheinbettungen und die Vergrößerung der Lokalität von Tokens, was mittels anderer Mittel geschehen kann, wie etwa Verwendung von 3D-Layout-Patcheinbettungen mit lokalitätserhaltenden Operationen wie Faltung.
Die oben präsentierte Architektur kann in mehreren Ausführungsformen verwendet werden, bei denen Bilddaten oder Modalitäten von Bilddaten verwendet werden. 11-16 veranschaulichen beispielhafte Ausführungsformen, aber die Konzepte der vorliegenden Offenbarung können auf zusätzliche Ausführungsformen angewandt werden. Einige beispielhafte Ausführungsformen wären industrielle Anwendungen, bei denen die Modalitäten Video, Gewicht, IR, 3D-Kamera und Schall umfassen können; Elektrowerkzeug- oder Geräteanwendungen, bei denen die Modalitäten Drehmoment, Druck, Temperatur, Distanz oder Schall umfassen können; medizinische Anwendungen, bei denen die Modalitäten Ultraschall, Video, CAT-Scan, MRI oder Schall umfassen können; robotische Anwendungen, bei denen die Modalitäten Video, Ultraschall, LIDAR, IR oder Schall umfassen können; und Sicherheitsanwendungen, bei denen die Modalitäten Video, Schall, IR oder LIDAR umfassen können. Die Modalitäten können diverse Datenmengen aufweisen, zum Beispiel kann eine Videodatenmenge ein Bild umfassen, eine LIDAR-Datenmenge kann eine Punktwolke umfassen, und eine Mikrofon-Datenmenge kann eine Zeitreihe umfassen.
Bei Ausführungsformen, bei denen das Fahrzeug ein mindestens teilweise autonomes Fahrzeug ist, kann der Aktor 1106 in einem Bremsensystem, einem Antriebssystem, einem Motor, einem Antriebsstrang oder einem Lenksystem des Fahrzeugs realisiert sein. Aktorsteuerbefehle können so bestimmt werden, dass der Aktor 1106 so gesteuert wird, dass das Fahrzeug Kollisionen mit detektierten Objekten vermeidet. Detektierte Objekte können auch abhängig davon klassifiziert werden, was der Klassifizierer es als am wahrscheinlichsten ansieht, wie etwa Fußgänger oder Bäume. Die Aktorsteuerbefehle können abhängig von der Klassifikation bestimmt werden. Zum Beispiel kann das Steuersystem 1102 ein Bild (z.B. optisch, akustisch, thermisch) oder eine andere Eingabe von dem Sensor 1104 zu einer oder mehrere Hintergrundklassen und einer oder mehreren Objektklassen (z.B. Fußgänger, Fahrräder, Fahrzeuge, Bäume, Verkehrsschilder, Ampeln, Straßenschutt oder Bautonnen/-kegel usw.) segmentieren und Steuerbefehle zu dem Aktor 1106 senden, der in diesem Fall in einem Bremsensystem oder Antriebssystem realisiert ist, um Kollision mit Objekten zu vermeiden. In einem anderen Beispiel kann das Steuersystem 1102 ein Bild zu einer oder mehreren Hintergrundklassen und einer oder mehreren Markiererklassen (z.B. Spurmarkierungen, Leitplanken, Rand einer Straße, Fahrzeugspuren usw.) segmentieren und Steuerbefehle zu dem Aktor 1106 senden, der hier in einem Lenksystem realisiert ist, um zu bewirken, dass das Fahrzeug Überquerung von Markierungen vermeidet und in einer Spur bleibt. In einem Szenario, bei dem eine adversarische Attacke auftreten kann, kann das oben beschriebene System ferner dafür trainiert werden, Objekte besser zu detektieren oder eine Änderung der Beleuchtungsbedingungen oder eines Winkels für einen Sensor oder eine Kamera am Fahrzeug zu identifizieren.
Bei anderen Ausführungsformen, bei denen das Fahrzeug 1100 ein mindestens teilweise autonomer Roboter ist, kann das Fahrzeug 1100 ein mobiler Roboter sein, der dafür ausgelegt ist, eine oder mehrere Funktionen auszuführen, wie etwa Fliegen, Schwimmen, Tauchen und Schreiten. Der mobile Roboter kann ein mindestens teilweise autonomer Rasenmäher oder ein mindestens teilweise autonomer Reinigungsroboter sein. Bei solchen Ausführungsformen kann der Aktorsteuerbefehl 1106 so bestimmt werden, dass eine Antriebseinheit, Lenkeinheit und/oder Bremseneinheit des mobilen Roboters so gesteuert werden kann, dass der mobile Roboter Kollisionen mit identifizierten Objekten vermeiden kann.
Bei einer anderen Ausführungsformen ist das Fahrzeug 1100 ein mindestens teilweise autonomer Roboter in Form eines Gartenroboters. Bei einer solchen Ausführungsform kann das Fahrzeug 1100 einen optischen Sensor als Sensor 1104 verwenden, um einen Zustand von Pflanzen in einer Umgebung in der Nähe des Fahrzeugs 1100 zu bestimmen. Der Aktor 1106 kann eine Düse sein, die dafür ausgelegt ist, Chemikalien zu sprühen. Abhängig von einer identifizierten Spezies und/oder einem identifizierten Zustand der Pflanzen kann der Aktorsteuerbefehl 1102 so bestimmt werden, dass bewirkt wird, dass der Aktor 1106 die Pflanzen mit einer geeigneten Menge geeigneter Chemikalien besprüht.
Das Fahrzeug 1100 kann ein mindestens teilweise autonomer Roboter in Form eines Haushaltsgeräts sein. Nicht einschränkende Beispiele für Haushaltsgeräte wären eine Waschmaschine, ein Herd, ein Backofen, eine Mikrowelle oder ein Geschirrspüler. In einem solchen Fahrzeug 1100 kann der Sensor 1104 ein optischer oder akustischer Sensor sein, der dafür ausgelegt ist, einen Zustand eines Objekts zu detektieren, das Verarbeitung durch das Haushaltsgerät unterzogen werden soll. Falls das Haushaltsgerät zum Beispiel eine Waschmaschine ist, kann der Sensor 1104 einen Zustand der Wäsche in der Waschmaschine detektieren. Auf der Basis des detektierten Zustands der Wäsche kann ein Aktorsteuerbefehl bestimmt werden.
Bei dieser Ausführungsform würde das Steuersystem 1102 Bild-(optische oder akustische) und Annotationsinformationen von dem Sensor 1104 empfangen. Unter Verwendung dieser und einer vorgeschriebenen Anzahl von Klassen k und des Ähnlichkeitsmaßes K , die im System gespeichert sind, kann das Steuersystem 1102 das in 10 beschriebene Verfahren verwenden, um jedes Pixel des von dem Sensor 1104 empfangenen Bildes zu klassifizieren. Auf der Basis dieser Klassifikation können Signale zu dem Aktor 1106 gesendet werden, um zum Beispiel zu bremsen oder zu lenken, um Kollisionen mit Fußgängern oder Bäumen zu vermeiden, zu lenken, um zwischen detektierten Spurmarkierungen zu bleiben, oder beliebige der durch den Aktor 1106 ausgeführten Aktionen wie oben beschrieben. Signale können auch auf der Basis dieser Klassifikation zu dem Sensor 1104 gesendet werden, um zum Beispiel eine Kameralinse zu fokussieren oder zu bewegen.
Der Sensor 1204 des Systems 1200 (z.B. Produktionsmaschine) kann ein Wellenenergiesensor sein, wie etwa ein optischer oder akustischer Sensor oder ein Sensorarray, ausgelegt zum Erfassen einer oder mehrerer Eigenschaften eines hergestellten Produkts. Das Steuersystem 1202 kann dafür ausgelegt sein, aus einer oder mehreren der erfassten Eigenschaften einen Zustand eines hergestellten Produkts zu bestimmen. Der Aktor 1206 kann dafür ausgelegt sein, das System 1202 (z.B. Produktionsmaschine) abhängig von dem bestimmten Zustand des hergestellten Produkts 104 für einen nachfolgenden Herstellungsschritt des hergestellten Produkts zu steuern. Der Aktor 1206 kann dafür ausgelegt sein, Funktionen von 11 (z.B. Produktionsmaschine) an nachfolgenden hergestellten Produkten des Systems (z.B. Produktionsmaschine) abhängig von dem bestimmten Zustand des vorherigen hergestellten Produkts zu steuern.
Bei dieser Ausführungsform würde das Steuersystem 1202 Bild- (z.B. optische oder akustische) und Annotationsinformationen von dem Sensor 1204 empfangen. Unter Verwendung dieser und einer vorgeschriebenen Anzahl von Klassen k und des Ähnlichkeitsmaßes K , die im System gespeichert sind, kann das Steuersystem 1202 das in 10 beschriebene Verfahren verwenden, um jedes Pixel des von dem Sensor 1204 empfangenen Bildes zu klassifizieren, um zum Beispiel ein Bild eines hergestellten Objekts in zwei oder mehr Klassen zu segmentieren, um Anomalien in dem hergestellten Produkt zu detektieren, um die Anwesenheit von Objekten an dem hergestellten Produkt, wie etwa Strichcodes, sicherzustellen. Auf der Basis dieser Klassifikation können Signale zu dem Aktor 1206 gesendet werden. Wenn das Steuersystem 1202 zum Beispiel Anomalien in einem Produkt detektiert, kann der Aktor 1206 anomale oder defekte Produkte von der Linie markieren oder entfernen. In einem anderen Beispiel kann, wenn das Steuersystem 1202 die Anwesenheit von Strichcodes oder anderen an dem Produkt zu platzierenden Objekten detektiert, der Aktor 1106 diese Objekte anbringen oder sie entfernen. Auf Basis dieser Klassifikation können auch Signale zu dem Sensor 1204 gesendet werden, zum Beispiel, um eine Kameralinse zu fokussieren oder zu bewegen.
Der Sensor 1304 des Elektrowerkzeugs 1300 kann ein Wellenenergiesensor sein, wie etwa ein optischer oder akustischer Sensor, der dafür ausgelegt ist, eine oder mehrere Eigenschaften einer Arbeitsoberfläche und/oder einer in die Arbeitsoberfläche getriebenen Befestigungsvorrichtung zu erfassen. Das Steuersystem 1302 kann dafür ausgelegt sein, einen Zustand der Arbeitsoberfläche und/oder der Befestigungsvorrichtung relativ zu der Arbeitsoberfläche aus einer oder mehreren der erfassten Eigenschaften zu bestimmen.
Bei dieser Ausführungsform würde das Steuersystem 1302 Bild- (z.B. optische oder akustische) und Annotationsinformationen von dem Sensor 1304 empfangen. Unter Verwendung dieser und einer vorgeschriebenen Anzahl von Klassen k und des Ähnlichkeitsmaßes K , die im System gespeichert sind, kann das Steuersystem 1302 das in 10 beschriebene Verfahren verwenden, um jedes Pixel des von dem Sensor 1304 empfangenen Bildes zu klassifizieren, um zum Beispiel ein Bild einer Arbeitsoberfläche oder Befestigungsvorrichtung in zwei oder mehr Klassen zu segmentieren, um Anomalien in der Arbeitsoberfläche oder der Befestigungsvorrichtung zu detektieren. Auf der Basis dieser Klassifikation können Signale zu dem Aktor 1306, zum Beispiel zu dem Druck oder der Drehzahl des Werkzeugs gesendet werden, oder beliebige der durch den Aktor 1306 ausgeführten Aktionen, wie in den obigen Abschnitten beschrieben. Auf der Basis dieser Klassifikation können Signale zum Beispiel auch zu dem Sensor 1304 gesendet werden, um eine Kameralinse zu fokussieren oder zu bewegen. In einem anderen Beispiel kann das Bild ein Zeitreihenbild von Signalen von dem Elektrowerkzeug 1300 sein, wie etwa Druck, Drehmoment, Umdrehungen pro Minute, Temperatur, Strom usw., wobei das Elektrowerkzeug ein Bohrhammer, eine Bohrmaschine, ein Hammer (rotierend oder abbrechend), ein Schlagschrauber, eine Säbelsäge, ein oszillierendes Mehrfachwerkzeug und das Elektrowerkzeug entweder kabellos oder kabelgebunden ist.
Bei dieser Ausführungsform würde das Steuersystem 1402 Bild- (z.B. optische oder akustische) und Annotationsinformationen von dem Sensor 1404 empfangen. Unter Verwendung dieser und einer vorgeschriebenen Anzahl von Klassen k und des Ähnlichkeitsmaßes K , die im System gespeichert sind, kann das Steuersystem 1402 das in 10 beschriebene Verfahren verwenden, um jedes Pixel des von dem Sensor 1404 empfangenen Bildes zu klassifizieren, um zum Beispiel ein Bild eines Haushaltsgeräts oder eines anderen Objekts, das zu manipulieren oder zu betreiben ist, zu segmentieren. Auf der Basis dieser Klassifikation können Signale zu dem Aktor 1406 gesendet werden, um zum Beispiel bewegliche Teile des automatisierten persönlichen Assistenten 1401 zur Interaktion mit Haushaltsgeräten zu steuern, oder beliebige der durch den Aktor 1406 ausgeführten Aktionen, wie in den obigen Abschnitten beschrieben. Auf der Basis dieser Klassifikation können Signale zum Beispiel auch zu dem Sensor 1404 gesendet werden, um eine Kameralinse zu fokussieren oder zu bewegen.
Das Überwachungssystem 1500 kann auch ein Beaufsichtigungssystem sein. Bei einer solchen Ausführungsform kann der Sensor 1504 ein Wellenenergiesensor sein, wie etwa ein optischer Sensor, ein Infrarotsensor, ein akustischer Sensor, der dafür ausgelegt ist, eine Szene zu detektieren, die beaufsichtigt wird, und das Steuersystem 1502 ist dafür ausgelegt, eine Anzeige 1508 zu steuern. Das Steuersystem 1502 ist dafür ausgelegt, eine Klassifikation einer Szene zu bestimmen, z.B. ob die durch den Sensor 1504 detektierte Szene verdächtig ist. Es kann ein Perturbationsobjekt benutzt werden, um bestimmte Arten von Objekten zu detektieren, um es dem System zu erlauben, solche Objekte in nicht optimalen Bedingungen (z.B. Nacht, Nebel, Regen, störende Hintergrundgeräusche usw.) zu identifizieren. Das Steuersystem 1502 ist dafür ausgelegt, als Reaktion auf die Klassifikation einen Aktorsteuerbefehl zu der Anzeige 1508 zu senden. Die Anzeige 1508 kann dafür ausgelegt sein, den angezeigten Inhalt als Reaktion auf den Aktorsteuerbefehl zu justieren. Zum Beispiel kann die Anzeige 1508 ein Objekt, das durch die Steuerung 1502 als verdächtig betrachtet wird, hervorheben.
Bei dieser Ausführungsform würde das Steuersystem 1502 Bild- (z.B. optische oder akustische) und Annotationsinformationen von dem Sensor 1504 empfangen. Unter Verwendung dieser und einer vorgeschriebenen Anzahl von Klassen k und des Ähnlichkeitsmaßes K , die im System gespeichert sind, kann das Steuersystem 1502 das in 10 beschriebene Verfahren verwenden, um jedes Pixel des von dem Sensor 1504 empfangenen Bildes zu klassifizieren, um zum Beispiel die Anwesenheit verdächtiger oder unerwünschter Objekte in der Szene zu detektieren, um Arten von Beleuchtungs- oder Sichtbedingungen zu detektieren oder Bewegung zu detektieren. Auf der Basis dieser Klassifikation können Signale zu dem Aktor 1506 gesendet werden, um zum Beispiel Türen oder andere Eingänge zu verriegeln oder zu entriegeln, um einen Alarm oder ein anderes Signal zu aktivieren oder beliebige der durch den Aktor 1506 ausgeführten Aktionen, wie in den obigen Abschnitten beschrieben. Auf Basis dieser Klassifikation können auch Signale zu dem Sensor 1504 gesendet werden, zum Beispiel, um eine Kameralinse zu fokussieren oder zu bewegen.
Bei dieser Ausführungsform würde das Steuersystem 1602 Bild- und Annotationsinformationen von dem Sensor 1604 empfangen. Unter Verwendung dieser und einer vorgeschriebenen Anzahl von Klassen k und des Ähnlichkeitsmaßes K , die im System gespeichert sind, kann das Steuersystem 1602 das in 10 beschriebene Verfahren verwenden, um jedes Pixel des von dem Sensor 1604 empfangenen Bildes zu klassifizieren. Auf der Basis dieser Klassifikation können Signale zu dem Aktor 1606 gesendet werden, um zum Beispiel anomale Regionen des Bildes zu detektieren, oder beliebige der durch den Aktor 1606 ausgeführten Aktionen, wie in den obigen Abschnitten beschrieben.
Der Programmcode, der die hier beschriebenen Algorithmen und/oder Methodologien realisiert, kann individuell oder kollektiv als ein Programmprodukt in vielfältigen verschiedenen Formen verteilt werden. Der Programmcode kann unter Verwendung eines computer-lesbaren Speicherungsmediums mit computer-lesbaren Programmanweisungen darauf verteilt werden, um zu bewirken, dass ein Prozessor Aspekte einer oder mehrerer Ausführungsformen ausführt. Computer-lesbare Speicherungsmedien, die naturgemäß nicht transitorisch sind, können flüchtige und nichtflüchtige und wechselbare und nicht wechselbare greifbare Medien umfassen, die in einer beliebigen Methode oder Technologie zur Speicherung von Informationen implementiert werden, wie etwa computer-lesbare Anweisungen, Datenstrukturen, Programmmodule oder andere Daten. Computer-lesbare Speicherungsmedien können ferner RAM, ROM, EPROM (Erasable Programmable Read-Only Memory), EEPROM (Electrically Erasable Programmable Read-Only Memory), Flash-Speicher oder andere Halbleiter-Speichertechnologie, tragbaren CD-ROM (Compact Disc Read-Only Memory) oder andere optische Speicherung, Magnetkassetten, Magnetband, magnetische Datenträger oder andere magnetische Speicherungsvorrichtungen oder ein beliebiges anderes Medium umfassen, das zum Speichern der gewünschten Informationen verwendet und durch einen Computer gelesen werden kann. Computer-lesbare Programmanweisungen können in einen Computer, eine andere Art von programmierbarer Datenverarbeitungsvorrichtung oder eine andere Vorrichtung von einem computer-lesbaren Speicherungsmedium oder über ein Netzwerk in einen externen Computer oder eine externe Speicherungsvorrichtung heruntergeladen werden.
In einem computer-lesbaren Medium gespeicherte computer-lesbare Programmanweisungen können verwendet werden, um einen Computer, andere Arten von programmierbarer Datenverarbeitungsvorrichtung oder andere Vorrichtungen dazu anzuweisen, auf eine bestimmte Weise zu funktionieren, so dass die in dem computer-lesbaren Medium gespeicherten Anweisungen einen Herstellungsartikel produzieren, der Anweisungen umfasst, die die in den Flussdiagrammen oder Darstellungen angegebenen Funktionen, Schritte und/oder Operationen implementieren. Bei bestimmten alternativen Ausführungsformen können die in den Flussdiagrammen und Darstellungen angegebenen Funktionen, Schritte und/oder Operationen vereinbar mit einer oder mehreren Ausführungsformen umgeordnet, seriell verarbeitet und/oder gleichzeitig verarbeitet werden. Außerdem können beliebige der Flussdiagramme und/oder Darstellungen vereinbar mit einer oder mehreren Ausführungsformen mehr oder weniger Knoten oder Blöcke enthalten als die dargestellten.
Obwohl die gesamte Erfindung durch eine Beschreibung verschiedener Ausführungsformen veranschaulicht wurde und obwohl diese Ausführungsformen in beträchtlichem Detail beschrieben wurden, wird vom Anmelder nicht beabsichtigt, den Schutzumfang der angefügten Ansprüche auf irgendeine Weise auf solche Einzelheiten zu beschränken oder zu begrenzen. Fachleuten werden ohne Weiteres zusätzliche Vorteile und Modifikationen einfallen. Die Erfindung in ihren allgemeineren Aspekten wird deshalb nicht auf die spezifischen Einzelheiten, repräsentativen Vorrichtungen und Verfahren und die Anschauungsbeispiele, die gezeigt und beschrieben wurden, beschränkt. Dementsprechend können Abweichungen von solchen Einzelheiten vorgenommen werden, ohne vom Wesen oder Schutzumfang des allgemeinen erfindungsgemäßen Konzepts abzuweichen.
Claims (19)
- Computer-implementiertes Verfahren zum Verarbeiten eines Bildes unter Verwendung eines Faltungs-Neuronalnetzes, wobei das Computer-implementierte Verfahren Folgendes umfasst: Empfangen eines Bildes; Aufteilen des Bildes in Patches, wobei jedes Patch die Größe p aufweist; Extrahieren einer Merkmalabbildung, die eine Anzahl von Kanälen auf der Basis eines Merkmaldetektors der Größe p aufweist, über eine erste Faltungsschicht, wobei der Merkmaldetektor ein Stride gleich der Größe p aufweist; Verfeinern der Merkmalabbildung durch abwechselndes Anwenden von tiefenweisen Faltungsschichten und punktweisen Faltungsschichten, um eine verfeinerte Merkmalabbildung zu erhalten, wobei die Anzahl der Kanäle in der Merkmalabbildung und die Größe der Merkmalabbildung im Verlauf aller Operationen in der Verfeinerung konstant bleibt; und Ausgeben der verfeinerten Merkmalabbildung.
- Verfahren nach
Anspruch 1 , wobei das Verfahren Empfangen des Bildes von einem Sensor umfasst. - Verfahren nach
Anspruch 2 , wobei der Sensor einer von Video, RADAR, LIDAR oder Ultraschall ist und sich mit einer Steuerung in Kommunikation befindet, die dafür ausgelegt ist, ein autonomes Fahrzeug auf der Basis der verfeinerten Merkmalabbildung zu steuern. - Verfahren nach
Anspruch 2 , wobei der Sensor einer von Video, Schall, IR oder LIDAR ist und sich in Kommunikation mit einer Steuerung befindet, die dafür ausgelegt ist, eine Zugangstür auf der Basis der verfeinerten Merkmalabbildung zu steuern. - Verfahren nach
Anspruch 2 , wobei der Sensor einer von Video, Schall, Ultraschall, IR oder LIDAR ist und sich in Kommunikation mit einer Steuerung befindet, die dafür ausgelegt ist, ein mechanisches System auf der Basis der verfeinerten Merkmalabbildung zu steuern. - Verfahren nach
Anspruch 1 , wobei die erste Faltungsschicht eine Aktivierungsfunktion umfasst, die eine GELU (Gaussian Error Linear Unit) ist. - Verfahren nach
Anspruch 1 , ferner umfassend: Mitteln der Merkmalabbildung über räumliche Orte für jeden Kanal, um einen Mittelwert für alle Kanäle zu erhalten; Transformieren des Mittelwerts für alle Kanäle, um eine Wahrscheinlichkeit zu erhalten, dass das Eingangsbild einer spezifischen Klasse entspricht; und Ausgeben der Wahrscheinlichkeit, dass das Bild zu der spezifischen Klasse gehört. - Computer-implementiertes Verfahren zum Verarbeiten eines Bildes unter Verwendung eines Faltungs-Neuronalnetzes, wobei das Computer-implementierte Verfahren Folgendes umfasst: Empfangen eines Bildes der Größe L × W; Aufteilen des Bildes in Patches, wobei eine kombinierte Größe jedes Patch gleich L × W ist; Extrahieren einer Merkmalabbildung, die eine Anzahl von Kanälen auf der Basis eines Merkmaldetektors einer Größe gleich der Patchgröße aufweist, über eine erste Faltungsschicht, wobei der Merkmaldetektor ein Stride gleich der Patchgröße aufweist; Verfeinern der Merkmalabbildung durch abwechselndes Anwenden von tiefenweisen Faltungsschichten und punktweisen Faltungsschichten, um eine verfeinerte Merkmalabbildung zu erhalten, wobei die Anzahl der Kanäle in der Merkmalabbildung und die Größe der Merkmalabbildung im Verlauf aller Operationen in der Verfeinerung konstant bleibt; und Ausgeben der verfeinerten Merkmalabbildung.
- Verfahren nach
Anspruch 8 , wobei jede Patchgröße p × p ist. - Verfahren nach
Anspruch 8 , wobei das Verfahren Empfangen des Bildes von einem Sensor umfasst. - Verfahren nach
Anspruch 10 , wobei der Sensor einer von Video, RADAR, LIDAR oder Ultraschall ist und sich mit einer Steuerung in Kommunikation befindet, die dafür ausgelegt ist, ein autonomes Fahrzeug auf der Basis der verfeinerten Merkmalabbildung zu steuern. - Verfahren nach
Anspruch 10 , wobei der Sensor einer von Video, Schall, IR oder LIDAR ist und sich in Kommunikation mit einer Steuerung befindet, die dafür ausgelegt ist, eine Zugangstür auf der Basis der verfeinerten Merkmalabbildung zu steuern. - Verfahren nach
Anspruch 10 , wobei der erste Sensor einer von Video, Schall, Ultraschall, IR oder LIDAR ist und sich in Kommunikation mit einer Steuerung befindet, die dafür ausgelegt ist, ein mechanisches System auf der Basis der verfeinerten Merkmalabbildung zu steuern. - Verfahren nach
Anspruch 8 , ferner umfassend: Mitteln der Merkmalabbildung über räumliche Orte für jeden Kanal, um einen Mittelwert für alle Kanäle zu erhalten; Transformieren des Mittelwerts für alle Kanäle, um eine Wahrscheinlichkeit zu erhalten, dass das Eingangsbild einer spezifischen Klasse entspricht; und Ausgeben der Wahrscheinlichkeit, dass das Bild zu der spezifischen Klasse gehört. - Faltungs-Neuronalnetzsystem, umfassend: einen Sensor; und eine Steuerung, wobei die Steuerung ausgelegt ist zum Empfangen eines Bildes von dem Sensor, Aufteilen des Bildes in Patches, wobei jedes Patch die Größe p aufweist; Extrahieren einer Merkmalabbildung, die eine Anzahl von Kanälen auf der Basis eines Merkmaldetektors der Größe p aufweist, über eine erste Faltungsschicht, wobei der Merkmaldetektor ein Stride gleich der Größe p aufweist; Verfeinern der Merkmalabbildung durch abwechselndes Anwenden von tiefenweisen Faltungsschichten und punktweisen Faltungsschichten, um eine verfeinerte Merkmalabbildung zu erhalten, wobei die Anzahl der Kanäle in der Merkmalabbildung und die Größe der Merkmalabbildung im Verlauf aller Operationen in der Verfeinerung konstant bleibt; und Ausgeben der verfeinerten Merkmalabbildung.
- Faltungs-Neuronalnetzsystem nach
Anspruch 15 , wobei der Sensor einer von Video, RADAR, LIDAR oder Ultraschall ist und die Steuerung ferner dafür ausgelegt ist, ein autonomes Fahrzeug auf der Basis der verfeinerten Merkmalabbildung zu steuern. - Faltungs-Neuronalnetzsystem nach
Anspruch 15 , wobei der Sensor einer von Video, Schall, IR oder LIDAR ist und die Steuerung ferner dafür ausgelegt ist, eine Zugangstür auf der Basis der verfeinerten Merkmalabbildung zu steuern. - Faltungs-Neuronalnetzsystem nach
Anspruch 15 , wobei der Sensor einer von Video, Schall, Ultraschall, IR oder LIDAR ist und die Steuerung ferner dafür ausgelegt ist, ein mechanisches System auf der Basis der verfeinerten Merkmalabbildung zu steuern. - Faltungs-Neuronalnetzsystem nach
Anspruch 15 , wobei die Steuerung ferner für Folgendes ausgelegt ist: Mitteln der Merkmalabbildung über räumliche Orte für jeden Kanal, um einen Mittelwert für alle Kanäle zu erhalten; Transformieren des Mittelwerts für alle Kanäle, um eine Wahrscheinlichkeit zu erhalten, dass das Eingangsbild einer spezifischen Klasse entspricht; und Ausgeben der Wahrscheinlichkeit, dass das Bild zu der spezifischen Klasse gehört.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/487,631 US11922291B2 (en) | 2021-09-28 | 2021-09-28 | Image processing via isotonic convolutional neural networks |
US17/487,631 | 2021-09-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102022210129A1 true DE102022210129A1 (de) | 2023-03-30 |
Family
ID=85477154
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102022210129.4A Pending DE102022210129A1 (de) | 2021-09-28 | 2022-09-26 | Bildverarbeitung über isotonische faltungs-neuronalnetze |
Country Status (4)
Country | Link |
---|---|
US (1) | US11922291B2 (de) |
JP (1) | JP2023049041A (de) |
CN (1) | CN115880560A (de) |
DE (1) | DE102022210129A1 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102023200345A1 (de) | 2023-01-18 | 2024-07-18 | Robert Bosch Gesellschaft mit beschränkter Haftung | Verfahren und Vorrichtung zum Verarbeiten eines Digitalbildes zur Anomalieoder Normalitätsdetektion |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12026621B2 (en) * | 2020-11-30 | 2024-07-02 | Robert Bosch Gmbh | Method and system for low-query black-box universal attacks |
US20240037282A1 (en) * | 2022-07-26 | 2024-02-01 | Robert Bosch Gmbh | Method and system of crown based for adversarial attacks |
CN117332320B (zh) * | 2023-11-21 | 2024-02-02 | 浙江大学 | 一种基于残差卷积网络的多传感器融合pmsm故障诊断方法 |
CN117746510B (zh) * | 2024-02-19 | 2024-05-28 | 河海大学 | 一种基于点云特征图的实时三维行为识别方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106295476B (zh) * | 2015-05-29 | 2019-05-17 | 腾讯科技(深圳)有限公司 | 人脸关键点定位方法和装置 |
US10713794B1 (en) * | 2017-03-16 | 2020-07-14 | Facebook, Inc. | Method and system for using machine-learning for object instance segmentation |
US11263782B2 (en) * | 2017-10-11 | 2022-03-01 | Qualcomm Incorporated | Image signal processor for processing images |
-
2021
- 2021-09-28 US US17/487,631 patent/US11922291B2/en active Active
-
2022
- 2022-09-26 DE DE102022210129.4A patent/DE102022210129A1/de active Pending
- 2022-09-28 CN CN202211206078.XA patent/CN115880560A/zh active Pending
- 2022-09-28 JP JP2022154538A patent/JP2023049041A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102023200345A1 (de) | 2023-01-18 | 2024-07-18 | Robert Bosch Gesellschaft mit beschränkter Haftung | Verfahren und Vorrichtung zum Verarbeiten eines Digitalbildes zur Anomalieoder Normalitätsdetektion |
Also Published As
Publication number | Publication date |
---|---|
CN115880560A (zh) | 2023-03-31 |
US11922291B2 (en) | 2024-03-05 |
JP2023049041A (ja) | 2023-04-07 |
US20230096021A1 (en) | 2023-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102022210129A1 (de) | Bildverarbeitung über isotonische faltungs-neuronalnetze | |
DE102019120880A1 (de) | End-to-end-deep-generative-modell für simultane lokalisierung und abbildung | |
DE102017116192A1 (de) | Verwenden von virtuellen Daten zum Testen und Trainieren von Parkplatzerfassungssystemen | |
DE102019118999A1 (de) | Lidar-basierte objektdetektion und -klassifikation | |
DE102021207269A1 (de) | Verfahren und system zum erlernen von perturbationsmengen beim maschinenlernen | |
DE102017105628A1 (de) | Verfahren und system zur virtuellen sensordatenerzeugung mit tiefen-ground-truth-annotation | |
DE102022206060A1 (de) | Verteidigung von multimodalen fusionsmodellen gegen angreifer mit nur einer quelle | |
CN108537825B (zh) | 一种基于迁移学习回归网络的目标跟踪方法 | |
DE102021213118A1 (de) | Verfahren und ein system für black-box-universalangriffe mit geringer abfrage | |
DE102022212583A1 (de) | Bildquantisierung unter Verwendung von Maschinenlernen | |
DE102021205230A1 (de) | Gefahrendetektions-ensemblearchitektursystem und-verfahren | |
DE112022001546T5 (de) | Systeme und Verfahren zur Erzeugung von Objekterkennungs-Labels unter Verwendung fovealer Bildvergrößerung für autonomes Fahren | |
DE102022211512A1 (de) | Verbesserungen in einem umschaltenden rekurrenten kalman-netz | |
DE102021109382A1 (de) | System und verfahren eines monotonen neuronalen operatornetzes technisches gebiet | |
DE102020200503A1 (de) | Verfahren zum Generieren von gelabelten Daten, insbesondere für das Training eines neuronalen Netzes, mittels Verbesserung initialer Label | |
DE102023203691A1 (de) | Verfahren und System zur Erkennung von Anomalien auf Graphenebene | |
DE102020213076A1 (de) | Verfahren und vorrichtung für eine fortschrittliche faltung an verschlüsselten daten | |
DE102023207516A1 (de) | Systeme und Verfahren zur Experten-geführten Halbüberwachung mit Contrastive Loss für Maschinenlernmodelle | |
DE102021201178A1 (de) | Computerimplementiertes verfahren zum erzeugen von zuverlässigkeitsangaben für computervision | |
DE102023207534A1 (de) | System und Verfahren zur universellen Bereinigung von Eingangsstörungen mit entrauschten Diffusionsmodellen | |
DE102023109072A1 (de) | Datenaugmentierung für domänenverallgemeinerung | |
DE102021210415A1 (de) | Verfahren und system zum erlernen des gemeinsamen latenten adversarischen trainings | |
DE102022206063A1 (de) | System und verfahren zum vorschalten von robustifiziereren für vortrainierte modelle gegen feindliche angriffe | |
US20220237897A1 (en) | Computer-implemented method for analyzing relevance of visual parameters for training a computer vision model | |
EP3561701A1 (de) | Verfahren und vorrichtung zum bestimmen einer körperlichen form, verfahren zur herstellung einer berechnungseinrichtung, berechnungseinrichtung und verwendung der berechnungseinrichtung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed |