ruan felipe de oliveira neves [nome do aluno]wiki.icmc.usp.br/images/e/ed/ruanec2-1-2016.pdf ·...

30
UNIVERSIDADE DE SÃO PAULO Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação São Carlos - SP Ferramenta de Apoio à Análise e Mineração de Dados para Agricultura Ruan Felipe de Oliveira Neves

Upload: phungdat

Post on 27-Jan-2019

212 views

Category:

Documents


0 download

TRANSCRIPT

UNIVERSIDADE DE SÃO PAULO Instituto de Ciências Matemáticas e de Computação D e p a r t a m e n t o d e S i s t e m a s d e C o m p u t a ç ã o

São Carlos - SP

Ferramenta de Apoio à Análise e

Mineração de Dados para Agricultura

Ruan Felipe de Oliveira Neves

[Nome do Aluno]

ii

Ferramenta de Apoio à Análise e Mineração de Dados para Agricultura

Ruan Felipe de Oliveira Neves

Orientador: Elaine Parros Machado de Sousa

Monografia referente ao projeto de conclusão de curso

dentro do escopo da disciplina SSC0593 Projeto de

Graduação I do Departamento de Sistemas de

Computação do Instituto de Ciências Matemáticas e de

Computação – ICMC-USP para obtenção do título de

Bacharel em Sistemas de Informação.

Área de Concentração: Mineração de dados

USP – São Carlos

31/05/2016

iii

“Do or do not... There is no

try.” – Master Yoda.

iv

Dedicatória

Dedicaria este trabalho ao meu afilhado Noah, que nos seus três anos de vida, não tem

ideia do quanto me ajudou e ajuda em tudo, mas na devida idade ele entenderá o porquê não o

fiz.

Dedico então este trabalho ao grande mestre, e amigo que foi o Professor Milton

Sonoda, tirado de nós tão inesperadamente e de maneira tão cruel. Fique em paz amigo, e

pode deixar que aqui a gente “tá trabalhando”.

v

Agradecimentos

Agradeço, primeiramente, a minha orientadora Elaine, que aceitou essa terrível missão

de me orientar neste trabalho (ps.: ainda tenho medo do gato morto); ao professor Marcassa,

que dispensa quaisquer comentários, grande pesquisador, exemplo, orientador e guia, sem

dúvida, este trabalho jamais existiria sem a participação dele em todo o processo que o

antecedeu; aos professores Tereza Mendes e Attilio Cucchieri, pessoas as quais nunca saberei

como demonstrar a gratidão que tenho por eles; ao meu grande amigo de pesquisa e exemplo

Professor Caio, que me ensinou muito e me fez crescer muito também sob sua orientação; a

minha família, a todos da minha família, mas principalmente a minha Mãe Monalisa, por

tudo, simplesmente tudo que me ofereceu e ainda oferece, em todos os quesitos, áreas,

realmente, obrigado Mãe; A minha namorada, Tami, que passou apuros comigo em dias sem

dormir, onde meu humor era insuportável até pra mim “valeu gorda”; Aos meus amigos, “ahh

meus amigos”, Jéssica, Hipo, Mari, Marcela, Thiago, Rosa, Sam, Rafa, May, Mariane,

Bodelha, Brasil, (desculpe se algum nome ficou fora) que me aguentaram tantos dias, tardes,

noites, de mal humor, insuportável, valeu galera! o/

vi

Resumo

O Brasil é o maior produtor de citros da atualidade, seguido pelos Estados Unidos. Pesquisas

na área de agricultura de precisão vêm sendo desenvolvidas desde o início dos anos 90, no

intuito de mitigar perdas e aumentar lucros na lavoura. Doenças como greening e cancro

cítrico, por serem altamente destrutivas, e que podem ser facilmente confundidas com

deficiência de zinco e verrugose, respectivamente, vêm devastando cada vez mais plantações,

acarretando a agricultores grandes ônus em seus pomares. Existem várias pesquisas ao redor

do mundo, principalmente no Brasil e Estados unidos, com o intuito de melhorar a forma de

diagnóstico destas doenças. Uma parceria, então formada por pesquisadores do Instituto de

Física de São Carlos, do Instituto de Ciências Matemáticas e Computação e da Escola

Superior de Agricultura Luiz de Queiroz da Universidade de São Paulo, e por colaboradores

da University of Florida vem trabalhando no desenvolvimento de uma técnica baseada em

espectroscopia de imagem de fluorescência, combinada a métodos de mineração de dados

para otimizar o processo de realização do diagnóstico de doenças que afetam os citros.

Tomando como base o trabalho destes pesquisadores, no qual o método proposto e publicado

