Articles

Software Engineering Institute

Obranná inovační jednotka (DIU) proto nedávno vyhlásila výzvu xView 2018 Detection Challenge, kterou Pentagon uspořádal ve spolupráci s Národní agenturou pro geoprostorové zpravodajství a jejímž cílem bylo hledat inovativní využití technik počítačového vidění pro přesnější detekci obrazů na satelitních snímcích. Jak je popsáno v tomto příspěvku na blogu, pracoval jsem v rámci výzvy xView s týmem výzkumníků, který nám vynesl páté místo. Tato aktivita je naší nejnovější snahou o využití strojového učení a umělé inteligence na pomoc federální vládě v úsilí o HADR.

Hluboké učení a satelitní snímky

Skenování satelitních snímků za účelem detekce obrazů a budov a dalších objektů z vesmíru se stalo pro vládu prioritou, ale často se jedná o pomalý a pracný proces prováděný analytiky, který také přináší možnost lidské chyby. I v případě souborů dat s vysokým rozlišením a klasifikace se mohou objevit problémy, protože analytici narážejí na problémy s úložištěm, šířkou pásma a pamětí.

Nejnovějším stavem počítačového vidění prostřednictvím družic jsou výpočetní neuronové sítě, které se osvědčily při uvažování o družicových snímcích. Poprvé jsem do této oblasti vstoupil v rámci výzvy IARPA Functional Map of the World (FMOW). Ve spolupráci s laboratoří aplikované fyziky John Hopkins University vytvořila IARPA datovou sadu více než 1 milionu multispektrálních satelitních snímků míst na zemském povrchu z více než 200 zemí. Každý snímek v datové sadě obsahoval alespoň jeden příklad zařízení nebo pozemního objektu, který spadal do jedné z 63 kategorií (62 tříd a 1 pro falešnou detekci), například „vojenské zařízení“, „stodola“ nebo „staveniště“.

Naším cílem bylo zjistit, zda dokážeme zprovoznit funkční prototyp s přiměřenou přesností. Jak je uvedeno v článku o naší práci, použili jsme několik přístupů hlubokého učení s využitím mnoha variant konvolučních neuronových sítí:

Pro FMOW jsme měli tři hlavní přístupy:

1) Použití hluboké konvoluční neuronové sítě (CNN) (s architekturou jako DenseNet nebo RetinaNet) předtrénované na různých souborech dat jako extraktor obecných rysů spolu s mělkou CNN, která se učila specifické rysy satelitních snímků. Ty by se zkombinovaly pomocí plně propojených vrstev a nakonec by výstupem byl vektor softmax délky 63.

2) Trénování souboru binárních klasifikátorů „jeden proti všem“

3) „Podváděním“ a použitím validačních dat, která obsahovala falešné detekce, bychom mohli trénovat stroj s podpůrnými vektory (SVM), který by se naučil rozlišovat mezi falešnými detekcemi a „skutečnými“ daty, a pak použít metodu 1 pouze na skutečných datech.

Nakonec byla naše první metoda nejúspěšnější a byla to architektura modelu, kterou jsme několikrát iterovali, abychom ji vyladili pro tuto výzvu.

Vycházíme z funkční mapy světa

Výzva xView vychází z funkční mapy světa (FMoW) a aplikuje počítačové vidění na rostoucí množství dostupných snímků z vesmíru, abychom mohli pochopit vizuální svět novými způsoby a řešit řadu důležitých aplikací. Při hledání algoritmů pro potenciální automatizaci počítačového vidění družicových snímků, xView Challenge poskytuje soutěžícím jeden z největších veřejně dostupných souborů dat družicových snímků a žádá je, aby

  • snížili minimální rozlišení pro detekci
  • zlepšili efektivitu učení
  • umožnili objevit více tříd objektů
  • zlepšili detekci jemných tříd

V týmu xView Challenge byl kromě mě také 2nd Lt. Alex Fulton, postgraduální student Technologického institutu amerického letectva a Institutu informačních sítí Univerzity Carnegie Mellon; a Kaylene Stocking, studentka bakalářského studia na Pittsburské univerzitě.

Výzva xView se ukázala jako ideální soutěž pro naši práci v Centru nových technologií SEI, které se zaměřuje na identifikaci, demonstraci, rozšiřování a používání nových technologií pro uspokojování kritických potřeb vlády. Kromě formování a využívání akademického a průmyslového výzkumu podporujeme vládní povědomí a znalosti o těchto nových technologiích a jejich využití. Výzva xView Challenge nám umožnila prozkoumat několik přístupů k počítačovému vidění, které jsme chtěli ověřit.

