• Nie Znaleziono Wyników

W POLITECHNIKA POZNAŃSKA

N/A
N/A
Protected

Academic year: 2021

Share "W POLITECHNIKA POZNAŃSKA"

Copied!
120
0
0

Pełen tekst

(1)

POLITECHNIKA POZNAŃSKA

WYDZIAŁ BUDOWY MASZYN I ZARZĄDZANIA

ROZPRAWA DOKTORSKA

W YZNACZANIE POZYCJI OBIEKTÓW W OTOCZENIU ROBOTA PRZEMYSŁOWEGO NA PODSTAWIE ZDJĘĆ I CHMUR PUNKTÓW

Jakub WOJCIECHOWSKI

Poznań 2019

(2)
(3)

Promotor

dr hab. inż. Olaf CISZAK prof. nadzw.

Politechnika Poznańska

Instytut Technologii Mechanicznej

Zakład Projektowania Technologii

(4)
(5)

Streszczenie

Niniejsza rozprawa opisuje połączenie pomiędzy dwoma dziedzinami, analizą danych przestrzennych i robotyką przemysłową. Głównym tematem prac jest lokalizacja obiektów w trójwymiarowych reprezentacjach otoczenia robotów przemysłowych. Opracowane rozwiązania są testowane z punktu widzenia możliwości ich zastosowania w zadaniach chwytania obiektów z nieuporządkowanych stosów, wykonywania operacji technologicznych przy zmiennym położeniu obiektów oraz montażu zrobotyzowanego.

Wkład naukowy polega na: 1) opracowaniu własnego zrobotyzowanego skanera laserowego, 2) wypracowaniu skutecznej sekwencji algorytmów analizy chmur punktów, 3) opracowaniu uczących się metod lokalizacji obiektów w chmurach punktów. Przedstawiono również techniki integracji wypracowanych algorytmów ze zrobotyzowanym stanowiskiem przemysłowym oraz podano dostosowane procedury kalibracji. Praca jest krokiem w kierunku autonomicznych sterowników robotów przemysłowych będących w stanie dostosowywać akcje do zastanego stanu otoczenia.

Abstract

This dissertation describes the connection between two fields, spatial data analysis and industrial robotics. The main subject of works is the pose estimation of objects in the three-dimensional representations of the surroundings of industrial robots. The developed solutions are tested in terms of feasibility of grasping objects from unordered stacks, performing technological operations at variable location of objects and robotic assembly.

The scientific contribution consists in: 1) developing new robotic laser scanner setup, 2) the

effective sequence of point cloud analysis algorithms, 3) the machine learning method for locating

objects in point clouds. Techniques of integrating the developed algorithms with the industrial robot

and appropriate calibration procedures are also presented. The study is a step towards autonomous

controllers of industrial robots that are able to adapt actions to the variable environment.

(6)
(7)

Spis treści

Streszczenie...5

1. Wstęp...11

2. Analiza stanu wiedzy...13

2.1. Trójwymiarowe reprezentacje geometrii...13

2.2. Zadania realizowane na danych przestrzennych...19

2.3. Zbiory danych...22

2.4. Dopasowywanie chmur punktów na podstawie deskryptorów...27

2.5. Sieci neuronowe w przetwarzaniu danych przestrzennych...36

2.6. Podsumowanie analizy stanu wiedzy...42

3. Zrobotyzowany skaner laserowy...47

3.1. Podstawy...47

3.2. Zasada działania skanera...47

3.3. Praktyczna realizacja...57

3.4. Weryfikacja rozwiązania...59

4. Dostosowanie programu robota do pozycji obiektów technologicznych...65

4.1. Podstawy...65

4.2. Zasada działania systemu...66

4.3. Dynamiczne dostosowywanie programu...71

4.4. Weryfikacja rozwiązania...73

5. Sterowanie robotem przemysłowym przy użyciu skanera 3D...75

5.1. Podstawy...75

5.2. Rozpoznawanie obiektów w chmurach punktów...77

5.3. Weryfikacja rozwiązania...82

6. Wyznaczanie pozycji obiektów przy użyciu uczenia maszynowego...89

6.1. Podstawy...89

6.2. Generowanie deskryptorów przez algorytm uczenia maszynowego...90

6.3. Weryfikacja rozwiązania...97

7. Podsumowanie...109

Bibliografia...111

(8)
(9)

Spis stosowanych symboli i akronimów

| |

- liczba elementów zbioru

‖ ‖

- odległość euklidesowa

α

- kąt triangulacji

Δ x , Δ y , Δ z

- rozdzielczość pomiaru w poszczególnych kierunkach

Δ R , Δ t

- błąd obrotu, błąd odchylenia

Δ R

t

, Δ t

t - graniczne błędy obrotu i odchylenia d - odległość, przesunięcie

f - ogniskowa obiektywu

f(X) - funkcja przetwarzająca chmurę punktów X F - miara jakości dopasowania

FOV - zakres pola widzenia, ang. (Fielf of View)

ICP - metoda iteracyjnego zbliżania punktu, (ang. Iterative Closest Point) id - identyfikator

k

- wymiar elementu światłoczułego sensora kamery, współczynnik proporcjonalności pomiędzy układem sensora, a układem kamery [mm/pix]

k

i - identyfikator klasy i-tego elementu

K - wymiar deskryptora, liczba elementów wektora cech

L - funkcja kary algorytmu uczenia maszynowego lub funkcja optymalizowana

LSE - rozwiązanie układu równań metodą najmniejszych kwadratów (ang. Least Square Error) M - model obiektu, którego pozycja w chmurze punktów jest wyznaczana

n - wektor normalny do powierzchni

n

u

, n

v - liczba pikseli obrazu

N

- sąsiedztwo punktu

P

- lista pozycji robota, ścieżka

Pi - i-ty punkt w przestrzeni, Pi

∈ℝ

3

, P

i

=(P

ix

, P

iy

, P

iz

)

Pi

A - współrzędne i-tego punktu w układzie współrzędnych A r - przesunięcie pomiędzy punktami r =(rx

,r

y

, r

z

) r

- promień strefy definiującej sąsiedztwo punktów

R - wynik dopasowania modelu do chmury punktów, składający się z identyfikatora modelu i transformacji, dopasowującej model do sceny, R=(idi

, T

MS

)

RAB - macierz obrotu pomiędzy układami współrzędnych A i B, RAB

∈SO(3) R

- lista rozpoznanych modeli w chmurze punktów sceny,

R

=

{(id , T

MS

)}

RANSAC - metoda losowego uzgadniania próbki, (ang. Random Sample Consensus)

s

a - odchylenie standardowe od średniej zmiennej a

S - zorientowana chmura punktów S={u

}

(10)

S

R - wskaźnik sukcesu, miara jakości dopasowania modeli do scen

SSE - miara błędów, suma kwadratów odchyleń (ang. Sum of Squared Errors)

SVD - rozkład macierzy według wartości osobliwych (ang. Singular Value Decomposition) TBA - transformacja pomiędzy układami współrzędnych A i B, TBA

∈SE(3)

TCP-IP - sieciowy protokół komunikacyjny (ang. Transmission Control Protocol / Internet Protocol)

tBA

C - przesunięcie pomiędzy układami współrzędnych A i B, przedstawione w układzie współrzędnych C, tBA

∈ℝ

3

ui - punkt zorientowany, ui

=(

Pi

, n

i

)

K

u

, v

K - współrzędne w układzie sensora kamery

U , V

- wymiary sensora kamery

A

x

, y

A

, z

A - kierunki układu współrzędnych A

X - nieuporządkowana chmura punktów, X={Pi

}

yi - wektor cech opisujących geometrię powierzchni w sąsiedztwie punktu, deskryptor Y - lista deskryptorów, Y ={ yi

}

(11)

1. Wstęp

W rozprawie przedstawia się dorobek prac nad generowaniem i analizowaniem trójwymiarowych reprezentacji przestrzeni w kontekście robotyki przemysłowej. Celem działań jest przybliżenie możliwości autonomicznej pracy robotów przemysłowych w zmiennym otoczeniu i zastąpienie funkcjonowania przy stałym programie i w niezmiennym środowisku, które jest obecnie stosowane w praktyce przemysłowej, jak pokazano na rys. 1.1.

Skuteczne rozpoznawanie i lokalizacja obiektów jest warunkiem niezbędnym do opracowania autonomicznych systemów zrobotyzowanych. Aktualnie stosowane metody dopasowywania modeli do trójwymiarowych scen mają wciąż szereg ograniczeń w zakresie szybkości przetwarzania, dokładności, odporności na zakłócenia, rozpoznawania obiektów na podstawie widoków częściowych i możliwości integracji z systemami zrobotyzowanymi. Proste zadania, jak pobieranie przez manipulator jednego rodzaju części z nieuporządkowanego stosu można uznać za możliwe do rozwiązania przy użyciu istniejących metod. Są one realizowane w ramach komercyjnych systemów jak [1], [2], jednak brak jest opracowań przedstawiających skuteczność i uniwersalność tych rozwiązań.

