Software Engineering Institute
För detta ändamål lanserade Defense Innovation Unit (DIU) nyligen xView 2018 Detection Challenge, som genomfördes av Pentagon i samarbete med National Geospatial-Intelligence Agency, för att söka efter innovativa användningar av datorseende tekniker för att mer exakt upptäcka bilder i satellitbilder. Som beskrivs i det här blogginlägget arbetade jag med ett forskarlag i xView-utmaningen som gav oss en femteplats. Denna aktivitet är vår senaste insats för att använda maskininlärning och artificiell intelligens för att hjälpa den federala regeringen med HADR-insatser.
Djupinlärning och satellitbilder
Scanning av satellitbilder för att upptäcka bilder och byggnader och andra objekt från rymden har blivit en prioritering för regeringen, men det är ofta en långsam och mödosam process som utförs av analytiker och som också introducerar en potential för mänskliga fel. Även med högupplösta datamängder och klassificering kan utmaningar dyka upp när analytiker stöter på problem med lagring, bandbredd och minne.
Den senaste tekniken för datorseende via satellit är datoriserade neurala nätverk, som har varit effektiva när det gäller att resonera om satellitbilder. Mitt första försök på detta område var med IARPA:s utmaning Functional Map of the World (FMOW). I samarbete med John Hopkins University’s Applied Physics Laboratory skapade IARPA ett dataset med mer än 1 miljon multispektrala satellitbilder av platser på jordens yta från mer än 200 länder. Varje bild i datamängden innehöll minst ett exempel på en anläggning eller ett markobjekt som föll in i en av 63 kategorier (62 klasser och 1 för falsk upptäckt), t.ex. ”militär anläggning”, ”lada” eller ”byggarbetsplats”.
Vårt mål var att se om vi kunde få igång en fungerande prototyp med rimlig noggrannhet. Som beskrivs i en artikel om vårt arbete tillämpade vi flera djupa inlärningsmetoder med hjälp av många varianter av konvolutionella neurala nätverk:
Vi hade tre huvudsakliga metoder för FMOW:
1) Användning av ett djupt konvolutionellt neuralt nätverk (CNN) (med en arkitektur som DenseNet eller RetinaNet) som är förtränat på olika datamängder som en allmängiltig funktionsextraherare tillsammans med ett ytligt CNN som lärde sig satellitbildspecifika funktioner. Dessa skulle kombineras med hjälp av fullt sammankopplade lager och slutligen ge ut en mjukmaxvektor med längd 63.
2) Träning av en ensemble av binära ”en-vs-alla”-klassificerare
3) Genom att ”fuska” och använda valideringsdata som innehöll falska upptäckter skulle vi kunna träna en stödvektormaskin (SVM) som lärde sig att skilja mellan falska upptäckter och ”riktiga” data, och sedan använda metod 1 endast på de riktiga data.
I slutändan var vår första metod den mest framgångsrika och var den modellarkitektur som vi itererade över flera gånger för att ställa in den för utmaningen.
Byggd på Functional Map of the World
Med utgångspunkt i Functional Map of the World (FMoW) tillämpar xView-utmaningen datorseende på den ökande mängden tillgängliga bilder från rymden så att vi kan förstå den visuella världen på nya sätt och ta itu med en rad viktiga tillämpningar. I sökandet efter algoritmer för att eventuellt automatisera datorseende av satellitbilder, xView Challenge förser de tävlande med en av de största offentligt tillgängliga datamängderna av satellitbilder och ber dem att
- minimera den minsta upplösningen för upptäckt
- förbättra inlärningseffektiviteten
- medge upptäckt av fler objektklasser
- förbättra upptäckt av finkorniga klasser
Inom mig själv ingick i xView Challenge-laget 2:e löjtnant Lt. Alex Fulton, doktorand vid U.S. Air Force Institute of Technology och Carnegie Mellon University’s Information Networking Institute, och Kaylene Stocking, studerande vid University of Pittsburgh.
xView Challenge visade sig vara en idealisk tävling för vårt arbete inom SEI:s Emerging Technology Center, som är inriktat på att identifiera, demonstrera, utvidga och tillämpa ny teknik för att tillgodose kritiska statliga behov. Vi främjar regeringens medvetenhet och kunskap om dessa nya tekniker och deras tillämpning, förutom att forma och utnyttja akademisk och industriell forskning. xView Challenge gjorde det möjligt för oss att utforska flera metoder för datorseende som vi hade velat validera.
Resten av inlägget, som är ett utdrag ur den tekniska rapport som vi lämnade in som en del av vårt deltagande i utmaningen, belyser utdrag av vårt arbete i xView Challenge.
Datarengöring
XView-dataset är stort – 1 miljon objektbilder med 60 klasser och en upplösning på 0,3 meter – och märkt med hjälp av crowd-sourced annotations för bounding boxes och klasser. Det dokument som DIUx inkluderade i samband med att datamängden släpptes, xView: Objects in Context in Overhead Imagery, diskuteras att insamlingsteknikerna till sin natur accepterade en nivå av brus i data.
I vår analys var mängden felaktigt märkta data och bullriga bounding boxes tillräckligt betydande för att påverka den totala modellutbildningen. Vi undersökte flera olika tekniker för att rensa data och beslutade i slutändan att alla tekniker som vi implementerade skulle vara ogenomförbara med tanke på utmaningens tidsbegränsningar. Vi beslutade därför att acceptera eventuella förluster i noggrannhet som skulle vara ett resultat av de bullriga uppgifterna.
Bearbetning av data via chipping
På grund av bildens storlek och objekttäthet stötte vi på utmaningar när vi försökte föra in hela bilden i ett neuralt nätverk. Såsom beskrivs i det dokument som vi skickade in tillsammans med vårt dataset försökte xViews basmodell att dela upp varje bild i mindre stora plattor med hjälp av flisningsstrategier, genom att använda flera flisningsstorlekar på 300 px2, 400 px2 och 500 px2 i en och samma modell (multires). Vi experimenterade med multires-strategin, men den destabiliserade vår inlärningsprocess, så vi höll oss till en chipstorlek på 300 px2.
Vi experimenterade också med en enkel överlappande flisningsteknik som innebar att man överlappade angränsande flisor med en mängd som var proportionell mot chipstorleken (50 procent), vilket gav en 15-procentig ökning av detektionsnoggrannheten och visade sig också vara mer genomförbart för användning med stora satellitbilder.
Vi baserade vårt resonemang på det faktum att baslinjen presterade betydligt snabbare än den tidsgräns som tävlingen föreskrev och vår observation att prestandan för objektsdetektering minskade avsevärt nära kanterna på varje chip
Vi förbättrade modellen ytterligare genom att låta objekt nära mitten av gränsen mellan två överlappande chips detekteras av båda chipsen. Istället för att dubbelräkna de överlappande upptäckterna använde vi först icke-maxundertryckning för att se till att endast den mest säkra förutsägelsen skulle skickas ut.
Non-maxundertryckning
Vi stötte på fall där våra modeller skickade ut flera överlappande rutor över samma objekt, vilket ledde till en lägre total genomsnittlig genomsnittlig precision (mAP). För att åtgärda detta problem använde vi icke-max-undertryckning för att bara behålla den största rutan, som passade tillräckligt bra till objektet.
Dataförstärkning
Att öka mängden tillgängliga data genom förstärkning är en vanlig metod inom datorseende. Vårt team experimenterade med olika slumpmässiga kombinationer av förstärkningar per chip till flera träningsepoker för att utvärdera hur vår modell presterade med varianter i data inklusive följande:
- horisontella vändningar
- vertikala vändningar
- RGP- till gråtrumskonverteringar
- ljusstyrkan fluktuerar
- kontrastjusteringar
- färgförvrängningar
- mättnad. justeringar
- färgförvrängningar
- gränsboxens skiftningar
- fäster sig vid ett fast bildförhållande
- kanalsnittsubtraktioner
- rotationer
av dessa förstärkningar, horisontella vändningar, vertikala vändningar och beskärningar till ett fast bildförhållande resulterade i den högsta ökningen av modellens noggrannhet och mAP. Vi kasserade de andra augmenteringarna, som resulterade i minimala eller negativa prestandaökningar.
Dataobalans
Som framgår av tabellen nedan var datamängden som tillhandahölls av xView mycket obalanserad, vilket resulterade i en snedvriden inlärningsprocess som hindrade modellerna från att lära sig korrekta representationer av ovanliga klasser.
Tabell 1: Klassräkningar…
KLASSAVTAL
Byggnad 287 074
Buss 6 316
Railway Vehicle 17
En slumpmässig provtagningsmetod skulle kraftigt underrepresenterar klassen för järnvägsfordon, så vi använde oss av en omvänt proportionell provtagningsmetod, där de underrepresenterade chipen överprovtas med sin omvända andel i datasetet. Överprovtagning är ett vanligt tillvägagångssätt och gav oss god inlärningsstabilitet i underrepresenterade klasser.
Utveckling av anpassade modeller
För att tillhandahålla ett flexibelt tillvägagångssätt som bygger på definition genom konfiguration – i stället för att skriva kod för att skapa en modell redigerar du en konfigurationsfil som bara innehåller parametrar och den filen kommer automatiskt att bygga upp en modell och träna den – för att skapa skalbara modeller tillhandahöll DIUx en baslinje som skapades med hjälp av TensorFlows API för objektsökning (TF-ODAPI).
Vi utvecklade också anpassade modeller med hjälp av TensorFlow och Keras för att tillgodose anpassade förlustfunktioner, olika arkitekturer och olika typer av förträning, var vi tvungna att leta utanför TF-OD API.
Samt sett gjorde TF-OD API det möjligt för oss att skapa funktionella modeller och ändra olika parametrar och modellarkitekturer. Men för att bygga funktionalitet som inte omfattas av det genomsnittliga användningsfallet fann vi det nödvändigt att gräva djupare i anpassad kod med hjälp av TensorFlow och Keras.
Två av de vanligaste arkitekturerna för samtidig lokalisering och klassificering är Single Shot MultiBox Detector (SSD) och You Only Look Once (YOLO). TF-ODAPI tillhandahåller funktionalitet för att ändra parametrarna för båda dessa arkitekturer och det fungerar relativt bra på datasetet.
Vi utforskade också bortom TF-ODAPI och experimenterade, med hjälp av TensorFlow och Keras, med arkitekturer som Retinanet, Faster R-CNN, YOLOv3 och andra anpassade modeller. I slutändan gav en variant av SSD oss de bästa resultaten. YOLO fungerade bra när det gäller mAP när vi parametriserade den med ett stort antal ankarrutor.
Figur 4: Förvirringsmatris för SSD. Figur 5: Förvirringsmatris för YOLO.
I figurerna 4 och 5 ovan är det viktigt att notera de höga nivåerna av förvirring inom en kategori i både SSD och YOLO. I synnerhet kan dessa modeller klassificera saker som bil vs. byggnad riktigt bra, men inom kategorierna presterar de mindre bra än idealiskt. Denna begränsning är en funktion av själva utmaningen, och det är tydligt att den inte hanterades effektivt av våra tillvägagångssätt.
Utmaningar i förträning
Förträning är ett viktigt och nödvändigt steg för att använda djupinlärning för att uppnå högre klassificeringsnoggrannhet i satellitbilder. Vårt team identifierade ett parallellt dataset kallat ”DOTA: A Large-scale Dataset for Object Detection in Aerial Images” som tillhandahöll 15 klasser för att lokalisera och klassificera över med rutor som inte var axeljusterade, till skillnad från xView. Vårt mål var att lära oss allmänna egenskaper om klasser från DOTA och sedan fortsätta träningen på xView med en större utdatavektor för att rymma dess 60 klasser och förhoppningsvis observera en stor ökning av noggrannheten.
Förutbildningen på DOTA var dock ingen framgång. Även om vi kunde få mAPs så höga som 0,75 på den datamängden, presterade vi ofta sämre än baslinjen när vi överförde den till xView. Vi observerade dock en ökning av vår F1-poäng. Eftersom det inte var det måttet som var bäst, fortsatte vi inte att undersöka detta ytterligare. Förträning på ett större dataset som ImageNet gav oss inte heller några vinster i mAP.
Looking Ahead
Användningen av djupinlärning i satellitbilder hjälper inte bara till att identifiera var kriser inträffar, utan hjälper också räddningspersonal att rädda människoliv. Vårt mål med xView var att visa att det är möjligt att bygga en mycket stor prototyp på relativt kort tid för att lösa uppdragsmålen.
Framgången för vårt tillvägagångssätt validerades av poängsystemet för xView Challenge, som automatiskt poängsatte bidragen baserat på klassificeringens noggrannhet.
I ett nyligen publicerat pressmeddelande uppgav DIU att man redan börjat testa de vinnande algoritmerna från xView Challenge i kölvattnet av orkanen Florens, och att de hjälpte räddningspersonalen att snabbt identifiera översvämmade områden och oframkomliga vägar.