Procesamiento Digital de Imagenes para Conteo de Monedas en MATLAB

Procesamiento digital de imágenes para el reconocimiento de monedas en MATLAB Jimmy Anaya, Estudiante, UDI, Rexnik Díaz

Views 185 Downloads 2 File size 584KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Procesamiento digital de imágenes para el reconocimiento de monedas en MATLAB Jimmy Anaya, Estudiante, UDI, Rexnik Díaz Estudiante, UDI.Renzzo Gómez Estudiante, UDI, Oscar Ramos, Estudiante, UDI.

Resumen— La implementación de la herramienta MATLAB se ha establecido como un estándar para el procesamiento digital de imágenes y reconocimiento de patrones en las mismas. Más específicamente en el área de control y automatización de procesos académicos e industriales, en los que se requiera un análisis lógico y preciso de los resultados visibles en un proceso realizado por uno o más sistemas. En el presente caso se propone llevar a cabo la identificación y conteo de monedas de cuatro denominaciones vigentes diferentes. Este desarrollo se lleva a cabo por medio de tres procedimientos específicos, filtrado, sectorización, y proporcionalidad de áreas en las imágenes; lo que permite un desempeño robusto y preciso del software propuesto. Por último se dispone también de una interface de usuario utilizando la herramienta GUI y el Matlab Compiler con el fin de hacer de esta una aplicación ejecutable independiente. Palabras clave—Filtro, regionprops, área, sectorización.

I.

Con este software además es posible establecer referencias auxiliares para identificación de áreas específicas por criterio de proporcionalidad, basta con usar comandos que calculen las propiedades geométricas de las áreas es una imagen ya sea esta de tipo RGB, escala de grises o binaria. III. OBJETIVOS A. Generales 1.

Realizar el reconocimiento y conteo de monedas por medio del procesamiento digital de imágenes en MATLAB.

B. Específicos 1. Conocer a profundidad el funcionamiento estructural de un código fuente para procesamiento de imágenes. 2. Establecer los parámetros o patrones que permiten hacer una identificación de monedas óptimo.

INTRODUCCION

E

n el presente informe se encuentran condensados todos los resultados obtenidos al utilizar MATLAB como compilador principal en el reconocimiento de imágenes para la identificación y conteo óptimo de cuatro denominaciones diferentes de monedas colombianas $100,$200, $50 y $500. Además se presentan los resultados adquiridos al aplicar cada uno de los comandos o sentencias que son indispensables para el funcionamiento del software desarrollado; también se habla acerca de los problemas que se presentaron durante la creación del código fuente principal. Por otro lado se describen los procedimientos implementados para la creación de la interface de usuario la cual se contempla como una alternativa para la implementación del software dentro de un aplicativo comercial hipotético.

IV. DESARROLLO DEL PROYECTO A.

Como primer procedimiento se disponen las siguientes condiciones para la captura fotográfica:

1.

La superficie de captura debe ser de un material oscuro (preferiblemente negro) y de un material no reflectivo y sin poros. 2. Para la captura se usara una cámara digital configurada con una resolución fija de 5Megapixels. 3. Se utilizara de igual modo una base metálica con el fin de estandarizar la distancia de captura entre la cámara digital y la superficie. 4. Las imágenes capturadas deben ser transferidas manualmente al PC vía USB y ubicadas en la carpeta dispuesta para su lectura en el código fuente.

II. MARCO TEORICO

MATLAB cuenta con un gran número de comandos y sentencias que se utilizan para la detección de objetos o patrones dentro de una imagen, con estos comandos es posible alterar las imágenes de modo que algunas de sus propiedades se resalten o se atenúen, entre las propiedades que se pueden modificar por medio de sentencias que recorren la imagen se encuentran, contraste, brillo, nivel de grises y binarización. Universitaria de Investigación y Desarrollo e-mail: [email protected]

Captura:

B.

Primera etapa: filtrado de la imagen. 1.

2.

