Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de...

42
Detectores de Borde

Transcript of Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de...

Page 1: Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.

Detectores de Borde

Page 2: Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.

Extracción de Características

• Detección de Líneas.

• Detección de Puntos de Borde.

• Detección de Contornos.

Page 3: Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.

Puntos de Borde

• Puntos de la imagen en que hay un cambio brusco o discontinuidad en los valores de intensidad.

Page 4: Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.

Métodos de Detección de Bordes

–Operadores de gradiente.–Operadores de segunda derivada.–Múltiples respuestas a diferentes

orientaciones.–Detector de Canny

Page 5: Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.

Máscaras

w1 w2

w4 w5

w3

w6

w7 w8 w9

992211 wIwIwIR

Imagen de Entrada

Page 6: Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.

Detección de Bordes

Gonzales Wood

Perfil

Primera derivada

Segunda derivada

Page 7: Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.

Operadores de gradiente

• Se basan en calcular aproximaciones del gradiente:

f = (df/dx, df/dy)

• Magnitud del gradiente:

f| = [ (df/dx)2 + (df/dy)2 ]1/2

Page 8: Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.

Aproximación del gradiente

• Se utiliza diferencia de valores de intensidad.

• Para una sección de 2 x 2:

df/dx = I 1,2 - I 1,1

df/dy = I 2,1 - I 1,1

1,1 1,2

2,1 2,2

Page 9: Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.

Aproximación del gradiente

• Otra opción es considerar las diferencias cruzadas:

df/dx = I 1,1 - I 2,2

df/dy = I 1,2 - I 2,1

1,1 1,2

2,1 2,2

Page 10: Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.

Aproximación del gradiente

• Podemos también considerar una sección de 3 x 3 y aproximar el gradiente de la siguiente forma:

df/dx = ( I 1,3 + I 2,3 + I 3,3 ) - ( I 1,1 + I 2,1 + I 3,1 )

df/dy = ( I 3,1 + I 3,2 + I 3,3 ) - ( I 1,1 + I 1,2 + I 1,3 )

1,1 1,2

2,1 2,2

1,3

2,3

3,1 3,2 3,3

Page 11: Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.

Las aproximaciones anteriores se implementan como filtros espaciales (máscaras)

Operadores como el deRoberts, Prewitt y Sobel,se implementan con dosmáscaras: una para dx y otra para dy, luego se hace una síntesis con ambas.

Implementación

Síntesis

Máximo

Mínimo

Promedio

Page 12: Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.

Operadores de Roberts

Corresponden a las diferencias cruzadas de 2 x 2

0 1

-1 0

1 0

0 -1

Page 13: Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.

Ejemplo: Operador de Roberts

Page 14: Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.

Operadores de Prewitt

Corresponden a las diferencias en secciones de 3 x 3

-1 -1

0 0

-1

0

1 1 1

-1 0

-1 0

1

1

-1 0 1

Page 15: Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.

Ejemplos con los operadores de Prewitt

Page 16: Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.

Operadores de Sobel

-1 -2

0 0

-1

0

1 2 1

-1 0

-2 0

1

2

-1 0 1

Page 17: Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.

Ejemplos con operadores de Sobel

Page 18: Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.

Comparación

Prewitt RobertsSobel

Page 19: Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.

Operadores de segunda derivada

• Ejemplos de estos detectores son:– Laplaciano.– Laplaciano del Gaussiano (LOG).

– Y luego buscar los cruces por cero.

Page 20: Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.

Detector basado en el Laplaciano

• Laplaciano de una función de 2 variables:

2f = (d2f/dx2, d2f/dy2)

• El cual se puede aproximar en forma discreta como:

2f = 4 * I 2,2 - I 1,2 - I 2,1 - I 2,3 - I 3,2

Page 21: Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.

Máscara para el operador Laplaciano

0 -1

-1 4

0

-1

0 -1 0

Page 22: Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.

Ejemplo

original Máscara Cruces por cero

Page 23: Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.

Problema:

Se observan muchos bordes falsos

Solución:Evaluación Local de la varianza

Page 24: Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.

Evaluación Local de la Varianza

,...2,1