W niniejszej pracy przedstawiono szczegółowo zestaw metod do wyznaczania położenia wielu, różnorodnych modeli obiektów, przedstawiono wyniki eksperymentów na licznych zbiorach Rys. 1.1. Tryby pracy robota przemysłowego: a) stały program pracy, b) praca autonomiczna

w zmiennym otoczeniu

(12)

danych, wskazano znaczenie parametrów, sprawdzono wrażliwość na niedoskonałości reprezentacji trójwymiarowych oraz przeprowadzono walidację w warunkach rzeczywistych.

W upowszechnieniu kompaktowych kamer 3D i tym samym możliwości pozyskania dużych i różnorodnych zbiorów danych upatruje się możliwości zastąpienia ręcznie definiowanych algorytmów lokalizacji przez metody oparte o uczenie maszynowe. W rozprawie proponuje się modele sieci neuronowej uczone na dużym zbiorze nieopisanych danych trójwymiarowych.

Podstawy trójwymiarowych reprezentacji geometrii, używane później pojęcia oraz aktualny stan wiedzy z zakresu przetwarzania chmur punktów opisano w rozdziale 2. W rozdziale 3.

zaprezentowano własny układ zrobotyzowanego skanera optycznego, zapewniający niespotykaną w opisanych lub dostępnych na rynku rozwiązaniach dokładność przy możliwości montażu obok chwytaka. W rozdziale 4. przedstawiono wypracowane techniki integracji robota z trójwymiarowym układem pomiarowym z uwzględnieniem adaptacji programów. W rozdziale 5.

zaproponowano własne, skuteczne algorytmy analizy chmur punktów, dostosowane do pracy w ramach stanowiska zrobotyzowanego oraz odporne na błędy techniki chwytu zlokalizowanych obiektów. W rozdziale 6. przedstawia się technikę dopasowywania chmur punktów przez algorytm uczenia maszynowego. Sieć neuronowa zostaje zastosowana do generowania deskryptorów, które mogą służyć do lokalizacji obiektów i rekonstrukcji scen. Główną zaletą tego rozwiązania jest możliwość łatwej podmiany dotychczasowych ręcznie definiowanych deskryptorów, na nowe, generowane przez sieć neuronową, bez jakichkolwiek innych zmian w algorytmie. Pozwala to na łatwą integrację z innymi metodami przetwarzania chmur punktów.

Niniejsza rozprawa opisuje unikalne połączenie pomiędzy dwoma dziedzinami, algorytmiczną

analizą danych przestrzennych i robotyką przemysłową. Wykazane zostały korzyści wynikające

z możliwości użycia trójwymiarowych reprezentacji otoczenia robotów przemysłowych w ich

autonomicznym sterowaniu. Wskazane metody i kierunki rozwoju mogą wkrótce pozwolić na

opracowywanie autonomicznych urządzeń będących w stanie dostosowywać akcje do zastanego

stanu otoczenia.

(13)

2. Analiza stanu wiedzy

2.1. Trójwymiarowe reprezentacje geometrii

2.1.1 Pozyskiwanie reprezentacji geometrycznej obiektów

Wprowadzenie na rynek popularnych kamer z percepcją głębi zmieniło postrzeganie analizy 3D.

Od tej pory każdy mógł mieć dostęp do sensora, który generował zsynchronizowane obrazy kolorowe i informacje o odległości obiektów od czujnika RGB-D (ang. red, green, blue and depth).

Oczywiście, urządzenia te nie są bardzo dokładne i nie nadają się do precyzyjnych pomiarów, ale są wystarczające do lokalizacji i rozpoznawania ludzi i większych obiektów, jak pojazdy i meble.

Dodatkową zaletą tych urządzeń, poza dostarczaniem informacji o głębi obrazu, jest ułatwione szukanie zarysów obiektów, całkowicie niezależne od oświetlenia, faktury obiektu i jego barwy.

Sprawia to, że głębia w reprezentacji RGB-D może być przydatna nie tylko do rekonstrukcji 3D, ale również wspierać algorytmy typowe dla analizy obrazów płaskich, przez wzbogacenie obrazu o informacje, których nie można dostrzec na zwykłym zdjęciu, na przykład z powodu słabego oświetlenia.

Dostępne na rynku konsumenckim kamery 3D, jak Microsoft Kinect, kamery Primesense, ASUS Xtion Pro lub Intel Realsense działają na bardzo zbliżonej zasadzie. Urządzenia te posiadają kamerę kolorową oraz jedną lub dwie kamery operujące w podczerwieni, które są w stanie odczytać wzór plamek światła generowany przez projektor. Na podstawie przesunięcia położenia plamek, wewnętrzny układ ma możliwość określenia odległości powierzchni, na którą padła plamka, od urządzenia. Kamery i rzutnik wzoru są ze sobą skalibrowane, dlatego można uzyskać dopasowane do siebie obrazy kolorowe i mapy głębi, dla których punkty o określonych współrzędnych odpowiadają sobie.

Oprócz rozwiązań konsumenckich wystarczających do lokalizacji osób i wizualnej rekonstrukcji

3D, o niewielkiej dokładności, powstają urządzenia, w których nacisk jest kładziony na większą

precyzję odwzorowania geometrii mierzonej. Są to skanery optyczne oparte o programowalne

projektory światła strukturalnego [3] lub generatory światła laserowego o wiązce w kształcie

płaszczyzny [4]. Rozwiązania te zwykle potrzebują czasu na przemiatanie wiązką lasera lub

rzutowanie serii układów prążków przy pomocy projektora, nie są w stanie przechwycić geometrii

ruchomych obiektów. Wygenerowane przez nie chmury punktów charakteryzują się jednak

mniejszymi szumami i udziałem punktów odstających. Z tych powodów, w większości badań

(14)

prowadzonych w ramach niniejszej rozprawy, posłużono się własnym układem skanera optycznego opartym o pojedynczą wiązkę lasera, a nie popularną kamerą RGB-D.

2.1.2 Reprezentacja RGB-D

Należy rozróżnić dwie podstawowe formy trójwymiarowych reprezentacji obiektów.

W większości systemów trójwymiarowych bazową formą jest mapa głębi. Jest to reprezentacja wygenerowana na podstawie pojedynczego ujęcia, jednego wzajemnego położenia obiektu i kamery. Wiele map głębi wykonanych przy różnych wzajemnych położeniach obiektu i sensora może zostać połączonych do pełnego modelu 3D obiektu. Modele 3D można również generować za pomocą podstawowych kształtów i brył oraz ich modyfikacji, przy użyciu oprogramowania CAD lub programu do edycji grafiki komputerowej 3D.

Obrazy z mapami głębi są nazywane reprezentacją RGB-D lub 2,5D. Zawierają informacje o położeniach punktów i ich odległościach od sensora. Reprezentują jedynie powierzchnie obiektu widoczne z jednego punktu w przestrzeni. Bez dodatkowych założeń, nie jest możliwe określenie pełnej powierzchni obiektu oraz określenie jego objętości. Brak części powierzchni obiektu wynika z ich zasłonięcia przez pozostałe powierzchnie. Schemat uzyskiwania jedynie fragmentarycznej reprezentacji obiektu przy użyciu tylko jednej mapy głębi przedstawiono na rys. 2.1.

Mapa głębi może zostać zapisana, jako częściowy model 3D, to znaczy przy pomocy chmury punktów lub siatki. Inną opcją jest zastosowanie zapisu w formie obrazu z dodatkowym kanałem reprezentującym głębie, to znaczy odległość danego punktu w przestrzeni od sensora. W praktyce sprowadza się to do zapisu pojedynczego pomiaru jako dwóch obrazów. Jednego, który jest typowym obrazem cyfrowym, który dla każdego piksela przechowuje informacje o kolorze w postaci trzech liczb, w formacie RGB (ang. Red Green Blue). W drugim obrazie, każdemu pikselowi odpowiada jedna liczba określająca odległość powierzchni od sensora, przy czym format tego zapisu nie jest jednolity. Stosowane są zarówno obrazy jednokanałowe, o głębi 16 bitów lub stosuje się zapis trójkanałowy, taki jak przy zapisie obrazów kolorowych, lecz zakłada się, że na

Rys. 2.1. Generowanie pojedynczej mapy głębi

(15)

