129
Diseño de una Red Celular Neuronal Simplicial (S-CNN) para procesamiento digital de imágenes. Por: M. C. Williams Ortiz Martínez. Tesis sometida como requisito parcial para obtener el grado de: Doctor en Ciencias con la Especialidad en Electrónica. En el Instituto Nacional de Astrofísica, Óptica y Electrónica. Marzo, 2012 Tonanzintla, Puebla. Supervisada por: Dr. Luis Hernández Martínez. Investigador Titular del INAOE. Dr. Pedro Marcelo Julián. Universidad Nacional del Sur. Bahía Blanca, Argentina. ©INAOE 2012 Derechos Reservados El autor otorga al INAOE el permiso de reproducir y distribuir copias de esta tesis en su totalidad o en partes mencionando la fuente.

Diseño de una Red Celular Neuronal Simplicial (S-CNN) para ...miento de la imagen completa; el otro circuito, es una S-CNN diseñada de tal forma que cuando alguna de las celdas reciba

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

  • Diseño de una Red Celular Neuronal

    Simplicial (S-CNN) para procesamiento

    digital de imágenes.

    Por:

    M. C. Williams Ortiz Martínez.

    Tesis sometida como requisito parcial para

    obtener el grado de:

    Doctor en Ciencias con la Especialidad

    en Electrónica.

    En el

    Instituto Nacional de Astrofísica, Óptica

    y Electrónica.

    Marzo, 2012 Tonanzintla, Puebla.

    Supervisada por:

    Dr. Luis Hernández Martínez. Investigador Titular del INAOE.

    Dr. Pedro Marcelo Julián. Universidad Nacional del Sur. Bahía Blanca, Argentina.

    ©INAOE 2012

    Derechos Reservados

    El autor otorga al INAOE el permiso de

    reproducir y distribuir copias de esta tesis en su

    totalidad o en partes mencionando la fuente.

  • Diseño de una Red Celular Neuronal

    Simplicial (S-CNN)

    para procesamiento digital de imágenes.

    TESIS DOCTORAL

    Presenta:

    M. C. Williams Ortiz Martínez.

    Bajo la dirección de:

    Dr. Luis Hernández Martínez.

    INSTITUTO NACIONAL DE ASTROFÍSICA, ÓPTICA Y ELECTRÓNICA

    Luis Enrique Erro 1, Tonantzintla, Puebla, México.

    Dr. Pedro Marcelo Julián.

    UNIVERSIDAD NACIONAL DEL SUR

    Av. Alem 1353, Bahía Blanca, Argentina.

    Marzo de 2012

  • A mi madre:

    Jovita Martínez Chavez.

    A mi hemano:

    Hugo Misael Alvarez Martínez.

    A mi hijo:Hector Daniel Ortiz Roque.

  • Agradecimientos

    A DIOS.

    Por que sin él nada soy, por ser mi señor y creador, y por que todo lo que he

    logrado se lo debo a él. Gracias por inspirarme y protegerme.

    A mi madre: Jovita Martínez Chavez.

    Por ser una mujer maravillosa y excepcional, la cual es mi guía en este mundo, y la

    persona que más ha influido en toda mi vida, motivándome siempre a seguir adelante.

    Gracias por todo el amor, apoyo y comprensión que siempre me ha brindado.

    A mi hermano: Hugo Misael Alvarez Martínez.

    Por creer en mí. Por ser alguien muy importante en mi vida y que siempre está a mi

    lado apoyándome y motivarme a hacer mejor las cosas. Gracias hermano.

    A mi hijo: Hector Daniel Ortiz Roque.

    Que desde que llegaste a mi vida te has vuelto mi motor y mi fuerza para seguir

    creciendo y superándome, esperando que en un futuro te puedas sentir orgulloso de

    mis logros y de ser mi hijo. Gracias, por que con tu sonrisa y tu alegría me dás la

    motivación suficiente para no rendirme y seguir adelante todos los días.

    A mi Familia.

    Por estar en mi vida cuando más los necesito apoyándome y motivándome con pala-

    bras de aliento para seguir adelante, gracias por todos los momentos que hemos com-

    partido y que me ayudan a seguir superandome día a día.

    A mis amigos y compañeros.

    Por su valiosa amistad y compañía, por haber compartido juntos grandes momentos

    de alegrías, satisfacciones y desvelos.

    I

  • A mi Asesor: Dr. Pedro Marcelo Julián.

    Al cual le tengo una gran admiración y respeto, por todo su apoyo y su tiempo de-

    dicado para la dirección en el desarrollo de este trabajo. Por darme la oportunidad de

    trabajar con él en este tema de investigación, gracias.

    A mi Asesor: Dr. Luis Hernández Martínez.

    Por que no pude haber encontrado mejor asesor, quien me há brindado un gran

    apoyo durante el desarrollo de este trabajo. Por darme la oportunidad de trabajar con

    él, por su orientación, confianza y paciencia, pero sobre todo gracias por brindarme su

    amistad y permitirme ser su amigo.

    A la Dra. María Teresa Sanz Pascual.

    Quien todo su apoyó durante el doctorado, por la ayuda que me brindó para que yo

    pudiera seguir adelante, por su paciencia y sus comentarios que siempre me sirvieron

    de mucho, gracias de verdad.

    Al Dr. Arturo Sarmiento Reyes.

    Por su valioso tiempo, por sus enseñanzas y por todo su apoyo moral y económico

    a través de la coordinación de Electrónica.

    A mis profesores del INAOE.

    Los cuales son la base principal de mi desarrollo y aprendizaje. Gracias por todos

    los conocimientos que me han transmitido desde que llegue a ser parte de este gran

    centro de investigación. Gracias por ser parte de mi formación y por la amistad que me

    han brindado.

    Al Instituto Nacional de Astrofísica, Óptica y Electrónica (INAOE).

    Por ser la institución que me brindó la aportunidad de estudiar mi maestría y ahora mi

    doctorado, mostrando siempre un ambiente de tranquilidad, respeto y armonía, donde

    la investigación es motivo de orgullo.

    Al Consejo Nacional de Ciencia y Tecnología (CONACyT).

    Por su apoyo y manutención a través de la beca de estudios de maestría 203814, y

    por su apoyo a través de la beca de doctorado 175987

    II

  • Resumen

    Con el surgimiento de sistemas multimedia durante los últimos años se ha vuelto

    popular la incorporación de cámaras en productos de consumo como son teléfonos ce-

    lulares, computadoras, telescopios, microscopios entre otros dispositivos móviles, cuya

    característica principal al momento de su diseño es obtener dimensiones muy peque-

    ñas, altas velocidades y el menor consumo posible.

    El presente trabajo trata del estudio y diseño de una Red Celular Neuronal Simplicial

    conocida como S-CNN por sus siglas en ingles (Simplicial Cellular Neural Network),

    la cual tiene la capacidad de realizar el procesamiento de las imágenes que adquiere

    mediante un procesamiento paralelo distribuido sobre toda la red. Cada celda de la red

    opera a partir de su información, y la de sus celdas vecinas e implementa una ecuación

    discreta de evolución de estado basada en una función lineal por tramos (Piecewise-

    linear) multidimensional. Las celdas se programan a través de una única memoria dis-

    puesta en la periferia del integrado, y el cálculo se realiza con señales codificadas en

    tiempo, lo cual permite una realización muy eficiente desde el punto de vista del área

    ocupada por cada celda.

    En esta tesis se presenta la descripción y caracterización de dos diseños de la S-

    CNN: el primero es un circuito que funciona usando la metodología de la S-CNN están-

    dar donde cada vés que una de las celdas detecte un cambio se realizará el procesa-

    miento de la imagen completa; el otro circuito, es una S-CNN diseñada de tal forma que

    cuando alguna de las celdas reciba o detecte un cambio solo procesará esa celda y sus

    vecinas directas sin que sea necesario el procesamiento de toda la imagen, reduciendo

    considerablemente el consumo del circuito. Se comparan los resultados obtenidos y se

    identifican sus características. La estructura completa de la S-CNN diseñada es descrita

    en VHDL e implementada en una FPGA.

    III

  • IV

  • Índice general

    1. Introducción. 1

    1.1. Motivación y Alcances. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

    1.2. CNN para Procesamiento Digital de Imágenes. . . . . . . . . . . . . . . . 3

    1.3. Arquitectura Propuesta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    1.4. Objetivos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    1.5. Metas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    1.6. Contribución. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    1.7. Organización de la tesis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

    2. Antecedentes. 7

    2.1. Descripción la celda básica de una CNN. . . . . . . . . . . . . . . . . . . 7

    2.1.1. Circuito típico de una celda. . . . . . . . . . . . . . . . . . . . . . . 9

    2.2. Descripción y Características de la CNN estandar. . . . . . . . . . . . . . 12

    2.2.1. Características de la CNN estandar. . . . . . . . . . . . . . . . . . 13

    2.2.2. Interconexiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

    2.2.3. Rango dinámico . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

    2.2.4. Funciones de Salida. . . . . . . . . . . . . . . . . . . . . . . . . . . 17

    2.2.5. Aplicaciones básicas . . . . . . . . . . . . . . . . . . . . . . . . . . 18

    2.3. CNN para camaras CMOS. . . . . . . . . . . . . . . . . . . . . . . . . . . 19

    2.4. CNN Simplicial (S-CNN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

    2.4.1. Campo de acción de la S-CNN . . . . . . . . . . . . . . . . . . . . 20

    2.5. CNN Estándar vs CNN Simplicial. . . . . . . . . . . . . . . . . . . . . . . 20

    2.6. Características y descripción del diseño asíncrono. . . . . . . . . . . . . . 21

    2.6.1. Características de los circuitos asíncronos . . . . . . . . . . . . . 22

    V

  • 2.6.2. Ventajas de los circuitos asíncronos. . . . . . . . . . . . . . . . . . 22

    2.6.3. Desventajas de los circuitos asíncronos. . . . . . . . . . . . . . . . 23

    2.6.4. Metodologías de diseño asíncrono. . . . . . . . . . . . . . . . . . . 24

    2.7. CNN para procesado de imágenes. . . . . . . . . . . . . . . . . . . . . . 25

    2.7.1. Características de otras CNNs para PDI. . . . . . . . . . . . . . . 26

    2.8. Conclusiones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

    3. Arquitectura y características de la S-CNN 29

    3.1. Red Celular Neuronal Simplicial (S-CNN) . . . . . . . . . . . . . . . . . . 30

    3.2. Arquitecturas o vecindarios de la S-CNN. . . . . . . . . . . . . . . . . . . 33

    3.3. Evaluación temporal de la función de transición. . . . . . . . . . . . . . . 36

    3.4. Implementación analógica o de señal mixta de una celda . . . . . . . . . 37

    3.5. Imager con procesamiento S-CNN. . . . . . . . . . . . . . . . . . . . . . . 38

    3.6. Implementación digital de la S-CNN. . . . . . . . . . . . . . . . . . . . . . 39

    3.7. S-CNN para procesamiento de imágenes. . . . . . . . . . . . . . . . . . . 40

    3.7.1. Condiciones en las fronteras . . . . . . . . . . . . . . . . . . . . . 42

    3.7.2. Diseños propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . 43

    3.8. Conclusiones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

    4. Diseño y caracterización de la S-CNN. 45

    4.1. Características de diseño . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

    4.1.1. Implementación de la memoria para la S-CNN . . . . . . . . . . . 47

    4.2. Ciclos de funcionamiento de la S-CNN . . . . . . . . . . . . . . . . . . . . 49

    4.3. Arquitectura propuesta de la S-CNN . . . . . . . . . . . . . . . . . . . . . 49

    4.4. Diseño y caracterización de la S-CNN Estándar ó S-CNN totalmente sin-

    crónica con actividad global. . . . . . . . . . . . . . . . . . . . . . . . . . 51

    4.4.1. Arquitectura la S-CNN estándar . . . . . . . . . . . . . . . . . . . 52

    4.5. Imágenes y resultados de la S-CNN estándar . . . . . . . . . . . . . . . . 54

    4.5.1. Función copiar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

    4.5.2. Imagen procesada usando la función copiar . . . . . . . . . . . . . . . 55

    4.5.3. Función negar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

    4.5.4. Imagen procesada usando la función negar . . . . . . . . . . . . . . . 56

    VI

  • 4.6. Diseño y caraterización de la S-CNN de mínima actividad. . . . . . . . . 57

    4.7. Funcionamiento de la S-CNN de mínima actividad. . . . . . . . . . . . . . 58

    4.7.1. Metodología planteada para el funcionamiento de la S-CNN. . . . 58

    4.8. Diagrama a bloques del funcionamiento de la S-CNN. . . . . . . . . . . . 59

    4.8.1. Funcionamiento de las Banderas. . . . . . . . . . . . . . . . . . . 60

    4.8.2. Comportamiento de las banderas en la S-CNN de mínima actividad. 62

    4.9. Arquitectura propuesta de la S-CNN de mínima actividad. . . . . . . . . . 64

    4.10.Diseño de la celda S-CNN de mínima actividad . . . . . . . . . . . . . . . 65

    4.11.Resultados de la S-CNN de mínima actividad . . . . . . . . . . . . . . . . 66

    4.11.1. Función copiar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

    4.11.2. Imagen procesada usando la función copiar . . . . . . . . . . . . . . . 67

    4.11.3. Función negar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

    4.11.4. Imagen procesada usando la función negar . . . . . . . . . . . . . . . 68

    4.12.Análisis de consumo de la S-CNN. . . . . . . . . . . . . . . . . . . . . . . 69

    4.12.1. Análisis de consumo de la S-CNN totalmente sincrónica con acti-

    vidad global. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

    4.12.2. Análisis de consumo de la S-CNN de mínima actividad o por eventos. 70

    4.12.3. Tabla comparativa. . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

    4.13.Conclusiones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

    5. Diseño e implementación de la S-CNN de mínima actividad. 73

    5.1. Funcionamiento de la S-CNN de mínima actividad. . . . . . . . . . . . . . 74

    5.1.1. Metodología planteada para el funcionamiento de la S-CNN. . . . 74

    5.2. Diagrama a bloques del funcionamiento de la S-CNN. . . . . . . . . . . . 76

    5.2.1. Funcionamiento de las Banderas. . . . . . . . . . . . . . . . . . . 77

    5.2.2. Comportamiento de las banderas en la S-CNN de mínima actividad. 78

    5.3. Arquitectura propuesta de la S-CNN . . . . . . . . . . . . . . . . . . . . . 79

    5.4. Diseño de la celda S-CNN de mínima actividad . . . . . . . . . . . . . . . 80

    5.5. Resultados de la S-CNN de mínima actividad . . . . . . . . . . . . . . . . 81

    5.5.1. Función copiar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

    5.5.2. Imagen procesada usando la función copiar . . . . . . . . . . . . . . . 82

    5.5.3. Función negar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

    VII

  • 5.5.4. Imagen procesada usando la función negar . . . . . . . . . . . . . . . 83

    6. Conclusiones 85

    6.1. Comparación de resultados. . . . . . . . . . . . . . . . . . . . . . . . . . . 85

    6.2. Trabajo a futuro. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

    6.2.1. S-CNN asincrónica como trabajo a futuro. . . . . . . . . . . . . . . 86

    Appendices 93

    A. APENDICE. 94

    A.1. Programación e implementación de una celda simplicial. . . . . . . . . . . 94

    A.2. Características de los circuitos digitales sincrónicos. . . . . . . . . . . . . 94

    A.3. Normas de diseño de sistemas secuenciales sincrónicos . . . . . . . . . 96

    A.4. Implementación y programación de una red S-CNN. . . . . . . . . . . . . 99

    A.4.1. Condiciones Fronteras. . . . . . . . . . . . . . . . . . . . . . . . . 100

    A.5. Implementación y pruebas de la red S-CNN. . . . . . . . . . . . . . . . . 101

    A.5.1. Interfaz de comunicación. . . . . . . . . . . . . . . . . . . . . . . . 101

    A.6. Diseño VHDL UART-RS232. . . . . . . . . . . . . . . . . . . . . . . . . . 104

    A.6.1. Funcionamiento del subsistema de recepción. . . . . . . . . . . . 105

    A.6.2. Funcionamiento del subsistema de transmisión. . . . . . . . . . . 108

    VIII

  • Índice de figuras

    2.1. Circuito de la celda básica de una CNN . . . . . . . . . . . . . . . . . . . . . 7

    2.2. Arreglo simple cuadrado de celdas identicas . . . . . . . . . . . . . . . . . . . 8

    2.3. Estructura de una CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

    2.4. Circuito Típico de una Celda . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

    2.5. Respuesta ideal de la fuente no lineal . . . . . . . . . . . . . . . . . . . . . . 10

    2.6. Estructura de una CNN en tres y dos dimensiones . . . . . . . . . . . . . . . . 13

    2.7. Diagrama a bloques de una celda en tiempo continuo . . . . . . . . . . . . . . 15

    2.8. Funciones de salida no lineales de la CNN . . . . . . . . . . . . . . . . . 17

    2.9. Filtrado de una imagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

    3.1. Interpolación lineal del rango de la función PWL . . . . . . . . . . . . . . . . . 30

    3.2. Arreglo cuadrado de 3x3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

    3.3. Función simplicial PWL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

    3.4. Dominio dividido en Símplices . . . . . . . . . . . . . . . . . . . . . . . . . . 32

    3.5. SIMPLEX visto en 2D y 3D. . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

    3.6. Arquitecturas o vecindarios de la S-CNN. . . . . . . . . . . . . . . . . . . . . 33

    3.7. Vecindario de Von Neumman . . . . . . . . . . . . . . . . . . . . . . . . . . 34

    3.8. Codificación temporal de la entrada mediante la combinación convexa . . . . . 36

    3.9. Diagrama a bloques de la celda S-CNN digital para un imager . . . . . . . . . 38

    3.10.Diagrama a bloques de la celda S-CNN digital . . . . . . . . . . . . . . . . . . 40

    3.11.Vecindario de 5 celdas en forma de cruz. . . . . . . . . . . . . . . . . . . . . 41

    3.12.Frontera o borde de la S-CNN. . . . . . . . . . . . . . . . . . . . . . . . . . . 42

    4.1. Vecindario de 5 celdas en forma de cruz. . . . . . . . . . . . . . . . . . . . . 46

    4.2. Tabla de funciones guardadas en la memoria de la S-CNN. . . . . . . . . . . . 48

    IX

  • 4.3. Ciclos de funcionamiento de la S-CNN. . . . . . . . . . . . . . . . . . . . . . 49

    4.4. Modelo de la S-CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

    4.5. Arreglo bidimensional geométrico de la S-CNN . . . . . . . . . . . . . . . . . 51

    4.6. Esquemático de la celda. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

    4.7. Resultado de una celda con la función copiar. . . . . . . . . . . . . . . . . . . 54

    4.8. Imagen original y copia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

    4.9. Valores de entrada y salida de una celda con la función negar. . . . . . . . . . 55

    4.10.Imagen original y negativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

    4.11.Imagen original y negativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

    4.12.Modelo de la red S-CNN de mínima actividad . . . . . . . . . . . . . . . . . . 57

    4.13.Vecindario de la S-CNN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

    4.14.Diagrama del comportamiento de la S-CNN de mínima actividad. . . . . . . . . 60

    4.15.Grafica de la habilitación de banderas. . . . . . . . . . . . . . . . . . . . . . . 61

    4.16.Valores de las banderas C,P,I. . . . . . . . . . . . . . . . . . . . . . . . . . . 62

    4.17.Modelo de la red S-CNN de mínima actividad y las celdas que procesaran. . . . 63

    4.18.Modelo de la S-CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

    4.19.Esquemático de la celda. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

    4.20.Valores de entrada y salida de una celda con la función copiar. . . . . . . . . . 67

    4.21.Imagen original y copia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

    4.22.Valores de entrada y salida de una celda con la función negar. . . . . . . . . . 68

    4.23.Imagen original y su negativo . . . . . . . . . . . . . . . . . . . . . . . . . . 68

    4.24.Imagen original y su negativo . . . . . . . . . . . . . . . . . . . . . . . . . . 69

    5.1. Vecindario de la S-CNN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

    5.2. Diagrama del comportamiento de la S-CNN de mínima actividad. . . . . . . . . 76

    5.3. Grafica de la habilitación de banderas. . . . . . . . . . . . . . . . . . . . . . . 77

    5.4. Valores de las banderas C,P,I. . . . . . . . . . . . . . . . . . . . . . . . . . . 78

    5.5. Modelo de la S-CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

    5.6. Esquemático de la celda. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

    5.7. Valores de entrada y salida de una celda con la función copiar. . . . . . . . . . 82

    5.8. Imagen original y copia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

    5.9. Valores de entrada y salida de una celda con la función negar. . . . . . . . . . 83

    X

  • 5.10.Imagen original y su negativo . . . . . . . . . . . . . . . . . . . . . . . . . . 83

    5.11.Imagen original y su negativo . . . . . . . . . . . . . . . . . . . . . . . . . . 84

    6.1. Diagrama del comportamiento de la S-CNN asincróna. . . . . . . . . . . . . . 87

    A.1. Diagrama a bloques de un sistema secuencial síncrono . . . . . . . . . . 95

    A.2. Diseño sincrónico usando un solo buffer de reloj común . . . . . . . . . . 97

    A.3. Sincronización de datos entre múltiples relojes . . . . . . . . . . . . . . . 97

    A.4. Ejemplos de cómo utilizar correctamente una señal de inhibición . . . . . 98

    A.5. Modo de sincronización de señales asíncronas de entrada . . . . . . . . 99

    A.6. Utilización correcta de la carga de en paralelo . . . . . . . . . . . . . . . . 99

    A.7. a) Frontera reflectora, b)Frontera abierta . . . . . . . . . . . . . . . . . . . 101

    A.8. Formato de transmisión asíncrona . . . . . . . . . . . . . . . . . . . . . . 103

    A.9. Circuitos de recepción y transmisión del UART-RS232 . . . . . . . . . . . 105

    A.10.Diagrama a bloques del subsistema de recepción . . . . . . . . . . . . . . 106

    A.11.Máquina de estado del receptor del UART-RS232 . . . . . . . . . . . . . 107

    A.12.Diagrama de tiempos de la recepción de datos . . . . . . . . . . . . . . . 107

    A.13.Diagrama a bloques del subsistema de transmisión. . . . . . . . . . . . . 109

    A.14.Máquina de estado de trasferencia o transmisor del UART-RS232 . . . . 110

    XI

  • XII

  • Capítulo 1

    Introducción.

    La red celular neuronal comúnmente conocida como CNN (por sus siglas en inglés

    “Cellular Neural Network”) fue concebida en el Laboratorio de la Universidad de Califor-

    nia en Berkeley, por Leon O. Chua en el año 1987; pero fue hasta el año 1988 cuando

    se publicó su trabajo de manera conjunta con L. Yang en un par de artículos en los que

    presentaron la teoría así como las primeras aplicaciones de las CNNs [1, 2].

    En los artículos [1] y [2] se describe a la CNN como un circuito análogico no lineal

    que procesa señales en tiempo real, el cual se encuentra formado por varios sistemas

    (circuitos) dinámicos identicos reproducidos a espacios regulares llamadas celdas, las

    cuales se encuentran interconectadas entre ellas, cuyas variables de estado son seña-

    les de valor continuo y están localizadas dentro de un radio finito.

    Estas celdas se pueden comunicar directamente con sus vecinos más cercanos, y

    mediante propagación dinámica con las demás celdas.

    Cada celda del arreglo es un sistema dinámico que evoluciona de acuerdo con una

    ecuación prefijada, que además del estado y la entrada de la propia celda, incluye es-

    tados y entradas de las celdas vecinas. La celda incluye también una función de salida

    “generalmente no lineal” que tiene como argumento de entrada el estado de la celda

    [1, 3].

    Los fundamentos en los cuales se basa Leon O. Chua para generar a las CNNs son:

    1. Las redes neuronales artificiales (RNAs).

    2. Los autómatas celulares (ACs).

    1

  • De las primeras extrae la capacidad para el procesamiento asíncrono en paralelo, la

    dinámica en tiempo continuo y la interacción global de los elementos de la red.

    Mientras que de los autómatas celulares (ACs) obtiene la estructura,o en otras pa-

    labras, la idea de distribuir sus elementos de procesamiento (también llamadas celdas)

    en rejillas regulares y permitir que la comunicación de cada celda con las otras se lleve

    a cabo a nivel local.

    Existen tres modelos de CNNs que son los más usados: la red celular neuronal de

    una sola capa, la red celular neuronal multicapa y la red celular neuronal en tiempo

    discreto. El primer modelo es el más común y corresponde al modelo continuo con

    una sola capa; este es el modelo original, y por tal razón además de que es la más

    empleada, normalmente se le llama simplemente red celular neuronal. El segundo es

    una extensión del primer modelo, el cual emplea arreglos de redes celulares neuronales

    en capas, dos o más de manera semejante a como se hace con los perceptrones, y es

    por esto que recibe su nombre. El último modelo, no opera en tiempo continuo, sino que

    utiliza valores discretos de éste y de ahí su nombre.

    1.1. Motivación y Alcances.

    Un factor importante que motiva al estudio, diseño y uso de las CNNs es su diver-

    sidad de aplicaciones, entre las que destacan: procesamiento de imágenes, reconoci-

    miento de caracteres escritos, robots automatizados, visión artificial, clasificación de las

    señales de radar, encriptación de señales, diseño de osciladores, sistemas de voz y

    video, sistemas de comunicaciones y sistemas de control (sensores de presión, tempe-

    ratura, gas, etc.). Además la CNN utilíza un procesamiento paralelo distribuido sobre

    todo el plano focal, aumentando las velocidades de procesamiento con respecto a otro

    tipo de redes neuronales, principalmente cuando se trabaja con imágenes.

    El modelo de la CNN 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, filtrado espacial, filtrado en frecuencia y análisis tem-

    poral (movimiento) de imágenes.

    Dos propiedades fundamentales que hacen este modelo apropiado para aplicacio-

    2

  • nes de Procesamiento Digital de Imágenes (PDI): el carácter local de las conexiones

    entre celdas vecinas, y la programabilidad de los parámetros que definen la red.

    La CNN puede considerarse como un modelo especial de las redes discretas de

    Hopfield [4], en el cual el conexionado se ve drásticamente reducido a las neuronas más

    cercanas. Esto ha posibilitado el desarrollo de algunas implementaciones en circuito

    VLSI de CNN. El carácter programable de sus parámetros incide en la fácil adaptación y

    reutilización de la estructura para tareas completamente independientes. Además, cabe

    reseñar la evidencia biológica hallada para este tipo de redes: una CNN puede simular

    varias partes del sistema nervioso de la retina humana, principalmente las estructuras

    del córtex primario. Todo lo anterior justifica el gran interés de la comunidad científica

    por estas redes, con vistas a su aplicación en sistemas de Visión Artificial o similares, y

    que se engloban dentro de las técnicas de PDI.

    Una de las razones por las cuales la CNN ha sido de gran interés, es debido a las

    rápidas velocidades de convergencia que se pueden obtener a partir de realizaciones

    en circuitos integrados. Además la CNN al ser un circuito no lineal puede evaluarse a

    partir del uso de funciones lineales a tramos o funciones PieceWise Linear (PWL).

    1.2. CNN para Procesamiento Digital de Imágenes.

    El procesamiento digital de imágenes se refiere al manejo y análisis de imágenes

    por medio de sistemas de cómputo, que requieren administrar una gran cantidad de in-

    formación la cual a su ves requiere una gran cantidad de tiempo de procesamiento. Esto

    presenta una desventaja en sistemas de tiempo real, donde es necesaria una interpre-

    tación inmediata, como por ejemplo en sistemas de control, sistemas de visión artificial,

    sensores de presión, temperatura, gas, etc. El enfoque tradicional de procesamiento de

    datos en forma secuencial, comúnmente utilizado en computadores y microprocesado-

    res presenta una limitación, dado que es necesario recolectar toda la información en un

    mismo lugar para procesarla mediante una única unidad de procesamiento, el transpor-

    te de la información torna inevitablemente lento el procesamiento. Es aquí que surge el

    paradigma del calculo a nivel local, donde cada unidad realiza un cierto procesamiento,

    utilizando la información propia y de las unidades mas cercanas.

    3

  • 1.3. Arquitectura Propuesta.

    Se plantea el uso de una arquitectura que está basada en la CNN, denominada CNN

    Simplicial ó S-CNN, la cual fue presentada por Pedro Marcelo Julián en [5].

    La S-CNN a diferencia de la propuesta por Chua como CNN estándar basa el sis-

    tema dinámico de la celda en una función no lineal. Más específicamente, la función

    utilizada es una función lineal por tramos (PWL por sus siglas en ingles “PieceWise

    Linear”), que puede ser programada mediante valores almacenados en memoria. Esto

    le confiere mayor generalidad y versatilidad en comparación con la CNN estandar. La

    arquitectura es completamente digital, con lo cual hereda propiedades de escalado en

    área y velocidad de los procesos digitales CMOS.

    La S-CNN procesa información valiéndose de la evaluación de una función lineal a

    tramos simplicial (PWL simplicial) en cada celda, además de que requiere la evaluación

    temporal del sistema dinámico discreto para calcular el valor del proximo estado, y es

    en esta arquitectura denominada S-CNN en la cual nos basaremos para el desarrollo

    de este trabajo de investigación.

    La S-CNN posee un campo de acción mucho mayor que la CNN estándar, y esto se

    debe a que no posee la limitación de representar solo funciones de variables separables

    en la relación de entrada-salida del estado estacionario. De hecho, al utilizar estar repre-

    sesentación, el diseño de una función CNN puede realizarse por la inspección directa

    de la salida ante ciertas combinaciones de entradas.

    En este trabajo la S-CNN está diseñada para ser empleada en el Procesamien-

    do Digital de Imágenes, realizando diversas técnicas de procesamiento a partir de las

    funciones guardadas en una memoria. Para obtener una implementación eficiente en

    términos del área de cada celda, se propone la realización de una única memoria en la

    periferia del chip y la distribución de su contenido a todas las celdas por medio de un

    bus de datos. Se emplea la lógica dinámica de precarga y evaluación para la realización

    de las celdas y así obtener una mayor densidad de pixeles.

    Se busca que la arquitectura completa de la S-CNN sea un circuito de mínima acti-

    vidad, por lo que esta arquitectura será una S-CNN síncrona para bajo consumo.

    4

  • 1.4. Objetivos.

    Realizar el estudio y diseño de una Red Celular Neuronal Simplicial(S-CNN) de mí-

    nima actividad con el fin de poder reducir el consumo de la S-CNN, haciendo que solo

    procesen las celdas que requieran un cambio en su estado y no todas las celdas que

    forman a la S-CNN, para aplicarla en diversas técnicas del procesado de imágenes,

    realizando el procesamiento de imágenes a partir de diversas funciones guardadas en

    una única memoria dispuesta en la periferia del circuito.

    1.5. Metas.

    Las metas de este proyecto incluyen:

    Estudiar y análizar diversas arquitecturas para desarrollar la S-CNN sincrónica de

    mínima actividad, con características bien definidas para lograr un bajo consumo

    de potencia, dimensiones pequeñas y sobre todo una alta velocidad de procesa-

    miento (en paralelo).

    Identificar cuales son las mejores alternativas para los circuitos que forman a la

    S-CNN.

    Diseñar la S-CNN a partir de la descripción de circuitos en VHDL y la FPGA.

    1.6. Contribución.

    La contribución de este trabajo es el diseño y caracterización de una S-CNN pro-

    gramable, la cual es de mínima actividad y muy bajo consumo, que sirve para realizar

    diversas técnicas en el procesamiento de imágenes, tales como copiado de imagen,

    negado de una imagen, filtrado de imágenes, detección de bordes, suavizado, entre

    otros.

    La S-CNN es capaz de detectar una imagen y procesarla de acuerdo a su progra-

    mabilidad , para de esta manera obtener una nueva imagen, usando circuitos digitales

    sencillos.

    5

  • 1.7. Organización de la tesis.

    El desarrollo de este proyecto de investigación está enfocado principalmente en el

    diseño, implementación y caracterización de una S-CNN síncrona de mínima actividad

    para ser usada como una camara inteligente capáz de realizar ciertas técnicas del pro-

    cesado digital de imágenes (PDI).

    La tesis esta organizada de la siguiente maneras: En el capitulo 2 se presentan los

    antecedentes y justificación del trabajo, donde se describe un panorama general de

    las redes celulares neuronales no lineales (CNN) y el caso particular de la S-CNN ó

    CNN Simplicial; se describen también las principales características y diferencias entre

    los sistemas síncronos y asíncronos para el diseño de la S-CNN. En el capitulo 3 se

    describe la arqitectura y las características de la S-CNN, identificando su mécanica de

    funcionamiento y las partes que la conforman para poder llevar a cabo el computo de la

    S-CNN. En el capitulo 4 se presentan las arquitecturas propuestas como parte de este

    trabajo de investigación, donde se describe el diseño de dos arqitecturas planteadas

    para el procesamiento de imágenes y que están basadas en la S-CNN digital, las cuales

    se identifican como S-CNN estandar y S-CNN de mínima actividad. El el capitulo 5

    se presentan los conclusiones y una comparación entre los dos diseños propuestos,

    ademas de plantear el trabajo a futuro para el diseño de la S-CNN de mínima actividad

    totalmente asíncrono.

    6

  • Capítulo 2

    Antecedentes.

    En este capítulo se presentan los antecedentes y justificación de las Redes Celu-

    lares Neuronales (CNN estandar). Se describe el caso particular de la CNN Simplicial

    (S-CNN) y las principales características y diferencias entre los sistemas síncronos y

    asíncronos.

    2.1. Descripción la celda básica de una CNN.

    La unidad básica de una CNN estándar se llama celda y contiene elementos linea-

    les y no lineales, que son típicamente: Capacitores lineales, resistores lineales, fuentes

    controladas lineales y no lineales, y las fuentes independientes. Además, todas las cel-

    das de una CNN contienen los mismos elementos y la misma estructura de circuito (vea

    la figura 2.1).

    Figura 2.1: Circuito de la celda básica de una CNN

    7

  • La idea de una CNN es emplear un arreglo simple de celdas no lineales idénticas,

    conectadas localmente, para formar un sistema de procesamiento de señales a gran

    escala ( ver la figura 2.2).

    Figura 2.2: Arreglo simple cuadrado de celdas identicas

    La CNN está conectada solamente con sus celdas vecinas, de esta forma, las celdas

    adyacentes pueden interactuar directamente con las otras. Las celdas que no están

    conectadas directamente pueden ser afectadas indirectamente debido a los efectos de

    la propagación dinámica de las CNNs. Las conexiones entre celdas pueden ser de dos

    maneras: DIRECTA O INDIRECTA, es decir:

    Conexión directa: CELDA - CELDA

    Conexión indirecta: CELDA - PROPAGACIÓN DINÁMICA - CELDA

    Cada celda es influenciada por un número limitado de celdas en su ambiente (vea la

    figura 2.3).

    Figura 2.3: Estructura de una CNN

    8

  • La figura 2.3 muestra la celda acentuada (negro) conectada con los vecinos más

    cercanos (celdas grises).

    La forma de las conexiones entre las unidades es la diferencia principal entre CNNs

    y otras redes neuronales.Las celdas marcadas en gris representan la vecindad de la

    celda negra. La vecindad incluye a la propia celda negra. Esto se llama una vecindad de

    3 x 3. De la misma manera podemos definir vecindades de celdas de 5x5, de 7x7, etc.

    Se identifica el tamaño de la vecindad por r. Así, cuando r=1, estamos tratando con

    una vecindad de 3x3; si r=2, la vecindad es de 5x5.

    2.1.1. Circuito típico de una celda.

    Cuando Chua propuso la CNN, el circuito típico de una celda estaba relacionada con

    circuitos pasivos y activos analógicos, tal y como se muestra en la figura 2.4.

    Figura 2.4: Circuito Típico de una Celda

    Este circuito muestra una celda analógica desde el punto de vista ideal, considerando

    los siguientes elementos:

    Una fuente de voltaje independiente (E uij) como entrada.

    9

  • Una fuente de corriente independiente (I).

    A lo mas 2m fuentes de corriente controladas por voltaje líneales, Ixy(i,j;k,l) e Ixu

    (i,j;k,l).

    Una fuente de corriente controlada por voltaje (Salida).

    Un capacitor (C).

    Dos resistores lineales (Rx y Ry).

    El único elemento no lineal que existe en cada celda es una fuente de corriente

    controlada por voltaje, la cual es líneal a tramos con la siguiente ecuación característica

    (ver ecuación 2.1):

    IYX = (1/RY )(V xi, j) (2.1)

    Y la función que se obtiene para este elemento no lineal empleando PWL, es la que

    se muestra en la figura 2.5, donde se observa una función linealizada a tramos (en 3

    segmentos).

    Figura 2.5: Respuesta ideal de la fuente no lineal

    10

  • Las ecuaciones que describen a la celda básica, son la que se muestran a continua-

    ción identificadas como 2.2,2.3 y 2.4.

    ECUACIÓN DE ESTADO:

    Cdvxij(t)

    dt= −

    1

    Rxvxij(t) +

    ∑A(i, j; k, l)vykl(t) +

    ∑B(i, j; k, l)vukl(t) + I (2.2)

    ECUACIÓN DE SALIDA:

    vyij(t) =1

    2(|vxij(t) + 1| − |vxij(t)− 1|) (2.3)

    ECUACIÓN DE ENTRADA:

    vuij = Eij (2.4)

    CONDICIONES DE LA SEÑALES:

    |vxij(0)| ≤ 1 |vuij| ≤ 1 (2.5)

    Para 1≤ i≤M ; 1≤ j≤ N

    Donde C es un condensador de entrada, que tiene el mismo valor en cada una de

    las celdas.

    Rx es la resistencia de entrada al circuito.

    I es la corriente de polarización de entrada, también igual para todas las celdas,

    que actúa como un umbral para la actividad neuronal.

    Vxij(t) describe la actividad celular.

    Vyij(t) es la salida de la red.

    u es la entrada constante externa a la red.

    11

  • B y A son matrices de conectividad que describen respectivamente el tipo de

    actividad a realizar con la señal de entrada u (filtrado de control) y la señal de

    salida y (filtrado de realimentación).

    La ecuación 2.2 describe la actividad de la celda, siendo A y B a menudo simétricas.

    En muchos casos Bij = 0, por lo que la matriz de condiciones iniciales de la ecuación

    diferencial se toma como una entrada a la red.

    La ecuación 2.3 representa la salida de la red que es una función lineal a tramos,

    aunque se puede considerar también una función sigmoide o de base radial [3].

    La diferencia principal con otros modelos de Redes Neuronales es que los pe-

    sos sinápticos de la CNN no almacenan ningún modelo aprendido, representando

    tan sólo un esquema de conexiones adecuado para realizar una tarea específica.

    Esta forma del conexionado, simple y repetitivo, hace del modelo una estructura

    muy atractiva para realizar tareas típicas de Procesamiento Digital de Imágenes.

    Pero la CNN ESTANDAR posee una funcionalidad limitada debido a la linealidad

    de su ecuación de estado, ya que si se analiza la relación de entrada-salida del esta-

    do estacionario, se encuentra que solo es capaz de representar funciones linealmente

    separables.

    2.2. Descripción y Características de la CNN estandar.

    Desde su aparición en 1988 por Leon O. Chua y L. Yang, se han desarrollado una

    gran cantidad de estudios sobre este modelo y sus aplicaciones, pero su principal apli-

    cación ha sido en el procesamiento digital de imagenes, desde entonces muchos inves-

    tigadores ha hecho contribuciones significativas al estudio de la CNN, conservando dos

    ideas originales [3]:

    1. La mayoría de las interacciones son localizados dentro de un radio finito r.

    2. Todas las variables de estado son señales de valor continuo.

    12

  • Como se observa en la figura 2.6, las Redes Celulares Neuronales(CNN) son un gru-

    po masivo paralelo de celdas idénticas interconectadas, definido en espacios discretos

    N dimensionales.

    Figura 2.6: Estructura de una CNN en tres y dos dimensiones

    2.2.1. Características de la CNN estandar.

    Para poder diseñar y utilizar las CNNs de una manera adecuada, es importante

    identificar sus principales características, tanto físicas como de funcionamiento, entre

    las cuales destacan las siguientes [3].

    1. Todas las celdas internas de una red celular neuronal (CNN) tienen la misma es-

    tructura de circuito y los mismos valores de elementos. La celda interna es la celda

    que tiene (2r + 1)2 celdas de vecindad. Todas las otras celdas son llamadas celdas

    límite o de borde, donde r está definida en la ecuación 1.2. Además, la CNN, está

    caracterizada por ecuaciones diferenciales no lineales asociadas con las celdas

    en el circuito.

    13

  • 2. Cada celda de una CNN tiene a lo más tres nodos, pero en algunos casos se

    puede elegir Ei,j=0 si B(i,j ; k,l) = 0 y entonces solo se obtienen dos nodos en

    una celda y dado que todas las celdas del circuito tienen el mismo nodo dato, y

    como todos los elementos del circuito están controlados por tensión, la red celu-

    lar neuronal está especialmente adecuada para el análisis por nodos. Más aún,

    como las interconexiones son locales, la matriz ecuación de nodos asociada es

    extremadamente esparcida para circuitos grandes.

    3. El comportamiento dinámico de una red celular neuronal posee mecanismos tanto

    de retroalimentación de salida como de control de entrada. Los efectos de la salida

    retroalimentada dependen de los parámetros interactivos A(i,j ; k,l) y los efectos de

    la entrada de control dependen de B(i,j;k,l). Por lo tanto podemos considerar A(i,j ;

    k,l) como un operador de retroalimentación, y a B(i,j ; k,l) como un operador

    de control.

    4. Los valores de los elementos del circuito se pueden elegir convenientemente en la

    práctica. Las resistencias Rx y Ry determinan la potencia disipada en el circuito,

    y son elegidos con valores entre 1k y 1M. CRx es la constante de tiempo del

    dinamismo del circuito y usualmente está entre: 10−8 y 10−5 s..

    2.2.2. Interconexiones

    La característica más identificada de la CNN es la conexión entre las unidades, lleva-

    da a cabo localmente. En sí la diferencia principal entre una CNN y otros paradigmas de

    redes neuronales es el hecho de que las informaciones son intercambiadas directamen-

    te entre las unidades vecinas; y esta característica permite también obtener un proceso

    global. Las comunicaciones entre celdas no conectadas directamente son obtenidas al

    pasar a través de otras unidades [3].

    14

  • Existen dos maneras en las que se pueden interconectar las celdas[C(i,j)] con celdas

    vecinas[C(k,l)], las cuales son mediante las fuentes de corriente controladas por voltaje

    Ixy(i,j;k,l) e Ixu (i,j;k,l):

    1. Se conectan las fuentes de corriente controladas por voltaje a las celdas vecinas

    por la vía de control del voltaje de entrada Vukl de C(k,l)

    2. Se conectan por la vía de retroalimentación del voltaje de salida Vykl de C(k,l).

    Por tanto, la celda C(i,j) tiene conexiones directas a sus vecinos mediante: la señal

    retroalimentación A(k,l; i,j) y mediante la señal de control B(i,j; k,l)

    Donde el par del índice (i,j; k,l) representa la dirección de la señal de C(i,j) hasta

    C(k,l).

    El comportamiento global de una CNN es caracterizado por un sistema que contiene

    la señal A (de retroalimentación), la señal B (de control) y la corriente de polarización

    (I). Donde las señales A y B se supone que son iguales para todas las celdas en la red.

    A continuación se muestra el diagrama a bloques de una celda en tiempo continuo,

    donde se pueden observar las diferentes señales que actuan en la celda (figura 2.7):

    Figura 2.7: Diagrama a bloques de una celda en tiempo continuo

    15

  • 2.2.3. Rango dinámico

    Antes de diseñar una CNN, es necesario conocer el rango dinámico que garantice

    la satisfacción de las ecuaciones estipuladas. Por tanto todos los estados Vxij en una

    CNN son limitados para todo tiempo t=0, y el límite Vmax puede ser calculado mediante

    la siguiente fórmula para un CNN (2.6).

    Vmax = 1 +Rx|I|+Rx1≤i≤M,1≤j≤Mmax[∑

    C(k,l) ǫ Nr(i,j)

    (|A(i, j; k, l)|+ |B(i, j; k, l)|)] (2.6)

    Y considerando las ecuaciones de estado, obtenemos que:

    Vmax = maxi,j[1 +Rx|I|+Rx∑

    C(k,l) ǫ Nr(i,j)

    (|A(i, j; k, l)|+ |B(i, j; k, l)|)] (2.7)

    Entonces, puesto que Vmax es independiente del tiempo t y de la celda C(i, j), para

    todo i y j tenemos:

    maxt|Vxij ≤ Vmax| para todo C(k, l) ǫ Nr(i, j) (2.8)

    Y como para cualquier CNN, los parámetros RX, C, I, A(i,j;k,l) y B(i,j;k,l) son cons-

    tantes finitas, implica que el límite de los estados de las celdas es finito. Por tanto se

    observa que cualquier red celular neuronal parte de un modelo básico denominado cel-

    da, la cual es caracterizada y modelada para que su funcionamiento sea el adecuado a

    nuestras necesidades y requerimientos.

    Generalmente, la mayoría de la funcionalidad de la CNN está basada en el diseño

    de la ecuación diferencial no lineal que gobierna el comportamiento de la celda.

    16

  • 2.2.4. Funciones de Salida.

    La salida de una CNN puede tener diferentes formas, y es dependiente de las etapas

    de entrada y de estado. Algunas funciones de salida no lineales útiles, se muestran en

    la figura 2.8.

    Figura 2.8: Funciones de salida no lineales de la CNN

    La salida más conveniente es la de ganancia unitaria ya que si se emplea para el

    procesamiento digital de imágenes en escala de grises se pueden análizar todos los

    pixeles de la imagen procesada (256 pixeles).

    Como un caso muy especial, si la entrada y la función son piecewise-linear

    (PWL), entonces toda la dinámica del arreglo de la CNN es lineal.

    Para la CNN, consideramos valores de señal continuos para la entrada o salida, y

    estos son presentados en el rango de [-1, +1], y como se mencionó, este rango se puede

    emplear en el procesamiento de imagenes en escala de grises, donde +1 es negro y -1

    es blanco.

    17

  • 2.2.5. Aplicaciones básicas

    Una aplicación de las CNNt’s es en el procesamiento digital de imágenes (PDI)

    (en escala de grises). La función básica de la CNN para el procesamiento de imágenes

    es la transformación de una imagen de entrada a otra imagen de salida. Aquí restrin-

    gimos nuestra imagen de salida a imágenes binarias con -1 y con 1 como los valores

    de píxel. Sin embargo, las imágenes de entrada pueden tener niveles de grises múlti-

    ples, a condición de que sus voltajes correspondientes satisfagan las condiciones de

    constricción, esto significa que la CNN para el proceso de imágenes, converge a un es-

    tado estacionario constante siguiendo un régimen transitorio el cual ha sido inicializado

    y conducido por una imagen dada a la entrada.

    Las redes celulares neuronales usadas para el procesamiento digital de imágenes

    definen procesos que explotan la conectividad en realimentación del modelo original

    de CNN [2], 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 ,

    la codificación de caracteres y la detección de elementos simples como líneas y bordes

    [6, 7].

    Generalmente, una imagen en escala de grises se codifica mediante un byte para

    cada pixel, dando 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) [8].

    La carencia fundamental de estos primeros modelos es la dedicación casi exclusiva

    a filtrados de imágenes binarias codificadas en unos valores poco comunes:

    +1 para pixeles negros.

    -1 para pixeles blancos.

    Con el fín de ampliar la funcionalidad del modelo original, se han definido otros mo-

    delos modificados para el tratamiento de imágenes en color y en escala de grises [9].

    18

  • En este sentido, la principal ventaja de las CNN es la posibilidad de realizar filtros

    complejos en una sola capa, aprovechando las plantillas de control y realimentación de

    la red, además de definir un control del brillo y el contraste para cada píxel. Así mis-

    mo, a partir de la definición de nuevas conexiones sinápticas para CNN, se ha logrado

    implementar operaciones que implican productos de orden superior.

    Una de las aplicaciones de estos nuevos operadores es la extracción de información

    estadística de la imagen, como los valores de media y desviación estándar. Se usan

    también en el análisis y síntesis de circuitos y sistemas con dinámica compleja

    incluyendo fenómenos como: Oscilaciones, bifurcaciones y caos.

    2.3. CNN para camaras CMOS.

    En la actualidad las CNN ya no emplean el uso de circuitos analógicos para su

    diseño, el cual tendría la ventaja de poder trabajar en modo continuo haciendo que el

    procesamiento fuera casi instantaneo en la CNN, pero tienen la desventaja de usar un

    área bastante grande para cada celda, evitando así que las camaras tengan una alta

    resolución, además sería necesario un control externo para su funcionamiento, por lo

    que hoy en día las CNN son diseñadas en modo digital para una gran cantidad de

    aplicaciones, logrando con esto una mayor escalabilidad y una mayor integración de

    celdas en la CNN completa, pero su funcionamiento es el mismo de la CNN analógica

    ó en modo mixto, y al igual se basa en las mismas ideas propuestas inicialmente por

    Chua y Yang.

    La descripción matemática de una delda está dada por la ecuación que relaciona

    la dinámica del estado con las entradas y salidas, y por la ecuación que especifica el

    mapeo del estado interno en la salida.

    19

  • 2.4. CNN Simplicial (S-CNN)

    La S-CNN es el caso particular de la CNN, presentada por P. Julian en [5]. La S-

    CNN procesa información valiendose de la evaluación de una función lineal a tramos

    simplicial (PWL simplicial) en cada celda, la cual requiere la evolución temporal del

    sistema dinámico discreto para calcular el valor del proximo estado. Para encontrar la

    solución de la red, es necesario evaluar la función de transición de estados (ó integrar

    el vector de campo en el caso de sistemas continuos) 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. La forma de calcular la función de transición consiste

    en encontrar dentro del dominio de dicha función el símplice que lo contiene y realizar

    una interpolación lineal sobre todas las transiciones.

    2.4.1. Campo de acción de la S-CNN

    La S-CNN posee un campo de acción mucho mayor que la CNN estándar, y esto se

    debe a que no posee la limitación de representar solo funciones de variables separables

    en la relación de entrada-salida del estado estacionario. De hecho, al utilizar estar repre-

    sesentacón, el diseño de una función CNN puede realizarse por la inspección directa de

    la salida ante ciertas combinaciones de entradas. En este trabajo la S-CNN está dise-

    ñada para ser empleada en el Procesamiendo Digital de Imágenes, realizando diversas

    técnicas de procesamiento a partir de las funciones guardadas en una memoria.

    2.5. CNN Estándar vs CNN Simplicial.

    Como ya se describió la CNN estandar fue introducida por Chua y Yang [1, 2] como

    un arreglo espacial de celdas que poseen vinculaciones locales. Cada una de las celdas

    del arreglo es un sistema dinámico que evoluciona segun una ley o ecuación prefijada,

    que además del estado y la entrada propios incluye los estados y entradas de los ele-

    mentos cercanos. La celda incluye una función de salida generalmente no lineal que

    tiene como argumento de entrada el estado de la misma celda. Cada celda posee la

    misma dinámica con una configuracion idéntica de entradas, salidas e interconexiones.

    20

  • Por tanto al principal diferencia de entre la CNN estanda y la simplicial, se encuentra

    en las funciones que pueden resolver o representar, es decir:

    La CNN estándar: posee una funcionalidad limitada debido a la linealidad de su

    ecuación de estado; si se analiza la relación de entrada-salida de estado estado

    estacionario, se encuentra que solo es capaz de representar funciones linealmente

    separables.

    La CNN simplicial: es el caso particular de la CNN estandar y fue presentada por

    Pedro Julian en [5].La dinámica de la S-CNN está definida por una relación lineal a

    tramos o PWL (por sus siglas en ingles, Picewise-Linear) en la sinapsis de la celda

    y posee una campo de acción mucho mayor que la CNN estándar al no poseer la

    limitación de representar solo funciones de variables separables en la relación de

    entrada-salida de estado estacionario. De hecho, al utilizar esta representación, el

    diseño de una funcion CNN puede realizarse por la inspección de la salida ante

    ciertas combinaciones de entrada.

    2.6. Características y descripción del diseño asíncrono.

    El diseño asíncrono ha sido un área activa de investigación desde mediados de los

    años 50, cuando el foco principal eran los circuitos de relés mecánicos. En 1956, D. E.

    Muller y W. S. Bartky estudiaron en detalle una serie de aspectos teóricos relacionados

    con circuitos asíncronos; desde entonces, este campo ha tenido un número de ciclos de

    alto interés El diseño asíncrono ha sido un área activa de investigación desde mediados

    de los años 50, cuando el foco principal eran los circuitos de relés mecánicos. En 1956,

    D. E. Muller y W. S. Bartky estudiaron en detalle una serie de aspectos teóricos relacio-

    nados con circuitos asíncronos; desde entonces, este campo ha tenido un número de

    ciclos de alto interés [10].

    21

  • 2.6.1. Características de los circuitos asíncronos

    De acuerdo con lo planteado en [11], el diseño lógico de hoy está basado en dos

    aspectos: todas las señales son binarias y el tiempo es discreto. Asumir valores binarios

    sobre las señales permite usar lógica Booleana para describir y manipular construccio-

    nes lógicas. Asumir que el tiempo es discreto permite ignorar los riesgos (glitches) y los

    retardos de la realimentación que presentan los circuitos síncronos. Los circuitos asín-

    cronos mantienen el supuesto que las señales son binarias pero remueven el supuesto

    que el tiempo es discreto. Lo anterior tiene varios posibles beneficios [12][13].

    2.6.2. Ventajas de los circuitos asíncronos.

    No hay retrasos de reloj (clock Skew): ya que los circuitos asíncronos no tienen

    señal de reloj. Bajo Consumo de Potencia: debido a que no es necesario conmutar

    líneas de reloj y precargar y descargar circuitos que no serán usados en alguna ruta de

    cálculos.

    Desempeño del caso promedio en lugar del peor caso: los circuitos síncronos

    deben esperar a que todos los posibles cálculos se hayan llevado a cabo antes de

    capturar el resultado manteniendo el peor caso. Muchos circuitos asíncronos censan

    cuándo ha finalizado el cálculo manteniendo el caso promedio.

    Facilidad de manejo de la temporización global: en microprocesadores síncronos,

    el reloj del sistema y por tanto el desempeño del sistema está determinado por la ruta

    más lenta (crítica) por lo que ésta se debe optimizar para obtener la más alta tasa de

    reloj. Los circuitos asíncronos operan a la velocidad de la ruta concreta de operación.

    Mejor Potencial de Migración Tecnológica: en sistemas asíncronos sólo el com-

    ponente más crítico influye sobre el desempeño promedio global ya que el desempeño

    sólo depende de la ruta activa en el instante.

    Adaptación Automática a propiedades físicas: los circuitos síncronos deben asu-

    mir que se presenta la peor combinación posible de factores para determinar el reloj

    del sistema. En la mayoría de circuitos asíncronos se censa la finalización del cálculo y

    estos correrán tan rápidamente como las propiedades físicas lo permitan.

    22

  • Exclusión Mutua Robusta y Manejo de entradas externas: los elementos que

    garantizan una correcta exclusión mutua de señales independientes y sincronización de

    señales externas para un reloj están sujetas a metaestabilidad. La mayoría de sistemas

    asíncronos pueden esperar un largo tiempo arbitrario y como no necesitan un reloj con

    el cual las señales se sincronicen, pueden acomodar sus entradas desde el mundo

    exterior.

    2.6.3. Desventajas de los circuitos asíncronos.

    El predominio de los sistemas síncronos causa sorpresa a pesar de todas las venta-

    jas potenciales de los circuitos asíncronos. La razón es que el diseño asíncrono presenta

    varias desventajas respecto del diseño síncrono [12][13].

    El paradigma del diseño con reloj tiene una simple regla fundamental; cada etapa de

    procesamiento debe completar sus actividades antes que termine el periodo del reloj.

    El diseño asíncrono requiere hardware extra para permitir que cada bloque realice la

    sincronización local para el paso de datos a otros bloques. Esta complejidad adicional

    resulta en circuitos más grandes y procesos de diseño más complejos.

    Punto Muerto (Deadlock): el diseño de lógica de control usando una técnica de

    diseño asíncrono entra en un punto muerto si se pierde un evento o si éste se introduce

    en forma incorrecta, por ejemplo como resultado de un ruido o radiación iónica.

    Difícil Verificación: para un diseño asíncrono, la verificación es difícil debido al com-

    portamiento no determinista de los elementos de arbitración, y no es fácil detectar el

    punto muerto sin una exploración exhaustiva del espacio de estados.

    Testibilidad: las pruebas para las fallas de fabricación en sistemas asíncronos es

    el principal obstáculo debido al comportamiento no determinista de los elementos de

    arbitración.

    Falta de familiaridad de los diseñadores con las técnicas de diseño asíncrono:

    debido a que las técnicas de diseño síncronas, principalmente, han sido usadas y ense-

    ñadas ampliamente en universidades por más de dos décadas.

    23

  • 2.6.4. Metodologías de diseño asíncrono.

    Una forma de distinguir el amplio espectro de diseños asíncronos es entendiendo

    los diferentes modelos de retardo y operación. Cada circuito físico tiene un retardo in-

    herente, sin embargo, ya que los circuitos síncronos procesan entradas en cada pulso

    de reloj, ellos pueden ser considerados como operadores instantáneos que calculan un

    nuevo resultado en cada ciclo de reloj. Por otro lado, ya que los circuitos asíncronos no

    tienen reloj, estos se pueden considerar como elementos de cálculo dinámico a través

    del tiempo, por lo tanto, un modelo de retardo no define de forma eficiente el comporta-

    miento dinámico de un circuito asíncrono. Hay dos modelos fundamentales de retardo,

    el modelo de retardo puro y el modelo de retardo inercial. Un retardo puro puede retar-

    dar la propagación de una forma de onda pero no la altera. Un modelo inercial puede

    alterar la forma de la onda atenuando los glitches. Los retardos también se caracterizan

    por sus modelos de tiempo: en un modelo de retardo fijo se asume que el retardo es fijo;

    en un modelo de retardo acotado, un retardo puede tener cualquier valor en un intervalo

    de tiempo dado.

    En un modelo de retardo no acotado, un retardo puede tener cualquier valor finito

    [10].

    Un modelo de circuito se define en términos de modelos de retardos para las líneas

    individuales y los componentes. Dado un modelo de circuito, es importante caracterizar

    la interacción del circuito con su ambiente. El circuito y el ambiente forman un siste-

    ma cerrado llamado Circuito Completo. Si al ambiente se le permite responder a las

    salidas del circuito sin restricciones de tiempo, los dos interactúan en un modo de en-

    trada/salida. El ejemplo más común es el modo fundamental, donde el ambiente debe

    esperar para que un circuito se estabilice antes de responder a las salidas del circuito;

    tal requerimiento se puede ver como el tiempo de sostenimiento (hold time) para un

    latch o un flip-flop.

    Tradicionalmente han existido dos modelos importantes en el mundo de los circuitos

    asíncronos [14, 15]:

    24

  • El modelo de Huffman, en el cual el circuito se descompone en un circuito combi-

    nacional y un conjunto de hilos de realimentación. Además se asocia un elemento de

    retardo acotado a cada interconexión entre puertas (modelo de retardo de hilo acotado).

    El modelo de Muller, el circuito se descompone en un conjunto de puertas arbitra-

    riamente interconectadas y se asocia a un elemento de retardo no acotado pero finito a

    cada salida de puerta (modelo de retardo de puerta no acotado).

    2.7. CNN para procesado de imágenes.

    En la actualidad existen multiples programas computacionales y equipos digitales

    que se emplean para realizar el PDI. Entre los sistemas más empleados se tiene el

    denominado FPGA que utiliza Lenguajes de Descripción de Hardware para su funcio-

    namiento.

    Lo que se plantea es diseñar y fabricar una CNN del tipo simplicial que pueda realizar

    ciertas técnicas del procesado digital de imágenes (PDI), haciendo uso de funciones ya

    definidas para poder realizar alguna tarea especifica. Otras hacen uso de plantillas o

    mascaras que tienen ya definidos los pesos sinápticos de la CNN.

    En la figura 2.9 se muestra la matriz de pesos para realizar un filtro pasa altas,

    identificando la imagen de entrada y la imagen de salida.

    a) Imagen de entrada

    0 0 0

    0 1 0

    0 0 0

    1 1 1

    1 8 1

    1 1 1

    A

    B

    Z Ie

    é ùê ú= ê úê úë û

    é ùê ú= -ê úê úë û

    = ®

    b) Pesos sinápticospara un filtro pasa

    altas

    c) Imagen de salidaa) Imagen de entradaa) Imagen de entrada

    0 0 0

    0 1 0

    0 0 0

    1 1 1

    1 8 1

    1 1 1

    A

    B

    Z Ie

    é ùê ú= ê úê úë û

    é ùê ú= -ê úê úë û

    = ®

    b) Pesos sinápticospara un filtro pasa

    altas

    0 0 0

    0 1 0

    0 0 0

    1 1 1

    1 8 1

    1 1 1

    A

    B

    Z Ie

    é ùê ú= ê úê úë û

    é ùê ú= -ê úê úë û

    = ®

    b) Pesos sinápticospara un filtro pasa

    altas

    c) Imagen de salidac) Imagen de salida

    Figura 2.9: Filtrado de una imagen

    25

  • 2.7.1. Características de otras CNNs para PDI.

    Hasta ahora se han presentado una gran cantidad de modelos de CNNs para pro-

    cesado de imágenes, muchas de ellas están diseñadas con circuitos digitales, pero

    también existen CNN análogicas capaces de realizar ciertas técnicas del PDI. Entres

    las CNNt’s diseñadas para procesamiento digital de imágenes los que mas destacan

    son los presentados en [16, 17, 18, 19, 20].

    En la tabla 1 mostrada a continuación se muestran las características más importan-

    tes de diversas CNNs empleadas para el PDI y que ya fueron reportadas.

    Circuito Arreglo Tamaño de la celda Tecnología Celdas/mm2 Tiempo

    Circuito [16] 128 X 128 0.35µm X 187µm 1.2 µm CMOS 21.3 1µs

    Circuito [18] 5+5+1 260µm X 260µm 1.2 µm CMOS 14.8 100ns

    Circuito [26] 5+5+1 No definido 0.7 µm CMOS 16.7 1µs

    Circuito [27] 9+9+1 270µm X 270µm 1.2 µm CMOS 13.7 100 nS

    En la tabla 1 Se identifica que el tamaño de la celda depende principalmente del

    número de coeficientes de la celda y de su topologia.

    En la tabla, se presenta también el número de celdas por milímetro cuadrado y la

    constate de tiempo de la celda.

    La CNN tiene como característica principal el procesamiento paralelo de las seña-

    les de todas la celdas, logrando con esto que se pueda tener una mayor velocidad de

    procesamiento en toda la CNN.

    Consumo de potencia.

    El consumo de potencia de la CNN para todos los diseños mostrados, varía entre los

    200µW y 200mW, dependiendo del número de celdas que formen a la CNN.

    26

  • 2.8. Conclusiones.

    En este capitulo se presentó el estado del arte de las Redes Celulares Neuronales

    (CNN estándar), se muestra la descripción de la CNN para procesado de imágenes usa-

    das en las camaras CMOS. Se describe también el caso particular de la CNN Simplicial

    (identificada como S-CNN), identificando su campo de acción y la diferencia principal

    entre la CNN y la S-CNN. Además en este capitulo se identificaron las principales ca-

    racterísticas y diferencias entre los sistemas síncronos y asíncronos.

    27

  • 28

  • Capítulo 3

    Arquitectura y características de la

    S-CNN

    De acuerdo con el objetivo planteado en el capitulo de introducción de esta tesis,

    lo que se busca es realizar el diseño y caracterización de una Red Celular Neuronal

    Simplicial(S-CNN) de mínima actividad con el fin de poder reducir el consumo de la

    S-CNN, haciendo que solo procesen las celdas que requieran un cambio en su esta-

    do, para aplicarla en diversas técnicas para el procesamiento de imágenes a partir de

    diversas funciones guardadas en una única memoria dispuesta en la periferia del esta-

    do, por tanto es importante conocer las características de la S-CNN y su mecánica de

    funcionamiento.

    En una estructura del tipo CNN simplicial (S-CNN), cada celda opera en función de

    su información y la de las celdas vecinas. Cada celda implementa una ecuación discreta

    de evolución de estado, basada en un función lineal por tramos multidimensional.

    Cada celda deberá contar con tres etapas que son:

    Entrada (U)

    Estado (X)

    Salida (Y)

    Donde el estado(X) dependerá directamente de la entrada(U), y la salida(Y) de cada

    celda será el propio estado actualizado después de haberse realizado el procesamiento

    de las celdas.

    29

  • 3.1. Red Celular Neuronal Simplicial (S-CNN)

    La S-CNN procesa información valiendose de la evaluación de una función lineal a

    tramos simplicial (PWL simplicial) en cada celda, la cual requiere la evolución temporal

    del sistema dinámico discreto para calcular el valor del próximo estado.

    Para encontrar la solución de la red, es necesario evaluar la función de transición

    de estados (ó integrar el vector de campo en el caso de sistemas continuos) 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. La forma de calcular la función

    de transición consiste en encontrar dentro del dominio de dicha función el símplice que

    lo contiene y realizar una interpolación lineal sobre todas las transiciones,(ver la figura

    3.1).

    Figura 3.1: 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

    es equivalente a encontrar el conjunto de vértices que lo determinan.

    2. Una ves 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 computar el valor de salida a partir de la suma de todos de los

    valores de la función evaluados en los vertices del símplice .

    30

  • Una manera de calcular el valor de una función utilizando este algoritmo consiste

    en 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 arquitectura S-CNN, está formada generalmente por arreglos cuadrados de cel-

    das los cuales pueden ser de 3x3, 5x5, 7x7, etc.

    En el simplicial CNN o S-CNN, una función simplicial PWL en el dominio de dos

    dimensiones, puede ser implementada tal y como se observa en la figura 3.2

    Figura 3.2: Arreglo cuadrado de 3x3

    En el caso de las funciones no lineales, el dominio es primero dividido en hipercubos,

    y entonces cada hipercubo es subdividido en simplices [5].

    La figura 3.3 muestra una función PWL simplicial definida sobre el dominio bidimen-

    sional donde se puede observar un hipercubo. Los parámetros de la función son los

    valores de la función en los vértices y son representados por triángulos.

    Figura 3.3: Función simplicial PWL

    31

  • Una partición simplicial, resulta cuando el dominio es dividido en símplices tal y como

    se ven en la figura 3.4.

    Figura 3.4: Dominio dividido en Símplices

    Se define al SÍMPLICE, como un triángulo que puede ser generalizado para un ob-

    jeto en el domino n dimensional, teniendo n+1 vértices. En 2 Dimensiones el simplice

    se puede ver como un triángulo y para 3 Dimensiones el símplice se observa como una

    piramide, tal y como se muestra en la figura 3.5.

    Figura 3.5: SIMPLEX visto en 2D y 3D.

    Para calcular el valor de la función como un punto dado sobre el dominio, son nece-

    sarios tres pasos:

    1. Identificar el simplex donde está el punto, y esto implica identificar los vértices

    asosciados n+1 (Para realizar esta tarea se puede emplear el metodo propuesto

    en [21].

    2. Recuperar los valores de la función en los vértices

    3. Se debe realizar interpolación lineal en los vértices, para obtener la salida de la

    función

    32

  • Los pasos anteriores justifican el algoritmo empleado para encontrar la función de

    salida, pero esta representación es indiferente a la dimensión de entrada, y la informa-

    ción necesaria para representar a la función Boleana. Por tanto los parámetros para una

    función particular no necesitan ser calculados ya que ellos pueden ser extraidos de la

    tabla de verdad de las funciones Boleanas. En este caso, los parámetros pueden ser

    valores digitales en el sistema (-1 , +1) ó valores analógicos en el sistema [-1, +1].

    En general, en el caso donde los parámetros son digitales, la salida de la S-CNN

    puede ser análogica; esto es debido a la característica particular de la función simplicial

    que interpola los valores en los vértices para producir la salida.

    La función simplicial no tiene ninguna restricción en la naturaleza de las entradas, y

    ellas pueden ser binarias ó análogicas.

    3.2. Arquitecturas o vecindarios de la S-CNN.

    Existen S-CNN cuyas arquitecturas no son cuadradas, las cuales pueden estar for-

    madas por arreglos en forma de cruz (vecindarios de 5 celdas), hexagonales (7 celdas)

    u otras arquitecturas, tal y como se observa en la figura 3.6.

    Figura 3.6: Arquitecturas o vecindarios de la S-CNN.

    33

  • De las estructuras mencionadas, destaca la que está formada por 5 celdas en forma

    de cruz las cuales están desacopladas entre ellas, y se le conoce como estructura MUL-

    TINESTED CNN, la cual fue originalmente introducida en [22]. Una arquitectura de este

    tipo es la denomínada arquitectura de VON NEUMMAN, cuya arquitectura se observa

    en la figura 3.7.

    Figura 3.7: Vecindario de Von Neumman

    Las S-CNN desacopladas están caracterizadas por la siguiente ecuación:

    Ẋi,j = −Xi,j + FB (uk,l), (k, l) ǫ Si,j (3.1)

    La S-CNN de este tipo se ha propuesto para muchas aplicaciones, como la

    detección de bordes, erosión, dilatación [23]. y por lo tanto, es necesario entender que

    clase de algoritmos se pueden poner en ejecución con esta estructura y cuál es la

    relación con la función FB de la ecuación 2.5. y para esto tenemos que considerar la

    ultima ecuación propuesta en estado estacionario, la cual es:

    Xi,j(∞) = FB (uk,l) (3.2)

    34

  • Podemos considerar cada entrada ui,j, de la S-CNN, como el sistema [- 1, +1 ], y

    entonces el dominio de la función FB está dado por:

    W = wǫRn : wi ǫ [−1,+1], i = 1, ....,n (3.3)

    Donde:

    n es la cardinalidad de Si,j y w es un vector con todos los elementos de Si,j.

    El sistema W es un hipercubo con 2n vértices.

    Siguiendo la notación comúnmente usada en la literatura de las CNN’s, podemos

    determinar que:

    +1 Es un valor lógico alto.

    -1 Es un valor lógico bajo.

    Usando estos valores, podemos medir la generalidad de la S-CNN, mediante el con-

    teo de las funciones Boleanas que son implementadas. Por tanto para un arreglo de n

    celdas, el número máximo de funciones puestas en ejecución esta dada por:

    22nfunciones. (3.4)

    Finalmente, una CNN desacoplada estándar está dada por la ecuación:

    Ẋi,j = −xi,j + zi,j + ai,jf(xi,j) +∑

    (k,l) ǫ Si,j

    bk,luk,l (3.5)

    Donde:

    f(xk,l)=(|xk,l + 1| - |xk,l - 1|) / 2

    Es solo para implementar funciones lineales separables.

    Para el vecindario de cinco celdas, conocido como de Von Neumman, se han re-

    portado los parámetros para el 99.1 por ciento de todas las funciones que se pueden

    representar con este arreglo de celdas, las cuales pueden ser hasta:

    225

    =4.295x109 funciones.

    35

  • Y este porcentaje permite evaluar una extensa cantidad de funciones boleanas para la

    representación de 5 celdas que pueden ser realizadas por el Multinested CNN.

    Por tanto, el multinested se puede considerar como una forma extremadamen-

    te compacta para el diseño de la S-CNN, que puede realizar una gran cantidad de

    funciones, y que presenta su salida en funciones binarias.

    3.3. Evaluación temporal de la función de transición.

    La evaluación temporal se realiza en sincronismo con una señal temporal del tipo

    rampa (figura 3.8).

    Figura 3.8: Codificació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 identificando secuencialmente los vértices del símplice que contiene la entrada.

    La identificación de cada vértice se obtiene de la comparación de la rampa con el valor

    36

  • 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, identificando

    a cada instante los vértices del símplice. La rampa finalíza cuando alcanza el valor

    máximo de la entrada.

    Una representación alternativa que favorece la realización integrada de la S-CNN es

    la propuesta en [24], donde la función PWL se expresa en un espacio de funciones cuya

    base esta formada por funciones PWL con caracteristicas bien definidas, y donde cada

    elemento de la base toma un valor numérico igual a uno sobre un vertice y cero en todos

    los restantes.

    la implementación de la S-CNN se puede realizar en señal mixta o digital.

    3.4. Implementación analógica o de señal mixta de una

    celda

    La realización analógica del método propuesto supone que las entradas y los estados

    de las celdas en la CNN son señales analógicas y acotadas en un cierto rango de

    tensión.

    Las señales se convierten a señales digitales mediante una codificación temporal

    con la ayuda de una rampa de tensión (rampa auxiliar). La rampa auxiliar evoluciona

    desde su valor inicial hasta su valor máximo y con el uso de un comparador por cada

    entrada, se determina el tiempo preciso en que la rampa sobrepasa a cada entrada. De

    esta forma, el valor de tensión de cada entrada se convierte en una señal binaria que

    comienza en uno al inicio de la rampa y conmuta a cero cuando el comparador detecta

    el cambio de magnitudes, tal y como se observa en la figura 3.8.

    Durante la ejecución de la rampa se produce un conjunto de señales binarias, co-

    rrespondientes a cada una de las entradas, que agrupadas forman una palabra digital.

    Esta palabra identifica a lo largo del tiempo los diferentes vértices que determinan el

    símplice en el que se encuentra la función.

    37

  • 3.5. Imager con procesamiento S-CNN.

    Para considerar a la S-CNN como un imager, es necesario que contenga un fotodiodo

    o un elemento fotoconversor (píxel) en cada celda, el cual mide la intensidad de luz y la

    convierte en una magnitud de tensión o corriente. Es decir un imager con procesamiento

    S-CNN es una cámara que posee la capacidad de procesar en el plano focal de acuerdo

    al funcionamiento del procesamiento de una S-CNN. Esta señal provista por el píxel de

    cada celda funcionará como entrada a la S-CNN. El estado de la S-CNN es una variable

    que evoluciona a lo largo del tiempo en función de las entradas y salidas pasadas; en

    base a su valor presente, se calcula la salida de cada celda. Por tanto cada celda en la

    S-CNN contiene una entrada, un estado y una salida.

    Por tanto para que la celda de la S-CNN digital sea 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 figura 3.9.

    Figura 3.9: Diagrama a bloques de la celda S-CNN digital para un imager

    38

  • De acuerdo con la figura 3.9 se puede observar que el vector de entrada ω es el

    valor en corriente o voltaje que se obtiene en el foto-conversor de cada celda, el cual es

    un valor analógico que debe convertirse a un valor digital para poder empelarse en la

    S-CNN.

    Para este trabajo de investigación, se empleo un arreglo de celdas para formar un S-

    CNN para procesamiento de imágenes, el cual no es considerado una camara ó imager

    ya que las celdas que forman el arreglo de la S-CNN no cuentan con un fotodiodo y con

    un convertidor A/D para poder obtener los valores de entrada a cada celda a partir de

    una imagen. Por lo tanto los valores para cada celda fueron asignados como un valor

    digital mediante el uso de matlab formando así la imagen de entrada en la S-CNN.

    3.6. Implementación digital de la S-CNN.

    La realización puramente digital de la estructura propuesta 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 un registro y poseen una

    longitud de palabra fija. El tiempo se puede ver como una variable con la cual el método

    calcula un nuevo estado, y se encuentra discretizado en intervalos iguales con la misma

    longitud de palabra que el estado.

    Cada celda dispone de un contador ascendente que comienza con el ciclo de eva-

    luación, y cada ves que se realiza un paso del contador se compara su valor con las

    entrada y el estado, obteniendo de dicha comparación una señal de un bit el cual con-

    tiene la información de la entrada y el estado codificados en el tiempo, agrupando estas

    señales se obtiene una palabra digital la cual identifica o se direcciona el vértice a cal-

    cular durante ese conteo. De esta forma en cada paso del contador se direcciona el

    vértice y se evalúa paso a paso acumulando las salidas hasta obtener el nuevo valor del

    estado de la celda.

    En la figura 3.10 se muestra se muestra una descripción de la S-CNN con las partes

    que la conforman, donde se puede observar que el vector de entrada para cada celda

    es un valor ya digitalizado.

    39

  • Figura 3.10: Diagrama a bloques de la celda S-CNN digital

    3.7. S-CNN para procesamiento de imágenes.

    La estructura propuesta para el diseño y cómputo de la S-CNN que aca se esta

    desarrollando se basa en una arquitectura o vecindad de 5 elementos en forma de cruz

    (usando la forma del signo mas ó de un diamante). Esta estructura da como resultado

    una distrubución de la matriz de celdas en forma cuadrada que permite la regularidad

    necesaria para conformar geométricamente la red. Esta distribución posee algunas ven-

    tajas para el procesamiento de imágenes ya que todos los pixeles se encuentran equi-

    espaciados con sus vecinos, pero además conforma una grilla rectangular logrando que

    sea más facil almacenar o mostrar una imagen fuera de la S-CNN (en nuestro caso se

    almacenarán o mostrarán los valores de la imágen).

    40

  • Cada una de las celdas está conectada con 4 de sus celdas vecinas en forma directa,

    formando una esfera de influencia de 5 celdas, tal y como se observa en la figura 3.11.

    Figura 3.11: Vecindario de 5 celdas en forma de cruz.

    Considerando que la esctructura de la red es homogénea, las funciones PWL utili-

    zadas en la descripción de la S-CNN tiene su dominio divido por una partición unitaria y

    cada uno de los valores de la función PWL sobre los vértices puede tomar únicamente

    los valores booleanos 0 y 1.

    La S-CNN puede ser empleada para una gran cantidad de aplicaciones, pero en

    este trabajo se está desarrollando para el procesamiento digital de imágenes, donde es

    necesario comprender que cada celda está considerada como un pixel de la imagen y

    la funcion a procesar estara guardada en una unica memoria dispuesta en la periferia

    de la S-CNN.

    Para llevar a cabo el procesamiento de imagénes con la S-CNN es necesario consi-

    derar los bordes de la misma pues de acuerdo con el diseño de la S-CNN, se tendrá un

    arreglo de celdas ordeando, en donde cada una de las celdas es parte de una esfera de

    influencia (de 5 celdas en nuestro diseño). Para cuestiones prácticas se requiere tomar

    ciertas consideraciones a la hora de implementar la S-CNN. Es por ello que podemos

    considerar a la S-CNN como un conjunto de arreglos finitos de vecindarios,en donde la

    S-CNN esta interactuando. Por lo que es necesario considerar lo que debe suceder con

    aquellas celdas que se encuentran en los bordes del arreglo, es decir condiciones las

    de frontera.

    41

  • 3.7.1. Condiciones en las fronteras

    En la S-CNN se pueden implementar numerosas condiciones de frontera, de acuerdo

    a lo que el problema real requiera para su modelo por ejemplo:

    Frontera abierta: Ttodas las celdas fuera del arreglo están a un valor fijo.

    Frontera periódica: Se considera al arreglo como si sus extremos se tocaran. En un

    arreglo de dimensión 1, esto puede visualizarse en dos dimensiones como una

    circunferencia. El arreglo podría visualizarse en tres dimensiones como un toroide.

    Frontera reflectora: Se considera que las celdas fuera del arreglo reflejan los valores

    de aquellas dentro del arreglo. Así, una celda que estuviera junto al borde del

    arreglo (fuera de ella) tomaría como valor, el mismo que tiene la celda que este

    junto al borde del arreglo, dentro de ella.

    Sin frontera: Haciendo uso de implementaciones que hagan crecer dinámicamente el

    uso de memoria del arreglo implementado, se puede asumir que cada vez que

    las celdas deben interactuar con celda fuera del arreglo, esta se hace más grande

    para dar cabida a estas interacciones. Obviamente, existe un límite (impuesto por

    la memoria disponible) para esta condición.

    Para la S-CNN desarrollada se considera que cuenta con una frontera abierta donde el

    borde está a un mismo valor, que puede ser 0 ó 1, tal y como se ve en la figura 3.12.

    Figura 3.12: Frontera o borde de la S-CNN.

    42

  • 3.7.2. Diseños propuestos

    A partír de los objetivos planteados, se propusieron desarrollar dos diseños como

    parte de este trabajo de investigacion basados en la S-CNN, buscando el procesamiento

    de imágenes y reduciendo el consumo de la red. Se realizarón los siguientes diseños.

    1. S-CNN Estandar: la cual es un circuito sincrónico global, dependiente de un mis-

    mo reloj y rampa de evaluación, donde cada vés que se detecte un cambio

    en cualquier parte (píxel) de la imagen, se llevará a cabo el procesamiento de

    la imagen completa.

    2. S-CNN de mínima actividad: la cual tiene la caracteristica de ser un circuito sin-

    crónico global, que al igual que la S-CNN estandar dependerá de un reloj y

    una rampa global, pero con la particularidad de que cada vés que detecte un

    cambio en cualquier parte o píxel de la imagen, solo procesará el píxel que

    recibió el cambio y su vecindario directo, reduciendo el consumo del circuito

    considerablemente.

    3.8. Conclusiones.

    En este capitulo se presentaron las principales características de la Red Celular

    Neuronal Simplicial(S-CNN), su arquitectura, su metodología de funcionamiento y las

    condiciones necesarias para que trabaje correctamente. Ademas de describe lo que

    se considera un símplice, la forma de evaluar la función de transición y la forma de

    desarrollar la S-CNN para procesamiento de imágenes.

    43

  • 44

  • Capítulo 4

    Diseño y caracterizac