obteve grande eficácia, e no intuito de auxiliar pesquisadores da área, este trabalho de

conclusão de curso propõe o desenvolvimento de uma ferramenta que seja capaz de integrar

todo o processo computacional do experimento (extração de características das imagens,

testes de algoritmos de classificação e análise dos resultados) numa única ferramenta com

interface gráfica, de fácil uso, para que usuários sem muito conhecimento na área de

computação tenham maior facilidade de realizar seus experimentos. Esta ferramenta será feita

de forma completamente modular, orientada a objetos, Open Source e utilizando a linguagem

Python, possibilitando sua expansão de acordo com as necessidades do pesquisador. A

ferramenta traz em seu primeiro protótipo, algoritmos para extração da homogeneidade,

energia e contraste, e os algoritmos de classificação SVM e KNN, dando possibilidade do

usuário alterar os parâmetros de cada um dos métodos de classificação. Traz também

parâmetros padrões definidos empiricamente.

vii

Sumário

CAPÍTULO 1: INTRODUÇÃO .................................................................................. 1

1.1. CONTEXTUALIZAÇÃO E MOTIVAÇÃO ................................................................ 1

1.2. OBJETIVOS ............................................................................................................. 2

1.3. ORGANIZAÇÃO DO TRABALHO .............................................................................. 3

CAPÍTULO 2: REVISÃO BIBLIOGRÁFICA .......................................................... 4

2.1. CONSIDERAÇÕES INICIAIS ...................................................................................... 4

2.2. DIAGNÓSTICO DE DOENÇAS EM CITROS .................................................................. 4

2.3. EXTRATORES DE CARACTERÍSTICAS ...................................................................... 5

2.4. ALGORITMOS DE CLASSIFICAÇÃO .......................................................................... 6

2.4.1.SVM ................................................................................................................. 6

2.4.2. KNN ................................................................................................................ 7

CAPÍTULO 3: DESENVOLVIMENTO DO TRABALHO ..................................... 8

3.1. CONSIDERAÇÕES INICIAIS ...................................................................................... 8

3.2. PROJETO ................................................................................................................ 8

3.3. DESCRIÇÃO DAS ATIVIDADES REALIZADAS ........................................................... 9

3.3.1. Processo de engenharia de software ............................................................. 9

3.3.2. Escolha da linguagem .................................................................................. 10

3.3.3. Desenvolvimento dos algoritmos de extração de características ................ 10

3.3.4. Desenvolvimento e testes dos algoritmos classificadores ............................ 11

viii

3.3.5. Desenvolvimento da interface gráfica ......................................................... 11

3.3.6. Integração da interface gráfica com os algoritmos ..................................... 11

3.4. DIFICULDADES E LIMITAÇÕES ............................................................................. 12

3.5. CONSIDERAÇÕES FINAIS ...................................................................................... 12

CAPÍTULO 4: RESULTADOS ................................................................................. 13

4.1. EXTRAÇÃO DE CARACTERÍSTICAS ........................................................................ 13

4.2. CLASSIFICADORES ............................................................................................... 14

4.3. RESULTADOS ....................................................................................................... 15

4.4. EXEMPLO DE EXECUÇÃO ...................................................................................... 16

CAPÍTULO 5: CONCLUSÃO .................................................................................. 18

5.1. CONTRIBUIÇÕES .................................................................................................. 18

5.3. RELACIONAMENTO ENTRE O CURSO E O PROJETO ............................................... 18

5.4. CONSIDERAÇÕES SOBRE O CURSO DE GRADUAÇÃO ............................................. 18

5.5. TRABALHOS FUTUROS ......................................................................................... 19

REFERÊNCIAS .......................................................................................................... 20

1

CAPÍTULO 1: INTRODUÇÃO

1.1. Contextualização e Motivação

No início dos anos 90, houve o surgimento do conceito de agricultura de precisão,

[10] com o intuito de aumentar a produtividade e o lucro na lavoura para reduzir ao

máximo as perdas causadas por pragas. No Brasil, o maior produtor de citros [10] no

mundo, algumas doenças como o greening citrus (Huanglongbing, ou HLB) [2] e o cancro

cítrico [3] têm se mostrado muito agressivas, o que torna cada vez mais interessante

investimento e pesquisa na área.

O HLB, considerado uma das doenças mais letais e destrutivas, é causado pela

bactéria “Candidatus Liberibacter spp.” [2]. Seus sintomas são folhas pequenas, com

manchas amareladas e frutos pequenos, deformados e amargos [3]. O cancro, também

altamente destrutivo, é causado pela bactéria “Xanthomonas citri subsp. citri” e afeta todas

as espécies de citros de importância comercial, como espécies de laranja e limão. Seus