etapie przetwarzania kanały te są łączone w jedną, 24 bitową liczbę całkowitą. Nie ma też spójności, jeżeli chodzi o jednostkę odległości. Zwykle jest to milimetr, ale można też spotkać się z innymi założeniami, pozwalającymi na lepsze dopasowanie formatu zapisu do rozdzielczości i zakresu skanera. Ważne jest, że obrazy przechowujące odległość od skanera nie mogą podlegać kompresji takiej jak obrazy kolorowe, zwłaszcza jeżeli liczba jest rozbita na kilka kanałów.

Możliwe jest stosowanie kompresji bezstratnej, dlatego głębia przechowywana jest zwykle w formacie PNG. Lepszym rozwiązaniem byłoby przechowywanie danych ze skanerów w postaci filmów z użyciem zoptymalizowanej w tym celu metody kompresji. W tym zakresie są czynione już próby, jak w [5], jednak żaden format nie jest jeszcze powszechnie używany. Często można spotkać się z zapisem danych z kamer 3D przy użyciu narzędzia rosbag z pakietu ROS [6]. Jest to uniwersalne narzędzie pozwalające na przechowywanie dowolnych danych generowanych przez czujniki. Ze względu na dużą popularność pakietu ROS i mnogość kompatybilnych urządzeń, jest to rozwiązanie coraz bardziej powszechne, mimo że nie zawiera zoptymalizowanych algorytmów do przechowywania chmur punktów.

2.1.3 Rekonstrukcja geometrii 3D z map głębi

Statyczne czujniki 3D są w stanie mierzyć fragmenty powierzchni widoczne z jednego punktu widzenia. Może to być wystarczające w wielu zastosowaniach, jak rozpoznawanie obiektów i szacowanie ich lokalizacji. Czasem wymagane jest jednak połączenie wielu częściowych reprezentacji w jeden, kompletny model 3D. W takich przypadkach konieczne jest poruszanie skanerem względem obiektu lub równoważny ruch obiektu względem skanera, na przykład uzyskany przy pomocy stołu obrotowego. Problem łączenia wielu widoków obiektu w jeden model uwzględnia dopasowywanie częściowych reprezentacji, scalanie powierzchni i planowanie kolejnego widoku, niezbędnego do uzupełnienia niekompletnego modelu [3]. Obecnie zazwyczaj niezbędnym elementem algorytmu przetwarzania jest człowiek. Interwencja operatora może być konieczna na kilku etapach, w fazie dopasowywania, gdy algorytmy szukania zależności pomiędzy punktami zawiodą, przy wyszukiwaniu ubytków powierzchni i planowania kolejnego położenia skanera względem obiektu oraz przy samym poruszaniu skanerem lub obiektem. Konieczne jest zatem zapewnienie metod wizualizacji rekonstruowanych powierzchni i zapewnienie działania systemu w czasie rzeczywistym.

Szeroka dostępność kamer 3D spowodowała wzrost zainteresowania zagadnieniem rekonstrukcji

3D. Popularne kamery generują sekwencje zdjęć i map odległości, często obarczone znacznym

szumem i błędami. Zadaniem algorytmów rekonstrukcji, jest ich zamiana w powierzchnie 3D,

najlepiej w czasie rzeczywistym, co pozwala na zastosowanie tych danych w systemach wirtualnej

(16)

i mieszanej rzeczywistości (wirtualne obiekty mogą oddziaływać z rzeczywistymi powierzchniami), w robotyce (planowanie ścieżek z unikaniem kolizji), a także jako sprzężenie zwrotne dla operatora w trakcie skanowania 3D i przygotowywania cyfrowych modeli rzeczywistych obiektów.

Rekonstrukcja polega na ciągłym łączeniu napływających map głębi w jedną, udoskonalaną reprezentację 3D. Algorytm rekonstrukcji powierzchni powinien uwzględniać niepewność związaną z pomiarami, typowe dla kamer 3D szumy i punkty odstające oraz ich asymetryczny rozkład (przewaga błędów w kierunku osi sensora). Pomijając konieczność dopasowywania do siebie chmur punktów, w przypadku braku znajomości ruchów kamery, znanych jest kilka podejść na scalanie częściowych reprezentacji w jedną pełną siatkę [3], [7], [8].

2.1.4 Chmury punktów

Najprostszą reprezentacją trójwymiarowej geometrii obiektów, niezależną od płaskich reprezentacji pośrednich i od parametrów kamery jest chmura punktów. W zapisie cyfrowym jest to lista wektorów, zawierających 3 elementy, odpowiadające współrzędnym punktu w kartezjańskim układzie współrzędnych. Kolejność punktów w chmurze nie ma znaczenia, wszystkie permutacje chmury punktów są równoważne ze sobą. Reprezentacja ta nie przechowuje informacji o wzajemnym sąsiedztwie punktów. Do wektora przechowującego współrzędne punktu można dodać informacje o kolorze oraz kierunku normalnym w punkcie. Uwzględnienie informacji o sąsiedztwie, przez dodanie listy trójkątów, umożliwia wyświetlanie chmury punktów jako siatkę ze zdefiniowaną powierzchnią.

2.1.5 Reprezentacja wolumetryczna

Reprezentacja wolumetryczna przestrzeni opiera się na trójwymiarowej siatce, w której podstawową jednostką są sześciany zwane wokselami. Jest to reprezentacja bogatsza od chmury punktów, gdyż zawiera informację, czy dane miejsce w przestrzeni jest wolne lub zajmowane przez materię. Główną zaletą jest możliwość szybkiego testowania sąsiedztwa zadanego punktu.

W nieuporządkowanej chmurze punktów wzajemne powiązania punktów są nieznane i konieczne

jest każdorazowe szukanie najbliższych sąsiadów, które wraz ze wzrostem liczby punktów staje się

bardzo czasochłonne. Istotę chmury punktów i reprezentacji wolumetrycznej przedstawiono na

rys. 2.2.

(17)

Najprostszym sposobem przetworzenia chmury punktów reprezentującej obiekt do formy wolumetrycznej jest zastosowanie binarnej mapy zajętości (ang. occupancy map). Wartość w każdym punkcie siatki jest ustalana na podstawie tego, czy komórka (woksel) zawiera jakikolwiek punkt z chmury. Zajęte komórki są traktowane jako powierzchnia i mogą służyć do tworzenia pochodnych pól, bardziej zdatnych do zastosowania w algorytmach rozpoznawania obiektów.

Zapis wolumetryczny najczęściej jest realizowany w formacie TSDF (ang. Truncated Signed Distance Field) wprowadzonym w [7]. Polega on na wypełnieniu wolumetrycznej siatki polem odległości od najbliższej powierzchni. Dodatnią wartość odległości przypisuje się dla wokseli znajdujących się między powierzchnią, a położeniem sensora, a ujemne wartości zarezerwowane są dla przestrzeni za powierzchnią. Dodatnia wartość woksela oznacza wolną przestrzeń, ujemna oznacza materię obiektu lub nieznany stan, wartości bliskie zera oznaczają powierzchnię obiektu.

W celu zmniejszenia nakładów obliczeniowych i uzyskania lepszej reprezentacji niepewności pomiarów stosuje się obciętą wersję pola, to znaczy dystans jest przechowywany tylko dla wokseli znajdujących się w pobliżu powierzchni. Wielkość tego obszaru jest określona na podstawie wariancji pomiaru w kierunku głębokości. Pozostałe woksele są opisywane stałymi wartościami, mówiącymi, czy jest to wolna przestrzeń, czy przestrzeń znajdująca się za powierzchnią obiektu i nie może być zaobserwowana. Jest to więc reprezentacja rzadka, jedynie niewielka część danych, faktycznie reprezentuje powierzchnię obiektów. Poczyniono więc starania w celu optymalizacji tego formatu i umożliwienie przeniesienia obliczeń na procesory graficzne, na przykład za pomocą algorytmów mieszających [8].

Rys. 2.2. Zapis kształtu w postaci: a) rzadkiej chmury punktów b) gęstego zapisu wolumetrycznego

(18)

2.1.6 Struktury indeksujące dane przestrzenne

W celu przyspieszenia obliczeń na obiektach w formie wolumetrycznej, często stosuje się ich transformację na drzewa ósemkowe [9]. Proces polega na otoczeniu chmury punktów sześcianem i rekurencyjnym jego podziale na 8 mniejszych sześcianów, aż do najniższego poziomu, gdzie sześciany mają wymiar pojedynczego woksela. Pozwala to zmniejszyć objętość danych, gdy część danych w jednej gałęzi drzewa nie posiada wokseli reprezentujących powierzchnię lub materię, całą gałąź można pomijać w obliczeniach, przestrzeń nie musi być dalej dzielona. Ten sposób zapisu usprawnia przetwarzanie związane z rzutowaniem na bryłę promieni, obcinanie obiektów poza polem widzenia kamery i w analizie kolizji. Po przekształceniu do formy drzewa ósemkowego, bardzo prosto jest ograniczyć liczbę punktów w chmurze. Wybiera się poziom o potrzebnej liczebności sześcianów zawierających punkty i tworzy się nową chmurę, gdzie nowymi punktami są środki lub centroidy tych sześcianów, które zawierają w sobie informacje o obiekcie. Na rysunku 2.3 przedstawiono kolejne podziały przykładowej geometrii trójwymiarowej.