,),(12

1),(

2

2212

1

1

2

2

M

kjmkjfM

nnMn

Mnj

Mn

Mnkff

Estimación de la varianza:

Mn

Mnj

Mn

Mnkf kjf

Mnnm

1

1

2

2

),(12

1),( 221

Page 25: Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.

Evaluación local de la varianza (cont.)

• La varianza se compara con un umbral.

• Se calcula localmente, solo para aquellos puntos (n1,n2) para los cuales hay un cambio de signo en el laplaciano.

• Esto reduce la posibilidad de encontrar bordes falsos.

Page 26: Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.

Ejemplos

20

10

30

Page 27: Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.

Laplaciano del Gaussiano

• Combina el efecto de una suavizamiento gaussiano con el Laplaciano, en una sola máscara.

• El Laplaciano del Gaussiano (LOG) es:

2G= (d2G/dx2, d2G/dy2)• El cual también se puede aproximar con una

máscara.

Page 28: Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.

Máscara para el operador Laplaciano del Gaussiano

1 -2

-2 4

1

-2

1 -2 1

Page 29: Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.

Ejemplos con operador LOG

Page 30: Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.

Operadores direccionales

• A veces es útil conocer no sólo la magnitud del borde sino también su dirección:

• Esto se puede obtener con los operadores de de Prewitt y Sobel, así como con otros operadores direccionales más sofisticados

dxdf

dydftan

/

/1

Page 31: Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.

Operadores de Kirsch

• Detectan la máxima respuesta en direcciones espaciadas 45°, es decir en orientaciones de 0, 45, 90 y 135 grados - 4 máscaras

• Se pueden definir a diferentes tamaños: 2x2, 3x3, 5x5

Page 32: Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.

Máscaras para operadores de Kirsch de 3x3

5 5

-3 0

5

-3

-3 -3 -3

5 -3

5 0

-3

-3

5 -3 -3

5 5

5 0

-3

-3

-3 -3 -3

-3 -3

5 0

-3

-3

5 5 -3

Page 33: Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.

Otros Detectores• Al aplicar los detectores básicos de borde se tienen

varios problemas, como:– Bordes estriados– Ruido– Bordes falsos

• Operadores más sofisticados utilizan técnicas para mejorar los resultados. Algunas son:– Detector de Canny– Detector de SUSAN

Page 34: Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.

Canny

3 etapas:1. Suavizamiento y diferenciación

• Convolución con una gaussiana• Obtener las derivadas, dx, dy• Calcular magnitud y dirección

2. Supresión de no máximos• Eliminar bordes que no sean máximos en la dirección

perpendicular al borde.

• Umbralización con Histéresis

Page 35: Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.

Supresión de no máximos

1. Computar la magnitud de borde en 4 direcciones utilizando máscaras de borde.

2. Para cada pixel con magnitud de borde no cero, inspeccionar los pixels adyacentes indicados en la dirección de su borde.

3. Si la magnitud de cualquiera de los dos pixels adyacentes es mayo que la del pixel en cuestión, entonces borrarlo como borde.

Page 36: Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.

Umbralización con histéresis

Pueden ocurrir respuestas falsas a un borde causadas por ruido, formando un estriado.

1. Elegir dos umbrales t1,t2.

2. Marcar todos los pixels con magnitud mayor que t2 como correctos y los menores que t1 como incorrectos.

3.Los pixels cuya magnitud de borde está entre t1 y t2 y están conectados con un borde, se marca también como borde. La conectitud puede ser 4- conexo u 8 –conexo.

Page 37: Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.

Ejemplo

Canny

Prewitt

Sobel

Page 38: Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.

S.U.S.A.N(Smallest Univaluate

Segment Assimilating Nucleus)

1.Ubicar una máscara circular alrededor de cada pixel.

2. Calcular la cantidad de pixels dentro de la máscara que tienen el mismo nivel de gris que el núcleo, salvo un umbral.

r0 pixel central

r otro pixel dentro de la máscara.

casootroen

trIrIsirrc

0

)()(1),( 0

0

t=27

Page 39: Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.

Susan

r

rrcrn ),()( 00

N

rnrs

)(1)( 0

0

75.0)(

5.0)(

0)(

0

0

0

rs

rs

rs r0 no es un borde

r0 es un borde

r0 es una esquina

Page 40: Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.

Susan: Ventajas

1.Detecta bordes y esquinas.

2. No usa derivadas.

3.No necesita eliminar el ruido.

4. Usa una máscara circular de 37 pixels.

Page 41: Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.

Ejemplos

Page 42: Detectores de Borde. Extracción de Características Detección de Líneas. Detección de Puntos de Borde. Detección de Contornos.

Ejercicios• Implementar detectores de borde:1.Hacer un programa para implementar las

máscaras de Sobel en x, y; desplegando c/u y la magnitud.

2.Mejorar las bordes utilizando el esquema de post-procesamiento de Canny (después de Sobel), desplegando los bordes antes y después del post-procesamiento.

3. Impementar el detector de SUSAN.