NEUROLAB-SIRNA, UNA HERRAMIENTA PARA RECONOCER OBJETOS EN IMÁGENES DIGITALES NEUROLAB-SIRNA, A TOOL TO RECOGNIZE OBJETS IN DIGITALS IMAGES Beatriz Fernández Díaz1, Ernesto Hita Ramos2, Ramón Hita Torres3, Alejandro Gutiérrez Fernández4, Yuliet Remón González5 1 SOFTEL, Cuba, [email protected], 2 Instituto Internacional de Periodismo "Jose Marti", Cuba, [email protected] 3 SOFTEL, Cuba, [email protected] 4 SOFTEL, Cuba, [email protected] 5 SOFTEL, Cuba, [email protected] RESUMEN: En la empresa “SOFTEL”, ha sido desarrollada la aplicación web destinada al diseño, entrenamiento y uso de Redes Neuronales Artificiales denominada NEUROLAB (Laboratorio de Redes Neuronales Artificiales). Las redes neuronales artificiales entrenadas en el ambiente de NEUROLAB pueden ser usadas en la solución de problemas complejos, en particular los que exigen el Reconocimiento de Patrones. NEUROLAB tiene opciones y funcionalidades las cuales permiten que se le suministren los patrones a partir de datos almacenados en bases de datos pasados a documentos de textos con formatos específicos de la aplicación. Para facilitar la posibilidad de obtener directamente patrones calculados a partir de otros orígenes, como son las imágenes digitales, se desarrolló la herramienta desktop SIRNA (Segmentación de Imágenes usando Redes Neuronales Artificiales), la cual permite visualizar imágenes, seleccionar regiones definidas dentro de ellas para calcular y extraer patrones, exportar los patrones hacia NEUROLAB para entrenar redes neuronales e importar a SIRNA la red neuronal entrenada obtenida en NEUROLAB para reconocer objetos contenidos en ellas, segmentarlas y representar los resultados en la pantalla de un monitor. Palabras Clave: Patrones, Imágenes digitales, Red Neuronal Artificial, Entrenamiento, Reconocimiento. ABSTRACT: In the Company "SOFTEL" has developed a web application named NEUROLAB (Laboratory of Artificial Neural Networks) for design, training and use of artificial neural networks. The trained artificial neural network can be used to solve complex problems, as pattern recognition. NEUROLAB have options and features which will allow supply patterns from data stored in databases to text documents passed with the application specific formats. To facilitate the possibility of get patterns directly calculated from other sources, such as digital images, was de“III Conferencia Internacional en Ciencias Computacionales e Informáticas” Fernández, B.; Hita, E., Hita, R., Gutiérrez, A., Remón, Y.| “NEUROLAB-SIRNA, UNA HERRAMIENTA PARA RECONOCER OBJETOS EN IMÁGENES DIGITALES” veloped SIRNA (Image segmentation using artificial neural networks) desktop tool. With SIRNA is possible to visualize images, to select regions within them, extract patterns and also its export to NEUROLAB to train artificial neural networks. KeyWords: Patterns, Digital images, Artificial Neural Network, Training, Recognition. 2.2 Extraer los patrones. 1. INTRODUCCIÓN 2.3 Exportar patrones a NEUROLAB. El empleo de técnicas de Inteligencia Artificial da un gran valor agregado a los sistemas de información y en muchos casos garantiza que el costo disminuya y con este, el tiempo empleado en el desarrollo de los sistemas de ayuda a la toma de decisiones [1]. 2.4 Importar patrones. 2.5 Experto en redes neuronales artificiales. 2.6 Configuración. SOFTEL es una empresa productora y comercializadora de productos informáticos que ha desarrollado una aplicación lo cual posibilita diseñar, entrenar y utilizar las Redes Neuronales Artificiales (RNA) [2], [3] sin que el usuario necesite tener conocimientos de programación. La aplicación se ha denominado NEUROLAB (Laboratorio de Redes Neuronales Artificiales). 2.7 Entrenamiento. Los datos se le suministran a NEUROLAB desde ficheros texto con un formato específico de la aplicación donde están bien definidas las variables (atributos) y los individuos (registros). 2.12 Segmentación de imágenes. 2.8 Validación. 2.9 Exportar RNA entrenada a SIRNA 2.10 Importar RNA entrenada en NEUROLAB. 2.11 Reconocimiento. También, se ha desarrollado una herramienta que permite suministrar directamente los datos a partir de parámetros calculados sobre imágenes digitales a NEUROLAB, ya que el empleo y explotación de este tipo de datos es bastante frecuente y ampliamente utilizado en el reconocimiento de patrones. La aplicación se ha denominado SIRNA (Segmentación de Imágenes usando Redes Neuronales Artificiales). Es posible utilizar esta herramienta para la detección y estudio de objetos presentes en las imágenes digitales provenientes de diferentes fuentes de información. 2. NEUROLAB-SIRNA En este acápite es explicado el flujo de trabajo de las aplicaciones NEUROLAB y SIRNA, además se mencionan los algoritmos, métodos y ecuaciones implementados en las mismas. El proceso comienza (ver Figura. 1) con una imagen digital en la cual es necesario reconocer los objetos o clases que se encuentran en ella. El proceso incluye: 2.1 Experto en el problema a resolver. Figura. 1: Esquema Funcional, SIRNA. 2.1 Experto en el Problema a Resolver Persona que posee un conocimiento profundo del tema que trata la imagen y que es capaz de interpretarla y emitir una clasificación de los objetos que “III Conferencia Internacional en Ciencias Computacionales e Informáticas” Fernández, B.; Hita, E., Hita, R., Gutiérrez, A., Remón, Y.| “NEUROLAB-SIRNA, UNA HERRAMIENTA PARA RECONOCER OBJETOS EN IMÁGENES DIGITALES” en ella se muestran. 2.4 Importar Patrones 2.2 Extraer los Patrones NEUROLAB permite importar ficheros texto generados en SIRNA que contienen los patrones y su clasificación correspondiente necesarios para crear, configurar, entrenar y validar una red neuronal artificial. Una vez importados los datos necesarios, NEUROLAB, comienza un proceso (ver Figura. 2) cuyo resultado es la obtención de una red neuronal artificial entrenada para reconocer los objetos de interés en imágenes similares a las utilizadas en la extracción de patrones. Actualmente NEUROLAB tiene implementada una red neuronal Perceptrón Multicapa (Multilayer Perceptron) con el entrenamiento BackPropagation. Para formar los patrones que han de suministrarse a NEUROLAB se calculan algunas variables que describen la distribución de los colores alrededor de un pixel cualquiera de una imagen digital [5]. Las variables calculadas en la vecindad de un pixel de la imagen son: media, desviación estándar, asimetría, curtosis, mediana y moda [4], [5]. Para formar los patrones es muy importante el experto en el campo que trata la imagen, debido a que debe ser la persona más precisa y confiable seleccionando regiones (un pixel y su vecindad) de la imagen que pertenecen a una clase determinada. El experto selecciona en la imagen tantas regiones como sea necesario hasta cubrir todas las posibles clases. Para la extracción de patrones es recomendable utilizar varias imágenes que representen a los mismos objetos. 2.3 Exportar Patrones a NEUROLAB Según las exigencias de NEUROLAB, un patrón está determinado por un vector que contiene, al menos uno de los valores correspondiente a alguna de las variables antes descritas. Exportar patrones a NEUROLAB es una funcionalidad implementada en SIRNA que posibilita la interacción entre ambas aplicaciones. SIRNA entrega los datos a NEUROLAB con el formato que este exige. Es decir, se generan dos ficheros texto: el primero contiene una matriz de patrones y el segundo una matriz con la clase a que pertenece cada patrón. 2.5 Experto en Redes Neuronales Artificiales Es la persona que conoce cómo trabajar con las redes neuronales artificiales (RNA). Debe poseer conocimientos sobre la teoría de las RNA que le permitan configurar, entrenar y validar una RNA en el ambiente de NEUROLAB. La aplicación tiene un ambiente intuitivo y de fácil manejo permitiendo que el experto (usuario de NEUROLAB) pueda obtener la RNA entrenada deseada sin tener que programar. 2.6 Configuración En la configuración se definen los siguientes parámetros de la RNA: La cantidad de neuronas en la capa de entrada, en la capa oculta y en la capa de salida. La función de activación de la capa oculta. Sigmoidea Tangencial La normalización. Ninguna Rango de Componentes 2.7 Entrenamiento Una vez configurada la RNA se debe pasar al entrenamiento. Para esto es necesario definir los siguientes elementos: Figura. 2: Esquema Funcional, NEUROLAB. Los patrones de entrada (fichero obtenido con SIRNA) “III Conferencia Internacional en Ciencias Computacionales e Informáticas” Fernández, B.; Hita, E., Hita, R., Gutiérrez, A., Remón, Y.| “NEUROLAB-SIRNA, UNA HERRAMIENTA PARA RECONOCER OBJETOS EN IMÁGENES DIGITALES” Las salidas objetivo (fichero obtenido con SIRNA) Los pesos iniciales: estos pueden ser importados o generados por NEUROLAB. La razón de aprendizaje. La cantidad de corridas. La cantidad de iteraciones. El momento. El error de entrenamiento. Además de incorporar una RNA entrenada, para resolver un problema específico, SIRNA posibilita insertar imágenes del problema en cuestión y utilizar la RNA entrenada para reconocer los objetos para los que fue entrenada. Después de definir estos parámetros se puede comenzar a entrenar la RNA. NEUROLAB permite que se puedan modificar fácilmente los parámetros del entrenamiento y volver a entrenar la RNA, repitiéndose este ciclo hasta lograr el error de entrenamiento deseado por el experto. 2.8 Validación Luego de entrenar una RNA, se valida el resultado obtenido y es posible realizar tantas validaciones para un entrenamiento como sea necesario. Para realizar la validación de la RNA Perceptrón Multicapa se deben definir los siguientes parámetros [2], [3]: Los patrones de validación. (fichero con nuevos patrones de entrada, obtenido con SIRNA). Las salidas objetivo (fichero con las salidas objetivo para los patrones de validación, obtenido con SIRNA). Como resultado se obtiene un error de validación, y en caso de concluir que la solución obtenida no es la adecuada, se puede volver a entrenar la red para intentar obtener un mejor resultado. Como resultado de este proceso en NEUROLAB se obtiene una Red Neuronal entrenada. 2.9 Exportar RNA entrenada a SIRNA. Exportar a SIRNA la RNA entrenada es una funcionalidad implementada en NEUROLAB la cual genera un fichero que contiene la RNA entrenada y respetando todas las exigencias de SIRNA para la importación de la RNA. 2.10 Importar en SIRNA la RNA entrenada en NEUROLAB SIRNA permite incorporar una RNA previamente entrenada. Posee la funcionalidad de importar siempre y cuando se cumpla con el formato de importación establecido (ver Figura. 3). 2.11 Reconocimiento Figura. 3: Esquema Funcional, NEUROLAB-SIRNA 2.12 Segmentación de imágenes SIRNA incluye un algoritmo de segmentación de imágenes tal que segmenta y clasifica los píxeles de la misma haciendo uso de la RNA entrenada. Además, permite observar el resultado del reconocimiento de los objetos en la imagen completa. A “III Conferencia Internacional en Ciencias Computacionales e Informáticas” Fernández, B.; Hita, E., Hita, R., Gutiérrez, A., Remón, Y.| “NEUROLAB-SIRNA, UNA HERRAMIENTA PARA RECONOCER OBJETOS EN IMÁGENES DIGITALES” cada objeto o clase se le asigna, a voluntad del experto, un color diferente para lograr una mejor visualización de su ubicación. 3. RESULTADOS - Momento igual a 0.2. Error de entrenamiento fijado en 0.000000010. El error de entrenamiento real obtenido fue: 0.000039333. Como ejemplo ilustrativo mostramos el reconocimiento de zonas dentro de una imagen gammagráfica de los riñones. A partir de una imagen (ver figura. 4) se extrajeron los patrones para las clases: bueno, regular, malo y fondo. Los patrones extraídos, utilizando SIRNA, se formaron calculando la media, la desviación estándar, la asimetría y la curtosis para un píxel y una vecindad igual a tres. Validación: El resultado de la validación fue considerado aceptable por el experto por lo que se procedió a exportar la RNA entrenada hacia SIRNA. La RNA obtenida fue importada en SIRNA para reconocer y segmentar la misma imagen, obteniéndose los resultados que se muestran en la figura. 5. Las clasificaciones que se observan son las siguientes: buen funcionamiento, mal funcionamiento, fondo y no se conoce Leyenda: Buen funcionamiento Mal Funcionamiento Figura. 4: Gammagrafía de los riñones A continuación se siguió el flujo de trabajo descrito anteriormente y mostrado en la figura. 3. Utilizando NEUROLAB se obtuvo una RNA con arquitectura Perceptrón Multicapa y tipo de entrenamiento BackPropagation, con las siguientes características: Configuración: 12 neuronas en la capa de entrada, cinco neuronas en la capa oculta, 4 neuronas en la capa de salida (125-4) Función activación sigmoidea en la capa oculta. Normalización de tipo rango de componentes. Entrenamiento: Pesos Iniciales generados por NEUROLAB. Razón de aprendizaje igual a 0.3. Número de corridas igual a 1000. Número de iteraciones igual a 100. Fondo Funcionamiento Regular No se conoce Figura. 5: Resultado de la segmentación y reconocimiento de la figura. 4 utilizando Redes Neuronales Artificiales. Además, se han realizado otras pruebas utilizando dos imágenes: una imagen microscópica de la sangre y una imagen de un corte transversal de una arteria. En la primera imagen se reconocieron las clasificaciones parásito, plasma y glóbulos rojos; y en la segunda diferentes porcientos de grasa en la arteria. Los resultados obtenidos en todas las pruebas los expertos los han considerado aceptables. CONCLUSIONES En el artículo fueron expuestas las particularidades de las herramientas NEUROLAB y SIRNA desarrolladas en la empresa SOFTEL así como fue explicado el procedimiento que permite su trabajo conjunto. NEUROLAB y SIRNA permiten entrenar redes neuronales artificiales adquiriendo, visualmente, patrones y luego reconocer y segmentar imágenes. Las pruebas realizadas a ambas aplicaciones han “III Conferencia Internacional en Ciencias Computacionales e Informáticas” Fernández, B.; Hita, E., Hita, R., Gutiérrez, A., Remón, Y.| “NEUROLAB-SIRNA, UNA HERRAMIENTA PARA RECONOCER OBJETOS EN IMÁGENES DIGITALES” tenido buenos resultados. NEUROLAB y SIRNA pueden ser utilizadas para resolver problemas en los cuales sea necesario el reconocimiento de patrones. NEUROLAB y SIRNA permiten que, el proceso de extraer los patrones, entrenar la RNA y reconocer los objetos en las imágenes, sea fácil para el usuario posibilitando que se concentre en la tarea a resolver, sin necesidad de tener conocimiento de programación como ocurre con otras aplicaciones disponibles en el mercado. ratorio de Sistemas Expertos) Ha participado en: “UCIENCIA I Conferencia Científica Internacional 2014” con la ponencia: “Propuesta de procedimiento para configurar una red neuronal artificial de Base Radial con aplicaciones en el diagnóstico de fallos”. Taller Internacional de Control, Cibernética y Automatización 2014, La Habana, Cuba con la ponencia: “Sistema Experto para el Control del Estado Técnico de un Sistema”. Convención Internacional de Salud: Cuba Salud 2015, La Habana, Cuba. Póster: “Sistema Experto para la ayuda a las pruebas de Medicina Nuclear”. Feria Internacional de Salud 2015, La Habana, Cuba. 4. REFERENCIAS BIBLIOGRÁFICAS 1. Barrero Viciedo, E.; B. Fernández Díaz y O. Llanes Santiago: “Propuesta de procedimiento para configurar una red neuronal artificial de Base Radial con aplicaciones en el diagnóstico de fallos”, Revista de Electrónica, Automática y Comunicaciones (RIELAC), Vol. 35 No. 3, pp. 60-75, Ciudad de la Habana, 2014. 2. Martín del Brío, B. y A. Sanz Molina: Redes neuronales y sistemas difusos, 2 Ed., RA-MA, Marzo 2001. 3. Kecman, V.: Learning and soft computing. Support vectors machines, neural networks and fuzzy logic models, 2001. 4. Sheskin, D. J.: Parametric and nonparametric statistical procedures, 2 ed., Chapman & Hall/CRC, 2000. 5. Hita Ramos, E.: “Implementación de la herramienta SIRNA, orientada a la extracción interactiva de patrones a partir de imágenes digitales para NEUROLAB”, Tesis de grado, Universidad de Ciencias Informáticas, 2015. 6. SÍNTESIS CURRICULAR La autora Ing. Beatriz Fernández Díaz obtuvo el título de Ingeniería en Automática en el año 2012 en el Instituto Superior Politécnico “José Antonio Echeverría” (ISPJAE), La Habana, Cuba. El título de su trabajo de diploma fue “Evaluación de la influencia de los parámetros de las Redes Neuronales Artificiales de Base Radial al Diagnóstico de Fallos en un Tanque Reactor Continuamente Agitado”. Posteriormente continuó trabajando el tema realizando la publicación “Propuesta de procedimiento para configurar una red neuronal artificial de Base Radial con aplicaciones en el diagnóstico de fallos” en la Revista de Electrónica, Automática y Comunicaciones (RIELAC), Vol. 35 No. 3, pp. 60-75, Ciudad de la Habana, 2014. Desde el año 2013 hasta la fecha es trabajadora de la empresa SOFTEL. Actualmente se desempeña como Jefe de Grupo del grupo de Minería de Datos de la dirección de Tecnologías, donde se desarrollan las herramientas: NEUROLAB (Laboratorio de Redes Neuronales Artificiales), SIRNA (Segmentación de Imágenes y Redes Neuronales Artificiales) y EXPERLAB (Labo“III Conferencia Internacional en Ciencias Computacionales e Informáticas”