32
Principios de filtrado y convoluci´ on en im´ agenes digitales Rodrigo Rojas Moraleda April 8, 2011 Rodrigo Rojas Moraleda — Principios de filtrado y convoluci´ on en im´ agenes digitales 1/32

Cit112011 principios procimagenes

Embed Size (px)

Citation preview

Page 1: Cit112011 principios procimagenes

Vectores y sus representaciones Matrices y sus representaciones Sistemas Lineales Deteccion de bordes

Principios de filtrado y convolucion en imagenes digitales

Rodrigo Rojas Moraleda

April 8, 2011

Rodrigo Rojas Moraleda — Principios de filtrado y convolucion en imagenes digitales 1/32

Page 2: Cit112011 principios procimagenes

Vectores y sus representaciones Matrices y sus representaciones Sistemas Lineales Deteccion de bordes

Outline

1 Vectores y sus representaciones

2 Matrices y sus representaciones

3 Sistemas Lineales

4 Deteccion de bordes

Rodrigo Rojas Moraleda — Principios de filtrado y convolucion en imagenes digitales 2/32

Page 3: Cit112011 principios procimagenes

Vectores y sus representaciones Matrices y sus representaciones Sistemas Lineales Deteccion de bordes

Outline

1 Vectores y sus representaciones

2 Matrices y sus representaciones

3 Sistemas Lineales

4 Deteccion de bordes

Rodrigo Rojas Moraleda — Principios de filtrado y convolucion en imagenes digitales 3/32

Page 4: Cit112011 principios procimagenes

Vectores y sus representaciones Matrices y sus representaciones Sistemas Lineales Deteccion de bordes

Vectoresrepresentaciones

Vector ~v =

x

y

z

Base vectorial ycoordenadas

r

Px

y

Ox

Producto Interno ~a ·~b = a1b1 + a2b2 + a3b3 = abt =[a1 a2 a3

] b1b2b3

Norma

∥∥a∥∥2 = aat =√a1a1 + a2a2 + a3a3

Ortogonalidad = ~a ·~b = 0,⊥

Rodrigo Rojas Moraleda — Principios de filtrado y convolucion en imagenes digitales 4/32

Page 5: Cit112011 principios procimagenes

Vectores y sus representaciones Matrices y sus representaciones Sistemas Lineales Deteccion de bordes

Outline

1 Vectores y sus representaciones

2 Matrices y sus representaciones

3 Sistemas Lineales

4 Deteccion de bordes

Rodrigo Rojas Moraleda — Principios de filtrado y convolucion en imagenes digitales 5/32

Page 6: Cit112011 principios procimagenes

Vectores y sus representaciones Matrices y sus representaciones Sistemas Lineales Deteccion de bordes

Matricesrepresentaciones

Conjunto deelementosorganizados encolumnas y filasa1,1 a1,2

a2,1 a2,2

Algunas operacionesSumaa1,1 a1,2

a2,1 a2,2

+

b1,1 b1,2

b2,1 b2,2

=

a1,1 + b1,1 a1,2 + b1,2

a2,1 + b2,1 a2,2 + b2,2

Escalamiento

b

a1,1 a1,2

a2,1 a2,2

=

ba1,1 ba1,2

ba2,1 ba2,2

Multiplicaciona1,1 a1,2

a2,1 a2,2

·b1,1 b1,2

b2,1 b2,2

=

a1,1b1,1 + a1,2b2,1 a1,1b1,2 + a1,2b2,2

a2,1b1,1 + a2,2b2,1 a2,1b2,1a2,2b2,2

Rodrigo Rojas Moraleda — Principios de filtrado y convolucion en imagenes digitales 6/32

Page 7: Cit112011 principios procimagenes

Vectores y sus representaciones Matrices y sus representaciones Sistemas Lineales Deteccion de bordes

MatricesOperaciones con vectores

Al Multiplicar una matriz cuadrada a un vector se obtiene otro vectora1,1 a1,2

a2,1 a2,2

·x

y

=

x′

y′

Ejemplo: la matriz derotacion 2Dcoseno(θ) −seno(θ)

seno(θ) coseno(θ)

O

v

v'

Rodrigo Rojas Moraleda — Principios de filtrado y convolucion en imagenes digitales 7/32

Page 8: Cit112011 principios procimagenes

