Articles

Software Engineering Institute

W tym celu Defense Innovation Unit (DIU) niedawno uruchomił wyzwanie xView 2018 Detection Challenge, które zostało przeprowadzone przez Pentagon we współpracy z National Geospatial-Intelligence Agency, w celu poszukiwania innowacyjnych zastosowań technik widzenia komputerowego w celu dokładniejszego wykrywania obrazów w obrazach satelitarnych. Jak opisano w tym wpisie na blogu, pracowałem z zespołem badaczy w wyzwaniu xView, które przyniosło nam piąte miejsce. Ta działalność jest naszym najnowszym wysiłkiem w użyciu uczenia maszynowego i sztucznej inteligencji, aby pomóc rządowi federalnemu w wysiłkach HADR.

Deep Learning and Satellite Imagery

Skanowanie zdjęć satelitarnych w celu wykrycia obrazów i budynków oraz innych obiektów z przestrzeni kosmicznej stało się priorytetem dla rządu, ale często jest to powolny, żmudny proces podejmowany przez analityków, który wprowadza również potencjał błędu ludzkiego. Nawet w przypadku zestawów danych o wysokiej rozdzielczości i klasyfikacji, wyzwania mogą się pojawić, ponieważ analitycy napotykają problemy z przechowywaniem, przepustowością i pamięcią.

Stanem techniki dla wizji komputerowej za pośrednictwem satelity są obliczeniowe sieci neuronowe, które okazały się skuteczne w rozumowaniu o obrazach satelitarnych. Moim pierwszym krokiem w tej dziedzinie było wyzwanie IARPA Functional Map of the World (FMOW) Challenge. We współpracy z Laboratorium Fizyki Stosowanej Uniwersytetu Johna Hopkinsa, IARPA stworzyła zbiór ponad miliona multispektralnych obrazów satelitarnych przedstawiających miejsca na powierzchni Ziemi z ponad 200 krajów. Każdy obraz w zbiorze danych zawierał co najmniej jeden przykład obiektu lub obiektu lądowego, który należał do jednej z 63 kategorii (62 klasy i 1 dla fałszywego wykrywania), takich jak „obiekt wojskowy”, „stodoła” lub „plac budowy”

Naszym celem było sprawdzenie, czy możemy uruchomić funkcjonalny prototyp z rozsądną dokładnością. Jak opisano w artykule na temat naszej pracy, zastosowaliśmy kilka podejść do głębokiego uczenia się, używając wielu rodzajów konwencjonalnych sieci neuronowych:

Mieliśmy trzy główne podejścia do FMOW:

1) Użycie głębokiej konwencjonalnej sieci neuronowej (CNN) (o architekturze takiej jak DenseNet lub RetinaNet) wstępnie wytrenowanej na różnych zbiorach danych jako ogólnego ekstraktora cech w połączeniu z płytką CNN, która uczyła się specyficznych cech obrazu satelitarnego. Zostałyby one połączone przy użyciu w pełni połączonych warstw i ostatecznie dałyby wektor o długości 63 softmax.

2) Trening zespołu binarnych klasyfikatorów „jeden do wszystkich”

3) Oszukując i używając danych walidacyjnych, które zawierały fałszywe detekcje, moglibyśmy wytrenować maszynę wektorów wspierających (SVM), która nauczyłaby się rozróżniać fałszywe detekcje od „prawdziwych” danych, a następnie użyć metody 1 tylko na prawdziwych danych.

W końcu nasza pierwsza metoda odniosła największy sukces i była architekturą modelu, którą wielokrotnie iterowaliśmy, aby dostroić się do wyzwania.

Building off Functional Map of the World

