Interpolation und Diskretisierung, warum werden sie fĂŒr die projektive Bildkonvertierung benötigt?

Hallo Habr! Heute werden wir in einer so scheinbar einfachen Operation ausfĂŒhrlich ĂŒber nicht offensichtliche Punkte sprechen: die Korrektur projektiver Verzerrungen im Bild. Wie so oft im Leben mussten wir uns entscheiden, was wichtiger ist: QualitĂ€t oder Geschwindigkeit. Um ein gewisses Gleichgewicht zu erreichen, haben wir uns an die Algorithmen erinnert, die wir in den 80-90er Jahren im Rahmen der Aufgabe des Renderns von Strukturen aktiv untersucht haben, und seitdem haben wir uns im Kontext der Bildverarbeitung selten daran erinnert. Bei Interesse unter die Katze schauen!




Das Lochkameramodell, das in der Praxis auch Nahaufnahmen von Mobiltelefonen recht gut liefert, sagt uns, dass beim Drehen der Kamera Bilder eines flachen Objekts durch projektive Transformation miteinander verbunden werden. Die allgemeine Ansicht der projektiven Transformation lautet wie folgt:

x=t11u+t12v+t13t31u+t32v+t33,   y=t21u+t22v+t23t31u+t32v+t33,


Wo T=(tij),  i∈{1,2,3},  j∈{1,2,3}projektive Transformationsmatrix, (u,v)und (x,y)Koordinaten auf der Quelle und konvertierte Bilder.

Geometrische Bildkonvertierung


Die projektive Bildtransformation ist eine der möglichen geometrischen Transformationen von Bildern (solche Transformationen, bei denen die Punkte des Originalbildes nach einem bestimmten Gesetz zu den Punkten des endgĂŒltigen Bildes gehen).

Um zu verstehen, wie das Problem der geometrischen Transformation eines digitalen Bildes gelöst werden kann, mĂŒssen Sie das Modell seiner Entstehung aus einem optischen Bild auf der Kameramatrix betrachten. Nach G. Wahlberg [1] sollte unser Algorithmus den folgenden Prozess approximieren:

  1. Stellen Sie das optische Bild von digital wieder her.
  2. Geometrische Transformation des optischen Bildes.
  3. Abtastung des konvertierten Bildes.

Ein optisches Bild ist eine Funktion von zwei Variablen, die auf einem kontinuierlichen Satz von Punkten definiert sind. Dieser Prozess ist schwer direkt zu reproduzieren, da wir den Typ des optischen Bildes analytisch einstellen und verarbeiten mĂŒssen. Um diesen Prozess zu vereinfachen, wird normalerweise die umgekehrte Zuordnungsmethode verwendet:

  1. In der Ebene des endgĂŒltigen Bildes wird ein Abtastgitter ausgewĂ€hlt - die Punkte, anhand derer wir die Pixelwerte des endgĂŒltigen Bildes auswerten (dies kann die Mitte jedes Pixels sein oder einige Punkte pro Pixel).
  2. Mit der inversen geometrischen Transformation wird dieses Raster in den Raum des Originalbilds ĂŒbertragen.
  3. FĂŒr jede Gitterprobe wird ihr Wert geschĂ€tzt. Da es nicht unbedingt an einem Punkt mit ganzzahligen Koordinaten erscheint, benötigen wir eine Interpolation des Bildwerts, beispielsweise eine Interpolation durch benachbarte Pixel.
  4. GemĂ€ĂŸ den Rasterberichten schĂ€tzen wir die Pixelwerte des endgĂŒltigen Bildes.

Hier entspricht Schritt 3 der Wiederherstellung des optischen Bildes, und die Schritte 1 und 4 entsprechen der Abtastung.

Interpolation


Hier werden nur einfache Arten der Interpolation betrachtet - solche, die als Faltung des Bildes mit dem Interpolationskern dargestellt werden können. Im Kontext der Bildverarbeitung wÀren adaptive Interpolationsalgorithmen, die klare Grenzen von Objekten beibehalten, besser, aber ihre RechenkomplexitÀt ist viel höher und daher sind wir nicht interessiert.

Wir werden die folgenden Interpolationsmethoden betrachten:

  • um das nĂ€chste Pixel
  • bilinear
  • bikubisch
  • kubischer B-Spline
  • kubischer Einsiedler-Spline, 36 Punkte.

Die Interpolation hat auch einen so wichtigen Parameter wie die Genauigkeit. Wenn wir annehmen, dass das digitale Bild mit der optischen Methode durch Punktabtastung in der Mitte des Pixels erhalten wurde und glauben, dass das Originalbild kontinuierlich war, ist das Tiefpassfilter mit einer Frequenz von œ eine ideale Rekonstruktionsfunktion (siehe Kotelnikovs Theorem ).

