La transformada de Hough es una técnica de extracción de características utilizada en análisis de imágenes , visión artificial , reconocimiento de patrones y procesamiento de imágenes digitales . [1] [2] El propósito de la técnica es encontrar instancias imperfectas de objetos dentro de una cierta clase de formas mediante un procedimiento de votación. Este procedimiento de votación se lleva a cabo en un espacio de parámetros , a partir del cual se obtienen candidatos a objetos como máximos locales en un llamado espacio acumulador que se construye explícitamente mediante el algoritmo para calcular la transformada de Hough.
La transformada de Hough clásica se ocupaba de la identificación de líneas en la imagen, pero más tarde la transformada de Hough se ha extendido a la identificación de posiciones de formas arbitrarias, más comúnmente círculos o elipses . La transformada de Hough tal como se utiliza universalmente hoy en día fue inventada por Richard Duda y Peter Hart en 1972, quienes la llamaron una "transformada de Hough generalizada" [3] en honor a la patente relacionada de 1962 de Paul Hough. [4] [5] La transformada fue popularizada en la comunidad de visión por computadora por Dana H. Ballard a través de un artículo de revista de 1981 titulado " Generalizing the Hough transform to detect arbitrary shapes ".
Se inventó inicialmente para el análisis automático de fotografías de cámaras de burbujas (Hough, 1959).
La transformada de Hough fue patentada como patente estadounidense 3.069.654 en 1962 y asignada a la Comisión de Energía Atómica de Estados Unidos con el nombre de "Método y medios para reconocer patrones complejos". Esta patente utiliza una parametrización de pendiente-intersección para líneas rectas, lo que conduce de forma extraña a un espacio de transformada ilimitado, ya que la pendiente puede llegar al infinito.
La parametrización rho-theta utilizada universalmente hoy en día fue descrita por primera vez en
aunque ya era estándar para la transformación de Radon desde al menos la década de 1930.
La variación de O'Gorman y Clowes se describe en
La historia de cómo se inventó la forma moderna de la transformada de Hough se da en
En el análisis automatizado de imágenes digitales , a menudo surge un subproblema de detección de formas simples, como líneas rectas, círculos o elipses. En muchos casos, se puede utilizar un detector de bordes como etapa de preprocesamiento para obtener puntos de imagen o píxeles de imagen que estén en la curva deseada en el espacio de la imagen. Sin embargo, debido a imperfecciones en los datos de la imagen o en el detector de bordes, puede haber puntos o píxeles faltantes en las curvas deseadas, así como desviaciones espaciales entre la línea/círculo/elipse ideal y los puntos de borde ruidosos tal como se obtienen del detector de bordes. Por estas razones, a menudo no es trivial agrupar las características de borde extraídas en un conjunto apropiado de líneas, círculos o elipses. El propósito de la transformada de Hough es abordar este problema al hacer posible realizar agrupaciones de puntos de borde en candidatos a objetos mediante la realización de un procedimiento de votación explícito sobre un conjunto de objetos de imagen parametrizados (Shapiro y Stockman, 304).
El caso más simple de la transformada de Hough es la detección de líneas rectas. En general, la línea recta y = mx + b se puede representar como un punto ( b , m ) en el espacio de parámetros. Sin embargo, las líneas verticales plantean un problema. Darían lugar a valores ilimitados del parámetro de pendiente m . Por lo tanto, por razones computacionales, Duda y Hart [6] propusieron el uso de la forma normal de Hesse.
donde es la distancia desde el origen hasta el punto más cercano en la línea recta, y es el ángulo entre el eje y la línea que une el origen con ese punto más cercano.
La intuición para esta forma, de manera similar a la ecuación del plano, es que cada vector en la línea debe ser perpendicular (ortogonal) a la línea recta de longitud que viene del origen. Se puede ver que el punto de intersección de la línea de función y la línea perpendicular que viene del origen está en . Entonces, para cualquier punto en la línea, el vector debe ser ortogonal al vector . Por lo tanto, obtenemos que para cualquier punto en la línea de función, la ecuación debe cumplirse. Por lo tanto, . Como y , obtenemos . Como , obtenemos la forma final de .
Por lo tanto, es posible asociar a cada línea de la imagen un par . El plano se denomina a veces espacio de Hough para el conjunto de líneas rectas en dos dimensiones. Esta representación hace que la transformada de Hough sea conceptualmente muy cercana a la transformada de Radon bidimensional . De hecho, la transformada de Hough es matemáticamente equivalente a la transformada de Radon, pero las dos transformaciones tienen diferentes interpretaciones computacionales tradicionalmente asociadas con ellas. [7]
Dado un único punto en el plano, el conjunto de todas las líneas rectas que pasan por ese punto corresponde a una curva sinusoidal en el plano ( r , θ ), que es única para ese punto. Un conjunto de dos o más puntos que forman una línea recta producirá sinusoides que se cruzan en el plano ( r , θ ) de esa línea. Por lo tanto, el problema de detectar puntos colineales se puede convertir en el problema de encontrar curvas concurrentes .
Dada una forma parametrizada por , que toma valores en el conjunto llamado espacio de forma, se puede interpretar la transformada de Hough como la transformada inversa de una distribución de probabilidad en el espacio de la imagen al espacio de forma , e interpretar la detección de forma como una estimación de máxima verosimilitud .
Explícitamente, la transformada de Hough realiza una inferencia bayesiana ingenua aproximada . Comenzamos con una distribución a priori uniforme en el espacio de formas. Consideramos solo la evidencia positiva e ignoramos toda la evidencia negativa, de modo que podamos detectar formas parcialmente ocluidas.
Sumamos la verosimilitud logarítmica en el espacio de formas hasta una constante aditiva. El supuesto de Bayes ingenuo significa que todos los píxeles en el espacio de la imagen proporcionan evidencia independiente, de modo que sus verosimilitudes se multiplican, es decir, sus verosimilitudes logarítmicas se suman. La libertad en la constante aditiva nos permite no realizar ninguna operación en los "píxeles de fondo" en el espacio de formas.
Por último, realizamos una estimación de máxima verosimilitud seleccionando los picos en la verosimilitud logarítmica en el espacio de formas. [8]
Derivaciones
El algoritmo de transformada lineal de Hough estima los dos parámetros que definen una línea recta. El espacio de transformación tiene dos dimensiones y cada punto en el espacio de transformación se utiliza como acumulador para detectar o identificar una línea descrita por . Cada punto en los bordes detectados en la imagen contribuye a los acumuladores.
La dimensión del acumulador es igual al número de parámetros desconocidos, es decir, dos, considerando los valores cuantificados de y en el par . Para cada píxel en y su entorno, el algoritmo de la transformada de Hough determina si hay suficiente evidencia de una línea recta en ese píxel. Si es así, calculará los parámetros de esa línea, luego buscará el contenedor del acumulador en el que caen los parámetros e incrementará el valor de ese contenedor.
Al encontrar los contenedores con los valores más altos, generalmente buscando máximos locales en el espacio acumulador, se pueden extraer las líneas más probables y leer sus definiciones geométricas (aproximadas) (Shapiro y Stockman, 304). La forma más sencilla de encontrar estos picos es aplicando algún tipo de umbral, pero otras técnicas pueden producir mejores resultados en diferentes circunstancias: determinar qué líneas se encuentran y cuántas. Dado que las líneas devueltas no contienen ninguna información de longitud, a menudo es necesario, en el siguiente paso, encontrar qué partes de la imagen coinciden con qué líneas. Además, debido a errores de imperfección en el paso de detección de bordes, generalmente habrá errores en el espacio acumulador, lo que puede hacer que no sea trivial encontrar los picos apropiados y, por lo tanto, las líneas apropiadas.
El resultado final de la transformada lineal de Hough es una matriz bidimensional similar al acumulador: una dimensión de esta matriz es el ángulo cuantificado y la otra dimensión es la distancia cuantificada . Cada elemento de la matriz tiene un valor igual a la suma de los puntos o píxeles que se encuentran en la línea representada por los parámetros cuantificados . Por lo tanto, el elemento con el valor más alto indica la línea recta que está más representada en la imagen de entrada. [9]
Considere tres puntos de datos, mostrados aquí como puntos negros.
De los cálculos se desprende que en ambos casos la línea de apoyo a 60° tiene una longitud similar. Por lo tanto, se entiende que las líneas correspondientes (las azules en la imagen anterior) son muy similares. Por lo tanto, se puede suponer que todos los puntos se encuentran cerca de la línea azul.
El siguiente es un ejemplo diferente que muestra los resultados de una transformada de Hough en una imagen rasterizada que contiene dos líneas gruesas.
Los resultados de esta transformación se almacenaron en una matriz. El valor de la celda representa el número de curvas que pasan por cualquier punto. Los valores de celda más altos se representan más brillantes. Los dos puntos claramente brillantes son los parámetros de Hough de las dos líneas. A partir de las posiciones de estos puntos, se puede determinar el ángulo y la distancia desde el centro de la imagen de las dos líneas en la imagen de entrada.
Una mejora sugerida por O'Gorman y Clowes se puede utilizar para detectar líneas si se tiene en cuenta que el gradiente local de la intensidad de la imagen será necesariamente ortogonal al borde. Dado que la detección de bordes generalmente implica calcular la magnitud del gradiente de intensidad, la dirección del gradiente se encuentra a menudo como un efecto secundario. Si un punto dado de coordenadas ( x,y ) resulta estar de hecho en una línea, entonces la dirección local del gradiente da el parámetro θ correspondiente a dicha línea, y luego se obtiene inmediatamente el parámetro r . (Shapiro y Stockman, 305) La dirección del gradiente se puede estimar con una precisión de 20°, lo que acorta la traza sinusoidal de los 180° completos a aproximadamente 45°. Esto reduce el tiempo de cálculo y tiene el interesante efecto de reducir el número de votos inútiles, mejorando así la visibilidad de los picos correspondientes a líneas reales en la imagen.
Fernandes y Oliveira [10] sugirieron un esquema de votación mejorado para la transformada de Hough que permite que una implementación de software logre un rendimiento en tiempo real incluso en imágenes relativamente grandes (por ejemplo, 1280×960). La transformada de Hough basada en kernel utiliza la misma parametrización propuesta por Duda y Hart, pero opera en grupos de píxeles aproximadamente colineales. Para cada grupo, los votos se emiten utilizando un kernel elíptico-gaussiano orientado que modela la incertidumbre asociada con la línea de mejor ajuste con respecto al grupo correspondiente. El enfoque no solo mejora significativamente el rendimiento del esquema de votación, sino que también produce un acumulador mucho más limpio y hace que la transformada sea más robusta a la detección de líneas espurias.
Limberger y Oliveira [11] sugirieron una técnica determinista para la detección de planos en nubes de puntos no organizadas cuyo costo está en el número de muestras, logrando un rendimiento en tiempo real para conjuntos de datos relativamente grandes (hasta puntos en una CPU de 3,4 GHz). Se basa en una estrategia de votación rápida de transformada de Hough para regiones planas, inspirada en la transformada de Hough basada en kernel (KHT). Esta transformada de Hough basada en kernel 3D (3DKHT) utiliza un algoritmo rápido y robusto para segmentar grupos de muestras aproximadamente coplanares y emite votos para grupos individuales (en lugar de para muestras individuales) en un acumulador esférico ( ) utilizando un kernel gaussiano trivariado. El enfoque es varios órdenes de magnitud más rápido que las técnicas existentes (no deterministas) para la detección de planos en nubes de puntos, como RHT y RANSAC , y escala mejor con el tamaño de los conjuntos de datos. Se puede utilizar con cualquier aplicación que requiera una detección rápida de características planares en conjuntos de datos grandes.
Aunque la versión de la transformación descrita anteriormente se aplica únicamente a la búsqueda de líneas rectas, se puede utilizar una transformación similar para encontrar cualquier forma que pueda representarse mediante un conjunto de parámetros. Un círculo, por ejemplo, se puede transformar en un conjunto de tres parámetros, que representan su centro y radio, de modo que el espacio de Hough se vuelve tridimensional. También se pueden encontrar de esta manera elipses y curvas arbitrarias, al igual que cualquier forma que se pueda expresar fácilmente como un conjunto de parámetros.
La generalización de la transformada de Hough para detectar formas analíticas en espacios que tienen cualquier dimensionalidad fue propuesta por Fernandes y Oliveira. [12] A diferencia de otros enfoques basados en la transformada de Hough para formas analíticas, la técnica de Fernandes no depende de la forma que uno quiere detectar ni del tipo de datos de entrada. La detección puede ser llevada a un tipo de forma analítica cambiando el modelo asumido de geometría donde los datos han sido codificados (por ejemplo, espacio euclidiano , espacio proyectivo , geometría conforme , etc.), mientras que la formulación propuesta permanece sin cambios. Además, garantiza que las formas deseadas se representen con el menor número posible de parámetros, y permite la detección concurrente de diferentes tipos de formas que mejor se ajusten a un conjunto de entrada de entradas con diferentes dimensionalidades y diferentes definiciones geométricas (por ejemplo, la detección concurrente de planos y esferas que mejor se ajusten a un conjunto de puntos, líneas rectas y círculos).
Para formas más complicadas en el plano (es decir, formas que no se pueden representar analíticamente en algún espacio 2D), se utiliza la transformada de Hough generalizada [13] , que permite que una característica vote por una posición, orientación y/o escala particular de la forma utilizando una tabla de búsqueda predefinida. La transformada de Hough acumula contribuciones de todos los píxeles en el borde detectado.
Modificar el algoritmo para detectar formas circulares en lugar de líneas es relativamente sencillo.
Si no conocemos de antemano el radio del círculo que intentamos localizar, podemos utilizar un espacio acumulador tridimensional para buscar círculos con un radio arbitrario. Naturalmente, esto es más costoso desde el punto de vista computacional.
Este método también puede detectar círculos que estén parcialmente fuera del espacio del acumulador, siempre que una parte suficiente del área del círculo aún esté presente dentro de él.
La transformada de Hough también se puede utilizar para la detección de objetos 3D en datos de rango o nubes de puntos 3D . La extensión de la transformada de Hough clásica para la detección de planos es bastante sencilla. Un plano se representa mediante su ecuación explícita para la que podemos utilizar un espacio de Hough 3D correspondiente a , y . Esta extensión sufre de los mismos problemas que su contraparte 2D, es decir, los planos casi horizontales se pueden detectar de forma fiable, mientras que el rendimiento se deteriora a medida que la dirección plana se vuelve vertical (los grandes valores de y amplifican el ruido en los datos). Esta formulación del plano se ha utilizado para la detección de planos en las nubes de puntos adquiridas a partir del escaneo láser aerotransportado [14] y funciona muy bien porque en ese dominio todos los planos son casi horizontales.
Para la detección generalizada de planos mediante la transformada de Hough, el plano puede parametrizarse mediante su vector normal (utilizando coordenadas esféricas) y su distancia desde el origen, lo que da como resultado un espacio de Hough tridimensional. Esto hace que cada punto de los datos de entrada vote por una superficie sinusoidal en el espacio de Hough. La intersección de estas superficies sinusoidales indica la presencia de un plano. [15] Un enfoque más general para más de tres dimensiones requiere que las heurísticas de búsqueda sigan siendo factibles. [16]
La transformada de Hough también se ha utilizado para encontrar objetos cilíndricos en nubes de puntos mediante un método de dos pasos. El primer paso determina la orientación del cilindro y el segundo la posición y el radio. [17]
Un detalle de variación común es que la búsqueda de los contenedores con el recuento más alto en una etapa se puede utilizar para limitar el rango de valores buscados en la siguiente.
Un espacio de parámetros de alta dimensión para la transformada de Hough no solo es lento, sino que, si se implementa sin pensarlo de antemano, puede sobrepasar fácilmente la memoria disponible. Incluso si el entorno de programación permite la asignación de una matriz más grande que el espacio de memoria disponible a través de la memoria virtual, la cantidad de intercambios de páginas necesarios para esto será muy exigente porque la matriz de acumuladores se utiliza de manera aleatoria y rara vez se detiene en la memoria contigua al saltar de un índice a otro.
Considere la tarea de encontrar elipses en una imagen de 800x600. Suponiendo que los radios de las elipses están orientados a lo largo de los ejes principales, el espacio de parámetros es de cuatro dimensiones. ( x , y ) define el centro de la elipse, y a y b denotan los dos radios. Permitir que el centro esté en cualquier parte de la imagen agrega la restricción 0<x<800 y 0<y<600. Si se dan los mismos valores a los radios como restricciones, lo que queda es una matriz de acumuladores escasamente llena de más de 230 mil millones de valores.
Es poco probable que un programa así concebido pueda asignar suficiente memoria. Esto no significa que el problema no pueda resolverse, sino que se pueden encontrar nuevas formas de limitar el tamaño de la matriz de acumuladores que lo hagan factible. Por ejemplo:
Al aplicar sólo las tres primeras de estas restricciones al ejemplo mencionado, el tamaño de la matriz del acumulador se reduce en casi un factor de 1000, llevándolo a un tamaño que tiene muchas más probabilidades de caber en la memoria de una computadora moderna.
Yonghong Xie y Qiang Ji ofrecen una manera eficiente de implementar la transformada de Hough para la detección de elipses superando los problemas de memoria. [18] Como se analiza en el algoritmo (en la página 2 del artículo), este enfoque utiliza solo un acumulador unidimensional (para el eje menor) para detectar elipses en la imagen. La complejidad es O(N 3 ) en la cantidad de puntos distintos de cero en la imagen.
La transformada de Hough sólo es eficiente si una gran cantidad de votos cae en el contenedor correcto, de modo que éste pueda detectarse fácilmente en medio del ruido de fondo. Esto significa que el contenedor no debe ser demasiado pequeño, o de lo contrario algunos votos caerán en los contenedores vecinos, reduciendo así la visibilidad del contenedor principal. [19]
Además, cuando el número de parámetros es grande (es decir, cuando utilizamos la transformada de Hough con más de tres parámetros), el número promedio de votos emitidos en un solo contenedor es muy bajo, y aquellos contenedores que corresponden a una figura real en la imagen no necesariamente parecen tener un número de votos mucho mayor que sus vecinos. La complejidad aumenta a una tasa de con cada parámetro adicional, donde es el tamaño del espacio de la imagen y es el número de parámetros. (Shapiro y Stockman, 310) Por lo tanto, la transformada de Hough debe utilizarse con mucho cuidado para detectar cualquier cosa que no sean líneas o círculos.
Por último, gran parte de la eficiencia de la transformada de Hough depende de la calidad de los datos de entrada: los bordes deben detectarse bien para que la transformada de Hough sea eficiente. El uso de la transformada de Hough en imágenes ruidosas es un asunto muy delicado y, por lo general, se debe utilizar una etapa de eliminación de ruido antes. En el caso de que la imagen esté dañada por el moteado, como es el caso de las imágenes de radar, a veces se prefiere la transformada de Radon para detectar líneas, porque atenúa el ruido mediante la suma.
{{cite journal}}
: Verificar |url=
valor ( ayuda )