15

APLICATIVO PARA IDENTIFICAR OCORRÊNCIA DE ... PARA...Aplicativo para identificar ocorrência de doença na soja por meio de reconhecimento de imagem e visão computacional Marcos

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: APLICATIVO PARA IDENTIFICAR OCORRÊNCIA DE ... PARA...Aplicativo para identificar ocorrência de doença na soja por meio de reconhecimento de imagem e visão computacional Marcos

APLICATIVO PARA IDENTIFICAROCORRÊNCIA DE DOENÇA NA SOJA POR MEIO DE RECONHECIMENTO

DE IMAGEM E VISÃO COMPUTACIONAL

Page 2: APLICATIVO PARA IDENTIFICAR OCORRÊNCIA DE ... PARA...Aplicativo para identificar ocorrência de doença na soja por meio de reconhecimento de imagem e visão computacional Marcos

Aplicativo para identificar ocorrência de doença na soja por meio de reconhecimento de imagem e visão

computacional Marcos Antônio Debastiani Godoi

Sistemas de Informação – Desenvolvimento de Alta Performance IMED – Faculdade Meridional

Passo Fundo, Brasil [email protected]

Resumo— A identificação manual de doenças de plantas requer conhecimento e experiência. Realizar diagnósticos em plantas com a doença em estágio inicial não é uma tarefa trivial, pois visualmente os sintomas não são tão notáveis. O Brasil é uma potência no mundo agrícola e, com os avanços tecnológicos, a tecnologia se encaixa cada vez mais nesse contexto. Os benefícios do uso de dispositivos móveis na agricultura são confirmados dia a dia. Os recentes avanços no aprendizado de máquina permitiram o processamento de dados em dispositivos com menor poder computacional, como smartphones. O objetivo deste artigo é criar um aplicativo para iPhone que reconheça doenças na folha da soja de maneira off-line, usando a rede neural convolucional YOLO, auxiliada por técnicas de aprendizado de máquina e visão computacional. Os testes realizados apresentaram uma boa extração de padrões, trazendo precisão para a resolução do problema.

Palavras-Chave— diagnósticos em plantas, dispositivos móveis, aprendizado de máquina, off-line, visão computacional.

Abstract— Manually plant disease identification requires knowledge and expertise. Performing diagnostics on plants with the early-stage disease is not a trivial task, as the symptoms are not so visually noticeable. Brazil is a potency in the agricultural world, and with technological advances, technology increasingly fits into this context. The benefits of using mobile devices in agriculture are confirmed day by day. Recent advances in machine learning have enabled data processing on devices with lower computing power, such as smartphones. The purpose of this paper is to create an iPhone application that recognizes soybean leaf diseases offline, using the convolutional neural network YOLO, aided by machine learning techniques and computer vision. The performed tests showed a good pattern extraction, bringing precision to the problem resolution.

Keywords— plant disease identification, mobile devices, machine learning, offline, computer vision.

I. INTRODUÇÃO Análises precisas e confiáveis de doenças e lesões em

plantas são algo que vem cada vez mais se tornando necessidade no meio fitopatológico. De acordo com a plataforma de agricultura digital Agrosmart [1], o Brasil é o segundo maior produtor de soja no mundo, e as doenças são um dos maiores motivos que contribuem para a redução produtiva,

aumentando os custos operacionais da safra. Cerca de 15 a 20% das perdas produtivas da cultura tem como causa as doenças.

Segundo o Jornal Estado de Minas [2], a soja é o principal

grão do Brasil. Os Estados Unidos, com condições climáticas desfavoráveis para o cultivo, podem registrar uma queda na sua produção, possibilitando assim que o Brasil se torne o maior produtor de soja mundial.

O Canal Rural [3] descreve que o Rio Grande do Sul em 2019, será o segundo maior produtor de soja do Brasil, ficando atrás apenas do Mato Grosso. O fato ocorre tanto por condições climáticas favoráveis no estado do Rio Grande do Sul e pela excelência no manejo da safra pelos produtores rio-grandenses.

A doença que mais preocupa os sojicultores brasileiros é a

ferrugem asiática, causada pelo fungo Phakopsora pachyrhizi. Ela tem um potencial destrutivo que se não for tomada as devidas medidas e cuidados, os prejuízos podem ser bilionários e impedir a continuidade da safra [4]. Conforme o aplicativo Consórcio Antiferrugem, o estado do Rio Grande do Sul, na safra de 2018/2019, foi líder em casos de ferrugem asiática confirmadas, com 127 casos. O Paraná ficou na segunda colocação com 58 casos, e o maior produtor brasileiro, Mato Grosso, ficou na terceira colocação com 54 casos [4]. A ferrugem, quando identificada em seu estágio inicial de desenvolvimento, cria um cenário vantajoso e possível para o produtor realizar para o controle adequado [5].

Outra doença que havendo condições favoráveis para

desenvolvimento preocupa os sojicultores é o Oídio, causado pelo fungo Microsphaera difusa. Essa doença afeta toda a área da planta, que dependendo do tipo da soja, pode ocorrer a seca e queda prematura da folha [6], [7].

De acordo com o coordenador do seminário 12ª Semana de

Integração Tecnológica e analista José Heitor Vasconcellos [8], os smartphones hoje são verdadeiros laboratórios móveis, oque necessitamos é dialogo entre as empresas, para que todo esse conhecimento chegue ao setor produtivo.

Page 3: APLICATIVO PARA IDENTIFICAR OCORRÊNCIA DE ... PARA...Aplicativo para identificar ocorrência de doença na soja por meio de reconhecimento de imagem e visão computacional Marcos

O aplicativo e website do Consórcio Antiferrugem [9]

apresenta informações relacionado ao monitoramento da disseminação da ferrugem asiática da soja no Brasil, permitindo a produtores e técnicos observarem o desenvolvimento dessa doença de acordo com suas safras. Laboratórios habilitados a identificar a doença são contatados para confirmar os casos, quando conformados, a informação é adicionada no mapa de dispersão presente no aplicativo e plataforma web, que é uma forma de alertar a cadeia produtiva para a presença da doença em uma determinada região. [10]

Conforme as informações previamente apresentadas, o Brasil detém uma notável oportunidade nesta área de pesquisa. O presente estudo tem como principal objetivo a criação de uma aplicação mobile para iPhone, que realizará o diagnóstico em tempo real da folha da soja, utilizando de técnicas de reconhecimento de imagem e visão computacional de forma off-line. As informações apresentadas pelo diagnostico serão, se a planta está saudável ou lesionada, e a classificação e localização da doença encontrada, se existente. As doenças escolhidas para compor a aplicação são a ferrugem asiática e o oídio. A motivação para realização do presente estudo é oferecer uma ferramenta que vai ajudar os produtores a detectar doenças na soja precocemente por meio de dispositivos móveis, em tempo real e sem a necessidade de conexão com a internet. A preferencia pela soja por sua vez, é fomentada pela crescente produção do Brasil em conjunto com o estado do Rio Grande do Sul [2], [3].

II. ESTADO DA ARTE

1. Aprendizado de Máquina (Machine Learning) O aprendizado de máquina é uma técnica computacional

