Introducción
En nuestro post «Algoritmo de segmentación eficiente para la detección de insectos en trampas cromáticas» se presentó con detalle el método utilizado para la identificación de regiones de interés (ROIs) en imágenes de trampas cromáticas. Dichas ROIs se corresponden con áreas de la superficie de la trampa en las que es altamente probable que se haya quedado retenido un insecto (ver Figura 1). Esta tarea se realiza en un contexto altamente restrictivo ya que el algoritmo desarollado deberá desplegarse posteriormente en un dispositivo empotrado (Raspberry PI) con conectividad limitada y alimentado por un panel solar. Así, a los retos propios de la aplicación de visión por computador a la que nos enfrentábamos (superficie con brillos, ruido por partículas atrapadas, etc.) el método desarrollado debía tener en cuenta los requisitos no funcionales de eficiencia energética y precisión en el señalamiento de las ROIs.
Figura 1. Proceso de segmentación y extracción de ROIs en imágenes de trampas cromáticas.
En principio, las tareas de preprocesamiento y segmentación de la imagen capturada por la cámara se ejecutarían en la Raspberry PI, de forma que sólo se enviarán al servidor los recortes de las imágenes que contendrían potenciales insectos. Se cierra el círculo con la posterior identificación, dentro de las ROIs enviadasm de insectos pertenecientes a una determinada especie. Hay que recordar que el objetivo de nuestro sistema es la automatización de la labor de estimación de poblaciones de insectos que causan plagas, reduciendo los costes y tiempo de dicha tarea, contribuyendo a dar una respuesta más rápida y precisa en situaciones de riesgo potencial para nuestros cultivos.
Durante el resto de este post ofrecemos las principales conclusiones que hemos obtenido tras la evaluación de tres algoritmos de aprendizaje máquina supervisado – Support Vector Machine, Convolutional Neural Networks y Principal Component Analysis combinado con Ramdom Forest – que se han entrenado y aplicado para la detección de individuos pertenecientes a la especie bactrocea oleae o más comunmente mosca del olivo.
Materiales y métodos
Para este trabajo, se ha construido un dataset a partir de imágenes de trampas cromáticas tomadas en 4 explotaciones agrícolas distintas y en unas condiciones de iluminación desiguales. Empleando el proceso de segmentación explicado en este link, se han extraído un total de 3043 recortes sobre objetos de interés para su posterior clasificación. El objetivo es conseguir clasificar estos recortes en función de si corresponden a regiones donde aparece la mosca del olivo o no para poder obtener los índices de esta población por cada trampa. Para poder realizar el entrenamiento, estas imágenes deben ser etiquetadas previamente por un experto en el campo que sea capaz de discernir entre lo que es y no es mosca del olivo.
Así pues el conjunto de datos formado por 3043 imágenes, obtenemos 358 elementos de la clase positiva y 2685 de la clase negativa.
Figura 2. Ejemplos de clase positiva (arriba) y clase negativa (abajo) en el conjunto de datos
La Figura 2 muestra un ejemplo de recorte (arriba) donde aparece un ejemplar de mosca y tres recortes (abajo) donde no aparece ninguna mosca del olivo. Como se puede apreciar en el recorte de la parte superior de la imagen, al consistir en una región de un tamaño fijo (170×170 píxeles) pueden aparecer elementos externos. Estos elementos podrían influir en el proceso de aprendizaje para los diferentes métodos de aprendizaje máquina se se van a estudiar, al introducir ruido. Es algo que también evaluaremos. Por ello, a este conjunto inicial de recortes, se le aplica un proceso de extracción del fondo, dejando solamente la región que fue identificada como un objeto o componente (ver Figura 3). Este proceso es sencillo, ya que se aplica una máscara binaria que corresponde con la salida obtenida por la etapa de componentes conectadas de la etapa de preprocesamiento.
Figura 3. Ejemplos de recortes sin y con extracción de fondo. El objetivo es evaluar el posible impacto que pueda tener en los diferentes métodos de elementos ajenos al objeto a clasificar.
Poco más de 3000 imágenes no es un conjunto muy extenso para realizar un buen entrenamiento de un clasificador. Por ello, es necesario realizar un proceso de “data augmentation”. Por cada una de las imágenes del conjunto original se generan 6 imágenes nuevas, las cuales consisten en operaciones de rotación para 90º, 180º, 270º y 360º (sentido de las agujas del reloj) y 2 operaciones de espejo en el eje horizontal y vertical. Con este aumento de datos alcanzamos las 2872 imágenes para la clase positiva y las 21480 para la clase negativa. Estas imágenes de entrada tienen un tamaño de 170 pixeles de ancho por 170 pixeles de largo aunque, por motivos de recursos a la hora de evaluar los clasificadores, son reducidas a la mitad de tamaño; es decir, 85×85 píxeles.
Este conjunto de imágenes es normalizado, es decir, se recalculan los valores de todos sus píxeles para que se encuentren en un rango en punto flotante entre 0 y 1 en lugar de 0 y 255. La normalización de los datos antes de ser usados por los algoritmos de machine learning es una operación clave para evitar problemas en la calibración interna de estos algoritmos durante el entrenamiento, la cual podría ser alterada por valores anómalos.
A la hora de evaluar el rendimiento de los modelos se han analizado dos escenarios, cada uno con un conjunto de datos distinto: regiones con y sin la extracción del fondo.
En cuanto al entrenamiento, se han explorado diversas situaciones en las que se utiliza un conjunto de datos desbalanceado y balanceado. Entrenar con un conjunto de datos desbalanceado respeta la proporción de ejemplos que encontramos en las muestras reales. Se traduce en utilizar 18000 ejemplos de la clase negativa y 2800 de la positiva. En el caso de un conjunto de datos balanceado, el entrenamiento se ha realizado con 2800 instancias de cada clase. El objetivo es determinar si la calidad de la predicción mejora balanceando el conjunto de datos a pesar de tener menos muestras con las que entrenar.
Independientemente del conjunto de datos utilizado y su característica (balanceado versus no balanceado) éste es partido en una proporción de 80/20, destinado a los conjuntos de entrenamiento y de test respectivamente. El conjunto de entrenamiento, como su propio nombre indica, se destinará a entrenar el modelo para posteriormente realizar la predicción sobre el de test y evaluar los resultados.
El entrenamiento se realiza utilizando el método de validación cruzada, en el cual el propio conjunto de entrenamiento es dividido en 10 partes. De las diez partes se selecciona una como test y el resto se utilizan para entrenar. En la validación cruzada este proceso se realiza tantas veces como divisiones se le realicen al conjunto, de manera que el test se realice sobre una parte distinta cada vez.
De la predicción sobre el conjunto de test obtenemos las métricas de Accuracy, Precision, Recall y F1.
Para poder llegar a la construcción de un modelo con unos índices de acierto satisfactorios, se han evaluado distintas técnicas que vamos a explicar a continuación. Para algunos tipos de clasificadores, los modelos suelen comar como entradas una serie de características de la imagen, en lugar de los píxeles de la imagen en sí. En la extracción de características, un determinado algoritmo es el encargado de transformar las imágenes en una serie de estadísticas descriptivas de la misma. Estas estadísticas son pasadas a un modelo matemático que se encarga de determinar la pertenencia de esas estadísticas a una clase u a otra. Al utilizar las características de la imagen en lugar de la imagen en sí, estamos reduciendo la dimensionalidad del conjunto de entrada al modelo, con el consiguiente ahorro de tiempo y recursos tanto en el entrenamiento como en la clasificación en sí. Evaluaremos su impacto a través del análisis comparativo de los diferentes casos de uso seleccionados.
Para este trabajo se han utilizado bibliotecas y software correspondientes a los entornos Tensorflow y Scikit Learn. A continuación explicamos los tres modelos seleccionados de entre los múltiples evaluados que corresponden a: (1) Histogram of Oriented Gradients para la extracción de características combinado con un Support Vector Machine para la clasificación; (2) Redes Neuronales Convolucionales y; (3) Principal Components Analysis combinado con Random Forest.
HOG + SVM
HOG (Histogram of Oriented Gradientes) es un método para la obtención de descriptores o características que se usa ampliamente en aplicaciones de visión por computador y procesamiento de imagen. Este algoritmo se basa en la teoría de que la información de una imagen puede ser descrita y resumida por la distribución de los vectores gradiente calculados a partir de grupos de píxeles de la imagen. Este tipo de información es relevante cuando nos queremos quedar con la información que tiene sentido para distinguir formas, como es nuestro caso, descartando información no necesaria como el color, etc.
Para ello, la imagen se divide en pequeñas subregiones cuadradas llamadas celdas y, para todos los pixeles contenidos dentro de cada celda, se genera un histograma de vectores gradiente. El resultado final, o vector de características resultante, surge de la concatenación de todos y cada uno de estos histogramas individuales.
Para poder inferir conocimiento a partir de la información del histograma, uno de los métodos utilizado es el clasificador SVM (Support Vector Machines). A groso modo, un SVM es un modelo que representa los puntos de muestra en el espacio, tratando de separar los puntos de ambas clases mediante un hiperplano.
La función que computa el histograma de gradientes tiene diversos parámetros que pueden ser configurados. El primero de ellos es elegir el tamaño de la celda. Es decir, elegir el grupo de píxeles sobre el que se hará el cálculo de los vectores gradiente. Con el fin de ayudar en este proceso de selección, se realizaron una serie de pruebas para determinar, experimentalmente, cuál es el mejor valor. Teniendo en cuenta que el tamaño de la imagen de entrada es de 170×170 píxeles, se hicieron pruebas con 16 tamaños de celda diferentes, con valores de números de píxeles en filas y columnas dentro del conjunto {85,42,21,10) (este conjunto sería un resultado aproximado de dividir la imagen tanto vertical como horizontalmente por {2,4,8,16} respectivamente. Fruto de las pruebas se pudieron extraer conclusiones de cuál es el impacto tanto del tamaño como de la geometría de la celda, para nuestra aplicación. Por un lado, cuanto mayor es el tamaño de la celda, menos vectores de gradientes serán utilizados para representar la imagen. Por otro lado, cuanto menor es el tamaño de la celda, la información obtenida es menos sensible al ruido.
La Figura 4 muestra, de una manera gráfica, los resultados de precisión obtenidos tanto para el dataset en color como en blanco y negro, utilizando una combinación no balanceada de ejemplos positivos y negativos.
Figura 4. Precisión alcanzada para cada una de las 16 combinaciones de tamaño de celda para las dos versión del conjunto de imágenes: escala de grises (izquierda) y color (derecha).
Como se puede observar, la utilización de imágenes en color o blanco y negro no marca una diferencia significativa en cuanto al máximo porcentaje de acierto (precisión) obtenido en ambos casos (92,3% versus 92,5% a favor del conjunto de imágenes RGB). Sin embargo, el tamaño de celda sí afecta, siendo el menor (10×10 píxeles) el que obtiene mejores resultados debido probablemente a su robustez al ruido.
Así, para cada celda de la imagen (un total de 17×17 celdas) se obtienen 100 vectores de gradiente que son resumidos en un histograma de 9 conjuntos. Cada conjunto representa un intervalo de ángulos {0, 20, 40, 60 … 160} (se ha utilizado una aproximación de gradientes sin signo, tal y como se hace en detección de peatones) y cada gradiente puede contribuir de manera proporcional a dos conjuntos (o rangos de ángulos) dependiendo del valor de la dirección (por ejemplo, si el valor de la dirección es 10, contribuirá por igual al conjunto {0} y al conjunto {20}.
En resumen, de una imagen de entrada de 170×170 píxeles (28.900 valores en BN y 86.700 en RGB), pasamos a obtener 17x17x9 (2.601) valores o características que la representan. Estos valores o vector de características es la entrada al clasificador.
Para la parte de clasificación se ha utilizado el modelo SVC de la librería Scikit-Learn, seleccionando una búsqueda de tipo GridSearch y probando los siguientes parámetros:
- gamma: scale y auto.
- kernel: linear, rbf, poly y sigmoid.
La combinación que ha obtenido los mejores resultados (mostrados en la Figura 4) son: C ->1.0, class_weight -> balanced, gamma -> scale, kernel -> poly.
Las Tablas 1 y 2 muestras los resultados obtenidos para todas las métricas. Estos valores son los valores medios de todas las clasificaciones realizadas con todas las combinaciones resultantes del método de validación cruzada utilizado.
Tabla 1. Métricas de desempeño del método HOG+SVM para conjuntos de imágenes de entrada con balanceo de clases.
Tabla 2. Métricas de desempeño del método HOG+SVM para conjuntos de imágenes de entrada sin balanceo de clases.
Al final de este artículo se hará un análisis comparativo de los resultados en la sección de Discusión.
Redes Neuronales Convolucionales
Las redes neuronales convolucionales (o más brevemente CNN de sus siglas en inglés) son un tipo de redes de neuronales artificiales en las cuales se pretende emular el comportamiento de las neuronas de la corteza visual primaria de un cerebro humano.
En este trabajo se ha elegido LetNet-5 una de las arquitecturas de CNNs más populares. Lenet-5 es uno de los primeros modelos propuestos por Yann LeCun y otros autores en el año 1998, en el trabajo de investigación Gradient-Based Learning Applied to Document Recognition. Utilizaron esta arquitectura para reconocer los caracteres escritos a mano e impresos a máquina. La razón principal de la popularidad de este modelo es su arquitectura simple y sencilla. Esta simplicidad, aplicada al reconocimiento de imágenes, la hace atractiva para un entorno de cómputo restrictivo como es el planificado para el despliegue de nuestro sistema de identificación de la mosca del olivo.
Figura 5. Arquitectura de LetNet-5.
Todas las capas de Convolución utilizan un tamaño de kernel de 3×3 a la vez que una activación del tipo relu. Por otra parte, la reducción en la etapa de Max-Pool es de 2×2. Los hiper-parámetros del modelo se han configurado de la siguiente manera:
- optimizer : adam
- loss : binary_crossentropy
- metrics : accuracy
- epochs : 6
Cabe mencionar que se han realizado pruebas con redes neuronales con una arquitectura de capas más compleja. Se ha observado que, en estos casos, se ha producido un sobreaprendizaje, obteniendo peores resultados.
Las Tablas 3 y 4 muestran los resultados obtenidos para todas las métricas. Estos valores son los valores medios de todas las clasificaciones realizadas con todas las combinaciones resultantes del método de validación cruzada utilizado.
Tabla 3. Métricas de desempeño del método CNN (LeNet-5) para conjuntos de imágenes de entrada con balanceo de clases.
Tabla 4. Métricas de desempeño del método CNN (LeNet-5) para conjuntos de imágenes de entrada sin balanceo de clases.
En las Tablas 3 y 4 se puede observar que el modelo es sensible al conjunto de entrenamiento, teniendo especial impacto en las métricas Precision y Recall. Cuando la CNN se entrena con un conjunto de imágenes donde el número de ejemplos de clase negativa (no mosca) es predominante respecto a los ejemplos de clase positiva (mosca), se obtiene un mejor valor de Accuracy debido a la mayor probabilidad de que la clase de la imagen a clasificar sea «no mosca». Sin embargo, si observamos el resto de métricas, éstas son claramente favorables para el escenario de un entrenamiento con un conjunto equilibrado de imágenes. El impacto del formato de la imagen de entrada (esto es, BN versus RGB) no es significativo, aunque se puede apreciar una ligera inferioridad en la predicción para las imágenes en blanco y negro que para las imágenes a color. Esta diferencia es algo mayor, pero no mucho, en cuanto a la extracción o no del fondo que no forma parte de la ROI señaladda por el algoritmo de segmentación en la fase de preprocesamiento.
RGB/SIN FONDO | BN/SIN FONDO | ||
---|---|---|---|
RGB/CON FONDO | BN/CON FONDO | ||
Figura 6. Evolución de la precisión y la pérdida del modelo basado en CNN
Finalmente, en la Figura 6 se muestra cuál es la evolución en cuanto a la exactitud y pérdida (loss) del modelo a medida que el entrenamiento de la CNN avanza. El análisis de la gráfica nos permite determinar cuál es el instante en que se obtiene la mejor predicción con un error medio mínimo. Lo más interesante es ver cómo evolucionan ambos parámetros para el conjunto de test (línea naranja) y no el de entrenamiento, ya que en ese caso se está alimentando la CNN con ejemplos de clase que no participaron en la primera etapa. El resultado de este análisis es determinar el punto óptimo en ese proceso iterativo que es el ajuste del modelo ya que corremos el riesgo de que nuestra CNN sobreaprenda (overfitting) y no sea capaz de generalizar. Así, llegamos a la conclusión de que, tanto para el caso de imágenes de entrada con findo y sin fonddo, con 6 épocas (7 en algunos casos) se obtienen los mejores resultados. A partir de ese punto, si bien la exactitud del modelo crece (ligeramente, debido a la descompensación en el número de clases) la pérdida aumenta.
PCA + Random Forest
PCA (Principal Components Analysis) es otro método ampliamente utilizado en machine learning que tiene comoobjetivo reducir la complejidad (dimensional y volumen) de los conjuntos de datos que se utilizan para entrenar los diferentes modelos. Esta técnica consigue convertir un conjunto de variables correlacionadas en un conjunto de valores carentes de correlación lineal, a lo que llamamos componentes principales. Esto se hace mediante la construcción de un nuevo sistema de coordenadas para el conjunto de datos en el cual la varianza de mayor tamaño es capturada en el primer eje y así sucesivamente, asignando una dimensión extra a cada una de las varianzas de manera descendente. Esta transformación que lleva las antiguas coordenadas a las nuevas es precisamente la transformación lineal necesaria para reducir la dimensionalidad de los datos.
En este trabajo se ha empleado la implementación proporcionada por scikit learn. Se han realizado pruebas variando el % de covarianza mantenida por el número de dimensiones, así como el número de dimensiones restantes y cómo estas variaciones tienen un impacto en las métricas obtenidas por el modelo de predicción. Estas pruebas, además, se han realizado tanto para el conjunto de de imagen con/sin extracción del fonddo y RGB/escala de grises.
Estas pruebas reflejan las diferencias en la calidad de la clasificación de las muestras para el conjunto de datos de entrenamiento. A este conjunto de datos se le han aplicado diferentes reducciones en la varianza conservada de forma progresiva como muestran las tablas. Para evaluar el rendimiento del algoritmo Random Forest en la clasificación de cada uno de estos conjuntos de datos se han empleado las métricas de Accuracy, Precision, Recall y F1. Al igual que en los casos anteriores, se sigue una regla de 80/20 para la creación de los conjuntos de entrenamiento y test.
Tabla 5. Variación de las métricas de calidad del modelo de predicción en función dde la conservación de variabilidad. Conjunto de datos balanceado.
Tabla 6. Número de componentes conservadas en función de la reducción de variabilidad. Conjunto de datos balanceado.
Tabla 7. Variación de las métricas de calidad del modelo de predicción en función dde la conservación de variabilidad. Conjunto de datos no balanceado.
Tabla 8. Número de componentes conservadas en función de la reducción de variabilidad. Conjunto de no datos balanceado.
Las Tablas 5 a 8 recogen todos los datos generados para todas las combinaciones de parámetros. De manera resumida se puede concluir que el modelo se comporta de manera similar tanto para el conjunto de datos balanceado, como no balanceado. Ésta es una característica que diferencia el modelo PCA+Random Forest respecto de los métodos anteriores donde la influencia de la descomposación en el número de ejemplares de cada clase, jugaba en contra de la métrica F1 aunque favorecía la métrica de exactitud (Accuracy). En este sentido, es más estable y homogénea para todas las métricas obtenidas.
Podemos observar como para el conjunto de imágenes con el fondo, la reducción en el % de la varianza conservada hace que las dimensiones restantes decrezcan de una manera más rápida que para el conjunto de imágenes en las que se ha extraído el fondo.
Tomando como referencia la métrica F1 podemos observar cómo los resultados se mantienen muy parejos para las cuatro combinaciones, aunque parece destacar la combinación RGB/Sin Fondo de media. Sin embargo, los mejores valores se obtienen para el modelo que utiliza el conjunto de imágenes con fondo (se resaltan dichos valores en negrita en las Tablas 5 y 7). Pero, como se dice, la diferencia es muy poca.
Otra observación es que los máximos en cuanto a calidad de la predicción se obtienen en valores de reducción de PCA que se encuentran entre 0.75 y 0.5 (dependiendo del conjunto y método). Este comportamiento es interesante ya que supone, como se puede ver en las Tablas 9 y 10, una reducción dimensional importante lo que simplifica enormemente el árbol generado y, por lo tanto, el tiempo de inferencia y recursos necesarios.
El conjunto de datos tratado con PCA ha sido clasificado mediante un método RandomForestClassifier. La implementación usada es la de scikit learn en la cual los parámetros escogidos para el modelo han sido seleccionados en base a una búsqueda de tipo GridSearch tambien de la librería scikit learn. Los parámetros con los que se ha probado el modelo:
- criterion: gini, entropy.
- max_depth: None, 10, 100, 1000.
- min_samples_split: 2, 3, 5, 10.
- min_samples_leaf: 1, 2, 3, 5, 10.
- max_features: None, auto, sqrt, log2.
- n_estimators: 100, 500, 1000, 5000.
La combinación de parámetros con la que se obtienen los mejores resultados es la siguiente:
- criterion : entropy
- max_depth : None
- max_features : auto
- min_samples_leaf : 1
- min_samples_split : 3
- n_estimators : 100
Comparación de métodos y discusión
A continuación, recogemos en esta sección los mejores resultados obtenidos por cada uno de los modelos con los que se ha trabajado, y realizamos una comparación entre alternativas que nos permita extraer conclusiones acerca de las ideonidad o no de cada uno de ellos para el problema que se pretende solucionar en este trabajo (identificación de ejemplares de la mosca del olivo).
Las Tablas 9 y 10 resumen los mejores resultados obtenidos por los tres métodos evaluados para todas y cada una de las combinaciones de datos de entrada, 8 en total.
Tabla 9. Mejores resultados obtenidos por los tres métodos evaluados utilizando un conjunto de datos balanceado.
Tabla 10. Mejores resultados obtenidos por los tres métodos evaluados utilizando un conjunto de datos NO balanceado.
Como se puede observar en los resultados, el método PCA + Random Forest obtiene los mejores resultados. Sobre todo destaca su fiabilidad y estabilidad, comparado con los otros, para un conjunto de datos NO balanceado, donde HOG+SVM y CNN puedel alcanzar buenos valores de exactitud, pero desempeñan bastante peor en métricas como Precision (lo que impacta en F1 negativamente).
Para el conjunto de datos balanceado, la CNN tiene un excelente desempeño, muy próximo al ofrecido por PCA+Random Forest (aunque siempre por debajo), pero para un caso muy concreto que es la utilización de imágenes en escala de grises y SIN fondo.
En cuanto al conjunto de datos a utilizar para el entrenamiento y despliegue de los modelos se ha obtenido la conclusión de que trabajar con datos en escala de grises supone una mejora general para los tres. HOG + SVM y CNN comparten que los mejores resultados se obtienen con las imágenes segmentadas, mientras que en PCA + Random Forest ocurre lo contrario.
Sin lugar a dudas, el peor modelo por resultados y sensibilidad ante variaciones en el conjunto de datos de entrenamiento es el método HOG+SVM.
A continuación, y para terminar esta publicación, analizamos con mayor profundidad los mejores casos para los tres modelos.
MEJORES RESULTADOS SVM HOG
Los mejores resultados para este modelo se obtienen realizando el entrenamiento con el conjunto de datos balanceado y habiendo extraído el fondo de las imágenes. En cuanto al empleo de imágenes en RGB o escala de grises, los resultados son muy parecidos (aunque si hay que elegir, para escala de grises se obtienen unas décimas extra de precisión). Las pruebas realizadas muestran que este modelo resulta especialmente sensible al entrenamiento con imágenes con el fondo original, lo que parece indicar que afecta especialmente el ruido que representa la superficie de la trampa cromática y otros elementos que puedan aparecer. Además, los resultados sugieren que el empleo de un conjunto de datos no balanceado también parece provocar un fuerte sobre aprendizaje en el mismo.
Conjunto de datos de entrada: escala ded grises, balanceado y con extracción de fondo
Accuracy: 0.82 Precision: 0.90 Recall: 0.75 F1: 0.82
Figura 7. Matriz de confusión y curva ROC para el mejor caso del modelo HOG+SVM.
MEJORES RESULTADOS CNN
Los mejores resultados para este modelo se obtienen realizando el entrenamiento con el conjunto de datos balanceado, con extracción de fondo e imágenes en escala de grises. Las pruebas con el conjunto de datos desbalanceado muestran un ligero sobreaprendizaje de la red, con lo cual se produce un sesgo en la clasificación que se traduce en unos peores resultados sobre el conjunto de test. Las pruebas en el conjunto de datos balanceado muestran un mejor funcionamiento del modelo con el conjunto de imágenes a las que se haya extraído el fondo.
Conjunto de datos de entrada: escala ded grises, balanceado y con extracción de fondo
Accuracy: 0.90 Precision: 0.88 Recall: 0.93 F1: 0.91
Figura 8. Matriz de confusión y curva ROC para el mejor caso del modelo CNN.
MEJORES RESULTADOS RANDOM FOREST PCA
Los mejores resultados para este modelo se producen en las combinaciones del conjunto de datos desbalanceado y conservando el fondo, existiendo una pequeña diferencia prácticamente insignificante entre el empleo de imágenes RGB y en escala de grises. Por lo general la métrica F1 de este modelo oscila entre el 0.91 y el 0.96 para todas las configuraciones, por lo cual supera los resultados de los dos modelos anteriores. Al contrario que con SVM y CNN, este modelo parece incrementar su rendimiento cuanto mayor es el número de muestras con el que se le alimenta, indiferentemente si el conjunto de datos está balanceado o no.
Conjunto de datos de entrada: escala ded grises, NO balanceado y SIN extracción de fondo
Accuracy: 0.90 Precision: 0.88 Recall: 0.93 F1: 0.91
Figura 7. Matriz de confusión y curva ROC para el mejor caso del modelo PCA+Random Forest.