monografia 2.4

Post on 13-Jun-2015

504 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

ANHANGUERA EDUCACIONAL SA.Faculdade Anhanguera de ValinhosCurso de Ciência da Computação

André Luiz Pitante,Daniel Vecchiato e

Felipe Kaufmann Corrêa

Redes Neurais para a Identificaçãode Padrões em Imagens de Mapas

Valinhos2008

1

André Luiz Pitante,Daniel Vecchiato e

Felipe Kaufmann Corrêa

Redes Neurais para a Identificaçãode Padrões em Imagens de Mapas

Monografia apresentada, como exigência parcial para a obtenção do grau de Bacharel em Ciência da Computação, às Faculdades Integradas de Valinhos, Faculdades de Ciências Administrativas, sob a orientação do prof. Ms. Maurício Morais, prof. Dra. Jaqueline, do prof. Nicola Zagari, da profa. Ms. Janaine.

Valinhos

2

2008André Luiz Pitante,Daniel Vecchiato e

Felipe Kaufmann Corrêa

Redes Neurais para a Identificaçãode Padrões em Imagens de Mapas

Trabalho de conclusão de curso aprovado em 18 de dezembro de 2008 como exigência parcial para a obtenção do grau de Bacharel em Ciência da Computação das Faculdades Anhanguera de Valinhos, Curso de Ciência da Computação, pela banca examinadora constituída pelos professores:

________________________________Maurício Morais

Orientador

________________________________Jaqueline

________________________________Nicola Zagari

________________________________Janaine

3

Valinhos2008

AGRADECIMENTOS

A todos os familiares, amigos, professores e colegas que ajudaram a realizar o

trabalho.

4

5

“Por pensar ser o trabalho mais difícil que existe,

só poucos se dedicam a isso.”

Henry Ford, 30.07.1863 - 07.04.1947

RESUMO

PITANTE, André Luiz; VECCHIATO, Daniel; CORRÊA, Felipe Kaufmann. Redes Neurais para a Identificação de Padrões em Imagens de Mapas. Valinhos 2008, Monografia de trabalho de conclusão de curso (Ciência da Computação) FAV, 2008

O objetivo deste trabalho é o reconhecimento de padrões em imagens de

satélite, utilizando redes neurais artificiais. Para o caso de teste, optou-se por

identificar áreas verdes nas imagens de mapas tiradas por satélite. Tais imagens

podem ser escolhidas pelo usuário. As imagens utilizadas foram obtidas a partir de

ferramentas como o Google Earth e Maps. Um programa escrito na linguagem Java

foi usado para fazer a segmentação da imagem. Este mesmo programa também fez

o tratamento e transformou a imagem em código binário gravado em um arquivo. A

importância deste processo de segmentação consiste em que ele seja feito para que

o programa seguinte consiga entender a imagem, pois os arquivos de entrada só

serão arquivos texto com códigos em binário. Uma rede neural artificial criada para o

trabalho, com o uso do JavaNNS, foi treinada para que a área verde pudesse ser

encontrada no mapa. Quanto maior o número de imagens fornecidas para a rede

neural a ser treinada mais experiente esta ficará. A partir deste experimento

conseguiu-se obter resultados que demonstram que a rede foi treinada para

identificar o padrão.

Palavras-chave:

áreas verdes, segmentação de imagem, Redes neurais artificiais

6

LISTA DE FIGURAS

Figura 1 – Histórico do desmatamento...............................................................15

Figura 2 – Representação do Neurônio Biológico..............................................19

Figura 3 – Modelo de Neurônio Artificial.............................................................21

Figura 4 – Função de saída................................................................................21

Figura 5 – Função de Ativação...........................................................................22

Figura 6 – Função logística.................................................................................22

Figura 7 – Rede Neural Monocamada.................................................................23

Figura 8 – Modelo de Rede Neural Múltiplas Camadas......................................24

Figura 9 - Diagrama de treinamento de algoritmo Backpropagation....................27

Figura 10 – Rede Neural não treinada................................................................27

Figura 11 – Interface de ferramentas para o treinamento....................................28

Figura 12- Rede Neural em processo de treinamento..........................................28

Figura 13 – Saída de neurônios não ativada........................................................25

Figura 14 – Saída de neurônios ativada...............................................................26

Figura 15 – exemplo de imagem não segmentada...............................................36

Figura 16 – Exemplo de imagem fragmentada.....................................................37

Figura 17 – Imagem escolhida para gerar as amostras........................................38

7

LISTA DE TABELAS

Tabela 1 – Médias Obtidas pela técnica 10 fold Cross Validation, 300 ciclos...........45

Tabela 2 – Médias Obtidas pela técnica 10 fold Cross Validation, 100 ciclos...........45

Tabela 3 - Resultados pela técnica de 10 fold Cross-validation, 100 ciclos...............52

8

LISTA DE SIGLAS

INPE – Instituto Nacional de Pesquisas Espaciais

JavaNNS – Java Neural Network Simulator

RNA – Redes Neurais Artificiais

9

SUMÁRIO

1. Introdução........................................................................................................10

1.1 Objetivo......................................................................................................11

1.2 Proposta.....................................................................................................12

2. Pesquisa Bibliográfica.....................................................................................14

2.1 Diminuição das Áreas Verdes...................................................................14

2.2 Análise da Situação Atual..........................................................................15

2.3 Ferramentas para Captura das Imagens...................................................16

2.4 Segmentação de Imagens Digitais............................................................17

2.5 Arquitetura de Redes Neurais Artificiais....................................................18

2.5.1 Tipos de Redes Neurais Artificiais.......................................................23

2.6 Treinamento...............................................................................................24

2.7 Aprendizado de Máquina...........................................................................26

3. Trabalhos correlatos........................................................................................30

3.1 Integração entre redes neurais e correlação para a identificação

de pontos de apoio pré-sinalizados. .........................................................30

3.2 Detecção de volume de tráfego de veículos

proporcionada por visão computacional via redes neurais.......................31

4. Metodologias...................................................................................................33

4.1 Metodologia de Pesquisa..........................................................................33

4.2 Metodologia de Desenvolvimento de Software.........................................34

5. Desenvolvimento.............................................................................................35

5.1 Programa que Segmenta..........................................................................35

5.2 Projeto da Rede Neural.............................................................................36

6. Avaliações e Testes........................................................................................40

6.1 Treinamento da Rede................................................................................40

10

6.2 Coleta dos Resultados..............................................................................44

7. Análise dos Resultados..................................................................................45

8. Conclusão.......................................................................................................46

8.1 Limitações.................................................................................................47

8.2 Trabalhos Futuros.....................................................................................47

Referências Bibliográficas....................................................................................49

1. Introdução

Atualmente a questão a respeito do meio ambiente tornou-se um assunto

importante, tanto por parte das empresas quanto pelas pessoas. A grande parte da

vegetação no mundo foi devastada por haver principalmente o interesse para usar o

espaço quanto usar para a produção a madeira. Por meio de satélites que

monitoram a face da terra, podem também fazer o controle das áreas desmatadas

de um país. Poucos programas que fazem a análise de uma área possuem um

recurso semelhante, normalmente não são acessíveis para o público. O sistema de

uma empresa ou uma aplicação que faça identificação com o uso de um computador

de alta capacidade pode gerar um custo bem elevado para resolver o problema.

Existem empresas que fazem esse trabalho, mas é necessário pagar alguma taxa

mensal para elas realizarem este estudo e trazerem os resultados atualizados.

Ao longo do trabalho procura-se apresentar como é realizada a identificação

de áreas verdes em imagens de satélite. Para isso é necessária uma rede neural

artificial que faça o trabalho de reconhecimento do padrão, mesmo que existam

outras formas de realizar essa tarefa. Outros métodos de identificação podem ser

usados nesse processo, com o estudo feito, o mais adequado envolve um programa

de segmentação e outro para a criação da rede neural.

Além da rede neural artificial são necessárias ferramentas para fazer a

captura da imagem, seu tratamento e sua segmentação. O Google Maps ou Earth,

são as ferramentas gratuitas disponíveis na Internet, que fornecem as imagens dos

mapas, que serão usados para os treinamentos e os testes. A função da rede neural

artificial é realizar o reconhecimento do padrão escolhido, no caso as áreas verdes.

Esta rede se assemelha com a rede neural biológica, a qual identifica, por exemplo,

11

uma pessoa e seu nome correspondente, sendo apta a reconhecê-la novamente no

dia seguinte.

O procedimento da segmentação da imagem, é um processo que divide a

imagem em pedaços menores para depois tratá-los ajuda a simplificar o processo de

reconhecimento. Códigos foram estudados para a implementação de um programa

na linguagem Java que pudesse fazer o tratamento e transformar a imagem em um

código binário dentro de um arquivo. Este processo foi necessário, pois o programa

JavaNNS, que foi usado para criar a rede neural, só aceita arquivos em códigos

binário como entrada. Os treinamentos e testes realizados permitiram identificar a

eficiência da rede neural artificial criada.

1.1. Objetivo

Hoje em dia existem várias aplicações de reconhecimento de padrões, que

são implementados para identificar objetos em imagens. Existem softwares que

fazem a identificação de rostos humanos com a ajuda de algoritmos que estão

dentro de redes neurais artificiais. Esses sistemas são tanto usados em alguns

aeroportos, quanto em notebooks como identificação visual ao invés de usar uma

senha para abri-lo.

A idéia inicial deste projeto consistia na elaboração de um programa que

fizesse a identificação de pessoas por meio de fotos tiradas delas com a ajuda de

uma câmera. A identificação deste rosto precisaria de uma rede neural artificial para

identificar o padrão. Um aplicativo em modo gráfico ajudaria a pessoa, que faz o

controle deste sistema, a identificar o rosto que se assemelha mais com o padrão

escolhido a partir da imagem de um banco de dados do rosto da pessoa no monitor.

O tempo disponível para a criação deste tipo de sistema que fizesse tal trabalho de

identificação de rostos era insuficiente.

Identificar formas geométricas nas imagens de satélite foi algo que fez mudar

a forma de se ver um mapa. Rotatórias tem formato de círculos, retângulos tem o

formato de quarteirões entre outras formas que podem ser encontradas. A outra

12

idéia possível, foi a escolhida para a realização deste trabalho, isto é, a identificação

de padrões em uma imagem de satélite de uma área urbana. O trabalho foi

simplificado para ajudar a finalizar em tempo, e realizar a tarefa que era identificar

áreas verdes. Outras possíveis soluções também foram estudas para o nosso

trabalho, como a de implementar uma rede neural artificial para o trabalho, junto com

uma interface que ajudaria o usuário a escolher um padrão de interesse em uma

imagem. Para isso houve a simplificação, pela falta de tempo não teria como fazer o

programa, dessa maneira, escolher uma ferramenta para criar uma rede neural

ajudou em boa parte do trabalho. No meio de várias opções de aplicativos que

fariam este processo, o JavaNNS foi a melhor opção além de ser um software livre1,

também traz uma gama de opções para criar e configurar uma rede.

Mas a principal idéia de fazer a identificação da área verde em um mapa, foi o

mais próximo alcançado. Para isso o trabalho foi dividido em etapas, com um

programa que captura a imagem original tirada da Internet, com tamanhos definidos,

converte em preto e branco e depois a transforma em um arquivo binário. Isso foi

necessário, pois o programa JavaNNS só aceita este tipo de arquivo como entrada.

A rede criada pelo mesmo programa passa por uma fase de treinamento, para

depois obter os resultados por meio dos testes, para assim identificar o padrão que é

a área verde.

1.2 Proposta

Este trabalho propõe solucionar a questão da identificação de áreas verdes

em mapas por meio de softwares que utilizam recursos facilmente encontrados no

mercado. As ferramentas que disponibilizam gratuitamente as imagens de satélite,

serão usadas no trabalho, como o Google Maps. Poderia ser qualquer outra

ferramenta do gênero, mas no caso é a mais apropriada, pois possui maior

quantidade de imagens atualizadas e uma boa qualidade.

A idéia principal para o trabalho, uma vez definida, precisa ser colocada em

prática. A região de Campinas foi escolhida para fazer a busca de áreas verdes.

1 Software Livre, um programa de computador, que pode ser usado, estudado por programadores.

13

Com isso definido neste caso era necessário fazer a segmentação de imagem, para

depois passar a usar a rede neural para fazer a identificação do padrão. Poucos

recursos precisariam ser usados tanto financeiramente quanto em relação à

configuração física no caso um hardware, um notebook facilmente encontrado em

lojas online a um preço baixo.

Em relação ao software, a ferramenta gratuita Google Maps, usada para fazer

a captura das imagens que serão usadas no trabalho. O Gimp um programa de

edição de imagens também gratuito, usado para fazer o corte das imagens no

tamanho compatível que será usado para o trabalho. Código aberto em linguagem

Java que ajudaram a criar o código que faz a parte de segmentação da imagem,

transforma primeiro em uma imagem preta e branca, separa em pedaços e depois

em um código binário. O último programa que também não tem custo, o JavaNNS,

que é responsável pela criação, treinamento e testes das redes neurais artificiais.

Com isso tudo que foi pesquisado, escolhido e planejado será possível

realizar todo o trabalho, que passa por vários testes, que serão mostrados ao longo

deste.

14

2. Pesquisa Bibliográfica

2.1 Diminuição das Áreas Verdes

As áreas arborizadas não são muito valorizadas nas cidades, por causa disso

são escassas. Apesar de existirem estudos, que apontem a importância das árvores

para a redução das emissões dos gases CO22, que são emitidos em grande parte

pelos automóveis que contribuem com o efeito estufa [O Estado de São Paulo,

2007]. Nos parques de cidades são encontradas mais áreas com vegetação com

mais freqüência, são lugares que tem uma temperatura mais baixa.

A Amazônia está seriamente devastada devido ao desmatamento ilegal e

também à falta de controle do mesmo. As plantações em grande ascensão, como a

cana-de-açúcar ou a soja, por exemplo, também são um problema que não é

discutido. São poucos os produtores que buscam formas alternativas para aumentar

a produção sem ter que aumentar a quantidade de área plantada. Outro problema

também é a pecuária, que cresce conforme a procura pela carne, tanto para o

mercado interno como para a exportação.

Estudos do Instituto Nacional de Pesquisas Espaciais (INPE) [Estado de São

Paulo, 2008], mostram que o desmatamento aumenta a cada ano que passa e áreas

desmatadas em maior número estão concentradas na região do Mato Grosso. As

queimadas contribuem para estragar a mata, além de haver também pequenas

fábricas na região, que destroem florestas inteiras para transformar em carvão.

Empresas que precisam de madeira para construir móveis, casas, podem estar

ligadas ao desmatamento ilegal que extraem madeira sem a permissão. O governo

também não faz algum tipo de controle, na região da Amazônia, mesmo havendo

2 Dióxido Carbono

15

várias leis contra o desmatamento. Isso tudo contribui com o aquecimento global,

que é muito discutido fora do país, que é um dos paises que possui uma das

maiores áreas de cobertura vegetal.

Figura 1 – Histórico do desmatamento.(O Estado de São Paulo, dez 2008)

Este trabalho, que faz a identificação de áreas verdes, pode contribuir com a

reflexão em torno da questão do desmatamento, bastante presente no Brasil,

podendo auxiliar nas propostas de preservação e reflorestamento. Mesmo havendo

outros sistemas de maior porte, que fazem o controle como, por exemplo, o Sistema

de Detecção do Desmatamento em Tempo Real (Deter) [O Estado de São Paulo,

2008], que avalia mensalmente a situação do desmatamento brasileiro, este estudo

pode fornecer uma proposta mais acessível em termos financeiros. O Deter mostra

ser um recurso de custo muito elevado, no que se refere ao acesso a esse tipo de

dado.

2.2 Análise da situação atual

Hoje já existem várias empresas que possuem satélites ou mesmo

conseguem fontes de terceiros por meio de acordos, permitindo a realização de

mapeamentos de uma determinada região ou de um país. Algumas dessas

empresas fornecem essas fontes de dados, que são mapas, de forma gratuita. É o

caso da Google, que consegue fornecer mapas com fotos via satélite com qualidade

16

de serviços pagos, mas fornecidos gratuitamente ao público. Tanto o Maps quanto

Earth possuem a mesma base de dados, sendo o segundo com alguns recursos a

mais, pois o primeiro é uma ferramenta que roda dentro do navegador de Internet.

Existem muitas ferramentas semelhantes a essas com a mesma proposta que,

