En matemáticas, el tensor de estructura , también conocido como matriz de segundo momento , es una matriz derivada del gradiente de una función . Describe la distribución del gradiente en un entorno específico alrededor de un punto y hace que la información sea invariable respecto de las coordenadas de observación. El tensor de estructura se utiliza a menudo en el procesamiento de imágenes y la visión artificial . [1] [2] [3]
Para una función de dos variables p = ( x , y ) , el tensor de estructura es la matriz 2×2
donde y son las derivadas parciales de con respecto a x e y ; las integrales varían sobre el plano ; y w es una "función de ventana" fija (como un desenfoque gaussiano ), una distribución sobre dos variables. Nótese que la matriz es en sí misma una función de p = ( x , y ) .
La fórmula anterior también se puede escribir como , donde es la función matricial definida por
Si el gradiente de se considera como una matriz 2×1 (de una sola columna), donde denota la operación de transposición , que convierte un vector fila en un vector columna, la matriz se puede escribir como el producto matricial o el tensor o el producto externo . Sin embargo, tenga en cuenta que el tensor de estructura no se puede factorizar de esta manera en general, excepto si es una función delta de Dirac .
En el procesamiento de imágenes y otras aplicaciones similares, la función se suele dar como una matriz discreta de muestras , donde p es un par de índices enteros. El tensor de estructura 2D en un píxel determinado se suele tomar como la suma discreta
Aquí, el índice de suma r abarca un conjunto finito de pares de índices (la "ventana", típicamente para algún m ), y w [ r ] es un "peso de ventana" fijo que depende de r , de modo que la suma de todos los pesos es 1. Los valores son las derivadas parciales muestreadas en el píxel p ; que, por ejemplo, pueden estimarse mediante fórmulas de diferencias finitas .
La fórmula del tensor de estructura también se puede escribir como , donde es la matriz con valores tales que
La importancia del tensor de estructura 2D surge del hecho de que los valores propios (que pueden ordenarse de modo que ) y los vectores propios correspondientes resumen la distribución del gradiente de dentro de la ventana definida por centrada en . [1] [2] [3]
Es decir, si , entonces (o ) es la dirección que está alineada al máximo con el gradiente dentro de la ventana.
En particular, si entonces el gradiente es siempre un múltiplo de (positivo, negativo o cero); este es el caso si y solo si dentro de la ventana varía a lo largo de la dirección pero es constante a lo largo de . Esta condición de valores propios también se llama condición de simetría lineal porque entonces las isocurvas de consisten en líneas paralelas, es decir, existe una función unidimensional que puede generar la función bidimensional como para algún vector constante y las coordenadas .
Si , por otro lado, el gradiente en la ventana no tiene una dirección predominante, lo que sucede, por ejemplo, cuando la imagen tiene simetría rotacional dentro de esa ventana. Esta condición de valores propios también se denomina cuerpo equilibrado o condición de equilibrio direccional porque se cumple cuando todas las direcciones del gradiente en la ventana son igualmente frecuentes/probables.
Además, la condición sucede si y sólo si la función es constante ( ) dentro de .
De manera más general, el valor de , para k = 1 o k = 2, es el promedio ponderado, en la vecindad de p , del cuadrado de la derivada direccional de a lo largo de . La discrepancia relativa entre los dos valores propios de es un indicador del grado de anisotropía del gradiente en la ventana, es decir, cuán fuertemente está sesgado hacia una dirección particular (y su opuesta). [4] [5] Este atributo puede cuantificarse mediante la coherencia , definida como
if . Esta cantidad es 1 cuando el gradiente está totalmente alineado, y 0 cuando no tiene dirección preferida. La fórmula no está definida, incluso en el límite , cuando la imagen es constante en la ventana ( ). Algunos autores la definen como 0 en ese caso.
Tenga en cuenta que el promedio del gradiente dentro de la ventana no es un buen indicador de anisotropía. Los vectores de gradiente alineados pero orientados de manera opuesta se cancelarían en este promedio, mientras que en el tensor de estructura se suman correctamente. [6] Esta es una razón por la que se utiliza en el promedio del tensor de estructura para optimizar la dirección en lugar de .
Al expandir el radio efectivo de la función de ventana (es decir, aumentar su varianza), se puede hacer que el tensor de estructura sea más robusto frente al ruido, a costa de una resolución espacial disminuida. [5] [7] La base formal de esta propiedad se describe con más detalle a continuación, donde se muestra que una formulación multiescala del tensor de estructura, denominada tensor de estructura multiescala, constituye una verdadera representación multiescala de datos direccionales bajo variaciones de la extensión espacial de la función de ventana .
La interpretación e implementación del tensor de estructura 2D se vuelve particularmente accesible usando números complejos . [2] El tensor de estructura consta de 3 números reales
donde , y en el que las integrales pueden reemplazarse por sumas para una representación discreta. Usando la identidad de Parseval, está claro que los tres números reales son los momentos de segundo orden del espectro de potencia de . El siguiente momento complejo de segundo orden del espectro de potencia de puede escribirse entonces como
donde y es el ángulo de dirección del vector propio más significativo del tensor de estructura mientras que y son los valores propios más y menos significativos. De esto se deduce que contiene tanto una certeza como la dirección óptima en la representación de ángulo doble ya que es un número complejo que consta de dos números reales. También se deduce que si el gradiente se representa como un número complejo y se reasigna elevando al cuadrado (es decir, se duplica el argumento angles del gradiente complejo), entonces el promedio actúa como un optimizador en el dominio mapeado, ya que entrega directamente tanto la dirección óptima (en la representación de ángulo doble) como la certeza asociada. El número complejo representa así cuánta estructura lineal (simetría lineal) hay en la imagen , y el número complejo se obtiene directamente promediando el gradiente en su representación de ángulo doble (compleja) sin calcular los valores propios y los vectores propios explícitamente.
De igual modo, el siguiente momento complejo de segundo orden del espectro de potencia de , que resulta ser siempre real porque es real,
se puede obtener, siendo y los valores propios como antes. Nótese que esta vez la magnitud del gradiente complejo está elevada al cuadrado (lo cual siempre es real).
Sin embargo, al descomponer el tensor de estructura en sus vectores propios, se obtienen sus componentes tensoriales como
donde es la matriz identidad en 2D porque los dos vectores propios son siempre ortogonales (y suman la unidad). El primer término en la última expresión de la descomposición, , representa el componente de simetría lineal del tensor de estructura que contiene toda la información direccional (como una matriz de rango 1), mientras que el segundo término representa el componente de cuerpo equilibrado del tensor, que carece de cualquier información direccional (que contiene una matriz identidad ). Saber cuánta información direccional hay en es lo mismo que comprobar qué tan grande es en comparación con .
Evidentemente, es el equivalente complejo del primer término en la descomposición tensorial, mientras que es el equivalente del segundo término. Así, los dos escalares, que comprenden tres números reales,
donde es el filtro de gradiente (complejo) y es la convolución, constituyen una representación compleja del tensor de estructura 2D. Como se analiza aquí y en otros lugares, define la imagen local, que suele ser gaussiana (con una cierta varianza que define la escala externa), y es el parámetro (escala interna) que determina el rango de frecuencia efectivo en el que se debe estimar la orientación.
La elegancia de la representación compleja se debe a que los dos componentes del tensor de estructura se pueden obtener como promedios e independientemente. A su vez, esto significa que y se pueden utilizar en una representación del espacio de escala para describir la evidencia de la presencia de una orientación única y la evidencia de la hipótesis alternativa, la presencia de múltiples orientaciones equilibradas, sin calcular los vectores propios y los valores propios. Hasta la fecha, no se ha demostrado que exista un funcional, como el cuadrado de los números complejos, para tensores de estructura con dimensiones superiores a dos. En Bigun 91, se ha planteado con el debido argumento que esto se debe a que los números complejos son álgebras conmutativas, mientras que los cuaterniones, el posible candidato para construir dicho funcional, constituyen un álgebra no conmutativa. [8]
La representación compleja del tensor de estructura se utiliza frecuentemente en el análisis de huellas dactilares para obtener mapas de dirección que contienen certezas que a su vez se utilizan para mejorarlas, para encontrar las ubicaciones de las singularidades globales (núcleos y deltas) y locales (minucias), así como para evaluar automáticamente la calidad de las huellas dactilares.
El tensor de estructura puede definirse también para una función de tres variables p =( x , y , z ) de una manera completamente análoga. Es decir, en la versión continua tenemos , donde donde son las tres derivadas parciales de , y los rangos integrales sobre .
En la versión discreta, , donde y la suma varía sobre un conjunto finito de índices 3D, generalmente para algún m .
Al igual que en el caso bidimensional, los valores propios de , y los vectores propios correspondientes , resumen la distribución de las direcciones de gradiente dentro del entorno de p definido por la ventana . Esta información se puede visualizar como un elipsoide cuyos semiejes son iguales a los valores propios y están dirigidos a lo largo de sus vectores propios correspondientes. [9] [10]
En particular, si el elipsoide se estira a lo largo de un solo eje, como un cigarro (es decir, si es mucho más grande que ambos y ), significa que el gradiente en la ventana está predominantemente alineado con la dirección , de modo que las isosuperficies de tienden a ser planas y perpendiculares a ese vector. Esta situación ocurre, por ejemplo, cuando p se encuentra en una característica delgada similar a una placa, o en el límite suave entre dos regiones con valores contrastantes.
Si el elipsoide se aplana en una sola dirección, como un panqueque (es decir, si es mucho más pequeño que ambos y ), significa que las direcciones del gradiente están dispersas pero perpendiculares a ; de modo que las isosuperficies tienden a ser como tubos paralelos a ese vector. Esta situación ocurre, por ejemplo, cuando p se encuentra en una característica similar a una línea delgada, o en una esquina aguda del límite entre dos regiones con valores contrastantes.
Por último, si el elipsoide es aproximadamente esférico (es decir, si ), significa que las direcciones de gradiente en la ventana están distribuidas más o menos uniformemente, sin una preferencia marcada; de modo que la función es mayoritariamente isótropa en ese entorno. Esto sucede, por ejemplo, cuando la función tiene simetría esférica en el entorno de p . En particular, si el elipsoide degenera a un punto (es decir, si los tres valores propios son cero), significa que es constante (tiene gradiente cero) dentro de la ventana.
El tensor de estructura es una herramienta importante en el análisis del espacio de escala . El tensor de estructura multiescala (o matriz de segundo momento multiescala ) de una función es, en contraste con otras características del espacio de escala de un parámetro, un descriptor de imagen que se define sobre dos parámetros de escala. Un parámetro de escala, denominado escala local , es necesario para determinar la cantidad de presuavizado al calcular el gradiente de la imagen . Otro parámetro de escala, denominado escala de integración , es necesario para especificar la extensión espacial de la función de ventana que determina los pesos para la región en el espacio sobre la que se acumulan los componentes del producto externo del gradiente por sí mismo .
Más precisamente, supongamos que es una señal de valor real definida sobre . Para cualquier escala local , sea una representación multiescala de esta señal dada por donde representa un núcleo de pre-suavizado. Además, sea denotar el gradiente de la representación del espacio de escala . Entonces, la matriz de segundo momento/tensor de estructura multiescala se define por [7] [11] [12] Conceptualmente, uno puede preguntarse si sería suficiente usar cualquier familia autosimilar de funciones de suavizado y . Sin embargo, si uno aplicara ingenuamente, por ejemplo, un filtro de caja, entonces podrían ocurrir fácilmente artefactos no deseables. Si uno quiere que el tensor de estructura multiescala se comporte bien sobre escalas locales crecientes y escalas de integración crecientes , entonces se puede demostrar que tanto la función de suavizado como la función de ventana tienen que ser gaussianas. [7] Las condiciones que especifican esta unicidad son similares a los axiomas del espacio de escala que se utilizan para derivar la unicidad del núcleo gaussiano para un espacio de escala gaussiano regular de intensidades de imagen.
Existen diferentes formas de manejar las variaciones de escala de dos parámetros en esta familia de descriptores de imágenes. Si mantenemos fijo el parámetro de escala local y aplicamos versiones cada vez más amplias de la función de ventana incrementando solo el parámetro de escala de integración, entonces obtenemos una verdadera representación del espacio de escala formal de los datos direccionales calculados en la escala local dada . [7] Si acoplamos la escala local y la escala de integración mediante una escala de integración relativa , de modo que entonces para cualquier valor fijo de , obtenemos una variación de un parámetro autosimilar reducida, que se utiliza frecuentemente para simplificar algoritmos computacionales, por ejemplo en detección de esquinas , detección de puntos de interés , análisis de texturas y coincidencia de imágenes . Al variar la escala de integración relativa en dicha variación de escala autosimilar, obtenemos otra forma alternativa de parametrizar la naturaleza multiescala de los datos direccionales obtenidos al incrementar la escala de integración.
Se puede realizar una construcción conceptualmente similar para señales discretas, con la integral de convolución reemplazada por una suma de convolución y con el núcleo gaussiano continuo reemplazado por el núcleo gaussiano discreto : Al cuantificar los parámetros de escala y en una implementación real, se suele utilizar una progresión geométrica finita, con i que varía de 0 a un índice de escala máximo m . Por lo tanto, los niveles de escala discretos tendrán ciertas similitudes con la pirámide de imágenes , aunque no necesariamente se puede utilizar un submuestreo espacial para preservar datos más precisos para las etapas de procesamiento posteriores.
Los valores propios del tensor de estructura juegan un papel importante en muchos algoritmos de procesamiento de imágenes, para problemas como la detección de esquinas , la detección de puntos de interés y el seguimiento de características . [9] [13] [14] [15] [16] [17] [18] El tensor de estructura también juega un papel central en el algoritmo de flujo óptico de Lucas-Kanade y en sus extensiones para estimar la adaptación de forma afín ; [11] donde la magnitud de es un indicador de la confiabilidad del resultado calculado. El tensor se ha utilizado para el análisis del espacio de escala , [7] la estimación de la orientación de la superficie local a partir de señales monoculares o binoculares, [12] la mejora de huellas dactilares no lineales, [19] el procesamiento de imágenes basado en difusión , [20] [21] [22] [23] y varios otros problemas de procesamiento de imágenes. El tensor de estructura también se puede aplicar en geología para filtrar datos sísmicos . [24]
El tensor de estructura tridimensional se ha utilizado para analizar datos de vídeo tridimensionales (vistas como una función de x , y y el tiempo t ). [4] Si en este contexto se apunta a descriptores de imágenes que sean invariantes bajo transformaciones galileanas , para hacer posible la comparación de mediciones de imágenes que se han obtenido bajo variaciones de velocidades de imagen desconocidas a priori , es, sin embargo, desde un punto de vista computacional preferible parametrizar los componentes en la matriz del tensor de estructura/segundo momento usando la noción de diagonalización galileana [25] donde denota una transformación galileana del espacio-tiempo y una rotación bidimensional sobre el dominio espacial, en comparación con el uso mencionado anteriormente de valores propios de un tensor de estructura 3-D, que corresponde a una descomposición de valores propios y una rotación tridimensional (no física) del espacio-tiempo. Sin embargo, para obtener una verdadera invariancia galileana, también es necesario adaptar la forma de la función de ventana espacio-temporal, [25] [26] correspondiente a la transferencia de adaptación de forma afín [11] de datos de imagen espaciales a datos de imagen espacio-temporales. En combinación con los descriptores de histogramas espacio-temporales locales, [27] estos conceptos juntos permiten el reconocimiento invariante galileano de eventos espacio-temporales. [28]