Clasificación de imágenes usando redes neuronales convolucionales
Resumen
La clasificación de imágenes de forma automatizada sigue siendo un problema abierto, es decir, no existe una solución al 100% fiable; al día de hoy se han trabajado diversas metodologías para resolver el problema. En los últimos años las redes neuronales convolucionales (CNN) han sido populares en el procesamiento de datos a gran escala y muchos trabajos han demostrado que son herramientas prometedoras en muchos campos, en especial, en la clasificación. En esta idónea comunicación de resultados se analiza, diseña y construye una nueva red neuronal convolucional para la clasificación de imágenes. Se seleccionan conjuntos de imágenes públicas y se separan para entrenamiento y prueba: con el primer conjunto se puede entrenar la red usando lotes de imágenes seleccionados de manera aleatoria; con el segundo conjunto de imágenes se valida el rendimiento. Las CNN están formadas por dos secciones: extracción de características y clasificación. La ventaja de la red diseñada es que la sección de extracción de características utiliza tres kernel de convolución distintos por donde ingresa una imagen. Después se utilizan capas totalmente conectadas para la clasificación. Al realizar los experimentos se muestra que la red desarrollada aumenta el rendimiento al utilizar tres secciones de extracción de características pero incrementa el tiempo de entrenamiento. La CNN se probó con tres conjuntos de imágenes y se hacen comparaciones contra las redes mundialmente conocidas como: AlexNet [2], GoogleNet [9] y ResNet 152 [10]. En pruebas la red diseñada proporcionó mejor precisión con los conjuntos de imágenes utilizados. Para esto se desarrolló un programa para generación de archivos tfrecord, utilizados principalmente para el entrenamiento de miles de imágenes, reduciendo el tiempo en el entrenamiento, también se utilizaron cuatro GPUs para el procesamiento de datos. Para poder utilizar las GPUs se ha tenido que implementar CUDA, se programó utilizando Python 2.7 y la librería TensorFlow.