consistem na localização de endereços de interesse do usuário, ou na busca de

lugares que a pessoa gostaria de conhecer. Identificar áreas com mata atlântica na

região sudeste, por exemplo, para fazer uma análise de quanto uma área foi

devastada, criando assim, estatísticas conforme a área estudada.

Grandes empresas ou mesmo corporações fazem o uso desses recursos para

identificar áreas de interesse. Há empresas que utilizam a ferramenta para

localização, como é o caso da USS, que dá assistência a seguradoras de carros, e

faz a busca do guincho mais próximo ao local onde haja um carro que precise ser

retirado. A empresa constatou que houve uma redução do tempo de espera do

cliente e o retorno do guincho a sua central, havendo assim, uma economia em

termos de custo.

2.3 Ferramentas para Captura das Imagens

Para conseguir as imagens dos mapas, precisou-se fazer uso das

ferramentas de mapas como Google Maps e Earth. Ambas são gratuitas e com isso

é possível conseguir imagens de satélite de boa qualidade para a pesquisa sem

qualquer custo. As fontes desses aplicativos são de satélites que tiram as fotos de

maior distância, enquanto as fotos mais próximas são tiradas de aviões. São vários

satélites que cobrem o mundo, com isso as fotos adquiridas são mescladas para se

obter um grande mapa. Ambos os programas utilizam a mesma base de fotos, que

são atualizados. O número de recursos de cada um varia em torno de cada

aplicação, por exemplo no Google Maps há um número reduzido de recursos por ser

um programa que roda no navegador de Internet. A escala de cada um também, se

diferencia, sendo o Google Earth um pouco mais preciso que o outro, pois existem

recursos como um medidor de distâncias, por exemplo, que calcula conforme os

pontos escolhidos no mapa. Além de outros recursos visuais que tanto servem para

embelezar a forma de como são explorados os mapas, quanto para indicar um

17

detalhe importante que pode ser mostrado por meio de setas, por exemplo.

Além dos recursos supracitados foi utilizado o programa Gimp para recortar

um pedaço de uma imagem maior e colocar no tamanho de uma imagem

manipulável pelo programa de segmentação. O mesmo também foi necessário para

salvar as imagens capturadas, pelo método utilizando-se da tecla “Print Screen” que

é encontrada em qualquer teclado. Para fazer o tratamento da imagem antes de

poder passar ao programa que segmenta a imagem e depois a transforma em um

arquivo em binário, é necessário ter a imagem com um tamanho compatível. A

imagem adquirida da Internet é maior do que a necessária para o projeto. O

programa permitiu realizar o recorte de um pedaço da imagem. Depois a imagem

está pronta para ser passada para o programa que fará a sua segmentação .

2.4 Segmentação de Imagens Digitais

Referências

A segmentação de imagens é um dos principais processos da Visão Artificial.

O que ocorre nesse processo é uma análise, o uso de computador para separar as

regiões que compõem uma imagem, para que seja possível a extração de suas

características, como recortes ao redor de objetos ou espaços de interesse.

A segmentação subdivide uma imagem em suas partes ou objetos de

interesse. Tal subdivisão é realizada levando-se em conta o problema abordado.

Algoritmos de segmentação permitem achar diferenças entre duas ou mais regiões,

e distingui-los uns dos outros, como um avião de um céu azul no fundo.

Outra característica da segmentação é atribuir um rótulo a cada pixel da

imagem, identificando-o a qual grupo ele pertence, de acordo com suas

características em interesse. Esses algoritmos são geralmente baseados em valores

de níveis de cinza, ou seja, as propriedades básicas descontinuidade e similaridade

que o compõem.

Existem diversas técnicas de segmentação de imagens, dentre as quais

existe a técnica por detecção de descontinuidades, por região ou limiar

(thresholding) ou técnicas mais avançadas como a utilização de redes neurais

artificiais.

18

A técnicas baseadas em limiarização (thresholding) é uma das mais

importantes do processo de segmentação de imagens por ser computacionalmente

mais utilizadas em comparação a outras técnicas. Tendo como exemplo uma

imagem f(x, y), composta por apenas dois objetos distintos, sendo que, cada objeto

possui uma média do nível de cinza bem diferenciada em seu histograma ,

Tais imagens podem ser facilmente segmentadas pela utilização de um

simples valor de limiar. Este limiar teria um valor intermediário entre as

concentrações de nível de cinza de cada objeto.

Esta é a técnica mais simples de limiarização, conhecida como limiarização

bimodal. Este processo também é denominado binarização. Se uma imagem f(x, y)

possuir um histograma multimodal, será necessário a determinação de valores para

mais de um limiar. Esta é a técnica é conhecida como limiarização multimodal. É

menos confiável que a bimodal, devido à dificuldade em estabelecer múltiplos

limiares que efetivamente isolem as regiões de interesse.

Para obter integridade na segmentação, as técnicas de limiarização devem

garantir a menor taxa de erro possível, ou seja, assegurar uma alta probabilidade de

que o pixel tenha sido corretamente classificado e que os dados segmentados

contenham a maior quantidade possível de informação útil.

A escolha de um valor pode ser difícil para casos em que as propriedades

espectrais dos dados não revelem informações suficientes. Sendo que em alguns

casos pode ser necessário determinar o número de limiares para a segmentação de

um volume de dados, quando sua natureza não é bem conhecida.

2.5 Arquitetura de Redes Neurais Artificiais (RNAs)

Referências

Redes Neurais Artificiais são modelos matemáticos que simulam o

funcionamento de redes de neurônio biológico. No entanto, para entender o

funcionamento das redes neurais artificiais, o funcionamento do neurônio biológico

precisa ser esclarecido.

Um neurônio biológico é uma estrutura celular formada por dendritos, axônio

19

e soma, compondo diferentes tipos de redes ou sistemas especialistas, assim como

diferentes configurações celulares moldadas pela natureza, a fim de atender certos

critérios de especialização.

Segundo a definição encontrada em Stuart Russel e Peter Norvig, em sua

obra Inteligência Artificial Tradução da Segunda Edição, “Um neurônio é uma célula

no cérebro cuja principal função é coletar, processar e disseminar sinais

elétricos”(Inteligência Artificial, pág. 713).

Na Figura 1 é ilustrado um neurônio biológico:(todas as figuras devem ser

mencionadas no texto)

Figura 2 - Representação do neurônio biológico. (UNISANTA, 2006)

Já achei a fonte da imgem Zur

Dendritos têm por função receber os estímulos transmitidos por outros

neurônios. Soma ou chamado corpo celular é responsável por coletar e combinar as

informações vindas de outros neurônios e o Axônio é responsável por transmitir

estímulos para outras células.

As sinapses são as interligações entre os neurônios, possuindo cada neurônio

em média de mil a dez mil sinapses. O cérebro humano possui cerca de 10¹¹

neurônios, e um número de sinapses que pode chegar a mais de 10¹4, o que

possibilita a formação de redes muito complexas. O neurofisiologista McCulloch e o

matemático Water Pitts (1943)(Referência) realizaram um trabalho que fazia a

Pri, 11/12/08,
Falta incluir o anode publicação do livro
Pri, 11/12/08,
É legal colocar de onde foi conseguida essa imagem. Se for do livro citado acima, colocar idem, p. xx.
Pri, 11/12/08,
Falta incluir o número da página em que se encontra esta citação.

20

analogia entre as células vivas e o processo eletrônico, simulando o comportamento

do neurônio natural, que o neurônio possuía apenas uma saída, que era uma função

do valor de suas entradas.

O Neurônio de McColloch e Pitts consiste basicamente de um neurônio que

executa funções lógicas. Os neurônios produzem somente resultados binários e as

conexões transmitem exclusivamente zeros e uns. As suas redes são compostas de

conexões com peso, de tipos excitatórios e inibitórios. Cada unidade é caracterizada

por um certo limiar (threshold) q.

O psicólogo Donald Hebb (1949) (Referência)demonstrou que a capacidade

de aprendizagem em redes neurais biológicas vem da alteração da eficiência

sináptica, ou seja, a conexão somente é reforçada se tanto as células pré-sinápticas

quanto as pós-sinápticas estiverem excitadas; Hebb foi o primeiro a propor uma lei

de aprendizagem específica para as sinapses dos neurônios.