Daher vergleichen wir die Fourier-Spektren unserer Interpolationskerne mit einem Tiefpassfilter (in den Abbildungen ist der eindimensionale Fall dargestellt).



Und was, Sie können einfach einen Kernel mit einem ziemlich guten Spektrum nehmen und relativ genaue Ergebnisse erhalten? Eigentlich nicht, weil wir oben zwei Annahmen getroffen haben: dass es einen Pixelwert des Bildes gibt und dass das Bild kontinuierlich ist. Gleichzeitig ist weder das eine noch das andere Teil eines guten Modells der Bilderzeugung, da die Sensoren auf der Kameramatrix nicht punktförmig sind und auf dem Bild viele Informationen die Grenzen von Objekten tragen - LĂŒcken. Daher sollte leider verstanden werden, dass sich das Ergebnis der Interpolation immer vom ursprĂŒnglichen optischen Bild unterscheidet.

Sie mĂŒssen jedoch noch etwas tun, daher werden wir die Vor- und Nachteile jeder der betrachteten Methoden aus praktischer Sicht kurz beschreiben. Dies lĂ€sst sich am einfachsten erkennen, wenn Sie das Bild vergrĂ¶ĂŸern (in diesem Beispiel zehnmal).

NĂ€chste Pixelinterpolation


Am einfachsten und schnellsten fĂŒhrt es jedoch zu starken Artefakten.


Bilineare Interpolation


Bessere QualitÀt, erfordert jedoch mehr Rechenaufwand und verwischt zusÀtzlich die Grenzen von Objekten.


Bikubische Interpolation


Noch besser in durchgehenden Bereichen, aber am Rand gibt es einen Halo-Effekt (ein dunklerer Streifen am dunklen Rand des Randes und ein heller am Licht). Um diesen Effekt zu vermeiden, mĂŒssen Sie einen nicht negativen Faltungskern wie einen kubischen B-Spline verwenden.


B-Spline-Interpolation


Der B-Spline hat ein sehr enges Spektrum, was ein starkes "UnschĂ€rfe" -Bild bedeutet (aber auch eine gute RauschunterdrĂŒckung, was nĂŒtzlich sein kann).


Interpolation basierend auf einem kubischen Hermite-Spline


Ein solcher Spline erfordert eine SchÀtzung der partiellen Ableitungen in jedem Pixel des Bildes. Wenn wir zur AnnÀherung ein 2-Punkt-Differenzschema wÀhlen, erhalten wir den Kern der bikubischen Interpolation, also verwenden wir hier 4-Punkt.


Wir vergleichen diese Methoden auch hinsichtlich der Anzahl der Speicherzugriffe (die Anzahl der Pixel des Originalbilds fĂŒr die Interpolation an einem Punkt) und der Anzahl der Multiplikationen mit Punkten.
InterpolationAnzahl der PixelAnzahl der Multiplikationen
In der NĂ€he von10
Bilinear48
BikubischSechszehn68
B SplineSechszehn68
Hermite Spline3676

Es ist ersichtlich, dass die letzten 3 Methoden wesentlich rechenintensiver sind als die ersten 2.

Probenahme


Dies ist genau der Schritt, dem in letzter Zeit zu Unrecht wenig Beachtung geschenkt wurde. Der einfachste Weg, eine projektive Bildtransformation durchzufĂŒhren, besteht darin, den Wert jedes Pixels des endgĂŒltigen Bildes anhand des Werts zu bewerten, der durch Invertieren seiner Mitte in die Ebene des Originalbilds (unter BerĂŒcksichtigung der ausgewĂ€hlten Interpolationsmethode) erhalten wird. Wir nennen diesen Ansatz Pixel fĂŒr Pixel Diskretisierung . In Bereichen, in denen das Bild komprimiert ist, kann dies jedoch zu signifikanten Artefakten fĂŒhren, die durch das Problem der Überlappung von Spektren bei einer unzureichenden Abtastfrequenz verursacht werden.

Wir werden die Komprimierungsartefakte an der Stichprobe des russischen Passes und seines individuellen Feldes - Geburtsort (Stadt Archangelsk)) deutlich demonstrieren, die mithilfe einer pixelweisen Stichprobe oder des FAST-Algorithmus komprimiert wurde, den wir unten betrachten werden.



Es ist zu sehen, dass der Text im linken Bild nicht mehr lesbar ist. Das ist richtig, denn wir nehmen nur einen Punkt aus einer ganzen Region des Quellbildes!

Da wir nicht in der Lage waren, ein Pixel zu schÀtzen, warum nicht mehr Abtastwerte pro Pixel auswÀhlen und die erhaltenen Werte mitteln? Dieser Ansatz wird als Supersampling bezeichnet . Es erhöht wirklich die QualitÀt, aber gleichzeitig nimmt die RechenkomplexitÀt proportional zur Anzahl der Abtastungen pro Pixel zu.

