Tabla de contenido:

Cómo detectar enfermedades de las plantas mediante el aprendizaje automático: 6 pasos
Cómo detectar enfermedades de las plantas mediante el aprendizaje automático: 6 pasos

Video: Cómo detectar enfermedades de las plantas mediante el aprendizaje automático: 6 pasos

Video: Cómo detectar enfermedades de las plantas mediante el aprendizaje automático: 6 pasos
Video: 🌱Los virus vegetales, su diagnóstico y manejo de enfermedades 2024, Noviembre
Anonim
Cómo detectar enfermedades de las plantas mediante el aprendizaje automático
Cómo detectar enfermedades de las plantas mediante el aprendizaje automático

El proceso de detección y reconocimiento de plantas enfermas siempre ha sido un proceso manual y tedioso que requiere que los humanos inspeccionen visualmente el cuerpo de la planta, lo que a menudo puede conducir a un diagnóstico incorrecto. También se ha pronosticado que a medida que los patrones climáticos globales comiencen a variar debido al cambio climático, es probable que las enfermedades de los cultivos se vuelvan más graves y generalizadas. Por lo tanto, es importante desarrollar sistemas que analicen los cultivos de manera rápida y fácil e identifiquen una enfermedad en particular para limitar un mayor daño a los cultivos.

En este Instructable, exploraremos un concepto de aprendizaje automático conocido como "Aprendizaje por transferencia" para clasificar imágenes de plantas de arroz enfermas. El mismo método se puede reutilizar para cualquier otro problema de clasificación de imágenes.

Paso 1: Tipos de enfermedades del arroz

Tipos de enfermedades del arroz
Tipos de enfermedades del arroz

El arroz es uno de los cultivos alimentarios básicos más populares que se cultiva principalmente en Asia, África y América del Sur, pero es susceptible a una variedad de plagas y enfermedades. Las características físicas como la decoloración de las hojas se pueden utilizar para identificar varias enfermedades que pueden afectar el cultivo de arroz. Por ejemplo, en el caso de Brown-Spot, una enfermedad fúngica que afecta la vaina protectora de las hojas, las hojas están cubiertas con varias pequeñas manchas ovaladas de color marrón con centros grises, mientras que, en el caso de Leaf-Blast, las hojas están cubiertas. con lesiones marrones más grandes. Del mismo modo, las hojas afectadas por la plaga Rice Hispa pueden identificarse por las marcas de rastro largo que se desarrollan en la superficie de la hoja.

Paso 2: ¿Cómo detectaron enfermedades los métodos anteriores?

¿Cómo detectaban enfermedades los métodos anteriores?
¿Cómo detectaban enfermedades los métodos anteriores?

Los métodos anteriores para clasificar automáticamente imágenes de plantas enfermas, como los clasificadores basados en reglas, como se usa en [1], se basan en un conjunto fijo de reglas para segmentar la hoja en regiones afectadas y no afectadas. Algunas de las reglas para extraer características implican observar el cambio en la desviación estándar y media entre el color de las regiones afectadas y no afectadas. Las reglas para extraer características de forma implican colocar individualmente varias formas primitivas en la parte superior de la región afectada e identificar la forma que cubre el área máxima de la región afectada. Una vez que se extraen las características de las imágenes, se utiliza un conjunto de reglas fijas para clasificar las imágenes según la enfermedad que pueda haber afectado a la planta. El principal inconveniente de un clasificador de este tipo es que requerirá varias reglas fijas para cada enfermedad, lo que a su vez podría hacerlo susceptible a datos ruidosos. Las imágenes anteriores muestran cómo se puede utilizar un árbol de decisiones basado en reglas para segmentar la imagen en dos regiones.

1. Santanu Phadikar et al., “Clasificación de las enfermedades del arroz utilizando técnicas de selección de características y generación de reglas”, Computers and Electronics in Agriculture, vol. 90, enero de 2013.

Paso 3: transferir el aprendizaje

Transferir aprendizaje
Transferir aprendizaje

La técnica de clasificación de imágenes descrita en este Instructables utiliza la estructura básica de una CNN que consta de varias capas convolucionales, una capa de agrupación y una capa final completamente conectada. Las capas convolucionales actúan como un conjunto de filtros que extraen las características de alto nivel de la imagen. La agrupación máxima es uno de los métodos habituales utilizados en la agrupación de capas para reducir el tamaño espacial de las características extraídas, lo que reduce la potencia de cálculo necesaria para calcular los pesos de cada capa. Finalmente, los datos extraídos se pasan a través de una capa completamente conectada junto con una función de activación softmax que determina la clase de la imagen.

Pero entrenar CNN personalizados desde cero puede no producir los resultados deseados y puede requerir un tiempo de entrenamiento muy largo.