para reconhecimento de padrões e é aplicada para classificar dados de amostra, utilizando de características previamente aprendidas e reconhecidas pelo método. O sucesso da utilização das técnicas de aprendizagem de máquina se deve a diversos fatores, dentre os quais o mais relevante talvez seja a massa de dados que cresce constantemente, e cada dia se torna mais acessível. Também os aprimoramentos nas técnicas computacionais se tornaram peças chaves para esse acontecimento, conforme Boutaba et. Al. [11], a computação em nuvem disponibiliza recursos de armazenamento e processamento para os dados, enquanto Unidades de Processamento Gráfico (GPUs) e Unidades de Processamento Tensorial (TPUs) disponibilizam treinamento e inferência para uma grande quantidade de dados [11].

Segundo Jeon et. Al. [12], a principal desvantagem dos métodos de aprendizado de máquina existentes é que eles não podem extrair os pontos de recurso otimizados, porque os processos de aprendizado e classificação são executados de forma independente [12]. O mundo está rodeado pelo aprendizado de máquina, segundo Shalev-Shwartz et. Al. [13], mecanismos de busca aprendem como nos apresentar os melhores resultados, softwares anti-spam aprendem como filtrar nossas mensagens de e-mail e transações com cartão de

crédito são protegidas por um software que aprende como detectar fraudes [13].

O aprendizado de máquina se baseia em experiências coletadas previamente, essas experiências se tornam conhecimentos que podem ser utilizados como parâmetro para análise e classificação. Os conhecimentos adquiridos são usados para agrupar os dados em classes já conhecidas. Esse agrupamento é possibilitado pela criação de um modelo de aprendizado de máquina, que analisa os dados, que de certa forma são distintos, mas ajustáveis por conta do modelo. Há estruturas que possibilitam a implementação de um modelo de aprendizado de máquina em dispositivos com um menor poder de processamento, como smartphones [11].

2. Core ML O Core ML é um framework desenvolvido pela Apple Inc.

para executar modelos de aprendizagem de máquina no próprio dispositivo, e não na nuvem, como é mais comum. Foi introduzido no iOS 11 em conjunto com o lançamento do chip A11, que trouxe inovações na aprendizagem de máquina integrada em smartphones, neste caso o iPhone [14].

Segundo Hollemans [14], oque possibilita a execução de modelos de aprendizagem de máquina no próprio device, foi a incorporação do Neural Engine, que é um núcleo no processador totalmente dedicado a redes neurais e processamento de realidade aumentada. Anteriormente, uma forma de realizar esse tipo de ação era utilizando a interface de programação de aplicações (API) Metal, também desenvolvida pela Apple Inc. A grande diferença em questão entre o uso do Core ML ou Metal, é que o Core ML é o único que pode fazer o uso do Neural Engine, trazendo maior poder de processamento, e também otimizando os recursos que estão disponíveis, podendo executar o modelo na CPU, GPU ou no Neural Engine [14]. O Core ML faz uso da Metal em suas camadas de processamento, e também da biblioteca de visão computacional proprietária da Apple Inc., chamada Vision, conforme figura abaixo.

Figura 1. Exemplo de funcionamento do Core ML [15].

Para ser possível o uso de um modelo de aprendizagem de máquina no Core ML, é necessário que este modelo esteja no formato mlmodel. Um arquivo mlmodel, contém todas as especificações do modelo, informa as camadas, entradas e

Page 4: APLICATIVO PARA IDENTIFICAR OCORRÊNCIA DE ... PARA...Aplicativo para identificar ocorrência de doença na soja por meio de reconhecimento de imagem e visão computacional Marcos

saídas, rótulos de classes e qualquer pré-processamento que seja necessário executar nos dados, bem como todo o aprendizado contido, como pesos, estão presentes [14]. A figura abaixo demonstra a integração do mlmodel com a aplicação final.

Figura 2. Exemplo de funcionamento do Core ML [15]

Para converter os modelos já treinados para mlmodel, é necessário fazer uso do coremltools, que é uma ferramenta em Python que oferece total suporte para conversões e validações em modelos Core ML [14].

O Core ML também disponibiliza uma ferramenta para criar o seu modelo de uma forma intuitiva e rápida, chamada de Create ML [16]. É necessário apenas informar para o Create ML exemplos dos dados que você quer que o modelo tenha em seu conhecimento, por exemplo, reconhecimento de imagens, extrair significado de textos, ou encontrar relação entre valores numéricos. Após isso, a própria ferramenta ira avaliar os dados, e tentar encontrar padrões possíveis para serem distinguidos. A ferramenta irá processar os dados, e encontrar as possíveis conexões entre eles, assim será gerado como resultado o modelo Core ML, contendo também a porcentagem de acurácia que esse modelo obteve, com base nos dados informados. Na figura abaixo, pode-se notar o workflow da ferramenta Create ML [16].

Figura 3. Exemplo do workflow do Create ML [16]. Conforme citado na Figura 1, o Core ML faz uso de uma

biblioteca de visão computacional. Na Figura 4, é notável o papel que ela exerce para com o processo de detecção, reconhecimento e classificação de imagem. Todo o processo de análise do modelo com base na imagem de entrada é feita pela Vision, após o processamento, é informado a classe da imagem em conjunto com o nível de acurácia obtido para cada classe

[17]. Na Figura 5, observa-se o diagrama de passos que é

executado desde a organização das imagens, até o resultado final processado pela Vision.

Figura 4. Diagrama de passos processados pela Vision [17].

3. Visão Computacional (Computacional Vision) A visão computacional é um conjunto de técnicas que

permite que o computador tenha uma visão equiparada a visão humana. Isso possibilita analisar imagens e vídeos de uma forma mais precisa e ágil do que o ser humano seria capaz. Com o avanço tecnológico, o uso da visão computacional em conjunto do aprendizado de máquina possibilitou a criação de diversas ferramentas para o reconhecimento, com inúmeras possiblidades de análises e processamento [18].

Segundo Szeliski [19], pesquisadores aplicaram esforços para transcrever, com técnicas matemáticas, a forma tridimensional que nós humanos enxergamos com facilidade. A técnica é muito poderosa, mas também torna trabalhoso o processo de compreender e dar a resposta esperada, quando as informações recebidas são insuficientes [19].

Conforme estudo realizado por Elsayed et. Al. [20], modelos de aprendizagem de máquina são vulneráveis a exemplos adversos, tornando a sua resposta totalmente inesperada e incorreta. Um exemplo adverso, é uma entrada de dado que é intencionalmente criada para fazer o modelo errar a sua predição [20].

A visão computacional tem uma vasta área de aplicabilidade. De acordo com Voulodimos et. Al. [18], ela está sendo cada vez mais utilizada em tarefas como, detecção de objetos e reconhecimento facial [18].

1. Detecção de Objetos. A detecção de objetos é a técnica

para distinguir instâncias de uma determinada classe em uma cena. Consiste em determinar a localização e a escala das ocorrências do objeto presentes na imagem, independente de localização, posicionamento, visualização em relação à câmera, oclusões parciais e condições de iluminação [21]. Conforme Alexe et. Al. [22], a maioria dos detectores de ultima geração utilizam do paradigma de janela deslizante. Em diversos sistemas inteligentes que

