Was ist bilaterales Upsampling?

9

Ich habe mit verschiedenen Interpolationsalgorithmen gearbeitet, einschließlich linearer, kubischer (und bilinearer und bikubischer), anderer bezier- (und nurbs- usw.) Interpolationen, Lagrange-Interpolation und einiger anderer, aber ich konnte keine grundlegenden Informationen finden, die dies erklären Was ist bilaterales Upsampling?

Ich konnte Informationen über das gemeinsame bilaterale Upsampling finden, die, so gut ich kann, mehrere Daten parallel interpolieren und dabei Hinweise verwenden, um den anderen zu helfen, besser zu interpolieren, aber ich habe Probleme, die Informationen von BU und JBU zu trennen.

Kann jemand die Grundideen des bilateralen Upsamplings erklären?

Alan Wolfe
quelle
1
Das Originalpapier zur bilateralen Filterung "Bilaterale Filterung für Grau- und Farbbilder" von Tomasi und Manduchi: users.cs.duke.edu/~tomasi/papers/tomasi/tomasiIccv98.pdf
Julien Guertault

Antworten:

9

Es scheint, als würden Sie zwei Dinge fragen. Ich kann technisch nicht wirklich über JBU sprechen, aber ich kann einen Überblick über die notwendigen Konzepte und die bilaterale Filterung im Allgemeinen geben. Sie müssen wahrscheinlich selbst mehr Details finden, aber dies sollte eine kohärente Struktur ergeben, von der aus Sie beginnen können.


Fixieren von "Image" s

Viele Bildverarbeiter betrachten das Filtern entweder als Nachbearbeitung oder als Möglichkeit, Bilder zu skalieren. Die Perspektive des Mathematikers ist genauer, beschreibender und komplexer.

Wenn Sie eine Bilddatei haben, haben Sie kein echtes Bild. Sie haben Pixel „Werte“, die streng gültig sind nur in der Mitte der Pixel . Grob gesagt hat jedes Pixel einen Bereich , der diese Farbe annimmt. Mathematisch gesehen verwenden Sie einen Rekonstruktionsfilter für den nächsten Nachbarn, um das wahre Bild aus Pixelwerten zu rekonstruieren. Damit ein „Bild“ wirklich eine Reihe von Proben und einen Rekonstruktionsfilter, in der Regel nächste Nachbarn .

Resampling

Wenn Sie ein Bild hochskalieren, tun Sie wirklich Folgendes hochskalieren Resampling . Wie machst Du das? Sie nehmen Ihr Signal und generieren daraus einen neuen Satz von Samples. Aber für ein Bild, ich sagte nur , dass wir nicht haben das reale Bild; wir müssen es zuerst rekonstruieren. Ein typisches Resampling-Verfahren sieht also folgendermaßen aus:

  1. Nehmen Sie Ihre Pixelwerte.
  2. Rekonstruieren Sie ein Bild zwischen den Werten, die in Pixelzentren leben, mithilfe der Rekonstruktionsfilterung.
  3. Messen Sie einen neuen Satz von Proben aus dem rekonstruierten Bild, möglicherweise mit unterschiedlichen Abständen.
  4. Werfen Sie die alten Proben weg und verwenden Sie die neuen.

Der entscheidende Punkt ist, dass der verwendete Rekonstruktionsfilter der "Filter" ist, der für das Resampling verwendet wird. Zum Beispiel würde ein "bikubisches Upsample" einen bikubischen Rekonstruktionsfilter verwenden.

Es stellt sich heraus, dass Sie (theoretisch) dasselbe Bild zurückerhalten, wenn Sie eine sinc-Funktion für den Rekonstruktionsfilter verwenden und das Bild nicht verkleinern. Wenn Sie das Bild vergrößern und dann wieder verkleinern, erhalten Sie dieselbe Antwort. Dies gilt im Allgemeinen nicht für andere Filter.

Die meisten Filter nähern sich einem Sinc-Filter mehr oder weniger an. Abweichungen führen zu Bildverlust.

