2. Presentacion PPT Detección líneas Hough

Download Report

Transcript 2. Presentacion PPT Detección líneas Hough

8. Detección de Rectas.
Transformada de Hough
Universidad de Valladolid
Detección de Líneas Rectas
• Los detectores de contornos encuentran los
contornos a nivel de píxel (edgels)
• Para llevar a cabo el análisis de imagen los
edgels deben agruparse en entidades de
mayor significación como son las cadenas de
contornos.
• Muchas veces estamos interesados en buscar
cadenas de contorno rectas.
•Visión Artificial Industrial. Univ. Valladolid
Detección de Líneas Rectas
¿Cómo podemos detectar sólo las líneas rectas ?
•Visión Artificial Industrial. Univ. Valladolid
Detección de Líneas Rectas
¿Cómo podemos detectar sólo las líneas rectas ?
•Visión Artificial Industrial. Univ. Valladolid
Detección de Líneas Rectas
Monitorización del tráfico
•Visión Artificial Industrial. Univ. Valladolid
Detección de Líneas Rectas
Detección de placas de matrícula en vehículos
•Visión Artificial Industrial. Univ. Valladolid
Detección de Líneas Rectas
Posición de objetos con contornos rectos
•Visión Artificial Industrial. Univ. Valladolid
Detección de Líneas Rectas
Transformada de Hough
• La transformada de Hough es una técnica para detectar
líneas rectas en imágenes (ya veremos más adelante que
también sirve para la detección de curvas).
• Las líneas pueden presentar ruido o estar incompletas.
• La transformada Hough traslada el difícil problema de
detectar segmentos de rectas en la imagen en un sencillo
sistema de votación donde sólo habrá que encontrar las
casillas más votadas.
•Visión Artificial Industrial. Univ. Valladolid
Espacio Imagen y de Parámetros
Espacio Imagen
Espacio de Parámetros
Una línea en el espacio imagen es un
punto en el espacio de parámetros (y al revés)
Espacio Imagen y de Parámetros
Espacio Imagen
Espacio de Parámetros
Todas las rectas correspondientes a puntos alineados
Se cortan en un punto determinando la m y b
Espacio Imagen y de Parámetros
•Un problema que surge al emplear la ecuación de la
recta y=mx+b para representar las rectas es que
tanto la pendiente como la ordenada al origen pueden
llegar a valer infinito, según la línea se hace vertical.
•Una forma de solventar este problema consiste en
•utilizar la representación polar de la recta
•Visión Artificial Industrial. Univ. Valladolid
Forma Polar de la Recta
Forma polar para representar las rectas:
ρ = x cos θ + y sin θ
 es la distancia de la línea al origen
 es el ángulo que forma la perpendicular a la
recta con el eje x
•Visión Artificial Industrial. Univ. Valladolid
Transformada de Hough
•
•
•
Valores diferentes de (, θ) proporcionan distintas líneas.
Para cada píxel de contorno que aparece en la posición
(x, y) existe una familia de líneas que pasan por este
punto dadas por
 = x cos θ + y sin θ
Cada píxel de contorno vota por todas las líneas en la
familia.
for tita=0:360
rho=x*cos(tita) + y*sen(tita)
•
Si aparece una casilla que tenga muchos votos es que los
parámetros de esa línea corresponden a la recta que
pasa por todos los puntos.
•Visión Artificial Industrial. Univ. Valladolid
Ejemplo
•(a) Imagen con cuatro puntos de contorno.
•(b) Tabla de Hough mostrando cuatro curvas correspondientes a la
familia de rectas que pasan por cada punto. En la tabla se aprecian
seis puntos de intersección que corresponderían a las seis rectas
que pueden pasar por los cuatro puntos.
•Visión Artificial Industrial. Univ. Valladolid
Otro ejemplo
Votos
Píxeles contorno
•45º
o
o
 = 45º
 = o
:0
45
360
Casilla más votada = 20 votos
•Visión Artificial Industrial. Univ. Valladolid
Si los puntos de contorno no están sobre una misma recta
ninguna casilla tiene una votación especialmente alta
•Visión Artificial Industrial. Univ. Valladolid
Algoritmo Básico de la T. de Hough
1.
2.
3.
Construir una tabla H[, ] para representar en
función de , 
Inicializar la tabla de Hough H[, ]=0
Para cada píxel de contorno de la imagen I[x,y]
representar la curva sobre la tabla incrementando
cada casilla en una unidad.
for θ=0:360 ρ = x cos θ + y sin θ
4.
5.
H[, ] += 1
Encontrar los valores (max, max) donde H[, ] es
maximo
La línea detectada en la imagen será
ρmax = x cos θmax + y sin θmax
Algoritmo de la Transformada de Hough

¿Cómo deben ser las celdas de grandes? Si las divisiones son
muy groseras no distinguiremos entre líneas distintas y si son muy
pequeñas, aparte de aumentar las necesidades de memoria y
cálculo, se producirá una dispersión en la tabla debido al ruido.
•Visión Artificial Industrial. Univ. Valladolid
Votos
Casilla más votada = 6 votos
•Visión Artificial Industrial. Univ. Valladolid
Mejoras del algoritmo básico
Si se conoce la orientación de los contornos, (la detección
de contornos con el gradiente proporciona esta información)
para cada punto de contorno sólo es preciso votar en la
casilla correspondiente a esa línea (definida por el punto y
la orientación).
Hay que tener cuidado con la precisión en el cálculo de la
dirección del gradiente. Para curarse en salud conviene
votar también en las casillas correspondientes a
desviaciones de +-20º.
•Visión Artificial Industrial. Univ. Valladolid
Transf. Hough en Matlab
Ver las funciones hough, houghpeaks y houghlines.
•Visión Artificial Industrial. Univ. Valladolid
Conclusiones
• La búsqueda de rectas es una tarea que resulta muy útil
en muchas aplicaciones de visión artificial.
• La transformada de Hough es robusta al ruido y a la falta
de datos (falta de trozos de recta).
• La transformada de Hough puede emplearse para detectar
los puntos de contorno que pertenecen no sólo a rectas
sino a cualquier figura que pueda ser parametrizada por
ejemplo círculos y elipses. El coste computacional se
incrementa con el número de parámetros que describen la
curva.
•Visión Artificial Industrial. Univ. Valladolid