Page 5: APLICATIVO PARA IDENTIFICAR OCORRÊNCIA DE ... PARA...Aplicativo para identificar ocorrência de doença na soja por meio de reconhecimento de imagem e visão computacional Marcos

utilizam de técnicas de visão computacional, a primeira tarefa exercida é fazer a detecção de objetos, para ver se há algum objeto na cena analisada ou não. Sendo assim, isso possibilita um grande controle de recursos computacionais, porque habilita o sistema a apenas executar processamento de dados quando realmente existe à necessidade. O resultado deste processamento passa pela obtenção de informações sobre o objeto detectado, chegando a uma análise frame a frame em casos de vídeo, com a possibilidade de adquirir outros dados da cena. [21].

2. Detecção de Plantas. A detecção de plantas de

maneira humana, ela consiste em utilizar diversas características da planta, que se tornam chave de identificação, para que após essas chaves sejam analisadas e examinadas, consigam identificar a espécie da planta [23]. Essas características são atributos que a planta tem em sua estrutura, e dessa forma se distingue das demais, como sua forma, cor, número de pétalas, espinhos ou pelos [23]. De acordo com Mäder et. Al. [23], o grande impulso para o desenvolvimento de técnicas de processamento digital de imagens e reconhecimento de padrões, foi a falta de conhecimento em taxonomia em relação ao público geral, sendo denominado “crise taxonômica” e também a grande crescente de dispositivos portáteis e sensores de alta precisão. Um processo de classificação de imagem, pode ser dividido em aquisição da imagem, pré-processamento, extração e descrição de características e classificação da imagem.

• Aquisição da imagem. Essa etapa tem como objetivo coletar imagens dos órgãos da planta, que futuramente se tornará chave de identificação no processo de classificação.

• Pré-processamento. O pré-processamento é o processo de melhora da imagem inicialmente coletada. Recebe as imagens coletadas como entrada, e após processos de remoção de distorções e enfatização de características, tem com saída uma imagem modificada.

• Extração e descrição de características. Essa etapa consiste em extrair as características que de alguma forma sejam significativas (como propriedades e órgãos) da imagem pré-processada.

• Classificação da imagem. Após todas as características serem extraídas, elas serão agrupadas e servirão como conhecimentos para a classificação da espécie em análise. Conforme o estudo realizado por Lee et. Al.

[24], o uso de redes neurais convolucionais com a técnica de aprendizado não supervisionado para a extração de características da planta, pode

oferecer um aprendizado mais aprimorado do que em relação as características criadas manualmente.

4. Redes Neurais Convolucionais As redes neurais convolucionais (CNNs ou ConvNets), é

uma classe de modelo de aprendizagem profunda para processar dados, o seu padrão é baseado como inspiração no córtex visual animal [25]. Segundo Yamashita et. Al. [25], as CNNs foram projetadas para aprender de forma automática e adaptativa, podendo reconhecer padrões de baixo ou alto nível. As CNNs atingiram grande sucesso em reconhecimento de imagens e vídeos, fato que se tornou possível por conta dos vastos repositórios de imagem públicas disponíveis. Nesse sentido, o avanço tecnológico também contribuiu muito para esse acontecimento [26].

Após se tornarem populares em 2012, as redes neurais convolucionais tomaram 2 direções para se aproximar da precisão e velocidade [27]. A primeira direção foi a otimização, utilizando a técnica de Batch Normalization (Normalização de Lotes). Isso trouxe diminuição no tempo de treinamento, pois segundo Ioffe et. Al. [28], o método extrai a força para tornar a normalização uma parte da arquitetura do modelo, e à executa para cada mini-lote de treinamento. A normalização permite usar taxas de aprendizado mais altas. Utilizando redes normalizadas por lotes, foi aprimorado o melhor resultado já publicado na classificação do ImageNet, alcançando 4.82% dos 5 maiores erros de teste, superando a precisão dos avaliadores humanos. A segunda direção, foi o aperfeiçoamento da estrutura de processamento de imagens [28].

Uma rede neural convolucional é composta por três tipos de camadas, que são:

• Convolução; • Pooling; • Camadas totalmente conectadas;

As duas primeiras camadas são responsáveis pela extração

de atributos, enquanto a última, é responsável por mapear os atributos extraídos na saída final, como por exemplo, a classificação [25]. Segundo Yamashida et. Al. [25], a camada de convolução desempenha um papel fundamental na rede neural convolucional, que é composta de uma pilha de operações matemáticas, como a convolução, um tipo especializado de operação linear.

Conforme O’Shea et. Al. [29], os dois principais paradigmas para processamento e aprendizado em imagens são o aprendizado supervisionado e o aprendizado não supervisionado. No aprendizado supervisionado, há uma relação entre a entrada e a saída, isso significa que as entradas já são pré-rotuladas, e de certa forma se tornam alvos. Nos rótulos, já é informado qual é a resposta ou classe que deve ser prevista, tornando o uso do aprendizado supervisionado muito comum em tarefas de reconhecimento de padrões que dependem de classificação. Já o aprendizado não supervisionado se diferencia pois no conjunto de treinamento

Page 6: APLICATIVO PARA IDENTIFICAR OCORRÊNCIA DE ... PARA...Aplicativo para identificar ocorrência de doença na soja por meio de reconhecimento de imagem e visão computacional Marcos

não há nenhum rótulo para classificação, por isso é aconselhado utilizar esse método para abordar problemas com pouca ideia do que a saída deve aparentar. O sucesso geralmente é determinado pela capacidade da rede de reduzir ou aumentar uma função de custo associada [29].

A Figura 5 mostra uma determinada arquitetura de rede neural convolucional compreendida de 5 camadas.

Figura 5. O’Shea et. Al. [29].

De acordo com O’Shea et. Al. [29], os neurônios das CNNs, são auto-otimizáveis por meio da aprendizagem, por isso são análogas às RNAs tradicionais.

1. AlextNet (2012). Em 2012, Krizhevsky et. Al. [30]

foram os vencedores do desafio de reconhecimento visual de objetos do ImageNet, denominado ImageNet Large Scale Visual Recognition Challenge (ILSVRC), com a proposta de um modelo de CNN. A rede possuía uma arquitetura muito similar a LeNet, mas era mais profunda, com mais filtros por camada e com camadas convolucionais empilhadas. De acordo com Krizhevsky et. Al. [30], arquitetura da AlexNet consistia em a primeira camada convolucional filtrar a imagem de entrada 224 × 224 × 3 com 96 núcleos de tamanho 11 × 11 × 3. A segunda camada convolucional recebe como entrada a resposta normalizada e agrupada da primeira camada, e filtra com 256 núcleos de tamanho 5 × 5 × 48. A terceira, quarta e quinta camada, são camadas fully connected (totalmente conectadas) umas à outra, sem qualquer pool de intervenção ou camadas de normalização e tem 4096 neurônios cada. A terceira camada convolucional tem 384 núcleos de tamanho 3 × 3 × 256 ligados às saídas normalizadas, e agrupadas da segunda camada convolucional. A quarta camada convolucional tem 384 núcleos de tamanho 3 × 3 × 192, e a quinta camada convolucional tem 256 núcleos de tamanho 3 × 3 × 192. O uso da função ReLu (Rectified Linear Unit) em CNNs treinam mais rápido do que com a utilização de unidades Tanh, no caso da AlexNet, acelera a velocidade em 6 vezes com a mesma precisão. A cada camada convolucional e totalmente conectada, foi anexada ativações de ReLu. [30].

