Software Engineering Institute
În acest scop, Unitatea de Inovare în domeniul Apărării (DIU) a lansat recent xView 2018 Detection Challenge, desfășurată de Pentagon în parteneriat cu National Geospatial-Intelligence Agency, pentru a căuta utilizări inovatoare ale tehnicilor de viziune computerizată pentru a detecta cu mai multă acuratețe imaginile din imaginile din satelit. După cum este descris în această postare pe blog, am lucrat cu o echipă de cercetători în cadrul provocării xView, care ne-a adus un loc cinci. Această activitate este cel mai recent efort al nostru în utilizarea învățării automate și a inteligenței artificiale pentru a ajuta guvernul federal în eforturile HADR.
Deep Learning and Satellite Imagery
Scanarea imaginilor din satelit pentru a detecta imagini și clădiri și alte obiecte din spațiu a devenit o prioritate pentru guvern, dar este adesea un proces lent și minuțios întreprins de analiști care introduce, de asemenea, potențialul de eroare umană. Chiar și în cazul seturilor de date de înaltă rezoluție și al clasificării, pot apărea provocări pe măsură ce analiștii se confruntă cu probleme de stocare, lățime de bandă și memorie.
Starea actuală a tehnologiei de viziune computerizată prin satelit este reprezentată de rețelele neuronale computaționale, care au fost eficiente în raționamentul asupra imaginilor din satelit. Prima mea incursiune în acest domeniu a fost în cadrul provocării IARPA’s Functional Map of the World (FMOW) Challenge. Împreună cu Laboratorul de Fizică Aplicată al Universității John Hopkins, IARPA a creat un set de date de peste 1 milion de imagini multispectrale din satelit ale unor situri de pe suprafața Pământului din peste 200 de țări. Fiecare imagine din setul de date conținea cel puțin un exemplu de instalație sau de obiect terestru care se încadrează într-una dintre cele 63 de categorii (62 de clase și 1 pentru detectare falsă), cum ar fi „instalație militară”, „hambar” sau „șantier de construcții.”
Scopul nostru a fost să vedem dacă putem pune în funcțiune un prototip funcțional cu o precizie rezonabilă. Așa cum am prezentat într-o lucrare despre activitatea noastră, am aplicat mai multe abordări de învățare profundă folosind mai multe variante de rețele neuronale convoluționale:
Am avut trei abordări principale pentru FMOW:
1) Utilizarea unei rețele neuronale convoluționale profunde (CNN) (cu o arhitectură cum ar fi DenseNet sau RetinaNet) pre-antrenată pe diverse seturi de date ca extractor de caracteristici de uz general în tandem cu un CNN superficial care a învățat caracteristici specifice imaginilor din satelit. Acestea ar fi combinate cu ajutorul unor straturi complet conectate și, în final, ar produce un vector softmax de lungime 63.
2) Antrenarea unui ansamblu de clasificatori binari „unu la unu”
3) „Trișând” și folosind date de validare care conțin detecții false, am putea antrena o mașină cu vectori de suport (SVM) care a învățat să facă diferența între detecțiile false și datele „reale”, apoi să folosim metoda 1 doar pe datele reale.
În cele din urmă, prima noastră metodă a fost cea mai de succes și a fost arhitectura modelului pe care am iterat-o de mai multe ori pentru a o regla pentru provocare.
Building off Functional Map of the World
Building off Functional Map of the World (FMoW), provocarea xView aplică viziunea computerizată la cantitatea din ce în ce mai mare de imagini disponibile din spațiu, astfel încât să putem înțelege lumea vizuală în moduri noi și să abordăm o serie de aplicații importante. În căutarea de algoritmi pentru a automatiza potențial viziunea computerizată a imaginilor din satelit, provocarea xView pune la dispoziția concurenților unul dintre cele mai mari seturi de date de imagini din satelit disponibile public și le cere să
- reducă rezoluția minimă pentru detectare
- îmbunătățească eficiența învățării
- permite descoperirea mai multor clase de obiecte
- îmbunătățească detectarea claselor cu granulație fină
Pe lângă mine, din echipa provocării xView a făcut parte și sublocotenent Lt. Alex Fulton, student absolvent la Institutul de Tehnologie al Forțelor Aeriene ale SUA și la Institutul de Rețele Informaționale al Universității Carnegie Mellon; și Kaylene Stocking, studentă la Universitatea din Pittsburgh.
Provocarea xView s-a dovedit a fi o competiție ideală pentru activitatea noastră din cadrul Centrului de Tehnologii Emergente al SEI, care se concentrează pe identificarea, demonstrarea, extinderea și aplicarea de noi tehnologii pentru a răspunde nevoilor critice ale guvernului. Promovăm conștientizarea și cunoașterea de către guvern a acestor tehnologii emergente și a aplicării lor, pe lângă faptul că modelăm și valorificăm cercetarea academică și industrială. Provocarea xView ne-a permis să explorăm mai multe abordări ale viziunii computerizate pe care doream să le validăm.
Rămășița postării, care este extrasă din raportul tehnic pe care l-am prezentat ca parte a participării noastre la provocare, evidențiază fragmente din activitatea noastră în cadrul provocării xView.
Curățarea datelor
Setul de date xView este mare – 1 milion de imagini de obiecte cu 60 de clase și o rezoluție de 0,3 metri – și etichetat folosind adnotări provenite din mulțime pentru cutii de delimitare și clase. Documentul pe care DIUx l-a inclus pentru a însoți publicarea setului de date, xView: Objects in Context in Overhead Imagery (Obiecte în context în imaginile aeriene), discută despre faptul că tehnicile de colectare au acceptat prin natura lor un nivel de zgomot în date.
În analiza noastră, cantitatea de date etichetate greșit și de cutii de delimitare zgomotoase au fost suficient de semnificative pentru a afecta formarea generală a modelului. Am explorat mai multe tehnici de curățare a datelor și, în cele din urmă, am decis că orice tehnică pe care am implementat-o ar fi fost nefezabilă, având în vedere constrângerile de program ale provocării. Prin urmare, am decis să acceptăm orice pierderi de acuratețe care ar fi fost rezultatul datelor zgomotoase.
Procesarea datelor prin așchiere
Din cauza dimensiunii imaginii și a densității obiectelor, am întâmpinat provocări atunci când am încercat să trecem întreaga imagine într-o rețea neuronală. După cum se subliniază în lucrarea pe care am prezentat-o împreună cu setul nostru de date, modelul de bază xView a încercat să împartă fiecare imagine în plăci de dimensiuni mai mici folosind strategii de așchiere, utilizând mai multe dimensiuni de așchiere la 300 px2, 400 px2 și 500 px2 într-un singur model (multi-res). Am experimentat abordarea multi-res, dar ne-a destabilizat procesul de învățare, așa că am rămas la o dimensiune a cipurilor de 300 px2.
Am experimentat, de asemenea, o tehnică simplă de suprapunere a cipurilor care implica suprapunerea cipurilor vecine cu o cantitate proporțională cu dimensiunea cipurilor (50 %), care a oferit o creștere de 15 % a preciziei de detectare și, de asemenea, s-a dovedit a fi mai fezabilă pentru utilizarea cu imagini de satelit de mari dimensiuni.
Ne-am bazat raționamentul pe faptul că linia de bază a funcționat semnificativ mai repede decât limita de timp impusă de competiție și pe observația noastră că performanța de detectare a obiectelor a scăzut semnificativ în apropierea marginilor fiecărui cip
Am îmbunătățit modelul și mai mult permițând ca obiectele aflate aproape de mijlocul limitei dintre două cipuri suprapuse să fie detectate de ambele cipuri. În loc să numărăm de două ori detecțiile suprapuse, am folosit mai întâi suprimarea non-max pentru a ne asigura că va fi emisă doar cea mai sigură predicție
Suprimarea non-max
Am întâlnit cazuri în care modelele noastre au emis mai multe casete suprapuse peste același obiect, ceea ce a dus la o precizie medie totală mai mică (mAP). Pentru a rezolva această problemă, am utilizat suprimarea non-max pentru a păstra doar cea mai mare cutie, care se potrivea suficient de bine obiectului.
Creșterea datelor
Creșterea cantității de date disponibile prin augmentare este o practică obișnuită în comunitatea de viziune pe calculator. Echipa noastră a experimentat diverse combinații aleatorii de augmentații aleatorii pe cip la mai multe epoci de antrenament pentru a evalua modul în care modelul nostru s-a comportat cu variantele din date, inclusiv următoarele:
- întoarceri orizontale
- întoarceri verticale
- conversii de la RGP la spațiul gri
- fluctuații de luminozitate
- ajustări de contrast
- distorsiuni de nuanță
- saturație ajustări
- distorsiuni ale culorii
- substanțe ale cutiei de delimitare
- croieli la un raport de aspect fix
- substanțe medii ale canalelor
- rotații
din aceste măriri, răsturnările orizontale, răsturnările verticale și culturile la un raport de aspect fix au dus la cea mai mare creștere a preciziei modelului și a mAP. Am eliminat celelalte augmentații, care au dus la creșteri minime sau negative ale performanței.
Date dezechilibrate
Cum se arată în tabelul de mai jos, setul de date furnizat de xView a fost foarte dezechilibrat, ceea ce a dus la un proces de învățare distorsionat care a împiedicat modelele să învețe reprezentări exacte ale claselor neobișnuite.
Tabelul 1: Număr de clase….
CONTELE CLASELOR
Clădiri 287,074
Autobuz 6,316
Vehicule de cale ferată 17
O abordare de eșantionare aleatorie ar sub-reprezenta grav clasa vehiculelor de cale ferată, astfel încât am utilizat o abordare de eșantionare invers proporțională, în care jetoanele sub-reprezentate au fost supraeșantionate cu proporția lor inversă în setul de date. Supraeșantionarea este o abordare obișnuită și ne-a oferit o bună stabilitate a învățării în clasele subreprezentate.
Dezvoltarea modelelor personalizate
Pentru a oferi o abordare flexibilă, de tip „define-by-config” – în loc să scrieți cod pentru a crea un model, editați un fișier de configurare, care conține doar parametrii, iar acel fișier va construi automat un model și îl va antrena – pentru a crea modele scalabile, DIUx a furnizat o linie de bază care a fost creată folosind TensorFlow object detection API (TF-ODAPI).
Am dezvoltat, de asemenea, modele personalizate folosind TensorFlow și Keras pentru a acomoda funcții de pierdere personalizate, arhitecturi diferite și diverse tipuri de pre-antrenare, a trebuit să căutăm în afara API-ului TF-OD.
În general, API-ul TF-OD ne-a permis să creăm modele funcționale și să modificăm diverși parametri și arhitecturi de model. Cu toate acestea, pentru a construi funcționalități care nu sunt acoperite de cazul de utilizare mediu, am considerat că este necesar să săpăm mai adânc în codul personalizat folosind TensorFlow și Keras.
Două dintre cele mai comune arhitecturi pentru localizarea și clasificarea simultană sunt Single Shot MultiBox Detector (SSD) și You Only Look Once (YOLO). TF-ODAPI oferă funcționalitatea de a modifica parametrii acestor două arhitecturi și funcționează relativ bine pe setul de date.
Am explorat, de asemenea, dincolo de TF-ODAPI și, folosind TensorFlow și Keras, am experimentat cu arhitecturi precum Retinanet, Faster R-CNN, YOLOv3 și alte modele personalizate. În cele din urmă, o variantă de SSD ne-a oferit cele mai bune rezultate. YOLO a funcționat bine în ceea ce privește mAP atunci când l-am parametrizat cu un număr mare de cutii de ancorare.
Figura 4: Matrice de confuzie pentru SSD. Figura 5: Matricea de confuzie pentru YOLO.
În figurile 4 și 5 de mai sus, este important de remarcat nivelurile ridicate de confuzie intra-categorială atât în SSD, cât și în YOLO. În special, aceste modele pot clasifica foarte bine lucruri precum mașină vs. clădire, dar în interiorul categoriilor au performanțe mai puțin bune decât cele ideale. Această limitare este o funcție a provocării în sine și este clar că nu a fost abordată în mod eficient de abordările noastre.
Challenges in Pre Training
Pre-antrenarea este un pas important și necesar în utilizarea învățării profunde pentru a obține mai multă precizie de clasificare în imaginile din satelit. Echipa noastră a identificat un set de date paralele numit „DOTA: Un set de date pe scară largă pentru detectarea obiectelor în imaginile aeriene” care a furnizat 15 clase pentru a localiza și clasifica peste cutiile care nu erau aliniate pe axă, spre deosebire de xView. Scopul nostru a fost să învățăm caracteristici generale despre clasele din DOTA și apoi să continuăm antrenamentul pe xView cu un vector de ieșire mai mare pentru a acomoda cele 60 de clase ale sale și, sperăm, să observăm un câștig mare în acuratețe.
Pre-antrenamentul pe DOTA, totuși, nu a fost un succes. Deși am reușit să obținem mAP-uri de până la 0,75 pe acel set de date, am avut adesea performanțe mai slabe decât cele de bază odată ce l-am transferat pe xView. Cu toate acestea, am observat o creștere a scorului nostru F1. Având în vedere că aceasta nu era metrica de bătut, nu am continuat această linie de explorare. Pre-antrenarea pe un set de date mai mare, cum ar fi ImageNet, nu ne-a oferit nici câștiguri în mAP.
Looking Ahead
Utilizarea învățării profunde în imaginile din satelit nu numai că ajută la identificarea locului în care au loc crize, dar ajută și salvatorii să salveze vieți omenești. Scopul nostru cu xView a fost să demonstrăm că este posibil să construim un prototip foarte mare într-un timp relativ scurt pentru a rezolva obiectivele misiunii.
Succesul abordării noastre a fost validat de sistemul de punctaj al xView Challenge, care a punctat în mod automat propunerile depuse pe baza acurateței clasificării.
Într-un comunicat de presă recent, DIU a declarat că a început deja să testeze algoritmii câștigători din cadrul xView Challenge în urma uraganului Florence, ajutând personalul de urgență să identifice rapid zonele inundate și drumurile impracticabile.
.