-
INFORMATION ÜBER ZUGEHÖRIGE ANMELDUNGEN
-
Diese Anmeldung beansprucht die Priorität der US-Patentanmeldung Nr.
62/935,103 , eingereicht am 14. November 2019, und der US-Patentanmeldung Nr.
17/094,261 , eingereicht am 10. November 2020, die jeweils hierin durch Bezugnahme in ihrer Gesamtheit enthalten sind.
-
HINTERGRUND
-
Technisches Gebiet
-
Die vorliegende Erfindung betrifft eine Bildklassifizierung und insbesondere die Erkennung von Objekten innerhalb eines Bildes unter Verwendung mehrerer Datensätze mit heterogenen Beschriftungs- bzw. Bezeichnungsräumen.
-
Beschreibung der zugehörigen Standes der Technik
-
Objekterkennung bemüht sich, Objekte innerhalb eines gegebenen Bildes zu lokalisieren und zu kategorisieren. Für jede Objektkategorie, die zu erkennen ist, sind Trainingsdaten nötig. Jedoch sind viele Objekterkennungssysteme auf ein Erkennen von nur einer einzigen Klasse von Objekten oder einer festen Anzahl von spezifischen Objektklassen beschränkt.
-
ZUSAMMENFASSUNG
-
Ein Verfahren zur Objekterkennung enthält ein Trainieren von datensatzspezifischen Objektdetektoren unter Verwendung jeweiliger kommentierter bzw. annotierter Datensätze, wobei jeder der kommentierten Datensätze Kommentierungen bzw. Anmerkungen für einen jeweiligen Satz von einer oder mehreren Objektklassen enthält. Die kommentierten Datensätze werden unter Verwendung der datensatzspezifischen Objektdetektoren kreuzweise kommentiert. Ein vereinigter bzw. vereinheitlichter Objektdetektor wird unter Verwendung der kreuzweise kommentierten Datensätze trainiert, um alle der Objektklassen der kommentierten Datensätze zu erkennen. Objekte werden in einem Eingabebild unter Verwendung des vereinigten Objektdetektors erkannt.
-
Ein System zur Objekterkennung enthält einen Hardwareprozessor und einen Speicher. Der Speicher ist konfiguriert, um einen Computerprogrammcode zu speichern, der durch den Hardwareprozessor ausgeführt wird und der einen Maschinenlerncode, der eine Vielzahl von datensatzspezifischen Objektdetektoren implementiert, einen Maschinenlerncode, der einen vereinigten bzw. vereinheitlichten Objektdetektor implementiert, einen datensatzspezifischen Trainingscode, einen vereinigten Trainingscode und einen Objekterkennungscode enthält. Die Vielzahl von datensatzspezifischen Objektdetektoren erkennt und kommentiert bzw. annotiert jeweils Objekte innerhalb von Eingabebildern gemäß einem Training durch einen jeweiligen annotierten bzw. kommentierten Datensatz. Jeder der kommentierten Datensätze enthält Kommentierungen bzw. Anmerkungen für einen jeweiligen Satz von einer oder mehreren Objektklassen. Die datensatzspezifischen Objektdetektoren kommentieren kreuzweise die kommentierten bzw. mit Anmerkungen versehenen Datensätze. Der vereinigte Objektdetektor erkennt und kommentiert Objekte innerhalb von Eingabebildern gemäß einem Training durch mehrere Datensätze. Der datensatzspezifische Trainingscode trainiert die Vielzahl von datensatzspezifischen Objektdetektoren unter Verwendung jeweiliger kommentierter Datensätze. Der vereinigte Trainingscode trainiert den vereinigten Objektdetektor unter Verwendung der kreuzweise kommentierten Datensätze, um alle der Objektklassen der kommentierten Datensätze zu erkennen. Der Objekterkennungscode erkennt Objekte in einem Eingabebild unter Verwendung des vereinigten Objektdetektors.
-
Diese und weitere Merkmale und Vorteile werden aus der folgenden detaillierten Beschreibung von illustrativen Ausführungsformen davon offensichtlich werden, die im Zusammenhang mit den beigefügten Zeichnungen zu lesen ist.
-
Figurenliste
-
Die Offenbarung wird Details in der folgenden Beschreibung bevorzugter Ausführungsformen unter Bezugnahme auf die folgenden Figuren bereitstellen, wobei:
- 1 ein Diagramm, das kommentierte Datensätze zeigt, wobei Bilder aus jedem Datensatz unkommentierte Objekte enthalten, die innerhalb des anderen Datensatzes kommentiert sind, gemäß einer Ausführungsform der vorliegenden Erfindung ist;
- 2 ein Block-/Ablaufdiagramm eines Verfahrens zum Trainieren eines Mehrklassendetektors unter Verwendung mehrerer kommentierter Datensätze gemäß einer Ausführungsform der vorliegenden Erfindung ist;
- 3 ein Diagramm unterschiedlicher Implementierungen von datensatzspezifischen Objektdetektoren gemäß einer Ausführungsform der vorliegenden Erfindung ist;
- 4 ein Blockdiagramm eines Objekterkennungssystems mit mehreren Datensätzen gemäß einer Ausführungsform der vorliegenden Erfindung ist;
- 5 ein Diagramm eines neuronalen Netzwerks auf hoher Ebene gemäß einer Ausführungsform der vorliegenden Erfindung ist; und
- 6 ein Diagramm einer beispielhaften neuronalen Netzwerkarchitektur gemäß einer Ausführungsform der vorliegenden Erfindung ist.
-
DETAILLIERTE BESCHREIBUNG BEVORZUGTER AUSFÜHRUNGSFORMEN
-
Objekterkennung kann für eine Vielfalt von Zwecken verwendet werden, wie beispielsweise autonomes Fahren (z.B. Identifizierung von Personen und Fahrzeugen in einem Bild) und Computer-Vision-Aufgaben wie Verfolgung bzw. Tracking, Posen- bzw. Stellungsschätzung und Posen- bzw. Stellungserkennung. Datensätze, die unterschiedliche jeweilige Klassen von Bildobjekten identifizieren, können kombiniert werden, um Bilderkennungs-Klassifikatoren an allen der unterschiedlichen Klassen zu trainieren. Eine Herausforderung bei einem Kombinieren von Trainingsdatensätzen, bei welchen Objekte der relevanten Klasse innerhalb von jedem Bild identifiziert werden, besteht darin, dass diese ungleichartigen Datensätze jeweils Bilder enthalten können, die Objekte aus anderen Klassen zeigen. Somit kann, wenn ein Datensatz A verwendet wird, um Objekte A innerhalb von Bildern zu lokalisieren, und wenn ein Datensatz B verwendet wird, um Objekte B innerhalb von Bildern zu lokalisieren, ein naives Kombinieren der zwei Datensätze die Genauigkeit des resultierenden Klassifikators verringern, da einige Objekte B innerhalb von Bildern des Datensatzes A vorhanden sein können und einige Objekte A innerhalb von Bildern des Datensatzes B vorhanden sein können.
-
Eher als alle der Datensätze mit Objektbezeichnungen für jede der anderen Klassen manuell mit Anmerkungen zu versehen (z.B. eher als Objekte B innerhalb von Bildern aus dem Datensatz A manuell zu identifizieren), können jeweilige Einzelklassen-Klassifikatoren verwendet werden, um Objekte innerhalb der anderen Datensätze automatisch zu lokalisieren. Somit kann ein Klassifikator A, der an dem Datensatz A trainiert ist, um Objekte A zu erkennen, am Datensatz B ausgeführt werden, um Kommentierungen bzw. Anmerkungen innerhalb der Bilder des Datensatzes B bereitzustellen, die das Vorhandensein von Objekten A anzeigen. Diese automatisch kommentierten Datensätze können dann in Kombination verwendet werden, um einen kombinierten Klassifikator zu trainieren, der irgendeine der Objektklassen innerhalb eines Eingabebilds lokalisieren kann.
-
Nimmt man nun im Detail Bezug auf die Figuren, in welchen ähnliche Zahlensymbole bzw. Ziffern dieselben oder ähnliche Elemente darstellen, und zunächst auf 1, sind zwei Trainingsdatensätze gezeigt. Ein erster Datensatz, der mit A bezeichnet ist, ist mit Personen kommentiert, während der zweite Datensatz, der mit B bezeichnet ist, mit Automobilen kommentiert ist. Jeder Datensatz enthält mehrere Bilder 100, von welchen jedes null, ein oder mehrere Objekte der relevanten Klasse enthalten kann.
-
Zum Beispiel zeigt der Datensatz A das Vorhandensein einer Person mit einem Begrenzungsrahmen 102 an. Der Datensatz B zeigt das Vorhandensein eines Automobils mit einem Begrenzungsrahmen 104 an. Jedoch enthält jeder Datensatz Bilder 100, die Objekte aus der Klasse des anderen Datensatzes enthalten. Somit können zum Beispiel Bilder 100 aus dem Datensatz B Personen 106 enthalten, die nicht mit einem Begrenzungsrahmen kommentiert sind. Wenn die Bilder 100 aus dem Datensatz B in einem Trainingsdatensatz für einen Klassifikator enthalten sind, der Personen identifiziert, kann es im kombinierten Datensatz wenigstens einige Bilder 100 geben, die Personen als Teil des Hintergrunds des Bildes enthalten. Dies ergibt inkonsistente Trainingsdaten, bei welchen einige Objekte kommentiert sind und einige nicht.
-
Ein Ansatz zum Erzeugen eines Datensatzes, der einen Klassifikator angemessen trainiert, um mehrere Bildklassen zu erkennen, würde darin bestehen, anfängliche Trainingsdatensätze manuell zu kommentieren, das Objekterkennungssystem mit mehreren Klassen zu trainieren und das System unter Verwendung eines Satzes von Validierungsbildern zu bewerten. Dann könnten, wenn der Klassifikator darin fehlschlägt, eine angemessene Leistung für irgendeine Objektklasse bereitzustellen, zusätzliche Trainingsdaten erhalten werden, die spezifisch für diese Objektklasse sind. Jedoch würden in einem solchen Fall die zusätzlichen Trainingsdaten für alle der anderen Klassen, selbst für diejenigen mit angemessener Leistung im Klassifikator, neu kommentiert werden müssen, damit die neuen Trainingsdaten nicht die Wirksamkeit von diesen Klassifikationen untergraben.
-
Und wenn einmal ein Klassifikator bereits trainiert worden ist, stellt ein Hinzufügen einer neuen Klasse von Objekten eine ähnliche Herausforderung dar. In einem solchen Fall würde jedes Bild des ursprünglichen Trainingsdatensatzes neu kommentiert werden müssen, um die neue Klasse von Objekten zu identifizieren, zusätzlich zu einem Kommentieren des neuen Datensatzes mit jeder der ursprünglichen Klassen.
-
Um diese Herausforderungen zu bewältigen, kann ein Einzelklassen-Klassifikator, der an einem jeweiligen annotierten bzw. kommentierten Datensatz trainiert ist, verwendet werden, um zu dieser Klasse gehörende Objekte in anderen Trainingsdatensätzen zu identifizieren. Somit kann nach dem obigen Beispiel ein Klassifikator A, der am Datensatz A trainiert ist, um Personen zu identifizieren, am Datensatz B verwendet werden, um Personen innerhalb dieses Datensatzes zu identifizieren. Dies vermeidet Zeit- und Kostenaufwand, der dafür nötig ist, Datensätze manuell neu zu kommentieren.
-
Nimmt man nun Bezug auf 2, ist ein Objekterkennungsverfahren gezeigt, das vereinigte Datensätze für mehrere unterschiedliche Objektklassen verwendet. Ein Block 202 vereinigt den Bezeichnungsraum der mehreren Datensätze, wobei der Begriff „Bezeichnungsraum“ bzw. „Beschriftungsraum“ verwendet werden kann, um auf den Satz von Objektklassen Bezug zu nehmen, die innerhalb eines gegebenen Datensatzes kommentiert bzw. mit Anmerkungen versehen sind. Dies enthält ein Vereinheitlichen bzw. Vereinigen der durch die Datensätze definierten Objektklassen. Zum Beispiel können zwei Datensätze semantische Duplikate von einer oder mehreren Objektklassen enthalten, wobei beide Datensätze dieselbe Klasse von Objekten darstellen (z.B. Automobile). Diese semantischen Duplikate können zusammengeführt werden. Während die Bezeichnungsräume der unterschiedlichen Datensätze in den meisten Fällen unterschiedlich sein können, wird auch in Betracht gezogen, dass die mehreren Datensätze einen einzigen Bezeichnungsraum gemeinsam nutzen bzw. teilen können, in welchem Fall der Bezeichnungsraum im Block 202 nicht vereinigt werden muss.
-
Die Datensätze können das Vorhandensein eines Objekts in einem Bild mit einem geeigneten Begrenzungsrahmen oder einem anderen Rahmen anzeigen, der die Position des Objekts innerhalb des Bildes identifiziert. Jede Anmerkung bzw. Kommentierung kann zum Beispiel Koordinaten im Bildraum (identifizierende Ecken eines Begrenzungsrahmens) enthalten, die das Objekt eng umschließen, und eine Klassenbeschriftung bzw. -bezeichnung, die das Objekt innerhalb des Begrenzungsrahmens identifiziert. Begrenzungsrahmen können sich überlappen, wie zum Beispiel in Fällen, in welchen sich identifizierte Objekte im Bild überlappen.
-
Die Hintergrundkategorie der unterschiedlichen Datensätze kann auch zusammengeführt werden, obwohl die Definition für den Hintergrund von einem Datensatz zum nächsten unterschiedlich sein kann. Mehrdeutigkeiten bei dieser Zusammenführung können mit der Verwendung einer Verlustfunktion und einem pseudomäßigen Ground Truth aufgelöst werden.
-
Bei einer Darstellung können N Datensätze als D1, ...,DN mit entsprechenden Bezeichnungs- bzw. Beschriftungsräumen L1, ..., LN dargestellt werden, wobei jeder Bezeichnungsraum Li ein Satz von Kategorien ist, die im Datensatz Di mit Anmerkungen versehen bzw. kommentiert sind. Die Bezeichnungsräume müssen nicht gleich sein und gemeinsame Kategorien sind zwischen ihnen zugelassen. Zum Beispiel werden viele unterschiedliche Objekterkennungsdatensätze für häufig erscheinende Merkmale, wie beispielsweise Personen, mit Anmerkungen versehen bzw. kommentiert. Der Hintergrund bi für einen Datensatz Di kann für jeden Datensatz unterschiedlich sein, was den gesamten Bezeichnungs- bzw. Beschriftungsraum für einen Datensatz vollständig macht Li u bi. Ein Zusammenführen des datensatzspezifischen Hintergrunds für die unterschiedlichen Datensätze wird nachstehend detaillierter beschrieben.
-
Der Datensatz D
i kann M
i Bilder I
i,j enthalten, wobei j = 1, ..., M. Die Annotationen bzw. -Kommentierungen für wahren Ground Truth für das ein Bild I
i,j können dargestellt werden als
wobei jede Ground-Truth-Annotation
einem Objekt k im Bild entspricht I
i,j und Begrenzungsrahmenkoordinaten (x
1,y
1,x
2,y
2) im Bildraum und eine Kategorienbezeichnung bzw. -beschriftung c ∈ L
i enthält. Irgendein Bereich des Bildes I
i,j, der nicht durch irgendeinem Begrenzungsrahmen in G
i,j abgedeckt ist, wird derart angesehen, dass er im Hintergrund b
i ist. Ein Vereinheitlichen bzw. Vereinigen der Bezeichnungsräume erstellt einen neuen Bezeichnungsraum L
∪ = L
1 ∪ ... ∪ L
N, so dass ein Objektdetektor, der an L
∪ trainiert ist, Objekte aus allen Objektklassen erkennen wird.
-
Ein Block 204 trainiert datensatzspezifische Detektoren. Weil es keine Mehrdeutigkeit der Hintergrundkategorie für Detektoren gibt, die an einzelnen Datensätzen trainiert werden, können diese jeweiligen Detektoren verwendet werden, um Objekte innerhalb von Bildern aus den verschiedenen Datensätzen zu identifizieren und zu kommentieren, und zwar gemäß den Anmerkungen von Trainingsdatensätzen jedes Detektors. Eine unüberwachte Domänenanpassung kann verwendet werden, um die Leistung von datensatzspezifischen Detektoren zu verbessern, wenn sie auf die anderen Datensätze angewendet werden.
-
Irgendeine geeignete Detektorstruktur kann verwendet werden, aber die Verwendung eines neuronalen Netzwerks wird spezifisch in Betracht gezogen. Zum Beispiel kann ein System für Bereiche mit Merkmalen eines neuronalen Faltungsnetzwerks (R-CNN-System) mit Merkmalspyramidennetzwerken (FPN (= Feature Pyramid Networks)) als der Objektdetektor verwendet werden. Ein Eingabebild kann bereitgestellt werden und Faltungsmerkmale können mit einem „Backbone“-Netzwerk extrahiert werden. Ein Bereichsvorschlagsnetzwerk (RPN (= Region Proposal Network)) kann dann verwendet werden, um einen Satz bzw. eine Gruppe von Begrenzungsrahmen vorherzusagen, die potenzielle Objekte auf kategorienunabhängige Weise beschreiben. Ein Regions- bzw. Bereichsklassifizierungsnetzwerk kann dann jeden Vorschlag in den definierten Beschriftungsraum klassifizieren und kann die Lokalisierung bzw. Position verfeinern.
-
Ein Block 206 verwendet dann die datensatzspezifischen Detektoren, um die Datensätze für andere Objektklassen kreuzweise zu kommentieren bzw. annotieren, was einen pseudomäßigen Ground Truth für fehlende Anmerkungen bzw. Kommentierungen der verschiedenen Objektklassen bereitstellt. Dies hilft, um die Mehrdeutigkeit der Hintergrundkategorie in den Bildern aus verschiedenen Datensätzen gering zu halten. Die datensatzspezifischen Detektoren versuchen jeweils, jedes potenzielle Objekt in jedem der Bilder der anderen Datensätze zu klassifizieren, was pseudomäßigen Ground Truth bildet, der sich zum wahren Ground Truth von ursprünglichen Anmerkungen jedes Datensatzes hinzufügt.
-
Ein Block 208 verwendet dann die Vereinigung der kommentierten bzw. annotierten Datensätze, um einen Detektor mit dem vereinigten Beschriftungsraum zu trainieren. Die Objektdetektoren können zum Beispiel als tiefe neuronale Netzwerke implementiert sein, und zwar mit Parametern, die basierend auf den angewendeten Trainingsdaten eingestellt sind. Eine Verlustfunktion kann verwendet werden, um die Differenz zwischen Ground Truth und den Vorhersagen des aktuellen Erkennungsmodells für ein gegebenes Bild der Trainingsdaten zu messen. Die Parameter des Modells können in Bezug auf die Verlustfunktion differenzierbar sein. Eine Optimierung, wie beispielsweise ein stochastischer Gradientenabfall, kann verwendet werden, um die Parameter zu aktualisieren.
Somit gibt für ein Bild I
i,j mit Anmerkungen G
i,j aus einem Beschriftungsraum L
i ein an dem vereinigten Beschriftungsraum L
∪ trainierter Objektdetektor eine Gruppe bzw. einen Satz von Erkennungen
aus. Ein Block 208 kann die IOU(= Intersection-over-Union)-Ähnlichkeit s
kl zwischen
und
berechnen. Alle vorhergesagten Rahmen
mit s
kl > τ, für ein beliebiges Objekt k, werden mit der Ground-Truth-Bezeichnung bzw. -Beschriftung vom entsprechenden
verglichen. Irgendwelche mehrdeutigen Übereinstimmungen werden weiterhin verarbeitet, um zu bestimmen, ob sie als Teil des Hintergrunds b
i betrachtet oder ignoriert werden sollten.
-
Ein Block 210 kann dann den trainierten Detektor verwenden, um irgendwelche oder alle Objektklassen innerhalb von neuen Eingabebildern zu identifizieren. Für ein gegebenes Bild kann der Block 210 einen Satz von Begrenzungsrahmen zurückgeben, von welchen jeder ein jeweiliges erkanntes Objekt darstellt. Jede neue Erkennung kann einen Satz von Koordinaten enthalten, um den Begrenzungsrahmen, eine entsprechende Beschriftung für das erkannte Objekt und eine Bewertung zu bestimmen. Die Punktzahl bzw. Bewertung, zum Beispiel eine Zahl zwischen 0 und 1, zeigt ein Ausmaß an Vertrauen für die Beschriftung des erkannten Objekts an.
-
Das Trainieren im Block 210 kann eine Verlustfunktion verwenden, die teilweise kommentierte bzw. annotierte Daten nimmt, wie zum Beispiel durch Nutzen der im Block 206 erzeugten Pseudo-Beschriftungen, um pseudomäßigen Ground Truth zu erzeugen. Der pseudomäßige Ground Truth kann daher eine rauschbehaftete Schätzung vom wahren Ground Truth sein, der durch manuelle Anmerkungen eines Menschen erzeugt werden würde.
-
Die Verlustfunktion kann eine Übereinstimmungs- bzw. Anpassungsstrategie enthalten, die vorhergesagte Rahmen Ground-Truth-Rahmen zuordnet, und eine Funktion zum Messen der Diskrepanz zwischen ihnen. Angesichts eines Bildes aus einem Trainingsdatensatz sagt das Erkennungsmodell zuerst die Objektpositionen im Bild voraus, die mit einem gegebenen Ground Truth in Übereinstimmung gebracht sind (z.B. der wahre Ground Truth, der in den ursprünglichen Datensätzen bereitgestellt ist). Diese in Übereinstimmung gebrachten Vorhersagen können in eine Verlustfunktion zur Klassifizierung (z.B. Kreuzentropie) und Lokalisierung (z.B. den I1- oder I2-Abstand) eingefügt werden. Alle nicht in Übereinstimmung gebrachten Erkennungen können weiterhin mit dem durch den Block 206 erzeugten pseudomäßigen Ground Truth verglichen werden.
-
Für mehrdeutige Objekterkennungen
D kann eine Einschränkung darin bestehen, dass es sein kann, dass die wahre Bezeichnung bzw. Beschriftung der mehrdeutigen Erkennungen in einem gegebenen Bild I
i,j nicht zu irgendeiner Beschriftung in L
i gehört, da diese Kategorien bereits mit Anmerkungen versehen bzw. kommentiert wurden. Die Wahrscheinlichkeitsverteilung für einen vorhergesagten Begrenzungsrahmen über den vereinigten Beschriftungsraum L
∪ und einen Hintergrund kann ausgedrückt werden als p = [p
1,p
2, ...] ∈ ℝ
|LUl+1, mit
-
Wenn der vorhergesagte Begrenzungsrahmen irgendeinem der Ground-Truth-Rahmen in G
i,j mit einer Beschriftung a ∈ L
i zugeordnet ist, dann trägt er zu einem Entropieverlustausdruck bei:
wobei 1
a ∈ ℝ
|LU|+1 eine 1-aus-n-Vektor-Codierung einer Beschriftung bzw. Bezeichnung a ist. Zum Beispiel:
wenn i = a, und sonst gleich Null.
-
Wenn der vorhergesagte Rahmen zu
D gehört, dann kann die zugrundeliegende Ground-Truth-Kategorie zu irgendeiner von
gehören, wobei b
U der vereinigte Hintergrund aus den unterschiedlichen Datensätzen ist. Daher kann die folgende Verlustfunktion verwendet werden:
die einem Kreuzentropieverlust an der Summe der mehrdeutigen Kategorien ähnelt und die als Zusammenführung aller Mehrdeutigkeiten in eine Kategorie interpretiert werden kann. Um eine Selektivität zu fördern und um die Ausbreitung von Wahrscheinlichkeitsmasse über viele Kategorien zu verhindern, kann eine Minimalentropie-Regularisierung hinzugefügt werden:
wobei λ ein Hyperparameter ist. Eine weitere Verlustfunktion kann ausgedrückt werden als:
die die Summe von
durch ein Maximum über den mehrdeutigen Kategorien ersetzen kann, um dadurch zu fördern, dass eine einzelne Kategorie direkt ausgewählt herausgepickt wird, ohne dass ein Entropieausdruck nötig ist.
-
Jedoch löst keine von diesen Verlustfunktionen die Mehrdeutigkeiten im Beschriftungsraum auf. Obwohl sie die Tatsache codieren, dass eine mehrdeutige Kategorie in
korrekt sein kann, verwenden sie keine Priorisierung an den Kategorien. Eine Pseudo-Beschriftung kann somit verwendet werden, um die datensatzspezifischen Detektoren zu nutzen, um eine solche Priorisierung durch Schätzen fehlender Anmerkungen bereitzustellen.
-
Wie es oben angemerkt ist, werden die datensatzspezifischen Detektoren im Block 204 unter Verwendung einzelner jeweiliger Datensätze trainiert. N solche Detektoren können verwendet werden, und zwar einer für einen jeweiligen Datensatz. Jeder datensatzspezifische Detektor kann auf eine andere Weise trainiert werden, die für den in Frage stehenden Trainingsdatensatz geeignet ist. Die datensatzspezifischen Detektoren können unabhängig voneinander trainiert werden, wobei jeder einen separaten Merkmalsextraktions-Backbone hat. Die datensatzspezifischen Detektoren können unter Verwendung eines gemeinsam genutzten bzw. geteilten Backbones trainiert werden, gefolgt durch N separate Detektorköpfe.
-
Da die datensatzspezifischen Detektoren an einem ersten Datensatz Dj trainiert werden, aber an einem anderen Datensatz Di angewendet werden, um Anmerkungen bzw. Kommentierung zu erweitern, kann die Domänenlücke zwischen den Datensätzen berücksichtigt werden. Gemeinsames Trainieren kann bessere Ergebnisse ergeben, da ein Teil des Netzwerks domänenübergreifend gemeinsam genutzt bzw. geteilt werden kann. Eine weitere Option zum Trainieren der datensatzspezifischen Detektoren besteht darin, eine Domänenanpassung zu nutzen, die es möglich macht, einen Detektor, der an einem Datensatz trainiert ist, an alle anderen Datensätze bezüglich einer Domäne anzupassen.
-
Beim Trainieren des vereinigten Detektors im Block 208 können Mini-Batches bzw. Mini-Stapel von Daten aus einzelnen Datensätzen verwendet werden, um eine effiziente Gradientenberechnung bereitzustellen. Für ein Bild I
i,j, das ursprünglich aus einem Datensatz D
i stammt, mit einem Beschriftungsraum L
i, ist der Ground Truth für Kategorien in L
i verfügbar, aber für diejenigen in
nicht. Um dies zu beheben, können alle der datensatzspezifischen Detektoren über alle der Datensätze ausgeführt werden, um einen Satz von Begrenzungsrahmen
des Beschriftungsraums
für ein Bild j zu bestimmen. Diese Begrenzungsrahmen sind der pseudomäßige Ground Truth. Jeder Pseudo-Ground-Truth-Rahmen
ist eine mit ihm assoziierte Erkennungsbewertung
-
Eine Verlustfunktion für den vereinigten Objektdetektor kann der Pseudo-Ground-Truth als erstes nutzen, um die Mehrdeutigkeit des Beschriftungsraums aufzulösen. Der Pseudo-Ground-Truth enthält Rauschen aufgrund der Domänenlücke zwischen Datensätzen und Fehlern, die in der Ausgabe der datensatzspezifischen Detektoren vorhanden sein können. Somit kann angesichts eines Satzes von nicht übereinstimmenden Erkennungen
D und allen Pseudo-Ground-Truth-Rahmen
die IOU-Ähnlichkeit s
k,l zwischen
d l ∈
D und
für alle l und k berechnet werden. Alle Pseudo-Ground-Truth-Rahmen mit ausreichend hohen IOU-Ähnlichkeiten (z.B. s
l,k > τ) werden beibehalten. Ein Beibehalten mehrerer Übereinstimmungen mit Pseudo-Ground-Truth wirkt der Unsicherheit des Pseudo-Beschriftens entgegen und mittelt potenzielles Rauschen heraus.
-
Es soll angenommen werden, dass für jeden Rahmen
d l, der nicht mit G
i,j in Übereinstimmung gebracht ist, ein Satz von in Übereinstimmung gebrachten Pseudo-Ground-Truth-Rahmen als
bestimmt werden kann, wobei S
det(·) die Erkennungsbewertung ist und wobei K
bg eine Schwelle ist, die eine minimale Bewertung für eine Erkennung als Pseudo-Ground-Truth-Klasse definiert, wobei alles unter der Schwelle als Hintergrund anzusehen ist. Wenn
leer ist, kann die Ground-Truth-Beschriftung für
d l auf „Hintergrund“ eingestellt werden und kann ein Kreuzentropieverlust verwendet werden. Andernfalls kann die folgende Verlustfunktion an der vorhergesagten Klassenverteilung p
l von
d l verwendet werden:
wobei Γ(·) eine Wichtigkeitsfunktion für Ground Truth ist. Der Verlust ist die Summe über die in Übereinstimmung gebrachten Pseudo-Ground-Truth-Rahmen, gewichtet über der Wichtigkeit, normalisiert durch
wobei ∈ eine kleine Konstante ist, die eine Division durch Null in dem Fall verhindert, dass alle
mit 0 gewichtet sind. Die Gewichtungsfunktion kann auf irgendeine geeignete Weise definiert sein. Zum Beispiel ist Γ(x) = x, eine Gewichtung nach der Punktzahl bzw. Bewertung selbst, ein einfacher Ansatz. Eine andere Möglichkeit bildet eine harte Schwelle, wobei Bewertungen über einer Schwelle eine Gewichtung von 1 haben und Bewertungen unter der Schwelle eine Gewichtung von 0 haben.
-
Für Rahmen, die mit Pseudo-Ground-Truth in Übereinstimmung gebracht sind, mit einer Konfidenz über einer ersten Schwelle (z.B. etwa 0,6), kann eine weitere Klassifizierung durchgeführt werden. Wenn die Vorhersage mit einer Pseudo-Grundregel in Übereinstimmung gebracht wird, die unter der ersten Schwelle, aber über einer zweiten Schwelle (z.B. etwa 0,1) liegt, kann die Vorhersage bei der Verlustberechnung vollständig ignoriert werden. Wenn die Vorhersage mit einem Konfidenzwert unter der zweiten Schwelle (z.B. unter etwa 0,1) in Übereinstimmung gebracht ist oder nicht mit einem Ground Truth in Übereinstimmung gebracht ist, kann die Vorhersage als Hintergrund für eine Klassifizierung behandelt werden. Somit können mehrdeutige Ergebnisse ignoriert werden. Die besonderen Werte der ersten Schwelle und der zweiten Schwelle können auf irgendeinen geeigneten Wert festgelegt werden, der die beste Leistung ergibt.
-
Nimmt man nun Bezug auf 3, sind beispielhafte neuronale Netzwerkstrukturen für den datensatzspezifischen Objektdetektor gezeigt. Bei einer ersten Struktur 310 wird jeder datensatzspezifische Detektor mit einem separaten Backbone 302 trainiert, der zum Beispiel mit einem R-CNN-Netzwerk implementiert sein kann. Der Detektor 304 kann als RPN implementiert sein, um die Begrenzungsrahmen von Objekten vorherzusagen. Ein Klassifikator 306 bestimmt dann eine oder mehrere Beschriftungen bzw. Bezeichnungen für jeden der vorhergesagten Begrenzungsrahmen. Jeder datensatzspezifische Detektor enthält dann einen separaten Backbone 302, einen Detektor 304 und einen Klassifikator 306, von welchen jeder ein Eingabebild 300 separat verarbeitet.
-
Bei einer zweiten Struktur 320 teilen sich die datensatzspezifischen Detektoren alle einen einzigen Backbone 302. Dieser geteilte bzw. gemeinsam genutzte Backbone 302 verarbeitet das Eingabebild 300, bevor separate Detektoren 304 und Klassifikatoren 306 an ihm arbeiten. Der Backbone 302 kann als Merkmalsextraktor zur Objekterkennung interpretiert werden. Er kann rohe Bildinformation als Eingabe nehmen und kann Zwischenmerkmale erzeugen. Diese Merkmale können durch die erkennungsspezifischen Teile des neuronalen Netzwerks als Eingabe genommen werden.
-
Wenn das neuronale Netzwerk optimiert wird, fließt Information durch die erkennungsspezifischen Teile zurück zu dem (den) Merkmalsextraktor(en). Wenn der Backbone 302 auf geteilte Weise trainiert wird (z.B. bei der Struktur 320), empfängt dieser Teil des neuronalen Netzwerks somit rückpropagierte Information aus allen Datensätzen. Im Gegensatz dazu bekommen die erkennungsspezifischen Teile Aktualisierungen bzw. Updates nur aus ihren jeweiligen Datensätzen. Dies ist unterschiedlich vom Trainieren eines vereinigten Detektors, bei welchem alle Teile des vereinigten Detektors Information aus allen Datensätzen empfangen.
-
Die hierin beschriebenen Ausführungsformen können vollständig Hardware, vollständig Software oder sowohl Hardware- als auch Softwareelemente sein. Bei einer bevorzugten Ausführungsform ist die vorliegende Erfindung in Software implementiert, die Firmware, residente Software, einen Microcode etc. enthält, ist aber nicht darauf beschränkt.
-
Ausführungsformen können ein Computerprogrammprodukt enthalten, auf das von einem computerverwendbaren oder computerlesbaren Medium aus zugegriffen werden kann, das einen Programmcode zur Verwendung durch einen oder in Verbindung mit einem Computer, oder irgendein oder irgendeinem Anweisungsausführungssystem, bereitstellt. Ein computerverwendbares oder computerlesbares Medium kann irgendeine Vorrichtung enthalten, die das Programm zur Verwendung durch das Befehlsausführungssystem, die Vorrichtung oder das Gerät, oder in Verbindung damit, speichert, kommuniziert, aus- bzw. verbreitet oder transportiert. Das Medium kann ein magnetisches, optisches, elektronisches, elektromagnetisches, infrarotes oder Halbleitersystem (oder eine Vorrichtung oder ein Gerät) oder ein Ausbreitungsmedium sein. Das Medium kann ein computerlesbares Speichermedium enthalten, wie beispielsweise einen Halbleiter- oder Festkörperspeicher, ein Magnetband, eine Wechsel-Computerdiskette, einen Direktzugriffsspeicher (RAM), einen Nurlesespeicher (ROM), eine feste bzw. starre Magnetplatte und eine optische Scheibe etc.
-
Jedes Computerprogramm kann konkret bzw. materiell in einem maschinenlesbaren Speichermedium oder einer -vorrichtung (z.B. Programmspeicher oder Magnetplatte) gespeichert sein, das oder die durch einem allgemeinen oder speziellen programmierbaren Computer lesbar ist, zum Konfigurieren und Steuern eines Betriebs eines Computers, wenn das Speichermedium bzw. die Speichermedien oder die Vorrichtung durch den Computer gelesen wird bzw. werden, um die hierin beschriebenen Prozeduren durchzuführen. Das erfinderische System kann auch als in einem computerlesbaren Speichermedium verkörpert angesehen werden, das mit einem Computerprogramm konfiguriert ist, wobei das Speichermedium so konfiguriert ist, dass es veranlasst, dass ein Computer auf eine spezifische und vordefinierte Weise arbeitet, um die hierin beschriebenen Funktionen durchzuführen.
-
Ein Datenverarbeitungssystem, das zum Speichern und/oder Ausführen eines Programmcodes geeignet ist, kann wenigstens einen Prozessor enthalten, der direkt oder indirekt über einen Systembus mit Speicherelementen gekoppelt ist. Die Speicherelemente können einen lokalen Speicher enthalten, der während einer tatsächlichen Ausführung des Programmcodes verwendet wird, einen Massenspeicher und Cachespeicher, die eine temporäre Speicherung von wenigstens etwas von einem Programmcode zur Verfügung zu stellen, um die Anzahl von Malen zu reduzieren, für welche der Code während einer Ausführung aus einem Massenspeicher abgerufen wird. Eingabe-/Ausgabe- oder I/O-Vorrichtungen (einschließlich, aber nicht darauf beschränkt, von Tastaturen, Anzeigen, Zeigevorrichtungen etc.) können entweder direkt oder über dazwischenliegende I/O-Steuerungen mit dem System gekoppelt sein.
-
Netzwerkadapter können auch mit dem System gekoppelt sein, um zu ermöglichen, dass das Datenverarbeitungssystem über dazwischenliegende private oder öffentliche Netzwerke mit anderen Datenverarbeitungssystemen oder entfernten bzw. Remote-Druckern oder Speichervorrichtungen gekoppelt werden. Modems, ein Kabelmodem und Ethernet-Karten sind nur einige wenige der derzeit verfügbaren Typen von Netzwerkadaptern.
-
Wie er hierin verwendet wird, kann sich der Begriff „Hardwareprozessor-Untersystem“ oder „Hardwareprozessor“ auf einen Prozessor, einen Speicher (einschließlich RAM, Cache(s) und so weiter), Software (einschließlich Speichermanagementsoftware) oder Kombinationen davon beziehen, die zusammenarbeiten, um eine oder mehrere spezifische Aufgaben durchzuführen. Bei nützlichen Ausführungsformen kann das Hardwareprozessor-Untersystem ein oder mehrere Datenverarbeitungselemente (z.B. Logikschaltungen, Verarbeitungsschaltungen, Anweisungsausführungsvorrichtungen etc.) enthalten. Das eine oder die mehreren Datenverarbeitungselemente kann oder können in einer zentralen Verarbeitungseinheit, einer Grafikverarbeitungseinheit und/oder einer separaten prozessor- oder computerelementbasierten Steuerung (z.B. Logikgatter etc.) enthalten sein. Das Hardwareprozessor-Untersystem kann einen oder mehrere integrierte Speicher bzw. Onboard-Speicher (z.B. Caches, bestimmte bzw. dedizierte Speicherarrays, einen Nurlesespeicher etc.) enthalten. Bei einigen Ausführungsformen kann das Hardwareprozessor-Untersystem einen oder mehrere Speicher enthalten, die onboard oder offboard sein können oder die zur Verwendung durch das Hardwareprozessor-Untersystem bestimmt bzw. dediziert sein können (z.B. ROM, RAM, BIOS (Basic Input/Output System (= Grundlegendes Eingabe-/Ausgabe-System)) etc.).
-
Bei einigen Ausführungsformen kann das Hardwareprozessor-Untersystem ein oder mehrere Softwareelemente umfassen und ausführen. Das eine oder die mehreren Softwareelemente kann oder können ein Betriebssystem und/oder eine oder mehrere Anwendungen und/oder einen spezifischen Code enthalten, um ein spezifiziertes bzw. bestimmtes Ergebnis zu erzielen.
-
Bei anderen Ausführungsformen kann das Hardwareprozessor-Untersystem eine dedizierte, spezialisierte Schaltung enthalten, die eine oder mehrere elektronische Verarbeitungsfunktionen durchführt, um ein bestimmtes Ergebnis zu erzielen. Eine solche Schaltung kann eine oder mehrere anwendungsspezifische integrierte Schaltungen (ASICs), FPGAs und/oder PLAs enthalten.
-
Diese und andere Variationen eines Hardwareprozessor-Untersystems werden gemäß Ausführungsformen der vorliegenden Erfindung auch in Betracht gezogen.
-
Eine Bezugnahme in der Spezifikation auf „eine einzelne Ausführungsform“ oder „eine Ausführungsform“ der vorliegenden Erfindung sowie andere Variationen davon bedeutet, dass ein bestimmtes Merkmal, eine bestimmte Struktur, eine bestimmte Charakteristik und so weiter, das oder die in Verbindung mit der Ausführungsform beschrieben wird, bei wenigstens einer Ausführungsform der vorliegenden Erfindung enthalten ist. Somit beziehen sich die Erscheinungen der Formulierung „bei einer einzelnen Ausführungsform“ oder „bei einer Ausführungsform“ sowie irgendwelche anderen Variationen, die an verschiedenen Stellen in der gesamten Spezifikation erscheinen, nicht notwendigerweise alle auf dieselbe Ausführungsform. Es ist jedoch einzusehen, dass Merkmale von einer oder von mehreren Ausführungsformen bei den hierin zur Verfügung gestellten gegebenen Lehren der vorliegenden Erfindung kombiniert werden können.
-
Es ist einzusehen, dass die Verwendung von irgendetwas von dem folgendem „/“, „und/oder“ und „wenigstens eines von“, wie zum Beispiel in den Fällen von „A/B“, „A und/oder B“ und „wenigstens eines von A und B“, nur die Auswahl der ersten aufgelisteten Option (A) oder die Auswahl der zweiten aufgelisteten Option (B) oder die Auswahl von beiden Optionen (A und B) umfassen soll. Als ein weiteres Beispiel soll eine solche Formulierung in den Fällen „A, B und/oder C“ und „wenigstens eines von A, B und C“ nur die Auswahl der ersten aufgelisteten Option (A) oder nur die Auswahl der zweiten aufgelisteten Option (B) oder nur die Auswahl der dritten aufgelisteten Option (C) oder nur die Auswahl der ersten und zweiten aufgelisteten Optionen (A und B) oder nur die Auswahl der ersten und dritten aufgelisteten Optionen (A und C) oder nur die Auswahl der zweiten und dritten aufgelisteten Optionen (B und C) oder die Auswahl aller drei Optionen (A und B und C) umfassen. Dies kann für so viele Elemente ausgeweitet werden, wie sie aufgelistet sind.
-
Nimmt man nun Bezug auf 4, ist ein Objekterkennungssystem mit mehreren Datensätzen 400 gezeigt. Das System 400 enthält einen Hardwareprozessor 402 und einen Speicher 404. Eine Bildeingabe 405 kann eine Quelle von Bilddaten darstellen, wie beispielsweise eine Kamera oder eine Benutzereingabe, die ein oder mehrere Objekte von Interesse enthalten können. Zum Beispiel kann die Bildeingabe 405 einen Strom bzw. Stream von einer Überwachungsvideokamera darstellen, wo die Erkennung von Personen in den Bildern des Videostreams nötig sein kann, um einen gefährlichen oder unsicheren Zustand zu identifizieren.
-
Ein Modelltrainer 410 trainiert einen vereinigten Objektdetektor 408, um mehrere Klassen von Objekten innerhalb der Bildeingabe 405 zu erkennen. Diese mehreren Klassen von Objekten sind in mehreren ursprünglichen Trainingsdatensätzen 407 mit Anmerkungen versehen bzw. kommentiert und jeder der Trainingsdatensätze 407 kann eine oder mehrere Objektklassenanmerkungen enthalten, die im Rest der Trainingsdatensätze 407 nicht bereitgestellt sind. Somit trainiert der Modelltrainer 410 den vereinigten Objektdetektor 408, um alle der Objekte innerhalb der Trainingsdatensätze 407 zu erkennen.
-
Der Modelltrainer 410 trainiert mehrere datensatzspezifische Objektdetektoren 406, wie er zum Beispiel einen separaten datensatzspezifischen Objektdetektor 406 für jeden jeweiligen Datensatz der Trainingsdatensätze 407 trainiert. Der Modelltrainer 410 verwendet diese datensatzspezifischen Objektdetektoren 406, um die Trainingsdatensätze 407 kreuzweise zu kommentieren, was „Pseudo-Ground-Truth“ für alle der Objektklassen identifiziert, und zwar über alle der Bilder in den mehreren Trainingsdatensätzen 407 hinweg. Diese Pseudo-Ground-Truths, dargestellt durch die kreuzweisen Anmerkungen, werden in Kombination mit den wahren Ground Truths, dargestellt durch die ursprünglichen Anmerkungen, verwendet, um den vereinigten Objektdetektor 408 zu trainieren.
-
Die datensatzspezifischen Objektdetektoren 406 und der vereinigte Objektdetektor 408 können alle als künstliche neuronale Netzwerke (ANNs (= artificial neural networks)) implementiert sein, wie zum Beispiel unter Verwendung eines gemeinsam genutzten bzw. geteilten „Backbones“ oder von separaten Backbones, wie es oben beschrieben ist. Ein ANN ist ein Informationsverarbeitungssystem, das durch biologische Nervensysteme, wie beispielsweise das Gehirn, inspiriert ist. Das Schlüsselelement von ANNs ist die Struktur des Informationsverarbeitungssystems, das eine große Anzahl von stark miteinander verbundenen Verarbeitungselementen (die „Neuronen“ genannt werden) enthält, die parallel arbeiten, um spezifische Probleme zu lösen. ANNs werden weiterhin im Einsatz trainiert, Und zwar mit einem Lernen, das Einstellungen an Gewichtungen enthält, die zwischen den Neuronen existieren. Ein ANN ist durch einen solchen Lernprozess für eine spezifische Anwendung, wie beispielsweise Mustererkennung oder Datenklassifizierung, konfiguriert.
-
Nimmt man nun Bezug auf 5, ist ein verallgemeinertes Diagramm eines neuronalen Netzwerks gezeigt. ANNs zeigen eine Fähigkeit, aus komplizierten oder ungenauen Daten eine Bedeutung abzuleiten, und können verwendet werden, um Muster zu extrahieren und Trends zu erkennen, die zu komplex sind, um von Menschen oder anderen computerbasierten Systemen erkannt zu werden. Es ist allgemein bekannt, dass die Struktur eines neuronalen Netzwerks Eingabeneuronen 502 hat, die Information zu einem oder mehreren „versteckten“ Neuronen 504 liefern. Verbindungen 508 zwischen den Eingabeneuronen 502 und versteckten Neuronen 504 werden gewichtet und diese gewichteten Eingaben werden dann durch die versteckten Neuronen 504 gemäß einer Funktion in den versteckten Neuronen 504 verarbeitet, und zwar mit gewichteten Verbindungen 508 zwischen den Schichten. Es kann irgendeine Anzahl von Schichten von versteckten Neuronen 504 sowie Neuronen, die unterschiedliche Funktionen durchführen, geben. Es existieren auch unterschiedliche neuronale Netzwerkstrukturen, wie beispielsweise ein neuronales Faltungsnetzwerk, ein Maxout-Netzwerk etc. Schließlich akzeptiert und verarbeitet ein Satz von Ausgabeneuronen 506 eine gewichtete Eingabe von dem letzten Satz versteckter Neuronen 504.
-
Dies stellt eine „Feed-Forward“-Berechnung dar, bei welcher sich Information von Eingabeneuronen 502 zu den Ausgabeneuronen 506 ausbreitet. Auf eine Beendigung einer Feed-Forward-Berechnung hin wird die Ausgabe mit einer erwünschten Ausgabe verglichen, die aus Trainingsdaten verfügbar ist. Der Fehler in Bezug auf die Trainingsdaten wird dann bei der „Feed-Back“-Berechnung verarbeitet, wobei die versteckten Neuronen 504 und Eingabeneuronen 502 Information bezüglich des Fehlers empfangen, der sich von den Ausgabeneuronen 506 rückwärts ausbreitet. Wenn die Rückwärtsfehlerausbreitung einmal beendet worden ist, werden Gewichtungsaktualisierungen durchgeführt, wobei die gewichteten Verbindungen 508 aktualisiert werden, um den empfangenen Fehler zu berücksichtigen. Dies stellt nur eine Variante von ANN dar.
-
Nimmt man nun Bezug auf 6, ist eine ANN-Architektur 600 gezeigt. Es sollte verstanden werden, dass die vorliegende Architektur rein beispielhaft ist und dass stattdessen andere Architekturen oder Typen von neuronalen Netzwerken verwendet werden können. Die hierin beschriebene ANN-Ausführungsform ist mit der Absicht enthalten, allgemeine Prinzipien einer Berechnung mit neuronalem Netzwerk auf einer hohen Ebene einer Allgemeingültigkeit darzustellen, und sollte in keiner Weise als beschränkend ausgelegt werden.
-
Weiterhin werden die unten beschriebenen Schichten von Neuronen und die Gewichte bzw. Gewichtungen, die sie verbinden, auf eine allgemeine Weise beschrieben und können durch irgendeinen Typ von Schichten eines neuronalen Netzwerks mit irgendeinem geeigneten Grad oder Typ von Interkonnektivität ersetzt werden. Zum Beispiel können Schichten Faltungsschichten, Poolingschichten, vollständig verbundene Schichten, Softmax-Schichten oder irgendeinen anderen geeigneten Typ von Schichten eines neuronalen Netzwerks enthalten. Weiterhin können Schichten hinzugefügt oder entfernt werden, wie es nötig ist, und können die Gewichtungen für kompliziertere Verbindungsformen weggelassen werden.
-
Während eines Feed-Forward-Betriebs liefert ein Satz von Eingabeneuronen 602 jeweils ein Eingangssignal parallel zu einer jeweiligen Zeile bzw. Reihe von Gewichten 604. Die Gewichte 604 haben jeweils einen jeweiligen einstellbaren Wert, so dass eine Gewichtsausgabe vom Gewicht 604 zu einem jeweiligen versteckten Neuron 606 übergeht, um die gewichtete Eingabe dem versteckten Neuron 606 darzustellen. Bei softwaremäßigen Ausführungsformen können die Gewichte 604 einfach als Koeffizientenwerte dargestellt werden, die mit den relevanten Signalen multipliziert werden. Die Signale von jedem Gewicht fügen sich spaltenweise hinzu und fließen zu einem versteckten Neuron 606.
-
Die versteckten Neuronen 606 verwenden die Signale aus dem Feld von Gewichten 604, um eine Berechnung durchzuführen. Die versteckten Neuronen 606 geben dann ein Signal von ihnen selbst zu einem anderen Feld von Gewichten 604 aus. Dieses Feld führt auf dieselbe Weise durch, wobei eine Spalte von Gewichten 604 ein Signal von ihrem jeweiligen versteckten Neuron 606 empfängt, um eine gewichtete Signalausgabe zu erzeugen, die sich zeilenweise hinzufügt und zum Ausgabeneuron 608 geliefert wird.
-
Es sollte verstanden werden, dass irgendeine Anzahl von diesen Stufen implementiert werden kann, indem zusätzliche Schichten von Feldern bzw. Arrays und versteckten Neuronen 606 zwischengeschaltet werden. Es sollte auch beachtet werden, dass einige Neuronen konstante Neuronen 609 sein können, die eine konstante Ausgabe zum Feld bzw. Array liefern. Die konstanten Neuronen 609 können unter den Eingabeneuronen 602 und/oder versteckten Neuronen 606 vorhanden sein und werden nur während eines Feed-Forward-Betriebs verwendet.
-
Während einer Rückpropagation bzw. Rückausbreitung liefern die Ausgabeneuronen 608 ein Signal über das Feld bzw. Array von Gewichten 604. Die Ausgabeschicht vergleicht die erzeugte Netzwerkantwort mit Trainingsdaten und berechnet einen Fehler. Das Fehlersignal kann proportional zum Fehlerwert gemacht werden. Bei diesem Beispiel empfängt eine Zeile bzw. Reihe von Gewichtungen 604 ein Signal von einem jeweiligen Ausgabeneuron 608 parallel und erzeugt eine Ausgabe, die sich spaltenweise hinzufügt bzw. addiert, um eine Eingabe zu versteckten Neuronen 606 zu liefern. Die versteckten Neuronen 606 kombinieren das gewichtete Rückkoppel- bzw. Feedback-Signal mit einer Ableitung seiner Feed-Forward-Berechnung und speichern einen Fehlerwert vor einem Ausgeben eines Feedback-Signals zu ihren jeweiligen Spalten von Gewichtungen 604. Diese Rückpropagation wandert durch das gesamte Netzwerk 600, bis alle versteckten Neuronen 606 und die Eingabeneuronen 602 einen Fehlerwert gespeichert haben.
-
Während Gewichtsaktualisierungen werden die gespeicherten Fehlerwerte verwendet, um die einstellbaren Werte der Gewichtungen 604 zu aktualisieren. Auf diese Weise können die Gewichtungen 604 trainiert werden, um das neuronale Netzwerk 600 an Fehler bei seiner Verarbeitung anzupassen. Es sollte beachtet werden, dass sich die drei Betriebsarten Feed-Forward, Rückpropagation und Gewichtsaktualisierung einander nicht überlappen.
-
Das Vorstehende ist in jeder Hinsicht als illustrativ und beispielhaft, aber nicht als einschränkend, zu verstehen, und der Schutzumfang der hierin offenbarten Erfindung ist nicht aus der detaillierten Beschreibung zu bestimmen, sondern aus den Ansprüchen, wie sie gemäß der vollständigen Breite interpretiert werden, die durch die Patentgesetze zulässig ist. Es ist zu verstehen, dass die hierin gezeigten und beschriebenen Ausführungsformen nur illustrativ für die vorliegende Erfindung sind und dass Fachleute auf dem Gebiet verschiedene Modifikationen implementieren können, ohne vom Schutzumfang und Sinngehalt der Erfindung abzuweichen. Fachleute auf dem Gebiet könnten verschiedene andere Merkmalskombinationen implementieren, ohne vom Schutzumfang und Sinngehalt der Erfindung abzuweichen. Nachdem somit Aspekte der Erfindung mit den von den Patentgesetzen geforderten Details und Besonderheiten beschrieben sind, wird das, was beansprucht und durch das Patent geschützt erwünscht wird, in den beigefügten Ansprüchen dargelegt.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- US 62/935103 [0001]
- US 17/094261 [0001]