universidade estadual de londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é...

63
Universidade Estadual de Londrina Centro de Tecnologia e Urbanismo – CTU Departamento de Engenharia Elétrica FABIO POMINI RECONHECIMENTO DE IMAGENS UTILIZANDO REDES NEURAIS ARTIFICIAIS Londrina 2009

Upload: ngohanh

Post on 13-Dec-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

Universidade Estadual de Londrina Centro de Tecnologia e Urbanismo – CTU

Departamento de Engenharia Elétrica

FABIO POMINI

RECONHECIMENTO DE IMAGENS UTILIZANDO

REDES NEURAIS ARTIFICIAIS

Londrina

2009

Page 2: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

ii

Fabio Pomini

RECONHECIMENTO DE IMAGENS UTILIZANDO

REDES NEURAIS ARTIFICIAIS

Trabalho de Conclusão de Curso

submetido ao Departamento de

Engenharia Elétrica da Universidade

Estadual de Londrina, para

preenchimento dos pré-requisitos

parciais para a obtenção do título de

graduação em Engenharia Elétrica.

Orientador: Prof. Dr. Ernesto

Fernando Ferreyra Ramirez

Londrina

2007

Page 3: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

iii

Fabio Pomini

RECONHECIMENTO DE IMAGENS UTILIZANDO

REDES NEURAIS ARTIFICIAIS

Trabalho de Conclusão de Curso

submetido ao Departamento de

Engenharia Elétrica da Universidade

Estadual de Londrina, para preenchimento

dos pré-requisitos parciais para a

obtenção do título de graduação em

Engenharia Elétrica.

COMISSÃO EXAMINADORA

______________________________________

Prof. Dr. Ernesto Fernando Ferreyra

Ramirez

Universidade Estadual de Londrina

______________________________________

Prof. Dr. José Carlos Pizolato Júnior

Universidade Estadual de Londrina

______________________________________

Prof. M.Sc. Luis Carlos Kakimoto

Universidade Estadual de Londrina

Londrina, 18 de novembro de 2009

Page 4: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

iv

Aos meus pais, familiares

e amigos

Page 5: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

v

AGRADECIMENTOS

Ao professor e orientador Ernesto Fernando Ferreyra Ramirez pela constante

participação e dedicação a este trabalho, exemplo de pessoa e profissional.

À minha família, pela ajuda, confiança e motivação.

Aos colegas de curso, em especial àqueles que tiveram presença constante na

minha vida nos últimos 6 anos, seja dentro da universidade ou não.

A todos que, direta ou indiretamente, colaboraram para a realização e

finalização deste trabalho.

Ao Sport Club Corinthians Paulista, pelas alegrias proporcionadas.

Page 6: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

vi

“As pessoas podem duvidar do que você diz,

mas acreditarão sempre no que você faz ”

Ralph W. Emerson

Page 7: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

vii

POMINI, Fabio. Reconhecimento de Imagens Utilizando Redes Neurais Artificiais. 2009. Trabalho de Conclusão de Curso (Graduação em Engenharia Elétrica) - Universidade Estadual de Londrina.

RESUMO

Este trabalho contém um estudo de reconhecimento de imagens utilizando Redes Neurais Artificiais tendo em vista a crescente demanda de automatização para este tipo de processo. Para este fim foram estudados algoritmos de Redes Neurais Artificiais (RNA) e técnicas de processamento deimagens a fim de maximizar o aproveitamento das informações contidas nas imagens, resultando assim em um tempo de processamento reduzido. A RNA escolhida para o trabalho foi a Rede de Hopfield e o pré-processamento das imagens contém basicamente quatro etapas: centralização, segmentação, ajuste de tamanho e convolução. Os dados utilizados foram adquiridos através de um software em JAVATM que produz uma matriz de resposta correspondente aos pixels da imagem, simulando assim caracteres ruidosos. A plataforma computacional MATLABTM foi utilizada para o processamento das imagens e treinamento da RNA. Através dos testes foi observada uma taxa de reconhecimento de aproximadamente 84%. Além disso, a presença da etapa de pré-processamento possibilitou um tempo de treinamento reduzido (seis a quarenta vezes menor) em comparação com o algoritmo backpropagation.

Palavras-chave: Redes Neurais Artificiais; RNA; Matlab; Hopfield.

Page 8: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

viii

POMINI, Fabio. Image Recognizing Using Artificial Neural Networks. 2009. Trabalho de Conclusão de Curso (Graduação em Engenharia Elétrica) -Universidade Estadual de Londrina.

ABSTRACT

This work shows an image recognition study using Artificial Neural Networks(ANN) motivated by the crescent demand on automation of this kind of process. For this task, several ANN algorithms and image processing techniques were studied to maximize the use of relevant information in spite of redundancies or noise, permitting a better time response. The chosen ANN was the Hopfield Model and the image pre-processing contains four phases: centralization, segmentation, size adjustment and convolution. The database used was acquired by JAVATM software that produces a response matrix that represents image pixels, simulating this way a set of noisy characters. The computational platform MATLABTM was used for image processing and ANN training. The tests showed a recognizing rate of 84%.The presence of the pre-processing phase permitted a reduced time response (from six to forty times lesser) in comparison with the back-propagation algorithm.

Key-words: Artificial Neural Networks; ANN; Matlab; Hopfield.

Page 9: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

ix

LISTA DE TABELAS

Tabela 4.1 – Resultado às imagens 10x10.......................................................34

Tabela 4.2 – Resultado às imagens 14x14.......................................................36

Tabela 4.3 – Comparação.................................................................................39

Page 10: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

x

LISTA DE FIGURAS

Figura 1 – Exemplos de aplicações de RNA....................................................02

Figura 2 – Topologia de Hopfield com 4 neurônios..........................................13

Figura 3 – Ação executada por uma rede recorrente...................................... 14

Figura 4 – Convolução......................................................................................17

Figura 5 – Arquitetura de reconhecimento de caracteres.................................18

Figura 6 – Exemplo de imagem original............................................................19

Figura 7 – Imagem original versus “padrão ouro”..............................................20

Figura 8 – Exemplo de imagem centralizada....................................................21

Figura 9 – Exemplo de imagem segmentada....................................................22

Figura 10 – Exemplo de imagem convoluída....................................................23

Figura 11 – Padrão ouro “X”..............................................................................24

Figura 12 – Padrão ouro “ ”.............................................................................25

Figura 13 – Padrão ouro “+”...............................................................................25

Figura 14 – Padrão ouro “O”..............................................................................26

Figura 15 – Pré-processamento do caractere “+” 10x10...................................28

Figura 16 – Pré-processamento do caractere “X” 10x10...................................29

Figura 17 – Pré-processamento do caractere “ ” 10x10..................................30

Figura 18 – Pré-processamento do caractere “O” 10x10..................................31

Figura 19 - Pré-processamento do caractere “+” 14x14....................................31

Figura 20 - Pré-processamento do caractere “O” 14x14...................................32

Figura 21 – Pré-processamento do caractere “X” 14x14...................................32

Figura 22 - Pré-processamento do caractere “ “ 14x14...................................33

Figura 23 – Exemplo de convergência “+”.........................................................35

Figura 24 – Exemplo de convergência “X”.........................................................35

Figura 25 – Exemplo de convergência incorreta (indecisão).............................36

Figura 26 – Exemplo de convergência “ ”........................................................37

Figura 27 – Exemplo de convergência “O”........................................................37

Page 11: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

xi

SUMÁRIO

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

1.1 Objetivos .................................................................................................... 4

2 REVISÃO DA LITERATURA ................................................................................ 6

2.1 Reconhecimento de Imagens................................................................. 6

