Está en la página 1de 78

División de Estudios de Posgrado e Investigación

Maestría en Sistemas Computacionales

“PROCESAMIENTO DE IMÁGENES APLICADAS A LA IDENTIFICACIÓN


DE SIGATOKA NEGRA EN EL CULTIVO DE PLÁTANO”

Tesis

Que para obtener el grado de Maestro en Sistemas Computacionales

Presenta:

Juan Salvador García Andrade

Director de Tesis:

Dr. Noel García Díaz


Co-Director:

MSC. J. Reyes Benavides Delgado

Villa de Álvarez, Colima Julio de 2018

1
Agradecimientos

Al Instituto Tecnológico de Colima, que me permitió realizar


mis estudios de maestría y me ofreció el acceso a las
instalaciones y equipo para poder concluirla.
Al Consejo Nacional de Ciencia y Tecnología, por el apoyo
económico durante la carrera.
A los maestros y revisores por su tiempo y dedicación. En
especial al Dr. Noel García Díaz y al Dr. Nicandro Farías
Mendoza, por ayudarme con la investigación. Logrando conocer
los sistemas expertos e inteligentes y sus aplicaciones en
sectores ajenos al área de computación.
A mis compañeros, por su amistad, que lograron hacer amena la
estancia de los estudios de maestría.
Finalmente, a mis padres y hermanos por su apoyo durante todo
el estudio de maestría, que a pesar de los momentos difíciles
que atravesamos siempre estuvieron cuando los necesité y sé
que siempre van a estar presentes en mi vida.

4
Resumen
La Sigatoka es la enfermedad del Plátano más importante a nivel
mundial. Su nombre viene del Valle de Sigatoka en las Islas
Fiji donde fue identificada por primera vez en 1912. En esta
investigación se desarrolló un sistema que procesa imágenes
utilizando redes neuronales convolucionales para la
identificación de las fases de la Sigatoka negra en el cultivo
de Plátano llamado BSNet. Este trabajo se desarrolla en áreas
de siembra ubicadas en el municipio de Manzanillo, Colima. En
la implementación del sistema, se usó una cámara digital con
la más alta tecnología de hoy en día con una resolución de 16
megapíxeles y zoom óptico de 83x que obtienen imágenes de alta
resolución. Las cuales son procesadas utilizando técnicas de
procesamiento de imágenes y redes neuronales convolucionales
contenidas en la herramienta Image Processing y Neural Network
de MATLAB, incluyendo sus librerías de Windows para crear una
interfaz amigable para el usuario, dicha interfaz presentará
las fases del agente patógeno. El sistema desarrollado presenta
un enfoque innovador porque incluye herramientas tecnológicas
de vanguardia y las condiciones agronómicas particulares de
las áreas de producción del estado de Colima. Los resultados
obtenidos mejoran las investigaciones previas al considerar la
identificación de las fases de la plaga utilizando
procesamiento de imágenes y técnicas de redes neuronales, estos
resultados pueden aplicarse a otras áreas de cultivo de Plátano
con condiciones de producción similares. Con este trabajo de
investigación se puede concluir que el uso de redes neuronales
contribuye en la detección de la Sigatoka negra, logrando con
ello que no se reproduzca en otros sectores del cultivo.

5
Abstract
Sigatoka is the most important banana disease worldwide. Its
name comes from the Sigatoka Valley in the Fiji Islands where
it was first identified in 1912. In this research, a system
was developed that processes images using convolutional neural
networks for the identification of the stages of black Sigatoka
in the banana crop called BSNet. This work is carried out in
sowing areas located in the municipality of Manzanillo, Colima.
In the implementation of the system, a digital camera was used
with the highest technology of today with a resolution of 16
megapixels and 83x optical zoom that obtain high-resolution
images. Which are processed using image processing techniques
and convolutional neural networks contained in the tool Image
Processing and Neural Network of MATLAB, including its Windows
libraries to create a user-friendly interface, this interface
will present the phases of the pathogen agent. The developed
system presents an innovative approach because it includes
state-of-the-art technological tools and the particular
agronomic conditions of the production areas of the state of
Colima. The results obtained improve previous investigations
when considering the identification of the phases of the pest
using image processing and neural network techniques, these
results can be applied to other banana growing areas with
similar production conditions. With this research work it can
be concluded that the use of neural networks contributes in
the detection of black Sigatoka, thus achieving that it does
not reproduce in other sectors of the crop.

6
Índice General

1. Introducción .......................................... 11
1.1. La naturaleza del problema ......................... 11
1.2. El contexto del problema ........................... 12
1.3. Revisión de la literatura .......................... 13
1.4. Planteamiento de la solución del problema a
investigar ............................................... 15
1.5. Justificación ...................................... 15
1.6. Motivación ......................................... 15
1.7. Objetivos .......................................... 15
1.7.1. Objetivo general ................................ 15
1.7.2. Objetivo específico ............................. 16
1.8. Metas .............................................. 16
1.9. Hipótesis .......................................... 16
1.10. Descripción de los métodos empleados.............. 16
1.11. Resumen de capítulos.............................. 16
2. Estado del Campo del Conocimiento ..................... 18
2.1. Marco Histórico .................................... 18
2.1.1. Cultivo de Plátano .............................. 18
2.1.2. Sigatoka negra .................................. 18
2.1.3. Visión computacional ............................ 20
2.1.4. Procesamiento de imágenes ....................... 20
2.1.5. Inteligencia artificial ......................... 21
2.1.6. Redes neuronales ................................ 21
2.1.7. Aprendizaje profundo ............................ 21
2.2. Marco Contextual ................................... 22
2.3. Marco Teórico ...................................... 31
2.3.1. Visión computacional ............................ 31
2.3.2. Procesamiento de imágenes ....................... 31
2.3.3. Inteligencia Artificial ......................... 31
2.3.4. Red neuronal .................................... 32

7
2.3.5. Aprendizaje profundo ............................ 33
2.3.6. Red neuronal convolucional ...................... 34
2.3.7. Lenguaje de programación ........................ 35
2.3.8. Programación web ................................ 35
2.3.9. MATLAB .......................................... 36
2.3.10. PHP ........................................... 36
2.3.11. MySQL ......................................... 37
2.3.12. CodeIgniter ................................... 38
3. Métodos Empleados ..................................... 39
3.1. Investigación preliminar ........................... 39
3.2. Descripción de la metodología ...................... 39
3.3. Hardware y software ................................ 40
3.3.1. Hardware ........................................ 40
3.3.2. Software ........................................ 42
3.4. Entrenamiento de CNN ............................... 42
3.5. Desarrollo de página web ........................... 44
4. Desarrollo del proyecto ............................... 45
4.1. Análisis del proyecto .............................. 45
4.1.1. Modelo Conceptual ............................... 45
4.1.2. Diagrama de Actividades ......................... 46
4.1.3. Modelo de Casos de Uso .......................... 47
4.1.4. Modelo de Requisitos ............................ 49
4.2. Diseño ............................................. 50
4.2.1. Modelo de clases ................................ 50
4.2.2. Modelo de datos ................................. 50
4.2.3. Diccionario de datos ............................ 51
4.2.4. Modelo de interfaces ............................ 52
4.2.5. Modelo de despliegue ............................ 54
4.3. Implementación ..................................... 55
4.3.1. Servidor local .................................. 55
4.3.2. Reentrenamiento de la CNN ....................... 58
4.3.3. Interfaz del Servidor e Interfaz Web ............ 58
4.4. Verificación y Validación .......................... 63

8
4.4.1. Pruebas de complejidad de McCabe ................ 63
4.4.2. Pruebas de tiempo de ejecución .................. 66
5. Resultados ............................................ 70
6. Conclusión y recomendación ............................ 72
Bibliografía ............................................... 73

Índice de Tablas y Figuras


TABLA 1: RENDIMIENTO DE DIFERENTES MODELOS CNN PARA LA IDENTIFICACIÓN DE
(PLANTA, ENFERMEDAD ) (FERENTINOS, 2018) ...................... 29
TABLA 2: CRONOGRAMA DE ACTIVIDADES. .............................. 40
TABLA 3: CAPAS DE LA CNN ALEXNET................................ 43
TABLA 4: DICCIONARIO DE DATOS DE LA TABLA “FASES”. ................. 51
TABLA 5: DICCIONARIO DE DATOS TABLA “CLASIFICACION ”. ................ 52
TABLA 6: OPCIONES DE ENTRENAMIENTO. .............................. 58
TABLA 7: RIESGO CON BASE A LA FUNCIÓN DE COMPLEJIDAD CICLOMÁTICA . ...... 64
TABLA 8: RESULTADOS PRUEBA DE COMPLEJIDAD DE MCCABE. ................ 64
TABLA 9: RESULTADOS DE LA PRUEBA DE COMPLEJIDAD DE MCCABE. ........... 65
TABLA 10: RESULTADOS DEL TIEMPO DE EJECUCIÓN DE LA INTERFAZ DE CLASIFICACIÓN.
........................................................ 67
TABLA 11: CONJUNTO DE IMÁGENES PARA REENTRENAMIENTO . ................ 70
TABLA 12: RESULTADOS DEL REENTRENAMIENTO. ......................... 70

FIGURA 1: FASES DE LA SIGATOKA NEGRA . ............................ 12


FIGURA 2: CICLO DE LA ENFERMEDAD (REBECCA S. & PHIL A., 2003) ...... 20
FIGURA 3: ESTRUCTURA DEL MODELO DE LA RED NEURONAL PARA LA PREDICCIÓN DEL PESO
DEL RACIMO EN PLANTAS DE PLÁTANO (SOARES ET AL ., 2014). .......... 23
FIGURA 4: SEGMENTACIÓN DEL PEPINO (VUKADINOVIC, POLDER, & SWINKELS, 2016).
........................................................ 24
FIGURA 5: BLOQUE DEL DIAGRAMA DE LA PARTE DE CLASIFICACIÓN BASADA EN EL
ESPECTRO DE TRANSMISIÓN DE LUZ (VUKADINOVIC , POLDER , & SWINKELS , 2016).
........................................................ 24
FIGURA 6: MODELO PIPELINE (GRINBLAT ET AL ., 2016). ................ 25
FIGURA 7: DIAGRAMA DE LA VERSIÓN DE TRES CAPAS DE LA CNN (GRINBLAT ET AL .,
2016). .................................................. 25
FIGURA 8: ESTRUCTURA DE LA RED NEURONAL CONVOLUCIONAL (LU ET AL., 2017).
........................................................ 26
FIGURA 9: ARQUITECTURA DE CNN PROPUESTA (PAOLETTI ET AL ., 2017)...... 27
FIGURA 10: IMÁGENES DE ENTRENAMIENTO. ............................ 27
FIGURA 11: ESTRUCTURA DE LA RED PROPUESTA (HE & ZHANG, 2018). ....... 28