Em 1951 foi construído o primeiro neuro computador denominado “Snark”,

criado por Marvin Minsky. O Snark operava ajustando automaticamente seus pesos

sinápticos.

Em 1958, Rosemblatt(Referência) mostrou em seu livro Principles of

Neurodynamics o modelo dos “Perceptrons”. Nele os neurônios eram organizados

em camada de entrada e saída, na qual os pesos das conexões eram adaptados a

fim de atingir a eficiência sináptica usada no reconhecimento de caracteres.

Sinapses (entrada) com seus pesos associados. Junção somadora,

responsável pelo processamento. Função de ativação, ativa ou não a saída do

neurônio.

Pri, 11/12/08,
Seria interessante explicar melhor este processo.
Pri, 11/12/08,
Falta incluir o ano do livro.
Pri, 11/12/08,

21

wk1

wk2

wkm

f(uk)

x1

x2

xm

uk

wk0=bk

yksinais

deentrada

pesossinápticos

junçãoaditiva

(bias)

funçãode ativação

saída

wk0x0=+1

entrada fixa

Funçãodegrau

Figura 3 – Modelo de Neurônio Artificial (Referência)

A operação de um neurônio artificial se resume ao modo como os sinais são

apresentados à entrada (x1 à xm). Cada sinal é multiplicado por um peso que indica

sua influência na saída da unidade (wk), na qual é feita a soma ponderada dos sinais

que produz um nível de atividade (uk), a função de ativação f(uk) tem a função de

limitar a saída e introduzir a não-linearidade ao modelo. O bias bk tem o papel de

aumentar ou diminuir a influência do valor das entradas, podendo-se considerar o

bias como uma entrada de valor constante 1, multiplicado por um peso igual a bk.

Matematicamente a saída pode ser expressa por:

Figura 4-Função de saída

m

jkjkjkk bxwfufy

1

)(

Pri, 11/12/08,
Tem a fonte dessa imagem?

22

Considerando o bias como entrada de valor x0=1 e peso wk0=bk também pode ser

expressa por:

Funções de ativação

Figura 5- Função de ativiação

Função logística

Figura 6 – Função logística

A Função Logística determina o tipo de operação é realizada entre os neurônios, de

modo a propagar valores que variam entre 0 e 1 de um neurônio a outro ou de uma

camada a outra.

As RNAs em suas características gerais, consistem em modelos adaptativos

treináveis, podendo representar domínios complexos (não lineares), capazes de

generalização diante de informação incompleta, além de realizar o armazenamento

associativo de informações. Elas processam informações Espaço/Temporais e

possuem grande paralelismo, o que lhes confere rapidez de processamento.

Usualmente as camadas são classificadas em três grupos: Camada de

Entrada, Camadas Intermediárias ou Ocultas e Camada de Saída. Na Camada de

Entrada os padrões são apresentados à rede, enquanto nas Camadas

Intermediárias ou Ocultas são realizadas a maior parte do processamento, por meio

das conexões ponderadas, que podem ser consideradas como extratoras de

características. Por fim, na Camada de Saída o resultado final é concluído e

apresentado.

23

2.5.1 Tipos de Redes Neurais Artificiais

Existem basicamente 3 tipos básicos de arquitetura de RNAs: (Referência)

Feedforward de uma única camada – Sinais percorrem a rede em uma única

direção, da entrada para saída.

Feedforward de múltiplas camadas - Sinais percorrem a rede em uma única

direção, da entrada para saída.

Redes recorrentes – Saída de neurônios alimentam neurônios da mesma

camada inclusive o mesmo.

A partir destes conceitos, há por definição da arquitetura da rede:

A quantidade de neurônios na camada de entrada e saída é dada pelo

problema a ser abordado. No entanto, a quantidade de neurônios nas camadas de

processamento são características do projeto.

Aumentando-se o número de neurônios na camada escondida aumenta-se a

capacidade de mapeamento não-linear da rede.

A rede feedforward de uma única camada, os neurônios da camada de

entrada correspondem aos neurônios sensoriais que possibilitam a entrada de sinais

na rede (não fazem processamento).

Os neurônios da camada de saída fazem processamento. (Aumenta o tamanho do

parágrafo)

Figura 7 - Rede Neural Monocamada.

24

Rede feedforward de Múltiplas Camadas (Multilayer Perceptron - MLP). Essas redes

têm uma ou mais camadas intermediárias ou ocultas.

Figura 8 – Modelo de Rede Neural Múltiplas Camadas.

2.6 Treinamento

A propriedade mais importante das redes neurais consiste na habilidade de

aprender de seu ambiente e com isso melhorar seu desempenho. Isso é feito por

meio de um processo interativo de ajustes aplicado a seus pesos, denominado

treinamento. O aprendizado ocorre quando a rede neural atinge uma solução

generalizada para uma classe de problemas.

Denomina-se algoritmo de aprendizado a um conjunto de regras bem

definidas para a solução de um problema de aprendizado. Existem muitos tipos de

algoritmos de aprendizado específicos para determinados modelos de redes neurais.

Estes algoritmos diferem entre si principalmente pelo modo como os pesos são

modificados.

Os principais modelos (paradigmas) de aprendizagem são: (Referência)

1) Aprendizagem Não-supervisionada; a rede atualiza seus pesos sinápticos

sem indicações quanto a adequação das saídas.

2) Aprendizagem por Reforço; uma função de avaliação indica o grau de

aprendizagem da rede.

3) Aprendizagem Supervisionada; interfere-se nos pesos sinápticos de modo a

25

minimizar o erro propagado entre o padrão apresentado a rede e o padrão a

ser reconhecido.

Neste caso de uso optou-se pela Aprendizagem Supervisionada. Também

conhecida com aprendizagem com professor, consiste em que o professor tenha o

conhecimento do ambiente, e fornece o conjunto de exemplos de entrada-resposta

desejada. Com esse conjunto, o treinamento utiliza-se da regra de aprendizagem

por correção de erro.

Figura 9 - Diagrama de treinamento de algoritmo Backpropagation.

No entanto, quando esse número for muito grande, o modelo pode se sobre-

ajustar aos dados, na presença de ruído nas amostras de treinamento. Diz-se que a

rede está sujeita ao sobre-treinamento.

Algoritmo de aprendizagem – backpropagation, regra de aprendizagem

baseada na correção do erro pelo método do Gradiente, o algoritmo de

aprendizagem é composto de duas fases, cálculo do erro (forward) e correção dos

26

pesos sinápticos (backward).

Durante o treinamento com o algoritmo backpropagation, a rede opera na

seguinte seqüência:

Primeiro, um padrão é apresentado à camada de entrada da rede. A atividade

resultante propaga pela rede, camada por camada, até a camada de saída.

No passo seguinte a saída obtida é comparada à saída desejada para o

padrão apresentado à entrada. Se esta não estiver correta, o erro é calculado. O

erro é propagado a partir da camada de saída até a camada de entrada, e os pesos

das conexões das unidades das camadas internas vão sendo modificados conforme

o erro é propaga pela a rede.

2.7 Aprendizado de Máquina

Este trabalho carecia de um programa para auxiliar na criação de redes

neurais, preferencialmente gratuito. Desta forma,optou-se por estudar o programa

JavaNNS para criação de redes neurais que fossem adequadas ao nosso trabalho.

Trata-se de um programa open source (de código aberto), o que fornece uma grande

vantagem para o caso de haver algum problema no código, sendo possível estudar

uma solução para o mesmo. Após o aprendizado e com o ganho conhecimento do

JavaNNS as primeiras redes foram criadas e treinadas. O treinamento da rede

criada exige a criação de um arquivo texto com código em binário, no formato ".txt".

Havia também uma limitação que foi descoberta, que não havia como fazer para que

o programa aceitasse uma imagem maior que 44x44 pixel. Essa imagem gerava

uma matriz de 44.44 e não foi permitido pois o JavaNNS era limitado em 2000

neurônios que é o limite do programa. Esse código de preferência deve ser adquirido

a partir de uma imagem, por mais simples que ela seja, para que a rede seja

treinada tendo imagens como base.

27

Figura 10 – Rede Neural não treinada.

Foi escolhida a arquitetura MLP por ser de fácil treinamento e eficácia quanto

ao aprendizado.

A rede MLP é composta por 25x25 neurônios na camada de entrada, 1