2.2 Introdução às Redes Neurais Artificiais .............................................. 8

2.2.1 Sistemas de Reconhecimento de Padrões .................................. 82.2.2 O Modelo do Ciclo de Processamento ....................................... 10

2.3 Classificador ................................................................................................. 13

2.3.1 Topologia da Rede de Hopfield.......................................................... 132.3.2 O Modelo Hopfield como Memória Endereçável ........................... 13

2.4 Máscara de Convolução ............................................................................. 16

3 METODOLOGIA ................................................................................................... 18

3.1 Aquisição de dados................................................................................ 18

3.2 Extração dos atributos ............................................................................... 19

3.2.1 Pré-processamento .............................................................................. 193.2.2 Centralização ......................................................................................... 203.2.3 Segmentação da imagem.................................................................... 213.2.4 Redimensionamento da imagem ....................................................... 223.2.5 Convolução ............................................................................................ 22

3.3 Restaurando a matriz para um determinado valor N............................ 23

3.4 Classificador ................................................................................................. 24

4 RESULTADOS E DISCUSSÃO ..................................................................... 27

4.1 Resposta ao pré-processamento ............................................................. 27

4.1.1 Resultado para imagens 10x10 pixels.............................................. 284.1.2 Resultado para imagens 14x14 pixels.............................................. 29

4.2 Resposta ao classificador.......................................................................... 33

4.2.1 Resultado para imagens 10x10 pixels.............................................. 334.2.2 Resultado para imagens 14x14 pixels.............................................. 36

4.3 Comparação de casos ................................................................................ 38

Page 12: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

xii

5 CONCLUSÃO E TRABALHOS FUTUROS .................................................. 40

REFERÊNCIAS........................................................................................................ 42

Anexo A - Algoritmo de captação das imagens .............................................. 44Anexo B - Algoritmo de Centralização .............................................................. 45Anexo C - Algoritmo de Convolução ................................................................. 48Anexo D - Algoritmo de Hopfield ........................................................................ 50

Page 13: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

1 INTRODUÇÃO

Existem problemas que despertam o interesse geral pelo

simples fato de estarem presentes na vida de grande parte da população.

Estes tipos de problemas foram estudados por muito tempo e assim criadas

várias maneiras de solucioná-los, mas com o passar dos anos, o ambiente foi

se tornando mais exigente, de modo que os problemas que antes eram simples

agora se tornaram mais complexos, exigindo técnicas mais sofisticadas do que

as convencionais para resolvê-los. Dentre estas técnicas estão as Redes

Neurais Artificiais.

Os problemas em que são utilizadas as RNA (Redes

Neurais Artificiais) são problemas de análise multivariada de dados, ou seja,

problemas comuns do cotidiano que são passíveis de serem analisados

computacionalmente, em que três situações básicas podem se manifestar

(Figura 1) (Haykin, 2001):

1. Treinamento Supervisionado – onde existem conjuntos (amostras) de

entradas-saídas e um mapeamento destas amostras possa mostrar suas

correlações. Podem existir múltiplas entradas para múltiplas saídas, se o

caso for de atributo (entrada) para classe (saída), este modelo pode ser

um classificador de padrões.

2. Treinamento Não-Supervisionado – onde as amostras possuem

atributos que as identificam, considera-se que esses atributos podem ser

representados numericamente como se fossem valores em um eixo de

coordenadas, o número de eixos representa o número de atributos a

serem analisados. O significado do posicionamento dos pontos nos

eixos em questão e a classificação dos grupos que os pontos

representam são dados através de técnicas de RNA em treinamento

não-supervisionado.

Page 14: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

2

3. Memória Endereçável por Conteúdo – onde os dados são amostras

parciais ou ruidosas de conteúdos previamente armazenados. Para isso

utilizam-se algoritmos que recuperam a informação total.

Figura 1: Exemplos de aplicações de RNA

A tarefa de definir se um problema precisa ser resolvido

utilizando RNA não é fácil, pois praticamente qualquer situação pode ser

solucionada deste modo. Se um determinado problema pode ser resolvido de

diversas maneiras, este precisa ser modelado de acordo com o tipo de

resolução escolhida. Alguns casos típicos de análise multivariada são

amplamente difundidos, entre eles (Duda et al., 2001):

Aproximação de Funções: é o caso em que aparece a situação

“1” descrita acima. Uma função é um conjunto de entradas que

Page 15: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

3

fornecem uma ou mais saídas, o objetivo é obter amostras em

quantidade suficiente para poder estimar a função em questão.

Classificação de Padrões: a partir de amostras de entrada e

suas saídas, são mapeados numericamente os valores das

amostras, classificando padrões. Assim, para novas amostras

testadas, elas poderão ser classificadas de acordo com os

padrões determinados anteriormente.

Identificação de Sistemas Dinâmicos: a partir de vetores de

entrada com os estados atuais e os respectivos vetores de saída

com os novos estados de um sistema dinâmico, uma rede neural

estabelece um modelo do sistema dinâmico em questão.

Emulação de Atividades Humanas: através de um vetor de

entrada contendo as informações recebidas por um ser humano e

sua reação representando o vetor de saída, é possível

representar o modelo de reações possíveis para cada estímulo de

entrada.

Predição de Séries Temporais: tomando como entrada

situações ocorridas até o presente momento e fazendo operações

estatísticas entre elas e o período em que elas ocorreram, é

possível implementar uma RNA que faça a predição para casos

futuros, tais como cotação em bolsas de valores e a produtividade

de culturas.

Agrupamento de Dados: a partir de diversas entradas, valores

numéricos (tais como uma pesquisa de opinião), é implementada

uma RNA treinada de maneira competitiva, de modo que esta

defina protótipos (ou regiões de maior agrupamento das

amostras), definindo deste modo perfis que classificam as

Page 16: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

4

amostras dentro de grupos maiores, facilitando o estudo dos

resultados.

Caixeiro Viajante e Roteamento de Veículos: No roteamento de

veículos é preciso dividir diversos veículos para atender n

consumidores fazendo com que percorram o menor caminho e

que cada consumidor seja atendido somente por um veículo.

Através do estudo de agrupamentos mostrado no caso acima, é

possível fazer com que a RNA divida as regiões separadamente,

de acordo com o número de veículos existentes. No caso do

caixeiro viajante temos n cidades a percorrer e o objetivo é definir

o menor percurso entre elas, passando uma única vez por cada

cidade. O caixeiro viajante é um problema específico do caso do

roteamento de veículos.

Memória Endereçável Por Conteúdo: é o caso da situação 3,

onde é tomado um sistema com não-linearidades. A partir das

não-linearidades são estabelecidos pontos de referência nas

regiões de equilíbrio. Pelos atributos das entradas são definidas

suas condições iniciais, e através de um processo de relaxamento

(iterações sucessivas) os pontos convergem para as regiões de

equilíbrio.

1.1 Objetivos

Neste trabalho será feito o reconhecimento de imagens

utilizando Redes Neurais Artificiais (RNA). O trabalho consiste de duas etapas,

uma etapa de pré-processamento, onde as imagens são tratadas de modo a

serem extraídas somente as informações relevantes das mesmas. Após este

procedimento temos a etapa de classificação, que consiste da RNA em

questão e faz o reconhecimento da imagem.

Page 17: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

5

Um dos objetivos deste trabalho é implementar um método

alternativo ao proposto em Shigeno (2005), no qual foram aplicados os

algoritmos LMS (Método dos Mínimos Quadrados) e Backpropagation

(Perceptron de multicamadas com retropropagação de erro), primeiramente

testados diretamente nas imagens adquiridas, atingindo assim uma taxa de

acerto de aproximadamente 77%. Para melhorar o desempenho, Shigeno