1.1. Rectified Linear Units (ReLU). ReLU é uma função de ativação com base biológica e matemática. Funciona por valores de limiar em 0, ou seja, f (x) = max (0, x). Seu resultado é quando x < 0, e quando for x � 0, seu resultado é uma função linear [31]. A Figura 6 demonstra a arquitetura da CNN

AlexNet, apresentando o alinhamento entre as duas GPUs, explicando o motivo da rede ser dividida em dois pipelines.

Figura 6. Krizhevsky et. Al. [30]

2. GooLeNet (2014). Em 2014, Szegedy et. Al. [32] propôs um modelo de CNN com o objetivo de reduzir a complexidade computacional em comparação com a CNN tradicional. Foi a vencedora do ImageNet Large Scale Visual Recognition Challenge (ILSVRC) de 2014, o método apresentado era a incorporação de camadas chamada ”Inception”, com campos receptivos variáveis, e criados com diferentes tamanhos de kernel [33]. Conforme Alom et. Al. [33], esses campos receptivos criaram operações que capturaram padrões de correlação na nova pilha de mapas de features. A GoogLeNet se tornou o estado da arte em relação a precisão em reconhecimento de imagens com a utilização de camadas Inception. Ainda conforme Alom et. Al. [33], a diferença entre a camada de criação e a Camada Inception final, foi a adição de núcleos de convolução 1x1. Esses núcleos permitiam a redução de dimensionalidade antes de camadas que utilizavam bastante recurso computacional. Consistia em 22 camadas, oque era um número muito maior do que qualquer outra apresentada anteriormente. Mas em relação ao número de parâmetros, era muito inferior. O GoogleNet tinha 7 milhões de parâmetros de rede, enquanto AlexNet tinha 60 milhões e o VGG 138 milhões. Na figura 7 é possível notar a redução de dimensão antes da camada com o maior custo computacional.

Page 7: APLICATIVO PARA IDENTIFICAR OCORRÊNCIA DE ... PARA...Aplicativo para identificar ocorrência de doença na soja por meio de reconhecimento de imagem e visão computacional Marcos

Figura 7. Szegedy et. Al. [32]

A GoogleNet atingiu uma taxa de erro de 6,67%, muito próximo do desempenho humano medido para aquela avaliação que foi de 5%. Para os organizadores conseguirem avaliar com uma certa precisão e gerar esse métrico limiar, foi requerido dias de treinamento. Após alguns dias de treinamento, o especialista humano Andrej Karpathy conseguiu como resultado uma taxa de erro de 5%, 5,1% para modelo único, e 3,6% para conjunto [34].

3. VGG (2014). A vice-campeã do ImageNet Large Scale Visual Recognition Challenge (ILSVRC) de 2014 foi a VGG. Com sua proposta de projeto simples e eficaz, consiste em 16 camadas convolucionais, possui uma característica semelhante a AlextNet, que é ter apenas 3 × 3 convoluções [26].

Segundo Alom et. Al. [33], a grande contribuição deste trabalho é que ele mostra que a profundidade de uma rede é um componente crítico para alcançar um melhor reconhecimento ou precisão de classificação nas CNNs. A VGG consiste em 2 camadas convolucionais que fazem uso da função de ativação ReLu, após a função de ativação, existe apenas uma única camada de agrupamento máximo e diversas camadas fully connected que também fazem uso da função de ativação ReLu. A camada final do modelo é uma camada Softmax para classificação. Embora, a VGG não foi a campeã do ILSVRC de 2014, ganhou fama devido à sua simplicidade, topologia homogênea e maior profundidade.

A principal limitação associada ao VGG foi o alto custo computacional, porque mesmo utilizando filtros de tamanho reduzido, ocorreu um alto custo computacional, correspondente a uso de cerca de 140 milhões de parâmetros [35].

4. ResNet (2015). Em 2015, a chamada Residual Neural

Network (ResNet), proposta por He et. Al. [36], introduziu uma nova forma de treinamento para CNNs mais profundas, sua arquitetura continha 152 camadas, 20 vezes mais profunda que AlextNet, e 8 vezes mais que VGG. Mas apresentou uma complexidade em

termos computacionais menores que as outras propostas publicadas anteriormente. Conforme descrito por Alom et. Al. [33], o bom desempenho da ResNet nas tarefas de reconhecimento de imagem e localização mostrou que a profundidade é de importância central para muitas tarefas de reconhecimento visual. Isso se deve por conta de redes residuais serem mais fáceis de otimizar, e podem ganhar precisão a partir de uma profundidade consideravelmente maior [36].

Com a profundidade da sua arquitetura consideravelmente maior, mas sua complexidade menor, obteve como resultado de erro o valor de 3,57% no conjunto de testes do ImageNet, superando a limiar de 5% definida por Karpathy [34], em 2014 [36]. Segundo Karpathy [34], a possibilidade de treinamento com conjunto de imagens do ImageNet, o auxiliou a definir a limiar para 5%. Com a ResNet ultrapassando o valor definido, ele sugere que é totalmente possível que algum outro classificador humano coloque esse número abaixo de 3%, ou talvez 2%, sendo uma taxa de erro otimista.

5. YOLO O algoritmo YOLO (You Only Look Once) é um estado da

arte, capaz de realizar detecção em tempo real de objetos. A grande motivação do YOLO é que ele realiza uma detecção de todos os objetos possíveis de serem identificados com apenas um único problema de regressão, informando as coordenadas para a localização do objeto, e também a sua classe [37]. De acordo com Du [27], atualmente o YOLO é um dos melhores exemplos representativos de redes neurais convolucionais, por se tratar de uma maneira mais eficiente, nova e simples para resolver problemas de detecção de objetos.

Como exemplificado na Figura 8, o modelo de detecção do YOLO não busca por regiões de interesse na imagem, ele trabalha com um problema de regressão. O modelo divide a imagem em células, cada célula é responsável por prever 5 bounding boxes. Essas previsões são codificadas como S × S × (B � 5 + C), sendo S × S o grid em que a imagem foi dividida, B é os bounding boxes previstos e C são as probabilidades de classes encontradas [38].

Page 8: APLICATIVO PARA IDENTIFICAR OCORRÊNCIA DE ... PARA...Aplicativo para identificar ocorrência de doença na soja por meio de reconhecimento de imagem e visão computacional Marcos

Figura 8. Redmon et. Al. [39].

Como o YOLO consegue realizar a detecção de todos os objetos possíveis com um único problema de regressão, ele se tornou a rede neural mais veloz em comparação com outras publicadas anteriormente, e tem um grande equilíbrio entre velocidade e precisão [27].

A arquitetura consiste em 24 camadas convolucionais com 2 camadas fully connected [38]. Conforme o estudo feito por Redmon et. Al. [38], também foi criada uma versão mais rápida do YOLO, mas ao invés de utilizar 24 camadas convolucionais, é utilizado 9 e menos filtros nessas camadas. A Figura 9 demonstra a performance de cada versão do YOLO com os datasets também especificados.

Figura 9. Huang et. Al. [40].

