143
UNIVERSIDADE FEDERAL DA BAHIA ESCOLA POLITÉCNICA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE REDE NEURONAL CELULAR ANALÓGICA EM TECNOLOGIA CMOS Aluno: Fabian Souza de Andrade Orientadora: Ana Isabela Araújo Cunha Salvador Novembro 2016

FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

UNIVERSIDADE FEDERAL DA BAHIA ESCOLA POLITÉCNICA

PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA

FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR

MEIO DE REDE NEURONAL CELULAR ANALÓGICA

EM TECNOLOGIA CMOS

Aluno: Fabian Souza de Andrade

Orientadora: Ana Isabela Araújo Cunha

Salvador

Novembro 2016

Page 2: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento
Page 3: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

UNIVERSIDADE FEDERAL DA BAHIA ESCOLA POLITÉCNICA

PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA

FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR

MEIO DE REDE NEURONAL CELULAR ANALÓGICA

EM TECNOLOGIA CMOS

Fabian Souza de Andrade

Dissertação apresentada ao Programa de

Pós-graduação em Engenharia Elétrica, do

Departamento de Engenharia Elétrica, da

Universidade Federal da Bahia, como

requisito parcial à obtenção do grau de

mestre.

Orientadora: Ana Isabela Araújo Cunha

Salvador

Novembro 2016

Page 4: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento
Page 5: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

DEDICATÓRIA

Aos meus pais, minhas

irmãs, e toda a minha família.

Page 6: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento
Page 7: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

AGRADECIMENTOS

Eu agradeço a todos que apoiaram o presente trabalho. Desde os colegas do

Laboratório de Concepção de Circuitos Integrados (LCCI), a todos que compõem o

Departamento de Engenharia Elétrica da Universidade Federal da Bahia (UFBA), em

especial ao Professor Edson Santana, por toda sua prestatividade, e à Professora Ana

Isabela, cuja profunda orientação foi imprescindível. Além disso, sou grato às instituições

CAPES e CNPq, pelo aporte financeiro concedido para a elaboração desta Dissertação.

Page 8: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento
Page 9: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

i

RESUMO

Este trabalho aborda a implementação em nível de simulação de operações de

filtragem de imagens em uma CNN (Cellular Neuronal Network - Rede Neuronal

Celular) analógica desenvolvida em tecnologia CMOS (Complementary metal oxide

semiconductor). Tal circuito apresenta uma arquitetura projetada para a implementação

futura em próteses retinianas, sendo imprescindível, portanto, que processe funções de

filtragem adequadamente. Utilizou-se uma versão modificada do algoritmo denominado

CMA (Center of Mass Algorithm - Algoritmo do Centro de Massa) visando encontrar os

coeficientes adequados que configuram a rede para a função desejada. Uma ferramenta

com interface gráfica foi desenvolvida para aplicação do treinamento, e testada em

operações de processamento de imagens já aplicadas em CNN. Os resultados das

simulações são avaliados e mostram um desempenho satisfatório, considerando as

limitações da rede utilizada. Além disso, a metodologia seguida permite que melhorias

realizadas posteriormente na rede ou no método de treinamento sejam integradas de forma

simples.

Palavras-chave: CNN, CMA, Filtragem de Imagens.

Page 10: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

ii

Page 11: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

iii

ABSTRACT

This work assesses the simulation-level implementation of image filtering

operations on an analog CNN (Cellular Neuronal Network) designed in CMOS

(Complementary metal oxide semiconductor) technology. This circuit presents an

architecture designed to future implementation in retina prosthesis, and it is essential,

therefore, that it executes filtering functions properly. A modified version of the algorithm

called CMA (Center of Mass Algorithm) is used in order to find the appropriate

coefficients that configures the network for the desired function. A GUI (Graphical User

Interface) tool has been developed for training purposes. The simulation results are

analyzed, and show a satisfactory performance, considering the limitations of the

operated network. Furthermore, the applied methodology allows upcoming

improvements in the network as well as the training method to be integrated in a simple

way.

Keywords: CNN, CMA, Image Filtering.

Page 12: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

iv

Page 13: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

v

LISTA DE TABELAS

TABELA 3.1 - Filtros utilizados nas simulações. .......................................................... 44

TABELA 3.2 – Resultados dos filtros passa-baixas....................................................... 95

TABELA 3.3 – Resultados dos filtros passa-altas. ........................................................ 96

Page 14: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

vi

Page 15: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

vii

LISTA DE FIGURAS

FIGURA 1.1 - Estrutura básica de uma CNN. Extraída de [14]. ..................................... 5

FIGURA 1.2 - Diagrama de blocos de uma célula padrão. Extraído de [15]. .................. 6

FIGURA 1.3 - Não linearidade padrão. Extraída de [14]. ................................................ 6

FIGURA 1.4 - Máscara A para uma rede com R = 1. ...................................................... 7

FIGURA 1.5 - Diagrama de blocos de uma célula FSR. Extraído de [15]. ..................... 8

FIGURA 1.6 - Máscara 𝐴𝐹𝑆𝑅 em função dos elementos da matriz A, para uma rede com

r = 1. .................................................................................................................................. 9

FIGURA 1.7 - Eixos utilizados para o cálculo do centro de massa. Extraída de [18]. .. 14

FIGURA 1.8 - Máscara de um filtro 3x3........................................................................ 16

FIGURA 1.9 - Sistema de coordenadas para os pixels................................................... 16

FIGURA 1.10 - Exemplo do processo de centralização: Forma comum de 𝐹(𝑢, 𝑣) (a);

Forma após a centralização (b). 𝑢 e 𝑣 são dados em ciclos/pixel. Obtidas no Matlab. .. 19

FIGURA 1.11 - Preenchimento de zeros em torno da imagem. A imagem à esquerda, com

seus pixels representados numericamente, é ampliada com pixels nulos, formando a

imagem à direita. ............................................................................................................ 19

FIGURA 1.12 - Exemplo de imagens filtradas. (a) Imagem original. (b) Imagem

processada por um filtro passa-baixas. (c) Imagem processada por um filtro passa altas.

........................................................................................................................................ 20

FIGURA 1.13 - Imagem (a) processada em um filtro que elimina o termo DC, resultando

na imagem (b). ................................................................................................................ 21

FIGURA 1.14 - Função de transferência do filtro passa-baixas de Butterworth, com 𝐷𝑜 =

10 , 𝑛 = 2 e 𝑀 = 𝑁 = 50 (a). Perfis radiais da função para diferentes ordens 𝑛 (b) e

frequências de corte 𝐷0 (c). As variáveis 𝑢 e 𝑣 são dadas em ciclos/pixel. Obtidos por

meio do software Matlab. ............................................................................................... 22

FIGURA 1.15 - Função de transferência do filtro passa-baixas gaussiano, com 𝐷𝑜 = 10

e 𝑀 = 𝑁 = 50 (a). Perfis radiais da função para diferentes frequências de corte 𝐷0 (c).

As variáveis 𝑢 e 𝑣 são dadas em ciclos/pixel. Obtidos por meio do software Matlab. .. 23

FIGURA 1.16 - Função de transferência do filtro passa-baixas de Butterworth, com 𝐷𝑜 =

10 , 𝑛 = 2 e 𝑀 = 𝑁 = 50 (a). Perfis radiais da função para diferentes ordens 𝑛 (b) e

frequências de corte 𝐷0 (c). As variáveis 𝑢 e 𝑣 são dadas em ciclos/pixel. Obtidos por

meio do software Matlab. ............................................................................................... 24

FIGURA 1.17 - Função de transferência do filtro passa-altas gaussiano, com 𝐷𝑜 = 10 e

𝑀 = 𝑁 = 50 (a). Perfis radiais da função para diferentes frequências de corte 𝐷0 (c). As

variáveis 𝑢 e 𝑣 são dadas em ciclos/pixel. Obtidos por meio do software Matlab. ....... 24

FIGURA 1.18 - Núcleo do multiplicador. Extraído de [15]. .......................................... 25

FIGURA 1.19 - Circuito da célula da CNN. Extraído de [15]. ...................................... 27

FIGURA 2.1 - Primeira parte da interface gráfica, contendo as configurações para a

execução do aprendizado. O exemplo utilizado corresponde a uma função de detecção de

borda. .............................................................................................................................. 32

FIGURA 2.2 - Formas fixas possíveis para a matriz A, no caso de R = 1 ou R = 2. Análogo

para a matriz B. ............................................................................................................... 33

Page 16: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

viii

FIGURA 2.3 - Página de resultados do programa, onde situam-se ferramentas para análise

do treinamento. ............................................................................................................... 33

FIGURA 2.4 - Última página da ferramenta, que fornece opções para a simulação da

CNN. ............................................................................................................................... 34

FIGURA 2.5 - Resultados do aprendizado para a função diferença lógica. ................... 35

FIGURA 2.6 - Simulação da operação de diferença lógica no circuito. (a) Imagem de

entrada; (b) Estado Inicial; (c) Imagem de saída. ........................................................... 35

FIGURA 2.7 - Resultados do aprendizado para a função E lógico. ............................... 36

FIGURA 2.8 - Simulação da operação E lógico no circuito. (a) Imagem de entrada; (b)

Estado Inicial; (c) Imagem de saída. .............................................................................. 36

FIGURA 2.9 - Resultados do aprendizado para a função OU lógico............................. 37

FIGURA 2.10 - Simulação da operação OU lógico no circuito. (a) Imagem de entrada;

(b) Estado Inicial; (c) Imagem de saída. ......................................................................... 37

FIGURA 2.12 - Exemplo da função erosão. As células destacadas devem ser pretas na

entrada para que gere uma saída preta em 𝐶(𝑖, 𝑗). .......................................................... 38

FIGURA 2.13 - Simulação da operação de erosão no circuito. (a) Imagem de entrada; (b)

Imagem de saída. ............................................................................................................ 39

FIGURA 2.14 - Resultados do aprendizado para a função erosão. ................................ 39

FIGURA 2.15 - Resultados do aprendizado para a função dilatação. ............................ 40

FIGURA 2.16 - Simulação da operação de dilatação no circuito. (a) Imagem de entrada;

(b) Imagem de saída. ...................................................................................................... 40

FIGURA 2.17 - Resultados do aprendizado para a função deslocamento. .................... 41

FIGURA 2.18 - Simulação da operação de deslocamento no circuito. (a) Imagem de

entrada; (b) Imagem de saída. ........................................................................................ 41

FIGURA 3.1 - Imagem utilizada para o treinamento. .................................................... 45

FIGURA 3.2 - Resultados do aprendizado para o filtro FIR 1. ...................................... 46

FIGURA 3.3 - Simulação 1 da aplicação de FIR 1. (a) Imagem de entrada e estado inicial;