propôs uma etapa de convolução antes da aplicação dos algoritmos de RNA,

deste modo a taxa de erro caiu para apenas 8%, porém, o tempo de

processamento continuou elevado, durando até 7 horas.

Nos próximos capítulos são discutidos os procedimentos aqui

utilizados para oferecer uma solução diferenciada ao trabalho de Shigeno

(2005).

Page 18: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

6

2 REVISÃO DA LITERATURA

2.1Reconhecimento de Imagens

Nos dias atuais, é cada vez maior a necessidade de se aplicar

processos computacionais com a finalidade de verificar assinaturas,

formulários, ou qualquer tipo de documento com preenchimento manuscrito. Do

mesmo modo, muitos processos de reconhecimento de face ou impressão

digital também estão sendo aplicados em prol da segurança e lisura dos

procedimentos de validação de identidade. Nestes casos, a velocidade desta

etapa de leitura e verificação é muito importante e um bom sistema de

reconhecimento de imagens torna o processo simples e rápido.

De acordo com esta necessidade, muito está sendo publicado

sobre o assunto. Sobre reconhecimento de face, Geng et al (2008) propuseram

uma técnica baseada em ISS (Individual Stable Space), onde cada

característica a ser processada é mapeada em uma matriz individual. Uma

rede chamada ISNN (Individual Stable Neural Network) é proposta para

mapear a imagem crua de um rosto e enviá-la para o ISS, então três algoritmos

baseados em ISS operam em condições não controladas. Não há restrições

para a imagem enviada, e não é necessário treinamento extra, como mudança

de ângulo. Os testes foram feitos com três grandes bases de dados e foram

obtidos resultados melhores do que outros 12 tipos de técnicas de

reconhecimento de faces.

Kirstein et al (2008) abordaram o tema de uma maneira

diferente. É apresentado um método de arquitetura baseado em um modelo

biológico de reconhecimento de objetos. Este possui um método hierárquico de

extração de características combinado com uma arquitetura de memória que

implementa tipos de memórias curta e longa. O modelo de aprendizado

hierárquico é dividido em três etapas: a hierarquia de extração de

características feedforward; a quantização online do vetor como memória curta;

LVQ (Learning Vector Quantization) incremental como memória longa. O LVQ

se trata de uma rede neural proposta por Kohonen (1989) para treinamento

supervisionado.

Page 19: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

7

O trabalho de Nasution & Khan (2008) mostra o HGN

(Hierarchical Graph Neuron), que é uma versão aprimorada do GN (Graph

Neuron) publicada em seus artigos anteriores. Neste novo trabalho o algoritmo

é capaz de processar dados incompletos/ruidosos através de sua arquitetura

que utiliza várias células GN filtrando os dados. O tempo de trabalho é curto e

a aplicação funciona bem com equipamentos pequenos, como redes de

sensores sem fio. É demonstrado que no HGN o tempo de processamento

permanece inalterado com o aumento dos padrões armazenados. Mais ainda,

não são necessários redefinição de regras ou decisão de limiares pelo

operador para atingir o resultado esperado.

A classificação de padrões visuais faz uso de muitos recursos e

algumas vezes não é necessário distinguir se a intenção é reconhecimento de

caracteres ou de imagens fotográficas.

Em Phung & Bouzerdoum (2007) é apresentado um novo tipo

de rede, chamado Pyramidal Neural Network (PyraNet), este possui dois tipos

de camadas de processamento: camadas piramidais e camadas de

processamento unidimensional. A nova rede é composta por neurônios não-

lineares 2D que fazem tanto a extração das características quanto a redução

da dimensionalidade. São analisados 5 modos de treinamento da rede

PyraNet: gradiente decrescente, gradiente decrescente com momento, resilient

backpropagation, Polak-Ribiere conjugate gradient, e Levenberg-Marquadrt

(LM). Dois tipos de função de erro, mean-square-error e cross-entropy. O

trabalho tem como finalidade a classificação do gênero de uma face

comparando com a tecnologia padrão de reconhecimento de face (FERET),

três classificadores foram utilizados: convolutional neural network (KK), k-

nearest neighbor (K-NN) e Support Vector Machine (SVM).

Em Santhanam et al (2007), é mostrada uma técnica de

filtragem de minutiae (terminações e bifurcações em uma imagem de

impressão digital). Pixels defeituosos e pontos espúrios são eliminados durante

o processo de refinamento da imagem de acordo com o padrão dos pixels

vizinhos, após isto, um novo algoritmo baseado em redes neurais (NN)

aumenta a precisão na extração dos minutiae. Cada minutia, conforme

Page 20: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

8

determinado pelo algoritmo anterior, passa por um ARTMAP NN, sendo assim

determinado se é uma terminação, uma bifurcação ou um falso minutia.

ARTMAP é uma rede neural supervisionada auto-organizável proposta para

reconhecimento de padrões, capaz de rápida e estável captação online de

atributos.

2.2Introdução às Redes Neurais Artificiais

Para facilitar o reconhecimento de um rosto, interpretar palavras

pronunciadas, ler textos escritos à mão ou mesmo identificar as chaves de um

carro pelo toque, está o processo extremamente complexo de reconhecimento

de padrões. Reconhecimento de padrão é realizar alguma atividade de acordo

com a “categoria” do padrão através de algum dado não-processado (Haykin,

2001).

Construir máquinas que resolvam automaticamente um caso de

reconhecimento de fala, DNA ou impressão digital é algo claramente útil e

muito natural nos dias de hoje. Ao estudar os processos para construir tais

máquinas, o pesquisador também acaba entendendo e até se interessando em

como estes processos acontecem na natureza, e este tipo de conhecimento

ajuda em como adaptá-los ao meio computacional.

2.2.1 Sistemas de Reconhecimento de Padrões

Em um problema qualquer envolvendo reconhecimento de

padrões, existem basicamente quatro etapas: pré-processamento, extração de

características, classificação e pós-processamento (Duda et al., 2001).

No pré-processamento podemos identificar duas subetapas, a

primeira diz respeito às entradas da rede, que normalmente é algum tipo de

sinal fornecido por um transdutor, como um microfone ou uma câmera. Os

problemas que podem surgir dependem das limitações do equipamento

utilizado, como resolução, sensibilidade, distorção, etc (Duda et al., 2001).

Page 21: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

9

A próxima parte do processo envolve a segmentação ou

agrupamento das amostras, levando em consideração que nem sempre o sinal

que esperamos como entrada se mostrará perfeito, isto é, livre de ruídos

externos (Duda et al., 2001).

A parte de extração de características às vezes é confundida

com classificação (Haykin, 2001), isto é normal, já que um sistema perfeito de

classificação dispensaria qualquer processo de extração de características. A

decisão de processar os dados dividindo estas duas etapas é mais prática do

que teórica. O objetivo tradicional quando se extrai as características de um

objeto é caracterizá-lo de acordo com as medidas que se mostrem próximas de

outros objetos da mesma categoria. Isto nos leva à conclusão de que estamos

procurando características que são invariantes a mudanças irrelevantes nas

entradas. Um exemplo seria o reconhecimento de uma face, onde fossem

analisadas várias imagens do rosto de uma pessoa, um enquadramento mal

feito, luminosidade variada, diferenças de expressão ou qualquer outra

característica diferente para cada amostra não significa que seja outra pessoa.

Isto define uma mudança irrelevante na entrada, algo que o processo de

extração de características deve contornar.

Um processo minucioso de obtenção das características

desejadas facilita a etapa seguinte, a classificação, o objetivo agora é

determinar a classe em que uma amostra faz parte, normalmente a

probabilidade de esta amostra pertencer a certa classe, isto tendo em vista que

