8. detección de rectas . transformada de hough
DESCRIPTION
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) - PowerPoint PPT PresentationTRANSCRIPT
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 alineadosSe 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:
r es la distancia de la línea al origen
es el ángulo que forma la perpendicular a la recta con el eje x
ρ = x cos θ + y sin θ
• Visión Artificial Industrial. Univ. Valladolid
Transformada de Hough
• Valores diferentes de (r, θ) 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 r = 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
• (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.
Ejemplo
• Visión Artificial Industrial. Univ. Valladolid
Píxeles contorno Votos
= 45ºr = ro
: 0 45 360
ro
Casilla más votada = 20 votos
ro
• 45º
Otro ejemplo
• 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. Construir una tabla H[r, ] para representar en función de , r
2. Inicializar la tabla de Hough H[r, ]=03. Para cada píxel de contorno de la imagen I[x,y]
representar la curva sobre la tabla incrementando cada casilla en una unidad.
H[r, ] += 14. Encontrar los valores (rmax, max) donde H[r, ] es
maximo5. La línea detectada en la imagen será
for θ=0:360 ρ = x cos θ + y sin θ
ρ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
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º.
Mejoras del algoritmo básico
• Visión Artificial Industrial. Univ. Valladolid
Ver las funciones hough, houghpeaks y houghlines.
Transf. Hough en Matlab
• 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