Por motivos do crescente uso de dispositivos com um poder de processamento um pouco mais limitado, foi criado a YOLO-LITE. É uma arquitetura menor, mais rápida e eficiente, assim possibilitando o uso e trazendo acessibilidade com um custo computacional reduzido [40].

III. TRABALHOS RELACIONADOS

1. YOLO Net on iOS. O estudo desenvolvido Apte et. Al. [37] tem como proposta analisar as trocas entre velocidade e precisão na implementação de redes neurais convolucionais (CNNs) para detecção e processamento de objetos em tempo real nas plataformas móveis. Foram utilizados o Dataset VOC, o framework Metal e a biblioteca de construção de rede neurais profundas Forge para realizar a tradução da arquitetura para Swift, assim tornando possível instalar em iPhones. A escolha por utilizar o algoritmo YOLO foi motivada por ter uma detecção de objetos razoavelmente precisa e sua execução é extremamente rápida [37]. Segundo Apte et. Al [37], foi pesquisado diversas arquiteturas de detecção de objetos que se adequasse para a implementação em dispositivos móveis, mas ainda assim optaram por se concentrar no YOLO, por ela proporcionar uma linha de

precisão/velocidade, e também ser mais acessível para a modificação.

A Figura 10 apresenta a relação entre a velocidade de execução do modelo no dispositivo e a sua precisão e como o Tiny-YOLO foi superior em termos de velocidade em comparação com o YOLO.

Figura 10. Apte et. Al. [37]

Como conclusão e futuros trabalhos, os autores citam que a aprendizagem profunda móvel está rapidamente se tornando mais acessível em conjunto com a probabilidade do YOLO completo rodar em tempo real em iPhones. Entre tanto, o aplicativo atual aponta um vasto leque de possibilidades que a detecção de objetos em dispositivos móveis pode ser abordada, como reconhecimento facial, realidade aumentada, e em um futuro próximo, direção autônoma.

2. Leaf Doctor. O estudo realizado por Pethybridge et. Al. [41] pela Universidade do Havaí em Manoa, Faculdade de Agricultura Tropical e Recursos Humanos, realiza análises de doenças de plantas em órgãos de plantas, por exemplo folhas. O aplicativo tem como proposta avaliar a imagem enviada do órgão da planta doente e calcular a porcentagem de tecido doente. O usuário seleciona até oito cores diferentes que representam tecidos saudáveis, e então com um controle deslizante, o usuário consegue verificar os tecidos sintomáticos sendo transformados em uma tonalidade azul, então assim é possível calcular a porcentagem da doença no órgão. Confome Pethybridge et. Al. [41], o estudo relata a precisão e robustez utilizando seis doenças diferentes com lesões típicas de gravidade variável. As estimativas da gravidade da doença foram altamente precisas (R2 $ 0,79; Cb $ 0,959), em comparação com as estimativas

Page 9: APLICATIVO PARA IDENTIFICAR OCORRÊNCIA DE ... PARA...Aplicativo para identificar ocorrência de doença na soja por meio de reconhecimento de imagem e visão computacional Marcos

obtidas a partir do padrão de disciplina, Assess, e a sua precisão foi operacionalmente definida como a capacidade de um avaliador de usar a ferramenta e obter de forma repetida, porcentagens semelhantes de gravidade da doença para a mesma imagem analisada. Uma das limitações do estudo, é a necessidade de um fundo preto para as imagens serem analisadas com maior exatidão.

IV. METODOLOGIA O presente trabalho tem como proposta auxiliar produtores

e fitopatologistas no reconhecimento de doenças na soja com o uso de dispositivos móveis. Esse estudo tem como natureza o aspecto quali-quantitativo.

A pesquisa tem como base a criação de uma aplicação móvel para iPhone suportando iOS 11 ou superior. O aplicativo foi desenvolvido no ambiente de desenvolvimento Xcode e na linguagem de programação Swift. O objetivo principal do aplicativo, é utilizar de técnicas de reconhecimento de imagem e visão computacional off-line para diagnosticar em tempo real as plantas analisadas pela câmera do dispositivo móvel. O usuário irá pressionar o botão para iniciar a detecção, e a partir disso a aplicação irá iniciar a comunicação das imagens capturadas quadro a quadro com o modelo de aprendizagem de máquina. A cada processamento do modelo, será informado se há ou não doenças na imagem analisada. Se existir doenças, será informado a classe da doença em conjunto com a localização das lesões, se não existir, informará que a planta está saudável. Ao final das análises, será aplicado um questionário qualitativo para coletar informações sobre a aplicação e os diagnósticos realizados.

A realização do diagnóstico local será possibilitada pela

utilização do framework Core ML, que fará a integração da aplicação com um modelo de aprendizagem de máquina. O modelo de aprendizagem de máquina foi criado a partir da rede neural convolucional YOLO, com suas previsões, classes e pesos configurados para detecção de doenças na folha de soja. Foi criado dois modelos YOLO, a criação do primeiro modelo foi auxiliada pela técnica de transferência de aprendizado (transfer learning) de um modelo já existente, o segundo modelo foi treinado utilizando a técnica de ajuste fino (fine tuning). Após a criação dos modelos, houve a necessidade de analisar e escolher o modelo mais assertivo e adequado para resolução do problema, e assim traduzir ele para a arquitetura do Core ML, o formato mlmodel. Utilizando da ferramenta coremtools, foi possível toda a tradução e adequação do modelo YOLO para o formato especificado.

O dataset para treinamento e teste do modelo de

aprendizagem de máquina escolhido foi o Digipathos [42], mantido pela Embrapa. Foi aplicado as medidas necessárias para o uso do dataset.

1. Data Augmentation. A técnica de Data Augmentation aborda o aumento do

número de dados contidos no dataset, supondo que mais informações podem ser extraídas do conjunto de dados original por meio de aumentos. A distorção de dados, superamostragem e rotação dos dados foram estratégias utilizadas no presente trabalho, transformando imagens já existentes em outras, mantendo o rótulo da imagem original, trazendo ao dataset generalidade para a resolução do problema [43].

Ao todo foram coletadas 152 imagens do repositório

Digiphatos, sendo 66 imagens da doença ferrugem asiática, 77 da doença oídio e 9 imagens de folhas saudáveis. Para o modelo de aprendizagem ser possível generalizar o diagnóstico, foi necessário aplicar técnicas de data augmentation nas imagens. Ao final do processo de data augmentation, o resultado foi um aumento significativo nas possibilidades de cenários para cada imagem aumentada. A soma total das imagens do dataset foram 1038, sendo elas divididas parcialmente iguais para cada classe. As imagens são de alta qualidade, com altura de 1400px e de largura variadas.

2. Data Annotation.

Para realizar o treinamento do dataset para um modelo YOLO, foi preciso anotar cada imagem com a localização dos objetos na cena, e suas classes. O processo foi totalmente manual, algo trabalhoso, mas que torna o modelo criado muito mais preciso por motivo que as imagens estão anotadas corretamente. O formato utilizado para anotar as imagens foi o Darknet, que consiste em que para cada imagem anotada, exista um arquivo .txt de mesmo nome com a localização dos objetos encontrados e a suas classes.

3. Treinamento.