sintomas são um pouco diferentes do HLB, apresentando pequenos pontos salientes de

coloração marrom na parte inferior da folha, os quais vão aumentando e ganhando

coloração mais escura com a evolução da doença [3]. Estas lesões podem atingir os frutos e

levar à necrose do tecido afetado, consequentemente, desfolhamento das plantas,

depreciação dos frutos por causa das lesões e redução na produção, por queda prematura.

Atualmente, o diagnóstico dessas doenças é realizado principalmente a partir de

ensaios bioquímicos [1], que possuem alto custo e demandam muito tempo para obtenção

dos resultados, em relação à velocidade de propagação da doença na lavoura. O HLB e o

cancro cítrico também podem ser facilmente confundidos com as doenças deficiência de

zinco e verrugose [11, 12], por possuírem sintomas visuais parecidos. Outros métodos de

diagnósticos [10, 11, 12] estão sendo estudados no intuito de cortar custos e acelerar o

processo de identificação e erradicação das doenças da lavoura. Alguns desses métodos

vêm se mostrando muito eficazes e com custo bastante acessível.

2

A técnica de interesse neste trabalho, baseada no uso da espectroscopia de imagens

de fluorescência (FIS, do inglês Fluorescense Image Spectroscopy) [10, 11, 12] para

aquisição de imagens das folhas de plantas contaminadas foi desenvolvida no Laboratório

de Interações Atômicas (LIA) do Instituto de Física de São Carlos (IFSC), em parceria

com pesquisadores de outras universidades e tem se mostrado muito eficiente. Estas

imagens são submetidas a algoritmos de classificação [5, 7, 8, 9], que as diferenciam com

base em suas características de textura [4]. Em geral, a taxa de acerto na diferenciação de

doenças passa dos 95%, considerada excelente nesta área.

Atualmente, pesquisadores do IFSC e colaboradores que utilizam FIS para detecção

de doenças realizam todo o processo de extração de características e aplicação de

algoritmos de classificação por meio de código desenvolvido, por exemplo, em

MATLAB®, e são executados por linhas de comando, o que torna seu uso complicado para

o agricultor ou pesquisador que não possua algum conhecimento na área de computação.

Para tentar reduzir esta limitação, neste trabalho é proposta uma ferramenta que dispõe de

uma interface gráfica organizada e de fácil utilização. Esta permite que o usuário,

independentemente de conhecimento específico, consiga realizar todo o processo de

análise das imagens para, por exemplo, dar apoio a sua pesquisa.

1.2. Objetivos

Este trabalho tem como objetivo principal desenvolver uma ferramenta que torne

fácil e simples a tarefa de reconhecer doenças em plantas, por meio de um sistema prático,

barato, rápido e eficiente, em comparação às técnicas atualmente utilizadas. O objetivo é

que o software para diagnóstico de doenças possa ser usado facilmente por pesquisadores

que desejarem realizar estudos relacionados a imagens de plantas. O aplicativo deverá

disponibilizar recursos, tais como: extratores de características, ferramentas de

visualização de imagens e de resultados, algoritmos de mineração de dados

(principalmente algoritmos de classificação), dentre outros que possam ser úteis para a área

de aplicação.

3

Para implementação do primeiro protótipo da ferramenta, que será capaz apenas de

lidar com conjuntos já rotulados, e utilizado somente como ferramenta de apoio à pesquisa,

foram selecionados: extratores de características de textura, em particular contraste,

energia e homogeneidade. Os algoritmos de classificação Support Vector Machine (SVM)

e k-Nearest Neighborn [5, 7, 8] e a medida de avaliação de qualidade k-fold cross

validation foram adotados. Tais escolhas foram baseadas em trabalhos anteriores que

utilizaram essas técnicas para a classificação de doenças, como cancro cítrico e verrugose

[10, 11, 12]. A ferramenta também traz como uma de suas principais características a alta

modularidade, ou seja, ela pode ser expandida facilmente para incorporar novas técnicas e

suporte à identificação de outras doenças em culturas distintas.

No que diz respeito aos resultados, a ferramenta traz um primeiro resumo sobre a

classificação, onde são apresentados a matriz de confusão [5, 7, 8] e a precisão do teste.

Entretanto, deixa à disposição uma área na qual podem ser vistos resultados mais

detalhados. Dentre os resultados mais detalhados estão novamente a precisão, matriz de

confusão, seguidos da especificidade, sensibilidade e uma tabela mostrando a quantidade

de falsos positivos e negativos e verdadeiros negativos e positivos.

1.3. Organização do Trabalho

No Capítulo 2 é apresentado o conteúdo teórico utilizado no projeto, bem como

