Filtro lineal utilizado para el análisis de textura.
En el procesamiento de imágenes , un filtro de Gabor , llamado así por Dennis Gabor , quien lo propuso por primera vez como un filtro 1D. [1]
El filtro de Gabor fue generalizado por primera vez a 2D por Gösta Granlund, [2] al agregar una dirección de referencia. El filtro de Gabor es un filtro lineal utilizado para el análisis de textura , lo que esencialmente significa que analiza si hay algún contenido de frecuencia específico en la imagen en direcciones específicas en una región localizada alrededor del punto o región de análisis. Muchos científicos de la visión contemporáneos afirman que las representaciones de frecuencia y orientación de los filtros de Gabor son similares a las del sistema visual humano . [3] Se ha descubierto que son particularmente apropiados para la representación y discriminación de texturas. En el dominio espacial, un filtro de Gabor 2D es una función de núcleo gaussiano modulada por una onda plana sinusoidal (ver transformada de Gabor ).
En esta ecuación, representa la longitud de onda del factor sinusoidal, representa la orientación de la normal a las franjas paralelas de una función de Gabor , es el desfase de fase, es la sigma/desviación estándar de la envolvente gaussiana y es la relación de aspecto espacial, y especifica la elipticidad del soporte de la función de Gabor.
Espacio wavelet
Los filtros de Gabor están directamente relacionados con las ondículas de Gabor , ya que pueden diseñarse para una serie de dilataciones y rotaciones. Sin embargo, en general, la expansión no se aplica para las ondículas de Gabor, ya que esto requiere el cálculo de ondículas bi-ortogonales, lo que puede llevar mucho tiempo. Por lo tanto, normalmente, se crea un banco de filtros que consta de filtros de Gabor con varias escalas y rotaciones. Los filtros se convolucionan con la señal, lo que da como resultado un llamado espacio de Gabor. Este proceso está estrechamente relacionado con los procesos en la corteza visual primaria . [8]
Jones y Palmer demostraron que la parte real de la función de Gabor compleja se ajusta bien a las funciones de peso del campo receptivo que se encuentran en células simples en la corteza estriada de un gato. [9]
Análogo causal temporal del filtro de Gabor
Al procesar señales temporales, no se puede acceder a datos del futuro, lo que genera problemas si se intentan utilizar funciones de Gabor para procesar señales en tiempo real que dependen de la dimensión temporal. En [10] se ha desarrollado un análogo causal temporal del filtro de Gabor basado en la sustitución del núcleo gaussiano en la función de Gabor por un núcleo causal temporal y recursivo en el tiempo denominado núcleo límite causal temporal. De esta manera, el análisis de tiempo-frecuencia basado en la extensión de valor complejo resultante del núcleo límite causal temporal permite capturar transformaciones esencialmente similares de una señal temporal a las que puede capturar el filtro de Gabor, y como puede describir el grupo de Heisenberg; véase [10] para obtener más detalles.
Extracción de características de imágenes
Un conjunto de filtros Gabor con diferentes frecuencias y orientaciones puede ser útil para extraer características útiles de una imagen. [11] En el dominio discreto, los filtros Gabor bidimensionales están dados por,
donde B y C son factores normalizadores a determinar.
Los filtros Gabor 2D tienen abundantes aplicaciones en el procesamiento de imágenes, especialmente en la extracción de características para el análisis de texturas y la segmentación. [12] define la frecuencia que se busca en la textura. Al variar , podemos buscar texturas orientadas en una dirección particular. Al variar , cambiamos el soporte de la base o el tamaño de la región de la imagen que se está analizando.
Aplicaciones de los filtros Gabor 2D en el procesamiento de imágenes
En el procesamiento de imágenes de documentos, las características de Gabor son ideales para identificar la escritura de una palabra en un documento multilingüe. [13] Los filtros de Gabor con diferentes frecuencias y con orientaciones en diferentes direcciones se han utilizado para localizar y extraer regiones de solo texto de imágenes de documentos complejos (tanto en gris como en color), ya que el texto es rico en componentes de alta frecuencia, mientras que las imágenes son relativamente suaves por naturaleza. [14] [15] [16] También se ha aplicado para el reconocimiento de expresiones faciales . [17]
Los filtros de Gabor también se han utilizado ampliamente en aplicaciones de análisis de patrones. Por ejemplo, se ha utilizado para estudiar la distribución de direccionalidad dentro del hueso trabecular esponjoso poroso en la columna vertebral . [18] El espacio de Gabor es muy útil en aplicaciones de procesamiento de imágenes como el reconocimiento óptico de caracteres , el reconocimiento del iris y el reconocimiento de huellas dactilares . Las relaciones entre las activaciones para una ubicación espacial específica son muy distintivas entre los objetos de una imagen. Además, se pueden extraer activaciones importantes del espacio de Gabor para crear una representación de objeto dispersa.
importar numpy como npdef gabor ( sigma , theta , Lambda , psi , gamma ): """Extracción de características de Gabor.""" sigma_x = sigma sigma_y = float ( sigma ) / gamma# Cuadro delimitador nstds = 3 # Número de desviación estándar 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 . malla ( np.arange ( ymin , ymax + 1 ) , np.arange ( xmin , xmax + 1 ) )# Rotación x_theta = x * np . cos ( theta ) + y * np . sen ( theta ) y_theta = - x * np . sen ( 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 ) devolver gb
Para una implementación en imágenes, consulte [1].
MATLAB
Este es un ejemplo de implementación en MATLAB / Octave :
función gb = gabor_fn ( sigma, theta, lambda, psi, gamma )sigma_x = sigma ; sigma_y = sigma / gamma ;% Cuadro delimitador 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 );% Rotación x_theta = x * cos ( theta ) + y * sen ( theta ); y_theta = - x * sen ( 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 );
El código para la extracción de características de Gabor de imágenes en MATLAB se puede encontrar en http://www.mathworks.com/matlabcentral/fileexchange/44630.
Haskell
Este es otro ejemplo de implementación en Haskell :
importar datos.Complex gabor λ θ ψ σ γ x y = exp ( - ( x' ^ 2 + γ ^ 2 * y' ^ 2 ) / ( 2 * σ ^ 2 )) * exp ( i * ( 2 * pi * x' / λ + ψ )) donde x' = x * cos θ + y * sin θ y' = - x * sin θ + y * cos θ i = 0 :+ 1
^ Gabor, D. (1946). "Teoría de la comunicación". J. Inst. Electr. Eng . 93 .
^ Granlund GH (1978). "En busca de un operador general de procesamiento de imágenes". Procesamiento de imágenes y gráficos por computadora . 8 (2): 155–173. doi :10.1016/0146-664X(78)90047-3. ISSN 0146-664X.
^ Olshausen, BA y Field, DJ (1996). "Aparición de propiedades de campos receptivos de células simples mediante el aprendizaje de un código disperso para imágenes naturales". Nature . 381 (6583): 607–609. Bibcode :1996Natur.381..607O. doi :10.1038/381607a0. PMID 8637596. S2CID 4358477.{{cite journal}}: CS1 maint: multiple names: authors list (link)
^ Marčelja, S. (1980). "Descripción matemática de las respuestas de células corticales simples". Revista de la Sociedad Óptica de América . 70 (11): 1297–1300. Bibcode :1980JOSA...70.1297M. doi :10.1364/JOSA.70.001297. PMID 7463179.
^ Daugman, John G. (1 de julio de 1985). "Relación de incertidumbre para la resolución en el espacio, la frecuencia espacial y la orientación optimizada por filtros corticales visuales bidimensionales". Journal of the Optical Society of America A . 2 (7): 1160–9. Bibcode :1985JOSAA...2.1160D. CiteSeerX 10.1.1.465.8506 . doi :10.1364/JOSAA.2.001160. ISSN 1084-7529. PMID 4020513. S2CID 9271650.
^ Fogel, I.; Sagi, D. (junio de 1989). "Filtros Gabor como discriminadores de textura". Cibernética biológica . 61 (2): 103–113. CiteSeerX 10.1.1.367.2700 . doi :10.1007/BF00204594. ISSN 0340-1200. OCLC 895625214. S2CID 14952808.
^ Seguimiento y aproximación de superficies 3D mediante filtros Gabor, Jesper Juul Henriksen, Universidad del Sur de Dinamarca, 28 de marzo de 2007
^ Daugman, JG (1980), "Análisis espectral bidimensional de los perfiles del campo receptivo cortical", Vision Res. , 20 (10): 847–56, doi :10.1016/0042-6989(80)90065-6, PMID 7467139, S2CID 40518532
^ Jones, JP; Palmer, LA (1987). "Una evaluación del modelo de filtro Gabor bidimensional de campos receptivos simples en la corteza estriada del gato" (PDF) . J. Neurophysiol . 58 (6): 1233–1258. doi :10.1152/jn.1987.58.6.1233. PMID 3437332. S2CID 16809045. Archivado desde el original (PDF) el 28 de febrero de 2020.
^ ab Lindeberg, T. (23 de enero de 2023). "Una representación de escala-espacio covariante, recursiva en el tiempo y causal en el tiempo, de señales temporales y tiempo pasado". Cibernética biológica . 117 (1–2): 21–59. doi : 10.1007/s00422-022-00953-6 . PMC 10160219 . PMID 36689001.
^ Haghighat, M.; Zonouz, S.; Abdel-Mottaleb, M. (2013). "Identificación mediante biometría cifrada". Análisis informático de imágenes y patrones . Apuntes de clase en informática. Vol. 8048. págs. 440–448. doi :10.1007/978-3-642-40246-3_55. ISBN978-3-642-40245-6.
^ Ramakrishnan, AG; Kumar Raja, S.; Raghu Ram, HV (2002). "Segmentación de texturas basada en redes neuronales utilizando características de Gabor" (PDF) . Actas del 12.º taller IEEE sobre redes neuronales para procesamiento de señales . Martigny, Suiza: IEEE. pp. 365–374. doi :10.1109/NNSP.2002.1030048. ISBN.978-0-7803-7616-8. OCLC 812617471. S2CID 10994982.
^ Pati, Peeta Basa; Ramakrishnan, AG (julio de 2008). "Identificación de múltiples escrituras a nivel de palabra". Pattern Recognition Letters . 29 (9): 1218–1229. Bibcode :2008PaReL..29.1218P. doi :10.1016/j.patrec.2008.01.027. ISSN 0167-8655.
^ Raju S, S.; Pati, PB; Ramakrishnan, AG (2004). "Análisis de energía de bloque basado en filtro Gabor para extracción de texto de imágenes de documentos digitales" (PDF) . Primer taller internacional sobre análisis de imágenes de documentos para bibliotecas, 2004. Actas . Palo Alto, CA, EE. UU.: IEEE. págs. 233–243. doi :10.1109/DIAL.2004.1263252. ISBN.978-0-7695-2088-9. LCCN 2003116308. OL 8067708M. S2CID 21856192.
^ Raju, S. Sabari; Pati, PB; Ramakrishnan, AG (2005). "Localización y extracción de texto de imágenes de color complejas". Avances en computación visual. Apuntes de clase en informática. Vol. 3804. págs. 486–493. doi :10.1007/11595755_59. ISBN978-3-540-30750-1. ISSN 0302-9743. LCCN 2005936803. OL 9056158M.
^ S Sabari Raju, PB Pati y AG Ramakrishnan, “Localización y extracción de texto a partir de imágenes en color complejas”, Proc. Primera Conferencia Internacional sobre Avances en Computación Visual (ISVC05) , Nevada, EE. UU., LNCS 3804, Springer Verlag, 5-7 de diciembre de 2005, págs. 486-493.
^ Lyons, M.; Akamatsu, S.; Kamachi, M.; Gyoba, J. (1998). "Codificación de expresiones faciales con wavelets de Gabor". Actas de la Tercera Conferencia Internacional IEEE sobre Reconocimiento Automático de Rostros y Gestos. págs. 200–205. doi :10.1109/AFGR.1998.670949. ISBN0-8186-8344-9. OL 11390549M. S2CID 1586662.
^ Gdyczynski, CM; Manbachi, A.; et al. (2014). "Sobre la estimación de la distribución de la direccionalidad en el hueso trabecular peduncular a partir de imágenes de micro-TC". Medición fisiológica . 35 (12): 2415–2428. Bibcode :2014PhyM...35.2415G. doi :10.1088/0967-3334/35/12/2415. PMID 25391037. S2CID 206078730.
Enlaces externos
Código MATLAB para filtros de Gabor y extracción de características de Gabor
Gabor 3D demostrado con Mathematica
Implementación de Python de Log-Gabors para imágenes fijas
Filtro de Gabor para procesamiento de imágenes y visión artificial (demostración) Archivado el 29 de mayo de 2018 en Wayback Machine
Lectura adicional
Feichtinger, Hans G .; Strohmer, Thomas, eds. (1998). Análisis y algoritmos de Gabor: teoría y aplicaciones . Boston: Birkhäuser. ISBN 0-8176-3959-4. OCLC 37761814. OL 685385M .
Gröchenig, Karlheinz (2001). Fundamentos del análisis tiempo-frecuencia: con 15 figuras . Análisis armónico numérico y aplicado. Boston: Birkhäuser. doi :10.1007/978-1-4612-0003-1. ISBN 0-8176-4022-3. OCLC 44420790. OL 8074618M .
Daugman, JG (1988). "Transformadas de Gabor 2-D discretas completas mediante redes neuronales para el análisis y la compresión de imágenes" (PDF) . IEEE Transactions on Acoustics, Speech, and Signal Processing . 36 (7): 1169–1179. CiteSeerX 10.1.1.371.5847 . doi :10.1109/29.1644. ISSN 0096-3518.
"Demostración del filtro Gabor en línea". Archivado desde el original el 15 de junio de 2009. Consultado el 25 de mayo de 2009 .
Movellan, Javier R. "Tutorial sobre filtros Gabor" (PDF) . Archivado desde el original (PDF) el 2009-04-19 . Consultado el 2008-05-14 .
Lagae, Ares; Lefebvre, Sylvain; Drettakis, George; Dutré, Philip (2009). "Ruido procedimental usando convolución de Gabor dispersa". ACM Transactions on Graphics . 28 (3): 1. CiteSeerX 10.1.1.232.5566 . doi :10.1145/1531326.1531360 . Consultado el 12 de septiembre de 2009 .
Pirámides orientables:
Página de Eero Simoncelli sobre pirámides orientables
Manduchi, R.; Perona, P.; Shy, D. (abril de 1998). "Bancos de filtros deformables eficientes" (PDF) . IEEE Transactions on Signal Processing . 46 (4): 1168–1173. Bibcode :1998ITSP...46.1168M. doi :10.1109/78.668570. ISSN 1053-587X. OCLC 926890247.(PDF archivado el 12 de noviembre de 2021 en Wayback Machine ) (Código archivado el 13 de junio de 2010 en Wayback Machine )
Fischer, Sylvain; Šroubek, Filip; Perrinet, Laurent; Redondo, Rafael; Cristóbal, Gabriel (2007). "Self-Invertible 2D Log-Gabor Wavelets" (PDF) . Revista Internacional de Visión por Computador . 75 (2): 231–246. CiteSeerX 10.1.1.329.6283 . doi :10.1007/s11263-006-0026-8. ISSN 0920-5691. S2CID 1452724.