neurolab-sirna, una herramienta para reconocer objetos en

Anuncio
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, bettyfd@softel.cu,
2 Instituto Internacional de Periodismo "Jose Marti", Cuba, ehita91@prensaip.co.cu
3 SOFTEL, Cuba, rhita@softel.cu
4 SOFTEL, Cuba, alejo@softel.cu
5 SOFTEL, Cuba, yulietrg@softel.cu
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”
Descargar