A versão escolhida para fazer o treinamento dos modelos foi o YOLOv3, os frames por segundo (FPS) dessa versão são um pouco menores do que o YOLOv2, mas os autores explicam que ele tem mais camadas (layers), acurácia e também precisão [44]. Foi utilizado 700 imagens para ambos os treinamentos. O espaço utilizado para fazer os treinamentos foi o Google Collaboratory + GPU, que disponibiliza um ambiente preparado para realizar tarefas de aprendizagem de máquina. A GPU utilizada foi a NVIDIA Tesla P100-PCIE de 16GB. Foi configurado para os modelos treinarem sob 273 épocas (uma época é uma apresentação completa do dataset para a máquina de aprendizado).

Para treinar o primeiro modelo YOLO, foi preciso

fazer o download dos pesos já treinados para utilizar a técnica de transferência de aprendizado (transfer learning). Os pesos escolhidos foram o YOLOv3-spp weights, que o seu treinamento foi realizado no dataset COCO trainval e

Page 10: APLICATIVO PARA IDENTIFICAR OCORRÊNCIA DE ... PARA...Aplicativo para identificar ocorrência de doença na soja por meio de reconhecimento de imagem e visão computacional Marcos

tem um mAP (mean Average precision) com valor 60.6. Eles podem ser encontrados no site oficial do YOLO [45].

Como resultado do fim do treinamento, temos os pesos

de todas as épocas em formato PyTorch, e também temos o melhor peso em relação a todos os outros. Essa classificação é feita utilizando uma função fitness que a com cada época finalizada, é calibrada. A Figura 11 demonstra os resultados obtidos no treinamento.

Figura 11. Resultados do treinamento com transfer learning.

Nota-se na Figura 11 que a precisão aumentou

gradativamente a cada época passada, mas não ultrapassou o valor de 0.6. O valor de mAP teve resultados similares com o de precisão, mas ficou abaixo de 0.7. O Recall (parcela da quantidade total de instâncias relevantes que foram realmente encontradas) não ultrapassou o valor de 0.8. Um modelo que não produz falsos negativos tem um recall de 1.0 [46]. O valor de F1 cresceu gradativamente. A pontuação F1 combina precisão e recall em relação a uma classe positiva específica (média ponderada da precisão e recall, onde uma pontuação F1 atinge seu melhor valor em 1 e pior em 0) [47].

Os pesos em formato PyTorch classificados como os

melhores foram escolhidos para serem transformados em modelo Core ML. O próximo passo foi converter os pesos em formato PyTorch para formato Darknet (.weights). Para utilizar o coremltools para fazer a conversão de um modelo YOLO para o formato Core ML, foi necessário que esse modelo esteja em formato Keras (.h5), Para a conversão do

modelo para Keras, foi utilizado biblioteca Keras, o arquivo de config (.cfg) do modelo YOLOv3-spp e o modelo convertido para Darknet (.weights). Após todo o processo de conversão do modelo, temos o modelo Core ML pronto para ser utilizado na aplicação.

O treino do segundo modelo utilizou todas

configurações e seguiu quase exatamente todos os passos do treino do primeiro modelo, a única diferença é que não foi realizado transferência de aprendizado (transfer learning), e sim a técnica ajuste fino (fine tuning). A Figura 12 demonstra os resultados obtidos no treinamento.

Figura 12. Resultados do treinamento com fine tuning.

Observa-se na Figura 12 que a precisão aumentou e se manteve acima de 0.9 em quase todas as épocas. O valor de mAP teve resultados também acima de 0.9 e bem próximos de 1.0 a maior parte do treino. O Recall ficou muito próximo de 1.0, então pode-se afirmar que esse modelo está muito próximo de não produzir falsos negativos [46]. A pontuação F1 ficou com um valor acima de 0.9 em quase todas as épocas.

O segundo modelo treinado seguiu as mesmas etapas

para conversão do primeiro modelo.

4. Resultados. O método utilizado para avaliar os resultados dos

modelos foi selecionar o melhor modelo Pytorch gerado para ambos, e detectar as classes no dataset de teste. Algumas imagens também foram coletadas da Internet para somar com o dataset de teste, essa motivação se deve por ter sido feito data augmentation nas imagens. Algumas

Page 11: APLICATIVO PARA IDENTIFICAR OCORRÊNCIA DE ... PARA...Aplicativo para identificar ocorrência de doença na soja por meio de reconhecimento de imagem e visão computacional Marcos

imagens presentes no dataset de teste podem ser muito semelhantes as imagens do dataset de treino. Ao todo, somando as imagens do dataset de teste com a imagens coletadas da internet totalizaram 264 imagens.

A análise de dados seguiu os seguintes parâmetros:

a) A precisão do modelo de aprendizagem de máquina em relação as plantas analisadas;

b) Agilidade no reconhecimento da doença e localização das lesões;

c) Facilidade de interpretação das informações apresentadas no momento da análise por parte do usuário;

As análises de natureza quantitativa tiveram relação

total com o modelo de aprendizagem de máquina, que serviu de insumo para aperfeiçoamento do modelo em todos os sentidos. Enquanto as análises de natureza qualitativa tiveram relação total com o aplicativo em si, melhorando a usabilidade e acessibilidade para o usuário.

A validação da acurácia do modelo foi realizada

manualmente, e os critérios utilizados foram: Correta:

• Folhas em maior evidência foram encontradas e classificadas com a classe referente na imagem.

Incorreta: • Folhas em maior evidência foram

encontradas e classificadas com outra classe na imagem.

• Foram classificados 2 objetos para a mesma folha.

• Nenhuma folha foi encontrada na imagem (se houver).

O modelo que foi gerado a partir da utilização da

técnica de transfer learning obteve o resultado de 61.36% de acurácia, sendo que das 264 imagens analisadas foi atingido o resultado assertivo em 162 registros. Um valor considerado abaixo do esperado, pois a maioria das imagens que obtiveram o resultado correto eram imagens que a doença estava em estado crítico na folha, não trazendo todo o aproveitamento e praticidade proposto para a aplicação. Na Figura 13, podemos notar que na folha há sintomas da doença ferrugem em um estágio avançado, a localização do objeto foi correta, mas acabou localizando 2 objetos na mesma imagem, repetindo o bounding box. Para cada bounding box temos uma classificação diferente, a com maior valor de score (bounding box rosa) a classe encontrada foi saudável, e a com menor valor de score (bounding box verde) a classe encontrada foi ferrugem. Se pode afirmar que foi uma análise incorreta, pois plantas

saudáveis não apresentam esses sintomas retratados na imagem, e sim sintomas como os apontados na Figura 14.

Figura 13. Análise incorreta pelo modelo com transfer learning.

O segundo modelo treinado utilizando a técnica de fine

tuning obteve o resultado de 97.73% de acurácia, correspondendo ao resultado assertivo 258 imagens do total de 264. O valor alcançado foi bastante satisfatório, pois conseguiu identificar maioria dos registros no dataset de teste, inclusive as folhas que havia a doença em seu estagio inicial. A Figura 14 apresenta uma folha com a doença ferrugem classificada corretamente. Na Figura 15, podemos notar a grande semelhança que há entre folhas saudáveis com folhas que há a doença em um estágio não avançado. A imagem utilizada como parâmetro para a folha com a doença é a Figura 14.