camada oculta de 25x1 e 1 neurônio na camada de saída.

Figura 11 – Interface de ferramentas para o treinamento

28

Aprendizagem da rede com JNNS

Foram realizados um total de 100 ciclos de treinamentos.

Figura 12 - Rede Neural em processo de treinamento

Padrão reconhecido como área não verde

Figura 13 – Saída de neurônios não ativada

29

Padrão reconhecido como área verde

Figura 14 – Saída de neurônios ativada

30

3. Trabalhos Correlatos

3.1 Integração entre redes neurais e correlação para a identificação de pontos de

apoio pré-sinalizados.

Neste trabalho [PUCPR, 2005] foi adotada a técnica de redes neurais para

fazer o reconhecimento automático dos pontos de uma foto aérea que foi utilizada

para o estudo. Priorizou-se o estudo para a implementação de uma rede neural

artificial que não utilizasse recursos muito caros e nem utilizasse muito

processamento para executar e reconhecer os padrões.

Houve um tratamento das imagens selecionadas, para depois serem

passadas para o sistema de reconhecimento implementado. Com o auxílio do

aplicativo Paint Shop Pro as imagens foram tratadas com tons de cinza. Outro fator

importante consistiu na calibragem da câmera, necessária para a obtenção do foco

adequado para o experimento, sem que houvesse distorção na imagem para não

comprometer a identificação do padrão.

Para que o experimento pudesse ser realizado foi necessário fazer uma

aerofoto da região a ser reconhecida pelo sistema adotado. Antes de tirar a foto

foram marcados três pontos em uma determinada área, com um tamanho adequado

para dar destaque. Estes três pontos serviram para sinalizar a área que pudesse ser

reconhecida e também para facilitar a área de reconhecimento por meio da

triangulação.

Foi realizado um estudo das derivadas que fossem usadas para fazer o

treinamento da rede antes de ser implementada a rede neural artificial. O algoritmo

Backpropagation foi usado para fazer o treinamento da rede neural e a morfologia

matemática foi estudada para diminuir o tamanho de algumas derivadas. Foi usado

um código em Visual C++ para a implementação da rede neural, além de fazer a

identificação na foto com a ajuda dos três pontos de apoio que são apresentados na

imagem para o estudo. O Matlab utilizado para identificar o alvo da imagem.

31

Depois da aerofoto ser tirada foram marcadas as coordenadas dos pontos

marcados, com isso há como fazer os algoritmos calcularem os pontos relativos para

o reconhecimento do padrão. Essas marcas chamadas de fiduciais foram passadas

para o um programa que funciona em um dos que consegue fazer a correlação

desses pontos. Para identificar o alvo da imagem foi usado o Matlab. Após todo

o processo de tratamento e identificação das imagens, com todos os cálculos feitos

dos sistemas, conseguiu-se chegar a um resultado. O treinamento com outras

imagens de apoio, para a rede neural também foi importante para obter este

resultado. Mesmo com uma imagem de alta resolução não foi exigido muito do

desempenho da máquina de alto padrão, obtidos com uma máquina de baixo custo.

Um aspecto positivo deste trabalho foram as técnicas abordadas para a

realização do experimento, por exemplo marcar os pontos para depois identificá-los,

por meio dos algoritmos que calculam os pontos relativos. A máquina de baixo

custo na época que foi citada, usou um grande volume de dados como entrada no

caso uma imagem de alta definição. Mas o custo do projeto todo foi elevado, por

exemplo contratar uma empresa para sobrevoar uma área e fotografá-la.

3.2 Detecção de volume de tráfego de veículos proporcionada por visão

computacional via redes neurais

Outro trabalho [ITA, 1999] relacionado ao que foi estudado faz a identificação

do número de carros em uma rodovia. Foram usados os melhores recursos que o

autor tinha disponível na época, para realizar a captura das imagens e fazer o

tratamento para depois passar para a rede neural artificial treinar.

No local escolhido por ele para a filmagem do trânsito foi instalada uma

câmera comum, com a objetiva apontada para o movimento da rua. Depois foi

realizada a captura da filmagem com o auxílio de um programa. Um outro programa

foi usado para desmanchar o filme em várias imagens, separadas por arquivos. Em

seguida foi preciso fazer uso de um terceiro programa para converter todas as

imagens em escalas de cinza. O MATLAB foi a ferramenta que este autor utilizou

para fazer um pré-processamento das imagens e depois passar para a rede neural

Pri, 03/01/-1,
Qual autor?

32

dentro do mesmo.

O MATLAB trazia várias opções para detectar a borda das imagens. O autor

escolheu aquela que estava mais própria para identificar o número exato de carros

presentes na imagem. Com o vídeo gerado anteriormente, após o processo de

separação de todas as imagens do vídeo, foi gerado um grande número de arquivos.

O autor separou tudo em 9 blocos de 400 fotos cada um, passando todas as

imagens para o MATLAB, que já estava com a rede neural artificial pronta para ser

treinada. O processo, segundo ele, foi demorado, mesmo com os melhores recursos

disponíveis para o experimento.

O resultado constatado foi que ele chegou ao nível de erro desejado. O

programa gerou gráficos para fazer as comparações que ele denominou de épocas.

Cada época que foi evoluindo melhor a rede neural artificial ficava, de forma a

melhorar a identificação a cada treinamento. Um menor número de erros também foi

constatado, à medida que a rede neural ficava mais experiente. O procedimento de

passar as imagens pelo processo de pré-processamento era mais rápido e eficiente

do que sua ausência, obtendo, assim, um bom resultado, segundo autor.

Este trabalho o autor obteve os resultados conforme o estudo que ele fez,

mas com um custo elevado para a época. Uma parte importante do trabalho é que

ele calculou a dimensão do problema a ser resolvido antes de fazer os testes, para

não perder tanto tempo. Fazer um pré-processamento das imagens antes de passar

elas para a rede treinar, está semelhante com a segmentação de imagens, tornou o

trabalho do autor mais próximo ao proposto.

33

4. Metodologias

4.1 Metodologia de Pesquisa

Este trabalho usou na maior parte da pesquisa a Internet, para encontrar uma

solução para o problema. Foi inicialmente necessário identificar qual método era o

mais adequado para fazer a identificação de objetos. As redes neurais artificiais se

mostravam mais eficientes, em vários trabalhos que as adotaram.

Sobre a diminuição das áreas verdes também usou-se a Internet, para

conseguir as informações, principalmente em sites brasileiros, como por exemplo, O

Estado de São Paulo. Para encontrar áreas verdes no mapa, precisava-se de algo

que fizesse a pesquisa na imagem, com o auxílio do computador, identificar a

imagem sem a intervenção humana. Para simplificar a solução do problema ao invés

de criar uma rede neural artificial implementada por meio de um código, um

programa auxiliou para criar a rede. O JavaNNS programa adotado, também foi

estudado o manual para esclarecer o funcionamento, a forma de como criar a rede

neural artificial.

Após o entendimento de como funciona o programa, descobriu-se que só

recebia como entrada arquivos em código binário. Algumas imagens foram passadas

para um arquivo binário por meio de vários programas, mas dessa forma perderia se

muito tempo para fazer os testes. Códigos foram pesquisados na Internet no site

Sourceforge [SOURCEFORGE, 2008], na maioria dos casos soluções em linguagem

Java. Após a pesquisa vários códigos traziam soluções diferentes, apenas alguns

foram usados, para ajudar a fazer um código para transformar a imagem em preto e

branco, segmentar em arquivo binário. Com tudo que encontrado para a pesquisa,

obteve-se um programa que fazia tudo para gerar o arquivo em códigos binários.

Uma grande variedade de informações foi encontrada ao longo do trabalho,

tanto na Internet quanto em alguns livros sobre redes neurais artificiais. Sem a

pesquisa não seria possível realizar boa parte do trabalho, além de haver uma

aprendizagem que possivelmente será usada no futuro.

34

4.2 Metodologia de Desenvolvimento de Software

Para este trabalho devido a complexidade do projeto e o fato de que embora

o estudo para tal realização é dito no meio ciêntifico-acadêmico, como bastante

difundido, cada problema tem suas particularidades e é isso que torna cada

problema a ser resolvido tão particular, muito embora um problema a ser abordado

tenha como apoio a busca por uma abordagem mais próxima possível. Por esse

