1
Div. Ingeniería de Sistemas y Automática
Universidad Miguel Hernández
VISIÓN POR COMPUTADOR
DETECCIÓN DE BORDES
EN UNA IMAGEN
GRUPO DE TECNOLOGÍA
INDUSTRIAL
Detección de Bordes en una Imagen Grupo de Tecnología Industrial
Tabla de Contenidos 2
Definición de Borde
É Extracción de Bordes
VISIÓN POR COMPUTADOR
É Operadores Derivada
É Comparación de Funciones Locales
É Comparación con Máscaras Orientadas
É Extracción de esquinas
É Umbralización
Detección de Bordes en una Imagen Grupo de Tecnología Industrial
1
Definición de Borde 3
Ñ Cualquier discontinuidad que sufre alguna
función de intensidad sobre los puntos de la
misma
Ñ Tipos de bordes:
VISIÓN POR COMPUTADOR
Õ Cambio brusco en la distancia cámara - objeto (dc)
Õ Cambio en la normal del objeto (n)
Õ Cambio en la reflectancia del objeto (r)
Õ Cambio en la proyección de la luz incidente (s)
dc
dc dc
r
dc
n
s
n
Detección de Bordes en una Imagen Grupo de Tecnología Industrial
Tabla de Contenidos 4
É Definición de Borde
Extracción de Bordes
VISIÓN POR COMPUTADOR
É Operadores Derivada
É Comparación de Funciones Locales
É Comparación con Máscaras Orientadas
É Extracción de esquinas
É Umbralización
Detección de Bordes en una Imagen Grupo de Tecnología Industrial
2
Extracción de Bordes 5
f(x,y) f1(x,y) g(x,y) b(x,y) y=p(x)
Filtrado Extrac. Umbral Local.
VISIÓN POR COMPUTADOR
Ñ Filtrado + Extracción = Detección de bordes
Ñ Umbralización:
Õ Selecciona pixeles etiquetados como bordes
Ñ Localización:
Õ Suministra información exacta de la posición y
orientación del borde
Detección de Bordes en una Imagen Grupo de Tecnología Industrial
Extracción de Bordes 6
É En el dominio espacial
Ñ Operadores derivada de los niveles de intensidad
Ñ Comparaciones de funciones locales de
VISIÓN POR COMPUTADOR
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.
Ñ Robustez: Pequeños cambios en la imagen (ruido)
no afectan al resultado final.
Detección de Bordes en una Imagen Grupo de Tecnología Industrial
3
Tabla de Contenidos 7
É Definición de Borde
É Extracción de Bordes
VISIÓN POR COMPUTADOR
Operadores Derivada
É Comparación de Funciones Locales
É Comparación con Máscaras Orientadas
É Extracción de esquinas
É Umbralización
Detección de Bordes en una Imagen Grupo de Tecnología Industrial
Operadores Derivada 8
É Efecto
Ñ La primera derivada
produce un resalte de
VISIÓN POR COMPUTADOR
las zonas en que la
intensidad no es Perfil de
Intensidad
homogénea.
ÑLa segunda derivada 1ª Derivada
origina un cambio de
signo en la posición
de borde. 2ª Derivada
Õ”Zero
- crossing"
(paso por cero)
Detección de Bordes en una Imagen Grupo de Tecnología Industrial
4
Operadores Derivada 9
É Vector Gradiente: El vector gradiente apunta hacia la
dirección de máxima variación de f(x, y).
⎛ ∂f (x ,y ) ⎞ ⎛ ∂f (x ,y ) ⎞
2 2
⎡ ∂f (x, y ) ⎤ Mag[∇f (x ,y )] = ⎜ ⎟ + ⎜⎜ ⎟⎟
⎝ ∂x ⎠ ⎝ ∂y ⎠
VISIÓN POR COMPUTADOR
⎢ ⎥
∇f ( x, y ) = ⎢ ∂f (∂xx, y ) ⎥
⎢ ⎥ ∂f (x ,y )
⎢⎣ ∂y ⎥⎦ θ = arctag ∂x
∂f (x ,y )
∂y
Ñ Vector unitario en la dirección del gradiente
⎛ ∂f (x ,y ) ⎞
⎛ cosθ ⎞ ⎜ ⎟
⋅ ⎜ ∂f (∂xx,y ) ⎟
1
uθ = ⎜⎜ ⎟⎟ =
⎝ senθ ⎠ ⎛ ∂f (x ,y ) ⎞ ⎛ ∂f (x ,y ) ⎞ ⎜ ⎟
2 2
⎜ ⎟ +⎜⎜ ⎟ ⎜ ∂y ⎟
⎟ ⎝ ⎠
⎝ ∂x ⎠ ⎝ ∂y ⎠
Detección de Bordes en una Imagen Grupo de Tecnología Industrial
Operadores Derivada 10
Ñ Discretización del Vector Gradiente
∂f (x ,y )
≈ ∇ x f ( x , y ) = f ( x , y ) − f ( x − 1, y ) -1 1
∂x
VISIÓN POR COMPUTADOR
Õ Desplazamiento de los bordes en una cantidad
positiva de 0.5 píxels
Detección de Bordes en una Imagen Grupo de Tecnología Industrial
5
Operadores Derivada 11
Ñ Discretización del Vector Gradiente (Eje Y)
∂f (x ,y ) -1
≈ ∇ y f (x ,y ) = f (x ,y ) − f (x ,y −1)
∂y 1
VISIÓN POR COMPUTADOR
Detección de Bordes en una Imagen Grupo de Tecnología Industrial
Operadores Derivada 12
Ñ Aproximaciones (Vector Gradiente)
∧
Mag = ∇ x f (x ,y ) + ∇ y f (x ,y )
VISIÓN POR COMPUTADOR
∧
Mag = ∇ r f (x ,y ) + ∇ c f (x ,y )
siendo
-1 0
∇ r f (x ,y ) = f (x ,y )*
0 1
0 -1
∇ c f (x ,y ) = f (x ,y )*
1 0
Detección de Bordes en una Imagen Grupo de Tecnología Industrial
6
Operadores Derivada
VISIÓN POR COMPUTADOR
13
∇ x f ( x ,y ) ∇ y f ( x ,y )
∇ r f ( x ,y ) ∇ c f ( x ,y )
Detección de Bordes en una Imagen Grupo de Tecnología Industrial
Operadores Derivada 14
É Primera Derivada Direccional
Ñ Derivada de la función f(x,y) en la dirección α
∂f (x ,y ) ∂f (x ,y )
Dα f (x ,y ) = ∇f (x ,y )T ⋅ uα = ⋅ cosα + ⋅ senα
VISIÓN POR COMPUTADOR
∂x ∂y
Ñ Derivada de la función f(x,y) en la dirección del
gradiente θ
∂f (x ,y ) ∂f (x ,y )
Dθ f (x ,y ) = ∇f (x ,y )T ⋅ uθ = ⋅ cosθ + ⋅ senθ
∂x ∂y
Õ Escogiendo el propio gradiente como vector
⎛ ∂f (x ,y ) ⎞ ⎛ ∂f (x ,y ) ⎞
2 2
Dθ f (x ,y ) = ∇f (x ,y ) ⋅ ∇f (x ,y ) = ⎜
T
⎟ + ⎜⎜ ⎟⎟
⎝ ∂x ⎠ ⎝ ∂y ⎠
Detección de Bordes en una Imagen Grupo de Tecnología Industrial
7
Operadores Derivada 15
É Primera Derivada Direccional (Ejemplo)
VISIÓN POR COMPUTADOR
Primera Derivada Direccional
(módulo)
Ñ Isotrópico (v)
Ñ No Lineal (i)
Detección de Bordes en una Imagen Grupo de Tecnología Industrial
Operadores Derivada 16
ÕGradiente de Roberts Detector horizontal
-1 -1 -1
VISIÓN POR COMPUTADOR
-1 0 0 -1
0 0 0
0 1 1 0
1 1 1
fy
Õ Detector vertical Detectores diagonales
-1 0 1 1 1 0 0 1 1
-1 0 1 1 0 -1 -1 0 1
-1 0 1 0 -1 -1 -1 -1 0
fx
Detección de Bordes en una Imagen Grupo de Tecnología Industrial
8
Operadores Derivada 17
ÕGradiente de Roberts: Umbral T=10, T=20.
VISIÓN POR COMPUTADOR
Detección de Bordes en una Imagen Grupo de Tecnología Industrial
Operadores Derivada 18
Õ Operador de Prewitt Operador de Sobel
VISIÓN POR COMPUTADOR
-1 -1 -1 -1 0 1 -1 -2 -1 -1 0 1
0 0 0 -1 0 1 0 0 0 -2 0 2
1 1 1 -1 0 1 1 2 1 -1 0 1
Õ Máscaras de Kirsch
-3 -3 5 -3 5 5 5 5 5 5 5 -3 5 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3
-3 0 5 -3 0 5 -3 0 -3 5 0 -3 5 0 -3 5 0 -3 -3 0 -3 -3 0 5
-3 -3 5 -3 -3 -3 -3 -3 -3 -3 -3 -3 5 -3 -3 5 5 -3 5 5 5 -3 5 5
K0 0º K1 45º K2 90º K3 135º 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 Grupo de Tecnología Industrial
9
Operadores Derivada 19
Ñ Ejemplos de operadores derivada
VISIÓN POR COMPUTADOR
Detector horizontal Detector vertical
Sobel horizontal Sobel vertical Detector de Sobel
Detección de Bordes en una Imagen Grupo de Tecnología Industrial
Operadores Derivada 20
É Algoritmo de Canny
Ñ Obtención del gradiente
Ñ Supresión no máxima al resultado del gradiente
VISIÓN POR COMPUTADOR
Ñ Histéresis de umbral a la supresión no máxima
Ñ Cierre de contornos abiertos
1. Obtención del gradiente:
I J Em
Gaussiana Gradiente
Suavizado Derivada Ea
Detección de Bordes en una Imagen Grupo de Tecnología Industrial
10
Operadores Derivada 21
2. Supresión de no-máximos al resultado del gradiente
El resultado tiene bordes anchos.
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,
VISIÓN POR COMPUTADOR
IN(i,j)=0. Si no IN(i,j)=Em(i,j)
3. Histéresis de umbral a la supresión no máxima
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 Grupo de Tecnología Industrial
Operadores Derivada 22
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 le
VISIÓN POR COMPUTADOR
asigna un código que determina las direcciones de
búsqueda para el cierre del contorno. Se utiliza la
convolución con las máscaras:
20 21 22
27 1 23
1 2 4 128 8 64 32 16
26 25 24
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 Grupo de Tecnología Industrial
11
Operadores Derivada
VISIÓN POR COMPUTADOR
23
IMAGEN BINARIZADA
SUPRESIÓN DE NO
IMAGEN PREVIA
MÁXIMOS
HISTÉRESIS DE ORIGINAL
UMBRAL
Detección de Bordes en una Imagen Grupo de Tecnología Industrial
Operadores segunda derivada 24
É Operador Laplaciana
∂ 2 f ( x ,y ) ∂ 2 f ( x ,y )
∇ 2 f (x ,y ) = +
∂x 2 ∂y 2
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
1
∂ 2 f ( x ,y )
≈ ∆ yy f (x ,y ) = f (x ,y + 1) − 2f (x ,y ) + f (x ,y −1) -2
∂y 2
1
Detección de Bordes en una Imagen Grupo de Tecnología Industrial
12
Operadores Derivada 25
Ñ Acción conjunta de las dos máscaras
0 1 0
VISIÓN POR COMPUTADOR
1 -4 1
0 1 0
Operador Laplaciana
Detección de Bordes en una Imagen Grupo de Tecnología Industrial
Operadores Derivada 26
É Operadores Laplaciana
0 1 0 1 1 1
1 -4 1 1 -8 1
VISIÓN POR COMPUTADOR
0 1 0 1 1 1
-1 2 -1
2 -4 2
-1 2 -1
Ñ Las máscaras son simétricas rotacionalmente. Pueden
detectar bordes en todas las direcciones del espacio.
Ñ Se detecta el borde de forma precisa mediante la
determinación del paso por cero (zero-crossing).
Ñ En la práctica es muy sensible al ruido.
Detección de Bordes en una Imagen Grupo de Tecnología Industrial
13
Operadores Derivada 27
É Operador Laplaciana de la Gaussiana
Ñ Se aplica la Laplaciana a la imagen suavizada por el filtro gaussiano.
1 2 2 2
G(x, y) = − e −(x + y )/2σ ∇ 2 (f(x, y)* G(x, y)) = f(x, y)* ( ∇ 2G(x, y))
2π σ
VISIÓN POR COMPUTADOR
Ñ Es decir: Se convoluciona la imagen con
⎛ x 2 + y 2 ⎞ −(x 2 + y 2 )/2σ 2
∇ 2G(x, y) = K ⎜⎜ 2 − ⎟e
⎝ σ 2 ⎟⎠
Ñ Al suavizar la imagen se reduce el efecto del ruido.
Ñ Se puede trabajar a diferentes escalas al variar el valor de la desviación
estándar de la Gaussiana. Cuanto mayor es esta desviación, habrá un menor
número de pasos por cero (no se detectan objetos pequeños).
Ñ El filtro obtenido resulta bastante costoso en tiempo de computación.
Positivos – Blanco
Original + LG Pasos por Cero
Negativos - Negro
Detección de Bordes en una Imagen Grupo de Tecnología Industrial
Operadores Derivada 28
Ñ Aproximación de Haralick y Shaphiro (para la extracción de bordes)
Õ Se filtra la imagen con la Laplaciana de la Gaussiana
Õ Un pixel es declarado como cero:
; Si es menor que –t y uno de sus ocho vecinos es mayor
VISIÓN POR COMPUTADOR
que t
; Si es mayor que t y uno de sus ocho vecinos es menor
que -t
t=4000
Desviación = 2.0
Detección de Bordes en una Imagen Grupo de Tecnología Industrial
14
Tabla de Contenidos 29
É Definición de Borde
É Extracción de Bordes
VISIÓN POR COMPUTADOR
É Operadores Derivada
Comparación de Funciones Locales
É Comparación con Máscaras Orientadas
É Extracción de Esquinas
É Umbralización
Detección de Bordes en una Imagen Grupo de Tecnología Industrial
Comparación de Funciones Locales 30
É Diferencia de Funciones Gaussianas
Ñ 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 )
^
VISIÓN POR COMPUTADOR
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 Grupo de Tecnología Industrial
15
Comparación de Funciones Locales
VISIÓN POR COMPUTADOR
31
Filtro: Gaussiano σ=1 Filtro: Gaussiano σ=0.7 Diferencia imágenes previas
Detección de Bordes en una Imagen Grupo de Tecnología Industrial
Comparación con Funciones Locales 32
É Funciones Exponenciales simétricas
ÑGeneralización de funciones Gaussianas.
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 Grupo de Tecnología Industrial
16
Comparación con Funciones Locales 33
Imagen Dilatada Multinivel
VISIÓN POR COMPUTADOR
Diferencia Dilatación-Erosión
Imagen Erosionada Multinivel
Detección de Bordes en una Imagen Grupo de Tecnología Industrial
Tabla de Contenidos 34
É Definición de Borde
É Extracción de Bordes
VISIÓN POR COMPUTADOR
É Operadores Derivada
É Comparación de Funciones Locales
Comparación con Máscaras Orientadas
É Extracción de Esquinas
É Umbralización
Detección de Bordes en una Imagen Grupo de Tecnología Industrial
17
Comparación con Máscaras Orientadas 35
É Conjunto de Máscaras
Ñ Cada una resalta la existencia de un borde en
una determinada dirección
VISIÓN POR COMPUTADOR
Ñ 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 Grupo de Tecnología Industrial
Tabla de Contenidos 36
É Definición de Borde
É Extracción de Bordes
VISIÓN POR COMPUTADOR
É Operadores Derivada
É Comparación de Funciones Locales
É Comparación con Máscaras Orientadas
Extracción de Esquinas
É Umbralización
Detección de Bordes en una Imagen Grupo de Tecnología Industrial
18
Extracción de Esquinas 37
É Método de Kitchen y Rosenfeld
f xx f y2 + f yyf x2 − 2f xy f x f y
E= ≥ U1
(f x2 + f y2 ) 3/2
VISIÓN POR COMPUTADOR
Siendo fx, fy las primeras derivadas y fxx, fxy, fyy las segundas derivadas. U1 es
un umbral para determinar si hay borde.
É Curvatura Gaussiana (Beaudet)
f xx f yy - f xy2
K= ≥ U2
(1 + f x2 + f y2 ) 2
Detección de Bordes en una Imagen Grupo de Tecnología Industrial
Umbralización 38
É Umbralización
Ñ Etiquetado de los pixeles de
borde
Ñ Problemas
Õ Pérdidas de conectividad:
VISIÓN POR COMPUTADOR
; bordes poco definidos
; filtrados muy fuertes
; umbral muy exigente
Õ Generación de bordes de
anchura múltiple:
; efectos del filtrado
; umbral poco exigente
Õ Existencia de falsos
bordes:
; presencia de ruido
Detección de Bordes en una Imagen Grupo de Tecnología Industrial
19
Umbralización 39
Ñ Tipos de umbralización
Õ Operadores basados en la primera derivada
VISIÓN POR COMPUTADOR
• 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.
Detección de Bordes en una Imagen Grupo de Tecnología Industrial
Umbralización 40
Ñ Ejemplos de imágenes de borde umbralizadas
Imagen original Bordes Umbral
VISIÓN POR COMPUTADOR
Detección de Bordes en una Imagen Grupo de Tecnología Industrial
20
Umbralización 41
É Localización de la posición del borde
VISIÓN POR COMPUTADOR
Ñ Imagen umbralizada → Adelgazamiento
Õ Buscamos bordes de anchura unidad
Õ Información a nivel de pixel
Ñ Supresión de no máximos
Õ Bordes de anchura unidad
Detección de Bordes en una Imagen Grupo de Tecnología Industrial
21