La primera etapa para realizar el filtrado de la imagen es transformar a escala de grises. Seguidamente se realiza la binarización de la imagen con cálculo de umbral automático y discriminación

de áreas insignificantes en la imagen usando el comando bwareaopen. En este caso se discriminaron las áreas menores a 30 pixeles clasificándolas como “ruido”. 3.

4.

fragmentos de imagen por separado e identificando áreas validas, el proceso es mucho más específico y discriminativo.

El siguiente procedimiento corresponde a el llenado o relleno de secciones de área incompletas por medio de algoritmos de conglomerado de pixeles, y usando la sentencia imfill(x, ‘holes’); siendo x la imagen a rellenar.Fig.1 muestra un ejemplo claro de una imagen procesada con los filtros anteriormente mencionados. A continuación se procede al etiquetamiento y conteo de elementos conectados en la imagen por medio del comando [L NUM] =bwlabel este comando retorna una matriz L de igual tamaño que la imagen a analizar y NUM entrega el número de elementos conectados en la imagen. El etiquetamiento se hace promedio del análisis de conglomerado de pixeles similares. Este proceso se realiza básicamente con el fin de establecer las áreas que se encuentran en la imagen.

5.

Seguidamente se realiza el cálculo de áreas y cancroides de los objetos considerados como áreas en la imagen a través de regionprops(L,’Area’,’Centroid’), con estos parámetros será posible crear proporciones para la discriminación de monedas en pasos posteriores. El área será dada como una magnitud que indica el número de pixeles que ocupa un objeto en la imagen, por el contrario el centriode se usara únicamente como referencia de un punto central del objeto.

6.

Con el fin de obtener mayor precisión en el cálculo de proporciones es adecuado usar una imagen como referencia dentro de la imagen la cual debe ubicarse en la parte superior izquierda de la imagen, ya que la lectura matricial de la misma se realiza en dirección, izquierda-derecha. Teniendo en cuenta esto, es preciso establecer el área de dicho objeto con el propósito de crear una proporcionalidad referenciamoneda; este cálculo se realiza por medio de la lectura de las posiciones del vector Area de regionprops asi:

D.

1.

El primer paso para realizar una sectorización efectiva esta en declarar las dimensiones totales de la imagen usando una variable diferente de la que se usa inicialmente en la lectura de la misma.

2.

Luego se deben ubicar los centroides de todas las imágenes y establecer una extracción cartesiana de los fragmentos de imagen correspondientes a cada moneda. Este procedimiento se realiza con la ayuda de las propiedades de área y centroide de la imagen; en el que el área ayuda a establecer el número de monedas que existen en la imagen, es decir el número de veces que se debe ejecutar la sentencia de sectorización; por otro lado el centroide servirá como referencia cartesiana para delimitar el fragmento a extraer. Dicho proceso esta descrito puntualmente en el Anexo.1.

3.

Como paso final se debe habilitar cada una de las imágenes sectorizadas para su respectivo análisis de proporcionalidad de áreas. Con este fin, se debe binarizar la imagen de nuevo, ya que para su visualización sectorizada fue necesario observar la imagen en escala de grises. De igual modo se eliminan áreas insignificantes que se toman en la sectorización y que hacen parte de otras figuras en la imagen. Fig.2 muestra un ejemplo de una área extraída de la imagen estudiada en este se pueden especular las magnitudes cartesianas que se usaron para determinar el tamaño de la muestra. Discriminación por proporcionalidad de áreas: Esta sin duda es la parte más compleja del software en la que se utilizara la estrategia de crear rangos dinámicos de discriminación de áreas por medio de una serie de condicionamientos anidados que finalmente imprimirán un mensaje final referente al número de monedas encontradas, el valor de cada una de ellas y la sumatoria de las mismas.

areareferencia = prop(1).Area; De igual modo se calcula el radio de los círculos detectados en el área. Este valor será de gran ayuda para el proceso de sectorización de la imagen.

C.

Sectorización: En este proceso se busca realizar el filtrado y análisis de propiedades de imagen de una forma más precisa, organizada y rápida, ya que cuando se analizan los

