Gabor-Filter

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
Beispiel eines 2D-Gabor-Filters

Ein Gabor-Filter ist ein in der Bildverarbeitung und der Signalverarbeitung benutzter Filter. Er ist nach Dennis Gabor benannt, der ihn als 1D-Filter für die Signalverarbeitung vorschlug.[1]

Das Gabor-Filter wurde von Gösta Granlund auf die Anwendung für 2D-Bilder verallgemeinert.[2]

Das Gabor-Filter ist ein linearer Filter und wird vielfach in der Kantendetektion und Bildstrukturanalyse verwendet.

Hierbei werden wiederkehrende Strukturen um einen Punkt mittels Frequenzanalyse erkannt. Die Art und Weise, wie das visuelle System von Säugetieren arbeitet, ähnelt dem Gabor-Filter.[3]

Es wird erforscht, ob der Visuelle Cortex von Säugetierhirnen mittels Gabor-Funktionen modelliert werden kann.[4][5]

In der 2D-Anwendung ist der Gabor-Filter ein mit einer Sinus-Welle modulierter Gauß-Kernel (siehe Gabor-Transformation).

Die Impulsantwort des Filters wird durch die Multiplikation eines Sinusoids und einer Gauß-Funktion bestimmt.[6]

Der Filter hat einen realen und einen imaginären Anteil, welche orthogonal zueinander stehen.[7] Dies erlaubt die Nutzung als komplexe Zahl oder in zerlegte reale und imaginäre Komponenten.

Komplex:

Real:

Imaginär:

mit und .

Hierbei ist die Wellenlänge des Sinus, ist die Orientierung der Gabor-Funktion zur Normalen. ist die Phasenverschiebung, ist die Standardabweichung der umhüllenden Gaussverteilung und ist das Seitenverhältnis des Kernels und bestimmt die Exzentrizität der Kernel-Funktion.

Feature Extraktion aus Bildern

[Bearbeiten | Quelltext bearbeiten]

Eine Filterbank aus mehreren Gabor-Filtern mit unterschiedlichen Frequenzen und Orientierungen kann benutzt werden, um verschiedene Merkmale (Features) in einem Bild zu erkennen.[8]

In der Texterkennung sind Gabor-Filter geeignet, um Schriftzeichen in mehrsprachigen Dokumenten zu erkennen.[9] Gabor-Filter mit verschiedenen Frequenzen und Orientierungen können benutzt werden, um Textfelder aus komplexen ein- und mehrfarbigen Dokumenten-Scans zu extrahieren, da Text im Vergleich zu Bildern oder Zeichnungen mehr hochfrequente Anteile besitzt.[10][11] Weitere Anwendungen besitzt der Filter in der Emotionserkennung[12] und der Mustererkennung in der Medizin.[13] Weitere Anwendungsbereiche im Bereich Bilderkennung sind die Iris-Erkennung, die Erkennung von Fingerabdrücken und Landnutzungsklassifizierung von Satellitendaten.[14]

Beispiel Implementationen

[Bearbeiten | Quelltext bearbeiten]

Dies ist eine Beispiel-Implementierung in Python:

import numpy as np


def gabor(sigma, theta, Lambda, psi, gamma):
    """Gabor Feature extraktion."""
    sigma_x = sigma
    sigma_y = float(sigma) / gamma

    # Bounding box
    nstds = 3  # Anzahl der Standardabweichung sigma
    xmax = max(
        abs(nstds * sigma_x * np.cos(theta)), abs(nstds * sigma_y * np.sin(theta))
    )
    xmax = np.ceil(max(1, xmax))
    ymax = max(
        abs(nstds * sigma_x * np.sin(theta)), abs(nstds * sigma_y * np.cos(theta))
    )
    ymax = np.ceil(max(1, ymax))
    xmin = -xmax
    ymin = -ymax
    (y, x) = np.meshgrid(np.arange(ymin, ymax + 1), np.arange(xmin, xmax + 1))

    # Rotation
    x_theta = x * np.cos(theta) + y * np.sin(theta)
    y_theta = -x * np.sin(theta) + y * np.cos(theta)

    gb = np.exp(
        -0.5 * (x_theta**2 / sigma_x**2 + y_theta**2 / sigma_y**2)
    ) * np.cos(2 * np.pi / Lambda * x_theta + psi)
    return gb

