-
Die vorliegende Erfindung betrifft die automatische Erzeugung von Bildern, die unter anderem verwendet werden können, um einen Trainingsdatensatz für einen Bildklassifizierer zu vergrößern.
-
Hintergrund
-
Beim Lenken eines Fahrzeugs durch den Verkehr ist die optische Beobachtung der Umgebung des Fahrzeugs die wichtigste Informationsquelle, die für die Planung der nächsten Aktionen des Fahrzeugs benötigt wird. Dies gilt für menschliche Fahrer ebenso wie für Systeme zur zumindest teilweisen Automatisierung des Fahrens. Die letztgenannten Systeme verwenden normalerweise trainierte Bildklassifizierer, die Bilder auf Klassifizierungsscores dafür, welche Arten von Objekte sie enthalten, abbilden.
-
Die optische Inspektion der Geometrie und/oder Oberfläche eines Produktes ist ein weiterer wichtiger Anwendungsbereich für Bildklassifizierer. Basierend auf dem Ergebnis kann das Produkt einer oder mehreren vorbestimmten Qualitätsklassen zugeordnet werden. Im einfachsten Fall ist dies eine binäre Klassifizierung der Form „OK“ / „nicht OK = NOK“.
-
Bildklassifizierer werden normalerweise an Trainingsbildern trainiert, die mit „Grundwahrheit“- („Ground-Truth“) Klassifizierungswerten gekennzeichnet sind. Das Ziel des Trainings besteht darin, dass der Bildklassifizierer die Trainingsbilder auf ihre jeweiligen „Grundwahrheit“-Klassifizierungsscores abbildet. Wenn das Training mit einem ausreichend großen Satz von Trainingsbildern durchgeführt wird, die eine ausreichende Variabilität aufweisen, dann erwartet werden kann, dass der Bildklassifizierer auch ungesehene Bilder korrekt klassifiziert. Das Erhalten der Trainingsbilder ist der teuerste Teil des Trainingsprozesses.
-
Insbesondere das Kennzeichnen der Trainingsbilder ist aufwendig, da sie häufig mit manueller Arbeit verbunden ist.
-
Offenbarung der Erfindung
-
Die Erfindung stellt ein Verfahren zum Erzeugen, aus einem Eingabebild x, eines Ausgabebildes xg bereit, das ein gegebener Bildklassifizierer in eine Zielklasse c' klassifiziert, die aus mehreren verfügbaren Klassen einer gegebenen Klassifizierung ausgewählt wird.
-
Bei diesem Verfahren wird das Eingabebild x durch ein trainiertes Kodierernetzwerk auf eine niedriger-dimensionale Darstellung z in einem latenten Raum abgebildet. Dieser latente Raum kann beispielsweise durch ein Training des Kodierernetzwerks in Verbindung mit dem Training eines Dekodierers, der das ursprüngliche Eingabebild x rekonstruieren soll, definiert werden. Eine solche Kodierer-Dekodierer-Struktur wird „Autoencoder“ genannt. Eine Art von Autoencodern, die im Kontext der vorliegenden Erfindung vorteilhaft verwendet werden können, ist der Variations-Autoencoder, VAE. Der latente Raum kann als Untermannigfaltigkeit eines kartesischen Raumes beliebiger Dimensionalität verstanden werden. Aufgrund dieser Eigenschaft ist es typischerweise einfacher, eine Probe z aus diesem latenten Raum zu erhalten, indem eine Probe in dem Raum der Eingabebilder x genommen und diese mittels des Kodierernetzwerks in die Probe z transformiert wird, als direkt eine Probe z zu finden, die zu dem latenten Raum gehört. Da die Dimensionalität der Darstellung z niedriger als die Dimensionalität des Eingabebildes x (und seiner Rekonstruktion) ist, werden die Informationen beim Berechnen der Darstellung und anschließenden Rekonstruieren des ursprünglichen Eingabebildes durch einen „Engpass“ gezwungen. Dieser Engpass zwingt den Kodierer, nur die Informationen in die Darstellung z zu kodieren, die für die Rekonstruktion des ursprünglichen Bildes x am wichtigsten sind.
-
Eine Rauschprobe n wird aus einer gegebenen Verteilung abgetastet. Mittels eines trainierten Generatornetzwerks wird diese Rauschprobe n auf ein Ausgangsbild xg abgebildet. Diese Abbildung ist sowohl von der Zielklasse c' als auch von der Darstellung z abhängig.
-
Generatornetzwerke, wie Generatorteile von GANs (Generative Adversarial Networks) produzieren bekanntlich Bilder, die zu einer gewünschten Domäne gehören und daher im Kontext anderer Bilder, die zu dieser Domäne gehören, „realistisch“ sind. Ein weiteres „Konditionieren“ der Erzeugung des Ausgabebildes xg auf eine bestimmte Größe oder Eigenschaft hin bedeutet, dass bevorzugt oder sogar erzwungen wird, dass xg mit der gegebenen Größe oder Eigenschaft übereinstimmt. Die Konditionierung auf die Zielklasse c' bevorzugt oder erzwingt somit Zielbilder xg, die zur Zielklasse c' gehören. Die Konditionierung auf die Darstellung z bevorzugt oder erzwingt Ausgabebilder xg, die mit der Darstellung z verknüpft sind. Insbesondere kann die Konditionierung auf die Darstellung z umfassen, dass das trainierte Generatornetzwerk ein Ausgabebild xg produziert, welches das trainierte Kodierernetzwerk auf die Darstellung z abbildet. Das heißt, es wird bevorzugt oder sogar erzwungen, dass die Ausgabebilder xg Bilder sind, die das trainierte Kodierernetzwerk auf Darstellungen zg abbildet, die so nahe wie möglich an z liegen.
-
Die Konditionierung auf die Darstellung z hat den Effekt, dass, wenn aus ein und demselben Eingabebild x eine Vielzahl von Ausgabebildern xg produziert werden, diese alle aus der Klasse c' sind, und dass ihr charakteristischster Inhalt, der zum Rekonstruieren eines Bild aus seiner Darstellung z am wichtigsten ist, ziemlich ähnlich sein wird. Alle Bildinformationen, die nicht zu diesem charakteristischsten Inhalt gehören, dürfen jedoch variieren. Das heißt, die Zufälligkeit der Rauschprobe n wird ausgenutzt, um selektiv eine Variabilität in den Teilen der Bilder xg zu produzieren, die weniger wichtige Merkmale in Bezug auf irgendwelche Entscheidungsgrenzen zwischen der Zielklasse c' und irgendwelchen anderen Klassen enthalten.
-
Der Generator kann jedes geeignete Verfahren verwenden, um zu fördern oder zu erzwingen, dass das Ausgabebild xg auf eine Darstellung zg abgebildet wird, die der Konditionierung z so nahe wie möglich kommt. Beispielsweise kann der Generator mehrere Kandidatenbilder erzeugen, jedes Kandidatenbild auf eine Darstellung abbilden, und das Kandidatenbild, dessen Darstellung zg am nächsten an z liegt, als Ausgabebild xg auswählen.
-
Dies macht die Ausgabebilder xg besonders nützlich als Trainingsbilder für Bildklassifizierer. Während des Trainings kann ein Bildklassifizierer verwirrende Korrelationen zwischen Klassen und unwichtigen Bildmerkmalen lernen, die tatsächlich nichts mit der Klassenmitgliedschaft zu tun haben. Wenn beispielsweise ein Bildklassifizierer darauf trainiert wird, Bilder von Job-Bewerbern auf bestimmte Fähigkeiten abzubilden, und einige der Personen in den Trainingsbildern auffällige Schulterpolster tragen, dann könnte der Bildklassifizierer zumindest teilweise eine Korrelation zwischen den leicht zu erkennenden Schulterpolstern und den Fähigkeiten lernen, anstatt die gesuchte Korrelation zwischen schwer zu erkennenden Gesichtszügen und den Fähigkeiten. In einem Trainingsdatensatz, der mit erzeugten Ausgabebildern xg angereichert ist, wird eine solche verwirrende Korrelation wahrscheinlich aufgebrochen. Der Generator gibt jeder Person mehr oder weniger zufällig Schulterpolster in verschiedenen Größen und Formen, oder gar keine Schulterpolster, ohne dass es eine Korrelation zum Fähigkeitsniveau gibt. Um eine gute Bewertung durch die Klassifizierungsverlustfunktion zu erzielen, bleibt dem Klassifizierer dann nichts anderes übrig, als den Zusammenhang zwischen Gesichtsmerkmalen und Fähigkeiten zu lernen.
-
Die Klassifizierung von Objekten in Verkehrsszenen ist ein weiterer wichtiger Anwendungsfall, bei dem verwirrende Korrelationen gelernt werden können. Neben den verkehrsrelevanten Objekten enthält die aufgenommene Szene in der Regel viele weitere Informationen, die für die Beurteilung der Verkehrslage nicht relevant sind. Wenn beispielsweise sowohl ein bestimmter Ladentyp als auch ein Stoppschild eher an Kreuzungen als in anderen Straßenabschnitten zu finden sind, könnte der Bildklassifizierer Bildinformationen, die zu dem Laden gehören, mit der semantischen Bedeutung des Stoppschilds korrelieren. Dies kann dazu führen, dass ein Stoppschild, das an einem Ort ohne diese Art von Laden auftritt, als Stoppschild mit einem geringeren Vertrauenswert eingestuft wird, oder sogar als etwas anderes falsch klassifiziert wird. In einem großen Satz erzeugter Ausgabebilder xg wird aber jedes Verkehrszeichen in Kombination mit allen möglichen unterschiedlichen Hintergründen vorhanden sein, so dass die verwirrende Korrelation aufgebrochen wird.
-
Außerdem erlaubt die Möglichkeit, Bilder beliebiger Klassen zu erzeugen, ein Klassenungleichgewicht zu mildern, das in dem Sinne vorliegt, dass Bilder mit einigen Grundwahrheit-Klassenkennzeichnungen in dem Satz von Trainingsbildern unterrepräsentiert sind. Beispielsweise kommt ein Schild, das einen Fahrer vor einem ungesicherten Bahnübergang oder Flussufer warnt, deutlich seltener vor als ein Stoppschild, ein Hinweisschild oder ein Geschwindigkeitsbegrenzungsschild. Aber die Häufigkeit, mit der die Schilder auftreten, korreliert nicht mit ihrer Bedeutung. Das Übersehen eines Tempolimit-Schildes hat wahrscheinlich weitaus weniger gefährliche Folgen, als an einem Flussufer nicht anzuhalten oder an einem ungesicherten Bahnübergang nicht auf entgegenkommende Züge zu achten. Mit dem vorliegenden Verfahren kann der Satz von Trainingsbildern um viele Trainingsbilder erweitert werden, die die erwähnten seltenen, aber wichtigen Verkehrsschilder enthalten.
-
Das Training eines Bildklassifizierers kann aus einem kombinierten Satz von Eingabebildern x und erzeugen Bildern xg eine Teilmenge auswählen, die einen Zielbetrag an Variabilität sowohl in Bezug auf Grundwahrheit-Klassenkennzeichnungen c (bzw. Zielklassen c') als auch in Bezug auf latente Darstellungen z bzw. zg aufweist. Eine beispielhafte Möglichkeit, eine Diversität in Bezug auf latente Darstellungen z, zg zu messen, besteht darin, für jede Darstellung z, zg den Abstand zu allen anderen Darstellungen z, zg der Eingabebilder x bzw. der erzeugten Bilder xg zu messen und die Ergebnisse zu aggregieren. Ein solches Diversitätsmaß ist an den trainierten Kodierer gebunden. Mit einem anderen Kodierer, oder einem anders trainierten Kodierer, wird die gesamte Struktur des latenten Raums, zu dem die z, zg gehören, unterschiedlich sein.
-
Schließlich kann die Auswahl nur einer Teilmenge der Trainingsbilder aus einem großen Pool mit einer großen Variabilität eine bessere Klassifizierungsgenauigkeit ergeben als die Verwendung des vollständigen Satzes von Trainingsbildern, die irgendeine Art von geprägter Voreingenommenheit aufweisen. Dies ist eine Abweichung von der üblichen Vorstellung, dass mehr Trainingsdaten immer besser sind als weniger Trainingsdaten.
-
In einer weiteren vorteilhaften Ausführungsform kann im Zuge der Abbildung der Rauschprobe n auf das Ausgabebild xg das Ausgabebild xg durch einen gegebenen Bildklassifizierer auf eine Klassifizierungsscore c# abgebildet werden. Mittels einer gegebenen Klassifizierungsverlustfunktion wird bestimmt, wie gut der Klassifizierungsscore c# mit einer Klassifizierung des Ausgabebildes xg in die Zielklasse c' übereinstimmt. Mindestens eine Eingabe in das Generatornetzwerk wird so optimiert, dass eine Neuberechnung des Ausgabebildes xg basierend auf der geänderten Eingabe wahrscheinlich eine Verbesserung des Wertes der Klassifizierungsverlustfunktion bewirkt. Auf diese Weise kann die Erzeugung des Ausgabebildes xg so fein abgestimmt werden, dass es entschiedener in die Zielklasse c' klassifiziert wird.
-
In einer weiteren besonders vorteilhaften Ausführungsform wird das Eingabebild x so gewählt, dass es aus einer Quellklasse c≠c' ist, wodurch das Ausgangsbild xg zu einem kontrafaktischen Bild für das Eingabebild x wird. Solche kontrafaktischen Bilder sind äußerst nützlich, um das Verhalten eines Bildklassifizierers nahe einer Entscheidungsgrenze zwischen Klassen zu untersuchen.
-
In einer besonders vorteilhaften Ausgestaltung wird das kontrafaktische Bild xg mit dem Eingabebild x verglichen. Die Bereiche, in denen sich das kontrafaktische Bild xg von dem Eingabebild x unterscheidet, werden als Bereiche bestimmt, die bezüglich der Klassengrenze zwischen der Quellklasse c und der Zielklasse c' signifikant sind. Anschließend kann bestimmt werden, ob diese Bereiche tatsächlich anwendungsrelevante Informationen enthalten.
-
Beispielsweise ist ein Klassifizierungsscore, der bei einer optischen Inspektion von Produkten von einem Bildklassifizierer ausgegeben wird, wenig glaubwürdig, wenn sich herausstellt, dass die Entscheidung auf Merkmalen im Hintergrund des Bildes basiert, die nichts mit dem Produkt selbst zu tun haben. Auch wenn die Änderung einiger Merkmale in einer Schaufensterdarstellung dazu führt, dass eine Verkehrssituation auf der Straße vor diesem Schaufenster anders klassifiziert wird, bestehen begründete Zweifel, ob dieser Klassifizierer wirklich geeignet ist, Verkehrssituationen richtig einzuschätzen. Ein solches Verhalten eines Bildklassifizierers ähnelt dem Kauf eines Produkts A anstelle eines ähnlichen Produkts B, nur weil der Vertriebsmitarbeiter für Produkt B größer ist als der Vertriebsmitarbeiter für Produkt A.
-
Auch ist es insbesondere für die Bewertung von Verkehrssituationen sehr wichtig zu wissen, auf welchen Teilen eines Objekts ein Bildklassifizierer seine Entscheidung zur Erkennung des Vorhandenseins dieses Objekts basiert. In vielen Verkehrssituationen werden Objekte teilweise von anderen Objekten verdeckt, müssen aber trotzdem erkannt werden. Auch wenn beispielsweise ein achteckiges Stoppschild mit Schnee bedeckt ist, wird von einem Fahrer, und auch von einem automatisierten Fahrzeug, erwartet, dass es dieses erkennt und sich entsprechend verhält. Auch die rechtzeitige Erkennung von Fußgängern, die kurz davor stehen, die Trajektorie des Fahrzeugs zu überqueren, hängt entscheidend davon ab, welche Teile des Fußgängers sichtbar sein müssen, damit der Fußgänger erkannt wird. Viele Gefahrensituationen entstehen, wenn ein Fußgänger ganz oder teilweise von parkenden Autos oder anderen Hindernissen verdeckt wird und plötzlich in die Fahrbahn eines Fahrzeugs tritt. Wenn der Bildklassifizierer nötig hat, dass mindestens der Kopf und die beiden Beine sichtbar sind, bevor er den Fußgänger erkennt, und die Beine für längere Zeit verdeckt sind, wird der Fußgänger möglicherweise erst erkannt, wenn es zu spät ist, um eine Kollision abzuwenden. Reicht dagegen bereits ein Erscheinen des Kopfes, des Oberkörpers oder eines Armes zur Erkennung des Fußgängers aus, wird viel mehr wertvolle Zeit für die Kollisionsabwehr gewonnen.
-
Daher wird in einer weiteren besonders vorteilhaften Ausführungsform durch eine gegebene Metrik bestimmt, wie gut die bezüglich einer Klassengrenze signifikanten Bereiche mit bestimmten Bereichen des Eingabebildes x übereinstimmen, die Merkmale des Eingabebildes enthalten, die als hervorstechend erachtet werden. Dem Bildklassifizierer wird ein Score zugewiesen, der für das von der gegebenen Metrik ausgegebene Ergebnis angemessen ist. Bei der optischen Inspektion von Massenprodukten beispielsweise befinden sich Produkt und Kamera immer in der gleichen räumlichen Anordnung zueinander. Daher ist es im Voraus bekannt, welche Teile des aufgenommenen Bildes zu dem Produkt gehören. Ebenso ist in Verkehrssituationen bekannt, dass der Himmel keine anderen Fahrzeuge enthält, auf die ein Auto reagieren muss.
-
Insbesondere in dem Anwendungsfall der optischen Inspektion kann die Metrik messen, ob die Bereiche, die für die Klassifizierung eines Produkts in die Klasse „nicht OK = NOK“ oder eine andere nicht optimale Klasse von Bedeutung sind, Bereichen mit konkreten Fehlern oder Mängeln entsprechen. Dies bringt die automatisierte optische Inspektion in Einklang mit der manuellen Inspektion, bei der ein menschlicher Qualitätsprüfer auf die Frage, warum ein konkretes Produkt auszusortieren ist, auf bestimmte Fehler oder Mängel hinweist.
-
Der dem Bildklassifizierer zugewiesene Score kann als Feedback verwendet werden, um den Bildklassifizierer zu verbessern. Daher werden in einer weiteren vorteilhaften Ausgestaltung Parameter, die das Verhalten des Bildklassifizierers charakterisieren, so optimiert, dass wenn die Berechnung des kontrafaktischen Bildes xg und der anschließenden Auswertung dieses kontrafaktischen Bildes xg wiederholt werden und der Score für den Bildklassifizierer neuberechnet wird, dieser Score sich wahrscheinlich verbessert.
-
Ein Anwendungsfall hierfür ist ein anwendungsspezifisches weiteres Training eines zuvor generisch vortrainierten Bildklassifizierers. Beispielsweise kann ein Bildklassifizierer generisch trainiert werden, um bestimmte Fehler oder Mängel zu erkennen, aber in einer konkreten Anwendung kann er weiter trainiert werden, um an den richtigen Stellen zu suchen, die zu dem eigentlichen Produkt und nicht zum Hintergrund gehören.
-
Wie zuvor diskutiert, kann das Eingabebild x ein Bild eines hergestellten Produkts sein, das im Zuge einer optischen Inspektion des Produkts erfasst wurde, und die Klassen der gegebenen Klassifizierung stellen Qualitätsstufen für das Produkt dar. In einem anderen Beispiel kann das Eingabebild x ein Bild einer Verkehrssituation sein, und die Klassen der gegebenen Klassifizierung können Objekte darstellen, die für die Interpretation der Verkehrssituation relevant sind.
-
Die Erfindung stellt auch ein Verfahren zum Trainieren einer Kombination eines Kodierernetzwerks und eines Generatornetzwerks zur Verwendung in dem zuvor beschriebenen Verfahren bereit.
-
Im Zuge dieses Trainingsverfahrens wird ein Dekodierernetzwerk bereitgestellt. Dieses Dekodierernetzwerk ist dazu ausgelegt, eine niedriger-dimensionale Darstellung z in einem latenten Raum, die von dem Kodierernetzwerk erhalten wurde, auf ein rekonstruiertes Bild xd in der Domäne der ursprünglichen Eingabebilder x abzubilden. Parameter, die das Verhalten der Kodierer- und Dekodierernetzwerke charakterisieren, werden dann mit dem Ziel optimiert, dass das rekonstruierte Bild xd mit dem ursprünglichen Eingabebild x, aus dem die Darstellung z erhalten wurde, übereinstimmt. Wie zuvor diskutiert, bilden das Kodierernetzwerk und das Dekodierernetzwerk dann einen Autoencoder mit einem Informationsengpass, der zu einer Konzentration der wichtigsten Bildmerkmale in der Darstellung z führt.
-
Außerdem wird ein Diskriminatornetzwerk bereitgestellt. Dieses Diskriminatornetzwerk ist dazu ausgelegt, zu unterscheiden, ob ein Bild aus der Domäne der ursprünglichen Eingabebilder x oder aus der Domäne der erzeugten Bilder xf stammt. Außerdem wird ein Bildklassifizierer bereitgestellt. Dieser Bildklassifizierer ist dazu ausgelegt, das ursprüngliche Eingabebild x und das erzeugte Bild xf auf eine oder mehrere Klassen der gegebenen Klassifizierung abzubilden. Die erzeugten Bilder werden auch als „gefälschte“ („Fake“) -Bilder bezeichnet.
-
Das Generatornetzwerk und das Diskriminatornetzwerk werden kontradiktorisch (kontradiktorisch) trainiert. Zum Beispiel kann das Training zwischen dem Training des Generatornetzwerks und dem Training des Diskriminatornetzwerks wechseln.
-
Parameter, die das Verhalten des Generatornetzwerks charakterisieren, werden mit den Zielen optimiert, dass
- • die Genauigkeit, mit der das Diskriminatornetzwerk zwischen ursprünglichen Eingabebildern x und erzeugten Bildern xf unterscheidet, abnimmt,
- • der Bildklassifizierer gefälschte (d. h. erzeugte) Bilder xf auf ihre gegebene Zielklasse c abbildet, und
- • das Kodierernetzwerk 1 erzeugte Bilder xf auf die Darstellungen z, auf die ihre Erzeugung konditioniert wurde, abbildet.
-
Andererseits werden Parameter, die das Verhalten des Diskriminators charakterisieren, mit dem Ziel optimiert, dass die Genauigkeit, mit der das Diskriminatornetzwerk zwischen ursprünglichen Eingabebildern x und gefälschten Bildern xf unterscheidet, zunimmt.
-
Dieses kontradiktorische Training kann beispielsweise durch die Optimierung einer Verlustfunktion erreicht werden, die umfasst:
- • einen kontradiktorischen Verlust, der die Genauigkeit misst, mit der das Diskriminatornetzwerk zwischen ursprünglichen Eingabebildern x und erzeugten Bildern xf unterscheidet,
- • einen Klassifizierungsverlust, der misst, wie gut der Bildklassifizierer erzeugte Bilder xf auf ihre gegebene Zielklasse c' abbildet. Zum Beispiel kann dieser Klassifizierungsverlust ein Kreuzentropieverlust sein, und
- • einen Darstellungsverlust, der misst, wie ähnlich eine Darstellung z', auf die das erzeugte Bild xf abgebildet wird, der Darstellung z ist, auf die die Erzeugung dieses Bildes xf konditioniert wurde.
-
Das übergeordnete Ziel des kontradiktorischen Trainings besteht darin, diese kombinierte Verlustfunktion zu minimieren. Dabei hängt der Klassifizierungsverlust nur von den Parametern ab, die das Verhalten des Generatornetzwerkes charakterisieren. Der kontradiktorische Verlust hängt jedoch zusätzlich von den Parametern ab, die das Verhalten des Diskriminatornetzwerks charakterisieren. Die Generatorparameter können optimiert werden, um den kontradiktorischen Verlust zu minimieren, und gleichzeitig können die Diskriminatorparameter optimiert werden, um den kontradiktorischen Verlust zu maximieren, oder umgekehrt.
-
Nachdem das kontradiktorische Training abgeschlossen ist, kann die Kombination des Kodierernetzwerks und des Generatornetzwerks in dem oben beschriebenen Verfahren zum Erzeugen eines Ausgabebildes xg verwendet werden, um ein erzeugtes Bild xf zu produzieren, das als das gesuchte Ausgabebild xg dienen kann.
-
Das kontradiktorische Training kann nach dem Training des Autoencoders durchgeführt werden. Das heißt, nachdem der Autoencoder trainiert wurde, können die Parameter des Kodierernetzwerks und des Dekodierernetzwerks festbleiben. Das Training des Autoencoders und das kontradiktorische Training können aber auch in einem einzigen Trainingsverfahren kombiniert werden. In diesem Fall ist es auch möglich, dasselbe Netzwerk als das Dekodierernetzwerk und das Generatornetzwerk zu verwenden. Das heißt, ein und dasselbe Netzwerk kann für das Dekodiererziel und für das Generatorziel trainiert werden. Auf diese Weise geht der Trainingsaufwand, der in das Dekodierernetzwerk geht, nicht „verloren“, wenn das Dekodierernetzwerk nach dem Training entfernt wird. Vielmehr bleibt dieser Aufwand in dem Generatornetzwerk vorhanden.
-
In einer weiteren vorteilhaften Ausgestaltung werden die Parameter, die das Verhalten des Kodierernetzwerks charakterisieren, zusätzlich auf das Ziel hin optimiert, dass der Informationsaustausch zwischen dem ursprünglichen Eingabebild x und seiner Darstellung z maximiert wird. Dadurch wird sichergestellt, dass die Darstellung z einige wichtige Attribute des Eingabebildes beibehält, so dass sie auf das erzeugte Bild xf übertragen werden können. Dies vermeidet Situationen, in denen das Kodierernetzwerk und das Dekodierernetzwerk eine sehr gute Rekonstruktion des ursprünglichen Eingabebildes x zu dem Preis erreichen, dass die Darstellung z eine geringe oder keine sichtbare Korrelation mit dem Eingabebild x aufweist.
-
Alternativ oder in Kombination werden die Parameter, die das Verhalten des Generatornetzwerks charakterisieren, zusätzlich auf das Ziel hin optimiert, dass der Informationsaustausch zwischen dem gefälschten Bild xf und der Darstellung z maximiert wird. Dies bewirkt, dass Attribute aus dem ursprünglichen Eingabebild x, die auf die Darstellung z übertragen wurden, in das erzeugte Bild xf übergehen. Solche Attribute können insbesondere Merkmale sein, die nicht von der Klasse erfasst werden, zu der das Bild gehört. Beispiele hierfür sind Bildstilattribute, wie etwa Liniendicken oder Farben, die über alle Klassen hinweg vorhanden sind und nicht an bestimmte Klassen gebunden sind.
-
In einer weiteren vorteilhaften Ausführungsform umfasst der Bildklassifizierer ein trainierbares Netzwerk, das dazu ausgelegt ist, Eingabebilder x und erzeugte Bilder xf auf eine Kombination aus einer niedriger-dimensionalen Darstellung z in dem latenten Raum und einem Klassifizierungsscore c# abzubilden. Parameter, die das Verhalten dieses trainierbaren Netzwerks charakterisieren, werden mit den Zielen optimiert, dass:
- • der Bildklassifizierer ein ursprüngliches Eingabebild x auf eine Kombination abbildet aus: einer Darstellung z, die der durch das Kodierernetzwerk produzierten Darstellung z entspricht, und einem Klassifizierungsscore c#, der mit einer Grundwahrheit-Kennzeichnung c des Eingabebildes x konsistent ist; und
- • der Bildklassifizierer ein erzeugtes Bild xf auf eine Kombination abbildet aus: einer Darstellung z, die der Darstellung z entspricht, auf die die Erzeugung des Bildes xf konditioniert wurde, und einem Klassifizierungsscore c#, die mit der Zielklasse c' konsistent ist, für die die erzeugtes Bild xf erzeugt wurde.
-
Auf diese Weise liefert der Bildklassifizierer nicht nur eine Rückmeldung über die Klasse des erzeugten Bildes xf. Es dient vielmehr auch der Überwachung der Selbstkonsistenz in dem latenten Darstellungsraum z.
-
Die oben beschriebenen Verfahren können ganz oder teilweise computerimplementiert und somit in Software verkörpert sein. Die Erfindung betrifft daher auch ein Computerprogramm, das maschinenlesbare Anweisungen umfasst, die, wenn sie von einem oder mehreren Computern ausgeführt werden, den einen oder die mehreren Computer veranlassen, ein oben beschriebenes Verfahren durchzuführen. Insofern sind unter Computer auch Steuervorrichtungen für Fahrzeuge und andere eingebettete Systeme zu verstehen, die ausführbaren Programmcode ausführen können. Ein nichtflüchtiges Speichermedium und/oder ein Downloadprodukt können das Computerprogramm umfassen. Ein Downloadprodukt ist ein elektronisches Produkt, das online verkauft und zur sofortigen Lieferung über ein Netzwerk übertragen werden kann. Einer oder mehrere Computer können mit dem Computerprogramm und/oder mit dem nichtflüchtigen Speichermedium und/oder dem Downloadprodukt ausgestattet sein.
-
Im Folgenden werden die Erfindung und ihre bevorzugten Ausführungsformen anhand von Figuren veranschaulicht, ohne den Umfang der Erfindung einschränken zu wollen.
-
Die Figuren zeigen:
- 1 Eine beispielhafte Ausführungsform des Verfahrens 100 zum Erzeugen eines Ausgabebildes xg;
- 2 Eine beispielhafte Ausführungsform des Verfahrens 200 zum Trainieren einer Kombination aus einem Kodierernetzwerk 1 und einem Generatornetzwerk 2;
- 3 Eine beispielhafte Ausführungsform einer Konfiguration zum Durchführen des Verfahrens 200.
-
1 ist ein schematisches Flussdiagramm einer Ausführungsform des Verfahrens 100 zum Erzeugen, aus einem Eingabebild x, eines Ausgabebilds xg, das ein gegebener Bildklassifizierer 3 in eine Zielklasse c' klassifiziert, die aus mehreren verfügbaren Klassen einer gegebenen Klassifizierung ausgewählt wird. In dem in 1 gezeigten Beispiel wird in Schritt 105 das Eingabebild x so gewählt, dass es aus einer Quellenklasse c≠c' ist, wodurch das Ausgabebild xg zu einem kontrafaktischen Bild für das Eingabebild x wird. Aber, wie zuvor diskutiert, kann das Verfahren auch dazu verwendet werden, um basierend auf einem Eingabebild x der Quellklasse c Ausgabebilder xg derselben Quellklasse c zu produzieren, um z. B. einen Satz von Trainingsbildern für den Bildklassifizierer 3 zu vergrößern.
-
In Schritt 110 bildet ein trainiertes Kodierernetzwerk 1 ein Eingabebild x auf eine niedriger-dimensionale Darstellung z in einem latenten Raum ab. In Schritt 115 wird eine Rauschprobe n aus einer gegebenen Verteilung gezogen. In Schritt 120 bildet ein trainiertes Generatornetzwerk 2 diese Rauschprobe n auf ein Ausgabebild xg ab. Diese Abbildung ist sowohl von der Zielklasse c' als auch von der Darstellung z abhängig. Diese Konditionierung auf die Darstellung z hin kann insbesondere umfassen, dass das trainierte Generatornetzwerk 2 ein Ausgabebild xg produziert, welches das trainierte Kodierernetzwerk 1 auf die Darstellung z abbildet. Das heißt, eine Darstellung zg, auf die das trainierte Kodierernetzwerk 1 das Ausgabebild xg abbildet, soll so nahe wie möglich an z sein.
-
Insbesondere kann das finale Ausgabebild xg durch einen Optimierungsprozess erhalten werden. Gemäß Block 121 kann ein anfängliches Ausgabebild xg durch den gegebenen Bildklassifizierer 3 auf eine Klassifizierungsscore c# abgebildet werden. Mittels einer gegebenen Klassifizierungsverlustfunktion Lc kann dann gemäß Block 122 bestimmt werden, wie gut der Klassifizierungsscore c# mit einer Klassifizierung des Ausgabebildes xg in die Zielklasse c' übereinstimmt. Gemäß Block 123 kann dann mindestens eine Eingabe in das Generatornetzwerk 2 so optimiert werden, dass eine Neuberechnung des Ausgabebildes xg basierend auf der geänderten Eingabe wahrscheinlich eine Verbesserung des Wertes der Klassifizierungsverlustfunktion Lc bewirkt.
-
Wenn das Ausgabebild xg ein kontrafaktisches Bild ist, kann dieses in Schritt 130 mit dem Eingabebild x verglichen werden. In Schritt 140 werden dann Bereiche Δ, in denen sich das kontrafaktische Bild xg von dem Eingabebild x unterscheidet, als Bereiche S bestimmt, die bezüglich der Klassengrenze zwischen der Quellklasse c und der Zielklasse c' signifikant sind.
-
In Schritt 150 wird bestimmt, wie gut diese Bereiche S mit gegebenen Bereichen S* des Eingabebildes x n, die Merkmale des Eingabebildes x enthalten, die als hervorstechende erachtet werden, übereinstimme. Ein Score 3a, der für das von der gegebenen Metrik 4 ausgegebene Ergebnis 4a angemessen ist, wird in Schritt 160 dem Bildklassifizierer 3 zugewiesen.
-
Im Schritt 170 werden Parameter (3b), die das Verhalten des gegebenen Bildklassifizierers 3 charakterisieren, so optimiert, dass wenn die Berechnung des kontrafaktischen Bildes xg und in Schritt 120 und der anschließenden Auswertung dieses kontrafaktischen Bildes xg in den Schritten 130 bis 160 wiederholt wird, sich der Score 3a des Bildklassifizierers 3 wahrscheinlich verbessert. Der finale optimierte Zustand der Parameter 3b ist mit dem Bezugszeichen 3b* gekennzeichnet.
-
2 ist ein schematisches Flussdiagramm einer Ausführungsform des Verfahrens 200 zum Trainieren einer Kombination eines Kodierernetzwerks 1 und eines Generatornetzwerks 2 zur Verwendung in dem zuvor beschriebenen Verfahren 100.
-
In Schritt 210 wird ein Dekodierernetzwerk 5 bereitgestellt. Dieses Dekodierernetzwerk 5 ist dazu ausgelegt, eine niedriger-dimensionale Darstellung z in einem latenten Raum, die von dem Kodierernetzwerk 1 erhalten wurde, auf ein rekonstruiertes Bild xd in der Domäne der ursprünglichen Eingabebilder x abzubilden. In Schritt 220 werden Parameter 1a, 5a, die das Verhalten der Kodierer-1 und Dekodierer- 5 Netzwerke charakterisieren, mit dem Ziel optimiert, dass das rekonstruierte Bild xg mit dem ursprünglichen Eingabebild x, aus dem die Darstellung z erhalten wurde, übereinstimmt. Auf diese Weise werden der Kodierer 1 und der Dekodierer 5 trainiert, ein (Variations-) Autoencoder (V)AE zu werden. Die finalen optimierten Zustände der Parameter 1a und 5a sind mit den Bezugszeichen 1a* bzw. 5a* gekennzeichnet. Gemäß Block 221 kann ein zusätzliches Ziel der Optimierung darin bestehen, dass der Informationsaustausch zwischen dem ursprünglichen Eingabebild x und seiner Darstellung z maximiert wird.
-
Dieser Bildklassifizierer 3 kann fixiert und verwendet werden, wie er ist. Aber in der in 2 gezeigten Ausführungsform wird auch der Bildklassifizierer 3 trainiert. Gemäß Block 241 kann der Bildklassifizierer 3 ein trainierbares Netzwerk umfassen, das dazu ausgelegt ist, Eingabebilder x und erzeugte Bilder xf auf eine Kombination einer niedriger-dimensionalen Darstellung z in dem latenten Raum und einem Klassifizierungsscore c# abzubilden. Gemäß Block 242 werden Parameter 3b, die das Verhalten dieses trainierbaren Netzwerks charakterisieren, mit den Zielen optimiert, dass:
- • der Bildklassifizierer 3 ein ursprüngliches Eingabebild x auf eine Kombination abbildet aus: einer Darstellung z, die der durch das Kodierernetzwerk 1 produzierten Darstellung z entspricht, und einem Klassifizierungsscore c#, die mit einer Grundwahrheit-Kennzeichnung c des Eingabebilds x übereinstimmt; und
- • der Bildklassifizierer 3 ein gefälschtes Bild xf auf eine Kombination abbildet aus: einer Darstellung z, die der Darstellung z entspricht, auf die die Erzeugung des gefälschten Bildes xf konditioniert wurde, und einem Klassifizierungsscore c#, der mit der Zielklasse c, für die das Bild xf erzeugt wurde, übereinstimmt.
-
Der finale optimierte Zustand der Parameter 3b ist mit dem Bezugszeichen 3b* gekennzeichnet.
-
In Schritt 250 werden Parameter 2a, die das Verhalten des Generatornetzwerks 2 charakterisieren, mit den Zielen optimiert, dass:
- • die Genauigkeit, mit der das Diskriminatornetzwerk 5 zwischen ursprünglichen Eingabebildern x und gefälschten Bildern xf unterscheidet, abnimmt,
- • der Bildklassifizierer 3 erzeugte Bilder xf auf ihre gegebene Zielklasse c abbildet, und
- • das Kodierernetzwerk 1 erzeugte Bilder xf auf die Darstellungen z, auf die ihre Erzeugung konditioniert wurde, abbildet.
-
Gemäß Block 251 kann ein weiteres Optimierungsziel darin bestehen, dass der Informationsaustausch zwischen dem Bild xf und der Darstellung z maximiert wird. Der finale optimierte Zustand der Parameter 2a ist mit dem Bezugszeichen 2a* gekennzeichnet.
-
Gleichzeitig werden in Schritt 260 Parameter 6a, die das Verhalten des Diskriminatornetzwerks 6 charakterisieren, mit dem Ziel optimiert, dass die Genauigkeit, mit der das Diskriminatornetzwerk 6 zwischen ursprünglichen Eingabebildern x und erzeugten Bildern xf unterscheidet, zunimmt. Der finale optimierte Zustand der Parameter 6a ist mit dem Bezugszeichen 6a* gekennzeichnet.
-
Das heißt, das Training 250 des Generatornetzwerks 2 und das Training 260 des Diskriminatornetzwerks 6 werden auf kontradiktorische Weise durchgeführt.
-
3 zeigt eine beispielhafte Konfiguration, die verwendet werden kann, um das oben beschriebene Trainingsverfahren 200 durchzuführen. Das Kodierernetzwerk 1 und das Dekodierernetzwerk 5 bilden einen (Variations-) Autoencoder (V)AE. Das Generatornetzwerk 2 und das Diskriminatornetzwerk 6 bilden ein generatives kontradiktorisches Netzwerk, GAN. Das Diskriminatornetzwerk 6 gibt für jedes ihm eingegebene Bild eine Klassifizierung aus, ob dieses Bild in der Domäne der ursprünglichen Eingabebilder x liegt oder ob es ein gefälschtes Bild xg ist. In der in 3 gezeigten Ausführungsform wird der Bildklassifizierer 3 verwendet, um nicht nur einen Klassifizierungsscore c# vorherzusagen, sondern auch eine niedriger-dimensionale Darstellung z, die dem ursprünglichen Eingabebild x bzw. dem erzeugten Bild xg entspricht. Er kann daher als Teil des GAN angesehen werden. Das Kodierernetzwerk 1 und das Generatornetzwerk 2 bilden die Vorrichtung 10 zum Erzeugen eines Zielbildes xg, das eine andere Probe aus derselben Quellenverteilung ist, aus einem Quellbild x, das Teil einer Quellverteilung von Bildern ist.
-
Mit dem von dem Bildklassifizierer 3 ausgegebenen Klassifizierungsscore c# kann überwacht werden, wie gut das gefälschte Bild xg der Bedingung für seine Erzeugung, dass es zur Klasse c' gehören soll, entspricht. Wenn das gefälschte Bild xg in den trainierten Kodierer 1 eingegeben wird, kann überwacht werden, wie gut die resultierende Darstellung zg der Bedingung für die Erzeugung von xg, dass zg so ähnlich zu z wie möglich sein soll, entspricht.