Podobny cel przyświecał opracowaniu drzew k-wymiarowych [10]. Chmura punktów reprezentowana drzewem k-wymiarowym może zawierać informacje nie tylko o położeniu punktu, ale również o kolorze i wektorze normalnym do powierzchni w danym punkcie. W podstawowym przypadku, drzewo k-wymiarowe indeksuje chmurę o N = 2

D

punktach, gdzie D oznacza liczbę poziomów drzewa. Drzewo jest budowane odgórnie przez rekurencyjne wybieranie osi o największym zakresie współrzędnych (z kierunków x, y, z) i wybieranie współrzędnej na tej osi, która podzieli zbiór punktów na dwa równe podzbiory, z których każdy znów jest dzielony w ten sam sposób. Drzewo zawiera 2

D

-1 węzłów nie będących liśćmi, zawierających informację o kierunku i współrzędnej podziału. Węzły ostatniego poziomu, liście zawierają poszczególne punkty 3D. Każdy węzeł niebędący liściem, posiada dwójkę dzieci o numerach c

1

(i) = 2i i c

2

(i) = 2i + 1. Numerację i strukturę podziału dwuwymiarowej chmury punktów przedstawiono na rys. 2.4.

Rys. 2.3. Kolejne podziały obiektu sprowadzonego do formy drzewa ósemkowego

(19)

2.2. Zadania realizowane na danych przestrzennych

2.2.1 Dopasowywanie chmur punktów

Dopasowywanie chmur punktów polega na wyznaczeniu sztywnej transformacji, czyli obrotu i przesunięcia chmury źródłowej, tak aby była spójna geometrycznie z chmurą docelową. Zadanie to jest rozwiązywane między innymi w łączeniu sekwencji ujęć z kamer 3D w celu uzyskania pełniejszej rekonstrukcji. Transformacje odpowiadają ruchowi kamery pomiędzy kolejnymi klatkami. Szczególnym przypadkiem dopasowywania chmur punktów jest wyznaczanie położenia modeli w chmurze punktów sceny. Reprezentacją źródłową jest wtedy model CAD lub zrekonstruowana siatka obiektu, który ma zostać znaleziony, a chmurą docelową jest trójwymiarowa reprezentacja otoczenia, w której spodziewana jest obecność obiektu. Podstawową metodą oceny dopasowania jest udział punktów prawidłowo dopasowanych w chmurze źródłowej.

Obliczane są odległości punktów reprezentacji źródłowej do najbliższego sąsiada w chmurze docelowej. Jeżeli odległość jest mniejsza od zadanego progu, to punkt jest uznawany za dopasowany prawidłowo. Zadanie dopasowywania modeli jest utrudnione, gdy nie ma gwarancji, że badany obiekt rzeczywiście znajduje się w scenie. Na podstawie udziału punktów prawidłowo dopasowanych decyduje się, czy obiekt rzeczywiście jest obecny w reprezentacji sceny, czy wygenerowana transformacja jest jedynie przypadkową zgodnością kształtu powierzchni. Procedurę przedstawiono na rys. 2.5.

Rys. 2.4. Proces generowania drzewa k-wymiarowego

(20)

2.2.2 Klasyfikacja obiektów

Klasyfikacja chmury punktów polega na określenia przynależności reprezentowanego obiektu do jednej z predefiniowanych grup. Algorytmy rozwiązujące to zadanie generują zwykle wektor prawdopodobieństw przynależności analizowanej chmury punktów do każdej z klas. Zadanie to jest realizowane przez wygenerowanie jednego globalnego deskryptora dla chmury punktów i następnie klasyfikowanie go jedną z metod uczenia maszynowego, jak maszyną wektorów nośnych lub wielowarstwowym perceptronem. Najpopularniejszym zbiorem do trenowania i testowania w tym zadaniu jest ModelNet [11]. Klasyfikacji mogą podlegać ręcznie opracowywane modele CAD lub wyodrębnione fragmenty sceny. Algorytmy klasyfikacji nie są przystosowane do przetwarzania całych scen zawierających wiele obiektów i elementy tła.

2.2.3 Segmentacja chmur punktów

Segmentacja, czyli grupowanie punktów, polega na podziale chmury na części, które odpowiadają zadanym klasom obiektów w reprezentacji. Algorytmy generują wektor prawdopodobieństw o wymiarach n × m, każdemu z n rozpatrywanych punktów odpowiada wektor prawdopodobieństw przynależności do każdej z m klas.

W przetwarzaniu danych trójwymiarowych wyróżnia się dwa rodzaje segmentacji. Segmentacja semantyczna polega na podziale sceny na grupy odpowiadające typom obiektów. Klasami mogą być przykładowo rodzaje struktur i mebli we wnętrzach lub samochody i piesi w przypadku przetwarzania danych z radarów autonomicznych pojazdów. W ramach segmentacji nie są uwzględniane poszczególne wystąpienia obiektów. Algorytmy segmentacji nie umożliwiają zliczenia obiektów znajdujących się blisko siebie.

Rys. 2.5. Wyznaczanie udziału punktów prawidłowo dopasowanych

(21)

Drugim typem jest podział reprezentacji trójwymiarowej na geometryczne i funkcjonalne części, jaki zaprezentowano w zbiorze ShapNet [12]. Na przykład zadaniem jest podział fotela biurowego na siedzisko, oparcie, podstawę i kółka. Klasy części są charakterystyczne dla klasy obiektu.

2.2.4 Szukanie kolejnego najlepszego widoku

Rozpoznawanie obiektu z jednego punktu widzenia kamery RGB-D w pewnych przypadkach jest bardzo trudne. Prawdopodobieństwo detekcji może zostać znacznie zwiększone, jeżeli istnieje możliwość zmiany punktu widzenia i ponowienia próby rozpoznania otoczenia. Podejście to jest szczególnie istotne w przypadku kamer 3D zamocowanych na ramionach robotów i pojazdach autonomicznych. Istnieje grupa algorytmów [11], które realizują to zadanie analizując pojedynczą parę, obraz i mapę głębi, klasyfikują obiekt i jednocześnie generują propozycję następnego punktu ustawienia kamery (PUK). Wybór PUK powinien być podyktowany nie tylko dążeniem do odkrycia jak największej nieznanej powierzchni obiektu, ale również uwzględniać potencjalne położenie powierzchni charakterystycznych dla danej klasy. Problem generowania kolejnego następnego ustawienia kamery przedstawiono na rys. 2.6.

2.2.5 Wyszukiwanie modeli CAD

Zadanie wyszukiwania modeli zostało zaproponowane w wyzwaniu SHREC’16 [15] i polega na opracowaniu deskryptora globalnego, który pozwoli nie tylko na klasyfikację modelu, ale również na znalezienie najbardziej podobnej geometrii w dużym zbiorze, także jeżeli model jest obrócony lub przesunięty względem postaci standardowej. Zbiorem testowym używanym w tym zadaniu jest ScanNet [16]. Zapytanie jest dane w postaci zbioru reprezentacji RGB-D, a baza zawiera ręcznie generowane modele CAD. Realizacja tego zadania, jak w [17] musi uwzględniać różnice w formie danych, między niedoskonałymi reprezentacjami uzyskanymi kamerami RGB-D, a syntetycznymi modelami CAD.

Rys. 2.6. Efekty wyboru kolejnego widoku, w celu minimalizacji niepewności klasyfikacji

(22)

2.2.6 Zwiększanie rozdzielczości chmury punktów

Mimo ciągłego rozwoju, dane z nowoczesnych sensorów 3D wciąż obarczone są szumem, wieloma punktami odstającymi od geometrii oraz nierównomierną gęstością punktów, zależną od odległości powierzchni od sensora. W celu poprawy jakości uzyskanych chmur punktów w celu ich wizualizacji lub dalszego przetwarzania, stosowane jest zwiększanie rozdzielczości. Zwykłe interpolowanie istniejących punktów nie przynosi dobrych rezultatów, dlatego stosuje się metody oparte na optymalizacji i od niedawna sieci neuronowe.

Zadanie polega na wygenerowaniu na podstawie zadanej chmury punktów, nowego większego zestawu punktów. Punkty powinny być równomiernie rozłożone i znajdować się jak najbliżej powierzchni, której reprezentacją jest zadana chmura punktów. Udanym rozwiązaniem był wprowadzony w [18] operator LOP (ang. Locally Optimal Projector) rzutujący surową chmurę punktów do gładkiej postaci. Stopniowo wprowadzano udoskonalenia, pozwalające na przetwarzanie chmur z położonymi blisko siebie powierzchniami [19] oraz na przetwarzanie chmur punktów, w których występują skokowe zmiany kierunków normalnych [20].