um sistema de classificação livre de erros é impraticável (Duda et al., 2001).

O grau de dificuldade no problema da classificação depende da

variação dos dados de características para amostras de uma mesma categoria

comparada com esta variação em amostras de categorias diferentes.

A variação nos dados de uma mesma categoria depende

basicamente da complexidade do objeto ou de ruídos. Entendemos por ruído

qualquer propriedade adquirida que é fruto de algo imprevisto, aleatório e que

não corresponde ao modelo verdadeiro. É importante lembrar que todo

Page 22: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

10

problema não trivial de reconhecimento de padrões trabalha na presença de

ruído (Duda et al., 2001).

Um problema que surge na prática e é bastante comum é

aquele no qual não se pode extrair todas as características desejadas de um

objeto, como quando através de uma imagem, parte do objeto em questão está

encoberta. Neste caso, aparece um problema em como treinar um classificador

quando uma ou mais características não estão presentes.

É chamado pós-processamento o final do processo, onde

depois do classificador decidir em qual grupo o exemplo em questão pertence,

existe uma última dúvida, aceitar ou não esta decisão. Esta etapa normalmente

ocorre quando existem vários classificadores.

2.2.2 O Modelo do Ciclo de Processamento

O ciclo de processamento de um sistema de reconhecimento de

padrões normalmente contém a repetição de um número de diferentes

atividades: aquisição de dados, escolha de características, escolha de

modelos, treinamento e cálculo. O número de repetições escolhido para o

processo influencia diretamente o resultado final, mas isto não quer dizer que

quanto maior for este número, maior a taxa de acerto. É preciso verificar a que

ponto do ciclo de processamento já se torna inútil continuar (Duda et al., 2001).

2.2.2.1 Aquisição de Dados

Adquirir os dados de um conjunto de exemplos é grande parte

do trabalho para montar um sistema adequado de reconhecimento. É possível

conseguir bons resultados com poucos exemplos, mas assim seria necessário

um grande número de dados do campo de entrada. Neste caso, como é

possível saber se a quantidade de dados coletados do conjunto de exemplos é

suficiente para o bom funcionamento do sistema? Teoricamente esta questão

Page 23: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

11

se torna retórica, já que não existe regra que diz com exatidão quando um

conjunto de exemplos é grande o bastante para solucionar o problema.

Sendo assim, só resta ao pesquisador testar com um número

diferente de amostras, ou simplesmente utilizar todas as amostras disponíveis

e tirar suas próprias conclusões.

2.2.2.2 Escolha das Características

A decisão de distinguir as características que serão relevantes

ao processo é um passo crítico do trabalho. O acesso às amostras que serão

utilizadas é indispensável, de modo que o pesquisador possa analisar os casos

de maneira mais específica. Entretanto, um conhecimento prévio e mais

aprofundado sobre o tipo de classificação a ser obtida possui um peso maior no

momento de executar um bom trabalho.

2.2.2.3 Escolha do Modelo

Em RNA existem muitos modelos, ou topologias de rede,

distintos. Apesar de partirem basicamente do mesmo princípio, o da motivação

biológica a fim de se construir modelos computacionais conexionistas, nem

todos são eficientes o bastante para solucionar um caso específico.

Entre os modelos mais difundidos em RNA estão relacionados

abaixo (Haykin, 2001):

Modelo de Hopfield;

Redes Self-Organizing – SOM e ART;

Sistemas Neurais Híbridos – RNA e algoritmos genéticos e RNA

com raciocínio baseado em casos;

Redes Neurais sem pesos;

Redes de funções de base radiais;

Redes recorrentes;

Page 24: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

12

Redes Neurais Lineares, utilizando o algoritmo LMS (Least Mean

Square);

Perceptron Multi-Camadas utilizando o algoritmo BP

(Backpropagation).

2.2.2.4 Treinamento

Em geral, o processo de utilizar dados para determinar a ação

do classificador é referido como treinar o classificador. Segundo Duda et al

(2001), ainda não existem maneiras de obter classificadores para todos os

casos existentes, mas a experiência dos últimos 25 anos mostrou que foram

desenvolvidos os métodos mais eficazes para grande parte deles.

2.2.2.5 Complexidade Computacional

Alguns problemas de reconhecimento de padrões podem ser

solucionados utilizando algoritmos altamente impraticáveis. Por exemplo, tentar

processar todas as imagens de um conjunto hipotético de matrizes 20x20 para

reconhecimento de caracteres por meio de sensores ópticos. Apesar de

teoricamente ser possível atingir um índice reconhecimento livre de erros, o

armazenamento e processamento seria um tanto proibitivo tendo em vista que

teríamos aproximadamente 10120 padrões (Duda et al., 2001). Deste modo os

recursos computacionais necessários e a complexidade computacional de

algoritmos distintos são de considerável importância prática.

Em termos gerais, grande parte do trabalho se torna verificar a

qualidade do procedimento escolhido versus sua complexidade computacional.

Neste trabalho, o modelo de RNA escolhido para o trabalho foi o

chamado Redes de Hopfield (Haykin, 2001). Para este modelo, o pré-

processamento nas imagens se torna a parte mais crítica do trabalho.

Page 25: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

13

2.3 Classificador

2.3.1 Topologia da Rede de Hopfield

A Rede Hopfield ou Modelo Hopfield consiste de um grupo de

neurônios (círculos da figura 2) e um grupo correspondente de atrasos ( 1z ),

formando um sistema de feedback de laço múltiplo, como ilustrado na figura 2.

O número de laços de feedback é igual ao número de neurônios. Basicamente,

a saída de cada neurônio é realimentada através de um elemento de atraso

unitário para cada um dos outros neurônios da rede, o atraso significa que

qualquer estado da rede depende do estado anterior. Do modo como é feita a

realimentação dos neurônios, não existe auto-realimentação.

Figura 2: Topologia de Hopfield com 4 neurônios (extraído de Haykin ,2001)

2.3.2 O Modelo Hopfield como Memória Endereçável

Nesta aplicação, são mapeados para a rede pontos fixos,

figuras pré-definidas, representando os padrões desejados, neste trabalho

chamado de “padrões-ouro” ou memórias fundamentais.

Page 26: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

14

Uma propriedade importante deste método é a habilidade da

rede de retornar um padrão armazenado, tendo como amostra um grupo

modificado deste padrão. A essência de uma memória endereçável por

conteúdo é mapear uma memória fundamental sobre um ponto fixo (estável)

, conforme ilustrado na figura 3. Os pontos fixos de atração do espaço de

estados da rede são as memórias fundamentais ou os estados de teste da

rede.

Devido à sua simplicidade, este método possui grande

limitação, principalmente para dados muito ruidosos.

Figura 3: Ação executada por uma rede recorrente (extraído de Haykin, 2001)

O modelo Hopfield possui duas etapas distintas, nomeadas

etapa de armazenamento e etapa de retorno (Haykin, 2001).

Page 27: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

15

2.3.2.1 Etapa de Armazenamento

Durante a etapa de armazenamento, temos um grupo de

vetores de N dimensões, onde 1 2, ... M representa as memórias

fundamentais, responsáveis pela habilidade da rede reconhecer padrões

ruidosos.

O primeiro passo é ajustar os pesos sinápticos da rede, ou seja,

os fatores responsáveis pela decisão de alterar os pixels desejados da figura

em questão, que são dados por:

, ,1

1,

,0

M

j i

ji

j iNw

j i

(2.1)

O segundo e último passo da etapa de armazenamento é a

inicialização do teste, que é dada por

,(0) ,j j provaX 1,...,j N (2.2)

Onde (0)jX é o estado do neurônio j no tempo n = 0, e ,j prova é o j-ésimo