trabalhos de literatura relacionados ao mesmo. A seguir, no Capítulo 3, são descritas as

atividades realizadas ao longo do desenvolvimento do projeto. No Capítulo 4, são

apresentados os resultados obtidos, dentre eles, algumas telas da interface da ferramenta,

gráficos gerados e outros dados relacionados especificamente à aplicação. Por último, no

Capítulo 5, encontram-se as conclusões após o desenvolvimento do projeto, discussões dos

resultados obtidos e dificuldades encontradas durante o desenvolvimento do trabalho.

4

CAPÍTULO 2: REVISÃO BIBLIOGRÁFICA

2.1. Considerações Iniciais

A busca por métodos mais precisos e com o menor número de falsos negativos é

cada vez mais um desafio, dado o grande prejuízo que a detecção tardia das pragas podem

acarretar. Neste capítulo, serão abordados conceitos envolvidos no método desenvolvido

por pesquisadores do IFSC, em conjunto com pesquisadores do Instituto de Ciências

Matemáticas e Computação da Universidade de São Paulo (ICMC), da Escola Superior de

Agricultura Luiz de Queiroz da Universidade de São Paulo (ESALQ) e University of

Florida, no qual este trabalho se baseia, e também conceitos que foram explorados no

decorrer do projeto.

O Capítulo está organizado da seguinte forma: as técnicas mais usadas de

diagnósticos na atualidade; os métodos de extração de características; os algoritmos de

classificação.

2.2. Diagnóstico de doenças em citros

Atualmente, os métodos mais comuns para diagnóstico e confirmação de pragas no

cultivo de cítricos, tais como do Cancro Cítrico, Verrugose, Greening e Deficiência de

Zinco, baseiam-se em duas técnicas bioquímicas: reação em cadeia da polimerase (PCR,

do inglês Polymerase Chain Reaction) [1] e ELISA (do inglês, Enzyme-Linked

Immunosorbent Assay) [1], consiste em realização do isolamento e identificação do

patógeno em meio de cultura adequado.

A PCR é um método de biologia molecular para detecção indireta de genes.

Consiste em replicar várias vezes a mesma parte de interesse do DNA, por repetição de

ciclos de replicação de um gene determinado, com primers iniciadores da replicação

(desenhados especificamente para este gene), em uma reação realizada in vitro. Estes

ciclos consistem em uma etapa de desnaturação do DNA a alta temperatura, para que

ocorra separação da dupla fita, anelamento dos primers com DNA, que servem de molde

5

para início da replicação direta e reversa pela DNA polimerase, e uma etapa de extensão,

em que ocorre de fato a replicação. Posteriormente, o produto de PCR pode ser analisado

por eletroforese em gel de agarose, no qual o tamanho do gene é confirmado [1].

ELISA é um teste que permite detecção indireta de anticorpos específicos, portanto,

de várias doenças. É baseado na especificidade da ligação antígeno-anticorpo. Para tanto,

os antígenos de interesse são imobilizados em uma placa ou plataforma e neles são

aderidos anticorpos primários, que se ligam com a proteína de interesse. Posteriormente,

são tratados com anticorpos secundários acoplados a uma enzima, específica para ligar aos

anticorpos primários. Esta enzima produz uma substância corada ao se ligar ao substrato.

Portanto, quando adicionado substrato à plataforma, é possível medir a intensidade da

coloração do meio, para determinar de forma indireta, se há ou não presença do antígeno

da doença procurada [1].

Outro método que vem sendo muito estudado é o uso de algoritmos de mineração

de dados combinado a técnica de espectroscopia de imagem de fluorescência. A folha da

planta infectada é submetida a uma excitação luminosa por meio de um diodo emissor de

luz, e então são geradas imagens a partir da fluorescência dela, em comprimentos de ondas

específicos. Essas imagens são submetidas a filtros computacionais para correção de ruídos

experimentais e submetidas a classificadores que são capazes de distinguir, com base em

modelos previamente criados de amostras já rotuladas, qual a doença daquela amostra. [11,

12]

2.3. Extratores de características

Extratores de características são algoritmos baseados em operações matemáticas

matriciais, capazes de extrair métricas de imagens, denominadas características. Existem

diversos tipos de características [4, 11, 12] e cada tipo traz consigo grandes grupos de

características, cada qual com suas mais diversas aplicações. Dentre as possíveis

aplicações, estão processamento gráfico [4], reconhecimento de padrões [4, 5, 7, 8, 9],

detecção de falhas e exames médicos [3].

6

2.4. Algoritmos de classificação

Algoritmos de classificação definem uma classe de algoritmos pertencentes à

