Super Resolution
Super Resolution rekonstruiert aus einem Bild mit niedriger Auflösung ein höher aufgelöstes Bild, indem Details vorhergesagt werden, die sich durch Interpolation nicht wiederherstellen lassen. Behandelt werden Modelle und Code.
Superauflösung (SR) umfasst eine Reihe von Computer-Vision-Techniken, mit denen aus einer Eingabe mit niedriger Auflösung ein Bild oder Video mit höherer Auflösung rekonstruiert wird. Klassische Hochskalierung wie die bikubische Interpolation verteilt lediglich die vorhandenen Pixel auf ein größeres Raster. Dadurch werden Kanten weich und feine Texturen unscharf. Ein trainiertes SR-Modell sagt fehlende hochfrequente Details voraus, etwa scharfe Kanten, Textstriche sowie Texturen von Stoffen oder Laub, und nutzt dafür Muster, die es anhand von Bildpaaren mit niedriger und hoher Auflösung gelernt hat. Die Einzelbild-Superauflösung (SISR) arbeitet mit einem einzelnen Bild. Die Video-Superauflösung nutzt zusätzlich benachbarte Frames, die jeweils leicht unterschiedliche Informationen über dieselbe Szene enthalten.
So funktioniert Super-Resolution#
Superauflösung ist ein schlecht gestelltes Problem: Viele verschiedene Bilder mit hoher Auflösung lassen sich auf dasselbe Bild mit niedriger Auflösung verkleinern. Daher muss das Modell anhand seines Wissens über natürliche Bilder die plausibelste Lösung auswählen. Trainingspaare entstehen, indem Bilder mit hoher Auflösung unscharf gemacht, beispielsweise um den Faktor 2× oder 4× verkleinert, verrauscht und komprimiert werden. Dieses Degradationsmodell bestimmt, mit welchen realen Eingaben das Netzwerk umgehen kann. Real-ESRGAN wird mit zufällig verketteten Degradationen trainiert und kann daher sowohl reale Fotos und Videos als auch sauber verkleinerte Bilder wiederherstellen.
Die Architekturen hielten mit der übrigen Entwicklung im Deep Learning Schritt. SRCNN zeigte 2014, dass ein dreischichtiges neuronales Faltungsnetz (CNN) klassische Methoden übertrifft. ESPCN führt seine Faltungen bei niedriger Auflösung aus und skaliert das Bild erst ganz am Ende mithilfe einer Subpixel-Faltung hoch, die die Kanäle zu einem größeren Bild umordnet und das Verfahren dadurch schnell genug für 1080p-Video in Echtzeit macht. EDSR stapelte zahlreiche Residualblöcke aufeinander, SwinIR baute sein Modell aus Blöcken des Vision Transformers mit verschobenen Fenstern auf, und Diffusionsmodelle erzeugen Details durch iterative Entrauschung.
Die Verlustfunktion bestimmt, was „besser“ bedeutet. Pixelverluste wie L1 oder der mittlere quadratische Fehler maximieren die Übereinstimmung mit dem Original, mitteln aber über die möglichen Ergebnisse und lassen das Bild dadurch glatt wirken. SRGAN ergänzte einen Perzeptionsverlust auf tiefen Merkmalen und einen adversariellen Verlust aus einem generativen adversariellen Netzwerk (GAN). So entstehen scharfe, realistische Texturen, die möglicherweise nicht exakt mit der tatsächlichen Szene übereinstimmen – ein Risiko in der medizinischen und forensischen Bildgebung, wo ein erfundenes Detail für einen Beweis gehalten werden könnte.
Superauflösung messen#
Die Bildtreue wird mit dem Signal-Rausch-Verhältnis (PSNR) gemessen, einem logarithmischen Maß des mittleren quadratischen Fehlers in Dezibel, sowie mit dem Strukturellen Ähnlichkeitsindex (SSIM). Perzeptuelle Metriken wie LPIPS vergleichen tiefe Merkmale und stimmen besser mit menschlichen Einschätzungen der Natürlichkeit überein. Der folgende Vergleich verkleinert ein Bild um den Faktor 4× und rekonstruiert es mit bikubischer Interpolation sowie mit einem vortrainierten ESPCN-Modell aus OpenCV:
import urllib.request
import cv2 # cv2.dnn_superres requires: pip install opencv-contrib-python
# Download a pretrained 4x ESPCN model and a test image cropped to a multiple of 4
urllib.request.urlretrieve("https://github.com/fannymonori/TF-ESPCN/raw/master/export/ESPCN_x4.pb", "ESPCN_x4.pb")
urllib.request.urlretrieve("https://ultralytics.com/images/bus.jpg", "bus.jpg")
original = cv2.imread("bus.jpg")[:1080, :808]
# Simulate a low-resolution capture by shrinking the image 4x
low_res = cv2.resize(original, (202, 270), interpolation=cv2.INTER_CUBIC)
# Upscale 4x with bicubic interpolation and with the learned ESPCN model
bicubic = cv2.resize(low_res, (808, 1080), interpolation=cv2.INTER_CUBIC)
sr = cv2.dnn_superres.DnnSuperResImpl_create()
sr.readModel("ESPCN_x4.pb")
sr.setModel("espcn", 4)
espcn = sr.upsample(low_res)
# Higher PSNR means the reconstruction is closer to the original image
print(f"Bicubic: {cv2.PSNR(original, bicubic):.2f} dB, ESPCN: {cv2.PSNR(original, espcn):.2f} dB")Es gibt Bicubic: 19.51 dB, ESPCN: 20.52 dB aus. Der Zugewinn von 1 dB entspricht einem um etwa 21 % geringeren mittleren quadratischen Fehler; die Modelldatei ist ungefähr 100 KB groß.
Superauflösung im Vergleich zu verwandten Begriffen#
- Bildrestaurierung: Das übergeordnete Gebiet der Wiederherstellung eines sauberen Bildes aus einem beschädigten Bild, einschließlich Entrauschung, Entschärfung und Entfernung von Kompressionsartefakten. Bei der Superauflösung wird zusätzlich die Pixelzahl erhöht. Moderne Modelle bewältigen häufig mehrere Arten von Bildschäden gleichzeitig.
- Bild-Inpainting: Ergänzt fehlende oder maskierte Bereiche, während die Superauflösung überall in einem vollständigen, aber grobkörnigen Bild Details hinzufügt.
- Frame-Interpolation: Erhöht die zeitliche Auflösung durch das Erzeugen von Frames zwischen vorhandenen Frames – das Gegenstück zur räumlichen Superauflösung auf der Zeitachse.
- Generative KI: Text-zu-Bild-Modelle erzeugen Bilder anhand von Prompts. Die Superauflösung wird durch ein Eingabebild gesteuert und muss dessen Inhalt treu wiedergeben. Viele Bildgeneratoren verwenden in ihrer letzten Stufe einen Diffusions-Upscaler.
Anwendungen in der Praxis#
- Gaming: NVIDIA DLSS rendert Frames mit niedriger Auflösung und skaliert sie mithilfe eines neuronalen Netzwerks hoch. So steigen die Bildraten bei vergleichbarer visueller Qualität.
- Video-Streaming und Archive: Rundfunkanstalten und Filmrestauratoren skalieren Material in Standardauflösung und Archivaufnahmen für HD- und 4K-Bildschirme hoch.
- Satellitenbildanalyse: Analysten schärfen Bilder aus kostengünstigeren Quellen, um Gebäude, Straßen und Fahrzeuge zu kartieren.
- Medizinische Bildanalyse: Forschungssysteme rekonstruieren hochauflösende MRT-Bilder aus schnelleren Aufnahmen mit niedrigerer Auflösung und verkürzen so die Zeit, die Patienten im Scanner verbringen.
Superauflösung dient außerdem als Vorverarbeitungsschritt, um in Quellen mit niedriger Auflösung kleine Objekte zu erkennen. Ultralytics YOLO26 passt jede Eingabe durch bilineare Interpolation an imgsz an, standardmäßig 640 Pixel. Ein Kamerabild mit 320×240 Pixeln wird also vor der Erkennung um den Faktor 2× vergrößert. Wird diese Interpolation durch ein 2×-Superauflösungsmodell ersetzt, erhält der Detektor rekonstruierte Kanten kleiner, weit entfernter Objekte wie Gesichter, Kennzeichen und Fahrzeuge in Luftaufnahmen.