elemento do vetor de teste prova .

Durante a etapa de retorno, todos os vetores de teste são

computados, através de iterações repetitivas, até convergir para uma das

memórias fundamentais. Caso isto não ocorra, um erro foi atingido.

As iterações até a convergência ocorrem segundo a seguinte

regra

1

( 1) sgn ( ) ,N

j ji ii

X n w X n

1,2,...,j N (2.3)

Onde,

Page 28: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

16

1: 0sgn

1: 0

xx

x

(2.4)

A repetição ocorre até que o valor de X se torne inalterado. Atingindo esta

condição, a saída Y da rede é igual a X.

2.4 Máscara de Convolução

A máscara de convolução é uma operação entre duas matrizes,

geralmente bidimensionais, uma das quais é a imagem e a outra é um matriz

chamada de matriz de convolução ou elemento estruturante (Gonzalez &

Woods, 2000).

A matriz de convolução representa uma função matemática

qualquer e é aplicada sobre cada pixel g(x,y) da imagem e sua vizinhança

imediata, resultando em uma nova imagem gc(x,y), que reflete a relação da

imagem original com a função matemática dada pela matriz.

Podemos considerar a convolução como a aplicação de uma

máscara de resposta à imagem de acordo com critérios bem definidos. Na

convolução temos dois componentes:

Uma ou mais matrizes de convolução ci(x,y)

A operação de convolução

A forma mais simples é quando temos apenas uma matriz de

convolução e a operação de convolução é a soma dos resultados da

multiplicação de cada elemento da matriz com a região da imagem sob a

mesma e a subseqüente substituição do valor do pixel sobre o qual a matriz foi

aplicada por este resultado.

Page 29: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

17

Exemplo:

9

1

1 2 3 1 2 3

4 5 6 4 5 6

7 8 9 7 8 9

1 1 2 2 ... 9 9

( ) / 9i

m m m g g g

R m m m g g g

m m m g g g

R m g m g m g

R mi gi

imagem original imagem resultante

Figura 4: Operação com máscara de convolução

Observe que para cada movimento da matriz de convolução, a

média dos pixels é copiada para uma nova matriz, a matriz de resposta. Sendo

assim, esta matriz de resposta terá dimensões referentes ao tamanho da matriz

de convolução, já que esta é responsável por quantos pixels são “eliminados”

por iteração, e também quantas vezes o processo todo é repetido.

Page 30: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

18

3 METODOLOGIA

Neste capítulo são apresentados os métodos utilizados para se

obter o reconhecimento das imagens por meio de Redes Neurais Artificiais.

Todos os algoritmos foram implementados na plataforma Matlab.

A sequência de processamento das imagens, na maioria dos

casos, é muito similar. Esta sequência ocorre conforme mostrado na figura 5,

descrita por Silva et al 2003. A topologia de rede, ou classificador, escolhido

para a tarefa foi a Rede de Hopfield (Haykin, 2001).

Figura 5: Arquitetura de Reconhecimento de Caracteres (modificado de Shigeno,2005)

3.1 Aquisição de dados

Consiste na etapa em que foram apresentados os dados que

serão utilizados no processo. Nesta etapa nenhum tipo de processamento foi

executado, de modo que estes dados estão todos com ruído.

Na aquisição de dados todas as imagens são compostas por

matrizes de pixels 20x20, representados os caracteres " "," "," ","0"X . As

imagens foram adquiridas através de um software em JAVATM produzido

especificamente para o trabalho de reconhecimento de caracteres. Os dados

utilizados neste trabalho foram os mesmos adquiridos e apresentados no

Page 31: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

19

trabalho de conclusão de curso de Shigeno (2005), o objetivo de tal

procedimento é fazer uma comparação de casos ou propor um método

alternativo para a situação proposta no trabalho mencionado. A figura 6 ilustra

o exemplo de uma imagem na etapa de aquisição.

Figura 6: Exemplo de imagem original 20x20 pixels

3.2 Extração dos atributos

3.2.1 Pré-processamento

O pré-processamento consiste da etapa fundamental para este

trabalho, visto que uma imagem adquirida diretamente teria suas dimensões

fixas - retardando o processo computacional – e também impedindo que o

modelo Hopfield fosse aplicado de forma efetiva. Para o modelo funcionar

corretamente, a imagem com ruído deve ter sua forma centralizada em torno

da chamada memória fundamental. Mais detalhes sobre como foi

implementado o algoritmo de Hopfield serão mostrados posteriormente.

Na figura 7 é comparada a imagem original com a memória

fundamental do modelo Hopfield.

Page 32: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

20

Figura 7: Imagem original versus ”padrão-ouro”

3.2.2 Centralização

O primeiro passo da etapa de pré-processamento é a

centralização da imagem em questão. O processo ocorre para caso de analisar

uma imagem que originalmente foi apresentada longe do centro da imagem.

O método utilizado para a centralização foi calcular o “centro de

massa” da imagem, ou seja, a média da concentração de pixels relevantes de

acordo com suas coordenadas. O próximo passo foi reescrever a matriz da

imagem somando a diferença entre esta média e o centro da matriz total.

A equação (3.1) ilustra como calcular o centro de massa das

coordenadas em x, onde NxN é o número total de pixels da imagens. A partir

da equação (3.2) consegue-se chegar ao resultado final de centralização, tendo

C como o ponto central da imagem. A figura 8 ilustra o resultado final de um

exemplo de centralização.

1

( ) / ( )NxN

C ii

x x NxN

(3.1)

( )r i Cx x C x (3.2)

Page 33: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

21

3.2.3 Segmentação da imagem

O processo de centralização é utilizado com a finalidade de

facilitar o passo seguinte, o de segmentação da imagem. O tipo de

segmentação utilizado foi uma maneira simplificada do método do quadrado,

uma adaptação do método descrito em Silva & Thomé (2003). Tal simplificação

foi possível por se tratar de imagens mais simples, com dimensões

relativamente pequenas.

A segmentação pelo método do quadrado consiste de se

verificar os limites relevantes da imagem, fechando um quadrado ao seu redor.

A partir das condições das equações (3.3) e (3.4) A figura 9 ilustra a imagem

após sua segmentação.

Figura 8: Exemplo de imagem centralizada

0i

i i

y

y y

0i

i i

x

x x

, se y(i)= -1

, se x(i)= 1

, se y(i)= 1

, se x(i)= -1

(3.3)

(3.4)

Page 34: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

22

Figura 9: Exemplo de imagem segmentada

3.2.4 Redimensionamento da imagem

Após a imagem centralizada e segmentada, o interesse é excluir

pixels que não serão relevantes durante o teste. Com a imagem segmentada,

todos os pixels externos aos limites estabelecidos são considerados

irrelevantes, deste modo, a imagem final terá suas dimensões estabelecidas

pelo tamanho da figura de interesse.

3.2.5 Convolução

O processo de convolução tem a função de filtrar ruídos

presentes na imagem para adequá-la ao tamanho de interesse. A prática

consistiu de percorrer pela imagem uma máscara 4x4, de modo que a média

dos pixels presentes na máscara seja convertida em um novo e único pixel na

matriz de saída, o processo foi executado conforme ilustrado na figura 4.

A etapa de convolução ocorre depois da segmentação da

imagem, deste modo, não se pode garantir que esta terá dimensões suficientes

para poder passar por esta etapa. Sendo assim, a solução adotada foi a de

executar a convolução somente para imagens que após a segmentação ainda

Page 35: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

23

estejam com dimensões maiores do que as desejadas, caso contrário, a

imagem foi processada de modo diferente, explicado na próxima subseção.