motivo, ao início, observou-se a necessidade de uma metodologia que atendesse ao

interesse de gerenciar tal desenvolvimento da melhor maneira possível, e para isso

foi escolhida Metodologias Ágeis.

Segundo a definição encontrada em Michel dos Santos Soares (Referência)

“As metodologias ágeis surgiram com a proposta de aumentar o enfoque nas

pessoas e não nos processos de desenvolvimento. Além disso, existe a

preocupação de gastar menos tempo com documentação e mais com resolução de

problemas de forma iterativa”. (artigo - Comparação entre Metodologias Ágeis e

Tradicionais para o Desenvolvimento de Software) (ajustar conforme as normas da

ABNT)

35

5. Desenvolvimento

5.1 Programa que Segmenta

Para solução do problema abordado no caso de uso, faz-se a utilização do

algoritmo de limiarização bimodal, que tem como objetivo extrair os dados de

interesse para que este seja submetido a processamento pela rede neural.

A linguagem Java foi adotada como a principal responsável no trabalho para

fazer a implementação do programa que serve para tratamento e a segmentação da

imagem. Com a adoção de uma metodologia ágil o paradigma de Orientação a

Objetos se adaptou de maneira satisfatória ao desenvolvimento do aplicativo, devido

às inúmeras iterações no processo de codificação do programa.

O programa desenvolvido é composto de quatro utilidades importantes para

este trabalho. Recorte de imagem, conversão em preto e branco, binarização e

criação dos códigos interpretados pela rede neural artificial. Durante a

implementação das utilidades diversos problemas foram encontrados, que serão

abordados neste tópico.

O recorte da imagem é responsável pela divisão da imagem em fragmentos

de 25 por 25 pixels, um dos principais problemas encontrado nessa fase de

implementação e que iria se estender a fases de conversão e binarizacao seria a

manipulação dos pixels das imagens. Dada uma imagem por exemplo de 500x500

pixels ela possuirá 250.000 pixels que deverão ser divididos em fragmentos

ordenados de 25x25 pixels.

A solução para este que seria o maior dos problemas de implementação veio

após uma longa busca por modelos de segmentação, com a adoção de biblioteca

disponível na linguagem java chamada “ java.awt.image.pixelreader ”.

Outra parte do desenvolvimento em que foram encontradas dificuldades foi na

conversão em preto e branco, uma vez com a biblioteca para manipulação de pixels

já em uso, uma das alternativas para esse processo de conversão de imagem é a

36

utilização de um outro recurso da biblioteca “ handle single pixel”, que tem como

função tratar a representação das cores no pixel, o objetivo esta fase é minimizando

as cores vermelha, e azul e a partir daí o pixel é convertido em preto e branco,

sendo branco representando o verde e o preto representando as demais cores.

Com a imagem já em preto e branco a segmentação por limiar bimodal é

iniciado dando origem a uma matriz de 25 por 25 posições de representação binária,

sendo 1 representa o verde e 0 representa as demais cores, no decorrer dessa fase

novamente se faz uso da manipulação de pixels, desta vez para a determinação do

valor de saída para o pixel, com a utilização de um limiar para separação das duas

cores.

Com a imagem fragmentada e binarizada a última fase do programa é gerar

um arquivo de extensão “.Pat”, nesse ponto um problema ameaçou atrapalhar o

projeto, a utilização da linguagem Java para a geração de um arquivo tipo texto,

para solução desse problema foi utilizado a biblioteca “java.io”, a importacia de se

gerar um arquivo com uma estrutura legível pela rede neural artificial, é

extremamente alto uma vez que esse arquivo será responsável pela aquisição e

manipulação das informações.(parágrafo extenso e confuso)

5.2 Projeto da Rede Neural

Foi escolhida a arquitetura MLP por ser de fácil treinamento e eficácia quanto

ao aprendizado.

(trecho igual ao da página 27)

A rede MLP é composta por 25x25 neurônios na camada de entrada, 1

camadas oculta de 5x5 e 1 neurônios na camada de saída. Os valores quanto ao

número de neurônios da camada de entrada foram determinados com base na

varredura de uma área equivalente a uma casa, que poderia ser coberto por 25x25

pixels sendo que a imagem fornecia um zoom de 200 metros.

Já quanto ao número de neurônios da camada oculta, embora o JNNS

ofereça o uso de até 2000 neurônios. Nesta arquitetura, o framework torna-se

instável, e o número de interconexões é de 15650. Quanto ao número de neurônios

da camada de saída, 1 neurônio foi suficiente pois a resposta desejada está entre 0

e 1.

37

Figura 15 – Rede Neural não treinada. (mesma figura cap 2)

Figura 16 – Interface de ferramentas para o treinamento(mesma figura do cap 2)

38

Aprendizagem da rede com JNNS

Foram realizados um total de 100 ciclos de treinamentos.

Figura 17- Rede Neural em processo de treinamento (mesma figura do cap 2)

Padrão reconhecido como área não verde

Figura 18 – Saída de neurônios não ativada (mesma figura do cap 2)

39

Padrão reconhecido como área verde

Figura 19 – Saída de neurônios ativada (mesma figura do cap 2)

6. Avaliações e Testes

40

Para obter os resultados, vários processos foram desenvolvidos antes. A

máquina utilizada, no caso um notebook, precisava de uma configuração apropriada

para o trabalho.

Dividido em etapas:

Obtenção da imagem

Tratar e Segmentar a imagem

Treinar a rede neural artificial

6.1 Treinamento da Rede

Na preparação das amostras, foi escolhida uma imagem colorida com

proporções de 250 x 250 para técnica de treinamento por substituição, que levando

em consideração tais proporções, tal imagem submetida à segmentação gerou 100

fragmentos de 25x25 pixels que correspondem à matriz neural de 25x25 neurônios e

uma imagem colorida com proporções de 500 x 500 obtendo 400 fragmentos.

O produto final obtido pelo processo de segmentação dividido em 4 etapas

1º - Escolha da imagem: escolhida uma imagem aleatória na região de Campinas,

com pouca área verde para conseguir medir a eficiência da rede criada, que foi

capturada e salva com o programa Gimp;

2º - Aplicação do algoritmo de binarização: esse algoritmo estava implementado nos

códigos que foram estudados, que faz o tratamento da imagem tornando ela preto e

branca e depois a transforma em um código binário;

3º – Fragmentação: com o mesmo programa usado para o processo anteriormente,

faz o processo de fragmentação das imagens em pedaços divididos em 25x25;

4º - Obtenção dos valores binários: esses valores binários foram criados no

processo anterior para depois poder passá-los para o JavaNNS que só aceita

arquivos binários como entrada;

Imagem escolhida para gerar as amostras para a técnica de substituição

41

Figura 20 – Exemplo de imagem não segmentada

Fragmentação da imagem

Figura 21 – Exemplo de imagem fragmentada

42

Imagem escolhida para gerar as amostras para a técnica de substituição

Figura 22 – Imagem escolhida para gerar as amostras

Transformação ocorrida em um fragmento de imagem após a aplicação do algoritmo

de binarização.

43

Resultado da obtenção de valores em binário correspondentes aos pixels da

imagem.

1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 0 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

44

6.2 Coleta dos Resultados

Esta primeira tabela foi gerada com três metodologias, alterada apenas a

camada oculta da rede neural artificial criada, com os treinamentos 300 ciclos.

Camadas ocultas 4x4 2x25 3x25N° do Teste N° de Acertos    

1 28 30 292 24 24 303 27 25 284 21 30 225 17 34 246 26 28 287 23 26 288 23 31 259 32 31 35

10 31 31 32Total de acertos 252 290 281Porcentagem de Acertos 63% 72,5% 70,3 %

Tabela 1 – Médias Obtidas pela técnica 10 fold Cross Validation, 300 ciclos.

A segunda tabela gerada com o treino com uma nova amostra, treinada com 100 ciclos

e uma outra metodologia, que os pesos foram alterados.

Camadas Ocultas 2x25

N° do TesteN° de Acertos

1 342 363 354 345 376 397 388 369 38

10 38Total de acertos 365Porcentagem de Acertos 91,3%

Tabela 2 – Médias Obtidas pela técnica 10 fold Cross Validation, 100 ciclos.

45

7. Análise dos Resultados

De acordo com a média dos resultados obtidos nos testes, bem como o

análise de resultados brutos e individuais quanto comportamento da rede em lidar