Für eine Anwendung in der Bildverarbeitung.[15]

Ein MATLAB/Octave Beispiel:

function gb=gabor_fn(sigma, theta, lambda, psi, gamma)

sigma_x = sigma;
sigma_y = sigma / gamma;

% Bounding box
nstds = 3;
xmax = max(abs(nstds * sigma_x * cos(theta)), abs(nstds * sigma_y * sin(theta)));
xmax = ceil(max(1, xmax));
ymax = max(abs(nstds * sigma_x * sin(theta)), abs(nstds * sigma_y * cos(theta)));
ymax = ceil(max(1, ymax));
xmin = -xmax; ymin = -ymax;
[x,y] = meshgrid(xmin:xmax, ymin:ymax);

% Rotation
x_theta = x * cos(theta) + y * sin(theta);
y_theta = -x * sin(theta) + y * cos(theta);

gb = exp(-.5*(x_theta.^2/sigma_x^2+y_theta.^2/sigma_y^2)).*cos(2*pi/lambda*x_theta+psi);

Code für Gabor Feature Extraction aus Bildern in MATLAB:[16]

Ein Beispiel in Haskell:

import Data.Complex
gabor λ θ ψ σ γ x y = exp(-(x'^2 + γ^2 * y'^2) / (2*σ^2)) * exp(i * (2*pi*x'/λ + ψ))
    where x' =  x * cos θ + y * sin θ
          y' = -x * sin θ + y * cos θ
          i  = 0 :+ 1

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. Gabor, D.: Theory of communication. In: J. Inst. Electr. Eng. 93. Jahrgang, 1946 (englisch).
  2. Granlund G. H.: In Search of a General Picture Processing Operator. In: Computer Graphics and Image Processing. 8. Jahrgang, Nr. 2, 1978, ISSN 0146-664X, S. 155–173, doi:10.1016/0146-664X(78)90047-3 (englisch).
  3. Olshausen, B. A. & Field, D. J.: Emergence of simple-cell receptive-field properties by learning a sparse code for natural images. In: Nature. 381. Jahrgang, Nr. 6583, 1996, S. 607–609, doi:10.1038/381607a0, PMID 8637596, bibcode:1996Natur.381..607O (englisch).
  4. S. Marčelja: Mathematical description of the responses of simple cortical cells. In: Journal of the Optical Society of America. 70. Jahrgang, Nr. 11, 1980, S. 1297–1300, doi:10.1364/JOSA.70.001297, PMID 7463179, bibcode:1980JOSA...70.1297M (englisch).
  5. John G. Daugman: Uncertainty relation for resolution in space, spatial frequency, and orientation optimized by two-dimensional visual cortical filters. In: Journal of the Optical Society of America A. 2. Jahrgang, Nr. 7, 1. Juli 1985, ISSN 1084-7529, S. 1160–9, doi:10.1364/JOSAA.2.001160, PMID 4020513, bibcode:1985JOSAA...2.1160D (englisch).
  6. I. Fogel, D. Sagi: Gabor filters as texture discriminator. In: Biological Cybernetics. 61. Jahrgang, Nr. 2, Juni 1989, ISSN 0340-1200, OCLC 895625214, S. 103–113, doi:10.1007/BF00204594 (englisch).
  7. 3D surface tracking and approximation using Gabor filters, Jesper Juul Henriksen, South Denmark University, March 28, 2007
  8. M. Haghighat, S. Zonouz, M. Abdel-Mottaleb: Computer Analysis of Images and Patterns (= Lecture Notes in Computer Science. Band 8048). 2013, ISBN 978-3-642-40245-6, Identification Using Encrypted Biometrics, S. 440–448, doi:10.1007/978-3-642-40246-3_55 (englisch).
  9. Peeta Basa Pati, A.G. Ramakrishnan: Word level multi-script identification. In: Pattern Recognition Letters. 29. Jahrgang, Nr. 9, Juli 2008, ISSN 0167-8655, S. 1218–1229, doi:10.1016/j.patrec.2008.01.027, bibcode:2008PaReL..29.1218P (englisch).
  10. S. Raju S, P.B. Pati, A.G. Ramakrishnan: First International Workshop on Document Image Analysis for Libraries, 2004. Proceedings. IEEE, Palo Alto, CA, USA 2004, ISBN 978-0-7695-2088-9, Gabor filter based block energy analysis for text extraction from digital document images, S. 233–243, doi:10.1109/DIAL.2004.1263252 (englisch, iisc.ac.in [PDF]).
  11. S. Sabari Raju, P. B. Pati, A. G. Ramakrishnan: Advances in Visual Computing (= Lecture Notes in Computer Science. Band 3804). 2005, ISBN 978-3-540-30750-1, Text Localization and Extraction from Complex Color Images, S. 486–493, doi:10.1007/11595755_59 (englisch, archive.org).
  12. M. Lyons, S. Akamatsu, M. Kamachi, J. Gyoba: Proceedings Third IEEE International Conference on Automatic Face and Gesture Recognition. 1998, ISBN 0-8186-8344-9, Coding facial expressions with Gabor wavelets, S. 200–205, doi:10.1109/AFGR.1998.670949 (englisch, zenodo.org).
  13. C.M. Gdyczynski, A. Manbachi: On estimating the directionality distribution in pedicle trabecular bone from micro-CT images. In: Physiological Measurement. 35. Jahrgang, Nr. 12, 2014, S. 2415–2428, doi:10.1088/0967-3334/35/12/2415, PMID 25391037, bibcode:2014PhyM...35.2415G (englisch).
  14. C. Chen, L. Zhou, J. Guo, W. Li, H. Su and F. Guo, "Gabor-Filtering-Based Completed Local Binary Patterns for Land-Use Scene Classification," 2015 IEEE International Conference on Multimedia Big Data, Beijing, China, 2015, pp. 324–329, doi:10.1109/BigMM.2015.23.
  15. LogGabor user guide, auf pythonhosted.org
  16. Gabor Feature Extraction, auf mathworks.com

Weiterführende Literatur

[Bearbeiten | Quelltext bearbeiten]
  • Feichtinger, Hans G. (Hrsg.): Gabor analysis and algorithms : theory and applications. Birkhäuser, Boston 1998, ISBN 0-8176-3959-4 (englisch).
  • Gröchenig, Karlheinz: Foundations of time-frequency analysis : with 15 figures (= Applied and Numerical Harmonic Analysis). Birkhäuser, Boston 2001, ISBN 0-8176-4022-3, doi:10.1007/978-1-4612-0003-1 (englisch).
  • J.G. Daugman: Complete discrete 2-D Gabor transforms by neural networks for image analysis and compression. In: IEEE Transactions on Acoustics, Speech, and Signal Processing. 36. Jahrgang, Nr. 7, 1988, ISSN 0096-3518, S. 1169–1179, doi:10.1109/29.1644 (englisch, gmu.edu [PDF]).
  • Sylvain Fischer, Filip Šroubek, Laurent Perrinet, Rafael Redondo, Gabriel Cristóbal: Self-Invertible 2D Log-Gabor Wavelets. In: International Journal of Computer Vision. 75. Jahrgang, Nr. 2, 2007, ISSN 0920-5691, S. 231–246, doi:10.1007/s11263-006-0026-8 (englisch, cas.cz [PDF]).