Fig.1 Imagen Filtrada

Metric=4*pi*propfinal(pos).Area/propfinal(pos).Perim eter^2; En donde propfinal (pos).Area, es el área de cada una de las áreas encontradas las cuales son almacenadas en el array pos. Y propfinal(pos).Perimeter es el perímetro de cada área hallado automáticamente por el software. 5.

Fig.2 Ejemplo de imagen Sectorizada 1.

2.

En esta etapa se procede a aplicar otro tipo de filtro en la imagen, en este caso se trata de un filtro de supresión de valores medios en el que se trata de aumentar el contraste cromático de la imagen al máximo por medio de ciertas técnicas de nulidad de bordes a la imagen multiplicando “ceros” a los pixeles que corresponden a los bordes de las monedas en la imagen. Para implementar el filtro basta con aplicar el comando medfilt2 a la imagen a tratar. De igual modo se utiliza el comando ordfilt2 para dilatar la imagen de tal forma que esta no posea irregularidades en sus bordes debido a fenómenos derivados de la erosión por el filtro de valores medios. Para realizar cálculos de proporcionalidad también es trascendental realizar una identificación morfológica de los objetos en la imagen, este parámetro se puede magnificar utilizando las siguientes sentencias: se = strel('disk',2); bw2 = imclose(J,se); bw2 = imfill(bw2,'holes');

E.

La discriminación por condicionamiento se presenta estableciendo una condición general primaria en la que todas las áreas que posean un valor para metric menor que 0.85 no deben entrar en consideración para la discriminación por áreas; dicha discriminación se realiza por medio de la determinación de una proporción entre el área de referencia, previamente mencionada y cada área hallada en la figura. Como agregado indispensable se realizó la escritura del texto correspondiente en cada imagen indicando el valor de la moneda, y la sumatoria de los valores fue llevada por un contador contiguo. Los resultados finales de la práctica son visualizados en Fig.3, en donde se muestra la imagen RGB original con su respectivo etiquetado y sumatoria de valores.

Interface Grafica La interface gráfica del software posee varios elementos activos en los que se visualizan las imágenes procesadas y se controlan los procesos a realizar. Dicha interface cuenta con tres visualizadores de imagen en diferentes etapas, además de tres botones con funciones definidas, ejecutar corre el programa principal, webcam inicializa la cámara web para la captura de la imagen y captura toma las imágenes; por otro lado la interface posee también elementos statictext los cuales permiten mostrar tres datos diferentes,

Estas sentencias establecen elementos con estructura morfológica en forma de disco con un radio específico y además también se produce un encerramiento morfológico de cada área encontrada. 3.

4.

En el siguiente paso se realiza un etiquetado de elementos conectados en la imagen y por segunda vez se hace uso de las funciones de regionprops con el fin de calcular valores de las nuevas áreas, posteriores a los filtros y de igual modo para conocer cuál es el perímetro de las áreas calculado automáticamente con el propósito de hallar un índice propio de las figuras circulares, el cual oscila entre valores de 0.85 y 0.96. En este nivel comienza a hacerse un recorrido desde la primera área hasta la última, para poder realizar la discriminación basada en condicionamientos para todas las monedas. En este punto se deben calcular los valores de la variable metric para cada área; la fórmula para encontrar metric se define como:

Fig.3 Resultados Finales

[2]

Cantidad de monedas, valor monetario encontrado y tiempo que demora la ejecución. Por último se tiene un elemento activo de gran importancia el cual controla una variable dentro del programa que se encarga de variar el ajuste de la imagen dependiendo de la luminosidad del ambiente de captura; este elemento es un edit text y tiene un rango de varianza entre 0 y 8. Fig.4 expone una imagen previa de la interface gráfica que se encuentra relacionada procesalmente en el Anexo.1.

V. CONCLUSIONES

Al final del proyecto es menester definir los aspectos más relevantes que rodearon la elaboración del software principal, entre estos aspectos se encuentran: 1.