mineração de dados [5, 7], capazes de, a partir de um conjunto de amostras rotuladas,

rotular outras amostras, tomando como base suas características. O processo é realizado

por meio da combinação de operações matemáticas e heurísticas muito bem definidas e

têm sua qualidade medida a partir de métricas como precisão, taxa de acerto, taxa de erro,

número de falsos negativos ou positivos, dentre outros. Possuem aplicações nas mais

diversas áreas do conhecimento, dentro e fora do mundo da computação, como por

exemplo, na biologia, medicina e física.

2.4.1.SVM

SVM são algoritmos de classificação que dividem os dados em diferentes classes

[5, 7, 8], baseados no conceito de planos de decisão, os quais são construídos a partir de

uma função chamada “função de kernel”, que possui alguns parâmetros de entradas que

devem ser dados. Estes planos por sua vez são planos n-dimensionais, chamados de

hiperplanos, onde n é o número de dimensões dos dados.

Neste trabalho, foi utilizado o modelo clássico do algoritmo SVM, que se trata de

um classificador binário que diferencia os dados em duas classes, de acordo com o lado

que o dado se encontra em relação ao hiperplano. A classificação funciona da seguinte

forma: uma vez que o modelo é criado, quando um novo ponto é adicionado, é atribuído a

ele uma classe, de acordo com o lado que ele ocupar referente ao hiperplano (Figura 1).

7

Figura 1 - Separação do SVM

2.4.2. KNN

O KNN [5, 7, 8] se trata de um algoritmo de classificação baseado em funções de

distâncias. É, sem dúvida, um dos mais simples, mais citados e usados na literatura, com

um método de aprendizado chamado de “preguiçoso”. O mesmo aprende e cresce com

cada ponto que é adicionado a ele, não gerando assim um modelo matemático fixo baseado

num conjunto de treinamento. Ele classifica novos pontos a partir dos k pontos mais

próximos do mesmo, no qual o próximo refere-se ao que apresentar menor distância, de

acordo com a função de distância adotada. Existem uma infinidade de funções de distância,

as mais comuns são euclidiana [5, 7] e manhattan [5, 7]. Em alguns casos, são criadas

novas funções, que se adequam de forma ideal ao domínio de aplicação.

8

CAPÍTULO 3: DESENVOLVIMENTO DO

TRABALHO

3.1. Considerações Iniciais

Neste capítulo será apresentado o projeto como um todo, incluindo técnicas e

ferramentas utilizadas, a forma que foram usadas e aplicadas, os objetivos esperados e

também os objetivos que foram atingidos com cada parte do processo. Serão também

apresentados, em detalhes, os passos do desenvolvimento dos códigos responsáveis pela

extração das características, pela mineração dos dados e os métodos utilizados para se

realizar a análise dos resultados. E, por último, expor a maneira pela qual a interface foi

construída, qual a ideia por trás da mesma e os resultados alcançados.

3.2. Projeto

Com o intuito de desenvolver uma ferramenta eficiente e de fácil utilização, foi

necessário fazer uso de recursos de programação que possibilitassem a elaboração de toda

a parte “científica” do código, somada a uma interface agradável. Para tanto, foi escolhida

Python como linguagem a ser usada para o desenvolvimento do trabalho, pois possibilitava

uma implementação clara e limpa dos métodos, tanto para a extração de características das

imagens, quanto para o processo de mineração de dados. É também capaz de prover um

ambiente agradável para o desenvolvimento de uma interface gráfica de boa usabilidade.

Os métodos de extração de características das imagens foram primeiramente

implementados e testados. Estes são responsáveis por extrair informações das imagens, por

meios de métodos matemáticos, para que essas possam ser classificadas por um algoritmo

classificador.

Uma vez que tínhamos os métodos de extração implementados e testados, passamos

para a implementação dos algoritmos de classificação, começando pelo KNN. Foram

realizados testes iniciais em que verificamos a eficiência do método, tanto no quesito de

tempo, quanto de precisão. Na sequência, foi implementado o SVM e o mesmo foi

9

submetido a vários testes, levando em conta a variação tanto do Kernel, como dos

parâmetros C e Gamma.

Por último, foi construída e implementada a interface gráfica da ferramenta, na qual

foram organizados todos os códigos já existentes, de maneira que os mesmos ficassem fácil

de usar, acessar e exibissem resultados, de maneira que qualquer usuário com pouco

conhecimento na área fosse capaz de entendê-los e utilizá-los.

3.3. Descrição das Atividades Realizadas

Nesta seção, serão descritos, passo a passo, todos os procedimentos realizados

durante o desenvolvimento do projeto. Será abordada cada etapa, no intuito de explicitar