9
FIGURA 12: EJEMPLOS DE CLASIFICACIÓN CORRECTA DE VARIAS IMÁGENES DEL CONJUNTO
DE DATOS DE PRUEBA (FERENTINOS , 2018). ........................ 29
FIGURA 13: ESQUEMA PROPUESTO PARA OBTENER UN SISTEMA EFICIENTE DE SENSORES
MULTIESPECTRALES (PARK ET AL ., 2018). ........................ 30
FIGURA 14: ARQUITECTURA DE LA CNN USADA PARA EL ENTRENAMIENTO (PARK ET AL.,
2018). .................................................. 30
FIGURA 15: ARQUITECTURA DE UNA RED NEURONAL (MCDONALD, 2017). ....... 33
FIGURA 16: RED NEURONAL CONVOLUCIONAL (MATHWORKS, 1947-2017). ...... 34
FIGURA 17: LENGUAJES DE PROGRAMACIÓN MÁS USADOS (DAIRLU, 2017). ..... 35
FIGURA 18: ENTORNO DE DESARROLLO DE MATLAB. ...................... 36
FIGURA 19: LENGUAJE PHP. ...................................... 37
FIGURA 20: ENTORNO DE MYSQL. .................................. 37
FIGURA 21: ESTRUCTURA DE CODEIGNITER (ELLIESLAB, 2018)............. 38
FIGURA 22: METODOLOGÍA XP (PRESSMAN, 2010). ..................... 39
FIGURA 23: IMAGEN DE LA LAPTOP UTILIZADA. ......................... 41
FIGURA 24: CÁMARA UTILIZADA . ................................... 41
FIGURA 25: ARQUITECTURA DE LA CNN ALEXNET (KRIZHEVSKY ET AL . 2012). .. 42
FIGURA 26: SITIO WEB. ........................................ 44
FIGURA 27: MODELO CONCEPTUAL .................................... 45
FIGURA 28: DIAGRAMA DE ACTIVIDADES “OPERADOR DE CÁMARA ”.............. 46
FIGURA 29: DIAGRAMA DE ACTIVIDAD DEL USUARIO “PRODUCTOR”. ............ 47
FIGURA 30: MODELO DE CASOS DE USO DEL SISTEMA . ..................... 48
FIGURA 31: MODELO DE REQUISITOS FUNCIONALES ........................ 49
FIGURA 32: MODELO DE REQUISITOS NO FUNCIONALES . .................... 49
FIGURA 33: MODELO DE CLASES . ................................... 50
FIGURA 34: MODELO DE DATOS DEL PROYECTO. .......................... 51
FIGURA 35: INTERFAZ DEL SISTEMA “MENÚ”. .......................... 53
FIGURA 36: INTERFAZ DEL SISTEMA “CLASIFICADOR ”..................... 53
FIGURA 37: INTERFAZ WEB DEL SISTEMA “GENERAR REPORTE”. .............. 54
FIGURA 38: MODELO DE DESPLIEGUE . ................................ 54
FIGURA 39: PANTALLA DE MATLAB “ADD-ONS”......................... 55
FIGURA 40: PANTALLA MATLAB “APPS -> GET MORE APPS ”. .............. 56
FIGURA 41: EXPLORADOR DE COMPLEMENTOS DE MATLAB. .................. 56
FIGURA 42: RED NEURONAL ALEXNET. ................................ 57
FIGURA 43: COMPROBACIÓN DE LA INSTALACIÓN DEL MODELO DE ALEXNET. ...... 57
FIGURA 44: GUIDE MATLAB. .................................... 59
FIGURA 45: INTERFAZ MENÚ PRINCIPAL DEL SISTEMA . .................... 59
FIGURA 46: INTERFAZ DEL CLASIFICADOR. ............................ 60
FIGURA 47: TABLA DE CLASIFICACIÓN . .............................. 60
FIGURA 48: TABLA CATÁLOGO DE FASES. .............................. 61
FIGURA 49: INTERFAZ WEB CREADA CON CODEIGNITER. ................... 62
FIGURA 50: CÓDIGO PARA LA CREACIÓN DEL REPORTE . .................... 62
FIGURA 51: INTERFAZ WEB PARA LA GENERACIÓN DE REPORTES . ............. 63
FIGURA 52: MATRIZ DE CONFUSIÓN . ................................. 71

10
1. Introducción
1.1. La naturaleza del problema

México es el décimo segundo productor a nivel mundial de


Plátano el cual se exporta a 34 países entre ellos Estados
Unidos, Guatemala, Países Bajos, España, Japón, Rusia, Corea
del Sur, Albania, Italia, Alemania, Canadá, Hong Kong, y
Bélgica, entre otros (SAGARPA, 2017).
El estado de Colima está en el cuarto puesto en producción de
Plátano a nivel nacional con una producción de 47,441 toneladas
al 31 de marzo de 2018. Manzanillo ocupa el 2° lugar de
obtención de Plátano a nivel estatal con 15,024 toneladas al
31 de marzo de 2018 (Servicio de Información Agroalimentaria y
Pesquera, 2018).
El problema radica en la disminución de la rentabilidad de la
producción de Plátano causada por plagas dentro de los
cultivos, algunas no son fáciles de identificar debido a la
necesidad de estudios de laboratorio. El nombre de “plaga”
denota la propagación de agentes biológicos nocivos, estas
plagas se pueden presentar de diferentes formas como en hongos,
bacterias y en su forma más general en insectos.
En el cultivo del Plátano específicamente existen plagas que
tienen una mayor incidencia y provocan un mayor daño a los
cultivos, las plagas como la Sigatoka negra que es causada por
el hongo Mycosphaerella fijiensis, la Sigatoka amarilla
originada por el hongo Mycosphaerella musicola, entre otras
plagas, son las más peligrosas para el cultivo del Plátano.
La Sigatoka negra es la enfermedad foliar que representa la
principal limitante en la producción de musáceas (Plátano y
banano) a nivel mundial. La enfermedad afecta el área foliar
fotosintética de la planta y, en consecuencia, los racimos y
los frutos tienen un menor peso en comparación con plantas
sanas. Adicionalmente, infecciones severas de la Sigatoka negra
causan la madurez prematura del fruto. El desarrollo de la
enfermedad se encuentra directamente influenciado por las
condiciones climáticas, susceptibilidad de la variedad
sembrada y manejo del cultivo (Álvarez, et al. 2013). En la
Fig. 1 se muestra una hoja con la plaga de la Sigatoka negra.

11
Figura 1: Fases de la Sigatoka negra.

Para realizar la identificación de las plagas se deben de


conocer las fases de las enfermedades que están presentes en
el cultivo, si el productor no conoce la plaga que está
afectando su cultivo, se ve con la necesidad de llamar a un
especialista en la materia para que él pueda identificar la
plaga y dé las instrucciones necesarias de cómo combatirla,
que métodos usar, para que en caso de que haya incidencia tomar
la mejor decisión de solución.
La Sigatoka negra es de las plagas más dañinas que afecta la
producción de Plátano (Fig. 1), en caso de no combatir esta
plaga la rentabilidad de los productores de Plátano disminuye
al punto de abandonar el área del cultivo.
1.2. El contexto del problema
En un artículo publicado por (Bhamare & Kulkarni, 2013)
desarrollaron una investigación para la detección de la
Sigatoka negra usando técnicas de procesamiento de imágenes,
las imágenes eran obtenidas con una cámara digital con un
mínimo de 6 megapíxeles, después de que obtuvieron la imagen,
esta era dividida en dos procesos, extracción del objeto y
extracción de características. En la extracción de objetos
realizan tres procesos los cuales son: la sustracción de fondo,
el filtrado y al final la segmentación. En la sección de

12
extracción de características calculaban los atributos de cada
región, según los conceptos de característica del dominio
(Color, forma y tamaño).
En el trabajo elaborado por Singh et al. (2016) desarrollaron
un trabajo en donde usaron clústeres de datos con las
características del espectro visual de la hoja (Red Green Blue,
RGB por sus siglas en Inglés) que lo convertían en
representación del espacio de color, saturación e intensidad
(Hue, Saturation, Intensity, HSI por sus siglas en inglés) y
algoritmos genéticos. Estos autores realizaron la comparación
del algoritmo propuesto con el algoritmo de clustering K-MEAN
y tuvieron un promedio de eficiencia 93.63% (algoritmo
propuesto) contra un 86.54% (K-MEAN). En el desarrollo de esta
investigación usaron la herramienta MATLAB.
1.3. Revisión de la literatura
En el estudio presentado por Sritarapipat, et al. (2014)
desarrollaron una investigación para la medición automática de
la altura de los cultivos de arroz utilizando un servidor de
campo y procesamiento digital de imágenes, en la provincia de
Suphanburi, Tailandia. Los componentes principales de esta
investigación fueron dos cámaras digitales SLR, con las cuales
obtenían imágenes en RGB para rojo (Red), verde (Green) y azul
(Blue). Las imágenes se almacenaron con una resolución de 720
x 480 pixeles con 24 bits a color y en formato JPEG. La técnica
que utilizaron fue utilizar una barra de marcación para poder
tener una referencia y así poder hacer el análisis, después
obtuvieron la imagen de las cámaras, posteriormente
seleccionaban una banda del RGB que ayudaba a reducir las
características innecesarias, posteriormente el filtrado que
mejoraba las características relevantes del problema, el umbral
fue usado para separar la barra marcadora de otras partes de
las imágenes, la detección de la barra marcadora era comparada
con una imagen inicial de la misma.
Kuncan y Ertnuç (2016) construyeron una máquina para la
clasificación (separación) de la aceituna basada en
procesamiento de imágenes, utilizaron tres tipos de algoritmos
para el procesamiento de imágenes, los algoritmos que usaron
fueron HSV (Tono, Saturación, Valor) para distinguir objetos
coloridos usando un método del modelo RGB.
Fan Zhang et al. (2011) desarrollaron un sistema de
clasificación basado en técnicas de procesamiento de imágenes

13
para inspeccionar y clasificar automáticamente las hojas de
tabaco curadas al aire. Este sistema utilizó la visión
artificial para la extracción y el análisis del color, el
tamaño, la forma y la textura de la superficie. La evaluación
exhaustiva difusa proporciona un alto nivel de confianza en la
toma de decisiones basada en la lógica difusa. La red neuronal
se usa para estimar y pronosticar la función de membresía de
las características de las hojas de tabaco en los conjuntos
difusos. Los resultados experimentales de la evaluación
integral fuzzy de dos niveles (FCE) muestran que la tasa de
precisión de la clasificación es de aproximadamente 94% para
las hojas de tabaco entrenadas, y la tasa de precisión de las
hojas de tabaco no entrenadas es de aproximadamente 72%.
Tewari et al. (2013), elaboraron una investigación para la
estimación de contenido de nitrógeno de la planta usando
procesamiento digital de imágenes, utilizaron una cámara de
5.1 mega pixeles para obtener la imágenes son un fondo negro
ya que así es más fácil la detección de la planta, en el
procesamiento de imágenes usaron el software MATLAB 7.0,
convertían las imágenes en el espectro RGB, después extraían
los componentes RGB y los segmentaban con la técnica OTSU y
nuevamente eran convertidas en tono, saturación e intensidad
(HIS, por sus siglas en inglés). Después de hacer la
segmentación obtenían los valores normalizados para “r”, “g” y
“b” y los transformaban en escala de grises para desarrollar
los histogramas y así poder estimar la cantidad de nitrógeno
en la planta. Las herramientas empleadas en esta investigación
están limitadas al cálculo de los valores del histograma.
Atencio et al. (2009), construyeron un modelo visual automático
para la clasificación y medida de calidad de fruto: caso
Mangifera Indica L, estos autores obtenían las imágenes con
una cámara digital con resolución de 1280 x 960 pixeles en
formato .jpg, las imágenes se almacenan en RGB para la fase de
segmentación, después usaron la técnica de filtrado de color y
aplicaron brillo y contraste ajustado con filtros Median y
Gauss. Estos algoritmos se desarrollaron en C++ usando la
librería OpenCV y C# con la librería Aforge. Sin embargo, esta
investigación se ve limitada por el uso de librerías que
requieren mayor esfuerzo para el desarrollo de los algoritmos.
Los trabajos de investigación mencionados anteriormente usaron
técnicas de procesamiento de imágenes las cuales se limitaban
en la revisión de la saturación del color para clasificar el