Filtern

Wenn Sie dieselbe vor / nach der Abtastrate verwenden, führen Sie eine sogenannte "Filterung" durch. Formal wird die Filterung ohne Änderung der Abtastrate neu abgetastet. Das Filtern ist ein Sonderfall des Resamplings.

Der einzig mögliche Zweck, sie zu filtern, um Informationen wegzuwerfen (z. B. einen Gaußschen) oder möglicherweise auch falsche Informationen zu verzerren oder hinzuzufügen (z. B. einen Sobel).

Bilaterale Filterung

Sie können viele verschiedene Filter zum Filtern verwenden. Die bilaterale Filterung ist eine davon. Ich glaube nicht, dass es derzeit für irgendeinen Zweck als Stand der Technik angesehen wird (obwohl ich nicht weiß, was es ist; wahrscheinlich etwas Neues, was ich vom maschinellen Lernen erwarte).

Ein bilateraler Filter ist ein nichtlinearer Filter, dh er hat keine schöne Fourier-Darstellung. Konzeptionell ist es wie ein Gaußscher, aber die Quellfarben selbst berücksichtigen auch die "Entfernung" eines Pixels von anderen. Dies neigt dazu, flache Bereiche zu glätten, während Kanten erhalten bleiben.

Bilaterale Upscaling

Ich hoffe, Sie sehen jetzt, wohin ich damit gehe: Jeder Filter, den Sie zum Filtern verwenden können, kann zum Hoch- oder Herunterskalieren verwendet werden, was wirklich dasselbe ist (weil alles neu abgetastet wird).

Wenn Sie einen bilateralen Filter implementiert haben, sollten Sie in der Lage sein, einen bilateralen Filter-Resampler einfach zu implementieren. Wenn Sie einen Gauß-Filter implementiert haben, sollten Sie auch einen Gauß-Filter-Resampler implementieren können.

Die einzige Schwierigkeit können die Definitionen sein. Leider ist die Unterscheidung zwischen Filtern und Resampling in der Bildverarbeitungsliteratur systematisch durch gelegentliches Nichtvorhandensein getrübt. Für die Implementierung eines bilateralen Filters würde ich mich stark auf seine Ähnlichkeiten mit dem Gaußschen Resampling verlassen. IIRC (ich habe das Papier seit Jahren nicht mehr gelesen) bilaterale Filterung erfolgt in Pixel, nicht in Stichproben.

imallett
quelle
Ich versuche, Informationen darüber zu erhalten, wie die bilaterale Filterung speziell funktioniert. Können Sie das näher erläutern?
Alan Wolfe
Von hier
ausleihen
@AlanWolfe Ich nahm an, dass Sie nach einem breiteren Kontext gefragt haben, da die Implementierung einer grundlegenden bilateralen Filterung sehr Google-fähig und ziemlich einfach ist. Wie ich schrieb, besteht die Grundidee darin, Werte in das Gewicht einzubeziehen, nicht nur in die Entfernung.
Imallett
Auch die Antwort von @ joolaa ist sehr nett und kann als zweite Erklärung meiner Übersicht nützlich sein.
Imallett
1
Jetzt, wo ich den Begriff "bilateraler Filter" habe, habe ich mehr Glück bei Google. Dank dafür.
Alan Wolfe
3

Dies untersucht wahrscheinlich nicht die gesamte Tiefe des Begriffs, aber das erste, was mir einfällt, wenn ich "bilaterales Upsampling" höre, ist das tiefenbewusste Mischen von Bildern mit niedriger Auflösung mit Bildern mit hoher Auflösung. Wenn Sie beispielsweise Alpha-Blended-Geometrie in einen Puffer mit halber Auflösung rendern (um Leistungseinsparungen zu erzielen) und diese dann wieder auf das Haupt-Rendering-Ziel zusammensetzen. Angelo Pesce hat einen Beitrag geschrieben , der es gut erklärt.

IneQuation
quelle