detección de bordes en una imagen

1
Div. Ingeniería de Sistemas y Automática
VISIÓN POR COMPUTADOR
Universidad Miguel Hernández
DETECCIÓN DE BORDES
EN UNA IMAGEN
Detección de Bordes en una Imagen
ISA-UMH
Tabla de Contenidos
2
VISIÓN POR COMPUTADOR
ª Definición de Borde
É Extracción de Bordes
É Operadores Derivada
É Comparación de Funciones Locales
É Comparación con Máscaras Orientadas
É Extracción de esquinas
Detección de Bordes en una Imagen
ISA-UMH
1
VISIÓN POR COMPUTADOR
Definición de Borde
3
Ñ Cualquier discontinuidad que sufre alguna
función de intensidad sobre los puntos de la
misma
Ñ Los bordes caracterizan generalmente los límites
de los objetos y serán útiles en la segmentación e
identificación de objetos en escenas.
Detección de Bordes en una Imagen
ISA-UMH
Definición de borde
4
VISIÓN POR COMPUTADOR
Ñ Causado por:
Õ Cambio brusco en la distancia objeto-cámara (dc)
Õ Cambio brusco en la superficie de los objetos (n)
Õ Cambio en las propiedades de los objetos
(reflectancia) (r)
Õ Cambios de iluminación (s, sombras)
dc
dc
dc
r
n
dc
s
n
Detección de Bordes en una Imagen
ISA-UMH
2
Tabla de Contenidos
5
VISIÓN POR COMPUTADOR
É Definición de Borde
ª Extracción de Bordes
É Operadores Derivada
É Comparación de Funciones Locales
É Comparación con Máscaras Orientadas
É Extracción de esquinas
Detección de Bordes en una Imagen
ISA-UMH
Extracción de Bordes
f(x,y)
f1(x,y)
VISIÓN POR COMPUTADOR
Filtrado
6
g(x,y)
Extrac.
b(x,y)
Umbral
y=p(x)
Local.
Ñ Filtrado: Reducción de ruido
Ñ Extracción de bordes
Ñ Umbralización:
Õ Selecciona pixeles etiquetados como bordes
Ñ Localización:
Õ Tiene como objetivo suministrar información
exacta de la posición y orientación del borde
Detección de Bordes en una Imagen
ISA-UMH
3
¿Cómo?
7
VISIÓN POR COMPUTADOR
É Buscamos, por tanto, la localización de los bordes
É ¿Cómo podemos detectar un borde?
É ¿Qué es un borde?
Ñ Buscamos un cambio brusco en la imagen.
Ñ Necesitamos un método que destaque las zonas donde hay un cambio
brusco.
Detección de Bordes en una Imagen
ISA-UMH
Extracción de Bordes
8
É Estrategias:
Ñ Operadores derivada de los niveles de intensidad
VISIÓN POR COMPUTADOR
Ñ Comparaciones de funciones locales de intensidad
Ñ Comparación con máscaras orientadas, previamente
definidas (template matching)
É Características exigibles
ÑPrecisión: El borde detectado debe estar cerca del
borde real. Buena localización.
ÑRobustez: Pequeños cambios en la imagen (ruido)
no afectan al resultado final. Robustez frente a la
orientación del borde.
Detección de Bordes en una Imagen
ISA-UMH
4
Tabla de Contenidos
9
VISIÓN POR COMPUTADOR
É Definición de Borde
É Extracción de Bordes
ª Operadores Derivada
É Comparación de Funciones Locales
É Comparación con Máscaras Orientadas
É Extracción de esquinas
Detección de Bordes en una Imagen
ISA-UMH
Operadores Derivada
10
VISIÓN POR COMPUTADOR
É Efecto
Ñ La primera derivada
produce un resalte de las
zonas en que la
intensidad no es
homogénea.
Ñ Es nula en zonas de
intensidad constante.
Ñ La segunda derivada
origina un cambio de
signo en la posición de
borde.
Perfil de
Intensidad
1ª Derivada
2ª Derivada
ÕPaso por cero
Detección de Bordes en una Imagen
ISA-UMH
5
Operadores Derivada
11
É Vector Gradiente: El vector gradiente nos da la magnitud y la
dirección de la máxima variación de f(x, y).
⎛ ∂f (x ,y ) ⎞ ⎛ ∂f (x ,y ) ⎞
⎟⎟
Mag[∇f (x ,y )] = ⎜
⎟ + ⎜⎜
⎝ ∂x ⎠ ⎝ ∂y ⎠
VISIÓN POR COMPUTADOR
2
⎡ ∂f (x, y ) ⎤
⎥
⎢
∇f ( x, y ) = ⎢ ∂f (∂xx, y ) ⎥
⎥
⎢
⎣⎢ ∂y ⎦⎥
∂f (x ,y )
θ = arctag ∂x
∂f (x ,y )
∂y
É Operador laplaciana: Un escalar calculado a partir de las
derivadas parciales de segundo orden.
∇ 2 f ( x ,y ) =
Detección de Bordes en una Imagen
∂ 2 f ( x ,y ) ∂ 2 f ( x ,y )
+
∂x 2
∂y 2
ISA-UMH
Bordes: caracterización
VISIÓN POR COMPUTADOR
2
12
É Vector normal al borde: Vector perpendicular a la dirección
del borde (dirección de máxima variación de la intensidad).
É Vector en la dirección del borde: Vector tangente al
borde (dirección sin variación apreciable de la intensidad).
Detección de Bordes en una Imagen
ISA-UMH
6
Operadores derivada
13
VISIÓN POR COMPUTADOR
É Primero, vamos a extraer bordes basándonos en el
operador gradiente. ¿Qué deberíamos esperar?
Ñ Obtener una respuesta nula en zonas constantes de la
imagen.
Ñ Obtener el módulo y orientación del gradiente.
Ñ Ser capaces de detectar el borde independientemente de
su orientación.
Ñ Robustez frente al ruido.
É Pero, en una imagen, sin embargo, no conocemos f(x,y)
analíticamente.
É Tenemos una representación discreta de f(x,y)
É ¿Cómo podemos aproximar el gradiente en un punto?
É Ejercicio: Para el caso de esta imagen uni-dimensional,
calcular df/dx.
Detección de Bordes en una Imagen
ISA-UMH
Ejercicio
14
VISIÓN POR COMPUTADOR
É Ejercicio: Para el caso de esta imagen uni-dimensional,
calcular df/dx.
0 1 0 0 50
54
50
51
É En una imagen aproximaremos la derivada por
diferencias entre píxeles.
É Una solución es:
1
-1
Detección de Bordes en una Imagen
0
50
4
-4
1
0
ISA-UMH
7
Ejercicio
15
60
VISIÓN POR COMPUTADOR
50
40
30
20
10
0
-10
1
2
3
4
5
6
7
8
É Pero hay varias posibilidades más.
∆f ( x ) = f ( x + 1) − f ( x ) “Hacia delante”
∆f ( x ) = f ( x ) − f ( x − 1)
“Hacia atrás”
δ f ( x ) = f ( x + 1) − f ( x − 1) “Central”
Detección de Bordes en una Imagen
ISA-UMH
Operadores Derivada
16
VISIÓN POR COMPUTADOR
É Definiremos máscaras de convolución para hacer estas
operaciones.
f ( x − 1, y − 1)
f ( x − 1, y )
f ( x − 1, y + 1)
f ( x, y − 1) f ( x + 1, y − 1)
f ( x, y )
f ( x + 1, y )
f ( x, y + 1) f ( x + 1, y + 1)
É Ejercicio: Definid las máscaras de convolución para las
siguientes operaciones.
∆f ( x ) = f ( x + 1) − f ( x ) “Hacia delante”
∆f ( x ) = f ( x ) − f ( x − 1)
“Hacia atrás”
δ f ( x ) = f ( x + 1) − f ( x − 1) “Central”
Detección de Bordes en una Imagen
0
-1
1
-1
1
0
0
1
-1
ISA-UMH
8
Operadores Derivada
17
VISIÓN POR COMPUTADOR
Ñ Ejemplos (Eje X)
∂f (x ,y )
≈ ∇ x f ( x , y ) = f ( x , y ) − f ( x − 1, y )
∂x
Detección de Bordes en una Imagen
-1
1
ISA-UMH
Operadores Derivada
18
VISIÓN POR COMPUTADOR
Ñ Ejemplos (Eje Y)
∂f (x ,y )
≈ ∇ y f (x ,y ) = f (x ,y ) − f (x ,y −1)
∂y
Detección de Bordes en una Imagen
-1
1
ISA-UMH
9
Operadores Derivada
19
VISIÓN POR COMPUTADOR
Ñ Dados dos núcleos fx y fy. El gradiente en un punto
tiene:
Mag(m, n) = ∇x f (m, n)2 + ∇ y f (m, n)2
⎛ ∇ y f (m, n) ⎞
⎟⎟
⎝ ∇x f (m, n) ⎠
θ = tan−1⎜⎜
Ñ Una aproximación del módulo del gradiente es:
∧
Mag = ∇ x f (m, n ) + ∇ y f (m, n )
Ñ ¿Ventaja?
Detección de Bordes en una Imagen
ISA-UMH
Operadores Derivada
20
VISIÓN POR COMPUTADOR
Ñ Otra aproximación diferente es:
∇ r f (x ,y ) = f (x ,y )*
∇ c f (x ,y ) = f (x ,y )*
-1
0
0
1
0
-1
1
0
Ñ que se denominan gradientes de Robert.
Ñ Se pueden entender como las derivadas en dos direcciones diagonales
Ñ La magnitud del gradiente se puede calcular como suma de las dos
respuestas.
∧
Mag = ∇ r f (x ,y ) + ∇ c f (x ,y )
Detección de Bordes en una Imagen
ISA-UMH
10
VISIÓN POR COMPUTADOR
Operadores Derivada
Detección de Bordes en una Imagen
21
∇ x f ( x ,y )
∇ y f ( x ,y )
∇ r f ( x ,y )
∇ c f ( x ,y )
ISA-UMH
VISIÓN POR COMPUTADOR
Operadores Derivada:
22
É En general, las máscaras presentadas hasta ahora no
son muy robustas.
É ¿Qué ocurre si hay ruido en la imagen? Puede ser un
problema.
É Son núcleos demasiado pequeños.
É ¿Cómo podemos mejorarlos?
É La influencia del ruido será menor si utilizamos núcleos
más grandes, al promediarse la respuesta en un área
mayor.
Detección de Bordes en una Imagen
ISA-UMH
11
Operadores Derivada
23
VISIÓN POR COMPUTADOR
É Operador de Prewitt
Õ Se basa en la idea de diferencia “central”.
Õ El cálculo en un entorno reduce el efecto del ruido.
Õ La suma de valores absolutos da respuesta para todas las
direcciones
-1
-1
-1
-1
0
1
0
0
0
-1
0
1
1
1
1
-1
0
1
Detección de Bordes en una Imagen
ISA-UMH
Operadores Derivada
24
É Operador de Sobel
VISIÓN POR COMPUTADOR
Õ Explota una idea similar al anterior. Pero pondera más los
píxeles centrales en el promediado.
-1
-2
-1
-1
0
1
0
0
0
-2
0
2
1
2
1
-1
0
1
Detección de Bordes en una Imagen
ISA-UMH
12
Operadores Derivada
25
É Detectores diagonales.
VISIÓN POR COMPUTADOR
Ñ Dan una mejor respuesta en bordes diagonales.
1
1
0
0
1
1
1
0
-1
-1
0
1
0
-1
-1
-1
-1
0
Detección de Bordes en una Imagen
ISA-UMH
VISIÓN POR COMPUTADOR
Operadores Derivada
Detección de Bordes en una Imagen
26
ÕGradiente de Roberts:
Umbral T=10, T=20.
Õ¿Qué umbral elegimos?
ISA-UMH
13
Operadores Derivada: Algoritmo de Canny
27
VISIÓN POR COMPUTADOR
É Algoritmo de Canny
Ñ Extrae bordes y cierra contornos.
Ñ Muy utilizado
Ñ Se fundamenta en la primera derivada
É Pasos
Ñ
Ñ
Ñ
Ñ
Obtención del gradiente
Supresión de no-máximos al resultado del gradiente
Histéresis de umbral
Cierre de contornos abiertos
1. Obtención del gradiente:
I
J
Gaussiana
Suavizado
Detección de Bordes en una Imagen
Em
Gradiente
Derivada
Ea
ISA-UMH
Operadores Derivada
28
VISIÓN POR COMPUTADOR
2. Supresión de no-máximos al resultado del gradiente
El resultado tiene bordes anchos, poco definidos
a. Para todo punto se obtiene la dirección más cercana dk a
0º, 45º, 90º y 135º en Ea(i,j)
b. Si Em(i,j) es menor que uno de sus dos vecinos en la
dirección dk, IN(i,j)=0. Si no IN(i,j)=Em(i,j)
Detección de Bordes en una Imagen
ISA-UMH
14
Operadores Derivada
29
VISIÓN POR COMPUTADOR
3. Histéresis de umbral
Permite eliminar máximos procedentes de ruido, etc.
a. Entrada IN, Ea, y dos umbrales T1 y T2 (T2>T1)
b. Para todo punto en IN, y explorando en un orden:
a. Localizar el siguiente punto tal que IN(i,j) > T2
b. Seguir las cadenas de máximos locales a
partir de IN(i,j) en ambas direcciones
perpendiculares a la normal al borde siempre
que IN>T1. Marcar los puntos explorados.
c.
La salida es un conjunto de bordes conectados de contornos
de la imagen, así como la magnitud y orientación.
Detección de Bordes en una Imagen
ISA-UMH
Operadores Derivada
VISIÓN POR COMPUTADOR
30
MAGNITUD
DEL
GRADIENTE
IMAGEN
ORIGINAL
IMAGEN
BINARIZADA
PREVIA
HISTÉRESIS
DE
SUPRESIÓN
DEUMBRAL
NO MÁXIMOS
Detección de Bordes en una Imagen
ISA-UMH
15
Operadores Derivada
31
VISIÓN POR COMPUTADOR
4. Cierre de contornos abiertos
(Algoritmo de Deriche y Cocquerez)
a. La imagen de entrada es una imagen de contornos
binarizada (1= borde; 0=no borde)
b. Para cada punto de borde de un extremo abierto. Se
convoluciona con la máscara. El resultado es un código
que indica las direcciones en las que buscar:
20 21 22
27 0 23
26 25 24
1
2
4
128
8
64
32
16
c.
Para los pixeles marcados con este código se toma como
pixel de borde el del máximo gradiente en las tres
direcciones posibles.
d. Se repiten los pasos hasta que se cierren todos los
contornos (no se añaden nuevos píxeles de borde).
Detección de Bordes en una Imagen
ISA-UMH
Operadores segunda derivada
VISIÓN POR COMPUTADOR
É Operador Laplaciana
∇ 2 f (x ,y ) =
32
∂ 2 f ( x ,y ) ∂ 2 f ( x ,y )
+
∂x 2
∂y 2
É Ejercicio: Discretización aproximada: 1 Calcular
diferencias “hacia adelante”. 2 Calcular diferencia de
diferencias.
f (x−1, y) f (x, y)
f (x+1, y)
∆f(x)= f(x)−f(x−1)
∆f(x)= f(x+1)−f(x)
d2f/dx2=[f(x+1, y)-f(x,y)] - [f(x,y)-f(x-1,y)]
d2f/dx2= f(x-1,y) -2f(x,y) + f(x+1, y)
Detección de Bordes en una Imagen
ISA-UMH
16
Operadores segunda derivada
33
VISIÓN POR COMPUTADOR
É Discretizaciones aproximadas
∂ 2 f ( x ,y )
≈ ∆ xx f (x ,y ) = f (x + 1,y ) − 2f (x ,y ) + f (x − 1,y )
∂x 2
1
-2
1
∂ f ( x ,y )
≈ ∆ yy f (x ,y ) = f (x ,y + 1) − 2f (x ,y ) + f (x ,y −1)
∂y 2
1
2
-2
1
Detección de Bordes en una Imagen
ISA-UMH
Operadores Derivada
34
VISIÓN POR COMPUTADOR
Ñ Laplaciana: Acción conjunta de las dos máscaras
0
0
0
1
-2
1
0
0
0
+
0
1
0
0
-2
0
0
1
0
Detección de Bordes en una Imagen
=
0
1
0
1
-4
1
0
1
0
ISA-UMH
17
Operadores Derivada
35
VISIÓN POR COMPUTADOR
É Operadores Laplaciana
0
1
0
1
1
1
1
-4
1
1
-8
1
0
1
0
1
1
1
Detección de Bordes en una Imagen
-1
2
-1
2
-4
2
-1
2
-1
ISA-UMH
Operadores Derivada
36
VISIÓN POR COMPUTADOR
ÑResumen:
ÕSi los bordes están pronunciados, un detector basado en la
primera derivada funciona bien. En caso contrario, habrá que
recurrir a un detector basado en la segunda derivada.
ÕLas máscaras son simétricas rotacionalmente. Pueden
detectar bordes en todas las direcciones del espacio.
ÕEn un operador basado en la segunda derivada, se detecta el
borde mediante…
;la determinación del paso por cero (zero-crossing).
ÕMás sensible al ruido que las máscaras de gradiente.
ÕSi binarizamos la imagen se producen bordes doblesÆZero
crossings
Detección de Bordes en una Imagen
ISA-UMH
18
Operadores Derivada
37
É Operador Laplaciana de la Gaussiana
VISIÓN POR COMPUTADOR
Ñ Hemos visto que el operador Laplaciana es muy sensible al ruido
Õ Æ filtrado gaussianoÆ aplicación de máscara… doble trabajo.
G(x, y) = −
Ñ Aplicar Laplaciana a la imagen filtrada por
2
2
1
e − (x + y
2π σ
)/2 σ 2
Ñ Pero ocurre que: ∇ 2 (f(x, y)* G(x, y)) = f(x, y)* ( ∇ 2G(x, y))
Ñ Es decir: Podemos simplemente convolucionar con
⎛
x 2 + y 2 ⎞ −(x 2 + y 2 )/2σ 2
⎟e
∇ 2G(x, y) = K ⎜⎜ 2 −
σ 2 ⎟⎠
⎝
Ñ Al suavizar la imagen se reduce el efecto del ruido.
Ñ Permite trabajar a diferentes escalas al variar σ. Cuanto mayor es esta desviación,
habrá un menor número de pasos por cero (no se detectan objetos pequeños).
Detección de Bordes en una Imagen
ISA-UMH
Umbralización
38
Ñ Tipos de umbralización
VISIÓN POR COMPUTADOR
Õ Operadores basados en la primera derivada
• Umbralización simple
• Umbral T único, define la existencia de borde
• g(x, y)>T entonces BORDE
• g(x, y)<T entonces NO BORDE
• Umbralización binivel
• Dos umbrales, los puntos de borde deben
cumplir T1<g(x, y)<T2
• Umbralización ‘inteligente’. Algoritmo de Canny
siguiendo los máximos locales del gradiente.
ÕOperadores basados en la segunda derivada
;Pasos por cero
Detección de Bordes en una Imagen
ISA-UMH
19
Tabla de Contenidos
39
VISIÓN POR COMPUTADOR
É Definición de Borde
É Extracción de Bordes
É Operadores Derivada
ª Funciones Locales
É Comparación con Máscaras Orientadas
É Extracción de Esquinas
Detección de Bordes en una Imagen
ISA-UMH
Funciones Locales
40
É Diferencia de Funciones Gaussianas
VISIÓN POR COMPUTADOR
Ñ Se filtra la imagen con filtros gaussianos de
distinta sigma y se calcula la diferencia.
^
f 1 (x ,y ,σ1 ) = f (x ,y )* h(u ,v ,σ1 )
^
f 2 (x ,y ,σ 2 ) = f (x ,y )* h(u ,v ,σ 2 )
siendo h un filtro Gaussiano
Ñ Realce de los bordes
^
^
g(x ,y ) = f 1 (x ,y ,σ1 ) − f 2 (x ,y ,σ 2 )
ÑSe considera una aproximación de la Laplaciana
de la Gaussiana.
Detección de Bordes en una Imagen
ISA-UMH
20
VISIÓN POR COMPUTADOR
Comparación de Funciones Locales
Filtro: Gaussiano σ=1 Filtro: Gaussiano σ=0.7
41
Diferencia imágenes previas
Detección de Bordes en una Imagen
ISA-UMH
Comparación con Funciones Locales
42
VISIÓN POR COMPUTADOR
É Operaciones Morfológicas
Ñ Imagen dilatada multinivel
Ñ Imagen erosionada multinivel
Ñ Realce de bordes: Diferencia entre ambas
g(x ,y ) = [f (x ,y ) ⊕ e(u ,v )] − [f (x ,y )Θe(u ,v )]
Detección de Bordes en una Imagen
ISA-UMH
21
Operaciones morfológicas
43
VISIÓN POR COMPUTADOR
Imagen Dilatada Multinivel
Diferencia Dilatación-Erosión
Imagen Erosionada Multinivel
Detección de Bordes en una Imagen
ISA-UMH
Tabla de Contenidos
44
VISIÓN POR COMPUTADOR
É Definición de Borde
É Extracción de Bordes
É Operadores Derivada
É Comparación de Funciones Locales
ª Comparación con Máscaras Orientadas
É Extracción de esquinas
Detección de Bordes en una Imagen
ISA-UMH
22
Comparación con Máscaras Orientadas
45
É Conjunto de Máscaras
VISIÓN POR COMPUTADOR
Ñ Cada una resalta la existencia de un borde en
una determinada dirección
Ñ Tamaño y número
Õ Dependiente de la precisión requerida
Ñ Obtención de los bordes
g(x ,y ,i) = máx{f (x, y )* h i (u, v )}
ÑSe pueden utilizar máscaras para detectar
también esquinas o configuraciones especiales
de bordes.
Detección de Bordes en una Imagen
ISA-UMH
Comparación con Máscaras Orientadas
46
VISIÓN POR COMPUTADOR
Õ Ejemplo: Máscaras de Kirsch
-3 -3 5
-3 0 5
-3 -3 5
K0 0º
-3 5 5 5 5 5 5 5 -3
-3 0 5 -3 0 -3 5 0 -3
-3 -3 -3 -3 -3 -3 -3 -3 -3
K1 45º
K2 90º
K3 135º
5 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3
5 0 -3 5 0 -3 -3 0 -3 -3 0 5
5 -3 -3 5 5 -3 5 5 5 -3 5 5
K4 180º
K5 235º
K6 270º
K7 315º
Módulo del Gradiente = Máximo de estos valores
Dirección = Correspondiente al máximo
Detección de Bordes en una Imagen
ISA-UMH
23
Tabla de Contenidos
47
VISIÓN POR COMPUTADOR
É Definición de Borde
É Extracción de Bordes
É Operadores Derivada
É Comparación de Funciones Locales
É Comparación con Máscaras Orientadas
ª Extracción de esquinas
Detección de Bordes en una Imagen
ISA-UMH
Esquinas
VISIÓN POR COMPUTADOR
É
48
Esquinas:
Ñ Elementos en el espacio que pueden ser detectados fácilmente desde
diferentes puntos de vista.
Ñ En un borde la variación de f(x,y) es grande en una dirección y pequeña en la
dirección ortogonal.
Ñ En una esquina esta variación será grande en las dos direcciones.
É Utilidad:
Ñ Visión estéreo
Ñ Estimación del movimiento de la cámara a partir de imágenes
Ñ Reconocimiento de objetos
É Diferentes métodos:
Ñ Kitchen Rosenfeld
Ñ Beaudet
Ñ Harris
Detección de Bordes en una Imagen
ISA-UMH
24
Esquinas
49
É Método de Kitchen y Rosenfeld
VISIÓN POR COMPUTADOR
E=
f xx f y2 + f yyf x2 − 2f xy f x f y
(f x2 + f y2 ) 3/2
≥ U1
Siendo fx, fy las primeras derivadas y fxx, fxy, fyy las segundas derivadas. U1 es
un umbral para determinar si es una esquina.
É Curvatura Gaussiana (Beaudet)
f xx f yy - f xy2
K=
≥ U2
(1 + f x2 + f y2 ) 2
Detección de Bordes en una Imagen
ISA-UMH
Harris corner detector
50
VISIÓN POR COMPUTADOR
É Se fundamenta en la siguiente matriz, calculada en un entorno pxq
del punto.
⎡ ∑ I x2
C=⎢
⎣⎢∑ I x I y
∑I I
∑I
x y
2
y
⎤
⎥
⎦⎥
⎡λ
M =⎢ 1
⎣0
É Si diagonalizamos C:
0⎤
λ 2 ⎥⎦
É Los valores λ1 y λ2 nos indican la magnitud del cambio en la
dirección de los autovectores.
Dirección de
mínimo cambio
λmax
Dirección de
máximo cambio
λmin
Detección de Bordes en una Imagen
ISA-UMH
25
Harris corner detector
51
É En una esquina los valores λ1 y λ2 deben ser grandes.
É Encontramos los máximos de R que superen un valorÆesquinas
(k=0.04-0.06).
2
VISIÓN POR COMPUTADOR
R = det( M ) − k ·tr ( M )
det( M ) = λ1λ 2
tr ( M ) = λ1 + λ 2
Clasificación de
puntos
λ1 y λ2 pequeños
Detección de Bordes en una Imagen
λ2
“Borde”
λ2 >> λ1
Región
cte
“Esquina”
λ1 y λ2 grandes,
λ1 ~ λ2;
“Borde”
λ1 >> λ2
λ1
ISA-UMH
Harris corner detector
VISIÓN POR COMPUTADOR
52
Detección de Bordes en una Imagen
ISA-UMH
26
VISIÓN POR COMPUTADOR
Extracción de puntos de interés: SIFT (Scale Invariant Feature Transform)
53
É Se puede entender como una generalización de la extracción de
bordes/esquinas.
É Se añade información que permite distinguir al punto en una etapa
posterior.
É Etapas:
Ñ Detección de puntos en el espacio de escalas.
Ñ Asignación de una orientación.
Ñ Generación de un descriptor.
É Detección de puntos:
Ñ Se convoluciona la imagen con un filtro DoG (Diferencia de
Gaussianas). Es una aproximación de la laplaciana de la
⎛ x +y ⎞
⎜
⎟
Gaussiana.
⎜ − 2σ
⎟
1
⎝
⎠
2
G ( x, y,σ ) =
e
2
2
2 πσ 2
DoG ( x , y , σ ) = G ( x , y , k σ ) − G ( x , y , σ )
Ñ Es equivalente a: D(x, y,σ ) = L(x, y, kσ ) − L(x, y,σ )
L(x, y,σ ) = G(x, y,σ ) ∗ I (x, y)
Detección de Bordes en una Imagen
ISA-UMH
VISIÓN POR COMPUTADOR
Scale Invariant feature transform
54
É Se realiza un muestreo con interpolación bilineal y se continúa con el proceso.
É Los puntos significativos se extraen como máximos y minimos entre imágenes DoG
consecutivas. Se compara el píxel con sus 8 vecinos y con los 9 vecinos superiores e
inferiores. Si el píxel es un máximo o un mínimo se selecciona.
É Permite detectar puntos de forma estable ante:
Ñ Escalados, rotaciones y diferentes puntos de vista.
Ñ Cambios de iluminación.
Detección de Bordes en una Imagen
ISA-UMH
27
SIFT
VISIÓN POR COMPUTADOR
55
É Reconocimiento del punto en una etapa posterior. Requiere:
Ñ Asignación de una orientación.
Ñ Generación de un descriptor.
Detección de Bordes en una Imagen
ISA-UMH
VISIÓN POR COMPUTADOR
SIFT: Aplicaciones
56
100
Detección de Bordes en una Imagen
200
300
400
00
600
00
ISA-UMH
28