14
daño y decidir qué acciones preventivas realizar. Sin embargo,
ninguno de estos trabajos utiliza técnicas de redes neuronales
convolucionales que ayuden a obtener una mejor predicción de
la Sigatoka negra en el cual se centra esta investigación.
1.4. Planteamiento de la solución del problema a
investigar
En este trabajo de investigación se propone la identificación
de las fases de la Sigatoka negra en el cultivo del Plátano
usando técnicas de procesamiento de imágenes y redes neuronales
convolucionales (CNN), las imágenes serán obtenidas con una
cámara digital y serán almacenadas en una tarjeta SD,
posteriormente se procesarán en un equipo de cómputo. La cámara
que se usará para la toma de la fotografía es Nikon Coolpix
P900, que cuenta con las características siguientes: 16
megapíxeles y sensor de 1/2.3 pulgadas con la tecnología CMOS,
con un lente focal equivalente a f/2.8-6.5 y un zoom óptico de
83x.
1.5. Justificación
La implementación de un sistema para la detección de Sigatoka
negra en el cultivo de Plátano permitirá tener un mejor control
de la plaga. Esto otorgará a los agricultores tener una mayor
productividad tanto en cantidad como en calidad. El sistema a
desarrollar es aplicable a otros productores de Plátano sin
cambios considerables.
1.6. Motivación
El desarrollo de la presente tesis tiene como motivación
generar una herramienta tecnológica para la detección temprana
de las fases de la Sigatoka negra en el cultivo de Plátano,
con la finalidad de que los agricultores tengan una mayor
producción y evitar pérdidas considerables.
1.7. Objetivos
1.7.1. Objetivo general

Identificar las fases de la Sigatoka negra mediante el


procesamiento de imágenes digitales utilizando CNN.

15
1.7.2. Objetivos específicos
 Desarrollar un sistema que pueda aplicarse a las
plantaciones de Plátano en un contexto estatal,
nacional e internacional.
 Realizar las pruebas para asegurar que la operación del
sistema ofrezca los resultados esperados.
 Investigar las redes neuronales.
 Implementar una CNN para la identificación de las fases
de la Sigatoka negra.
1.8. Metas
 Identificar las fases de la Sigatoka negra a tiempo
para evitar su propagación y su disminución en la
producción de Plátano.
 En julio de 2018 quedará implantado el sistema para su
operación en la empresa.

1.9. Hipótesis
Con el uso de técnicas de inteligencia artificial (IA) se
pueden identificar las fases de la Sigatoka negra en el cultivo
del Plátano.
1.10. Descripción de los métodos empleados
Los métodos que se emplearon fue la obtención de información
del lugar donde se implantará el sistema, los requisitos
necesarios para el desarrollo del software, se usaron las
técnicas del procesamiento de imágenes y redes neuronales
reentrenando la CNN AlexNet con las fases de la Sigatoka negra
con la ayuda de la herramienta MATLAB, para poder hacer uso de
la CNN primero se redimensionaron las imágenes a las medidas
de 227x227, después se le aplicaron filtros (color, bordes,
manchas) y finalmente se realizan cálculos para obtener la
predicción de la imagen que se está analizando, también se
desarrolló una página web para la consulta del histórico de
las imágenes analizadas generando un reporte en formato PDF.
1.11. Resumen de capítulos
En el capítulo 1 se mostró la introducción a este trabajo de
tesis, se describió el trabajo relacionado, además se abordó
la solución del problema, los objetivos tanto el general como

16
los específicos fueron mencionados, se plasmaron las metas y
se planteó la hipótesis de investigación.
El capítulo 2 lo conforma el marco histórico, marco contextual
y marco teórico donde se muestra la historia de la llegada de
los plátanos a México, el surgimiento de la Sigatoka negra,
investigaciones realizadas por otros autores y el significado
de los conceptos que se utilizaron en esta investigación.
El capítulo 3 presenta los métodos que se emplearon en el
desarrollo de esta tesis.
En el capítulo 4 se llevó acabo el desarrollo de la tesis
incluyendo el análisis, diseño, implementación, verificación y
validación de la solución propuesta.
El capítulo 5 presentan los resultados del sistema de
clasificación.
El capítulo 6 se presenta la conclusión y trabajo futuro de
esta investigación.

17
2. Estado del Campo del Conocimiento

2.1. Marco Histórico


2.1.1. Cultivo de Plátano

De acuerdo con la (Secretaria de Agricultura, Ganadería,


Desarrollo Rural, Pesca y Alimentación, 2017) los Plátanos
provienen del sudeste asiático. Los comerciantes lo llevaron a
África Ecuatorial, a Guinea y a las islas Canarias. Con el
descubrimiento de América llegó a las zonas tropicales de
nuestro continente, donde se encuentran los países que producen
más Plátanos en el mundo (Brasil, Ecuador, Costa Rica,
Colombia, México y Panamá, entre otros).
Podemos decir que cualquier región del mundo que tenga un clima
cálido y húmedo es adecuada para producirlo. El Plátano es la
fruta tropical más cultivada y una de las cuatro más
importantes en términos globales, sólo por detrás de la uva,
los cítricos (naranja y limón) y la manzana (Secretaria de
Agricultura, Ganadería, Desarrollo Rural, Pesca y
Alimentación, 2017).
En México el término Plátano se usa tanto para los bananos como
para los Plátanos, pero en otros países se hace una distinción
con base a la manera de consumirlo; los bananos son los que se
consumen como fruta fresca y los Plátanos son los que se
consumen cocinados, por tener más harina (Garrido-Ramírez, et
al., 2011).
El Plátano es un fruto muy digerible y útil en la alimentación
de niños, deportistas y en pacientes de algunas enfermedades,
pues contiene: 74% de agua, 23% de carbohidratos (el almidón
es el principal carbohidrato), 1% de proteínas, 0.5% de grasa
sin colesterol y 2.6% de fibra; además, es rico en potasio,
calcio, fósforo y vitaminas A y B6, y su consumo es recomendado
a pacientes que sufren presión sanguínea alta (BELTRAN-GARCIA,
et al., 2009).
2.1.2. Sigatoka negra

La Sigatoka es la enfermedad del banano más importante a nivel


mundial. Su nombre viene del Valle de Sigatoka en las Islas
Fiji donde fue identificada por primera vez en 1912. Durante
los siguientes 40 años, la enfermedad se difundió a todos los
países productores de banano. La Sigatoka negra apareció en

18
América Central en 1934 (CropLife Latin America, 2018). La
Sigatoka negra fue detectada en México en 1980 y para el año
1989 llegó a la región de Colima, causando severos daños en
una superficie de 11,000 ha sembradas de Plátano, estas fueron
reducidas a tan solo 3,800 ha (Orozco, 2011).
Cabe destacar que el patógeno destruye rápidamente el tejido
foliar; como consecuencia se reduce la fotosíntesis y se afecta
el crecimiento de la planta y la producción. En ausencia de
medidas de control la enfermedad puede reducir hasta en un 50%
el peso del racimo y causar pérdidas del 100 % de la producción
debido al deterioro en la calidad del fruto (longitud y
grosor). Los síntomas iniciales son estrías casi
imperceptibles, llegando a los estados más avanzados con
síntomas de necrosis o quema del área foliar (CropLife Latin
America, 2018).
Factores bióticos y abióticos están estrechamente relacionados
en la epidemiología de M. fijiensis en la aparición de signos
y síntomas. Alta temperatura, humedad relativa y lluvias
favorecen el desarrollo de la enfermedad, incrementando la
severidad en las plantaciones. Corrientes de viento,
especialmente durante períodos de tormentas contribuyen en la
propagación a largas distancias. Otras condiciones como alta
densidad de siembra, fertilización inadecuada o impuntual,
falta de canales de drenaje, retraso en labores culturales como
deshoje, cirugías, nutrición y manejo de malezas se suman a
las condiciones climáticas haciendo más difícil el manejo de
la enfermedad. Como enfermedad policíclica, el patógeno (M.
fijiensis) se reproduce en forma asexual y sexual. La
reproducción asexual se presenta en lesiones jóvenes de la
enfermedad (estrías 2 y 3 y el primer estado de mancha). La
fase sexual, de mayor importancia en el desarrollo de la
enfermedad, se produce en las lesiones maduras, en estructuras
denominadas peritecios o pseudotecios, en cuyo interior se
encuentran las ascas que contienen las ascosporas (CropLife
Latin America, 2018).
La figura 2 muestra el ciclo de la enfermedad de la Sigatoka
negra.

19
Figura 2: Ciclo de la Enfermedad (Rebecca S. & Phil A., 2003)

2.1.3. Visión computacional

En 1960 Larry Roberts en su tesis de doctorado en el


Massachusetss Institute of Tehcnology (MIT), realizó la
investigación sobre las posibilidades de extraer información
geométrica 3D de vistas de bloques en perspectiva 2D, se le
atribuyó como el padre de la visión computacional (Huang,
1996).
2.1.4. Procesamiento de imágenes

Uno de los primeros lugares donde se empezó a realizar el


procesamiento digital de imágenes fue en el Jet Propulsion
Laboratory, en 1959, con el propósito de mejorar las imágenes
enviadas por los cohetes. Los resultados obtenidos en un tiempo
relativamente corto fueron tan impresionantes que muy pronto
se extendieron las aplicaciones del método a otros campos
(Malacara, 1997).

20
2.1.5. Inteligencia artificial

El primer trabajo reconocido como inteligencia artificial (IA)


fue elaborado por Warren McCulloch y Walter Pitts en 1943,
ellos recurrieron a tres fuentes las cuales fueron:
conocimiento de la fisiología básica y la función de las
neuronas en el cerebro; un análisis de la lógica proposicional
debido a Russell y Whitehead; y la teoría de computación de
Turing. Propusieron un modelo de neuronas artificiales en la
que cada neurona se caracterizaba por estar “encendida” o
“apagada”, con el interruptor en la posición de “encendida”,
ocurre una respuesta a la estimulación por un número suficiente
de neuronas vecinas. El estado “apagada” se concibió como
objetivamente equivalente a una proposición que propuso su
estimulo adecuado (Russell & Norvig, 2010).
2.1.6. Redes neuronales

En los años de formación de las redes neuronales (1943-1958)


varios investigadores se destacan por sus contribuciones
pioneras (Haykin, 2001):

 McCulloh y Pitts (1943) por introducir la idea de redes


neuronales como máquinas de computación.
 Hebb (1949) por postular la primera regla para el
aprendizaje auto organizado.
 Rosenblatt (1958) por proponer la Perceptron como primer
modelo para el aprendizaje supervisado.

2.1.7. Aprendizaje profundo

La historia de Deep Learning se remonta a 1943, cuando Walter


Pitts y Warren McCulloch crearon un modelo de computadora
basado en las redes neuronales del cerebro humano. Usaron una
combinación de algoritmos matemáticas que llamaron "lógica de
umbral" para imitar el proceso de pensamiento. Desde ese
momento, Deep Learning ha evolucionado constantemente, con solo
dos interrupciones significativas en su desarrollo. Ambos
estaban vinculados a los infames inviernos de IA (keith D.,
2017).
La primera CNN fue utilizada por Kunihiko Fukushima. Fukushima
diseñó redes neuronales con varias capas agrupadas y capas
convolucionales. En 1979, desarrolló una red neuronal
artificial, llamada Neocognitron, que utilizaba un diseño

21
jerárquico de varias capas. Este diseño permitió que la
computadora "aprenda" a reconocer patrones visuales. En 1989,
Yann LeCun brindó la primera demostración práctica de la red
Backpropagation en los Laboratorios Bell. Combinó CNN con
Backpropagation en dígitos de lectura "manuscrita". Este
sistema finalmente se usó para leer los números de cheques
escritos a mano (keith D., 2017).
El siguiente paso evolutivo significativo para Deep Learning
tuvo lugar en 1999, cuando las computadoras comenzaron a ser
más rápidas en el procesamiento de datos y se desarrollaron
GPU (unidades de procesamiento de gráficos). Procesamiento más
rápido, con GPU procesando imágenes, las velocidades
computacionales aumentaron 1000 veces. En 2009 Fei-fei Li, un
profesor en IA de Stanford lanzo ImageNet, armando una base de
datos con más de 14 millones de imágenes etiquetadas. El
internet es y está llena de imágenes sin etiqueta (keith D.,
2017).
En 2011, las velocidades de las GPUs tuvieron un incremento
significativo, haciendo posible el entrenamiento de CNN “sin”
el pre-entrenamiento de capa por capa. Un ejemplo es AlexNet,
una CNN cuya arquitectura gano varias competencias
internacionales durante 2011 y 2012. También en 2012, Google
Brain libero los resultados de un proyecto inusual conocido
como The Cat Experiment. El proyecto exploro las dificultades
del aprendizaje no supervisado. El aprendizaje profundo utiliza
el aprendizaje supervisado lo que significa que la CNN se
entrena usando datos etiquetados. Usando el aprendizaje no
supervisado, una CNN recibe datos no etiquetados y luego se le
pide que busque patrones recurrentes (keith D., 2017).
2.2. Marco Contextual