Page 12: APLICATIVO PARA IDENTIFICAR OCORRÊNCIA DE ... PARA...Aplicativo para identificar ocorrência de doença na soja por meio de reconhecimento de imagem e visão computacional Marcos

Figura 14. Analise correta pelo modelo com fine tuning.

Figura 15. Folha saudável classificada corretamente pelo modelo com fine tuning,

V. CONCLUSÃO E TRABALHOS FUTUROS De acordo com o trabalho desenvolvido, pode-se constatar

que é possível identificar a doença em seu estágio inicial, desde que as imagens utilizadas para treinamento apresentem essas características. A escolha da rede neural convolucional YOLO foi adequada. Em termos de precisão, o YOLO ainda está atrás dos sistemas de detecção de ponta, mas ele supera todos eles em velocidade, essa sendo uma peça importante para o presente trabalho, pois possibilitou a realização de diagnósticos em tempo real [38].

O modelo que foi criado a partir da técnica de fine tuning

teve maior acurácia diante do modelo criado a partir da técnica de transfer learning. Isso talvez se explica pela lacuna entre o conhecimento dos pesos do YOLO escolhido para a transferência de aprendizado não ser tão significativa para com o novo domínio, reconhecimento de doenças na soja. A técnica de fine tuning consiste em pega algum modelo de aprendizagem de máquina que já contem algum aprendizado, e treiná-lo um pouco mais, eventualmente com dados diferentes, especializando o aprendizado do modelo [48], [49]. Transfer learning significa gerar uma adaptação de domínio a partir o conhecimento que algum modelo de aprendizado de máquina contém a uma nova tarefa, mas de alguma maneira relacionada [50].

As Figuras 16 e 17 apresentam o funcionamento da

aplicação integrado com o modelo de aprendizagem de máquina.

Figura 16. Demonstração da ferramenta (à esquerda folha com ferrugem, à direita folhas saudáveis).

Figura 17. Demonstração da ferramenta realizando o diagnóstico das folhas em tempo real.

Page 13: APLICATIVO PARA IDENTIFICAR OCORRÊNCIA DE ... PARA...Aplicativo para identificar ocorrência de doença na soja por meio de reconhecimento de imagem e visão computacional Marcos

Os desafios mais notáveis foram encontrar imagens fidedignas para resolver o problema do presente trabalho e também realizar a tarefa de data annotation das mesmas.

Uma limitação presente é a possibilidade da aplicação ser

utilizada apenas por aparelhos da marca Apple e modelo iPhone X ou superior. Isso se deve pelas tecnologias utilizadas para realizar a tarefa de aprendizagem de máquina de maneira off-line.

Há um grande campo a ser explorado na área envolvendo

aprendizagem de máquina e reconhecimento de doenças em plantas. Para trabalhos futuros, a integração dos dados analisados pelo modelo off-line com um serviço online para criar a possibilidade de serem reconsultados é algo significativo e está sendo considerado. O aumento da quantidade de imagens no dataset com plantas em diferentes estágios da doença é de grande importância e necessidade para a melhora do modelo treinado, podendo trazer mais generalidade para resolução do problema e aperfeiçoamento à aplicação. Com os estágios mapeados, poderá ser informado no diagnóstico em qual fase da doença a planta se encontra, podendo recomendar ao produtor estratégias e dicas para melhores práticas referente a fase da doença na planta diagnosticada. Outra feature futura que está sendo encarada como importante a ser desenvolvida é a geolocalização dos diagnósticos realizados pelo usuário, em conjunto com dados do campo, ano da safra e recomendações para um melhor manejo. Outra possível e importante extensão para o presente trabalho é a criação de uma versão que seja possível ser utilizada pela plataforma Android.

VI. CRONOGRAMA

TABLE I. ETAPAS DO PROJETO

Mês Ano Etapas do Projeto

Descrição

Jun/Jul 2019

Desenvolvimento da versão inicial da aplicação e desenvolvimento inicial do modelo de aprendizagem

de máquina

Jul/Ago 2019

Desenvolvimento da versão final da aplicação e desenvolvimento final do modelo de aprendizagem de

máquina

Ago/Set 2019

Integração do modelo de aprendizagem de máquina com a aplicação mobile e início da coleta de dados

Set/Out 2019

Final da coleta de dados e início da análise dos dados coletados

Out/Nov 2019

Apresentação dos dados coletados, resultados e fechamento textual

a. Proposta de Cronograma de Desenvolvimento, Aplicação e Teste.

REFERÊNCIAS:

[1] Agrosmart, “Doenças da soja: entenda suas características e condições de desenvolvimento.”

[Online]. Available: https://agrosmart.com.br/blog/agronegocio/doencas-da-soja-caracteristicas-condicoes-desenvolvimento/.

[Accessed: 11-Jun-2019].

[2] Jornal Estado de Minas, “Brasil a caminho de ser o maior produtor de soja do mundo.,” 2019. [Online].

Available: https://www.em.com.br/app/noticia/internacional/201

9/06/17/interna_internacional,1062624/brasil-a-caminho-de-ser-o-maior-produtor-de-soja-do-

mundo.shtml. [Accessed: 17-Jun-2019].

[3] C. R. Bruna Essig, “Rio Grande do Sul será o 2o maior produtor de soja do Brasil.,” 2019. [Online].

Available: https://canalrural.uol.com.br/sites-e-especiais/projeto-soja-brasil/rio-grande-do-sul-sera-o-2o-maior-produtor-de-soja-do-brasil/. [Accessed: 10-

Jun-2019].

[4] N. Agrícolas, “Paraná fica três meses sem soja para combater ferrugem asiática.,” 2019. [Online].

Available: https://www.noticiasagricolas.com.br/noticias/soja/237029-parana-fica-tres-meses-sem-soja-para-combater-

ferrugem-asiatica.html. [Accessed: 12-Jun-2019].

[5] G. Chinelato, “9 curiosidades que você não sabe sobre Ferrugem-Asiática da soja e como combatê-la,” 2018.

[Online]. Available: https://blog.aegro.com.br/ferrugem-asiatica-

curiosidades/. [Accessed: 01-Nov-2019].

[6] Embrapa, “Agência Embrapa de Informação Tecnológica - Oídio.” .

[7] Agrolink, “Agrolink - Oídio.” [Online]. Available: https://www.agrolink.com.br/problemas/oidio_1858.ht

ml. [Accessed: 01-Nov-2019].

[8] Mais Soja, “Agricultura 4.0: ferramentas digitais mostram benefícios das tecnologias.,” 2019. [Online].

Available: https://maissoja.com.br/agricultura-4-0-ferramentas-digitais-mostram-beneficios-das-

tecnologias/. [Accessed: 10-Jun-2019].

[9] “Consórcio Antiferrugem.” .

[10] A.-J. L. da S. Nunes, “Consórcio Antiferrugem,” 2016. [Online]. Available:

https://www.agrolink.com.br/culturas/soja/informacoes/consorcio-antiferrugem_361547.html. [Accessed:

02-Oct-2019].

[11] R. Boutaba et al., “Comprehensive survey Machine Learning,” J. ofInternet Serv. andApplications, vol. 9,

no. 16, p. 99, 2018.

