Correlación de fase versus correlación cruzada normalizada

8

Lo pregunté en Mathematics Stack Exchange, pero dado que este tipo de mentiras se encuentra en el límite de las preguntas que normalmente se hacen allí y las preguntas que ves aquí, también las haré aquí. (A partir de ahora, no ha habido actividad en mi pregunta allí).

En el análisis bidimensional de señales discretas (específicamente el procesamiento de imágenes), una definición que encontré para la correlación cruzada normalizada entre dos imágenes, ambas de tamaño M×N g1(x,y) y g2(x,y) es:

r1=(g1g2)(x,y)Normalized=m=0M1n=0N1[g1(m,n)g1¯][g2(x+m,y+n)g2¯]m=0M1n=0N1[g1(m,n)g1¯]2[g2(x+m,y+n)g2¯]2

Supuestamente, esto se realiza mediante la función normxcorr2en la Caja de herramientas de procesamiento de señales en MATLAB, aunque utiliza el algoritmo de correlación cruzada normalizada rápida de JP Lewis. En comparación con el método de correlación de fase (con espectro de potencia cruzada normalizado) sugerido por Kuglin y Hines:

G1(u,v)=F{g1(x,y)}G2(u,v)=F{g2(x,y)}r2=F1{G1(u,v)G2(u,v)|G1(u,v)G2(u,v)|}

Sin la normalización por elementos antes de la transformada inversa de Fourier, r2es lo mismo que la correlación cruzada no normalizada, con la excepción de que la transformada de Fourier supone que la señal se repite en el dominio espacial. Está claro quer1r2 mirando las "imágenes" de correlación resultantes en MATLAB, que esperaba, pero r2 casi parece discontinuo de las imágenes en las que estoy probando el método, mientras que r1 siempre resulta mucho más suave (el resultado r2 las imágenes son siempre "irregulares", r1no son). ¿Por qué es esto? Supongo que tiene algo que ver con la normalización por elementos en el dominio de Fourier, lo que supongo que es básicamente como recortar la señal de alguna manera, pero no sé cómo concluir esto a partir de las propiedades conocidas de la (inversa) Transformada de Fourier, si esto es incluso una suposición correcta.

Aquí hay ejemplos de las diferencias (r2ha sido amplificado para mostrar más claramente la diferencia en las características de las imágenes). Se realizan en las mismas 2 imágenes.

  • r1: Correlación cruzada normalizada

ingrese la descripción de la imagen aquí

  • r2: Correlación de fase

ingrese la descripción de la imagen aquí

Resumiendo mi pregunta: ¿Por qué es r2 tan "irregular", mientras r1 ¿no es?

Eric
fuente
1
Considere hacer su pregunta en un sitio ya que la publicación cruzada no es bien recibida en SE. Lea aquí
Gilles
Gracias por señalar eso, no sabía que estaba mal visto aquí. Sin embargo, estoy en conflicto. No sé qué sitio (de los dos) sería el más apropiado. En su enlace, la respuesta principal dice que "Se ha demostrado que muchas preguntas que las personas han etiquetado como sitios cruzados aplicables son válidas en un solo sitio si se escriben correctamente y se piensan". No sé cómo hacer que mi pregunta sea más adecuada para un sitio u otro sin simplemente retener información. La única opción que se me ocurre es eliminarlo de un sitio y pasar al otro, lo que parece una solución extraña.
Eric
para r2, intente degradar g1y g2luego aplique el fft. r1y r2debería ser lo mismo. uno para el dominio espacial y el otro para el dominio de frecuencia, pero equivalente, excepto una normalización por las normas.
Lee

Respuestas:

1

Encontré este enigma en un caso unidimensional, que es cómo lo presentaré. Considere dos señales que desea correlacionar. La señal 1 (figura a) es una onda sinusoidal amortiguada y la señal 2 (figura b) es dos instancias de la señal 1 pero con amplitudes ligeramente diferentes.

ingrese la descripción de la imagen aquí

Ahora considere usar una correlación cruzada normalizada como la definió en su pregunta (figura c). El resultado es una función suavemente oscilante que tiene una amplitud de pico cuando el pico de la señal 1 y el pico de la señal 2 están alineados. Por el contrario, la función de correlación cruzada normalizada tiene canales cuando el pico de la señal 1 se alinea con los canales de la señal 2 .

Luego considere usar una correlación de fase como la definió en su pregunta (figura d). Una correlación de fase implica una división del valor absoluto (o amplitud) de las dos señales. En un caso 1D que es un vector y en un caso 2d, como su pregunta es, eso es una matriz. En cualquier caso, los valores en ese divisor pueden estar muy cerca de cero y cuando divide por algo cerca de cero, obtiene picos o discontinuidades .

Existen varias estrategias en torno a esto e incluyen el filtrado de paso bajo de las señales de entrada o la función de correlación de fase. Esta página sobre desbordamiento de pila podría ser útil: /programming/30630632/performing-a-phase-correlation-with-fft-in-r

Alex Witsil
fuente