Documentos de Académico
Documentos de Profesional
Documentos de Cultura
com
CAPÍTULO 4
Filtros lineales
u∑ + = j +∑k
= ikv
1
Rij = Fuv.
(2k + 1)2
u = i − kv = j − k
Los pesos en este ejemplo son simples (cada píxel está ponderado por la misma constante), pero
podríamos usar un conjunto de pesos más interesante. Por ejemplo, podríamos usar un conjunto de
pesos que fuera grande en el centro y cayera bruscamente a medida que aumentaba la distancia
desde el centro para modelar el tipo de suavizado que ocurre en un sistema de lentes desenfocado.
4.1.1 Convolución
Introducimos algo de notación en este punto. El patrón de pesos utilizado para un filtro
lineal se suele denominar elnúcleo del filtro. El proceso de aplicación del filtro
generalmente se conoce comocircunvolución. Hay una trampa: por razones que
aparecerán más adelante (Sección 4.2.1), es conveniente escribir el proceso de una manera
no obvia. En particular, dado un núcleo de filtroH la convolución del kernel con imagen
107
Sección 4.1 Filtros lineales y convolución 108
Este proceso define la convolución: decimos que H ha sido convolucionado con F ceder
R. Debería mirar de cerca esta expresión; la "dirección" de la variable ficticia
u (resp. v) se ha invertido en comparación con la correlación. Esto es importante porque si
olvidas que está ahí, calculas la respuesta incorrecta. La razón de la inversión surge de la
derivación de la Sección 4.2.1. Evitamos cuidadosamente insertar el rango de la suma; en
efecto, asumimos que la suma se encuentra en un rango suficientemente grande detu y v que
se tengan en cuenta todos los valores distintos de cero. Además, asumimos que cualquier valor
que no se haya especificado es cero; esto significa que podemos modelar el núcleo como un
pequeño bloque de valores distintos de cero en un mar de ceros. Usamos esta convención
común con regularidad en lo que sigue.
FIGURA 4.1: Aunque un promedio local uniforme puede parecer un buen modelo de desenfoque, genera efectos
que normalmente no se ven al desenfocar una lente. Las imágenes de arriba comparan los efectos de un promedio
local uniforme con el promedio ponderado. La imagen en elizquierda muestra una vista de la hierba; en elcentrar,
el resultado de difuminar esta imagen utilizando un modelo local uniforme; y en elDerecha, el resultado de
difuminar esta imagen usando un conjunto de pesos gaussianos. El grado de desenfoque en cada caso es
aproximadamente el mismo, pero el promedio uniforme produce un conjunto de barras verticales y horizontales
estrechas, un efecto que a menudo se conoce comoEl sonar. Los pequeños recuadros muestran los pesos
utilizados para difuminar la imagen, renderizados ellos mismos como una imagen; los puntos brillantes
representan valores grandes y los puntos oscuros representan valores pequeños (en este ejemplo, los valores más
pequeños son cero).
Reemplazar cada píxel con un promedio no ponderado calculado sobre una región
fija centrada en el píxel es lo mismo que la convolución con un núcleo que es un bloque
Sección 4.1 Filtros lineales y convolución 109
de unos multiplicados por una constante. Puede (y debe) establecer este punto prestando mucha
atención al rango de la suma. Este proceso es un mal modelo de desenfoque; su salida no se parece a
la de una cámara desenfocada (Figura 4.1). La razón es clara. Suponga que tenemos una imagen en
la que todos los puntos menos el punto central son cero y el punto central es uno. Si difuminamos
esta imagen formando un promedio no ponderado en cada punto, el resultado parece una caja
pequeña y brillante, pero esto no es lo que hacen las cámaras desenfocadas. Queremos un proceso
de desenfoque que lleve un pequeño punto brillante a una región de desenfoque circularmente
simétrica, más brillante en el centro que en los bordes y que se desvanezca lentamente hacia la
oscuridad. Como sugiere la Figura 4.1, un conjunto de pesos de esta forma produce un modelo de
desenfoque mucho más convincente.
0.4
0,35
0,3
0,25
0,2
0,15
0,1
0,05
0
5
0
0
-5 -5
FIGURA 4.2: El kernel gaussiano simétrico en 2D. Esta vista muestra un kernel escalado para que su
suma sea igual a uno; esta escala se omite con bastante frecuencia. El kernel mostrado tiene
σ = 1. La convolución con este núcleo forma un promedio ponderado que enfatiza el punto en el
centro de la ventana de convolución e incorpora poca contribución de aquellos en el límite. Observe
cómo el gaussiano es cualitativamente similar a nuestra descripción de la función de dispersión de
puntos de la imagen borrosa: es circularmente simétrico, tiene la respuesta más fuerte en el centro y
desaparece cerca de los límites.
El término constante hace que la integral de todo el plano sea igual a uno y, a menudo, se
ignora en las aplicaciones de suavizado. El nombre proviene del hecho de que este núcleo tiene
la forma de la densidad de probabilidad para una variable aleatoria 2D normal (o gaussiana)
con una covarianza particular.
Este núcleo de suavizado forma un promedio ponderado que pondera los píxeles en
su centro con mucha más fuerza que en sus límites. Se puede justificar este enfoque
cualitativamente: el suavizado suprime el ruido al hacer cumplir el requisito de que los
píxeles se parezcan a sus vecinos. Al reducir la ponderación de los vecinos distantes en el
promedio, podemos garantizar que el requisito de que un píxel se parezca a sus vecinos se
imponga con menos fuerza a los vecinos lejanos. Un análisis cualitativo da lo siguiente:
• Si la desviación estándar del gaussiano es muy pequeña, digamos, más pequeña que un
píxel, el suavizado tendrá poco efecto porque los pesos de todos los píxeles fuera del
centro serán muy pequeños.
• Para una desviación estándar mayor, los píxeles vecinos tendrán mayores pesos en el
promedio ponderado, lo que a su vez significa que el promedio estará fuertemente
sesgado hacia un consenso de los vecinos. Esta será una buena estimación del valor de
un píxel y el ruido desaparecerá en gran medida a costa de algo de desenfoque.
• Finalmente, un kernel que tiene una gran desviación estándar hará que gran parte de los
detalles de la imagen desaparezcan, junto con el ruido.
La figura 4.3 ilustra estos fenómenos. Debe notar que el suavizado gaussiano puede
ser efectivo para suprimir el ruido.
En las aplicaciones, un kernel de suavizado discreto se obtiene construyendo un
2k + 1 × 2k + 1 matriz cuyo yo, jel valor es
( )
1 ((yo - k - 1)2 + (j - k - 1)2)
Hij = 2πσ2 exp - .
2σ2
Observe que se debe tener cuidado con σ. Si σ es demasiado pequeño, solo un elemento
de la matriz tendrá un valor distinto de cero. Si σ es grande, entoncesk debe ser grande
también; de lo contrario, ignoramos las contribuciones de los píxeles que deberían contribuir
con un peso sustancial.
∂h
≈ hyo +1,j - hyo1,j.
∂x
Esto es lo mismo que una convolución, donde el núcleo de convolución es
⎧ ⎫
⎨0 0 0⎬
H= 1 0 - 1.
⎩ ⎭
0 0 0
Sección 4.1 Filtros lineales y convolución 111
no
suavizado
σ = 1 píxel
σ = 2 píxeles
FIGURA 4.3: los fila superior muestra imágenes de un nivel de gris medio constante corrompido por
ruido gaussiano aditivo. En este modelo de ruido, a cada píxel se le agrega una variable aleatoria
normal de media cero. El rango de valores de píxeles es de cero a uno, por lo que la desviación
estándar del ruido en la primera columna es aproximadamente 1/20 del rango completo. losfila
central muestra el efecto de suavizar la imagen correspondiente en la fila superior con un filtro
gaussiano de σ un píxel. Observe la molesta sobrecarga de notación aquí; hay ruido gaussiano y
filtros gaussianos, y ambos tienen σ. Uno usa el contexto para mantener estos dos rectos, aunque
esto no siempre es tan útil como podría ser, porque los filtros gaussianos son particularmente
buenos para suprimir el ruido gaussiano. Esto se debe a que los valores de ruido en cada píxel son
independientes, lo que significa que el valor esperado de su promedio será la media del ruido. los
fila inferior muestra el efecto de suavizar la imagen correspondiente en la fila superior con un
filtro gaussiano de σ dos píxeles.
Tenga en cuenta que este núcleo podría interpretarse como una plantilla: da una gran
respuesta positiva a una configuración de imagen que es positiva en un lado y negativa en
el otro, y una gran respuesta negativa a la imagen reflejada.
Como sugiere la figura 4.4, las diferencias finitas dan una estimación muy insatisfactoria de la
derivada. Esto se debe a que las diferencias finitas responden fuertemente (es decir, tienen una
salida de gran magnitud) a cambios rápidos, y los cambios rápidos son característicos del ruido. A
grandes rasgos, esto se debe a que los píxeles de la imagen tienden a parecerse entre sí. Por
ejemplo, si hubiéramos comprado una cámara de descuento con algunos píxeles que estuvieran
atascados en blanco o negro, la salida del proceso de diferencias finitas sería grande en esos
Sección 4.2 Shift Invariant Linear Systems 112
FIGURA 4.4: los fila superior muestra estimaciones de derivadas obtenidas por diferencias finitas. La
imagen en elizquierda muestra un detalle de una imagen de una cebra. loscentrar La imagen
muestra la derivada parcial en el y-dirección, que responde fuertemente a las rayas horizontales y
débilmente a las verticales, y la Derecha La imagen muestra la derivada parcial en el
X-dirección — que responde fuertemente a las rayas verticales y débilmente a las horizontales.
Sin embargo, las diferencias finitas responden fuertemente al ruido. La imagen encentro
izquierda muestra un detalle de una imagen de una cebra; la siguiente imagen de la fila se
obtiene agregando un número aleatorio con media cero y distribución normal (σ = 0.03; el valor
más oscuro en la imagen es 0 y el más claro 1) a cada píxel; y la tercera imagen se obtiene
agregando un número aleatorio con media cero y distribución normal (σ = 0.09) a cada píxel. los
fila inferior muestra la derivada parcial en el X-dirección de la imagen en la cabecera de la fila.
Observe con qué fuerza el proceso de diferenciación enfatiza el ruido de la imagen; las cifras
derivadas se ven cada vez más granuladas. En las cifras derivadas, un nivel de gris medio es un valor
cero, un nivel de gris oscuro es un valor negativo y un nivel de gris claro es un valor positivo.
píxeles porque son, en general, sustancialmente diferentes de sus vecinos. Todo esto
sugiere que alguna forma de suavizado es apropiada antes de la diferenciación; los
detalles aparecen en la Sección 5.1.
La convolución representa el efecto de una gran clase de sistema. En particular, la mayoría de los
sistemas de imágenes tienen, en una buena aproximación, tres propiedades importantes:
R (f + g) = R (f) + R (g);
Sección 4.2 Shift Invariant Linear Systems 113
R (kf) = kR (f).
Un dispositivo que es lineal e invariante de desplazamiento se conoce como desplazamiento del sistema lineal invariante,
o a menudo solo como un sistema.
La respuesta de un sistema lineal invariante de desplazamiento a un estímulo se obtiene
por convolución. Demostramos esto primero para sistemas que toman entradas discretas,
digamos, vectores o matrices, y producen salidas discretas. Luego usamos esto para describir el
comportamiento de sistemas que operan en funciones continuas de la línea o el plano, y de
este análisis obtenemos algunos datos útiles sobre la convolución.
Este es un vector de datos que tiene un 1 en el lugar cero y ceros en el resto. Defina
una operación de desplazamiento, que lleve un vector a una versión desplazada de
ese vector. En particular, el vectorCambio(F, I) tiene, como su jth componente, el j - yo
th componente de F. Por ejemplo, Cambio(mi0, 1) tiene un cero en el primer
componente. Ahora podemos escribir ∑
f= FICambio(mi0, I).
I
Sección 4.2 Shift Invariant Linear Systems 114
R (F).
R (kf) = kR (F).
∑I
= R (fICambio(mi0, I))
I
∑
= FIR (Cambio(mi0, I))
I
∑
= FICambio(R (mi0), I)).
I
Esto significa que para obtener la respuesta del sistema a cualquier vector de datos, necesitamos
conocer solo su respuesta a mi0. Esto generalmente se llama el sistemarespuesta impulsiva.
Suponga que la respuesta al impulso se puede escribir como gramo. Tenemos
∑
R (f) = FICambio(gramo, i) = gramo ∗ F.
I
Esto define una operación, la versión discreta 1D de convolución, que escribimos con
un ∗.
Todo esto está muy bien, pero no nos da una expresión particularmente
fácil para la salida. Si consideramos eljel elemento de R (F), que escribimos
como RI, Debemos tener ∑
Rj = gramo F , j−i I
... 0 0 0 ...
mi00 =. . . 0 1 0 ...
... 0 0 0 ...
Si GRAMO es la respuesta del sistema a este estímulo, las mismas consideraciones que para la
convolución 1D producen una respuesta a un estímulo F, es decir,
∑
Rij = GRAMOyo − u, j − vFuv,
u, v
Nuestro sistema toma una función de una dimensión y devuelve una función de una
dimensión. Nuevamente, escribimos la respuesta del sistema a alguna entradaf (x) como R (f);
cuando necesitamos enfatizar que F es una función, escribimos R (f (x)). La respuesta también
es una función; ocasionalmente, cuando necesitamos enfatizar este hecho, escribimos
R (f) (u). Podemos expresar la propiedad de linealidad en esta notación escribiendo
R (kf) = kR (f)
(por k alguna constante) y la propiedad de invariancia de desplazamiento mediante la introducción de una Cambio
operador, que lleva funciones a funciones:
Cambio(f, c) = f (u - c).
Con este Cambio operador, podemos escribir la propiedad de invariancia de desplazamiento como
El valor de cajaϵ(ϵ /2) no importa para nuestros propósitos. La función de entrada esf (x).
Construimos una cuadrícula uniforme de puntos XI, dónde Xyo +1 - XI = ϵ. Ahora construimos
un vector F cuyo Ith componente (escrito FI) es f (xI). Este vector se puede utilizar para
representar la función. ∑
Obtenemos una representación aproximada de F por I FICambio(cajaϵ, XI). Nosotros
aplicar esta entrada a un sistema lineal invariante de desplazamiento; la respuesta es una suma ponderada
de respuestas desplazadas a funciones de caja. Esto significa que
()
∑ ∑
R FICambio(cajaϵ, XI) = R (fICambio(cajaϵ, XI))
I I
∑
= FIR (Cambio(cajaϵ, XI))
I
∑ cajaϵ ϵ), X )
= FICambio(R ( I
I
ϵ
∑
= FICambio(R ( cajaϵ ), XI).ϵ
I
ϵ
Hasta ahora, todo ha seguido nuestra derivación para funciones discretas. Ahora
tenemos algo que parece una integral aproximada si ϵ→ 0.
Introducimos un nuevo dispositivo, llamado función δ, para tratar el término cajaϵ/ ϵ.
Definir
cajaϵ(X)
Dϵ(x) = .
ϵ
La función δ es:
δ (x) = lim Dϵ(X).
ϵ →0
No intentamos evaluar este límite, por lo que no necesitamos discutir el valor de δ (0).
Una característica interesante de esta función es que, para sistemas lineales invariantes de
desplazamiento prácticos, la respuesta del sistema a una función δ existe y tienesoporte
compactoes decir, es cero excepto en un número finito de intervalos de longitud finita). Por
ejemplo, un buen modelo de una función δ en 2D es una luz extremadamente pequeña y
extremadamente brillante. Si hacemos la luz más pequeña y brillante mientras nos aseguramos
de que la energía total sea constante, esperamos ver un punto pequeño pero finito debido al
desenfoque de la lente. La función δ es el análogo natural demi0 en el caso continuo.
Esto significa que la expresión de la respuesta del sistema,
∑
FICambio(R ( cajaϵ), x)I ϵ,
I
ϵ
donde hemos escrito R (δ) -que generalmente se llama respuesta impulsiva del sistema,
como gramo y han omitido los límites de la integral. Estas integrales podrían ser de:∞ para
∞, pero podrían aplicarse límites más estrictos si gramo y h tienen soporte compacto. Esta
operación se llamaconvoluciónnuevamente), y escribimos la expresión anterior como
R (f) = (g ∗ F).
La convolución es conmutativo sentido
Esta última propiedad significa que podemos encontrar un sistema lineal invariante de
desplazamiento único que se comporta como la composición de dos sistemas diferentes. Esto será
útil cuando analicemos el muestreo.
cajaϵ2(x, y)
Dϵ(x, y) = .
ϵ2
La función δ es el límite de Dϵ(x, y) funcionar como ϵ → 0. Finalmente, hay más términos en
la suma. Toda esta actividad da como resultado la expresión
∫∫
R (h) (x, y) = g (x - x′, y - y′) h (x′, y′) dxdy
donde hemos usado dos ∗s para indicar una convolución bidimensional. La convolución en
2D esconmutativo significa que
En sistemas prácticos, no podemos tener arreglos infinitos de datos. Esto significa que
cuando calculamos la convolución, tenemos que lidiar con los bordes de la imagen; en los
bordes, hay ubicaciones de píxeles donde calcular el valor de la imagen convolucionada
requiere valores de imagen que no existen. Hay una variedad de estrategias que podemos
adoptar:
• Ignore estas ubicaciones, lo que significa que solo informamos los valores para los que
existe cada ubicación de imagen requerida. Esto tiene la ventaja de la probidad, pero la
desventaja de que la salida es menor que la entrada. Las convoluciones repetidas
pueden hacer que la imagen se encoja drásticamente.
• Rellena la imagen con valores constantes, lo que significa que, cuando miramos los
valores de salida más cercanos al borde de la imagen, la medida en que la salida de
la convolución depende de la imagen desciende. Este es un truco conveniente
porque podemos asegurarnos de que la imagen no se encoja, pero tiene la
desventaja de que puede crear la apariencia de gradientes sustanciales cerca del
límite.
Hemos utilizado el truco de pensar en una señal. g (x, y) como una suma ponderada de un número grande
(o infinito) de funciones de caja pequeñas (o infinitamente pequeñas). Este modelo enfatiza que una señal
es un elemento de un espacio vectorial. Las funciones de caja forman una base conveniente y los pesos son
coeficientes sobre esta base. Necesitamos una nueva técnica para lidiar con dos problemas relacionados
que hasta ahora quedan abiertos:
• Aunque está claro que una versión de imagen discreta no puede representar la
información completa en una señal, todavía no hemos indicado qué se pierde.
• Está claro que no podemos encoger una imagen simplemente tomando cada kEste píxel
podría convertir una imagen de tablero de ajedrez en todo blanco o negro, y nos gustaría
saber cómo encoger una imagen de forma segura.
Todos estos problemas están relacionados con la presencia de cambios rápidos en una imagen. Por
ejemplo, al encoger una imagen es más probable que se pierdan efectos rápidos porque podrían deslizarse
entre muestras; de manera similar, la derivada es grande en cambios rápidos.
Estos efectos pueden ser estudiados por un cambio de base. Cambiamos la base para que sea
un conjunto de sinusoides y representamos la señal como una suma ponderada infinita de un
número infinito de sinusoides. Esto significa que los cambios rápidos en la señal son obvios, porque
corresponden a grandes cantidades de sinusoides de alta frecuencia en la nueva base.
Sección 4.3 Frecuencia espacial y transformadas de Fourier 119
FIGURA 4.5: El componente real de los elementos base de Fourier mostrados como imágenes de intensidad.
El punto más brillante tiene valor uno y el punto más oscuro tiene valor cero. El dominio es
[-1, 1] × [-1, 1], con el origen en el centro de la imagen. Sobre elizquierda, (u, v) = (0, 0,4); en
elcentro, (u, v) = (1, 2); y en elDerecha (u, v) = (10, -5). Estos son sinusoides de varias
frecuencias y orientaciones descritas en el texto.
∫ ∫∞
F(g (x, y)) (u, v) = g (x, y) e−i2π (ux + vy)dxdy.
-∞
Suponga que las condiciones técnicas apropiadas son verdaderas para que esta integral
exista. Es suficiente para todos los momentos degramo ser finito; se dispone de una variedad
de otras condiciones posibles (Bracewell 1995). El proceso toma una función valorada compleja
dex, y y devuelve una función valorada compleja de u, v (las imágenes son funciones de valor
complejo con componente imaginario cero).
Por el momento, arregla tu y v, y consideremos el significado del valor de la
transformación en ese punto. Lo exponencial se puede reescribir
mi−i2π (ux + vy) = cos (2π (ux + vy)) + i pecado (2π (ux + vy)).
Estos términos son sinusoides en el x, y plano, cuya orientación y frecuencia están dadas
por u, v. Por ejemplo, considere el término real, que es constante cuando ux + vy
es constante (es decir, a lo largo de una línea recta en el x, y plano cuya orientación viene dada por
tan θ = v / u). El gradiente de este término es perp √mindicular a las líneas donde ux + vy es
constante, y la frecuencia de la sinusoide es tu2 + v2. Estos sinusoides a menudo se
denominancomponentes de frecuencia espacial; una variedad se ilustra en la Figura 4.5.
La integral debe verse como un producto escalar. Si arreglamostu y v, el valor de
la integral es el producto escalar entre una sinusoide en X y y y la función original.
Esta es una analogía útil porque los productos escalares miden la cantidad de un
vector en la dirección de otro.
De la misma manera, el valor de la transformación en un determinado tu y v puede verse
como la medición de la cantidad de la sinusoide con una frecuencia y orientación determinadas
Sección 4.3 Frecuencia espacial y transformadas de Fourier 120
Linealidad
La transformada de Fourier es lineal:
F(g (x, y) + h (x, y)) = F(g (x, y)) + F(h (x, y))
y
F(kg (x, y)) = kF(g (x, y)).
∫ ∫∞
g (x, y) = F(g (x, y)) (u, v) eI2π (ux + vy)dudv.
-∞
Por lo general, es inconveniente dibujar funciones complejas del plano. Una solución
es trazarFR(gramo) y FI(gramo) por separado; otro es considerar elmagnitud y
fase de las funciones complejas, y trazarlas en su lugar. Estos se denominan entonces
espectro de magnitud y espectro de fase, respectivamente.
El valor de la transformada de Fourier de una función en un determinado u, v el punto
depende de toda la función. Esto es obvio a partir de la definición porque el dominio de la
integral es el dominio completo de la función. Sin embargo, conduce a algunas propiedades
sutiles. Primero, un cambio local en la función (por ejemplo, poner a cero un bloque de puntos)
conducirá a un cambioen cada punto en la transformada de Fourier. Esto significa que la
transformada de Fourier es bastante difícil de usar como representación (por ejemplo,
Sección 4.4 Muestreo y aliasing 121
TABLA 4.1: Una variedad de funciones de dos dimensiones y sus transformadas de Fourier. Esta
tabla se puede utilizar en dos direcciones (con sustituciones apropiadas parau, v y x, y)
porque la transformada de Fourier de la transformada de Fourier de una función es la función. Los lectores
observadores podrían sospechar que los resultados sobre sumas infinitas de funciones δ contradicen la
linealidad de las transformadas de Fourier. Mediante una inspección cuidadosa de los límites, es posible
demostrar que no es así (ver, por ejemplo, Bracewell (1995)). Los lectores observadores también podrían
haber notado que una expresión paraF(
∂y∂f ) se puede obtener combinando dos líneas de esta tabla.
∫ ∫∞
g (x, y) g (x, y) e−i2π (ux + vy)dxdy
-∞
∫ ∫∞
F(g (x, y)) (u, v) eI2π (ux + vy)dudv F(g (x, y)) (u, v)
-∞
δ (x, y) 1
uv
F(f) (u / a, v / b)
f (hacha, por)
ab
∑∞ ∑∞ ∑∞ ∑∞
i = -∞ j = -∞
δ (x - yo, y - j) i = -∞ j = -∞
δ (u - yo, v - j)
podría ser muy difícil saber si un patrón estaba presente en una imagen con solo mirar la
transformada de Fourier). En segundo lugar, los espectros de magnitud de las imágenes
tienden a ser similares. Esto parece ser un hecho de la naturaleza, más que algo que pueda
probarse axiomáticamente. Como resultado, el espectro de magnitud de una imagen es
sorprendentemente poco informativo (consulte la Figura 4.6 para ver un ejemplo).
FIGURA 4.6: La segunda imagen de cada fila muestra el registro del espectro de magnitud de la
primera imagen de la fila; la tercera imagen muestra el espectro de fase escalado de modo que −π es
oscuro y π es claro. Las imágenes finales se obtienen intercambiando los espectros de magnitud.
Aunque este intercambio genera un ruido de imagen sustancial, no afecta sustancialmente la
interpretación de la imagen, lo que sugiere que el espectro de fase es más importante para la
percepción que el espectro de magnitud.
Figura 4.7. El problema tiene que ver con el número de muestras relativas a la función;
podemos formalizar esto con bastante precisión dado un modelo suficientemente poderoso.
4.4.1 Muestreo
Pasar de una función continua, como la irradiancia en la parte posterior de un sistema de
cámara, a una colección de valores en una cuadrícula discreta, como los valores de píxeles
informados por una cámara, se denomina muestreo. Construimos un modelo que nos permite
obtener una noción precisa de lo que se pierde en el muestreo.
muestra1D(f (x)) = F.
FIGURA 4.7: Los dos tableros de ajedrez en el cima ilustrar un procedimiento de muestreo que parece
tener éxito (si lo es o no depende de algunos detalles que trataremos más adelante). Los círculos
grises representan las muestras; si hay suficientes muestras, las muestras representan el detalle de
la función subyacente. Los procedimientos de muestreo que se muestran en lafondo son
inequívocamente infructuosos; las muestras sugieren que hay menos controles que los que hay. Esto
ilustra dos fenómenos importantes: primero, los esquemas de muestreo exitosos toman muestras de
datos con suficiente frecuencia; y en segundo lugar, los esquemas de muestreo fallidos hacen que la
información de alta frecuencia aparezca como información de baja frecuencia.
Muestra
1D
FIGURA 4.8: El muestreo en 1D toma una función y devuelve un vector cuyos elementos son valores
de esa función en los puntos muestrales. Para nuestros propósitos, es suficiente que los puntos
muestrales sean valores enteros del argumento. Permitimos que el vector sea de dimensión infinita y
tenga índices tanto negativos como positivos.
Sample2D
FIGURA 4.9: El muestreo en 2D toma una función y devuelve una matriz; de nuevo, permitimos que la
matriz sea de dimensión infinita y que tenga índices tanto negativos como positivos.
debido al efecto omnipresente de la televisión; Las pantallas de televisión tienen una relación de
aspecto de 4: 3 (ancho: alto). Las cámaras a menudo se adaptan a este efecto espaciando los puntos
de muestra ligeramente más separados horizontalmente que verticalmente (en la jerga, tienen
píxeles no cuadrados).
Sección 4.4 Muestreo y aliasing 125
= af0).
Aquí hemos utilizado la idea de una integral como el límite de una suma de pequeñas tiras.
Un modelo continuo apropiado de una señal muestreada consiste en una función δ
en cada punto de muestra ponderada por el valor de la muestra en ese punto. Podemos
obtener este modelo multiplicando la señal muestreada por un conjunto de funciones δ,
una en cada punto de muestra. En una dimensión, una función de esta forma se llama
función de peineporque así es como se ve el gráfico). En dos dimensiones, una función de
esta forma se llamafunción de lecho de uñaspor la misma razón).
Trabajando en 2D y asumiendo que las muestras están en puntos enteros, este
procedimiento obtiene
∑∞ ∑ ∞
muestra2D(f) = f (yo, j) δ (x - yo, y - j)
i = -∞ j =⎧ - ∞
⎫
⎨ ∑ ∑∞ ∞ ⎬
= f (x, y) δ (x - yo, y - j).
⎩ ⎭
i = -∞ j = -∞
Esta función es cero excepto en puntos enteros (porque la función δ es cero excepto en
puntos enteros), y su integral es la suma de los valores de la función en los puntos enteros.
4.4.2 Aliasing
El muestreo implica una pérdida de información. Como muestra esta sección, las muestras
tergiversan una señal muestreada con demasiada lentitud; Los componentes de alta frecuencia
espacial de la señal original aparecen como componentes de baja frecuencia espacial en la señal
muestreada, un efecto conocido comoaliasing.
Sección 4.4 Muestreo y aliasing 126
⎛ ⎧ ⎫⎞
⎨ ∑ ∑∞ ∞ ⎬
F(muestra2D(f (x, y))) = F ⎝f (x, y) δ (x - yo, y - j) ⎠
⎩ ⎭
i = -∞ j = -∞
⎛⎧ ⎫⎞
⎨∑ ∞ ∑∞ ⎬
= F(f (x, y)) ∗ ∗ F ⎝ δ (x - yo, y - j) ⎠
⎩ ⎭
i = -∞ j = -∞
∑∞
= F (u - yo, v - j),
i = -∞
Fourier
Transformar
Señal Magnitud
Espectro
Muestra Copiar y
Cambio
Muestreado Fourier
Señal Transformar Magnitud
Espectro
Recortado por
Precisamente multiplicación
Inverso con filtro de caja
Reconstruido
Fourier
Señal
Transformar Magnitud
Espectro
hizo, no habría nada que pudiéramos hacer al respecto de todos modos; una vez que se ha
muestreado una imagen, se ha producido cualquier aliasing que se vaya a producir y no hay mucho
que podamos hacer al respecto sin un modelo de imagen). Esto significa que la transformada de
Fourier de la imagen muestreada va a consistir en un conjunto de copias de alguna transformada de
Fourier, con centros desplazados a puntos enteros enu, v espacio.
Si volvemos a muestrear esta señal, las copias ahora tienen centros en los puntos medio
enteros en u, v espacio. Esto significa que, para evitar el alias, necesitamos aplicar un filtro que
reduzca fuertemente el contenido de la transformada de Fourier original fuera del rango.
| u | <1/2, |v | <1/2. Eso sí, si reducimos el contenido de la señaldentro en este rango, también
podríamos perder información. Ahora, la transformada de Fourier de un gaussiano es un gaussiano,
y los gaussianos mueren con bastante rapidez. Por lo tanto, si tuviéramos que convolucionar la
imagen con un gaussiano, o multiplicar su transformada de Fourier por un gaussiano, que es
Sección 4.4 Muestreo y aliasing 128
Fourier
Transformar
Señal Magnitud
Espectro
Muestra Copiar y
Cambio
Muestreado Fourier
Señal Transformar Magnitud
Espectro
Recortado por
multiplicación
Inexacto con filtro de caja
Inverso
Reconstruido
Fourier
Señal
Transformar Magnitud
Espectro
FIGURA 4.11: La transformada de Fourier de la señal muestreada consiste en una suma de copias de
la transformada de Fourier de la señal original, desplazadas entre sí por la frecuencia de muestreo.
Ocurren dos posibilidades. Si las copias desplazadas no se cruzan entre sí (como en la Figura 4.10), la
señal original se puede reconstruir a partir de la señal muestreada (simplemente cortamos una copia
de la transformada de Fourier y la transformamos inversamente). Si se cruzan (como en esta figura),
se agrega la región de intersección, por lo que no podemos obtener una copia separada de la
transformada de Fourier y la señal tiene un alias. Esto también explica la tendencia de las frecuencias
espaciales altas a alias a frecuencias espaciales más bajas.
FIGURA 4.12: los fila superior muestra versiones muestreadas de una imagen de una cuadrícula obtenida al
multiplicar dos sinusoides con una frecuencia que aumenta linealmente, una en X y uno en y. Las otras
imágenes de la serie se obtienen volviendo a muestrear por factores de dos sin suavizar (es decir, la
siguiente es una de 128x128, luego una de 64x64, etc., todas escaladas al mismo tamaño). Tenga en cuenta
el alias sustancial; las frecuencias espaciales altas se reducen al alias de las frecuencias espaciales bajas, y la
imagen más pequeña es una representación extremadamente pobre de la imagen grande. losfila inferior
muestra la magnitud de la transformada de Fourier de cada imagen mostrada como un registro para
comprimir la escala de intensidad. El componente constante está en el centro. Observe que la transformada
de Fourier de una imagen remuestreada se obtiene escalando la transformada de Fourier de la imagen
original y luego colocando en mosaico el plano. La interferencia entre copias de la transformada de Fourier
original significa que no podemos recuperar su valor en algunos puntos; este es el mecanismo subyacente
al alias.
frecuencias espaciales más altas: la banda de parada. Es posible diseñar filtros de paso bajo que sean
significativamente mejores que los gaussianos. El proceso de diseño implica un compromiso
detallado entre los criterios de ondulación (¿qué tan plana es la respuesta en la banda de paso y la
banda de parada?) Y la caída: ¿con qué rapidez la respuesta cae a cero y permanece allí? Los pasos
básicos para volver a muestrear una imagen se dan en el algoritmo 4.1.
FIGURA 4.13: Cima: Versiones remuestreadas de la imagen de la Figura 4.12, nuevamente por factores de
dos, pero esta vez cada imagen se suaviza con un gaussiano de σ un píxel antes de volver a muestrear. Este
filtro es un filtro de paso bajo y, por lo tanto, suprime los componentes de alta frecuencia espacial,
reduciendo el alias.Fondo: El efecto del filtro de paso bajo se ve fácilmente en estas imágenes de
logmagnitud; el filtro de paso bajo suprime los componentes de alta frecuencia espacial para que los
componentes interfieran menos, para reducir el aliasing.
FIGURA 4.14: Cima: Versiones remuestreadas de la imagen de la Figura 4.12, nuevamente por factores de
dos, pero esta vez cada imagen se suaviza con un gaussiano de σ dos píxeles antes del remuestreo. Este
filtro suprime los componentes de alta frecuencia espacial de forma más agresiva que el de la Figura 4.13.
Fondo: El efecto del filtro de paso bajo se ve fácilmente en estas imágenes de magnitud logarítmica; el filtro
de paso bajo suprime los componentes de alta frecuencia espacial para que los componentes interfieran
menos, para reducir el aliasing.
Sección 4.5 Filtros como plantillas 131
FIGURA 4.15: Los núcleos de filtro se parecen a los efectos que pretenden detectar. Sobre elizquierda, una
derivada suavizada del filtro gaussiano que busca grandes cambios en el X-dirección (como una mancha
oscura junto a una mancha clara); sobre elDerecha, una derivada suavizada del filtro gaussiano que busca
grandes cambios en el y-dirección.
Por lo general, los filtros destinados a dar una respuesta fuerte a un patrón se
parecen a ese patrón (Figura 4.15). Este es un resultado geométrico simple.
Recuerde de la Sección 4.1.1 que, para GRAMO, el núcleo de algún filtro lineal, la respuesta de
este filtro a una imagen H es dado por
∑
Rij = GRAMOyo − u, j − vHuv.
u, v
los elementos asociados están en el mismo componente. Al insertar ceros según sea necesario,
podemos asegurarnos de que estos dos vectores tengan la misma dimensión. Una vez hecho esto, el
proceso de multiplicar elementos asociados y sumar es exactamente el mismo que tomar un
producto escalar.
Esta es una analogía poderosa porque este producto escalar, como cualquier otro, alcanza su
valor más grande cuando el vector que representa la imagen es paralelo al vector que representa el
núcleo del filtro. Esto significa que un filtro responde con más fuerza cuando encuentra un patrón de
imagen que se parece al filtro. La respuesta de un filtro se vuelve más fuerte a medida que una
región se vuelve más brillante también.
Ahora considere la respuesta de la imagen a un filtro en algún otro punto. Nada
significativo de nuestro modelo ha cambiado. Nuevamente, podemos escanear la imagen en un
vector y el núcleo del filtro en otro vector, de modo que los elementos asociados se encuentren
en los mismos componentes. Nuevamente, el resultado de aplicar este filtro es un producto
escalar. Hay dos formas útiles de pensar en este producto escalar.
Sería bueno tener sistemas que pudieran responder a los gestos humanos. Por ejemplo,
puede señalar la luz para encender las luces de la habitación, señalar el aire acondicionado
para cambiar la temperatura de la habitación o hacer un gesto apropiado a un político
molesto en la televisión para cambiar de canal. En las aplicaciones de consumo típicas,
existen límites bastante estrictos para la cantidad de cálculo disponible, lo que significa
que es esencial que el sistema de reconocimiento de gestos sea simple. Sin embargo,
estos sistemas también suelen ser bastante limitados en lo que deben hacer.
Controlando la Televisión
Por lo general, una interfaz de usuario está en algún estado, tal vez se muestra un menú, y
luego ocurre un evento, tal vez se presiona un botón en un control remoto. Este evento hace que la
interfaz cambie de estado (por ejemplo, se resalta un nuevo elemento del menú) y todo el proceso
continúa. En algunos estados, algunos eventos hacen que el sistema realice alguna acción, como
cambiar de canal. Todo esto significa que una máquina de estados es un modelo natural para una
interfaz de usuario.
Una forma de que la visión se adapte a este modelo es proporcionar eventos. Esto es
bueno porque generalmente hay pocos tipos diferentes de eventos y sabemos qué tipos
de eventos deberían preocupar al sistema en cualquier estado en particular. Como
resultado, el sistema de visión necesita determinar solo si no ha ocurrido nada o uno de
los pocos tipos de eventos conocidos. A menudo es posible construir sistemas que
cumplan con estas limitaciones.
Se requiere un conjunto relativamente pequeño de eventos para simular un control remoto;
uno necesita eventos que parezcan presionar un botón (por ejemplo, para encender o apagar la
televisión), y eventos que se vean como el movimiento del puntero (por ejemplo, para aumentar el
volumen; también es posible hacer esto con botones). Con estos eventos, la televisión se puede
encender y se puede navegar por un sistema de menú en pantalla.
Encontrar manos
Hombre libre et al. (1998) produjo una interfaz donde una mano abierta gira el
televisión encendida. Esto puede ser robusto porque todo lo que el sistema necesita hacer
es determinar si hay una mano a la vista. Además, el usuario cooperará levantando la
mano y abriéndola. Debido a que se espera que el usuario esté a una distancia bastante
constante de la cámara, por lo que el tamaño de la mano se conoce aproximadamente y
no hay necesidad de buscar en escalas, y frente al televisor, la región de la imagen que
debe buscarse. para determinar si hay una mano es bastante pequeña.
La mano se sostiene en una configuración y orientación bastante estándar para encender
el televisor y, por lo general, aparece aproximadamente a la misma distancia del televisor (por
lo que sabemos cómo se ve). Esto significa que una puntuación de correlación normalizada es
suficiente para encontrar la mano. Cualquier punto en la imagen de correlación donde la
puntuación sea lo suficientemente alta corresponde a manos. Este enfoque también se puede
utilizar para controlar el volumen, etc. Para hacerlo, necesitamos alguna noción de hacia dónde
va la mano (hacia un lado sube el volumen, hacia el otro lo baja) y esto se puede obtener
comparando la posición en el cuadro anterior con la del cuadro actual.
Sección 4.7 Técnica: pirámides de escala e imagen 134
B C
D mi
FIGURA 4.16: Ejemplos de Freeman et al. 's sistema que controla un televisor. Cada estado está
ilustrado con lo que ve la televisión en elizquierda y lo que ve el usuario en la Derecha.
En (a), la televisión está dormida, pero un proceso está mirando al usuario. Una mano abierta hace que el
televisor se encienda y muestre su panel de interfaz de usuario (B). El foco en el panel rastrea el movimiento
de la mano abierta del usuario en (C), y el usuario puede cambiar de canal utilizando este seguimiento para
mover un icono en la pantalla en (D). Finalmente, el usuario muestra una mano cerrada en (mi) para apagar
el televisor. Esta figura se publicó originalmente como Figura 12 de “Visión por computadora para gráficos
interactivos por computadora”, W. Freeman et al., Gráficos y aplicaciones informáticos IEEE, 1998 ⃝
C IEEE, 1998.
FIGURA 4.17: Una pirámide gaussiana de imágenes que van desde 512x512 hasta 8x8. En la fila superior,
hemos mostrado cada imagen con el mismo tamaño (de modo que algunas tienen píxeles más grandes que
otras), y la parte inferior de la figura muestra las imágenes a escala. Observe que si convertimos cada
imagen con un filtro de tamaño fijo, responde a fenómenos bastante diferentes. Un bloque de 8x8 píxeles
en la escala más fina puede contener algunos pelos; en una escala más gruesa, puede contener una franja
completa; y en la escala más burda, contiene el hocico del animal.
= (S↓GRAMOσ)PAGGaussianoI)norte)
(donde hemos escrito GRAMOσ para el operador lineal que lleva una imagen a la
convolución de esa imagen con un gaussiano). La capa de escala más fina es la imagen
original:
PAGGaussianoI)1 = I.
Búsqueda espacial
Una aplicación es la búsqueda espacial, un tema común en la visión por computadora.
Normalmente, tenemos un punto en una imagen y estamos tratando de encontrar un punto en una
segunda imagen que le corresponda. Este problema ocurre en la estereopsis, donde el punto se ha
movido porque las dos imágenes se obtienen desde diferentes posiciones de visualización, y en el
análisis de movimiento, donde el punto de la imagen se ha movido, ya sea porque la cámara se
movió o porque está sobre un objeto en movimiento.
La búsqueda de una coincidencia en los pares de imágenes originales es ineficaz porque es
posible que tengamos que analizar una gran cantidad de detalles. Un mejor enfoque, que ahora es
Sección 4.8 Notas 137
Seguimiento de funciones
La mayoría de las características que se encuentran en niveles gruesos de suavizado están asociadas con
eventos de imagen grandes y de alto contraste porque para que una característica se marque en una escala
gruesa, un gran grupo de píxeles debe estar de acuerdo en que está allí. Por lo general, la búsqueda de fenómenos
de escala gruesa estima erróneamente tanto el tamaño como la ubicación de una característica. Por ejemplo, un
error de un solo píxel en una imagen de escala gruesa representa un error de píxeles múltiples en una imagen de
escala fina.
A escalas finas, hay muchas características, algunas de las cuales están asociadas con eventos más
pequeños y de bajo contraste. Una estrategia para mejorar un conjunto de características obtenidas a una
escala fina es rastrear características a través de escalas a una escala más gruesa y aceptar solo las
características de escala fina que tienen padres identificables en una escala más gruesa. Esta estrategia,
conocida comoseguimiento de funciones en principio, puede suprimir características resultantes de
regiones texturizadas (a menudo denominadas ruido) y características resultantes de ruido real.
4.8 NOTAS
No pretendemos ser exhaustivos en nuestro tratamiento de los sistemas lineales, pero no
sería posible leer la literatura sobre filtros en la visión sin comprender las ideas de este
capítulo. Hemos dado una explicación bastante sencilla aquí; Se pueden encontrar más
detalles sobre estos temas en los excelentes libros de Bracewell (1995), (2000).
Los sistemas de imágenes son solo aproximadamente lineales. La película no es lineal, no responde a los
estímulos débiles y se satura para los estímulos brillantes, pero por lo general uno puede salirse con la suya
con un modelo lineal dentro de un rango razonable. Las cámaras CCD son lineales dentro de un rango de
trabajo. Dan una respuesta pequeña, pero distinta de cero, a una entrada cero como resultado del ruido
térmico (razón por la cual los astrónomos enfrían sus cámaras) y se saturan para estímulos muy brillantes.
Las cámaras CCD a menudo contienen componentes electrónicos que transforman su salida para que se
comporten más como una película porque los consumidores están acostumbrados a filmar. La invariancia
de cambio también es aproximada porque las lentes tienden a distorsionar las respuestas cerca del límite
de la imagen. Algunas lentes (las lentes de ojo de pez son un buen ejemplo) no son invariantes al cambio.
Escala
Existe una gran cantidad de trabajo sobre el espacio de escala y las representaciones a escala. Los
orígenes parecen estar en Witkin (1983) y la idea fue desarrollada por Koenderink y van Doorn (1986).
Desde entonces, ha surgido una gran cantidad de literatura (uno podría comenzar
Sección 4.8 Notas 138
con ter Haar Romeny et al. (1997) o Nielsen et al. (1999)). Aquí solo hemos ofrecido una
descripción más breve porque el análisis tiende a ser bastante complicado. La utilidad de
las técnicas también se debate acaloradamente.
Las pirámides de imágenes son útiles. El siguiente paso de una pirámide gaussiana, que
es altamente redundante, es la pirámide laplaciana, originalmente descrita por Burt y Adelson
(1983). Esta es una representación eficiente. En lugar de almacenar cada nivel de imagen de
una pirámide gaussiana, se almacena la diferencia entre el nivel observado de la pirámide
gaussiana y el predicho por el aumento del nivel de escala más grueso. Debido a que las
imágenes de escala gruesa son representaciones moderadamente buenas de imágenes de
escala más fina, esta diferencia es pequeña. Como resultado, hay numerosos ceros en la
pirámide y es un código de imagen conveniente.
Escalado anisotrópico
Una dificultad importante con los modelos espaciales a escala es que el proceso de suavizado
gaussiano simétrico tiende a difuminar los bordes de forma demasiado agresiva para brindar
comodidad. Por ejemplo, si tenemos dos árboles cerca uno del otro en un horizonte, las manchas a
gran escala correspondientes a cada árbol podrían comenzar a fusionarse antes de que hayan
terminado todas las manchas a pequeña escala. Esto sugiere que deberíamos suavizar de manera
diferente en los puntos de borde que en otros puntos. Por ejemplo, podríamos hacer una estimación
de la magnitud y orientación del gradiente. Para gradientes grandes, usaríamos un operador de
suavizado orientado que suavizara agresivamente perpendicular al gradiente y poco a lo largo del
gradiente; para gradientes pequeños, podríamos usar un operador de suavizado simétrico. Esta idea
solía ser conocida comosuavizado que conserva los bordes.
En la versión moderna, más formal, debido a Perona y Malik (1990B), notamos que la
familia de representación del espacio de escala es una solución a la ecuación de difusión
∂Φ ∂2Φ ∂2Φ
= +
∂σ ∂x2 ∂y2
= ∇2Φ,
Φ (x, y, 0) = I(x, y)
∂Φ
= ∇ · (c (x, y, σ)∇Φ)
∂σ
= c (x, y, σ)∇2Φ + (∇c (x, y, σ)) · (∇Φ)
PROBLEMAS
4.1. Muestre que la formación de promedios locales no ponderados, que produce una operación de la
forma
u∑ + = j +∑k
= ikv
1
Rij = Fuv,
(2k + 1)2
u = i − kv = j − k
EJERCICIOS DE PROGRAMACIÓN
4.7. Una forma de obtener un núcleo gaussiano es convolucionar un núcleo constante consigo
mismo muchas veces. Compare esta estrategia con la evaluación de un kernel gaussiano.
(a) ¿Cuántas convoluciones repetidas necesita para obtener una aproximación
razonable? (Debe establecer qué es una aproximación razonable; puede
graficar la calidad de la aproximación frente al número de convoluciones
repetidas).
(B) ¿Hay algún beneficio que se pueda obtener así? (Sugerencia: no todas las
computadoras vienen con una FPU).
4.8. Escribe un programa que produzca una pirámide gaussiana a partir de una imagen.
4.9. Un kernel gaussiano muestreado debe alias porque el kernel contiene componentes en
frecuencias espaciales arbitrariamente altas. Suponga que el kernel se muestrea en
Sección 4.8 Notas 140
una rejilla infinita. A medida que la desviación estándar se hace más pequeña, la energía
con alias debe aumentar. Grafique la energía que se alias contra la desviación estándar
del kernel gaussiano en píxeles. Ahora suponga que el kernel gaussiano se da en un 7×
7 cuadrícula. Si la energía con alias debe ser del mismo orden de magnitud que el error
debido a truncar el gaussiano, ¿cuál es la desviación estándar más pequeña que se
puede expresar en esta cuadrícula?