
Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-23 15:03

O processo de detecção e reconhecimento de plantas doentes sempre foi um processo manual e tedioso que exige que os humanos inspecionem visualmente o corpo da planta, o que muitas vezes pode levar a um diagnóstico incorreto. Também foi previsto que, à medida que os padrões climáticos globais começam a variar devido às mudanças climáticas, as doenças nas lavouras provavelmente se tornarão mais graves e disseminadas. Conseqüentemente, é importante desenvolver sistemas que analisem as plantações de maneira rápida e fácil e identifiquem uma doença específica, a fim de limitar mais danos às plantações.
Neste Instructable, vamos explorar um conceito de aprendizado de máquina conhecido como "Transfer Learning" para classificar imagens de plantas de arroz doentes. O mesmo método pode ser reaproveitado para qualquer outro problema de classificação de imagem.
Etapa 1: tipos de doenças do arroz

O arroz é uma das culturas alimentares básicas mais populares cultivadas principalmente na Ásia, África e América do Sul, mas é suscetível a uma variedade de pragas e doenças. Características físicas como a descoloração das folhas podem ser utilizadas para identificar diversas doenças que podem afetar a cultura do arroz. Por exemplo, no caso da Mancha-marrom, uma doença fúngica que afeta a bainha protetora das folhas, as folhas são cobertas por várias pequenas manchas marrons ovais com centros acinzentados enquanto, no caso da Blast-da-folha, as folhas são cobertas com lesões castanhas maiores. Da mesma forma, as folhas afetadas pela praga Rice Hispa podem ser identificadas pelas longas marcas de rastros que se desenvolvem na superfície da folha.
Etapa 2: Como os métodos anteriores detectaram as doenças?

Métodos anteriores para classificar automaticamente imagens de plantas doentes, como classificadores baseados em regras, conforme usado em [1], contam com um conjunto fixo de regras para segmentar a folha em regiões afetadas e não afetadas. Algumas das regras para extrair recursos envolvem observar a mudança na média e no desvio padrão entre a cor das regiões afetadas e não afetadas. As regras para extrair características de forma envolvem colocar individualmente várias formas primitivas no topo da região afetada e identificar a forma que cobre a área máxima da região afetada. Uma vez que os recursos são extraídos das imagens, um conjunto de regras fixas é usado para classificar as imagens de acordo com a doença que pode ter afetado a planta. A principal desvantagem de tal classificador é que ele exigirá várias regras fixas para cada doença, o que, por sua vez, pode torná-lo suscetível a dados ruidosos. As imagens acima mostram como uma árvore de decisão baseada em regras pode ser usada para segmentar a imagem em duas regiões.
1. Santanu Phadikar et al., “Classificação de doenças do arroz usando técnicas de seleção de características e geração de regras”, Computers and Electronics in Agriculture, vol. 90, janeiro de 2013.
Etapa 3: transferir aprendizagem

A técnica de classificação de imagens descrita neste Instructables usa a estrutura básica de uma CNN que consiste em várias camadas convolucionais, uma camada de pool e uma camada final totalmente conectada. As camadas convolucionais atuam como um conjunto de filtros que extraem os recursos de alto nível da imagem. Max-pooling é um dos métodos comuns usados em camadas de pool para reduzir o tamanho espacial dos recursos extraídos, reduzindo assim o poder de computação necessário para calcular os pesos para cada camada. Finalmente, os dados extraídos são passados por uma camada totalmente conectada junto com uma função de ativação softmax que determina a classe da imagem.
Mas treinar CNNs personalizados do zero pode não produzir os resultados desejados e pode exigir um treinamento muito longo.
Para aprender os recursos das imagens de treinamento, usamos um método chamado Transfer Learning, em que as camadas "superiores" de um modelo pré-treinado são removidas e substituídas por camadas que podem aprender os recursos específicos do conjunto de dados de treinamento. O aprendizado por transferência reduz o tempo de treinamento quando comparado aos modelos que usam pesos inicializados aleatoriamente. Nosso método usa seis modelos pré-treinados diferentes, a saber, AlexNet, GoogLeNet, ResNet-50, Inception-v3, ShuffleNet e MobileNet-v2.
A imagem mostra a arquitetura GoogLeNet onde o azul é usado para camadas convolucionais, vermelho para camadas de pool, amarelo para camadas softmax e verde para camadas concat. Você pode aprender mais sobre o funcionamento interno de uma CNN aqui.
O conjunto de dados da doença do arroz consiste em imagens de folhas de plantas de arroz saudáveis e doentes. As imagens podem ser categorizadas em quatro classes diferentes: Brown-Spot, Rice Hispa, Leaf-Blast e Healthy. O conjunto de dados consiste em 2.092 imagens diferentes com cada classe contendo 523 imagens. Cada imagem consiste em uma única folha saudável ou doente colocada contra um fundo branco.
Dividimos o conjunto de dados de imagens em conjuntos de imagens de treinamento, validação e teste. Para evitar overfitting, aumentamos as imagens de treinamento dimensionando e invertendo as imagens de treinamento para aumentar o número total de amostras de treinamento.
O código e as dependências são de código aberto e podem ser encontrados aqui: Código GitHub
Para diferentes aplicativos de classificação de imagem, podemos simplesmente alterar o conjunto de dados da imagem de treinamento.
Etapa 4: treinar o modelo



