La transformada de Hough generalizada ( GHT ), introducida por Dana H. Ballard en 1981, es una modificación de la transformada de Hough que utiliza el principio de coincidencia de plantillas . [ 1 ] La transformada de Hough se desarrolló inicialmente para detectar formas definidas analíticamente (por ejemplo, línea , círculo , elipse , etc.). En estos casos, conocemos la forma y nuestro objetivo es determinar su ubicación y orientación en la imagen. Esta modificación permite utilizar la transformada de Hough para detectar un objeto arbitrario descrito con su modelo.
El problema de encontrar un objeto (descrito mediante un modelo) en una imagen se resuelve determinando la posición del modelo en la imagen. Mediante la transformada de Hough generalizada, este problema se transforma en el de encontrar el parámetro de la transformación que mapea el modelo en la imagen. Conociendo el valor de dicho parámetro, se puede determinar la posición del modelo en la imagen.
La implementación original de la GHT utilizaba información de borde para definir una correspondencia entre la orientación de un punto de borde y un punto de referencia de la forma. En el caso de una imagen binaria, donde los píxeles pueden ser blancos o negros, cada píxel negro de la imagen puede ser un píxel negro del patrón deseado, creando así un conjunto de puntos de referencia en el espacio de Hough. Cada píxel de la imagen vota por sus puntos de referencia correspondientes. Los puntos máximos del espacio de Hough indican posibles puntos de referencia del patrón en la imagen. Este máximo se puede encontrar explorando el espacio de Hough o resolviendo un conjunto relajado de ecuaciones , cada una de las cuales corresponde a un píxel negro. [ 2 ]
Historia
Merlin y Farber [ 3 ] mostraron cómo usar un algoritmo de Hough cuando las curvas deseadas no podían describirse analíticamente. Fue un precursor del algoritmo de Ballard, que se limitaba a la traslación y no tenía en cuenta la rotación ni los cambios de escala . [ 4 ]
El algoritmo Merlin-Farber no es práctico para datos de imágenes reales, ya que en una imagen con muchos píxeles de borde, encuentra muchos falsos positivos debido a la disposición repetitiva de los píxeles.
Teoría de la transformada de Hough generalizada
Para generalizar el algoritmo de Hough a curvas no analíticas, Ballard define los siguientes parámetros para una forma generalizada: a={y,s,θ} donde y es un origen de referencia para la forma, θ es su orientación y s = (s x , s y ) describe dos factores de escala ortogonales . Un algoritmo puede calcular el mejor conjunto de parámetros para una forma dada a partir de datos de píxeles de borde. Estos parámetros no tienen el mismo estatus. La ubicación del origen de referencia, y , se describe en términos de una tabla plantilla llamada tabla R de posibles orientaciones de píxeles de borde. El cálculo de los parámetros adicionales s y θ se realiza mediante transformaciones directas a esta tabla. La generalización clave a formas arbitrarias es el uso de información direccional. Dada cualquier forma y un punto de referencia fijo en ella, en lugar de una curva paramétrica, la información proporcionada por los píxeles de borde se almacena en forma de tabla R en la etapa de transformación. Para cada punto de borde en la imagen de prueba, se consultan las propiedades del punto en la tabla R, se recupera el punto de referencia y se incrementa la celda correspondiente en la matriz acumuladora. La celda con el mayor número de votos en la matriz acumuladora puede ser un posible punto de referencia fijo del objeto en la imagen de prueba.
Construyendo la tabla R
Elija un punto de referencia y para la forma (normalmente dentro de la forma). Para cada punto límite x , calcule ɸ(x) , la dirección del gradiente y r = y – x como se muestra en la imagen. Almacene r como una función de ɸ . Observe que cada índice de ɸ puede tener muchos valores de r . Se pueden almacenar las diferencias de coordenadas entre la referencia fija y el punto de borde ((x c – x ij ), (y c – y ij )) o como la distancia radial y el ángulo entre ellos (r ij , α ij ) . Habiendo hecho esto para cada punto, la tabla R representará completamente el objeto plantilla. Además, como la fase de generación es invertible, podemos usarla para localizar ocurrencias de objetos en otros lugares de la imagen.