Vectores y sus representaciones Matrices y sus representaciones Sistemas Lineales Deteccion de bordes

Valores propios y vectores propios

A partir de una transformacion A se busca resolver

a1,1 a1,2

a2,1 a2,2

·x

y

= λ

x

y

v'=λv

v v'

Al resolver en una matriz 2D los vectores propios son rotaciones

[V

]=

[~v1 ~v2

]=

coseno(θ) −seno(θ)

seno(θ) coseno(θ)

, ~v1 · ~v2 = 0,⊥

V tAV =

cos(θ) sen(θ)

−sen(θ) cos(θ)

a1,1 a1,2

a2,1 a2,2

cos(θ) −sen(θ)

sen(θ) cos(θ)

=

λ1 0

0 λ2

Rodrigo Rojas Moraleda — Principios de filtrado y convolucion en imagenes digitales 8/32

Page 9: Cit112011 principios procimagenes

Vectores y sus representaciones Matrices y sus representaciones Sistemas Lineales Deteccion de bordes

Outline

1 Vectores y sus representaciones

2 Matrices y sus representaciones

3 Sistemas Lineales

4 Deteccion de bordes

Rodrigo Rojas Moraleda — Principios de filtrado y convolucion en imagenes digitales 9/32

Page 10: Cit112011 principios procimagenes

Vectores y sus representaciones Matrices y sus representaciones Sistemas Lineales Deteccion de bordes

Operador del sistema

Un sistema convierte una entrada f(x) en una salida g(x) don de x es unavariable independiente.

f(x) System

Hg(x)

Es requerido que la salida del sistema este completamente determinada porlas entradas.

g(x) = H[f(x)]

H es el operador del sistema que mapea el conjunto de las posibles salidas{g(x)} con cada una de las posibles entradas {f(x)}.

Rodrigo Rojas Moraleda — Principios de filtrado y convolucion en imagenes digitales 10/32

Page 11: Cit112011 principios procimagenes

Vectores y sus representaciones Matrices y sus representaciones Sistemas Lineales Deteccion de bordes

Operador lineal

H es un operador lineal para una clase de entradas {f(x)} si:

H[αifi(x) + αjfj(x)] = αiH[fi(x)] + αjH[fj(x)]

= αigi(x) + ajgj(x)

para toda fi(x) y fj(x) pertenecientes a {f(X)}, donde αi, αj sonconstantes arbitrarias y

gi(x) = H[fi(x)]

es la salida para una entrada arbitraria fi(x) ∈ {f(x)}

Rodrigo Rojas Moraleda — Principios de filtrado y convolucion en imagenes digitales 11/32

Page 12: Cit112011 principios procimagenes

Vectores y sus representaciones Matrices y sus representaciones Sistemas Lineales Deteccion de bordes

Sistema lineal

Un sistema lineal es un sistema descrito por un operador lineal (y respectoa la misma clase de entradas) que obedece las propiedades de escalado(homogeneidad) y de superposicion (aditiva)

H[αf(x)] = αH[f(x)]

H[f1(x) + f2(x)] = H[f1(x)] +H[f2(x)]

H g(x)

f1(x)

f2(x)

+

H

g(x)

f1(x)

f2(x)

+

H

Rodrigo Rojas Moraleda — Principios de filtrado y convolucion en imagenes digitales 12/32

Page 13: Cit112011 principios procimagenes

Vectores y sus representaciones Matrices y sus representaciones Sistemas Lineales Deteccion de bordes

SistemasInvariante en el tiempo / espacio

Un operador H es denominado invariante en el tiempo o invariante espacialpara una clase de entradas {f(x)} si

gi(x) = H[fi(x)] =⇒ gi(x+ x0) = H[fi(x+ x0)]

, ∀ fi(x) ∈ {f(x)} y ∀ x0

H g(x - T)f(x) T

f(x - T)

H g(x - T)f(x) T

g(x)

La forma de la salida no cambia con el retraso de la entrada, la Salida es lamisma si el retraso es colocado en la entrada o en la salida.

Rodrigo Rojas Moraleda — Principios de filtrado y convolucion en imagenes digitales 13/32

Page 14: Cit112011 principios procimagenes

Vectores y sus representaciones Matrices y sus representaciones Sistemas Lineales Deteccion de bordes

SistemaCausal

Un sistema causal es aquel que es no-anticipativo; esto es, que las salidasdependen de entradas presentes y pasadas, pero no de entradas futuras.

