230 likes | 602 Views
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)
E N D
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 de Parámetros Espacio Imagen Unalínea en el espacioimagenes un punto en el espacio de parámetros (y al revés)
Espacio Imagen y de Parámetros Espacio de Parámetros Espacio Imagen Todaslasrectascorrespondientes a puntosalineados Se cortan en un puntodeterminando 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 • es la distancia de la línea al origen es el ángulo que forma la perpendicular a la recta con el eje x Forma polar para representar las rectas: ρ = x cos θ + y sin θ • Visión Artificial Industrial. Univ. Valladolid
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. Transformada de Hough • 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º ro ro q = 45º r = ro q: 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 • Construir una tabla H[r, ] para representar en función de , r • Inicializar la tabla de Hough H[r, ]=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. • H[r, ] += 1 • Encontrar los valores (rmax, max) donde H[r, ] es maximo • 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
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 Verlasfuncioneshough, 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