Detecção De Ferrugem Asiática Na Soja Analisando A Imagem Da Folha Utilizando Redes Neurais Cidinei Luiz Cassol¹, Cristiano Agosti² 1 Curso de Sistemas de Informação, Universidade do Oeste de Santa Catarina – UNOESC, Chapecó, Santa Catarina, Brasil, [email protected]2 Curso de Sistemas de Informação, Universidade do Oeste de Santa Catarina – UNOESC, Chapecó, Santa Catarina, Brasil, [email protected]RESUMO O presente trabalho visa relatar e apresentar o processo necessário para a criação de um protótipo de software que, baseado numa imagem, consiga identificar se uma folha de soja está hospedando o patógeno PhakopsoraPachyrizi que é o causador da doença conhecida como ferrugem asiática. Como esta doença é de difícil detecção, principalmente nos períodos iniciais de infecção, o protótipo poderá auxiliar na identificação e com isso aumentar a produtividade e reduzir custos de produção. É apresentada também a coleta de imagens para treino da rede neural, sendo que, os treinos e as imagens estão registrados neste documento. Está presente neste trabalho uma revisão bibliográfica acerca da detecção de ferrugem asiática na soja através da análise da imagem da folha. Utilizando o conceito de redes neurais da inteligência artificial, é apresentada também uma pesquisa utilizando o framework ANNeF, que permite o uso do algoritmo de backpropagation para que seja possível cumprir com o objetivo geral do trabalho. Durante o decorrer dos estudos e trabalhos, o framework sofreu alterações em sua estrutura para melhorar a performance. Ao final é colocado como chegou-se a solução proposta para este tema, identificando os métodos utilizados e quais foram as configurações da rede neural que melhor permitiram a identificação da doença na folha da soja. PALAVRAS-CHAVE: Ferrugem asiática, Inteligência artificial, Reconhecimento de padrões, Redes neurais. ABSTRACT This paper describes and presents the process for the creation of a software prototype that based in an image can identify whether a soybean leaf is hosting the pathogen PhakopsoraPachyrizi that is causing the disease known as rust. As this disease is difficult to
22
Embed
Detecção De Ferrugem Asiática Na Soja Analisando A Imagem …eventos.uepg.br/sbiagro/2015/anais/SBIAgro2015/pdf_resumos/22/22... · doença nos primeiros instantes do ciclo de
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Detecção De Ferrugem Asiática Na Soja Analisando A Imagem Da Folha
Utilizando Redes Neurais
Cidinei Luiz Cassol¹, Cristiano Agosti² 1Curso de Sistemas de Informação, Universidade do Oeste de Santa Catarina – UNOESC,
Chapecó, Santa Catarina, Brasil, [email protected] 2Curso de Sistemas de Informação, Universidade do Oeste de Santa Catarina – UNOESC,
Durante os treinamentos, nem todos os casos resultaram em um sucesso parcial,
apenas algumas parametrizações puderam ser executadas nos casos de verificação real. Dentre
as parametrizações executadas para verificação real, ocorreu o caso do treinamento com
identificador 08 (treino08) que mostrou bom desempenho nos treinos e nos testes com a rede
neural, porém, quando posto em produção se mostrou totalmente ineficaz para descobrir a
ferrugem nas folhas de soja. Já os casos dos treinamentos 15 (treino15) e 16 (treino16),
apresentaram resultados viáveis nos treinos e testes da rede neural, contudo, quando da
tentativa de executá-los na real verificação ambos causavam estouro de memória da máquina
virtual Java, com a mensagem “Java heapspace!”, mostrando-se desta forma descartáveis.
Os demais casos que antecedem o treinamento 36 (treino36) e que puderam ser
executados para verificação real apresentaram desempenho relativamente bom, porém, as
imagens sofreram substituições e estes tiveram que ser descartados, pois em virtude da
substituição das imagens o arquivo geral de entrada da rede neural também sofreu
substituição.
O conjunto de parametrizações que apresentou melhor desempenho tanto nos treinos e
testes, como em verificações reais foi o treinamento com identificador 37 (treino37). Este
caso apresentou a totalidade de acertos possíveis nos treinos e nos testes automáticos da rede
neural. Nas verificações reais, foram submetidas todas as imagens processadas, formando um
total de 57 imagens, sendo que estas parametrizações fizeram com que a rede neural
apresentasse erro de identificação em 10 (dez) casos, o que forma um erro de 17,54%
(dezessete inteiros e cinquenta e quatro décimos por cento), restando desta forma, um acerto
médio de 82,46% (oitenta e dois inteiros e quarenta e seis décimos por cento).
Na ilustração apresentada na figura 3, podemos visualizar de forma gráfica o avanço
obtido nos treinamentos desde o início desta etapa até considerarmos o protótipo apto a ser
apresentado.
Figura 3 - Gráfico representando a evolução no aprendizado da rede neural
Fonte: (DO AUTOR, 2013)
No início dos trabalhos, existia a dúvida quanto aos recursos computacionais
necessários para se trabalhar com as imagens. Realmente, os recursos computacionais
apresentaram valores elevados, contudo, todos os casos testados obtiveram um nível aceitável
de consumo de processamento e memória. É possível analisar o consumo dos recursos de
processador e de memória a partir da figura 4, onde é exibido um gráfico comparativo do
consumo dos dois recursos citados. Este gráfico demonstra que de acordo com a configuração
e topologia da rede neural utilizada, o processamento e a memória utilizada podem aumentar.
Figura 4 - Gráfico comparando o consumo de processamento e memória
Fonte: (DO AUTOR, 2013)
3.4. Etapa 4 – Classificação das Imagens
A etapa de classificação das imagens é a que encerra o trabalho desenvolvido e
principalmente valida os treinamentos realizados e descritos na etapa anterior. Esta etapa
somente começou a ser trabalhada após obtido resultados consideráveis nos treinamentos.
Para as imagens serem classificadas, são utilizados os arquivos gerados pelo
framework na fase de treinamento da rede neural, sendo eles, o arquivo de predições2 e o
arquivo de pesos3. Além destes dois arquivos, esta etapa utiliza como entrada da rede neural o
arquivo do vetor da imagem, montado segundo descrição da fase de processamento de
imagens.
A classificação de imagens utiliza o mesmo mecanismo de classes que o treinamento
utiliza, porém a entrada de ambos difere. Para o treinamento, como dito anteriormente, todas
as linhas da entrada do arquivo são sucedidas por um valor, que é a saída esperada com 2 Arquivo de predições é gerado pela execução da classe BackproSimulator, contém os
valores que posteriormente serão utilizados na classificação da imagem a ser verificada. O arquivo de predições possui formato “prd”.
3 Arquivo de pesos (weights) possui extensão “wts” e armazena apenas três colunas de
informação, contudo, torna-se um arquivo bastante extenso dependendo do tamanho da entrada e das parametrizações da rede neural. Assim como os arquivos “res” e “prd”, este arquivo também é gerado pela execução da classe BackproSimulator, ele armazena a ligação entre todos os neurônios das diferentes camadas e os pesos de ligação entre eles. Este arquivo é utilizado posteriormente quando da classificação de imagens pela classe BackpropPredict.
aquelas parametrizações para aquele caso, já na etapa de classificação das imagens, este
arquivo deve conter apenas dados de uma imagem, a qual deseja-se classificar, estes dados
devem ser os únicos contidos no arquivo, sem acréscimo de valores ao final da linha.
As parametrizações de topologia e de configurações da rede neural no momento da
classificação das imagens devem ser as mesmas utilizadas no treinamento que obteve o
melhor resultado e que por sua vez, também gerou os arquivos de pesos e de predições que a
rede se utilizará neste momento.
O funcionamento desta etapa é bastante simples, o mesmo consiste em executar o
algoritmo de backpropagation com as mesmas parametrizações utilizadas na fase anterior, de
treinamento da rede neural, para uma entrada específica.
No princípio, quando das primeiras execuções da classificação das imagens, utilizava-
se a indicação de quais arquivos utilizar fixos no código fonte, porém, em cada nova imagem
analisada, deveria ser alterado o nome do arquivo nos diferentes pontos em que existe a
referência.
Com as primeiras execuções do algoritmo de backpropagation, foi possível perceber
que o frameworkANNeF demorava demasiadamente para processar uma imagem, pois o
tempo de execução ficava sempre por volta dos 35 (trinta e cinco) minutos para cada folha
processada. Depois de identificado que o problema da demora era apenas em um método, foi
iniciado a busca de uma forma de aprimoramento para o método.
O método responsável pela lentidão no processamento executava dois loops
aninhados, sendo um while dentro de um for. Percebeu-se que a execução somente sairia do
loop interno após encontrar neurônios correspondentes, contudo, a cada novo loop externo a
busca interna começava do início da estrutura novamente, causando a demora em demasia.
Analisando a lógica que o framework ANNeF implementa, foi possível montar uma
lógica para aprimorar este método e com isso obter resultados mais satisfatórios na questão
tempo de processamento de imagem. Conhecendo as estruturas de dados, optou-se por utilizar
uma estrutura que implemente a classe map, colocando a identificação do neurônio na chave e
o peso no valor do objeto. Desta forma continuaram existindo dois loops, porém ambos são
for e não estão mais aninhados.
Com estas melhorias, o tempo de execução passou de 35 (trinta e cinco) minutos para
uma média que fica entre 8 (oito) e 16 (dezesseis) segundos, conforme a quantidade de
neurônios existentes.
Posteriormente, após ter concluído a etapa de treinamento da rede neural, foi
desenvolvido o protótipo proposto no projeto deste trabalho, onde o usuário pode selecionar a
imagem em tempo de execução, tendo a opção de processá-la e de analisa-la com apenas um
clique. A imagem da tela do protótipo é mostrada a seguir, na figura 5, nesta imagem pode ser
visto o resultado da análise de uma folha de soja com ferrugem asiática.
Figura 5 - Tela do protótipo funcional mostrando analise de folha com ferrugem
Fonte: (DO AUTOR, 2013)
Para melhor exemplificar o protótipo final de software, abaixo a figura 6 demonstra o
resulta do de uma análise de uma folha de soja sem ferrugem asiática.
Figura 6 - Tela do protótipo funcional mostrando analise de folha sem ferrugem
Fonte: (DO AUTOR, 2013)
Nesta tela buscou-se a construção de maneira que ficasse simples e fácil de ser
utilizada. O botão com descrição “Carregar imagem” abre uma janela para pesquisa de
imagens em um diretório pré-definido, porém permite a navegação em qualquer diretório do
computador ou da rede. A partir desta janela aberta, o usuário pode escolher qual imagem irá
processar e classificar.
Logo abaixo do botão de carregar imagem, existe um componente para exibir a
imagem que o usuário escolheu para o protótipo analisar. Este componente, ao iniciar o
sistema carrega uma imagem default que foi escolhida pelo autor para definir a inteligência
artificial. Esta imagem serve apenas para não abrir o protótipo e o mesmo apresentar uma tela
inicial com uma parte em branco.
Ao lado direito do botão de carregar imagem, existe outro botão com a descrição
“Processar imagem”, este botão tem a finalidade de iniciar o processamento da imagem, gerar
o vetor da imagem, coloca-lo em um arquivo de texto e posteriormente iniciar o
processamento dos dados pela a rede neural, utilizando este arquivo gerado como entrada.
Durante o procedimento de processamento e análise da imagem, as informações do
andamento do processo são mostradas em um componente que fica logo abaixo do botão de
processar imagem, estas informações tem por finalidade deixar o usuário informado
respectivamente a qual passo o protótipo está executando.
O resultado do processamento é exibido no final da tela em uma mensagem de texto.
Todas as cinquenta e sete imagens do trabalho que foram processadas demoraram entre 51
(cinquenta e um) e67 (sessenta e sete) segundos para concluir a análise da folha submetida.
4. CONCLUSÃO
Em se tratando do protótipo de software, este foi definido como apto para utilização na
verificação de folhas de soja com base no treinamento número 37 (trinta e sete), o qual
apresentou o desempenho com maior viabilidade que os demais e se comportou de maneira
suficientemente adequada nos demais testes.
Considerando o protótipo pronto e funcional, com a rede neural treinada, foram
utilizadas 57 (cinquenta e sete) imagens, sendo 38 (trinta e oito) imagens de folhas de soja
com ferrugem e 19 (dezenove) imagens de folhas de soja sem ferrugem.
O presente trabalho evidenciou uma oportunidade de continuação dos estudos acerca
do tema proposto, este fator possibilita a ideia de continuação do mesmo. Esta continuação
teria objetivos principalmente metodológicos e científicos, contudo também representa uma
ótima oportunidade de mercado.
Quanto a questão de identificação de mecanismos de reconhecimento de imagens para
fornecer dados para a rede neural, foi possível observar que a estratégia utilizada nesta
experiência, de interpretar pixel a pixel de cada imagem, lendo os valores de RGB e
convertendo-os para hexadecimal e posteriormente para decimal pode ser considerada válida,
pois atendeu a demanda de geração de entrada para a rede neural.
Tratando da questão de reconhecimento das imagens e preparação dos dados para a
rede neural, os métodos construídos neste trabalho atendem a demanda, contudo podem ser
melhorados. No caso da imagem, transformou-se sua estrutura de matriz de pixels em um
vetor de valores inteiros, porém passou-se o vetor gerado da imagem diretamente para a rede
neural, sendo que existe a possibilidade de melhorias futuras utilizando técnicas e algoritmos
de compactação de dados, para reduzir o tamanho e a complexidade do vetor da imagem. Esta
medida possivelmente impactaria no tempo de execução atual e na porcentagem de acertos,
acreditamos que estes dois parâmetros ficariam ligeiramente melhorados.
Analisando a questão evidenciada no projeto deste trabalho, se seria possível
identificar a ferrugem asiática em todos os estágios de infecção, pode-se concluir que sim, não
só é possível como o protótipo montado consegue realizar esta verificação, basta treinar a rede
neural com imagens de infecções em diferentes estágios evolutivos que posteriormente é
possível identificar o patógeno.
Quanto a questão de como detectar a presença da doença na soja utilizando redes
neurais, este trabalho confirma que analisando a imagem e gerando dados para atender a
demanda de entrada da rede neural, depois treinando uma rede neural de topologia
backpropagation é possível a detecção da doença. A particularidade de como fazer isto, está
na separação de etapas claras e bem definidas, as quais uma complementa a outra em
favorecimento de um único objetivo, o de reconhecer a infecção de ferrugem asiática na soja
utilizando reconhecimento de imagens e redes neurais.
REFERÊNCIAS
AGROMUNDO COMUNICAÇÕES E CONSULTORIA LTDA. (Brasil). Agromundo: Unir pra produzir mais e melhor. Disponível em: <http://www.agromundo.com.br/wp-content/uploads/2010/03/ferrugem_asiatica.jpg>. Acesso em: 25 maio 2013.
AZEVEDO, Luís Antônio Siqueira de; JULIATTI, Fernando Cezar; BARRETO, Modesto. Resistência de genótipos de soja à Phakopsorapachyrhizi. Disponível em: <http://www.scielo.br/scielo.php>. Acesso em: 01 jul. 2013.
BITTENCOURT, Guilherme. Inteligência Artificial: Ferramentas e Teorias. Florianópolis - Sc: Editora da Ufsc, 1998. 362 p.
BITTENCOURT, João Ricardo. Artificial Neural Networks Framework: Guia do Programador. 2001. 39 f. Dissertação (Mestrado) - Curso de Computação Aplicada, Departamento de Centro de Ciências Exatas e Tecnológicas, Universidade do Vale do Rio do Sinos, São Leopoldo - Rs, 2001.
BRASIL. Embrapa. Paulo Fernando Bertagnolli. Sistemas de Produção: Indicações Técnicas para a Cultura de Soja no Rio Grande do Sul e em Santa Catarina 2004/2005. Passo Fundo - Rs: Embrapa, 2004. 172 p.
BRASIL. Governo do Estado de Goias. Agrodefesa. Disponível em: <http://www.agrodefesa.go.gov.br/images/stories/7_licitacao.jpg>. Acesso em: 31 maio 2013.
EMBRAPA (Brasil). Tecnologias de Produção de Soja Região Central do Brasil 2004: Doença e Medidas de Controle . Disponível em: <http://www.cnpso.embrapa.br/producaosoja/doenca.htm>. Acesso em: 25 maio 2013.
FERNANDES, Anita Maria da Rocha. Inteligencia Artificial: Noções Gerais. 3. ed. Florianópolis - Sc: Visualbooks, 2008. 160 p.
FEUP (Portugal). Faculdade de Engenharia da Universidade do Porto. Disponível em: <http://sigarra.up.pt/feup/pt/web_page.inicial>. Acesso em: 07 jun. 2013.
REIS, Caimi Franco; ALBUQUERQUE, Marcelo Portes de; CASTRO, Sérgio Borges de. Introdução ao reconhecimento de padrões utilizando redes neurais. Disponível em: <http://funk.on.br/>. Acesso em: 01 jul. 2013.
RIO GRANDE DO SUL. CEPSRM - CENTRO ESTADUAL DE PESQUISAS EM SENSORIAMENTO REMOTO E METEOROLOGIA.Formação das cores. Disponível em: <http://www.ufrgs.br/engcart/PDASR/formcor.html>. Acesso em: 09 nov. 2013.