Felix Pfarr

Projekte · Bildhochskalierung

Bildhochskalierung mit generativer KI

Ein hochskaliertes Bild sieht besser aus. Ob dadurch auch die Klassifikation besser wird oder das Modell nur plausible Details erfindet, lässt sich messen. Ich habe ein SRGAN gebaut und denselben Klassifikator über drei Auflösungsvarianten desselben Datensatzes laufen lassen.

Rolle
Studienprojekt, Einzelarbeit, Note 1,0
Datensatz
HAM10000, 10.015 dermatoskopische Aufnahmen, sieben Diagnoseklassen
Stack
TensorFlow und Keras, SRGAN mit perzeptuellem Verlust über VGG19, EfficientNetB0, OpenCV, scikit-learn
Unterlagen
Ausarbeitung und Notebooks auf Anfrage, siehe Kontakt

Vorgehen

HAM10000 ist stark unausgewogen, zwei Drittel der Bilder entfallen auf eine einzige Diagnose. Vor dem Training habe ich deshalb jede Klasse auf 800 Bilder gebracht, per Augmentierung oder Kürzung.

Aus jeder Aufnahme entsteht ein Paar in 64x64 und 256x256 Pixeln. Das SRGAN rechnet die niedrige Auflösung wieder hoch, trainiert nicht auf Pixelnähe, sondern auf Merkmalen eines eingefrorenen VGG19. Anschließend läuft dreimal derselbe EfficientNetB0 über die Daten, es ändert sich nur die Bildvariante.

Links dasselbe Bild in niedriger Auflösung, vom SRGAN hochskaliert und in echter hoher Auflösung; rechts der Verlauf von Generator- und Diskriminatorverlust über 29 Trainingsepochen
Links Eingabe, Rekonstruktion und Original im Vergleich, rechts der Trainingsverlauf des SRGAN

Ergebnisse

Auf 560 Testbildern erreicht der Klassifikator 71 Prozent auf den niedrig aufgelösten Bildern und 74 Prozent auf den echten hochaufgelösten. Die hochskalierten kommen auf 78 Prozent und liegen damit über beiden. Der Vorsprung zieht sich durch sechs der sieben Klassen.

Balkendiagramm der Genauigkeit und des Macro-F1 für die drei Bildvarianten
Genauigkeit und Macro-F1 je Bildvariante
F1-Score je Diagnoseklasse für die drei Bildvarianten
F1-Score je Diagnoseklasse

Eine Zahl spricht gegen die gute Gesamtaussage. Bei Melanoma, der klinisch wichtigsten Klasse, steigt die Präzision von 0,51 auf 0,69, die Trefferquote fällt aber von 0,79 auf 0,54. Das hochskalierte Modell übersieht also mehr Melanome, obwohl es insgesamt besser abschneidet. Genau deshalb habe ich die Auswertung je Klasse geführt und nicht bei der Gesamtgenauigkeit aufgehört.

Konfusionsmatrix für die niedrig aufgelösten Bilder
64x64, Accuracy 0,71
Konfusionsmatrix für die vom SRGAN hochskalierten Bilder
hochskaliert, Accuracy 0,78
Konfusionsmatrix für die echten hochaufgelösten Bilder
256x256 echt, Accuracy 0,74

Erkenntnisse

  • Generative Hochskalierung kann die nachgelagerte Klassifikation verbessern, und zwar über den bloßen Ausgleich des Auflösungsverlusts hinaus.
  • Der Generator wirkt dabei weniger als Detailrekonstruktion und mehr als gelernte Vorverarbeitung, die dem vortrainierten Klassifikator entgegenkommt.
  • Eine gestiegene Gesamtgenauigkeit sagt nichts darüber aus, ob das Modell in der entscheidenden Klasse besser geworden ist. Bewertet werden muss pro Klasse.
  • Offen bleibt, ob der Vorsprung bei längerem Training Bestand hat und ob er sich auf echte niedrig aufgelöste Aufnahmen überträgt statt auf herunterskalierte.

Der Datensatz HAM10000 stammt von Tschandl, Rosendahl und Kittler (Harvard Dataverse, 2018) und steht unter CC BY-NC 4.0. Ausarbeitung und Notebooks stelle ich auf Anfrage zur Verfügung, die Kontaktangaben stehen auf der Startseite.

Zurück zu den Projekten