3.3 Restaurando a matriz para um determinado valor N

Foi explicado anteriormente o motivo de não se poder utilizar a

convolução para todas as imagens, visto que estas adquirem um tamanho

bastante variado entre si após a segmentação. A solução encontrada para

tratar do caso em que a convolução não seria possível foi a de reescrever a

matriz.

O processo de reescrever da matriz ocorre quando, após a

segmentação, a matriz da imagem em questão possui dimensões menores que

N, sendo N o tamanho escolhido como resultado da convolução. Para estes

casos, a prática foi muito simples, tomando a matriz da imagem, simplesmente

preenchendo-a com pixels da cor de fundo de modo a atingir um resultado com

o tamanho de interesse N. Após este preenchimento, uma nova etapa de

centralização se mostra necessária para o reposicionamento adequado da

imagem. A figura 10 ilustra o resultado de uma imagem após o processo de

convolução

Figura 10: Exemplo de imagem convoluída

Page 36: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

24

3.4 Classificador

O classificador escolhido para este trabalho foi o Modelo

Hopfield, uma prática não-supervisionada de RNA. Para este modelo, a

princípio foram definidos os chamados “padrões ouro” ou memórias

fundamentais, estes padrões são responsáveis pela capacidade do algoritmo

de estabelecer os pesos sinápticos corretos e, consequentemente, classificar

de maneira precisa a imagem em questão. As figuras 11, 12, 13 e 14 mostram

os padrões ouro implementados a fim de satisfazer os requisitos da etapa de

reconhecimento.

Conforme explicado anteriormente, um dos problemas em se

utilizar o modelo Hopfield é sua limitação ao “padrão-ouro”. Normalmente uma

imagem não converge para outra que não esteja presente na memória

fundamental, caso isto ocorra, o resultado é imprevisível. A proposta deste

trabalho para suprir esta desvantagem é um pré-processamento adequado em

conjunto com os padrões-ouro ótimos.

Figura 11: Padrão ouro “X” 10x10

Page 37: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

25

Figura 12: Padrão ouro " " 10x10

Figura 13: Padrão ouro “+” 10x10

Page 38: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

26

Figura 14: Padrão ouro “O” 10x10

Page 39: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

27

4 RESULTADOS E DISCUSSÃO

A metodologia utilizada neste trabalho foi apresentada no

capítulo anterior.

Neste capítulo serão mostrados os resultados obtidos pelos

algoritmos de pré-processamento e pelo classificador adotado. A última seção

contém a comparação dos resultados deste trabalho com o apresentado em

Shigeno (2005).

4.1 Resposta ao pré-processamento

Como visto anteriormente, a etapa de convolução reduz as

dimensões da matriz de resposta, sendo assim, faz parte do processo testar

até que ponto é possível filtrar a imagem sem causar uma perda excessiva de

dados.

A princípio as imagens foram reduzidas para 10x10. De acordo

com os resultados obtidos, foi verificado que era impossível reduzir ainda mais

as dimensões sem causar uma redução da porcentagem de acerto do

classificador. A saída então foi testar o sistema para dimensões maiores da

matriz pré-processada.

Neste capítulo serão mostrados os resultados de acordo com

duas situações, uma envolvendo imagens filtradas até atingir dimensão de

10x10, e outra com as imagens filtradas até atingir 14x14. Esta última

dimensão foi escolhida de acordo com a verificação feita durantes os testes, de

que neste ponto o sistema atua com maior precisão e o tempo de

processamento não se torna muito elevado. Um resumo desta verificação pode

ser observado no final deste capítulo.

Page 40: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

28

4.1.1 Resultado para imagens 10x10 pixels

O pré-processamento consistiu de vários testes com as

imagens, principalmente na etapa da convolução, a fim de verificar se a

imagem foi tratada de maneira adequada, tornando possível o bom

aproveitamento do algoritmo de Hopfield.

Inicialmente todas as imagens tinham dimensões 20x20,

independentemente de qual o posicionamento do caracter dentro da matriz.

A ideia inicial do trabalho era fazer o pré-processamento de modo a obter

uma matriz final de dimensões 10x10 pixels, diminuindo assim mais da

metade do esforço computacional.

Nas figuras 15, 16, 17 e 18 estão algumas das amostras com o

resultado do pré-processamento.

Figura 15: Pré-processamento do caractere ”+” 10x10

Percebe-se pelas imagens que o caractere mais afetado, isto é,

o que sofreu maior perda de dados foi o círculo, “O”. Isto se deve ao fato desta

Page 41: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

29

imagem possuir praticamente toda a sua informação próxima às bordas da

matriz. Um número de ciclos de convolução exagerado neste caso causou um

alto índice de perda de pixels relevantes na imagem. Já o restante das

amostras se tornou semelhante entre si, apesar de a priori serem todas

particularmente distintas. Após o pré-processamento, as imagens foram

aplicadas no classificador escolhido.

Figura 16: Pré-processamento do caractere “X” 10x10

4.1.2 Resultado para imagens 14x14 pixels

Após alguns testes, foi verificado que para matrizes 14x14 o

classificador se mostrou mais eficiente. Isto se deve ao fato de nessas

dimensões a imagem perder menos dados relevantes após os ciclos de

convolução.

Page 42: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

30

O problema verificado com os círculos, “O”, já não é tão

aparente, e o tempo de processamento continuou aceitável.

Conforme apresentado na subseção anterior, as figuras 19, 20,

21 e 22 ilustram algumas imagens após o pré-processamento.

Depois desta etapa, as imagens foram apresentadas à rede

Hopfield. A diferença entre os dois testes, além do tempo de

processamento, é o tamanho da matriz de memórias fundamentais, que

agora precisa ser reescrita para o tamanho desejado, neste caso, 14x14.

Figura 17: Pré-processamento do caractere " " 10x10

Page 43: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

31

Figura 18: Pré-processamento do caractere “ ” 10x10

Figura 19: Pré-processamento do caractere “+” 14x14

Page 44: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

32

Figura 20: Pré-processamento do caractere “O” 14x14

Figura 21: Pré-processamento do caractere “X” 14x14

Page 45: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

33

Figura 22: Pré-processamento do caractere 14x14

4.2 Resposta ao classificador

O classificador, conforme explicado anteriormente tem a função

de receber os dados das imagens e verificar se esta faz parte de algum grupo

previamente conhecido.

Nesta seção são mostradas as respostas do classificador aos

dois casos de pré-processamento descritos.

4.2.1 Resultado para imagens 10x10 pixels

Os testes com as imagens 10x10 apresentaram a avaliação de

um caso em que a prioridade foi o tempo de execução e não a porcentagem de

acerto do sistema.

Page 46: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

34

As figuras 23 e 24 ilustram a etapa de reconhecimento através

do método de Hopfield. Nestes dois casos pode-se notar a convergência

correta da imagem pré-processada ao seu padrão ouro correspondente. Por

outro lado, pela figura 25 é possível observar uma situação em que a

convergência não foi atingida e não foi possível encontrar o padrão desejado,

este caso é considerado uma indecisão do classificador. A tabela 4.1

corresponde à análise das imagens 10x10, os valores obtidos são resultado da

média de 100 testes e o tempo de processamento é o tempo total da execução.

Tabela 4.1 – Resposta às imagens 10x10

CaractereNº de

Iterações% Acerto % Erro % Indecisão

Tempo de

execução (s)

X 853 83,21 2,83 13,96 130

911 90,54 3,50 5,96 164

866 53,25 2,20 44,55 155

850 47,80 1,33 50,87 156

TOTAL 605

De acordo com a tabela 4.1, observa-se que existe maior

facilidade de reconhecimento dos caracteres “X” e “ ” devido à maior