Building off Functional Map of the World (FMoW), wyzwanie xView stosuje widzenie komputerowe do rosnącej ilości dostępnych obrazów z kosmosu, abyśmy mogli zrozumieć świat wizualny na nowe sposoby i zająć się szeregiem ważnych zastosowań. Poszukując algorytmów, które potencjalnie zautomatyzują komputerowe widzenie obrazów satelitarnych, xView Challenge udostępnia zawodnikom jeden z największych publicznie dostępnych zbiorów danych zdjęć satelitarnych i prosi ich o

  • zmniejszenie minimalnej rozdzielczości dla detekcji
  • poprawę efektywności uczenia
  • umożliwienie odkrycia większej liczby klas obiektów
  • poprawę detekcji klas drobnoziarnistych

Oprócz mnie, w skład zespołu xView Challenge wchodzili: 2nd Lt. Alex Fulton, absolwent Instytutu Technologii Sił Powietrznych USA i Instytutu Sieci Informacyjnych Uniwersytetu Carnegie Mellon; oraz Kaylene Stocking, studentka studiów licencjackich na Uniwersytecie w Pittsburghu.

Wyzwanie xView Challenge okazało się idealną konkurencją dla naszej pracy w Centrum Technologii Wschodzących SEI, które koncentruje się na identyfikacji, demonstracji, rozszerzaniu i stosowaniu nowych technologii w celu zaspokojenia krytycznych potrzeb rządowych. Promujemy świadomość i wiedzę rządu na temat tych nowych technologii i ich zastosowania, a także kształtujemy i wykorzystujemy badania akademickie i przemysłowe. Wyzwanie xView pozwoliło nam zbadać kilka podejść do wizji komputerowej, które chcieliśmy zweryfikować.

Reszta postu, który jest fragmentem raportu technicznego, który złożyliśmy w ramach naszego udziału w wyzwaniu, podkreśla fragmenty naszej pracy w wyzwaniu xView.

Czyszczenie danych

Zbiór danych xView jest duży – 1 milion obrazów obiektów z 60 klasami i rozdzielczością 0,3 metra – i oznaczony przy użyciu adnotacji pochodzących z tłumu dla ramek ograniczających i klas. Dokument, który DIUx dołączył do wydania zbioru danych, xView: Objects in Context in Overhead Imagery, omawia, że techniki zbierania danych z natury zaakceptowały poziom szumów w danych.

W naszej analizie, ilość błędnie oznaczonych danych i zaszumionych ramek była wystarczająco znacząca, aby wpłynąć na ogólne szkolenie modelu. Zbadaliśmy wiele technik czyszczenia danych i ostatecznie zdecydowaliśmy, że każda technika, którą wdrożyliśmy, byłaby niewykonalna ze względu na ograniczenia harmonogramu wyzwania. Dlatego też zdecydowaliśmy się zaakceptować wszelkie straty w dokładności, które byłyby wynikiem zaszumionych danych.

Przetwarzanie danych poprzez rozdrabnianie

Dzięki rozmiarowi obrazu i gęstości obiektów, napotkaliśmy wyzwania podczas próby przekazania całego obrazu do sieci neuronowej. Jak opisano w pracy, którą przesłaliśmy wraz z naszym zbiorem danych, model bazowy xView próbował podzielić każdy obraz na mniejsze kafelki za pomocą strategii chippingu, używając wielu rozmiarów chipów na poziomie 300 px2, 400 px2 i 500 px2 w jednym modelu (multi-res). Eksperymentowaliśmy z podejściem multi-res, ale zdestabilizowało ono nasz proces uczenia, więc pozostaliśmy przy wielkości chipa 300 px2.

Eksperymentowaliśmy również z prostą techniką nakładania chipów, która obejmowała nakładanie sąsiednich chipów o wielkość proporcjonalną do wielkości chipa (50 procent), co zapewniło 15-procentowy wzrost dokładności wykrywania, a także okazało się bardziej wykonalne w przypadku dużych obrazów satelitarnych.