Opracowane zostały metody uczenia maszynowego realizujące to zadanie. W pracy [21] przedstawiono koncepcję zastosowania architektury typu Pointnet++ generującej cechy dla każdego punktu, które później są zamieniane na łatę odzwierciedlającą lokalną geometrię, która zwiększa rozdzielczość chmury.

Podobnym zagadnieniem jest uzupełnianie modeli 3D, czyli problem wygenerowania reprezentacji 3D na podstawie niepełnych danych. Danymi wejściowymi mogą być chmury punktów lub zdjęcia. Wejściowa chmura punktów może zawierać brakujące dane, np. znaczny udział powierzchni zasłoniętych. Na wyjściu oczekuje się pełnej, udoskonalonej chmury punktów.

Zadanie rekonstrukcji można realizować za pomocą architektury autoenkodera [13] lub przez generujący układ sieci przeciwników (ang. generative adversarial networks, GAN) [14]. Modele uczą się, jak wyglądają typowe obiekty danej klasy i są w stanie odtworzyć brakujące powierzchnie.

2.3. Zbiory danych

Społeczność naukowa zajmująca się zagadnieniami przetwarzania trójwymiarowych danych geometrycznych opracowała wiele zbiorów danych, które mogą służyć do testowania algorytmów i uczenia sieci neuronowych. Zebrano i oceniono przydatność poszczególnych publicznych zbiorów danych.

ModelNet [11] to duży zbiór trójwymiarowych modeli CAD. Zawiera ponad 150 000 modeli

przydzielonych do 660 klas. Nie jest to zbiór zbilansowany, liczby wystąpień w każdej klasie różnią

(23)

się, przy czym żadna klasa nie zawiera mniej niż 20 modeli. W celu uproszczenia zadania, w większości publikacji stosuje się podzbiory zawierające 10 lub 40 najliczniej reprezentowanych klas. Zbiór ten służy jako sprawdzian dla modeli realizujących zadania klasyfikacji i wyszukiwania zadanym kształtem 3D. Zbiór został zebrany z istniejących w sieci zasobów. Wstępne przypisanie do kategorii uzyskano na postawie opisów modeli. Następnie każdy model został zweryfikowany w ramach usługi Amazon Mechanical Turk, a siatki zostały oczyszczone ze zbędnych elementów.

NYU v2 [22] to duży zbiór danych zawierający 464 różnorodne sceny wnętrz z dokładnymi opisami, pozyskany przy użyciu urządzenia Kinect. Na zbiór składa się 1449 par obrazów kolorowych z mapami głębi. Mapy głębi są ręcznie poprawione, poprzez uzupełnienie ubytków i cieni wynikających z niedoskonałości urządzenia, korzystając z algorytmu koloryzacji [23]. Dla danych tych przygotowane są mapy segmentacji, to znaczy każdy piksel na obrazie jest przypisany do jednej z klas. Rozróżniane są poszczególne wystąpienia obiektu. Dodatkowo, jako kolejna wskazówka dla algorytmów, w zbiorze uwzględniona jest relacja podpierania jednego obiektu przez drugi, np. łóżko znajduje się na podłodze, kubek znajduje się na stole, obraz jest wspierany przez ścianę. Wykrywanie tych zależności ma duże znaczenie w robotyce. Pozwala planować chwytanie poszczególnych elementów, w odpowiedniej kolejności. Oprócz opisanych sekwencji wideo, udostępnione zostało 428 GB surowych danych, dla których nie ma opracowanych segmentacji oraz mapy głębi nie są ręcznie poprawione.

RGB-D Washington [24] obejmuje cyfrową reprezentację 300 obiektów przydzielonych do 51 kategorii, zebranych urządzeniem Kinect. Zawiera zsynchronizowane sekwencje kolorowych obrazów i map głębi. Dla każdego obiektu nagrane są 3 sekwencje, które przedstawiają obiekt z każdej strony, podczas ruchu na stole obrotowym, przy różnych wysokościach zamocowania kamery 3D. Oprócz sekwencji zawierających izolowany obiekt, w zbiorze danych, znajdują się 22 sceny zlokalizowane w typowych wnętrzach, w których umieszczono obiekty. Dla scen nie jest dostępna pełna lokalizacja w postaci wektora położenia i macierzy obrotu. Sceny są opisane jedynie prostokątami okalającymi obiekty oraz położeniem kątowym względem pionowej osi, dlatego jego przydatność w zakresie zadania wyznaczania pozycji w kontekście robotyki przemysłowej jest niewielka.

ShapeNet [12] to zbiór 51 tysięcy unikalnych syntetycznych modeli przypisanych do 55

kategorii. Niektóre modele opisane są również właściwościami fizycznymi, jak rzeczywiste

wymiary, materiał i waga obiektu. W zbiorze danych zawarty jest również podział modeli na

funkcjonalne i geometryczne części.

(24)

KITTI [25] jest podstawą do uczenia i testowania algorytmów związanych z autonomicznymi pojazdami. Zawiera nagranie 6 godzin jazdy przy użyciu różnorodnych czujników, kamer, trójwymiarowego skanera laserowego, czujnika GPS i akcelerometru. Dane są różnorodne, zawierają rozmaite sytuacje drogowe, statyczne i ruchome obiekty, drogi śródmiejskie, wiejskie i autostrady. Zbiór danych pozwala na porównywanie algorytmów w zakresie rekonstrukcji stereowizji, algorytmów przepływu wizyjnego, ale także detekcji obiektów.

ABC [26] stanowi zbiór siatek modeli CAD zawierający ponad milion unikalnych modeli. Siatki łatwo jest przetworzyć do dowolnej reprezentacji, jak chmury punktów o dowolnej rozdzielczości.

Modele zachowują cechy z programów CAD, znana jest ich segmentacja na powierzchnie proste (płaszczyzny, powierzchnie cylindryczne, stożkowe, sferyczne, torusy, powierzchnie typu NURBS) oraz położenie naroży. Autorzy zbioru sugerują jego zastosowanie w uczeniu i testowaniu algorytmów w zadaniach segmentacji modeli na kształty proste, wykrywanie naroży, szacowanie wektorów normalnych, uzupełniania niekompletnych kształtów, zwiększania rozdzielczości chmur punktów. Dodatkowo autorzy dostarczają moduł do przedstawiania modeli w realistycznej formie wizualnej, dlatego możliwe jest również stosowanie tego zbioru do uczenia algorytmów przetwarzających zdjęcia i mapy głębi.

ICL-NUIM [27] jest zbiorem zawierającym syntetycznie wygenerowane sekwencje obrazów kolorowych i map głębi pomieszczeń. Dostępna dodatkowo jest dokładna trajektoria kamery oraz siatki, na podstawie których wygenerowane zostały reprezentacje RGB-D. Dostępność dodatkowych danych umożliwia dokładne testowanie algorytmów rekonstrukcji siatki na podstawie danych z kamer 3D. W zbiorze danych uwzględniony został szum i błędy typowe dla kamer 3D.

Dodatkowo w [28] przedstawiono wzbogaconą wersję z dłuższymi trajektoriami kamery i z poprawionym modelem zniekształceń syntetycznych map głębi lepiej odzwierciedlającym błędy popularnych kamer 3D.

SUN3D [29] to zbiór sekwencji RGB-D z automatycznymi rekonstrukcjami, które zostały jednak ręcznie poprawione, dlatego mogą służyć jako podstawę do weryfikacji algorytmów rekonstrukcji. Dodatkowo przygotowano ręcznie wygenerowane mapy segmentacji dla kilku klas obiektów, głównie elementów wyposażenia wnętrz. Opisane są klatki kluczowe, które są propagowane na każdą klatkę w sekwencji. Zbiór zawiera 415 fragmentów reprezentujących 254 różnych pomieszczeń. Autorzy udostępnili, oprócz danych, kod użytych algorytmów do automatycznego dopasowywania poszczególnych klatek i wprowadzania ręcznych poprawek, a także narzędzie do segmentacji obrazów, działające w sieci.

3dscan [30] stanowi bardzo duży zbiór nieopisanych sekwencji obrazów i głębi. Każda

sekwencja dotyczy unikalnego obiektu przypisanego do jednej klasy. Dla niektórych obiektów

(25)

istnieją siatki stanowiące rekonstrukcję sceny, jednak stanowi to niewielką część całości zbioru.

W ramach niniejszej pracy przygotowano rekonstrukcje ponad 2000 scen w celu nauki sieci neuronowej generującej deskryptory.