Soares et al. (2014), realizaron una comparación entre las


técnicas de redes neuronales y Regresión Lineal Múltiple (MLR)
en plantas de Plátano cv tropical. El experimento fue una
prueba de uniformidad, utilizando el cultivo tropical (YB42-
21), un híbrido tetraploide AAAB. Las características evaluadas
en dos ciclos de producción de fruta fueron: el rendimiento,
el peso del racimo, el número y longitud de las manos y las
frutas, el diámetro de la fruta y el número de hojas vivas en
la cosecha. Durante las evaluaciones cada planta fue
considerada como una unidad básica ocupando un área de 6 m 2,
en total fueron 360 unidades las que se estudiaron. Los
resultados que obtuvieron fue que la red neuronal demostró ser
22
más precisa al pronosticar el peso del racimo en comparación
con la regresión lineal múltiple.
En la figura 3 se muestra la estructura de del modelo de la
red neuronal para la predicción del peso del racimo en plantas
de Plátano, donde RW: es el peso del raquis, LS: la longitud
del tallo, DS: diámetro del tallo, WSH: peso de la segunda
mano, NHB; número de manos por racimo, NFB: número de frutas
por racimo, FW: peso de la fruta, LOF, longitud de la fruta,
DFR: diámetro de la fruta, NLL: número de hojas vivas y BW:
peso del racimo.

Figura 3: Estructura del modelo de la red neuronal para la predicción del


peso del racimo en plantas de Plátano (Soares et al., 2014).

Vukadinovic et al. (2016), presentaron un nuevo modelo para la


detección automatizada de pepinos infectados de Mycosphaerella
melonis. Utilizaron un método de dos pasos que consiste en el
uso de aprendizaje automático haciendo enfoque en la extracción
de características basadas en forma de imágenes a color del
pepino y en las características basadas en el espectro de

23
transmisión de luz. Los resultados que obtuvieron con la
detección automatizada la compararon con la detección manual
de los trabajadores, su método alcanzo un 95% de precisión en
la detección el cual es comparable con la detección manual con
una precisión del 96%.
En la figura 4 se muestra el primer paso que fue la segmentación
de pepino, en la imagen de la izquierda es una imagen RGB, la
del centro es con un filtro de verde excesivo y la final es la
segmentación del pepino producida por el umbral del verde
excesivo.

Figura 4: Segmentación del pepino (Vukadinovic, Polder, & Swinkels,


2016).

En la figura 5 se muestra el segundo paso que es la


clasificación basada en el espectro de transmisión de luz.

Figura 5: Bloque del diagrama de la parte de clasificación basada en el


espectro de transmisión de luz (Vukadinovic, Polder, & Swinkels, 2016).

24
En el trabajo publicado por Grinblat et al. (2016) propusieron
una red neuronal profunda para el problema de identificación
de plantas a partir de los patrones de venas foliares,
consideraron en clasificar tres diferentes especies de
legumbre: frijol blanco, frijol rojo y soya. Con la
introducción de la CNN evitan el uso de extractores de
funciones artesanales ya que es un estándar en la última
generación del pipeline, además aprovechan las significantes
mejoras de precisión del referido pipeline. Evaluaron modelos
que incrementaban las capas de 2 (1 convolucional y 1 softmax)
a 6 capas (5 convolucionales y 1 softmax).
En la figura 6 se muestra la adopción del modelo pipeline, en
el cual modificaron las etapas 3 y 4 por la CNN que propusieron.

Figura 6: Modelo pipeline (Grinblat et al., 2016).

En la figura 7 muestra el diagrama al CNN que utilizaron en su


trabajo, las primeras dos capas son convolucionales y al ultima
de softmax.

Figura 7: Diagrama de la versión de tres capas de la CNN (Grinblat et


al., 2016).

25
Lu et al. (2017), publicó un artículo titulado identificación
de enfermedades en el arroz usando CNN, en el cual proponen un
método novedoso basado en técnicas de CNNs, usando un conjunto
de datos de 500 imágenes de hojas de arroz (Sanas y dañadas) e
imágenes de tallos obtenidos del campo donde realizaron el
experimento, la CNN fue entrenada para identificar 10 plagas
comunes del arroz, la precisión del modelo basado en una CNN
tiene una precisión del 95.48% en la identificación de plagas
en el arroz.
En la figura 8 se presenta la estructura de la red neuronal
convolucional que utilizaron la cual contiene 1 capa de
entrada, 3 capas convolucionales, 3 de agrupación estocástica
y 1 capa de salida.

Figura 8: Estructura de la red neuronal convolucional (Lu et al., 2017).

En la investigación de Paoletti et al. (2017), desarrollaron


una nueva arquitectura de red neuronal para la clasificación
de imágenes hiperespectrales, la CNN propuesta en una red 3D
que la usan para ambos tipos de información espacial y
espectral, los resultados obtenidos indicaron que la red
propuesta tiene buen desempeño y es eficiente logrando una
reducción en el tiempo de computación e incrementando la
precisión en la clasificacion de imágenes hiperespectrales
comparados con otras técnicas tradicionales de red neuronal
artificial (ANN).
En la figura 9 se muestra la arquitectura de la red neuronal
propuesta que consiste en una capa de entrada, tres capas

26
convolucionales con activaciones no lineales (ReLU), dos de
agrupamiento máximo y cuatro capas completamente conectadas,
la última capa es la de salida en la cual obtienen el nombre
deseado de los datos de entrada.

Figura 9: Arquitectura de CNN propuesta (Paoletti et al., 2017).

En el artículo publicado por Escobar et al. (2017),


desarrollaron una investigación donde utilizaron la CNN AlexNet
de 23 capas donde predicen las hojas dañadas de hojas sanas en
plantas ornamentales, redimensionando las imágenes de las hojas
aun tamaño de 277x277x3, ya que, a ese tamaño trabaja la CNN,
reentrenaron la red con 75 imágenes de cada clase (Sanas y
Dañadas). En la Fig. 10 se muestra un conjunto de imágenes que
utilizaron para el reentrenamiento de la CNN.

Figura 10: Imágenes de entrenamiento.

En el artículo publicado por (He & Zhang, 2018) propusieron un


modelo que consiste en dos partes: una red binaria de
clasificación de emociones positivas o negativas y una red
profunda para especificar el reconociendo de emociones. Durante

27
el entrenamiento de la red, se introduce una estrategia de
aprendizaje asistido para aumentar el rendimiento del
reconocimiento, los resultados demostraron que la red que se
propuso es capaz de extraer características de nivel activo y
logra ganancias significativas en la precisión del
reconocimiento de emociones.
En la figura 11 se muestra la arquitectura de la red que se
propuso, en la parte de arriba usan el B-CNN, una red binaria
de clasificación positiva o negativa, y en la parte de abajo
utilizan E-CNN, una red VGG-16 para reconocimiento de emociones
especifica.

Figura 11: Estructura de la red propuesta (He & Zhang, 2018).

Ferentinos (2018), desarrolló modelos de redes neuronales


convolucionales para realizar la detección y el diagnóstico de
enfermedades de las plantas utilizando imágenes de hojas de
plantas sanas y enfermas, a través de metodologías de
aprendizaje profundo. El entrenamiento de los modelos fue
realizado con una base de datos de 87,848 imágenes la cual
contiene 25 plantas diferentes en un conjunto de 58 clases
distintas combinadas de plantas y enfermedades, incluidas
plantas sanas. Se entrenaron varias arquitecturas, el mejor
desempeño alcanzado con una taza de éxito del 99.53% en
identificar la combinación correspondiente (planta, enfermedad
o planta sana). Las cinco arquitecturas que utilizo fueron la:
AlexNet, AlexNetOWTBn, GoogLeNet, Overfeat y VGG.
En la tabla 1 se muestra los resultados de los entrenamientos
de los diferentes modelos de arquitecturas de CNN.

28
Tabla 1: Rendimiento de diferentes modelos CNN para la identificación de
(planta, enfermedad) (Ferentinos, 2018)

En la Fig. 12 se muestran los resultados de la clasificación


de varias imágenes del conjunto de datos de prueba.

Figura 12: Ejemplos de clasificación correcta de varias imágenes del


conjunto de datos de prueba (Ferentinos, 2018).

Park et al. (2018), realizaron un sistema para la clasificación


de las condiciones de la hoja de manzana en imágenes
hiperespectrales para el diagnóstico de la mancha de Marssonina
usando mínima redundancia y máxima relevancia (mRMR) y redes
neuronales profundas. Con las técnicas de mRMR escogieron las
bandas esenciales de imágenes hiperespectrales, adicionando
una red neuronal convolucional (CNN) para clasificar los datos
hiperespectrales con dimensiones reducidas seguido de una red
completamente conectada (FCN). La CNN extrae las
características significativas como el análisis de componentes
principales y la FCN clasifica las seis condiciones de la hoja
de la manzana: normal, joven, desnutrición, las etapas
tempranas y tarde de la mancha Marssosinina, y los
antecedentes. Encontraron cinco bandas espectrales esenciales
con las técnicas mRMR las cuales demostraron tener una mejor

29
precisión que la imagen RGB para la clasificación utilizando
la CNN.
En la figura 13 se muestra el esquema propuesto para obtener
un sistema eficiente de sensores hiperespectrales.

Figura 13: Esquema propuesto para obtener un sistema eficiente de


sensores multiespectrales (Park et al., 2018).

En la figura 14 se muestra la arquitectura de la red neuronal


convolucional que fue entrenada con 30,000 manchas.

Figura 14: Arquitectura de la CNN usada para el entrenamiento (Park et


al., 2018).

30
2.3. Marco Teórico
2.3.1. Visión computacional

Es un campo de la ciencia computacional que trabaja en


permitiendo a las computadoras de ver, identificar y procesar
imágenes en la misma forma que la visión humana lo hace y
después proporciona una apropiada salida. La visión
computacional esta cercanamente vinculada con IA (Techopedia,
2018).
El enfoque de visión computacional requiere poder realizar el
reconocimiento de objetos, el cual se puede subdividir en tres
tipos: clasificación de objetos, identificación y detección de
objetos los cuales son descritos por (Crawford, 2017) a
continuación:

 Clasificación de objetos: es donde se tienen varios


objetos previamente aprendidos los cuales se desean
poder reconocer en una imagen.
 Identificación de objetos: es el reconocimiento de una
instancia especifica de un objeto.
 Detección de objetos: es la habilidad de identificar
que objetos hay en la imagen.

2.3.2. Procesamiento de imágenes

El procesamiento de imágenes tiene como objetivo mejorar el


aspecto de las imágenes y hacer más evidentes en ellas ciertos
detalles que se desean hacer notar. Se puede en general hacer
por medio de métodos ópticos, o bien por medio de métodos
digitales, en una computadora (Malacara, 1997).
2.3.3. Inteligencia Artificial

la capacidad de una computadora digital o un robot controlado


por computadora para realizar tareas comúnmente asociadas con
seres inteligentes. El término se aplica con frecuencia al
proyecto de desarrollar sistemas dotados de los procesos
intelectuales característicos de los humanos, como la capacidad
de razonar, descubrir significado, generalizar o aprender de
la experiencia pasada (Copeland, 2018).

31
2.3.4. Red neuronal

Una red neuronal es un procesador distribuido masivamente