com o mapeamento não-linear operando a um quinto de sua eficiência como

mencionado nas limitações, obter-se o resultado na classificação de mais de 50% de

acertos nos testes a que foi submetida.

Avaliando-se o método de Redes Neurais Artificiais para o reconhecimento de

padrões, esse método mostrou-se bastante eficiente e de fácil treinamento atingindo

um grau de aprendizagem muito satisfatório. (texto muito vago)

46

8. Conclusão

O trabalho precisou de muita pesquisa para superar as dificuldades por ele

apresentadas, a fim de chegar ao objetivo desejado, que consistiu na identificação

de áreas verdes em mapas. O funcionamento da rede neural artificial foi necessário

para o aprendizado do padrão a ser ensinado, que métodos e programas poderiam

ser usados para criar e treinar a rede par fazer a pesquisa em uma matriz. A

segmentação de imagens mostrou-se um procedimento necessário, pois uma

imagem muito grande não poderia ser tratada com os recursos disponíveis.

Com as ferramentas disponíveis na Internet para adquirir as fotos de satélite,

no caso o Google Maps, eleita a região de Campinas com algumas áreas verdes.

Um processo necessário após a captura da imagem, foi o tratamento e a

segmentação para depois transformar a imagem em um arquivo binário. Baseado

em vários códigos disponíveis na Internet, foi desenvolvido um que faz todo

processo descrito anteriormente, de uma vez só, gera ao final um arquivo texto com

o código binário. O programa JavaNNS ajudou na criação da rede neural artificial

que foi treinada e depois testada. O arquivo de entrada que foi gerado no processo

de segmentação foi usado para o programa poder treinar a rede neural artificial e

depois testá-la. Este mesmo processo usando outros programas pagos não seria

possível, pois exigiria uma melhor configuração. Os recursos utilizados neste

trabalho usados são gratuitos e exigem um equipamento com configurações não

muito avançadas.

O resultado obtido como alvo, pois não houve um número grande de erros

gerados na maioria dos casos. Após a análise dos resultados percebeu-se que a

rede neural artificial foi bem treinada e estava bem preparada para identificar as

áreas verdes no mapa. Isso mostrou que com a pesquisa realizada ao decorrer do

ano, com os recursos disponíveis, resultou neste trabalho que trouxe o resultado

procurado.

Pri, 03/01/-1,
Precisa elaborar melhor esta frase, pois ficou confusa.

47

8.1 Limitações

Durante o processo de avaliação do JavaNNS, constatou-se algumas

limitações, dentre elas o fato de ser limitado quanto ao número de neurônios,

totalizado em 2000 neurônios. Houve a tentativa de mexer em seu kernel construído

em linguagem C, e uma camada Java interfaceando o aplicativo, mas o que se

descobriu é que partes de kernel não eram passíveis de alteração, eram

simplesmente arquivos .exe, uma engenharia reversa tomaria muito tempo além do

fato de não saber que tipo de código, que maneira estaria estruturado e caso

pudesse ser alterado, como se comportaria. (texto confuso)

Outro limite encontrado foi quanto à arquitetura proposta, o framework torna-

se instável com camadas ocultas maiores das que utilizadas. Isso comprometeu a

rede neural quanto a sua integridade de mapeamento não-linear que exige por

definição matemática, no mínimo uma camada oculta com o mesmo tamanho da

camada de entrada da rede.

8.2 Trabalhos futuros

Com os resultados obtidos neste estudo existem outras possibilidades a

serem criadas. A utilização da rede neural artificial para fazer o reconhecimento do

padrão pode ser usada não só para as áreas verdes de uma cidade como também

para construções e outros objetos que possam ser reconhecidos com a mesma

rede. Encontrar ruas que estiverem mais movimentadas em relação ao trânsito, em

um determinado local.

O mesmo aplicativo sendo usado no celular - como o Google Maps já é

compatível na maioria dos navegadores - fazer uma identificação da área verde no

mapa por meio de um programa, para fazer turismo ecológico, por exemplo.

Um estudo aprofundado da mata atlântica disponível no Brasil pode também

adotar esse estudo que foi feito. Ainda é possível realizar a comparação entre

diferentes regiões com cálculos estatísticos que podem ser feitos por meio do

tamanho da área, observando a quantidade existente em uma região. A rede

48

neural artificial pode ser criada usando o MATLAB, que traz e utiliza muitos recursos

de uma máquina mesmo sendo com uma configuração que tenha um custo mais

alto.

49

Referências Bibliográficas

1) [UFG, 1997] ANDRADE, Adriano de Oliveira, Redes Neurais Aplicadas ao

Processamento de Imagens de Satélite, de Universidade Federal de Goiás, Escola

de Engenharia Elétrica, Grupo PIRENEUS, 1997. Disponível em: <

www.aoandrade.eletrica.ufu.br/Documents/Relat%F3rio%20final%20do

%20CNPQ.pdf > Acesso em: 31 mai 2008.

2)[PUCRS, 1995] CASTRO, Fernando César Comparsi de, Reconhecimento e

Localização de Padrões em Imagens Utilizando Redes Neurais Artificiais como

Estimadores de Correlação Espectral, Pontifícia Universidade Católica do Rio

Grande d Sul para Obtenção do Grau de Mestre em Engenharia, dezembro de 1995.

Disponível em:< www.ee.pucrs.br/~decastro/pdf/F_MasterThesis.pdf >. Acesso em:

16 mar 2008.

3) [RUSSEL, NORVIG, 2004] RUSSEL, Stuart e NORVIG, Peter Inteligência

Artificial, Tradução de: Artificial Intelligence, 2nd edition, tadução de PubliCare

Consultoria, Rio de Janeiro, Elsevier, 2004.

4)[GOOGLE BLOG, 2008] TAYLOR, Bret, The Official Google Blog. Disponível em: <

http://googleblog.blogspot.com/2005/02/mapping-your-way.html >. Acesso em: ago

2008.

5) [REVISTA INFO, 2006] CARDOZO, André, Google Revista Info, Editora Abril, jan

2006

6) [REVISTA INFO, 2007] FORTES, Débora, A Era dos Mapas, Revista Info, Editora

Abril, jan 2007.

7) [UNISC, 2000] OSÓRIO Fernando e BITTENCOURT, João Ricardo, I

WORKSHOP DE INTELIGÊNCIA ARTIFICIAL , Universidade de Santa Cruz do Sul ,

Departamento de Informática, Junho 2000. Disponível em: <

osorio.wait4.org/oldsite/wia-unisc/wia2000-full.pdf >. Acesso em: 20 mar 2008.

50

8) [MOREIRA, 2007] MOREIRA, José, porquê usar Java …, 22 de março 2007.

Disponível em: < http://www.josemoreira.net/2007/03/22/porque-usar-java/ >.

Acessado em: ago 2008.

9) [ITA,1999] RIBEIROO, F. F. S., LIMA,A. C. de C., Detecção de volume de tráfego

de veículos proporcionada por visão computacional via redes neurais, 1999.

Disponível em: < www.ele.ita.br/cnrn/artigos-4cbrn/4cbrn_024.pdf > . Acesso em: 31

mai 2008.

10) [UNIARA, 2004] GARCIA, João Carlos Eugênio, Proposta de uma Infra-Estrutura

de Tomada de Decisões para SDIs, 2004. Disponível em: < link não encontrado >,

Acessado em: jul 2008.

11) [Estado de São Paulo, 2006] NOVAES, Washington, O clima, a economia, o

futuro da Amazônia, 2006. Disponível em: < www.estadao.com.br >. Acesso em: nov

2008

12) [UNIPAC, 2004] SOARES, Michel dos Santos, Comparação entre Metodologias

Ágeis e Tradicionais para o Desenvolvimento de Software, 2004. Disponível em: <

www.dcc.ufla.br/infocomp/artigos/v3.2/art02.pdf >. Acesso em: nov 2008.

13) [Estado de São Paulo, 2008] MARCHEZI, Fabiana, Inpe vê 552 pontos de alerta

de desmatamento na Amazônia, 2008. Disponível em: <

http://www.estadao.com.br/vidae/not_vid153967,0.htm >. Acesso em: dez 2008.

14) [Estado de São Paulo, 2008] NOVAES, Washington, Só a quebradeira para

ajudar o meio ambiente, 2008. Disponível em: <

