Algorithmen zur effizienten Schätzung der Kovarianzfunktion von Binärbildern 1 Definition der Kovarianzfunktion Beispiel für den Fall d (Verschiebung) 3 Bestimmung der Kovarianz mittels Verschiebungs- bzw. Faltungsoperation 4 Beispiel für den Fall d (Faltung) 5 Fourier-Transformierte und Faltungssatz 6 Diskrete Fourier Transformation (DFT) 7 Fast Fourier Transformation (FFT) 8 Vorgehensweise bei Implementierung
1 Definition der Kovarianzfunktion 1 1 Definition der Kovarianzfunktion Im folgenden gehen wir immer von einer zufälligen abgeschlossenen Menge (ZAM) aus. Dieses ist eine messbare Abbildung, für die gilt: Ξ : Ω F, (1) wobei (Ω, A,P) ein Wahrscheinlichkeitsraum und (F, F) ein Messraum ist, der folgendermaßen konstruiert wird: F : Familie aller abgeschlossenen Teilmengen des R d K : Familie aller kompakten Teilmengen des R d Sei nun F die kleinste σ-algebra über F, die alle Mengen der Form F K {F F F K } mit K K () enthält.
1 Definition der Kovarianzfunktion Die Verteilung (das Bildmaß) von Ξ auf F sei P Ξ (A) P(Ξ A) P({ω Ω Ξ(ω) A}), A F. (3) Bemerkung: Eine ZAM wird als stationär bezeichnet, falls P Ξ P Ξ+x x R d gilt. Für eine solche stationäre ZAM Ξ können wir nun verschiedene Kenngrößen betrachten, wie z.b. den Volumenanteil p von Ξ in R d p E Ξ [0, 1] d (4) die Kovarianz(funktion) von Ξ C(h) P(o Ξ, h Ξ), h R d. (5) Bemerkung: Aufgrund der Definition der Kovarianz wird sie manchmal auch als Zweipunktüberdeckungswahrscheinlichkeit bezeichnet.
1 Definition der Kovarianzfunktion 3 Es geht hier vor allem um die Kovarianz und ihre Schätzung. Da wir nicht den gesamten R d betrachten können, führen wir ein (beliebiges) Beobachtungsfenster W mit W K und W > 0 ein. Dann gilt für h R d : W (W + h) C(h) P(o Ξ, h Ξ) W (W + h) R W (W +h)p(o Ξ, h Ξ) dx W (W + h) R W (W +h)p(x Ξ, x (Ξ + h)) dx W (W + h) R W (W +h)p(x Ξ, (x h) Ξ) dx W (W + h) R W (W +h)e 1I Ξ (Ξ+h) (x) dx W (W + h) E Ξ (Ξ + h) W (W + h) W (W + h)
1 Definition der Kovarianzfunktion 4 Hieraus folgt sofort, dass durch bc(h) Ξ (Ξ + h) W (W + h) W (W + h) (6) ein erwartungstreuer Schätzer für C(h) gegeben ist. Für W (W + h) 0 setzen wir b C(h) 0.
Beispiel für den Fall d (Verschiebung) 5 Beispiel für den Fall d (Verschiebung) Es sei nun eine (m n)-bildmatrix A gegeben. Die Berechnung der,,diskretisierten Kovarianz für einen Vektor h R kann analog zum Fall d 1 mit Hilfe der Verschiebungsoperation erfolgen. Zur Illustration der Verschiebungsoperation wird die folgende (4 6) Matrix A betrachtet: 0 1 B a 30 a 31 a 3 a 33 a 34 a 35 a A @ 0 a 1 a a 3 a 4 a 5 C a 10 a 11 a 1 a 13 a 14 a 15 A a 00 a 01 a 0 a 03 a 04 a 05 3 So ergibt sich z.b. für h 3 bc der folgende Schätzer für die Kovarianz: a 3 a 00 + a 4 a 01 + a 5 a 0 + a 33 a 10 + a 34 a 11 + a 35 a 1 6.
3 Bestimmung der Kovarianz mittels Verschiebungs- bzw. Faltungsoperation 6 3 Bestimmung der Kovarianz mittels Verschiebungs- bzw. Faltungsoperation Führen wir nun die Set-Kovarianz c W (h) W (W + h), h R d, ein. Dann gilt: C(h) c W (h) E Ξ (Ξ + h) W (W + h) E Z W (W +h) 1I Ξ (x)1i Ξ+h (x) dx E Z W (W +h) 1I Ξ (x)1i Ξ (x h) dx E Z R d 1I Ξ (x)1i Ξ (x h)1i W (W +h) (x) dx E Z 1I R Ξ (x)1i W (x) 1I {z } Ξ (x h)1i (W +h) (x) dx d :f(x) E Z R d f(x)f(x h) dx (Verschiebungsoperation).
3 Bestimmung der Kovarianz mittels Verschiebungs- bzw. Faltungsoperation 7 Weiterhin ergibt sich mit g(x) : f( x), dass C(h) c W (h) E Z R d f(x) g(h x) dx (Faltungsoperation) E( f g)(h), wobei der letzte Ausdruck der Definition der Faltung zweier Funktionen auf dem R d entspricht und,, das Symbol für den Faltungsoperator darstellt. Zusammengefasst ergibt sich: C(h) c W (h) E(f g)(h). Bemerkungen: Wir können nun den Schätzer b C(h) für die Kovarianz auf zwei Arten berechnen, zum einen über eine Verschiebung, zum anderen über eine Faltung. Für a, b C n ist die diskrete Faltung a b c gegeben durch c i ix k0 a k b i k, i 0,..., n
4 Beispiel für den Fall d (Faltung) 8 4 Beispiel für den Fall d (Faltung) Wir betrachten hier zwei (m n)-bildmatrizen A und B mit ˇB A, d.h. die Einträge der Matrix B gleichen denen der Matrix A nach einer Spiegelung an dem Mittelpunkt der Matrix A. Zur Illustration der Faltungsoperation werden die folgenden (4 6) Matrizen A und B betrachtet: 0 1 0 1 B a 30 a 31 a 3 a 33 a 34 a 35 a A @ 0 a 1 a a 3 a 4 a 5 C a 10 a 11 a 1 a 13 a 14 a 15 A B b 05 b 04 b 03 b 0 b 01 b 00 b B @ 15 b 14 b 13 b 1 b 11 b 10 C b 5 b 4 b 3 b b 1 b 0 A a 00 a 01 a 0 a 03 a 04 a 05 b 35 b 34 b 33 b 3 b 31 b 30 f(x) 1I W (x) 1I Ξ (x) entspricht den Einträgen der Matrix A Wegen g(x) f( x) gilt für die obige Bildstruktur: x h 0 1 0 1 @ x 1 A @ h 1 A x h 0 @ n 1 m 1 1 0 1 0 1 A @ x 1 A + @ h 1 A x h
4 Beispiel für den Fall d (Faltung) 9 Das Integral geht in folgende Doppelsumme über: Für h 3 m 1+h X i0 ergibt sich n 1+h X 1 j0 a ij b (m 1) i+h,(n 1) j+h 1 W (W + h) (m h )(n h 1 ) 6 und bc 3 a 3 b 35 + a 4 b 34 + a 5 b 33 + a 33 b 5 + a 34 b 4 + a 35 b 3 6. Bemerkung: Sowohl die Verschiebungsoperation hat Komplexität O(n ) für d 1, als auch die Faltung. Im folgenden werden wir eine Möglichkeit aufzeigen, mit deren Hilfe wir die Faltung schneller berechnen können. Dafür benötigen wir den Begriff der Fourier-Transformation.
5 Fourier-Transformierte und Faltungssatz 10 5 Fourier-Transformierte und Faltungssatz :R C Für f d Lebesgue-integrierbar existiert Z F (t)( F{f}(t)) R R f(x)e πi t,x dx, t d (7) d und ist die Fourier-Transformierte der Funktion f. Durch Z f(x)( F 1 {F }(x)) R R F (t)e πi x,t dt, x d (8) d :R C ist die inverse Fourier-Transformierte der Funktion F d gegeben. Bemerkungen: Ein Beispiel für eine Fourier-Transformierte ist die charakteristische Funktion einer (absolut stetigen) Zufallsvariablen. Die Fourier-Transformation wird unter anderem in der Physik (Übergang vom Zeitbereich in den Frequenzbereich), aber auch in der Analysis (Theorie der partiellen Differentialgleichungen) und in vielen anderen Bereichen verwendet.
5 Fourier-Transformierte und Faltungssatz 11 Wir können mit (d-1)-maliger Anwendung des Satzes von Fubini eine d-dimensionale Fourier-Transformation in d eindimensionale Transformationen überführen. F (t) Z Z f(x)e R πi t,x dx d f(x R 1,..., x d )e πi(t 1x 1 +...+t d x d ) d(x 1,..., x d ) d Z ZR ZR d 1 Z... R R f(x 1,..., x d )e πit 1x 1 dx 1 e πi(t x +...+t d x d ) d(x,..., x d ) ZR f(x 1,..., x d )e πit 1x 1 dx 1 e πit x dx... e πit d x d dx d {z } F{f x1 }(t 1 ) F{... {F{F{f x1 }(t 1 )}(t )...}(t d ) Bemerkung: Dasselbe kann man auch für die inverse Fourier-Transformation zeigen.
5 Fourier-Transformierte und Faltungssatz 1 Mit Hilfe der Fourier-Transformation können wir nun folgenden Faltungssatz formulieren. Die Fourier-Transformation der Faltung der Funktionen f, g :R R ist gleich dem Produkt der Fourier-Transformationen der Funktionen f und g, also F{(f g)(h)}(t) F (t) G(t), h R. (9) Z Beweis: F{f g(h)}(t) R (f g)(h) eπith dh Z Z R R f(x)g(h x) dx e πith dh Z Z R R f(x)g(w) eπit(w+x) dx dw R F{f}(t) F{g}(t) F (t) G(t), h. Bemerkung: Analoges kann man für Funktionen f, g :R d R zeigen.
6 Diskrete Fourier Transformation (DFT) 13 6 Diskrete Fourier Transformation (DFT) Einige Vorüberlegungen zur DFT: Wir haben f :R R und wollen die Fourier-Transformierte hiervon. Wir bestimmen N aufeinanderfolgende Funktionswerte f k von f, sodass f k f(x k ) gilt mit x k k und k 0, 1,..., N 1, wobei den (gleichbleibenden) Abstand zwischen den Stützpunkten bezeichne. Wir setzen nun noch t j j N für j N,..., N. Dann ergibt sich: F (t j ) Z R f(x) eπit j x dx X N 1 k0 f k e πit j x k X N 1 k0 n 1 X k0 f k e πi j N k f k e πikj/n
6 Diskrete Fourier Transformation (DFT) 14 Bemerkungen: Zu einem gegebenen Vektor f (f 0,..., f N 1 ) bezeichnet der Vektor F (F 0,..., F N 1 ) mit F j N 1 X k0 f k e πikj/n die diskrete Fourier-Transformierte (DFT) von f. Die Indizierung des Vektors F kann dabei von j 0, 1,..., N 1 laufen, da F j periodisch in j mit Periode N ist, d.h. F j F j+n. Die DFT bildet also einen n-dimensionalen (komplexen) Vektor auf einen n-dimensionalen komplexen Vektor ab. Die inverse DFT unterscheidet sich von der DFT nur geringfügig: Um aus einem gegebenen Vektor (F 0,..., F N 1 ) den Vektor (f 0,..., f N 1 ) zurückzuerhalten, wende man die folgende Formel an: f j 1 N N 1 X k0 F k e πikj/n.
7 Fast Fourier Transformation (FFT) 15 7 Fast Fourier Transformation (FFT) Die DFT bringt uns aber auch noch keinen Vorteil in der Berechnung von b C(h), weil sie, ebenso wie die diskrete Faltung und die diskrete Verschiebung, auch eine Komplexität von O(n ) hat. Die Lösung des Problems ist die Fast Fourier Transformation (FFT), die einen Algorithmus zur Durchführung der DFT mit Komplexität O(n log(n)) darstellt. Eine komplexe Zahl z ist n-te Einheitswurzel, falls z n 1. Es gibt im Komplexen genau n Lösungen der Gleichung z n 1, nämlich z 0,n,..., z n 1,n mit Veranschaulichung der n-ten Einheitswurzeln (n 8): z k,n e πik/n.
7 Fast Fourier Transformation (FFT) 16 Mit der Eulerschen Formel kann überprüft werden, dass z k,n tatsächlich eine n-te Einheitswurzel ist: (z k,n ) n (e πik/n ) n e πik cos(kπ) + i sin(kπ) 1 + i 0 1 Außerdem ergibt sich, dass man alle n-ten Einheitswurzeln als Potenzen von z 1,n erhalten kann. Sei z : z 1,n e πi/n, dann gilt: z 0,n e 0 (e πi/n ) 0 z 0 1,n, z 1,n e πi1/n z 1 1,n, z,n e πi/n (e πi/n ) z 1,n,. Im Folgenden sei n eine Zweierpotenz. Dann erhält man durch Quadrieren der n-ten Einheitswurzeln gerade die (n/)-ten Einheitswurzeln (und zwar zweimal). Sei im Folgenden k 0,..., (n/) 1: (z k,n ) e πik/(n/) z k,n/, (z (n/)+k,n ) e πi((n/)+k)/(n/) e πi e πik/(n/) e πik/(n/) z k,n/.
7 Fast Fourier Transformation (FFT) 17 Ab sofort sei N immer eine Zweierpotenz und gebe, so wie bisher, die Anzahl der Stützpunkte der betrachteten Funktion f an. Ausserdem setzen wir W : e πi/n. Mit diesen Vorraussetzungen können wir den Term für die DFT folgendermaßen umformen: F j N 1 X k0 X N 1 k0 X N 1 k0 N 1 X k0 f k e πikj/n F e j + W j F o j f k e πi(k)j/n + f k e πikj/( N ) + N 1 X k0 X N 1 k0 f k e πikj/( N ) + W j f k+1 e πi(k+1)j/n f k+1 e πikj/n+πij/n {z } (e πi/n ) j e πikj/n N 1 X k0 f k+1 e πikj/( N )
7 Fast Fourier Transformation (FFT) 18 Dabei bezeichnet F e(ven) j die j-te Komponente der Fourier-Transformierten der Länge N, die aus den Funktionswerten von f mit geraden Indices gebildet wird, und F o(dd) j analog die mit den ungeraden Indices. Für j gilt immer noch 0 j N 1. Aber Fj e und F j o sind periodisch in j und zwar mit der Länge N. Denn man kann das ursprüngliche F für 0 j N 1 wie folgt aufteilen: weil für F j F e j + W j F o j (10) F N +j F e N +j + W N +j F o N +j F e j W j F o j, (11) e πik( N +j)/( N ) e πik N /( N ) e πikj/( N ) e πik {z } e πikj/( N ) cos(kπ)+i sin(kπ)1 und W N +j (e πi/n ) N +j e (πin+πij)/n e {z} πi e πij/n (e πi/n ) j W j 1 gilt.
7 Fast Fourier Transformation (FFT) 19 Diese Erkenntnisse kann man rekursiv weiter auf die Fj e und F j o anwenden und bekommt so sukzessiv in insgesamt log (N) Schritten alle möglichen N Permutationen für die e s und o s und damit zusammenhängend einelementige Transformationen. Diese Transformationen sind aber nichts anderes als Identitäten (für bestimmte f k ), weil j k 0 gilt und somit Bemerkungen: F 0 0X k0 f k e πikj/1 f 0 e πi0 f 0. (1) Man kann die sich ergebende rekursive Vorgehensweise auch in eine iterative Abfolge umwandeln. Es gibt viele modifizierte FFTs für jeweils spezielle Probleme, die bis zu zweimal schneller sind als der hier vorgestellte. Es ergibt sich also folgender Algorithmus:
7 Fast Fourier Transformation (FFT) 0 FFT-Algorithmus: Die Komplexität dieses Algorithmus ergibt sich aus der Rekursionsgleichung T (n) T (n/) + O(n), deren Lösung nach dem Master- Theorem T (n) O(n log n) ist. PROCEDURE FFT (N, (f 0,..., f N 1 )) IF N 1 THEN RETURN (f 0 ) ELSE f e(ven) : (f 0, f,..., f N ) f o(dd) : (f 1, f 3,..., f N 1 ) F e(ven) :FFT (N/, f e(ven) ) F o(dd) :FFT (N/, f o(dd) ) z 0 : 1 z : e iπ/n FOR j : 0 TO (N/) 1 DO F j : F e(ven) j F (N/)+j : F e(ven) j z 0 : z 0 z + z 0 F o(dd) j RETURN (F 0, F 1,..., F N 1 ) z 0 F o(dd) j
8 Vorgehensweise bei Implementierung 1 8 Vorgehensweise bei Implementierung Es ergibt sich also folgende Vorgehensweise um z. B. die Kovarianz eines zweidimensionalen Binärbildes zu schätzen. A eine (m n) Matrix, enthalte die diskretisierte Bildstruktur des Binärbildes Es gelte ˇB A, d.h. die Einträge der Matrix B gleichen denen der Matrix A nach einer Spiegelung an dem Mittelpunkt der Matrix A. Auffüllen von A und B mit Nullen bis m 1 und n 1 Auffüllen von vergrößerten A und B mit Nullen bis zur nächsten Zweierpotenz f(x) 1I Ξ (x)1i W (x) entspricht den Einträgen der Matrix A zweidimensionale Fourier-Transformation in A und B durch jeweils zwei eindimensionale DFTs; d.h. transformieren alle Funktionswerte von f(x) in der ersten Dimension (iterieren über alle Spalten), speichern das Ergebnis in A ab und transformieren, die sich ergebenden Werte in der zweiten Dimension (iterieren über alle Zeilen), wiederum,,in situ (A enthält nun die Werte der zweidimensionalen Fourier-Transformation von f(x)); gleiches mit B
8 Vorgehensweise bei Implementierung Nach dem Faltungssatz gilt, dass die Fourier-Transformierte der Faltung von f und g, an der Stelle t, dem Produkt der transformierten Funktionen, jeweils an der Stelle t, entspricht. Also A und B komponentenweise multiplizieren und in A abspeichern. zweidimensionale inverse Fourier-Transformation auf A anwenden und in A abspeichern; ergibt die Werte der Faltung ( f g)(h) für alle zulässigen h R nicht vergessen, die einzelnen Einträge durch W (W + h) zu teilen
3 Literatur [1] Ohser, J. and Mücklich, F. (000) Statistical Analysis of Microstructures in Material Science. J. Wiley & Sons, Chichester. [] Press, W.H., Flannery, B.P., Teukolsky, S.A., and Vetterling, W.T. (1986) Numerical Recipes. Cambridge University Press, Cambridge. [3] Schöning, U. (001) Algorithmik. Spektrum Akademischer Verlag, Heidelberg. [4] Stoyan, D., Kendall, W.S., and Mecke, J. (1995) Stochastic Geometry and its Applications. J. Wiley & Sons, Chichester (nd ed.). [5] Donald E. Knuth (1997) The Art of Computer Programming. Addison Wesley.