wavelets - reconhecimento de espÉcies florestais atravÉs da anÁlise de texturas
DESCRIPTION
Apresentação de um método alternativo de extração de características utilizando a transformada wavelet.TRANSCRIPT
1
UNIVERSIDADE DO CONTESTADO – UnC CURSO DE SISTEMAS DE INFORMAÇÃO
ANDRESSA DARÓS STANISZEWSKI
RECONHECIMENTO DE ESPÉCIES FLORESTAIS ATRAVÉS DA ANÁLISE DE TEXTURAS UTILIZANDO WAVELETS
CANOINHAS 2009
2
ANDRESSA DARÓS STANISZEWSKI
RECONHECIMENTO DE ESPÉCIES FLORESTAIS ATRAVÉS DA ANÁLISE DE TEXTURAS UTILIZANDO WAVELETS
Trabalho de conclusão de curso apresentado como exigência para obtenção do título de bacharel em Sistemas de Informação pela Universidade do Contestado – UnC Campus Canoinhas, sob a orientação do professor Pedro Luiz de Paula Filho.
CANOINHAS 2009
3
Agradecimentos
Eis algumas das pessoas que contribuíram direta ou indiretamente para o desenvolvimento deste trabalho, quer tivessem consciência disso ou não:
Meus pais, Solange e Clotário, por todo apoio e ajuda financeira
Meu orientador Pedro Luiz de Paula Filho, por toda a compreensão, ajuda e
horas despendidas
Todos os professores e mestres que acreditaram em minha capacidade em todo o decorrer do curso
Meus amigos, colegas e ex-colegas, pela amizade, conselhos e palpites
proveitosos
4
RESUMO Neste trabalho é apresentado um método de identificar espécies florestais da flora brasileira através do uso da transformada wavelet baseado em imagens macroscópicas. Um vetor de características é extraído para cada espécie florestal, baseado na análise dos coeficientes wavelet em diversos níveis de decomposição. Utilizando técnicas de processamento digital de imagens e reconhecimento de padrões, aplica-se neste trabalho na prática uma rede neural para solucionar um problema de reconhecimento em texturas, que com base em uma imagem, ela busca em um banco de dados outras imagens similares. Para a identificação foram usadas imagens adquiridas no laboratório de anatomia da madeira da Universidade Federal do Paraná (UFPR), através de uma câmera fotográfica digital, onde se tem um total de 163 imagens de 14 espécies distintas, e cada imagem foi subdividida em 540 imagens, para aumentar eficiência do treinamento do classificador, totalizando 88.560 sub-imagens. Por fim, foi desenvolvida uma aplicação em linguagem C++, utilizando um algoritmo de wavelet, que com base em uma imagem externa, classifica-a, totalizando um percentual de acerto de 13,99%. Palavras-chave: Processamento de Imagens, Reconhecimento de Padrões, Identificação de Espécies Florestais, Wavelets, Extração de Características, Análise de Texturas.
5
ABSTRACT This paper presents a method of identifying species of forest flora through the use of wavelet transform based on macroscopic images. A feature vector is extracted for each tree species, based on analysis of wavelet coefficients at various levels of decomposition. Using techniques of digital image processing and pattern recognition, applied in this work in practice a neural network to solve a problem of recognition in textures, that on the basis of an image, it seeks in a database other similar images. To identify acquired images were used in the laboratory of wood anatomy of the Federal University of Parana (UFPR), using a digital camera, which has a total of 163 images from 14 different species, and each image was subdivided into 540 images to increase training efficiency of the classifier, a total of 88,560 sub-images. Finally, an application was developed in C + +, based on an external image, classifies it, totaling a hit percentage of 13.99%. Keywords: Image Processing, Pattern Recognition, Identification of Species of trees, Wavelets, Features Extraction, Texture Analysis.
6
LISTA DE FIGURAS
Figura 1 – Computação Gráfica............................................................................14
Figura 2 – Exemplos de imagens pré-processadas.............................................14
Figura 3 – Olho humano.......................................................................................16
Figura 4 – Etapas do Processamento de Imagens.............................................. 17
Figura 5 – Exemplo de regiões correspondentes à classe A e à classe B...........21
Figura 6 – Representação do valor médio versus desvio padrão........................21
Figura 7 – Neurônio Humano – Partes Constituintes da célula neuronal.............22
Figura 8 – Modelo de RNA organizada em camadas...........................................23
Figura 9 – Tela principal do Simulador JAVA NNS..............................................24
Figura 10 – Exemplos de texturas........................................................................26
Figura 11 – Exemplos de wavelets.......................................................................28
Figura 12 – Gráfico 3D da transformada de Fourier............................................29
Figura 13 – Esquema de organização dos coeficientes wavelets e seus três
níveis de decomposição........................................................................................30
Figura 14 – Esquema dos passos do cálculo da transformada wavelet...............31
Figura 15 – Interface final do sistema...................................................................38
Figura 16 – Gráficos da transformada de Fourier.................................................46
7
LISTA DE SIGLAS
SVH – Sistema Visual Humano
RNA – Rede Neural Artificial
BD – Banco de Dados.
CWT – Continuous Wavelet Transform – Transformada Contínua de Wavelet
DWT – Discrete Wavelet Transform – Transformada Discreta de Wavelet
FWT – Fast Wavelet Transform – Transformada Rápida de Wavelet
DFT – Discrete Fourier Transform – Transformada discreta de Fourier
NNs – Neural Networks – Redes Neurais
GLCM – Gray Level Co-Ocurrence Matrix – Matriz de Co-ocorrência
8
SUMÁRIO
1 INTRODUÇÃO...........................................................................................09 1.1 APRESENTAÇÃO DO TEMA...............................................................10 1.2 PROBLEMA..........................................................................................11 1.3 JUSTIFICATIVA....................................................................................12 1.4 OBJETIVOS..........................................................................................13 1.4.1 Objetivo Geral................................................................................13 1.4.2 Objetivos Específicos.....................................................................13
2 PROCESSAMENTO DIGITAL DE IMAGENS...........................................14 2.1 SISTEMA GERAL DE VISÃO...............................................................15 2.2 SISTEMA VISUAL HUMANO...............................................................15 2.3 ETAPAS DO PROCESSAMENTO DE IMAGENS................................18 2.3.1 Aquisição das Imagens...................................................................18 2.3.2 Pré-Processamento........................................................................18 2.3.3 Segmentação..................................................................................18 2.3.4 Classificação...................................................................................18 3 RECONHECIMENTO DE PADRÕES.........................................................20 3.1 CARACTERÍSTICAS, VETORES DE CARACTERÍSTICAS E CLASSIFICADORES..................................................................................20 3.2 REDES NEURAIS ARTIFICIAIS...........................................................22 3.2.1 JAVA NNS......................................................................................24 4 O ESTADO DA ARTE................................................................................26 4.1 A TEXTURA..........................................................................................26 4.2 A ANÁLISE DE TEXTURAS.................................................................28 5 TRANSFORMADAS DE IMAGENS.............................................................29 5.1 TEORIA DE WAVELETS......................................................................30 5.1.1 Transformada Contínua de Wavelet...............................................31 5.1.2 Transformada Discreta de Wavelet................................................31 5.1.3 Wavelets de Gabor.........................................................................34 5.1.4 O Uso de Wavelets em Análise de Texturas..................................34
6 METODOLOGIA.........................................................................................37 6.1 AS ESPÉCIES FLORESTAIS...............................................................37 6.2 EXTRAÇÃO DE CARACTERÍSTICAS.................................................38
6.3 CLASSIFICADORES............................................................................40 7 CONCLUSÃO.............................................................................................42 REFERÊNCIAS BIBLIOGRÁFICAS...............................................................43 APÊNDICE.......................................................................................................48 ANEXOS..........................................................................................................56
9
1 INTRODUÇÃO
1.1 APRESENTAÇÃO DO TEMA
A floresta Amazônica tem a maior diversidade de plantas do Brasil, não se
pode imaginar a dificuldade de identificar suas plantas, muitas são bem
parecidas, muitas vezes só se percebe a diferença quando a árvore já foi
derrubada (PROSA RURAL I, 2006). Devido à grande variedade de espécies e
características individuais de cada planta, o reconhecimento de espécies
florestais, sejam elas de forma bruta (madeira) ou botânica (flores, folhas e
frutos), acaba se tornando uma tarefa complexa de ser realizada (KAXIANA,
2009).
A identificação de espécies florestais no meio ambiente não é de fato um
trabalho árduo para um identificador treinado, em razão de haver todo aspecto
geral da planta como frutos, folhas e flores e com estes podendo levar ao nome
da espécie, entretanto, é mais difícil identificá-la quando determinada espécie de
tronco, que, foi cortada há tempos não possuindo mais estas bases de referência,
dificultando este processo.
É de fundamental importância a correta identificação das diversas
espécies florestais visto que atualmente são utilizadas pessoas treinadas no
processo, contudo, para treinar um identificador demanda muito tempo, a técnica
viria a convir com essa prática, ajudaria a evitar fraudes em vendas de madeira
trocada e também até auxiliaria no controle do exercício das atividades de
extrativismo da madeira em determinadas regiões.
A EMBRAPA através do seu grupo de botânica e seus pesquisadores
associados à área de floresta produz fichas plásticas de identificação que são
fichas práticas para serem levadas ao campo, que facilita o processo de
identificação atual, possuem materiais como fotos, amostras das espécies com as
características associadas à madeira com o objetivo de ajudar no procedimento
de elaboração de um bom inventário florestal o qual é fundamental no
planejamento do manejo florestal (PROSA RURAL II, 2006).
Segundo EMBRAPA (2009), a correta identificação da madeira oferece
benefícios e aplicações práticas como, por exemplo: evita a troca de madeira,
proporcionando maior confiabilidade aos exportadores, importadores e
10
consumidores; Lisura das transações comerciais; Fiscalização, certificação e
comercialização de madeiras; Estudos técnico-científicos envolvendo anatomia,
taxonomia, tecnologia, etc; Programas de manejo e inventário florestal;
Processos jurídicos, nos quais esteja envolvida a identificação de madeira;
Informações para serviços de consultorias e controle de qualidade das indústrias
madeireiras.
O presente estudo trabalhará com a análise do modelo de classificação e
agrupamento de espécies florestais posicionando-se para um trabalho
tecnológico especial. O uso da pesquisa direciona-se para disciplinas
relacionadas à tecnologia da madeira onde será possível a identificação de
espécies coletadas por acadêmicos do curso.
11
1.2 PROBLEMA
O uso das técnicas de classificação de espécies denota grande eficiência
no processo de identificação de espécies florestais visto que a mesma
abordagem com texturas aliadas a análise das wavelets das imagens têm
demonstrado resultados satisfatórios sendo que segundo (CASTAÑON, 2003) a
transformada "wavelet" consiste de um conjunto de funções base que representa
o sinal em diferentes bandas de freqüência, cada uma com resoluções distintas
correspondentes a cada escala e foram aplicadas com sucesso na compressão,
melhoria, análise, classificação, caracterização e recuperação de imagens.
Sendo assim, como facilitar o processo de identificação de espécies
florestais contribuindo inclusive para vendas legais e o manejo florestal?
12
1.3 JUSTIFICATIVA
Abordagens de procedimentos baseados em características como cor,
textura e a forma segundo (BENDER, 2003) são atraentes métodos de indexação
e recuperação, logo desta forma reduzem a interferência humana. A busca por
conteúdo em imagens na Internet vem evoluindo e mostrando resultados
eficientes após a busca por texto ter atingido seu objetivo evolutivo.
Através de uma técnica recente em análise e processamento de imagens,
wavelets, com experimentos pouco comentados em reconhecimento de texturas,
consiste em um esquema alternativo de análise de transformação de sinais,
complementando, um método de transformação de funções que dependem de
tempo ou espaço, o que é adequado para os processos espaciais em imagens.
Para a extração de atributos das imagens macroscópicas, a textura será a
característica a ser extraída para que sejam realçadas determinadas estruturas
da planta. A base de dados de imagens vai permitir a catalogação de espécies
florestais através da visão macroscópica, este estudo não possui material
relacionado suficiente em português, tornando-se uma proposta específica de
pesquisa para ser utilizada em turmas de alunos do curso de tecnologia da
madeira.
13
1.4 OBJETIVOS
1.4.1 Objetivo Geral
Analisar a técnica de wavelets em fotos macroscópicas de espécies
florestais através da proposta de um algoritmo.
1.4.2 OBJETIVOS ESPECÍFICOS
• Definir um protocolo padrão de captura das imagens macroscópicas e será
necessário separar as imagens por espécies em três grupos (treinamento,
validação e teste) e desses, 50% testes, os outros 50% restantes, 70%
para treinamento e 30% validação;
• Adquirir as imagens;
• Criar a base de dados com as imagens adquiridas e fazer a leitura das
imagens no BD;
• Extrair características wavelets das imagens e armazená-las;
• Normalizar os dados (gerar dados no intervalo de 0 a 1);
• Gerar arquivos para NNS;
• Desenvolver a interface final;
• Validar experimento.
14
2 PROCESSAMENTO DIGITAL DE IMAGENS O processamento digital de imagens consiste numa série de etapas
fundamentais: aquisição da imagem, realce, segmentação e classificação da
imagem. Enquadra-se na computação gráfica da seguinte maneira:
Figura 1 – Computação Gráfica
Fonte: (CONCI, 2008).
“Processar uma imagem consiste em transformá-la sucessivamente com o
objetivo de extrair mais facilmente a informação nela presente.”
(ALBUQUERQUE, 2007, p. 1).
Processando uma imagem, pode-se extrair, destacar e restaurar uma série
de informações que antes não eram bem visualizadas como mostra o exemplo:
Figura 2 – Exemplos de imagens pré-processadas.
Fonte: (FACON, 2005).
Equalizadas Originais
15
Nota-se na figura 2 que o contraste e o brilho excessivo das imagens
originais ofuscam o detalhamento que pode ser observado nas figuras
equalizadas. Utilizando técnicas específicas, pode-se minimizar a presença de
ruídos, realçar traços, podendo até adquirir a qualidade próxima originalmente
vista por olhos humanos.
2.1 SISTEMA GERAL DE VISÃO Um sistema geral de visão caracteriza-se por saber se confrontar com
todas as situações, assim como faz o extremamente complexo Sistema Visual
Humano.
Os computadores atuais são extremamente eficientes para trabalharem com base de dados, cálculos numéricos e formais, mas eles não conseguem realizar eficientemente algumas tarefas “simples” realizadas por animais e seres-humanos. Fica então uma questão, que é parte integrante das linhas de pesquisas modernas em processamento de imagens: Seria realmente o computador a máquina mais adaptada para resolver estes problemas? Um exemplo prático é o processo de reconhecimento de uma pessoa pelo SVH. O trabalho realizado pelo cérebro nos parece muito simples e bastante elementar; porém uma análise detalhada mostra que o cérebro humano é capaz, a partir de uma grande quantidade de informações de luminância e crominância (captada pelos olhos) de realizar esta tarefa de reconhecimento em apenas 150ms. (ALBUQUERQUE, 2007, p. 3).
Para as finalidades de pesquisa, atualmente os cientistas exploram a adaptação
do sistema visual humano em suas aplicações.
2.2 SISTEMA VISUAL HUMANO O sistema visual humano define como se enxergam os objetos no espaço,
é constituído dos olhos, que transformam a luz em um sinal (neuronal), dos
nervos óticos, os quais transportam esse sinal, e do cérebro que processa os
sinais neuronais e extrai as informações necessárias.
É importante desenvolver uma compreensão básica do processo de
percepção visual. Na Figura 1 tem-se o esquema do funcionamento do olho
humano:
16
Figura 3 – Olho humano.
Fonte: (FROTA, 2009).
O SVH distingue as cores pelo processo da tricromacia que consiste em
três tipos de cones, eles respondem a espectros de cores distintos, vermelho,
verde e azul. (LIVENS et al,1997).
Um dos aspectos mais importantes da textura é a escala. Estudos psico-
visuais indicam que o sistema visual humano processa imagens em um caminho
multi-escala. O "processamento adiantado" do cérebro desempenha um tipo de
análise de freqüência espacial, e conseqüentemente, o córtex visual tem células
separadas as quais respondem a diferentes freqüências e orientações. Este
processamento multi-escala, do qual os humanos obviamente aplicam com
sucesso à percepção de textura, é uma forte motivação para métodos de análise
de textura iniciar das mesmas idéias.
Segundo ROSENFELD (1993), o modo como nosso sistema visual
humano processa uma imagem é muito complexo, para que esse trabalho tenha
êxito no computador, uma série de passos deve ser seguida como mostra na
figura 4:
17
Figura 4 – Etapas do Processamento de Imagens.
Fonte: (WOODS e GONZALES, 2000)
LIMA (2003) descreve que existem diferentes sistemas para se representar
uma imagem e que no sistema RGB, uma imagem digital é caracterizada
atribuindo-se a cada pixel, um vetor com três componentes, cada uma das quais
representando as intensidades das cores vermelho, verde e azul,
respectivamente. O valor de cada componente é um número inteiro entre 0 e 255
e no caso de uma imagem em preto e branco, as três componentes são iguais e
a imagem é completamente caracterizada pelo escalar, que é o valor comum das
três intensidades.
18
2.3 ETAPAS DO PROCESSAMENTO DE IMAGENS
2.3.1 Aquisição das Imagens Para adquirir as imagens, dois elementos são necessários: um dispositivo
físico sensível ao espectro de energia eletromagnético, como ao espectro de
raios-X, luz ultravioleta, visível, ou infravermelha (aparelhos de Raios-X,
câmeras). Este dispositivo transdutor deve produzir em sua saída um sinal
elétrico proporcional ao nível de energia percebido, o sensor de imageamento
também poderia ser uma câmera de varredura por linha que produza uma linha
de imagem a cada vez. O outro, digitalizador, é um dispositivo que converte o
sinal elétrico analógico produzido na saída do sensor em um sinal digital como,
por exemplo, um scanner ou um webcam. (WOODS e GONZALES, 2000).
2.3.2 Pré-processamento Após a aquisição da imagem, será necessário pré-processar aquela
imagem, ou seja, melhorar a imagem de forma a aumentar as chances para o
sucesso dos processos seguintes. Segundo WOODS e GONZALEZ (2000), o
pré-processamento envolve técnicas para o realce de contrastes, remoção de
ruído e isolamento de regiões cuja textura indique a probabilidade de informação
alfanumérica.
2.3.3 Segmentação A segmentação divide uma imagem de entrada em partes ou objetos
constituintes. Em geral, a segmentação automática é uma das tarefas mais
difíceis no processamento de imagens digitais. Por um lado, um procedimento de
segmentação robusto favorece substancialmente a solução bem sucedida de um
problema de imageamento. Por outro lado, algoritmos de segmentação fracos ou
erráticos quase sempre asseveram falha no processamento. No caso de
reconhecimento de caracteres, o papel básico da segmentação é extrair
caracteres individuais e palavras do fundo da imagem. (WOODS e GONZALEZ,
2000).
19
2.3.4 Classificação
São conhecidos duas formas de classificação, o processo supervisionado
e o não-supervisionado, estes são acompanhados no procedimento de extração
de características. CONCI et al (2008) afirmam que:
Uma vez que os descritores da imagem e dos objetos segmentados encontram-se disponíveis, passa-se a etapa seguinte, que consiste em distinguir objetos na imagem agrupando esses parâmetros de acordo com sua semelhança para cada região de pixels encontrada. Essa é a função dos processos de classificação e reconhecimento. (CONCI et al, p.56, 2008).
A partir da análise vista acima, pode-se entender que o processo de
classificação consiste no agrupamento em classes dos diversos objetos obtidos
na segmentação. Em geral, vários atributos são necessários para uma correta
classificação, no entanto, quanto mais atributos forem adicionados, mais
complexo se torna o problema.
20
3 RECONHECIMENTO DE PADRÕES O que tem intrigado muitos cientistas foi a capacidade humana na tarefa
de implementar algoritmos utilizando desta, a sua base de raciocínio, que sempre
impressionou. Ainda é mais desafiadora a sua capacidade de reconhecer e
classificar objetos. Este conhecimento é importante devido às ocorrências na vida
humana tomarem forma de modelos padronizados (SOUZA, 1999), o
entendimento das imagens, o desenho de figuras, tudo isso envolve padrões.
As técnicas de reconhecimento de padrões englobam várias áreas tanto
científicas quanto tecnológicas, ou seja, possuem um vasto leque de aplicações,
o que vem impulsionando muitos cientistas no estudo de suas multiplicidades.
Também consistem no desenvolvimento de sistemas inteligentes, capazes de
analisar características de objetos selecionando seus atributos mais
discriminativos e por fim, construir um classificador.
Seguem os passos: aquisição, pré-processamento, segmentação, extração de
características e classificação.
Um dos maiores problemas em reconhecimento de padrões é obter uma boa avaliação das classes presentes em uma cena. Para que se descreva adequadamente tais classes, é necessário utilizar-se um espaço de características que permita que haja uma boa distinção entre as mesmas. (CLAUDINO et al, 2000).
De acordo com THEODORIDIS E KOUTROUMBAS (2003), um completo
sistema de reconhecimento de padrões consiste de um sensor que obtém
observações a serem classificadas ou descritas; um mecanismo de extração de
características que computa informações numéricas ou simbólicas das
observações; e um esquema de classificação das observações, que depende das
características extraídas.
3.1 CARACTERÍSTICAS, VETORES DE CARACTERÍSTICAS E CLASSIFICADORES Uma forma simples para entender estes conceitos é proposto em
(MARTINS, 2003), onde as figuras 5a e 5b, correspondem a um tumor benigno
(classe A) e um tumor maligno (classe B), respectivamente. Supondo-se que
estas não são as únicas imagens destas classes disponíveis para o estudo. Tem-
se uma base de dados de imagens com um número de padrões das classes A e
21
B, na qual se buscam elementos que permitam separar as imagens como
demonstrado na figura 6.
A B
Figura 5 – Exemplo de regiões correspondentes à classe A e à classe B.
Fonte: (MARTINS, 2003)
Precisa-se identificar as quantidades mensuráveis que tornam estas duas
regiões distintas. Depois de uma análise destas amostras, obtém-se um gráfico
conforme mostra abaixo:
Figura 6 – Representação do valor médio versus desvio padrão para um número de imagens
diferentes originadas pela classe A (o) e a classe B(+), neste caso uma linha reta separa as duas
classes.
Fonte: (MARTINS, 2003)
Cada ponto corresponde a uma imagem diferente da base de dados.
Consegue-se ver que os padrões da classe A tendem a espalhar-se numa área
diferente de que os padrões da classe B. A linha reta é uma boa candidata a
separar as duas classes. Supondo-se que se tem uma nova imagem com uma
região em que não se sabe a que classe pertence. Pode-se afirmar que, se for
22
medidos a intensidade média e o desvio padrão na região de interesse,
consegue-se desenhar o ponto correspondente. Este ponto representado pelo (*)
na figura 6. Assim, é fato assumir que o padrão desconhecido aproxima-se mais
da classe A do que da classe B.
Essas informações são importantes para a análise do tópico seguinte, para
que uma rede neural seja capaz de fazer o reconhecimento de padrões,
inicialmente a estrutura da rede é treinada, ou seja, adquire conhecimento, este
conhecimento adquirido são as características extraídas dos padrões almejados.
3.2 REDES NEURAIS ARTIFICIAIS Analogia ao cérebro humano segundo (KAETSU e TATIBANA, 2003):
O cérebro humano é considerado o mais fascinante processador baseado em carbono existente, sendo composto por aproximadamente 10 bilhões de neurônios. Todas as funções e movimentos do organismo estão relacionados ao funcionamento destas pequenas células. Os neurônios estão conectados uns aos outros através de sinapses, e juntos formam uma grande rede, chamada Rede Neural.
Figura 7 – Neurônio humano e partes constituintes da célula neuronal.
Fonte: (CARVALHO I, 2009).
Na figura 7 tem-se a representação do neurônio humano na escala de 10
micrômetros de suas partes constituintes. A utilização de redes neurais como
solução potencial para problemas complexos não é mais novidade. Nos últimos
23
50 anos, muitos estudos têm sido realizados com o intuito de alcançar o nível de
sofisticação do cérebro humano para processar informação. (WILLIS, 1991).
A habilidade das redes neurais de modelar funções não-lineares é utilizada
em muitas aplicações industriais, tais como: identificação de sistemas, controle
de processos, detecção de falhas, reconhecimento de padrões (PEARSON, 2003;
RAMCHANDRAN, 1995). Como modelo empírico, o uso de redes neurais
apresenta a vantagem de não se necessitar de conhecimento prévio do processo,
pois são capazes de estabelecer a relação dinâmica de causa e efeito e
encontrar relações complexas entre variáveis (KORRES, 2002; LENNOX, 2001;
ARAHAL, 1998; SAVKOTIC, 1996; SU, 1993). A partir de informação do processo
– valores medidos das entradas e saídas e utilizados na etapa de treinamento –
as redes neurais são capazes de reproduzir o comportamento do processo –
etapa de previsão.
Ainda segundo CARVALHO I (2009), a maioria dos modelos de redes
neurais possui alguma regra de treinamento, onde os pesos de suas conexões
são ajustados de acordo com os padrões apresentados. Em outras palavras, elas
aprendem através de exemplos. Arquiteturas neurais são tipicamente
organizadas em camadas, com unidades que podem estar conectadas às
unidades da camada posterior.
Figura 8 – Modelo de uma RNA organizada em camadas.
Fonte: (CARVALHO I, 2009).
Na figura 8, tem-se o esquema do modelo de organização em camadas
onde os padrões são apresentados à rede na camada de entrada, através das
conexões ponderadas, passam para as camadas intermediárias ou escondidas
(hidden), onde é feita a maior parte do processamento; podem ser consideradas
24
como extratoras de características e finalizam na camada de saída onde o
resultado final é concluído e apresentado. As redes
neurais tradicionalmente utilizadas (multicamada com treinamento
backpropagation) apresentam algumas características indesejadas que foram
superadas parcialmente pelas redes de base radial de wavelets, chamadas
wavenets (MOURA, 2003).
MOURA (2003) apresenta uma abordagem interessante, enfatizando um
conceito pouco conhecido de redes neurais. Apesar do potencial das redes
neurais, muitos problemas restam a serem resolvidos antes que larga utilização
delas venha a ocorrer (HAIKIN, 1999; SAFATI, 1997). Algumas funções de
ativação utilizadas no trabalho de MOURA (2003) são funções cujo suporte é
igual ao domínio definido para as variáveis de interesse e, portanto, não é
possível realizar um aprendizado da rede de forma localizada. A classe e o
número de funções que definem a estrutura da rede, pode ser necessário
determiná-las de forma empírica, por tentativa e erro ou por heurística. A
convergência do algoritmo de aprendizado não é normalmente garantida.
Tentativas foram feitas para resolver estes, e outros problemas, considerando
estrutura rigorosa para as NNs. A teoria de wavelets foi utilizada por BAKSHI,
(1993) para implementar wavenets. Uma abordagem ampla encontra-se nos
trabalhos de (ROQUEIRO, 1995; CLAUMANN, 2003).
3.2.1 JAVA NNS Dentre as opções de simuladores de rede neural encontradas na internet
optou-se pelo simulador de Rede Neural SNNS. O JAVA NNS é um simulador de
RNA em Java, derivado do SNNS, sua instalação é bastante simples.
O SNNS possui muitos algoritmos de aprendizado, como Backpropagation,
Quickprop, RProp, Backpercolation, Counterpropagation, Generalized radial basis
functions, entre outros. Como também fácil criação de diversas topologias de
Redes Neurais Artificiais, além de permitir acompanhar a evolução de taxas de
erro e aprendizado da RNA através de gráficos presentes na figura 9. O
SNNS2C, aplicativo do pacote SNNS, permite a conversão de uma RNA em
código C, tornando a rede flexível para o uso em outras aplicações (SNNS,
2008).
25
Figura 9 – Tela principal do Simulador JAVA NNS
FONTE: (SNNS, 2008).
Os outros itens e gráficos apresentados na figura 9 são oferecidos pelo
JAVA NNS para controlar a execução da rede, e também verificar seu
funcionamento. A caixa a esquerda é o painel de controle onde se pode escolher
o algoritmo de treinamento usado conforme a rede empregada e também se
podem alterar os parâmetros da rede. (CERA, 2005).
26
4 O ESTADO DA ARTE
A análise do Estado da Arte da técnica utilizada neste trabalho vem
acompanhada de muitos bons resultados em várias aplicações já criadas em
análise de texturas utilizando wavelets.
Em CASTELANO (2006), é apresentado um método de reconhecimento de
seres humanos através da textura da íris. Similar a este trabalho, um vetor de
características é extraído para cada íris, os resultados obtidos com algumas
famílias wavelets demonstraram que o método proposto é capaz de realizar o
reconhecimento com uma precisão eficiente.
Um dos métodos mais utilizados na literatura para representar texturas em
imagens é o processamento de sinais através de wavelets (MANJUNATH e MA,
1996), onde esses padrões de textura podem ser decompostos e analisados
separadamente em cada resolução.
Em MARFIL et al, (1997) é apresentado várias técnicas de análise e
segmentação de texturas ressaltando a importância e a utilização da
transformada wavelet.
Em ROIEK (2008) foram utilizadas 164 imagens de 14 espécies florestais
utilizando apenas características com base na cor, cuja escolha deve-se ao fato
desta ter invariância à orientação da imagem ou posições específicas. Para cada
canal de cor foi feito um histograma e nele buscaram-se quais seriam as áreas
que dariam maior similaridade em caso de espécies iguais e dissonância em
espécies diferentes. Com isso duas áreas de interesse foram selecionadas para
cada canal de cor, com isso foi extraído um conjunto de 24 características, que
após aplicação em uma rede neural artificial foi gerado um resultado de 80,9% de
reconhecimento.
4.1 A TEXTURA A textura não pode ser definida em um pixel, mas sim numa região que
possui propriedades homogêneas. Existem dois tipos de texturas:
• Naturais: baseadas em espécies florestais e objetos contidos na natureza.
• Artificiais: originadas de objetos fabricados.
Na figura 10, vemos alguns exemplos de texturas naturais e artificiais.
Abaixo, temos telhas, lajota e tecido como exemplos de texturas artificiais,
27
também temos pelagem de onça, gramado e tronco de árvore como exemplos de
texturas naturais.
Figura 10 – Exemplos de texturas: 1. Telhas, (SISTIN, 2009). 2. Lajota, (MÓDULO 1, 2009). 3.
Tecido, (CCRUZEIRO, 2009). 4. Pelagem, (GLOBO, 2009). 5. Gramado verde, (GRAMADOS,
2009). 6. Tronco de árvore (UNESP, 2009).
A textura, diferente da simplesmente cor, traduz o aspecto de forma
(rugosidade, maciez, aspereza), impele a sensação visual e táctil do objeto ao
observador.
A pesquisa sobre a textura é geralmente dividida em cinco áreas de
problemas específicos:
• Síntese;
• Classificação;
• Segmentação;
• Compressão;
• Forma da textura.
As primeiras quatro áreas são muito influenciadas pelo uso de wavelets e
bancos de filtros, com wavelets sendo particularmente efetivas na compressão
enquanto bancos de filtros abriram caminho em classificação e síntese.
(WU et al, 2000) consideram:
“Textura é uma das características essenciais para análise, reconhecimento e interpretação de diversos tipos de imagens incluindo cenas naturais, [...] Apesar do esforço, a análise de textura ainda é considerada como um problema interessante, mas também difícil em processamento de imagens.”
28
Embora constantes mudanças venham ocorrendo durante os últimos dez
anos, o surgimento de novas técnicas de processamento, a análise de texturas
continua sendo um desafio computacional devido à complexidade das novas
necessidades.
4.2 A ANÁLISE DE TEXTURAS
HARALICK (1973) descreve a textura com o uso de coeficientes de
uniformidade, densidade, aspereza, regularidade, intensidade, dentre outras
características da imagem.
SONKA (1993) descreve a textura como sendo algo que consiste de
elementos mutuamente relacionados.
Ambos os autores descrevem a textura com um conceito bidimensional,
apesar de não possuir um conceito definitivo, as definições anteriores relacionam
a textura a impressão que ela passa de rugosidade e contraste aparentada pela
variação tonal e pela repetição de padrões.
Análise de textura é importante em muitas aplicações de análise de
imagens por classificação, detecção ou segmentação de imagens baseado em
padrões espaciais locais de intensidade ou cor. Texturas têm a força implícita
porque são baseadas em noções intuitivas de similaridade visual, o que significa
que são particularmente úteis para a pesquisa de banco de dados visuais e
outras aplicações de interação humano-computador. Entretanto, desde que a
noção de textura é atada ao significado semântico humano, descrições
computacionais foram estendidas, algumas vagas e às vezes conflitantes.
A análise de textura de imagens digitais tem por objetivo estabelecer o
relacionamento de vizinhança dos elementos de textura e seu posicionamento em
relação aos demais (conectividade), o número de elementos por unidade espacial
(densidade) e a sua homogeneidade ou regularidade (CASTAÑON, 2003).
29
5 TRANSFORMADAS DE IMAGENS Transformadas matemáticas são aplicadas aos sinais para obter uma
informação que não está visível no sinal em estado natural. (POLIKAR, 1996).
As transformadas permitem a realização de uma vasta gama de aplicações
em processamento de imagens, por exemplo, na extração de características,
compressão de dados, segmentação e filtragem de imagens. A aplicação das
transformadas altera a representação inicial da imagem, provendo informações
que permitam uma melhor análise dos dados. Uma das transformadas
mais conhecidas segundo Pedrini e Schwartz (2008) é a Transformada de Fourier
(DFT) que do inglês, Discrete Fourier Transform, usada para descrever funções
de senóides complexas. E a versão discreta, utilizada inicialmente em
processamento de sinais como ferramenta para análise de funções
unidimensionais, apresenta extensão para duas dimensões, assim recebendo
melhor atenção para processamento e análise de imagens.
Para entender basicamente o
conceito de wavelet neste trabalho, é necessária uma visão dos parâmetros e
conceitos utilizados na transformada de Fourier.
5.1 TRANSFORMADA DE FOURIER
Quando se precisa do tempo de localização dos componentes espectrais,
uma transformação dando a representação tempo-freqüência do sinal é
necessário. Supõe-se que
se têm dois sinais diferentes, e também que ambos têm os mesmos
componentes espectrais (componentes de freqüência), com uma grande
diferença, um dos sinais tem quatro componentes de freqüência em todos os
momentos, e os outros quatro têm os mesmos componentes de freqüência em
momentos diferentes. A DFT de ambos os sinais seriam as mesmas. Embora os
dois sinais sejam completamente diferentes, as suas magnitudes FT são as
mesmas. Logo, percebe-se que não se pode usar a DFT para sinais não-
estacionários (que variam no tempo) (POLIKAR,1996).
Muitas vezes, as informações que não podem ser facilmente vistas no domínio do
tempo podem ser vistas no domínio da freqüência. Para tal, a transformada de
Fourier que indica os componentes de freqüência.
30
Figura 11 – Gráfico 3D da transformada de Fourier.
Fonte: (POLIKAR, 2001).
5.1 TEORIA DE WAVELETS São funções matemáticas capazes de transformar dados em componentes
de freqüências diferentes e examinar cada um desses com uma resolução
próxima a da sua escala. O conceito foi proposto pela primeira vez por Haar em
1909, mas as origens da teoria wavelet iniciam-se nos anos 30, quando, ainda
sem corpo, podia ser discretamente identificada em trabalhos de Análise
Funcional e outros ramos matemáticos. Anos se passaram e o conceito wavelet
foi deixado de lado retornando na década de 80, entretanto é um assunto ainda
pouco explorado, podendo ser bastante usado como objeto de estudo, tendo
muito campo pela frente.
Segundo (Lima, 2003):
As transformadas de wavelets podem ser vistas como mecanismos para decompor ou quebrar sinais nas suas partes constituintes, permitindo analisar os dados em diferentes domínios de freqüências com a resolução de cada componente amarrada a sua escala. Além disso, na análise de wavelets, podemos usar funções que estão contidas em regiões finitas, tornando-as convenientes na aproximação de dados com descontinuidades.
31
1. 2.
3. 4.
Figura 12 – Exemplos de wavelets: 1. Wavelet de Morlet, 2. Chapéu Mexicano, 3. Meyer. Fonte:
(WIKIPEDIA, 2009). 4. Wavelet de Haar. Fonte: (LIMA, 2003).
A wavelet de Haar é a mais antiga e conceitualmente a mais simples,
conserva a energia dos sinais enquanto comprime esta energia em uma forma
mais compacta. Usa apenas dois coeficientes de função wavelet, assim, calcula a
distinção de médias e subtrações.
Técnicas de multi-resolução pretendem transformar imagens em uma
representação em que a informação espacial e de freqüência está presente. Para
complementar, muitas técnicas relacionadas foram desenvolvidas, incluindo
Gabor, Haar e Walsh-Hadamard, pirâmides de Gauss e Laplace, etc.
Na última década, uma estrutura matemática emergiu, da qual provê uma
abordagem mais sólida e unificada para representações de multi-resolução. Este
paradigma das wavelets está agora bem estabelecido e tem sido encontrado em
muitas aplicações em processamento de imagens. Desde que ao mesmo tempo
alguns de seus precursores puderam ser reformulados em terminologia wavelet,
se tornou uma ferramenta preferida para análise multi-resolução.
32
Wavelets podem ter caráter fractal e padrões que se repetem em escalas
diferentes. A análise de sinais com wavelets permite a extração de dados
coerentes tanto no domínio da freqüência quanto no do tempo (ou espaço, para
imagens). Em música, padrões oscilatórios e transientes se repetem no tempo e
possuem composição freqüencial determinada. A análise com wavelets pode ser
vista como uma decomposição atômica, onde se busca os componentes básicos
dos sinais, os átomos. Uma vez descritos os "átomos" do sinal, mais fácil fica
para se combinar e produzir novas moléculas. Por exemplo, numa partitura
musical temos um arranjo de átomos (as notas) que possuem duração e
freqüência determinadas.
De acordo com (FARIA, 1997), existem inúmeras formas de se poder
aplicar tal conhecimento, por exemplo: analisando um trecho de uma sinfonia
contendo violinos, violoncelos, tubas e trompetes. O sinal se constitui numa
mistura que, no entanto o ser humano pode desdobrar o sinal mentalmente e
reconhecer os instrumentos. Isto porque de certa forma os seus filtros auditivos
funcionam de forma a separar as freqüências "por canais" distintos, e monitorar a
intensidade, duração, etc. em cada um desses canais. Wavelets permitem fazer
isso, a análise em tempo-freqüência.
Assim, é teoricamente possível construir um sistema para separar os
instrumentos e codificar seus padrões em coeficientes wavelets diferentes, as
técnicas de Fourier permitem separar os conteúdos espectrais, mas mostram-se
pobres em descrever ao mesmo tempo as condições temporais (padrões não
estacionários). Este é um exemplo eficaz de se enxergar wavelets em ação.
Como a transformada wavelet é uma ferramenta capaz de reduzir dados
ou funções em componentes de freqüência diferentes, sendo cada componente
estudado com uma resolução próxima a de sua escala, de acordo com os passos
apresentados na figura 14, entende-se que a escala corresponde a wavelet em
seus vários estágios de dilatação dentro do sinal analisado.
No apêndice existem algumas transformadas wavelet mais utilizadas.
33
(a) (b)
(c) (d)
Figura 13 – (a) Esquema de organização dos coeficientes Wavelets. (b) Imagem original. (c)
Decomposição em três níveis pela wavelet de Daubechies. (d) Os três níveis de decomposição
(L1,L2,L3) vistos individualmente, com seus respectivos coeficientes de aproximação, detalhes
horizontais, diagonais e verticais. Fonte: (CASTELANO, 2006).
Na figura 13, tem-se o esquema do funcionamento dos coeficientes wavelets,
cada coeficiente sendo analisado conforme o tamanho de sua escala.
5.1.1 Transformada Contínua de Wavelet O fato de uma transformada ser contínua ou discreta classifica-se assim
conforme a natureza do sinal analisado, por exemplo, se tratando de um sinal
digital, utiliza-se então a transformada discreta, conforme os ramos da
34
matemática discreta. O sinal analisado na figura 14 a seguir trata-se de como a
wavelet escolhida percorre o sinal no domínio da freqüência.
O cálculo desta transformada produz coeficientes wavelets que são funções da
escala e da posição, e ela pode ser obtida através do seguinte algoritmo (CONCI
et al, 2008):
1. Escolhe-se a wavelet e faz a comparação em uma parte inicial do sistema
original.
2. Calcula-se um número C, que representará a correlação da wavelet com a
parte do sinal analisado.
3. Move-se a wavelet para a direita e repete-se os passos 1 e 2 até percorrer
todo o sinal.
4. Dilata-se a wavelet e repete-se os passos 1, 2 e 3.
5. Repete-se os passos 1, 2, 3 e 4 em todas as escalas. Como mostra a
figura a seguir:
Passo I e passo II Passo III Passo IV
Representação tempo/escala Representação 3D da transformada
de wavelet Fonte: CONCI et al (2008)
Figura 14 – Esquema dos passos do cálculo da transformada wavelet e representações 3D da
mesma. Fonte: (CONCI et al, 2008).
Outras informações como fórmulas e cálculos da transformada contínua poderão
ser encontrados no Apêndice.
5.1.2 Transformada Discreta de Wavelet
35
A transformada wavelet discreta é a transformada que corresponde à
transformada contínua de wavelet usada para funções discretas, como falado
anteriormente, é utilizada para analisar sinais digitais, e também na compressão
de imagens digitais. A primeira invetada foi a wavelet de Haar.
Outras informações como fórmulas e cálculos da transformada discreta poderão
ser encontrados no Apêndice.
5.1.3 Wavelets de Gabor Os Filtros de Gabor estão diretamente relacionados com as wavelets de
Gabor, uma vez que eles podem ser projetados para o número de dilatações e
rotações.
O pré-processamento de imagens por wavelets de Gabor foi escolhido em
algumas pesquisas pela sua relevância biológica e propriedades técnicas. As
wavelets de Gabor são de forma semelhante como os campos receptivos das
células simples do córtex visual primário (V1). Eles estão localizados no espaço e
no domínio da freqüência e têm a forma de ondas planas limitado por uma função
gaussiana.
5.1.4 O Uso de Wavelets em Análise de Texturas A análise de texturas baseada em wavelets usa uma classe de funções
que são localizadas em ambos domínios espacial e espaço-frequencial para
decompor imagens de textura.
Funções wavelet pertencentes à mesma família podem ser construídas de
uma função base conhecida como “wavelet mãe” ou “wavelet básica”, por meio
de dilatação e translação. A imagem de entrada é considerada como sendo a
soma com peso de funções escaladas e deslocadas de wavelets sobrepostas.
Deixa g(x) ser uma wavelet (em 1D por simplicidade). A transformada wavelet de
um sinal 1D f (x) é definida como sendo:
onde g(α(x − τ)) é computada da “wavelet mãe” g(x), τ e α denota a translação e
escala respectivamente. A discreta equivalente pode ser obtida por amostragem
dos parâmetros α e τ. As restrições de amostragem requerem a transformada
36
para ser uma decomposição ortogonal completa não-redundante. Cada sinal
transformado contém informação de uma classe de orientação específica.
Técnicas populares da transformada wavelet têm sido aplicadas a análise de
textura às quais incluem a transformada wavelet piramidal, e a decomposição de
wavelet packet.
37
6 METODOLOGIA Esta metodologia baseia-se na utilização dos filtros de wavelets com
parâmetros pré-definidos consagrados em trabalhos anteriores.
Foram coletadas imagens de espécies florestais as quais serão
armazenadas em um banco de dados para posteriormente serem utilizadas no
reconhecimento das novas espécies carregadas pelo usuário do sistema. Todas
as 143 imagens de 14 espécies florestais utilizadas no desenvolvimento deste
trabalho foram adquiridas no Laboratório de Anatomia da Madeira da UFPR
(Universidade Federal do Paraná), de acordo com o protocolo estabelecido,
sendo cedidas pela instituição.
Para desenvolver o algoritmo de extração das características das imagens,
bem como a interface da aplicação foi utilizada a ferramenta de desenvolvimento
C++ Builder.
Para os processos de reconhecimento de padrões foi utilizada a
ferramenta Java NNS distribuída gratuitamente na internet e desenvolvida pelo
Stuttgart Neural Network Simulator, para a criação e treinamento da rede neural a
ser utilizada no sistema, juntamente com o SNNS2C, aplicativo que converte a
rede gerada para a linguagem C, podendo assim ser usada facilmente dentro de
aplicativos.
6.1 AS ESPÉCIES FLORESTAIS
As espécies utilizadas para o desenvolvimento do sistema foram
selecionadas por textura (rugosidade, maciez, asperez), e espécies similares a
olho nu, que normalmente podem gerar confusões na classificação, as mesmas
utilizadas em (ROIEK, 2008).
Tabela 1 – Tabela das espécies utilizadas no desenvolvimento do sistema Fonte: (ROIEK, 2008).
38
6.2 EXTRAÇÃO DE CARACTERÍSTICAS A textura foi escolhida por sua variação à orientação da imagem em
posições específicas.
Para cada imagem, foi calculada a wavelet de Haar, e destas imagens
foram retiradas as energias calculando assim uma matriz de co-ocorrência.
Tabela 2 – Tabela representante do esquema de uma matriz de co-ocorrência. Fonte: HARALICK (1973).
39
Característica Descrição Homogeneidade Distribuição dos pixels
Probabilidade Máxima Indica a direção mais importante da textura a ser examinada
Entropia Mede a informação contida em p; muitos valores nulos representam pouca informação
Energia ou uniformidade Retorna a soma dos elementos elevados ao quadrado dentro da matriz. Varia de 0 a 1, tendendo a 1 em imagens constantes
Contraste ou variância Retorna uma medida do contraste entre as intensidades de um pixel analisado e do pixel vizinho. Para uma imagem constante o resultado será 0. Corresponde ao momento de ordem 2.
Momento de 3ª ordem Distorção da imagem. Correlação Retorna o quão correlacionado está o pixel
com seu vizinho, varia entre -1 e 1, sendo que o primeiro aparece em uma imagem completamente descorrelacionada.
Tabela 3 – Tabela representante dos descritores utilizados como extratores de características da matriz de co-ocorrência do sistema.
Essa técnica consiste de experimentos estatísticos realizados sobre como
certo nível de cinza ocorre em relação a outros níveis de cinza, gerando uma
matriz (CONCI et al, 2008).
Desta matriz foram extraídos 7 atributos (energia, contraste, entropia,
homogeneidade, probabilidade máxima, momento de 3ª ordem e correlação) em
4 direções diferentes, 0 graus (vizinho da direita), 45 graus (vizinho superior
direito), 90 graus (vizinho de cima) e 135 graus (vizinho superior esquerdo),
perfazendo 28 características de GLCM para o wavelet de Haar, com isso, Haar
totaliza 29 características. Posteriormente, o mesmo é feito com a wavelet de
Daubechies, gerando mais 29 características, logo, obteve-se o total de 58
características.
Os primeiros testes foram realizados com a energia das wavelets de Haar
e de Daubechies, ou seja, com 2 unidades de entrada e 14 unidades de saída,
sendo as duas energias os neurônios de entrada e as 14 unidades de saída são
as 14 espécies florestais. Os seguintes testes foram realizados com 58 unidades
de entrada (descritas no parágrafo anterior) e 14 unidades de saída pelo fato de
que nestes testes foram utilizadas mais 7 características descritas acima.
40
Figura 15 – Interface final do sistema.
6.3 CLASSIFICADORES Como descrito no processo de extração de características, para que a rede
pudesse reconhecer as várias classes de espécies usadas neste estudo, foi
construída uma rede neural com 58 unidades de entrada e 14 unidades de saída
(uma para cada espécie reconhecida). A rede foi conectada de forma feed
forward e foi criado um padrão específico para o reconhecimento de texturas.
As Tabelas 4 e 5 demonstram respectivamente as matrizes de confusão
geradas nos 1ºs e nos 2ºs testes pelo aplicativo Analyse, integrante do pacote de
ferramentas do JAVANNS, que demonstra como cada um dos vetores das
imagens de teste foi classificado. A linha da diagonal corresponde ao percentual
de acerto, onde, para obtê-lo, é necessário somar os valores da diagonal e dividir
pela quantidade de imagens.
41
Tabela 4 – Matriz de Confusão gerada pela base de padrões para testes, usada para a validação da Rede Neural utilizada nos primeiros testes.
Tabela 5 – Matriz de Confusão gerada pela base de padrões para o segundo teste.
42
7 CONCLUSÃO Neste trabalho foi apresentada a proposta de desenvolvimento de um
sistema para classificar espécies florestais através da análise de texturas,
utilizando a transformada wavelet discreta para o processo de extração de
características, bem como as energias de Haar e Daubechies, matriz de co-
ocorrência, retirando além destas 2 energias, ainda: energia (padrão),
contraste, entropia, homogeneidade, probabilidade Máxima, momento de 3ª
ordem e correlação da matriz de co-ocorrência.
Através da análise de trabalhos anteriores, conclui-se que o uso de
transformadas matemáticas em processamento de imagens denota grande
eficiência em resultados. Apesar destes resultados com wavelets parecerem
promissores, o algoritmo proposto da técnica utilizado para os testes não se
mostra eficiente pelo fato de alcançar apenas um percentual de reconhecimento
de 13.99%. Com a estrutura descrita nos classificadores, treinou-se a rede e com
as ferramentas oferecidas pelo JavaNNS pode-se verificar que foi obtido o
objetivo esperado que é o reconhecimento de texturas.
O problema mais freqüente durante a classificação é a ocorrência de ruído
por haver freqüências espaciais semelhantes ou até mesmo idênticas em classes
texturais distintas, sendo que as duas têm representatividade de suas texturas, só
pelo fato de possuírem amplitudes distintas, podem gerar erros de classificação.
Isto ocorre em vários momentos, ainda mais nas imagens que possuem as
características visivelmente aproximadas entre ambas.
Para trabalhos futuros, algumas perspectivas podem ser discutidas:
• O aprimoramento da técnica de segmentação para melhorar o índice de
acertos;
• A minimização do tempo de treinamento do classificador;
• A elaboração de um projeto para dar continuidade a este trabalho
descobrindo um modo de discernir se uma espécie é conhecida ou
desconhecida para que não seja identificada como sendo de uma espécie
conhecida pela RNA.
43
REFERÊNCIAS BIBLIOGRÁFICAS ALBUQUERQUE, Márcio Portes de.; Marcelo Portes de. Processamento de Imagens: Métodos e Análises. Artigo em Processamento de Imagens Digitais – Centro Brasileiro de Pesquisas Físicas – CBPF/MCT. Rio de Janeiro/RJ, 2007. ARAHAL, M.R.; BERENGUEL, M.; CAMACHO, E.F.. Neural identification applied to predictive control of a solar plant. Control Engineering Practice 6, p. 333-344, 1998. BENDER, Túlio Cleber. Classificação e recuperação de imagens por cor utilizando técnicas de inteligência artificial. Dissertação em Computação Aplicada – Universidade do Vale dos Sinos. São Leopoldo / RS, 2003. CARVALHO I, André Ponce de Leon F. de. Redes Neurais Artificiais. Disponível em: http://www.icmc.usp.br/~andre/research/neural/ Acessado em: Setembro de 2009. CARVALHO II, Bruno Motta de. Formação e Representação de Imagens. Disponível em: http://www.dimap.ufrn.br/~motta/dim102/Aquisicao%20e%20Representacao.pdf Acessado em: Março de 2009. CASTAÑON, Cesar Armando Beltran. Recuperação de imagens por conteúdo através de análise multiresolução por Wavelets. Dissertação de Mestrado em Ciências de Computação e Matemática Computacional – USP -Instituto de Ciências Matemáticas e de Computação (ICMC). São Paulo/SP, 2003. CASTELANO, Célio Ricardo. Estudo Comparativo da Transformada Wavelet no Reconhecimento de Padrões da Íris Humana. Dissertação de Mestrado em Engenharia Elétrica – Escola de Engenharia da USP – São Carlos/SP, p.58 2006. CCRUZEIRO. Fragmento de tecido. Disponível em: http://www.ccruzeiro.com/images/artigos/tecido6.jpg Acessado em: Março de 2009. CERA, Márcia Cristina. Redes Neurais no Reconhecimento de Padrões: Estudo de Caso. Disponível em: http://www.inf.ufrgs.br/gppd/disc/cmp135/trabs/mccera/t2/texto_simulacao.pdf Acessado em: Outubro de 2009. CLAUDINO, Leonardo Max Batista; OLIVEIRA, Ricardo Augusto Rabelo; ARAÚJO, Arnaldo De Albuquerque; PERROTON, Laurrent; GUIMARÃES, Silvio Jamil Ferzoli. Segmentação e Classificação Automática de Imagens Segundo Informação Textural. NPDI/DCC/UFMG - Departamento de Ciência da Computação. Belo Horizonte, MG, 2000. CLAUMANN, C. A.. Modelagem e controle de processos não lineares: Uma aplicação de algoritmos genéticos no treinamento de redes neurais
44
recorrentes. Dissertação de Mestrado, Programa de Pós-Graduação em Engenharia Química/UFSC (1999). CONCI, Aura; AZEVEDO, Eduardo; LETA, Fabiana R. Computação Gráfica: Teoria e Prática – Volume 2. Elsevier. Rio de Janeiro, 2008. DAUBECHIES, Ingrid. Ten Lectures on Wavelets, CBMS - NSF Regional Conferences Series in Applied Mathematics, 1992. EMBRAPA AMAZÔNIA ORIENTAL. Identificação de Madeira. Disponível em: http://www.cpatu.embrapa.br/servicos/agosto-2007/identificacao-de-madeira Acessado em: Setembro de 2009. FACON, Jacques. Processamento e Análise de Imagens. Material de Aula, Mestrado em Informática Aplicada – PUCPR – 2005. FARIA, Regis Rossi A. Wavelets at LSI. Disponível em: http://www.lsi.usp.br/~regis/wlets.html Acessado em: Abril de 2009. FROTA, Paula. Olho Humano. Disponível em: http://profs.ccems.pt/PaulaFrota/olho.htm Acessado em: Março de 2009. GLOBO, O. Fragmento de textura de onça pintada. Disponível em: http://oglobo.globo.com/fotos/2008/02/22/22_MHG_OncaPintada_WWF.jpg Acessado em: Março de 2009. GRAMADOS. Textura de gramado. Disponível em: http://gramados.net/loja/images/Grama%20esmeralda.jpg Acessado em: Março de 2009. HARALICK, K. Shanmugan. & 1. Dinstein, Texture Features for Image Classification, IEEE Transaction on Systems, Man and Cybernetics, SMC-3, nº6, p.610-621,1973. KAARNA, Arto. Wavelets – Own Compilation of the Wavelet Theory, p.3, 1999. KAETSU, Deise Yuki.; TATIBANA, Cássia Yuri. Uma Introdução às Redes Neurais. Disponível em: http://www.din.uem.br/ia/neurais Acessado em: Agosto de 2009. KAXIANA. Agência de Notícias da Amazônia. Disponível em: http://www.kaxi.com.br/noticias.php?id=1111 Acessado em: Outubro de 2009. KORRES, D.M. et al. A neural network approach to the prediction of diesel fuel lubricity. Fuel. v. 81, p. 1243-1250, 2002. LENNOX, B. et al.. Industrial application of neural networks – An Investigation. J. Process Control. v. 11, p. 497-507, 2001.
45
LIMA, Paulo Cupertino de., Wavelets: uma introdução, Departamento de Matemática - ICEX – UFMG, 2003. LIVENS, S.; SHEUNDERS, P.; WOUWER, G. Van de; DYCK, D. Van. Wavelets for Texture Analysis, Visielab – Department of Physics, Universidade de Antwerp, Groenenborgerlaan, Bélgica, p.1,1997. MANJUNATH, B.S.; MA, W.Y. Texture Features for Browsing and Retrieval of Image Data. IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol.18, p.8, 1996. MARFIL, R.; JIMÉNEZ, F.; BANDERA, A.; SANDOVAL, F. Análisis de Imagen Basado em Textura Mediante Transformada Wavelet. Departamento de Tecnologia Electrónica, E.T.S.I. Telecomunicación. Universidade de Málaga, Spain, Introdución,1997. MARTINS, M.P.; Reconhecimento de Padrões em Imagens, Itajaí, Univali, p.1, 2003. MÓDULO 1. Lajota. Disponível em: http://www.modulo1.com/items_images/118288347702.JPG Acessado em: Março de 2009. MOURA, Letícia Gomes. Modelagem Empírica de Colunas de Destilação utilizando Redes Neurais de wavelets para otimização e controle de processos. Florianópolis, 2003. 112 páginas. Dissertação (Mestrado em Engenharia Química) – Curso de Pós-Graduação em Engenharia Química, Universidade Federal de Santa Catarina. OLIVEIRA, Kepler de Souza. Transformada de Fourier. Disponível em: http://www.if.ufrgs.br/ast/med/imagens/ Acessado em: Novembro de 2009. PAULA, Pedro Luiz de. Classificação, Catalogação e Recuperação de Imagens de Espécies Florestais, Baseadas em Imagens Macroscópicas. Proposta de pesquisa para o Programa de Pós-graduação em Informática como requisito para ingresso no Programa de doutorado em informática da Pontifícia Universidade Católica do Paraná, 2009. PEARSON, R.K.. Selecting nonlinear model structures for computer control. J. Process Control. v. 13, p. 1-26, 2003. PEDRINI, Hélio; SCHWARTZ; William Robson. Análise de Imagens Digitais. p. 45, 2008. POLIKAR, Robi. The Wavelet Tutorial. Disponível em: http://users.rowan.edu/~polikar/WAVELETS/WTtutorial.html Acessado em: Setembro de 2009.
46
PROSA RURAL I. Identificação de Espécies Florestais da Amazônia. Realização: Embrapa, Amazônia, Programa de rádio nº25, 00:51, Programa de rádio – Arquivo Áudio, 2006.
PROSA RURAL II. Identificação de Espécies Florestais da Amazônia. Realização: Embrapa, Amazônia, Programa de rádio nº25, 03:09. Entrevista concedida a Milton Kanashiro - Representante do CGE da Embrapa na região Norte, Programa de rádio - Arquivo Áudio, 2006.
RAMCHANDRAN, S.; RHINEHART, R.R.. A very simple structure for neural network control of distillation. J. Process Control. v.5, n.2, p. 115-128, 1995. ROIEK, Douglas Rodrigo. Identificação de Espécies Florestais Usando Recuperação de Imagens por Conteúdo. Trabalho de Graduação em Ciência da Computação – Universidade do Contestado, p.34, 2008. ROQUEIRO, Nestor. Redes de Wavelets na Modelagem de Processos Não Lineares. Tese de Doutorado, COPPE/UFRJ, 1995. ROSENFELD, A. Image Analysis and Computer Vision –– Computer Vision Graphics and Image Processing, Bhubaneswar , India, 1993. RUSS, John. C. – The Image Processing Handbook. The Fifth Edition. CRC Ed., Boca Raton, FL, 2007. SAVKOTIC, J. Neural net controller by inverse modeling for a distillation plant. Computer Chem. Engng. v 20, p. S925-S930, 1996. SISTIN. Telhado. Disponível em: http://www.sistin.com.br/images/fotos/telhas/telha5.jpg Acessado em: Março de 2009. SNNS. JAVA NNS. Disponível em: http://www.ra.cs.unituebingen.de/software/JavaNNS/ Acessado em: Outubro de 2009. SONKA, Milan; HLAVAC, Vaclav; BOYLE, Roger. – Image Processing, Analysis, and Machine Vision. London: Champman & Hall, 1993. SOUZA, João Artur de. Reconhecimento de Padrões Usando Indexação Recursiva. Tese de Doutorado do Programa de Pós-Graduação em Engenharia de Produção, UFSC, Florianópolis, 1999. SU, Hong-Te; McAVOY, T.J.. Neural Model Predictive Control of Nonlinear Chemical Processes. IEEE, Proceedings of the International Symposium on Intelligent Control, p.358-363, 1993. THEODORIDIS, Sergios; KOUTROUMBAS, Konstantinos – Pattern Recognition: Second Edition. Ed. Academic Press, 2003.
47
UNESP. Fragmento de tronco de árvore. Disponível em: http://www.rc.unesp.br/arvoresdocampus/gimnos/pinaceae/pinus%20elliottii/tronco%20pinus%20elliottii.jpg Acessado em: Março de 2009. WANGENHEIM, Aldo Von. Análise de Textura Multiescalar. Disponível em: http://www.inf.ufsc.br/~visao/wavelets.html Acessado em: Abril de 2009. WIKIPEDIA. Wavelets. Disponível em: http://en.wikipedia.org/wiki/Wavelet Acessado em: Março de 2009. WILLIS, M. J. et al.. Artificial neural networks in process engineering. IEEE Proceedings-D. v.138, n.3, p. 256-266,1991. WOODS, Richard E.; GONZALEZ Rafael C., Processamento de Imagens Digitais, Ed. Edgard Blucher, 2000. WU, Gaohong; ZHANG, Yujin; LIN, Xinggang,. Wavelet Transform-based Texture Classification With Feature Weighting, Dept. of Electronic Engineering, Tsinghua University – Beijing, China, 2000. _______________________________
APÊNDICE
49
Para fins didáticos, este apêndice mostra algumas das transformadas de
imagens mais utilizadas, bem como a transformada contínua de wavelet que é
largamente utilizada em processamento de sinais.
As transformadas de Fourier apresentadas a seguir constituiem-se de
um extenso estudo feito no Instituto de Física da UFRGS por OLIVEIRA (1998):
TRANSFORMADAS DE FOURIER
Em ultrasom, um sinal Doppler consiste na superposição de ondas de
frequências diferentes, correspondentes por exemplo a diferentes velocidades
do sangue. Em um sinal de ressonância nuclear magnética, a sinal de radio
frequência também consiste de diferentes frequências e fases, que podem ser
analisados diretamente por um espectro de frequências, ou Transformada de
Fourier [desenvolvida por Jean Fourier (1768-1830) em 1822].
Entretanto, a transformada pode ser utilizada também na reconstrução
bi-dimensional de imagens em geral, por sua facilidade e rapidez de cálculo,
comparado com a resolução das equações de projeção algebricamente, que
consistem na montagem de uma matriz e sua resolução.
Um ponto importante da transformada, é o critério de Nyquist, que
especifica que um sinal precisa ser amostrado pelo menos duas vezes em
cada ciclo de variação, isto é, a frequência de amostragem (frequência de
Nyquist) precisa ser no mínimo o dobro da maior frequência presente no sinal.
Se não for observado o critério, os sinais de mais alta frequência serão
erroneamente registrados como de baixa frequência, fenômeno chamado de
alias (como a impressão da roda girando no sentido inverso que vemos na
televisão). Por exemplo, em imageamento Doppler, onde o fluxo do sangue é
medido por uma série de pulsos ultrasônicos, se os pulsos não forem repetidos
com rapidez suficiente, um fluxo rápido em uma direção pode ser interpretado
como um fluxo lento na direção oposta.
A transformada de Fourier de uma função f(x) é definida como:
50
(4.1)
e a transformada inversa, que recupera a função original é definida como:
(4.2)
onde é a frequência angular, e .
Para cada frequência , integramos a função sobre todos os valores
da coordenada . Se o valor da integral for grande para esta frequência,
então o sinal tem uma componente significativa nesta frequência, isto é, uma
parte significativa deste sinal é composto por esta frequência.
Podemos também definir:
(4.3)
e a transformada inversa, que recupera a função original é definida como :
(4.4)
51
onde é a frequência linear.
Note que:
A condição suficiente para e existência da transformada de Fourier de uma
função qualquer é que a função seja integrável, e finita, isto é:
(4.5)
As imagens que estamos interessados são sempre integráveis e finitas.
Embora a imagem seja real, a transformada de Fourier é uma função
complexa, com coeficientes reais e imaginários:
O espectro de potências é definido como:
52
e o ângulo de fase é dado por:
Por exemplo, podemos calcular a transformada de Fourier de um pulso
retangular, definido por:
A transformada de Fourier de é dada por:
53
já que
Figura 16 – Gráficos obtidos da Transformada de Fourier.
Fonte: (OLIVEIRA, 1998).
TRANSFORMADA DE WAVELET
KAARNA (1999) apresenta uma compilação própria da teoria de wavelets:
CWT – TRANSFORMADA CONTÍNUA DE WAVELET
Sendo assim, a transformada wavelet de uma função f(t) é:
E a transformada inversa ou fórmula de reconstrução:
onde
54
E a condição de admissibilidade depende de :
E nós assumimos . Então é contínua e esta conduz para uma
condição ou similar:
DWT – TRANSFORMADA DISCRETA DE WAVELET Discretização
No caso contínuo, temos:
No caso discreto, a e b têm apenas valores discretos. Pela seleção:
e .
Agora a wavelet é:
Com uma boa seleção de a0 e b0 ali existirá tal que a fórmula da
reconstrução é:
55
A TRANSFORMADA DISCRETA RÁPIDA A base matemática para a construção da transformada wavelet rápida
(FWT) é baseada na wavelet de Daubechies. O contraste é feito entre a
transformada contínua e a transformada discreta que provê a estrutura
fundamental para o algoritmo da transformada rápida.
Uma vez que os coeficientes de filtro discretos são definidos, a DWT ortogonal
pode ser definida nas escalas .
Cada a0 é uma média com peso de f na vizinhança de n:
Na decomposição:
Na reconstrução:
56
ANEXOS
57
Este anexo contém todo o código fonte do algoritmo de wavelets de
Haar e Daubechies utilizado:
/********************************************************************* FUNCTION CB_FRMIMAGE_KRL *********************************************************************/ void cb_frmimage_krl(const char *vc_file) { int vi_i, vi_j, vi_c; char vc_header[512],vc_1, vc_2[2]; image.vc_file = vc_file; IplImage *im; im = cvLoadImage(vc_file,0); if (im != NULL){ image.vi_width = im->width; image.vi_length = im->height; image.vi_bitspersample = im->widthStep; for ( vi_i = 0; vi_i < im->width; vi_i++ ) { for ( vi_j = 0; vi_j < im->height; vi_j++ ) { image.vi_matriz[vi_i][vi_j] = (im->imageData + vi_j*im->widthStep)[vi_i*im->nChannels + 0]; } } } else vi_i = 1; cvReleaseImage(&im); } //-------------------------------------------------------------------- //Cálculo da Transformada de Haar Wavelet //-------------------------------------------------------------------- void HaarWavelet(int mit1, int mit2, int nro) { int y,k,j; for (int vi_i = 0; vi_i < image.vi_width; vi_i++ ) for (int vi_j = 0; vi_j < image.vi_length; vi_j++ ) AuxMatrix[vi_i][vi_j] = image.vi_matriz[vi_i][vi_j]; for(y=0; y < mit2*2; y++) { for(j=0; j < mit1*2; j=j+2) TempMatrix[y][j/2]= ((AuxMatrix[y][j] + AuxMatrix[y][j+1])*sqrt(2)/2); for(k=0; k < mit1*2; k=k+2) TempMatrix[y][k/2 + mit1] = ((AuxMatrix[y][k] - AuxMatrix[y][k+1])*sqrt(2)/2); } for(y=0; y < mit1*2; y++) { for(j=0; j < mit2*2; j=j+2) AuxMatrix[j/2][y]=((TempMatrix[j][y]+TempMatrix[j+1][y])*sqrt(2)/2); for(k=0; k < mit2*2; k=k+2)
58
AuxMatrix[k/2 + mit2][y] = ((TempMatrix[k][y]- TempMatrix[k+1][y])*sqrt(2)/2); } } //-------------------------------------------------------------------- // Cálculo da Transformada de Daubechies Wavelet //-------------------------------------------------------------------- void DaubechiesWavelet(int mit1, int mit2, int nro) { int y,k,j; for (int vi_i = 0; vi_i < image.vi_width; vi_i++ ) for (int vi_j = 0; vi_j < image.vi_length; vi_j++ ) AuxMatrix[vi_i][vi_j] = image.vi_matriz[vi_i][vi_j]; for(y=0; y < mit2*2; y++) { TempMatrix[y][0]=((AuxMatrix[y][mit2*2-2]*(1+sqrt(3)) + AuxMatrix[y][mit2*2-1]*(3+sqrt(3))+ AuxMatrix[y][0]*(3-sqrt(3))+AuxMatrix[y][1]*(1-sqrt(3)))*sqrt(2)/(8) ); for(j=2; j < mit1*2; j=j+2) TempMatrix[y][j/2]=((AuxMatrix[y][j]*(1+sqrt(3)) + AuxMatrix[y][j+1]*(3+sqrt(3))+ AuxMatrix[y][j+2]*(3-sqrt(3))+AuxMatrix[y][j+3]*(1-sqrt(3)))*sqrt(2)/(8) ); TempMatrix[y][mit1] = ((AuxMatrix[y][mit2*2-2]*(1-sqrt(3)) + AuxMatrix[y][mit2*2-1]*(sqrt(3)-3) + AuxMatrix[y][0]*(3+sqrt(3)) - AuxMatrix[y][1]*(1+sqrt(3)))*sqrt(2)/(8) ); for(k=2; k < mit1*2; k=k+2) TempMatrix[y][k/2 + mit1] = ((AuxMatrix[y][k]*(1-sqrt(3)) + AuxMatrix[y][k+1]*(sqrt(3)-3) + AuxMatrix[y][k+2]*(3+sqrt(3)) - AuxMatrix[y][k+3]*(1+sqrt(3)))*sqrt(2)/(8) ); } for(y=0; y < mit1*2; y++) { AuxMatrix[0][y]=((TempMatrix[mit2*2-2][y]*(1+sqrt(3)) + TempMatrix[mit2*2-1][y]*(3+sqrt(3))+ TempMatrix[0][y]*(3-sqrt(3))+ TempMatrix[1][y]*(1-sqrt(3)))*sqrt(2)/(8) ); for(j=2; j < mit2*2; j=j+2) AuxMatrix[j/2][y]=((TempMatrix[j][y]*(1+sqrt(3)) + TempMatrix[j+1][y]*(3+sqrt(3))+ TempMatrix[j+2][y]*(3-sqrt(3))+ TempMatrix[j+3][y]*(1-sqrt(3)))*sqrt(2)/(8) ); AuxMatrix[mit2][y] = ((TempMatrix[mit2*2-2][y]*(1-sqrt(3)) + TempMatrix[mit2*2-1][y]*(sqrt(3)-3) + TempMatrix[0][y]*(3+sqrt(3)) - TempMatrix[1][y]*(1+sqrt(3)))*sqrt(2)/(8) ); for(k=2; k < mit2*2; k=k+2) AuxMatrix[k/2 + mit2][y] = ((TempMatrix[k][y]*(1-sqrt(3)) + TempMatrix[k+1][y]*(sqrt(3)-3) + TempMatrix[k+2][y]*(3+sqrt(3)) - TempMatrix[k+3][y]*(1+sqrt(3)))*sqrt(2)/(8) ); } } //-------------------------------------------------------------------- // Escolha a execução da Wavelet //--------------------------------------------------------------------
59
void CalculaWavelet(int tipo) { int mit1,mit2,n,aux,largura, altura; float max,min,ponto; niveis = 5; mit1 = image.vi_width; mit2 = image.vi_length; for(int n = 1; n<=niveis; n++) { mit1 = mit1/2; mit2 = mit2/2; if (tipo == 1) HaarWavelet(mit1,mit2,1); else DaubechiesWavelet(mit1,mit2,1); // Normalização da Matriz max = AuxMatrix[0][0]; min = max; largura= mit1; altura = mit2; for(int h = 0; h<largura-1; h++) for(int k = 0; k<altura; k++) { ponto = AuxMatrix[h][k]; if(ponto> max) max = ponto; if(ponto< min) min = ponto; } for(int i = 0; i<largura; i++) for(int j = 0; j<altura; j++) { AuxMatrix[i][j] = AuxMatrix[i][j] + fabs(min); AuxMatrix[i][j] = ((AuxMatrix[i][j] -min) /(max-min)); // AuxMatrix[i][j] = AuxMatriz[i][j] /max; } // Energia TW feature.wt_energia = 0; feature.aux_energia =0; for ( int y = 0; y < mit1; y++ ) for ( int x= 0; x < mit2; x++ ){ feature.aux_energia += fabs( AuxMatrix[y][x]); feature.wt_energia = feature.aux_energia/(mit1*mit2); AuxMatrix[y][x] = 0; } } } //finaliza wavelets