Software Engineering Institute
Zu diesem Zweck hat die Defense Innovation Unit (DIU) vor kurzem die xView 2018 Detection Challenge ins Leben gerufen, die vom Pentagon in Zusammenarbeit mit der National Geospatial-Intelligence Agency durchgeführt wurde, um innovative Anwendungen von Computer-Vision-Techniken zur genaueren Erkennung von Bildern in Satellitenbildern zu finden. Wie in diesem Blogbeitrag beschrieben, habe ich mit einem Team von Forschern an der xView-Herausforderung gearbeitet, die uns den fünften Platz einbrachte. Diese Aktivität ist unser jüngster Versuch, maschinelles Lernen und künstliche Intelligenz einzusetzen, um die Bundesregierung bei ihren HADR-Bemühungen zu unterstützen.
Deep Learning and Satellite Imagery
Das Scannen von Satellitenbildern zur Erkennung von Bildern, Gebäuden und anderen Objekten aus dem Weltraum ist zu einer Priorität für die Regierung geworden, aber es ist oft ein langsamer, mühsamer Prozess, der von Analysten durchgeführt wird und auch das Potenzial für menschliche Fehler beinhaltet. Selbst bei hochauflösenden Datensätzen und der Klassifizierung kann es zu Problemen mit der Speicherung, der Bandbreite und dem Arbeitsspeicher kommen.
Der Stand der Technik bei der Computervision via Satellit sind computergestützte neuronale Netze, die sich bei der Auswertung von Satellitenbildern bewährt haben. Mein erster Ausflug in dieses Gebiet war die IARPA’s Functional Map of the World (FMOW) Challenge. In Zusammenarbeit mit dem Applied Physics Laboratory der John Hopkins University erstellte die IARPA einen Datensatz von mehr als 1 Million multispektraler Satellitenbilder von Orten auf der Erdoberfläche aus mehr als 200 Ländern. Jedes Bild des Datensatzes enthielt mindestens ein Beispiel einer Einrichtung oder eines Landobjekts, das in eine von 63 Kategorien fiel (62 Klassen und 1 für die Falscherkennung), z. B. „Militäreinrichtung“, „Scheune“ oder „Baustelle“
Unser Ziel war es, zu sehen, ob wir einen funktionsfähigen Prototyp mit angemessener Genauigkeit zum Laufen bringen konnten. Wie in einem Papier über unsere Arbeit beschrieben, haben wir mehrere Deep-Learning-Ansätze mit vielen Arten von Faltungsneuronalen Netzen angewandt:
Wir hatten drei Hauptansätze für FMOW:
1) Verwendung eines tiefen Faltungsneuronalen Netzes (CNN) (mit einer Architektur wie DenseNet oder RetinaNet), das auf verschiedenen Datensätzen als Allzweck-Merkmalsextraktor vortrainiert wurde, in Verbindung mit einem flachen CNN, das satellitenbildspezifische Merkmale lernte. Diese würden mit voll verbundenen Schichten kombiniert und schließlich einen Softmax-Vektor der Länge 63 ausgeben.
2) Training eines Ensembles von binären „Einer-gegen-Alle“-Klassifikatoren
3) Durch „Schummeln“ und die Verwendung von Validierungsdaten, die falsche Erkennungen enthielten, könnten wir eine Support-Vektor-Maschine (SVM) trainieren, die gelernt hat, zwischen falschen Erkennungen und „echten“ Daten zu unterscheiden, und dann Methode 1 nur auf die echten Daten anwenden.
Am Ende war unsere erste Methode die erfolgreichste und war die Modellarchitektur, die wir mehrfach wiederholten, um sie für die Herausforderung abzustimmen.
Aufbauend auf der Functional Map of the World (FMoW) wendet die xView-Herausforderung Computer Vision auf die wachsende Menge an verfügbaren Bildern aus dem Weltraum an, damit wir die visuelle Welt auf neue Weise verstehen und eine Reihe wichtiger Anwendungen angehen können. Auf der Suche nach Algorithmen zur potenziellen Automatisierung der Computer Vision von Satellitenbildern Die xView Challenge stellt den Teilnehmern einen der größten öffentlich zugänglichen Datensätze von Satellitenbildern zur Verfügung und fordert sie auf
- die Mindestauflösung für die Erkennung zu verringern
- die Lerneffizienz zu verbessern
- die Erkennung von mehr Objektklassen zu ermöglichen
- die Erkennung von feinkörnigen Klassen zu verbessern
Zusätzlich zu mir gehörte dem xView Challenge Team 2nd Lt. Alex Fulton, Doktorand am U.S. Air Force Institute of Technology und am Information Networking Institute der Carnegie Mellon University, sowie Kaylene Stocking, Studentin an der University of Pittsburgh.
Die xView Challenge erwies sich als idealer Wettbewerb für unsere Arbeit im Emerging Technology Center des SEI, das sich auf die Identifizierung, Demonstration, Erweiterung und Anwendung neuer Technologien konzentriert, um wichtige Bedürfnisse der Regierung zu erfüllen. Wir fördern das Bewusstsein und das Wissen der Regierung über diese aufkommenden Technologien und ihre Anwendung, und wir gestalten und nutzen die akademische und industrielle Forschung. Die xView Challenge ermöglichte es uns, mehrere Ansätze für die Computer Vision zu erforschen, die wir validieren wollten.
Der Rest des Beitrags ist ein Auszug aus dem technischen Bericht, den wir im Rahmen unserer Teilnahme an der Challenge eingereicht haben und zeigt Auszüge unserer Arbeit an der xView Challenge.
Datenbereinigung
Der xView-Datensatz ist groß – 1 Million Objektbilder mit 60 Klassen und einer Auflösung von 0,3 Metern – und wird mit von der Allgemeinheit bereitgestellten Anmerkungen für Bounding Boxes und Klassen beschriftet. Das Papier, das DIUx der Veröffentlichung des Datensatzes beifügte, xView: Objects in Context in Overhead Imagery (Objekte im Kontext in Überkopfaufnahmen), wird erläutert, dass die Erfassungsmethoden von Natur aus ein gewisses Maß an Verrauschung in den Daten zulassen.
In unserer Analyse waren die Menge der falsch beschrifteten Daten und die verrauschten Bounding Boxes so groß, dass sie das gesamte Modelltraining beeinträchtigten. Wir untersuchten mehrere Techniken zur Bereinigung der Daten und entschieden schließlich, dass jede Technik, die wir implementierten, angesichts der zeitlichen Beschränkungen des Wettbewerbs nicht durchführbar wäre. Wir beschlossen daher, die durch die verrauschten Daten verursachten Genauigkeitseinbußen in Kauf zu nehmen.
Datenverarbeitung mittels Chipping
Aufgrund der Bildgröße und der Objektdichte stießen wir bei dem Versuch, das gesamte Bild in ein neuronales Netz zu übertragen, auf Schwierigkeiten. Wie in dem Papier, das wir mit unserem Datensatz eingereicht haben, beschrieben, versuchte das xView-Basismodell, jedes Bild mithilfe von Chipping-Strategien in kleinere Kacheln aufzuteilen, wobei mehrere Chipgrößen von 300 px2, 400 px2 und 500 px2 in einem Modell verwendet wurden (Multi-Res). Wir experimentierten mit dem Multi-Res-Ansatz, aber er destabilisierte unseren Lernprozess, so dass wir bei einer Chipgröße von 300 px2 blieben.
Wir experimentierten auch mit einer einfachen überlappenden Chipping-Technik, bei der benachbarte Chips um einen Betrag überlappt wurden, der proportional zur Chipgröße war (50 Prozent), was eine 15-prozentige Steigerung der Erkennungsgenauigkeit bewirkte und sich auch als praktikabler für die Verwendung mit großen Satellitenbildern erwies.
Wir begründeten unsere Überlegungen mit der Tatsache, dass die Basislinie deutlich schneller war als das vom Wettbewerb vorgegebene Zeitlimit, und mit unserer Beobachtung, dass die Objekterkennungsleistung in der Nähe der Ränder der einzelnen Chips deutlich abnahm
Wir verbesserten das Modell noch weiter, indem wir zuließen, dass Objekte in der Nähe der Mitte der Grenze zwischen zwei sich überlappenden Chips von beiden Chips erkannt werden. Anstatt die überlappenden Erkennungen doppelt zu zählen, verwendeten wir zunächst eine Nicht-Max-Unterdrückung, um sicherzustellen, dass nur die zuverlässigste Vorhersage ausgegeben wird.
Nicht-Max-Unterdrückung
Wir stießen auf Fälle, in denen unsere Modelle mehrere überlappende Boxen über demselben Objekt ausgaben, was zu einer niedrigeren durchschnittlichen Gesamtpräzision (mAP) führte. Um dieses Problem zu beheben, verwendeten wir die Non-Max-Suppression, um nur die größte Box zu behalten, die ausreichend auf das Objekt passte.
Datenerweiterung
Die Vergrößerung der verfügbaren Datenmenge durch Erweiterung ist eine gängige Praxis in der Computer Vision Community. Unser Team experimentierte mit verschiedenen zufälligen Kombinationen von Erweiterungen pro Chip für mehrere Trainingsepochen, um zu bewerten, wie unser Modell mit den folgenden Datenvarianten abschnitt:
- horizontale Spiegelungen
- vertikale Spiegelungen
- RGP-zu-Grauraum-Konvertierungen
- Helligkeitsschwankungen
- Kontrastanpassungen
- Tonverzerrungen
- Sättigung Anpassungen
- Farbverfälschungen
- Zittern der Bounding Box
- Einhalten eines festen Seitenverhältnisses
- Kanalmittelwertsubtraktionen
- Drehungen
von diesen Augmentierungen, horizontale Spiegelungen, vertikale Spiegelungen und Beschneidungen auf ein festes Seitenverhältnis führten zu den höchsten Steigerungen der Modellgenauigkeit und des mAP. Die anderen Erweiterungen wurden verworfen, da sie zu minimalen oder negativen Leistungssteigerungen führten.
Ungleichgewichte in den Daten
Wie die folgende Tabelle zeigt, war der von xView bereitgestellte Datensatz sehr unausgewogen, was zu einem schiefen Lernprozess führte, der die Modelle daran hinderte, genaue Repräsentationen von ungewöhnlichen Klassen zu lernen.
Tabelle 1: Klassenanzahl.
Klassenanzahl
Gebäude 287.074
Bus 6.316
Schienenfahrzeug 17
Bei einer Zufallsstichprobe wäre die Klasse der Schienenfahrzeuge stark unterrepräsentiert, daher verwendeten wir eine umgekehrt proportionale Stichprobe, bei der die unterrepräsentierten Chips mit ihrem umgekehrten Anteil im Datensatz überstichprobenartig erfasst wurden. Oversampling ist ein gängiger Ansatz und hat uns eine gute Lernstabilität in unterrepräsentierten Klassen beschert.
Entwicklung von benutzerdefinierten Modellen
Um einen flexiblen, define-by-config-Ansatz zu bieten – anstatt Code zu schreiben, um ein Modell zu erstellen, editieren Sie eine Konfigurationsdatei, die nur Parameter enthält, und diese Datei wird automatisch ein Modell erstellen und es trainieren – um skalierbare Modelle zu erstellen, hat DIUx eine Baseline bereitgestellt, die mit der TensorFlow Object Detection API (TF-ODAPI) erstellt wurde.
Wir haben auch benutzerdefinierte Modelle mit TensorFlow und Keras entwickelt, um benutzerdefinierte Verlustfunktionen, verschiedene Architekturen und verschiedene Arten von Pre-Training unterzubringen, mussten wir uns außerhalb der TF-OD-API umsehen.
Insgesamt ermöglichte uns die TF-OD-API, funktionale Modelle zu erstellen und verschiedene Parameter und Modellarchitekturen zu ändern. Um jedoch Funktionen zu erstellen, die nicht durch den durchschnittlichen Anwendungsfall abgedeckt sind, mussten wir tiefer in den benutzerdefinierten Code mit TensorFlow und Keras einsteigen.
Zwei der gängigsten Architekturen für die gleichzeitige Lokalisierung und Klassifizierung sind der Single Shot MultiBox Detector (SSD) und You Only Look Once (YOLO). Die TF-ODAPI bietet die Möglichkeit, die Parameter dieser beiden Architekturen zu ändern, und sie funktioniert relativ gut mit dem Datensatz.
Wir haben auch über die TF-ODAPI hinaus experimentiert und mit TensorFlow und Keras Architekturen wie Retinanet, Faster R-CNN, YOLOv3 und andere benutzerdefinierte Modelle ausprobiert. Letztendlich lieferte uns eine Variante von SSD die besten Ergebnisse. YOLO funktionierte gut in Bezug auf mAP, wenn wir es mit einer großen Anzahl von Ankerboxen parametrisierten.
Abbildung 4: Konfusionsmatrix für SSD. Abbildung 5: Konfusionsmatrix für YOLO.
In den obigen Abbildungen 4 und 5 ist es wichtig, den hohen Grad an Intra-Kategorie-Konfusion sowohl bei SSD als auch bei YOLO zu beachten. Insbesondere können diese Modelle Dinge wie z.B. Auto vs. Gebäude sehr gut klassifizieren, aber innerhalb der Kategorien schneiden sie nicht so gut ab. Diese Einschränkung ist eine Funktion der Herausforderung selbst, und es ist klar, dass sie von unseren Ansätzen nicht effektiv angegangen wurde.
Herausforderungen beim Pre-Training
Pre-Training ist ein wichtiger und notwendiger Schritt beim Einsatz von Deep Learning, um eine höhere Klassifizierungsgenauigkeit bei Satellitenbildern zu erreichen. Unser Team hat einen parallelen Datensatz mit der Bezeichnung „DOTA: A Large-scale Dataset for Object Detection in Aerial Images“ identifiziert, der 15 Klassen zur Lokalisierung und Klassifizierung über Boxen enthält, die im Gegensatz zu xView nicht achsenorientiert sind. Unser Ziel war es, allgemeine Merkmale über die Klassen von DOTA zu lernen und dann das Training auf xView mit einem größeren Ausgabevektor fortzusetzen, um die 60 Klassen unterzubringen und hoffentlich einen großen Gewinn an Genauigkeit zu beobachten.
Das Vortraining auf DOTA war jedoch kein Erfolg. Zwar konnten wir mit diesem Datensatz mAPs von bis zu 0,75 erreichen, aber sobald wir ihn auf xView übertragen hatten, schnitten wir oft schlechter ab als die Grundlinie. Allerdings konnten wir einen Anstieg unserer F1-Punktzahl beobachten. Da dies nicht die beste Metrik war, haben wir diesen Ansatz nicht weiter verfolgt. Auch das Vortraining auf einem größeren Datensatz wie ImageNet brachte uns keinen Zugewinn an mAP.
Ausblick
Der Einsatz von Deep Learning in Satellitenbildern hilft nicht nur bei der Erkennung von Krisenherden, sondern auch bei der Rettung von Menschenleben. Unser Ziel mit xView war es, zu zeigen, dass es möglich ist, in relativ kurzer Zeit einen sehr großen Prototyp zu bauen, um Missionsziele zu erreichen.
Der Erfolg unseres Ansatzes wurde durch das Bewertungssystem der xView Challenge bestätigt, das die Einreichungen automatisch auf der Grundlage der Klassifizierungsgenauigkeit bewertete.
Das DIU erklärte in einer kürzlich veröffentlichten Pressemitteilung, dass es bereits damit begonnen hat, die siegreichen Algorithmen der xView Challenge nach dem Hurrikan Florence zu testen, um Rettungskräfte dabei zu unterstützen, überschwemmte Gebiete und unpassierbare Straßen schnell zu identifizieren.