paralelo compuesto de unidades de procesamiento simples que
tiene una propensión natural para almacenar el conocimiento
experiencial y ponerlo a disposición para su uso. Se asemeja
al cerebro en dos aspectos (Haykin, 2001):
1. El conocimiento es adquirido por la red desde su
entorno a través de un proceso de aprendizaje (Haykin,
2001).
2. Las fuerzas de conexión interneuronales, conocidas
como pesos sinápticos, se usan para almacenar los
conocimientos adquiridos (Haykin, 2001).
La red neuronal artificial (ANNs, por sus siglas en inglés),
ha recibido una atención considerable debido a su poderosa
capacidad en procesamiento de imágenes, reconocimiento de voz,
procesamiento de lenguaje natural, etc. El rendimiento de los
modelos de una red neuronal depende de gran medida de la
cantidad y calidad de los datos, la potencia de cálculo y la
eficiencia de los algoritmos (Weipeng, et al. 2017).
La arquitectura de una red neuronal se compone de varias partes
(figura 15), la primera es la capa de entrada, después la capa
oculta y por último la capa de salida.
 Capa de entrada: en esta capa de modelo se muestran los
datos en su forma original (McDonald, 2017).

 Capa oculta: esta capa permite a la red neuronal crear


nuevas representaciones de los datos de entrada que
utiliza el modelo para aprender relaciones complejas y
abstractas entre los datos y las etiquetas. Cada capa
oculta se compone de neuronas, cada una representa un
valor escalar (McDonald, 2017).
 Capa de salida: es la capa final del modelo, en esta se
representa las probabilidades en las etiquetas (McDonald,
2017).

32
Figura 15: Arquitectura de una red neuronal (McDonald, 2017).

2.3.5. Aprendizaje profundo

El aprendizaje profundo (Deep Learning) es una técnica de


aprendizaje automático que enseña a las computadoras a hacer
lo que resulta natural para las personas: aprender mediante
ejemplos. El aprendizaje profundo es una tecnología clave
presente en los vehículos sin conductor que les permite
reconocer una señal de stop o distinguir entre un peatón y una
farola. Resulta fundamental para el control mediante voz en
dispositivos tales como teléfonos, tabletas, televisores y
altavoces manos libres. El aprendizaje profundo atrae mucha
atención últimamente, y hay razones de peso para ello. Está
consiguiendo resultados que antes no eran posibles (MathWorks,
1947-2017).
Ejemplos de Deep Learning en la práctica proporcionados por
(MathWorks, 1947-2017) son mencionados a continuación

 Conducción autónoma: Los investigadores del ámbito de la


automoción emplean el aprendizaje profundo para detectar
automáticamente objetos tales como señales de stop y
semáforos. Además, el aprendizaje profundo se utiliza para
detectar peatones, lo que contribuye a reducir los
accidentes.

 Sector aeroespacial y de defensa: El aprendizaje profundo


se utiliza para identificar objetos desde satélites que
localizan áreas de interés e identifican las zonas seguras
o no seguras para las tropas.

 Investigación médica: Los investigadores del cáncer


utilizan el aprendizaje profundo para detectar células
cancerígenas de forma automática. Algunos equipos de UCLA

33
han construido un microscopio avanzado que produce un
conjunto de datos multi-dimensional empleado para
entrenar una aplicación de aprendizaje profundo a fin de
identificar con precisión las células cancerígenas.

 Automatización industrial: El aprendizaje profundo está


ayudando a mejorar la seguridad de los trabajadores en
entornos con maquinaria pesada, gracias a la detección
automática de personas u objetos cuando se encuentran a
una distancia no segura de las máquinas.

 Electrónica (CES): El aprendizaje electrónico se usa en


la audición automatizada y la traducción del habla. Por
ejemplo, los dispositivos de asistencia doméstica que
responden a la voz y conocen sus preferencias se basan en
aplicaciones de aprendizaje profundo.

2.3.6. Red neuronal convolucional (CNN)

Una CNN, es un tipo habitual de arquitectura de aprendizaje


profundo. Las redes neuronales están organizadas en capas que
constan de una serie de nodos interconectados. Una CNN
convoluciona las características aprendidas con los datos de
entrada y emplea capas convolucionales 2D, lo cual hace que
esta arquitectura resulte adecuada para procesar datos 2D,
tales como imágenes. Las CNN eliminan la necesidad de
una extracción de características manual, por lo que no es
necesario identificar las características utilizadas para
clasificar las imágenes (MathWorks, 1947-2017).
En la figura 16 se muestra la estructura de una red neuronal
convolucional.

Figura 16: Red Neuronal Convolucional (MathWorks, 1947-2017).

34
2.3.7. Lenguaje de programación

El concepto de lenguaje de programación, surge a raíz del hecho


de contar con un código especial para introducir datos,
operación y procesos en la computadora. Sin embargo, la idea
principal detrás de todo programa computacional, como es la de
tener una forma de explicar y codificar un procedimiento o
algoritmo como estrategia de resolución de un problema dado
(Corrales Mora, 1994).
En la actualidad existe una diversidad de lenguajes de
programación, el cual, cada uno de ellos tienen
características, aplicación y propósito distinto. En la Fig.
17 se muestran los principales lenguajes de programación.

Figura 17: Lenguajes de programación más usados (DAIRLU, 2017).

2.3.8. Programación web

La programación de los sitios web es una de las disciplinas


dentro del mundo de Internet que más se ha desarrollado y no
deja de sorprender día a día con las posibilidades que abre y
genera, ya que no sólo consigue satisfacer necesidades que se
generan, sino que sin la generación de necesidades ofrecen
servicios a los usuarios que éstos no habían imaginado (ANIEL,
2018).

35
2.3.9. MATLAB

Matlab es un sistema de programación y cálculo basado en la


manipulación de matrices. El nombre mismo del sistema o paquete
de cómputo proviene de la abreviación MATriz LABoratory o
Laboratorio de Matrices. Por lo tanto, la filosofía detrás de
la computación por medio de este sistema es considerar a los
objetos (tanto matemáticos como gráficos) como matrices de
forma que podamos usar el álgebra matricial y otras propiedades
para ahorrar tiempo de cómputo (Zuñiga, 2008).
La Fig. 18 muestra el entorno de desarrollo de MATLAB.

Figura 18: Entorno de desarrollo de MATLAB.

2.3.10. PHP

PHP (acrónimo recursivo de PHP: Hypertext Preprocessor) es un


lenguaje de código abierto muy popular especialmente adecuado
para el desarrollo web y que puede ser incrustado en HTML (PHP,
2018).
La Fig. 19 muestra el lenguaje de PHP.

36
Figura 19: Lenguaje PHP.

2.3.11. MySQL

MySql es un manejador de bases de datos que se utiliza en


aplicaciones Web, es compatible con el popular lenguaje de
programación PHP y también con otros lenguajes.
La Fig. 20 muestra el administrador de base de datos MySQL.

Figura 20: Entorno de MySQL.

37
2.3.12. CodeIgniter

CodeIgniter es un poderoso framework de código abierto PHP con


una huella muy pequeña, creado por Rick Ellis en 2006. Fue
creado para ser un juego de herramientas simple y elegante, lo
que permite un rápido desarrollo de sitios web y aplicaciones
web (ElliesLab, 2018).
La Fig. 21 muestra la estructura del framework CodeIgniter.

Figura 21: Estructura de CodeIgniter (ElliesLab, 2018).

38
3. Métodos Empleados
En este capítulo se describe la metodología empleada para el
desarrollo de este proyecto de tesis.
3.1. Investigación preliminar

Se inició con una investigación en diversas fuentes de


información relacionada con la problemática planteada. Se
hizo una revisión de la literatura referente a procesamiento
de imágenes, redes neuronales, plagas en diferentes
cultivos, además de la recopilación de requerimientos del
usuario.
3.2. Descripción de la metodología

La metodología XP (Pressman, 2010) engloba un conjunto de


reglas y prácticas que ocurren en el contexto de cuatro
actividades estructurales que son: planeación, diseño,
codificación y pruebas. La figura 22 muestra la metodología
de programación extrema (eXtreme Programming, XP por sus
siglas en inglés).

Figura 22: Metodología XP (Pressman, 2010).

En la tabla 2 se muestra el cronograma para el desarrollo


del proyecto.

39
Tabla 2: Cronograma de actividades.

Fecha Fecha
Actividad Descripción
Inicio Termino
En esta actividad:
 Se investigarán todas las
publicaciones relacionadas,
Investigación las cuales sean de ayuda para
Ago-17 Sep-17
preliminar el desarrollo del proyecto.
 Se recopilarán los requisitos
por parte del usuario.

Se procederá a establecer el
Diseño de software Sep-17 Nov-17
modelo conceptual del software.
En esta actividad se entrenará la
Implementación del CNN con las muestras obtenidas
Nov-17 Abr-18
software del área donde se implantará el
sistema.
Puesta en marcha y Se pondrá en funcionamiento y se
Abr-18 Jun-18 aplicaran pruebas al sistema para
pruebas su adecuado funcionamiento.
En esta actividad se documentarán
Documentación Jun-18 Jul-18 las actividades del proyecto y el
proceso en que se realizaron.

3.3. Hardware y software


3.3.1. Hardware

El hardware que se utilizó para el desarrollo y entrenamiento


de la CNN de este proyecto fue una laptop y una cámara. A
continuación, se presentan las características de la laptop
(Fig. 23) y la cámara (Fig. 24).

 Laptop:
o Hewlett-Packard (HP)
o Zbook 15 G3
o Intel Core i7-6700HQ
o 8 GB de Ram
o 1 TB disco duro
o Nvidia Quadro M1000M 2GB GDDR5

40
Figura 23: Imagen de la laptop utilizada.

 Cámara:
o Nikon
o Coolpix P900
o 16 Megapíxeles CMOS
o Zoom óptico de 83x
o GPS, WI-FI y NFC
o Lente focal de f/2.8-6.5

Figura 24: Cámara utilizada.

41
3.3.2. Software

Los programas utilizados para el desarrollo de la aplicación


fueron:

 Sistema Operativo Windows 7


 MATLAB R2017b y sus ToolBox (Neural Network, Neural
Network model for AlexNet, Image Processing, Guide,
Database).
 Xampp (Servidor Apache).
 Framework CodeIgniter (PHP 7, HTML, Dompdf, CSS3).
 MySQL

3.4. Entrenamiento de CNN

MATLAB nos proporciona el modelo de la red neuronal


convolucional AlexNet del autor Krizhevsky et al.(2012). Esta
red neuronal fue entenada con conjunto de imágenes de alta
resolución llamada ImageNet.
La Fig. 25 muestra la arquitectura de la CNN AlexNet.

Figura 25: Arquitectura de la CNN AlexNet (Krizhevsky et al. 2012).

Para la implementación de este proyecto, se reentreno la CNN


AlexNet con un conjunto de 352 imágenes que corresponden a las
fases de la Sigatoka negra (Sanas, Grado 1, Grado 2, Grado 3 y
Grado 4).
Las imágenes se redimensionaron a un tamaño de 227x227, ya que
la red trabaja con ese tamaño para realizar el proceso de
entrenamiento. Las capas necesarias para realizar el proceso
fueron 25. La primera capa define las dimensiones de entrada,

42
seguido de una serie de capas convolucionales, intercaladas
con unidades lineales rectificadas (ReLU, por sus siglas en
inglés) y capas de agrupación máxima, después de estas capas,
3 capas son completamente conectadas. La última capa es la
clasificación y sus propiedades depende de la tarea de
clasificación (The Mathworks, Inc., 2017).
La tabla 3 muestra la arquitectura de la red neuronal
utilizada.
Tabla 3: Capas de la CNN AlexNet.

1 Image Input
2 Convolution
3 ReLU
4 Cross Channel Normalization
5 Max Pooling
6 Convolution
7 ReLU
8 Cross Channel Normalization
9 Max Pooling
10 Convolution
11 ReLU
12 Convolution
13 ReLU
14 Convolution
15 ReLU
16 Max Pooling
17 Fully Connected
18 ReLU
19 Dropout
20 Fully Connected
21 ReLU
22 Dropout
23 Fully Connected
24 Softmax
25 Classification Output

El reentrenamiento de la red neuronal requiere de una GPU con