simplicidade dos mesmos. Em contrapartida, para os outros dois casos a

porcentagem de acerto foi muito baixa.

Page 47: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

35

Figura 23: Exemplo de convergência “ ”

Figura 24: Exemplo de convergência “X”

Page 48: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

36

Figura 25: Exemplo de convergência incorreta (indecisão)

4.2.2 Resultado para imagens 14x14 pixels

As imagens pré-processadas ao tamanho 14x14 foram as que

apresentaram melhores resultados de classificação comparada ao tempo de

processamento. Deste modo, nesta seção são apresentados os resultados

para esta situação.

As figuras 26 e 27 mostram exemplos de convergência de

imagens para o caso em questão. A tabela 4.2, seguindo o exemplo da tabela

anterior, oferece a análise geral do caso.

Tabela 4.2 Resposta às imagens 14x14

CaractereNº de

Iterações% Acerto % Erro % Indecisão

Tempo de

execução (s)

X 863 94,30 1,32 4,38 390

951 96,51 1,06 2,43 412

894 75,23 3,47 21,30 350

973 70,56 2,44 27,00 408

TOTAL 1560

Page 49: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

37

Figura 26 Exemplo de convergência “ ”

Figura 27 Exemplo de convergência “ ”

Page 50: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

38

4.3 Comparação de casos

Conforme mencionado no capítulo 3, uma das propostas deste

trabalho foi implementar um método alternativo ao mostrado em Shigeno

(2005). Sendo assim, os testes foram executados com o mesmo banco de

dados utilizado no trabalho mencionado, porém, com um método de

reconhecimento distinto.

O trabalho de Shigeno propôs o reconhecimento das imagens

através dos algoritmos de RNA conhecidos como: LMS (Método dos Mínimos

Quadrados) e Backpropagation (Perceptron de múltiplas camadas com

retropropagação de erro).

O melhor caso apresentado por Shigeno mostrou um índice de

acerto de aproximadamente 92%. Porém, o tempo de processamento atingiu

valores de até 7 horas devido à alta complexidade computacional inerente ao

algoritmo backpropagation. Através do método apresentado neste trabalho, o

melhor caso mostrou uma média de acerto de aproximadamente 84%, um valor

considerado aceitável dado as limitações do classificador.

Pelo tempo de processamento, foi provado que o método aqui

descrito supera facilmente o apresentado por Shigeno, levando em média 1560

segundos. Deste modo, a comparação mostra vantagens de desvantagens

entre os dois métodos, servindo de base para trabalhos futuros. A tabela a

seguir contém o resumo dos resultados obtidos em comparação com Shigeno

(2005), os dados correspondem à porcentagem de acerto da rede.

Page 51: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

39

Tabela 4.3 Comparação

Hopfield 10x10 (%)

Hopfield 14x14 (%)

Shigeno sem convolução (%)

Shigeno com convolução (%)

X 83,21 94,30

77,8 92,5

90,54 96,51

53,25 75,23

47,80 70,56

Média 68,7 84,15

Tempo (s) 605 1560 24063 10327

Page 52: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

40

5 CONCLUSÃO E TRABALHOS FUTUROS

Este trabalho teve como objetivo o reconhecimento de imagens

através de Redes Neurais Artificiais. Tendo em vista que os dados utilizados

para os testes foram os mesmos adquiridos e apresentados no trabalho de

conclusão de curso de Shigeno (2005), parte do objetivo foi implementar uma

alternativa ao processo utilizado pelo mesmo, de modo que o índice de acertos

ou o tempo de processamento fossem melhorados.

Foram estudados os algoritmos LMS e backpropagation e

métodos de tratamento de imagens. Durante o trabalho, foi verificado que com

um tratamento adequado, as imagens poderiam ser reconhecidas por outro

algoritmo relativamente mais simples e muito mais veloz que os estudados

anteriormente, as Redes de Hopfield.

O resultado final foi bastante satisfatório. Mesmo para o pior

caso analisado, das matrizes 10x10, foi verificado um índice de acerto de até

90,54% dependendo do caractere em questão. Foi concluído que o grande

problema desta situação foram imagens que possuíam maior parte da

informação relevante próxima às bordas da matriz, isto causa uma grande

perda de informação conforme o processo de convolução é aplicado.

Foi verificado que o melhor caso foi para matrizes 14x14. O

índice de acerto obteve uma média acima de 84%.

Uma questão muito importante deste trabalho foi o tempo de

processamento necessário para fazer as classificações. O valor atingido pelo

método aqui descrito supera facilmente o mostrado em Shigeno (2005), até

quarenta vezes menor. Isto já era esperado, visto que o algoritmo

backpropagation implementado pelo mesmo possui complexidade

computacional extremamente alta. Mas isto não seria possível sem a etapa de

pré-processamento.

Durante o presente trabalho foram apresentados alguns

problemas e surgiram algumas ideias para melhorar o desempenho do sistema:

Page 53: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

41

Propor um método alternativo para aquisição dos dados, visando

melhorar a qualidade (resolução) das imagens e também facilitando

a etapa de tratamento das mesmas;

Analisar outros tipos de filtros e técnicas de processamento de

imagens, tendo como objetivo um melhor aproveitamento das

informações relevantes.

Também foram levantadas algumas sugestões para trabalhos

futuros:

Verificar diferentes algoritmos de classificadores;

Aumentar o número de caracteres a serem reconhecidos;

Verificar a viabilidade de implementar em linguagem C os algoritmos

com complexidade computacional maior, tornando assim mais rápido

o processamento;

Implementação de classificadores de caracteres manuscritos,

tomando como informações fotos escaneadas de baixa resolução.

Page 54: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

42

REFERÊNCIAS

[1] DUDA, R. O; HART, P. E; STORK, D.G. Pattern Classification. 2. ed. John

Wiley & Sons. New York. 2001.

[2] HAYKIN, S. Redes Neurais, Princípios e Prática. 2. ed. Bookman. Porto

Alegre. 2001.

[3] GENG, X., ZHOU, Z, SMITH-MILES, K. (2008) “Individual stable space: An

approach to face recognition under uncontrolled conditions” IEEE Transactions

on Neural Networks, v. 19, n. 8 , p. 1354-1368.

[4] KIRSTEIN, S., WERSING, H., KÖRNER, E. (2008) “A biologically motivated

visual memory architecture for online learning of objects” Neural Networks, v.

21, p. 65-77.

[5] NASUTION, B.B., KHAN, A.I. (2008) “A hierarchical graph neuron scheme

for real-time pattern recognition” IEEE Transactions on Neural Networks, v. 19.

n. 2, p. 212-229.

[6] PHUNG, S. L., BOUZERDOUM, A. (2007) “A pyramidal neural network for

visual pattern recognition” IEEE Transactions on Neural Networks, v. 18, n. 2, p.

329-343.

[7] SANTHANAM, T., SUMATHI, C.P., EASWARAKUMAR, K.S. (2007)

“Fingerprint minutiae filtering using ARTMAP” Neural Computing & Applications,

v. 16, p. 49-55.

[8] DA SILVA, V.F., CUNHA, A.R., RACZ, A., COSTA, A.H.R. (2003)

“Reconhecimento de escrita baseado em redes neurais artificiais utilizando B-

Splines e TDF”, In: VI Simpósio Brasileiro de Automação Inteligente, Bauru, set.

Page 55: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

43

[9] Shigeno, F. (2005), Reconhecimento de Caracteres Utilizando Redes

Neurais Artificiais, Monografia de Conclusão de Curso, Departamento de

Engenharia Elétrica, DEEL/UEL, Londrina, 62 p.

[10] Silva, E., Thomé, A.C.G. (2003) “Reconhecimento de caracteres