métodos, ferramentas e recursos utilizados, referentes a conhecimento, linguagem e

técnicas de programação.

3.3.1. Processo de engenharia de software

A partir da consulta de especialistas da área, como por exemplo, o Professor Caio

Wetterich, criamos a seguinte lista de requisitos: 1) Seleção da pasta contendo as imagens

(dados); 2) Visualização de como os dados se distribuem no espaço de parâmetros; 3)

Seleção de quais características devem ser extraídas, por meio de uma lista de múltipla

seleção, para a mineração; 4) Opção de salvar as características atribuídas, atribuindo-lhes

rótulos (labels); 5) Fácil seleção de diversos algoritmos de mineração; 6) Fácil seleção de

diversos algoritmos de verificação de qualidade; 7) Ajuste de parâmetros dos algoritmos de

mineração e de verificação de qualidade; 8) Visualização dos resultados em resumo e

completo para impressão; 9) Fácil expansão para novos algoritmos e funcionalidades; 10)

Graphical User Interface (GUI) amigável; 11) Planejamento da User Experience (UE)

baseado na facilidade.

Com isso modelamos a ferramenta (Figura 2)

10

Figura 2: Diagrama simplificado de classes do projeto

3.3.2. Escolha da linguagem

Após a realização de testes com outras linguagens, como Java e C++, a linguagem

Python foi escolhida para o desenvolvimento do trabalho, por se mostrar muito mais

conveniente, no quesito de unir todos os requisitos necessários para a ferramenta desejada.

Esta dispõe de conjunto de bibliotecas muito bem documentadas e trata-se de uma

linguagem que segue a filosofia da legibilidade, fácil implementação e de alto nível

(códigos complicados, densos e de difícil interpretação são dispensados, reduzindo o

tempo de implementação) [13].

3.3.3. Desenvolvimento dos algoritmos de extração de

características

Um dos requisitos para o trabalho era ter um código capaz de extrair características,

tanto de textura, como estatísticas das imagens, de maneira rápida e eficiente. Para tanto,

foram utilizados recursos da biblioteca skimage [8], para se extrair, num primeiro protótipo

a homogeneidade, a energia e o contraste. Esta biblioteca fornece recursos para extração de

ambos os tipos de características e uma documentação clara e bem consolidada, que

possibilita tratar os retornos das funções e utilizá-los da forma desejada.

11

3.3.4. Desenvolvimento e testes dos algoritmos classificadores

Utilizamos os métodos KNN e SVM, por se tratarem de métodos de fácil

interpretação, além de possuírem eficácia já comprovada, para conjuntos de dados do

mesmo domínio de aplicação[6, 7]. Estes métodos apresentaram uma acurácia muito boa.

Ambos foram implementados usando a biblioteca sklearn [8], que permite total controle de

todos os parâmetros que serão utilizados e também função de paralelismo, quando se trata

de um conjunto altamente massivo de dados. O usuário pode alterar os parâmetros

principais dos algoritmos ou pode optar por utilizar os valores que a ferramenta já traz por

padrão. Esses valores foram obtidos a partir de testes realizados durante o desenvolvimento

do projeto. No caso do KNN, o algoritmo foi testado variando-se a função de distância

entre a euclidiana e a Manhattan e também o K. No SVM, foi testado o kernel “rbf” com

diversas combinações de C e Gamma.

3.3.5. Desenvolvimento da interface gráfica

A interface gráfica foi desenhada e implementada, independente do que se havia

feito até agora. Foi projetada buscando facilitar a usabilidade de um usuário com pouco ou

quase nenhum conhecimento na área de computação, com intuito de sempre organizar as

janelas e botões de maneira simples e intuitivas. Buscamos ajuda com especialistas da área,

pesquisadores do IFSC e da ESALQ, para fazer o levantamento de requisitos e desenhar

uma interface que, de fato, fosse agradável, prática e realmente facilitasse o trabalho.

A interface foi escrita em Tkinter, uma biblioteca do Python feita exclusivamente

para criação de interfaces gráficas, com diversos recursos que possibilitam a criação de

telas simples e com todos os recursos necessários para que a ferramenta cumpra com seus

objetivos.

3.3.6. Integração da interface gráfica com os algoritmos

Por último, foi necessário realizar a integração entre todos os algoritmos (de

extração, classificação e geração de gráficos) com a interface gráfica, já que foram feitas

de forma independente. A integração demandou certo esforço e houve a necessidade de

12

adequar algumas implementações às funcionalidades da interface, além da exibição de

resultados, em seus devidos locais.

3.4. Dificuldades e Limitações

A maior dificuldade encontrada foi o desenvolvimento da interface gráfica, seguido