capacidad de cómputo mayor de 3.0 y la tarjeta de video del
equipo que se usó cumple con ese requisito ya que tiene una
capacidad de 5.0.
Una vez redimensionadas las imágenes se separan en carpetas
con el nombre de cada fase de la Sigatoka negra para después
crear un conjunto de muestras para el entrenamiento de la CNN,

43
también se modifican las 3 últimas capas para que acepte las
fases de la plaga.
3.5. Desarrollo de página web

Para el desarrollo de la página web se usó el framework de PHP


llamado CodeIgniter, está basado en la arquitectura Modelo,
Vista, Controlador (MVC) y hace que los desarrollos de
aplicaciones web sean más sencillas de realizar.
La función de esta app web es para generar reportes en formato
pdf con la librería Dompdf de los análisis previamente
realizados consultando la base de datos donde esta almacenados
los registros de las muestras. En la Fig. 26 se muestra el
sitio WEB generado.

Figura 26: Sitio WEB.

44
4. Desarrollo del proyecto

4.1. Análisis del proyecto


En esta parte del desarrollo se describen las etapas
involucradas con el análisis como lo son el modelo conceptual
del sistema, diagramas de actividades, modelo de casos de uso
y el modelo de requisitos.
4.1.1. Modelo Conceptual

La Fig. 27 se muestra el modelo conceptual para la solución a


la problemática presentada en el capítulo 1.

Figura 27: Modelo conceptual.

El flujo que presenta el modelo conceptual consiste en dos


usuarios uno llamado operador de cámara y el segundo llamado
productor, el primer usuario es el encargado de tomar las
muestras para sus análisis de las plantas que decidan
monitorear, las imágenes obtenidas se extraen para
introducirlas una por una en el sistema de clasificación
desarrollado en MATLAB, cuando termina de hacer el análisis
entrega el resultado en pantalla con la fase de la plaga a la

45
que pertenece y guarda los resultados en una base de datos para
su posterior consulta, el productor visualiza los resultados y
puede generar los reportes que necesite.
4.1.2. Diagrama de Actividades

En esta parte se muestran los diagramas de actividades de los


usuarios que participan en el sistema (Fig. 28 y Fig. 29).
En la Fig. 28 se muestra el diagrama de actividad del usuario
que va a operar la cámara para la toma de nuevas muestras.

INICIO

NO
Verificar cámara

SI
¿La cámara funciona Tomar Muestras
adecuadamente?

Extraer muestras

FIN

Figura 28: Diagrama de actividades “Operador de cámara”.

La Fig. 29 se muestra el diagrama de actividad del productor,


el cual es el encargado de realizar los análisis con el sistema.

46
INICIO

¿Existen nuevas muestras?

SI

Insertar Muestras

NO
Realiza el análisis

SI
¿Detectó la plaga? Visualiza Resultados

SI
¿Generar reporte? Generar Reporte

NO
NO

FIN

Figura 29: Diagrama de actividad del usuario “Productor”.

4.1.3. Modelo de Casos de Uso

A continuación, se presenta el modelo de casos de uso del


sistema.

47
Sistema de Clasificación

Operar Cámara

«include»

Tomar muestras
(Imagenes)

Operador de Cámara
«precedes»

Ingresar muestras
al sistema

Realizar analisis
Visualizar
«include» resultados
Productor

Solicitar Reportes

Figura 30: Modelo de casos de uso del sistema.

La Fig. 30 muestra el modelo de casos de uso, los cuales


representan las actividades que podrá desempeñar cada usuario.
Los casos de uso se describen a continuación:
Operar Cámara: el objetivo de este caso de uso es la operación
de la cámara con la cual se tomarán nuevas muestras para su
análisis.
Tomar Muestras: este caso de uso es para la toma de muestras
(imágenes) con la cámara.
Ingresar muestras al sistema: el propósito de este caso de uso
es para que el usuario introduzca las muestras al sistema para
su clasificación.
Realizar análisis: este caso de uso es para que el usuario
pueda realizar el análisis de la muestra tomada.
Visualizar resultados: este caso de uso tiene como propósito
mostrar los resultados de la clasificación de la muestra
analizada.

48
Solicitar reportes: el propósito de este caso de uso es que el
usuario puede solicitar reportes de las clasificaciones
previas.
4.1.4. Modelo de Requisitos

En esta parte se presentan los modelos de requisitos


funcionales y no funcionales (Fig. 31 y Fig. 32).

RF.- Alimentacion RF.- Copia de


del sistema seguridad

RF.- BD de registros

Figura 31: Modelo de requisitos funcionales.

Alimentación del sistema: el sistema deberá se alimentado con


las nuevas muestras tomadas por la cámara para su análisis.
BD de registros: el sistema tendrá una base de datos en la cual
se almacenarán los resultados del análisis y se podrá realizar
reportes.
Copia de seguridad: el sistema deberá tener una copia de
seguridad.

RNF.- El RNF.- Correcta


sistema es prediccion
local

RNF.-
Administrador

RNF.- Serv idor

RNF.- Facil
manej o

Figura 32: Modelo de requisitos no funcionales.

El sistema es local: el sistema será de manera local.

49
Administrador: el sistema tendrá un administrador.
Servidor: el sistema contara con un servidor.
Fácil manejo: el sistema deberá de ser fácil de operar para
el usuario.

4.2. Diseño
4.2.1. Modelo de clases

En esta parte se presenta el modelo de clases (Fig. 33) que se


usó para el desarrollo del sistema de clasificación, consta de
dos tablas, la primera de ellas es un catálogo de las fases de
la Sigatoka negra y la segunda es donde se guardan los
resultados del análisis.

clasificacion
Fases
- direccion_imagen: char
- ID_Fase: int +id_fase +ID_Fase - fecha_clasificacion: int
- Nombre_fase: char - id_clasificacion: int
1 1 - id_fase: int
+ Registro(): int - latitud: int
- longitud: int

Figura 33: Modelo de clases.

Este modelo fue elaborado con la herramienta Enterprise


Architect.
4.2.2. Modelo de datos

En la figura 34 se muestra el modelo de datos que incluye las


tablas de la base datos que contiene el sistema.

50
Fases

«column»
*PK id_fase: INTEGER
* nombre_fase: VARCHAR(20)

«PK»
+ PK_Fase(INTEGER)

+PK_Fase

(id_fase = id_fase)
«FK»

+FK_Fases

Clasificacion

«column»
*PK id_clasificacion: INTEGER
*FK id_fase: INTEGER
* direccion_imagen: VARCHAR(250)
* fecha_clasificacion: TIMESTAMP
latitud: INTEGER
longitud: INTEGER

«FK»
+ FK_Fases(INTEGER)
«PK»
+ PK_Clasificacion(INTEGER)

Figura 34: Modelo de datos del proyecto.

4.2.3. Diccionario de datos

En las tablas 4 y 5 se muestra la descripción de las tablas de


la base de datos del sistema.
Tabla 4: Diccionario de datos de la tabla “Fases”.

Nombre: Fases
Descripción: Permite llevar el control de los datos de las plagas
registradas.
Llave primaria: Id_Fase
Valor PK
Nombre Tipo de Valor
Formato nulo Restricción o FK
propiedad dato default
(S/N) CK
auto
Id_fase Entero N PK
incrementable
Nombre_fase Cadena(20) N

51
Tabla 5: Diccionario de datos tabla “Clasificacion”.

Nombre: Clasificación
Descripción: Permite llevar el control de los datos de las clasificaciones realizadas.
Llave primaria: Id_Clasificacion
Valor PK
Tipo de Valor
Nombre propiedad Formato nulo Restricción o FK
dato default
(S/N) CK
auto
Id_Clasificacion Entero N PK
incrementable
Fases ->
Id_fase Entero N Restringido
-> Cascada
Fecha_Clasificaci AAAA/MM/DD
TIMESTAMP N
on HH-MM-SS
Dirección_imagen Cadena(250) N
Latitud Entero S
Longitud Entero S

4.2.4. Modelo de interfaces

A continuación, se presentan las interfaces que tendrá el


sistema para su análisis, los modelos fueron elaborados con la
herramienta Balsamiq Mockups.
En la Fig. 35 es la interfaz principal del sistema denominada
“Menú”, en la pantalla se muestran dos botones (Clasificador y
Generar Reporte), después un panel donde se muestra el último
análisis que se realizó, con las siguientes propiedades:
Clasificación, Fecha, Latitud y Longitud.
La figura 36 es la interfaz del clasificador donde se
realizarán los análisis de las nuevas muestras obtenidas de la
siembra, la pantalla contiene dos botones (Buscar imagen y
Menú), el botón de buscar imagen realiza la acción de abrir
una ventana para cargar la muestra, después realiza el análisis
y entrega el resultado mostrándolo debajo de la imagen que se
analizó.
La Fig. 37 es una interfaz web donde se podrán generar reportes
de los análisis que se realizaron, el reporte se genera en
formato PDF.

52
Figura 35: Interfaz del sistema “Menú”.

Figura 36: Interfaz del sistema “Clasificador”.

53
Figura 37: Interfaz web del sistema “Generar Reporte”.

4.2.5. Modelo de despliegue

La figura 38 muestra le modelo de despliegue, el sistema se


ejecutará en un servidor que podrá ser una computadora portátil
o de escritorio en donde se ejecutará el ambiente de MATLAB.

«device»
Serv idor

«executionEnvironment»
Matlab

Clasificacion de fases

Figura 38: Modelo de despliegue.

54
4.3. Implementación
En esta sección se explicará el proceso que se utilizó para
alcanzar el resultado en el reentrenamiento de la CNN AlexNet,
así como el modulo web para la generación de reportes.
4.3.1. Servidor local

En este módulo primero se tuvo que instalar el software de


MATLAB con todos sus complementos para generar las pantallas
del sistema y poder reentrenar la red neuronal AlexNet, se tuvo
que instalar el complemento desde la pantalla principal de
MATLAB en el icono llamado “Add-Ons” o desde pestaña “APPS ->
Get more apss”, como se muestra en las figuras 39 y 40.

Figura 39: Pantalla de MATLAB “Add-Ons”.

55
Figura 40: Pantalla MATLAB “APPS -> Get more apps”.

Al presionar cualquiera de las dos opciones se abre una ventana


que es el explorador de complementos de MATLAB, en la barra de
búsqueda colocamos AlexNet como en la Fig. 41.

Figura 41: Explorador de complementos de MATLAB.

Seleccionamos el que tiene de nombre “Neural Network Toolbox


Model for AlexNet Network”, se procede a instalar, para

56
comprobar que el modelo ya está instalado escribimos en la
consola de MATLAB “alexnet”, como en la Fig. 42 y Fig. 43.

Figura 42: Red neuronal AlexNet.

Figura 43: Comprobación de la instalación del Modelo de AlexNet.

57
4.3.2. Reentrenamiento de la CNN

Para dar paso para el reentrenamiento de la red primero


cargamos el modelo, modificamos la capa 1 para que acepte las
medidas de las imágenes, se modifican las capas 23, 24 y 25
para que acepten las 5 clasificaciones (Sanas, Grado 1, Grado
2, Grado 3, Grado 4), se crea un conjunto de datos con las
direcciones de las carpetas donde están almacenadas las
imágenes, se establecen las opciones de entrenamiento y se
procede a reentrenar la red neuronal.
Si en el reentrenamiento no obtenemos los resultados esperados,
se modifican las opciones de entrenamiento hasta lograr el
resultado deseado, una vez obtenido el resultado probamos la
red neuronal con las imágenes de prueba.
Las opciones de entrenamiento que se utilizaron para el
reentrenado de la CNN se muestran en la tabla 6.
Tabla 6: Opciones de entrenamiento.

Mini Taza inicial de


Método de entrenamiento Épocas
lote aprendizaje
Gradiente descendente
estocástico con 20 64 0.001
momentum

4.3.3. Interfaz del Servidor e Interfaz Web

Una vez obtenida la CNN reentrenada, proseguimos con el


