Articles

Instituto de Ingeniería de Software

Para ello, la Unidad de Innovación de Defensa (DIU) lanzó recientemente el Desafío de Detección xView 2018, que fue llevado a cabo por el Pentágono en colaboración con la Agencia Nacional de Inteligencia Geoespacial, para buscar usos innovadores de las técnicas de visión por ordenador para detectar con mayor precisión las imágenes en las imágenes de satélite. Como se describe en esta entrada del blog, trabajé con un equipo de investigadores en el desafío de xView que nos valió un quinto puesto. Esta actividad es nuestro último esfuerzo en el uso del aprendizaje automático y la inteligencia artificial para ayudar al gobierno federal en sus esfuerzos de HADR.

Aprendizaje profundo e imágenes de satélite

El escaneo de imágenes de satélite para detectar imágenes y edificios y otros objetos desde el espacio se ha convertido en una prioridad para el gobierno, pero a menudo es un proceso lento y minucioso llevado a cabo por los analistas que también introduce el potencial de error humano. Incluso con conjuntos de datos de alta resolución y clasificación, pueden surgir retos cuando los analistas se encuentran con problemas de almacenamiento, ancho de banda y memoria.

El estado del arte de la visión por ordenador vía satélite son las redes neuronales computacionales, que han sido eficaces en el razonamiento sobre imágenes de satélite. Mi primera incursión en este campo fue con el Desafío del Mapa Funcional del Mundo (FMOW) de IARPA. En colaboración con el Laboratorio de Física Aplicada de la Universidad John Hopkins, IARPA creó un conjunto de datos con más de un millón de imágenes de satélite multiespectrales de lugares de la superficie terrestre de más de 200 países. Cada imagen del conjunto de datos contenía al menos un ejemplo de una instalación u objeto terrestre que entraba en una de las 63 categorías (62 clases y 1 para la detección de falsos), como «instalación militar», «granero» o «obra de construcción».

Nuestro objetivo era ver si podíamos poner en marcha un prototipo funcional con una precisión razonable. Como se describe en un documento sobre nuestro trabajo, aplicamos varios enfoques de aprendizaje profundo utilizando muchos tipos de redes neuronales convolucionales:

Teníamos tres enfoques principales para FMOW:

1) Utilizar una red neuronal convolucional profunda (CNN) (con una arquitectura como DenseNet o RetinaNet) pre-entrenada en varios conjuntos de datos como un extractor de características de propósito general en tándem con una CNN superficial que aprendiera características específicas de las imágenes de satélite. Estos se combinarían utilizando capas totalmente conectadas y finalmente se obtendría un vector de longitud 63 softmax.

2) Entrenamiento de un conjunto de clasificadores binarios «uno contra todos»

3) Haciendo «trampa» y utilizando datos de validación que contuvieran detecciones falsas, podríamos entrenar una máquina de vectores de soporte (SVM) que aprendiera a diferenciar entre las detecciones falsas y los datos «reales», y luego utilizar el método 1 sólo en los datos reales.

Al final, nuestro primer método fue el más exitoso y fue la arquitectura del modelo que repetimos varias veces para ajustarlo al desafío.

Construyendo el Mapa Funcional del Mundo

Construyendo el Mapa Funcional del Mundo (FMoW), el desafío xView aplica la visión por ordenador a la creciente cantidad de imágenes disponibles del espacio para que podamos entender el mundo visual de nuevas maneras y abordar una serie de aplicaciones importantes. Al buscar algoritmos para automatizar potencialmente la visión por ordenador de las imágenes de satélite el Desafío xView proporciona a los competidores uno de los mayores conjuntos de datos disponibles públicamente de imágenes de satélite y les pide que

  • reduzcan la resolución mínima para la detección
  • mejoren la eficiencia del aprendizaje
  • permitan el descubrimiento de más clases de objetos
  • mejoren la detección de clases de grano fino

Además de mí, el equipo del Desafío xView incluía al 2do. Alex Fulton, estudiante de posgrado del Instituto de Tecnología de las Fuerzas Aéreas de Estados Unidos y del Instituto de Redes de Información de la Universidad Carnegie Mellon; y Kaylene Stocking, estudiante de grado de la Universidad de Pittsburgh.

El Desafío xView resultó ser una competición ideal para nuestro trabajo en el Centro de Tecnologías Emergentes del SEI, que se centra en la identificación, demostración, ampliación y aplicación de nuevas tecnologías para satisfacer las necesidades críticas del gobierno. Promovemos la concienciación del gobierno y el conocimiento de estas tecnologías emergentes y su aplicación, además de dar forma y aprovechar la investigación académica e industrial. El Desafío xView nos permitió explorar varios enfoques de la visión por ordenador que habíamos querido validar.