2.

3.

4.

5.

La mayor dificultad al realizar la discriminación de proporcionalidad por área en las imágenes fue encontrar un rango dinámico que permitiera diferenciar la moneda de $100 y la moneda de $500, debido a que estas poseen áreas muy similares. Se presentaron problemas al utilizar una referencia de forma cuadrada ya que al implementar el filtro medfilt2 esta forma tiende a adquirir cierta curvatura en sus esquinas perdiendo así pixeles y reduciendo du área lo que provocó una inexactitud a la hora de hallar la constante de proporcionalidad que se halla en los condicionamientos anidados. El factor de distancia en la captura es una variable fácilmente controlable por medio del uso de referencias, sin embargo, el fenómeno de reflexión de la luz es una variable que debe ser controlada manualmente, dependiendo del ambiente donde se efectúe la captura. De igual modo cabe anotar que la calidad de la imagen influye trascendentalmente en el procesamiento y resultados de la misma, es decir que, cuando se procesa una imagen capturada a 10 Megapíxeles la velocidad de la ejecución y la probabilidad de error aumentan considerablemente. Por esto es siempre recomendable trabajar el procesamiento con imágenes que se encuentren a una resolución entre 1 y 5 Megapíxeles. El software presenta inconvenientes con las figuras que se encuentran muy cerca del borde límite de la imagen debido a que la sectorización exige un margen alrededor del área que es aproximada mente 3 la magnitud del área encontrada, del cual se extrae la muestra. Cuando los objetos se ubican en los límites de la imagen el software queda imposibilitado para tomar la muestra y por lo tanto no procesa la información generando un error.

G. Rafael, W. Richard,” Digital Image Processing” University of Tennessee, MedData Interactive.2002 2.

[3]

Consultas Externas:

Z. Sergio, Docente Encargado, Universitaria de Investigación y Desarrollo UDI,2011

VII. BIOGRAFIA DE LOS AUTORES Renzzo Gómez Reátiga (Mayo 29 de 1990) Nació en Duitama Boyacá. Sus primeros estudios los realizo en el instituto integrado nacionalizado Guillermo león valencia, donde pudo culminar sus estudios de primaria, después de esto se traslado a la ciudad de Bucaramanga para finalizar sus estudios secundarios en el colegio INEM; años más adelante ingreso a la UDI para estudiar ingeniería electrónica, institución donde actualmente cursa séptimo semestre. Jimmy Anaya (Marzo 30 de 1990) Nació en Málaga Santander, sus primeros estudios fueron hechos en el centro piloto simón bolívar. Donde también culmino sus estudios secundarios; finalmente se graduó en 2006 para entrar a la UDI y estudiar ingeniería electrónica, actualmente se encuentra cursando séptimo semestre. En el campo laboral tiene una vasta experiencia como administrador de bodegas de víveres labor que viene desempeñando hace ya 4 años Oscar Ramos (Mayo 29 de 1982) En la actualidad se encuentra finalizando sus estudios de ingeniería electrónica en la UDI, sin embargo se encuentra en el punto medio de una especialización en la misma institución. Ha trabajado para compañías como Comcel S.A por tres años como diseñador de redes celulares en diferentes departamentos del país como Santander, norte de Santander y Arauca. Rexnik Díaz(Abril 26 de 1986), Nació en Bucaramanga Santander. Cursó la primera enseñanza en el instituto Luis Carlos galán sarmiento de girón culminando sus estudios en el año del 2002, en el presente año se encuentra realizando sus estudios superiores en la universidad de investigación y desarrollo UDI en ingeniería electrónica cursando el 7 semestre, actualmente trabaja para la empresa avícola incubadora Santander desde hace 5 años desempeñando el cargo de técnico electrónico, en el departamento de electrónica de dicha empresa.

VI. REFERENCIAS 1. [1]

E-books:

E. José, “Fundamentos de procesamiento de imágenes” Instituto Tecnológico de Ciudad Madero, Noviembre 2002.

Fig.4 Interface Grafica