desarrollo de las aplicaciones tanto la de escritorio como la
web.
Para el desarrollo de las interfaces se realizaron unos
bosquejos con el software Balsamiq Mockups como se muestran en
las figuras 35, 36, 37 del apartado 4.2.4.
MATLAB cuenta con una herramienta para generar interfaces
gráficas, para hacer uso de esta herramienta lo invocamos con
la palabra “guide”, esta acción abre una ventana para escoger
que tipo de plantilla se quiere usar. Como se muestra en la
Fig. 44.

58
Figura 44: Guide MATLAB.

Una vez seleccionada la plantilla se procedió a colocar los


componentes establecidos por los bosquejos, mostrando los
resultados en las figuras 45 y 46.

Figura 45: Interfaz menú principal del sistema.

59
Figura 46: Interfaz del clasificador.

Para guardar los resultados de los análisis se necesitó una


base de datos la cual fue creada en el gestor MySQL, el cual
fue generado por la herramienta Enterprise Architect con el
modelo de datos de la sección 4.2.2. En las Figuras 47 y 48 se
muestra el código para la base de datos.

Figura 47: Tabla de Clasificación.

60
Figura 48: Tabla catálogo de fases.

Una vez obtenida la aplicación del servidor y la base de datos,


se procedió a desarrollar la aplicación web, en la cual se
generar los reportes solicitados de los análisis.
Primero se instaló el software “XAMPP” el cual contiene el
servidor apache y el lenguaje de “PHP”, después se descarga el
framework “CodeIgniter” y usando el editor “Visual Studio Code”
(VSCode) se modifica y genera nuevo código para generar la
vista del de acuerdo a los bosquejos establecidos en la sección
4.2.4, dentro del mismo framework se hizo el controlador el
cual es el encargado de realizar la comunicación entre vistas
y enviar parámetros a los modelos para poder realizar las
consultas a la base de dtaos, una vez obtenidos los datos de
la base se genera un reporte en formato PDF empleando la
librería Dompdf. Como se muestra en la Fig. 49 y Fig. 50.

61
Figura 49: Interfaz WEB creada con CodeIgniter.

Figura 50: Código para la creación del reporte.

El resultado de la codificación es la generación de la


aplicación WEB, como se muestra en la Fig. 51.

62
Figura 51: Interfaz WEB para la generación de reportes.

4.4. Verificación y Validación

4.4.1. Pruebas de complejidad de McCabe

La medida de complejidad se enfoca en la toma de medidas y


control del número de rutas de un programa (McCabe, 1976).
La complejidad ciclomática de McCabe es una métrica de calidad
del software que cuantifica la complejidad de un programa. La
complejidad se deduce al medir el número de caminos linealmente
independientes a través del programa. Cuanto mayor sea el
número, más complejo será el código (Chambers & Associates Pty
Ltd, 2018).
La prueba de complejidad de McCabe tiene una formula donde el
número ciclomático 𝑉(𝐺 ) de un grafo 𝐺 con 𝑛 vértices, 𝑒 bordes
y 𝑝 son los componentes conectados.
𝑣(𝐺 ) = 𝑒 − 𝑛 + 𝑝
La tabla 7 muestra el riesgo con base a la función de
complejidad ciclomática.

63
Tabla 7: Riesgo con base a la función de complejidad ciclomática.

Complejidad Probabilidad de
Evaluación de Riesgo
ciclomática mala corrección
Bajo riesgo, código
1 - 10 5%
comprobable
11 - 20 Riesgo moderado 10%
21 – 50 Alto riesgo 30%
Riesgo muy alto,
>50 40%
código no comprobable

MATLAB cuenta con una para medir la complejidad del programa


creado, esta prueba se ejecutó en los dos archivos que se
crearon. La tabla 8 muestra el resultado de la prueba de la
interfaz del menú principal y la tabla 9 el resultado de la
prueba de la interfaz donde se realizan las clasificaciones de
las fases de la Sigatoka negra.
Tabla 8: Resultados prueba de complejidad de McCabe.

Linea de código Resultado


L 1 (C 22-43) The McCabe complexity of 'SistemaDeClasificacion'
is 4.
L 52 (C 10-42) The McCabe complexity of
'SistemaDeClasificacion_OpeningFcn' is 1.
L 52 (C 53-61) Input argument 'eventdata' might be unused,
although a later one is used. Consider replacing
it by ~.
L 107 (C 22-53) The McCabe complexity of
'SistemaDeClasificacion_OutputFcn' is 1.
L 107 (C 55-61) Input argument 'hObject' might be unused,
although a later one is used. Consider replacing
it by ~.
L 107 (C 64-72) Input argument 'eventdata' might be unused,
although a later one is used. Consider replacing
it by ~.
L 118 (C 10-27) The function 'PushBMenu_Callback' might be
unused.
L 118 (C 10-27) The McCabe complexity of 'PushBMenu_Callback' is
1.
L 118 (C 29-35) Input argument 'hObject' might be unused. If this
is OK, consider replacing it by ~.
L 118 (C 38-46) Input argument 'eventdata' might be unused. If
this is OK, consider replacing it by ~.
L 118 (C 49-55) Input argument 'handles' might be unused. If this
is OK, consider replacing it by ~.
L 127 (C 10-30) The function 'PushBReporte_Callback' might be
unused.

64
L 127 (C 10-30) The McCabe complexity of 'PushBReporte_Callback'
is 1.
L 127 (C 32-38) Input argument 'hObject' might be unused. If this
is OK, consider replacing it by ~.
L 127 (C 41-49) Input argument 'eventdata' might be unused. If
this is OK, consider replacing it by ~.
L 127 (C 52-58) Input argument 'handles' might be unused. If this
is OK, consider replacing it by ~.
L 134 (C 10-31) The function 'editAnaliMenu_Callback' might be
unused.
L 134 (C 10-31) The McCabe complexity of 'editAnaliMenu_Callback'
is 1.
L 134 (C 33-39) Input argument 'hObject' might be unused. If this
is OK, consider replacing it by ~.
L 134 (C 42-50) Input argument 'eventdata' might be unused. If
this is OK, consider replacing it by ~.
L 134 (C 53-59) Input argument 'handles' might be unused. If this
is OK, consider replacing it by ~.
L 144 (C 10-32) The function 'editAnaliMenu_CreateFcn' might be
unused.
L 144 (C 10-32) The McCabe complexity of
'editAnaliMenu_CreateFcn' is 3.
L 144 (C 43-51) Input argument 'eventdata' might be unused. If
this is OK, consider replacing it by ~.
L 144 (C 54-60) Input argument 'handles' might be unused. If this
is OK, consider replacing it by ~.

Tabla 9: Resultados de la prueba de complejidad de McCabe.

Línea de código Resultado


L 1 (C 22-37) The McCabe complexity of 'interfazplatano2' is
4.
L 48 (C 10-36) The McCabe complexity of
'interfazplatano2_OpeningFcn' is 1.
L 48 (C 47-55) Input argument 'eventdata' might be unused,
although a later one is used. Consider replacing
it by ~.
L 66 (C 22-47) The McCabe complexity of
'interfazplatano2_OutputFcn' is 1.
L 66 (C 49-55) Input argument 'hObject' might be unused,
although a later one is used. Consider replacing
it by ~.
L 66 (C 58-66) Input argument 'eventdata' might be unused,
although a later one is used. Consider replacing
it by ~.
L 77 (C 10-28) The function 'buscarHoja_Callback' might be
unused.
L 77 (C 10-28) The McCabe complexity of 'buscarHoja_Callback'
is 9.

65
L 77 (C 30-36) Input argument 'hObject' might be unused,
although a later one is used. Consider replacing
it by ~.
L 77 (C 39-47) Input argument 'eventdata' might be unused,
although a later one is used. Consider replacing
it by ~.
L 84 (C 1-4) To avoid conflicts with functions on the path,
specify variables to load from file.
L 133 (C 17) Terminate statement with semicolon to suppress
output (in functions).
L 135 (C 17) Terminate statement with semicolon to suppress
output (in functions).
L 138 (C 18) Terminate statement with semicolon to suppress
output (in functions).
L 140 (C 18) Terminate statement with semicolon to suppress
output (in functions).
L 147 (C 9) Terminate statement with semicolon to suppress
output (in functions).
L 173 (C 10-34) The function 'InterfazBtnAtras_Callback' might
be unused.
L 173 (C 10-34) The McCabe complexity of
'InterfazBtnAtras_Callback' is 1.
L 173 (C 36-42) Input argument 'hObject' might be unused. If
this is OK, consider replacing it by ~.
L 173 (C 45-53) Input argument 'eventdata' might be unused. If
this is OK, consider replacing it by ~.
L 173 (C 56-62) Input argument 'handles' might be unused. If
this is OK, consider replacing it by ~.

De acuerdo a los resultados de las pruebas en la interfaz


principal tenemos como de complejidad de 3 y en la interfaz de
clasificación tiene una complejidad de 9, con base a estos
resultados y basándonos en la tabla 7 estamos con un nivel de
complejidad de bajo riesgo ya que los niveles de complejidad
están dentro de los parámetros establecidos.
4.4.2. Pruebas de tiempo de ejecución

El software MATLAB tiene una función llamada Run and Time que
sirve para medir el tiempo de ejecución de los módulos
desarrollados. La prueba se realizó con la interfaz de
clasificación ya que en ella se lleva un mayor proceso, el
tiempo total que tardo en desplegar la vista fue un total de
24 segundos. En la tabla 10 se muestra el resultado del tiempo
de ejecución de la interfaz de clasificación.

66
Tabla 10: Resultados del tiempo de ejecución de la interfaz de
clasificación.

67
68
69
5. Resultados
En la finalización del proyecto se reentrenó la red neuronal
para que identificara las fases de la Sigatoka negra, para
obtener estos resultados se pidió la captura de 1000 ejemplares
de cada fase para obtener una buena clasificación de las fases,
sin embargo, no se pudo obtener la cantidad y fases de deseadas
ya que para la toma de muestras de dos fases (Pizca y Estría)
es cuando la perilla (racimo de plátano) está mirando hacia el
cielo, en total se obtuvieron 402 imágenes tomando 352 de ellas
para entrenamiento y el resto para validación, como se muestra
en la tabla 11.
Tabla 11: Conjunto de imágenes para reentrenamiento.

Etiqueta Cantidad
Sanas 75
Grado 1 59
Grado 2 75
Grado 3 68
Grado 4 75

El resultado del entrenamiento con las opciones y las muestras


seleccionadas para el entrenamiento se pudo obtener el 100% de
precisión en la CNN como se muestra en la tabla 12.

Tabla 12: Resultados del reentrenamiento.

Tiempo Perdida Precisión


Taza de
Épocas Iteración transcurrido mini de mini-
aprendizaje
(segundos) lote lote
1 1 1.01 2.1156 21.88% 0.001
10 50 136.67 0.0298 100.00% 0.001
20 100 274.87 0.0037 100.00% 0.001

Al tener la CNN entrenada al 100% ya se puede incorporar a la


aplicación del servidor para la identificación de las fases de
la Sigatoka negra, al momento de cargar una imagen para su
clasificación la red de forma automática predecirá el daño y
se mostrará en pantalla, a la par de que almacenará el resultado
de la predicción en la base de datos.
Para finalizar con los resultados se realizó una validación
del entrenamiento creando una matriz de confusión con las fases

70
entrenadas y las fases de prueba (10 imágenes de cada fase)
como se muestra en la Fig. 52.

Figura 52: Matriz de confusión.

71
6. Conclusión y recomendación
Observando los resultados presentados previamente en esta
investigación queda de manifiesto que el uso de las técnicas
de inteligencia artificial (redes neuronales) representan
herramientas adecuadas para la predicción de datos no lineales,
dando por aceptada la hipótesis planteada en el capítulo 1.
En esta investigación se logró desarrollar una herramienta
basada en CNN para predecir las fases de la Sigatoka negra.
Para continuar este trabajo en lo futuro, se recopilarán las
1000 muestras de las fases de la Sigatoka negra que se
especificaron y reentrenar la red neuronal para una mejor
predicción en las fases de la plaga, además de realizar la
automatización y procesamiento de imágenes en tiempo real de
esta plaga y otras que afecten la rentabilidad del cultivo.