LINEMOD [31] jest zbiorem zawierającym 15 modeli dla których opracowano sceny z elementami tła i częściowymi zasłonięciami. Razem jest to ponad 18 000 reprezentacji RGB-D z macierzami transformacji opisującymi położenie wybranego obiektu w przestrzeni. Zbiór ten opracowano przy użyciu urządzenia Primesense przy rozdzielczości 640 × 480 pikseli. Niska rozdzielczość ogranicza możliwość stosowania go do lokalizacji obiektów w chmurze punktów, częściej używany jest do szacowania pozycji obiektu na obrazie.

UWA [32] jest prostym zbiorem danych zawierającym jedynie 5 modeli danych w postaci siatki oraz 50 scen, w których modele są zaprezentowane w różnych konfiguracjach i z różnym poziomem widoczności powierzchni. Zbiór został wygenerowany przy użyciu skanera laserowego Minolta Vivid 910, a nie przy użyciu kamer RGB-D, w związku z tym chmury punktów są dokładniejsze, ale nie zawierają informacji o kolorach w punktach oraz zdjęć sceny. Bardziej odpowiadają scenariuszowi szacowania położenia obiektów w niewielkim otoczeniu robota przemysłowego realizowanemu w niniejszej pracy. Każda ze scen zawiera informacje o położeniu modelu w przestrzeni, przez podanie macierzy transformacji.

Shelf & Tote [33] jest to zbiór 452 scen przedstawiających różnorodne obiekty na półkach i w pojemnikach. Zawiera sekwencje obrazów i map głębi przygotowanych przy pomocy kamery Intel Realsense F200. Obiekty są opisane ręcznie generowanymi macierzami transformacji, mapami segmentacji i poziomem zasłonięcia.

T-Less [34] jest zbiorem, który został opracowany z myślą o zapewnieniu możliwości przetestowania algorytmów wyznaczania położenia obiektów w chmurze punktów dla typowych obiektów przemysłowych. W przeciwieństwie do innych zbiorów, dla których specjalnie wybierane były złożone, organiczne kształty z wieloma charakterystycznymi punktami, w tym zbiorze skupiono się na prostych, zbliżonych do siebie kształtem, symetrycznych bryłach. Reprezentacje RGB-D zebrano przy użyciu dwóch urządzeń, co pozwala na porównanie algorytmów przy różnym poziomie dokładności i szumów. Dla każdego obiektu w scenie dostarczono dane o położeniu, które zostały wygenerowane przez ręczne dopasowywanie wirtualnego modelu do sekwencji zdjęć.

W ostatnich latach pojawiło się dużo różnorodnych zbiorów danych trójwymiarowych,

różniących się potencjalnym zastosowaniem i techniką zbierania danych. Najważniejsze cechy

publicznie dostępnych zbiorów zestawiono w tabeli 2.1.

(26)

Tabela 2.1. Zestawienie publicznych zbiorów danych trójwymiarowych

nazwa typ obiektów typ sensora typ danych liczba scen liczba

modeli zadania

ModelNet modele CAD - siatki - 150 000 klasyfikacja,

wyszukiwanie NYU v2 wnętrza kamera 3D sekwencje

RGB-D 464 - segmentacja

RGB-D Washington

przedmioty codziennego

użytku kamera 3D sekwencje

RGB-D 22 300

detekcja, szacowanie

pozycji

ShapeNet modele CAD - siatki - 51 000

klasyfikacja, segmentacja na

części

KITTI jezdnie, drogi

kamery, LIDAR, GPS

obrazy, chmury punktów

6 godzin sekwencji czujników

3 kategorie detekcja, segmentacja

ABC modele CAD - siatki - 1 000 000

segmentacja na kształty proste,

szacowanie normalnych, uzupełnianie kształtów

ICL-NUIM wnętrza - sekwencje

RGB-D 2 - rekonstrukcja

sekwencji RGB-D

SUN3D wnętrza kamera 3D

sekwencje RGB-D,

chmury punktów

415 800

kategorii

rekonstrukcja sekwencji RGB-D,

segmentacja semantyczna,

detekcja

3dscan różne kamera 3D sekwencje

RGB-D 2200 150

kategorii

klasyfikacja, rekonstrukcja sekwencji RGB-D

LINEMOD

przedmioty codziennego

użytku

kamera 3D sekwencje

RGB-D 15 15

wyznaczanie pozycji, detekcja

UWA figurki skaner

laserowy

chmury

punktów 50 4 wyznaczanie

pozycji

Shelf & Tote

przedmioty codziennego

użytku

kamera 3D sekwencje

RGB-D 452 39

wyznaczanie pozycji, segmentacja

T-Less elementy elektryczne

kamera 3D kamera

sekwencje RGB-D

obrazy wysokiej rozdzielczości

20 30

wyznaczanie pozycji, segmentacja

(27)

2.4. Dopasowywanie chmur punktów na podstawie deskryptorów

2.4.1 Podstawy

Deskryptorem w niniejszej pracy nazywany jest wektor K liczb reprezentujący cechy wyznaczonej porcji danych. Istotą algorytmu generującego deskryptory jest nadawanie zbliżonej wartości wektora punktom danych podobnym do siebie (np. dwóm punktom stanowiącym wierzchołki sześcianu) oraz wartości istotnie różnej punktom odmiennym (np. punktowi stanowiącemu wierzchołek i punktowi znajdującemu się na płaszczyźnie walca). Odległość d pomiędzy deskryptorami o wymiarze K to długość wektora stanowiącego różnice pomiędzy deskryptorami w dowolnej metryce, np. euklidesowej:

d ( y

1, y2

)=‖

y2

y1

‖= √

i =1K

( y

2 i

y

1 i

)

2

(2.1)

Algorytm generowania deskryptorów lokalnych reprezentowany jest przez funkcję f :ℝ

N×3

→ℝ

N ×K

przekształcającą zbiór N punktów X={P

1,P2,

... P

n

}, P∈ℝ

3

na zbiór deskryptorów

Y ={ y1,y2,

... y

n

}, y ∈ℝ

K

. Funkcja f nie przekształca każdego punktu niezależnie, ale uwzględnia również relacje sąsiedztwa z innymi punktami, to znaczy przy generowaniu deskryptora y

i

, uwzględniane są wszystkie punkty należące do sąsiedztwa punktu P o promieniu r, gdzie sąsiedztwo jest definiowane jako N ={P

i

:‖P

i

P‖≤r } . Deskryptory lokalne mogą następnie

posłużyć do rozwiązania zadania segmentacji, to znaczy przypisania do każdego z punktów prawdopodobieństwa przynależności do zadanych klas lub do wyznaczania położenia modelu w chmurze punktów sceny poprzez porównywanie deskryptorów.

Metody generujące wektory globalne generują jeden wektor cech dla całej chmury punktów.

Zakładając, że ϕ oznacza funkcję generowania deskryptora globalnego, ϕ:ℝ

N ×3

→ℝ

K

, taką że dla wejściowej chmury punktów X ∈ℝ

3×N

, funkcja ϕ(X )∈ℝ

K

generuje jeden wektor o wymiarze K, będący deskryptorem globalnym. Deskryptor taki może służyć do klasyfikacji reprezentacji, czyli określania przynależności chmury punktów do jednej z zakładanych klas.

Metody generowania deskryptorów opisane w rozdziale 2.4 są definiowane ręcznie na podstawie intuicji i eksperymentów badaczy. Nie są optymalizowane, ani modyfikowane do stosowania z konkretnym typem danych. Przeciwieństwem są algorytmy przedstawione w rozdziale 2.5.

Początkowo nie zawierają one żadnej wiedzy o przetwarzanych danych, nie wymagają od

programisty intuicji i implementacji metod dostosowanych do kluczowych parametrów

(28)

przetwarzanych danych geometrycznych. Cała ta wiedza jest zdobywana przez algorytm na etapie uczenia, to jest przetwarzania zbioru danych trenujących i optymalizacji parametrów sieci, które aktualizują się automatycznie w taki sposób, aby jak najlepiej realizować powierzone zadanie.

Głównym problemem rozważanym w pracy jest wyznaczanie 6-wymiarowej pozycji zbioru znanych obiektów w chmurach punktów pozyskanych z kamer 3D lub skanerów laserowych.

Pozycja obiektu, odbiera 6 stopni swobody, 3 przesunięcia i 3 obroty względem osi trójwymiarowego układu współrzędnych. W niniejszej pracy, dla uproszczenia przekształceń, pozycja obiektu jest reprezentowana, jako macierz transformacji T ∈SE(3) , składającej się z obrotu R∈SO(3) i przesunięcia t ∈ℝ

3

, T=[R∣t ] . Pozycja jest szacowana na podstawie odczytów z kamer, dlatego pozycje generowane przez algorytmy są zdefiniowane w układzie współrzędnych kamery. W rozdziale 4 przedstawiono techniki przekształceń układów współrzędnych i integracji wyników opracowanych metod z układami współrzędnych robotów przemysłowych.

