8. Detección de Rectas . Transformada de Hough

22
8. Detección de Rectas. Transformada de Hough Universidad de Valladolid

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 Presentation

Transcript of 8. Detección de Rectas . Transformada de Hough

Page 1: 8.  Detección  de  Rectas . Transformada  de Hough

8. Detección de Rectas. Transformada de Hough

Universidad de Valladolid

Page 2: 8.  Detección  de  Rectas . Transformada  de Hough

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

Page 3: 8.  Detección  de  Rectas . Transformada  de Hough

Detección de Líneas Rectas

¿Cómo podemos detectar sólo las líneas rectas ? • Visión Artificial Industrial. Univ. Valladolid

Page 4: 8.  Detección  de  Rectas . Transformada  de Hough

Detección de Líneas Rectas

¿Cómo podemos detectar sólo las líneas rectas ? • Visión Artificial Industrial. Univ. Valladolid

Page 5: 8.  Detección  de  Rectas . Transformada  de Hough

Detección de Líneas Rectas

Monitorización del tráfico

• Visión Artificial Industrial. Univ. Valladolid

Page 6: 8.  Detección  de  Rectas . Transformada  de Hough

Detección de Líneas Rectas

Detección de placas de matrícula en vehículos• Visión Artificial Industrial. Univ. Valladolid

Page 7: 8.  Detección  de  Rectas . Transformada  de Hough

Detección de Líneas Rectas

Posición de objetos con contornos rectos• Visión Artificial Industrial. Univ. Valladolid

Page 8: 8.  Detección  de  Rectas . Transformada  de Hough

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

Page 9: 8.  Detección  de  Rectas . Transformada  de Hough

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)

Page 10: 8.  Detección  de  Rectas . Transformada  de Hough

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

Page 11: 8.  Detección  de  Rectas . Transformada  de Hough

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

Page 12: 8.  Detección  de  Rectas . Transformada  de Hough

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

Page 13: 8.  Detección  de  Rectas . Transformada  de Hough

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

Page 14: 8.  Detección  de  Rectas . Transformada  de Hough

• (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

Page 15: 8.  Detección  de  Rectas . Transformada  de Hough

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

Page 16: 8.  Detección  de  Rectas . Transformada  de Hough

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

Page 17: 8.  Detección  de  Rectas . Transformada  de Hough

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

Page 18: 8.  Detección  de  Rectas . Transformada  de Hough

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

Page 19: 8.  Detección  de  Rectas . Transformada  de Hough

Votos

Casilla más votada = 6 votos

• Visión Artificial Industrial. Univ. Valladolid

Page 20: 8.  Detección  de  Rectas . Transformada  de Hough

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

Page 21: 8.  Detección  de  Rectas . Transformada  de Hough

Ver las funciones hough, houghpeaks y houghlines.

Transf. Hough en Matlab

• Visión Artificial Industrial. Univ. Valladolid

Page 22: 8.  Detección  de  Rectas . Transformada  de Hough

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