manuscritos usando time de redes neurais”, In: IV Encontro Nacional de

Inteligência Artificial (ENIA), Campinas, 02-08 ago., disponível em

http://www.labic.nce.ufrj.br/downloads/23sbc_enia_2003.pdf , acessado em 12

ago. 2008.

[11] GONZALEZ, R. C., WOODS, R.E., Processamento de Imagens Digitais.

Edgar Blücher Ltda. São Paulo. 2000.

[12] Kohonen, T. (1989). Springer series in information sciences. Self-organization and associative memory (third ed.). Springer-Verlag.

Page 56: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

44

Anexo A

Algoritmo de captação das imagens

a=textread('dados20.txt'); % faz a leitura dos dados a partir do arquivo de texto

x=reshape(a,20,20,420); % redimensiona as matrizes

for i=1:420,

x(:,:,i)=x(:,:,i)'; % matriz transposta

end

%----- índices das figuras, separa por tipo de caractere -------

i_cruz=textread('cruz.txt');

i_tri=textread('triangulo.txt');

i_xis=textread('xis.txt');

i_circ=textread('circulo.txt');

for i=1:105,

cruz(:,:,i)=x(:,:,i_cruz(i));

tri(:,:,i)=x(:,:,i_tri(i));

xis(:,:,i)=x(:,:,i_xis(i));

circ(:,:,i)=x(:,:,i_circ(i));

end

Page 57: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

45

Anexo B

Algoritmo de Centralização

[m,n]=size(x(:,:,r)); % recebe a imagem

a=1;

b=1;

x(:,:,r)=x(:,:,r)' % transposta

%----- varredura para encontrar o centro de massa ----------

for i=1:m,

for j=1:n,

if x(i,j,r)==1

t1(a)=i;

t2(b)=j;

a=a+1;

b=b+1;

end

end

end

t1=round(10-mean(t1));

t2=round(10-mean(t2));

xf=zeros(m,n)-ones(m,n);

%------ reescreve a figura fazendo o deslocamento para centralizar ------

for i=1:m,

for j=1:n,

if x(i,j,r)==1,

if(i+t1)<1,

i=(abs(t1)+1);

end

if(j+t2)<1,

j=(abs(t2)+1);

end

xf((i+t1),(j+t2))=x(i,j,r);

end

end

end

Page 58: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

46

x(:,:,r)=xf;

%---- condições para formar o quadrado -------

for i=1:m, % varredura da esquerda para a direita e de cima para baixo

if x(i,:,r)==-1

m1=i; % retorna limite da imagem

else

if i==1,

m1=1;

end

break

end

end

for i=m:-1:1, % varredura da direita para a esquerda e de baixo para cima

if x(i,:,r)==-1,

m2=i; % retorna limite da imagem

else

if i==m,

m2=m;

end

break

end

end

for j=1:n, % laço para completar com zeros os pontos fora da imagem

if x(:,j,r)==-1,

n1=j;

else

if j==1,

n1=0;

end

break

end

end

for j=n:-1:1,

if x(:,j,r)==-1,

n2=j;

else

if j==n,

Page 59: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

47

n2=n;

end

break

end

end

d1=m2-m1; % tamanho das arestas do quadrado

d2=n2-n1;

% ---- condições de correção do quadrado ------

if d1<d2

z=(d2-d1)/2;

m1=m1-z;

m2=m2+z;

if m2>m,

m2=m;

end

else

z=(d1-d2)/2;

n1=n1-z;

n2=n2+z;

if n2>n,

n2=n;

end

end

for i=1:m1, % reescrevendo zeros fora do quadrado da imagem

x(i,:,r)=0;

end

for i=20:-1:m2,

x(i,:,r)=0;

end

for j=1:n1,

x(:,j,r)=0;

end

for j=20:-1:n2,

x(:,j,r)=0;

end

Page 60: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

48

Anexo C

Algoritmo de Convolução

function [a] = cnv(a,cnvmax); % definição da função

tra = cnvmax;

B = centraliza(a); % executa função de centralização

Di=0;

Dj=0;

ok=0;

for i1=1:20, % laço para linha

for j1=1:20, % laço para coluna

if (B(i1,j1)~=0),

if ok==0,

Di = i1-1;

Dj = j1-1;

ok=1;

end

X(i1-Di, j1-Dj)=B(i1,j1);

end

end

end

B=0;

[m,n] = size(X);

if m>n,

X(:,n+1)=-1; % correção do quadrado

else if n>m,

X(m+1,:)=-1; % correção do quadrado

end

end

if m>n,

X(:,n+1)=-1;

else if n>m,

X(m+1,:)=-1;

end

end

%---- máscara de convolução -------

[m,n]=size(X);

a=X;

X=0;

Page 61: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

49

if (m>tra), % laço convolução

for t=1:(m-tra),

for i2=1:(m-t),

for j2=1:(m-t),

b(i2,j2) = (a(i2,j2)+a(i2+1,j2)+a(i2,j2+1)+a(i2+1,j2+1))/4; % média dos pixels da

% máscara 4x4

end

end

a=b;

b=0;

end

end

Page 62: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

50

Anexo D

Algoritmo de Hopfield

[cruz, xis, tri, circ] = retorna_img();

nMax = 1000;

cnvmax = 14; % valor máximo de cnv

i=9;

for i=1:105,

[cruz_pp(1:cnvmax,1:cnvmax,i)] = cnv(cruz(:,:,i)',cnvmax);

[xis_pp(1:cnvmax,1:cnvmax,i)] = cnv(xis(:,:,i)',cnvmax);

[tri_pp(1:cnvmax,1:cnvmax,i)] = cnv(tri(:,:,i)',cnvmax);

[circ_pp(1:cnvmax,1:cnvmax,i)] = cnv(circ(:,:,i)',cnvmax);

end

xa(:,:,1) = reshape(cruz_pp,numel(cruz_pp(:,:,1)),105);

xa(:,:,2) = reshape(xis_pp,numel(xis_pp(:,:,1)),105);

xa(:,:,3) = reshape(tri_pp,numel(tri_pp(:,:,1)),105);

xa(:,:,4) = reshape(circ_pp,numel(circ_pp(:,:,1)),105);

MF(:,1) = reshape(cruz_ouro,numel(cruz_ouro(:,:)),1);

MF(:,2) = reshape(xis_ouro,numel(xis_ouro(:,:)),1);

MF(:,3) = reshape(tri_ouro,numel(tri_ouro(:,:)),1);

MF(:,4) = reshape(circ_ouro,numel(circ_ouro(:,:)),1);

N=size(MF,1);

W = ((MF*MF').*(ones(N,N)-eye(N)))/N; % definição da matriz de pesos

for L=1:11,

x=xa(:,L,4);

x = reshape(x,cnvmax,cnvmax); % formata a matriz para vetor

x0 = x;

xnA = reshape(x0,numel(x0),1);

if max(xnA)==1,

xnA=xnA;

else

xnA = xnA+0.55;

end

xnD = xnA;

Page 63: Universidade Estadual de Londrina · caixeiro viajante temos n cidades a percorrer e o objetivo é definir o menor percurso entre elas, passando uma única vez por cada cidade. O

51

n = 1;

while n <= nMax, % laço definido pelo número de iterações desejadas

a = rand(1,N); % gera posição aleatória de varredura da imagem

[b c] = min(a);

i = c;

xnD(i,1) = sign(W(i,:)*xnA);% função sinal

Y(:,n) = xnD;

xnA = xnD;

n = n + 1; % incrementa variável contadora

end

yi = reshape(Y(:,nMax),cnvmax,cnvmax); % redimensiona imagem para matriz

end