El resto del post, que es un extracto del informe técnico que presentamos como parte de nuestra participación en el desafío, destaca extractos de nuestro trabajo en el Desafío xView.

Limpieza de datos

El conjunto de datos de xView es grande -un millón de imágenes de objetos con 60 clases y una resolución de 0,3 metros- y está etiquetado utilizando anotaciones de origen colectivo para los cuadros delimitadores y las clases. El documento que DIUx incluyó para acompañar la publicación del conjunto de datos, xView: Objects in Context in Overhead Imagery, se comenta que las técnicas de recopilación aceptan por naturaleza un nivel de ruido en los datos.

En nuestro análisis, la cantidad de datos mal etiquetados y los recuadros delimitadores con ruido fueron lo suficientemente significativos como para afectar al entrenamiento general del modelo. Exploramos múltiples técnicas para limpiar los datos y finalmente decidimos que cualquier técnica que aplicáramos sería inviable dadas las limitaciones de calendario del desafío. Por lo tanto, decidimos aceptar cualquier pérdida de precisión que fuera resultado de los datos ruidosos.

Procesamiento de los datos a través de Chipping

Debido al tamaño de la imagen y a la densidad de los objetos, nos encontramos con desafíos al tratar de pasar toda la imagen a una red neuronal. Como se indica en el documento que presentamos con nuestro conjunto de datos, el modelo de referencia de xView intentó dividir cada imagen en mosaicos de menor tamaño mediante estrategias de astillado, utilizando múltiples tamaños de astillas de 300 px2, 400 px2 y 500 px2 en un modelo (multirres). Experimentamos con el enfoque multi-res, pero desestabilizó nuestro proceso de aprendizaje, por lo que nos quedamos con un tamaño de chip de 300 px2.

También experimentamos con una simple técnica de chipping superpuesto que implicaba la superposición de chips vecinos en una cantidad proporcional al tamaño del chip (50 por ciento), lo que proporcionó un aumento del 15 por ciento en la precisión de la detección y también demostró ser más factible para su uso con grandes imágenes de satélite.

Basamos nuestro razonamiento en el hecho de que la línea de base funcionaba significativamente más rápido que el límite de tiempo impuesto por la competición y en nuestra observación de que el rendimiento de la detección de objetos disminuía significativamente en las proximidades de los bordes de cada chip

Mejoramos el modelo aún más dejando que los objetos cercanos al centro del límite entre dos chips superpuestos fueran detectados por ambos chips. En lugar de contar dos veces las detecciones superpuestas, utilizamos primero la supresión no máxima para garantizar que sólo se emitiera la predicción más fiable.

Supresión no máxima

Encontramos casos en los que nuestros modelos emitían múltiples cuadros superpuestos sobre el mismo objeto, lo que conducía a una precisión media total más baja (mAP). Para solucionar este problema, utilizamos la supresión no máxima para mantener sólo la caja más grande, que se ajustaba suficientemente al objeto.

Aumento de datos

Aumentar la cantidad de datos disponibles mediante el aumento es una práctica común en la comunidad de visión por ordenador. Nuestro equipo experimentó con varias combinaciones aleatorias de aumentos por chip a múltiples épocas de entrenamiento para evaluar cómo se comportó nuestro modelo con variantes en los datos, incluyendo las siguientes:

  • inversiones horizontales
  • inversiones verticales
  • conversiones de RGP a espacio de grises
  • fluctuaciones de brillo
  • ajustes de contraste
  • distorsiones de tono
  • saturación ajustes
  • distorsiones de color
  • alteraciones de la caja delimitadora
  • cortes a una relación de aspecto fija
  • restas medias de canales
  • rotaciones

De estos aumentos, los giros horizontales, los giros verticales y los recortes a una relación de aspecto fija dieron como resultado el mayor aumento en la precisión del modelo y el mAP. Descartamos los demás aumentos, que dieron lugar a ganancias mínimas o negativas en el rendimiento.

Datos desequilibrados

Como se muestra en la tabla siguiente, el conjunto de datos proporcionado por xView estaba muy desequilibrado, lo que dio lugar a un proceso de aprendizaje sesgado que impidió que los modelos aprendieran representaciones precisas de clases poco comunes.

Tabla 1: Recuento de clases…

Cuento de clases

Edificio 287.074

Bus 6.316

Vehículo ferroviario 17

