Download Transformada de Hough

Document related concepts

Medicina nuclear wikipedia , lookup

Transcript
Análisis de
imágenes
digitales
EXTRACCIÓN DE PATRONES
Transformada de Hough
DETECCIÓN DE RECTAS
•
La transformada de Hough es método de extracción de características
patentado por Paul Hough en 1962*, para la detección de bordes en imágenes
parametrizadas, es decir, los objetos que se desean detectar se representan por
medio de una ecuación conocida.
•
Originalmente fue diseñada para la extracción de líneas rectas, aunque se ha
extendido para identificar otras formas como círculo o elipses.
•
La idea es transformar la imagen del espacio Cartesiano xy a un espacio de
parámetros y a través de un proceso de votos identificar los puntos que
describen una línea recta u otra formulación de bordes.
*P.V.C. Hough, "Method and means for recognizing complex patterns," U.S Patent 3 069 654, Dec. 18, 1962.
2
DETECCIÓN DE RECTAS
•
•
Considérese un punto (xi,yi) en el plano xy y
una recta que pasa a través de ese punto de la
forma yi = axi + b.
y = 2x − 1
Si se varían los valores de a y b se tendrán
infinitas líneas que satisfacen la ecuación de la
recta.
•
Si cada recta que pasa por (xi,yi) se expresa en
términos de (a,b) se tiene b = −axi + yi.
•
Entonces, considerando el plano ab (espacio de
parámetros) habrá un punto para cada posible
recta que pasa por (xi,yi), esto es, una recta en el
plano xy se transforma en punto en el plano ab.
3
(xi,yi)
y
y = −x + 2
x
yi = 2xi − 1
b
yi = −xi + 2
a
DETECCIÓN DE RECTAS
•
•
•
Ahora considérese un par de puntos (xi,yi) y
(xj,yj) en el espacio xy.
(xj,yj)
y
Entonces, cuando existe una línea recta que
simultáneamente pasa por los puntos (xi,yi) y
(xj,yj) en el espacio xy, todas las posible
soluciones en el espacio de parámetros se
intersectan en algún punto (a',b').
Por tanto, todos los puntos que estén sobre
una misma línea recta en el espacio xy
compartirán un sólo punto en el espacio ab.
4
(xi,yi)
x
b
(a',b')
a
DETECCIÓN DE RECTAS
•
Algoritmo para detección de líneas en una imagen:
1. Encontrar los puntos de los bordes de la imagen con alguna técnica de
detección de bordes (e.g., el detector de Canny).
2. Definir los intervalos para los parámetros a y b.
3. Inicializar una matriz acumuladora H en ceros en donde se contarán los
votos para los valores (a,b) que sean solución a la ecuación de la recta.
4. Evaluar cada punto de borde (x,y) en la ecuación b = −axi + yi e
incrementar en ‘1’ el valor de H(a,b) que resuelva la ecuación. El resultado
será un histograma bidimensional con los valores de ocurrencia para
ciertos valores de (a,b).
5. Umbralar la matriz H para definir los puntos (a,b) con mayor ocurrencia.
Estos puntos corresponden a los parámetros de las líneas rectas
encontradas en la imagen original.
5
DETECCIÓN DE RECTAS
Imagen de entrada
Detección de bordes con Canny
Líneas detectadas
Ocurrencias
Espacio de parámetros
b
a
b
a
6
DETECCIÓN DE RECTAS
•
Ventaja: Los píxeles que están sobre una línea no necesariamente deben ser
contínuos, de modo que se pueden detectar líneas discontinuas.
•
Deventaja: Una dificultad de esta aproximación se encuentra en la
representación de líneas verticales, ya que la pendiente a→∞.
Imagen de entrada
1
Espacio de parámetros
1
2
1
3
Líneas detectadas
b
5
2
4
3
3
2
4
5
a
7
4
5
DETECCIÓN DE RECTAS
•
•
•
Para evitar el problema de valores infinitos de a,
la ecuación de la recta se puede representar en
su forma polar como: ρ = xicos θ + yisin θ.
Los puntos en el plano xy se representan como
curvas sinusoidales en el plano ρθ, donde la
intersección de dos curvas en los puntos (ρ',θ')
corresponde a la línea que pasa por (xi,yi) y
(xj,yj).
Para calcular la transformada de Hough, el
espacio ρθ se representa como una matriz
acumuladora en el rango −90º≤θ≤90º y
− 2D ≤ρ≤ 2D , donde D es la distancia distancia
entre esquinas opuestas de la imagen.
8
y
θ
ρ
(xj,yj)
(xi,yi)
x
θ’
ρ = x j cosθ + x j sin θ
ρ’
ρ = x i cosθ + y i sin θ
ρ
θ
DETECCIÓN DE RECTAS
•
Se resuelve el problema de detección de líneas verticales:
Imagen de entrada
1
Espacio de parámetros
Líneas detectadas
1
2
2
2
3
θ
3
1
3
4
4
5
5
ρ
9
4
5
DETECCIÓN DE RECTAS
Imagen de entrada
Detección de bordes con Canny
Líneas detectadas
Ocurrencias
Espacio de parámetros
θ
ρ
θ
ρ
10
DETECCIÓN DE RECTAS
Imagen de entrada
Líneas detectadas
Detección de bordes con Canny
Espacio de parámetros
ρ
11
θ
DETECCIÓN DE RECTAS
Imagen de entrada
Líneas detectadas
Detección de bordes con Canny
Espacio de parámetros
ρ
12
θ
DETECCIÓN DE CÍRCULOS
•
•
Aunque el enfoque principal de la transformada
de Hough es la detección de líneas rectas,
también se puede aplicar a cualquier función de
la forma g(v,c) = 0, donde v es un vector de
coordenadas y c es un vector de coeficientes.
y
Un ejemplo puede ser la detección de círculos,
cuya ecuación general es:
(x − a) + (y −b) = r
2
2
r
2
donde
x = a + r cos(θ ) y x = b + r sin(θ )
donde r es el radio del círculo, 1≤ a ≤N y
1≤ b ≤M, siendo N y M el ancho y la altura de la
imagen.
13
x
θ
DETECCIÓN DE CÍRCULOS
•
•
El espacio de parámetros para el círculo
pertenece a R3 mientras que la línea recta está
definida en R2. Esto quiere decir que conforme
aumenta el número de parámetros para decribir
una forma también aumenta la dimensión del
espacio de parámetros.
r
b
Para simplificar la representación del círculo se
considera el radio constante, de modo que si
conocemos de antemano el radio del círculo
que se desea detectar el espacio de parámetros
se reduce a R2.
a
14
DETECCIÓN DE RECTAS
•
Algoritmo para detección de círculos en una imagen:
1. Encontrar los puntos de los bordes de la imagen con alguna técnica de
detección de bordes (e.g., el detector de Canny).
2. Definir los intervalos para θ∈[0º, 360º] y el establecer el valor de r.
3. Inicializar una matriz acumuladora H en ceros en donde se contarán los
votos para los valores (a,b) que sean solución a la ecuación del círculo.
4. Evaluar cada punto de borde (x,y) en la ecuación r2 = (x−a)2 + (y−b)2 e
incrementar en ‘1’ el valor de H(a,b) que resuelva la ecuación. El resultado
será un histograma bidimensional con los valores de ocurrencia para
ciertos valores de (a,b).
5. Umbralar la matriz H para definir los puntos (a,b) con mayor ocurrencia.
Estos puntos corresponden a los parámetros de los círculos encontrados
en la imagen original.
15
DETECCIÓN DE RECTAS
Imagen de entrada
Círculos detectados
Detección de bordes con Canny
Espacio de parámetros
b
16
a
DETECCIÓN DE RECTAS
Imagen de entrada
Líneas detectadas
Detección de bordes con Canny
Espacio de parámetros
b
17
a
DETECCIÓN DE RECTAS
Imagen de entrada
Líneas detectadas
Detección de bordes con Canny
Espacio de parámetros
b
18
a