Dependendo do tamanho da memória necessária para cada modelo, os modelos pré-treinados são categorizados em modelos maiores e menores. Os modelos menores consomem menos de 15 MB e, portanto, são mais adequados para aplicativos móveis.
Entre os modelos maiores, o Inception-v3 teve o tempo de treinamento mais longo, de aproximadamente 140 minutos, enquanto o AlexNet, o tempo de treinamento mais curto, de aproximadamente 18 minutos. Entre os modelos menores orientados para dispositivos móveis, o MobileNet-v2 teve o tempo de treinamento mais longo, de aproximadamente 73 minutos, enquanto o ShuffleNet teve o tempo de treinamento mais curto, de aproximadamente 38 minutos.
Etapa 5: Testar o modelo



Entre os modelos maiores, o Inception-v3 teve a maior precisão de teste de aproximadamente 72,1%, enquanto AlexNet teve a menor precisão de teste de aproximadamente 48,5%. Entre os modelos menores orientados para dispositivos móveis, o MobileNet-v2 teve a maior precisão de teste de 62,5%, enquanto o ShuffleNet teve a menor precisão de teste de 58,1%.
O MobileNet-v2 teve um desempenho significativamente bom ao classificar imagens de Brown-Spot, Leaf-Blast e Healthy leaves enquanto fazia várias classificações erradas para Rice Hispa com uma precisão de apenas 46,15%.
O Inception-v3 mostrou resultados de classificação semelhantes aos do MobileNet-v2.
Etapa 6: testes adicionais


A imagem acima mostra como o modelo MobileNet-v2 classifica incorretamente uma imagem de uma folha de grama contra um fundo branco como Rice Hispa.
Também testamos a precisão do MobileNet-v2 em imagens recortadas de Rice Hispa em que o fundo branco foi minimizado de forma que a folha ocupasse uma área máxima na imagem. Para imagens recortadas de Rice Hispa, observamos uma precisão de aproximadamente 80,81%, ou seja, para imagens recortadas de Rice Hispa, observamos um aumento significativo na precisão da classificação sobre as amostras de teste não cultivadas. Portanto, propomos que as implementações do mundo real de detecção de doenças do arroz usando redes neurais convolucionais devem cortar as imagens de teste para remover o ruído de fundo a fim de melhorar a precisão.
Recomendado:
Programação Orientada a Objetos: Criando Objetos Aprendizado / Método / Técnica de Ensino Usando o Perfurador de Formas: 5 Passos

Programação Orientada a Objetos: Criando Objetos de Aprendizagem / Método / Técnica de Ensino Usando Shape Puncher: Método de aprendizagem / ensino para alunos iniciantes em programação orientada a objetos. Esta é uma forma de permitir que eles visualizem e vejam o processo de criação de objetos a partir de classes.Parte: 1. EkTools soco grande de 2 polegadas; formas sólidas são as melhores. Pedaço de papel ou c
Alimentador automático de plantas WiFi com reservatório - Configuração de cultivo interno / externo - Plantas aquáticas automaticamente com monitoramento remoto: 21 etapas

Alimentador automático de plantas WiFi com reservatório - Configuração de cultivo interno / externo - Plantas aquáticas automaticamente com monitoramento remoto: Neste tutorial, demonstraremos como configurar um sistema alimentador de plantas interno / externo personalizado que rega automaticamente as plantas e pode ser monitorado remotamente usando a plataforma Adosia
Previsão da temperatura ambiente via sensor LM35 e aprendizado de máquina: 4 etapas

Previsão de temperatura ambiente via sensor LM35 e aprendizado de máquina: introdução Hoje estamos focados na construção de um projeto de aprendizado de máquina que prevê a temperatura por meio de regressão polinomial. O aprendizado de máquina é um aplicativo de inteligência artificial (IA) que fornece aos sistemas a capacidade de aprender automaticamente
Detecção de doenças de plantas com Qualcomm Dragonboard 410c: 4 etapas

Detecção de doenças de plantas com Qualcomm Dragonboard 410c: Olá a todos, estamos participando do concurso Inventing the Future with Dragonboard 410c, patrocinado pela Embarcados, Linaro e Baita.AVoID Project (Agro View Disease) Nosso objetivo é criar um sistema embarcado capaz de capturar imagens, processar e detectar pos
Para ser vacinado ou não? um projeto de observação da imunidade do rebanho por meio da simulação de doenças: 15 etapas

Para ser vacinado ou não? um projeto de observação da imunidade do rebanho por meio da simulação de doenças: Visão geral do projeto: Nosso projeto explora a imunidade do rebanho e espera encorajar as pessoas a obter vacinas para diminuir as taxas de infecção em nossas comunidades. Nosso programa simula como uma doença infecta uma população com diferentes porcentagens de vacina