Ende des letzten Jahrhunderts wurden rechnerisch effizientere Methoden erfunden, als die Computergrafik das Problem des Renderns von Texturen auf flachen Objekten löste. Eine dieser Methoden ist die Konvertierung mit mip-mapStruktur. Mip-Map ist eine Pyramide von Bildern, die aus dem Originalbild selbst sowie den um 2, 4, 8 usw. reduzierten Kopien besteht. FĂŒr jedes Pixel bewerten wir den Grad der Komprimierungscharakteristik und wĂ€hlen entsprechend diesem Grad den gewĂŒnschten Pegel aus der Pyramide als Quellbild aus. Es gibt verschiedene Möglichkeiten, die entsprechende Ebene der Mip-Map zu bewerten (siehe Details [2]). Hier verwenden wir die Methode, die auf der SchĂ€tzung partieller Ableitungen in Bezug auf die bekannte projektive Transformationsmatrix basiert. Um jedoch Artefakte in Bereichen des endgĂŒltigen Bildes zu vermeiden, in denen eine Ebene der Mip-Map-Struktur zu einer anderen geht, wird normalerweise eine lineare Interpolation zwischen zwei benachbarten Ebenen der Pyramide verwendet (dies erhöht den Rechenaufwand nicht wesentlich, da die Koordinaten der Punkte auf benachbarten Ebenen eindeutig verbunden sind).

Die Mip-Map berĂŒcksichtigt jedoch nicht die Tatsache, dass die Bildkomprimierung anisotrop sein kann (entlang einer bestimmten Richtung verlĂ€ngert). Dieses Problem kann teilweise durch Rip-Map gelöst werden . Eine Struktur, in der Bilder komprimiert werden2m mal horizontal und 2nmal vertikal. In diesem Fall wird nach dem Bestimmen der horizontalen und vertikalen Komprimierungskoeffizienten an einem bestimmten Punkt im endgĂŒltigen Bild eine Interpolation zwischen den Ergebnissen von 4 durchgefĂŒhrt, die auf die gewĂŒnschte Anzahl von Kopien des Originalbilds komprimiert wurden. Diese Methode ist jedoch nicht ideal, da sie nicht berĂŒcksichtigt, dass sich die Richtung der Anisotropie von den Richtungen parallel zu den Grenzen des Originalbilds unterscheidet.

Zum Teil kann dieses Problem durch den FAST- Algorithmus (Footprint Area Sampled Texturing) gelöst werden [3]. Es kombiniert die Ideen von Mip-Map und Supersampling. Wir schĂ€tzen den Kompressionsgrad basierend auf der Achse der geringsten Anisotropie und wĂ€hlen die Anzahl der Proben proportional zum VerhĂ€ltnis der LĂ€ngen der kleinsten zur grĂ¶ĂŸten Achse.

Bevor wir diese AnsĂ€tze im Hinblick auf die KomplexitĂ€t der Berechnungen vergleichen, machen wir uns den Vorbehalt, dass es rational ist, die folgende Änderung vorzunehmen, um die Berechnung der inversen projektiven Transformation zu beschleunigen:

q(x,y)=1f3(x)+g3(y),
u(x,y)=q(x,y)(f1(x)+g1(y)),
v(x,y)=q(x,y)(f3(x)+g3(y)),

Wo fi(x)=pi1x,gi(y)=pi2y+pi3,P=(pij)=T−1,i∈{1,2,3},j∈{1,2,3}, PIst die Matrix der inversen projektiven Transformation. Alsf(x) und g(y)Funktionen eines Arguments können wir sie fĂŒr eine Zeit vorberechnen, die proportional zur linearen GrĂ¶ĂŸe des Bildes ist. Berechnen Sie dann die Koordinaten des inversen Bildes eines Punktes des endgĂŒltigen Bildes(u,v)Es sind nur 1 Division und 2 Multiplikationen erforderlich. Ein Ă€hnlicher Trick kann mit partiellen Ableitungen durchgefĂŒhrt werden, mit denen der Pegel in der Mip-Map- oder Rip-Map-Struktur bestimmt wird.

Jetzt sind wir bereit, die Ergebnisse hinsichtlich der KomplexitÀt der Berechnungen zu vergleichen.
MethodeAnzahl pro PixelAnzahl der Multiplikationen pro ZĂ€hlungZusĂ€tzlicher Speicher fĂŒr Strukturen (in Bruchteilen des Originalbildes)
Pixel-Sampling120
Supersamplingn20
Mip-Karte271/3
Karte zerreißen473
Schnell<= n71/3

Und visuell vergleichen (Pixel-fĂŒr-Pixel-Abtastung von links nach rechts, 49 Abtastungen Super-Abtastung, Mip-Map, Rip-Map, FAST).



Experiment


