DISEÑO DE UNA CNN SIMPLICIAL (S-CNN) DE BAJO CONSUMO PARA PROCESAMIENTO DE IMÁGENES
Williams Ortiz Martínez†
Pedro Marcelo Julián‡
Martín Di-Federico‡
TDepartamento de Ingeniería Eléctrica y de Computadoras, Universidad Nacional del Sur(UNS).
Bahia Blanca, Argentina. wortizmartinez@gmail.com
UInstituto de Investigaciones en Ingeniería Eléctrica(IIIE) Alfredo Desagues(UNS-CONICET).
Departamento de Ingeniería Eléctrica y de Computadoras, Universidad Nacional del Sur(UNS). Bahía Blanca, Argentina. pjulian@uns.edu.ar mdife@uns.edu.ar
Abstract
El presente trabajo trata del diseño e imple-
mentación de una nueva arquitectura VLSI di-
gital, empleada para procesamiento de imágenes,
se basa en la Red Celular Neuronal Simplicial
conocida como S-CNN. Trabaja en forma semi-
asincrónica y está formada por celdas idénticas
distribuidas uniformemente en vecindarios de 5
celdas, cada una de las cuales tiene la capacidad
de captar y procesar imágenes en forma continua
(similar a las cámaras de video). Solo procesan
las celdas que han sufrido un cambio, por lo que
es de bajo consumo y altas velocidades de proce-
samiento.
AsKinecyrwónoircdos, S-CCNNNN,dePmWínLi,mIamaacgteivri,daSde.mi-
1 Introducción.
Durante los últimos años se ha vuelto popular la incorporación de cámaras de video en diversos productos de consumo, tales como: teléfonos celulares, computadoras, dispositivos médicos y/o de diagnostico, entre otros, cuya característica principal al momento de su diseño es que tienen dimensiones muy pequeñas, altas velocidades y el menor consumo de potencia posible.
La Red Celular Neuronal (CNN), fué presentado por Leon O. y L. Yang en 1988 en [1, 2], se basa en los principios de la lógica celular y se ha dedicado de forma prioritaria al procesamiento analógico y digital de imágenes en distintas ramas, como procesamiento morfológico, ltrado espacial, ltrado en frecuencia y análisis temporal de imágenes.
Se plantea el uso de una arquitectura alternativa denominada Red Celular Neuronal Simplicial conocida como S-CNN por sus siglas en ingles (Simplicial Cellular Neural Network), la cual fué presentada por Pedro Julián en [3]. Posee un campo de acción
mayor al de la CNN, ya que no tiene la limitación de representar solo funciones de variables separables en la relación de entrada-salida del estado estacionario. De hecho, al utilizar esta represesentación, el diseño de una función puede realizarse por la inspección directa de la salida ante ciertas combinaciones de entradas.
2 Antecedentes de la S-CNN.
La S-CNN surge a partír de la CNN descrita en [1]. Es una arquitectura que permite realizar procesamiento en paralelo de información. La diferencia principal entre una CNN y otras redes neuronales es el hecho de que la información es intercambiada directamente entre unidades vecinas, lo que permite obtener un proceso global. La comunicación entre celdas no conectadas directamente se debe a los efectos de propagación dinámica [6]. La gura 1 muestra la estructura básica de una CNN conectada con sus ocho vecinos.
Figure 1: Estructura de una CNN.
Una celda puede tener cuatro u ocho vecinos dependiendo de la denición de su conectividad.
Cuando la celda se conecta a cuatro vecinos, lo puede realizar de dos formas: vertical-horizontal (A) o en forma diagonal(B), como se observa en la gura 2.
XV Reunión de Trabajo en Procesamiento de la Información y Control, 16 al 20 de septiembre de 2013
Figure 2: Conguración de vecindarios de 4 celdas
Para utilizar la capacidad completa de la CNN, se pueden aplícar entradas independientes. En arreglos que son para procesamiento, dos señales de entrada independientes (S1(ij) y S2(ij)), pueden ser empleadas, de forma que:
S1(ij) = Vuij(t) y S2(ij) = Vxij(0) (1)
La CNN usa procesos que explotan la conectividad en realimentación, caracterizando la red como un procesador de imágenes binarias capaz de realizar procesamientos lineales y no lineales, como el rellenado automático de huecos [7], la codicación de caracteres [8] [9] y la detección de elementos como líneas y bordes. Una imagen en escala de grises se codica mediante un byte para cada pixel, con un total de 256 niveles de gris, es decir, los valores de todos los pixeles se encuentran en el intervalo (0,255). Este intervalo puede normalizarse a [0,1], correspondiendo el 0 al color más oscuro(negro) y el 1 al color más claro(blanco) [10] [11].
3 Descripción de la S-CNN.
La S-CNN es el caso particular de la CNN, basa el sistema dinámico de la celda en una función no lineal ó lineal por tramos(PWL). Para encontrar la solución de la red, se integra el vector de estados de manera simultanea en cada celda, lo que se puede realizar por medio de la interpolación lineal de la función en los puntos extremos de un símplice(ver la gura 3).
2. Una vés encontrado el simplice, se debe descomponer el vector de entrada como una combinación lineal convexa (esto es, que la suma de los pesos sea unitaria) de los vértices del símplice.
3. Finalmente se debe calcular el valor de salida a partir de la suma de todos de los valores evaluados en los vertices del símplice .
Es necesario desarrollar estos pasos en forma secuencial a lo largo del tiempo, es decir se debe realizar una evaluación temporal de la función a partir de los vertices del simplice. La función simplicial no tiene ninguna restricción en la naturaleza de las entradas, y ellas pueden ser binarias ó análogicas.
3.1 Vecindarios de la S-CNN.
La S-CNN puede estar formada por arreglos cuadrados de 9 celdas ó por arquitecturas que no son cuadradas: hexagonales de 7 celdas, en forma de cruz (5 celdas) u otras, tal y como se observa en la gura 4.
Figure 4: Arquitecturas o vecindarios de la S-CNN.
3.2 Etrvaanlsuiaccióiónn. temporal de la función de
La evaluación en el dominio del tiempo se realiza en sincronismo con una señal del tipo rampa (gura 5).
Figure 3: Interpolación lineal del rango de la función PWL
Este procedimiento de solución se puede resumir de la siguiente forma:
1. Dado un vector de entrada ω, se debe encontrar el símplice que lo contiene lo que equivale a encontrar el conjunto de vértices que lo determinan.
Figure 5: Codicación temporal de la entrada mediante la combinación convexa
Conforme esta señal va evolucionando, y de acuerdo al valor de entrada presente, se van identicando secuencialmente los vértices del símplice que
XV Reunión de Trabajo en Procesamiento de la Información y Control, 16 al 20 de septiembre de 2013
contiene la entrada. La identicación de cada vértice se obtiene de la comparación de la rampa con el valor de cada componente del vector de entrada. El resultado de esta comparación produce a lo largo del tiempo una palabra digital que está variando constantemente, identicando a cada instante los vértices del símplice. La rampa nalíza cuando alcanza el valor máximo de la entrada.
Una representación alternativa es la propuesta en [4].
3.3 Implementación de la S-CNN.
La realización puramente digital supone que todas las variables empleadas incluyendo el tiempo, estan discretizadas. Las señales de entrada y el estado de cada celda se encuentran almacenadas en una memoria y poseen una longitud de palabra ja. El tiempo es una variable empleada para calcular un nuevo estado, se encuentra discretizado en intervalos iguales con una longitud de palabra del mismo tamaño del estado.
Cada celda dispone de un contador ascendente que funciona con el ciclo de procesamiento, con cada incremento, el valor del contador se compara con la entrada y el estado,dando como resultado una señal de un bit. Agrupando estas señales se obtiene una palabra digital la cual identica o direcciona el vértice a calcular durante ese conteo.
Para que la celda de la S-CNN digital sea considerada como la de un imager S-CNN, será necesario incluir un foto conversor que nos de el valor de entrada en corriente o voltaje y un convertidor A/D, tal y como se puede observar en el diagrama a bloques de una celda S-CNN para un imager de la gura 6.
De acuerdo con la gura 6 se observa que el vector de entrada ω es el valor en corriente o voltaje que se obtiene en el foto-conversor de cada celda, y debe convertirse a un valor digital para poder emplearse en la S-CNN.
La investigación que se presenta, describe una SCNN para procesamiento de imágenes, la cual no es considerada una camara ó imager por que no cuenta con un fotodiodo y con el convertidor A/D para poder obtener los valores de entrada a cada celda a partir de una imagen captada.
4 S-CNN de mínima actividad.
Este circuito emplea un reloj global, pero trabaja a partir de eventos o un control de cambios, y procesan
bpsooalrolmlolaeqsnutceeelpdsoaidnsecqmruóoens ihdcaeoy,annliorlcsouacflromimdeoonutuennaaCsmiirnocdcuriiótcnoaicgcióolon.-, 4.1 Fmuínncimioanaamctiievnidtoadd.e la S-CNN de
Para que la S-CNN funcione hace uso de las banderas: Cambia (C), Procesa (P) e Inhibe (I).
Donde:
Bandera C: Informa que recibió un cambio en su entrada ó estado directamente.
Bandera P: Informa que va a procesar. Bandera I: Bloquea la celda para que no acepte
cambios mientras está procesado.
Estas banderas, se encuentran localizadas dentro de cada celda de la red, descritas como registros (memorias) de un bit, que son las encargadas de funcionar como una máquina de estados de la misma celda.
4.1.1 Funcionamiento de las Banderas.
X Cuando alguna de las celdas detecta un cambio en su entrada ó estado, levanta la bandera C para informar a sus vecinas que cambió y requiere de ellas para procesar.
X Si las celdas vecinas no están siendo parte de otro proceso, activan la banderas procesa (P) e inhibe (I), para informar que van procesar y se dedicarán exclusivamente a ese proceso.
La gura 7 describe esta metodología de una manera mas gráca.
Figure 6: Diagrama a bloques de la celda S-CNN digital para un imager
Figure 7: Graca de la habilitación de banderas. .
XV Reunión de Trabajo en Procesamiento de la Información y Control, 16 al 20 de septiembre de 2013
4.1.2 Ciclos de Funcionamiento.
El funcionamiento de la S-CNN comprende 4 ciclos ó tareas de alto nivel, las cuales son realizados secuencialmente, y consisten en la adquisición de datos en cada celda, detección del cambio de la celda, procesamiento de los datos y comunicación de resultados, tal y como se ve en la gura 8
5 Diseño de la cealcdtaivSid-aCdNN de mínima
Cada celda esta constituida por una entrada (U), un estado interno (X) y una salida (Y). Los elementos que contiene la celda son:
X Registros de 8 bits, para guardar el valor del pixel
X Contadores de 8 bits. para llevar a cabo el procesamiento
X Comparadores para detectar cuando haya una nueva imágen
Figure 8: Ciclos de funcionamiento de la S-CNN.
X Multiplexores X, para direccionar a las funciones en memoria
Adquisición Se realiza mediante la asignación de valores a cada celda.
Detección de cambio Se realiza mediante la comparación del valor anterior que tenia la celda con el nuevo valor.
Procesamiento Se lleva a cabo en forma paralela en todas las celdas, a partir de una funcion denida en la S-CNN, durante el tiempo que tarda la rampa completa.
Extracción Al nalizar el ciclo de procesamiento, se obtiene el nuevo estado de cada celda y la nueva imagen ya procesada.
X Compuertas AND,OR, XOR, empleadas para operaciones entre funciones.
X Registros de 1 bit, empleadas como banderas para el control de la actividad.
X compuertas OR, empleadas para el control del procesamiento en cada celda.
El modelo propuesto para diseñar la celda empleada en la S-CNN de mínima actividad se muestra en la gura 10.
Los ciclos de funcionamiento se hacen mediante el uso de señales de control, denominadas: escribir, leer y procesar, tal y como se puede ver en 9
Figure 10: Esquemático de la celda.
Figure 9: Funcionamiento de la S-CNN.
Las señales escribir y leer son manejadas externamente mientras que procesar va a funcionar siempre y cuando la celda haya detectado un cambio y las dos señales anteriores estén en estado bajo o en valor 0.
La característica más importante de este circuito es que al no cambiar el dato de entrada o el estado, el comparador no detecta cambios y por tanto la celda no procesa, evitando así el consumo innecesario.
La arquitectura propuesta está formada por un arreglo de 16 x 16 celdas.
Esta estructura permite realizar una gran variedad funciones para procesamiento con imágenes, por ejemplo traslación, ltros, reconocimiento de patrones simples, entre otros. Combinando varias funciones se pueden realizar tareas mas complejas como
XV Reunión de Trabajo en Procesamiento de la Información y Control, 16 al 20 de septiembre de 2013
ezqueletización, binarización, apertura, cierre, eliminar puntos aislados, etc. [13] [14]
Para poder escribir y leer cualquier celda del arreglo, se agregan dos decodicadores para seleccionar la celda y un multiplexor para ver la salida.
6 Resultados.
La S-CNN de mínima actividad se diseño con un arreglo rectangular de celdas identicas, cada una de las cuales se considera como un píxel de la imagen. Se Introdujeron los valores de 8 bits a cada celda para generar una imagen, y se realizó el ciclo de procesamiento. Al nalizar este ciclo, se lee cada celda para obtener su valor correspondiente.
Se utilizó una imagen de 16 X 16 pixeles como imagen de prueba la cual se proceso usando diversas funciones, tal y como se muestra en 11.
6.1 IMAGENES PROCESADAS
La gura 11 muestra la imagen original cargada en las celdas del arreglo.
Figure 12: Imágenes procesadas a partir la imagen original.
Figure 11: Imagen original
La gura 12 muestra las imágenes resultantes después de realizar el procesado de la imagen original con algunas de las funciones guardadas en la memoria de la S-CNN.
Las funciones que se probaron sobre la imagen original, son las que se describen a continuación:
a) Negativo de la imagen original. b) Detección de esquinas de la imagen. c) Detección de bordes de la imagen. d) Filtro máximo sobre la imagen: Elimina los pí-
xeles negros o el denominado ruido pimienta.
e) Filtro mínimo sobre la imagen: elimina los píxeles blancos o el denominado ruido de sal.
f) Desplazar a la derecha. g) Desplazar a la izquierda. h) Desplazar hacia arriba. i) Desplazar hacia abajo.
Para ver como se dilatan los píxeles blancos se debe procesar varias veces a partír de un solo píxel blanco.
En las guras 13 y 14 se muestra un píxel blanco usando como función el ltro MÁXIMO.
Figure 13: Imagen original y con el ltro máximo.
Figure 14: Imagen nuevamente procesada con el ltro máximo.
7 Conclusiones.
Se desarrolló la estructura de una Red Celular Neuronal denominada CNN del tipo SIMPLICIAL, la cual es empleada como procesador de imágenes, a partír de una bibliioteca de funciones.
Se realizó la descripción de la S-CNN completa en VHDL. La imagen de entrada se introdujo externamente en el arreglo y se procedio a la etapa de procesamiento.
La imagen resultante del procesamiento se pudo observar introduciendo en MATLAB los valores ob-
XV Reunión de Trabajo en Procesamiento de la Información y Control, 16 al 20 de septiembre de 2013
Cellular Neural Network and tenidos en cada celda del arreglo al nalizar el pro- [11] Tao Yang, Image Processing cesamiento de la imagen.
, Nova Science Publishers, pp.
Se realizaron pruebas modicando la imagen completa y con solo algunos pixeles de la misma para vericar su correcto funcionamiento.
Se logró visualizar que dentro de la S-CNN procesaran solo las celdas que deberian hacerlo, mientras que las que no recibieron cambio alguno se mantenian sin procesar, logrando con esto reducir el consumo de
349, New York 2002.
[12sd]cigaPli.ataSb.lleMpaainxneddlopleprsori,ogcrPae.smJsuomlriaánba,lrecAhs.iimtGe.pctAliucnridear,leoCIuEN,ENAE Trans. on Circuits and Systems I, vol. 51(5), pp.
988-996, May 2004.
la CNN completa.
Como próximo paso de este proyecto se incluirá el
sensor de luz para obtener imágenes y procesarlas en
la S-CNN, para implementar la S-CNN en un circuito
integrado para aplicaciones especicas ASIC.
References Cellular Neural Net- [1] Leon O. Chua, L. Yang, works: Theory, IEEE Trans. Circ. Syst., vol.
35(10), 1988, pp. 1257-1272.
[2]wLoerokns:O.ACphpulai,caLt.iYonans,g,IECEeElluTlararnNs. eCuirrca.l
Net-
Syst.,
[13aa]nMdSi.mA.DpGili.cFiAeadlnedCrriecNoou,N, PED.xiSpg.ietrMailmaPnednixotleaellsi,PRrePos.cueJltsussloiáornf, Electronics Letters,vol. 44(1) pp. 27-28, 2008.
[14Al]esuMi,t.oCmDNaiNtFeedDdeiDgriicetosa,ilPg.nP:JixueEliláxnPperaornicdme,sesPno.traSlC. reMellsasunlfdtoosr-, Proceedings of the Argentine School of MicroNanoelectronics, Technology and Applications, pp. 130-133, May 2008.
vol. 35(10), 1988, pp. 1273-1290.
[3]pfoPire.cCeJwuNliiNsáen-,lgirnaReya.-rleDvosegilmariupm,liacgLiaeelopnrcooOcue.psslCiinnhggu,aI,EcEeAEll
Trans. on Circuits and Systems, July 2002, pp.
147-156.
[4]nwPoi.trhmJuaallpiáhpnil,gichAat.lieoDvneeslsactgaoensm,onoBidc.aeDll PrAeWdmuLiccotf,uionOnc,rtItEiohEnoEs-
Trans. Circuits and Systems I, vol. 47, pp. 702-
712, May 2000.
[5] L. O. Chua, CNN: A vision of complexity,
Int. Journal of Bif. and Chaos, Oct. 1997, vol.7,
pp. 2219-2425.
The CNN Pa- [6] Leon 0. Chua, and Tamas Roska, radigm, IEEE Trans. Circ. Syst.,Vol. 40. No. 3,
MARCH 1993, pp. 147-156.
CNN [7] T. Matsumoto, L.O. Chua, R. Furukawa, Cloning Template: Hole-Filler, IEEE Trans.
Circ. Syst., 37(5), 1990,pp. 635-638.
CNN [8] T. Matsumoto, L.O. Chua, H. Suzuki, DCleotneicntgorTemplate: Conected Component , IEEE Trans.Circ. Syst., 37(5), 1990,
pp. 633-635.
[9]CTlo. nMinagtsuTmemotpo,laLte.O: .SChhaudao,wHD. eStuezcutkoir, ,
CNN
IEEE
Trans. Circ. Syst.,.37(8), 1990, pp. 1070-1073.
Digital Image [10] R.C. González, R.E. Woods, Processing,Addison-Wesley, 1993.
Ver+/-