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
Promotor
dr hab. inż. Olaf CISZAK prof. nadzw.
Politechnika Poznańska
Instytut Technologii Mechanicznej
Zakład Projektowania TechnologiiStreszczenie
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.
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
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ęcief - 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 elementuK - 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 obrazuN
- sąsiedztwo punktuP
- lista pozycji robota, ścieżkaPi - i-ty punkt w przestrzeni, Pi
∈ℝ
3, P
i=(P
ix, P
iy, P
iz)
PiA - 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ówR - 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 aS - zorientowana chmura punktów S={u
}
S
R - wskaźnik sukcesu, miara jakości dopasowania modeli do scenSSE - 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
∈ℝ
3ui - punkt zorientowany, ui
=(
Pi, n
i)
K
u
, v
K - współrzędne w układzie sensora kameryU , V
- wymiary sensora kameryA
x
, y
A, z
A - kierunki układu współrzędnych AX - 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
}
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
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.
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ń
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
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
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.
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
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
Dpunktach, 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
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
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
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
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ą
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.
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
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.
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
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 ×Kprzekształcającą zbiór N punktów X={P
1,P2,... P
n}, P∈ℝ
3na 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ępnieposł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 )∈ℝ
Kgeneruje 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
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
XMw 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