Wynikiem algorytmu dopasowania jest transformacja T, która przenosi chmurę punktów modelu

XM

w pobliże chmury sceny X

S

, co jest realizowane przez minimalizację funkcji L, sumy

odległości pomiędzy punktami modelu, a najbliższym punktem sceny.

L=

i=1 NM

min‖T⋅P

Mi

PS

‖ (2.2)

Miarą jakości dopasowania F jest udział punktów modelu, które znajdują się w odległości mniejszej od zadanego progu r

F

do najbliższego punktu sceny.

F= |{P

M

:min‖P

M

−P

S

‖< r

F

}|

N

M

(2.3)

W przypadku wyznaczania pozycji wielu modeli do wielu scen dla których znane są prawidłowe

wartości transformacji, używa się zbiorczej miary jakości, wskaźnika sukcesu S

r

. Oznacza on

stosunek liczby właściwie dopasowanych chmur, to znaczy takich, dla których wyznaczona

transformacja T

pr

=[R

pr

tpr

] różni się od transformacji prawdziwej T

gt

=[R

gt

∣t

gt

] o mniej niż zadane

progi Δ R

T

, Δ t

T

, do liczby wystąpień modeli w scenach.

(29)

2.4.2 Dopasowywanie zgrubne i dokładne

Algorytm RANSAC (ang. Random Sample Consensus) [35] jest popularnym narzędziem w wielu zagadnieniach wizji komputerowej, przede wszystkim ze względu na zdolność do pracy na danych zawierających błędy wynikające z niedoskonałości urządzeń pomiarowych i algorytmów wstępnego przetwarzania. Ściślej, RANSAC jest techniką szacowania parametrów modelu, tolerującą punkty odstające. Jednocześnie z relacją opisującą dane, wyznaczana jest klasyfikacja próbek na pasujące do wyznaczonej zależności i na punkty odstające. Technika ta jest stosowana do wyznaczania zależności pomiędzy zmiennymi, może stanowić odporny na zakłócenia odpowiednik regresji liniowej, służyć do wykrywania linii i kół na obrazach oraz do szukania zależności pomiędzy deskryptorami zarówno na obrazach płaskich, jak i w trójwymiarowych chmurach punktów.

RANSAC działa na zasadzie iteracyjnego generowania i testowania hipotez. W losowy sposób wybiera się minimalny zbiór danych wejściowych i na podstawie tych danych określa się parametry modelu. Na przykład dla zadania dopasowania prostej do zbioru punktów minimalnym zbiorem dla którego można wyznaczyć model są dwa punkty. Następnie model jest oceniany na całym zbiorze danych wejściowych, wyznaczana jest liczba punktów pasujących do modelu i punktów odstających. Ocena ta jest oparta na wartości progowej, np. odległości punktu od modelu prostej.

Jeżeli odległość rozpatrywanego punktu jest mniejsza od progu, zaliczany jest on do punktów przystających do modelu. Pętla generowania i sprawdzania hipotezy jest następnie powtarzana, aż do momentu, gdy prawdopodobieństwo znalezienia lepszego rozwiązania spadnie poniżej założonej wartości, osiągnięta zostanie zakładana liczba iteracji lub udział punktów pasujących do modelu będzie wystarczający.

Głównym problemem wynikającym z zastosowania algorytmu RANSAC jest jego iteracyjna i losowa natura [36]. Liczba wymaganych iteracji rośnie wykładniczo wraz ze wzrostem liczby próbek, a to przekłada się na długie czasy obliczeń. W związku z tymi ograniczeniami, zaproponowano wiele rozwiązań, które mają na celu przyspieszenie obliczeń, niektóre opierają się na optymalizacji procesu weryfikacji, inne proponują nowe, lepsze niż losowe strategie wyboru próbki do wygenerowania hipotezy. Poza tym, omawiana technika wielu, niezależnych iteracji na tych samych danych w naturalny sposób nadaje się do implementacji równoległej, korzystającej z wielordzeniowych architektur współczesnych procesorów i kart graficznych.

W MLESAC [37] wprowadzono funkcję oceniającą jakość wygenerowanej hipotezy

o zależności pomiędzy parą punktów i jeszcze przed oceną udziału punktów przystających, wybiera

się hipotezę maksymalizującą prawdopodobieństwo prawidłowości rozwiązania. Podejście to

(30)

pozwoliło zmniejszyć liczbę iteracji wymaganych do osiągnięcia zadowalającego rozwiązania i tym samym skrócić czas obliczeń. Podobna postawa została zastosowana w PROSAC [38], gdzie relacje pomiędzy punktami dopasowywanymi w dwóch chmurach są oceniane i losowanie minimalnego zbioru do wygenerowanego zbioru odbywa się z najbardziej obiecujących par. Połączenie i wybór optymalnych strategii generowania hipotez i ich uproszczonej weryfikacji przedstawiono w [39].

Techniki sprowadzania obliczeń do formy równoległej, wykonywanej współbieżnie na wielu rdzeniach procesora lub jednostkach obliczeniowych karty graficznej przedstawiono w [40].

Bardzo prostym krokiem, znacznie przyspieszającym realizację algorytmu RANSAC jest wstępne odrzucanie zależności wynikających z podobieństwa deskryptorów na podstawie odległości pomiędzy punktami. Pomysł ten zaprezentowano w [41] i został później zaimplementowany w bibliotekach programistycznych, a także używany w niniejszej pracy. Dla grupy punktów stanowiących podstawę do wysunięcia hipotezy oblicza się odległości pomiędzy punktami zarówno w chmurze źródłowej, jak i docelowej. Transformacja polegająca na przesunięciu i obrocie trójwymiarowej chmury punktów nie zmienia odległości pomiędzy punktami, dlatego przy idealnym dopasowaniu, uzyskana byłaby zerowa różnica odległości pomiędzy punktami. Jeżeli odległości pomiędzy punktami różnią się, to znaczy, że zależności są nieprawidłowe, a hipotezę można odrzucić. Dzieje się to jeszcze przed kosztownym obliczeniowo sprawdzaniem odległości pomiędzy chmurami punktów, dlatego znacznie skraca się czas obliczeń.

Oczywiście w rzeczywistych danych, szum w położeniu punktów może powodować różnice w odległościach pomiędzy parami odpowiadających sobie punktów, dlatego konieczne jest ustalenie progu tolerancji. Na przykład jeżeli maksymalna odległość pomiędzy odpowiadającymi sobie punktami w chmurze źródłowej nie różni się o więcej niż o 10% od odległości pomiędzy punktami w chmurze docelowej, to nie powinno być to podstawą do wstępnego odrzucenia przykładu i należy zweryfikować hipotezę obliczając odległości pomiędzy wszystkimi punktami chmury. Podobne podejście zastosowano w [30], gdzie jako kolejne kryterium do szybkiego odrzucania hipotez zastosowano zgodność kierunków normalnych w punktach stanowiących podstawę do wygenerowania hipotezy. Jeżeli kąt pomiędzy kierunkami normalnymi pary punktów wynosi więcej niż 30°, to hipoteza jest odrzucana i nie jest obliczana odległość między chmurami.

Nawet z zabiegami zwiększającymi efektywność dopasowania algorytmem RANSAC, ogólna

zasada działania wciąż sprawia, że duża część obliczeń nie przyczynia się wprost do poprawy

rezultatu. Opracowano więc metody, które w każdej iteracji poprawiają istniejące rozwiązanie, a nie

generują nowe hipotezy od nowa. Przykładem jest algorytm FGR (ang. Fast Global Registration),

który wprowadzono w [42]. Polega ona na jednorazowym wygenerowaniu połączeń pomiędzy

(31)

najbliższymi sobie deskryptorami i obliczenie na tej podstawie transformacji, którą przetwarzana jest dopasowywana chmura punktów. Oczywiście część deskryptorów będzie wadliwie dopasowana, więc rozwiązanie będzie obarczone błędem. W następnym kroku wybierane są dopasowania obarczone największym błędem (odległość pomiędzy punktami w przestrzeni jest największa) i usuwa się je ze zbioru, na podstawie którego generowana jest transformacja.

Czynności te powtarza się do uzyskania zadowalających rezultatów. Metoda ta wykonuje w jednym kroku zgrubne dopasowanie i iteracyjną korektę, dlatego nie ma potrzeby stosować dalszych kroków dokładnego dopasowywania, jak ma to miejsce w przypadku algorytmów typu RANSAC.