Vergleichen wir nun unsere Ergebnisse experimentell. Wir erstellen einen projektiven Transformationsalgorithmus, der jeweils 5 Interpolationsmethoden und 5 Diskretisierungsmethoden kombiniert (insgesamt 25 Optionen). Nehmen Sie 20 Bilder von Dokumenten auf, die auf 512 x 512 Pixel zugeschnitten sind, generieren Sie 10 SÀtze mit 3 projektiven Transformationsmatrizen, sodass jeder Satz im Allgemeinen der identischen Transformation entspricht, und vergleichen Sie das PSNR zwischen dem Originalbild und dem konvertierten. Denken Sie daran, dass PSNR ist10log⁥MAX2MSEwo MAXDies ist das Maximum im Originalbild. a MSE- die Standardabweichung des Finales vom Original. Je mehr PSNR desto besser. Wir werden auch die Betriebszeit der projektiven Konvertierung auf ODROID-XU4 mit einem ARM Cortex-A15-Prozessor (2000 MHz und 2 GB RAM) messen.

Monströse Tabelle mit den Ergebnissen:

Probenahme
Interpolation
Zeit (Sek.)
PSNR (dB)
Pixel fĂŒr Pixel
In der NĂ€he von
0,074
23.1 
Bilinear
0,161
25.4 
Bikubisch
0,496 
26.0
B Spline
0,517
24.8
Hermite Spline
0,978
26.2
Supersampling (x49)
In der NĂ€he von
4.01
25.6
Bilinear
7.76
25.3
Bikubisch
23.7
26.1
B Spline
24.7
24.6
Hermite Spline
46.9
26.2
Mip-Karte
In der NĂ€he von
0,194
24.0
Bilinear
0,302
24.6
Bikubisch
0,770
25.3
B Spline
0,800
23.9
Hermite Spline
1,56
25.5
Karte zerreißen
In der NĂ€he von
0,328
24.2
Bilinear
0,510
25.0
Bikubisch
1.231
25.8
B Spline
1,270
24.2
Hermite Spline
2.41
25.8
Schnell
In der NĂ€he von
0,342
24.0
Bilinear
0,539
25.2
Bikubisch
1.31
26.0
B Spline
1,36
24.4
Hermite Spline
2.42
26.2


Welche Schlussfolgerungen können gezogen werden?


  • Die Verwendung der Interpolation durch das nĂ€chste Pixel oder Pixel fĂŒr Pixelabtastung fĂŒhrt zu einer schlechten QualitĂ€t (dies war selbst anhand der obigen Beispiele offensichtlich).
  • 36 — .
  • b- , , .
  • Rip-map FAST , 9 ( , ?).
  • mip-map b- PSNR , .

Wenn Sie eine gute QualitĂ€t mit nicht zu niedriger Geschwindigkeit wĂŒnschen, sollten Sie eine bilineare Interpolation in Kombination mit einer Diskretisierung mit Mip-Map oder FAST in Betracht ziehen. Wenn jedoch mit Sicherheit bekannt ist, dass die projektive Verzerrung sehr schwach ist, können Sie zur Erhöhung der Geschwindigkeit eine pixelweise Diskretisierung in Kombination mit einer bilinearen Interpolation oder sogar einer Interpolation um das nĂ€chste Pixel verwenden. Und wenn Sie eine hohe QualitĂ€t und eine nicht sehr begrenzte Laufzeit benötigen, können Sie eine bikubische oder adaptive Interpolation in Kombination mit einem moderaten Supersampling verwenden (z. B. auch adaptiv, abhĂ€ngig vom lokalen KomprimierungsverhĂ€ltnis).

PS Die Veröffentlichung wurde auf der Grundlage des Berichts erstellt: A. Trusov und E. Limonova, „Die Analyse projektiver Transformationsalgorithmen zur Bilderkennung auf MobilgerĂ€ten“, ICMV 2019, Hrsg. 11433, Wolfgang Osten, Dmitry Nikolaev, Jianhong Zhou, Hrsg., SPIE , Jan. 2020, vol. 11433, ISSN 0277-786X, ISBN 978-15-10636-43-9, vol. 11433, 11433 0Y, pp. 1-8, 2020, DOI: 10.1117 / 12.2559732.

Liste der verwendeten Quellen
  1. G. Wolberg, Digital image warping, vol. 10662, IEEE computer society press Los Alamitos, CA (1990).
  2. J. P. Ewins, M. D. Waller, M. White, and P. F. Lister, “Mip-map level selection for texture mapping,” IEEE Transactions on Visualization and Computer Graphics4(4), 317–329 (1998).
  3. B. Chen, F. Dachille, and A. E. Kaufman, “Footprint area sampled texturing,” IEEE Transactions on Visualizationand Computer Graphics10(2), 230–240 (2004).


All Articles