G R U P O 1 0
C A R L O S H E R C E
G U I L L E R M O G U T I É R R E Z
Detección de monedas con el
método de la
transformada de Hough
Procesamiento de Imágenes Digitales Ingeniería en Informática. Enero 2014
Índice
2 1. Introducción 2. Procedimiento de detección 3. Solución técnica 4. Bibliografía 5. DemostraciónIntroducción
3 Artículo de investigación relacionado:
Coin Detection by Mobile Devices
Wu-Ja Lin & Chih-Wei Tseng. I2MTC; IEEE, 2012
Aplicación principal: detección de monedas desde el
smartphone. Foto de monedas sobre la mano.
Algoritmos principales:
detector de bordes de Canny
Procedimiento
41. Conversión de RGB->CIE L*a*b* 2. Clustering del plano a*
3. Detector de bordes de Canny
5
Espacio de color CIE L*a*b*
En el espacio de color Lab, la diferencia
entre dos colores es proporcional a la percepción de los ojos.
Se demuestra que el plano a* (coordenada del color entre rojo y verde) separa mejor la moneda del fondo, cuando es la palma de la mano.
1. Conversión de RGB->CIE L*a*b*
6 RGB a XYZ,
1. Conversión de RGB->CIE L*a*b*
7 XYZ a Lab, (sólo componente a*):
Imagen en RGB a* en falso color 8
2. Clustering del plano a*
9Feature-Preseerving Clustering Algorithm
Algoritmo de clustering por bisección iterativo. Separa el conjunto S en dos subconjuntos SA y SB Cumpliendo:
2. Clustering del plano a*
10 Solución rápida del sistema de 4 ecuaciones anterior
para el cálculo de centros:
1. 2.
2. Clustering del plano a*
11 Simplemente queda asociar cada punto de la imagen
a un clúster u otro según su proximidad (en valor de gris) al centro del clúster (xA ó xB).
Iterativamente, biseccionar el subconjunto mayor. Tomamos, como dice en el artículo, 4 clústeres
(niveles de cuantización) como máximo.
No obstante consideramos este paso opcional, pues
dependiendo de la imagen puede empeorar el resultado que sin clustering.
a* en falso color a* cuantizado 12
3. Detector de bordes de Canny
13 Método para la detección de bordes basado en el uso
de la primera derivada, donde un cambio de
intensidad se manifiesta como un cambio brusco en la primera derivada.
Se simplifica en cinco pasos:
1. Conversión a tonos de gris y normalizar histograma 2. Filtro Gaussiano
3. Obtención del vector gradiente 4. Supresión no máximos locales 5. Doble umbralización
Paso 1 Paso 2
Se convierte la imagen
tonos de gris gracias a la componente Y del espacio XYZ, para
calcular su histograma y ecualizar el contraste de la imagen. Se aplica un filtro Gaussiano a la imagen que la suaviza y además elimina
posibles ruidos. Mejora el resultado.
14
3. Detector de bordes de Canny
15 Paso 3: Se calcula el vector gradiente a través de su
magnitud y su orientación según:
Siendo 𝑔𝑥 y 𝑔𝑦 la primera derivada en la dirección horizontal 𝑥 y
Paso 4 Paso 5
Se suprimen aquellos
píxeles que no son
máximos locales en la dirección del gradiente.
Para ello se busca la
dirección del vector
gradiente según las ocho direcciones básicas y se comprueba si es máximo.
Se realiza un proceso de
doble umbralización con T1 y T2 siendo T2 > T1:
Se marcan aquellos por
encima de T2.
Además se marcan
aquellos conectados a los primeros cuyo valor esté
por encima de T1.
16
Imagen plano *a Resultado 17
Se trata de una técnica ideada para encontrar
circunferencias en una imagen.
Se utiliza la ecuación paramétrica de una
circunferencia con centro en :
Donde es el centro de la circunferencia, que habrá que calcular por
votaciones y es el radio que se define.
4. Transformada de Hough para Círculos
184. Transformada de Hough para Círculos
19 Espacio de 3 dimensiones (2 para las coordenadas
del centro del posible círculo y 1 con los distintos radios de prueba) en el que se anotan los votos.
Parámetros para la transformada óptimos según
nuestra experimentación:
Radio mínimo: 30 píxeles Radio máximo: 80 píxeles Incremento: de 5 en 5 píxeles Umbral: votos > 60
4. Transformada de Hough para Círculos
20 Como último paso de post-tratamiento, hay que
eliminar el efecto de “círculos duplicados”:
Por cada círculo, eliminar aquellos con centro muy
próximo y diámetro inferior.
En nuestra aplicación, mostramos superpuesta sobre
la imagen inicial las circunferencias de los círculos en línea de color rojo.
Imagen de bordes Círculos detectados 21
Imagen de Entrada Imagen de Salida 22
Solución Técnica
23 Hemos desarrollado en Java un plugin para la
aplicación ImageJ (http://rsbweb.nih.gov/ij/).
Licencia de Dominio Público, desarrollado en el
Instituto Nacional de la Salud (NIH, EEUU).
Son 4 clases Java (una por cada paso del algoritmo). Más 1 clase que realiza el proceso completo.
Para instalarlo, no hay más que descomprimir el
Conclusiones
25 Aunque en el artículo se propone el paso a Lab y el
clustering, hemos comprobado que:
El paso 1 mejora el resultado final cuando el fondo de las monedas es la mano, y empeora cuando el fondo de las monedas es un folio en blanco.
Lo dejamos como paso opcional, activado por defecto.
El paso 2 mejora el resultado final si hay poca variabilidad de colores.
Lo dejamos como paso opcional, desactivado por defecto.
Futuro y aplicaciones
26 Reconocer las monedas en la imagen y contabilizar el dinero total de las monedas que aparezcan
Implementación en smartphones
Detección en tiempo real, sin necesidad de fotografía Puede contabilizar un gran
número de monedas en apenas unos segundos
Bibliografía
27① WJ. Lin, CW. Tseng. Coin detection by mobile devices.
Instrumentation and Measurement Technology
Conference (I2MTC). IEEE International, pp. 707-711, mayo 2012.
② M.J. Jiménez Rodríguez, B. Medrano Garfia.
Procesamiento de Imágenes Digitales. Universidad de Sevilla, 2013.
③ Ja-Chen Lin, Wen-Hsiang Tsai. Feature-preserving
clustering of 2-D data for two-class problems using analytical formulas: an automatic and fast approach. IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 16, Iss. 5, pp. 554-560, 1994.
28
G R A C I A S P O R S U A T E N C I Ó N
29