Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tesis
Presenta:
Director de Tesis:
1
Agradecimientos
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
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
11
Figura 1: Fases de la Sigatoka negra.
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
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
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)
20
2.1.5. Inteligencia artificial
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
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.
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.
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.
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.
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.
28
Tabla 1: Rendimiento de diferentes modelos CNN para la identificación de
(planta, enfermedad) (Ferentinos, 2018)
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.
30
2.3. Marco Teórico
2.3.1. Visión computacional
31
2.3.4. Red neuronal
32
Figura 15: Arquitectura de una red neuronal (McDonald, 2017).
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.
34
2.3.7. Lenguaje de programación
35
2.3.9. MATLAB
2.3.10. PHP
36
Figura 19: Lenguaje PHP.
2.3.11. MySQL
37
2.3.12. CodeIgniter
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
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.
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
41
3.3.2. Software
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
43
también se modifican las 3 últimas capas para que acepte las
fases de la plaga.
3.5. Desarrollo de página web
44
4. Desarrollo del proyecto
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
INICIO
NO
Verificar cámara
SI
¿La cámara funciona Tomar Muestras
adecuadamente?
Extraer muestras
FIN
46
INICIO
SI
Insertar Muestras
NO
Realiza el análisis
SI
¿Detectó la plaga? Visualiza Resultados
SI
¿Generar reporte? Generar Reporte
NO
NO
FIN
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
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
RF.- BD de registros
RNF.-
Administrador
RNF.- Facil
manej o
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
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
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)
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
52
Figura 35: Interfaz del sistema “Menú”.
53
Figura 37: Interfaz web del sistema “Generar Reporte”.
«device»
Serv idor
«executionEnvironment»
Matlab
Clasificacion de fases
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
55
Figura 40: Pantalla MATLAB “APPS -> Get more apps”.
56
comprobar que el modelo ya está instalado escribimos en la
consola de MATLAB “alexnet”, como en la Fig. 42 y Fig. 43.
57
4.3.2. Reentrenamiento de la CNN
58
Figura 44: Guide MATLAB.
59
Figura 46: Interfaz del clasificador.
60
Figura 48: Tabla catálogo de fases.
61
Figura 49: Interfaz WEB creada con CodeIgniter.
62
Figura 51: Interfaz WEB para la generación de reportes.
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
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 ~.
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 ~.
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
70
entrenadas y las fases de prueba (10 imágenes de cada fase)
como se muestra en la Fig. 52.
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
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