Software Engineering Institute
À cette fin, l’unité d’innovation de la défense (DIU) a récemment lancé le défi de détection xView 2018, qui a été mené par le Pentagone en partenariat avec la National Geospatial-Intelligence Agency, afin de rechercher des utilisations innovantes des techniques de vision par ordinateur pour détecter plus précisément les images dans les images satellites. Comme décrit dans ce billet de blog, j’ai travaillé avec une équipe de chercheurs dans le cadre du défi xView qui nous a valu une cinquième place. Cette activité est notre dernier effort dans l’utilisation de l’apprentissage automatique et de l’intelligence artificielle pour aider le gouvernement fédéral dans ses efforts de HADR.
Deep Learning and Satellite Imagery
Le balayage des images satellites pour détecter les images et les bâtiments et autres objets depuis l’espace est devenu une priorité pour le gouvernement, mais c’est souvent un processus lent et minutieux entrepris par les analystes qui introduit également le potentiel d’erreur humaine. Même avec des ensembles de données et une classification à haute résolution, des défis peuvent surgir lorsque les analystes rencontrent des problèmes de stockage, de bande passante et de mémoire.
L’état de l’art de la vision par ordinateur via le satellite est constitué par les réseaux neuronaux computationnels, qui se sont avérés efficaces pour raisonner sur les images satellites. Ma première incursion dans ce domaine a eu lieu dans le cadre du Functional Map of the World (FMOW) Challenge de l’IARPA. En collaboration avec le laboratoire de physique appliquée de l’université John Hopkins, l’IARPA a créé un ensemble de données de plus d’un million d’images satellite multispectrales de sites à la surface de la terre provenant de plus de 200 pays. Chaque image de l’ensemble de données contenait au moins un exemple d’installation ou d’objet terrestre appartenant à l’une des 63 catégories (62 classes et 1 pour la fausse détection) telles que « installation militaire », « grange » ou « chantier de construction »
Notre objectif était de voir si nous pouvions mettre en place un prototype fonctionnel avec une précision raisonnable. Comme indiqué dans un article sur notre travail, nous avons appliqué plusieurs approches d’apprentissage profond en utilisant de nombreuses saveurs de réseaux neuronaux convolutifs :
Nous avions trois approches principales pour FMOW :
1) L’utilisation d’un réseau neuronal convolutif (CNN) profond (avec une architecture telle que DenseNet ou RetinaNet) pré-entraîné sur divers ensembles de données comme extracteur de caractéristiques à usage général en tandem avec un CNN peu profond qui a appris les caractéristiques spécifiques de l’imagerie satellitaire. Ceux-ci seraient combinés à l’aide de couches entièrement connectées et produiraient finalement un vecteur softmax de longueur 63.
2) Formation d’un ensemble de classificateurs binaires « un contre tous »
3) En « trichant » et en utilisant des données de validation qui contenaient de fausses détections, nous pourrions former une machine à vecteurs de support (SVM) qui a appris à différencier les fausses détections des « vraies » données, puis utiliser la méthode 1 uniquement sur les vraies données.
En fin de compte, notre première méthode a été la plus réussie et a constitué l’architecture du modèle sur laquelle nous avons itéré plusieurs fois afin de l’accorder pour le défi.
Construire à partir de la carte fonctionnelle du monde
Construire à partir de la carte fonctionnelle du monde (FMoW), le défi xView applique la vision par ordinateur à la quantité croissante d’imagerie disponible de l’espace afin que nous puissions comprendre le monde visuel de nouvelles façons et aborder une gamme d’applications importantes. En recherchant des algorithmes permettant d’automatiser potentiellement la vision par ordinateur des images satellites, le xView Challenge fournit aux concurrents l’un des plus grands ensembles de données d’imagerie satellitaire accessibles au public et leur demande de
- réduire la résolution minimale pour la détection
- améliorer l’efficacité de l’apprentissage
- permettre la découverte de plus de classes d’objets
- améliorer la détection de classes à grain fin
En plus de moi-même, l’équipe du xView Challenge comprenait le 2nd Lt. Alex Fulton, un étudiant diplômé de l’Institut de technologie de l’armée de l’air américaine et de l’Institut de mise en réseau de l’information de l’Université Carnegie Mellon ; et Kaylene Stocking, une étudiante de premier cycle de l’Université de Pittsburgh.
Le xView Challenge s’est avéré être une compétition idéale pour notre travail au sein du Centre des technologies émergentes du SEI, qui se concentre sur l’identification, la démonstration, l’extension et l’application de nouvelles technologies pour répondre aux besoins critiques du gouvernement. Nous encourageons le gouvernement à prendre conscience et à connaître ces technologies émergentes et leurs applications, en plus de façonner et d’exploiter la recherche universitaire et industrielle. Le xView Challenge nous a permis d’explorer plusieurs approches de la vision par ordinateur que nous avions voulu valider.
Le reste du billet, qui est extrait du rapport technique que nous avons soumis dans le cadre de notre participation au défi, met en évidence des extraits de notre travail dans le xView Challenge.
Nettoyage des données
Le jeu de données xView est vaste – 1 million d’images d’objets avec 60 classes et une résolution de 0,3 mètre – et étiqueté à l’aide d’annotations provenant de la foule pour les boîtes englobantes et les classes. Le document que DIUx a inclus pour accompagner la publication du jeu de données, xView : Objects in Context in Overhead Imagery, traite du fait que les techniques de collecte ont, par nature, accepté un niveau de bruit dans les données.
Dans notre analyse, la quantité de données mal étiquetées et de boîtes de délimitation bruyantes était suffisamment importante pour affecter l’entraînement global du modèle. Nous avons exploré de multiples techniques pour nettoyer les données et avons finalement décidé que toute technique que nous mettrions en œuvre serait irréalisable compte tenu des contraintes de calendrier du défi. Nous avons donc décidé d’accepter toute perte de précision qui serait le résultat des données bruitées.
Traitement des données via le déchiquetage
En raison de la taille de l’image et de la densité des objets, nous avons rencontré des difficultés lorsque nous avons essayé de passer l’image entière dans un réseau neuronal. Comme indiqué dans le document que nous avons soumis avec notre ensemble de données, le modèle de base xView a tenté de diviser chaque image en tuiles de plus petite taille en utilisant des stratégies de déchiquetage, en utilisant plusieurs tailles de puce à 300 px2, 400 px2 et 500 px2 dans un seul modèle (multi-res). Nous avons expérimenté l’approche multi-res, mais elle a déstabilisé notre processus d’apprentissage, donc nous nous en sommes tenus à une taille de puce de 300 px2.
Nous avons également expérimenté une technique simple de fragmentation par chevauchement qui consistait à faire chevaucher les puces voisines d’une quantité proportionnelle à la taille de la puce (50 %), ce qui a fourni une augmentation de 15 % de la précision de la détection et s’est également avéré plus réalisable pour une utilisation avec de grandes images satellites.
Nous avons fondé notre raisonnement sur le fait que la ligne de base a fonctionné beaucoup plus rapidement que la limite de temps imposée par la compétition et sur notre observation que les performances de détection d’objets ont diminué de manière significative à proximité des bords de chaque puce
Nous avons encore amélioré le modèle en laissant les objets proches du milieu de la limite entre deux puces qui se chevauchent être détectés par les deux puces. Au lieu de compter deux fois les détections de chevauchement, nous avons d’abord utilisé la suppression non-max pour nous assurer que seule la prédiction la plus confiante serait sortie.
Suppression non-max
Nous avons rencontré des cas où nos modèles sortent plusieurs boîtes de chevauchement sur le même objet, ce qui a conduit à une précision moyenne totale (mAP) plus faible. Pour résoudre ce problème, nous avons utilisé la suppression non-max pour ne garder que la plus grande boîte, qui correspondait suffisamment à l’objet.
Augmentation des données
Augmenter la quantité de données disponibles via l’augmentation est une pratique courante dans la communauté de la vision par ordinateur. Notre équipe a expérimenté diverses combinaisons aléatoires d’augmentations par puce à plusieurs époques d’entraînement pour évaluer comment notre modèle s’est comporté avec des variantes dans les données, notamment les suivantes :
- flips horizontaux
- flips verticaux
- conversions de RGP en espace gris
- fluctuations de luminosité
- ajustements de contraste
- distorsions de teinte
- ajustements de saturation
- . ajustements
- distorsions de la couleur
- mouvements de la boîte de rebondissement
- raccords à un rapport d’aspect fixe
- soustractions moyennes des canaux
- rotations
de ces augmentations, les retournements horizontaux, les retournements verticaux et les cultures à un rapport d’aspect fixe ont entraîné la plus forte augmentation de la précision du modèle et de la mAP. Nous avons écarté les autres augmentations, qui ont entraîné des gains de performance minimaux ou négatifs.
Data Imbalances
Comme le montre le tableau ci-dessous, le jeu de données fourni par xView était fortement déséquilibré, ce qui a entraîné un processus d’apprentissage biaisé qui a empêché les modèles d’apprendre des représentations précises des classes peu communes.
Tableau 1 : Comptage des classes…
Comptage des classes
Bâtiment 287 074
Bus 6 316
Véhicule ferroviaire 17
Une approche d’échantillonnage aléatoire sous-représenterait gravement la classe des véhicules ferroviaires, nous avons donc utilisé une approche d’échantillonnage inversement proportionnelle, dans laquelle les puces sous-représentées ont été suréchantillonnées par leur proportion inverse dans l’ensemble de données. Le suréchantillonnage est une approche commune et nous a fourni une bonne stabilité d’apprentissage dans les classes sous-représentées.
Développement de modèles personnalisés
Pour fournir une approche flexible, définie par configuration – au lieu d’écrire du code pour créer un modèle, éditez un fichier de configuration, qui contient juste des paramètres, et ce fichier construira automatiquement un modèle et l’entraînera – pour créer des modèles évolutifs, DIUx a fourni une ligne de base qui a été créée en utilisant l’API de détection d’objets TensorFlow (TF-ODAPI).
Nous avons également développé des modèles personnalisés en utilisant TensorFlow et Keras pour tenir compte des fonctions de perte personnalisées, des différentes architectures et de diverses sortes de pré-entraînement, nous avons dû regarder en dehors de l’API TF-OD.
Dans l’ensemble, l’API TF-OD nous a permis de créer des modèles fonctionnels et de modifier divers paramètres et architectures de modèles. Cependant, pour construire des fonctionnalités qui ne sont pas couvertes par le cas d’utilisation moyen, nous avons trouvé nécessaire de creuser plus profondément dans le code personnalisé en utilisant TensorFlow et Keras.
Deux des architectures les plus courantes pour la localisation et la classification simultanées sont le détecteur multi-boîtes à coup unique (SSD) et You Only Look Once (YOLO). La TF-ODAPI fournit une fonctionnalité permettant de modifier les paramètres de ces deux architectures et elle fonctionne relativement bien sur le jeu de données.
Nous avons également exploré au-delà de la TF-ODAPI et, à l’aide de TensorFlow et de Keras, nous avons expérimenté des architectures telles que Retinanet, Faster R-CNN, YOLOv3 et d’autres modèles personnalisés. En fin de compte, une variante de SSD nous a fourni les meilleurs résultats. YOLO a bien fonctionné en termes de mAP lorsque nous l’avons paramétré avec un grand nombre de boîtes d’ancrage.
Figure 4 : Matrice de confusion pour SSD. Figure 5 : Matrice de confusion pour YOLO.
Dans les figures 4 et 5 ci-dessus, il est important de noter les niveaux élevés de confusion intra-catégorie à la fois dans SSD et YOLO. En particulier, ces modèles peuvent classer des choses comme voiture vs bâtiment vraiment bien, mais à l’intérieur des catégories, les performances sont moins qu’idéales. Cette limitation est une fonction du défi lui-même, et il est clair qu’elle n’a pas été abordée efficacement par nos approches.
Défis de la pré-formation
La pré-formation est une étape importante et nécessaire dans l’utilisation de l’apprentissage profond pour obtenir une plus grande précision de classification dans l’imagerie satellitaire. Notre équipe a identifié un jeu de données parallèle appelé » DOTA : un jeu de données à grande échelle pour la détection d’objets dans les images aériennes » qui fournissait 15 classes pour localiser et classifier sur avec des boîtes qui n’étaient pas alignées sur l’axe, contrairement à xView. Notre objectif était d’apprendre des caractéristiques générales sur les classes à partir de DOTA, puis de poursuivre l’entraînement sur xView avec un vecteur de sortie plus grand pour accueillir ses 60 classes et espérer observer un grand gain de précision.
Le pré-entraînement sur DOTA, cependant, n’a pas été un succès. Alors que nous avons pu obtenir des mAP aussi élevés que 0,75 sur ce jeu de données, nous avons souvent obtenu des résultats inférieurs à la ligne de base une fois que nous l’avons transféré à xView. Cependant, nous avons observé une augmentation de notre score F1. Comme ce n’était pas la métrique à battre, nous n’avons pas poursuivi cette ligne d’exploration. Le pré-entraînement sur un jeu de données plus grand comme ImageNet ne nous a pas non plus apporté de gains en mAP.
Looking Ahead
L’utilisation de l’apprentissage profond dans l’imagerie satellitaire permet non seulement d’identifier où les crises se produisent, mais aussi d’aider les sauveteurs à sauver des vies humaines. Notre objectif avec xView était de démontrer qu’il est possible de construire un très gros prototype en un temps relativement court pour résoudre les objectifs de la mission.
Le succès de notre approche a été validé par le système de notation du xView Challenge qui a automatiquement noté les soumissions en fonction de la précision de la classification.
Le DIU a déclaré dans un récent communiqué de presse qu’il avait déjà commencé à tester les algorithmes gagnants du xView Challenge à la suite de l’ouragan Florence, en aidant le personnel d’urgence à identifier rapidement les zones inondées et les routes impraticables.