Zbytek příspěvku, který je výtahem z technické zprávy, kterou jsme předložili v rámci naší účasti ve výzvě, zdůrazňuje výňatky z naší práce ve výzvě xView Challenge.

Čištění dat

Soubor dat xView je velký – 1 milion snímků objektů s 60 třídami a rozlišením 0,3 metru – a je označen pomocí anotací ohraničujících boxů a tříd z davu. Dokument, který DIUx přiložil k vydání datové sady, xView:

V naší analýze bylo množství chybně označených dat a zašuměných ohraničujících boxů dostatečně významné na to, aby ovlivnilo celkové trénování modelu. Prozkoumali jsme několik technik čištění dat a nakonec jsme se rozhodli, že jakákoli technika, kterou bychom implementovali, by byla vzhledem k časovým omezením úlohy neproveditelná. Rozhodli jsme se proto přijmout veškeré ztráty na přesnosti, které by byly důsledkem zašuměných dat.

Zpracování dat pomocí čipování

Vzhledem k velikosti obrazu a hustotě objektů jsme narazili na problémy při pokusu předat celý obraz neuronové síti. Jak je uvedeno v dokumentu, který jsme předložili s naší sadou dat, základní model xView se pokusil rozdělit každý obraz na dlaždice menší velikosti pomocí strategie čipování, přičemž v jednom modelu (multi-res) použil více velikostí čipů o velikosti 300 px2, 400 px2 a 500 px2. Experimentovali jsme s přístupem multi-res, ale destabilizoval náš proces učení, takže jsme zůstali u velikosti čipu 300 px2.

Experimentovali jsme také s jednoduchou technikou překrývání čipů, která zahrnovala překrývání sousedních čipů o množství úměrné velikosti čipu (50 %), což poskytlo 15procentní zvýšení přesnosti detekce a také se ukázalo jako schůdnější pro použití s velkými satelitními snímky.

Vycházeli jsme ze skutečnosti, že základní model pracoval výrazně rychleji než časový limit stanovený soutěží, a z našeho pozorování, že výkonnost detekce objektů výrazně klesla v blízkosti okrajů každého čipu

Model jsme ještě vylepšili tím, že jsme nechali objekty v blízkosti středu hranice mezi dvěma překrývajícími se čipy detekovat oběma čipy. Namísto dvojího započítávání překrývajících se detekcí jsme nejprve použili potlačení bez maximalizace, abychom zajistili, že bude vypsána pouze nejjistější předpověď

Potlačení bez maximalizace

Setkali jsme se s případy, kdy naše modely vypisovaly více překrývajících se políček nad stejným objektem, což vedlo k nižší celkové průměrné přesnosti (mAP). Abychom tento problém vyřešili, použili jsme nemaximální potlačení, abychom zachovali pouze největší box, který dostatečně vyhovoval objektu.

Rozšíření dat

Zvětšení množství dostupných dat pomocí rozšíření je v komunitě počítačového vidění běžnou praxí. Náš tým experimentoval s různými náhodnými kombinacemi augmentací na čip do několika trénovacích epoch, aby vyhodnotil, jak si náš model vede s variantami v datech, včetně následujících:

  • horizontální převrácení
  • vertikální převrácení
  • konverze RGP na šedý prostor
  • kolísání jasu
  • úpravy kontrastu
  • zkreslení odstínu
  • saturace. úpravy
  • zkreslení barev
  • roztřesení ohraničujícího rámečku
  • skřípnutí na pevný poměr stran
  • odečtení středního kanálu
  • otočení

Těchto rozšíření, horizontálních převrácení, vertikálních převrácení a ořezů na pevný poměr stran došlo k nejvyššímu zvýšení přesnosti modelu a mAP. Ostatní augmentace jsme vyřadili, protože vedly k minimálnímu nebo zápornému nárůstu výkonnosti.

Nevyváženost dat

Jak ukazuje následující tabulka, datová sada poskytnutá společností xView byla značně nevyvážená, což vedlo ke zkreslenému procesu učení, který modelům bránil naučit se přesné reprezentace neobvyklých tříd.

Tabulka 1: Počty tříd….

POČET TŘÍD

Budovy 287 074

Autobusy 6 316

Železniční vozidla 17

Náhodný přístup k výběru vzorků by silně podreprezentoval třídu železničních vozidel, proto jsme použili inverzně proporcionální přístup k výběru vzorků, při kterém byly nedostatečně zastoupené čipy převzorkovány o jejich inverzní podíl v souboru dat. Převzorkování je běžný přístup a poskytlo nám dobrou stabilitu učení v nedostatečně zastoupených třídách.

