Professional Documents
Culture Documents
Jakub Wojciechowski Wyznaczanie Pozycji Obiektow W Otoczeniu Robota Przemyslowego Na Podstawie Zdjec I Chmur Punktow
Jakub Wojciechowski Wyznaczanie Pozycji Obiektow W Otoczeniu Robota Przemyslowego Na Podstawie Zdjec I Chmur Punktow
ROZPRAWA DOKTORSKA
Jakub WOJCIECHOWSKI
Poznań 2019
Promotor
dr hab. inż. Olaf CISZAK prof. nadzw.
Politechnika Poznańska
Instytut Technologii Mechanicznej
Zakład Projektowania Technologii
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.
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
7
8
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
Δ Rt , Δ 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]
ki - 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
nu , nv - liczba pikseli obrazu
N - sąsiedztwo punktu
RBA B
- macierz obrotu pomiędzy układami współrzędnych A i B, RA ∈SO(3)
9
SR - 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)
B B
T A - transformacja pomiędzy układami współrzędnych A i B, T A ∈SE(3)
TCP-IP - sieciowy protokół komunikacyjny (ang. Transmission Control Protocol / Internet
Protocol)
C B - przesunięcie pomiędzy układami współrzędnych A i B, przedstawione w układzie
tA
B 3
współrzędnych C, t A ∈ℝ
ui - punkt zorientowany, ui =( P i , ni )
K
u, Kv - współrzędne w układzie sensora kamery
U, V - wymiary sensora kamery
A
x , A y , Az - 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 ={ y i }
10
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.
Rys. 1.1. Tryby pracy robota przemysłowego: a) stały program pracy, b) praca autonomiczna
w zmiennym otoczeniu
11
danych, wskazano znaczenie parametrów, sprawdzono wrażliwość na niedoskonałości reprezentacji
trójwymiarowych oraz przeprowadzono walidację w warunkach rzeczywistych.
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.
12
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.
13
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.
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
14
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.
15
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].
16
Rys. 2.2. Zapis kształtu w postaci: a) rzadkiej chmury punktów b) gęstego zapisu wolumetrycznego
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].
17
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.
18
Rys. 2.4. Proces generowania drzewa k-wymiarowego
19
Rys. 2.5. Wyznaczanie udziału punktów prawidłowo dopasowanych
20
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.
Rys. 2.6. Efekty wyboru kolejnego widoku, w celu minimalizacji niepewności klasyfikacji
21
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.
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ą
22
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.
23
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
24
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ęć.
25
Tabela 2.1. Zestawienie publicznych zbiorów danych trójwymiarowych
liczba
nazwa typ obiektów typ sensora typ danych liczba scen zadania
modeli
klasyfikacja,
ModelNet modele CAD - siatki - 150 000
wyszukiwanie
sekwencje
NYU v2 wnętrza kamera 3D 464 - segmentacja
RGB-D
przedmioty detekcja,
RGB-D sekwencje
codziennego kamera 3D 22 300 szacowanie
Washington RGB-D
użytku pozycji
klasyfikacja,
ShapeNet modele CAD - siatki - 51 000 segmentacja na
części
kamery, 6 godzin
obrazy, chmury detekcja,
KITTI jezdnie, drogi LIDAR, sekwencji 3 kategorie
punktów segmentacja
GPS czujników
segmentacja na
kształty proste,
szacowanie
ABC modele CAD - siatki - 1 000 000
normalnych,
uzupełnianie
kształtów
sekwencje rekonstrukcja
ICL-NUIM wnętrza - 2 -
RGB-D sekwencji RGB-D
rekonstrukcja
sekwencje
sekwencji RGB-D,
RGB-D, 800
SUN3D wnętrza kamera 3D 415 segmentacja
chmury kategorii
semantyczna,
punktów
detekcja
klasyfikacja,
sekwencje 150
3dscan różne kamera 3D 2200 rekonstrukcja
RGB-D kategorii
sekwencji RGB-D
przedmioty wyznaczanie
sekwencje
LINEMOD codziennego kamera 3D 15 15 pozycji,
RGB-D
użytku detekcja
skaner chmury wyznaczanie
UWA figurki 50 4
laserowy punktów pozycji
przedmioty wyznaczanie
sekwencje
Shelf & Tote codziennego kamera 3D 452 39 pozycji,
RGB-D
użytku segmentacja
sekwencje
RGB-D wyznaczanie
elementy kamera 3D
T-Less obrazy 20 30 pozycji,
elektryczne kamera
wysokiej segmentacja
rozdzielczości
26
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:
K
d ( y 1, y 2)=‖y 2 − y 1‖= √∑
i =1
( y 2 i− y 1 i)2 (2.1)
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.
27
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.
Wynikiem algorytmu dopasowania jest transformacja T, która przenosi chmurę punktów modelu
X M 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.
NM
L=∑ min‖T⋅P Mi −P S‖ (2.2)
i=1
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.
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∣t pr ] różni się od transformacji prawdziwej T gt =[Rgt∣t gt ] o mniej niż zadane
progi Δ RT , Δ t T , do liczby wystąpień modeli w scenach.
28
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.
29
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].
30
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.
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
31
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.
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
32
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.
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ą
33
otoczenie punktu. Na jego podstawie, dla każdego punktu generując wektor będący histogramem
właściwości, takich jak kąty pomiędzy kierunkiem normalnym do powierzchni w analizowanym
punkcie i kierunkami normalnymi w punktach otoczenia. Deskryptory różnią się sposobem
ustalania układów współrzędnych i wyborem otoczenia. Powinny być niewrażliwe na sztywne
transformacje chmury punktów, to jest przesunięcia i obroty, a także na zmianę gęstości punktów
i losowy szum.
Szybki histogram cech punktów (ang. Fast Point Feature Histograms, FPFH) [51] jest obecnie
prawdopodobnie najpopularniejszym ręcznie definiowanym deskryptorem lokalnym geometrii 3D.
Stanowi podstawę do porównywania wszystkich nowych algorytmów. Popularność wynika ze
skuteczności i wbudowania w najbardziej rozpowszechnioną bibliotekę programistyczną
wspierającą przetwarzanie chmur punktów, czyli PCL [52]. Dla każdego punktu w zadanym
promieniu poszukiwane są punkty sąsiednie. Rozpatruje się relacje punktu z każdym z sąsiadów,
wyznaczany jest lokalny układ współrzędnych, oparty o lokalny kierunek normalny i wektor
łączący dwa rozpatrywane punkty. Relacja jest opisywana kątami, między kierunkiem normalnym
w punkcie, a kierunkami osi układu współrzędnych oraz kątem pomiędzy kierunkiem normalnym,
a wektorem łączącym punkty. Stosowano również parametr mówiący o odległości pomiędzy
punktami w parze, lecz wprowadzał błędy w przypadku analizy reprezentacji opartych o skanach
RGB-D, w których gęstość punktów zmienia się wraz z odległością od sensora. W podstawowej
34
wersji PFH deskryptor jest wielowymiarowym histogramem cech dla utworzonych par. Wartość
każdej funkcji jest dzielona na b równych przedziałów, dlatego wymiar deskryptora to b3. W wersji
szybkiej FPFH zastosowano obliczanie deskryptora jako średniej ważonej z sąsiednimi punktami,
a histogram dla każdej zmiennej jest liczony osobno, co zmniejszyło jego rozmiar do 3b.
Standardowo przyjmowany jest podział na 11 słupków, co odpowiada deskryptorowi o 33
elementach.
Metoda generowania deskryptorów ISS (ang. Intrinsic shape signatures) [53] opiera
niewrażliwość na transformacje geometryczne poprzez użycie lokalnych układów współrzędnych,
w których kierunek główny stanowi wektor normalny do powierzchni w punkcie, a pozostałe
kierunki wyznaczane są na podstawie analizy komponentów głównych pozycji sąsiednich punktów.
Deskryptor stanowi histogram z ważonych położeń punktów w sferycznej siatce.
Istnieją też techniki używające lokalnych cech wyznaczanych w punktach kluczowych obrazu.
Wektory cech są dopasowywane pomiędzy obrazami modelu, a obrazem sceny i geometrycznie
weryfikowane [58], [59]. Głównym ograniczeniem tych metod w zastosowaniu do wyznaczania
pozycji w warunkach przemysłowych jest możliwość pracy jedynie na obiektach o wyraźnej
teksturze, jak np. opakowania produktów z nadrukami.
35
Pominięcie kroku wyznaczania punktów kluczowych prowadzi do metod opartych na użyciu
gęstych cech obrazu. Deskryptor każdego piksela obrazu jest przyczynkiem do predykcji położenia
obiektu w przestrzeni. Ostateczny wynik jest wybierany zgodnie ze schematem głosowania
Hough’a [60].
Sieci neuronowe są obecnie najlepszym rozwiązaniem dla większości zadań z zakresu wizji
komputerowej. Korzystają ze dwuwymiarowej struktury danych typowej dla zdjęć (również dla
dźwięku po szybkiej transformacie Fouriera lub tekstu po operacji osadzenia). Głównym
czynnikiem ich sukcesu jest możliwość użycia dużych zbiorów danych do generowania ogólnych,
uniwersalnych cech obrazów, które są lepiej przystosowane do danych i przewyższają
skutecznością definiowane na stałe cechy i deskryptory [62].
Obecnie stosowane sieci neuronowe składają się głównie z warstw konwolucyjnych (ang.
convolutional layers) oraz zbierających dane (ang. pooling). Warstwa konwolucyjna splata
dostarczone dane z filtrami i tym samym przekształca na cechy, które zawierają informację
wyższego poziomu. Na przykład informacja o kolorze punktu jest zamieniana na cechę informującą
o obecności w danym punkcie narożnika, lub w dalszych warstwach, na informację o wystąpieniu
kącika oka człowieka. Liczba filtrów i ich wielkość, jest definiowana na etapie projektowania sieci
neuronowej. Filtry mogą być zarówno dwuwymiarowe, dla obrazów płaskich, jak i trójwymiarowe,
do przetwarzania reprezentacji wolumetrycznej geometrii przestrzennej. Wartości filtrów zmieniają
się w procesie uczenia w procedurze wstecznej propagacji gradientu, na podstawie dostarczanych
danych uczących. Warstwa zbierająca dane ma za zadanie zmniejszyć wymiary danych, przez
zastąpienie kilku sąsiednich cech jedną. Najczęściej używa się funkcji maksimum, w celu wybrania
36
cechy o największej wartości, po której można spodziewać się największej zdolności do
rozróżnienia właściwości reprezentacji w punkcie. Rzadziej stosowana jest średnia, która
uwzględnia wartości cech we wszystkich redukowanych punktach. Kombinacja warstw
konwolucyjnych i zbierających utrzymuje w procesie przetwarzania przez kolejne bloki warstw
prawie stałą ilość danych, poprzez zwiększanie liczby kanałów, głębi znaczeniowej, przy
jednoczesnym zmniejszaniu rozdzielczości przestrzennej reprezentacji.
Czasami zachodzi konieczność zebrania pewnych cech danych w jeden wektor o stałej liczbie
elementów. Do tego celu używany jest wielowarstwowy perceptron, będący prostym modelem sieci
neuronowej. Zawiera warstwy w pełni połączone, w których każdy element jest połączony ze
wszystkimi elementami w następnej warstwie, dlatego nie nadaje się do przetwarzania dużych ilości
danych. Zbierając całość informacji, nie ma możliwości przetwarzania lokalnego kontekstu
punktów danych, jak ma to miejsce w przypadku sieci konwolucyjnych.
37
sytuacja zmieni się wraz z publikowaniem dużych zbiorów opisanych trójwymiarowych danych
treningowych, co zwiększy znacząco tempo postępu w implementacji algorytmów do przetwarzania
przestrzennych reprezentacji, jak ImageNet [64] i COCO [65] ułatwiły implementacje i walidację
algorytmów w dziedzinie przetwarzania obrazów.
Niestety, przeniesienie wprost architektur i formy danych nie daje zadowalających rezultatów.
Główną przyczyną jest ilość danych. W przypadku zapisu wolumetrycznego, rośnie ona
proporcjonalnie do sześcianu wymiaru siatki, dlatego należy przetwarzać w jednej iteracji jedynie
niewielkie fragmenty całej sceny lub znacząca ograniczyć jej rozdzielczość. W publikacjach opisuje
się zwykle sieci neuronowe operujące na siatkach o wymiarach od 30 × 30 × 30 do 64 × 64 × 64.
38
Przetwarzanie deskryptorów
Podejścia oparte na technikach uczenia maszynowego często mają problem z zachowaniem
niewrażliwości na obroty chmur punktów. Obliczone deskryptory są zależne od położenia obiektu
względem początku układu współrzędnych sensora. Ograniczeń tych nie posiada większość
ręczenie definiowanych deskryptorów, dzięki stosowaniu lokalnych układów współrzędnych,
w których opisywana jest geometria. W pracy [70] rozwiązano ten problem, przez wstępne
obliczenie prostych deskryptorów opartych na odległości i kącie pomiędzy normalnymi pary
punktów [71], które następnie przetwarzano przez sieć w formie autoenkodera opartego
o wielowarstwowe perceptrony. Jest to podejście uczone, jest więc w stanie przekształcać ręcznie
zdefiniowany deskryptor do formy zoptymalizowanej do rozpoznawania obiektów w konkretnym
zbiorze danych.
39
sklasyfikować chmurę punktów. Niewrażliwość na obrót chmury punktów osiągnięto przez
przetwarzanie zarówno punktów, jak i generowanych przez perceptrony cech, przy pomocy
osobnych sieci generujących na podstawie danych macierze transformacji, które sprowadzają dane
do uspójnionej formy. Wynikiem przetworzenia jest jedna macierz transformacji dla punktów
i jedna dla cech, którymi odpowiednio przekształca się punkty i cechy chmury. Niewrażliwość na
permutacje w kolejności punktów zapewnia zastosowanie warstwy zbierającej cechy przy użyciu
funkcji maksimum, której wynik jest niezależny od kolejności podanych do niej wektorów cech.
Problemem tej architektury jest ograniczona możliwość uwzględniania sąsiedztwa punktów.
Naturalnym rozwinięciem jest wprowadzenie algorytmu hierarchicznych zależności pomiędzy
punktami w kilku skalach w architekturze PointNet++ opracowanej przez zespół z Uniwersytetu
Stanforda [78]. Powstało również kilka podobnych metod, realizujących bezpośrednie
przetwarzanie chmur punktów przy użyciu wielowarstwowych perceptronów [79]–[81].
40
położenia modeli w chmurach punktów. Opracowano już pierwsze architektury sieci, które generują
wprost macierze transformacji [85], jednak łatwiejszym i pewniejszym sposobem jest
wygenerowanie lokalnych deskryptorów punktów i przekazanie ich do klasycznych i sprawdzonych
algorytmów ich dopasowywania.
3DMatch [86] jest metodą, która uczy się generowania deskryptorów w układzie sieci
syjamskiej. W jednej iteracji procesu uczenia, dwie sieci o współdzielonych wagach, przetwarzają
dwa fragmenty chmury punktów z pojedynczej reprezentacji RGB-D. Do sieci podawane są
przykłady pozytywne, czyli fragmenty reprezentujące jeden obiekt z dwóch różnych punktów
widzenia lub przykłady negatywne, w którym każda z sieci przetwarza chmurę punktów
reprezentującą różne obiekty. Funkcja błędu bazuje na odległości pomiędzy wygenerowanymi
deskryptorami fragmentu, dla przykładów pozytywnych powinna dążyć do zera, dla negatywnych,
powinna być większa od zadanego progu. Zastosowaną architekturą jest trójwymiarowa sieć
konwolucyjna przetwarzająca dane w formie wolumetrycznej. Generowane są deskryptory mające
wymiar 512, a do dopasowywania chmur punktów używana jest standardowa procedura RANSAC.
Użycie reprezentacji wolumetrycznej ogranicza wielkość przetwarzanego fragmentu do 30 × 30 ×
30, a deskryptor każdego punktu jest obliczany osobno.
41
widzianego z wielu kierunków dopasowywanych do obrazu sceny. Innym podejściem jest
generowanie deskryptorów obrazu i dopasowywanie ich z analogicznymi cechami obliczonymi dla
obrazów modelu. Proces generowania deskryptorów można przenieść w przestrzeń trójwymiarową
i obliczać lokalne cechy geometrii od razu w trzech wymiarach, bez konieczności uwzględniania
wielu widoków modelu. W każdym przypadku następnym krokiem jest dopasowanie cech
i geometryczna weryfikacja rozwiązania, gdzie najczęściej stosowanym algorytmem jest RANSAC.
Konieczne jest dobranie odpowiedniej techniki do typu lokalizowanego modelu. Metody nie są
uniwersalne. Algorytmy generujące deskryptory obrazów płaskich sprawdzą się w lokalizacji
obiektów o wyraźnej teksturze, jak opakowań z kolorowymi etykietami. Dopasowywanie
złożonych, kształtów o dużej zmienności kierunków normalnych, najlepiej przeprowadzić przy
użyciu deskryptorów trójwymiarowych. Bryły podstawowe jak prostopadłościany i walce można
dopasowywać weryfikując metodą RANSAC hipotezy o lokalizacjach takich kształtów danych
bezpośrednio wzorami powierzchni.
Techniki klasyczne nie są odporne na zasłonięcia części szukanej bryły, punkty odstające i szum.
Przetwarzanie niedoskonałych danych wiąże się z koniecznością zastosowania większej liczby
iteracji algorytmów dopasowujących i tym samym wydłużeniem czasu obliczeń.
42
Najprostszym sposobem przetwarzania danych trójwymiarowych jest bezpośrednie użycie
architektur znanych z przetwarzania obrazów. Uwzględnienie głębi następuje poprzez dostarczenie
do detektora lub klasyfikatora wielu zdjęć prezentujących scenę z wielu punktów widzenia lub
dodanie mapy głębi lub wyodrębnionych z niej cech jako kolejnego kanału kolorowego obrazu.
Chmury punktów dają się przedstawić w efektywny sposób w postaci grafów i drzew,
zachowujących jednocześnie informację o relacjach pomiędzy sąsiednimi punktami. Istnieją
algorytmy przetwarzających ten typ reprezentacji, lecz są one jeszcze znaczenie mniej
zaawansowane niż bardziej powszechne techniki.
43
w zadaniu segmentacji punktów. Publiczne zbiory zawierające opracowane przez ludzi etykiety
i ręcznie korygowane dopasowania zawierają jedynie około 1000 obrazów RGB-D. Sposobem na
zwiększanie liczby przykładów są automatyczne techniki rekonstrukcji siatek, dopasowywania
i propagacji etykiet, co odbywa się jednak kosztem niższej jakości danych. Brak obszernych
zbiorów danych wysokiej jakości ogranicza możliwość możliwość budowania bardzo złożonych
modeli sieci neuronowych analizujących dane geometryczne.
Istnieją firmy oferujące systemy integrujące roboty przemysłowe ze skanerami 3D, są to jednak
rozwiązania bardzo kosztowne. Samodzielna integracja urządzeń przechwytujących kształty
otoczenia ze współczesnymi robotami przemysłowymi jest możliwa ale wymaga opracowania
własnego oprogramowania realizującego procedury kalibracji i wymiany danych pomiędzy
urządzeniami.
44
i rozładowywania towarów z palet. Producenci rozwiązań nie udostępniają szczegółów dotyczących
zasady działania algorytmów i uzyskiwanych parametrów jakości lokalizacji. Analizując materiały
multimedialne można jednak zauważyć szereg ograniczeń, które uniemożliwiają szersze
zastosowanie połączenia robotów przemysłowych z kamerami trójwymiarowymi. Należą do nich:
45
Cele pracy
Na podstawie przeprowadzonej analizy stanu wiedzy wyznaczone zostały cele pracy doktorskiej,
dążące do przezwyciężenia barier ograniczających zastosowanie wyznaczania pozycji obiektów
w trójwymiarowych reprezentacjach otoczenia robotów w praktyce przemysłowej.
IV. Opracowanie techniki wyznaczania pozycji przy użyciu uczenia maszynowego, opartej na
dostarczonych danych.
46
3. Zrobotyzowany skaner laserowy
3.1. Podstawy
Mimo dostępności wielu urządzeń do akwizycji geometrii 3D, jak popularne kamery RGB-D,
skanery laserowe i skanery operujące na świetle strukturalnym, do prowadzenia badań w niniejszej
pracy brakowało urządzenia, które będzie spełniało następujące założenia:
47
nad przestrzenią pracy manipulatora, przez co wdrożenie systemu nie wymaga zazwyczaj zmian
strukturalnych i modyfikacji aktualnie działających programów. Na ramieniu robota instalowany
jest wskaźnik laserowy o wadze nie większej niż 0,2 kg, co pozwala na umieszczenie go równolegle
z chwytakiem, głowicą spawalniczą lub innym efektorem. Rysunek 3.1. przedstawia także układy
współrzędnych używane w obliczeniach, U – układ użytkownika, M – układ interfejsu
mechanicznego, L – układ lasera, K – układ kamery.
Skaner wykrywa położenie punktów badanego przedmiotu obliczając miejsce przecięcia prostej
i płaszczyzny (rys. 3.2). Płaszczyzną przybliżona jest wiązka światła laserowego, a prosta powstaje
w wyniku połączenia środkowego punktu obiektywu KP0 i rozpatrywanej plamki na płaszczyźnie
obrazowania KPs. Taką półprostą można wyznaczyć dla każdego piksela pobranego obrazu, przy
czym pełna informacja o współrzędnych zostanie uzyskana jedynie dla punktów oświetlonych
światłem lasera.
L
y PL
L
s Px x
u L
PS z
s
V v
P0 r k
k
v u
f
U
48
Współrzędne tych punktów w układzie kamery można wyrazić następująco:
0
K
[]
P 0= 0
0
(3.1)
K
u
K
[]
P s = Kv
f
(3.2)
gdzie:
mm U V
k [ ]
px
= =
nU nV
(3.3)
gdzie:
k 0 −U / 2
K
S
0 0[
T = 0 k −V / 2
1 ] (3.4)
r = K P s −K P 0 (3.5)
Pojedynczy obraz jest w stanie dostarczyć informacji o rozpatrywanym punkcie, który leży na
półprostej P0PS. Zastosowanie światła strukturalnego pozwala wnioskować, w którym dokładnie
49
miejscu tej półprostej leży rozpatrywany punkt. Wiązkę światła laserowego można traktować jako
płaszczyznę, która jest definiowana przez punkt na niej leżący i wektor normalny w tym punkcie.
Dla wygody obliczeń, stosuje się do zapisu notację Hessa, w której płaszczyzna opisana jest
równaniem (3.6):
n ∙ P +d=0 (3.6)
gdzie:
n – wektor normalny płaszczyzny,
d – odległość płaszczyzny od początku układu współrzędnych.
Wielkości te odczytywane są z układu sterowania robota i transformowane z układu narzędzia na
układ współrzędnych kamery przez macierz transformacji T KL , która jest uzyskana w procesie
kalibracji wskaźnika laserowego. Punkt Px, którego położenie jest określane, leży na przecięciu
płaszczyzny lasera oraz półprostej P0PS. Punkt przecięcia, poszukiwany punkt Px jest rozwiązaniem
układu równań 3.7 i 3.8.
n ∙ P x + d=0 (3.7)
P0 + r ∙ t =P x (3.8)
Równanie 3.7 zapewnia, że punkt Px leży w płaszczyźnie światła laserowego, a równanie 3.8 jest
warunkiem tego, że punkt Px znajduje się na półprostej P0Ps. Rozwijając powyższe równania
otrzymuje się układ 4 równań liniowych:
nx n y n z 0 P xx −d
[ 1 0 0 −r x P xy
⋅
0 1 0 −r y Pxz
0 0 1 −r z t r
][ ] [ ]
P
= 0x
P0 y
P0z
(3.9)
W celu uzyskania chmury punktów układ powyższy rozwiązuje się dla wszystkich punktów na
obrazie oświetlonych wiązką światła laserowego. Parametry P0x, P0y i P0z pozostają stałe, nx, ny, nz
oraz d zależą od położenia źródła wiązki lasera i są odczytywane z układu sterowania robota
przemysłowego, rx, ry i rz wynikają z analizy obrazu uzyskanego przez kamerę. Złożenie tych
danych pozwala uzyskać wszystkie trzy współrzędne położenia punktu w przestrzeni oraz parametr
tr definiujący położenie punktu na promieniu r.
Przestrzeń, w której zawierają się punkty mogące zostać rzutowane na płaszczyznę obrazu
kamery ma kształt ściętego ostrosłupa (rys. 3.3).
50
FOVX
X
u'
v'
Y FOVY
u
v
f
Z
U
FOV x
[ ]
FOV y
= f
V
f
[ ]
∙Z
∙Z
(3.10)
gdzie:
U – szerokość sensora kamery [mm],
V – wysokość sensora kamery [mm],
f – ogniskowa obiektywu [mm],
Z – odległość od kamery [mm].
Mając zadane wymiary gabarytowe obiektu pomiarów, można przy pomocy tych zależności
dobrać odpowiedni obiektyw kamery, bądź oszacować wymaganą odległość kamery od przedmiotu.
O przydatności skanera do zadań technologicznych w dużej mierze decyduje rozdzielczość skanera,
czyli liczba pikseli przypadających na rzeczywistą jednostkę długości mierzonego przedmiotu.
Zależy ona od objętości jego przestrzeni roboczej i od liczby punktów, jakie przechwytuje kamera
w ramach jednego zdjęcia. Do pewnego stopnia można zwiększać rozdzielczość skanera przez
zawężanie jego pola roboczego zmieniając ustawienia optyki kamery. Zwiększanie rozdzielczości
kamery, czyli liczby pikseli na obrazie, nie zawsze jest możliwe, ze względu na rosnący wraz z tym
parametrem koszt kamery, a także czas obliczeń i przesyłu danych.
51
FO V x FO V y
∆ x=∆ y= = (3.11)
nx ny
gdzie:
∆ x ,∆ y – rozdzielczość kamery w płaszczyźnie pomiaru, odpowiednio
w kierunku x i y [mm],
FOVx, FOVy – pole widzenia, odpowiednio w kierunku x i y [mm],
nx, ny – liczba elementów obrazu, pikseli, odpowiednio w kierunku x i y.
∆x
∆ z= (3.12)
tg(α )
gdzie:
α
Δz
Δx
Rys. 3.4. Rozdzielczość skanera w kierunku głębokości
Duże kąty triangulacji prowadzą do wyższej rozdzielczości w kierunku Z, jednak nie zawsze ich
stosowanie jest możliwe, ze względu na zmniejszenie widocznej dla skanera powierzchni
przedmiotu.
52
konstrukcji algorytmów wyszukujących linię, a zwłaszcza przy określaniu progów jasności, po
przekroczeniu których obszar jest uznawany za oświetlony wiązką lasera. Parametrami
charakteryzującymi źródło linii laserowej jest moc, długość emitowanej fali oraz odległość w jakiej
następuje maksymalne skupienie wiązki. Moc lasera decyduje o odporności urządzenia na zmienne
warunki oświetlenia zewnętrznego, do opisywanych zastosowań odpowiednie są lasery o mocy
pomiędzy 5, a 10 mW. Kolor światła ma mniejsze znaczenie, lasery czerwone są tańsze, ale niektóre
kamery są bardziej wrażliwe na światło zielone, dlatego wiązka zielona będzie lepiej widoczna na
zdjęciach niż wiązka czerwona, mimo tej samej mocy. Grubość wiązki lasera jest zmienna
w funkcji odległości od źródła i zależy od jej odległości od punktu w którym wiązka jest skupiona.
W przypadku skanerów optycznych nie jest konieczne zapewnienia skupienia wiązki lasera na
mierzonym przedmiocie, gdyż algorytm wykrywający środek wiązki działa dokładniej dla wiązek
szerszych, o płynniejszych zmianach jasności. Zbyt szeroka linia może jednak prowadzić do
maskowania pewnych szczegółów na przedmiocie.
Rys. 3.5. Analiza śladu wiązki światła: a) widok linii lasera, b) wykrywanie maksymalnej jasności,
c) wyznaczanie środka szerokości wiązki, d) rzeczywista zniekształcona wiązka
53
na rys. 3.5c. Próg jest ustalany dynamicznie, na podstawie analizy histogramu wartości pikseli
obrazu. Następnie uzyskana linia łamana jest wygładzana poprzez aproksymację wielomianem.
Uzyskane krzywe są uśrednione, przez co traci się część danych, między innymi o ostrych
krawędziach, ale pozwala to w ogólnym przypadku usunąć błąd przypadkowy, związany
z niepewnością położenia środka linii. Wyniki wygładzenia wiązki światła (kolor czerwony)
wykrytej metodą progową (linia zielona) przedstawiono na rys. 3.6. Wiązka w przykładzie padała
na płaszczyznę, dlatego jej ślad powinien być prostą na obrazie.
54
kamery. Macierz współczynników wewnętrznych i wektor współczynników korygujących są na
stałe przypisane do układu kamera – obiektyw. Konfiguracja skanera optycznego przewiduje
kamerę umocowaną nieruchomo na wysięgniku, dlatego wszystkie współczynniki obu macierzy
pozostają stałe i nie są zmieniane podczas trwania pomiarów. Kalibracja zostaje wykonana
jednokrotnie i obowiązuje dla wszystkich przeprowadzanych pomiarów do czasu wymiany
obiektywu i zmiany wielkości przestrzeni roboczej lub przesunięcia kamery względem robota. Do
przeprowadzenia kalibracji zastosowano algorytm obliczający jednocześnie parametry macierzy
wewnętrznej, położenie kamery względem układu użytkownika i wektor współczynników
korekcyjnych na podstawie serii zdjęć wzorca o znanych wymiarach [95]. Parametry macierzy
kamery mogą być obliczone na podstawie jednej fotografii, jednak dla współczynników
korygujących jest już potrzebna ich cała seria, przy różnych pozycjach elementu odniesienia na
fotografii. Jako szablon wzorcowy posłużono się kartką z nadrukowaną szachownicą o znanym
wymiarze siatki. Elementem rozpoznawanym przez program są naroża kwadratów. Zastosowano
korekcję zniekształceń promieniowych, proporcjonalnych do kwadratu odległości od środka obrazu.
Pominięto korygowanie zniekształceń promieniowych wyższych rzędów i zniekształceń stycznych,
uzasadniając tą decyzję ich niewielką wartością i mniejszą stabilnością. Jednocześnie z kalibracją
kamery ustala się wspólny układ współrzędnych dla urządzenia. Ideę powiązania układu
współrzędnych kamery z układem globalnym przedstawia rys. 3.7.
Przy użyciu zdjęcia algorytm ustala położenie kamery względem wzorca, czego wynikiem jest
macierz T Kw . Następnie przy pomocy skalibrowanego narzędzia robota, stożkowego wskaźnika,
ustala się położenie układu współrzędnych wzorca względem układu globalnego z wykorzystaniem
standardowej procedury definiowania nowego układu współrzędnych, polegającej na wskazaniu
55
trzech punktów, w tym środka układu współrzędnych wzorca, czego wynikiem jest macierz T WG .
Transformację między układem użytkownika, a kamery ustala się mnożąc uzyskane wcześniej
macierze:
T KU =T WU ⋅ T WK (3.13)
Opisany ciąg działań pozwala uzyskać wszystkie dane niezbędne do określenia zależności
między punktami na obrazie, a rzeczywistymi przedmiotami.
W pierwszej kolejności, z obrazu uzyskanego z kamery odczytuje się położenie widocznej linii
laserowej. Do odczytania linii posłużono się płytą pomiarową, na której określony został układ
współrzędnych użytkownika oraz wzorcem o znanej grubości (rys. 3.8).
56
współrzędne w układzie U. Na podstawie trzech punktów można określić płaszczyznę i macierz
transformacji T LU między układem użytkownika U, a układem płaszczyzny lasera L. Znając T MU ,
położenie układu interfejsu mechanicznego robota, które zostaje odczytane z układu sterowania,
można obliczyć transformację między układem interfejsu mechanicznego, a płaszczyzną lasera,
która określona jest zależnością 3.14.
T LM =T UM−1 ⋅T UL (3.14)
Bieżąca synchronizacja ruchów robota i wyzwalania kamery oparta jest na wymianie dwóch
sygnałów dwustanowych. Ramię robota nieruchomo oczekuje na otrzymanie komendy z kamery,
która wystąpi w momencie zakończenia przechwytywania obrazu przez kamerę. Robot wykonuje
ruch i ustawia sygnał wysoki na swoim wyjściu, połączonym z wejściem kamery, co jest związane
w programie z zezwoleniem na wykonanie kolejnego zdjęcia. Odczyt pozycji ramienia i wysłanie
pozycji do komputera następuje po zakończeniu wykonywania instrukcji ruchu. Opisany cykl
57
powtarza się do osiągnięcia wszystkich zaplanowanych pozycji ramienia robota zapisanych w jego
programie (rys. 3.9).
58
Rys. 3.10. Możliwe trajektorie ruchu rzutnika linii laserowej zainstalowanego na końcu ramienia
robota
Skaner przemiata wiązką lasera obracając źródło światła wokół stałego punktu, przesuwa je
liniowo lub realizuje kombinacje tych ruchów. W dotychczasowych próbach skanera nie było
konieczne implementowanie specjalnie dostosowanych do przedmiotu mierzonego ścieżek robota.
Jest to zaleta skanera ze stałą, obejmującą całą przestrzeń pomiarową kamerą. W skanerach,
w których kamera i laser są zintegrowane w ramach jednej głowicy niezbędne jest utrzymanie stałej
odległości i nachylenia urządzenia względem powierzchni skanowanej, co niesie ze sobą
konieczność opracowywania specjalnych programów skanowania.
59
Wadą pomiarów opartych o skanowanie laserowe jest ograniczona możliwość badania
powierzchni przezroczystych oraz połyskujących. Nieprawidłowości w wielu przypadkach można
usunąć przy pomocy specjalnych algorytmów lub przez pokrywanie kłopotliwych elementów
łatwymi do usunięcia matowymi powłokami. Zbadano zdolność proponowanego systemu do
pomiaru powierzchni po różnych operacjach technologicznych (rys. 3.11). Skaner prawidłowo
rozpoznał powierzchnię dla wszystkich technologii, przy czym liczba punktów błędnych nie
przekraczała 15%. Zostały one usuwane po pomiarze przy zastosowaniu podejścia statystycznego,
ich odległość od najbliższych sąsiadów przekracza ustalony próg.
Rys. 3.11. Wpływ obróbki metali na ubytki punktów wynikających z refleksyjności materiału
60
Rys. 3.12. Określanie powtarzalności zrobotyzowanego skanera laserowego (opis w tekście poniżej)
Test błędu próbkowania (ang. probing error test), (rys. 3.12a) określa rozkład punktów
względem powierzchni sfery przy jednym ruchu robota. MPE P jest maksymalnym odchyleniem
punktu od powierzchni średniej wyznaczonej metodą najmniejszych kwadratów.
gdzie:
P¯Cj , r¯j – środek i promień j-tej sfery wyznaczonej z układu równań metodą najmniejszych
kwadratów (LSE),
P̄ij – współrzędne i-tego punktu pomiarowego na j-tej sferze.
Test wielokrotnego najazdu (ang. multi-stylus test), (rys. 3.12b) określa powtarzalność pozycji
środka wzorcowej kuli przy różnych trajektoriach ramienia robota (rys. 3.12c). MPEAl jest średnicą
najmniejszej sfery zawierającej środki chmur punktów stanowiących reprezentację wzorcowej kuli
przy K = 5 różnych orientacjach rzutnika linii laserowej.
P Ck (3.18)
P¯C =∑ ,
K
gdzie:
P¯Ck , r¯k – środek i promień sfery wyznaczonej w k-tym położeniu robota z układu równań
metodą najmniejszych kwadratów (LSE) ,
P¯C – położenie zmierzonej sfery, uśrednione z K najazdów.
61
Skaner o opisanej konstrukcji, z 2-megapikselową kamerą i przestrzenią roboczą o kształcie
prostopadłościanu o podstawie o bokach 340 mm i 250 mm oraz wysokości 100 mm,
charakteryzuje się następującymi błędami powtarzalności:
62
3.4.2 Wnioski z budowy własnego stanowiska zrobotyzowanego ze skanerem 3D
Przedstawiona zasada działania skanera laserowego może być podstawą poszerzenia możliwości
standardowego stanowiska zrobotyzowanego o funkcje budowania przestrzennej reprezentacji
otoczenia. Zastosowanie tego typu modeli są wielorakie, od automatyzacji skomplikowanych zadań
montażowych, poprzez uproszczone programowanie robota, po generowanie cyfrowej reprezentacji
obiektów i inżynierię odwrotną. W ramach badań wyposażono standardowe stanowisko w źródło
światła laserowego oraz typowy komputer służący do obróbki i wizualizacji gromadzonych danych
geometrycznych (rys. 3.14).
63
Rys. 3.15. Efekty pracy skanera, a) obiekt mierzony, b) chmura punktów reprezentująca obiekt,
c) siatka, d) kształty bazowe wyszukane w obiekcie
64
4. Dostosowanie programu robota do pozycji
obiektów technologicznych
4.1. Podstawy
W niniejszym rozdziale przedstawiono przykład adaptacyjnego sterowania robotem
przemysłowym, koncepcję zrobotyzowanego stanowiska, gdzie zamiast oprzyrządowania
przytwierdzanego do podłoża stosuje się lekkie ramy umieszczane przez pracownika na stole.
Kamera umieszczona w pobliżu stanowiska rozpoznaje kody i określa ich pozycję w przestrzeni.
Informacje o rodzaju oprzyrządowania i jego lokalizacji w przestrzeni są przekazywane do
sterownika robota. Układ współrzędnych jest dostosowany do aktualnej pozycji obiektu na stole.
Wizualizację takiego stanowiska przedstawia rys. 4.1.
65
Proponuje się zwiększyć ich użyteczność przez dodanie możliwości ich lokalizacji i tym samym
określania lokalizacji obiektów.
Kody matrycowe są popularnym sposobem znakowania przedmiotów. Przy ich pomocy mogą
być zapisywane np. słowa, odnośniki do stron internetowych i poczty elektronicznej. Zakładając
ściśle określony wymiar kodu można również określić jednak nie tylko zakodowane dane, ale
również położenie kodu względem kamery. Te cechy kodów matrycowych były już stosowane
w robotyce. W pracy [99] zastosowano kody QR jako drogowskazy dla robota mobilnego.
Zakodowane w nich informacje stanowiły wytyczne do ruchu mobilnej platformy. Bliższe
rozważanemu rozwiązaniu jest opracowanie [100], w którym robot przemysłowy na mobilnej
platformie jest pozycjonowany względem stanowiska przy użyciu kodów matrycowych i kamery
RGB-D, przekazującej informacje o odległości obiektu od kamery.
66
zakłócenia w danych, od metod opartych o zamknięte układy równań. Większość metod pozwala na
określanie położenia kamery na podstawie większej od trzech liczby punktów, co zwiększa
dokładność [103]. W celu osiągnięcia zakładanej stabilności i dokładności wyników autor
zaproponował zastosowanie dwóch metod. W pierwszym kroku przybliżone rozwiązanie
uzyskiwane jest z podejścia opisanego w [104], w którym pozycja jest rozwiązaniem zamkniętego
równania opierającego się na analizie rzutu prostokątnego i skalowania. To wstępne rozwiązanie
jest przekazywane do metody iteracyjnej (krok 2) działającej w oparciu o wirtualny
serwomechanizm opisany w [105]. Opisywane algorytmy [106] zostały zaimplementowane
w języku C++ przy zastosowaniu bibliotek programistycznych. Wiele użytecznych algorytmów
w zakresie rozpoznawania kodów matrycowych oraz rekonstrukcji położenia na podstawie punktów
można znaleźć między innymi w pakiecie ViSP [107].
67
Rys. 4.2. Układ współrzędnych kodu matrycowego i numeracja narożników
Kalibrację tego układu kamery, wzorca i robota można przeprowadzić posługując się
rozwiązaniami przewidzianymi dla znanego i rozwiązanego problemu kalibracji oko-dłoń (ang.
hand-eye calibration). Zadanie można rozwiązać klasycznymi metodami algebry liniowej [108],
jednak nowsze, udoskonalone metody mogą oferować większą dokładność i stabilność rozwiązania
[109]. W przypadku robotów o niskiej dokładności, które nie przechodzą kalibracji przy użyciu
specjalistycznego oprzyrządowania lub w przypadku użycia kamer o dużych zniekształceniach
68
i niskiej rozdzielczości często można napotkać trudności przy kalibracji układu robot – kamera.
Odchyłki pozycji robota i odczytów kamery są tak duże, że równania rozwiązujące układy równań
stają się niestabilne i nie generują prawidłowych wyników. Istnieje możliwość starannego
projektowania algorytmu kalibracji z opracowaniem metod walidacji wyników oraz określaniem
pozycji robota, które nie doprowadzą do źle uwarunkowanych równań [110]. Przedstawia się
jednak inne podejście, uproszczoną metodę kalibracji, która opiera się na możliwości zapisu
określonego programu ruchów robota, w przeciwieństwie do klasycznych metod, które rozwiązują
zadanie kalibracji przy dowolnych pozycjach znacznika względem kamery.
Opracowany sposób kalibracji składa się z dwóch etapów. Pierwszy to określenie kierunków
układu bazowego robota w układzie kamery. W tym celu zostaje napisany program, w którym robot
wykonuje jedynie ruchy w kierunkach swojego układu bazowego. Na efektorze umieszczony jest
znacznik w postaci kodu QR, jak na rys. 4.4.
Rys. 4.4. Procedura określania obrotu kierunków układu robota względem układu kamery
Xx Yx Zx
[
M RC = Xy Yy
Xz Yz
Zy
Zz ] (4.1)
69
Uzyskana macierz nie ma cech macierzy obrotu. Normalizacja poszczególnych wektorów
również może nie przynieść oczekiwanych rezultatów, gdyż może się okazać, że nie będą one
wzajemnie prostopadłe. Najbliższą macierz obrotu odpowiadającą uzyskanej można wyznaczyć
przez dekompozycję SVD jak w równaniach:
R
[U , S , V ]=SVD (M C ) (4.2)
RRC =U⋅V T (4.3)
Macierz RCR po tej operacji jest ortogonalna. Na wyniki działania tej metody nie wpływa
położenie kodu QR względem układu robota, nie jest konieczna również znajomość położenia
znacznika względem domyślnego układu narzędzia robota.
Kalibracja pozycji odbywa się kontaktowo. W kiści robota montowane jest narzędzie
z wierzchołkiem, które musi zostać zdefiniowane, przez określenie punktu roboczego.
Wystarczająca do tego celu jest standardowa, zaimplementowana w kontrolerze robota procedura
kalibracja narzędzia. We wspólnej przestrzeni roboczej manipulatora i kamery umieszcza się
znacznik, którym może być naniesiony na płaszczyznę kod matrycowy. Na podstawie zdjęcia
określa się położenie znacznika względem kamery T SC, jak na rys. 4.5.
Następnie należy przemieścić narzędzie do styku wierzchołka ze środkiem kodu i odczytać jego
współrzędne w układzie robota. Orientacja narzędzia w punkcie styku nie jest istotna. Wektor
przesunięcia między kamerą, a wzorcem należy przedstawić w układzie współrzędnych robota, przy
użyciu wcześniej oznaczonych kierunków.
t =( RCR )T⋅ C t SC
S
R C (4.4)
70
Po sprowadzeniu obu wektorów przesunięcia do wspólnego układu współrzędnych, układu
podstawy robota R, przesunięcie między robotem, a kamerą można wyrazić jak w równaniu 4.5.
C S S
t = R t R− R t C
R R (4.5)
Przekształcenie między układem robota, a układem współrzędnych kamery można zapisać
w postaci jednej, jednorodnej macierzy przekształceń T CR .
(R RC )T C
[
T CR =
0 0 0
t
R R
1 ] (4.6)
T UCS QR −1 K −1 UCS
QR i =(T C ) ⋅(T R ) ⋅T R i
(4.7)
71
to przesunięcie i obrót zdefiniowanego przez programistę układu współrzędnych względem układu
bazowego robota. W opracowanym systemie obliczenia te przeprowadzane są na komputerze PC,
a komunikacja z kamerą i robotem, to jest przesyłanie obrazów oraz parametrów układów
współrzędnych odbywa się przez protokół TCP/IP.
T QR QRi QR
C i =T C ⋅T QRi
(4.8)
Następnie transformacja T QR
C jest uśredniana stosując podejście opisane w [111]. W przypadku
użycia tylko jednego znacznika, wirtualny układ znaczników jest tożsamy z układem jedynego
stosowanego znacznika. Opracowane rozwiązanie nie wymaga zaangażowania od operatora,
automatyzuje uruchamianie programu ze zmiennym położeniem obiektu.
Uruchomiony przez operatora manipulator kierowany jest na pozycję bazową, która nie
prowadzi do zasłaniania kodów matrycowych na obrazie. Gotowość manipulatora jest
sygnalizowana przez ustawienie dyskretnego sygnału cyfrowego. Wyzwolona kamera wykonuje
zdjęcie i przesyła je do przetworzenia w komputerze PC. Tam następuje wyszukanie położenia kodu
QR oraz odczytanie informacji o typie oprzyrządowania znajdującego się na stole roboczym.
Następnie zostaje rozwiązany problem perspektywy z 4 punktów dla każdego odnalezionego kodu,
czego wynikiem jest macierz reprezentująca położenie kodu matrycowego względem kamery. Na
podstawie danych kalibracyjnych kamery i transformacji T UCS
QR , można określić położenie nowego,
72
4.4. Weryfikacja rozwiązania
W celu weryfikacji zastosowanych rozwiązań zaplanowano eksperyment, jak na rys. 4.7.
73
Zastosowanie kodowanych znaczników do oznaczenia obiektów pozwala jednocześnie wybrać
odpowiedni program dla danego obiektu oraz dopasować układ współrzędnych do jego położenia
w przestrzeni pracy robota. Przedstawiono algorytmy niezbędne do określania położenia obiektów,
przy pomocy kodów matrycowych rozpoznawanych przez stacjonarną kamerę współpracującą
z robotem przemysłowym. Zaproponowano uproszczoną, stabilną kalibrację dla robotów i kamer.
Przedstawiono działania geometryczne, które powinny zostać przeprowadzone przy definiowaniu
programu robota przemysłowego oraz przy jego realizacji. Przedstawiono wyniki badań
powtarzalności rozwiązania. Zaproponowane rozwiązania są prostym, niedrogim sposobem na
zwiększenie uniwersalności stanowisk zrobotyzowanych.
74
5. Sterowanie robotem przemysłowym
przy użyciu skanera 3D
5.1. Podstawy
Zadania manipulacyjne wykonywane przez roboty przemysłowe zwykle opierają się na
niezmiennym programie działania, rozbudowanym oprzyrządowaniu utrzymującym obiekty
w zadanym miejscu i stosunkowo ograniczonym systemie sensorycznym. Postuluje się inne
podejście, w którym program robota przemysłowego jest dostosowywany do rozmieszczenia
montowanych części w przestrzeni pracy. Rozpoznanie rodzaju elementu i jego położenia następuje
na podstawie pomiaru optycznym skanerem 3D. Urządzenia, które działają w oparciu o światło
strukturalne są już bardzo popularne i można wybierać mniej lub bardziej zaawansowane przyrządy
z oferty wielu producentów.
Efektem działania skanera 3D jest zbiór zorientowanych punktów, chmura punktów. Zadaniem
rozwiązywanym przez przedstawianą sekwencję algorytmów jest próba dopasowania elementów M
zbioru modeli M do aktualnego stanu przestrzeni roboczej, zwanego sceną S. Zorientowany punkt
ui reprezentowany jest przez parę wektorów określających położenie Pu i kierunek normalny nu do
powierzchni w danym punkcie.
R ={Rk =( ID R , T SM )k } (5.4)
R BA t BA
T BA =
[ 0 0 0 1 ] (5.5)
75
Rysunek 5.1 przestawia praktyczną realizację opisywanego rozwiązania [112], [113].
Przemysłowy robot zintegrowany ze skanerem laserowym jest w stanie manipulować wykrytym
w chmurze punktów obiektem.
Rys. 5.1. Zrobotyzowany skaner optyczny i wynikowa chmura punktów z wykrytym modelem
76
na celu znalezienie pozycji i orientacji chwytaka pozwalające na uchwycenie dowolnego elementu
zadanego obrazem i mapą głębi [122]. Metoda ta nie pozwala jednak na zadanie specyficznego
punktu uchwycenia, ani na rozpoznanie obiektu. Zadanie rozpoznawania obiektów i szacowania ich
pozycji wciąż realizowane jest na podstawie obrazów z kamer, a nie chmur punktów. W pracy [123]
do obu tych zadań zastosowano konwolucyjne sieci neuronowe operujące na obrazach. Kamerę
RGB-D i rekonstrukcję 3D zastosowano w [124], służy ona jednak jedynie do wyznaczania
położenia i orientacji chwytaka przy unikaniu kolizji podczas zadania uchwycenia obiektu. Zadanie
generowania deskryptorów jest realizowane wyłącznie na zwykłym obrazie płaskim.
W rozwiązaniu [33] jako wejście do sieci neuronowej zastosowano również mapy głębi, lecz
stanowią one jedynie dodatkowy kanał obrazu. Nie jest na tej podstawie rekonstruowana chmura
punktów i nie są analizowane lokalne cechy geometryczne.
Chmury punktów do testów zostały pobrane przy pomocy opisanego w niniejszej pracy
zrobotyzowanego skanera laserowego [94]. Potwierdzono korzystne cechy rozwiązania. Kamera
i rzutnik linii laserowej zostały rozdzielone, inaczej niż w klasycznym czujniku laserowym
integrującym te elementy. Kamera jest unieruchomiona nad stanowiskiem, a robot przenosi jedynie
kompaktowy rzutnik linii laserowej. Nie wpływa to na zdolność robota do korzystania z chwytaków
lub innych narzędzi, jak to ma miejsce w przypadku głowic o znacznych gabarytach [115]. Wraz
z modelem CAD lub wzorcową chmurą punktów reprezentującą obiekt muszą być dostarczone
meta dane, które definiują sposób montażu części. W celu testowania generowano je ręcznie na
podstawie dokumentacji technicznej produktu. W docelowym systemie mogłyby być generowane
automatycznie przez trójwymiarowy system CAD na podstawie modelu złożenia wyrobu. Dane
zawierają transformację między układem współrzędnych części bazowej, a położeniem układu
danego elementu w postaci macierzy transformacji oraz wektora reprezentującego kierunek
montażu.
77
dla każdej (Si, Mj)
zgrubne dopasowanie
dokładne dopasowanie
jeżeli walidacja udana
dodaj wynik Rij do R
Algorytm 5.1. Zarys metody lokalizacji obiektów w chmurze punktów
Przy pomocy skanera optycznego można zmierzyć za jednym razem wiele obiektów
znajdujących się w przestrzeni roboczej. Stosując opisaną metodę można przeprowadzić
dopasowywanie modeli do całej sceny, jednak jest to nieefektywne obliczeniowo. Sugeruje się
wcześniejsze przeprowadzenie procesu grupowania, to jest podziału chmury na mniejsze, odrębne
części. Najprostszy sposób przypomina popularny w grafice komputerowej algorytm typu flood fill.
Wybrany zostaje punkt, wokół którego, wewnątrz sfery o zadanym promieniu wyszukuje się
punktów sąsiednich i dodaje do nowej chmury reprezentującej grupę. Następnie czynność jest
powtarzana dla wszystkich nowo dodanych punktów. Pozwala to uzyskać spójne, wyraźnie
oddzielone od innych zbiory punktów, co z dużym prawdopodobieństwem oznacza chmurę
reprezentującą odrębny obiekt.
78
punktami sąsiednimi, niż chmura początkowa uzyskuje się poprzez ustawienie punktów w środkach
komórek z wybranego poziomu drzewa.
Wstępne dopasowanie modelu do pozyskanej chmury punktów wykonywane jest przy użyciu
odpornego na zasłonięcia i błędnie zmierzone punkty algorytmu RANSAC. Generowanie hipotez
rozmieszczenia modeli w pobranej trójwymiarowej reprezentacji otoczenia robota przebiega
następująco. Z deskryptorów modelu losowana jest grupa n punktów. Do określenia sztywnej
transformacji wystarczą ns = 3 punkty i takie podejście zastosowano (rys. 5.2).
79
Metoda wyszukiwania dopasowywania deskryptorów nie jest bardzo dokładna. Zdarza się, że
wiele sąsiadujących ze sobą punktów może zostać opisane bardzo zbliżonymi wektorami, dlatego
akceptowane hipotezy są jedynie zgrubnym dopasowaniem. Ta wstępna transformacja jest podstawą
do dalszego dopasowywania modeli do sceny. W tym celu używa się iteracyjnego algorytmu
minimalizującego sumę kwadratów odległości między najbliższymi sobie punktami ICP.
80
Lista wykrytych modeli w chmurze punktów została oznaczona R. Każdy obiekt opisany jest
identyfikatorem modelu ID oraz transformacją Ti, oznaczającą jego położenie w przestrzeni. D to
zbiór metadanych dla każdego modelu o identyfikatorze ID. Zawiera on położenie obiektu
względem części bazowej T0i w montowanym wyrobie oraz wektor kierunku montażu vi. Zbiór
kolejnych położeń robota, zdefiniowanych jako przekształcenie od podstawy robota do punktu
roboczego narzędzia oznaczono P . Zakłada się, że układy współrzędnych modeli są umieszczone
w miejscu chwytu, a oś Z układu jest normalna do powierzchni chwytanej. Jeżeli modele nie
spełniają tych założeń należy zastąpić transformację Ti kombinacją transformacji określających
położenie modelu w przestrzeni i położenie punktu chwytu względem początku układu
współrzędnych obiektu. Zależności pomiędzy poszczególnymi transformacjami przedstawia
rys. 5.3.
81
5.3. Weryfikacja rozwiązania
5.3.1 Badanie powtarzalności rozpoznawania pomiarów skanera laserowego
W celu określenia przydatności rozwiązania zaplanowano sprawdzenie powtarzalności
dopasowywania modeli obiektów do chmur punktów pobranych przy pomocy optycznego skanera
triangulacyjnego (opracowanie własne, rozdział 3). Uzyskiwane chmury punktów to pomiary
częściowe, które powstały przez jedno, liniowe przesunięcie rzutnika linii laserowej. Część obiektu
nie jest zeskanowana, ze względu na zasłonięcie wiązki lasera przez inne powierzchnie obiektu.
Mimo widocznych ubytków powierzchni, algorytm jest w stanie dopasować model do chmury
punktów w większości przypadków.
82
lepszego przedstawienia przydatności metody i jej uniwersalności wszystkie testy przeprowadzane
były przy stałych parametrach podanych w tabeli 5.2.
83
5.3.2 Badanie odporności na zasłonięcie powierzchni
Pomiary optycznymi skanerami opartymi na generatorze światła strukturalnego i sensorze
wizyjnym są pomiarami 2,5D. Wynikiem jest mapa punktów i ich odległości od sensora. Uzyskanie
pełnej reprezentacji 3D obiektu wymaga wzajemnego przemieszczania obiektu i sensora.
W warunkach przemysłowych korzystne jest maksymalne skrócenie czasu pomiaru i uniknięcie
przemieszczania obiektu lub czujnika pomiarowego. Z tego względu nie rozpatruje się w tym
opracowaniu dopasowywania pełnych chmur punktów reprezentujących obiekty, a jedynie pomiary
częściowe, które można uzyskać z jednego położenia układu pomiarowego względem obiektu.
Algorytm jest inspirowany błądzeniem losowym. Punkt początkowy jest wybierany losowo.
Następnie wyszukuje się ks najbliższych sąsiadów punktu. Są one usuwane, oprócz punktu
znajdującego się najdalej w tym zbiorze. Staje się on nowym punktem początkowym. Algorytm jest
powtarzany tak długo, aż uzyska się zakładany stopień zasłonięcia powierzchni.
84
poszczególnych modeli przy zadanym udziale powierzchni usuniętej przez algorytm symulujący
zasłonięcie.
Zasłonięcie obiektu
25% 30% 35% 40% 45% 50% 55% 60% 65% 70% 75%
99% 99% 98% 90% 89% 76% 49% 34% 29% 18% 5%
blade
98% 93% 89% 93% 68% 67% 55% 25% 21% 16% 11%
housing
97% 96% 92% 88% 84% 78% 73% 50% 21% 12% 4%
holder
Widoczny jest znaczący spadek możliwości rozpoznania obiektu, przy rosnącym udziale
powierzchni zasłoniętej. Niestety nie da się w prosty sposób zwiększyć tego udziału, bez
wykonywania dodatkowych skanów przy innym wzajemnym położeniu sensora i badanego obiektu.
85
Wszystkie te podejścia wymagają dodatkowych nakładów pracy, bardziej zaawansowanych
urządzeń pomiarowych lub obliczeń. Wskazane sposoby nie dają gwarancji całkowitej
skuteczności, dlatego sprawdzono, jak opracowana metoda radzi sobie ze zniekształceniami
wynikającymi z dodatkowych punktów pojawiających się w losowych miejscach. W celu określenia
wpływu zakłóceń na prawdopodobieństwo prawidłowego rozpoznania modeli w scenie generowano
zniekształcenia w sposób sztuczny, przez dodawanie punktów o losowych współrzędnych
i wektorach normalnych w ograniczonej prostopadłościanem przestrzeni pracy skanera. Tabela 5.4
prezentuje jak dodatkowe punkty zmniejszają zdolność metody do rozpoznawania obiektów
w scenie.
blade
housing
holder
Okazuje się, że zastosowana metoda jest odporna na punkty odstające i nawet przy poziomach
znacznie wyższych niż uzyskiwane przy pomiarach rzeczywistymi urządzeniami pomiarowymi
z dużym prawdopodobieństwem rozpoznaje obiekty. Poza tym punkty odstające można stosunkowo
łatwo usunąć, stosując podejście statystyczne, to znaczy usuwać punkty, których odległość od
najbliższych sąsiadów jest wyraźnie większa od średniej.
86
sprawdzić chwytanie przedmiotów z zacisku montażowego. Ocenę przeprowadzono przez pomiar
położenia płaszczyzn części za pomocą czujnika zegarowego z dokładnością 0,01 mm. Zasada
pomiarów jest przedstawiona na rys. 5.4.
W celu określenia błędu chwytania elementu, mierzona jest odległość i kąt między
spodziewanymi, a rzeczywistymi płaszczyznami obiektu. W tym celu wykonuje się pomiar
czujnikiem pomiarowym w dwóch miejscach wskazanych na rys. 5.4 czerwonymi kropkami.
Pomiary są powtarzane dla dwóch prostopadłych osi obiektu. Błędy liniowe występujące
w kierunku osi chwytaka i błędy obrotu w osiach prostopadłych do osi chwytaka nie wpływają na
dokładność pozycjonowania części. Są one kompensowane przez sprężyste odkształcenie
przyssawki chwytaka podciśnieniowego. Wyniki pomiarów, jako odchylenia standardowe od
średniej dla przesunięcia i obrotu przedstawiono w tabeli 5.5.
Tabela 5.5. Błędy chwytu w dla stałej pozycji obiektu i zmiennej pozycji, szacowanej przez skaner
Błąd chwytu przy stałej trajektorii Błąd chwytu przy trajektorii na podstawie
robota pozycji modelu w chmurze punktów
sx [mm] 0,08 0,84
Znaczące odchylenia, nawet w przypadku chwytania obiektu ze stałego miejsca na stole, mogą
być wynikiem małej precyzji chwytaka próżniowego. Prezentowany system (rys. 5.5) nadaje się do
montażu różnych wyrobów, takich jak opakowania z tworzyw sztucznych oraz do paletyzacji
produktów. Testy wykazały, że uzyskana dokładność pozycjonowania części pobieranych przez
sześcioosiowy manipulator robota przemysłowego w oparciu o dane z prostego skanera laserowego
jest zbyt mała dla operacji precyzyjnego montażu.
87
Rys. 5.5. Fazy działania systemu a) skanowanie, b) dopasowywanie modelu do chmury punktów,
c) planowanie ścieżki i chwyt
Przedstawiona metoda łączy wiele znanych już wcześniej algorytmów. Wkład autora polega na
testowaniu i wybraniu odpowiedniej kombinacji metod zdolnej do wspomagania zrobotyzowanego
procesu montażu na podstawie danych z optycznych skanerów 3D. Opracowano sekwencję działań
od skanowania do umieszczenia obiektów w pozycji montażowej przez robota przemysłowego.
Wybrano metody oraz dobrano zestaw parametrów. Efektem jest uniwersalna procedura, która
określa położenie zadanych modeli w cząstkowych pomiarach wykonywanych przy ustalonym
względnym położenia sensora obiektu mierzonego.
88
6. Wyznaczanie pozycji obiektów przy użyciu
uczenia maszynowego
6.1. Podstawy
Biorąc pod uwagę ograniczone możliwości ręcznie generowanych deskryptorów w wyznaczaniu
pozycji w chmurach punktów, postanowiono spróbować zaimplementować algorytm uczenia
maszynowego generujący deskryptory, którymi można będzie można bezpośrednio zastąpić te
obliczane klasycznymi metodami. Zakłada się, że rozwiązanie powinno operować bezpośrednio na
chmurach punktów w postaci listy współrzędnych, a nie reprezentacji wolumetrycznej, która
ograniczyłaby możliwą do uzyskania rozdzielczość i mogłaby okazać się mało wydajna. Nie
przewiduje się realizacji innych zadań przez algorytm uczenia maszynowego, poza
wygenerowaniem deskryptora. Za ich dopasowanie odpowiadać będą sprawdzone metody jak
RANSAC i FGR.
Architektura PointNet++ generuje cechy geometrii przy stopniowo rosnącej skali, dlatego jest
w stanie efektywnie uwzględniać zarówno lokalny, jak i globalny kontekst chmury punktów oraz
radzić sobie z nierównomiernym ich zagęszczeniem. Zaproponowana architektura składa się z
kolejnych warstw, w których stosuje się próbkowanie metodą najbardziej odległego punktu w celu
wyznaczenia centroid i dalszego przypisywania punktów do grup. Grupy formuje się szukając
sąsiadów w sferze o zadanym promieniu, dlatego dopuszczalna jest różna ich liczebność. Następnie
każda grupa jest przetwarzana przez wielowarstwowy perceptron o architekturze PointNet [77].
Wygenerowane cechy dla kilku różnych liczb grup i tym samym liczb punktów w grupie są łączone
przez złożenie w jeden wektor. W czasie przetwarzania na kolejnych poziomach, gdy analizowane
jest większe sąsiedztwo punktów, chmura jest próbkowana w dół, przez co cechy nie są generowane
dla wszystkich punktów na każdym poziomie. W celu uzyskania gęstego zbioru cech, to znaczy
deskryptora dla każdego punktu w chmurze, stosuje się ich propagację. Polega ona na interpolacji
cech z sąsiednich punktów. Stosuje się średnią ważoną odwrotnością odległości od punktu.
89
6.2. Generowanie deskryptorów przez algorytm uczenia
maszynowego
Architektura sieci neuronowej została dostosowana do zadania generowania deskryptorów dla
wszystkich punktów w chmurze. Jako bazy do implementacji użyto kodu realizującego segmentację
punktów z oficjalnego repozytorium autorów publikacji. Usunięto ostatnie warstwy sieci,
odpowiadające za klasyfikację poszczególnych punktów, a dodano warstwę konwolucyjną z liniową
funkcją aktywacji, transformującą cechy sieci do K-wymiarowych deskryptorów. Zastosowano
4 bloki próbkowania i grupowania punktów, przy liczbie przetwarzanych punktów na grupę kolejno
1024, 256, 64 i 16. Dalej użyto 4 bloki propagacji cech, dzięki czemu zachowana jest liczba
punktów na wejściu i na wyjściu sieci. Schemat wymiarów danych sieci przedstawiono na rys. 6.1.
Błękitnymi strzałkami zaznaczono na nim połączenia skrótowe, które stanowią dodatkowe źródło
danych przy propagacji cech. Na czerwono zaznaczono tylko współrzędne punktów, mające wymiar
3, dalsza wielkość jest to wymiar cechy. Każdy tensor ma również wymiar wzdłuż wymiaru warstw.
Oznacza on, że jednocześnie przetwarzane jest kilka chmur punktów.
90
Architektura przypomina nieco strukturą autoenkoder, czyli sieć, w której stopniowo zmniejsza
się wymiary geometryczne (w tym przypadku liczbę punktów), a zwiększa głębokość, wymiar cech.
Następnie liczba punktów jest odtwarzana przez kolejne bloki propagacji. Finalnie na wyjściu
uzyskuje się tą samą liczbę punktów i ich współrzędne, co na wejściu, przy czym każdemu
punktowi przypisany jest dodatkowo wektor 16 cech, stanowiący lokalny deskryptor punktu.
Deskryptor ten zawiera jednocześnie informacje globalne z kompaktowej, ale głębokiej
reprezentacji uzyskanej po 4 blokach próbkowania i grupowania, ale również cechy lokalne, które
trafiły przez połączenia skrótowe. Długość deskryptora została ustalona eksperymentalnie. Nie
zauważono, że zwiększanie długości deskryptora poprawiałoby wyniki, natomiast widoczny był
wzrostu czasu dopasowywania chmur punktów.
Para identycznych sieci, których wagi są połączone, przetwarza dwie reprezentacje jednego
obiektu. Zadane są zależności dodatnie, pomiędzy odpowiadającymi sobie punktami, zaznaczone na
91
zielono i ujemne, pomiędzy punktami w innych punktach obiektu, zaznaczone na czerwono. Sieci
przekształcają chmurę punktów do reprezentacji, w której każdy punkt jest opisany przez
deskryptor zawierający informację o lokalnej geometrii i kontekście. Dla każdej pary punktów, dla
której zdefiniowana jest zależność, oblicza się odległość w przestrzeni deskryptora. Sumaryczny
błąd sieci składa się z odległości pomiędzy odpowiadającymi sobie punktami oraz miary
podobieństwa pomiędzy punktami opisanymi ujemną zależnością. Wartość błędu służy później do
optymalizacji wag sieci przy użyciu wstecznej propagacji błędu i metody iteracyjnego gradientu.
Jako bazę użyto zbioru danych 3dscan [30]. Wytypowano 10 najszerzej reprezentowanych klas
ze statycznymi obiektami i ruchem kamery, co przełożyło się na 2256 sekwencji RGB-D. Sceny
przedstawiają różnorodne miejsca i obiekty, jednak tylko dla niewielkiej ich części autorzy zbioru
danych dostarczają rekonstrukcje w postaci siatek. Dla reszty scen opracowano rekonstrukcje
w postaci chmur punktów, przez przetworzenie zbioru obrazów i map głębi przez ciąg algorytmów
wprowadzony w [128] i zaimplementowany w bibliotece Open3D [129]. Ze względu na dużą
nadmiarowość danych i długi czas przetwarzania, za wystarczające uznano przetwarzanie jedynie
pierwszych 100 klatek sekwencji. Czas przetwarzania dalej ograniczano przez wprowadzenie
przetwarzania wielowątkowego, a i tak przetworzenie całego zbioru zajęło kilkadziesiąt godzin
pracy komputera. Efektem przetworzenia, obok wynikowej chmury punktów, jest zbiór
transformacji określających położenie rekonstrukcji z pojedynczej klatki RGB-D względem
bazowego układu współrzędnych finalnej rekonstrukcji (rys. 6.3).
92
Rys. 6.3. Finalna rekonstrukcja sceny i transformacje pojedynczych reprezentacji RGB-D
93
chmury punktów, będąca średnią odległością punktu do najbliższego sąsiada w chmurze. Dla
pierwszej reprezentacji RGB-D wyznacza się punkty kluczowe, czyli punkty charakterystyczne, o
unikatowej geometrii, które powinny być łatwo rozróżnialne od innych punktów w przestrzeni
reprezentacji. Niestety, istniejące algorytmy wyszukiwania punktów kluczowych w chmurach
punktów [53] wciąż nie radzą sobie w wystarczającym stopniu z szumem i punktami odstającymi
pojawiającymi się danych uzyskanych z ogólnodostępnych kamer 3D. Zdecydowano się na
wykrywanie punktów kluczowych na obrazie i w mapie głębi przy użyciu metody ORB [130].
Konieczna jest weryfikacja, przedstawiona na rys. 6.4, i sprawdzenie, czy wygenerowane punkty
kluczowe odpowiadają rzeczywistym punktom w przestrzeni.
94
zależności pomiędzy nimi, są ładowane z plików i mogą być wprost przekazywane do
przetwarzania przez algorytm uczenia maszynowego.
Dla negatywnych relacji określa się margines, to jest minimalna odległość jaka powinna dzielić dwa
deskryptory, które odpowiadają różnym punktom. W uczeniu opracowanej sieci zastosowano
margines m=1,0.
Funkcja kary dąży do zera, gdy deskryptory dla odpowiadających sobie punktów są identyczne,
a przy zależności negatywnej, odległość pomiędzy deskryptorami, jest większa niż założony
próg m.
Proces uczenia sieci trwa około 12 godzin, co odpowiada 80-krotnemu przetworzeniu całego
zbioru danych. Na jednej karcie graficznej przetwarzane jest jednocześnie 7 par chmur punktów,
liczba ta wynika z ilości dostępnej pamięci. Większa ilość wsadu, czyli większa liczba jednocześnie
przetwarzanych chmur punktów w jednym przejściu, z których obliczana jest jedna wartość funkcji
kary, stabilizuje proces uczenia i zmniejsza ryzyko wystąpienia nagłego wzrostu gradientów
aktualizujących wagi. Wagi optymalizowane są metodą Adam [132] ze współczynnikiem uczenia
równym 0,001. Wykres wartości funkcji kary w trakcie uczenia przedstawiono na rys. 6.5. Spadek
i stabilizacja sugeruje prawidłowy przebieg procesu.
95
Rys. 6.5. Wykres wartości funkcji kary w procesie uczenia wygładzony średnią kroczącą
W celu walidacji procesu uczenia, sieć była testowana na zadaniu dopasowywania chmur
punktów. Z opracowanego zbioru wydzielono część scen, które służyły jedynie do testowania, na
ich podstawie nie aktualizowano wag sieci. Częściowe reprezentacje z jednego zdjęcia i mapy głębi
dopasowywano metodą FGR i RANSAC do zrekonstruowanej z całej sekwencji chmury punktów.
Dla porównania, przy użyciu tych samych danych i metody dopasowywano klasyczne deskryptory
FPFH. Miarą dopasowania jest udział punktów w dopasowanej chmurze, które mają najbliższego
sąsiada w finalnej reprezentacji w promieniu mniejszym niż 1,5 rozdzielczości chmury punktów.
Wyniki przedstawia tabela 6.1.
Tabela 6.1. Wyniki dopasowywania częściowych chmur punktów przy użyciu deskryptorów
96
6.3. Weryfikacja rozwiązania
6.3.1 Testy deskryptorów generowanych przez sieć neuronową
Zbiór UWA [32] zawiera 5 modeli, które dopasowywano do 50 scen i weryfikowano poprawność
metody na podstawie dostarczonych ze zbiorem macierzy transformacji. Zarówno modele, jak
i sceny zadane są dobrej jakości chmurami punktów i nie ma potrzeby rekonstrukcji z sekwencji
RGB-D. Rozpoznawane w testach modele zaprezentowano w tabeli 6.2.
Test polegał na wyznaczeniu położenia każdego z modeli w scenie testowej zbioru danych.
Obliczenia przebiegały po próbkowaniu chmur punktów przy pomocy reprezentacji wokselowej
o wymiarze 5 mm. Deskryptory dopasowywano algorytmem RANSAC przy stałych parametrach
dla każdego wariantu algorytmu. Miarą jakości przetworzenia zbioru jest współczynnik sukcesu.
Jest to udział scen, w których udało się prawidłowo znaleźć wybrany model. Prawidłowa
lokalizacja jest zdefiniowana, jako wygenerowanie transformacji, której odległość do transformacji
prawdziwej, danej przez autora zbioru danych, jest nie większa niż Δ t T =20 mm oraz Δ RT =7,5 ° .
Różnica obrotów jest obliczana jako obrót względem centroidy modelu, a nie względem początku
układu współrzędnych, czyli względem kamery. Błąd detekcji obliczany jest według wzorów:
97
tr( R Tpr⋅Rdet )−1 (6.4)
|Δ R|=arccos
2
Δ t=‖t pr −t det‖ (6.5)
gdzie:
tr ( ) - ślad macierzy,
R pr , t pr - macierz obrotu i wektor przesunięcia prawdziwe, dostarczone ze zbiorem danych,
Rdet , t det - macierz obrotu i wektor przesunięcia wygenerowane przez algorytm
dopasowywania chmur.
98
generującą 32 cechy, ze względu na najlepszą skuteczność pośród metod uczonych. Na rysunku 6.6
przedstawiono histogramu błędów przesunięcia i obrotu generowane przez system dla deskryptorów
FPFH i najskuteczniejszej sieci neuronowej.
Czerwone pionowe linie oznaczają progi, które definiują prawidłowe zlokalizowanie obiektu.
Próbki, znajdujące się na prawo od progu odcięcia uznawane są nieprawidłowe. Zauważyć można,
że system oparty na deskryptorach nie ma problemu z dokładnym dopasowaniem obiektów,
a jedynie z detekcjami odstającymi, w których przyjęta została nieprawidłowa zależność pomiędzy
punktami i uzyskano całkowicie nieprawidłową transformację, daleką od wartości prawdziwej.
LINEMOD [31] jest zbiorem, w którym przedstawione jest wiele niewielkich obiektów na
palecie, więc jest spójny z zadaniem analizy otoczenia obiektów w otoczeniu robota
przemysłowego. Niestety zastosowane przez autorów urządzenie charakteryzuje się niską
rozdzielczością, co sprawia, że jakość reprezentacji jest stosunkowo niska. Modele wraz z nazwami
nadanymi przez autorów zbioru przedstawiono w tabeli. 6.4.
99
trójwymiarowych na podstawie deskryptorów w celu uzyskania pełnej macierzy transformacji
pomiędzy modelem, a sceną.
100
Detektor operujący na obrazie płaskim został nauczony z samokontrolą, to znaczy, że etykiety
opisujące położenie poszczególnych obiektów utworzone zostały automatycznie, bez udziału
człowieka. W losowe zdjęcia z publicznego zbioru COCO wrysowywano obiekty ze zbioru
LINEMOD przy dowolnym ich położeniu i orientacji kątowej. Jedyne 2000 syntetycznych
spreparowanych obrazów wystarczyło, żeby nauczyć sieć neuronową opartą o architekturę Mask-
RCNN [133], wstępnie uczoną lokalizacji obiektów ze zbioru COCO. Sieć charakteryzuje się
jednoczesnym generowaniem nie tylko prostokątów okalających każde wystąpienie obiektu, ale
również maski detekcji, dlatego zachowany jest kształt rozpoznawanych elementów. Jest to
kluczowe w kolejnym etapie, kiedy poszczególne punkty detekcji z obrazu płaskiego są rzutowane
na trójwymiarową chmurę punktów. Uzyskuje się jedynie niewielki wycinek, do którego należy
dopasować tylko jeden model, gdyż znana jest przewidywana klasa obiektu. Znaczenie zwiększyło
to skuteczność i skróciło czas przetwarzania chmur punktów przy użyciu klasycznego deskryptora
FPFH, jak i przy własnej sieci neuronowej do generowania deskryptorów.
Przetwarzano dane testowe zbioru w postaci sekwencji z kamery 3D. Ze względu na długość
sekwencji, przetwarzano co 10 zdjęcie ze zbioru testowego, jednak w każdym teście są to te same
zdjęcia. Rekonstrukcja chmury punktów do której dopasowywano modele następowała
z pojedynczego obrazu i mapy głębi, nie tworzono chmury punktów z sekwencji pewnej długości ze
względu na obawę o możliwość przesunięcia punktów i utratę dostarczonych przez autorów zbioru
pozycji bazowych modeli. Ze względu na niską jakość rekonstruowanych siatek i tym samym
niepewność dostarczonych przez autorów pozycji obiektów oraz niewielki wymiar fizyczny
obiektów, zmieniono kryteria oceny dopasowania. Nadal badane jest przesunięcie liniowe i obrót,
jak w przypadku zbioru LINEMOD, lecz progi zostały ustawione na odpowiednio kt = 25 mm oraz
kR = 15°. Odległość pomiędzy detekcją, a wartością prawdziwą mniejsza od zadanych wartości
progowych skutkuje oznaczeniem próbki jako wynik prawdziwe pozytywny PP. Odległość większa
od zadanych wartości progowych oznacza wyniki fałszywie pozytywny FP. Jednocześnie brak
prawidłowego dopasowania modelu do sceny traktowany jest jako wynik fałszywie negatywny FN.
Porównanie pomiędzy klasami jest możliwe przez użycie miar agregujących wyniki. Precyzja
rozumiana jest jako stosunek wyników prawdziwie pozytywnych do wszystkich detekcji, a uzysk
jako stosunek prawdziwie pozytywnych wyników do wszystkich próbek. Miara F1 to średnia
harmoniczna tych wartości. W tabelach 6.5 i 6.6 przedstawiono wyniki przetwarzania przez
opracowany system danych ze zbioru LINEMOD. Przedstawiają one wyniki dla hybrydowego
systemu przy użyciu dwóch różnych typów deskryptorów, zdefiniowanego przez człowieka (FPFH)
i automatycznie uczonego (własna sieć neuronowa).
101
Tabela 6.5. Wyniki systemu dopasowującego modele do scen zbioru LINEMOD na podstawie
deskryptora FPFH
Model PP FP FN Precyzja Uzysk Miara F1
Ape 19 35 105 0,35 0,15 0,21
Bench Vise 85 21 37 0,80 0,70 0,75
Bowl 4 118 120 0,03 0,03 0,03
Cam 47 43 74 0,52 0,39 0,45
Can 73 33 47 0,69 0,61 0,65
Cat 5 5 113 0,50 0,04 0,08
Cup 6 41 118 0,13 0,05 0,07
Drill 71 8 48 0,90 0,60 0,72
Duck 26 62 100 0,30 0,21 0,24
Box 26 43 100 0,38 0,21 0,27
Glue 4 27 118 0,13 0,03 0,05
Hole Punch 52 55 72 0,49 0,42 0,45
Iron 98 16 18 0,86 0,84 0,85
Lamp 90 25 33 0,78 0,73 0,76
Phone 61 16 64 0,79 0,49 0,60
Średnio 0,51 0,37 0,41
Wyniki okazują się zadowalające, zwłaszcza dla obiektów większych takich jak żelazko (Iron)
lampa (Lamp) i wiertarka (Drill). Większa rozdzielczość zdjęcia i map głębi pozwoliłby na
uzyskanie podobnych wyników również dla mniejszych wymiarowo modeli. Dla części modeli
uzyskane wyniki nie odzwierciedlają jakości dopasowania. Ma to miejsce dla miski (Bowl), która
102
jest bryłą obrotową oraz dla kubka (Cup) bardzo zbliżonego do bryły obrotowej oraz podobnego do
prostopadłościanu pudełka (Box). Dla tych figur nie jest możliwe określenie kąta względem osi
obrotowej lub tożsamych położeń bryły o symetrii środkowej, dlatego algorytm zwraca tylko jedno
z wielu możliwych rozwiązań. Dla brył tego typu, konieczne jest opracowanie wyspecjalizowanych
metod wyznaczania pozycji lub zmodyfikowanie metody walidacji algorytmów. Zgodnie
z przewidywaniami, metoda oparta o deskryptory definiowane przez człowieka okazała się
skuteczniejsza od uczonej sieci neuronowej. Wyniki systemu opartego całkowicie na uczeniu
maszynowym mogą się okazać zadowalające, biorąc pod uwagę, że uzyskane są jedynie dla
pojedynczych klatek ruchomej kamery 3D i mogą później zostać uspójnione dla całej sekwencji.
Wyniki całości systemu są obciążone zarówno niepewnością wynikającą z generowania
i dopasowywania deskryptorów, ale również wstępnej detekcji obiektów na obrazie płaskim. Miarą,
najlepiej reprezentującą jedynie jakość dopasowywania chmur punktów jest precyzja.
W tabeli 6.7 przedstawia się wyniki jakości detekcji obiektów przez detektor działający na
obrazach płaskich. W eksperymencie tym nie była wyznaczana pozycja modelu względem sceny,
a jedynie prostokąt okalający obiekt na obrazie. Ocenę detekcji dokonano w oparciu o miarę IoU
(ang. intersection over union), liczoną jako stosunek pola części wspólnej detekcji i prostokąta
reprezentującego prawdziwe położenie obiektu na obrazie, dostarczonego ze zbiorem danych, do
pola powierzchni sumy tych prostokątów (traktowanej jako suma zbiorów). Wyniki prawdziwie
pozytywny jest uznany, gdy wartość IoU jest większa od 0,5.
103
Znacznym utrudnieniem dla detektora jest ograniczenie danych treningowych jedynie do
syntetycznych obrazów wygenerowanych z siatek modeli. Autorzy zbioru danych LINEMOD nie
udostępnili w ramach części dozwolonej do trenowania algorytmów prawdziwych zdjęć obiektów.
Jest to jednak dobry sprawdzian możliwości przygotowania systemu dla obiektów, które nie istnieją
jeszcze fizycznie, a są na przykład na etapie przygotowania do produkcji. Dodatkowo na etapie
uczenia algorytmu nie przekazywano żadnej wiedzy o spodziewanym otoczeniu obiektów. Losowe
tło pozwoliło jednak wystarczająco odróżniać zadane obiekty od dowolnych innych kształtów.
Eksperyment potwierdził możliwość uzyskania sprawnego detektora, jedynie na podstawie
wirtualnych reprezentacji. Rysunek 6.8 przedstawia istotę problemu adaptacji do innej domeny
poprzez zestawionie przykładowego zdjęcia, na którym trenowany był algorytm detekcji i zdjęcia
ze zbioru testowego wraz ze wskazaniem tożsamych modeli.
104
Rys. 6.9. Testy metody opartej na lokalizacji obiektów przez sieć neuronową
105
przemysłowego mieszczące się na niewielkiej palecie. Z tego powodu chmura punktów jest
skalowana, jej współrzędne są mnożone przez stałą wartość, przed przetworzeniem do sieci
neuronowej.
T21, k1
T11
T22, k2
T12
SIEĆ RANSAC
T1i T2i, ki min k T=T2i·T1i
T1n T2n, kn
Rys. 6.10. Zwiększenie skuteczności lokalizacji modeli poprzez obliczanie jego deskryptorów przy
kilku położeniach kątowych
106
W trakcie testów na stanowisku zrobotyzowanym przygotowano 10 przykładowych położeń
modelu na palecie, które następnie zrekonstruowano do chmury punktów. Dla każdej rekonstrukcji
opracowano prawdziwe położenie modelu poprzez automatyczne dopasowanie modelu do sceny
i ręczną weryfikację i korektę wirtualnego modelu w scenie. Okazuje się, że oba badane
deskryptory, definiowany przez człowieka FPFH i automatycznie uczony, oparty o własną sieć są
w stanie prawidłowo zlokalizować obiekt w chmurze punktów. W eksperymentach weryfikowano,
ile iteracji algorytmu RANSAC jest niezbędne, aby uzyskać prawidłowe dopasowanie we
wszystkich testowych scenach i tym samym określano jak będą różnić się czasy przetwarzania przy
użyciu poszczególnych algorytmów. Stanowisko oraz jego rekonstrukcje z prawidłowo
i nieprawidłowo zlokalizowanym obiektem przedstawiono na rys. 6.11.
Rys. 6.11. Stanowisko badawcze (a) i jego rekonstrukcje z prawidłowo (b) i nieprawidłowo (c)
lokalizowanym modelem testowym
Jakość dopasowań mierzono tak samo, jak w przypadku zbioru UWA, to znaczy obliczając
udział prawidłowo zlokalizowanych modeli w testowych scenach. Pozostawiono te same metody
obliczeń oraz wartości progowe do zaliczenia dopasowania jako sukces. W obliczeniach używano
skalowania chmury punktów o współczynnik 3,33 w celu przybliżenia wielkości obiektów na
palecie do wielkości obiektów, na których uczona była sieć neuronowa generująca deskryptory.
Dodatkowo przeprowadzano wstępne przetwarzanie chmury punktów polegające na usuwaniu
punktów odstających, próbkowaniu do gęstości chmury wynoszącej 5 mm oraz usuwaniu punktów,
których odległość od kamery przekracza 1 m, podczas gdy paleta znajduje się 700 mm od kamery.
Na rysunku 6.12 zestawiono osiągany współczynnik sukcesu względem czasu przetwarzania jednej
sceny.
107
Rys. 6.12. Zestawienie stosunku prawidłowo rozpoznanych scen do czasu przetwarzania
108
7. Podsumowanie
W pracy przedstawiono techniki lokalizacji obiektów w otoczeniu robotów przemysłowych,
które mogą służyć zwiększeniu możliwości stanowisk zrobotyzowanych poprzez autonomiczne
planowanie ścieżek i dostosowywanie programu do zmiennych warunków, co przełoży się na
możliwość wykonywania bardziej złożonych zadań przez roboty.
Cel II, opracowanie procedur sterowania robotem na podstawie danych o położeniu obiektów
w przestrzeni pracy został zrealizowany poprzez wypracowanie techniki opisanej w rozdziale 4.,
która pozwala na integrację z dowolnym układem sterowania robota bez ingerencji w wewnętrzne
oprogramowanie i jest intuicyjna dla operatora stanowiska. Idea została zaimplementowana
i zweryfikowana w laboratorium oraz zaprezentowana na konferencji [106].
109
Cel IV, opracowanie techniki wyznaczania pozycji przy użyciu uczenia maszynowego,
zrealizowano pomimo braku publikacji realizujących podobne systemy. Rozwiązanie oparto
o istniejące architektury sieci neuronowych, zastosowano jednak własną technikę uczenia
i przystosowany zbiór danych, znacznie większy od powszechnie stosowanych. Pozwoliło to
uzyskać działający system wyznaczania pozycji obiektów w chmurach punktów, który nie
przewyższa jednak jeszcze skutecznością najlepszych, klasycznych metod. Zaproponowano kilka
podejść umożliwiających użycie systemu w praktyce. Wyniki prac zostaną opublikowane wkrótce.
W niniejszej pracy zostały rozważane jedynie podstawowe techniki planowania ścieżki robota na
podstawie położenia rozpoznanych i zlokalizowanych obiektów. Planuje się integracje
wypracowanych metod ze środowiskiem pozwalającym na zaawansowane planowanie ścieżek,
uwzględniającym możliwość omijania przeszkód i optymalizacje trajektorii, takim jak MoveIt
[135].
110
Bibliografia
[1] Fanuc, „3D VISION SENSOR,” 2018.
[2] ABB Robotics, „FlexVision 3D: Integrated vision solution for ABB robots,” 2017.
[3] S. Rusinkiewicz, O. Hall-Holt, and M. Levoy, „Real-time 3D model acquisition,” in
Proceedings of the 29th annual conference on Computer graphics and interactive techniques
- SIGGRAPH ’02, 2002, vol. 21, no. 3, p. 438.
[4] Konica Minolta, „Non-Contact 3D Digitizer VIVID 910,” 2003.
[5] A. D. Wilson, „Fast Lossless Depth Image Compression,” in Proceedings of the Interactive
Surfaces and Spaces on ZZZ - ISS ’17, 2017, pp. 100–105.
[6] T. Field, J. Leibs, and J. Bowman, „ROS - rosbag,” 2019. [Online]. Available:
http://wiki.ros.org/rosbag. [Accessed: 18-Apr-2019].
[7] B. Curless and M. Levoy, „A volumetric method for building complex models from range
images,” in Proceedings of the 23rd annual conference on Computer graphics and
interactive techniques - SIGGRAPH ’96, 1996, pp. 303–312.
[8] M. Nießner, M. Zollhöfer, S. Izadi, and M. Stamminger, „Real-time 3D reconstruction at
scale using voxel hashing,” ACM Trans. Graph., vol. 32, no. 6, pp. 1–11, Nov. 2013.
[9] D. Meagher, „Geometric modeling using octree encoding,” Comput. Graph. Image Process.,
vol. 19, no. 2, pp. 129–147, Jun. 1982.
[10] J. L. Bentley and J. Louis, „Multidimensional binary search trees used for associative
searching,” Commun. ACM, vol. 18, no. 9, pp. 509–517, Sep. 1975.
[11] Z. Wu et al., „3D ShapeNets: A Deep Representation for Volumetric Shapes,” Jun. 2014.
[12] A. X. Chang et al., „ShapeNet: An Information-Rich 3D Model Repository,” Dec. 2015.
[13] R. Girdhar, D. F. Fouhey, M. Rodriguez, and A. Gupta, „Learning a predictable and
generative vector representation for objects,” in Lecture Notes in Computer Science
(including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in
Bioinformatics), 2016, vol. 9910 LNCS, pp. 484–499.
[14] J. Wu, C. Zhang, T. Xue, B. Freeman, and J. Tenenbaum, „Learning a Probabilistic Latent
Space of Object Shapes via 3D Generative-Adversarial Modeling,” Nips, no. Nips, pp. 82–
90, 2016.
[15] M. Savva et al., „Large-scale 3D shape retrieval from ShapeNet core55,” Proc. Eurographics
2016 Work. 3D Object Retr., pp. 89–98, 2016.
[16] A. Dai, A. X. Chang, M. Savva, M. Halber, T. Funkhouser, and M. Nießner, „ScanNet:
Richly-annotated 3D Reconstructions of Indoor Scenes,” Feb. 2017.
111
[17] C. R. Qi, H. Su, M. Niessner, A. Dai, M. Yan, and L. J. Guibas, „Volumetric and Multi-View
CNNs for Object Classification on 3D Data,” Apr. 2016.
[18] Y. Lipman et al., „Parameterization-free projection for geometry reconstruction,” in ACM
SIGGRAPH 2007 papers on - SIGGRAPH ’07, 2007, vol. 26, no. 3, p. 22.
[19] H. Huang et al., „Consolidation of unorganized point clouds for surface reconstruction,”
ACM Trans. Graph., vol. 28, no. 5, p. 1, Dec. 2009.
[20] H. Huang, S. Wu, M. Gong, D. Cohen-Or, U. Ascher, and H. (Richard) Zhang, „Edge-aware
point set resampling,” ACM Trans. Graph., vol. 32, no. 1, pp. 1–12, Jan. 2013.
[21] L. Yu, X. Li, C.-W. Fu, D. Cohen-Or, and P.-A. Heng, „Pu-net: Point cloud upsampling
network,” in Proceedings of the IEEE Conference on Computer Vision and Pattern
Recognition, 2018, pp. 2790–2799.
[22] N. Silberman, D. Hoiem, P. Kohli, and R. Fergus, „Indoor Segmentation and Support
Inference from RGBD Images,” Springer, Berlin, Heidelberg, 2012, pp. 746–760.
[23] A. Levin, D. Lischinski, Y. Weiss, A. Levin, D. Lischinski, and Y. Weiss, „Colorization using
optimization,” in ACM SIGGRAPH 2004 Papers on - SIGGRAPH ’04, 2004, vol. 23, no. 3,
p. 689.
[24] K. Lai, L. Bo, X. Ren, and D. Fox, „A large-scale hierarchical multi-view RGB-D object
dataset,” in 2011 IEEE International Conference on Robotics and Automation, 2011, pp.
1817–1824.
[25] A. Geiger, P. Lenz, C. Stiller, and R. Urtasun, „Vision meets robotics: The KITTI dataset,”
Int. J. Rob. Res., vol. 32, no. 11, pp. 1231–1237, Sep. 2013.
[26] S. Koch et al., „ABC: A Big CAD Model Dataset For Geometric Deep Learning,” Dec. 2018.
[27] A. Handa, T. Whelan, J. McDonald, and A. J. Davison, „A benchmark for RGB-D visual
odometry, 3D reconstruction and SLAM,” in 2014 IEEE International Conference on
Robotics and Automation (ICRA), 2014, pp. 1524–1531.
[28] S. Choi, Q.-Y. Zhou, and V. Koltun, „Robust reconstruction of indoor scenes,” in
Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2015, pp.
5556–5565.
[29] J. Xiao, A. Owens, and A. Torralba, „SUN3D: A Database of Big Spaces Reconstructed
Using SfM and Object Labels,” in 2013 IEEE International Conference on Computer Vision,
2013, pp. 1625–1632.
[30] S. Choi, Q.-Y. Zhou, S. Miller, and V. Koltun, „A Large Dataset of Object Scans,”
arXiv:1602.02481, Feb. 2016.
[31] S. Hinterstoisser et al., „Multimodal templates for real-time detection of texture-less objects
in heavily cluttered scenes,” in 2011 International Conference on Computer Vision, 2011, pp.
858–865.
112
[32] A. S. Mian, M. Bennamoun, and R. Owens, „Three-Dimensional Model-Based Object
Recognition and Segmentation in Cluttered Scenes,” IEEE Trans. Pattern Anal. Mach.
Intell., vol. 28, no. 10, pp. 1584–1601, Oct. 2006.
[33] A. Zeng et al., „Robotic Pick-and-Place of Novel Objects in Clutter with Multi-Affordance
Grasping and Cross-Domain Image Matching,” Oct. 2017.
[34] T. Hodan, P. Haluza, S. Obdrzalek, J. Matas, M. Lourakis, and X. Zabulis, „T-LESS: An
RGB-D Dataset for 6D Pose Estimation of Texture-Less Objects,” in 2017 IEEE Winter
Conference on Applications of Computer Vision (WACV), 2017, pp. 880–888.
[35] M. a Fischler and R. C. Bolles, „Random Sample Consensus: A Paradigm for Model Fitting
with Applicatlons to Image Analysis and Automated Cartography,” Commun. ACM, vol. 24,
no. 6, pp. 381–395, 1981.
[36] R. Raguram, J.-M. Frahm, and M. Pollefeys, „A Comparative Analysis of RANSAC
Techniques Leading to Adaptive Real-Time Random Sample Consensus,” Springer, Berlin,
Heidelberg, 2008, pp. 500–513.
[37] P. H. S. Torr and A. Zisserman, „MLESAC: A New Robust Estimator with Application to
Estimating Image Geometry,” Comput. Vis. Image Underst., vol. 78, no. 1, pp. 138–156, Apr.
2000.
[38] O. Chum and J. Matas, „Matching with PROSAC - Progressive sample consensus,” in
Proceedings - 2005 IEEE Computer Society Conference on Computer Vision and Pattern
Recognition, CVPR 2005, 2005, vol. I, pp. 220–226.
[39] O. Chum and J. Matas, „Optimal randomized RANSAC,” IEEE Trans. Pattern Anal. Mach.
Intell., vol. 30, no. 8, pp. 1472–1482, Aug. 2008.
[40] A. Hidalgo-Paniagua, M. a. Vega-Rodríguez, N. Pavón, and J. Ferruz, „A Comparative Study
of Parallel RANSAC Implementations in 3D Space,” Int. J. Parallel Program., 2014.
[41] A. G. Buch, D. Kraft, J. K. Kamarainen, H. G. Petersen, and N. Kruger, „Pose estimation
using local structure-specific shape and appearance context,” Proc. - IEEE Int. Conf. Robot.
Autom., pp. 2080–2087, 2013.
[42] Q.-Y. Zhou, J. Park, and V. Koltun, „Fast Global Registration,” Springer, Cham, 2016, pp.
766–782.
[43] G. D. Pais, P. Miraldo, S. Ramalingam, V. M. Govindu, J. C. Nascimento, and R. Chellappa,
„3DRegNet: A Deep Neural Network for 3D Point Registration,” Apr. 2019.
[44] P. J. Besl and N. D. McKay, „A method for registration of 3-D shapes,” IEEE Trans. Pattern
Anal. Mach. Intell., vol. 14, no. 2, pp. 239–256, Feb. 1992.
[45] B. K. P. Horn, „Extended Gaussian images,” Proc. IEEE, vol. 72, no. 12, pp. 1671–1686,
1984.
113
[46] R. Osada, T. Funkhouser, B. Chazelle, and D. Dobkin, „Shape distributions,” ACM Trans.
Graph., vol. 21, no. 4, pp. 807–832, 2002.
[47] M. Kazhdan, T. Funkhouser, and S. Rusinkiewicz, „Rotation Invariant Spherical Harmonic
Representation of 3D Shape Descriptors,” in Symposium on Geometry Processing, 2003.
[48] D. Aiger, N. J. Mitra, D. Cohen-Or, D. Aiger, N. J. Mitra, and D. Cohen-Or, „4-points
congruent sets for robust pairwise surface registration,” in ACM SIGGRAPH 2008 papers on
- SIGGRAPH ’08, 2008, vol. 27, no. 3, p. 1.
[49] R. Schnabel, R. Wahl, and R. Klein, „Efficient RANSAC for Point-Cloud Shape Detection,”
Comput. Graph. Forum, vol. 26, no. 2, pp. 214–226, Jun. 2007.
[50] A. E. Johnson and M. Hebert, „Using spin images for efficient object recognition in cluttered
3D scenes,” IEEE Trans. Pattern Anal. Mach. Intell., vol. 21, no. 5, pp. 433–449, 1999.
[51] R. B. Rusu, N. Blodow, and M. Beetz, „Fast Point Feature Histograms (FPFH) for 3D
registration,” 2009 IEEE Int. Conf. Robot. Autom., pp. 3212–3217, 2009.
[52] R. B. Rusu and S. Cousins, „3D is here: Point Cloud Library (PCL),” Proc. - IEEE Int. Conf.
Robot. Autom., pp. 1–4, 2011.
[53] Y. Zhong, „Intrinsic shape signatures: A shape descriptor for 3D object recognition,” 2009
IEEE 12th Int. Conf. Comput. Vis. Work. ICCV Work. 2009, pp. 689–696, 2009.
[54] B. Steder, R. Rusu, K. Konolige, and W. Burgard, „NARF: 3D range image features for
object recognition,” in Workshop on Defining and Solving Realistic Perception Problems in
Personal Robotics at the IEEE/RSJ Int. Conf. on Intelligent Robots and Systems (IROS),
2010.
[55] Y. Guo, F. Sohel, M. Bennamoun, M. Lu, and J. Wan, „Rotational Projection Statistics for 3D
Local Surface Description and Object Recognition,” Int. J. Comput. Vis., vol. 105, no. 1, pp.
63–86, Oct. 2013.
[56] S. Salti, F. Tombari, and L. Di Stefano, „SHOT: Unique signatures of histograms for surface
and texture description,” Comput. Vis. Image Underst., vol. 125, pp. 251–264, Aug. 2014.
[57] S. Hinterstoisser et al., „Gradient Response Maps for Real-Time Detection of Textureless
Objects,” IEEE Trans. Pattern Anal. Mach. Intell., vol. 34, no. 5, pp. 876–888, May 2012.
[58] D. G. Lowe, „Local feature view clustering for 3D object recognition,” in Proceedings of the
2001 IEEE Computer Society Conference on Computer Vision and Pattern Recognition.
CVPR 2001, vol. 1, pp. I-682-I–688.
[59] M. Martinez, A. Collet, and S. S. Srinivasa, „MOPED: A scalable and low latency object
recognition and pose estimation system,” in 2010 IEEE International Conference on
Robotics and Automation, 2010, pp. 2043–2049.
114
[60] E. Brachmann, A. Krull, F. Michel, S. Gumhold, J. Shotton, and C. Rother, „Learning 6D
Object Pose Estimation Using 3D Object Coordinates,” Proc. Eur. Conf. Comput. Vis., vol. 2,
pp. 536–551, 2014.
[61] L. Bo, X. Ren, and D. Fox, „Depth kernel descriptors for object recognition,” in 2011 IEEE/
RSJ International Conference on Intelligent Robots and Systems, 2011, pp. 821–826.
[62] Y. LeCun, Y. Bengio, and G. Hinton, „Deep learning,” Nature, vol. 521, no. 7553, pp. 436–
444, May 2015.
[63] H. Su, S. Maji, E. Kalogerakis, and E. Learned-Miller, „Multi-view Convolutional Neural
Networks for 3D Shape Recognition,” May 2015.
[64] J. D. J. Deng, W. D. W. Dong, R. Socher, L.-J. L. L.-J. Li, K. L. K. Li, and L. F.-F. L. Fei-Fei,
„ImageNet: A large-scale hierarchical image database,” 2009 IEEE Conf. Comput. Vis.
Pattern Recognit., pp. 248–255, 2009.
[65] T.-Y. Lin et al., „Microsoft COCO: Common Objects in Context,” in Lecture Notes in
Computer Science, vol 8693, 2014, pp. 740–755.
[66] Y. LeCun, L. Bottou, Y. Bengio, and P. Haffner, „Gradient-based learning applied to
document recognition,” Proc. IEEE, vol. 86, no. 11, pp. 2278–2324, 1998.
[67] D. Maturana and S. Scherer, „VoxNet: A 3D Convolutional Neural Network for real-time
object recognition,” in 2015 IEEE/RSJ International Conference on Intelligent Robots and
Systems (IROS), 2015, pp. 922–928.
[68] Y. Li, S. Pirk, H. Su, C. R. Qi, and L. J. Guibas, „FPNN: Field Probing Neural Networks for
3D Data,” in Advances in Neural Information Processing Systems 29: Annual Conference on
Neural Information Processing Systems 2016, December 5-10, 2016, Barcelona, Spain, 2016,
pp. 307–315.
[69] D. Zeng Wang and I. Posner, „Voting for Voting in Online Point Cloud Object Detection,” in
Robotics: Science and Systems XI, 2015.
[70] H. Deng, T. Birdal, and S. Ilic, „PPFNet: Global Context Aware Local Features for Robust
3D Point Matching,” Feb. 2018.
[71] T. Birdal and S. Ilic, „Point Pair Features Based Object Detection and Pose Estimation
Revisited,” in 2015 International Conference on 3D Vision, 2015, pp. 527–535.
[72] C. R. Qi, W. Liu, C. Wu, H. Su, and L. J. Guibas, „Frustum PointNets for 3D Object
Detection from RGB-D Data,” in 2018 IEEE/CVF Conference on Computer Vision and
Pattern Recognition, 2018, pp. 918–927.
[73] R. Klokov and V. Lempitsky, „Escape from Cells: Deep Kd-Networks for the Recognition of
3D Point Cloud Models,” in 2017 IEEE International Conference on Computer Vision
(ICCV), 2017, pp. 863–872.
115
[74] G. Riegler, A. O. Ulusoy, and A. Geiger, „OctNet: Learning Deep 3D Representations at
High Resolutions,” in 2017 IEEE Conference on Computer Vision and Pattern Recognition
(CVPR), 2017, pp. 6620–6629.
[75] J. Sánchez, F. Perronnin, T. Mensink, and J. Verbeek, „Image Classification with the Fisher
Vector: Theory and Practice,” Int. J. Comput. Vis., vol. 105, no. 3, pp. 222–245, Dec. 2013.
[76] Y. Ben-Shabat, M. Lindenbaum, and A. Fischer, „3DmFV: Three-Dimensional Point Cloud
Classification in Real-Time Using Convolutional Neural Networks,” IEEE Robot. Autom.
Lett., vol. 3, no. 4, pp. 3145–3152, Oct. 2018.
[77] C. R. Qi, H. Su, K. Mo, and L. J. Guibas, „PointNet: Deep Learning on Point Sets for 3D
Classification and Segmentation,” Dec. 2016.
[78] C. R. Qi, L. Yi, H. Su, and L. J. Guibas, „PointNet++: Deep Hierarchical Feature Learning on
Point Sets in a Metric Space,” Jun. 2017.
[79] P. Hermosilla, T. Ritschel, P.-P. Vázquez, À. Vinacua, and T. Ropinski, „Monte Carlo
convolution for learning on non-uniformly sampled point clouds,” ACM Trans. Graph., vol.
37, no. 6, pp. 1–12, Dec. 2018.
[80] Y. Li, R. Bu, M. Sun, W. Wu, X. Di, and B. Chen, „PointCNN: Convolution On X-
Transformed Points,” in Advances in Neural Information Processing Systems 31, S. Bengio,
H. Wallach, H. Larochelle, K. Grauman, N. Cesa-Bianchi, and R. Garnett, Eds. Curran
Associates, Inc., 2018, pp. 820–830.
[81] S. Wang, S. Suo, W.-C. Ma, A. Pokrovsky, and R. Urtasun, „Deep Parametric Continuous
Convolutional Neural Networks,” in The IEEE Conference on Computer Vision and Pattern
Recognition (CVPR), 2018.
[82] M. Atzmon, H. Maron, and Y. Lipman, „Point convolutional neural networks by extension
operators,” ACM Trans. Graph., vol. 37, no. 4, pp. 1–12, Jul. 2018.
[83] F. Groh, P. Wieschollek, and H. P. A. Lensch, „Flex-Convolution (Million-Scale Point-Cloud
Learning Beyond Grid-Worlds),” in Asian Conference on Computer Vision (ACCV), 2018.
[84] Y. You et al., „PRIN: Pointwise Rotation-Invariant Network,” Nov. 2018.
[85] H. Deng, T. Birdal, and S. Ilic, „3D Local Features for Direct Pairwise Registration,” Apr.
2019.
[86] A. Zeng, S. Song, M. Nießner, M. Fisher, J. Xiao, and T. Funkhouser, „3DMatch: Learning
Local Geometric Descriptors from RGB-D Reconstructions,” Mar. 2016.
[87] Beltech, „3D random bin picking randomly placed pipes,” 2019. [Online]. Available: https://
www.beltech.nl/portfolio/random-bin-picking-pipes/. [Accessed: 21-Sep-2019].
[88] Euclid Labs, „Bin Picking Software - Moonflower Purple - Euclid Labs,” 2019. [Online].
Available: https://www.euclidlabs.it/random-bin-picking-software/moonflower-purple/.
[Accessed: 21-Sep-2019].
116
[89] Pick-it, „Smart automated 3D bin picking,” 2019. [Online]. Available:
https://www.pickit3d.com/videos/fast-cycle-time-random-bin-picking-with-easy-collision-
prevention-and-pick-frame-definition. [Accessed: 21-Sep-2019].
[90] Nomagic, „Integrate Magicloader in your warehouse flow.” [Online]. Available:
https://nomagic.ai/solutions. [Accessed: 21-Sep-2019].
[91] N. Correll et al., „Analysis and Observations from the First Amazon Picking Challenge,” Jan.
2016.
[92] S. Winkelbach, S. Molkenstruck, and F. Wahl, „Low-cost laser range scanner and fast surface
registration approach,” Pattern Recognit., no. i, pp. 718–728, 2006.
[93] M. Ferreira, A. P. Moreira, and P. Neto, „A low-cost laser scanning solution for flexible
robotic cells: spray coating,” Int. J. Adv. Manuf. Technol., vol. 58, no. 9–12, pp. 1031–1041,
Jun. 2011.
[94] J. Wojciechowski and O. Ciszak, „Measurement of 3d objects in a robotic cell,” in
Proceedings of the ASME Design Engineering Technical Conference, 2015, vol. 9.
[95] Z. Zhang, „Flexible camera calibration by viewing a plane from unknown orientations,” in
Proceedings of the Seventh IEEE International Conference on Computer Vision, 1999, vol. 1,
no. c, pp. 666–673 vol.1.
[96] G. Guennebaud and B. Jacob, „Eigen v3.” 2010.
[97] J. Rekimoto, „Matrix: a realtime object identification and registration method for augmented
reality,” Proc. 3rd Asia Pacific Comput. Hum. Interact. Cat No98EX110, pp. 63–68, 1998.
[98] M. Rostkowska and M. Topolski, „On the Application of QR Codes for Robust Self-
localization of Mobile Robots in Various Application Scenarios,” R. Szewczyk, C. Zieliński,
and M. Kaliczyńska, Eds. Springer International Publishing, 2015, pp. 243–252.
[99] T. Suriyon, H. Keisuke, and B. Choompol, „Development of guide robot by using QR code
recognition,” Second TSME Int. Conf. Mech. Eng., pp. 1–6, 2011.
[100] R. S. Andersen, J. S. Damgaard, O. Madsen, and T. B. Moeslund, „Fast calibration of
Industrial Mobile robots to workstations using QR codes,” (ISR), 2013 44th Int. Symp.
Robot., 2013.
[101] L. Quan and Z. Lan, „Linear N-point camera pose determination,” IEEE Trans. Pattern Anal.
Mach. Intell., vol. 21, no. 8, pp. 774–780, 1999.
[102] S. Negahdaripour, R. Prados, and R. Garcia, „Planar homography: accuracy analysis and
applications,” in IEEE International Conference on Image Processing 2005, 2005, pp. I–
1089.
[103] V. Lepetit, F. Moreno-Noguer, and P. Fua, „EPnP: An Accurate O(n) Solution to the PnP
Problem,” Int. J. Comput. Vis., vol. 81, no. 2, pp. 155–166, 2009.
117
[104] D. F. Dementhon and L. S. Davis, „Model-based object pose in 25 lines of code,” Int. J.
Comput. Vis., vol. 15, no. 1–2, pp. 123–141, 1995.
[105] E. Marchand and F. Chaumette, „Virtual visual servoing: A framework for real-time
augmented reality,” in EUROGRAPHICS 2002 Conference Proceeding, 2002, vol. 21(3), pp.
289–298.
[106] J. Wojciechowski and O. Ciszak, „Spatial Adjusting of the Industrial Robot Program with
Matrix Codes,” 2018, pp. 521–531.
[107] E. Marchand, F. Spindler, and F. Chaumette, „ViSP for visual servoing: a generic software
platform with a wide class of robot control skills,” IEEE Robot. Autom. Mag., vol. 12, no. 4,
pp. 40–52, Dec. 2005.
[108] R. Y. Tsai and R. K. Lenz, „New technique for fully autonomous and efficient 3D robotics
hand/eye calibration,” IEEE Trans. Robot. Autom., vol. 5, no. 3, pp. 345–358, 1989.
[109] T. Ruland, T. Pajdla, and L. Kruger, „Globally optimal hand-eye calibration,” Proc. IEEE
Comput. Soc. Conf. Comput. Vis. Pattern Recognit., no. 2, pp. 1035–1042, 2012.
[110] J. Zhang, F. Shi, and Y. Liu, „An adaptive selection of motion for online hand-eye
calibration,” AI 2005 Adv. Artif. Intell., pp. 520–529, 2005.
[111] W. D. Curtis, A. L. Janin, and K. Zikan, „A note on averaging rotations,” Proc. IEEE Virtual
Real. Annu. Int. Symp., no. 2, pp. 377–385, 1993.
[112] J. Wojciechowski and M. Suszynski, „Optical scanner assisted robotic assembly,” Assem.
Autom., vol. 37, no. 4, pp. 434–441, Sep. 2017.
[113] M. Suszyński, J. Wojciechowski, and J. Żurek, „No clamp robotic assembly with use of point
cloud data from low-cost triangulation scanner,” Teh. Vjesn., vol. 25, no. 3, 2018.
[114] N. Jayaweera and P. Webb, „Adaptive robotic assembly of compliant aero-structure
components,” Robot. Comput. Integr. Manuf., vol. 23, no. 2, pp. 180–194, 2007.
[115] O. Skotheim, M. Lind, P. Ystgaard, and S. a. Fjerdingen, „A flexible 3D object localization
system for industrial part handling,” in 2012 IEEE/RSJ International Conference on
Intelligent Robots and Systems, 2012, pp. 3326–3333.
[116] C. Papazov, S. Haddadin, S. Parusel, K. Krieger, and D. Burschka, „Rigid 3D geometry
matching for grasping of known objects in cluttered scenes,” Int. J. Rob. Res., vol. 31, no. 4,
pp. 538–553, 2012.
[117] H. Srinivasan, O. L. a. Harrysson, and R. a. Wysk, „Automatic part localization in a CNC
machine coordinate system by means of 3D scans,” Int. J. Adv. Manuf. Technol., 2015.
[118] T. R. Savarimuthu et al., „An Online Vision System for Understanding Complex Assembly
Tasks,” in International Conference on Computer Vision Theory and Applications (VISAPP),
2015, pp. 1–8.
118
[119] a. Collet, M. Martinez, and S. S. Srinivasa, „The MOPED framework: Object recognition
and pose estimation for manipulation,” Int. J. Rob. Res., vol. 30, no. 10, pp. 1284–1306, Sep.
2011.
[120] C. Feng, Y. Xiao, A. Willette, W. McGee, and V. R. Kamat, „Vision guided autonomous
robotic assembly and as-built scanning on unstructured construction sites,” Autom. Constr.,
vol. 59, pp. 128–138, Nov. 2015.
[121] S. Levine, C. Finn, T. Darrell, and P. Abbeel, „End-to-End Training of Deep Visuomotor
Policies,” J. Mach. Learn. Res., vol. 17, pp. 1–40, 2016.
[122] J. Mahler, M. Matl, X. Liu, A. Li, D. Gealy, and K. Goldberg, „Dex-Net 3.0: Computing
Robust Vacuum Suction Grasp Targets in Point Clouds using a New Analytic Model and
Deep Learning,” in IEEE International Conference on Robotics and Automation (ICRA),
2018, pp. 1–8.
[123] M. Schwarz et al., „Fast object learning and dual-arm coordination for cluttered stowing,
picking, and packing,” in 2018 IEEE International Conference on Robotics and Automation
(ICRA), 2018, pp. 3347–3354.
[124] P. R. Florence, L. Manuelli, and R. Tedrake, „Dense object nets: Learning dense visual object
descriptors by and for robotic manipulation,” in Conference on Robot Learning (CoRL),
2018.
[125] Y. Guo, M. Bennamoun, F. Sohel, M. Lu, and J. Wan, „3D Object Recognition in Cluttered
Scenes with Local Surface Features: A Survey,” IEEE Trans. Pattern Anal. Mach. Intell., vol.
36, no. 11, pp. 2270–2287, Nov. 2014.
[126] A. Albu‐Schäffer, S. Haddadin, C. Ott, A. Stemmer, T. Wimböck, and G. Hirzinger, „The
DLR lightweight robot: design and control concepts for robots in human environments,” Ind.
Robot An Int. J., vol. 34, no. 5, pp. 376–385, Aug. 2007.
[127] S. Chopra, R. Hadsell, and Y. LeCun, „Learning a Similarity Metric Discriminatively, with
Application to Face Verification,” in 2005 IEEE Computer Society Conference on Computer
Vision and Pattern Recognition (CVPR’05), 2005, vol. 1, pp. 539–546.
[128] J. Park, Q.-Y. Zhou, and V. Koltun, „Colored Point Cloud Registration Revisited,” in 2017
IEEE International Conference on Computer Vision (ICCV), 2017, pp. 143–152.
[129] Q.-Y. Zhou, J. Park, and V. Koltun, „Open3D: A Modern Library for 3D Data Processing,”
Jan. 2018.
[130] E. Rublee, V. Rabaud, K. Konolige, and G. Bradski, „ORB: An efficient alternative to SIFT
or SURF,” in 2011 International Conference on Computer Vision, 2011, pp. 2564–2571.
[131] I. Wald, S. Woop, C. Benthin, G. S. Johnson, and M. Ernst, „Embree: a kernel framework for
efficient CPU ray tracing,” ACM Trans. Graph., vol. 33, no. 4, pp. 1–8, Jul. 2014.
[132] D. P. Kingma and J. Ba, „Adam: A Method for Stochastic Optimization,” Dec. 2014.
119
[133] K. He, G. Gkioxari, P. Dollár, and R. Girshick, „Mask R-CNN,” in Computer Vision (ICCV),
2017 IEEE International Conference on, 2017, pp. 2980--2988.
[134] M. Costanzo, G. De Maria, G. Lettera, C. Natale, and S. Pirozzi, „Motion Planning and
Reactive Control Algorithms for Object Manipulation in Uncertain Conditions,” Robotics,
vol. 7, no. 4, p. 76, Nov. 2018.
[135] D. Coleman, I. Sucan, S. Chitta, and N. Correll, „Reducing the Barrier to Entry of Complex
Robotic Software: a MoveIt! Case Study,” Apr. 2014.
120