f(x) = 0 x < x0 ⇒ g(x) = H[f(x)] = 0 x < x0

En procesamiento de imagenes digitales, si consideramos la variabledependiente como los pıxeles de la derecha y de la izquierda (el “futuro”) dela posicion actual de la imagen. Entonces tendremos un sistema no-causal.

Rodrigo Rojas Moraleda — Principios de filtrado y convolucion en imagenes digitales 14/32

Page 15: Cit112011 principios procimagenes

Vectores y sus representaciones Matrices y sus representaciones Sistemas Lineales Deteccion de bordes

ConvolucionPulso unitario

La Funcion Delta de Dirac δ(t), conocida tambien como el impulso unitarioo funcion delta es una funcion infinitamente angosta, infinitamente alta,cuya integral tiene un valor unitario.∫ ∞

−∞δ(t) dt = 1

Esta funcion es cero en todas partes excepto en el origen

Propiedades:

f(t)δ(t) = f(0)δ(t)

∫ ∞−∞

f(t)δ(t) dt =

∫ ∞−∞

f(0)δ(t) dt = f(0)

∫ ∞−∞

δ(t) dt = f(0)

∫ ∞−∞

f(t)δ(x− t) dt = f(x)

Rodrigo Rojas Moraleda — Principios de filtrado y convolucion en imagenes digitales 15/32

Page 16: Cit112011 principios procimagenes

Vectores y sus representaciones Matrices y sus representaciones Sistemas Lineales Deteccion de bordes

ConvolucionRespuesta al impulso

∫ ∞−∞

f(t)δ(x− t) dt = f(x)

g(x) = H[f(x)] g(x) = H

[∫ ∞−∞

f(a)δ(x− a)da

]g(x) =

∫ ∞−∞

f(a)H [δ(x− a)] da =

∫ ∞−∞

f(a)h (x, a)) da

Se denomina respuesta al impulso al termino

h(x, a) = H [δ(x− a)]

Que es la respuesta del sistema lineal a un pulso unitario localizado en laposicion x

Rodrigo Rojas Moraleda — Principios de filtrado y convolucion en imagenes digitales 16/32

Page 17: Cit112011 principios procimagenes

Vectores y sus representaciones Matrices y sus representaciones Sistemas Lineales Deteccion de bordes

ConvolucionConvolucion Integral

La expresion

g(x) =

∫ ∞−∞

f(a)h(x, a) da

indica que la respuesta de un sistema lineal queda caracterizada por larespuesta al impulso.

Si el operador H, es invariante entonces.

H [δ(x− a)] = h(x− a)

y la integral de superposicion.

g(x) =

∫ ∞−∞

f(a)h(x− a) da

convolucion Integral

Rodrigo Rojas Moraleda — Principios de filtrado y convolucion en imagenes digitales 17/32

Page 18: Cit112011 principios procimagenes

Vectores y sus representaciones Matrices y sus representaciones Sistemas Lineales Deteccion de bordes

ConvolucionConvolucion Integral

g(x) =

∫ ∞−∞

f(a)h(x− a) da

Considerando que a es una variable de integracion

g(x) = f(x) ~ h(x)

donde

f(x) ~ h(x) =

∫ ∞−∞

f(a)h(x− a) da

Rodrigo Rojas Moraleda — Principios de filtrado y convolucion en imagenes digitales 18/32

Page 19: Cit112011 principios procimagenes

Vectores y sus representaciones Matrices y sus representaciones Sistemas Lineales Deteccion de bordes

ConvolucionRepresentacion discreta

δ [n] =