Oparliśmy nasze rozumowanie na fakcie, że linia bazowa działała znacznie szybciej niż limit czasowy narzucony przez konkurencję oraz na naszej obserwacji, że wydajność wykrywania obiektów znacznie spadła w pobliżu krawędzi każdego chipa

Ulepszyliśmy model jeszcze bardziej, pozwalając, aby obiekty znajdujące się w pobliżu środka granicy między dwoma nakładającymi się chipami były wykrywane przez oba chipy. Zamiast podwójnego zliczania nakładających się detekcji, najpierw zastosowaliśmy tłumienie nie-maksymalne, aby zapewnić, że wyświetlana będzie tylko najbardziej pewna prognoza.

Tłumienie nie-maksymalne

Napotkaliśmy przypadki, w których nasze modele wyświetlały wiele nakładających się pól nad tym samym obiektem, co prowadziło do niższej całkowitej średniej precyzji (mAP). Aby rozwiązać ten problem, zastosowaliśmy tłumienie non-max, aby zachować tylko największe pole, które wystarczająco pasowało do obiektu.

Powiększenie ilości danych

Zwiększenie ilości dostępnych danych poprzez powiększenie jest powszechną praktyką w społeczności wizji komputerowej. Nasz zespół eksperymentował z różnymi losowymi kombinacjami rozszerzenia na chip do wielu epok szkoleniowych, aby ocenić, jak nasz model radził sobie z wariantami danych, w tym z następującymi:

  • przerzucanie poziome
  • przerzucanie pionowe
  • przekształcenia RGP na przestrzeń szarości
  • wahania jasności
  • dopasowania kontrastu
  • zniekształcenia barwy
  • nasycenie korekty
  • zniekształcenia kolorów
  • zniekształcenia ramki
  • zapadki do stałego współczynnika proporcji
  • odejmowanie średnich kanałów
  • obroty

Z tych rozszerzeń, przerzucanie poziome, przerzucanie pionowe i uprawy do stałego współczynnika proporcji spowodowały największy wzrost dokładności modelu i mAP. Odrzuciliśmy pozostałe rozszerzenia, które spowodowały minimalny lub ujemny wzrost wydajności.

Nierównowaga danych

Jak pokazano w poniższej tabeli, zbiór danych dostarczony przez xView był wysoce niezrównoważony, co skutkowało wypaczonym procesem uczenia, który uniemożliwił modelom uczenie się dokładnych reprezentacji nietypowych klas.

Tabela 1: Liczby klas…

CLASS COUNT

Building 287,074

Bus 6,316

Railway Vehicle 17

Próbkowanie losowe spowodowałoby znaczne niedoreprezentowanie klasy pojazdów szynowych, dlatego zastosowaliśmy odwrotnie proporcjonalne podejście do próbkowania, w którym niedoreprezentowane żetony zostały nadpróbkowane przez ich odwrotność w zbiorze danych. Nadpróbkowanie jest powszechnie stosowanym podejściem i zapewniło nam dobrą stabilność uczenia w niedostatecznie reprezentowanych klasach.

Tworzenie niestandardowych modeli

Aby zapewnić elastyczne, definiowane przez konfigurację podejście – zamiast pisania kodu w celu utworzenia modelu, edytuj plik konfiguracyjny, który zawiera tylko parametry, a ten plik automatycznie zbuduje model i wytrenuje go – do tworzenia skalowalnych modeli, DIUx dostarczył linię bazową, która została utworzona przy użyciu API wykrywania obiektów TensorFlow (TF-ODAPI).

Opracowaliśmy również niestandardowe modele przy użyciu TensorFlow i Keras, aby dostosować niestandardowe funkcje straty, różne architektury i różne rodzaje wstępnego szkolenia, musieliśmy szukać poza TF-OD API.

Ogółem, TF-OD API pozwoliło nam na tworzenie funkcjonalnych modeli i modyfikowanie różnych parametrów i architektur modeli. Jednakże, aby zbudować funkcjonalność, która nie jest objęta przeciętnym przypadkiem użycia, stwierdziliśmy, że konieczne jest zagłębienie się w niestandardowy kod przy użyciu TensorFlow i Keras.

Dwie z najbardziej popularnych architektur do jednoczesnej lokalizacji i klasyfikacji to Single Shot MultiBox Detector (SSD) i You Only Look Once (YOLO). TF-ODAPI zapewnia funkcjonalność umożliwiającą zmianę parametrów obu tych architektur i działa stosunkowo dobrze na tym zbiorze danych.

Badaliśmy również poza TF-ODAPI i przy użyciu TensorFlow i Keras eksperymentowaliśmy z architekturami takimi jak Retinanet, Faster R-CNN, YOLOv3 i innymi niestandardowymi modelami. Ostatecznie, wariant SSD zapewnił nam najlepsze wyniki. YOLO działał dobrze pod względem mAP, gdy sparametryzowaliśmy go za pomocą dużej liczby anchorboxów.

Rysunek 4: Macierz konfuzji dla SSD. Rysunek 5: Macierz konfuzji dla YOLO.

Na rysunkach 4 i 5 powyżej należy zauważyć wysoki poziom konfuzji wewnątrzkategorialnej zarówno w przypadku SSD, jak i YOLO. W szczególności, modele te mogą klasyfikować takie rzeczy jak samochód vs. budynek naprawdę dobrze, ale w obrębie kategorii radzą sobie gorzej niż idealnie. To ograniczenie jest funkcją samego wyzwania i jasne jest, że nie zostało ono skutecznie rozwiązane przez nasze podejście.

Wyzwania w szkoleniu wstępnym

Szkolenie wstępne jest ważnym i koniecznym krokiem w użyciu głębokiego uczenia do osiągnięcia większej dokładności klasyfikacji w obrazach satelitarnych. Nasz zespół zidentyfikował równoległy zbiór danych o nazwie „DOTA: A Large-scale Dataset for Object Detection in Aerial Images”, który dostarczył 15 klas do lokalizacji i klasyfikacji nad polami, które nie były wyrównane osiowo, w przeciwieństwie do xView. Naszym celem było poznanie ogólnych cech klas z DOTA, a następnie kontynuowanie treningu na xView z większym wektorem wyjściowym, aby pomieścić 60 klas i miejmy nadzieję zaobserwować duży przyrost dokładności.

Trening wstępny na DOTA, jednakże, nie zakończył się sukcesem. Podczas gdy byliśmy w stanie uzyskać mAP na poziomie 0.75 na tym zbiorze danych, często osiągaliśmy wyniki gorsze niż bazowe, gdy przenieśliśmy je do xView. Zaobserwowaliśmy jednak wzrost naszego wyniku F1. Ponieważ nie była to metryka do pobicia, nie kontynuowaliśmy tej linii poszukiwań. Wstępne szkolenie na większym zbiorze danych, takim jak ImageNet, również nie przyniosło nam zysków w mAP.

Patrząc w przyszłość

Użycie głębokiego uczenia w obrazach satelitarnych nie tylko pomaga zidentyfikować miejsca, w których dochodzi do kryzysów, ale również pomaga ratownikom ratować ludzkie życie. Naszym celem w przypadku xView było zademonstrowanie, że możliwe jest zbudowanie bardzo dużego prototypu w stosunkowo krótkim czasie, aby rozwiązać cele misji.

Sukces naszego podejścia został potwierdzony przez system punktacji xView Challenge, który automatycznie oceniał zgłoszenia na podstawie dokładności klasyfikacji.

Dyrekcja DIU stwierdziła w niedawnym komunikacie prasowym, że rozpoczęła już testowanie zwycięskich algorytmów z xView Challenge w następstwie huraganu Florence, pomagając pracownikom służb ratowniczych w szybkiej identyfikacji zalanych obszarów i nieprzejezdnych dróg.