Para conocer las características de las imágenes de entrenamiento, utilizamos un método llamado Transfer Learning en el que las capas "superiores" de un modelo previamente entrenado se eliminan y reemplazan con capas que pueden aprender las características que son específicas del conjunto de datos de entrenamiento. El aprendizaje por transferencia reduce el tiempo de entrenamiento en comparación con los modelos que utilizan pesos inicializados aleatoriamente. Nuestro método utiliza seis modelos diferentes previamente entrenados, a saber, AlexNet, GoogLeNet, ResNet-50, Inception-v3, ShuffleNet y MobileNet-v2.

La imagen muestra la arquitectura de GoogLeNet donde el azul se usa para las capas convolucionales, el rojo para las capas agrupadas, el amarillo para las capas softmax y el verde para las capas concat. Puede obtener más información sobre el funcionamiento interno de una CNN aquí.

El conjunto de datos de la enfermedad del arroz consta de imágenes de hojas de plantas de arroz sanas y enfermas. Las imágenes se pueden clasificar en cuatro clases diferentes, a saber, Brown-Spot, Rice Hispa, Leaf-Blast y Healthy. El conjunto de datos consta de 2092 imágenes diferentes y cada clase contiene 523 imágenes. Cada imagen consta de una sola hoja sana o enferma colocada sobre un fondo blanco.

Dividimos el conjunto de datos de imágenes en conjuntos de imágenes de entrenamiento, validación y prueba. Para evitar el sobreajuste, aumentamos las imágenes de entrenamiento escalando y volteando las imágenes de entrenamiento para aumentar el número total de muestras de entrenamiento.

El código y las dependencias son de código abierto y se pueden encontrar aquí: Código de GitHub

Para diferentes aplicaciones de clasificación de imágenes, simplemente podemos cambiar el conjunto de datos de imágenes de entrenamiento.

Paso 4: Entrenamiento del modelo

Entrenando el modelo
Entrenando el modelo
Entrenando el modelo
Entrenando el modelo
Entrenando el modelo
Entrenando el modelo

Dependiendo del tamaño de memoria requerido por cada modelo, los modelos entrenados previamente se clasifican en modelos más grandes y más pequeños. Los modelos más pequeños consumen menos de 15 MB y, por lo tanto, son más adecuados para aplicaciones móviles.

Entre los modelos más grandes, Inception-v3 tuvo el tiempo de entrenamiento más largo de aproximadamente 140 minutos, mientras que AlexNet tuvo el tiempo de entrenamiento más corto de aproximadamente 18 minutos. Entre los modelos más pequeños orientados a dispositivos móviles, MobileNet-v2 tuvo el tiempo de entrenamiento más largo de aproximadamente 73 minutos, mientras que ShuffleNet tuvo el tiempo de entrenamiento más corto de aproximadamente 38 minutos.

Paso 5: probar el modelo

Probando el modelo
Probando el modelo
Probando el modelo
Probando el modelo
Probando el modelo
Probando el modelo

Entre los modelos más grandes, Inception-v3 tuvo la precisión de prueba más alta de aproximadamente 72,1%, mientras que AlexNet tuvo la precisión de prueba más baja de aproximadamente 48,5%. Entre los modelos más pequeños orientados a dispositivos móviles, MobileNet-v2 tuvo la precisión de prueba más alta del 62,5%, mientras que ShuffleNet tuvo la precisión de prueba más baja del 58,1%.

MobileNet-v2 se desempeñó significativamente bien al clasificar imágenes de hojas de mancha marrón, explosión de hojas y hojas sanas, al tiempo que realizó varias clasificaciones erróneas para Rice Hispa con una precisión de solo 46.15%.

Inception-v3 mostró resultados de clasificación similares a los de MobileNet-v2.

Paso 6: pruebas adicionales

Exámenes adicionales
Exámenes adicionales
Exámenes adicionales
Exámenes adicionales

La imagen de arriba muestra cómo el modelo MobileNet-v2 clasifica erróneamente una imagen de una hoja de césped sobre un fondo blanco como Rice Hispa.

También probamos la precisión de MobileNet-v2 en imágenes recortadas de Rice Hispa en las que el fondo blanco se minimizó de manera que la hoja ocupa un área máxima dentro de la imagen. Para las imágenes recortadas de Rice Hispa, observamos una precisión de aproximadamente 80,81%, es decir, para las imágenes recortadas de Rice Hispa, observamos un aumento significativo en la precisión de clasificación sobre las muestras de prueba sin recortar. Por lo tanto, proponemos que las implementaciones en el mundo real de la detección de la enfermedad del arroz mediante redes neuronales convolucionales deben recortar las imágenes de prueba para eliminar el ruido de fondo y mejorar la precisión.

Recomendado: