Software Engineering Institute
Daartoe lanceerde de Defense Innovation Unit (DIU) onlangs de xView 2018 Detection Challenge, die werd uitgevoerd door het Pentagon in samenwerking met de National Geospatial-Intelligence Agency, om te zoeken naar innovatieve toepassingen van computervisietechnieken om beelden in satellietbeelden nauwkeuriger op te sporen. Zoals beschreven in deze blogpost, werkte ik met een team van onderzoekers aan de xView-uitdaging die ons een vijfde plaats opleverde. Deze activiteit is onze nieuwste poging om machinaal leren en kunstmatige intelligentie te gebruiken om de federale overheid te helpen bij HADR-inspanningen.
Diep leren en satellietbeelden
Het scannen van satellietbeelden om beelden en gebouwen en andere objecten uit de ruimte te detecteren is een prioriteit geworden voor de overheid, maar het is vaak een langzaam, moeizaam proces dat wordt uitgevoerd door analisten en dat ook het potentieel voor menselijke fouten introduceert. Zelfs met hoge-resolutie datasets en classificatie, kunnen uitdagingen opduiken als analisten opslag-, bandbreedte-, en geheugenproblemen tegenkomen.
De stand van de techniek voor computervisie via satelliet is computationele neurale netwerken, die effectief zijn gebleken in het redeneren over satellietbeelden. Mijn eerste stap op dit gebied was met IARPA’s Functional Map of the World (FMOW) Challenge. In samenwerking met het John Hopkins University’s Applied Physics Laboratory, creëerde IARPA een dataset van meer dan 1 miljoen multispectrale satellietbeelden van locaties op het aardoppervlak uit meer dan 200 landen. Elk beeld in de dataset bevatte ten minste één voorbeeld van een faciliteit of landobject dat viel in een van de 63 categorieën (62 klassen en 1 voor valse detectie) zoals “militaire faciliteit”, “schuur” of “bouwterrein.”
Onze doelstelling was om te zien of we een functioneel prototype met redelijke nauwkeurigheid aan de gang konden krijgen. Zoals beschreven in een paper over ons werk, pasten we verschillende deep learning-benaderingen toe met behulp van vele smaken convolutionele neurale netwerken:
We hadden drie hoofdbenaderingen voor FMOW:
1) Met behulp van een diep convolutioneel neuraal netwerk (CNN) (met een architectuur zoals DenseNet of RetinaNet) vooraf getraind op verschillende datasets als een general-purpose feature extractor in tandem met een ondiepe CNN die satellietbeeldspecifieke kenmerken leerde. Deze worden gecombineerd met behulp van volledig aangesloten lagen en leveren uiteindelijk een softmaxvector met een lengte van 63.
2) Een ensemble van binaire “one-vs-all”-classifiers opleiden
3) Door “vals te spelen” en validatiegegevens te gebruiken die valse detecties bevatten, kunnen we een ondersteunende vectormachine (SVM) opleiden die heeft geleerd onderscheid te maken tussen valse detecties en “echte” gegevens, en vervolgens methode 1 alleen op de echte gegevens gebruiken.
Uiteindelijk was onze eerste methode het meest succesvol en was de modelarchitectuur die we meerdere keren hebben geiterateerd om af te stemmen voor de uitdaging.
Building off Functional Map of the World
Building off Functional Map of the World (FMoW), de xView-uitdaging past computervisie toe op de groeiende hoeveelheid beschikbare beelden uit de ruimte, zodat we de visuele wereld op nieuwe manieren kunnen begrijpen en een scala aan belangrijke toepassingen kunnen aanpakken. Bij het zoeken naar algoritmen om computer vision van satellietbeelden mogelijk te automatiseren, biedt de xView Challenge de deelnemers een van de grootste openbaar beschikbare datasets van satellietbeelden en vraagt hen de minimale resolutie voor detectie te verlagen
Na mijzelf bestond het xView Challenge Team uit 2e Lt. Alex Fulton, een afgestudeerde student aan het U.S. Air Force Institute of Technology en het Carnegie Mellon University’s Information Networking Institute; en Kaylene Stocking, een student aan de University of Pittsburgh.
De xView Challenge bleek een ideale wedstrijd voor ons werk in het Emerging Technology Center van het SEI, dat zich richt op het identificeren, demonstreren, uitbreiden en toepassen van nieuwe technologieën om aan kritieke overheidsbehoeften te voldoen. Wij bevorderen het bewustzijn en de kennis bij de overheid van deze opkomende technologieën en hun toepassing, naast het vormgeven en benutten van academisch en industrieel onderzoek. De xView Challenge stelde ons in staat om verschillende benaderingen van computervisie te verkennen die we hadden willen valideren.
De rest van het bericht, dat een uittreksel is van het technische rapport dat we hebben ingediend als onderdeel van onze deelname aan de uitdaging, belicht fragmenten van ons werk in de xView Challenge.
Gegevens opschonen
De xView-dataset is groot – 1 miljoen objectafbeeldingen met 60 klassen en een resolutie van 0,3 meter – en gelabeld met behulp van crowd-sourced annotaties voor bounding boxes en klassen. Het document dat DIUx bij de vrijgave van de dataset heeft gevoegd, xView: Objects in Context in Overhead Imagery, bespreekt dat de verzamelingstechnieken van nature een niveau van ruis in de gegevens accepteerden.
In onze analyse was de hoeveelheid verkeerd gelabelde gegevens en ruisende bounding boxes significant genoeg om de algehele modeltraining te beïnvloeden. We onderzochten meerdere technieken voor het opschonen van de gegevens en besloten uiteindelijk dat elke techniek die we zouden implementeren onuitvoerbaar zou zijn gezien de tijdsbeperkingen van de uitdaging. We besloten daarom elk verlies in nauwkeurigheid te accepteren dat het gevolg zou zijn van de ruisende gegevens.
Verwerking van de gegevens via Chipping
Vanwege de beeldgrootte en objectdichtheid, ondervonden we uitdagingen bij het proberen om het volledige beeld in een neuraal netwerk door te geven. Zoals beschreven in de paper die we ingediend met onze dataset, de xView baseline model geprobeerd om elk beeld te splitsen in kleinere tegels met behulp van chipping strategieën, met behulp van meerdere chip maten op 300 p / 2, 400 p / 2, en 500 p / 2 in een model (multi-res). We hebben geëxperimenteerd met de multi-res aanpak, maar het destabiliseerde ons leerproces, dus we vast te zitten met een chip grootte van 300 px2.
We hebben ook geëxperimenteerd met een eenvoudige overlappende chippen techniek die betrokken zijn overlappende naburige chips door een hoeveelheid die evenredig is met de chip grootte (50 procent), die een 15 procent verhoging van de nauwkeurigheid van de detectie en bleek ook meer haalbaar voor gebruik met grote satellietbeelden.
We baseerden onze redenering op het feit dat de basislijn aanzienlijk sneller presteerde dan de tijdslimiet die door de wedstrijd was opgelegd en onze waarneming dat de objectdetectieprestaties aanzienlijk afnamen aan de randen van elke chip
We verbeterden het model nog verder door objecten in het midden van de grens tussen twee overlappende chips door beide chips te laten detecteren. In plaats van de overlappende detecties dubbel te tellen, gebruikten we eerst niet-maximale onderdrukking om ervoor te zorgen dat alleen de meest betrouwbare voorspelling zou worden outputted.
Non-Max Suppression
We kwamen gevallen tegen waarin onze modellen meerdere overlappende vakjes over hetzelfde object uitvoerden, wat leidde tot een lagere totale gemiddelde precisie (mAP). Om dit probleem aan te pakken, gebruikten we non-max onderdrukking om alleen de grootste box te behouden, die voldoende bij het object paste.
Data Augmentation
Het vergroten van de hoeveelheid beschikbare gegevens via augmentation is een gebruikelijke praktijk in de computer vision-gemeenschap. Ons team experimenteerde met verschillende willekeurige combinaties van augmentaties per chip tot meerdere trainingsepochs om te evalueren hoe ons model presteerde met varianten in de gegevens, waaronder de volgende:
- horizontale flips
- verticale flips
- RGP naar grayspace conversies
- helderheidsfluctuaties
- contrastaanpassingen
- tintvervormingen
- saturatie aanpassingen
- kleurvervormingen
- bounding box jitters
- crops naar een vaste aspect ratio
- channel mean subtractions
- rotaties
Van deze augmentaties, horizontale flips, verticale flips, en gewassen tot een vaste beeldverhouding resulteerde in de hoogste toename in nauwkeurigheid van het model en mAP. We verwierpen de andere augmentaties, die resulteerden in minimale of negatieve winst in prestaties.
Gegevensonevenwichtigheden
Zoals te zien in de onderstaande tabel, was de dataset die door xView werd geleverd zeer onevenwichtig, wat resulteerde in een scheef leerproces dat modellen verhinderde nauwkeurige representaties van ongewone klassen te leren.
Tabel 1: Klassenaantallen…
CLASS COUNT
Bouw 287.074
Bus 6.316
Railway Vehicle 17
Een aselecte steekproefbenadering zou de klasse van het spoorwegvoertuig sterk ondervertegenwoordigen, dus gebruikten we een omgekeerd evenredige steekproefbenadering, waarbij de ondervertegenwoordigde chips werden oversampled met hun omgekeerde aandeel in de dataset. Oversampling is een gebruikelijke aanpak en leverde ons een goede leerstabiliteit op in ondervertegenwoordigde klassen.
Ontwikkelen van aangepaste modellen
Om een flexibele, define-by-config aanpak te bieden – in plaats van code te schrijven om een model te maken, bewerkt u een config-bestand, dat alleen parameters bevat, en dat bestand zal automatisch een model bouwen en trainen-om schaalbare modellen te maken, voorzag DIUx in een basislijn die werd gemaakt met behulp van de TensorFlow objectdetectie-API (TF-ODAPI).
We ontwikkelden ook aangepaste modellen met behulp van TensorFlow en Keras om aangepaste verliesfuncties, verschillende architecturen en verschillende soorten pre-training tegemoet te komen, moesten we buiten de TF-OD API kijken.
Over het geheel genomen stelde de TF-OD API ons in staat om functionele modellen te maken en verschillende parameters en modelarchitecturen te wijzigen. Om functionaliteit te bouwen die niet door de gemiddelde use case wordt gedekt, vonden we het echter nodig om dieper te graven in aangepaste code met behulp van TensorFlow en Keras.
Twee van de meest voorkomende architecturen voor gelijktijdige lokalisatie en classificatie zijn de Single Shot MultiBox Detector (SSD) en You Only Look Once (YOLO). De TF-ODAPI biedt functionaliteit om de parameters van beide architecturen te wijzigen en het werkt relatief goed op de dataset.
We hebben ook verder gekeken dan de TF-ODAPI en, met behulp van TensorFlow en Keras, geëxperimenteerd met architecturen zoals Retinanet, Faster R-CNN, YOLOv3 en andere aangepaste modellen. Uiteindelijk leverde een variant van SSD ons de beste resultaten op. YOLO werkte goed in termen van mAP wanneer we het parametreerden met een groot aantal ankerboxen.
Figuur 4: Verwarringsmatrix voor SSD. Figuur 5: Verwarringsmatrix voor YOLO.
In de figuren 4 en 5 hierboven is het belangrijk om de hoge niveaus van intra-categorie verwarring in zowel SSD en YOLO op te merken. In het bijzonder, kunnen deze modellen classificeren dingen zoals auto vs gebouw echt goed, maar binnen de categorieën presteert minder dan ideaal. Deze beperking is een functie van de uitdaging zelf, en het is duidelijk dat deze niet effectief werd aangepakt door onze benaderingen.
Challenges in Pre Training
Pre-training is een belangrijke en noodzakelijke stap in het gebruik van deep learning om meer classificatienauwkeurigheid in satellietbeelden te bereiken. Ons team identificeerde een parallelle dataset genaamd “DOTA: A Large-scale Dataset for Object Detection in Aerial Images” die 15 klassen bood om over te lokaliseren en classificeren met dozen die niet asgelijnd waren, in tegenstelling tot xView. Ons doel was om algemene kenmerken te leren over klassen van DOTA, en dan verder te trainen op xView met een grotere uitgangsvector om de 60 klassen tegemoet te komen en hopelijk een grote winst in nauwkeurigheid te observeren.
Voortraining op DOTA, echter, was geen succes. Hoewel we in staat waren om mAP’s tot 0,75 te krijgen op die dataset, presteerden we vaak slechter dan de basislijn zodra we het overzetten naar xView. We zagen echter wel een verbetering van onze F1 score. Aangezien dat niet de te kloppen metriek was, hebben we deze onderzoekslijn niet verder gevolgd. Vooraf trainen op een grotere dataset zoals ImageNet leverde ons ook geen winst op in mAP.
Looking Ahead
Het gebruik van deep learning in satellietbeelden helpt niet alleen om te identificeren waar crises plaatsvinden, maar helpt ook reddingswerkers om mensenlevens te redden. Ons doel met xView was om aan te tonen dat het mogelijk is om in relatief weinig tijd een zeer groot prototype te bouwen om missiedoelen op te lossen.
Het succes van onze aanpak werd gevalideerd door het xView Challenge-scoresysteem dat inzendingen automatisch scoorde op basis van de nauwkeurigheid van de classificatie.
De DIU verklaarde in een recent nieuwsbericht dat het al was begonnen met het testen van winnende algoritmen van de xView Challenge in de nasleep van orkaan Florence, waarbij hulpverleners werden geholpen bij het snel identificeren van overstroomde gebieden en onbegaanbare wegen.