{1 si n = 00 otro caso

f [n] =∞∑

k=−∞

f [k] δ [n− k]

La suma de convolucion queda expresada como:

g [n] =

∞∑k=−∞

f [k]h [n− k]

g [n] = f [n] ~ h [n]

Rodrigo Rojas Moraleda — Principios de filtrado y convolucion en imagenes digitales 19/32

Page 20: Cit112011 principios procimagenes

Vectores y sus representaciones Matrices y sus representaciones Sistemas Lineales Deteccion de bordes

Outline

1 Vectores y sus representaciones

2 Matrices y sus representaciones

3 Sistemas Lineales

4 Deteccion de bordes

Rodrigo Rojas Moraleda — Principios de filtrado y convolucion en imagenes digitales 20/32

Page 21: Cit112011 principios procimagenes

Vectores y sus representaciones Matrices y sus representaciones Sistemas Lineales Deteccion de bordes

Deteccion de bordesFiltros del gradiente

Un borde es una transicion local, de un objeto a otro sin sernecesariamente una frontera, solo es una transicion localmenteidentificable.

Variaciones fuertes de la intensidad que corresponden a las fronteras delos objetos visualizados.

Metodos basados en el gradiente: detectan los bordes en base a lasderivadas espaciales de la imagen aproximadas en forma de operadoresde convolucion.

Rodrigo Rojas Moraleda — Principios de filtrado y convolucion en imagenes digitales 21/32

Page 22: Cit112011 principios procimagenes

Vectores y sus representaciones Matrices y sus representaciones Sistemas Lineales Deteccion de bordes

GradienteDeteccion de bordes

Considerando una imagen como un campo escalar z = E(x, y), por ejemplode la intensidad de los pixeles.

O

=λv

v' y

x

E

∂E / ∂x

∂E / ∂y

(x,y,E(x,y))

Figure: Representacion de la evaluacion de la funcion de valor de un planotangencial (x, y, E(x, y)) a un pixel

Gradiente grad(E) =(

∂E∂x, ∂E

∂y

)tVectores Normales: n− =

(∂E∂x, ∂E

∂y,−1

)t, n+ =

(− ∂E

∂x,− ∂E

∂y,+1

)t

Rodrigo Rojas Moraleda — Principios de filtrado y convolucion en imagenes digitales 22/32

Page 23: Cit112011 principios procimagenes

Vectores y sus representaciones Matrices y sus representaciones Sistemas Lineales Deteccion de bordes

GradienteDeteccion de bordes

O

=λv

v' y

x

E

∂E / ∂x

∂E / ∂y

(x,y,E(x,y))

Vector gradiente, ∇E =

∂E∂x

∂E∂y

=

Gx

Gy

Magnitud vector gradiente ‖∇E‖ =

[∂E∂x

2+ ∂E

∂y

2] 1

2

Orientacion del vector gradiente: φ(∇f) = tan−1(

GxGy

)

Rodrigo Rojas Moraleda — Principios de filtrado y convolucion en imagenes digitales 23/32

Page 24: Cit112011 principios procimagenes

Vectores y sus representaciones Matrices y sus representaciones Sistemas Lineales Deteccion de bordes

Deteccion de bordesAproximacion de derivadas

Una manera de aproximar las derivadas en un entorno discreto es utilizarun operador explicito del tipo {+1,−1} que calcule E(xi)− E(xj) para dospixeles en un entorno. Esta operacion particular recibe el nombre dediferencias hacia adelante.

∂I∂x≈ I(x+ 1, y)− I(x, y)

3 4 51 1 1 1 2 5 5F[n]

F'[n]=F[n+1] - F[n-1]2 2 10 0 0 1 2 0 0

F'[n]=F[n] - F[n-1]

2 2 10 0 0 1 2 0 0

3 3 31 1 1 3 3 3 1F[n]

F'[n]=F[n+1] - F[n-1]0 0 -20 0 2 2 0 -2 0

F'[n]=F[n] - F[n-1]

1 1

0

0 0 00 0 0 2 0 -2 0 0

Rodrigo Rojas Moraleda — Principios de filtrado y convolucion en imagenes digitales 24/32

Page 25: Cit112011 principios procimagenes

Vectores y sus representaciones Matrices y sus representaciones Sistemas Lineales Deteccion de bordes

Deteccion de bordesKernels de convolucion

Conexion con sistemas LTIPuesto que las derivadas son operadores lineales e invariantes, laaproximacion en el calculo del gradiente es realizado normalmente porconvolucion con una funcion discreta denominada Kernel.

Se han propuesto numerosos kernels para aproximar este operador.

Roberts Kernels

∂E∂x≈ E(i+ 1, j + 1)− E(i, j) ∂E

∂y≈ E(i+ 1, j)− E(i, j + 1)

Gx =+1 0

0 -1Gy=

0 +1

-1 0

‖∇E‖ =√

(Gx ~ E)2 + (Gy ~ E)2

Rodrigo Rojas Moraleda — Principios de filtrado y convolucion en imagenes digitales 25/32

Page 26: Cit112011 principios procimagenes

Vectores y sus representaciones Matrices y sus representaciones Sistemas Lineales Deteccion de bordes

Deteccion de bordesKernels de convolucion

Prewitt Kernels

∂E∂x≈ E(i+ 1, j)− E(i− 1, j)/2 ∂E

∂y≈ E(i, j + 1)− E(i, j − 1)/2

Esto corresponde con un Kernel de convolucion del tipo

Gx = -1 0 1

Sin embargo este kernel muestra empıricamente ser sensible al ruido. Elenfoque de Prewitt reduce este problema mediante el calculo de unpromedio en y cuando se calcula la componente x del gradiente y promedioen x en la componente y del gradiente.

Gx =

-1 0 1

-1 0 1

-1 0 1

Gy=

-1 -1 -1

0 0 0

1 1 1

‖∇E‖ =√

(Gx ~ E)2 + (Gy ~ E)2

Rodrigo Rojas Moraleda — Principios de filtrado y convolucion en imagenes digitales 26/32

Page 27: Cit112011 principios procimagenes

Vectores y sus representaciones Matrices y sus representaciones Sistemas Lineales Deteccion de bordes

Deteccion de bordesKernels de convolucion

Sobel Kernel

∂E∂x≈ E(i+ 1, j)− E(i− 1, j)/h ∂E

∂y≈ E(i, j + 1)− E(i, j − 1)/h

En la promediacion aplica mayor peso a los pıxeles centrales..

Gx =

-1 0 1

-2 0 2

-1 0 1

Gy=

-1 -2 -1

0 0 0

1 2 1

Este tipo de Kernel de convolucion se puede considerar como unaaproximacion 3x3 de la primera derivada de un kernel Gaussiano. Es decires equivalente a convolucionar con un kernel gaussiano de 3x3 y luegocalcular sus derivadas.

∂(I~G)∂x

= E ~ ∂G∂x

Rodrigo Rojas Moraleda — Principios de filtrado y convolucion en imagenes digitales 27/32

Page 28: Cit112011 principios procimagenes

Vectores y sus representaciones Matrices y sus representaciones Sistemas Lineales Deteccion de bordes

Deteccion de bordesMetodos de la segunda derivada

Metodos de la segunda derivada

Operadores que buscan maximos en la magnitud del gradiente. En el casounidimensional encontrar el borde ideal es equivalente a encontrar el puntodonde la derivada es maxima o mınima dependiendo del sentido de apendiente. Una forma de encontrar estos puntos es volver a derivar yencontrar los puntos donde la derivada es 0.

La busqueda de bordes optimos consiste en encontrar donde la segundaderivada es 0. Este punto (D′′ = 0) raramente se consigue en imagenes

Rodrigo Rojas Moraleda — Principios de filtrado y convolucion en imagenes digitales 28/32

Page 29: Cit112011 principios procimagenes

Vectores y sus representaciones Matrices y sus representaciones Sistemas Lineales Deteccion de bordes

Deteccion de bordesPuntos de inflexion

Proporcionan dos puntos de transicion uno positivo en la entrada a untransicion y otro a la salida.

son muy sensibles al ruido

Rodrigo Rojas Moraleda — Principios de filtrado y convolucion en imagenes digitales 29/32

Page 30: Cit112011 principios procimagenes

Vectores y sus representaciones Matrices y sus representaciones Sistemas Lineales Deteccion de bordes

Deteccion de bordesPuntos de inflexion

Rodrigo Rojas Moraleda — Principios de filtrado y convolucion en imagenes digitales 30/32

Page 31: Cit112011 principios procimagenes

Vectores y sus representaciones Matrices y sus representaciones Sistemas Lineales Deteccion de bordes

Deteccion de bordesLaplaciano

Kernel Laplaciano

El Laplaciano es invariante rotacional, y es posible encontrar los bordes dela imagen buscando los puntos donde el laplaciano es 0 ( Marr-Hildrethoperador)

Rodrigo Rojas Moraleda — Principios de filtrado y convolucion en imagenes digitales 31/32

Page 32: Cit112011 principios procimagenes

Vectores y sus representaciones Matrices y sus representaciones Sistemas Lineales Deteccion de bordes

Questions ?

Rodrigo Rojas [email protected]

Rodrigo Rojas Moraleda — Principios de filtrado y convolucion en imagenes digitales 32/32