localización de objetos
Para cada píxel de borde x en la imagen, se calcula el gradiente ɸ y se incrementan todos los puntos correspondientes x+r en el acumulador A (inicializado al tamaño máximo de la imagen), donde r es una entrada de la tabla indexada por ɸ , es decir, r(ɸ) . Estos puntos de entrada nos dan cada posición posible para el punto de referencia. Aunque se pueden calcular algunos puntos falsos, dado que el objeto existe en la imagen, se producirá un máximo en el punto de referencia. Los máximos en A corresponden a las posibles instancias de la forma.
Generalización de la escala y la orientación
Para una orientación fija de la forma, la matriz acumuladora era bidimensional en las coordenadas del punto de referencia. Para buscar formas de orientación arbitraria θ y escala s , estos dos parámetros se agregan a la descripción de la forma. La matriz acumuladora ahora consta de cuatro dimensiones correspondientes a los parámetros (y, s, θ) . La tabla R también se puede usar para incrementar este espacio de mayor dimensión ya que diferentes orientaciones y escalas corresponden a transformaciones fácilmente calculables de la tabla. Denotemos una tabla R particular para una forma S por R(ɸ) . Transformaciones simples a esta tabla le permitirán detectar instancias escaladas o rotadas de la misma forma. Por ejemplo, si la forma se escala por s y esta transformación se denota por T s . entonces T s [R(ɸ)] = sR(ɸ) es decir, todos los vectores se escalan por s . Además, si el objeto se rota por θ y esta transformación se denota por T θ , entonces T θ [R(ɸ)] = Rot{R[(ɸ-θ)mod2π],θ} es decir, todos los índices se incrementan por – θ módulo 2π, se encuentran los vectores r apropiados y luego se rotan por θ . Otra propiedad que será útil para describir la composición de transformadas de Hough generalizadas es el cambio de punto de referencia. Si queremos elegir un nuevo punto de referencia ỹ tal que y-ỹ = z entonces la modificación a la tabla R viene dada por R(ɸ)+ z , es decir, z se añade a cada vector en la tabla.
Método alternativo utilizando pares de aristas
Un par de píxeles de borde pueden utilizarse para reducir el espacio de parámetros. Utilizando la tabla R y las propiedades descritas anteriormente, cada píxel de borde define una superficie en el espacio acumulador tetradimensional a = (y, s, θ) . Dos píxeles de borde con orientaciones diferentes describen la misma superficie rotada en la misma cantidad con respecto a θ . Si estas dos superficies se intersecan, los puntos de intersección corresponderán a posibles parámetros a para la forma. Por lo tanto, teóricamente es posible utilizar los dos puntos en el espacio de la imagen para reducir el lugar geométrico en el espacio de parámetros a un solo punto. Sin embargo, las dificultades para encontrar los puntos de intersección de las dos superficies en el espacio de parámetros harán que este enfoque sea inviable en la mayoría de los casos.
Formas compuestas
Si la forma S tiene una estructura compuesta que consta de subpartes S 1 , S 2 , .. S N y los puntos de referencia para las formas S , S 1 , S 2 , .. S N son y , y 1 , y 2 , .. y n , respectivamente, entonces para un factor de escala s y una orientación θ , la transformada de Hough generalizada R s (ɸ) viene dada porLa preocupación con esta transformación radica en que la elección de la referencia puede afectar significativamente la precisión. Para superar esto, Ballard sugirió suavizar el acumulador resultante con una plantilla de suavizado compuesta. La plantilla de suavizado compuesta H(y) se define como una convolución compuesta de plantillas de suavizado individuales de las subformas. . Entonces, el acumulador mejorado viene dado por A s = A*H y los máximos en A s corresponden a posibles instancias de la forma.
Descomposición espacial
Al observar que la transformada de Hough global se puede obtener mediante la suma de las transformadas de Hough locales de subregiones disjuntas, Heather y Yang [ 5 ] propusieron un método que implica la subdivisión recursiva de la imagen en subimágenes, cada una con su propio espacio de parámetros, y organizadas en una estructura de quadtree . Esto resulta en una mayor eficiencia para encontrar los puntos finales de los segmentos de línea y una mayor robustez y fiabilidad en la extracción de líneas en situaciones ruidosas, con un ligero aumento en el consumo de memoria.
Implementación
La implementación utiliza las siguientes ecuaciones: [ 6 ]
Combinando las ecuaciones anteriores tenemos:
Construcción de la tabla R
- (0) Convierta la imagen de la forma de muestra en una imagen de bordes utilizando cualquier algoritmo de detección de bordes como el detector de bordes de Canny.
- (1) Elija un punto de referencia (por ejemplo, (x c , y c ) )
- (2) Dibuje una línea desde el punto de referencia hasta el límite.
- (3) Calcular ɸ
- (4) Almacene el punto de referencia (x c , y c ) como una función de ɸ en la tabla R(ɸ) .
Detección:
- (0) Convierta la imagen de la forma de muestra en una imagen de borde utilizando cualquier algoritmo de detección de bordes como el detector de bordes de Canny .
- (1) Inicializar la tabla del acumulador: A[x cmin . . . x cmax ][y cmin . . . y cmax ]
- (2) Para cada punto de borde (x, y)
- (2.1) Utilizando el ángulo de gradiente ɸ , recupere de la tabla R todos los valores (α, r) indexados bajo ɸ .
- (2.2) Para cada (α,r) , calcule los puntos de referencia candidatos:
- x c = x + r cos(α)
- y c = y + r sin(α)
- (2.3) Aumentar los contadores (votación):
- ++A([[x c ]][y c ])
- (3) Las posibles ubicaciones del contorno del objeto vienen dadas por los máximos locales en A[x c ][y c ] .
- Si A[x c ][y c ] > T , entonces el contorno del objeto está ubicado en (x c , y c ).
Caso general:
Supongamos que el objeto ha sufrido una rotación Θ y un escalado uniforme s :
- (x ′ , y ′ ) → (x″, y″)
- x″ = (x ′ cos(Θ) – y ′ sin(Θ))s
- y″ = (x ′ sin(Θ) + y ′ cos(Θ))s
- Sustituyendo x ′ por x″ e y ′ por y″:
- x c = x – x″ o x c = x - (x ′ cos(Θ) – y ′ sin(Θ))s
- y c = y – y″ o y c = y - (x ′ sin(Θ) + y ′ cos(Θ))s
- (1) Inicializar la tabla del acumulador: A[x cmin . . . x cmax ][y cmin . . . y cmax ][q min . . . q max ][s min . . . s max ]
- (2) Para cada punto de borde (x, y)
- (2.1) Utilizando su ángulo de gradiente ɸ , recupere todos los valores (α, r) de la tabla R.
- (2.2) Para cada (α, r) , calcule los puntos de referencia candidatos:
- x ′ = r cos(α)
- y ′ = r sin(α)
- para( Θ = Θ mín ; Θ ≤ Θ máx ; Θ++ )
- para( s = s min ; s ≤ s max ; s++ )
- x c = x - (x ′ cos(Θ) – y ′ sin(Θ))s
- y c = y - (x ′ sin(Θ) + y ′ cos(Θ))s
- ++(A[x c ][y c ][Θ][s])
- para( s = s min ; s ≤ s max ; s++ )
- (3) Las posibles ubicaciones del contorno del objeto vienen dadas por los máximos locales en A[x c ][y c ][Θ][s]
- Si A[x c ][y c ][Θ][s] > T , entonces el contorno del objeto está ubicado en (x c , y c ) , ha sufrido una rotación Θ , y ha sido escalado por s .
Ventajas y desventajas
Ventajas
- Es resistente a formas parciales o ligeramente deformadas (es decir, resistente al reconocimiento bajo oclusión).
- Es resistente a la presencia de estructuras adicionales en la imagen.
- Es tolerante al ruido.
- Puede encontrar múltiples ocurrencias de una forma durante la misma pasada de procesamiento.
Desventajas
- Tiene importantes requisitos computacionales y de almacenamiento que se vuelven críticos cuando hay que considerar la orientación y la escala de los objetos.
Trabajos relacionados
Ballard sugirió utilizar información de orientación del borde para disminuir el costo computacional. Se han propuesto muchas técnicas GHT eficientes, como la SC-GHT (que utiliza la pendiente y la curvatura como propiedades locales). [ 7 ] Davis y Yam [ 8 ] también propusieron una extensión del trabajo de Merlin para la coincidencia invariante de orientación y escala, que complementa el trabajo de Ballard, pero no incluye la utilización por parte de Ballard de información de pendiente del borde y estructuras compuestas.
Véase también
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
- ↑ Jaulin, L.; Bazeille, S. (2013). Extracción de la forma de la imagen mediante métodos de intervalo (PDF) . En Actas de Sysid 2009, Saint-Malo, Francia.
- ↑ Merlin, PM; Farber, DJ (enero de 1975). "Un mecanismo paralelo para detectar curvas en imágenes" . IEEE Transactions on Computers . C-24 (1): 96–98 . doi : 10.1109/tc.1975.224087 . ISSN 0018-9340 . S2CID 27723442 .
- ↑ L. Davis, "Transformadas de Hough generalizadas jerárquicas y transformadas de Hough generalizadas basadas en segmentos de línea" , Ciencias de la Computación de la Universidad de Texas, noviembre de 1980
- ↑ JA Heather, Xue Dong Yang, "Descomposición espacial de la transformada de Hough" , Segunda Conferencia Canadiense sobre Visión por Computadora y Robótica, 2005.
- ^ Ballard y Brown, sección 4.3.4, Sonka et al., sección 5.2.6
- ↑ AA Kassim, T. Tan, KH Tan, "Un estudio comparativo de técnicas eficientes de transformada de Hough generalizada", Image and Vision Computing, Volumen 17, Número 10, Páginas 737-748, agosto de 1999
- ↑ L. Davis y S. Yam, "Una transformación generalizada tipo Hough para el reconocimiento de formas" . University of Texas Computer Sciences, TR-134, febrero de 1980.
Enlaces externos
- Implementación de la transformada de Hough generalizada en OpenCV : http://docs.opencv.org/master/dc/d46/classcv_1_1GeneralizedHoughBallard.html
- Tutorial e implementación de transformadas de Hough generalizadas http://www.itriacasa.it/generalized-hough-transform/default.html Archivado el 30/01/2016 en Wayback Machine
- Implementación práctica de la transformada de Hough generalizada http://www.irit.fr/~Julien.Pinquier/Docs/Hough_transform.html
- Implementación en FPGA de transformadas de Hough generalizadas, Biblioteca Digital IEEE https://ieeexplore.ieee.org/document/5382047/
- Implementación en MATLAB de la transformada de Hough generalizada http://www.mathworks.com/matlabcentral/fileexchange/44166-generalized-hough-transform
- Procesamiento de imágenes