Hi Peter,
Nach allem, was ich gehört und gelesen habe, wende ich BXT so früh wie möglich und noch im linearen Bild an. Ich ziehe nur SPPC vor. Alle anderen Bearbeitungsschritte erfolgen danach.
Richtig, Deconvolution kommt gleich nach dem Gradienten entfernen dran. Ich wuerde es vor der Farbkalibierung machen, denn fuer Mono muss die Farbkorrektur sowieso dann spaeter kommen.
ich fände es gut, wenn sich der Thread nach dem ausführlichen Theorie- und Philosophieteil etwas mehr auf die praktische Anwendung und die dabei zu treffenden Feststellungen ausrichten würde.
Ich hoffe Du nimmst es mir nicht uebel wenn Ich mich trotzdem noch etwas auf meine Art amuesiere und fuer mich selber noch etwas nachbohre. Ich habe inzwischen etwas die Diskussion auf CN durchschmoekert und dort wurde ein da wie hier noch ungetesteter Aspekt angesprochen, naemlich die Stabilitaet solcher Algorithmen bzgl. des Bildrauschens.
Warum ist das wichtig?
Weil bei einer konventionellen Deconvolution eine Rauschunterdrueckung ueber diese sogenannte "Regularisierung" verlaufen muss. Bisher war es so (zumindest in PI), wenn man (I) keine Lust hat sich die Anleitung mit den rudumentaersten Grundlagen der Deconvolution anzueignen und (II) sich danach nicht in Ruhe hinsetzt das mal durchspielt, dann wird das nichts.
Dazu muss man wissen, dass bei der herkoemmlichen Faltung mit (I) zu grosser PSF und (II) unzureichender Regularisierung an verrauschten Daten sehr schnell "Kleckse" im Bildrauschen auftreten, die deutlich sichtbar sind und das Bild sehr stoeren.
Es ist genau dieser Aspekt woran IMHO viele User verzweifeln, denn es soll "ueberschaerft" werden, um "image pop" zu bekommen, aber das Bild ist nicht ausbelichtet und das SNR ist zu niedrig.
Man muss schon etwas Erfahrung haben, um eine korrekte Wavelet-Regularisierung zuegig hinzubekommen und fast unmoeglich wird das, wenn man ueberschaerft.
Und da koennte BlurXTerminator wahrscheinlich tatsaechlich helfen!
Bilderklaerung der Analyse:
Es ist nicht einfach die Ergebnisse brauchbar/intuitiv aufzubereiten. Am Ende habe Ich mich fuer ein animiertes Gif entschieden, bei dem:
- Links sieht man jeweils das zu rekonstruierende Bild und das hochaufgeloeste Originalbild.
- Mitte: Dort sieht man den Unterschied zwischen Rekonstruktion (Ist-Wert) und Original (Soll-Wert). Dieser Unterschied sollte so klein wie moeglich werden.
- Rechts: Da ist der Ausgangspunkt vor der Rekonstruktion und das Endresultat zu sehen. Dieser Unterschied sollte so gross wie moeglich werden und im Idealfall wie das linke Bildpaar aussehen.
... und ab geht's ...
Van Cittert Deconvolution
Experiment 1.1:
Getestete Pipeline:
hochaufloesendes Originalbild ---> mit einem 4 pix StdDev Gausskernel falten ---> 4 pix StdDev Deconvolution Von Cittert
======_zu korregierende Verschlechterung_========_Unterschied der Rekonstruktion zum Original _============_relative Verbesserung_===========
---------_Unterschied ist das Ausgangsproblem_-----------------------_Unterschied soll klein werden_------------------------_Unterschied soll gross werden_----------
Ergebnis:
- Sehr gute Schaerfung, was kein Wunder ist, da kein zusaetzliches Rauschen die Deconvolution beeintraechtigt. Fast keine Artefakte (siehe Mitte), d.h. die Entfaltung erzeugt so gut wie keine "Features", die nicht im Original drin sind.
- An die Originalaufloesung kommst man nach so einem massiven Aufloesungsverlust (siehe links) natuerlich nicht mehr heran.
- Rechts: Verbesserung der Aufloesung ist evident!
Van Cittert Deconvolution
Experiment 2.1:
Test mit zusaetzlichem Rauschen auf den "aufgenommenen" Aufnahmen.
Getestete Pipeline:
hochaufloesendes Originalbild ---> mit einem 4 pix StdDev Gausskernel falten ---> kontrolliert Rauschen hinzufuegen ---> 4 pix StdDev Deconvolution Von Cittert (was in jedem Fall das SNR deutlich verschlechtert) ---> danach leichtes Denoising
======_zu korregierende Verschlechterung_========_Unterschied der Rekonstruktion zum Original _============_relative Verbesserung_===========
---------_Unterschied ist das Ausgangsproblem_-----------------------_Unterschied soll klein werden_------------------------_Unterschied soll gross werden_----------
Ergebnis:
- Harte Aufgabe (SNR bescheiden), daher keine gute Rekonstruktion und verhaltene Kontraststeigerung. Zahlreiche Kornartefakte durch das Rauschen (siehe Mitte).
- Aufloesung wird nur marginal angehoben.
- Rechts: Nur im direkten Vergleich sieht man eine leichte Verbesserung.
BlurXTerminator
Experiment 1.2:
Getestete Pipeline:
hochaufloesendes Originalbild ---> mit einem 4 pix StdDev Gausskernel falten ---> 4 pix StdDev Deconvolution Von Cittert
======_zu korregierende Verschlechterung_========_Unterschied der Rekonstruktion zum Original _============_relative Verbesserung_===========
---------_Unterschied ist das Ausgangsproblem_-----------------------_Unterschied soll klein werden_------------------------_Unterschied soll gross werden_----------
Ergebnis:
- Sehr gute Schaerfung, da wie in Experiment 1.1 kein zusaetzliches Rauschen die Deconvolution beeintraechtigt. Fast keine Artefakte (siehe Mitte), d.h. die Entfaltung erzeugt so gut wie keine "Features", die nicht im Original drin sind.
- An die Originalaufloesung kommst man nach so einem massiven Aufloesungsverlust (siehe links) natuerlich auch mit BlurXterminator nicht mehr heran.
- Rechts: Verbesserung der Aufloesung ist evident!
- BlurXterminator Ergebnis ist von einer Van Cittert Deconvolution nicht zu unterscheiden.
BlurXTerminator
Experiment 2.2:
Test mit zusaetzlichem Rauschen auf den "aufgenommenen" Aufnahmen.
Getestete Pipeline:
hochaufloesendes Originalbild ---> mit einem 4 pix StdDev Gausskernel falten ---> kontrolliert Rauschen hinzufuegen ---> 4 pix StdDev Deconvolution BlurXTerminator (was in jedem Fall das SNR deutlich verschlechtert) ---> danach leichtes Denoising
======_zu korregierende Verschlechterung_========_Unterschied der Rekonstruktion zum Original _============_relative Verbesserung_===========
---------_Unterschied ist das Ausgangsproblem_-----------------------_Unterschied soll klein werden_------------------------_Unterschied soll gross werden_----------
Ergebnis:
- Harte Aufgabe (SNR bescheiden), daher wie auch Van Cittert keine gute Rekonstruktion und nur verhaltene Kontraststeigerung. Etwas weniger Kornartefakte durch das Rauschen (siehe Mitte) verglichen mit Van Cittert.
- Aufloesung wird wie in experiment 2.1 nur marginal angehoben.
- Rechts: Nur im direkten Vergleich sieht man eine leichte Verbesserung.
Van Cittert Deconvolution
Experiment 3.1:
Getestete Pipeline:
hochaufloesendes Originalbild ---> mit einem 2 pix StdDev Gausskernel falten ---> 2 pix StdDev Deconvolution Von Cittert
======_zu korregierende Verschlechterung_========_Unterschied der Rekonstruktion zum Original _============_relative Verbesserung_===========
---------_Unterschied ist das Ausgangsproblem_-----------------------_Unterschied soll klein werden_------------------------_Unterschied soll gross werden_----------
Ergebnis:
- Bilderbuchexperiment (siehe links), da nur geringer Verlust der Aufloesung auszugleichen war und die zu rekonstruierenden Daten rauschfrei sind.
- Sehr gute Schaerfung (siehe Mitte), die Originalaufloesung wird fast erreicht. Fast keine Artefakte (siehe Mitte), d.h. die Entfaltung erzeugt so gut wie keine "Features", die nicht im Original drin sind.
- Rechts: Verbesserung der Aufloesung ist evident!
Van Cittert Deconvolution
Experiment 3.1:
Test mit zusaetzlichem Rauschen auf den "aufgenommenen" Aufnahmen.
Getestete Pipeline:
hochaufloesendes Originalbild ---> mit einem 2 pix StdDev Gausskernel falten ---> kontrolliert Rauschen hinzufuegen ---> 2 pix StdDev Deconvolution Von Cittert (was in jedem Fall das SNR deutlich verschlechtert) ---> danach leichtes Denoising
======_zu korregierende Verschlechterung_========_Unterschied der Rekonstruktion zum Original _============_relative Verbesserung_===========
---------_Unterschied ist das Ausgangsproblem_-----------------------_Unterschied soll klein werden_------------------------_Unterschied soll gross werden_----------
Ergebnis:
- Schwerer Stiefel, da das Rauschen die Rekonstruktion sehr erschwert (siehe Links).
- Geringe Schaerfung, geringe Kontraststeigerung (siehe Mitte). Die Originalaufloesung wird meilenweit verfehlt. Erfreulich: fast keine Artefakte (siehe Mitte), d.h. die Entfaltung erzeugt so gut wie keine "Features", die nicht im Original drin sind.
- Rechts: Verbesserung der Aufloesung ist kaum wahrnehmbar.
BlurXTerminator
Experiment 3.2:
Getestete Pipeline:
hochaufloesendes Originalbild ---> mit einem 2 pix StdDev Gausskernel falten ---> 2 pix StdDev Deconvolution Von Cittert
======_zu korregierende Verschlechterung_========_Unterschied der Rekonstruktion zum Original _============_relative Verbesserung_===========
---------_Unterschied ist das Ausgangsproblem_-----------------------_Unterschied soll klein werden_------------------------_Unterschied soll gross werden_----------
Ergebnis:
- Die Ueberraschung des Abends (?). Analog der Van Cittert Deconvolution in Experiment 3.1 haette dies ein Bilderbuchexperiment fuer den BlurXTerminator seien sollen. Erstaunlicherweise macht der fas gar nichts (?), obwohl nur ein geringer Verlust der Aufloesung auszugleichen war und die zu rekonstruierenden Daten rauschfrei sind.
- Die fehlgeschlagene Schaerfung ist durch den deutlichen Unterschied (siehe Mitte) zum Original evident. Die Originalaufloesung wird nicht ansatzweise erreicht. Erfreulich: Fast keine Artefakte (siehe Mitte), d.h. die Entfaltung erzeugt so gut wie keine "Features", die nicht im Original drin sind.
- Rechts: Verbesserung der Aufloesung ist marginal. Dieses Ergebnis habe Ich nicht kommen sehen und daher (leicht andere Kernels) wiederholt. Es ist konsistent.
BlurXTerminator
Experiment 4.2:
Test mit zusaetzlichem Rauschen auf den "aufgenommenen" Aufnahmen.
Getestete Pipeline:
hochaufloesendes Originalbild ---> mit einem 2 pix StdDev Gausskernel falten ---> kontrolliert Rauschen hinzufuegen ---> 2 pix StdDev Deconvolution BlurXTerminator (was in jedem Fall das SNR deutlich verschlechtert) ---> danach leichtes Denoising
======_zu korregierende Verschlechterung_========_Unterschied der Rekonstruktion zum Original _============_relative Verbesserung_===========
---------_Unterschied ist das Ausgangsproblem_-----------------------_Unterschied soll klein werden_------------------------_Unterschied soll gross werden_----------
Ergebnis:
- Nach dem Fehlschlag von Experiment 3.2 ist das Ergebnis keine Ueberraschung mehr: Kommt jetzt auch noch Rauschen hinzu, packt BlurXTerminator kommentarlos ein.
Fazit:
- Klar demonstriert wurde, welchen grossen Einfluss das SNR auf eine Entfaltung/Schaerfung hat. Gut ausbelichtete Bilder mit gutem Ausgangsaufloesung sind das A&O, um sich weiter an das Orignal heranzutasten. Weder BlurXTerminator noch andere Methoden verbringend a Wunder.
- Wenn der BlurXTerminator funktioniert, dann ist er (wie auch schon in den vorherigen Tests) mit den etablierten Methoden quantitativ vergleichbar.
- Wie so oft bei implizit programmierten Methoden wie CNNs, wenn der Input sich (offenbar?) zu weit von den trainierten Daten entfernt, dann passiert kommentarlos "nix". Experiment 3.2 war als lockerer Spaziergang geplant und baff: BlurXTerminator stellt die Kooperation ein und macht so gut wie gar nichts. Es zeigt sich das seltsame Schisma zwischen expliziten Algorithmen (wie Lucy-Richardson oder Van Cittert) und impliziten CNN Methoden (wie BlurXTerminator): Erstere brauchen ein "erfahrenes Haendchen", sonst gibt es brutale Artefakte, Letztere sgtellen zuweilen schweigend den Betrieb ein und man ahnt nich mal warum.
- Warum habe Ich den Test durchgefuehrt? Ich wollte testen, ob BlurXTerminator etablierten Methoden wie Van Cittert bzgl. Sensitivitaet auf Rauschen ueberlegen ist. Das ist nicht der Fall, regularisierte Van Cittert erzielt verblueffend gleiche Ergebnisse.
Sodele, was mich betrifft ist das Thema erst mal abgeschlossen. BlurXTerminator ist interessant fuer Leute, die sich mit Deconvolution nicht weiter beschaeftigen wollen und "klickediklick" eine automatische Schaerfung haben wollen. Und wenn das funktioniert, dann kommt das quantitativ an etablierte Methoden heran.
Das ist prima!
Der Preis fuer den sowas allerdings erkauft wird, ist leider das es ab und zu kommentarlos nicht funktioniert und verglichen mit z.B der Van Cittert implementation von PI sehr langsam ist. Beides ist schade, aber liegt ebenfalls in der Natur dieser CNN Dinge, wenn die Netze recht komplex werden.
Komplett in's Reich der Werbeprosa kann man das ganze AI-Geschwaetz verbannen. BlurXTerminator ist eine als CNN implementierte Deconvolution und keine AI. Was die Rauschanfaelligkeit anbetrifft, war (wenn's funktioniert) die Sache auf Augenhoehe mit den etablierten Methoden.
Eigentlich wollte Ich mich mit diesem Plug-In nicht so sehr beschaeftigen, weil Ich so eine Ahnung hatte, dass genau diese Ergebnis am Ende dabei heruaskommt.
Gruss & CS