Monitoreo de niveles de irrigación y salud vegetal de los cultivos de arroz a partir de imagenes RGB y NIR
El conjunto de scripts presentes en este repositorio cumplen la función de medir el índice NDVI para . El trabajo desarrollado no se limitó al dominio de las imágenes sino que también se buscó prescindir de tecnología de captura de imágenes NIR a través de la predicción de estas haciendo uso de algoritmos de machine learning.
El presente es el manual de la aplicación crop_diagnosis para los que deseen hacer uso de ella.
##Contenido
- Descripción de la estructura de los directorios.
- Pre-requisitos para hacer uso del aplicativo.
- Paso a paso de como correr el código.
-scripts
|--data_setup
|--lecturaCorrecta
|--image.py
|--modelo_aprendizaje
|--imagenes.R
|--crop_diagnosis
|--cliente
|--IMG_XYZ.JPG
|--crop_images_processing.py
|--crop_images_processing_copy.py
El computador en el que se vaya a correr el código debe tener el siguiguiente software instalado:
- MySQL v5.6.27
- R v0.99896
- Python v2.7
Adicionalmente, para la fase de entrenamiento del modelo se recomienda un computador con las siguientes especificaciones:
- Procesador: 3.2GHz
- Memoria: 8Gb
Son dos pasos principales para ejecutar el aplicativo: (1) entrenamiento del modelo y (2) cálculo del índice NDVI sobre imágenes del cultivo.
Esta sección no está pensada para los usuarios finales del aplicativo. Sin embargo, el procedimiento puede ser replicado utilizando el script "imagenes.R" disponible en la carpeta scripts. El procedimiento de pasar la información de los ortoplanos a una base de datos, entrenar el modelo y guardar la información de las predicciones en la base de datos puede tomó más de 48 horas en un servidor potente. En caso de querer observar el funcionamiento del aplicativo en vivo las peticiones para el cálculo del NDVI pueden ser redirigidas al servidor original. Por favor comunicarse con nosotros si este es el caso.
Para esto, en el directorio crop_diagnosis se encuentra el archivo crop_images_processing.py. Este se corre de la siguiente manera:
$ > python crop_images_processing.py [args]
Donde todos los argumentos se deben ingresar y son los siguientes:
- Threshold: -1 si se usa detección automática del umbral(Otsu). De lo contrario un número entre 0 y 1 que indica el umbral manualmente.
- Offset: Positivo o negativo entre 0 y 1 que indica un offset sobre el umbral calculado por Otsu.
- Imagen a analizar: Ruta a la imagen que se quiere analizar.
- Directorio de resultados: Ruta al directorio donde se desea almacenar los resultados.
- Nombre base de imagenes resultado: Prefijo con el que se marcarán todas la imágenes resultado del análisis.
De esta manera, una ejecución ejemplo del código sería:
$ > python crop_images_processing.py -1 0 ~/Desktop/IMG_3416.JPG ~/Desktop/resultados prueba1
Se debe tener en cuenta que la base de datos esta quemada a nivel del software ya que para propositos de esta entrega, la generación de la misma en cualquier máquina no es tarea sencilla ni rápida.