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
Datensatz
- HAM10000
- 10.015 Bilder
- 7 Klassen
Paare bilden
- OpenCV
- 64x64 niedrig
- 256x256 hoch
Hochskalieren
- SRGAN · TensorFlow
- VGG19-Perceptual-Loss
Klassifizieren
- EfficientNetB0
- Transfer Learning
Vergleichen
- 64x64
- hochskaliert
- 256x256 echt
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.
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.
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.
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.