Un enfoque de muestreo aleatorio infrarrepresentaría gravemente la clase de vehículo ferroviario, por lo que utilizamos un enfoque de muestreo inversamente proporcional, en el que las fichas infrarrepresentadas se sobremuestrearon en su proporción inversa en el conjunto de datos. El sobremuestreo es un enfoque común y nos proporcionó una buena estabilidad de aprendizaje en las clases subrepresentadas.

Desarrollo de modelos personalizados

Para proporcionar un enfoque flexible, definido por la configuración -en lugar de escribir código para crear un modelo, editar un archivo de configuración, que sólo contiene parámetros, y ese archivo construirá automáticamente un modelo y lo entrenará- para crear modelos escalables, DIUx proporcionó una línea de base que se creó utilizando la API de detección de objetos de TensorFlow (TF-ODAPI).

También desarrollamos modelos personalizados utilizando TensorFlow y Keras para acomodar funciones de pérdida personalizadas, diferentes arquitecturas y varios tipos de preentrenamiento, tuvimos que buscar fuera de la API TF-OD.

En general, la API TF-OD nos permitió crear modelos funcionales y modificar varios parámetros y arquitecturas de modelos. Sin embargo, para construir funcionalidades que no están cubiertas por el caso de uso promedio, encontramos necesario profundizar en el código personalizado usando TensorFlow y Keras.

Dos de las arquitecturas más comunes para la localización y clasificación simultánea son el Detector de Disparos Múltiples (SSD) y You Only Look Once (YOLO). La TF-ODAPI proporciona funcionalidad para alterar los parámetros de ambas arquitecturas y funciona relativamente bien en el conjunto de datos.

También exploramos más allá de la TF-ODAPI y, utilizando TensorFlow y Keras, experimentamos con arquitecturas como Retinanet, Faster R-CNN, YOLOv3 y otros modelos personalizados. Finalmente, una variante de SSD nos proporcionó los mejores resultados. YOLO funcionó bien en términos de mAP cuando lo parametrizamos con un gran número de cajas de anclaje.

Figura 4: Matriz de confusión para SSD. Figura 5: Matriz de confusión para YOLO.

En las figuras 4 y 5 anteriores, es importante señalar los altos niveles de confusión intracategoría tanto en SSD como en YOLO. En particular, estos modelos pueden clasificar cosas como coche frente a edificio muy bien, pero dentro de las categorías tiene un rendimiento inferior al ideal. Esta limitación es una función del propio desafío, y está claro que no fue abordada eficazmente por nuestros enfoques.

Desafíos en el preentrenamiento

El preentrenamiento es un paso importante y necesario en el uso del aprendizaje profundo para lograr una mayor precisión de clasificación en imágenes de satélite. Nuestro equipo identificó un conjunto de datos paralelo llamado «DOTA: Un conjunto de datos a gran escala para la detección de objetos en imágenes aéreas» que proporcionaba 15 clases para localizar y clasificar sobre con cajas que no estaban alineadas con el eje, a diferencia de xView. Nuestro objetivo era aprender características generales sobre las clases de DOTA, y luego continuar el entrenamiento en xView con un vector de salida más grande para acomodar sus 60 clases y, con suerte, observar una gran ganancia en la precisión.

El pre-entrenamiento en DOTA, sin embargo, no fue un éxito. Aunque fuimos capaces de obtener mAPs tan altos como 0,75 en ese conjunto de datos, a menudo nos desempeñamos peor que la línea de base una vez que lo transferimos a xView. Sin embargo, observamos un aumento en nuestra puntuación F1. Como esa no era la métrica a batir, no seguimos esta línea de exploración. El preentrenamiento en un conjunto de datos más grande como ImageNet tampoco nos proporcionó ganancias en mAP.

Mirando hacia el futuro

El uso del aprendizaje profundo en imágenes satelitales no solo ayuda a identificar dónde están ocurriendo las crisis, sino que también ayuda a los rescatistas a salvar vidas humanas. Nuestro objetivo con xView era demostrar que es posible construir un prototipo muy grande en un tiempo relativamente pequeño para resolver los objetivos de la misión.

El éxito de nuestro enfoque fue validado por el sistema de puntuación del Desafío xView, que puntuó automáticamente las presentaciones en función de la precisión de la clasificación.

La DIU declaró en un reciente comunicado de prensa que ya había comenzado a probar los algoritmos ganadores del Desafío xView tras el huracán Florence, ayudando al personal de emergencia a identificar rápidamente las zonas inundadas y las carreteras intransitables.