(b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 46

FIGURA 3.4 - Simulação 2 da aplicação de FIR 1. (a) Imagem de entrada e estado inicial;

(b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 47

FIGURA 3.5 - Resultados do aprendizado para o filtro FIR 2. ...................................... 48

FIGURA 3.6 - Simulação 1 da aplicação de FIR 2. (a) Imagem de entrada e estado inicial;

(b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 48

FIGURA 3.7 - Simulação 2 da aplicação de FIR 2. (a) Imagem de entrada e estado inicial;

(b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 49

FIGURA 3.8 - Resultados do aprendizado para o filtro FIR 3. ...................................... 50

FIGURA 3.9 - Simulação 1 da aplicação de FIR 3. (a) Imagem de entrada e estado inicial;

(b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 50

Page 17: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

ix

FIGURA 3.10 - Simulação 2 da aplicação de FIR 3. (a) Imagem de entrada e estado

inicial; (b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 51

FIGURA 3.11 - Resultados do aprendizado para o filtro FIR 4. .................................... 52

FIGURA 3.12 - Simulação 1 da aplicação de FIR 4. (a) Imagem de entrada e estado

inicial; (b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 52

FIGURA 3.13 - Simulação 2 da aplicação de FIR 4. (a) Imagem de entrada e estado

inicial; (b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 53

FIGURA 3.14 - Resultados do aprendizado para o filtro FIR 5. .................................... 54

FIGURA 3.15 - Simulação 1 da aplicação de FIR 5. (a) Imagem de entrada e estado

inicial; (b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 54

FIGURA 3.16 - Simulação 2 da aplicação de FIR 5. (a) Imagem de entrada e estado

inicial; (b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 55

FIGURA 3.17 - Resultados do aprendizado para o filtro FIR 6. .................................... 56

FIGURA 3.18 - Simulação 1 da aplicação de FIR 6. (a) Imagem de entrada e estado

inicial; (b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 56

FIGURA 3.19 - Simulação 2 da aplicação de FIR 6. (a) Imagem de entrada e estado

inicial; (b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 57

FIGURA 3.20 - Resultados do aprendizado para o filtro FIR 7. .................................... 58

FIGURA 3.21 - Simulação 1 da aplicação de FIR 7. (a) Imagem de entrada e estado

inicial; (b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 58

FIGURA 3.22 - Simulação 2 da aplicação de FIR 7. (a) Imagem de entrada e estado

inicial; (b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 59

FIGURA 3.23 - Resultados do aprendizado para o filtro FIR 8. .................................... 60

FIGURA 3.24 - Simulação 1 da aplicação de FIR 8. (a) Imagem de entrada e estado

inicial; (b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 60

FIGURA 3.25 - Simulação 2 da aplicação de FIR 8. (a) Imagem de entrada e estado

inicial; (b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 61

FIGURA 3.26 - Resultados do aprendizado para o filtro FIR 9. .................................... 62

FIGURA 3.27 - Simulação 1 da aplicação de FIR 9. (a) Imagem de entrada e estado

inicial; (b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 62

Page 18: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

x

FIGURA 3.28 - Simulação 2 da aplicação de FIR 9. (a) Imagem de entrada e estado

inicial; (b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 63

FIGURA 3.29 - Resultados do aprendizado para o filtro FIR 10. .................................. 64

FIGURA 3.30 - Simulação 1 da aplicação de FIR 10. (a) Imagem de entrada e estado

inicial; (b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 64

FIGURA 3.31 - Simulação 2 da aplicação de FIR 10. (a) Imagem de entrada e estado

inicial; (b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 65

FIGURA 3.32 - Resultados do aprendizado para o filtro FIR 11. .................................. 66

FIGURA 3.33 - Simulação 1 da aplicação de FIR 11. (a) Imagem de entrada e estado

inicial; (b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 66

FIGURA 3.34 - Simulação 2 da aplicação de FIR 11. (a) Imagem de entrada e estado

inicial; (b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 67

FIGURA 3.35 - Resultados do aprendizado para o filtro FIR 12. .................................. 68

FIGURA 3.36 - Simulação 1 da aplicação de FIR 12. (a) Imagem de entrada e estado

inicial; (b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 68

FIGURA 3.37 - Simulação 2 da aplicação de FIR 12. (a) Imagem de entrada e estado

inicial; (b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 69

FIGURA 3.38 - Resultados do aprendizado para o filtro IIR 1. ..................................... 70

FIGURA 3.39 - Simulação 1 da aplicação de IIR 1. (a) Imagem de entrada e estado inicial;

(b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 70

FIGURA 3.40 - Simulação 2 da aplicação de IIR 1. (a) Imagem de entrada e estado inicial;

(b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 71

FIGURA 3.41 - Resultados do aprendizado para o filtro IIR 2. ..................................... 72

FIGURA 3.42 - Simulação 1 da aplicação de IIR 2. (a) Imagem de entrada e estado inicial;

(b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 72

FIGURA 3.43 - Simulação 2 da aplicação de IIR 2. (a) Imagem de entrada e estado inicial;

(b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 73

FIGURA 3.44 - Resultados do aprendizado para o filtro IIR 3. ..................................... 74

FIGURA 3.45 - Simulação 1 da aplicação de IIR 3. (a) Imagem de entrada e estado inicial;

(b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 74

Page 19: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

xi

FIGURA 3.46 - Simulação 2 da aplicação de IIR 3. (a) Imagem de entrada e estado inicial;

(b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 75

FIGURA 3.47 - Resultados do aprendizado para o filtro IIR 4. ..................................... 76

FIGURA 3.48 - Simulação 1 da aplicação de IIR 4. (a) Imagem de entrada e estado inicial;

(b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 76

FIGURA 3.49 - Simulação 2 da aplicação de IIR 4. (a) Imagem de entrada e estado inicial;

(b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 77

FIGURA 3.50 - Resultados do aprendizado para o filtro IIR 5. ..................................... 78

FIGURA 3.51 - Simulação 1 da aplicação de IIR 5. (a) Imagem de entrada e estado inicial;

(b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 78

FIGURA 3.52 - Simulação 2 da aplicação de IIR 5. (a) Imagem de entrada e estado inicial;

(b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 79

FIGURA 3.53 - Resultados do aprendizado para o filtro IIR 6. ..................................... 80

FIGURA 3.54 - Simulação 1 da aplicação de IIR 6. (a) Imagem de entrada e estado inicial;

(b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 80

FIGURA 3.55 - Simulação 2 da aplicação de IIR 6. (a) Imagem de entrada e estado inicial;

(b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 81

FIGURA 3.56 - Resultados do aprendizado para o filtro IIR 7. ..................................... 82

FIGURA 3.57 - Simulação 1 da aplicação de IIR 7. (a) Imagem de entrada e estado inicial;

(b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 82

FIGURA 3.58 - Simulação 2 da aplicação de IIR 7. (a) Imagem de entrada e estado inicial;

(b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 83

FIGURA 3.59 - Resultados do aprendizado para o filtro IIR 8. ..................................... 84

FIGURA 3.60 - Simulação 1 da aplicação de IIR 8. (a) Imagem de entrada e estado inicial;

(b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 84

FIGURA 3.61 - Simulação 2 da aplicação de IIR 8. (a) Imagem de entrada e estado inicial;

(b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 85

FIGURA 3.62 - Resultados do aprendizado para o filtro IIR 9. ..................................... 86

FIGURA 3.63 - Simulação 1 da aplicação de IIR 9. (a) Imagem de entrada e estado inicial;

(b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 86

Page 20: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

xii

FIGURA 3.64 - Simulação 2 da aplicação de IIR 9. (a) Imagem de entrada e estado inicial;

(b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 87

FIGURA 3.65 - Resultados do aprendizado para o filtro IIR 10. ................................... 88

FIGURA 3.66 - Simulação 1 da aplicação de IIR 10. (a) Imagem de entrada e estado

inicial; (b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 88

FIGURA 3.67 - Simulação 2 da aplicação de IIR 10. (a) Imagem de entrada e estado

inicial; (b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 89

FIGURA 3.68 - Resultados do aprendizado para o filtro IIR 11. ................................... 90

FIGURA 3.69 - Simulação 1 da aplicação de IIR 11. (a) Imagem de entrada e estado

inicial; (b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 90

FIGURA 3.70 - Simulação 2 da aplicação de IIR 11. (a) Imagem de entrada e estado

inicial; (b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 91

FIGURA 3.71 - Resultados do aprendizado para o filtro IIR 12. ................................... 92

FIGURA 3.72 – Simulação 1 da aplicação de IIR 12. (a) Imagem de entrada e estado

inicial; (b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 92

FIGURA 3.73 - Simulação 2 da aplicação de IIR 12. (a) Imagem de entrada e estado

inicial; (b) Imagem de saída da CNN. (c) Imagem gerada pelo método da filtragem em

frequência. ...................................................................................................................... 93

Page 21: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

xiii

LISTA DE SIGLAS

CNN - Cellular neural network

FSR - Full range signal

CMOS - Complementary metal oxide semiconductor

DFT-2D – Two dimensional discrete Fourier transfer

IDFT-2D - Two dimensional inverse discrete Fourier transfer

DC – Direct current

CMA - Center of mass algorithm

LCCI - Laboratório de Concepção de Circuitos Integrados

UFBA - Universidade Federal da Bahia

FIR - Finite impulse response

IIR - Infinite impulse response

RMS - Root mean square

Page 22: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

xiv

Page 23: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

xv

LISTA DE SÍMBOLOS

𝑀 - Número de linhas da CNN/imagem

𝑁 - Número de colunas da CNN/imagem

𝐶(𝑖, 𝑗) - Célula localizada nas coordenadas (𝑖, 𝑗)

𝑆𝑅 - Esfera de influência da CNN

𝑅 - Raio de 𝑆𝑟

𝑥𝑖,𝑗 - Estado de 𝐶(𝑖, 𝑗)

𝑦𝑖,𝑗 - Saída de 𝐶(𝑖, 𝑗)

𝑢𝑖,𝑗 - Entrada de 𝐶(𝑖, 𝑗)

𝑧𝑖,𝑗 - Limiar de 𝐶(𝑖, 𝑗)

𝐴 - Operador sináptico de realimentação

𝐵 - Operador sináptico de entrada

𝑎𝑚,𝑛 - Coeficiente da posição (𝑚, 𝑛) em 𝐴

𝑔𝑝(𝑥𝑖𝑗) - Função de grampeamento da célula do tipo FSR

𝐴𝐹𝑆𝑅 - Operador sináptico de realimentação da célula do tipo FSR

𝑒𝑖𝑗 - Erro de 𝐶(𝑖, 𝑗)

𝑘 - Índice da iteração

𝜂 - Taxa de aprendizado

𝑏𝑚,𝑛 - Coeficiente da posição (𝑚, 𝑛) em 𝐵

∆𝑎𝑚,𝑛 - Variação de 𝑎𝑚,𝑛

∆𝑏𝑚,𝑛 - Variação de 𝑏𝑚,𝑛

∆𝑧𝑚,𝑛 - Variação de 𝑧𝑚,𝑛

𝐴𝑆 - Componente simétrica de 𝐴

𝐴𝐴 - Componente anti-simétrica de 𝐴

𝐴𝐶 - Componente complementar da decomposição de 𝐴

Page 24: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

xvi

∆𝐴𝑆 - Variação de 𝐴𝑆

∆𝐴𝐴 - Variação de 𝐴𝐴

𝑚𝑖,𝑗 - Massa de 𝐶(𝑖, 𝑗)

𝑟𝑙 - Centro de massa em relação ao eixo 𝑙

𝑀𝑇𝑂𝑇𝐴𝐿 - Massa total da rede

𝐷(𝑙)𝑖𝑗 - Distância entre 𝐶(𝑖, 𝑗) e o eixo 𝑙

𝑓(𝑥, 𝑦) - Valor do pixel na coordenada (𝑥, 𝑦) antes da filtragem

𝑔(𝑥, 𝑦) - Valor do pixel na coordenada (𝑥, 𝑦) após a filtragem

𝑤(𝑚, 𝑛) - Coeficiente da posição (𝑚, 𝑛) do filtro espacial

𝐹(𝑢, 𝑣) - Transformada discreta de Fourier de 𝑓(𝑥, 𝑦)

𝐻(𝑢, 𝑣) - Função de transferência do filtro

𝑃 - Dimensão horizontal da imagem ampliada

Q - Dimensão vertical da imagem ampliada

𝐷𝑜 - Frequência de corte do filtro

𝐷(𝑢, 𝑣) - Distância de um ponto (𝑢, 𝑣) para o centro do filtro

𝑖𝑜𝑢𝑡𝐴 - Corrente de saída do multiplicador

𝑖𝑖𝑛 - Corrente de entrada do multiplicador

𝐼𝐵 - Corrente de polarização

𝑉𝐷𝑆1 - Tensão entre dreno e fonte do transistor

𝑉𝐼𝐷𝐶 - Deslocamento de nível total

𝑣𝑖𝑠ℎ - Sinais de estado e de entrada na célula

𝑣𝑜 - Saída da célula

∆𝑡 - Passo temporal

𝐼 - Imagem binária

𝑆𝐸 - Elemento estruturante da função erosão

𝑈𝑓 - Entrada de fronteira

Page 25: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

xvii

𝑌𝑓 - Saída de fronteira

𝑆𝐷 - Elemento estruturante da função dilatação

𝑓𝑝(𝑥, 𝑦) - Imagem ampliada através do padding

𝐺(𝑢, 𝑣) - Transformada discreta de Fourier de g(𝑥, 𝑦)

Page 26: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

xviii

Page 27: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

xix

SUMÁRIO

RESUMO .......................................................................................................................... i

ABSTRACT .................................................................................................................... iii

LISTA DE TABELAS ..................................................................................................... v

LISTA DE FIGURAS .................................................................................................... vii

LISTA DE SIGLAS ...................................................................................................... xiii

LISTA DE SÍMBOLOS ................................................................................................. xv

INTRODUÇÃO ................................................................................................................ 1

Estrutura ................................................................................................................... 2

CAPÍTULO 1 - FUNDAMENTAÇÃO TEÓRICA ......................................................... 5

1.1 - Redes Neuronais Celulares................................................................................... 5

1.2 - Algoritmos de Treinamento ................................................................................. 9

1.2.1 - Algoritmo do Centro de Massa ................................................................... 10

1.3 - Filtragem de Imagens ......................................................................................... 15

1.3.1 - Domínio Espacial ........................................................................................ 15

1.3.2 - Domínio da Frequência ............................................................................... 17

1.4 - Um Circuito Analógico de CNN do Tipo FSR em Tecnologia CMOS ............. 25

CAPÍTULO 2 - FERRAMENTA PARA APRENDIZADO DE CNN COM INTERFACE

GRÁFICA ....................................................................................................................... 29

2.1 - Implementação do CMA .................................................................................... 29

2.2 - Interface Gráfica ................................................................................................. 31

2.3 - Simulações de Funções Binárias ........................................................................ 34

2.3.1 - Diferença Lógica (LOGDIF) ....................................................................... 35

2.3.2 - E Lógico (LOGAND) ................................................................................. 36

2.3.3 - Ou Lógico (LOGOR) .................................................................................. 37

2.3.4 - Erosão (EROSION) ..................................................................................... 38

2.3.5 - Dilatação (DILATION) ............................................................................... 40

2.3.6 - Deslocamento (SHIFT) ............................................................................... 41

CAPÍTULO 3 - APLICAÇÕES EM FILTRAGEM DE IMAGENS ............................. 43

3.1 - Metodologia ....................................................................................................... 43

3.1.1 - Obtenção de Imagens .................................................................................. 43

3.1.2 - Filtros .......................................................................................................... 43

3.1.3 - Treinamento ................................................................................................ 44

Page 28: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

xx

3.1.4 - Resultados ................................................................................................... 45

CONCLUSÃO ................................................................................................................ 97

TRABALHO PUBLICADO........................................................................................... 99

REFERÊNCIAS ........................................................................................................... 101

APÊNDICE .................................................................................................................. 105

Page 29: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

1

INTRODUÇÃO

A filtragem é um importante ramo do campo de processamento de imagens.

Aplicações como restauração de imagens para fins biomédicos [1], [2], modelagem das

funções básicas da retina [3], reconhecimento de imagens [4] e aprimoramento de captura

de impressões digitais [5], demonstram o desenvolvimento de técnicas e funções que

realizam a filtragem de variadas maneiras com eficiência.

Mas esta presença não se restringe apenas aos meios artificiais. Já se considera que

o processamento realizado pela retina dos mamíferos inclui filtros que a auxiliam a lidar

com as possíveis complexidades que o ambiente traz para a visão, apesar de se tratar de

um campo relativamente pouco conhecido. No modelo para a retina proposto em [6], são

integrados elementos que representam a filtragem espacial. Em [7], são retratadas

algumas computações que ocorrem nas variadas camadas celulares da estrutura retiniana,

como a detecção de diferentes tipos de movimento.

Uma metodologia muito utilizada para implementação de sistemas visando

o processamento de imagens consiste no uso de CNN (Cellular neural network – rede

neuronal celular), cuja versatilidade permite também a implementação das funções de

filtragem mais básicas sem dificuldades. Além disso, o caráter analógico e distribuído da

execução destas redes gera vantagens quanto à velocidade e ao consumo. Em [8], por

exemplo, é proposta uma abordagem para projetos de CNN de tempo contínuo ou

discreto, enquanto a rede mostrada em [9] incorpora uma memória para o reconhecimento

de padrões.

Contudo, o desenvolvimento de sistemas deste tipo projetados para atuação como

dispositivos portáteis ou implantáveis esbarra na necessidade de menor consumo de

energia e menor tamanho para sua viabilidade, motivando a busca por melhores

arquiteturas, como as utilizadas em [10] e [11].

Outro resultado mais recente desta procura é a arquitetura para as sinapses da CNN

em tecnologia CMOS desenvolvida em [12], que será objeto das simulações realizadas

neste trabalho. Esta arquitetura admite uma faixa contínua de valores para os coeficientes

e possui um compartilhamento de blocos que reduz não só tamanho e a complexidade do

circuito, como também o consumo e o descasamento entre os componentes.

Page 30: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

2

As operações de filtragem citadas anteriormente são representadas em geral por

uma função de transferência no domínio da frequência. Portanto, para sua implementação

em uma CNN, é necessária a obtenção dos parâmetros da rede correspondentes. Muitas

funções básicas já têm estes coeficientes conhecidos, obtidos de forma analítica. Porém

para casos mais complexos, torna-se mais complicado encontrar uma solução. Neste

contexto, métodos numéricos tornam-se uma interessante alternativa, onde a partir de um

algoritmo de treinamento, utilizando pares de imagens de entrada e saída que caracterizam

a função desejada, pode-se convergir para um conjunto de parâmetros que configurem a

CNN.

Partindo desta abordagem, o presente trabalho compreende dois objetivos

principais: o desenvolvimento de uma metodologia para o treinamento da CNN

desenvolvida em [12], culminando na criação de uma ferramenta gráfica para obtenção

dos parâmetros da rede para uma determinada função; a análise do desempenho da rede

em funções de filtragem de imagens a partir de simulações.

Estrutura

Esta dissertação possui três capítulos. No capítulo 1 são fundamentadas as bases

teóricas que sustentam o trabalho. Inicialmente discorre-se sobre CNN’s, citando sua

definição e os conceitos principais envolvidos no seu funcionamento. Em seguida, há uma

seção que trata de algoritmos de treinamento, detalhando especialmente aquele escolhido

para utilização. Na terceira parte do capítulo 1 há uma breve revisão da filtragem de

imagens, abordando as duas principais maneiras de sua realização. Por fim, mostra-se a

arquitetura básica do circuito projetado em [12], com uma simples descrição de seus

princípios funcionais.

No capítulo 2 é explicado como se deu a implementação do algoritmo de

aprendizado, incluindo as modificações realizadas. Há também a exposição da interface

gráfica concebida e simulações de funções simples típicas do processamento de imagens

realizadas pela CNN.

Já no capítulo 3, relata-se a metodologia empregada para a obtenção dos parâmetros

da rede para os filtros, sendo incluídos posteriormente os resultados da sua aplicação em

simulação. Este segmento é finalizado com uma análise dos dados obtidos.

Page 31: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

3

Em seguida ao capítulo 3, apresenta-se a conclusão do trabalho, onde se discute o

seu potencial e as possíveis evoluções propostas para futuros desenvolvimentos.

No apêndice está redigido o código principal comentado do algoritmo utilizado.

Page 32: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

4

Page 33: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

5

CAPÍTULO 1 - FUNDAMENTAÇÃO TEÓRICA

1.1 - Redes Neuronais Celulares

A rede neuronal celular é apresentada em [13] como uma arquitetura computacional

analógica que possui organização semelhante às redes de neurônios existentes em vários

tecidos celulares. Além disso, compartilha algumas características das redes neuronais,

como processamento paralelo e dinâmica em tempo contínuo. Conforme é exibido na

FIGURA 1.1, a estrutura padrão de uma CNN consiste numa matriz de dimensões M por

N, onde as células 𝐶(𝑖, 𝑗) estão identificadas por suas coordenadas cartesianas i e j,

inteiras positivas [14].

FIGURA 1.1 - Estrutura básica de uma CNN. Extraída de [14].

Cada célula é conectada com as suas vizinhas, formando seu círculo de influência

𝑆𝑅, cujo raio 𝑅 determina até que distância estas conexões são realizadas. Um raio de

tamanho 1, por exemplo, implica em conexões apenas entre células adjacentes, incluindo

as diagonais.

As equações (1.2) e (1.3) definem a dinâmica da CNN padrão. O diagrama na

FIGURA 1.2 apresenta as operações básicas que ocorrem numa célula.

𝑥𝑖𝑗̇ = −𝑥𝑖𝑗 + ∑ 𝐴(𝑖, 𝑗; 𝑘, 𝑙)𝑦𝑘𝑙 +

𝐶(𝑘,𝑙)∈𝑆𝑅(𝑖,𝑗)

∑ 𝐵(𝑖, 𝑗; 𝑘, 𝑙)𝑢𝑘𝑙 + 𝑧𝑖𝑗𝐶(𝑘,𝑙)∈𝑆𝑅(𝑖,𝑗)

(1.1)

𝑦𝑖𝑗 = 𝑓(𝑥𝑖𝑗) =1

2|𝑥𝑖𝑗 + 1| −

1

2|𝑥𝑖𝑗 − 1| (1.2)

Page 34: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

6

FIGURA 1.2 - Diagrama de blocos de uma célula padrão. Extraído de [15].

As variáveis 𝑥𝑖𝑗, 𝑦𝑖𝑗, 𝑢𝑖𝑗 e 𝑧𝑖𝑗 são, respectivamente, o estado, a saída, a entrada e o limiar

da célula 𝐶(𝑖, 𝑗), enquanto A e B são matrizes de operadores sinápticos de realimentação

e de entrada, respectivamente.

A expressão (1.1) é a equação de estado, que mostra que a dinâmica da célula

depende de sua própria entrada e saída, bem como dos sinais das células pertencentes ao

seu círculo de influência, 𝑆𝑅(𝑖, 𝑗). Os índices 𝑘 e 𝑙 correspondem às coordenadas relativas

a estas células. A equação (1.2) corresponde à função de saída típica da célula, que age

como limitadora do estado, denominada não linearidade padrão, ilustrada na FIGURA

1.3. A aplicação desta função restringe a saída de cada célula ao intervalo [-1,1].

FIGURA 1.3 - Não linearidade padrão. Extraída de [14].

Page 35: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

7

Os parâmetros das matrizes A e B e o parâmetro z determinam a função a ser

executada pela CNN e normalmente são utilizados valores reais, invariantes no espaço e

no tempo. Em alguns casos, o estado inicial também necessita ser definido. Nestas

condições, de acordo com a equação (1.1), a operação das sinapses em cada célula se

resume à multiplicação da saída de cada célula pertencente à vizinhança, bem como de

sua entrada, pelo coeficiente correspondente à sua posição relativa, sendo estes produtos

somados em seguida. Define-se assim uma máscara única com estes coeficientes para

toda a rede, associada à função que será executada. A FIGURA 1.4 ilustra uma forma de

representação da máscara A para uma rede com vizinhança de raio unitário.

𝑎−1,−1 𝑎−1,0 𝑎−1,1

𝑎0,−1 𝑎0,0 𝑎0,1

𝑎1,−1 𝑎1,0 𝑎1,1

FIGURA 1.4 - Máscara A para uma rede com R = 1.

Além disso, levam-se em consideração as condições de fronteira, que correspondem

aos valores de entradas e saídas de células virtuais que contornam a rede. Estas células

são utilizadas para ocupar os espaços, dentro do círculo de influência das células

pertencentes à borda da rede, que a princípio estariam vazios. Na forma de implementação

mais comum, a fronteira fornece apenas sinais constantes para as células adjacentes.

Uma grande gama de funções executadas por CNN é classificada como bipolar, isto

é, trabalha apenas com entradas e saídas finais com valores -1 e 1. Em aplicações na área

de processamento de imagens, vertente de maior destaque na utilização de CNN, estes

valores são comumente associados às cores branca e preta, respectivamente. No caso

destas funções, em geral, a solução não é única: uma faixa de valores para cada parâmetro

permite a obtenção do mesmo resultado.

Quando as células da CNN não interagem com os sinais de saída das suas vizinhas,

isto é, quando todos os coeficientes sinápticos de realimentação com exceção do central

são nulos, tem-se uma rede do tipo desacoplada. Caso pelo menos um destes parâmetros

seja diferente de zero, a rede é considerada acoplada. As funções que exibem efeitos de

propagação, como preenchimento de buracos ou projeção de sombras, normalmente estão

associadas ao segundo caso.

Page 36: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

8

A FIGURA 1.4 representa as operações básicas que ocorrem numa célula padrão.

O processamento envolve várias multiplicações, um somatório, uma integração e um

bloco limitador, além de uma realimentação negativa.

Uma variação de modelo de CNN, desenvolvida em [10], é a configuração Full

Signal Range (FSR), e sua principal diferença é a operação com valores dos estados

limitados à faixa de sinais de entrada. Esta característica simplifica o projeto ao dispensar

a necessidade do bloco limitador, contribuindo para a concepção de circuitos mais densos

e robustos [16]. A FIGURA 1.5 descreve o diagrama para este caso.

Neste modelo, a dinâmica da célula 𝐶(𝑖, 𝑗) é descrita pela equação (1.3) [10].

FIGURA 1.5 - Diagrama de blocos de uma célula FSR. Extraído de [15].

𝑥𝑖𝑗̇ = 𝑔𝑝(𝑥𝑖𝑗) + ∑ 𝐴𝐹𝑆𝑅(𝑖, 𝑗; 𝑘, 𝑙)𝑦𝑘𝑙 +

𝐶(𝑘,𝑙)∈𝑆𝑅(𝑖,𝑗)

∑ 𝐵(𝑖, 𝑗; 𝑘, 𝑙)𝑢𝑘𝑙 + 𝑧𝑖𝑗𝐶(𝑘,𝑙)∈𝑆𝑅(𝑖,𝑗)

(1.3)

A matriz 𝐴𝐹𝑆𝑅 corresponde a 𝐴 se subtrairmos 1 do seu elemento central, como

mostra a FIGURA 1.6 para uma rede com vizinhança de raio unitário. A função de

grampeamento 𝑔𝑝(𝑥) é definida como:

𝑔𝑝(𝑥) = 𝑙𝑖𝑚𝑚→∞

{−𝑚(𝑥 + 1) + 1, 𝑥 < −10, − 1 ≤ 𝑥 ≤ 1−𝑚(𝑥 − 1) − 1, 𝑥 > 1

(1.4)

𝑔𝑝(𝑥)

Page 37: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

9

𝑎−1,−1 𝑎−1,0 𝑎−1,1

𝑎0,−1 𝑎0,0 − 1 𝑎0,1

𝑎1,−1 𝑎1,0 𝑎1,1

FIGURA 1.6 - Máscara 𝐴𝐹𝑆𝑅 em função dos elementos da matriz A, para uma rede com r = 1.

Considerando 𝑚 = 1 na função 𝑔𝑝(𝑥), a equação (1.3) se torna igual a (1.1),

correspondendo à dinâmica da célula convencional.

1.2 - Algoritmos de Treinamento

Segundo [17], os coeficientes requeridos para que a CNN desempenhe uma

determinada função podem ser encontrados por meio de projeto ou de aprendizado. No

caso de projeto, a função deve ser traduzida em termos de algumas leis dinâmicas locais.

Contudo, a relação desejada entre entrada (ou estado inicial) e saída pode ser complexa

demais para permitir o enunciado de tais leis.

A outra forma de determinação dos coeficientes, bastante utilizada, é a técnica de

aprendizado de redes neuronais, que já foram adaptadas para o caso específico de redes

celulares [17]-[24]. Estas técnicas em geral baseiam-se no princípio de que, uma vez

conhecido um conjunto de entradas e os resultados esperados para a função em questão,

podem-se obter os coeficientes da rede que reproduzem tal comportamento de forma

iterativa, a partir de algoritmos específicos.

Dois destes métodos foram considerados para o possível uso neste trabalho. Um

deles foi o uso de um algoritmo genético adaptado para CNN, como os propostos em [23]

e [24]. A principal vantagem desta classe de algoritmos é que pode ser mais resistente a

problemas de convergência caso seja escolhido um tamanho adequado para a população,

em contrapartida demandando um tempo médio maior para a sua realização, em geral.

Entretanto, a opção escolhida para implementação foi a proposta em [18] sob o nome de

Algoritmo do Centro de Massa (CMA: Center of Mass Algorithm) e inspirada na técnica

de aprendizado para redes neuronais denominada recurrent back-propagation (retro-

Page 38: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

10

propagação recorrente), cujo princípio básico é a otimização dos parâmetros pela

minimização de uma função de custo, que compara a saída da rede em simulação com

a resposta desejada. As maiores simplicidade e velocidade desta abordagem pesaram

nesta preferência, já que acarretam em um tempo menor para execução. Em contrapartida,

o CMA possui a desvantagem de oferecer o risco de haver problemas durante

a convergência, principalmente caso não siga uma trajetória adequada. A próxima seção

dedica-se à explanação de seu funcionamento, com as modificações introduzidas por este

trabalho sendo descritas na seção 2.1.

1.2.1 - Algoritmo do Centro de Massa

Uma característica do CMA é considerar apenas a resposta final da rede já

estabilizada, ignorando a trajetória tomada durante o processamento. Além disso,

o conceito de centro de massa proposto permite o treinamento para o caso de funções com

uma dinâmica que dificulta a aplicação de algoritmos mais simples, como as funções que

envolvem propagação de sinal pela rede.

O treinamento necessita de pares de entrada e saída definidos para a função

procurada, das condições de fronteira, de valores iniciais para A, B e o limiar z e para

o estado das células, resultando em um conjunto com A, B e o limiar de uma CNN

convencional, que permite a realização da função. O desenvolvimento da técnica é feito

para redes com vizinhança de raio unitário, onde as máscaras possuem dimensão 3x3.

O erro é calculado a partir da equação (1.5):

𝑒𝑖𝑗[𝑘] =1

2(𝑑𝑖𝑗 − 𝑦𝑖𝑗[𝑘]) (1.5)

onde 𝑒𝑖𝑗 e 𝑦𝑖𝑗 são o erro e a saída final da célula 𝐶(𝑖, 𝑗), respectivamente, e 𝑑𝑖𝑗 é a resposta

desejada. O índice 𝑘 contabiliza as iterações. Considerando que a saída da CNN é limitada

ao intervalo [-1, 1], o erro obtido a partir desta relação também se situará nesta faixa.

A atualização dos parâmetros é realizada segundo (1.6):

𝑎𝑚𝑛[𝑘 + 1] = 𝑎𝑚𝑛[𝑘] + 𝜂𝛥𝑎𝑚𝑛[𝑘] (1.6. 𝑎)

𝑏𝑚𝑛[𝑘 + 1] = 𝑏𝑚𝑛[𝑘] + 𝜂𝛥𝑏𝑚𝑛[𝑘] (1.6. 𝑏)

Page 39: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

11

𝑧[𝑘 + 1] = 𝑧[𝑘] + 𝜂𝛥𝑧[𝑘] (1.6. 𝑐)

sendo

𝛥𝑎𝑚𝑛[𝑘] =

{

0 , 𝑠𝑒 𝑚 = 𝑛 = 2

1

𝑀𝑁∑ 𝑒𝑖𝑗[𝑘]𝑦𝑖+𝑚−2 𝑗+𝑛−2[𝑘]

1≤𝑖≤𝑀,1≤𝑗≤𝑁

, 𝑐𝑎𝑠𝑜 𝑐𝑜𝑛𝑡𝑟á𝑟𝑖𝑜 (1.7. 𝑎)

𝛥𝑏𝑚𝑛[𝑘] =1

𝑀𝑁∑ 𝑒𝑖𝑗[𝑘]𝑢𝑖+𝑚−2 𝑗+𝑛−2[𝑘]

1≤𝑖≤𝑀,1≤𝑗≤𝑁

(1.7. 𝑏)

𝛥𝑧[𝑘] =1

𝑀𝑁∑ 𝑒𝑖𝑗[𝑘]

1≤𝑖≤𝑀,1≤𝑗≤𝑁

(1.7. 𝑐)

onde 𝑚, 𝑛 ∈ {1, 2, 3}, 𝜂 > 0 é a taxa de aprendizado e M e N são, respectivamente,

o número de linhas e colunas da CNN. Sendo assim, a cada passo 𝑘 a mudança de cada

parâmetro dos operadores sinápticos é atingida a partir do somatório que envolve

o produto do erro de cada célula com o sinal que participa da sinapse referente a este

parâmetro durante a operação da rede. Por outro lado, o limiar z é variado de acordo com

o acúmulo dos erros das células. O elemento central de 𝐴, 𝑎22, é fixado.

A atualização dos parâmetros em (1.6) pode ser explicada de forma simples:

uma célula contribuirá nas somas quando o erro em sua resposta for diferente de zero. Se,

por exemplo, numa função bipolar, o valor de 𝑦𝑚𝑛 for 1, mas o valor desejado for -1, o

erro terá o valor máximo de 1 e, para reduzi-lo, o algoritmo aplicará as relações em (1.7)

e diminuirá, proporcionalmente ao fator 𝜂, os coeficientes 𝑎𝑚𝑛 correspondentes às células

vizinhas que apresentem 𝑦𝑚𝑛 = 1. Similarmente, aumentará os coeficientes 𝑎𝑚𝑛

referentes às células com 𝑦𝑚𝑛 = −1. A realização do somatório para todos os valores de

i de 1 a M e de j de 1 a N e a divisão pelo fator MN levam à média das contribuições

fornecidas por todas as células da rede, que por sua vez é aplicada na atualização ao final

de cada passo.

Pode-se observar que este método realiza o treinamento em lotes, no sentido em

que os coeficientes são alterados apenas após a aplicação de (1.7) em todas as células, ao

Page 40: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

12

passo em que outras técnicas fazem essa atualização on-line, isto é, logo após

o tratamento em cada célula.

Como citado anteriormente, este algoritmo não considera a evolução temporal para

o cálculo do erro. Isto dificulta a implementação de certos tipos de funções que envolvem

a propagação de sinal pela rede, como a projeção de sombras. Para compensar esta

limitação, em [18] algumas alterações são aplicadas na forma como as matrizes A e B são

atualizadas.

No caso da máscara B, é proposta a fixação do seu formato de acordo com

a natureza da função desejada. Considerando um exemplo em que a matriz tem o modelo

descrito em (1.8), a atualização será feita de acordo com (1.9),

𝐵 = [0 𝑏 0𝑏 𝑏𝑐 𝑏0 𝑏 0

] (1.8)

𝐵 = [∆

0 ∆𝑏[𝑘] 0𝑏[𝑘] ∆𝑏22[𝑘] ∆𝑏[𝑘]0 ∆𝑏[𝑘] 0

] (1.9)

onde a grandeza ∆𝑏[𝑘] é dada por (1.10).

∆𝑏[𝑘] =∆𝑏12[𝑘] + ∆𝑏21[𝑘] + ∆𝑏23[𝑘] + ∆𝑏32[𝑘]

4 (1.10)

Para o tratamento da máscara A, realiza-se primeiramente a decomposição em três

partes, mostradas em (1.11): uma componente simétrica, 𝐴𝑠, uma anti-simétrica, 𝐴𝑎, e

𝐴𝑐.

𝐴𝑠 =1

2[

𝑎11 + 𝑎33 𝑎12 + 𝑎32 𝑎13 + 𝑎31𝑎21 + 𝑎23 0 𝑎21 + 𝑎23𝑎13 + 𝑎31 𝑎12 + 𝑎32 𝑎11 + 𝑎33

] (1.11. 𝑎)

𝐴𝑎 =1

2[

𝑎11 − 𝑎33 𝑎12 − 𝑎32 𝑎13 − 𝑎31𝑎21 − 𝑎23 0 𝑎23 − 𝑎21𝑎31 − 𝑎13 𝑎32 − 𝑎12 𝑎33 − 𝑎11

] (1.11. 𝑏)

𝐴𝑐 = 𝐴 − 𝐴𝑠 − 𝐴𝑎 (1.11. 𝑐)

Page 41: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

13

A componente simétrica corresponde às dinâmicas locais e de difusão da função,

enquanto a anti-simétrica lida com as dinâmicas globais e de propagação. Ambas são

atualizadas de maneiras diferentes. A componente 𝐴𝑐 permanece fixa durante

o treinamento. No final de cada passo, as três matrizes são somadas para obter a nova

máscara 𝐴.

A atualização de 𝐴𝑠 é realizada conforme (1.12), onde o índice k foi omitido na

matriz AS para simplificação.

𝐴𝑠[𝑘 + 1] = 𝐴𝑠[𝑘] + 𝜂∆𝐴𝑠[𝑘] (1.12. 𝑎)

∆𝐴𝑠 =1

2[

∆𝑎11 + ∆𝑎33 ∆𝑎12 + ∆𝑎32 ∆𝑎13 + ∆𝑎31∆𝑎21 + ∆𝑎23 0 ∆𝑎21 + ∆𝑎23∆𝑎13 + ∆𝑎31 ∆𝑎12 + ∆𝑎32 ∆𝑎11 + ∆𝑎33

] (1.12. 𝑏)

A componente 𝐴𝑎 é atualizada utilizando a noção de centro de massa, considerando

a organização da rede em duas dimensões. Busca-se neste caso eliminar a diferença entre

as posições do centro de massa da saída da rede e da saída desejada, aproximando-os a

cada iteração. A princípio, atribui-se a cada célula 𝐶(𝑖, 𝑗) um valor de massa 𝑚𝑖𝑗

dependente do valor na sua saída, de acordo com a expressão (1.13).

𝑚𝑖𝑗 =1 + 𝑦𝑖𝑗

2 (1.13)

E como −1 ≤ 𝑦𝑖𝑗 ≤ 1, tem-se que 0 ≤ 𝑚𝑖𝑗 ≤ 1.

Dessa forma o cálculo do centro de massa em relação a um eixo 𝑙 é feito segundo a

equação (1.14).

𝑟𝑙 =1

𝑀𝑡𝑜𝑡𝑎𝑙∑ 𝐷(𝑙)𝑖𝑗𝑚𝑖𝑗

1≤𝑖≤𝑀,1≤𝑗≤𝑁

(1.14)

sendo 𝐷(𝑙)𝑖𝑗 a distância entre a célula 𝐶(𝑖, 𝑗) e o eixo 𝑙. A variável 𝑀𝑡𝑜𝑡𝑎𝑙 é a soma das

massas de todas as células da rede.

Page 42: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

14

Para cada elemento de 𝐴𝑎, o centro de massa é calculado em relação a um eixo

dentre quatro possibilidades, ilustradas na FIGURA 1.7, de acordo com a sua posição na

matriz.

FIGURA 1.7 - Eixos utilizados para o cálculo do centro de massa. Extraída de [18].

Escrevendo as distâncias em função do par cartesiano (𝑖, 𝑗), temos as expressões

(1.15) para cada eixo:

𝑟𝑙𝑥 =1

𝑀𝑡𝑜𝑡𝑎𝑙∑ 𝑗𝑚𝑖𝑗

1≤𝑖≤𝑀,1≤𝑗≤𝑁

(1.15. 𝑎)

𝑟𝑙𝑦 =1

𝑀𝑡𝑜𝑡𝑎𝑙∑ 𝑖𝑚𝑖𝑗

1≤𝑖≤𝑀,1≤𝑗≤𝑁

(1.15. 𝑏)

𝑟𝑙45 =1

𝑀𝑡𝑜𝑡𝑎𝑙

√2

2 ∑ |𝑖 − 𝑗|𝑚𝑖𝑗

1≤𝑖≤𝑀,1≤𝑗≤𝑁

(1.15. 𝑐)

𝑟𝑙−45 =1

𝑀𝑡𝑜𝑡𝑎𝑙

√2

2 ∑ (𝑖 + 𝑗)𝑚𝑖𝑗

1≤𝑖≤𝑀,1≤𝑗≤𝑁

(1.15. 𝑑)

A partir das expressões (1.15) pode-se calcular as diferenças entre o centro de

massa da resposta obtida pela rede (𝑟𝑙𝑦) e da resposta desejada (𝑟𝑙

𝑑), utilizando (1.16).

𝛥𝑙𝑥 = 𝑟𝑙𝑥𝑑 [𝑘] − 𝑟𝑥

𝑦[𝑘] (1.16. 𝑎)

Page 43: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

15

𝛥𝑙𝑦 = 𝑟𝑙𝑦𝑑 [𝑘] − 𝑟𝑙𝑦

𝑦[𝑘] (1.16. 𝑏)

𝛥𝑙45 = 𝑟𝑙45𝑑 [𝑘] − 𝑟45

𝑦 [𝑘] (1.16. 𝑐)

𝛥𝑙−45 = 𝑟𝑙−45𝑑 [𝑘] − 𝑟−45

𝑦 [𝑘] (1.16. 𝑑)

E, finalmente, 𝐴𝑎 pode ser atualizada de acordo com (1.17).

𝐴𝑎[𝑘 + 1] = 𝐴𝑎[𝑘] + 𝜂𝛥𝐴𝑎[𝑘] (1.17. 𝑎)

𝛥𝐴𝑎[𝑘] = [

𝛥𝑙−45 𝛥𝑙𝑦 𝛥𝑙45𝛥𝑙𝑥 0 −𝛥𝑙𝑥−𝛥𝑙45 −𝛥𝑙𝑦 −𝛥𝑙−45

] (1.17. 𝑏)

Ainda em [18], são feitas verificações do método com o treinamento de uma CNN

convencional para funções simples, com um bom desempenho.

1.3 - Filtragem de Imagens

A filtragem corresponde a uma das operações mais frequentes no processamento de

imagens e sua utilização pode estar presente em diversas etapas da computação,

cumprindo as mais diversas finalidades. Exemplos incluem o realce de determinadas

características da imagem, como bordas ou objetos, e a suavização de imagens.

A filtragem pode ser abordada de duas maneiras: no domínio do espaço e no

domínio da frequência, ambas proporcionando diferentes métodos para o projeto de

filtros. Apesar destas alternativas possuírem uma correlação matemática, a escolha mais

adequada pode depender da aplicação desejada.

1.3.1 - Domínio Espacial

No domínio espacial, um filtro é definido por uma vizinhança e uma operação pré-

determinada. Em cada pixel da imagem, esta operação será feita em sua vizinhança, e o

seu resultado corresponderá ao valor deste mesmo pixel na imagem de saída. O filtro

espacial pode ser linear ou não-linear, de acordo com sua operação. Seja o diagrama da

FIGURA 1.8 a representação de uma máscara de coeficientes de um filtro linear de

Page 44: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

16

tamanho 3 por 3. Nesta seção, assim como no restante do trabalho, são consideradas

imagens monocromáticas. Além disso, nesta análise o valor 0 corresponde a um pixel

preto e o valor máximo do pixel, que em aplicações digitais depende no número de bits

usado para representação, está associado à cor branca. Para cada pixel, é realizado

o produto de cada coeficiente 𝑤 da máscara pelo valor do pixel vizinho correspondente,

obedecendo a sua posição relativa ao centro; o pixel central é multiplicado pelo

coeficiente central. Os resultados são então somados, produzindo o valor do pixel da

imagem filtrada. A equação 1.18 representa este procedimento, com 𝑓(𝑥, 𝑦) e g(𝑥, 𝑦)

correspondendo aos valores dos pixels das coordenadas (𝑥, 𝑦) para a imagem antes e

cdepois da filtragem, respectivamente; a orientação segue como mostrado na FIGURA

c1.9.

cc𝑔(𝑥, 𝑦) = 𝑤(−1,−1)𝑓(𝑥 − 1, 𝑦 − 1) + 𝑤(−1,0)𝑓(𝑥 − 1, 𝑦) + ⋯

+ 𝑤(0,0)𝑓(𝑥, 𝑦) + ⋯+𝑤(1,0)𝑓(𝑥 + 1, 𝑦) + 𝑤(1,1)𝑓(𝑥 + 1, 𝑦 + 1) (1.18)

𝑤−1,−1 𝑤−1,0 𝑤−1,1

𝑤0,−1 𝑤0,0 𝑤0,1

𝑤1,−1 𝑤1,0 𝑤1,1

FIGURA 1.8 - Máscara de um filtro 3x3.

Pixel (𝑥, 𝑦)

FIGURA 1.9 - Sistema de coordenadas para os pixels.

Page 45: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

17

De um modo geral, para uma imagem de tamanho 𝑀 x 𝑁, sendo 𝑀 e 𝑁 ímpares, e

um filtro de tamanho 𝑚 x 𝑛, a equação 1.19 representa a operação de filtragem linear. Os

índices 𝑎 e 𝑏 são tais que 𝑚 = 2𝑎 + 1 e 𝑛 = 2𝑏 + 1; 𝑠 e 𝑡 são variáveis auxiliares.

𝑔(𝑥, 𝑦) = ∑ ∑ 𝑤(𝑠, 𝑡)𝑓(𝑥 + 𝑠, 𝑦 + 𝑡)

𝑏

𝑡=−𝑏

𝑎

𝑠=−𝑎

(1.19)

O procedimento anterior está intimamente relacionado a dois importantes

conceitos: correlação e convolução. O primeiro equivale à operação descrita na equação

1.19 e tem papel de destaque nas aplicações que envolvem busca de correspondência entre

imagens. Já a convolução difere apenas na utilização da máscara, que sofre uma rotação

de 180 graus antes da operação, e serve como base para a formulação da teoria que

relaciona matematicamente o domínio espacial e o domínio da frequência. As equações

1.20 e 1.21 descrevem, respectivamente, as operações de correlação e de convolução,

incluindo a simbologia usual.

𝑤(𝑥, 𝑦) ∘ 𝑓(𝑥, 𝑦) = ∑ ∑ 𝑤(𝑠, 𝑡)𝑓(𝑥 + 𝑠, 𝑦 + 𝑡)

𝑏

𝑡=−𝑏

𝑎

𝑠=−𝑎

(1.20)

𝑤(𝑥, 𝑦) ∗ 𝑓(𝑥, 𝑦) = ∑ ∑ 𝑤(𝑠, 𝑡)𝑓(𝑥 − 𝑠, 𝑦 − 𝑡)

𝑏

𝑡=−𝑏

𝑎

𝑠=−𝑎

(1.21)

1.3.2 - Domínio da Frequência

A abordagem no domínio da frequência é fundamentada a partir do uso da

transformada de Fourier para duas dimensões. No caso do processamento de imagens,

onde há uma divisão da imagem em pixels, utiliza-se a sua versão discreta. A definição

do par com a transformação direta (DFT-2D: Two Dimensional Discrete Fourier

Transform) e a inversa (IDFT-2D: Two Dimensional Inverse Discrete Fourier Transform)

é mostrada nas equações 1.22.

Page 46: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

18

{

𝐹(𝑢, 𝑣) =∑∑ 𝑓(𝑥, 𝑦)𝑒

−𝑗2𝜋(𝑢𝑥

𝑀+𝑣𝑦

𝑁)

𝑁−1

𝑦=0

𝑀−1

𝑥=0

(1.22. 𝑎)

𝑓(𝑥, 𝑦) =1

𝑀𝑁∑∑ 𝐹(𝑢, 𝑣)𝑒

𝑗2𝜋(𝑢𝑥

𝑀+𝑣𝑦

𝑁)

𝑁−1

𝑣=0

𝑀−1

𝑢=0

(1.22. 𝑏)

onde 𝑢 é a componente de frequência horizontal, 𝑣 é a componente de frequência vertical

(ambas dadas em ciclos/pixel) e 𝐹(𝑢, 𝑣) é a transformada da imagem 𝑓(𝑥, 𝑦). Ambas

transformações geram sequências numéricas com domínio infinito e periódicas nas

direções horizontal e vertical, com períodos iguais a M e N, respectivamente. Para fins de

filtragem, pode-se considerar apenas um período das funções.

A filtragem no domínio da frequência consiste em modificar a DFT da imagem

utilizando uma função de transferência que representa o filtro, seguida da IDFT para

obtenção da imagem resultante. Este processo é representado matematicamente pela

equação 1.23, onde 𝐹(𝑢, 𝑣) é um período da DFT da imagem e 𝐻(𝑢, 𝑣) é a função de

transferência do filtro (ambas funções possuem dimensões 𝑀 por 𝑁). A notação ℑ−1

representa a operação de transformação inversa e 𝑔(𝑥, 𝑦) é a imagem de saída.

𝑔(𝑥, 𝑦) = ℑ−1[𝐻(𝑢, 𝑣)𝐹(𝑢, 𝑣)] (1.23)

Neste processo, a DFT da imagem terá seus elementos multiplicados pela função

do filtro e, com base nesse produto, pode-se projetar filtros para trabalhar nas regiões de

frequência que se deseja modificar. Por questão de simplicidade, costuma-se utilizar

𝐻(𝑢, 𝑣) simétrica em relação ao centro. Para isso é necessária também a centralização

dos elementos de 𝐹(𝑢, 𝑣), a qual pode ser facilmente obtida multiplicando 𝑓(𝑥, 𝑦) por

(−1)𝑥+𝑦 antes de aplicar a DFT. Este procedimento, exemplificado na FIGURA 1.10

para uma transformada com 𝑀 = 𝑁 = 50, desloca os elementos que correspondem às

menores frequências para o centro da matriz e, a partir deste ponto, a frequência crescerá

radialmente, atingindo os maiores valores nas suas extremidades.

Page 47: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

19

Um detalhe que deve ser levado em conta nesta metodologia é que para evitar

efeitos indesejados na filtragem devidos à periodicidade da DFT da imagem, faz-se

necessário o preenchimento de zeros em torno de 𝑓(𝑥, 𝑦) (padding), que correspondem a

pixels pretos, de forma que a imagem fique com um tamanho P por Q, de acordo com as

inequações em 1.24. A função do filtro neste caso também deve respeitar estas dimensões.

Tipicamente é estipulado 𝑃 = 2𝑀 e 𝑄 = 2𝑁. A FIGURA 1.11 mostra um caso desta

prática.

{𝑃 ≤ 2𝑀 − 1𝑄 ≤ 2𝑁 − 1

(1.24)

FIGURA 1.11 - Preenchimento de zeros em torno da imagem. A imagem à esquerda, com seus pixels

representados numericamente, é ampliada com pixels nulos, formando a imagem à direita.

FIGURA 1.10 - Exemplo do processo de centralização: Forma comum de 𝐹(𝑢, 𝑣) (a); Forma após a

centralização (b). 𝑢 e 𝑣 são dados em ciclos/pixel. Obtidas no Matlab.

(a) (b)

25 12 23 15

24 57 85 45

55 45 21 18

36 21 01 08

25 12 23 15 0 0 0 0

24 57 85 45 0 0 0 0

55 45 21 18 0 0 0 0

36 21 01 08 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

Page 48: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

20

Filtros básicos para as aplicações típicas podem ser projetados a partir de funções

circulares e concêntricas. As baixas frequências correspondem às transições gradativas

das tonalidades. Logo, um filtro passa-baixas irá suavizar a imagem. Por sua vez, as altas

frequências estão associadas às transições abruptas, como as bordas de objetos.

Consequentemente, um filtro passa-altas irá realçar estes traços. Eliminar apenas

a frequência DC, no centro da transformada, anula o valor da intensidade média da

imagem. Exemplos destes três processos são mostrados nas FIGURAS 1.12 e 1.13. Filtros

mais complexos, como passa-faixa e rejeita-faixa, podem ser obtidos a partir de

combinações dos casos anteriores.

(a) (b)

(c)

FIGURA 1.12 - Exemplo de imagens filtradas. (a) Imagem original. (b) Imagem processada por um

filtro passa-baixas. (c) Imagem processada por um filtro passa altas.

Page 49: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

21

O uso de uma função 𝐻(𝑢, 𝑣) baseado na forma de um filtro ideal, apesar de ser

possível, possui limitações que impedem um desempenho perfeito, decorrente da

transição abrupta entre as bandas de passagem e de rejeição. Uma forma de reduzir este

problema é o uso de aproximações que possuam uma faixa de transição contínua, como

o caso dos filtros de Butterworth e gaussiano, descritos a seguir.

Filtro passa-baixas de Butterworth

A função de transferência deste tipo de filtro é descrita na expressão 1.25. A

variável 𝑛 é a ordem do filtro, que determina a inclinação da banda de transição; filtros

de maior ordem terão um decaimento mais rápido, gerando uma zona de transição mais

curta, aproximando-se do caso ideal. A função 𝐷(𝑢, 𝑣) é a distância de um ponto (𝑢, 𝑣)

para o centro do filtro, obtida a partir da relação 1.26. Já 𝐷0 é a frequência de corte do

filtro, definida como o raio do círculo que contém os pontos onde o valor de 𝐻(𝑢, 𝑣)

corresponde à metade de seu valor máximo (equivalente a 1 para os filtros abordados

nessa seção). A FIGURA 1.14 traz uma representação gráfica da função, bem como um

perfil radial para diferentes ordens.

𝐻(𝑢, 𝑣) =1

1 + (𝐷(𝑢, 𝑣)𝐷0

)2𝑛 (1.25)

𝐷(𝑢, 𝑣) = √[(𝑢 −𝑃

2)2

+ (𝑣 −𝑄

2)2

] (1.26)

(a) (b)

FIGURA 1.13 - Imagem (a) processada em um filtro que elimina o termo DC, resultando na imagem

(b).

Page 50: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

22

FIGURA 1.14 - Função de transferência do filtro passa-baixas de Butterworth, com 𝐷𝑜 = 10 , 𝑛 = 2 e

𝑀 = 𝑁 = 50 (a). Perfis radiais da função para diferentes ordens 𝑛 (b) e frequências de corte 𝐷0 (c). As

variáveis 𝑢 e 𝑣 são dadas em ciclos/pixel. Obtidos por meio do software Matlab.

Filtro passa-baixas gaussiano

Este filtro é baseado nas curvas gaussianas - sua função aparece em 1.27. Ao

contrário do caso anterior, esta categoria não inclui ordens variadas. O único parâmetro

ajustável é 𝐷0, que aqui é a distância central para os pontos onde 𝐻(𝑢, 𝑣) assume 60,7%

do valor máximo. Essa função está ilustrada na FIGURA 1.15.

𝐻(𝑢, 𝑣) = 𝑒−𝐷2(𝑢,𝑣)

2𝐷02 (1.27)

(a)

(c) (b)

Page 51: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

23

FIGURA 1.15 - Função de transferência do filtro passa-baixas gaussiano, com 𝐷𝑜 = 10 e 𝑀 = 𝑁 = 50

(a). Perfis radiais da função para diferentes frequências de corte 𝐷0 (c). As variáveis 𝑢 e 𝑣 são dadas em

ciclos/pixel. Obtidos por meio do software Matlab.

Filtro passa-altas de Butterworth

Sua função possui parâmetros idênticos à versão passa-baixas. A expressão 1.28 e

a FIGURA 1.16 descrevem seu formato.

𝐻(𝑢, 𝑣) =1

1 + (𝐷0

𝐷(𝑢, 𝑣))2𝑛 (1.28)

Filtro passa-altas gaussiano

De forma análoga aos filtros apresentados previamente, a seguir é mostrada

a definição do filtro passa-altas gaussiano. A função descrita em 1.29 está ilustrada na

FIGURA 1.17.

𝐻(𝑢, 𝑣) = 1 − 𝑒−𝐷2(𝑢,𝑣)

2𝐷02 (1.29)

(a) (b)

Page 52: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

24

FIGURA 1.16 - Função de transferência do filtro passa-baixas de Butterworth, com 𝐷𝑜 = 10 , 𝑛 = 2 e

𝑀 = 𝑁 = 50 (a). Perfis radiais da função para diferentes ordens 𝑛 (b) e frequências de corte 𝐷0 (c).

As variáveis 𝑢 e 𝑣 são dadas em ciclos/pixel. Obtidos por meio do software Matlab.

FIGURA 1.17 - Função de transferência do filtro passa-altas gaussiano, com 𝐷𝑜 = 10 e 𝑀 = 𝑁 = 50

(a). Perfis radiais da função para diferentes frequências de corte 𝐷0 (c). As variáveis 𝑢 e 𝑣 são dadas em

ciclos/pixel. Obtidos por meio do software Matlab.

(a)

(b) (c)

(a) (b)

Page 53: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

25

1.4 - Um Circuito Analógico de CNN do Tipo FSR em Tecnologia CMOS

O desempenho de uma CNN depende em grande parte do funcionamento das

sinapses. Portanto, o projeto de um circuito eficiente para esta função é imprescindível

para a obtenção de uma arquitetura que corresponda às necessidades deste trabalho. Tal

desenvolvimento, documentado em [12], produziu um circuito que utiliza de forma

inteligente o reaproveitamento de blocos para torná-lo menor e com baixo consumo,

dentre outras vantagens obtidas.

Nesta abordagem, aplicada para a construção de uma rede do tipo FSR, a sinapse é

realizada a partir de multiplicadores em modo corrente-tensão, com entradas em corrente

e tensão e saída em corrente, cujo núcleo é formado a partir da estrutura representada na

FIGURA 1.18. A operação é feita a partir do espelhamento da transcondutância de fonte

entre os transistores M1 e M3A, considerando ambos operando no início da região de

não-saturação. Pode-se demonstrar que o valor da corrente na saída 𝑖𝑜𝑢𝑡𝐴 será dado pela

expressão (1.30).

𝑖𝑜𝑢𝑡𝐴 =𝑖𝑖𝑛+𝐼𝐵

𝑉𝐷𝑆1(𝑉𝐼𝐷𝐶 + 𝑘𝑣𝑖𝑛) (1.30)

Os transistores M3C, M4, M5, M6 e M7 operam em saturação, 𝑉𝐼𝐷𝐶 é o

deslocamento de nível total desde o terminal de porta do transistor M7 até o terminal de

porta de M4 e k é um fator gerado pelo efeito de corpo.

FIGURA 1.18 - Núcleo do multiplicador. Extraído de [15].

Page 54: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

26

Os níveis de polarização do circuito anterior produzem termos indesejados no

produto, logo é realizado o cancelamento destes componentes, a partir da combinação de

produtos e subtrações envolvendo os sinais do lado direito da relação em 1.30.

Com base neste núcleo, foi concebida uma arquitetura para uma rede neuronal

celular analógica do tipo FSR, cujas células são constituídas pelos circuitos da FIGURA

1.19. Nesta rede é utilizada para as sinapses uma versão do multiplicador com operação

em quatro quadrantes, com a inclusão do subtrator para efetuar o cancelamento citado

anteriormente.

Os coeficientes da rede são introduzidos em cada sinapse a partir do sinal de

corrente 𝑖𝑖𝑛, no bloco gerador de peso. Por sua vez, os sinais de entrada e representativos

dos estados das células assumem, em cada sinapse, a forma da tensão 𝑣𝑖𝑠ℎ. Os

multiplicadores processam os termos e produzem como resultado as correntes designadas

𝑖𝑜𝑢𝑡, em cada sinapse, sendo inseridas no ponto X. A confluência destas correntes no

ponto X corresponde ao somatório das saídas das sinapses referentes aos parâmetros A e

B conforme (1.3), além do limiar, que também é implementado a partir de um bloco de

sinapse adicional. Neste mesmo nó é conectado também um grampeador para produzir

𝑔𝑝(𝑥), como descrito em (1.4). Adicionalmente, a integração neste ponto é facilitada ao

ser realizada a partir da capacitância total decorrente destes blocos, dispensando a

necessidade de um circuito específico. Finalmente, a saída da célula corresponde ao sinal

de tensão 𝑣𝑜, após passar por um deslocamento de nível.

Uma implementação de CNN em tecnologia CMOS de comprimento mínimo igual

a 0,13 µm, com base nesta arquitetura, também foi concebida em [12], sendo

posteriormente fabricado. Uma versão de dimensões 10x10 pré-leiaute foi utilizada para

as simulações relatadas nos próximos capítulos.

Page 55: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

27

FIGURA 1.19 - Circuito da célula da CNN. Extraído de [15].

Page 56: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

28

Page 57: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

29

CAPÍTULO 2 - FERRAMENTA PARA APRENDIZADO DE CNN

COM INTERFACE GRÁFICA

2.1 - Implementação do CMA

O CMA foi implementado em código executável no ambiente do Matlab, a

princípio sem adaptações. O treinamento foi realizado numa CNN do tipo FSR, cuja

simulação foi realizada com o uso da técnica de integração numérica a partir da fórmula

de Euller. Dessa forma o estado da rede é variado a cada intervalo de tempo ∆𝑡 de acordo

com a equação (2.1).

𝑥(𝑡 + ∆𝑡) ≅ 𝑥(𝑡) + ∆𝑡�̇�(𝑡) (2.1)

onde �̇�(𝑡) é dada por (1.1). A relação (2.1) é qualitativamente correta e precisa

o suficiente se utilizarmos um passo temporal ∆𝑡 pequeno, sendo ∆𝑡 = 0,1 𝑠 um valor

adequado para a maioria dos casos práticos, de acordo com [14].

Durante este trabalho, o uso da CNN foi inteiramente destinado ao processamento

de imagens. Nos testes iniciais, com funções simples, a implementação funcionou de

forma satisfatória, mas nas tentativas de obter os parâmetros da rede para a realização de

filtragem, algumas dificuldades foram observadas quanto à velocidade e à convergência,

em parte pelo fato de não serem funções bipolares, ou seja, pelo fato de a saída de cada

célula poder se estabilizar em qualquer valor entre -1 e 1, correspondendo a tons de cinza.

Essa faixa contínua de valores tende a restringir o conjunto de soluções para a maioria

dessas funções e, acompanhada da grande quantidade de parâmetros ajustáveis, contribui

para demandar um maior esforço no aprendizado. Adicionalmente, limitações inerentes

aos métodos numéricos podem impedir que se anule totalmente o erro, exigindo uma

tolerância. Além disso, o conjunto de soluções pode ser mais restrito. Para contornar tais

empecilhos, foram idealizadas algumas modificações no algoritmo, culminando numa

versão que apresentou um bom desempenho nos primeiros treinamentos com filtros. Estes

resultados foram objetos de abordagem em [25], onde foi aplicada uma metodologia

semelhante à descrita no capítulo 3 deste trabalho para simular algumas funções de

filtragem na CNN.

Um problema crítico neste caso era a baixa velocidade nas variações dos

parâmetros, exigindo do CMA uma exagerada quantidade de iterações, se comparada às

Page 58: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

30

funções binárias (na ordem de 100 vezes mais iterações). A medida mais direta para sanar

esta questão seria o aumento da taxa de aprendizado 𝜂; contudo, isto acarretaria uma

redução da precisão de busca pela solução, o que poderia resultar numa trajetória que se

deslocaria para além da região de convergência. O desempenho nesse aspecto foi

melhorado, ao ser introduzida uma opção para a taxa ser variável a partir de um valor

inicial inserido pelo usuário. A taxa então variará de forma linear e decrescente, chegando

a um valor final resultante da divisão entre o valor inicial e uma constante definida no

código. Esta abordagem permite o uso de taxas altas nos passos iniciais da otimização,

acelerando esta parte do processo, enquanto mantem simultaneamente um aumento

gradual da precisão de busca a cada passo.

Mesmo com a aplicação desta medida, ainda há casos em que a busca pela solução

fica perdida, dando voltas na mesma região enquanto o erro se mantém acima da

tolerância. Isto pode acontecer com o treinamento de funções cuja complexidade impede

a rede de reproduzi-las precisamente. Sendo assim, como o erro não pode ser reduzido

para um valor desprezível, o algoritmo pode seguir tentando sem sucesso encontrar este

resultado ideal, preso a um limitado espaço de busca. Demanda-se, portanto, um

aprimoramento nas condições de parada do algoritmo. Além do critério tradicional que

verifica o erro de cada célula com uma tolerância determinada, incluiu-se uma segunda

condição para interrupção das iterações do treinamento, a qual verifica se há uma

trajetória cíclica em cada uma das matrizes de parâmetros e no limiar. Neste caso a

interrupção será acionada quando todos os parâmetros em um passo forem muito

próximos aos de um passo anterior, ocorrido a um número de ciclos determinado. Nos

treinamentos mostrados no capítulo 3, a tolerância para estes parâmetros foi 5𝑥10−5, e a

verificação foi feita com base no valor de 10 ciclos atrás.

Adicionalmente, foi inserida a possibilidade de manter a matriz A com um padrão

fixo durante o treinamento, de forma análoga ao já sugerido para a matriz B em [18] e

ilustrado em (1.8), o que é conveniente para muitas funções, incluindo os filtros espaciais.

E, por último, a programação permite a aplicação automática de mais de um conjunto de

imagens, sendo que o treinamento é executado para cada conjunto e o resultado é utilizado

como condição inicial para o seguinte. Isto permite um ajuste mais amplo dos parâmetros,

ao serem utilizadas imagens que realcem diferentes particularidades da função.

Page 59: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

31

2.2 - Interface Gráfica

Após o desenvolvimento das modificações no método do CMA, foi criada uma

interface visual a fim de tornar o processo de treinamento mais prático e intuitivo para o

usuário. As facilidades de seu uso já puderam ser verificadas na produção dos resultados

publicados em [25]. Optou-se pela ferramenta GUIDE do Matlab para sua produção, o

que facilitou o aproveitamento do código já desenvolvido anteriormente.

O programa é dividido em três seções principais. Na primeira página, conforme

ilustrado na FIGURA 2.1, situam-se as configurações do treinamento. Na coluna da

esquerda estão os parâmetros iniciais da rede (matrizes A e B e o limiar z), as condições

de fronteira, as dimensões da rede e o raio da vizinhança (que pode ser 1 ou 2). As

matrizes podem ter seu padrão fixado segundo as opções exibidas na FIGURA 2.2. A

coluna learning remete às opções da simulação da rede e do CMA. Em CNN simulation

settings há a possibilidade de escolha entre uma CNN convencional e uma rede do tipo

FSR, além da determinação do tamanho do passo temporal em segundos, do tempo

máximo de simulação e do número máximo de iterações no treinamento. A preferência

entre os elementos que serão atualizados, com suas taxas de aprendizado e seus limites

absolutos, são objeto dos dois blocos inferiores. E, por fim, a seção da direita, images,

traz os comandos para seleção e exibição das imagens necessárias ao treinamento

(entrada, saída e estado inicial). Dessa forma, imagens em arquivo existentes na pasta de

trabalho do Matlab podem ser adicionadas. Além disso, há um botão para acesso de um

editor de imagens binárias embutido, que pode ser usado tanto para importar uma imagem

codificada em uma variável do tipo matriz numérica, quanto para criar ou alterar imagens.

Vale lembrar que neste bloco também é permitida a adição de mais de um conjunto de

imagens para o treinamento em sequência, conforme explicado na seção anterior.

A segunda página da interface dispõe de opções para a análise dos resultados da

simulação. Um exemplo destas funções aparece na FIGURA 2.3. É mostrada uma

mensagem que indica a ocorrência ou não de convergência, incluindo os parâmetros

resultantes em caso de sucesso. Há também duas tabelas que permitem a visualização de

quaisquer variáveis envolvidas, inclusive do erro na saída das células em cada iteração,

sendo que tais valores podem ser exportados para o ambiente do Matlab a partir de um

botão, conveniente para um armazenamento posterior.

Page 60: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

32

FIGURA 2.1 - Primeira parte da interface gráfica, contendo as configurações para a execução do

aprendizado. O exemplo utilizado corresponde a uma função de detecção de borda.

𝑅 = 1

Padrão 1:

𝑎1 𝑎1 𝑎1𝑎1 𝑎2 𝑎1𝑎1 𝑎1 𝑎1

Padrão 2:

𝑎1 𝑎1 𝑎1𝑎1 𝑎1 𝑎1𝑎1 𝑎1 𝑎1

Padrão 3:

0 0 00 𝑎1 00 0 0

Padrão 4:

0 𝑎1 0𝑎1 𝑎2 𝑎10 𝑎1 0

Padrão 5:

𝑎1 𝑎2 𝑎1𝑎2 𝑎3 𝑎2𝑎1 𝑎2 𝑎1

Padrão 6:

𝑎11 𝑎12 𝑎13𝑎21 𝑎22 𝑎23𝑎31 𝑎32 𝑎33

𝑅 = 2

Padrão 1:

𝑎1 𝑎1 𝑎1 𝑎1 𝑎1𝑎1 𝑎2 𝑎2 𝑎2 𝑎1𝑎1 𝑎2 𝑎3 𝑎2 𝑎1𝑎1 𝑎2 𝑎2 𝑎2 𝑎1𝑎1 𝑎1 𝑎1 𝑎1 𝑎1

Padrão 2:

𝑎1 𝑎2 𝑎3 𝑎2 𝑎1𝑎2 𝑎4 𝑎5 𝑎4 𝑎2𝑎3 𝑎5 𝑎6 𝑎5 𝑎3𝑎2 𝑎4 𝑎5 𝑎4 𝑎2𝑎1 𝑎2 𝑎3 𝑎2 𝑎1

Page 61: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

33

FIGURA 2.2 - Formas fixas possíveis para a matriz A, no caso de R = 1 ou R = 2. Análogo para a matriz

B.

FIGURA 2.3 - Página de resultados do programa, onde situam-se ferramentas para análise do

treinamento.

Nesta seção o usuário ainda pode dispor de dois espaços para o desenho de gráficos

que demonstrem a relação entre dois dos parâmetros durante o processo, o que pode ser

interessante para as análises de funções com poucos termos independentes, como é

realizado nos casos simulados em [18].

A terceira funcionalidade da aplicação é a realização de simulações da CNN,

reproduzida na FIGURA 2.4. A maioria dos controles se assemelha aos da primeira

página, com a principal distinção sendo a possibilidade de escolha entre parâmetros

inseridos pelo usuário, importados de variáveis do ambiente do Matlab, ou aqueles

obtidos na última execução de treinamento na mesma instância. Há também um botão

que gera diretamente uma comparação entre as imagens geradas aplicando-se os dois

conjuntos de parâmetros presentes na seção.

Page 62: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

34

FIGURA 2.4 - Última página da ferramenta, que fornece opções para a simulação da CNN.

2.3 - Simulações de Funções Binárias

Os primeiros testes do treinamento foram realizados com funções binárias, o que

permitiu uma verificação simultânea tanto do algoritmo quanto do circuito da CNN

tratado na seção 1.4, com funções além das demonstradas em [15].

O aprendizado foi feito com sucesso usando imagens de tamanho 20x20, e os

coeficientes obtidos foram convertidos para sinais de corrente seguindo a relação de

25 nA por unidade. Devido às imperfeições no circuito das sinapses, para a

implementação adequada de algumas destas funções foi necessário o ajuste empírico do

valor de limiar aplicado. Os sinais referentes às entradas e aos estados das células foram

utilizados a partir de uma correspondência linear em que os pixels branco e preto

equivalem aos valores de tensão de -15mV e 15mV, respectivamente. O circuito foi

simulado na forma pré-leiaute no ambiente do pacote de ferramentas da Mentor Graphics,

que utiliza o simulador ELDO, disponível no Laboratório de Concepção de Circuitos

Integrados (LCCI) da Escola Politécnica da Universidade Federal da Bahia (UFBA),

numa versão da CNN com 10x10 células para imagens diferentes. Os resultados foram

comparados àqueles gerados pelo modelo de CNN descrito no Matlab e utilizado durante

o treinamento. Os próximos itens da seção mostram exemplos dessas funções.

Page 63: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

35

2.3.1 - Diferença Lógica (LOGDIF)

Sejam duas imagens binárias 𝐼1 e 𝐼2. Esta operação resulta numa imagem binária

contendo o complemento lógico de 𝐼1 relativo a 𝐼2, ou seja, a imagem na saída da rede

traz os elementos de cor preta existentes em 𝐼2 que são brancos em 𝐼1. A imagem I1 é

inserida como sinal de entrada da CNN e I2 como estado inicial. Além disso, a função não

necessita das condições de fronteira, já que a resposta de cada célula depende apenas dos

seus próprios sinais. Os detalhes do treinamento estão explícitos na FIGURA 2.5, com os

parâmetros já convertidos para sinais de corrente. Na FIGURA 2.6 observam-se os

resultados da simulação.

FIGURA 2.6 - Simulação da operação de diferença lógica no circuito. (a) Imagem de entrada; (b) Estado

Inicial; (c) Imagem de saída.

A (Padrão 3) B (Padrão 3) Z

0 0 0 0 0 0 -87,70 nA

0 125 nA 0 0 -87,70 nA 0

0 0 0 0 0 0

Nº de iterações 3

Tempo de execução 0,05 s

Componentes

atualizados

Taxa de

Aprendizado

B 5

Z 5

(a) (b)

(c)

Tempo de

processamento 4 µs

FIGURA 2.5 - Resultados do aprendizado para a função diferença lógica.

Page 64: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

36

2.3.2 - E Lógico (LOGAND)

A função E lógico realiza a operação de conjunção booleana entre o estado e a

entrada de cada célula. Esta função também dispensa os sinais vizinhos. O processo de

teste é ilustrado nas FIGURAS 2.7 e 2.8.

FIGURA 2.7 - Resultados do aprendizado para a função E lógico.

FIGURA 2.8 - Simulação da operação E lógico no circuito. (a) Imagem de entrada; (b) Estado Inicial; (c)

Imagem de saída.

A (Padrão 3) B (Padrão 3) Z

0 0 0 0 0 0 -65.10 nA

0 125 nA 0 0 65.10 nA 0

0 0 0 0 0 0

Nº de iterações 20

Tempo de execução 0,96 s

Componentes

atualizados

Taxa de

Aprendizado

B 5

Z 5

(a) (b)

(c)

Tempo de

processamento 3,22 µs

Page 65: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

37

2.3.3 - Ou Lógico (LOGOR)

Esta função é semelhante à anterior, diferindo apenas na operação lógica realizada,

neste caso a união. O processo de teste é ilustrado nas FIGURAS 2.9 e 2.10.

FIGURA 2.9 - Resultados do aprendizado para a função OU lógico.

FIGURA 2.10 - Simulação da operação OU lógico no circuito. (a) Imagem de entrada; (b) Estado Inicial;

(c) Imagem de saída.

A (Padrão 3) B (Padrão 3) Z

0 0 0 0 0 0 -87,70 nA

0 125 nA 0 0 -87,70 nA 0

0 0 0 0 0 0

Nº de iterações 3

Tempo de execução 0,06 s

Componentes

atualizados

Taxa de

Aprendizado

B 5

Z 5

(a) (b)

(c)

Tempo de

processamento 3,5 µs

Page 66: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

38

2.3.4 - Erosão (EROSION)

A operação erosão atua sobre a imagem inserida na entrada, mantendo os pixels

pretos cuja vizinhança forme o padrão determinado pelo elemento estruturante 𝑆𝐸, que é

aplicado na matriz B. Considerando o exemplo da FIGURA 2.11, o pixel 𝐶(𝑖, 𝑗) somente

será preto na imagem de saída caso as células destacadas também sejam negras na entrada.

O estado inicial é inteiramente zero e as condições das células de fronteira (a entrada 𝑈𝑓

e a saída 𝑌𝑓) são equivalentes à cor branca (-1). O processo de teste é ilustrado nas

FIGURAS 2.12 e 2.13.

𝑆𝐸

B

0 1 0

0 1 1

0 0 0

𝐶(𝑖 − 1, 𝑗 − 1) 𝐶(𝑖 − 1, 𝑗) 𝐶(𝑖 − 1, 𝑗 + 1)

𝐶(𝑖, 𝑗 − 1) 𝐶(𝑖, 𝑗) 𝐶(𝑖, 𝑗 + 1)

𝐶(𝑖 + 1, 𝑗 − 1) 𝐶(𝑖 + 1, 𝑗) 𝐶(𝑖 + 1, 𝑗 + 1)

FIGURA 2.11 - Exemplo da função erosão. As células destacadas devem ser pretas na

entrada para que gere uma saída preta em 𝐶(𝑖, 𝑗).

Page 67: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

39

A (Padrão 3) B (Padrão 6) Z

0 0 0 2,51 nA 21,55 nA 5,33 nA -42,26 nA

0 125 nA 0 0,96 nA 19,36 nA 20,93 nA

0 0 0 0,01 nA 3,75 nA 2,83 nA

Componentes

atualizados

Taxa de

Aprendizado

B 5

Z 5

Nº de iterações 3

Tempo de execução 0,1 s

𝑆𝐸

FIGURA 2.13 - Resultados do aprendizado para a função erosão.

(a) (b)

Limiar ajustado -28,26 nA

Tempo de

processamento 2,4 µs

FIGURA 2.12 - Simulação da operação de erosão no circuito. (a) Imagem de entrada; (b) Imagem

de saída.

Page 68: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

40

2.3.5 - Dilatação (DILATION)

A dilatação produz o inverso da erosão, e pode ser explicada da seguinte forma: em

cada pixel preto da entrada, o elemento estruturante 𝑆𝐷 é projetado e a imagem resultante

é a união das projeções geradas em toda a imagem. A forma de 𝑆𝐷 define a matriz B. As

demais condições são semelhantes à erosão. O processo de teste é ilustrado nas FIGURAS

2.14 e 2.15.

(a) (b)

Limiar ajustado 303,47 nA

Tempo de

processamento 10,5 µs

FIGURA 2.15 - Simulação da operação de dilatação no circuito. (a) Imagem de entrada; (b)

Imagem de saída.

A (Padrão 3) B (Padrão 5) Z

0 0 0 0 63,05 nA 0 208,47 nA

0 125 nA 0 63,05 nA 51,12 nA 63,05 nA

0 0 0 0 63,05 nA 0

Componentes

atualizados

Taxa de

Aprendizado

B 5

Z 5

Nº de iterações 16

Tempo de execução 0,47 s

𝑆𝐷

FIGURA 2.14 - Resultados do aprendizado para a função dilatação.

Page 69: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

41

2.3.6 - Deslocamento (SHIFT)

Esta operação move a imagem em um sentido dentre oito possíveis. Optou-se aqui

por um deslocamento para o sudoeste. O processo de teste é ilustrado nas FIGURAS 2.16

e 2.17.

FIGURA 2.16 - Resultados do aprendizado para a função deslocamento.

Como esperado, a rede conseguiu reproduzir corretamente todas as funções

mostradas nesta seção, abrindo caminho para o início da aplicação de filtros espaciais.

A (Padrão 3) B (Padrão 6) Z

0 0 0 14,62 nA 23,99 nA 161,77 nA 0

0 125 nA 0 13,94 nA 17,16 nA 38,94 nA

0 0 0 -2,89 nA 10,25 nA 14,56 nA

Nº de iterações 5

Tempo de execução 0,16 s

Componentes

atualizados

Taxa de

Aprendizado

B 5

Z 5

(a) (b)

Tempo de

processamento 10,5 µs

FIGURA 2.17 - Simulação da operação de deslocamento no circuito. (a) Imagem de entrada; (b)

Imagem de saída.

Page 70: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

42

Page 71: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

43

CAPÍTULO 3 - APLICAÇÕES EM FILTRAGEM DE IMAGENS

3.1 - Metodologia

3.1.1 - Obtenção de Imagens

O par de imagens entrada-saída necessário para aplicação do algoritmo de

aprendizado foi obtido com base na fundamentação da seção 1.3.2, a partir da utilização

do procedimento apresentado em [26] e reproduzido nesta seção.

O primeiro passo é a realização de padding na imagem a ser filtrada, 𝑓(𝑥, 𝑦), de

dimensões 𝑀𝑥𝑁, tal que a imagem resultante, 𝑓𝑝(𝑥, 𝑦) possua 𝑃𝑥𝑄 pixels, obedecendo

às relações em (1.24). Por simplicidade, optou-se pela utilização de imagens quadradas

(𝑀 = 𝑁) e admitiu-se 𝑃 = 2𝑀 e 𝑄 = 2𝑁.

A partir disso deve-se realizar a centralização da transformada da imagem,

multiplicando 𝑓𝑝(𝑥, 𝑦) por (−1)𝑥+𝑦, e calcular sua DFT, 𝐹(𝑢, 𝑣).

Em seguida, aplica-se a filtragem realizando o produto entre os elementos de

𝐹(𝑢, 𝑣) e os da função de transferência do filtro desejado, 𝐻(𝑢, 𝑣).

Com o resultado anterior, obtém-se a imagem processada 𝑔𝑝(𝑥, 𝑦), correspondendo

à imagem ampliada 𝑓𝑝(𝑥, 𝑦), aplicando a equação (3.1).

𝑔𝑝(𝑥, 𝑦) = {𝑟𝑒𝑎𝑙[ℑ−1[𝐺(𝑢, 𝑣)]}(−1)𝑥+𝑦 (3.1)

onde somente a parte real da transformada inversa é considerada, desprezando resíduos

imaginários decorrentes dos métodos numéricos envolvidos.

Finalmente, extrai-se a parte útil de 𝑔𝑝(𝑥, 𝑦), o bloco de tamanho 𝑀𝑥𝑁 formado

no quadrante superior esquerdo, obtendo-se a imagem filtrada, 𝑔(𝑥, 𝑦).

3.1.2 - Filtros

Foram selecionados para os testes tanto filtros com resposta ao impulso finita

(FIR) como filtros com resposta ao impulso infinita (IIR), estando inclusas em ambas

alternativas exemplares dos tipos de Butterworth e Gaussiano, com características passa-

baixas e passa-altas. Os filtros IIR são formados a partir das funções de transferência

Page 72: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

44

(1.25), (1.27), (1.28) e (1.29), já os filtros FIR derivam do truncamento destas funções,

aplicando uma janela retangular no domínio espacial, a qual mantém os elementos

centrais e anula o restante. Este procedimento limita a resposta do filtro, contudo

o processamento se torna mais semelhante ao da CNN, tornando mais fácil o aprendizado

para tais funções, em geral. A TABELA 3.1 resume as especificações dos filtros

simulados.

TABELA 3.1 - Filtros utilizados nas simulações.

Classificação Nome

Frequência de

corte

(ciclos/pixel)

Filtro FIR

Passa-baixas

Butterworth

Ordem 1

FIR 1 2

FIR 2 4

FIR 3 6

Gaussiano

FIR 4 2

FIR 5 4

FIR 6 6

Passa-altas

Butterworth

Ordem 1

FIR 7 5

FIR 8 7

FIR 9 9

Gaussiano

FIR 10 5

FIR 11 7

FIR 12 9

Filtro IIR

Passa-baixas

Butterworth

Ordem 1

IIR 1 2

IIR 2 4

IIR 3 6

Gaussiano

IIR 4 2

IIR 5 4

IIR 6 6

Passa-altas

Butterworth

Ordem 1

IIR 7 5

IIR 8 7

IIR 9 9

Gaussiano

IIR 10 5

IIR 11 7

IIR 12 9

3.1.3 - Treinamento

Para o treinamento da rede utilizou-se uma imagem de tamanho 100x100, exibida

na FIGURA 3.1, cujos pixels tiveram seus valores em escala de cinza gerados

aleatoriamente. A imagem de entrada foi replicada no estado inicial da rede, para acelerar

o processamento.

Page 73: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

45

A princípio, tentou-se utilizar a rede operando no modo desacoplado, realizando

a atualização apenas da matriz B no aprendizado, mas com exceção dos filtros FIR passa-

baixas, o baixo desempenho obtido exigiu o uso de todos os parâmetros da matriz A.

O limiar foi mantido nulo. O treinamento para os filtros é em geral significativamente

mais demorado do que para as funções binárias, oriundo tanto do maior tempo de resposta

da rede durante a filtragem, quanto da necessidade de mais iterações. Esta diferença foi

amplificada pelo uso de uma imagem maior, chegando a levar horas quando se permitiu

a variação de A. Na maioria dos casos, o treinamento chegou ao limite de iterações

definido devido ao fato do erro em alguns pixels se manter em valores bem grandes, acima

da tolerância. Também se notou que, a partir de um certo ponto, o desempenho do

aprendizado deixa de apresentar uma evolução significativa. Portanto, preferiu-se utilizar

um limite de passos suficientemente grande para interromper o processo logo após chegar

a este estágio, que ocorreu em momentos diferentes de acordo com o filtro em questão.

3.1.4 - Resultados

Nas próximas páginas estão os resultados, organizados de forma semelhante à seção

2.3, com a inclusão de uma comparação com as imagens processadas segundo o método

da filtragem no domínio da frequência, descrito na subseção 3.1.1, e os respectivos erros

máximo e RMS (Root mean square). O erro individual dos pixels no pior caso alcançou

aproximadamente 25% da faixa total, enquanto o erro RMS não ultrapassou 14 %.

Todavia, para a maioria dos demais filtros, os valores encontrados residiram em níveis

bem menores.

FIGURA 3.1 - Imagem utilizada para o

treinamento.

Page 74: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

46

a. FIR 1 (Passa-baixas de Butterworth, D0=2, n=1)

FIGURA 3.2 - Resultados do aprendizado para o filtro FIR 1.

FIGURA 3.3 - Simulação 1 da aplicação de FIR 1. (a) Imagem de entrada e estado inicial; (b) Imagem de

saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 41 µs

Erro RMS 13,5 %

Erro máximo 24,7 %

A (Padrão 3) B (Padrão 5) Z

16,02 nA 10,34 nA 16,02 nA 5,01 nA 5,82 nA 5,01 nA 0

10,34 nA -175 nA 10,34 nA 5,82 nA 13,85 nA 5,82 nA

16,02 nA 10,34 nA 16,02 nA 5,01 nA 5,82 nA 5,01 nA

Nº de iterações 500

Tempo de execução 7,72 h

Componente

atualizado

Taxa de

Aprendizado

As 0,5

B 10

Page 75: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

47

FIGURA 3.4 - Simulação 2 da aplicação de FIR 1. (a) Imagem de entrada e estado inicial; (b) Imagem de

saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 46 µs

Erro RMS 9,45 %

Erro máximo 17,6 %

Page 76: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

48

b. FIR 2 (Passa-baixas de Butterworth, D0=4, n=1)

FIGURA 3.5 - Resultados do aprendizado para o filtro FIR 2.

FIGURA 3.6 - Simulação 1 da aplicação de FIR 2. (a) Imagem de entrada e estado inicial; (b) Imagem de

saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 1,45 µs

Erro RMS 7,22 %

Erro máximo 11,8 %

A (Padrão 3) B (Padrão 5) Z

0 0 0 9,36 nA 15,8 nA 9,36 nA 0

0 -175 nA 0 15,8 nA 48,01 nA 15,8 nA

0 0 0 9,36 nA 15,8 nA 9,36 nA

Nº de iterações 95

Tempo de execução 0.093 s

Componente

atualizado

Taxa de

Aprendizado

B 10

Page 77: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

49

FIGURA 3.7 - Simulação 2 da aplicação de FIR 2. (a) Imagem de entrada e estado inicial; (b) Imagem de

saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 28 µs

Erro RMS 7,2 %

Erro máximo 14,9 %

Page 78: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

50

c. FIR 3 (Passa-baixas de Butterworth, D0=6, n=1)

FIGURA 3.8 - Resultados do aprendizado para o filtro FIR 3.

FIGURA 3.9 - Simulação 1 da aplicação de FIR 3. (a) Imagem de entrada e estado inicial; (b) Imagem de

saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 0,89 µs

Erro RMS 2,34 %

Erro máximo 6,27 %

A (Padrão 3) B (Padrão 5) Z

0 0 0 6,7 nA 16,53 nA 6,7 nA 0

0 -175 nA 0 16,53 nA 74,21 nA 16,53 nA

0 0 0 6,7 nA 16,53 nA 6,7 nA

Nº de iterações 99

Tempo de execução 0.093 s

Componente

atualizado

Taxa de

Aprendizado

B 10

Page 79: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

51

FIGURA 3.10 - Simulação 2 da aplicação de FIR 3. (a) Imagem de entrada e estado inicial; (b) Imagem

de saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 37,5 µs

Erro RMS 2,6 %

Erro máximo 5,88 %

Page 80: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

52

d. FIR 4 (Passa-baixas gaussiano, D0=2)

FIGURA 3.11 - Resultados do aprendizado para o filtro FIR 4.

FIGURA 3.12 - Simulação 1 da aplicação de FIR 4. (a) Imagem de entrada e estado inicial; (b) Imagem

de saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 42 µs

Erro RMS 12,2 %

Erro máximo 22,4 %

A (Padrão 3) B (Padrão 5) Z

16,52 nA 10,82 nA 16,52 nA 6,95 nA 6,08 nA 6,95 nA 0

10,82 nA -175 nA 10,82 nA 6,08 nA 4,91 nA 6,08 nA

16,52 nA 10,82 nA 16,52 nA 6,95 nA 6,08 nA 6,95 nA

Nº de iterações 500

Tempo de execução 1,5 h

Componente

atualizado

Taxa de

Aprendizado

As 0,5

B 10

Page 81: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

53

FIGURA 3.13 - Simulação 2 da aplicação de FIR 4. (a) Imagem de entrada e estado inicial; (b) Imagem

de saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 48,5 µs

Erro RMS 8,1 %

Erro máximo 14,9 %

Page 82: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

54

e. FIR 5 (Passa-baixas gaussiano, D0=4)

FIGURA 3.14 - Resultados do aprendizado para o filtro FIR 5.

FIGURA 3.15 - Simulação 1 da aplicação de FIR 5. (a) Imagem de entrada e estado inicial; (b) Imagem

de saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 18,5 µs

Erro RMS 2,06 %

Erro máximo 4,31 %

A (Padrão 3) B (Padrão 5) Z

0 0 0 10,24 nA 20,58 nA 10,24 nA 0

0 -175 nA 0 20,58 nA 42,95 nA 20,58 nA

0 0 0 10,24 nA 20,58 nA 10,24 nA

Nº de iterações 99

Tempo de execução 0.093 s

Componente

atualizado

Taxa de

Aprendizado

B 10

Page 83: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

55

FIGURA 3.16 - Simulação 2 da aplicação de FIR 5. (a) Imagem de entrada e estado inicial; (b) Imagem

de saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 38 µs

Erro RMS 2,22 %

Erro máximo 4,71 %

Page 84: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

56

f. FIR 6 (Passa-baixas gaussiano, D0=6)

FIGURA 3.17 - Resultados do aprendizado para o filtro FIR 6.

FIGURA 3.18 - Simulação 1 da aplicação de FIR 6. (a) Imagem de entrada e estado inicial; (b) Imagem

de saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 2 µs

Erro RMS 6,12 %

Erro máximo 12,2 %

A (Padrão 3) B (Padrão 5) Z

0 0 0 4,69 nA 20,14 nA 4,69 nA 0

0 -175 nA 0 20,14 nA 80,91 nA 20,14 nA

0 0 0 4,69 nA 20,14 nA 4,69 nA

Nº de iterações 97

Tempo de execução 0.093 s

Componente

atualizado

Taxa de

Aprendizado

B 10

Page 85: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

57

FIGURA 3.19 - Simulação 2 da aplicação de FIR 6. (a) Imagem de entrada e estado inicial; (b) Imagem

de saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 38 µs

Erro RMS 6,37 %

Erro máximo 9,41 %

Page 86: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

58

g. FIR 7 (Passa-altas de Butterworth, D0=5, n=1)

FIGURA 3.20 - Resultados do aprendizado para o filtro FIR 7.

FIGURA 3.21 - Simulação 1 da aplicação de FIR 7. (a) Imagem de entrada e estado inicial; (b) Imagem

de saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 45 µs

Erro RMS 9,88 %

Erro máximo 25,5 %

A (Padrão 5) B (Padrão 5) Z

37,22 nA 10,91 nA 37,22 nA -18,18 nA -12,41 nA -18,18 nA 0

10,91 nA -175 nA 10,91 nA -12,41 nA 104,6 nA -12,41 nA

37,22 nA 10,91 nA 37,22 nA -18,18 nA -12,41 nA -18,18 nA

Nº de iterações 500

Tempo de execução 4,38 h

Componentes

atualizados

Taxa de

Aprendizado

As 10

B 10

Page 87: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

59

FIGURA 3.22 - Simulação 2 da aplicação de FIR 7. (a) Imagem de entrada e estado inicial; (b) Imagem

de saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 90,5 µs

Erro RMS 7,51 %

Erro máximo 23,1 %

Page 88: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

60

h. FIR 8 (Passa-altas de Butterworth, D0=7, n=1)

FIGURA 3.23 - Resultados do aprendizado para o filtro FIR 8.

FIGURA 3.24 - Simulação 1 da aplicação de FIR 8. (a) Imagem de entrada e estado inicial; (b) Imagem

de saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 52,5 µs

Erro RMS 6,49 %

Erro máximo 16,9 %

A (Padrão 5) B (Padrão 5) Z

28,10 nA 21,08 nA 28,10 nA -9,89 nA -16,14 nA -9,89 nA 0

21,08 nA -175 nA 21,08 nA -16,14 nA 89,14 nA -16,14 nA

28,10 nA 21,08 nA 28,10 nA -9,89 nA -16,14 nA -9,89 nA

Nº de iterações 500

Tempo de execução 11,28 h

Componentes

atualizados

Taxa de

Aprendizado

As 10

B 10

Page 89: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

61

FIGURA 3.25 - Simulação 2 da aplicação de FIR 8. (a) Imagem de entrada e estado inicial; (b) Imagem

de saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 73 µs

Erro RMS 6,54 %

Erro máximo 21,2 %

Page 90: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

62

i. FIR 9 (Passa-altas de Butterworth, D0=9, n=1)

FIGURA 3.26 - Resultados do aprendizado para o filtro FIR 9.

FIGURA 3.27 - Simulação 1 da aplicação de FIR 9. (a) Imagem de entrada e estado inicial; (b) Imagem

de saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 52,5 µs

Erro RMS 5,16 %

Erro máximo 13,7 %

A (Padrão 5) B (Padrão 5) Z

28,44 nA 19,78 nA 28,44 nA -6,95 nA -13,32 nA -6,95 nA 0

19,78 nA -175 nA 19,78 nA -13,32 nA 66,73 nA -13,32 nA

28,44 nA 19,78 nA 28,44 nA -6,95 nA -13,32 nA -6,95 nA

Nº de iterações 500

Tempo de execução 8,59 h

Componentes

atualizados

Taxa de

Aprendizado

As 10

B 10

Page 91: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

63

FIGURA 3.28 - Simulação 2 da aplicação de FIR 9. (a) Imagem de entrada e estado inicial; (b) Imagem

de saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 65,5 µs

Erro RMS 4,57 %

Erro máximo 14,9 %

Page 92: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

64

j. FIR 10 (Passa-altas gaussiano, D0=5)

FIGURA 3.29 - Resultados do aprendizado para o filtro FIR 10.

FIGURA 3.30 - Simulação 1 da aplicação de FIR 10. (a) Imagem de entrada e estado inicial; (b) Imagem

de saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 46,5 µs

Erro RMS 7,36 %

Erro máximo 18,8 %

A (Padrão 5) B (Padrão 5) Z

32,02 nA 16,33 nA 32,02 nA -11,93 nA -15,15 nA -11,93 nA 0

16,33 nA -175 nA 16,33 nA -15,15 nA 86,29 nA -15,15 nA

32,02 nA 16,33 nA 32,02 nA -11,93 nA -15,15 nA -11,93 nA

Nº de iterações 500

Tempo de execução 6,73 h

Componentes

atualizados

Taxa de

Aprendizado

As 10

B 10

Page 93: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

65

FIGURA 3.31 - Simulação 2 da aplicação de FIR 10. (a) Imagem de entrada e estado inicial; (b) Imagem

de saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 67,5 µs

Erro RMS 5,44 %

Erro máximo 16,1 %

Page 94: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

66

k. FIR 11 (Passa-altas gaussiano, D0=7)

FIGURA 3.32 - Resultados do aprendizado para o filtro FIR 11.

FIGURA 3.33 - Simulação 1 da aplicação de FIR 11. (a) Imagem de entrada e estado inicial; (b) Imagem

de saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 63 µs

Erro RMS 6,49 %

Erro máximo 16,9 %

A (Padrão 5) B (Padrão 5) Z

22,04 nA 27,76 nA 22,04 nA -4,97 nA -18,37 nA -4,97 nA 0

27,76 nA -175 nA 27,76 nA -18,37 nA 75,58 nA -18,37 nA

22,04 nA 27,76 nA 22,04 nA -4,97 nA -18,37 nA -4,97 nA

Nº de iterações 500

Tempo de execução 13,12 h

Componentes

atualizados

Taxa de

Aprendizado

As 10

B 10

Page 95: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

67

FIGURA 3.34 - Simulação 2 da aplicação de FIR 11. (a) Imagem de entrada e estado inicial; (b) Imagem

de saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 138 µs

Erro RMS 3,86 %

Erro máximo 11,4 %

Page 96: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

68

l. FIR 12 (Passa-altas gaussiano, D0=9)

FIGURA 3.35 - Resultados do aprendizado para o filtro FIR 12.

FIGURA 3.36 - Simulação 1 da aplicação de FIR 12. (a) Imagem de entrada e estado inicial; (b) Imagem

de saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 56,5 µs

Erro RMS 3,41 %

Erro máximo 9,02 %

A (Padrão 5) B (Padrão 5) Z

23,58 nA 24,63 nA 23,58 nA -3,14 nA -13,52 nA -3,14 nA 0

24,63 nA -175 nA 24,63 nA -13,52 nA 52,86 nA -13,52 nA

23,58 nA 24,63 nA 23,58 nA -3,14 nA -13,52 nA -3,14 nA

Nº de iterações 500

Tempo de execução 10,55 h

Componentes

atualizados

Taxa de

Aprendizado

As 10

B 10

Page 97: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

69

FIGURA 3.37 - Simulação 2 da aplicação de FIR 12. (a) Imagem de entrada e estado inicial; (b) Imagem

de saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 92 µs

Erro RMS 2,85 %

Erro máximo 7,45 %

Page 98: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

70

m. IIR 1 (Passa-baixas de Butterworth, D0=2, n=1)

FIGURA 3.38 - Resultados do aprendizado para o filtro IIR 1.

FIGURA 3.39 - Simulação 1 da aplicação de IIR 1. (a) Imagem de entrada e estado inicial; (b) Imagem de

saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 44 µs

Erro RMS 5,45 %

Erro máximo 9,8 %

A (Padrão 5) B (Padrão 5) Z

18,04 nA 12,92 nA 18,04 nA 1,02 nA 3,98 nA 1,02 nA 0

12,92 nA -175 nA 12,92 nA 3,98 nA 14,66 nA 3,98 nA

18,04 nA 12,92 nA 18,04 nA 1,02 nA 3,98 nA 1,02 nA

Nº de iterações 487

Tempo de execução 25,76 min

Componente

atualizado

Taxa de

Aprendizado

As 10

B 10

Page 99: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

71

FIGURA 3.40 - Simulação 2 da aplicação de IIR 1. (a) Imagem de entrada e estado inicial; (b) Imagem de

saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 84,5 µs

Erro RMS 7,09 %

Erro máximo 12,5 %

Page 100: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

72

n. IIR 2 (Passa-baixas de Butterworth, D0=4, n=1)

FIGURA 3.41 - Resultados do aprendizado para o filtro IIR 2.

FIGURA 3.42 - Simulação 1 da aplicação de IIR 2. (a) Imagem de entrada e estado inicial; (b) Imagem de

saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 2 µs

Erro RMS 2,56 %

Erro máximo 5,88 %

A (Padrão 5) B (Padrão 5) Z

5,01 nA 5,03 nA 5,01 nA 5,69 nA 12,19 nA 5,69 nA 0

5,03 nA -175 nA 5,03 nA 12,19 nA 42,83 nA 12,19 nA

5,01 nA 5,03 nA 5,01 nA 5,69 nA 12,19 nA 5,69 nA

Nº de iterações 11

Tempo de execução 15,53 s

Componente

atualizado

Taxa de

Aprendizado

As 10

B 10

Page 101: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

73

FIGURA 3.43 - Simulação 2 da aplicação de IIR 2. (a) Imagem de entrada e estado inicial; (b) Imagem de

saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 41 µs

Erro RMS 3,73 %

Erro máximo 6,67 %

Page 102: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

74

o. IIR 3 (Passa-baixas de Butterworth, D0=6, n=1)

FIGURA 3.44 - Resultados do aprendizado para o filtro IIR 3.

FIGURA 3.45 - Simulação 1 da aplicação de IIR 3. (a) Imagem de entrada e estado inicial; (b) Imagem de

saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 2 µs

Erro RMS 4,56 %

Erro máximo 11 %

A (Padrão 5) B (Padrão 5) Z

3,3 nA 4,97 nA 3,3 nA 4,3 nA 12,74 nA 4,3 nA 0

4,97 nA -175 nA 4,97 nA 12,74 nA 61,8 nA 12,74 nA

3,3 nA 4,97 nA 3,3 nA 4,3 nA 12,74 nA 4,3 nA

Nº de iterações 8

Tempo de execução 10,83 s

Componente

atualizado

Taxa de

Aprendizado

As 10

B 10

Page 103: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

75

FIGURA 3.46 - Simulação 2 da aplicação de IIR 3. (a) Imagem de entrada e estado inicial; (b) Imagem de

saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 40,5 µs

Erro RMS 5,38 %

Erro máximo 10,6 %

Page 104: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

76

p. IIR 4 (Passa-baixas gaussiano, D0=2)

FIGURA 3.47 - Resultados do aprendizado para o filtro IIR 4.

FIGURA 3.48 - Simulação 1 da aplicação de IIR 4. (a) Imagem de entrada e estado inicial; (b) Imagem de

saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 42,5 µs

Erro RMS 7,24 %

Erro máximo 11,8 %

A (Padrão 5) B (Padrão 5) Z

16,66 nA 13,41 nA 16,66 nA 3,4 nA 4,64 nA 3,4 nA 0

13,41 nA -175 nA 13,41 nA 4,64 nA 5,94 nA 4,64 nA

16,66 nA 13,41 nA 16,66 nA 3,4 nA 4,64 nA 3,4 nA

Nº de iterações 500

Tempo de execução 25,42 min

Componente

atualizado

Taxa de

Aprendizado

A 10

B 10

Page 105: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

77

FIGURA 3.49 - Simulação 2 da aplicação de IIR 4. (a) Imagem de entrada e estado inicial; (b) Imagem de

saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

5 (a) (b)

(c)

Tempo de

processamento 72 µs

Erro RMS 5,46 %

Erro máximo 9,8 %

Page 106: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

78

q. IIR 5 (Passa-baixas gaussiano, D0=4)

FIGURA 3.50 - Resultados do aprendizado para o filtro IIR 5.

FIGURA 3.51 - Simulação 1 da aplicação de IIR 5. (a) Imagem de entrada e estado inicial; (b) Imagem de

saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 3 µs

Erro RMS 4,21 %

Erro máximo 8,63 %

A (Padrão 5) B (Padrão 5) Z

4,04 nA 4,53 nA 4,04 nA 7,5 nA 15,65 nA 7,5 nA 0

4,53 nA -175 nA 4,53 nA 15,65 nA 33,37 nA 15,65 nA

4,04 nA 4,53 nA 4,04 nA 7,5 nA 15,65 nA 7,5 nA

Nº de iterações 7

Tempo de execução 9,66 s

Componente

atualizado

Taxa de

Aprendizado

A 10

B 10

Page 107: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

79

FIGURA 3.52 - Simulação 2 da aplicação de IIR 5. (a) Imagem de entrada e estado inicial; (b) Imagem de

saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 41,5 µs

Erro RMS 5,2 %

Erro máximo 9,8 %

Page 108: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

80

r. IIR 6 (Passa-baixas gaussiano, D0=6)

FIGURA 3.53 - Resultados do aprendizado para o filtro IIR 6.

FIGURA 3.54 - Simulação 1 da aplicação de IIR 6. (a) Imagem de entrada e estado inicial; (b) Imagem de

saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 26 µs

Erro RMS 6,36 %

Erro máximo 11 %

A (Padrão 5) B (Padrão 5) Z

1,85 nA 6,08 nA 1,85 nA 2,52 nA 16,54 nA 2,52 nA 0

6,08 nA -175 nA 6,08 nA 16,54 nA 75,68 nA 16,54 nA

1,85 nA 6,08 nA 1,85 nA 2,52 nA 16,54 nA 2,52 nA

Nº de iterações 14

Tempo de execução 19s

Componente

atualizado

Taxa de

Aprendizado

A 10

B 10

Page 109: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

81

FIGURA 3.55 - Simulação 2 da aplicação de IIR 6. (a) Imagem de entrada e estado inicial; (b) Imagem de

saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 41,5 µs

Erro RMS 6,86 %

Erro máximo 11,8 %

Page 110: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

82

s. IIR 7 (Passa-altas de Butterworth, D0=5, n=1)

FIGURA 3.56 - Resultados do aprendizado para o filtro IIR 7.

FIGURA 3.57 - Simulação 1 da aplicação de IIR 7. (a) Imagem de entrada e estado inicial; (b) Imagem de

saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 49,5 µs

Erro RMS 6,44 %

Erro máximo 19,2 %

A (Padrão 5) B (Padrão 5) Z

28,13 nA 20,43 nA 28,13 nA -11,43 nA -14,64 nA -11,43 nA 0

20,43 nA -175 nA 20,43 nA -14,64 nA 91,13 nA -14,64 nA

28,13 nA 20,43 nA 28,13 nA -11,43 nA -14,64 nA -11,43 nA

Nº de iterações 500

Tempo de execução 5,43 h

Componente

atualizado

Taxa de

Aprendizado

As 10

B 10

Page 111: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

83

FIGURA 3.58 - Simulação 2 da aplicação de IIR 7. (a) Imagem de entrada e estado inicial; (b) Imagem de

saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 71,5 µs

Erro RMS 5,23 %

Erro máximo 14,1 %

Page 112: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

84

t. IIR 8 (Passa-altas de Butterworth, D0=7, n=1)

FIGURA 3.59 - Resultados do aprendizado para o filtro IIR 8.

FIGURA 3.60 - Simulação 1 da aplicação de IIR 8. (a) Imagem de entrada e estado inicial; (b) Imagem de

saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 46,5 µs

Erro RMS 6,32 %

Erro máximo 15,3 %

A (Padrão 5) B (Padrão 5) Z

31,82 nA 16,72 nA 31,82 nA -10,4 nA -13,58 nA -10,4 nA 0

16,72 nA -175 nA 16,72 nA -13,58 nA 79,83 nA -13,58 nA

31,82 nA 16,72 nA 31,82 nA -10,4 nA -13,58 nA -10,4 nA

Nº de iterações 500

Tempo de execução 7,57 h

Componente

atualizado

Taxa de

Aprendizado

As 10

B 10

Page 113: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

85

FIGURA 3.61 - Simulação 2 da aplicação de IIR 8. (a) Imagem de entrada e estado inicial; (b) Imagem de

saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 59 µs

Erro RMS 5,25 %

Erro máximo 17,6 %

Page 114: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

86

u. IIR 9 (Passa-altas de Butterworth, D0=9, n=1)

FIGURA 3.62 - Resultados do aprendizado para o filtro IIR 9.

FIGURA 3.63 - Simulação 1 da aplicação de IIR 9. (a) Imagem de entrada e estado inicial; (b) Imagem de

saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 54,5 µs

Erro RMS 4 %

Erro máximo 10,2 %

A (Padrão 5) B (Padrão 5) Z

22,7 nA 25,73 nA 22,7 nA -5,75 nA -15,48 nA -5,75 nA 0

25,73 nA -175 nA 25,73 nA -15,48 nA 71,24 nA -15,48 nA

22,7 nA 25,73 nA 22,7 nA -5,75 nA -15,48 nA -5,75 nA

Nº de iterações 500

Tempo de execução 6,05 h

Componente

atualizado

Taxa de

Aprendizado

As 10

B 10

Page 115: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

87

FIGURA 3.64 - Simulação 2 da aplicação de IIR 9. (a) Imagem de entrada e estado inicial; (b) Imagem de

saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 72 µs

Erro RMS 4,85 %

Erro máximo 16,9 %

Page 116: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

88

v. IIR 10 (Passa-altas gaussiano, D0=5)

FIGURA 3.65 - Resultados do aprendizado para o filtro IIR 10.

FIGURA 3.66 - Simulação 1 da aplicação de IIR 10. (a) Imagem de entrada e estado inicial; (b) Imagem

de saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 56,5 µs

Erro RMS 7,64 %

Erro máximo 18,4 %

A (Padrão 5) B (Padrão 5) Z

27,55 nA 22,9 nA 27,55 nA -11,59 nA -20,3 nA -11,59 nA 0

22,9 nA -175 nA 22,9 nA -20,3 nA 104,38 nA -20,3 nA

27,55 nA 22,9 nA 27,55 nA -11,59 nA -20,3 nA -11,59 nA

Nº de iterações 500

Tempo de execução 6,51 h

Componente

atualizado

Taxa de

Aprendizado

As 10

B 10

Page 117: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

89

FIGURA 3.67 - Simulação 2 da aplicação de IIR 10. (a) Imagem de entrada e estado inicial; (b) Imagem

de saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 80,5 µs

Erro RMS 5,52 %

Erro máximo 18 %

Page 118: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

90

w. IIR 11 (Passa-altas gaussiano, D0=7)

FIGURA 3.68 - Resultados do aprendizado para o filtro IIR 11.

FIGURA 3.69 - Simulação 1 da aplicação de IIR 11. (a) Imagem de entrada e estado inicial; (b) Imagem

de saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 52 µs

Erro RMS 5,08 %

Erro máximo 12,9 %

A (Padrão 5) B (Padrão 5) Z

26,86 nA 21,07 nA 26,86 nA -6,52 nA -16,1 nA -6,52 nA 0

21,07 nA -175 nA 21,07 nA -16,1 nA 70,46 nA -16,1 nA

26,86 nA 21,07 nA 26,86 nA -6,52 nA -16,1 nA -6,52 nA

Nº de iterações 500

Tempo de execução 10,39 h

Componente

atualizado

Taxa de

Aprendizado

As 10

B 10

Page 119: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

91

FIGURA 3.70 - Simulação 2 da aplicação de IIR 11. (a) Imagem de entrada e estado inicial; (b) Imagem

de saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 60,5 µs

Erro RMS 4,75 %

Erro máximo 15,7 %

Page 120: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

92

x. IIR 12 (Passa-altas gaussiano, D0=9)

FIGURA 3.71 - Resultados do aprendizado para o filtro IIR 12.

FIGURA 3.72 – Simulação 1 da aplicação de IIR 12. (a) Imagem de entrada e estado inicial; (b) Imagem

de saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

(a) (b)

(c)

Tempo de

processamento 54 µs

Erro RMS 3,71 %

Erro máximo 11,8 %

A (Padrão 5) B (Padrão 5) Z

17,05 nA 30,47 nA 17,05 nA -2,05 nA -15,81 nA -2,05 nA 0

30,47 nA -175 nA 30,47 nA -15,81 nA 57,6 nA -15,81 nA

17,05 nA 30,47 nA 17,05 nA -2,05 nA -15,81 nA -2,05 nA

Nº de iterações 500

Tempo de execução 7,39 h

Componente

atualizado

Taxa de

Aprendizado

As 10

B 10

Page 121: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

93

FIGURA 3.73 - Simulação 2 da aplicação de IIR 12. (a) Imagem de entrada e estado inicial; (b) Imagem

de saída da CNN. (c) Imagem gerada pelo método da filtragem em frequência.

As TABELAS 3.1 e 3.2 resumem os resultados das simulações mostradas

anteriormente, contendo os filtros passa-baixas e passa-altas, respectivamente.

Os filtros FIR 2, FIR 3, FIR 5 e FIR 6 foram os únicos cujo treinamento teve um

bom desempenho utilizando apenas a matriz 𝐵. Uma constatação importante é que o

maior fator que pesou na duração da execução do CMA foi a simulação da CNN, que é

executada 1 vez em cada iteração. Isto ocorre pelo fato da varredura passar por regiões

onde a rede necessita de muito mais tempo para chegar à estabilidade. Como este

fenômeno aconteceu com menos frequência no aprendizado de funções onde as redes são

desacopladas (matriz 𝐴 nula, com exceção do elemento central), houve um menor efeito

no processo. Além disso, com o menor número de parâmetros variáveis, o algoritmo tende

a necessitar de menos iterações. Essa combinação de condições resultou num baixo tempo

de processamento para os filtros citados, em comparação aos demais.

Para os filtros passa-baixas, percebe-se que o erro máximo em geral esteve próximo

de 10%, enquanto o erro RMS manteve-se entre 2 e 7%. As exceções são os filtros FIR 1

e FIR 4, que apresentaram uma imprecisão maior.

(a) (b)

(c)

Tempo de

processamento 67,5 µs

Erro RMS 2,74 %

Erro máximo 9,02 %

Page 122: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

94

Uma análise da segunda tabela revela que houve um desempenho inferior para

os filtros passa-altas do ponto de vista do erro máximo, tendo este erro na maior parte dos

exemplos chegado próximo a 20 %, com destaque para FIR 7, cujos valores do erro

máximo foram mais acentuados que os demais (25,5 % e 23,1 % nas simulações 1 e 2,

respectivamente). Contudo, o erro RMS se manteve próximo aos correspondentes aos

filtros passa-baixas. Nota-se ainda que a segunda imagem foi melhor processada por

quase todos os filtros passa-altas, exceto FIR 8 e IIR 9.

Page 123: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

95

TABELA 3.2 – Resultados dos filtros passa-baixas.

CLASSIFICAÇÃO NOME D

0

(cic/px)

PARAMETROS

TREINADOS

NÚMERO DE

ITERAÇÕES

TEMPO DO

TREINAMENTO SIMULAÇÃO

ERRO MÁX

(%)

ERRO RMS

(%)

FIR

Butterworth

Ordem 1

FIR 1 2 As, B 500 7,72 h 1 24,7 13,5

2 17,6 9,45

FIR 2 4 B 95 0,093 s 1 11,8 7,22

2 14,9 7,2

FIR 3 6 B 99 0,093 s 1 6,27 2,34

2 5,88 2,6

Gaussiano

FIR 4 2 As, B 500 1,5 h 1 22,4 12,2

2 14,9 8,2

FIR 5 4 B 99 0,093 s 1 4,31 2,06

2 4,71 2,22

FIR 6 6 B 97 0,093 s 1 12,2 6,12

2 9,41 6,37

IIR

Butterworth

Ordem 1

IIR 1 2 As, B 487 25,76 min 1 9,8 5,45

2 12,5 7,09

IIR 2 4 As, B 11 15,53 s 1 5,88 2,56

2 6,67 3,73

IIR 3 6 As, B 8 10,83 s 1 11 4,56

2 10,6 5,38

Gaussiano

IIR 4 2 As, B 500 25,42 min 1 11,8 7,24

2 9,8 5,46

IIR 5 4 As, B 7 9,66 s 1 8,63 4,21

2 9,8 5,2

IIR 6 6 As, B 14 19 s 1 11 6,36

2 11,8 6,86

Page 124: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

96

TABELA 3.3 – Resultados dos filtros passa-altas.

CLASSIFICAÇÃO NOME D

0

(cic/px)

PARAMETROS

TREINADOS

NÚMERO DE

ITERAÇÕES

TEMPO DO

TREINAMENTO SIMULAÇÃO

ERRO MÁX

(%)

ERRO RMS

(%)

FIR

Butterworth

Ordem 1

FIR 7 5 As, B 500 4,38 h 1 25,5 9,88

2 23,1 7,51

FIR 8 7 As, B 500 11,28 h 1 16,9 6,49

2 21,2 6,54

FIR 9 9 As, B 500 8,59 h 1 13,7 5,16

2 14,9 4,57

Gaussiano

FIR 10 5 As, B 500 6,73 h 1 18,8 7,36

2 16,1 5,44

FIR 11 7 As, B 500 13,12 h 1 16,9 6,49

2 11,4 3,86

FIR 12 9 As, B 500 10,55 h 1 9,02 3,41

2 7,45 2,85

IIR

Butterworth

Ordem 1

IIR 7 5 As, B 500 5,43 h 1 19,2 6,44

2 14,1 5,23

IIR 8 7 As, B 500 7,57 h 1 15,3 6,32

2 17,6 5,25

IIR 9 9 As, B 500 6,05 h 1 10,2 4

2 16,9 4,85

Gaussiano

IIR 10 5 As, B 500 6,51 h 1 18,4 7,64

2 18 5,52

IIR 11 7 As, B 500 10,39 h 1 12,9 5,08

2 15,7 4,75

IIR 12 9 As, B 500 7,39 h 1 11,8 3,71

2 9,02 2,74

Page 125: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

97

CONCLUSÃO

A grande importância da filtragem para o campo de processamento de imagens

torna este tópico algo a ser considerado no projeto de sistemas visuais, onde grande parte

das aplicações pode tirar vantagem da ampla variedade de funções que os filtros podem

desempenhar. No caso específico de próteses retinianas, a filtragem é um integrante bem

participativo do complexo processamento que se deseja reproduzir. Sendo assim, a

análise desta capacidade se torna um valioso indicador do desempenho e da versatilidade

do sistema.

No contexto da CNN (Cellular Neural Network), tal avaliação também se torna

imprescindível ao envolver operações que trabalham com toda a faixa dinâmica da saída,

explorando o seu poder de processamento da forma mais completa.

Com este objetivo, o presente trabalho consistiu na aplicação da filtragem por meio

da CNN analógica em tecnologia CMOS concebida em [12] e [15], cujos testes anteriores

haviam abordado apenas funções binárias. Devido à falta de coeficientes conhecidos para

configurar a rede, necessitou-se a princípio da obtenção empírica destes parâmetros para

cada filtro desejado, por meio de treinamento da rede. Para isso, desenvolveu-se uma

versão do CMA (Center of Mass Algorithm), originalmente descrito em [18],

incorporando as alterações explicitadas na seção 2.1 e implementou-se esta versão

melhorada em conjunto com a interface gráfica detalhada na seção 2.2, para realizar o

treinamento da rede a partir de pares entrada-saída. Obteve-se bons resultados no caso de

funções clássicas que não haviam ainda sido testadas na CNN, em que a convergência foi

rápida e precisa.

Contudo, foi nas tentativas de aprendizado dos filtros que a técnica foi realmente

exigida, requerendo um número muito maior de iterações, além de enfrentar

uma dificuldade pelo fato das limitações da rede impedir uma correspondência exata com

a filtragem pelos métodos computacionais convencionais. De qualquer modo, houve um

desempenho satisfatório, que permitiu uma avaliação mais ampla do circuito e abriu

caminho para desenvolvimentos futuros.

Uma forma de melhorar o treinamento é a utilização de outras abordagens.

O método baseado em algoritmo genético é um bom candidato, sendo bem interessante a

Page 126: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

98

possibilidade de construir uma versão híbrida em conjunto com o CMA, desfrutando das

vantagens de ambas as técnicas.

Por outro lado, o circuito da CNN pode ter seu desempenho melhorado de maneiras

variadas, como o uso de uma vizinhança com raio maior, a inclusão de uma ou mais

camadas adicionais sobrepostas à rede existente, permitindo que cada uma realize uma

parte distinta do processamento, ou até mesmo uma mudança para uma máquina

universal, cuja programabilidade pode viabilizar a execução de operações diferentes em

sequência, reutilizando as mesmas células.

Page 127: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

99

TRABALHO PUBLICADO

ANDRADE, F. S.; SOUZA, Y. O. G.; SANTANA, E. P.; CUNHA, A. I. Image

Filtering in a CMOS Analog CNN. Proceedings of the 2015 IEEE 6th Latin

American Symposium on Circuits and Systems, 2015, pp. 1-4.

Page 128: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

100

Page 129: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

101

REFERÊNCIAS

1. NIU, S.; SHEN, J.; LIANG, C.; ZHOU, L.; LI, B. Research on Human Retinal Cell

Image Restoration. Proceedings of the 3rd International Congress on Image and

Signal.

2. PLEBE, A.; GALLO, G. Filtering Echocardiographic Image Sequences in

Frequency Domain. Proceedings of the 2nd International Symposium on Image and

Signal Processing and Analysis, 2001, pp. 238-243.

3. ZAGHLOUL, K. A.; BOAHEN K. A silicon retina that reproduces signals in the

optic nerve. Journal of Neural Engineering, 2006, vol. 3, pp. 257-267.

4. KUMAR, B. V. K. V.; SAVVIDES, M.; VENKATARAMAN, K.; XIE, C. Spatial

Frequency Domain Image Processing for Biometric Recognition. Proceedings of

2002 International Conference on Image Processing, 2002, vol.1, pp. I-53-I-56.

5. KAMEI, T.; MIZOGUCH, M. Image Filter Design for Fingerprint Enhancement.

Proceedings of International Symposium on Computer Vision, 1995, pp. 109-114.

6. ZAGHLOUL, K. A. A Silicon Implementation of a Novel Model for Retinal

Processing. 2009. Thesis (PhD) - University of Pennsylvania. Pennsylvania.

7. GOLLISCH, T.; MEISTER, M. L. Eye Smarter Than Scientists Believe: Neural

Computations in Circuits of the Retina. Neuron, n. 65, p. 150–164, 2010.

8. RODRÍGUEZ-VÁZQUEZ, A. E. A. Current-mode techniques for the

implementation of continuous and discrete time cellular neural networks. IEEE

Transactions on Circuits and Systems II: Analog and Digital Signal Processing, v.

40, n. 3, p. 132–146, 1993.

9. WU, C. Y.; CHENG, C. H. A Learnable Cellular Neural Network Structure with

Ratio Memory for Image Processing. IEEE Transactions on Circuits and Systems

I: Fundamental Theory and Applications, v. 49, n. 12, p. 1713-1723, 2002.

10. BÁLYA, D.; ROSKA, B.; ROSKA, T.; WERBLIN, F. S. A CNN framework for

modeling parallel processing in a mammalian retina. International Journal of

Circuit Theory and Applications, v. 30, n. 2‐3, p. 363-393, 2002.

11. BÁLYA, D., PETRÁS, I.; ROSKA, T., CARMONA, R.; VÁZQUEZ, A. R.

Implementing the multilayer retinal model on the complex-cell CNN-UM chip

Page 130: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

102

prototype. International Journal of Bifurcation and Chaos, v. 14, n. 02, p. 427-451,

2004.

12. SANTANA, E. P.; FREIRE, R. C.; CUNHA, A. I. A. A compact low-power CMOS

analog FSR model-based CNN. Journal of Integrated Circuits and Systems, vol.7,

no 1, 2012, pp. 72-80.

13. CHUA, L. O.; YANG, L. Cellular neural networks: theory. IEEE Transactions on

Circuits and Systems, v. 35, n. 10, p. 1257–1290, out. 1988.

14. CHUA, L. O.; ROSKA, T. Cellular Neural Networks and Visual Computing:

Foundations and Applications. Cambridge: Cambridge University Press, 2002.

15. SANTANA, E. P. Circuitos Analógicos em Tecnologia CMOS para

Implementação de Próteses Retinianas. Tese de Doutorado. Universidade Federal

da Bahia. 2013.

16. ESPEJO, S. E. A. A VLSI-oriented continuous-time CNN model. International

Journal of Circuit Theory and Applications, v. 24, n. 3, p. 341–356, 1996.

17. NOSSEK, J. A. Design and Learning with Cellular Neural Networks. CNNA-94

Third IEEE International Workshop on Cellular Neural Networks and their

Applications, 1994.

18. MIRZAI, B.; CHENG, Z.; MOSCHYTZ, G. S. Learning Algorithms for Cellular

Neural Networks. IEEE International Symposium on Circuits and Systems, 1998.

19. KONDO, K.; MORISHITA H.; KONISHI; Y. ISHIGAKI, H. Design of Two-Stage

Cellular Neural Network Filter for Detecting Particular Moving Objects.

ISSPA’99 Fifth International Symposium on Signal Processing and its Applications,

1999.

20. LAI, J.-L.; WU, P. C.-Y. Architectural Design and Analysis of Learnable Self-

Feedback Ratio-Memory Cellular Nonlinear Network (SRMCNN) for

Nanoelectronic Systems. IEEE Transactions on Very Large Integration (VLSI)

Systems, v. 12, n. 11, p. 1182–1191, 2004.

21. TANAKA, M.; AOMORI, H.; NISHIO, Y.; OSHIMA, K.; HASLER, M. Learning

Theory of Cellular Neural Networks based on Covariance Structural Analysis.

CNNA 12th International Workshop on Cellular Nanoscale Networks and their

Applications, 2010.

Page 131: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

103

22. MORENO-ARMENDARIZ, M. A.; PAZIENZA, G. E.; YU, W. Training Cellular

Neural Networks with Stable Learning Algorithm. Advances in Neural Networks

– ISNN, Third International Symposium on Neural Networks, 2006.

23. KOZEK, T.; ROSKA, T.; CHUA, L. O. Genetic Algorithm for CNN Template

Learning. IEEE Transactions on Circuits and Systems I: Fundamental Theory and

Applications, v. 40, n. 6, p. 392–402, 1993.

24. RAMÍREZ, E. G.; MAZZANTI, F.; CARDONA, X. V. Cellular Neural Networks

Learning using Genetic Algorithm. Revista del Centro de Investigación de la

Universidad la Salle, v. 6, n. 21, p. 25, 2003.

25. ANDRADE, F. S.; SOUZA, Y. O. G.; SANTANA, E. P.; CUNHA, A. I. Image

Filtering in a CMOS Analog CNN. Proceedings of the 2015 IEEE 6th Latin

American Symposium on Circuits and Systems, 2015, pp. 1-4.

26. GONZALEZ, R. C.; WOODS, R. E. Digital Image Processing. Pearson Prentice

Hall, 2007.

Page 132: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

104

Page 133: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

105

APÊNDICE

Nesta seção é apresentado o código referente à execução do CMA modificado,

produzido por este trabalho, na linguagem do Matlab.

% Algoritmo para aprendizado de CNN utilizando o metodo do centro de massa

% Variáveis de entrada: % U_set,Xo_set,d_set: conjuntos de imagens de entrada, de estado % inicial, e da saída esperada em representacao numerica, respectivamente. % Ao,Bo,Zo: Valores iniciais para a matriz de operadores de realimentação, % a matriz de operadores de entrada, e o limiar, respectivamente. % A_max,B_max,Z_max: Limites de valor absoluto correspondentes aos % pararmetros anteriores. % Ut,Yt: Valores de entrada e saída das células de fronteira, % respectivamente. % M,N: Dimensoes da CNN. % R: Raio de vizinhanca da CNN. % lr: vetor composto das taxas de aprendizados para cada componente. % cnn_sim: Tipo de CNN a ser simulada (convencional ou FSR). % T,T_max: Duracao do passo temporal utilizado e tempo total limite na % resposta da simulacao da CNN. % update_method: vetor de inteiros onde os quatro primeiros campos % selecionam as componentes a ser atualizadas(dentre Aa,As,B eZ) e os dois % seguintes definem os padroes adotados para A e B. % max_steps: numero maximo de iteracoes. % Variáveis de saída: % A,B,Z,Aa,As: Valores finais dos parâmetros e das componentes de A. % p: Contagem de iteracoes realizadas. % result: descricao do Resultado do treinamento. % A_r,As_r,Aa_r,B_r,Zr: Registros dos valores dos parametros em cada % iteracao (cada coluna corresponde a um passo). % dAs,dAa,dB,dZ: Variacoes dos parametros aplicadas na ultima iteracao. % er: Registro do erro em cada celula ao longo do treinamento. % time: tempo de execucao total do treinamento. % CNN_time_r: registro do tempo de resposta da CNN.

function [A,B,Z,p,result,As,Aa,A_r,As_r,Aa_r,B_r,Zr,dAs,dAa,dB,dZ,er,... time,CNN_time_r] = CNN_learning_function(Ao,Bo,Zo,A_max,B_max,Z_max,... Xo_set,U_set,d_set,Ut,Yt,M,N,R,lr,T,Tmax,max_steps,update_method,cnn_sim)

tic % inicio da contagem de tempo

% definicao das tolerancias para o erro e para verificacao de repeticao % ciclica dos parametros

error_tolerance = 5*1e-2; repeat_tolerance = error_tolerance/1e3;

% inicializacao de parametros

A=Ao; B=Bo; Z=Zo;

% selecao componentes que serao atualizadas (1:ativada, 0:desativada)

en_Asim = update_method(1); en_Aantissim = update_method(2); en_B = update_method(3);

Page 134: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

106

en_Z = update_method(4);

% selecao do padrao de A e B

B_pattern = update_method(5); A_pattern = update_method(6);

% taxas de aprendizado

lr_As = lr(1); lr_Aa = lr(2); lr_B = lr(3); lr_Z = lr(4);

% Geracao de vetores para variacao decrescente da taxa de aprendizado em % cada iteracao

lr_ratio = 20; % Razao entre valor maximo e minimo de lr

lr_As = linspace(lr_As,lr_As/lr_ratio,max_steps); lr_Aa = linspace(lr_Aa,lr_Aa/lr_ratio,max_steps); lr_B = linspace(lr_B,lr_B/lr_ratio,max_steps); lr_Z = linspace(lr_Z,lr_Z/lr_ratio,max_steps);

% Variaveis de controle para os mecanismos de parada

stopA = 1; stopB = 1; stopZ = 1;

stop_reason = cell(1);

% inicio do treinamento para cada conjunto de imagens

for q = 1:size(U_set,3);

disp(['Inicio do conjunto de imagens numero ',num2str(q)]);

U = U_set(:,:,q); Xo = Xo_set(:,:,q); d = d_set(:,:,q);

% matriz de entrada ampliada com a fronteira

Uaux = Ut*ones(size(U,1)+2*R,size(U,2)+2*R); Uaux(R+1:size(U,1)+R, R+1:size(U,2)+R) = U;

% inicializacao de variaveis auxiliares

mass_dt = 0; mass_d = zeros(M,N);

% massa da saida esperada

mass_d = 0.5.*(1 + d); mass_dt = sum(sum(mass_d)); % massa total da rede

rdx = 0; rdy = 0; rd45 = 0; rd_45 = 0; for i = 1:M; for j = 1:N; rdx = rdx + j*mass_d(i,j);

Page 135: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

107

rdy = rdy + i*mass_d(i,j); rd45 = rd45 + abs(i-j)*mass_d(i,j); rd_45 = rd_45 + (i+j)*mass_d(i,j); end end if mass_dt ~= 0 % Verificacao de inderteminacao matematica (caso a % massa total seja zero, rx e rdx seria necessariamente zero) rdx = rdx/mass_dt; rdy = rdy/mass_dt; rd45 = rd45*sqrt(2)/(2*mass_dt); rd_45 = rd_45*sqrt(2)/(2*mass_dt); end

% inicializacao de componentes da matriz A

Arot = rot90(A,2); % rotacao de 180 graus da matriz A As = 0.5*( A + Arot); % obtencao da componente simetrica de A As(R+1,R+1) = 0; Aa = 0.5*( A - Arot); % obtencao da componente antissimetrica Aa(R+1,R+1)=0; Ac = A - As - Aa; % obtencao da componente Ac

% inicializacao dos incrementos das componentes

dA = zeros(2*R+1,2*R+1); dAs = zeros(2*R+1,2*R+1); dAa = zeros(2*R+1,2*R+1); dB = zeros(2*R+1,2*R+1); dZ = 0;

p1 = 1; A_stop = zeros(2*R+1,2*R+1,10); B_stop = zeros(2*R+1,2*R+1,10); Z_stop = zeros(10);

% execucao iterativa

for p = 1:max_steps

% simulacao da CNN disp(p); if cnn_sim == 1 % celula convencional [Y,Ya,n,Xt] = CNN(U,A,B,Z,Xo,Ut,Yt,M,N,R,T,Tmax); CNN_steps = n CNN_time_r(p) = CNN_steps*T; elseif cnn_sim == 2 % celula FSR [Y,Ya,n,Xt] = CNN_FSR(U,A,B,Z,Xo,Ut,Yt,M,N,R,T,Tmax); CNN_steps = n CNN_time_r(p) = CNN_steps*T; end

% aproximacao da imagem de saida para escala de cinza (256 tons de % cinza)

Y = (-Y + 1)*255/2; Y = uint8(Y); Y = double(Y); Y = (-Y*2/255) + 1; Ya(R+1:size(Y,1)+R, R+1:size(Y,2)+R) = Y;

% calculo do erro e criterio de parada

stop = 1; for m = 1:M; for n = 1:N; e(m,n) = 0.5*(d(m,n) - Y(m,n));

Page 136: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

108

e_max(q) = max(abs(e(:))); if abs(e(m,n))> error_tolerance; stop = 0; end end end

er(:,p) = e(:); % registro dos valores de erro de cada iteracao

% teste para parada do treinamento caso erro esteja abaixo da % tolerancia

if stop == 1; stop_reason(q) = {['Solution found below the tolerance e = ',... num2str(error_tolerance)]}; break end

% Verificacao de repeticao dos valores das matrizes para interrupcao

if (update_method(1) == 1) || (update_method(2) == 1) stopA = 0; if p > 1 A_stop(:,:,1:9) = A_stop(:,:,2:10); A_stop(:,:,10) = A; if p >= 10 p2 = max(max(abs(A_stop(:,:,9)-A_stop(:,:,1)))); if p2 < repeat_tolerance stopA = 1; end p1 = p1+1 if p1 == 11 p1 = 1; end end if sum(sum(abs(dAs + dAa))) < 10e-6 stopA = 1; end end end

if update_method(3) == 1 stopB = 0; if p > 1 B_stop(:,:,1:9) = B_stop(:,:,2:10); B_stop(:,:,10) = B; if p >= 10 p2 = max(max(abs(B_stop(:,:,9)-B_stop(:,:,1)))); if p2 < repeat_tolerance stopB = 1; end p1 = p1+1 if p1 == 11 p1 = 1; end end if sum(sum(abs(dB))) < 10e-6 stopB = 1; end end end

if update_method(4) == 1 stopZ = 0; if p > 1 Z_stop(1:9) = Z_stop(2:10); Z_stop(10) = Z;

Page 137: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

109

if p >= 10 p2 = abs(Z_stop(9)-Z_stop(1)); if p2 < repeat_tolerance stopZ = 1; end p1 = p1+1 if p1 == 11 p1 = 1; end end if abs(dZ) < 10e-6 stopZ = 1; end end end

if ((stopA == 1)&&(stopB == 1)&&(stopZ == 1)) stop_reason(q) = {'Repeat of parameter values'}; break end

% registro de valores de trajetoria dos parametros

Ar(:,:,p) = A; % registro da matriz A A_r(:,p) = A(:); disp(A); Br(:,:,p) = B; % registro da matriz B B_r(:,p) = B(:); disp(B); Zr(p) = Z; % registro do fator de limiar Z disp(Z); disp(e_max);

% calculo de componentes da matriz A

Arot = rot90(A,2); % rotacao de 180 graus da matriz A As = 0.5*(A + Arot); % obtencao da componente simetrica de A As(R+1,R+1) = 0; Aa = 0.5*(A - Arot); % obtencao da componente antissimetrica Aa(R+1,R+1) = 0; Ac = A - As - Aa; % obtencao da componente Ac

% registro para os passos das componentes da matriz A

Aa_r(:,p) = Aa(:); Ac_r(:,p) = Ac(:); As_r(:,p) = As(:);

% calculo dos incrementos nos parametros de A

dA = zeros(2*R+1,2*R+1); % inicializacao de dA para soma % acumulada em cada iteracao

for k = 1:2*R+1 for l = 1:2*R+1 for m = 1:M for n = 1:N if k==2 && l==2 dA(k,l) = 0; else dA(k,l) = dA(k,l) + e(m,n)*Ya(m+k-1,n+l-1); end end end end end

Page 138: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

110

dA = dA/(M*N); dAr(:,p) = dA(:); % registro de dA

% ajuste dos incrementos da componente simetrica da matriz A de % acordo com o raio de vizinhanca e o padrao especificado

if en_Asim == 1

dAs = 0.5*(dA + rot90(dA,2)); switch R case 1 if A_pattern == 1 dAsaux = dAs; dAsaux (2,2) = 0; dAsaux2 = sum(sum(dAsaux))/8; dAsaux = dAsaux2*ones(3,3); dAsaux(2,2) = dAs(2,2); dAs = dAsaux; elseif A_pattern == 2 dAsaux = sum(sum(dAs))/9; dAs = dAsaux*ones(3,3); elseif A_pattern == 3 dAsaux = dAs(2,2); dAs = zeros(3,3); dAs(2,2) = dAsaux; elseif A_pattern == 4 dAsaux = [dAs(1,2),dAs(2,1),dAs(2,3),dAs(3,2)]; dAsaux = sum(dAsaux)/4; dAs = [0,dAsaux,0;dAsaux,dAs(2,2),dAsaux;0,dAsaux,0]; elseif A_pattern == 5 dAsaux1 = [dAs(1,1),dAs(1,3),dAs(3,1),dAs(3,3)]; dAsaux2 = [dAs(1,2),dAs(2,1),dAs(2,3),dAs(3,2)]; dAsaux1 = sum(dAsaux1)/4; dAsaux2 = sum(dAsaux2)/4; dAs = [dAsaux1,dAsaux2,dAsaux1;dAsaux2,dAs(2,2),... dAsaux2;dAsaux1,dAsaux2,dAsaux1]; end case 2 if A_pattern == 1 dAsaux = dAs; dAsaux (R+1,R+1) = 0; dAsaux2 = zeros(5,5); dAsaux2(R:R+2,R:R+2) = dAsaux(R:R+2,R:R+2); dAsaux2 = sum(sum(dAsaux2))/8; dAsaux3 = dAsaux; dAsaux3(R:R+2,R:R+2) = zeros(3,3); dAsaux3 = sum(sum(dAsaux3))/16; dAsaux = dAsaux3*ones(2*R+1,2*R+1); dAsaux(R:R+2,R:R+2) = dAsaux2*ones(3,3); dAsaux(R+1,R+1) = dAs(R+1,R+1); dAs = dAsaux; elseif A_pattern == 2 dAsaux1 = [dAs(1,1),dAs(1,5),dAs(5,1),dAs(5,5)]; dAsaux2 = [dAs(1,2),dAs(1,4),dAs(2,1),dAs(2,5),... dAs(4,1),dAs(4,5),dAs(5,2),dAs(5,4)]; dAsaux3 = [dAs(1,3),dAs(3,1),dAs(3,5),dAs(5,3)]; dAsaux4 = [dAs(2,2),dAs(2,4),dAs(4,2),dAs(4,4)]; dAsaux5 = [dAs(2,3),dAs(3,2),dAs(3,4),dAs(4,3)]; dAsaux1 = sum(dAsaux1)/4; dAsaux2 = sum(dAsaux2)/8; dAsaux3 = sum(dAsaux3)/4; dAsaux4 = sum(dAsaux4)/4; dAsaux5 = sum(dAsaux5)/4; dAs = [dAsaux1,dAsaux2,dAsaux3,dAsaux2,dAsaux1, dAsaux2,dAsaux4,dAsaux5,dAsaux4,dAsaux2, dAsaux3,dAsaux5, 0 ,dAsaux5,dAsaux3,

Page 139: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

111

dAsaux2,dAsaux4,dAsaux5,dAsaux4,dAsaux2, dAsaux1,dAsaux2,dAsaux3,dAsaux2,dAsaux1]; end end

end

dAsr(:,p) = dAs(:); % registro de dAs

% calculo de incrementos da componente antissimetrica da matriz A

% calculo da definicao para a massa

if en_Aantissim == 1

mass = 0.5*(1 + Y); masst = sum(sum(mass)); mass_r(:,:,p) = mass(:,:); % registro da massa

rx = 0; for i = 1:M; for j = 1:N; rx = rx + j*mass(i,j); end end

if masst ~= 0 rx = rx/masst; end

rx = 0; ry = 0; r45 = 0; r_45 = 0; for i = 1:M; for j = 1:N; rx = rx + j*mass(i,j); ry = ry + i*mass(i,j); r45 = r45 + abs(i-j)*mass(i,j); r_45 = r_45 + (i+j)*mass(i,j); end end if mass_dt ~= 0 % Verificacao de inderteminacao % matematica (caso a massa total seja zero, rx e rdx seria % necessariamente zero) rx = rx/masst; ry = ry/masst; r45 = r45*sqrt(2)/(2*masst); r_45 = r_45*sqrt(2)/(2*masst); end dx = rdx - rx; dy = rdy - ry; d45 = rd45 - r45; d_45 = rd_45 - r_45; dAa = [ d_45 dy d45; dx 0 -dx; -d_45 -dy -d_45 ];

end

dAar(:,p) = dAa(:); % registro da matriz Aa_r

% calculo de incrementos da matriz B

if en_B == 1

Page 140: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

112

dB = zeros(2*R+1,2*R+1); % inicializacao de dB para soma % acumulada em cada iteracao

for k = 1:2*R+1 for l = 1:2*R+1 for m = 1:M for n = 1:N dB(k,l) = dB(k,l) + e(m,n)*Uaux(m+k-1,n+l-1); end end end end

dB = dB/(M*N);

% ajuste dos incrementos da matriz B de acordo com o raio de % vizinhanca e o padrao especificado

switch R case 1 if B_pattern == 1 dBaux = dB; dBaux (2,2) = 0; dBaux2 = sum(sum(dBaux))/8; dBaux = dBaux2*ones(3,3); dBaux(2,2) = dB(2,2); dB = dBaux; elseif B_pattern == 2 dBaux = sum(sum(dB))/9; dB = dBaux*ones(3,3); elseif B_pattern == 3 dBaux = dB(2,2); dB = zeros(3,3); dB(2,2) = dBaux; elseif B_pattern == 4 dBaux = [dB(1,2),dB(2,1),dB(2,3),dB(3,2)]; dBaux = sum(dBaux)/4; dB = [0,dBaux,0;dBaux,dB(2,2),dBaux;0,dBaux,0]; elseif B_pattern == 5 dBaux1 = [dB(1,1),dB(1,3),dB(3,1),dB(3,3)]; dBaux2 = [dB(1,2),dB(2,1),dB(2,3),dB(3,2)]; dBaux1 = sum(dBaux1)/4; dBaux2 = sum(dBaux2)/4; dB = [dBaux1,dBaux2,dBaux1;dBaux2,dB(2,2),dBaux2;... dBaux1,dBaux2,dBaux1]; end case 2 if B_pattern == 1 dBsaux = dB; dBsaux (R+1,R+1) = 0; dBsaux2 = zeros(5,5); dBsaux2(R:R+2,R:R+2) = dBsaux(R:R+2,R:R+2); dBsaux2 = sum(sum(dBsaux2))/8; dBsaux3 = dBsaux; dBsaux3(R:R+2,R:R+2) = zeros(3,3); dBsaux3 = sum(sum(dBsaux3))/16; dBsaux = dBsaux3*ones(2*R+1,2*R+1); dBsaux(R:R+2,R:R+2) = dBsaux2*ones(3,3); dBsaux(R+1,R+1) = dB(R+1,R+1); dB = dBsaux; elseif B_pattern == 2 dBsaux1 = [dB(1,1),dB(1,5),dB(5,1),dB(5,5)]; dBsaux2 = [dB(1,2),dB(1,4),dB(2,1),dB(2,5),... dB(4,1),dB(4,5),dB(5,2),dB(5,4)]; dBsaux3 = [dB(1,3),dB(3,1),dB(3,5),dB(5,3)]; dBsaux4 = [dB(2,2),dB(2,4),dB(4,2),dB(4,4)];

Page 141: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

113

dBsaux5 = [dB(2,3),dB(3,2),dB(3,4),dB(4,3)]; dBsaux1 = sum(dBsaux1)/4; dBsaux2 = sum(dBsaux2)/8; dBsaux3 = sum(dBsaux3)/4; dBsaux4 = sum(dBsaux4)/4; dBsaux5 = sum(dBsaux5)/4; dB = [dBsaux1,dBsaux2,dBsaux3,dBsaux2,dBsaux1, dBsaux2,dBsaux4,dBsaux5,dBsaux4,dBsaux2, dBsaux3,dBsaux5,dB(3,3),dBsaux5,dBsaux3, dBsaux2,dBsaux4,dBsaux5,dBsaux4,dBsaux2, dBsaux1,dBsaux2,dBsaux3,dBsaux2,dBsaux1]; end end

end

dBr(:,p) = dB(:); % registro de dB

% calculo de incremento do fator de limiar Z

if en_Z == 1

dZ = 0; % inicializacao de dZ para soma acumulada em cada % iteracao

for m = 1:M; for n = 1:N; dZ = dZ + e(m,n); end end

dZ = dZ/(M*N);

end

dZr(p) = dZ; % registro dos valores dZ

% atualizacao dos parametros da CNN

% atualizacao da componente simetrica da matriz A

if en_Asim == 1 As = As + lr_As(p)*dAs; end

% atualizacao da componente antissimetrica da matriz A

if en_Aantissim == 1 Aa = Aa + lr_Aa(p)*dAa; end

% atualizacao da matriz A

A = Ac + As + Aa;

% atualizacao da matriz B

if en_B == 1 B = B + lr_B(p)*dB; end

% atualizacao do fator de limiar Z

if en_Z == 1

Page 142: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

114

Z = Z + lr_Z(p)*dZ; end

% limitacao nos valores dos parametros

% limitacao nos parametros da matriz A

for k = 1:2*R+1 for l = 1:2*R+1 if A(k,l) > A_max; A(k,l) = A_max; elseif A(k,l) < -A_max; A(k,l) = -A_max; end end end

% limitacao nos parametros da matriz B

for k = 1:2*R+1 for l = 1:2*R+1 if B(k,l) > B_max B(k,l) = B_max; elseif B(k,l) < -B_max B(k,l) = -B_max; end end end

% limitacao de valor no fator de limiar Z

if Z > Z_max Z = Z_max; elseif Z < -Z_max Z = -Z_max; end

end

% Registro dos resultados para o atual conjunto de imagens

disp(['End of image set ',num2str(q)]); if q == 1 disp('Final Results'); end if p < max_steps result = 'Convergence to solution achieved'; disp(result); disp(char(stop_reason(q))); disp(['Max Error: ',num2str(e_max)]); disp(['Steps: ',num2str(p)]); disp('A ='); disp(A); disp('B ='); disp(B); disp(['Z = ',num2str(Z)]);

elseif stop == 0; result = 'Convergence to solution not achieved'; disp(result); disp(['Max Error: ',num2str(e_max)]); disp(['Steps: ',num2str(p)]); disp('A ='); disp(A); disp('B ='); disp(B);

Page 143: FILTRAGEM DE IMAGENS EM ESCALA DE CINZA POR MEIO DE … · Fabian Souza de Andrade Dissertação apresentada ao Programa de Pós-graduação em Engenharia Elétrica, do Departamento

115

disp(['Z = ',num2str(Z)]); end end

% registro de valores finais

Ar(:,:,p) = A; % registro da matriz A A_r(:,p) = A(:); disp(A); Br(:,:,p) = B; % registro da matriz B B_r(:,p) = B(:); disp(B); Zr(p) = Z; % registro do fator de limiar Z disp(Z);

% registro das componentes de A

Aa_r(:,p) = Aa(:); Ac_r(:,p) = Ac(:); As_r(:,p) = As(:);

% exibicao dos resultados no caso de multiplos conjuntos de imagens if q >= 1 disp('Final Results') if p < max_steps result = 'Convergence to solution achieved'; disp('Stop events on each image set:') disp(char(stop_reason)); disp(['Max Error: ',num2str(e_max)]); disp(['Steps: ',num2str(p)]); disp('A ='); disp(A); disp('B ='); disp(B); disp(['Z = ',num2str(Z)]);

elseif stop == 0; result = 'Convergence to solution not achieved'; disp(['Max Error: ',e_max]); disp(['Max Error: ',num2str(e_max)]); disp('A ='); disp(A); disp('B ='); disp(B); disp(['Z = ',num2str(Z)]); end time = toc; % termino do contador do tempo de execucao end