da integração entre a interface e a implementação. Tal dificuldade se deu por conta do

tempo utilizado para aprender a utilizar e dominar todas as funcionalidades da linguagem.

3.5. Considerações Finais

O trabalho exigiu organização e sistematização rigorosa, uma vez que toda fase

posterior era altamente dependente da anterior. Mesmo durante o desenvolvimento da

interface gráfica, completamente independente do restante do trabalho, houve necessidade

das outras etapas para planejar o conteúdo de cada janela e sua organização, e também,

pensar na melhor maneira de se fazer as integrações.

No capítulo resultados, serão exibidas algumas telas da ferramenta, ilustrando o uso

da mesma por especialistas e algumas das funcionalidades que a esta dispõe, junto com

alguns resultados obtidos.

13

CAPÍTULO 4: RESULTADOS

Para simplificar o uso do da ferramenta, ela foi dividida em três grandes etapas:

extração das características; geração e aplicação dos classificadores e visualização dos

resultados. A seguir, descrevemos o uso de cada uma dessas etapas, ilustradas por imagens

das respectivas abas.

4.1. Extração de características

A extração de características (Figura 3) consiste em 2 etapas: 1) seleção do

diretório contendo as imagens, que devem ser todas da mesma doença, e 2) seleção de

quais características serão utilizadas pelo algoritmo de classificação.

Figura 3: Interface para a extração de características das imagens

14

Para facilitar a seleção das características, é possível gerar um gráfico de até 3

dimensões, para visualizar como estas componentes estão distribuídas pelo espaço. A

interface foi implementada de forma a facilitar a inclusão de novas características a serem

extraídas. Após a escolha de quais características serão utilizadas, os dados extraídos são

salvos em uma classe (label), cujo nome é dado pelo usuário. À direita, está um local onde

são exibidas informações, como características extraídas e número de amostras, quando

uma classe é selecionada com clique do mouse.

4.2. Classificadores

O uso dos classificadores (Figura 4) deve ser feito em 3 etapas: seleção do

classificador desejado, método de validação e parâmetros desejados.

Figura 4: Interface para uso dos classificadores

15

Para o uso dos classificadores, o usuário deve selecionar o classificador desejado.

Escolhido o classificador, deve-se então definir um método de validação (por padrão traz o

10-fold cross validation [7, 8]) e, então definir os parâmetros do classificador ou usar os

parâmetros iniciais, definidos empiricamente. Após, deve selecionar quais classes (geradas

na etapa de extração de características) submeter ao classificador, e então, executar. O

resumo dos resultados, contendo a precisão (ou acurácia) e a matriz de confusão gerada,

será exibido à direita da tela. O relatório completo pode ser visualizado na aba

“Resultados”.

4.3. Resultados

Na aba “Resultados” são exibidas mais informações sobre o processo de

classificação, como pode ser visto na Figura 5.

Figura 5: Interface para visualização dos resultados

16

Na tela, são exibidos a matriz de confusão novamente, além da acurácia. Ela

também traz a sensibilidade e a especificidade [5, 7, 8] do teste, logo abaixo os dados

usados para gerar a matriz de confusão, e dois botões, um que permite o usuário salvar o

classificador gerado, e outro, que permite ao usuário gerar um relatório em PDF contendo

aquelas informações.

4.4. Exemplo de execução

A seguir descrevemos um exemplo da execução do programa com extração das

características (Figura 6), classificadores (Figura 7) e resultados (Figura 8).

Figura 6: Tela de extração de características com pasta carregadas, características extraídas e

salvas com respectiva classe.

17

Figura 7: Classes submetidas ao classificador SVM, onde podem ser vistos os parâmetros e o

algoritmo de validação.

Figura 8: Aba com resultados mais explícitos e detalhados.

18

CAPÍTULO 5: CONCLUSÃO

5.1. Contribuições

A interface desenvolvida, além de facilitar a utilização de algoritmos de mineração

de dados pelos pesquisadores sem conhecimento profundo em computação, integra nela

todo o processo, desde a extração de características até a visualização dos resultados. Por

ter sido implementada de forma completamente modular, permite fácil expansão para

novas metodologias e características. Tais fatores tornam possível utilizar esta ferramenta

para aumentar a eficiência de investigações futuras em mineração de dados de imagens.

Todo software desenvolvido é Open Source, distribuído gratuitamente e em linguagem

livre.

5.3. Relacionamento entre o Curso e o Projeto

O curso forneceu grande base de conhecimento para realização do projeto.

Disciplinas como “Programação Orientada a Objeto”, “Algoritmos e Estruturas de Dados