72
Bibliografía

ANIEL. (2018). Programación web. Obtenido de


http://www.aniel.es/desarrollo-web/programacion-web/
Atencio, P., Sánchez, G. T., & Branch, J. (Diciembre de 2009).
Modelo Visual Automatico para la Clasificación y Medida
de Calidad de Fruto: Caso Mangifera Indica L. Dyna,
76(160), 317-326.
Bhamare, S., & Kulkarni, S. (2013). Detection of Black Sigatoka
on Banana Tree using Image Processing Techniques. IOSR
Journal of Electronics and Communication Engineering
(IOSR-JECE), 60-65. Obtenido de www.iosrjournals.org
CENTER FOR MACHINE VISION AND SIGNAL ANALYSIS. (2011). Local
Binary Pattern (LBP). Obtenido de
http://www.cse.oulu.fi/wsgi/CMV/Research/LBP
Chambers & Associates Pty Ltd. (2018). McCabe Cyclomatic
Complexity. Obtenido de
http://www.chambers.com.au/glossary/mc_cabe_cyclomatic_c
omplexity.php
Comunicaciones AUGURA. (Junio de 2009). Guia: Identificacion y
manejo integrado de plagas en Banano y Platano Magdalena
y Urubá Colombia. ISBN 978-958-99167-0-4. Medellin,
Colombia.
Copeland, B. (2018). Artificial intelligence. Obtenido de
ENCYCLOPEDIA BRITANICA:
https://www.britannica.com/technology/artificial-
intelligence
Corrales Mora, M. (1994). Capítulo 7: Lenguajes y Computadoras.
En M. Corrales Mora, Lenguaje Logo III: Explorando la
programación (Primera ed., pág. 135). San José, Costa
Rica: EUNED. Obtenido de
https://books.google.com.mx/books?id=InF1lQGdJ5oC&pg=PA1
35&dq=concepto+de+lenguaje+de+programacion&hl=es-
419&sa=X&ved=0ahUKEwiCnv2wiJ3cAhURjq0KHargBVgQ6AEIKDAA#v
=onepage&q=concepto%20de%20lenguaje%20de%20programacion&
f=false

73
Crawford, C. (2017). Introduction to Computer Vision. Obtenido
de Algorithmia:
https://blog.algorithmia.com/introduction-computer-
vision/
CropLife Latin America. (2018). Sigatoka Negra. Obtenido de
Sigatoka Negra (Mycosphaerella Fijiensis):
https://www.croplifela.org/es/plagas/listado-de-
plagas/sigatoka-negra
D, K. F. (7 de Febrero de 2017). A Brief History of Deep
Learning. Obtenido de Dataversity:
http://www.dataversity.net/brief-history-deep-learning/
DAIRLU. (17 de Octubre de 2017). 50 LENGUAJES DE PROGRAMACIÓN
MÁS UTILIZADOS EN GITHUB. Obtenido de DAIRLU:
https://www.diarlu.com/lenguajes-de-programacion-mas-
usados/
ElliesLab. (2018). A Brief History. Obtenido de About
CodeIgniter: https://ellislab.com/codeigniter
Escobar Avalos, E., García Diaz, N., Verduzco Ramirez, J., &
García Andrade, J. (2017). Predicción de agentes patógenos
en plantas ornamentales utilizando redes neuronales.
Revista Tecnologías de la Información, 32-40.
Ferentinos, K. (2018). Deep learning models for plant disease
detection and diagnosis. Computers and Electronics in
Agriculture, 311-318.
doi:https://doi.org/10.1016/j.compag.2018.01.009
Foof and Agriculture Organization of the United Nations.
(2017). FAOSTAT. Obtenido de
http://www.fao.org/faostat/en/#compare
Grinblat, G., Uzal, L., Larese, M., & Granitto, P. (2016). Deep
learning for plant identification using vein
morphological patterns. Computers and Electronics in
Agriculture, 418-424.
doi:http://dx.doi.org/10.1016/j.compag.2016.07.003
Haykin, S. (2001). Neural Networks and Learning Machine.
Ontario: PEARSON Prentice Hall.
Haykin, S. (2001). Neural Networks and Learning Machine (3
ed.). Ontario: PEARSON Prentice Hall.

74
He, X., & Zhang, W. (2018). Emotion recognition by assisted
learning with convolutional neural networks.
Nuerocomputing, 187-194.
doi:10.1016/j.neucom.2018.02.073
Krizhevsky, A., Sutskever, I., & Hinton, G. (2012). ImageNet
Classification with Deep Convolutional Neural Networks.
Toronto.
López, A. J., J. S., Medina, M. Q., & Pérez, O. A. (Enero-Junio
de 2015). Diagnóstico de Cultivos Utilizando
Procesamiento Digital de Imágenes y Tecnologías de
Agricultura de Precisión. INGE CUC, 11(1), 63-71.
doi:http://dx.doi.org/10.17981/ingecuc.11.1.2015.06
Lu, Y., Yi, S., Zeng, N., Liu, Y., & Zhang, Y. (2017).
Identification of rice diseases using deep convolutional
neural networks. Neurocomputing, 378-384.
doi:http://dx.doi.org/10.1016/j.neucom.2017.06.023
M. K., & H. E. (2016). Olive separation machine based on image
processing. MECHANIKA, 22(5), 438-443.
doi:http://dx.doi.org/10.5755/j01.mech.22.5.13726
Malacara, D. (1997). ÓPTICA TRADICIONAL Y MODERNA.
PROCESAMIENTO DE IMÁGENES. Obtenido de
http://bibliotecadigital.ilce.edu.mx/sites/ciencia/volum
en2/ciencia3/084/htm/sec_9.htm
MathWorks. (1947-2017). Deep Learning (Aprendizaje profundo)
con MATLAB. Obtenido de
https://es.mathworks.com/discovery/deep-learning.html
MathWorks. (1947-2017). Deep Learning (Aprendizaje profundo)
con MATLAB. Obtenido de Deep Learning (Aprendizaje
profundo): https://es.mathworks.com/discovery/deep-
learning.html
McCabe, T. (1976). A Complexity Measure. IEEE TRANSACTIONS ON
SOFTWARE ENGINEERING, SE-2(4), 308-320. Obtenido de
http://www.literateprogramming.com/mccabe.pdf
McDonald, C. (21 de Diciembre de 2017). Machine learning
fundamentals (II): Neural networks. Obtenido de Towars
Data Science: https://towardsdatascience.com/machine-
learning-fundamentals-ii-neural-networks-f1e7b2cb3eef

75
Mora, J. S., Hurtado, D. A., & Sandoval, O. R. (Enero-Junio de
2016). Monitoreo Preliminar de Incidencía de Fisiopatías
en Cultivos de Fresa Usando Procesamiento Digital de
Imágenes. Biotecnología en el Sector Agropecuario y
Agroindustrial, 14(1), 45-52. doi:10.18684/BSAA
Orozco, M. S. (2011). Musalac. Obtenido de Sigatoka Neghra:
Situacion Actual en America Latina y el Caribe, Amenazas
y Desafios de Control: http://banana-
networks.org/musalac/files/2015/09/3-M-Orozco-Sigatoka-
Negra-en-America-Latina.pdf
Paoletti, M., Haut, J., Plaza, J., & Plaza, A. (2017). A new
deep convolutional neural network for fast hyperspectral
image classficiation. ISPRS Journal of Photogrammetry and
Remote Sensing.
doi:https://doi.org/10.1016/j.isprsjprs.2017.11.021
Park, K., Hong, Y., Kim, G., & Lee, J. (2018). Classification
of apple leaf conditions in hyper-spectral images for
diagnosis of Marssonina blotch using mRMR and deep neural
network. Computers and Electronics in Agriculture, 179-
187. doi:https://doi.org/10.1016/j.compag.2018.02.025
PHP. (2018). ¿Qué es PHP? Obtenido de PHP:
http://php.net/manual/es/intro-whatis.php
Pressman, R. S. (2010). Ingenieria del Software. Un Enfoque
Practico (Septima ed.). Mexico: McGRAW-HILL
INTERAMERICANA EDITORES, S.A. DE C.V.
Russell, S., & Norvig, P. (2010). Artificial Intelligence A
Modern Approach. New Jersey: Pearson Education, Inc.
S, R. B., & A, P. A. (2003). Sigatoka negra bananeros y
plátaneros. Obtenido de American Phytopathological
Society:
https://www.apsnet.org/edcenter/intropp/lessons/fungi/as
comycetes/Pages/BlackSigatokaEspanol.aspx
S, T. H. (1996). Computer Vision: Evolution and Promise.
Obtenido de
https://cds.cern.ch/record/400313/files/p21.pdf
SAGARPA. (28 de Febrero de 2017). La producción de plátano
mexicano va en aumento. Obtenido de
https://www.gob.mx/sagarpa/articulos/la-produccion-de-
platano-mexicano-va-en-aumento

76
Secretaria de Agricultura, Ganaderia, Desarrollo Rural, Pesca
y Alimentacion. (5 de Septiembre de 2017). siaprendes.
Obtenido de Oro no es, plata no es:
http://siaprendes.siap.gob.mx/contenidos/2/04-
platano/contexto-1.html
Servicio de Información Agroalimentaria y Pesquera. (2018).
Avance de Siembras y Cosechas. Obtenido de Resumen
nacional por estado:
http://infosiap.siap.gob.mx:8080/agricola_siap_gobmx/Ava
nceNacionalCultivo.do
SIAP-SAGARPA. (2016). Estadística. Obtenido de
http://www.sagarpa.gob.mx/quienesomos/datosabiertos/siap
/Paginas/estadistica.aspx
Singh, V., & Misra, A. (2016). Detection of plant leaf diseases
using image segmentation and soft computing techniques.
INFORMATION PROCESSING IN AGRICULTURE. doi:
http://dx.doi.org/10.1016/j.inpa.2016.10.005
Soares, J., Pasqual, M., Lacerda, W., Silva, S., & Donato, S.
(2014). Comparison of techniques used in the prediction
of yield in banana plants. Scientia Horticulture, 84-90.
doi:http://dx.doi.org/10.1016/j.scienta.2013.12.012
Sritarapipat, T., Rakwatin, P., & Kasetkasem, T. (2014).
Automatic Rice Crop Height Measurement Using a Field
Server and Digital Image Processing. Sensors, 14, 900-
926. doi:10.3390/s140100900
Techopedia. (2018). Computer Vision. Obtenido de
https://www.techopedia.com/definition/32309/computer-
vision
Tewari, V., Arudra, A. K., Kumar, S. P., Pandey, V., & Chandel,
N. S. (Julio de 2013). Estimation of plant nitrogen
content using digital image processing. Agric Eng Int:
CIGR Journal, 15(2), 78-86.
The Mathworks, Inc. (2017). Image Category Classification Using
Deep Learning. Obtenido de
https://www.mathworks.com/help/vision/examples/image-
category-classification-using-deep-
learning.html?searchHighlight=image%20classification%20u
sing%20deep%20learning&s_tid=doc_srchtitle

77
Vukadinovic, D., Polder, G., & Swinkels, G.-J. (2016).
Automated Detection of Mycosphaerella Melonis Infected
Cucumber Fruits. IFAC-PapersOnLine, 105-109.
doi:10.1016/j.ifacol.2016.10.020
Zhang, F., & Zhang, X. (2011). Classification and Quality
Evaluation of Tobacco Leaves Based on Image Processingand
Fuzzy Comprehensive Evaluation. Sensors, 11, 2369-2384.
doi:10.3390/s110302369
Zuñiga, R. (2008). Introducción al uso de MATLAB. Obtenido de
http://www.geociencias.unam.mx/~bole/eboletin/Matlabintr
o0408.pdf

78

También podría gustarte