http://www.estadao.com.br/suplementos/not_sup297121,0.htm >. Acesso em: dez

2008.

15) [Estado de São Paulo, 2007] O ESTADO DE SÃO PAULO, SP precisa de 162

milhões de árvores para neutralizar CO2, 2007. Disponível em: <

http://www.estadao.com.br/estadaodehoje/20071208/not_imp92502,0.php >. Acesso

em: dez 2008.

51

16) [PUCPR, 2005] WANDRESEN, Romualdo, ANDRADE , José Bittencourt de,

MITISHITA , Edson Aparecido, Integração entre redes neurais e correlação para a

identificação de pontos de apoio pré-sinalizados, Pontifícia Universidade Católica do

Paraná, 2005. Disponível em: <

http://ojs.c3sl.ufpr.br/ojs2/index.php/bcg/article/viewPDFInterstitial/4394/3459 >.

Acesso em: ago 2008

17) [SOURCEFORGE, 2008] Códigos para o desenvolvimento do programa.

Disponível em: < http://sourceforge.net/ >. Acesso em: 2008

52

Anexo

Tabelas 3 - Resultados obtidos pela técnica de 10 fold Cross-validation, 100 ciclos

NºConjunto NºAmostra Resultado esperado

Resultado obtido

1 1 + 0.6272 + 0.3383 + 0.9954 + 0.9185 + 0.9976 + 0.9977 + 0.9938 + 0.9949 + 0.99110 + 0.99611 - 0.03312 - 0.34313 - 0.04214 + 0.64615 - 0.14216 + 0.99217 + 0.32118 + 0.75619 - 0.07020 - 0.01021 - 0.00822 - 0.01823 + 0.99124 + 0.71225 + 0.99426 + 0.99127 + 0.99728 - 0.02329 - 0.00230 - 031 - 0.35232 - 0.63133 + 0.98934 + 0.99635 + 0.39136 - 037 - 0.46038 - 0.12239 + 0.03740 - 0.153

53

Total de acertos 342 1 + 0.940

2 + 0.2073 - 0.6584 - 0.5295 - 0.0026 - 0.0027 + 0.9948 + 0.9929 + 0.77610 - 0.00911 + 0.29712 + 0.88813 + 0.79114 - 015 - 0.00516 - 0.00117 + 0.97818 - 0.20119 - 0.01020 - 0.01421 + 0.99322 - 0.34523 + 0.99224 - 0.00425 + 0.99226 - 0.05727 + 0.96728 + 0.99429 - 0.02430 - 0.13031 + 0.95432 - 0.04933 - 0.00134 - 035 - 0.29836 + 0.96237 + 0.99438 - 0.06139 - 0.00440 - 0.022

Total de acertos 363 1 - 0

2 - 0.0243 + 0.9934 - 0.5855 - 0.0036 - 0.028

54

7 - 0.0218 + 0.9919 + 0.95510 - 0.84411 - 0.52512 - 0.01513 - 0.00314 + 0.92915 + 0.87916 - 0.00717 - 0.02918 + 0.99519 + 0.99520 - 0.00121 + 0.90022 - 0.90823 - 0.77324 - 0.01325 - 0.04126 - 0.00227 - 0.07528 + 0.90529 + 0.99530 + 0.99031 + 0.99532 + 0.95733 + 0.98934 + 0.98335 + 0.99536 + 0.99537 - 0.70138 - 0.02639 - 040 - 0.261

Total de acertos 354 1 - 0.930

2 - 0.0493 + 0.9044 - 0.0225 - 06 - 0.5917 - 0.0088 - 0.8939 + 0.99410 + 0.99411 + 0.99412 + 0.99413 + 0.991

55

14 - 015 + 0.99116 + 0.99417 + 0.99018 - 0.79719 - 020 - 0.97221 - 0.86622 + 0.99223 + 0.98724 - 0.42525 - 0.00726 - 0.00327 - 0.20728 + 0.97729 + 0.99030 + 0.97631 + 0.99432 + 0.99233 + 0.92034 - 0.01035 - 0.03236 - 0.01137 + 0.99438 - 0.00739 - 0.01140 + 0.994

Total de acertos 345 1 - 0

2 - 0.0063 + 0.9754 - 0.6215 - 06 - 0.0177 - 0.0938 + 0.9809 + 0.42310 - 0.01011 + 0.98012 + 0.98013 + 0.97614 - 0.04515 + 0.98016 - 017 + 0.60218 + 0.98019 + 0.98020 + 0.980

56

21 + 0.97522 - 023 + 0.09224 + 0.97125 - 0.10326 - 0.07027 - 0.08928 + 0.98029 + 0.96630 - 031 - 0.00132 + 0.98233 + 0.91034 - 0.00435 - 0.00136 - 037 - 038 - 039 + 0.98040 + 0.975

Total de acertos 376 1 + 0.996

2 + 0.9973 + 0.9964 + 0.9965 - 06 - 07 + 0.9938 + 0.9209 + 0.96210 - 011 - 012 + 0.98013 + 0.98914 - 0.25515 - 0.22216 - 0.00217 - 018 + 0.99219 + 0.94520 + 0.99621 + 0.96622 + 0.73023 + 0.98124 + 0.76025 - 0.02926 - 027 - 0

57

28 + 0.99629 - 0.02430 - 0.08431 + 0.89832 - 0.01233 - 0.32534 + 0.86935 - 0.32836 + 0.99537 - 0.03938 + 0.99639 + 0.96840 + 0.147

Total de acertos 397 1 + 0.992

2 + 0.0323 - 0.0044 + 0.9945 + 0.9936 - 0.7587 - 0.0068 + 0.9549 - 0.05310 + 0.98311 - 0.34112 - 0.12213 - 0.01114 - 0.05015 + 0.99516 + 0.83317 - 0.16818 + 0.98819 + 0.99320 + 0.99421 + 0.96022 + 0.91623 + 0.76024 + 0.88725 - 0.36726 - 0.03127 + 0.79028 + 0.99229 - 0.00630 - 0.07731 - 0.09532 + 0.90033 + 0.78434 + 0.989

58

35 + 0.99336 - 0.04037 + 0.68138 - 0.05339 - 0.09340 + 0.993

Total de acertos 388 1 - 0.119

2 - 0.7223 - 0.2604 + 0.9765 - 06 - 07 + 0.9828 + 0.9889 + 0.98810 + 0.43311 + 0.97912 + 0.98813 + 0.98814 - 0.22715 + 0.98516 - 017 - 018 + 0.89219 - 020 - 0.28221 + 0.98822 + 0.98823 + 0.98824 - 0.40725 - 0.00626 - 0.35727 - 0.01128 - 0.76229 + 0.98730 - 031 - 032 + 0.98833 + 0.98734 + 0.86735 - 0.76436 + 0.97237 + 0.95338 + 0.98839 - 0.00240 - 0.055

Total de acertos 36

59

9 1 + 0.9902 + 0.9853 + 0.9904 + 0.6415 - 06 - 0.4727 - 0.2338 - 0.0019 - 010 - 011 - 0.00212 + 0.99013 + 0.97514 + 0.96715 - 0.00116 + 0.99017 + 0.99018 - 0.15619 - 0.82920 + 0.96721 + 0.99022 + 0.98423 + 0.98924 + 0.98825 - 0.05826 - 0.51227 + 0.99028 + 0.98629 - 0.00130 - 031 - 0.00432 + 0.99033 - 0.11734 - 035 + 0.98136 + 0.99037 + 0.99038 - 0.00439 + 0.87240 - 0.008

Total de acertos 3810 1 + 0.993

2 + 0.9883 + 0.9954 + 0.9955 + 0.9946 - 0.0267 + 0.995

60

8 - 0.0599 - 010 - 0.00711 - 0.12712 - 0.00113 - 0.33914 + 0.87015 - 0.11416 + 0.99517 + 0.95518 - 0.88119 + 0.99520 - 0.23221 - 022 - 0.54123 + 0.99524 + 0.99425 - 0.05926 - 0.05227 + 0.99428 + 0.99529 + 0.96230 - 031 - 0.00332 + 0.16433 - 0.02134 - 0.25135 - 0.24636 + 0.93137 + 0.99538 + 0.68639 + 0.93140 - 0.026

Total de acertos 38Porcentgem de

acerto91.25%

top related