[12] W.-S. Jeon and S.-Y. Rhee, “Plant Leaf Recognition

Page 14: APLICATIVO PARA IDENTIFICAR OCORRÊNCIA DE ... PARA...Aplicativo para identificar ocorrência de doença na soja por meio de reconhecimento de imagem e visão computacional Marcos

Using a Convolution Neural Network,” Int. J. Fuzzy Log. Intell. Syst., vol. 17, no. 1, pp. 26–34, 2017.

[13] S. Shalev-Shwartz and S. Ben-David, Understanding machine learning: From theory to algorithms, vol.

9781107057. 2013.

[14] M. Hollemans, “Core ML Survival Guide More than you ever wanted to know about mlmodel files and the

Core ML and Vision APIs.”

[15] Apple, “Core ML.” [Online]. Available: https://developer.apple.com/documentation/coreml.

[Accessed: 19-May-2019].

[16] Apple, “Create ML.” [Online]. Available: https://developer.apple.com/documentation/createml.

[Accessed: 19-May-2019].

[17] Apple, “Training a Create ML Model to Classify Flowers.” [Online]. Available:

https://developer.apple.com/documentation/vision/training_a_create_ml_model_to_classify_flowers.

[Accessed: 19-May-2019].

[18] A. Voulodimos, N. Doulamis, A. Doulamis, and E. Protopapadakis, “Deep Learning for Computer Vision: A Brief Review,” Comput. Intell. Neurosci., vol. 2018,

pp. 1–13, 2018.

[19] R. Szeliski, “Introduction,” pp. 1–25, 2010.

[20] G. F. Elsayed et al., “Adversarial Examples that Fool both Computer Vision and Time-Limited Humans,”

2018.

[21] R. Verschae and J. Ruiz-del-Solar, “Object Detection: Current and Future Directions,” Front. Robot. AI, vol.

2, no. December, 2015.

[22] B. Alexe, T. Deselaers, and V. Ferrari, “2010 - Alexe, Deselaers, Ferrari - What is an object.pdf.”

[23] J. Wäldchen and P. Mäder, Plant Species Identification Using Computer Vision Techniques: A Systematic Literature Review, vol. 25, no. 2. Springer

Netherlands, 2018.

[24] S. H. Lee, C. S. Chan, P. Wilkin, and P. Remagnino, “Deep-plant: Plant identification with convolutional neural networks,” Proc. - Int. Conf. Image Process.

ICIP, vol. 2015-Decem, pp. 452–456, 2015.

[25] R. Yamashita, M. Nishio, R. K. G. Do, and K. Togashi, “Convolutional neural networks: an

overview and application in radiology,” Insights Imaging, vol. 9, no. 4, pp. 611–629, 2018.

[26] K. Simonyan and A. Zisserman, “Very Deep Convolutional Networks for Large-Scale Image

Recognition,” pp. 1–14, 2014.

[27] J. Du, “Understanding of Object Detection Based on CNN Family and YOLO,” J. Phys. Conf. Ser., vol.

1004, no. 1, 2018.

[28] S. Ioffe and C. Szegedy, “Batch Normalization: Accelerating Deep Network Training by Reducing

Internal Covariate Shift,” 2015.

[29] K. O’Shea and R. Nash, “An Introduction to Convolutional Neural Networks,” no. December,

2015.

[30] A. Krizhevsky, I. Sutskever, and G. Hinton, “ImageNet Classification with Deep Convolutional

Neural Networks.,” 2012.

[31] A. F. Agarap, “Deep Learning using Rectified Linear Units (ReLU),” no. 1, pp. 2–8, 2018.

[32] C. Szegedy et al., “Going deeper with convolutions,” Proc. IEEE Comput. Soc. Conf. Comput. Vis. Pattern Recognit., vol. 07-12-June, no. June, pp. 1–9, 2015.

[33] Z. Alom et al., “The History Began from AlexNet,” 2018.

[34] A. Karpathy, “What I learned from competing against a ConvNet on ImageNet,” 2014. [Online]. Available: https://karpathy.github.io/2014/09/02/what-i-learned-

from-competing-against-a-convnet-on-imagenet/. [Accessed: 30-May-2019].

[35] A. Khan, A. Sohail, U. Zahoora, and A. S. Qureshi, “A Survey of the Recent Architectures of Deep

Convolutional Neural Networks,” no. January, 2019.

[36] K. He, X. Zhang, S. Ren, and J. Sun, “Deep residual learning for image recognition,” Proc. IEEE Comput. Soc. Conf. Comput. Vis. Pattern Recognit., vol. 2016-

Decem, pp. 770–778, 2016.

[37] M. Apte, S. Mangat, and P. Sekhar, “YOLO Net on iOS.”

[38] J. Redmon, S. Divvala, R. Girshick, and A. Farhadi, “You Only Look Once: Unified, Real-Time Object

Detection,” 2015.

[39] J. Redmon and A. Farhadi, “YOLO9000: Better, faster, stronger,” Proc. - 30th IEEE Conf. Comput. Vis. Pattern Recognition, CVPR 2017, vol. 2017-

Janua, pp. 6517–6525, 2017.

[40] R. Huang, J. Pedoeem, and C. Chen, “YOLO-LITE: A Real-Time Object Detection Algorithm Optimized for Non-GPU Computers,” Proc. - 2018 IEEE Int. Conf.

Big Data, Big Data 2018, pp. 2503–2510, 2019.

[41] S. J. Pethybridge and S. C. Nelson, “Leaf Doctor: A

Page 15: APLICATIVO PARA IDENTIFICAR OCORRÊNCIA DE ... PARA...Aplicativo para identificar ocorrência de doença na soja por meio de reconhecimento de imagem e visão computacional Marcos

New Portable Application for Quantifying Plant Disease Severity,” Plant Dis., vol. 99, no. 10, pp.

1310–1316, 2015.

[42] Embrapa, “Image Database of Plant Disease Symptoms (PDDB),” 2019. [Online]. Available: https://www.digipathos-rep.cnptia.embrapa.br/.

[Accessed: 15-Jun-2019].

[43] C. Shorten and T. M. Khoshgoftaar, “A survey on Image Data Augmentation for Deep Learning,” J. Big

Data, 2019.

[44] J. Redmon, A. Farhadi, and C. Ap, “YOLOv3 : An Incremental Improvement.”

[45] A. F. Joseph Redmon, “YOLO Site.” .

[46] Google, “Precision and Recall.” [Online]. Available: https://developers.google.com/machine-

learning/crash-course/classification/precision-and-recall. [Accessed: 01-Nov-2029].

[47] Scikit-learn, “F1 Score.” [Online]. Available: https://scikit-

learn.org/stable/modules/generated/sklearn.metrics.f1_score.html#sklearn.metrics.f1_score. [Accessed: 01-

Nov-2019].

[48] M. A. Ponti, Como funciona o Deep Learning. 2017.

[49] A. K. Reyes, J. C. Caicedo, J. E. Camargo, and U. A. Nari, “Fine-tuning Deep Convolutional Networks for

Plant Recognition.”

[50] K. Weiss, T. M. Khoshgoftaar, and D. D. Wang, A survey of transfer learning, vol. 3, no. 1. Springer

International Publishing, 2016.