Vývoj vlastních modelů

Abychom poskytli flexibilní přístup definování podle konfigurace – namísto psaní kódu pro vytvoření modelu stačí upravit konfigurační soubor, který obsahuje pouze parametry, a tento soubor automaticky vytvoří model a natrénuje jej – k vytváření škálovatelných modelů, poskytl DIUx základní model, který byl vytvořen pomocí rozhraní TensorFlow pro detekci objektů (TF-ODAPI).

Vytvářeli jsme také vlastní modely pomocí rozhraní TensorFlow a Keras, abychom se přizpůsobili vlastním ztrátovým funkcím, různým architekturám a různým druhům předtrénování, museli jsme se podívat mimo rozhraní TF-OD API.

Obecně nám rozhraní TF-OD API umožnilo vytvářet funkční modely a upravovat různé parametry a architektury modelů. Abychom však mohli vytvořit funkce, které nejsou pokryty průměrným případem použití, bylo nutné sáhnout hlouběji do vlastního kódu pomocí TensorFlow a Keras.

Dvě nejběžnější architektury pro současnou lokalizaci a klasifikaci jsou Single Shot MultiBox Detector (SSD) a You Only Look Once (YOLO). Rozhraní TF-ODAPI poskytuje funkce pro změnu parametrů obou těchto architektur a na souboru dat funguje poměrně dobře.

Zkoumali jsme také možnosti mimo rozhraní TF-ODAPI a pomocí TensorFlow a Keras jsme experimentovali s architekturami, jako jsou Retinanet, Faster R-CNN, YOLOv3 a další vlastní modely. Nakonec nám nejlepší výsledky poskytla varianta SSD. YOLO fungoval dobře z hlediska mAP, když jsme jej parametrizovali pomocí velkého počtu kotevních polí

Obrázek 4: Matice zmatení pro SSD. Obrázek 5: Matice zmatenosti pro YOLO.

Na obrázcích 4 a 5 výše je důležité si všimnout vysoké úrovně zmatenosti uvnitř kategorie jak u SSD, tak u YOLO. Zejména tyto modely dokážou klasifikovat věci jako auto vs. budova opravdu dobře, ale v rámci kategorií si vedou méně než ideálně. Toto omezení je funkcí samotné úlohy a je zřejmé, že se s ním naše přístupy nedokázaly efektivně vypořádat.

Problémy v předběžném tréninku

Předběžný trénink je důležitým a nezbytným krokem při používání hlubokého učení k dosažení větší přesnosti klasifikace satelitních snímků. Náš tým identifikoval paralelní datovou sadu nazvanou „DOTA: A Large-scale Dataset for Object Detection in Aerial Images“, která poskytovala 15 tříd pro lokalizaci a klasifikaci přes s boxy, které nebyly na rozdíl od xView osově zarovnané. Naším cílem bylo naučit se obecné vlastnosti o třídách z DOTA a poté pokračovat v tréninku na xView s větším výstupním vektorem, aby se do něj vešlo 60 tříd, a snad pozorovat velký nárůst přesnosti.

Trénink na DOTA však nebyl úspěšný. Na této datové sadě se nám sice podařilo dosáhnout mAP až 0,75, ale po převedení na xView jsme často dosahovali horších výsledků, než je základní hodnota. Zaznamenali jsme však nárůst skóre F1. Protože to nebyla metrika, kterou bychom měli překonat, nepokračovali jsme v tomto směru zkoumání. Ani předtrénování na větší datové sadě, jako je ImageNet, nám nepřineslo zisky v mAP.

Pohled do budoucna

Použití hlubokého učení v satelitních snímcích nejen pomáhá určit, kde dochází ke krizovým situacím, ale také pomáhá záchranářům zachraňovat lidské životy. Naším cílem v soutěži xView bylo ukázat, že je možné v relativně malém čase vytvořit velmi rozsáhlý prototyp pro řešení cílů mise.

Úspěšnost našeho přístupu potvrdil bodovací systém soutěže xView Challenge, který automaticky hodnotil přihlášky na základě přesnosti klasifikace.

DIU v nedávné tiskové zprávě uvedl, že již začal testovat vítězné algoritmy ze soutěže xView Challenge v souvislosti s hurikánem Florence, které pomáhají záchranářům rychle identifikovat zaplavené oblasti a neprůjezdné silnice.

Díky tomu, že se nám to podařilo, můžeme se těšit na další výsledky.