Boletín No. 64
1o. de enero de 2018
BASE DE DATOS DE FOTOGRAFÍAS AÉREAS ETIQUETADAS PARA EL RECONOCIMIENTO DE CACTUS
Cano Martínez Rafael1
Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
,
Mota Carrera Luis Cresencio1
Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
,
López Jiménez Efrén2
Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
,
Sánchez Acevedo Miguel Ángel1
Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
,
Herrera Lozada Juan Carlos2
Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
,
Vásquez Gomez Juan Irving3, 4
Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
,
1UNCA, 2CIDETEC, 3IPN, 4CONACYT
Resumen
En este documento se describe una base de datos de imágenes para el reconocimiento de cactus dentro de la reserva de la biósfera ubicada en el municipio de San Antonio Nanahuatipam, Oaxaca. Todo esto con el objetivo de etiquetar dichas imágenes obteniendo las coordenadas de ubicación de cada cactus en la imagen en conjunto con los datos de coordenadas x”, “y” y “radio”, en un archivo de texto para utilizar los datos y recortar las imágenes etiquetadas obteniendo así teniendo un cúmulo de cactus por fotografía etiquetada. A partir de 149 fotografías que fueron tomadas mediante un vehículo aéreo no tripulado (VANT) se generaron 17 mil ejemplos positivos de cactus Posteriormente utilizar las imágenes como dataset para realizar una red neuronal con aprendizaje supervisado.
I. Introducción
El reconocimiento de objetos de manera automática es de carácter importante para su implementación en diferentes campos de la investigación y el desarrollo tecnológico. Existen diferentes formas de implementar el aprendizaje, por ejemplo: aprendizaje supervisado y aprendizaje no supervisado. El primer enfoque, está relacionado por la forma de aprendizaje de un algoritmo a partir de un conjunto de datos de entrenamiento, puede considerarse como un maestro que supervisa o vigila un proceso de aprendizaje. Conocemos las respuestas correctas, el algoritmo realiza predicciones de forma iterativa sobre los datos de entrenamiento es corregido por el profesor. El aprendizaje se detiene cuando el algoritmo alcanza un nivel aceptable de rendimiento.
Por el otro lado se tiene el aprendizaje no supervisado y de manera general se define como el proceso de aprendizaje en donde sólo se tiene datos de entrada (X) y no hay variables de salida correspondientes. El objetivo del aprendizaje no supervisado es modelar la estructura o distribución subyacente en los datos para aprender más sobre los datos. A diferencia del algoritmo anterior en este caso no hay respuestas correctas y no hay profesor. Los algoritmos se dejan a sus propios dispositivos para descubrir y presentar la estructura interesante en los datos [6].
II. Objetivo
Generar una base datos con fotografías de cactus y archivos de texto con coordenadas de en donde se encuentran ubicados dichos cactus.
III. Metodología
Para sobrevolar el área a explorar se usó un vehículo aéreo Phantom 3 Advance, dado que cuenta con una cámara de una resolución de 12 megapíxeles y con ello se capturó las imágenes de los cactus en la reserva de la biósfera.
Para obtener el conjunto de datos de las fotografías es importante realizar dos cosas, primero se tiene que etiquetar todas las fotografías, es decir, que por cada fotografía se tiene que identificar los cactus que aparecen en la fotografía, esto mediante un archivo de texto que contiene las coordenadas del elemento a usar, donde el radio se considera entre el centro de la imagen al extremo de la misma; posteriormente se realiza la segmentación de las imágenes con cactus obteniendo los datos desde los archivos de texto y las fotografías originales (https://jivasquez.wordpress.com/research-projects/vigia/).
Algoritmos
Ahora, teniendo una cantidad de 249 fotografías a evaluar, se implementó dos algoritmos en Python 3.5.2, usando bibliotecas como OpenCV, Numpy, Tk y Os.
Etiquetado
Uno de los algoritmos, el primero consiste en el etiquetado de fotografías, donde las lee en un formato “.png”, para efectos de esta base están nombras numéricamente que van desde el “0070.txt” hasta el “0330.txt”, el algoritmo necesita que al mostrarse la figura seleccionada se pueda localizar los cactus visualmente y posteriormente con un clic en el punto más cercano del cactus, para que el archivo escriba en un archivo de texto (“cactus_file_name”, Fig. 1)
Figura 1. Archivos de texto de los cactus. |
Con las coordenadas del centro y la distancia que aproxima con respecto al centro y punto lejano (con formato x,y,z respectivamente), esto se debe realizar las veces que sea necesario, según la cantidad de cactus en la fotografía (Fig. 2).
Figura 2. Información contenida en los archivos de texto. |
Todos los archivos están contenidas en una carpeta que se llama “Cactus_Txt” y en otro directorio se tiene el conjunto de imágenes con etiqueta visibles en la carpeta “Cactus_Img”.
Segmentación de Imágenes
En este segundo algoritmo tiene como entradas la dirección de dos carpetas, la primera contiene los archivos de textos generados durante el etiquetado (“Cactus_Txt”) y la otra carpeta debe pertenecer al conjunto de imágenes que se etiquetó, es decir, las fotografías originales. Después de leer el archivo de texto en la carpeta “Cactus_Txt” y va partiendo las imágenes correspondientes, de acuerdo a los puntos en el archivo y guardándolas en una carpeta con nombre del archivo original, (Fig. 3).
Figura 3. Directorio de las imágenes. |
Y con un nombre que tiene el formato “cactus_file_name._part.jpg”, donde “part” es el índice de la partición que van desde 0 hasta el número total de puntos en el archivo de texto. (Fig.4)
Figura 4. Imágenes de cactus etiquetadas. |
En la siguiente imagen se muestra un ejemplo de la imagen original etiquetada, una vez hecha y entrenada la red neuronal lo que haría es el reconocimiento de los cactus (Fig. 5).
Figura 5. Etiquetado de las imágenes de cactus en su ecosistema natural. |
Base de datos
La base de datos contiene: las fotografías originales, archivos de texto, fotografías etiquetadas y fotografías de los cactus individuales, (Fig. 5)
Figura 6. Descripción de la base de datos. |
IV. Resultados
Los datos obtenidos durante todo el proceso etiquetado son:
- Archivos de texto que contienen información sobre la posición (en pixeles) de los cactus en las fotografías.
- Archivos de imágenes que contienen las etiquetas visualmente (círculos rojos).
- Conjunto de carpetas donde se encuentran las imágenes de los cactus recortados que se identificaron en las fotografías.
- Se tiene un total de más de 17 mil imágenes de cactus recortadas previamente.
V. Conclusión
Esta base de datos o dataset servirá para el entrenamiento de una red neuronal con Lenet-5 [5]. En un futuro se pretende reconocer y contabilizar los cactus que existen en la reserva de la biósfera Tehuacán-Cuicatlán para mantener un archivo estadístico de la vegetación de dicha área.
Referencias
- LeCun, Y., Bengio, Y., & Hinton, G. (2015) Deep Learning. Nature, 521(7553), 436-444
- Documentación oficial de OpenCv. Recuperado 18/09/17.
Página web: https://www.opencv.org - Documentación oficial de Python. Recuperado 18/09/17.
Página web: https://docs.python.org - Documentación oficial de Benchmark. Recuperado 14/11/17.
Página web: http://benchmark.ini.rub.de/?section=gtsrb&subsection=dataset - Y. LeCun, L. Bottou, Y. Bengio, and P. Haffner. (november 1998) Gradient-based learning applied to document recognition. Proceedings of the IEEE.
- Documentación oficial de Machinelearningmastery 14/11/17.
Página web: https://machinelearningmastery.com/supervised-and-unsupervised-machine-learning-algorithms/