21 jun. 2017

Inteligencia Artificial aplicada al análisis territorial


Las Infraestructuras de Datos Espaciales habilitan el acceso público y normalizado a gran cantidad y variedad de información mediante servicios interoperables y aplicaciones construidas en torno a ellos. Entre estos conjuntos de datos espaciales, uno de los más populares y recurrentes son las ortofotografías aéreas u ortofotos. Las ortofotos combinan disponibilidad, facilidad de interpretación y costes de producción contenidos. Por el contrario, han ofrecido tradicionalmente una capacidad de análisis automático inferior a conjuntos de datos espaciales de naturaleza vectorial como son las cartografías básicas o temáticas. En este sentido, su uso práctico mayoritario ha sido el de capa de referencia sobre la que, por ejemplo, digitalizar o realizar inspecciones visuales.

Los avances producidos durante los últimos años en el campo del aprendizaje automático (machine learning) junto con la disponibilidad gratuita de diversas plataformas para su desarrollo, hicieron que en el año 2016 iniciáramos en Grafcan una línea de investigación interna con el objetivo de evaluar la viabilidad y resultados de aplicar estas técnicas de inteligencia artificial a la extracción de conocimiento del territorio. En concreto, se planteó un proyecto de detección de cambios a partir de ortofotos de un mismo lugar y fechas diferentes. La detección de cambios, en sentido amplio, es aplicable a muchas actividades (actualización cartográfica, evolución de masas forestales, conocimiento de procesos de erosión, disciplina urbanística, seguimiento de infraestructuras…) y, por lo general, conlleva un proceso costoso. Este proyecto se centró en construcciones y vías de transporte.

La tecnología desarrollada en el proyecto integra la librería de código abierto TensorFlow, desarrollada por Google, para aprendizaje automático. El aprendizaje automático cubre un gran espectro de técnicas y herramientas que deben ser evaluadas en función del problema a resolver. En nuestro caso, empleamos redes neuronales convolucionales profundas que pertenecen a la rama conocida como aprendizaje profundo (deep learning).

Los trabajos para el desarrollo de aplicaciones con redes neuronales se agrupan y ordenan en cuatro fases: definición de la arquitectura de la red, preparación de patrones de entrenamiento, entrenamiento y validación, y puesta en producción.

La definición de la arquitectura de la red implica estudiar diferentes alternativas tecnológicas y seleccionar las configuraciones más adecuadas. Esta fase conlleva un importante componente de prueba y error para adecuar y ajustar la arquitectura al problema a resolver. En nuestro caso, se optó por una configuración de red que comprende un primer bloque basado en un subconjunto de la red VGG-16 que extrae características de las imágenes de entrada y un segundo bloque de capas encargado del control de cambios y su clasificación final. El número total de capas de la red es 22, de las cuales 20 son capas convolucionales y 2 son capas completamente conectadas (fully connected). El número de parámetros de la red es superior a los 36 millones.
            

Los patrones de entrenamiento son un aspecto crítico en la configuración del comportamiento de la red neuronal ya que constituyen la base de su aprendizaje. Para generar estos patrones partimos de la información histórica disponible sobre cambios ocurridos en el territorio canario. Como la información recopilada resultó insuficiente para entrenar adecuadamente una red de este tipo, se desarrollaron herramientas de generación manual (basadas en los servicios de IDECanarias), herramientas de aumento de datos (data augmentation) para generar patrones adicionales partiendo de los existentes mediante la aplicación de técnicas de procesamiento de imágenes (incorporación de ruido, recortes, rotaciones, transformaciones…) y herramientas de generación de patrones artificiales (mediante la superposición de elementos de interés sobre fondos que carecían de ellos).

Para la fase de entrenamiento y validación se generó un conjunto de datos de 90.000 patrones distribuidos en tres categorías: cambio de construcción, cambio de vía y ausencia de cambio. En una estación de trabajo dedicada y equipada con hardware específico (GPU) el entrenamiento ha tenido una duración aproximada de 18 horas. Este proceso de entrenamiento requiere un ajuste de los metaparámetros de la red para obtener resultados óptimos.

Los resultados de la red se evalúan mediante un conjunto de datos de prueba (test set) y otro de validación (validation set). Estos dos conjuntos están formados por patrones desconocidos por la red (no están incluidos en el entrenamiento) y sirven para evaluar el nivel de generalización que exhibe la red con datos «reales» del problema a resolver. La versión actual de la red (v27) presenta un porcentaje de acierto del 96,4 % sobre el conjunto de validación.

Para la puesta en producción de la red se ha desarrollado una aplicación que toma como entrada la url asociada a dos servicios WMS de ortofotos (de 25 cm/píxel en nuestro caso) y un distribuidor de hojas a partir del cual se comienzan a realizar peticiones a los servicios y ejecutar la detección de cambios. Los resultados georreferenciados se almacenan en formato GeoJSON y son fácilmente explotables. En términos de rendimiento, y como ejemplo, la detección de cambios sobre la isla de Lanzarote (845 km2) se llevó a cabo en 42 horas. 
              

Al resultado final se le aplica una supervisión de operador que, en caso necesario, incluye la generación de nuevos patrones de entrenamiento. Estos patrones se incorporan a posteriores reentrenamientos de la red que afinan su comportamiento. Este proceso de mejora continua ha permitido en las primeras semanas de trabajo que la red mejore su capacidad de discriminación y no señale como cambios en el territorio las diferencias producidas por niveles de marea y oleaje, sombras y cambios en superficies de cultivo.

Aunque el objeto de este proyecto han sido los cambios en construcciones y vías de transporte, las técnicas empleadas pueden ser extrapoladas a otros contextos y problemáticas en los que la combinación de inteligencia artificial e información espacial puede realizar contribuciones significativas a la Geomática.

Publicado por José Julio Rodrigo y Jorge Rosales.

No hay comentarios: