• Nie Znaleziono Wyników

Sieci neuronowe w przetwarzaniu danych przestrzennych

W dokumencie W POLITECHNIKA POZNAŃSKA (Stron 36-41)

2. Analiza stanu wiedzy

2.5. Sieci neuronowe w przetwarzaniu danych przestrzennych

2.5.1 Podstawy sieci neuronowych

Uniwersalną, niezależną od właściwości sensora reprezentacją trójwymiarowych danych geometrycznych jest chmura punktów. Bezpośrednie użycie tej formy danych w metodach uczenia maszynowego jest jednak trudnym zadaniem. Nie jest możliwe użycie dojrzałych i skutecznych architektur znanych z przetwarzania obrazów wprost do analizy chmur punktów. Sposób, w jaki należy przekazać dane o geometrii przestrzeni do algorytmu uczenia maszynowego jest otwartym zagadnieniem badawczym.

Sieci neuronowe są obecnie najlepszym rozwiązaniem dla większości zadań z zakresu wizji komputerowej. Korzystają ze dwuwymiarowej struktury danych typowej dla zdjęć (również dla dźwięku po szybkiej transformacie Fouriera lub tekstu po operacji osadzenia). Głównym czynnikiem ich sukcesu jest możliwość użycia dużych zbiorów danych do generowania ogólnych, uniwersalnych cech obrazów, które są lepiej przystosowane do danych i przewyższają skutecznością definiowane na stałe cechy i deskryptory [62].

Obecnie stosowane sieci neuronowe składają się głównie z warstw konwolucyjnych (ang.

convolutional layers) oraz zbierających dane (ang. pooling). Warstwa konwolucyjna splata dostarczone dane z filtrami i tym samym przekształca na cechy, które zawierają informację wyższego poziomu. Na przykład informacja o kolorze punktu jest zamieniana na cechę informującą o obecności w danym punkcie narożnika, lub w dalszych warstwach, na informację o wystąpieniu kącika oka człowieka. Liczba filtrów i ich wielkość, jest definiowana na etapie projektowania sieci neuronowej. Filtry mogą być zarówno dwuwymiarowe, dla obrazów płaskich, jak i trójwymiarowe, do przetwarzania reprezentacji wolumetrycznej geometrii przestrzennej. Wartości filtrów zmieniają się w procesie uczenia w procedurze wstecznej propagacji gradientu, na podstawie dostarczanych danych uczących. Warstwa zbierająca dane ma za zadanie zmniejszyć wymiary danych, przez zastąpienie kilku sąsiednich cech jedną. Najczęściej używa się funkcji maksimum, w celu wybrania

cechy o największej wartości, po której można spodziewać się największej zdolności do rozróżnienia właściwości reprezentacji w punkcie. Rzadziej stosowana jest średnia, która uwzględnia wartości cech we wszystkich redukowanych punktach. Kombinacja warstw konwolucyjnych i zbierających utrzymuje w procesie przetwarzania przez kolejne bloki warstw prawie stałą ilość danych, poprzez zwiększanie liczby kanałów, głębi znaczeniowej, przy jednoczesnym zmniejszaniu rozdzielczości przestrzennej reprezentacji.

Czasami zachodzi konieczność zebrania pewnych cech danych w jeden wektor o stałej liczbie elementów. Do tego celu używany jest wielowarstwowy perceptron, będący prostym modelem sieci neuronowej. Zawiera warstwy w pełni połączone, w których każdy element jest połączony ze wszystkimi elementami w następnej warstwie, dlatego nie nadaje się do przetwarzania dużych ilości danych. Zbierając całość informacji, nie ma możliwości przetwarzania lokalnego kontekstu punktów danych, jak ma to miejsce w przypadku sieci konwolucyjnych.

2.5.2 Przetwarzanie trójwymiarowych reprezentacji przez sieci neuronowe

Przetwarzanie chmur punktów rzutowanych na obrazy

Podejście to polega na użyciu sprawdzonych technik przetwarzania obrazów do analizy danych trójwymiarowych [63]. Stosowane jest generowanie na podstawie trójwymiarowej reprezentacji obiektu zestawu obrazów odwzorowujących obiekt z wielu punktów widzenia. Następnie obrazy te są przetwarzane przez klasyczne sieci neuronowe do przetwarzania zdjęć.

Technika ta okazuje się niejednokrotnie bardziej skuteczna niż bezpośrednie przetwarzanie danych przestrzennych. Wynika to z kilku czynników. Pierwszym jest efektywność płaskiej reprezentacji obiektu. Rozdzielczość obiektów na obrazie może być zdecydowanie wyższa niż w przypadku reprezentacji wolumetrycznej przy tej samej wielkości danych, dlatego część charakterystycznych punktów i niezmienników obiektu może być widoczna na reprezentacji płaskiej, a nie w skwantyfikowanej reprezentacji przestrzennej. Drugą przyczyną jest dojrzałość algorytmów do przetwarzania obrazu, podczas gdy przetwarzanie danych trójwymiarowych wprost dopiero rozwija się. Wiąże się to również z dostępnością danych umożliwiających uczenie algorytmów. Opisane zbiory zdjęć są wciąż wielokrotnie bardziej obszerne niż zbiory zawierające reprezentacje trójwymiarowe. Detektory obiektów na obrazach płaskich mogą posługiwać się ogólnymi cechami nauczonymi na podstawie tych ogromnych zbiorów zdjęć. W przypadku uczenia algorytmów na reprezentacjach 3D, różnorodność obiektów, a także zakłócenia i niedoskonałości, które są skorelowane z typem zastosowanego sensora, sprawiają, że transfer cech wyuczonych na jednym zbiorze danych do pracy nad innym nie przynosi często dużych korzyści. Możliwe jest, że

sytuacja zmieni się wraz z publikowaniem dużych zbiorów opisanych trójwymiarowych danych treningowych, co zwiększy znacząco tempo postępu w implementacji algorytmów do przetwarzania przestrzennych reprezentacji, jak ImageNet [64] i COCO [65] ułatwiły implementacje i walidację algorytmów w dziedzinie przetwarzania obrazów.

Procedura ta ma ograniczone użycie w przypadku reprezentacji zrekonstruowanych na podstawie jednego wzajemnego położenia kamery 3D i obiektu, gdyż obrazy wygenerowane z wielu ujęć wirtualnej kamery będą niekompletne. Stosuje się ją, gdy należy zaklasyfikować już zrekonstruowaną reprezentację trójwymiarową lub model CAD do jednej z zadanych grup.

Najprostszym sposobem realizacji tego podejścia jest przekazanie do klasycznego detektora wielu płaskich obrazów przedstawiających obiekt z wielu kierunków, połączenie wyników przez zbieranie cech funkcją maksimum i wprowadzenie dodatkowych warstw generujących prawdopodobieństwa przynależności do poszczególnych klas.

Przetwarzanie danych wolumetrycznych

Zorganizowanie trójwymiarowych reprezentacji obiektów w formę przestrzennej siatki jest naturalnym podejściem inspirowanym sposobem zapisu obrazów. Analogicznie do płaskich zdjęć, gdzie płaszczyzna jest skwantyfikowana i podzielona na kwadraty, w zapisie wolumetrycznym, przestrzeń dzielona jest na podstawowe sześciany, zwane wokselami. Podobnie łatwo jest przekształcić konwolucyjną sieć neuronową [66], przeznaczoną do analizy obrazów płaskich, do przetwarzania przedstawionej wolumetrycznie sceny przestrzennej, przez dodanie kolejnego wymiaru do tensora reprezentującego dane oraz filtry [11], [67].

Niestety, przeniesienie wprost architektur i formy danych nie daje zadowalających rezultatów.

Główną przyczyną jest ilość danych. W przypadku zapisu wolumetrycznego, rośnie ona proporcjonalnie do sześcianu wymiaru siatki, dlatego należy przetwarzać w jednej iteracji jedynie niewielkie fragmenty całej sceny lub znacząca ograniczyć jej rozdzielczość. W publikacjach opisuje się zwykle sieci neuronowe operujące na siatkach o wymiarach od 30 × 30 × 30 do 64 × 64 × 64.

Częściowym rozwiązaniem tego problemu jest uwzględnienie rzadkiej struktury siatek trójwymiarowych. Zauważono, że większość wokseli w przestrzennej reprezentacji jest pusta i niepotrzebnie wykonywane jest mnożenie uczonych filtrów przez zero. W propozycji przedstawionej w [68] zamieniono małe gęste filtry przetwarzający niewielki fragment siatki na rozproszone filtry próbkujące, które mnożone są jedynie z kilkoma punktami, ale rozproszonymi w całej objętości siatki. Koncepcję zastosowania ruchomego okna i algorytmu głosowania jako ekwiwalentu konwolucji po rozproszonych danych przedstawiono w [69].

Przetwarzanie deskryptorów

Podejścia oparte na technikach uczenia maszynowego często mają problem z zachowaniem niewrażliwości na obroty chmur punktów. Obliczone deskryptory są zależne od położenia obiektu względem początku układu współrzędnych sensora. Ograniczeń tych nie posiada większość ręczenie definiowanych deskryptorów, dzięki stosowaniu lokalnych układów współrzędnych, w których opisywana jest geometria. W pracy [70] rozwiązano ten problem, przez wstępne obliczenie prostych deskryptorów opartych na odległości i kącie pomiędzy normalnymi pary punktów [71], które następnie przetwarzano przez sieć w formie autoenkodera opartego o wielowarstwowe perceptrony. Jest to podejście uczone, jest więc w stanie przekształcać ręcznie zdefiniowany deskryptor do formy zoptymalizowanej do rozpoznawania obiektów w konkretnym zbiorze danych.

Przetwarzanie chmur punktów

Najbardziej przejrzystą formą użycia konwolucyjnych sieci neuronowych do przetwarzania trójwymiarowych chmur punktów jest rzutowanie ich na trójwymiarową siatkę o stałej wielkości podstawowego sześcianu, czyli woksela. Jak jednak wykazano, takie podejście prowadzi do zbyt dużej ilości zajętej pamięci i nieakceptowalnych czasów przetwarzania [70], [72]. Rozwiązaniem jest znaczne ograniczenie wymiarów siatki. Typowa siatka trójwymiarowa o wymiarach 64 × 64 × 64 woksele zawiera tyle samo punktów, co płaskie zdjęcie o wymiarze 512 × 512 pikseli, jednak rozdzielczość jest zdecydowanie niższa, a reprezentacja obiektu będzie bardzo uproszczona.

Pominięcie tych ograniczeń jest możliwe, przez opracowanie architektury sieci neuronowej, która przetwarza bezpośrednio chmurę punktów lub jedną z jej struktur indeksujących. Opracowano bazowe architektury, przetwarzające chmury sprowadzone do formy drzewa k-wymiarowego [73] oraz drzewa ósemkowego [74]. Podobny efekt osiągnięto przez przekształcanie chmur punktów do reprezentacji statystycznej przez użycie wektorów Fishera [75] i dalsze przetwarzanie przez typowe trójwymiarowe warstwy konwolucyjne [76].

Przełomem, przedstawionym w [77], jest architektura PointNet, dająca możliwość przetwarzania przez sieć neuronową nieuporządkowanej chmury punktów w sposób bezpośredni. W tym przypadku niezbędne jest zapewnienie niewrażliwości sieci na zmianę kolejności punktów. Dla sieci o N punktach, każda z N! permutacji tej samej listy punktów powinna zwracać dokładnie ten sam wynik. Dodatkowo wyniki sieci powinny być niewrażliwe na przesunięcia i obroty danych.

Rozwiązanie opiera się na użyciu prostych sieci (perceptronów wielowarstwowych) współdzielących wagi, które przetwarzają każdy punkt niezależnie. Następnie warstwa zbierająca funkcją maksimum wybiera cechy, które mają największe znaczenie i na ich podstawie można

sklasyfikować chmurę punktów. Niewrażliwość na obrót chmury punktów osiągnięto przez przetwarzanie zarówno punktów, jak i generowanych przez perceptrony cech, przy pomocy osobnych sieci generujących na podstawie danych macierze transformacji, które sprowadzają dane do uspójnionej formy. Wynikiem przetworzenia jest jedna macierz transformacji dla punktów i jedna dla cech, którymi odpowiednio przekształca się punkty i cechy chmury. Niewrażliwość na permutacje w kolejności punktów zapewnia zastosowanie warstwy zbierającej cechy przy użyciu funkcji maksimum, której wynik jest niezależny od kolejności podanych do niej wektorów cech.

Problemem tej architektury jest ograniczona możliwość uwzględniania sąsiedztwa punktów.

Naturalnym rozwinięciem jest wprowadzenie algorytmu hierarchicznych zależności pomiędzy punktami w kilku skalach w architekturze PointNet++ opracowanej przez zespół z Uniwersytetu Stanforda [78]. Powstało również kilka podobnych metod, realizujących bezpośrednie przetwarzanie chmur punktów przy użyciu wielowarstwowych perceptronów [79]–[81].

Najnowszym trendem w pracach naukowych jest próba zastosowania typowych warstw konwolucyjnych, ale nie w przestrzeni sztywnej, gęstej siatki, lecz poprzez stosowanie filtrów w postaci rzadko rozmieszczonych punktów próbkujących trójwymiarową reprezentację sceny.

W filtrach uczone są nie tylko wagi, ale również położenie najistotniejszych punktów których wartość będzie uczestniczyła w obliczaniu wartości cech [82], [83].

Wymienione przykłady sprawdzone zostały w zadaniach klasyfikacji i segmentacji chmur punktów. Nie są znane autorowi publikacje, w których zastosowano architekturę operującą bezpośrednio na chmurze punktów bez rzutowania jej na przestrzenną siatkę do lokalizacji obiektów lub generowanie deskryptorów mogących służyć do realizacji tego zadania. Przykładowo w [74] sieć została przetestowana w zadaniu szacowania orientacji, ale jedynie dla pełnego modelu, bez rozpraszających elementów tła i tylko dla kątów obrotu nie większych niż 15°. Przedstawione metody nie są przystosowane do dopasowywania chmur punktów, a tym bardziej do wyznaczania położenia i orientacji modeli chmur punktów. W pracy [84] udowodniono, że architektura typu Pointnet nie jest odporna na obroty modeli rozpoznawanych w procesie segmentacji części. W publikacji [85] przedstawiono tezę, że powodem małej przydatności tych podejść jest brak stosunkowo łatwo jest wygenerować wynik bezpośrednio. Inaczej jest w przypadku szacowania

położenia modeli w chmurach punktów. Opracowano już pierwsze architektury sieci, które generują wprost macierze transformacji [85], jednak łatwiejszym i pewniejszym sposobem jest wygenerowanie lokalnych deskryptorów punktów i przekazanie ich do klasycznych i sprawdzonych algorytmów ich dopasowywania.

3DMatch [86] jest metodą, która uczy się generowania deskryptorów w układzie sieci syjamskiej. W jednej iteracji procesu uczenia, dwie sieci o współdzielonych wagach, przetwarzają dwa fragmenty chmury punktów z pojedynczej reprezentacji RGB-D. Do sieci podawane są przykłady pozytywne, czyli fragmenty reprezentujące jeden obiekt z dwóch różnych punktów widzenia lub przykłady negatywne, w którym każda z sieci przetwarza chmurę punktów reprezentującą różne obiekty. Funkcja błędu bazuje na odległości pomiędzy wygenerowanymi deskryptorami fragmentu, dla przykładów pozytywnych powinna dążyć do zera, dla negatywnych, powinna być większa od zadanego progu. Zastosowaną architekturą jest trójwymiarowa sieć konwolucyjna przetwarzająca dane w formie wolumetrycznej. Generowane są deskryptory mające wymiar 512, a do dopasowywania chmur punktów używana jest standardowa procedura RANSAC.

Użycie reprezentacji wolumetrycznej ogranicza wielkość przetwarzanego fragmentu do 30 × 30 × 30, a deskryptor każdego punktu jest obliczany osobno.

Przetwarzanie obrazów jako wstęp do analizy danych przestrzennych

Logicznym podejściem wydaje się połączenie dwóch podejść, to jest przetwarzania obrazów w celu łatwiejszej detekcji obiektów oraz przetwarzania reprezentacji trójwymiarowej w celu uzyskania precyzyjnej informacji o położeniu obiektu w przestrzeni, z uwzględnieniem obrotów. W opracowaniu [72] przedstawiono takie hybrydowe rozwiązanie. Detektor operujący na płaskim obrazie wskazuje prostokąt okalający obiekt i podaje jego klasę. Następnie z chmury punktów wycina się punkty, których rzutem jest fragment obrazu ograniczony granicami detekcji. Dalej fragment ten jest przetwarzany przez dostosowaną sieć typu Pointnet++, która na podstawie takiej częściowej chmury punktów generuje współrzędne prostopadłościanu okalającego trójwymiarowy obiekt. Sieć podaje tylko jeden kąt obrotu, względem osi pionowej wyznaczonej przez grawitację.

Metoda ta nie realizuje pełnego wyznaczania położenia obiektu w chmurze punktów.

W dokumencie W POLITECHNIKA POZNAŃSKA (Stron 36-41)