Podejmowane są również próby mające na celu zastąpienie ręczne definiowanych algorytmów dopasowujących chmury punktów na podstawie deskryptorów sieciami neuronowymi. Sieć neuronowa 3DRegNet [43] przyjmuje na wejściu pary odpowiadających sobie punktów, dlatego wymagane jest wstępne wyznaczenie par, na przykład przez wyszukiwanie najbliższych sąsiadów pomiędzy chmurą źródłową, a docelową w przestrzeni deskryptorów. Sieć przetwarza zależności i klasyfikuje je jako przystające lub odstające, a także zwraca wynikowe przesunięcie i obrót chmury. Obiecująca dokładność dopasowywania i przetwarzanie w jednym kroku, bez iteracji, na karcie graficznej sprawiają, że wkrótce metody oparte na technikach uczenia maszynowego mogą zastąpić stosowane obecnie algorytmy.

ICP (ang. Iterative Closest Point) [44] jest najczęściej używanym algorytmem do dopasowania trójwymiarowych kształtów bazującym na geometrii i ewentualnie na kolorze reprezentacji.

Algorytm ten wymaga dwóch chmur punktów i wstępnego przypuszczenia o ich wzajemnym położeniu. Zbyt odległe wstępne dopasowanie prowadzi do nieprawidłowych wyników algorytmu.

W przypadku zastosowań, gdy dopasowywane są dane przestrzenne pobierane ze skanera w czasie

rzeczywistym, ruch pomiędzy kolejnymi ekspozycjami jest na tyle mały, że możliwe jest

dopasowanie przy założeniu macierzy jednostkowej jako wstępnej transformacji. Działanie

algorytmu polega na powtarzającym się generowaniu par odpowiadających sobie punktów na obu

reprezentacjach i minimalizowaniu ich odległości. Punkty, dla których będą szukane zależności

wybierane są przez próbkowanie równomierne lub losowe. Dla każdego wybranego punktu z

jednego zbioru, wybierany jest najbliższy sąsiad w drugiej reprezentacji. Każdej parze

przypisywana jest waga, wyliczona na podstawie odległości pomiędzy punktami lub zgodności

kierunków normalnych. Część par może zostać po tym kroku całkowicie odrzucona, co zapobiega

wadliwym wynikom spowodowanym punktami odstającymi. Na podstawie odległości pomiędzy

punktami obliczana jest odległość pomiędzy reprezentacjami. Może być to suma odległości

pomiędzy punktami lub odległość punktu do lokalnej płaszczyzny opartej na wybranym sąsiedzie i

(32)

jego wektorze normalnym. Odległość stanowiąca błąd jest później minimalizowana, np. metodą najmniejszych kwadratów i na podstawie wygenerowanej transformacji, siatki są do siebie zbliżane.

W każdym z etapów możliwe jest zastosowanie wielu podejść, dlatego w literaturze można spotkać cały szereg wariantów metody ICP.

2.4.3 Deskryptory globalne

Zadanie klasyfikacji obiektów opiera się na obliczaniu podobieństwa reprezentacji do uogólnionego modelu. Między innymi w tym przypadku wystarczające jest zastosowanie deskryptora globalnego, który jest wynikiem przekształcenia geometrii. Deskryptor globalny to jeden wektor cech, który powinien umożliwić pomiar podobieństwa pomiędzy kształtami. Główną zaletą tego podejścia jest prostota. Obliczany jest tylko jeden deskryptor dla całego kształtu, nie jest wymagane szukanie zależności pomiędzy wieloma deskryptorami, jak ma to miejsce w przypadku metod lokalnych. Funkcja kształtu, która przekształca dowolny model trójwymiarowy w wektor cech powinna posiadać szereg właściwości. Najważniejsza jest zdolność do różnicowania, czyli wrażliwość funkcji na zmiany kształtu przetwarzanego obiektu. Z drugiej strony konieczna jest odporność funkcji na szum, punkty odstające i inne zmiany wynikające z niedoskonałości urządzeń pomiarowych. Deskryptor globalny wygenerowany przez funkcję kształtu powinien charakteryzować się niezmiennością względem przekształceń geometrycznych obiektu, czyli przesunięcie i obrót. Niektóre deskryptory są również odporne na zmianę skali i odbicia lustrzane.

Istotę porównywania podobieństwa kształtów przy pomocy deskryptorów globalnych przedstawiono na rys. 2.7.

Miarą odmienności modeli 3D jest długość różnicy wektorów w normie L1 lub L2. Dla deskryptorów będących histogramami cech geometrycznych stosować można również metrykę Bhattacharyya lub Wassersteina, jak również stosować techniki dopasowywania krzywych zarówno

Rys. 2.7. Porównywanie modeli 3D na podstawie jednego globalnego deskryptora

(33)

dla funkcji gęstości prawdopodobieństwa jak i dla dystrybuanty. Klasyfikacja modelu może polegać na znalezieniu najbliższego sąsiada w przestrzeni deskryptorów w bazie danych lub na porównywaniu odległości do uśrednionego deskryptora dla całej klasy obiektów. Innym podejściem jest zastosowanie gotowej, uniwersalnej implementacji klasyfikatora, jak maszyny wektorów nośnych lub drzew decyzyjnych z modelem zwiększania gradientu, zakładające, że dostępna baza zawiera więcej niż kilka obiektów reprezentujących każdą z klas.

Kształty mogą być opisane jako histogramy lub zbiory cech opartych o kierunki wektorów normalnych i krzywiznę powierzchni [45]. Stosuje się też modele oparte na odległościach, kątach, powierzchniach trójkątów i objętościach czworościanów [46] dla losowo wybranych punktów na powierzchni obiektu. Wektor cech jest w tym przypadku histogramem wartości dla określonej liczby prób.

Wartość globalnego deskryptora obiektu powinna być niezależna od jego położenia kątowego.

W publikacji [47] zwrócono uwagę na ten problem i zaproponowano algorytm, który oblicza cechy przekształcając model do postaci funkcji sferycznej, którą można rozbić do składowych harmonicznych. Deskryptorem jest macierz o wymiarze 64 × 64, której kierunkami jest promień i częstotliwość, a wartościami są sumy składowych harmonicznych dla danej kombinacji.

Alternatywnym sposobem zapewnienia niewrażliwości deskryptora na obroty jest wstępne przekształcenie chmury punktów do postaci normalnej, na przykład przez obliczenie kierunków głównych, przesunięcie centroidy chmury do początku układu współrzędnych i obrót sprawiający, że kierunki główne będą zgodne z kierunkami układu współrzędnych. W pracy [47] wykazano jednak ograniczenia tego rozwiązania. Jest to wciąż ważny i nierozwiązany problem, gdyż nawet nowoczesne metody, oparte o techniki uczenia, jak zaproponowana w niniejszej rozprawie, generują deskryptory, które nie są wewnętrznie odporne na obroty, natomiast podejście ze sprowadzeniem modelu do postaci normalnej często nie jest skuteczne.

2.4.4 Deskryptory lokalne

Standardowym podejściem przy rozpoznawaniu obiektów jest obliczenie atrybutów punktu danych w niewielkim otoczeniu, czyli deskryptora lokalnego. Następnie określane jest podobieństwo tych fragmentów, które może służyć do klasyfikacji obiektu lub być podstawą do szukania zależności na podstawie których można zlokalizować obiekt na zdjęciu lub w chmurze punktów.

Ręcznie definiowane deskryptory opierają się na z góry zdefiniowanym algorytmie, mającym jak

najlepiej opisywać lokalną geometrię trójwymiarowych obiektów. Wszystkie deskryptory analizują

Cytaty

Powiązane dokumenty

Żeby w informatyce wykorzystać potencjał funkcjonalny neuronu oraz całej ich sieci (grafu), zwanych często sieciami neuronowymi, trzeba opracować uproszczony model działania

Inne czynniki makrootoczenia to: stopa bezrobocia, dochody ludności, infrastruktura (drogi, hotele, transport), koszty energii (dostęp do tańszych źródeł),

Kolejnym obszarem jest budowanie przez niego silnej osobowości telewizyjnej, co widać nie tylko w jego domi- nującej pozycji w autorskich programach wobec innych uczestników, ale

Tym niem niej poczynić trzeba w tym m iejscu zastrze­ żenie, że za czyny przeciwko władzy, stojącej w szak na straży porządku publicznego, uznaje się

Analiza wpływu liczby cech na zdolność sieci SOM do wyróżniania skupień 202 5.5.. Zastosowanie sieci SOM do wyboru oferty na wtórnym rynku nieruchomości

strumienia stojana z wykorzystaniem pomiarów napięcia i prądu stojana oraz modelu neuronowego (Grzesiak i.

Często współczynnik ten jest ustawiany na najwyższą wartość początkowo, a następnie jest redukowany przy zmianie wag sieci...

Dokonując oceny na podstawie poszczególnych narzędzi, zauważyć można świadomość firmy o istnieniu problemu oraz konieczności poświęcenia czasu i środków