Las transformadas de Hough son técnicas para la detección de objetos , un paso crítico en muchas implementaciones de visión por computadora o minería de datos a partir de imágenes. Específicamente, la transformada de Hough aleatoria es una variante probabilística de la transformada de Hough clásica y se usa comúnmente para detectar curvas (línea recta, círculo, elipse, etc.) [ 1 ] La idea básica de la transformada de Hough (HT) es implementar un procedimiento de votación para todas las curvas potenciales en la imagen, y al finalizar el algoritmo , las curvas que existen en la imagen tendrán puntuaciones de votación relativamente altas. La transformada de Hough aleatoria (RHT) es diferente de HT en que intenta evitar realizar el costoso proceso de votación para cada píxel no nulo en la imagen aprovechando las propiedades geométricas de las curvas analíticas, y así mejorar la eficiencia temporal y reducir los requisitos de almacenamiento del algoritmo original.
Motivación
Aunque la transformada de Hough (HT) se ha utilizado ampliamente en la detección de curvas , tiene dos inconvenientes principales: [ 2 ] Primero, para cada píxel no nulo en la imagen, los parámetros de la curva existente y las redundantes se acumulan durante el procedimiento de votación. Segundo, la matriz acumuladora (o espacio de Hough) se predefine de forma heurística. Cuanto mayor sea la precisión requerida, mayor deberá ser la resolución de los parámetros. Estas dos necesidades suelen resultar en un gran requerimiento de almacenamiento y una baja velocidad para aplicaciones reales. Por lo tanto, se propuso la transformada de Hough inversa (RHT) para abordar este problema.
Implementación
En comparación con HT, RHT aprovecha el hecho de que algunas curvas analíticas pueden determinarse completamente mediante un cierto número de puntos en la curva. Por ejemplo, una línea recta puede determinarse mediante dos puntos, y una elipse (o un círculo) mediante tres puntos. El caso de la detección de elipses puede utilizarse para ilustrar la idea básica de RHT. Todo el proceso generalmente consta de tres pasos:
- Ajustar elipses con puntos seleccionados aleatoriamente.
- Actualizar la matriz acumuladora y las puntuaciones correspondientes.
- Muestra las elipsis con puntuaciones superiores a un umbral predefinido.
Ajuste elíptico
Una ecuación general para definir elipses es:
con restricción:
Sin embargo, una elipse puede determinarse completamente si se conocen tres puntos sobre ella y las tangentes que pasan por esos puntos.
RHT comienza seleccionando aleatoriamente tres puntos en la elipse. Sean,yEl primer paso consiste en hallar las tangentes de estos tres puntos. Estas se pueden obtener ajustando una línea recta mediante la técnica de mínimos cuadrados a una pequeña ventana de píxeles vecinos.
El siguiente paso es encontrar los puntos de intersección de las líneas tangentes. Esto se puede hacer fácilmente resolviendo las ecuaciones de las líneas encontradas en el paso anterior. Entonces, sean los puntos de interseccióny, los puntos medios de los segmentos de líneayseryEntonces el centro de la elipse estará en la intersección deyNuevamente, las coordenadas del punto de intersección se pueden determinar resolviendo ecuaciones de línea, y el proceso detallado se omite aquí por brevedad.
Sea la coordenada del centro de la elipse hallada en el paso anterior.. Entonces el centro se puede trasladar al origen conyde modo que la ecuación de la elipse se pueda simplificar a:
Ahora podemos calcular el resto de los parámetros de la elipse:,ysustituyendo las coordenadas de,yen la ecuación anterior.
Acumulación
Con los parámetros de la elipse determinados en la etapa anterior, el array acumulador se actualiza en consecuencia. A diferencia de la transformada de Hough clásica, la transformada de Hough inversa (RHT) no mantiene una cuadrícula de cubos como array acumulador. En cambio, primero calcula las similitudes entre la elipse recién detectada y las que ya están almacenadas en el array acumulador. Se pueden usar diferentes métricas para calcular la similitud. Si la similitud supera un umbral predefinido, se reemplaza la elipse en el acumulador con el promedio de ambas y se le suma 1 a su puntuación. De lo contrario, se inicializa esta elipse en una posición vacía en el acumulador y se le asigna una puntuación de 1.
Terminación
Una vez que la puntuación de una elipse candidata supera el umbral, se determina que existe en la imagen (es decir, se detecta) y debe eliminarse de la imagen y del acumulador para que el algoritmo pueda detectar otras elipses potenciales con mayor rapidez. El algoritmo finaliza cuando el número de iteraciones alcanza un límite máximo o cuando se han detectado todas las elipses.
Pseudocódigo para RHT: [ 3 ]
mientras (encontramos elipsis Y no alcanzamos la época máxima) { para (un número fijo de iteraciones) { Encuentra una elipse potencial. si (la elipse es similar a una elipse en el acumulador) entonces Reemplaza el valor del acumulador con el promedio de dos elipsis y suma 1 a la puntuación; demás Inserta la elipsis en una posición vacía del acumulador con una puntuación de 1; } Seleccione la elipse con la mejor puntuación y guárdela en una tabla de mejores elipses; Eliminar de la imagen los píxeles de la mejor elipse; Vacía el acumulador; }Referencias
- ↑ DH Ballard, "Generalización de la transformada de Hough para detectar formas arbitrarias", Pattern Recognition, vol. 13, n.º 2, págs. 111-122, 1981
- ↑ L. Xu, E. Oja y P. Kultanan, "Un nuevo método de detección de curvas: Transformada de Hough aleatoria (RHT)", Pattern Recog. Lett. 11, 1990, 331-338.
- ↑ S. Inverso, “Detección de elipses mediante la transformada de Hough aleatoria”, www.saminverso.com/res/vision/EllipseDetectionOld.pdf, 20 de mayo de 2002
- Procesamiento de imágenes
- visión por computadora