II”, “Mineração de Grandes Bases de Dados”, “Inteligência Artificial”, “Engenharia de

Software”, “Interação Usuário-computador”, “Programação para Alto Desempenho”,

dentre outras, foram cruciais para elaboração deste projeto. Por meio delas pude adquirir o

conhecimento e maturidade necessários para o desenvolvimento do mesmo, no que se diz

respeito a conhecimento e técnicas sobre planejamento do desenvolvimento, técnicas de

programação, algoritmos e eficiência de algoritmos, técnicas e métodos de pré-

processamento e mineração de dados (base e motivação de todo esse trabalho).

5.4. Considerações sobre o Curso de Graduação

Acredito que o curso tem tudo para ser um curso de excelência. No geral, dispõe de

excelentes professores, preparando o aluno com uma formação sólida, tanto para o

mercado, quanto para a academia. Os pontos fortes são muitos, e os fracos bem poucos,

mas dentre eles, o mais gritante, que acredito que vale ser ressaltado, é a discrepância entre

mesmas disciplinas dadas por professores diferentes e a organização de alguns professores

19

com respeito a nota e assiduidade. Acredito que esses dois pontos deveriam receber mais

atenção de imediato. Do mais, acredito que o curso tem tudo para despontar e se firmar

com a grade atual.

5.5. Trabalhos Futuros

Como trabalho futuro, a ser realizado na disciplina “Trabalho de conclusão de curso

II”, a ferramenta será expandida, tentando torná-la uma ferramenta que, além de auxiliar o

pesquisador da área, possa também colaborar com o agricultor, apresentando algumas

ferramentas como um classificador previamente treinado, para imagens não classificadas.

Também está no planejamento aumentar o número algoritmos extratores e classificadores,

melhorias na interface gráfica, na parte de resultados e adicionar a realização de análises

comparativas sobre os dados e classificadores.

20

REFERÊNCIAS

[1] Alberts B, Johnson A, Lewis J, et al. Molecular Biology of the Cell. 4th

edition. New York: Garland Science; 2002. Available from:

http://www.ncbi.nlm.nih.gov/books/NBK21054/

[2] BATOOL, A. et al. Citrus greening disease–a major cause of citrus

decline in the world–a review. Hort. Sci.(Prague), v. 34, n. 4, p. 159-166, 2007.

[3] DAS, A. K. Citrus canker-A review. Journal of Applied Horticulture, v. 5,

n. 1, p. 52-60, 2003.

[4] HARALICK, Robert M.; SHANMUGAM, Karthikeyan; DINSTEIN, Its'

Hak. Textural features for image classification. Systems, Man and Cybernetics,

IEEE Transactions on, n. 6, p. 610-621, 1973.

[5] JIAWEI HAN, M. K.; PEI, Jian. Data Mining: Concepts and Techniques:

Concepts and Techniques. 2011.

[6] LINS, Emery C.; BELASQUE JR, José; MARCASSA, Luis G. Detection

of citrus canker in citrus plants using laser induced fluorescence spectroscopy.

Precision agriculture, v. 10, n. 4, p. 319-330, 2009.

[7] MINER, Gary; NISBET, Robert; ELDER IV, John. Handbook of statistical

analysis and data mining applications. Academic Press, 2009.

[8] MUCHERINO, Antonio; PAPAJORGJI, Petraq J.; PARDALOS, Panos

M.Data mining in agriculture. Springer Science & Business Media, 2009.

[9] Scikit-learn: Machine Learning in Python, Pedregosa et al., JMLR 12, pp.

2825-2830, 2011

[10] WETTERICH, Caio Bruno. Uso de imagens de fluorescência para

monitoramento da evolução do cancro cítrico. 2012. Dissertação (Mestrado em

Física Básica) - Instituto de Física de São Carlos, University of São Paulo, São

21

Carlos, 2012. Disponível em:

<http://www.teses.usp.br/teses/disponiveis/76/76131/tde-23032012-151751/>.

Acesso em: 2016-05-31.

[11] WETTERICH, Caio Bruno et al. Detection of citrus canker and

Huanglongbing using fluorescence imaging spectroscopy and support vector

machine technique. Applied Optics, v. 55, n. 2, p. 400-407, 2016.

[12] WETTERICH, Caio Bruno et al. Detection of Citrus Canker and

Huanglongbing Using Fluorescence Imaging Spectroscopy (FIS) Technique and

Two Different Computational Methods: Support Vector Machine and Neural

Network. In: Frontiers in Optics. Optical Society of America, 2015. p. FW5E. 4.

[13] Zen of Python. 2004. Disponível em:

<https://www.python.org/dev/peps/pep-0020/>. Acesso em 31 mai. 2016.

22