Download as pdf or txt
Download as pdf or txt
You are on page 1of 120

POLITECHNIKA POZNAŃSKA

WYDZIAŁ BUDOWY MASZYN I ZARZĄDZANIA

ROZPRAWA DOKTORSKA

WYZNACZANIE POZYCJI OBIEKTÓW W OTOCZENIU ROBOTA


PRZEMYSŁOWEGO NA PODSTAWIE ZDJĘĆ I CHMUR PUNKTÓW

Jakub WOJCIECHOWSKI

Poznań 2019
Promotor
dr hab. inż. Olaf CISZAK prof. nadzw.

Politechnika Poznańska
Instytut Technologii Mechanicznej
Zakład Projektowania 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.

Wkład naukowy polega na: 1) opracowaniu własnego zrobotyzowanego skanera laserowego, 2)


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

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

The scientific contribution consists in: 1) developing new robotic laser scanner setup, 2) the
effective sequence of point cloud analysis algorithms, 3) the machine learning method for locating
objects in point clouds. Techniques of integrating the developed algorithms with the industrial robot
and appropriate calibration procedures are also presented. The study is a step towards autonomous
controllers of industrial robots that are able to adapt actions to the variable environment.
Spis treści
Streszczenie..........................................................................................................................................5
1. Wstęp..............................................................................................................................................11
2. Analiza stanu wiedzy......................................................................................................................13
2.1. Trójwymiarowe reprezentacje geometrii................................................................................13
2.2. Zadania realizowane na danych przestrzennych.....................................................................19
2.3. Zbiory danych.........................................................................................................................22
2.4. Dopasowywanie chmur punktów na podstawie deskryptorów...............................................27
2.5. Sieci neuronowe w przetwarzaniu danych przestrzennych....................................................36
2.6. Podsumowanie analizy stanu wiedzy.....................................................................................42
3. Zrobotyzowany skaner laserowy....................................................................................................47
3.1. Podstawy.................................................................................................................................47
3.2. Zasada działania skanera........................................................................................................47
3.3. Praktyczna realizacja..............................................................................................................57
3.4. Weryfikacja rozwiązania.........................................................................................................59
4. Dostosowanie programu robota do pozycji obiektów technologicznych.......................................65
4.1. Podstawy.................................................................................................................................65
4.2. Zasada działania systemu........................................................................................................66
4.3. Dynamiczne dostosowywanie programu................................................................................71
4.4. Weryfikacja rozwiązania.........................................................................................................73
5. Sterowanie robotem przemysłowym przy użyciu skanera 3D.......................................................75
5.1. Podstawy.................................................................................................................................75
5.2. Rozpoznawanie obiektów w chmurach punktów...................................................................77
5.3. Weryfikacja rozwiązania.........................................................................................................82
6. Wyznaczanie pozycji obiektów przy użyciu uczenia maszynowego.............................................89
6.1. Podstawy.................................................................................................................................89
6.2. Generowanie deskryptorów przez algorytm uczenia maszynowego......................................90
6.3. Weryfikacja rozwiązania.........................................................................................................97
7. Podsumowanie..............................................................................................................................109
Bibliografia.......................................................................................................................................111

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

P - lista pozycji robota, ścieżka


Pi 3
- i-ty punkt w przestrzeni, Pi ∈ℝ , P i=(Pix , P iy , Piz )
A - współrzędne i-tego punktu w układzie współrzędnych A
Pi
r - przesunięcie pomiędzy punktami r =(r x ,r y , r z )
r - promień strefy definiującej sąsiedztwo punktów
R - wynik dopasowania modelu do chmury punktów, składający się z identyfikatora modelu
S
i transformacji, dopasowującej model do sceny, R=(id i , T M )

RBA B
- macierz obrotu pomiędzy układami współrzędnych A i B, RA ∈SO(3)

R - lista rozpoznanych modeli w chmurze punktów sceny, R = {(id , T M )}


S

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


sa - odchylenie standardowe od średniej zmiennej a
S - zorientowana chmura punktów S={ui }

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

Skuteczne rozpoznawanie i lokalizacja obiektów jest warunkiem niezbędnym do opracowania


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

W niniejszej pracy przedstawiono szczegółowo zestaw metod do wyznaczania położenia wielu,


różnorodnych modeli obiektów, przedstawiono wyniki eksperymentów na licznych zbiorach

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

W upowszechnieniu kompaktowych kamer 3D i tym samym możliwości pozyskania dużych


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

Podstawy trójwymiarowych reprezentacji geometrii, używane później pojęcia oraz aktualny stan
wiedzy z zakresu przetwarzania chmur punktów opisano w rozdziale 2. W rozdziale 3.
zaprezentowano własny układ zrobotyzowanego skanera optycznego, zapewniający niespotykaną
w opisanych lub dostępnych na rynku rozwiązaniach dokładność przy możliwości montażu obok
chwytaka. W rozdziale 4. przedstawiono wypracowane techniki integracji robota
z trójwymiarowym układem pomiarowym z uwzględnieniem adaptacji programów. W rozdziale 5.
zaproponowano własne, skuteczne algorytmy analizy chmur punktów, dostosowane do pracy
w ramach stanowiska zrobotyzowanego oraz odporne na błędy techniki chwytu zlokalizowanych
obiektów. W rozdziale 6. przedstawia się technikę dopasowywania chmur punktów przez algorytm
uczenia maszynowego. Sieć neuronowa zostaje zastosowana do generowania deskryptorów, które
mogą służyć do lokalizacji obiektów i rekonstrukcji scen. Główną zaletą tego rozwiązania jest
możliwość łatwej podmiany dotychczasowych ręcznie definiowanych deskryptorów, na nowe,
generowane przez sieć neuronową, bez jakichkolwiek innych zmian w algorytmie. Pozwala to na
łatwą integrację z innymi metodami przetwarzania chmur punktów.

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


analizą danych przestrzennych i robotyką przemysłową. Wykazane zostały korzyści wynikające
z możliwości użycia trójwymiarowych reprezentacji otoczenia robotów przemysłowych w ich
autonomicznym sterowaniu. Wskazane metody i kierunki rozwoju mogą wkrótce pozwolić na
opracowywanie autonomicznych urządzeń będących w stanie dostosowywać akcje do zastanego
stanu otoczenia.

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.

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


3D, o niewielkiej dokładności, powstają urządzenia, w których nacisk jest kładziony na większą
precyzję odwzorowania geometrii mierzonej. Są to skanery optyczne oparte o programowalne
projektory światła strukturalnego [3] lub generatory światła laserowego o wiązce w kształcie
płaszczyzny [4]. Rozwiązania te zwykle potrzebują czasu na przemiatanie wiązką lasera lub
rzutowanie serii układów prążków przy pomocy projektora, nie są w stanie przechwycić geometrii
ruchomych obiektów. Wygenerowane przez nie chmury punktów charakteryzują się jednak
mniejszymi szumami i udziałem punktów odstających. Z tych powodów, w większości badań

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.

2.1.2 Reprezentacja RGB-D


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

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

Rys. 2.1. Generowanie pojedynczej mapy głębi

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.

2.1.3 Rekonstrukcja geometrii 3D z map głębi


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

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


3D. Popularne kamery generują sekwencje zdjęć i map odległości, często obarczone znacznym
szumem i błędami. Zadaniem algorytmów rekonstrukcji, jest ich zamiana w powierzchnie 3D,
najlepiej w czasie rzeczywistym, co pozwala na zastosowanie tych danych w systemach wirtualnej

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].

2.1.4 Chmury punktów


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

2.1.5 Reprezentacja wolumetryczna


Reprezentacja wolumetryczna przestrzeni opiera się na trójwymiarowej siatce, w której
podstawową jednostką są sześciany zwane wokselami. Jest to reprezentacja bogatsza od chmury
punktów, gdyż zawiera informację, czy dane miejsce w przestrzeni jest wolne lub zajmowane przez
materię. Główną zaletą jest możliwość szybkiego testowania sąsiedztwa zadanego punktu.
W nieuporządkowanej chmurze punktów wzajemne powiązania punktów są nieznane i konieczne
jest każdorazowe szukanie najbliższych sąsiadów, które wraz ze wzrostem liczby punktów staje się
bardzo czasochłonne. Istotę chmury punktów i reprezentacji wolumetrycznej przedstawiono na
rys. 2.2.

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

Najprostszym sposobem przetworzenia chmury punktów reprezentującej obiekt do formy


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

Zapis wolumetryczny najczęściej jest realizowany w formacie TSDF (ang. Truncated Signed
Distance Field) wprowadzonym w [7]. Polega on na wypełnieniu wolumetrycznej siatki polem
odległości od najbliższej powierzchni. Dodatnią wartość odległości przypisuje się dla wokseli
znajdujących się między powierzchnią, a położeniem sensora, a ujemne wartości zarezerwowane są
dla przestrzeni za powierzchnią. Dodatnia wartość woksela oznacza wolną przestrzeń, ujemna
oznacza materię obiektu lub nieznany stan, wartości bliskie zera oznaczają powierzchnię obiektu.
W celu zmniejszenia nakładów obliczeniowych i uzyskania lepszej reprezentacji niepewności
pomiarów stosuje się obciętą wersję pola, to znaczy dystans jest przechowywany tylko dla wokseli
znajdujących się w pobliżu powierzchni. Wielkość tego obszaru jest określona na podstawie
wariancji pomiaru w kierunku głębokości. Pozostałe woksele są opisywane stałymi wartościami,
mówiącymi, czy jest to wolna przestrzeń, czy przestrzeń znajdująca się za powierzchnią obiektu
i nie może być zaobserwowana. Jest to więc reprezentacja rzadka, jedynie niewielka część danych,
faktycznie reprezentuje powierzchnię obiektów. Poczyniono więc starania w celu optymalizacji
tego formatu i umożliwienie przeniesienia obliczeń na procesory graficzne, na przykład za pomocą
algorytmów mieszających [8].

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.

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

Podobny cel przyświecał opracowaniu drzew k-wymiarowych [10]. Chmura punktów


reprezentowana drzewem k-wymiarowym może zawierać informacje nie tylko o położeniu punktu,
ale również o kolorze i wektorze normalnym do powierzchni w danym punkcie. W podstawowym
przypadku, drzewo k-wymiarowe indeksuje chmurę o N = 2D punktach, gdzie D oznacza liczbę
poziomów drzewa. Drzewo jest budowane odgórnie przez rekurencyjne wybieranie osi
o największym zakresie współrzędnych (z kierunków x, y, z) i wybieranie współrzędnej na tej osi,
która podzieli zbiór punktów na dwa równe podzbiory, z których każdy znów jest dzielony w ten
sam sposób. Drzewo zawiera 2D-1 węzłów nie będących liśćmi, zawierających informację
o kierunku i współrzędnej podziału. Węzły ostatniego poziomu, liście zawierają poszczególne
punkty 3D. Każdy węzeł niebędący liściem, posiada dwójkę dzieci o numerach c1(i) = 2i i c2(i) = 2i
+ 1. Numerację i strukturę podziału dwuwymiarowej chmury punktów przedstawiono na rys. 2.4.

18
Rys. 2.4. Proces generowania drzewa k-wymiarowego

2.2. Zadania realizowane na danych przestrzennych


2.2.1 Dopasowywanie chmur punktów
Dopasowywanie chmur punktów polega na wyznaczeniu sztywnej transformacji, czyli obrotu
i przesunięcia chmury źródłowej, tak aby była spójna geometrycznie z chmurą docelową. Zadanie
to jest rozwiązywane między innymi w łączeniu sekwencji ujęć z kamer 3D w celu uzyskania
pełniejszej rekonstrukcji. Transformacje odpowiadają ruchowi kamery pomiędzy kolejnymi
klatkami. Szczególnym przypadkiem dopasowywania chmur punktów jest wyznaczanie położenia
modeli w chmurze punktów sceny. Reprezentacją źródłową jest wtedy model CAD lub
zrekonstruowana siatka obiektu, który ma zostać znaleziony, a chmurą docelową jest
trójwymiarowa reprezentacja otoczenia, w której spodziewana jest obecność obiektu. Podstawową
metodą oceny dopasowania jest udział punktów prawidłowo dopasowanych w chmurze źródłowej.
Obliczane są odległości punktów reprezentacji źródłowej do najbliższego sąsiada w chmurze
docelowej. Jeżeli odległość jest mniejsza od zadanego progu, to punkt jest uznawany za
dopasowany prawidłowo. Zadanie dopasowywania modeli jest utrudnione, gdy nie ma gwarancji,
że badany obiekt rzeczywiście znajduje się w scenie. Na podstawie udziału punktów prawidłowo
dopasowanych decyduje się, czy obiekt rzeczywiście jest obecny w reprezentacji sceny, czy
wygenerowana transformacja jest jedynie przypadkową zgodnością kształtu powierzchni. Procedurę
przedstawiono na rys. 2.5.

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

2.2.2 Klasyfikacja obiektów


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

2.2.3 Segmentacja chmur punktów


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

W przetwarzaniu danych trójwymiarowych wyróżnia się dwa rodzaje segmentacji. Segmentacja


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

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.

2.2.4 Szukanie kolejnego najlepszego widoku


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

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

2.2.5 Wyszukiwanie modeli CAD


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

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.

Zadanie polega na wygenerowaniu na podstawie zadanej chmury punktów, nowego większego


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

Opracowane zostały metody uczenia maszynowego realizujące to zadanie. W pracy


[21] przedstawiono koncepcję zastosowania architektury typu Pointnet++ generującej cechy dla
każdego punktu, które później są zamieniane na łatę odzwierciedlającą lokalną geometrię, która
zwiększa rozdzielczość chmury.

Podobnym zagadnieniem jest uzupełnianie modeli 3D, czyli problem wygenerowania


reprezentacji 3D na podstawie niepełnych danych. Danymi wejściowymi mogą być chmury
punktów lub zdjęcia. Wejściowa chmura punktów może zawierać brakujące dane, np. znaczny
udział powierzchni zasłoniętych. Na wyjściu oczekuje się pełnej, udoskonalonej chmury punktów.
Zadanie rekonstrukcji można realizować za pomocą architektury autoenkodera [13] lub przez
generujący układ sieci przeciwników (ang. generative adversarial networks, GAN) [14]. Modele
uczą się, jak wyglądają typowe obiekty danej klasy i są w stanie odtworzyć brakujące powierzchnie.

2.3. Zbiory danych


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

ModelNet [11] to duży zbiór trójwymiarowych modeli CAD. Zawiera ponad 150 000 modeli
przydzielonych do 660 klas. Nie jest to zbiór zbilansowany, liczby wystąpień w każdej klasie różnią

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.

RGB-D Washington [24] obejmuje cyfrową reprezentację 300 obiektów przydzielonych do 51


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

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


kategorii. Niektóre modele opisane są również właściwościami fizycznymi, jak rzeczywiste
wymiary, materiał i waga obiektu. W zbiorze danych zawarty jest również podział modeli na
funkcjonalne i geometryczne części.

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ęć.

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


różniących się potencjalnym zastosowaniem i techniką zbierania danych. Najważniejsze cechy
publicznie dostępnych zbiorów zestawiono w tabeli 2.1.

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)

Algorytm generowania deskryptorów lokalnych reprezentowany jest przez funkcję


f :ℝ N×3 →ℝ N ×K przekształcającą zbiór N punktów X={P1, P 2, ... P n }, P∈ℝ3 na zbiór deskryptorów

Y ={ y 1, y 2, ... y n }, y ∈ℝ K . Funkcja f nie przekształca każdego punktu niezależnie, ale uwzględnia


również relacje sąsiedztwa z innymi punktami, to znaczy przy generowaniu deskryptora y i ,
uwzględniane są wszystkie punkty należące do sąsiedztwa punktu P o promieniu r, gdzie
sąsiedztwo jest definiowane jako N ={P i :‖P i−P‖≤r } . Deskryptory lokalne mogą następnie
posłużyć do rozwiązania zadania segmentacji, to znaczy przypisania do każdego z punktów
prawdopodobieństwa przynależności do zadanych klas lub do wyznaczania położenia modelu
w chmurze punktów sceny poprzez porównywanie deskryptorów.

Metody generujące wektory globalne generują jeden wektor cech dla całej chmury punktów.
Zakładając, że ϕ oznacza funkcję generowania deskryptora globalnego, ϕ :ℝ N ×3→ℝK , taką że dla
wejściowej chmury punktów X ∈ℝ 3×N , funkcja ϕ ( X )∈ℝ K generuje jeden wektor o wymiarze K,
będący deskryptorem globalnym. Deskryptor taki może służyć do klasyfikacji reprezentacji, czyli
określania przynależności chmury punktów do jednej z zakładanych klas.

Metody generowania deskryptorów opisane w rozdziale 2.4 są definiowane ręcznie na podstawie


intuicji i eksperymentów badaczy. Nie są optymalizowane, ani modyfikowane do stosowania
z konkretnym typem danych. Przeciwieństwem są algorytmy przedstawione w rozdziale 2.5.
Początkowo nie zawierają one żadnej wiedzy o przetwarzanych danych, nie wymagają od
programisty intuicji i implementacji metod dostosowanych do kluczowych parametrów

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.

Głównym problemem rozważanym w pracy jest wyznaczanie 6-wymiarowej pozycji zbioru


znanych obiektów w chmurach punktów pozyskanych z kamer 3D lub skanerów laserowych.
Pozycja obiektu, odbiera 6 stopni swobody, 3 przesunięcia i 3 obroty względem osi
trójwymiarowego układu współrzędnych. W niniejszej pracy, dla uproszczenia przekształceń,
pozycja obiektu jest reprezentowana, jako macierz transformacji T ∈SE( 3) , składającej się
z obrotu R∈ SO(3) i przesunięcia t ∈ℝ 3 , T=[R∣t ] . Pozycja jest szacowana na podstawie
odczytów z kamer, dlatego pozycje generowane przez algorytmy są zdefiniowane w układzie
współrzędnych kamery. W rozdziale 4 przedstawiono techniki przekształceń układów
współrzędnych i integracji wyników opracowanych metod z układami współrzędnych robotów
przemysłowych.

Wynikiem algorytmu dopasowania jest transformacja T, która przenosi chmurę punktów modelu
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.

|{P :min‖P M −P S‖<r F }|


F= M (2.3)
NM

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.

RANSAC działa na zasadzie iteracyjnego generowania i testowania hipotez. W losowy sposób


wybiera się minimalny zbiór danych wejściowych i na podstawie tych danych określa się parametry
modelu. Na przykład dla zadania dopasowania prostej do zbioru punktów minimalnym zbiorem dla
którego można wyznaczyć model są dwa punkty. Następnie model jest oceniany na całym zbiorze
danych wejściowych, wyznaczana jest liczba punktów pasujących do modelu i punktów
odstających. Ocena ta jest oparta na wartości progowej, np. odległości punktu od modelu prostej.
Jeżeli odległość rozpatrywanego punktu jest mniejsza od progu, zaliczany jest on do punktów
przystających do modelu. Pętla generowania i sprawdzania hipotezy jest następnie powtarzana, aż
do momentu, gdy prawdopodobieństwo znalezienia lepszego rozwiązania spadnie poniżej założonej
wartości, osiągnięta zostanie zakładana liczba iteracji lub udział punktów pasujących do modelu
będzie wystarczający.

Głównym problemem wynikającym z zastosowania algorytmu RANSAC jest jego iteracyjna


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

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


o zależności pomiędzy parą punktów i jeszcze przed oceną udziału punktów przystających, wybiera
się hipotezę maksymalizującą prawdopodobieństwo prawidłowości rozwiązania. Podejście to

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].

Bardzo prostym krokiem, znacznie przyspieszającym realizację algorytmu RANSAC jest


wstępne odrzucanie zależności wynikających z podobieństwa deskryptorów na podstawie
odległości pomiędzy punktami. Pomysł ten zaprezentowano w [41] i został później
zaimplementowany w bibliotekach programistycznych, a także używany w niniejszej pracy. Dla
grupy punktów stanowiących podstawę do wysunięcia hipotezy oblicza się odległości pomiędzy
punktami zarówno w chmurze źródłowej, jak i docelowej. Transformacja polegająca na
przesunięciu i obrocie trójwymiarowej chmury punktów nie zmienia odległości pomiędzy
punktami, dlatego przy idealnym dopasowaniu, uzyskana byłaby zerowa różnica odległości
pomiędzy punktami. Jeżeli odległości pomiędzy punktami różnią się, to znaczy, że zależności są
nieprawidłowe, a hipotezę można odrzucić. Dzieje się to jeszcze przed kosztownym obliczeniowo
sprawdzaniem odległości pomiędzy chmurami punktów, dlatego znacznie skraca się czas obliczeń.
Oczywiście w rzeczywistych danych, szum w położeniu punktów może powodować różnice w
odległościach pomiędzy parami odpowiadających sobie punktów, dlatego konieczne jest ustalenie
progu tolerancji. Na przykład jeżeli maksymalna odległość pomiędzy odpowiadającymi sobie
punktami w chmurze źródłowej nie różni się o więcej niż o 10% od odległości pomiędzy punktami
w chmurze docelowej, to nie powinno być to podstawą do wstępnego odrzucenia przykładu i należy
zweryfikować hipotezę obliczając odległości pomiędzy wszystkimi punktami chmury. Podobne
podejście zastosowano w [30], gdzie jako kolejne kryterium do szybkiego odrzucania hipotez
zastosowano zgodność kierunków normalnych w punktach stanowiących podstawę do
wygenerowania hipotezy. Jeżeli kąt pomiędzy kierunkami normalnymi pary punktów wynosi więcej
niż 30°, to hipoteza jest odrzucana i nie jest obliczana odległość między chmurami.

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


zasada działania wciąż sprawia, że duża część obliczeń nie przyczynia się wprost do poprawy
rezultatu. Opracowano więc metody, które w każdej iteracji poprawiają istniejące rozwiązanie, a nie
generują nowe hipotezy od nowa. Przykładem jest algorytm FGR (ang. Fast Global Registration),
który wprowadzono w [42]. Polega ona na jednorazowym wygenerowaniu połączeń pomiędzy

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.

Podejmowane są również próby mające na celu zastąpienie ręczne definiowanych algorytmów


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

ICP (ang. Iterative Closest Point) [44] jest najczęściej używanym algorytmem do dopasowania
trójwymiarowych kształtów bazującym na geometrii i ewentualnie na kolorze reprezentacji.
Algorytm ten wymaga dwóch chmur punktów i wstępnego przypuszczenia o ich wzajemnym
położeniu. Zbyt odległe wstępne dopasowanie prowadzi do nieprawidłowych wyników algorytmu.
W przypadku zastosowań, gdy dopasowywane są dane przestrzenne pobierane ze skanera w czasie
rzeczywistym, ruch pomiędzy kolejnymi ekspozycjami jest na tyle mały, że możliwe jest
dopasowanie przy założeniu macierzy jednostkowej jako wstępnej transformacji. Działanie
algorytmu polega na powtarzającym się generowaniu par odpowiadających sobie punktów na obu
reprezentacjach i minimalizowaniu ich odległości. Punkty, dla których będą szukane zależności
wybierane są przez próbkowanie równomierne lub losowe. Dla każdego wybranego punktu z
jednego zbioru, wybierany jest najbliższy sąsiad w drugiej reprezentacji. Każdej parze
przypisywana jest waga, wyliczona na podstawie odległości pomiędzy punktami lub zgodności
kierunków normalnych. Część par może zostać po tym kroku całkowicie odrzucona, co zapobiega
wadliwym wynikom spowodowanym punktami odstającymi. Na podstawie odległości pomiędzy
punktami obliczana jest odległość pomiędzy reprezentacjami. Może być to suma odległości
pomiędzy punktami lub odległość punktu do lokalnej płaszczyzny opartej na wybranym sąsiedzie i

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.

2.4.3 Deskryptory globalne


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

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

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.

2.4.4 Deskryptory lokalne


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

Ręcznie definiowane deskryptory opierają się na z góry zdefiniowanym algorytmie, mającym jak
najlepiej opisywać lokalną geometrię trójwymiarowych obiektów. Wszystkie deskryptory analizują

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.

Wszystkie metody oparte na deskryptorach zakładają istnienie charakterystycznych punktów,


które będą wyróżniać się z grupy swoimi cechami geometrycznymi. W przypadku bardzo prostych
scen z przewagą płaszczyzn lub dla obiektów o swobodnych płaszczyznach o niewielkiej
krzywiźnie, takie założenie bywa fałszywe. Dla tych przypadków sprawdza się przeszukiwanie
potencjalnych zależności pomiędzy punktami metodą siłową [48] lub upraszczanie obiektów do
postaci podstawowych kształtów, jak płaszczyzny, walce, stożki i torusy [49].

Pierwszym algorytmem, który uzyskał dużą popularność w zakresie dopasowywania


trójwymiarowych chmur punktów jest metoda generowania Spin Images [50]. W metodzie tej dla
każdego punktu obliczany jest kierunek normalny do lokalnej płaszczyzny wyznaczonej na
podstawie położenia najbliższych sąsiadów. Kierunek normalny jest podstawą dla lokalnego układu
współrzędnych. Wyznaczone są dwa kierunki, osiowy, zgodny z kierunkiem normalnym
i prostopadły promieniowy. Generowany jest obrotowy obraz (ang. Spin Image), będący właściwie
dwuwymiarowym histogramem, który określa gęstość punktów chmury rzutowanych na
płaszczyznę lokalnego układu współrzędnych. W celu ograniczenia wymiarów deskryptora,
rozdzielczość histogramu jest mniejsza niż rozdzielczość rozpatrywanej chmury punktów.

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.

Podobna idea, lokalnego układu współrzędnych i deskryptora stanowiącego histogram cech


sąsiednich punktów przyświecała przy opracowywaniu kolejnych deskryptorów jak NARF [54],
RoPS [55] i SHOT [56].

2.4.5 Deskryptory obrazów płaskich


Opisane wyżej deskryptory obliczane są na podstawie chmur punktów. Istnieje też osobna
rodzina metod, pozwalająca na wyznaczenie pozycji obiektów jedynie na podstawie zdjęcia. Przy
użyciu klasycznych metod wywodzących się z technik przetwarzania obrazów płaskich można
zbudować stosunkowo szybkie i w niektórych przypadkach skuteczne systemy lokalizacji obiektów.
Operowanie na zdjęciach bez głębi pozwala na zgrubne określenie położenia kątowego. Zwykle
konieczne są kolejne etapy zwiększające precyzję rozwiązania, już przy użyciu pełnej,
trójwymiarowej reprezentacji. Można wyróżnić kilka typów tych metod.

Podejścia oparte na zastosowaniu szablonów, dopasowują krawędzie modelu obiektu widzianego


z wielu różnych kierunków do obrazu sceny [31], [57]. Różne warianty tej metody używają
odmiennych miar podobieństwa opartego na odległościach pomiędzy krawędziami. Połączenie
kryteriów kształtu krawędzi i zgodności kierunków normalnych wyznaczonych z mapy głębi
umożliwia dopasowywanie tymi metodami gładkich, pozbawionych tekstury obiektów.

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].

Opracowano metody generujące deskryptory hybrydowe, łączące cechy obliczane na podstawie


obrazu z cechami geometrycznymi wyznaczanymi z chmury punktów [61]. Uwzględniany jest
rozmiar obiektu (w realnych jednostkach), kształt powierzchni i cechy krawędzi.

2.5. Sieci neuronowe w przetwarzaniu danych przestrzennych


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

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

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

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.

2.5.2 Przetwarzanie trójwymiarowych reprezentacji przez sieci neuronowe


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

Technika ta okazuje się niejednokrotnie bardziej skuteczna niż bezpośrednie przetwarzanie


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

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.

Procedura ta ma ograniczone użycie w przypadku reprezentacji zrekonstruowanych na podstawie


jednego wzajemnego położenia kamery 3D i obiektu, gdyż obrazy wygenerowane z wielu ujęć
wirtualnej kamery będą niekompletne. Stosuje się ją, gdy należy zaklasyfikować już
zrekonstruowaną reprezentację trójwymiarową lub model CAD do jednej z zadanych grup.
Najprostszym sposobem realizacji tego podejścia jest przekazanie do klasycznego detektora wielu
płaskich obrazów przedstawiających obiekt z wielu kierunków, połączenie wyników przez zbieranie
cech funkcją maksimum i wprowadzenie dodatkowych warstw generujących prawdopodobieństwa
przynależności do poszczególnych klas.

Przetwarzanie danych wolumetrycznych


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

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

Częściowym rozwiązaniem tego problemu jest uwzględnienie rzadkiej struktury siatek


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

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.

Przetwarzanie chmur punktów


Najbardziej przejrzystą formą użycia konwolucyjnych sieci neuronowych do przetwarzania
trójwymiarowych chmur punktów jest rzutowanie ich na trójwymiarową siatkę o stałej wielkości
podstawowego sześcianu, czyli woksela. Jak jednak wykazano, takie podejście prowadzi do zbyt
dużej ilości zajętej pamięci i nieakceptowalnych czasów przetwarzania [70], [72]. Rozwiązaniem
jest znaczne ograniczenie wymiarów siatki. Typowa siatka trójwymiarowa o wymiarach 64 × 64 ×
64 woksele zawiera tyle samo punktów, co płaskie zdjęcie o wymiarze 512 × 512 pikseli, jednak
rozdzielczość jest zdecydowanie niższa, a reprezentacja obiektu będzie bardzo uproszczona.
Pominięcie tych ograniczeń jest możliwe, przez opracowanie architektury sieci neuronowej, która
przetwarza bezpośrednio chmurę punktów lub jedną z jej struktur indeksujących. Opracowano
bazowe architektury, przetwarzające chmury sprowadzone do formy drzewa k-wymiarowego
[73] oraz drzewa ósemkowego [74]. Podobny efekt osiągnięto przez przekształcanie chmur
punktów do reprezentacji statystycznej przez użycie wektorów Fishera [75] i dalsze przetwarzanie
przez typowe trójwymiarowe warstwy konwolucyjne [76].

Przełomem, przedstawionym w [77], jest architektura PointNet, dająca możliwość przetwarzania


przez sieć neuronową nieuporządkowanej chmury punktów w sposób bezpośredni. W tym
przypadku niezbędne jest zapewnienie niewrażliwości sieci na zmianę kolejności punktów. Dla
sieci o N punktach, każda z N! permutacji tej samej listy punktów powinna zwracać dokładnie ten
sam wynik. Dodatkowo wyniki sieci powinny być niewrażliwe na przesunięcia i obroty danych.
Rozwiązanie opiera się na użyciu prostych sieci (perceptronów wielowarstwowych)
współdzielących wagi, które przetwarzają każdy punkt niezależnie. Następnie warstwa zbierająca
funkcją maksimum wybiera cechy, które mają największe znaczenie i na ich podstawie można

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].

Najnowszym trendem w pracach naukowych jest próba zastosowania typowych warstw


konwolucyjnych, ale nie w przestrzeni sztywnej, gęstej siatki, lecz poprzez stosowanie filtrów
w postaci rzadko rozmieszczonych punktów próbkujących trójwymiarową reprezentację sceny.
W filtrach uczone są nie tylko wagi, ale również położenie najistotniejszych punktów których
wartość będzie uczestniczyła w obliczaniu wartości cech [82], [83].

Wymienione przykłady sprawdzone zostały w zadaniach klasyfikacji i segmentacji chmur


punktów. Nie są znane autorowi publikacje, w których zastosowano architekturę operującą
bezpośrednio na chmurze punktów bez rzutowania jej na przestrzenną siatkę do lokalizacji
obiektów lub generowanie deskryptorów mogących służyć do realizacji tego zadania. Przykładowo
w [74] sieć została przetestowana w zadaniu szacowania orientacji, ale jedynie dla pełnego modelu,
bez rozpraszających elementów tła i tylko dla kątów obrotu nie większych niż 15°. Przedstawione
metody nie są przystosowane do dopasowywania chmur punktów, a tym bardziej do wyznaczania
położenia i orientacji modeli chmur punktów. W pracy [84] udowodniono, że architektura typu
Pointnet nie jest odporna na obroty modeli rozpoznawanych w procesie segmentacji części. W
publikacji [85] przedstawiono tezę, że powodem małej przydatności tych podejść jest brak
przypisania lokalnej orientacji do uczonych deksryptorów. W niniejszej pracy podjęto próbę
rozwiązania tych ograniczeń, przez wprowadzenie nowej techniki uczenia sieci, bezpośrednio
w zadaniu dopasowywania chmur punktów.

Generowanie deskryptorów danych przestrzennych


W przypadku zadań klasyfikacji i segmentacji chmur punktów przez sieci neuronowe,
stosunkowo łatwo jest wygenerować wynik bezpośrednio. Inaczej jest w przypadku szacowania

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.

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


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

2.6. Podsumowanie analizy stanu wiedzy


Klasyczne metody wyznaczania położenia obiektów w trójwymiarowych
Istnieją sprawdzone i wielu przypadkach skuteczne metody przetwarzania trójwymiarowych
danych, nad którymi prowadzono prace od dziesięcioleci. Wywodzą się one z technik analizy
obrazów płaskich. Lokalizację obiektów można przeprowadzać przy użyciu szablonów modelu

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.

Klasyczne metody wymagają ręcznego dostosowywania parametrów i wielu operacji wstępnego


przetwarzania danych, filtrowania, normalizacji, wygładzania, które trzeba dostosować do
posiadanych danych.

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ń.

Przetwarzanie chmur punktów przy pomocy sieci neuronowych


Przetwarzanie danych trójwymiarowych przy pomocy sieci neuronowych jest w fazie
koncepcyjnej. Wciąż nie jest pewne, jaki jest najlepszy sposób zapisu danych geometrycznych,
który będzie umożliwiał skuteczne przetwarzanie chmur punktów, korzystnie przez techniki
wypracowane w innych zagadnieniach, jak analiza obrazów.

Najprostsze do rozwiązania przy użyciu technik uczenia maszynowego są zadania klasyfikacji


i segmentacji chmur punktów. Właśnie na tych problemach skupia się obecnie większość
naukowców.

Metody uczenia maszynowego znacznie lepiej radzą sobie z kompletnymi danymi.


W publikacjach częściej spotyka się trening na zbiorach powstałych na podstawie syntetycznych
modeli CAD, niż danych pochodzących z rzeczywistych kamer i skanerów. Problematyczne
w zadaniach klasyfikacji okazują się nie tylko punkty odstające i zasłonięcia, ale również zmienne
położenie kątowe modeli.

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.

Typowe sieci konwolucyjne mogą zostać przystosowane do przetwarzania chmur punktów,


przedstawionych w postaci wolumetrycznej, poprzez dodanie kolejnego wymiaru tensora
reprezentującego dane. Problemem pozostaje nieefektywność tej struktury ze względu na użytą
pamięć i tym samym możliwość przetwarzania jednorazowo jedynie niewielkiego fragmentu lub
bardzo uproszczonej, pozbawionej szczegółów sceny.

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.

Surowe chmury punktów, w postaci nieuporządkowanej listy współrzędnych, można przetwarzać


przy użyciu architektur sieci neuronowych typu PointNet. Algorytmy te są już zoptymalizowane
i łatwe w implementacji, gdyż opierają się na powszechnie stosowanych w innych dziedzinach
warstwach w pełni połączonych. Konieczne jest jedynie zapewnienie uwzględnienia zależności
pomiędzy punktami, jak poprzez lokalne przetwarzanie wprowadzone w architekturze PointNet++.

Dopasowywanie chmur punktów i szacowanie położenia obiektów z użyciem algorytmów


uczących się jest wciąż kłopotliwe. Opracowane dotychczas metody opierają się na nieefektywnych
reprezentacjach wolumetrycznych lub są to klasyczne metody z ręcznie definiowanymi
deskryptorami, ale wzbogacone o krok przetwarzania tych cech przez sieć neuronową. Barierą,
która nie pozwala opracować w pełni uczonej metody wyznaczania pozycji obiektów jest
wrażliwość każdej ze znanych reprezentacji na obroty obiektu.

Publiczne zbiory danych i dostępne urządzenia do akwizycji danych trójwymiarowych


Gromadzenie i opisywanie danych trójwymiarowych wciąż stanowi problem. Nawet
w kontekście współczesnych komputerów wymagana przestrzeń dyskowa i czas przetwarzania tych
reprezentacji nie pozwalają na komfortową pracę. Przykładem niech będzie zbiór sekwencji
używanych do uczenia sieci neuronowej opisanej w niniejszej pracy. Rekonstrukcja siatek
i przygotowanie grafów transformacji pomiędzy klatkami dla 2000 sekwencji RGB-D wymagało
dysku o pojemności 2 TB i zajęło komputer na ponad tydzień. Jeszcze więcej czasu wymagałoby
ręczne dopasowywanie chmur punktów lub opisywanie danych, umożliwiające trening algorytmów

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.

Większość publicznych zbiorów danych dostarczających położenia modeli w chmurach punktów


jest odpowiednia do testowania rozwiązań. Trudno jest wskazać zbiór danych tak obszerny, aby
mógł służyć do nauki rozwiązań opartych na technikach uczenia maszynowego. Opracowanie
takiego zbioru wiązałoby się z ogromnymi nakładami pracy. Nieliczne publikacje podejmujące
temat wyznaczania pozycji obiektów w chmurach punktów mogą opierać się na danych
syntetycznych lub etykietach generowanych w sposób automatyczny.

Na rynku dostępne są dwie podstawowe grupy urządzeń pozwalających na akwizycję


trójwymiarowych reprezentacji obiektów. Profesjonalne, dokładne, ale stosunkowo powolne
i bardzo kosztowne skanery oparte o rzutniki światła strukturalnego oraz tanie, szybkie, ale
niedokładne konsumenckie kamery 3D.

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.

Zauważalny jest brak tanich rozwiązań komercyjnych zapewniających dokładność chmur


punktów wystarczającą do pewnego wyznaczania położenia obiektów i elastyczność niezbędną do
integracji urządzenia z robotem. Twierdzenie to było szczególnie prawdziwe w momencie
rozpoczynania prac, w roku 2014. Obecnie, w roku 2019, produkowane seryjnie kamery 3D
charakteryzują się już akceptowalnym dla niektórych zastosowań poziomem jakości chmur
punktów, przy rozsądnym koszcie i dostępności otwartego oprogramowania.

Systemy zrobotyzowane realizujące analizę danych trójwymiarowych


Analiza publikacji naukowych i informacji o aktualnie stosowanych komercyjnych systemach
zrobotyzowanych wykazuje, że zadanie lokalizacji obiektów w przestrzennych reprezentacjach
otoczenia robotów przemysłowych jest wciąż w fazie eksperymentalnej. Komercyjne rozwiązania
jak [87]–[89] są przedstawiane jako realizujące zadania pobierania z nieuporządkowanych stosów

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:

• długi czas cyklu sięgający kilkunastu sekund,

• niewielka dokładność, konieczność użycia specjalnych, dostosowanych do kształtu


obiektów chwytaków pozycjonujących chwytane obiekty,

• możliwość chwytania jedynie obiektów składających się z podstawowych brył, jak


prostopadłościany i walce,

• lokalizacja ograniczonej liczby klas obiektów.

Osobną klasą systemów zrobotyzowanych wymagających lokalizacji obiektów w przestrzeni


trójwymiarowej w celu uchwycenia ich, są systemy logistyczne, realizujące chwytanie i pakowanie
obiektów z pojemników lub regałów. Zasada działania rozwiązań komercyjnych [90] lub
eksperymentalnych, przygotowanych do uczestnictwa w Amazon Picking Challenge [91] różni się
jednak od założeń opisywanych w niniejszej pracy. Systemy logistyczne nie wymagają pełnej 6 –
wymiarowej lokalizacji, zwykle nie jest opracowywana baza trójwymiarowych modeli obiektów
przeznaczanych do chwytania. Podstawowym celem w tym zadaniu jest znalezienie odpowiedniego
punktu chwytu, który pozwoli na właściwy kontakt przyssawki lub szczęk chwytaka
z powierzchniami obiektu. Realizowane jest to przez znalezienie fragmentów powierzchni
o założonych kierunkach normalnych i krzywiźnie. Opisywane w literaturze metody operują na
obrazach z kamer 3D, ale w głównej mierze opierają się na kolorowym, płaskim obrazie. Nie
występuje etap rekonstrukcji chmury punktów i dopasowywania trójwymiarowych modeli.
Przenoszone obiekty to opakowania z tworzyw sztucznych i kartonu z nadrukowanymi etykietami
będącymi źródłem struktury, łatwej do rozpoznania za pomocą algorytmów opartych o klasyczne
cechy wizualne wyodrębniane z obrazów płaskich. Głębia obrazu jest natomiast niezbędna na etapie
rekonstrukcji punktu chwytu, rozpoznanego na obrazie płaskim, w punkt w przestrzeni
trójwymiarowej. Mimo podobnego układu stanowiska, składającego się przemysłowego
manipulatora, wyposażonego w kamery i sensory pozwalające na mapowanie trójwymiarowe,
zadania i stosowane algorytmy znacznie różnią się scenariusza opisywanego w pracy i nie będą
rozważane.

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.

I. Opracowanie niedrogiego urządzenia do pozyskiwania danych o geometrii obiektów


w przestrzeni pracy robota przemysłowego. Urządzenie powinno być zintegrowane
z układem sterowania robota i nie może kolidować z oprzyrządowaniem technologicznym.

II. Opracowanie technik sterowania robotem przemysłowym na podstawie danych o pozycji


obiektów w przestrzeni pracy, procedur kalibracji i uruchamiania programów
technologicznych przeznaczonych dla konkretnych obiektów.

III. Zwiększenie niezawodności i szybkości działania metod wyznaczania położenia obiektów


w chmurach punktów.

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:

• przestrzeń pracy zbliżona do przestrzeni robota przemysłowego,

• możliwość integracji z robotem przemysłowym, tj. zamocowania sensora w kiści robota,


obok chwytaka lub narzędzia technologicznego,

• rozdzielczość rzędu 0,2 mm, pozwalająca na reprezentacje faktury obiektu i szczegółów


geometrii,

• interfejs programistyczny pozwalający na integrację z popularnymi bibliotekami i dalsze


przetwarzanie danych przy użyciu autorskiego kodu,

• niska cena, nie wpływająca istotnie na koszt stanowiska zrobotyzowanego.

Postawione wymagania nie są spełniane przez konsumenckie kamery RGB-D ze względu na


ograniczoną dokładność. Profesjonalne skanery laserowe oparte na rzutnikach światła
strukturalnego są zazwyczaj zbyt drogie, mają zbyt duże wymiary oraz niejednokrotnie wymagają
specjalistycznego oprogramowania, które jest zamknięte i nie jest łatwo je skomunikować
z otwartymi bibliotekami. Zaproponowano własne rozwiązanie, które spełnia wszystkie ww.
założenia. Autorskie opracowanie skanera laserowego pozwoliło lepiej zrozumieć zasadę działania
tych urządzeń oraz poznać ich ograniczenia. W projektowaniu systemu inspirowano się zasadą
działania istniejących skanerów opartych o liniową wiązkę lasera [3], [92] oraz możliwą integracją
robotów przemysłowych ze skanerami laserowi [93]. Nie są znane autorowi jednak inne
rozwiązania, w których źródło wiązki lasera jest przenoszone przez ramię robota, z którego
odczytywane jest aktualne położenie wiązki światła. Pozwoliło to opublikować opisywany układ
urządzenia [94].

3.2. Zasada działania skanera


3.2.1 Zależności geometryczne
Proponowany układ, przedstawiony na rys. 3.1. pokrywa się z często spotykanym, typowym
rozmieszczeniem elementów na stanowisku zrobotyzowanym, wraz z kamerą umieszczoną na stałe,

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.

Rys. 3.1. Elementy zrobotyzowanego stanowiska wyposażonego w skaner


laserowy

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

Rys. 3.2. Rekonstrukcja przestrzennego położenia punktów w skanerze laserowym

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:

f [mm] – ogniskowa obiektywu,


K
u , K v [mm] – współrzędne rozpatrywanego punktu na płaszczyźnie obrazowania.

Położenie punktu odczytanego ze zdjęcia określone jest w układzie współrzędnych sensora.


Natomiast, aby dokonać transformacji na układ kamery należy zastosować proporcję między
fizycznymi wymiarami sensora kamery, a liczbą elementów światłoczułych, na które został
podzielony (liczbą pikseli):

mm U V
k [ ]
px
= =
nU nV
(3.3)

gdzie:

U, V [mm] – wymiary sensora kamery,


nu, nv [px] – odpowiednio liczba pikseli w wierszu i kolumnie.
Układ sensora ma swój początek w pierwszym pikselu zdjęcia, przez to ich numeracja przybiera
zawsze wartości nieujemne, co wynika z macierzowego zapisu obrazu. Macierz transformacji
między układami, składająca skalowanie i translacje określa wzór 3.4:

k 0 −U / 2
K
S
0 0[
T = 0 k −V / 2
1 ] (3.4)

Półprosta P0PS opisana jest położeniem punktu KP0 i wektorem kierunkowym r:

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

Rys. 3.3. Przestrzeń robocza kamery

Geometria przestrzeni jest zdeterminowana przez ogniskową obiektywu i wymiary sensora


kamery. Posługując się proporcjami można określić pole widzenia FOV (ang. Field Of View), czyli
pole widzenia w płaszczyźnie odległej od kamery o zadaną wartość.

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.

Rozdzielczość skanera nie jest jednakowa we wszystkich kierunkach. Wymiary leżące


w płaszczyznach równoległych do płaszczyzny obrazowania mają stałą rozdzielczość daną
zależnością 3.11:

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.

Wymiar głębokości Z charakteryzuje się rozdzielczością wynikającą z zależności geometrycznej


i zależy od nie tylko od kamery, ale również jej położenia względem wiązki światła laserowego:

∆x
∆ z= (3.12)
tg(α )
gdzie:

∆z – rozdzielczość skanera w kierunku głębokości kamery [mm],


α – kąt triangulacji (rys. 3.4).

α
Δ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.

Światło generowane przez laserową diodę półprzewodnikową ma postać wiązki stożkowej.


Nadanie światłu postaci płaszczyzny wymaga rozproszenia w jednym kierunku, przy braku zmiany
toru światła w kierunku prostopadłym. Dokonuje się tego poprzez zastosowanie soczewki
walcowej, która może mieć postać małego, lekkiego elementu z tworzywa sztucznego, pasującego
do kompaktowej obudowy lasera. Uzyskana linia zachowuje jednak cechy kołowej wiązki światła
padającego na soczewkę, jest bardzo rozciągniętą w jednym kierunku elipsą. Skutkiem tego jest
większa grubość linii i jej jasność w środkowej części, co może stanowić utrudnienie przy

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.

3.2.2 Wykrywanie wiązki lasera na obrazie


Odnalezienie z odpowiednią dokładnością środka linii lasera na obrazie (rys. 3.5a) nie zawsze
jest oczywistym zadaniem. Poszukiwanie maksimum intensywności oświetlenia w każdej kolumnie
obrazu, któremu powinien odpowiadać środek wiązki lasera (rys. 3.5b) oraz szukanie górnej
i dolnej krawędzi linii przez sprawdzanie warunku przekroczenia pewnej wartości, bezwzględnego,
arbitralnie ustalonego progu (rys. 3.5c) okazują się nieskuteczne, ze względu na zakłócenie
charakteru rozkładu jasności punktów w obrębie wiązki na obrazie w stosunku do modelowego
rozkładu wiązki Gaussa. Przykładowy, silnie zakłócony rozkład pokazano na rys. 3.5d.

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

Z powodu tych ograniczeń, algorytm poszukiwania środka wiązki laserowej na obrazie


uzyskanym przez skaner jest dwuetapowy. W pierwszym kroku poszukuje się granic wiązki, tak jak

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.

Rys. 3.6. Wyniki wykrywania wiązki lasera

Algorytm wykrywa położenie środka wiązki z dokładnością σL = 0,1 mm (mierzone jako


odchylenie od prostej). Ta wartość zależy od rozdzielczości kamery, dokładności kalibracji
i jednorodności światła laserowego

3.2.3 Kalibracja kamery


Celem kalibracji kamery jest określenie jej parametrów umożliwiających odniesienie
uzyskanych za jej pomocą zdjęć do świata zewnętrznego. Parametry te można podzielić na dwie
grupy. Parametry zewnętrzne określają położenie kamery w przestrzeni, ulokowanie jej układu
współrzędnych. Położenie i orientację układu współrzędnych względem układu nadrzędnego można
wyrazić przy pomocy uogólnionej macierzy transformacji, która uwzględnia zarówno obroty jak
i przemieszczenia. Przekształcenie położenia układów współrzędnych dokonuje się przez mnożenie
macierzy. Parametry wewnętrzne mają za zadanie powiązać położenie obiektywu względem
płaszczyzny obrazowania. Poszukiwana macierz parametrów wewnętrznych wiąże współrzędne
uzyskane na obrazie ze współrzędnymi rzeczywistych punktów w przestrzeni. Obiektyw kamery nie
jest w rzeczywistych warunkach idealnie wykonany i zamontowany względem matrycy elementów
światłoczułych. Wprowadza to pewne zniekształcenia obrazu, które jednak mogą być korygowane
przez współczynniki uzyskane na etapie kalibracji. Błędy kształtu obiektywu powodują
zniekształcenia promieniowe, które można obserwować jako beczkowatość lub siodłowatość
obrazu. Przesunięcie punktu zależy od jego odległości od środka obrazu. Zniekształcenia styczne
wynikają z braku równoległości między płaszczyzną soczewki obiektywu, a matrycą sensorów

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.

Rys. 3.7. Kalibracja kamery względem globalnego układu współrzędnych

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.

3.2.4 Kalibracja generatora linii laserowej


Rzutnik linii laserowej nie jest klasycznym narzędziem i nie podlega standardowym, stykowym
procedurom kalibracyjnym przewidzianym przez producenta robota. Możliwość szerokiej i płynnej
regulacji uchwytu lasera nie umożliwia także pomiaru przed montażem uchwytu i samodzielnego
wprowadzenia wymiarów narzędzia do układu sterowania robota. Opracowano z tych powodów
własną procedurę pozwalającą na ustalenie macierzy transformacji między położeniem punktu
centralnego interfejsu mechanicznego robota, a położeniem płaszczyzny światła laserowego.
Zależność ta jest stała dopóki nie wprowadzi się zmian w nastawach uchwytu, co wymusza
powtórzenie procedury.

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).

Rys. 3.8. Kalibracja położenia wiązki lasera w układzie kamery

Na odczytanej linii wybierane są punkty P1, P2 i P3 . Wiedząc, że leżą one odpowiednio na


płaszczyźnie z=0 oraz z=−h, można przy pomocy zależności (3.7) i (3.8) określić ich

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)

Macierz ta, po przekształceniu do odpowiedniej formy jest wpisywana jako parametry


geometryczne narzędzia do kontrolera robota. W procedurze kalibracji nie jest uwzględniana
optymalna odległość źródła światła laserowego od obiektów mierzonych. Zwykle dąży się do tego,
aby wiązka lasera była skupiona na powierzchni, na którą pada. Odległość ogniskowa układu
optycznego rzutnika linii laserowej jest podawana przez producenta urządzenia.

3.3. Praktyczna realizacja


3.3.1 Wyposażenie stanowiska
Stanowisko składające się z robota przemysłowego ABB IRB 140 ze sterownikiem IRC5 oraz
kamerą Sick IVC-1131 zostało wyposażone dodatkowo w źródło zielonej linii laserowej
montowane na płytce interfejsu mechanicznego robota oraz standardowy komputer służący do
obróbki i wizualizacji gromadzonych danych geometrycznych.

Przysłona i ostrość obiektywu kamery ustawiane są ręcznie i nie ma możliwości ich


automatycznej regulacji. Płaszczyzna ostrości została ustawiona na powierzchni palety stanowiącej
podstawę dla mierzonych obiektów. Czas naświetlania obrazu i ustawienia jasności zostały wybrane
ręcznie i jednorazowo ze względu na niezmienność położenia systemu i stabilność oświetlenia.
W przypadku braku spełnienia tych warunków, korzystne będzie opracowanie metod
automatycznego dostosowywanie jasności obrazu i zastosowanie rzutnika światła laserowego
o regulowanej mocy.

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).

Rys. 3.9. Schemat współpracy robota i kamery

W ramach wdrażania projektu skanera posługiwano się językiem programowania robotów


RAPID w celu zaprogramowania ścieżki skanowania i synchronizowania pracy z kamerą. Program
ruchu robota nie jest skomplikowany, ma za zadanie realizować ruchy skanowania, jak na rys. 3.10
oraz wymieniać sygnały cyfrowe z kamerą.

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.

3.3.2 Program skanera


Obliczenia związane z przetwarzaniem obrazu, polegające na filtracji i wyszukaniu linii lasera na
obrazie oraz rekonstrukcja położenia punktów w przestrzeni 3D, przeprowadzane są na komputerze
PC. Kontroler robota wysyła w czasie rzeczywistym pozycje rzutnika linii laserowej, a kamera
aktualny obraz. W ramach programu skanera optycznego zaimplementowano potrzebne klasy
realizujące podstawowe pojęcia geometryczne, takie jak prosta, płaszczyzna, układ współrzędnych.
Na ich podstawie opracowano klasy nadrzędne realizujące zachowania dotyczące układu sterowania
robota i kamery. Całość została zrealizowana w języku C++. Obliczenia algebraiczne realizowane
są przy użyciu biblioteki Eigen [96].

3.4. Weryfikacja rozwiązania


3.4.1 Analiza dokładności
Proponowany sposób pomiaru powierzchni jest obarczony niepewnością spowodowaną
ograniczoną dokładnością pozycjonowania ramienia robota przemysłowego, precyzją układu
optycznego kamery oraz możliwością odczytania z obrazu środka linii lasera. Na powtarzalność
pomiaru wpływa ponadto konfiguracja pomiaru, wybrany obszar roboczy oraz kąt triangulacji, tj.
kąt pomiędzy osią główną kamery, a styczną do płaszczyzny lasera.

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

Przeprowadzono testy powtarzalności w celu określenia dokładności rozwiązania. Procedura


oceny jest wzorowana na testach współrzędnościowych maszyn pomiarowych opisanych w normie
ISO 10360. Istota testu i znaczenie każdego parametru przedstawiono na rys. 3.12.

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.

P¯Cj , r¯j ⇐ LSE [‖Pij −P¯Cj‖= r̄ j ] (3.15)

MPE P=max( r¯j −‖P ij − P¯Cj‖) (3.16)

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 , r¯k ⇐ LSE[‖P ik − P¯Ck‖=r¯k ] (3.17)

P Ck (3.18)
P¯C =∑ ,
K

MPE Al=max(‖P Ck − P¯C‖) (3.18)

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:

MPE P=0,42 mm (3.19)


MPE Al=0,52 mm (3.20)

Pomiary zostały wykonane na zestawie kul kalibracyjnych, których powierzchnie wykończone


były na różne sposoby i tym samym charakteryzowały się różnymi współczynnikami refleksyjności
i barwą. Przykładowy pomiar przedstawiono na rys. 3.13. Chmury punktów uzyskane przy
kolejnych pozycjach lasera przedstawiono różnymi kolorami.

Rys. 3.13. Pomiar powierzchni kul kalibracyjnych w celu określenia powtarzalności

Wartości powtarzalności dyskwalifikują skaner w precyzyjnym montażu i pozycjonowaniu


materiału wejściowego w obróbce, ale są wystarczające, aby skaner był przydatny w wielu
zastosowaniach, takich jak np. malowanie i pakowanie produktów.

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).

Rys. 3.14. Stanowisko prototypowe

Koszt rozbudowy jest względnie mały w porównaniu z wartością stanowiska. Efektem


skanowania przykładowego przedmiotu, ręcznej wkrętarki akumulatorowej (rys. 3.15a) jest chmura
punktów przedstawiona na rys. 3.15b. Może ona posłużyć do opracowania siatki (rys. 3.15c)
będącej podstawą do wykonania kopii przedmiotu technikami przyrostowymi. Wyniki mogą także
służyć do pomiaru krzywizn skomplikowanych powierzchni w celach kontrolnych. Obiekt po
wyodrębnieniu bazowych kształtów, które mogą być wymiarowane i mierzone przedstawia
rys. 3.15d.

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.

Rys. 4.1. Stanowisko z lekką ramą lokalizowaną na podstawie znaczników

Zamiast identyfikowania obiektów na podstawie cech geometrycznych, uproszczono zadanie


i poszczególne obiekty w ramach tego rozdziału rozpoznawano przy użyciu znaczników.
Stosowane powszechnie kody kreskowe i matrycowe służą zwykle jedynie do identyfikacji obiektu.

65
Proponuje się zwiększyć ich użyteczność przez dodanie możliwości ich lokalizacji i tym samym
określania lokalizacji obiektów.

Uzyskane rozwiązanie jest przeznaczone do aktualnie użytkowanych i nowych stanowisk


zrobotyzowanych. Szczególnie użyteczne może się okazać w zakresie spawania zrobotyzowanego,
gdzie znacznym obciążeniem jest oprzyrządowanie technologiczne. Ramy, uchwyty i zaciski
utrzymujące spawane elementy są kosztowne, a czynności przezbrajania i przechowywanie
problematyczne, zwłaszcza w przypadku małych przedsiębiorstw pracujących z krótkimi seriami
wyrobów.

4.2. Zasada działania systemu


Znaczniki są to dodatkowe elementy, które są łatwe do odszukania i rozróżnienia na obrazie.
W systemach wizji maszynowej szeroko stosuje się zestawy rozproszonych kul, płaskich kół lub
kodów. Najwięcej danych można przechować w kodach matrycowych. Matryca zawiera pola jasne
i ciemne, a ilość przechowywanych danych zależy liczby pól [97]. Znając wymiary kodu można
określić pozycje i orientacje wzorca względem kamery, czyli przemieszczenia i obroty w trzech
osiach, co rozszerza użyteczność podaną w [98].

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.

Proponowana metoda opiera się na rozwiązywaniu problemu perspektywy z trzech punktów


(ang. Perspective-three-point, P3P). Zadanie to polega na określeniu położenia i orientacji kamery
na podstawie 3 punktów o znanym położeniu w trójwymiarowej przestrzeni, rzutowanych na
płaszczyznę obrazowania kamery. Jest to jedno z podstawowych zadań fotogrametrii, którego
rozwiązanie jest niezbędne w procesie kalibracji kamery, śledzenia obiektów, określania ruchu
kamery na podstawie kolejnych ujęć [101], [102]. Duże znaczenie praktyczne spowodowało
opracowanie wielu metod rozwiązania tego zadania. Można podzielić je na dwie grupy. Metody
iteracyjne są zwykle bardziej złożone obliczeniowo, ale i dokładniejsze i bardziej odporne na

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].

4.2.1 Wykrywanie kodów matrycowych


Podstawową funkcją kodów matrycowych jest przechowywanie informacji. Obrót kodu, zmiana
skali, czy nawet umieszczenie go na wiotkiej, odkształcalnej powierzchni nie prowadzi do utraty
danych i w dalszym ciągu umożliwia ich odczytanie. Jeżeli jednak kod zostanie naniesiony na
płaszczyznę i znane są jego wymiary to możliwe jest odczytanie dodatkowo jego położenia
względem skalibrowanej kamery. Ta właściwość, jednoczesne przechowywanie danych tekstowych
identyfikujących obiekty oraz danych geometrycznych, pozwalających określić położenie etykiety
w przestrzeni, skłoniła do użycia właśnie tego typu znacznika.

Rekonstrukcja pozycji etykiety względem kamery opiera się na zlokalizowanych na obrazie


narożach macierzy kodu. Jest to zadanie wizji komputerowej, którego rozwiązanie, ze względu na
dużą popularność kodów matrycowych QR, można znaleźć w istniejących bibliotekach
programistycznych. Wejściem do programu jest obraz z kamery umieszczonej nad stanowiskiem
robota przemysłowego, a wyjściem wektor zawierający dane odkodowane ze wszystkich
rozpoznanych etykiet oraz położenie ich naroży na obrazie. Rysunek 4.2 przedstawia konwencję
numerowania naroży kodu i umieszczania układu współrzędnych.

67
Rys. 4.2. Układ współrzędnych kodu matrycowego i numeracja narożników

4.2.2 Kalibracja systemu


Znajomość położenia znaczników w układzie kamery nie jest wystarczająca. Konieczna jest
kalibracja, to jest określenie wzajemnego położenia układów współrzędnych robota i kamery, aby
móc operować obiektami. W opisywanym rozwiązaniu posłużono się wzorcem, tożsamym
z używanymi do identyfikacji obiektów, to znaczy etykietą z kodem QR. Znacznik został
naniesiony na chwytak. Możliwe jest zastosowanie kilku znaczników na poszczególnych
powierzchniach narzędzia. Transformacje pomiędzy układami współrzędnych obejmują obrót
i przemieszczenie. Są reprezentowane przez jednorodne macierze o wymiarach 4 × 4. Zależności
pomiędzy układami współrzędnych przedstawia rys. 4.3.

Rys. 4.3. Zależności pomiędzy układami współrzędnych

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

Program przetwarzania obrazu uruchomiony na komputerze podłączonym do kamery odczytuje


położenie kodu w każdej z pozycji zatrzymania ramienia. Posiadając zapisane położenie znacznika
w każdym węźle siatki zarówno w układzie robota, jak i kamery określa się sumę przesunięć
w kierunkach głównych robota i przestawia w postaci wektorów w układzie kamery. W wierszach
macierzy znajdują się wektory reprezentujące przemieszczenie się znacznika w układzie kamery
przy ruchu w poszczególnych kierunkach robota.

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.

Rys. 4.5. Ustalenie przesunięcia między układami współrzędnych robota i kamery

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)

4.3. Dynamiczne dostosowywanie programu


Opracowanie programu, który dynamicznie dostosowuje się do położenia obiektów
w przestrzeni pracy robota nie jest trudniejsze niż napisanie typowego programu dla obiektu
umieszczonego w sztywnym oprzyrządowaniu. Programista umieszcza obiekt w dowolnym miejscu
wspólnej przestrzeni pracy manipulatora i kamery. Może również zdefiniować własne układy
współrzędnych (ang. User Coordinate System, UCS) ułatwiające pisanie programu, jak na rys. 4.6.

Rys. 4.6. Definiowanie programu dopasowującego się do pozycji obiektu

Po zakończeniu powinna zostać uruchomiona procedura zapisu programu. Wraz z instrukcjami


zostaje zapisane zdjęcie obiektu w przestrzeni pracy. Na podstawie zdjęcia i danych z wcześniejszej
kalibracji można wyznaczyć transformację pomiędzy kodem matrycowym QR, a układem
współrzędnych użytkownika. Jeżeli programista zdefiniował więcej niż jeden układ współrzędnych,
obliczenia powtarza się.

T UCS QR −1 K −1 UCS
QR i =(T C ) ⋅(T R ) ⋅T R i
(4.7)

Przekształcenie T CR jest wynikiem kalibracji, a T QR


C jest wynikiem algorytmu określającego
położenie i orientację znacznika względem kamery na podstawie lokalizacji naroży na obrazie, T UCS
R

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.

Istnieje możliwość oznaczenia oprzyrządowania utrzymującego obiekty procesu


technologicznego w stabilnej pozycji przy pomocy kilku kodów matrycowych. Proponuje się
arbitralnie wybrać wirtualny układ znaczników. W fazie opracowywania programu wykonuje się
zdjęcie oprzyrządowania i określa położenie znaczników względem układu wirtualnego. W trakcie
wykonywania programu położenie układu wirtualnego można określić nawet po wykryciu tylko
jednego znacznika. W przypadku rozpoznania większej liczby znaczników stosuje się określenie
położenia układu wirtualnego na podstawie każdego z wykrytych markerów osobno.

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,

przetransformowanego układu współrzędnych użytkownika według następującej zależności.

T newUCS =T CR⋅T QR UCS


R C ⋅T QR
(4.9)

Nowy układ współrzędnych wraz z informacją o rodzaju oprzyrządowania znajdującego się


w przestrzeni pracy jest przesyłany do kontrolera robota. Tam zostaje wybrany odpowiedni
program, który realizowany jest przy nowym, zmodyfikowanym układzie współrzędnych. Czas
trwania obliczeń i przesyłu danych nie przekracza sekundy i jest pomijalny przy typowych
programach technologicznych robotów przemysłowych.

72
4.4. Weryfikacja rozwiązania
W celu weryfikacji zastosowanych rozwiązań zaplanowano eksperyment, jak na rys. 4.7.

Rys. 4.7. Badanie powtarzalności określania pozycji przy pomocy systemu


wizyjnego

Sześcienny obiekt o boku o wymiarze 40 mm oznaczono kodem matrycowym wydrukowanym


na standardowym papierze przy użyciu biurowej drukarki laserowej. Rozdzielono badanie
powtarzalności w kierunku normalnym do płaszczyzny kodu od badania w płaszczyźnie znacznika,
gdyż ich wartości różnią się znacząco ze względu na zastosowaną metodykę określania położenia
obiektu. Napisano program robota według opisanej procedury. W kiści robota zamontowano adapter
pozwalający na zamocowanie czujnika pomiarowego. Pozwala to bezpośrednio mierzyć odchyłkę
względem bazowej realizacji programu. Wykonano 10 prób statycznych. Pomiary przeprowadzano
przy pomocy kamery wyposażonej sensor o rozdzielczości 1600 na 1200 pikseli. Pole widzenia
w płaszczyźnie pomiaru wynosi 340 na 250 mm. Powtarzalność uzyskiwania poszczególnych
pozycji w układzie obiektu obrazuje się jako odchylenie standardowe odczytywanych przy pomocy
czujnika wartości. Odchylenia te zestawiono w tabeli 4.1.

Tabela 4.1. Powtarzalność pozycji określonej na podstawie obrazu z kamery


sx, sy [mm] sz [mm] sA, sB [º] sC [º]
0,32 1,77 2,23 0,50

Rozrzut wyników pozycjonowania w kierunku normalnym do znacznika jest większy, ale


w zagadnieniach praktycznych, często precyzja wymagana w tym kierunku jest mniejsza. Można to
zauważyć w przypadku manipulowania przedmiotami, gdzie odchylenia są kompensowane przez
chwytak. W przypadku chwytaków podciśnieniowych kompensacja wynika z elastyczności
przyssawki, w przypadku chwytaków mechanicznych, kompensacja może być konsekwencją
poślizgu na szczękach. W przypadku spawania, niedokładność pozycji w kierunku normalnym do
kodu QR i tym samym w kierunku dyszy spawalniczej, zwykle skompensowana jest przez układ
automatycznej regulacji długości łuku i automatyczną regulację parametrów spawania.

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.

S={ui=( Pu , nu)i }si=1 (5.1)


M ID ={v j =( P v , n v ) j }mj=1 (5.2)
M ID ∈M (5.3)

Opracowany system akceptuje modele zadane dowolną reprezentacją, również wygenerowaną


przez oprogramowanie CAD siatką, która jest sprowadzana do chmury punktów. Rozwiązaniem
zadania rozpoznawania sceny jest lista R par Rk identyfikatorów rozpoznanych modeli IDr oraz
transformacji opisujących położenie dopasowanego modelu w przestrzeni sceny TMS.

R ={Rk =( ID R , T SM )k } (5.4)

Sztywna transformacja w przestrzeni 3D między dwoma układami współrzędnych


reprezentowana jest przez macierz o wymiarach 4 × 4:

R BA t BA
T BA =
[ 0 0 0 1 ] (5.5)

gdzie RAB jest 3 × 3 macierzą obrotu, a tAB jest wektorem przesunięcia t ∈ℝ 3.

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

Korzyści płynące z połączenia robota przemysłowego ze skanerem optycznym w zadaniach


przenoszenia obiektów są już dostrzeżone w literaturze. Uproszczone rozpoznawanie obiektów na
podstawie samodzielnie zdefiniowanych cech opisano w [114]. Są to jednak systemy, które nie
zapewniają łatwej rozbudowy o kolejne modele. Metodę, w której użyte są uniwersalne deskryptory
lokalne, które stosuje się również w niniejszej pracy, zastosowano później. Stanowisko do
pakowania elementów wyposażone w dwa roboty, przenoszący elementy i pomiarowy
przedstawiono w [115]. Zastosowanie danych w postaci chmur punktów do rozpoznawania
obiektów i zrobotyzowanej manipulacji w środowisku domowym przedstawiono w [116].
Pokrewne podejście zaproponowano również w [117], jednak w tym przypadku do ustalania
położenia obiektów w obrabiarkach CNC. Szybkie sensory wizyjne 3D i metody rozpoznawania
ruchomych obiektów zostały przedstawione w [118].
Inaczej zadanie rozpoznawania i określania pozycji obiektów rozwiązano w [119]. Metoda tam
opisana opiera się na płaskich fotografiach i deskryptorach opartych na fakturze obiektu, a nie ich
kształcie. Możliwość autonomicznego rozpoznawania obiektów na placach budowy rozpatrzono
w [120], gdzie jednak określanie pozycji odbywa się tam w za pomocą dodatkowych znaczników.

Automatyczne generowanie trajektorii ramion robotów na podstawie danych z sensorów jest


jednym z podstawowych celów rozwoju uczenia maszynowego. Powstały już pierwsze algorytmy,
które przy użyciu technik uczenia wymuszonego są w stanie przetwarzać obraz z kamery na
wartości momentów obrotowych zadawanych na napędy członów manipulatora podczas
wykonywania ściśle określonych zadań [121]. Zastosowana tam sieć neuronowa jest odporna na
zmiany otoczenia i pozycji obiektu manipulacji, ale realizuje tylko jedno zadanie i trudno jest
obecnie określić w jaki sposób uogólnić to podejście. Z drugiej strony opracowano metody mające

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.

5.2. Rozpoznawanie obiektów w chmurach punktów


5.2.1 Wyznaczanie pozycji modelu w scenie podzielonej na grupy
Algorytm rozpoznawania elementów zbioru modeli w chmurze sceny można zarysować przy
pomocy opisanych poniżej kroków.
wejście: chmura sceny S, lista modeli M
wyjście: zbiór wyników R
grupowanie S→ S ={S i };
dla każdej grupy sceny Si w S i modelu Mj w M
próbkuj w dół
oblicz deskryptory

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

Występowanie niezależnych pętli na zbiorach elementów pozwala na równoległe wykonywanie


obliczeń. Opisywana w tym opracowaniu metoda została zaimplementowana tak, że obliczenia
dopasowania dla każdej pary model i fragment sceny są wykonywane przez niezależny proces.
Pozwala to w pełni wykorzystać wielordzeniową architekturę nowoczesnych procesoró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.

Wyszukiwanie modeli w surowych danych z uwzględnieniem wszystkich punktów w chmurze


jest możliwe, lecz wymagałoby ogromnej mocy obliczeniowej. Poza tym w większości obiektów
wytworzonych przez człowieka znaczna część powierzchni to płaszczyzny i walce. Punkty należące
do tych powierzchni będą miały bardzo podobne deskryptory, nie będą one rozróżnialne.
Naturalnym podejściem jest wyszukiwanie punktów, które są unikalne w modelu, takich jak
krawędzie i naroża. Wyszukiwanie punktów o unikalnym położeniu, to jest punktów kluczowych
jest nieustannie rozwiązywanym problemem badawczym, przeprowadzone testy różnych metod
oraz doświadczenia innych naukowców [125] sugerują, że nie opracowano dotychczas metody,
która byłaby dostatecznie powtarzalna do chmur punktów pobranych ze skanerów laserowych,
obarczonych szumem, punktami odbiegającymi i zasłonięciami. W opisywanej metodzie nie stosuje
się wyszukiwania kluczowych punktów, a jedynie próbkowanie w dół, w celu uzyskania luźniejszej
i mniej kosztownej obliczeniowo struktury. Posłużono się w tym celu strukturą drzewa
ósemkowego. Chmurę punktów o mniejszej rozdzielczości, to jest średniej odległości między

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).

Rys. 5.2. Transformacja wynikająca z dopasowania odpowiadających sobie deskryptorów

Dla każdego z tych ns punktów wyszukiwane jest nd najbardziej zbliżonych deskryptorów


z pobranej chmury punktów. Wystarczające byłoby nd = 1, jednak w celu zwiększenia pewności
wprowadza się element losowości i przyjmuje się nd = 5 i losuje z nich punkt, który będzie
odpowiadającym deskryptorem. Znaczna część hipotez będzie nieprawidłowa, co można szybko
sprawdzić przez określenie odległości między punktami na modelu i punktami w badanej chmurze.
Szybkie odrzucenie wadliwych dopasowań, w których stosunek długości odcinków łączących
punktów przekroczy założony próg ts zostało opisane w [41] i wielokrotnie skraca czas całej
procedury. Hipotezy, które przeszły pierwsze sprawdzenie są weryfikowane. Model przemieszczany
jest przez transformację zdefiniowaną przez przesunięcie i obrót odpowiadających sobie
deskryptorów. Następnie obliczany jest udział punktów modelu, które znalazły się bliżej badanej
chmury niż zadana progowa odległość. Dla testowych modeli próg ten określano na to = 10 mm.
Jeżeli udział punktów dobrze dopasowanych jest większy niż parametr fi = 0,5 to nie ma powodów
do odrzucenia hipotezy. Jeżeli punktów dopasowanych jest za mało, to hipotezę odrzuca się i losuje
kolejny zestaw deskryptorów i powtarza cały proces, do uzyskania prawidłowej hipotezy lub
przekroczenia dopuszczalnej liczby iteracji.

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.

Walidacja rozwiązania polega na porównaniu odchyleń modelu od sceny z progiem odrzucania


danego rozwiązania po ostatecznym dopasowaniu. Miarę jakości dopasowania definiuje się jako
sumę kwadratów odległości dopasowanego modelu do najbliższego punktu sceny.

SSE= ∑ (min‖Pmi −P sj‖)2


i∈(0,|S M|) (5.6)
j∈(0,|SS|)

Wartość progową przyjmuje się empirycznie, w zależności od urządzenia pomiarowego,


generowanej liczby punktów, wymiarów chmury, szumu oraz wymaganej precyzji montażu
konkretnej pary części. Przy testowaniu algorytmów stosowano bardzo restrykcyjne wartości
progowe, przez co część prawidłowych rozwiązań była odrzucana i przekazywana do ponownej
analizy wstępnej. Kierowano się obawą o sprzęt, który mógłby zostać uszkodzony, gdyby
zaakceptowano nieprawdziwe dopasowanie i skierowano robota do pobrania faktycznie
nieistniejącego obiektu.

5.2.2 Trajektoria robota sterowanego skanerem laserowym


Zadanie generowania trajektorii robota realizowane jest przez komputer PC działający w jednej
sieci lokalnej z kontrolerem robota i skanerem optycznym. Kontroler robota pobiera jedynie
zestawy współrzędnych i wykonuje ruch pomiędzy nimi. Algorytm 5.2 przedstawia proces
generowania ścieżki.

wejście: R ={(IDi, Ti)}, D={(IDj, T0j, vj)}, ddobieg, dbezpieczna;


wyjście: P ={TRH};
jeżeli x|IDx = 0 ∈Q /*baza znaleziona*/ and |Q| > 1 //znaleziono inną część
T0 = Tx //pozycja części bazowej
dla każdego model|IDmodel≠0 w R
J: IDJ = IDmodel //znajdź odpowiadające metadane w D
TRH1=Tmodel · przesunięcie(dbezpieczna · zoś(Tmodel));
TRH2=Tmodel · przesunięcie(0.5·ddobieg · zoś(Tmodel));
TRH3=Tmodel · przesunięcie(-0.5·ddobieg · zoś(Tmodel));
TRH4=TRH1;
TRH5=T0 · T0J · przesunięcie(dbezpieczna · vJ);
TRH6=T0 · T0J;
TRH7= TRH5;
P = P ∪ {TRH1,TRH2,TRH3,TRH4,TRH5,TRH6,TRH7};
wyślijP do kontrolera robota;
Algorytm 5.2. Generowanie trajektorii robot dla zadania montażu

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.

Rys. 5.3. Generowanie trajektorii robota a) zależności pomiędzy transformacjami b) strategia


chwytania obiektu

Wymiar dbezpieczna oznacza bezpieczną odległość od elementów ograniczającą ryzyko kolizji.


Robot ustawia narzędzie na wysokości ddobieg nad spodziewaną powierzchnią chwytu. Następnie do
chwytaka doprowadzane jest podciśnienie i uruchamia się powolny ruch w dół. Uchwycenie
przedmiotu jest sygnalizowane przez przełącznik próżni wykrywającym spadek ciśnienia. W tym
momencie ruch jest przerywany. Niewielkie przesunięcie narzędzia w czasie opóźnienia między
wykryciem uchwycenia przedmiotu, a zatrzymaniem ruchu jest kompensowane przez elastyczność
przyssawki próżniowej. Brak sygnału o uchwycie jest interpretowane jako błąd. Jest to uproszczone
rozwiązanie. Dla systemu działającego w warunkach przemysłowych, bez nadzoru człowieka, lepiej
byłoby wyposażyć robota w czujniki siły i impendacyjny układ sterowania, jak [126]. Takie
rozwiązanie pozwala wyeliminować ryzyko zniszczenia obiektu lub manipulatora w przypadku
awarii systemu rozpoznawania obiektów. Umożliwiłoby implementacje metod reakcji na interakcje
z otoczeniem zarówno przy chwytaniu obiektów, jak i przy ustawianiu w pozycji montażowej.

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.

Sprawdzeniu powtarzalności podlega jedynie algorytm dopasowujący modele do chmury


punktów. Wyniki są niezależne od dokładności urządzenia pomiarowego. W tym celu 100 krotnie
wirtualnie przesuwano i obracano każdą uzyskaną chmurę punktów. Transformacja była
generowana losowo. Następnie algorytm dopasowywał modele z zapisanej kolekcji i porównywał
z prawdziwą transformacją. Tabela 5.1 przedstawia w jakiej części przypadków udało się wykryć
prawidłowo element, oraz jakie było odchylenie standardowe pozycji modelu i jego orientacji
względem wygenerowanej przez skaner chmury punktów.

Tabela 5.1. Wyniki wykrywania modelu w cząstkowych pomiarach skanerem laserowym

Prawdopodobieństwo 81% 62% 40% 71% 77%


wykrycia
spoz [mm] 0,29 0,43 0,25 0,15 0,39
skąt [rad] 0,0017 0,0032 0,0016 0,0009 0,0019
czas [s] 2,9 1,9 2,6 3,6 3,6

Średnie odchylenia standardowe spoz i skąt pochodzą z porównywania wyliczonej transformacji


z wygenerowaną wcześniej transformacją prawdziwą i dotyczą odpowiednio przesunięcia i obrotu.
Podany czas, to średnia z czasu detekcji modelu w 100 chmurach punktów przy użyciu 8 wątków
procesora Intel i7 4702MQ.

Prawdopodobieństwo wykrycia obiektu określone zostało jako procentowy udział prawidłowo


dopasowanych punktów do sceny. Zależy ono od wielu parametrów stosowanych algorytmów. Dla

82
lepszego przedstawienia przydatności metody i jej uniwersalności wszystkie testy przeprowadzane
były przy stałych parametrach podanych w tabeli 5.2.

Tabela 5.2. Parametry algorytmów dobrane do walidacji systemu

Parametr Wartość Komentarz


Grupowania
tolerancja Promień sfery wokół punktu, w której szuka się kolejnych punktów
25 mm
grupy należących do obiektu
Próbkowanie w dół drzewem ósemkowym
r = 0,01 ·
wielkość maksymalny wymiar woksela, którego środek jest punktem nowej bardziej rzadkiej,
woksela wymiar chmury punktów
chmury
Szacowanie normalnych
promień promień sfery, w której szuka się sąsiadów punktu w celu zdefiniowania
2r
poszukiwania lokalnej płaszczyzny
Określanie deskryptorów FPFH
promień sfery wokół punktu, w której szuka się sąsiadów w celu
promień
3r zdefiniowania lokalnych cech powierzchni ( musi być większy o promienia
poszukiwania
przy generowaniu normalnych)
Dopasowywanie zgrubne - RANSAC
próg
odrzucania graniczna odległość punktu chmury kwalifikująca jako punkt odstający od
10 mm
punktów modelu
odstających to
liczba iteracji 16 000 liczba cykli generowania hipotezy i jej weryfikacji
liczba próbek,
3 liczba punktów, które są podstawą do wygenerowania hipotezy
ns
przetwarzane liczba najbardziej podobnych deskryptorów, z których losuje się hipotezę
5
deskryptory, nd dopasowania
próg
wskaźnik wczesnego odrzucania hipotez na podstawie odległości między
podobieństwa 0,8
odpowiadającymi sobie punktami w hipotezie
ts
udział
punktów wymagany do akceptacji hipotezy udział punktów modelu znajdujących się
0,5
przystających, bliżej chmury niż parametr próg odrzucania punktów odstających
fi
Dopasowywanie dokładne - ICP
krok minimalna zmiana w macierzy transformacji w celu poprawy dopasowania
0,0001
transformacji (warunek zatrzymania obliczeń)
liczba iteracji 1000000 maksymalna liczba iteracji (warunek zatrzymania obliczeń)

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.

Pozyskanie wielu chmur punktów o zadanym współczynniku zasłonięcia jest niemożliwe.


W celu bardziej miarodajnego określenia odporności algorytmu generowano ubytki powierzchni
w sposób sztuczny. Opracowano algorytm, który generuje braki w powierzchni obiektu możliwie
podobne do widocznych w prawdziwych pomiarach optycznym skanerem. Ewentualne różnice
w rozłożeniu ubytków są niwelowane przez liczbę możliwych do wygenerowania syntetycznych
chmur punktów. Średni stopień rozpoznawania chmur syntetycznych, dla różnych realizacji
losowego algorytmu jest bardzo zbliżony do stopnia prawidłowego dopasowywania modeli do
autentycznych chmur punktów.

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.

wejście: model obiektu M; M = {u0, u1,..., uq}


poziom zasłonięcia ro; współczynnik kształtu kS;
wyjście: model ze sztucznymi brakami Mo;

liczba punktów do usunięcia nrem = q · ro;


liczba iteracji N = nrem / ks;
wygeneruj zmienną losową x: x ∈[0,q-1];
punkt początkowy Pinit = Px;
powtórz N razy:
znajdź ks najbliższych sąsiadów Pint NN = {Pnn0, Pnn1, …, Pnnk};
dla każdego piNN w NN
jeżeli i < ks usuń PiNN z M;
inaczej Pinit = PiNN;
Mo = M;
Algorytm 5.3. Usuwanie części obiektów w celu symulowania zasłonięcia

Algorytm przetestowano na chmurach powstałych w wyniku próbkowania modeli CAD blade ze


zbioru Georgia Tech i własnym modelu CAD housing oraz zeskanowanych przy pomocy własnego
skanera laserowego modelu holder. Tabela 5.3 przedstawia prawdopodobieństwo wykrycia

84
poszczególnych modeli przy zadanym udziale powierzchni usuniętej przez algorytm symulujący
zasłonięcie.

Tabela 5.3. Prawdopodobieństwo rozpoznania obiektu w zależności od udziału powierzchni


zasłoniętej

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.

5.3.3 Badanie odporności na punkty odstające


Inną przyczyną występowania trudności wykrywania obiektów w szybkich skanach bez
wzajemnego przemieszczania sensora i obiektu są punkty odbiegające od pozostałych. Powstają one
najczęściej w wyniku błędnej interpretacji refleksów świetlnych na obrazie. Uniknąć wystąpienia
takich błędów można przez zastosowanie:

• pokrycia obiektów matową powłoką, np. proszkiem tlenku tytanu,

• układu wykrywającego nadmierne odbicie światła od obiektu i dostosowanie mocy


projektora opartego o laser lub LED,

• przetwarzanie chmury punktów po pomiarze, polegające na usuwaniu punktów, których


odległość od najbliższych sąsiadów odbiega od średniej.

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.

Tabela 5.4. Odporność metody na punkty odstające

liczba punktów odstających


k= 0 1 2 3 4 5 6 7
liczba punktów modelu

100% 87% 75% 74% 44% 43% 26% 14%

blade

98% 80% 73% 51% 59% 59% 55% 44%

housing

96% 95% 90% 78% 72% 64% 57% 53%

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.

5.3.4 Eksperymentalne badanie powtarzalności chwytu


Aby przetestować możliwość wykorzystania przedstawionego zestawu metod w zadaniach
montażowych, zweryfikowano powtarzalność chwytania obiektów umieszczonych w dowolny
sposób na palecie. Dla porównania zastosowano tę samą technikę pomiaru powtarzalności, aby

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.

Rys. 5.4. Pomiar powtarzalności chwytu obiektów rozpoznanych przez skaner

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

sα [°] 0,55 1,42

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.

Na podstawie analizy literatury wytypowano architekturę PointNet++ [78] na potencjalnie


użyteczną w generowaniu lokalnych deskryptorów chmur punktów. Według zapewnień zawartych
w publikacjach, spełnia ona wszystkie stawiane wymagania, jest odporna na zmianę kolejności
punktów, analizuje otoczenie w kilku skalach, jest odporna na sztywne transformacje danych.
Zastanawiający jest więc brak publikacji opisujących użycie tej lub podobnych architektur
w zadaniu generowania deskryptorów i wyznaczaniu pozycji obiektów w chmurach punktów.

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.

Rys. 6.1. Wymiary danych przy przetwarzaniu przez wypracowaną sieć

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.

6.2.1 Sieci syjamskie


Uczenie deskryptorów punktów realizowane jest przy pomocy dwóch bliźniaczych sieci, które
przetwarzają dwie reprezentację jednej sceny. Technikę tę stosuje się zarówno w obrazach płaskich
[127], jak i w chmurach punktów [86]. Istotą metody sieci syjamskich jest założenie, że deskryptory
w odpowiadających sobie punktach powinny być identyczne, a odległość pomiędzy parami
deskryptorów punktów określonymi jako odmienne, powinna być większa od założonego progu d.
Odległości pomiędzy deskryptorami są mierzone jako odległość w metryce euklidesowej. Na etapie
uczenia trzeba dostarczyć do algorytmu dwie chmury punktów oraz zależności pomiędzy nimi, to
jest wskazanie, które pary punktów w obu chmurach odpowiadają sobie, a które pary nie wskazują
na jeden punkt w reprezentacji. Schematycznie przedstawiono to na rys. 6.2.

Rys. 6.2. Uczenie podobieństwa przy użyciu układu sieci syjamskich

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.

6.2.2 Przygotowanie danych uczących


Ze względu na ogrom pracy niezbędny do przygotowania zbioru danych zawierającego modele
obiektów, ich rzeczywiste reprezentacje w różnorodnych scenach i informacje o ich położeniu
w przestrzeni względem sensora, trudno jest znaleźć publiczne dane tego typu. Istniejące zbiory jak
LINEMOD [31] lub T-LESS [34] są stosunkowo niewielkie. Liczby obiektów i scen nie są
wystarczające do nauczenia złożonej architektury, którą zaprojektowano. Z tych powodów
zrezygnowano z uczenia sieci pod nadzorem, to jest z utworzonymi przez człowieka etykietami
definiującymi zależności pomiędzy punktami w chmurach punktów, a zdecydowano się generować
etykiety w sposób automatyczny, co w literaturze znane jest jako uczenie słabo nadzorowane
(ang. weakly supervised).

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

Przetestowano kilka sposobów generowania danych uczących. Jednym ze sposobów było


wycinanie fragmentów chmur punktów z dwóch różnych reprezentacji i nakładanie ich na siebie na
podstawie mnożenia transformacji. Punkty znajdujące się blisko siebie stanowiły przykłady
pozytywne dla sieci, a punkty, które nie posiadały bliskich sąsiadów w drugiej chmurze punktów
łączono losowo i stanowiły przykłady negatywne. Innym pomysłem było losowe wybieranie
punktów na finalnej rekonstrukcji i sprawdzanie, czy rzuty tego punktu są spójne z chmurami
wygenerowanymi z pojedynczych reprezentacji RGB-D. Jeżeli wybrany punkt po rzutowaniu leżał
blisko zarówno jednej jak i drugiej chmury punktów, to był wybierany jako przykład pozytywny.
Brak zgodności występował zwykle na powierzchniach częściowo zasłoniętych, półprzezroczystych
lub na krawędziach gdzie występował nagły przeskok głębi. Punkty te łączono losowo i stanowiły
przykłady negatywne.

Przetestowano też metodę czerpiącą korzyści ze wskazania na reprezentacjach punktów


charakterystycznych. Na etapie przygotowania danych uczących ładowana jest finalna reprezentacja
wygenerowana na podstawie sekwencji obrazów i map głębi, sama sekwencja oraz graf zawierający
znane transformacje geometryczne pomiędzy położeniami kamery w trakcie pobierania
poszczególnych klatek w sekwencji. Dla każdej sekwencji wybierane jest losowo 100 par klatek,
pomiędzy którymi znana jest transformacja geometryczna. Dla każdej z dwóch reprezentacji RGB-
D w parze generuje się chmurę punktów, ogranicza się jej wymiar zachowując jedynie losowych
4096 punktów i sprowadza do wspólnego układu współrzędnych. Obliczana jest rozdzielczość

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.

Rys. 6.4. Rzutowanie punktów kluczowych na chmury punktów

Procedura ta polega na rzutowaniu wybranych punktów na pełną rekonstrukcję sceny przy


użyciu algorytmów śledzenia promieni [131]. Następnie sprawdza się, czy w danym punkcie
przestrzeni, znajdują się także punkty obu częściowych reprezentacji wygenerowanych na
podstawie wybranych klatek. Ten etap polega na przekształceniu każdej reprezentacji częściowej do
drzewa k-wymiarowego i poszukiwaniu najbliższego sąsiada dla współrzędnych punktu
kluczowego. Jeżeli taki punkt znajduje się w promieniu mniejszym niż 3 rozdzielczości chmury,
dany punkt stawał się przykładem pozytywnej zależności. Zbiór zależności negatywnych
generowano losowo, wybierano parę punktów na dwóch częściowych rekonstrukcjach
i sprawdzano, czy odległość jest kilkukrotnie większa od rozdzielczości chmury. Liczba
przykładów negatywnych jest równa liczbie przykładów pozytywnych i zmienia się w zależności od
liczby znalezionych i zweryfikowanych punktów kluczowych. Dla pozostałych punktów zależność
nie jest określona i nie są używane w trakcie uczenia sieci neuronowej. Wszystkie obliczenia są
stosunkowo czasochłonne, dlatego wykonuje się je przed rozpoczęciem procesu uczenia. Na etapie
uczenia, odpowiednie dane, zawierające parę chmur punktów z częściowych reprezentacji oraz

94
zależności pomiędzy nimi, są ładowane z plików i mogą być wprost przekazywane do
przetwarzania przez algorytm uczenia maszynowego.

6.2.3 Uczenie sieci


Sieć neuronowa generuje deskryptory dla obu chmur, realizując funkcję f przekształcającą zbiór
punktów X = {P1, P2,…,Pn}, P∈ℝ 3 na zbiór deskryptorów Y = {y1, y2,…,yn}, y ∈ℝ 16 . Na etapie
uczenia przetwarzane są jednocześnie dwie chmury XI i XII. Każdemu punktowi pierwszej chmury
przypisana jest zależność mająca postać pary {ki, idi}, gdzie k ∈{−1,0, 1} , 1 – relacja pozytywna,
-1 – relacja negatywna, a 0 oznacza brak określonej relacji. Identyfikator id∈{0, 1, ..., n} to pozycja
punktu w drugiej chmurze, którego dotyczy zależność. Odległość pomiędzy deskryptorami jest
obliczana według metryki Manhattan (metryka poziomu 1). Funkcja kary stanowiąca podstawę wag
sieci składa się z dwóch składników. Dla pozytywnych relacji:

L1=∀ (i , k i=1) ∑‖f ( X I )i−f (X II )ID ‖1


i
(6.1)

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.

L2=∀ (i ,k i=−1) ∑ max (m−‖f ( X I )i−f ( X II )ID ‖1 ,0)


i
(6.2)
L=L1 + L2 (6.3)

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

FPFH sieć RANSAC FPFH sieć


RANSAC FGR FGR

Dopasowanie F 0,840 0,994 0,726 0,864

Czas na scenę 4,00 s 3,45 s 0,077 s 0,123 s

Wytrenowane deskryptory wyraźnie lepiej radzą sobie z dopasowywaniem niekompletnej


chmury punktów powstałej na podstawie jednego obrazu i mapy głębi. Różnice w czasie
przetwarzania wynikają z jednej strony z dłuższego przetwarzania przez sieć przy generowaniu
deskryptorów, ale krótszego czasu dopasowywania. Deskryptor generowany przez sieć ma długość
jedynie 16 elementów, podczas gdy klasyczny FPFH składa się z 33 elementów na punkt. Zaletą
opracowanego rozwiązania jest możliwość stosowania tych samych algorytmów do wstępnego
przetwarzania i dopasowywania chmur punktów. Jedyną różnicą jest podmiana funkcji generującej
deskryptory.

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.

Tabela 6.2. Modele zbioru UWA [32]


chef T-Rex parasaurolophus chicken

Wysoka jakość przy zachowaniu charakterystyki danych trójwymiarowych, polegającej na


obecności zasłonięć obiektów i niepełności analizowanych powierzchni, sprawiają, że zbiór dobrze
nadaje się do weryfikacji systemu wyznaczania położenia obiektów w przestrzeni pracy robota
przemysłowego. Przeprowadzono na tym zbiorze testy pozwalające wyznaczyć skuteczność
poszczególnych deskryptorów, generowanych przez zdefiniowany przez człowieka algorytm FPFH
i sieć neuronową uczącą się na zbiorze danych. Zbiór ten posłużył do wyboru optymalnego modelu
i techniki uczenia sieci neuronowej.

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.

Porównanie wyników deskryptorów klasycznych i kilku wersji sieci neuronowych


przedstawiono w tabeli 6.3.

Tabela 6.3. Porównanie skuteczności deskryptorów


współczynnik sukcesu [%]
Liczba parasaur czas przetwarzania
chef T-rex chicken średnio
Tryb uczenia cech olophus [s/model]
Brak – deskryptor
33 0,92 0,89 0,91 0,81 0,88 3,00
FPFH
Fragmenty chmur,
16 0,46 0,18 0,42 0,31 0,34 3,10
gęste zależności
Fragmenty chmur,
32 0,52 0,20 0,49 0,40 0,40 3,21
gęste zależności
Fragmenty chmur,
128 0,46 0,20 0,49 0,27 0,35 3,51
gęste zależności
Pełne chmury,
kluczowe 16 0,18 0,04 0,09 0,06 0,09 3,08
zależności

Testy wykazały, że w tym zadaniu wyznaczania położenia modeli w chmurach punktów,


klasyczne deskryptory FPFH sprawdzały się lepiej, od tych wygenerowanych przez nauczoną sieć.
Można również zauważyć, że wielkość deskryptora, to jest liczba elementów wektorów opisujących
każdy punkt w chmurze nie wpływa znacząco na skuteczność rozwiązania. Do dalszych testów
wybrana została sieć generująca 32-elementowe deskryptory. Duże znaczenie ma natomiast sposób
uczenia sieci neuronowej. Test wykazał, że najlepszą skuteczność uzyskano dla uczenia na
mniejszych fragmentach chmur punktów, przy definiowaniu zależności dla wszystkich punktów.
Uczenie na pełnych chmurach o większej liczbie punktów, ale dla mniejszej liczbie zdefiniowanych
zależności, jedynie w punktach charakterystycznych, przyniosło zdecydowanie gorsze rezultaty.
Czas przetwarzania wynika przede wszystkim z czasu dopasowywania i jest zbliżony dla
wszystkich metod. Można zauważyć korelację pomiędzy liczbą cech deskryptora, a czasem
przetwarzania, jednak znaczenie jej nie jest bardzo istotne. Do dalszych testów wybrano sieć

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.

Rys. 6.6. Rozkłady błędów przesunięcia i obrotu

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.

Tabela 6.4. Modele w zbiorze LINEMOD [31]


Ape Bench Bowl Cam Can Cat Cup Drill Duck Box Glue Hole Iron Lamp Phone
Vise Punch

W celu poprawy możliwości określania pozycji niewielkich obiektów na podstawie


reprezentacji o ograniczonej liczbie punktów, opracowano nową metodę, inspirowaną [72], ale
dostosowaną do scenariusza w którym konieczne jest dopasowywanie zadanych modeli

99
trójwymiarowych na podstawie deskryptorów w celu uzyskania pełnej macierzy transformacji
pomiędzy modelem, a sceną.

Metoda polega na opracowaniu dodatkowej sieci neuronowej pełniącej rolę detektora


operującego na obrazach płaskich, a następnie wycinaniu zlokalizowanych na obrazie fragmentów
i dopasowywania chmury punktów na podstawie deskryptorów. Pierwszy etap pozwala na szybką
lokalizację obiektu, ale na podstawie obrazu płaskiego nie jest możliwe precyzyjne określenie
położenia obiektów w przestrzeni. Detekcja na obrazie zawęża pole poszukiwania modelu, pozwala
skrócić czas obliczeń i zwiększyć dokładność poprzez ograniczenie liczby wyników fałszywie
dodatnich w trakcie przetwarzania trójwymiarowej chmury punktów. Jednocześnie trzeba pamiętać,
że detektor nie jest idealny i wielu przypadkach sam może dawać wyniki fałszywie dodatnie lub
pomijać obiekty. Mimo to, finalnie połączenie dwóch algorytmów okazuje się być skuteczniejsze od
przetwarzania jedynie chmur punktów. Metodę hybrydową, przetwarzającą jednocześnie
reprezentację płaską i trójwymiarową przedstawiono na rys. 6.7.

Rys. 6.7. Hybrydowe wyznaczanie położenia obiektów w reprezentacjach RGB-D

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

Tabela 6.6. Wyniki systemu dopasowującego na podstawie deskryptora wygenerowanego przez


własną sieć neuronową na zbiorze LINEMOD
Model PP FP FN Precyzja Uzysk Miara F1
Ape 13 41 111 0,24 0,10 0,15
Bench Vise 63 43 59 0,59 0,52 0,55
Bowl 4 118 120 0,03 0,03 0,03
Cam 26 64 95 0,29 0,21 0,25
Can 37 69 83 0,35 0,31 0,33
Cat 5 5 113 0,50 0,04 0,08
Cup 3 44 121 0,06 0,02 0,04
Drill 42 37 77 0,53 0,35 0,42
Duck 10 78 116 0,11 0,08 0,09
Box 3 66 123 0,04 0,02 0,03
Glue 2 29 120 0,06 0,02 0,03
Hole Punch 44 63 80 0,41 0,35 0,38
Iron 51 63 65 0,45 0,44 0,44
Lamp 57 58 66 0,50 0,46 0,48
Phone 48 29 77 0,62 0,38 0,48
Średnio 0,32 0,22 0,25

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.

Tabela 6.7. Wyniki detektora obiektów na obrazach ze zbioru LINEMOD


Model PP FP FN Precyzja Uzysk Miara F1
Ape 46 11 81 0,81 0,36 0,50
Bench Vise 77 30 46 0,72 0,63 0,67
Bowl 121 44 46 0,73 0,72 0,73
Cam 43 78 109 0,36 0,28 0,32
Can 73 33 47 0,69 0,61 0,65
Cat 2 8 116 0,20 0,02 0,03
Cup 36 16 93 0,69 0,28 0,40
Drill 49 34 74 0,59 0,40 0,48
Duck 55 63 101 0,47 0,35 0,40
Box 39 30 87 0,57 0,31 0,40
Glue 23 8 99 0,74 0,19 0,30
Hole Punch 84 37 54 0,69 0,61 0,65
Iron 110 7 9 0,94 0,92 0,93
Lamp 79 51 59 0,61 0,57 0,59
Phone 60 21 69 0,74 0,47 0,57
Średnio 0,64 0,45 0,51

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.

Rys. 6.8. Przykład adaptacji algorytmu do zbioru testowego

6.3.2 Testy opracowanej sieci neuronowej na stanowisku zrobotyzowanym


Opracowany model sieci neuronowej został sprawdzony na testowym stanowisku
zrobotyzowanym. Realizuje się podobny scenariusz, jak ten w rozdziale 5, polegający na
dostosowaniu programu robota przemysłowego do aktualnej pozycji przedmiotu. W celu
ograniczenia ryzyka uszkodzenia robota wybrano piankowy obiekt. W tym eksperymencie
posłużono się kamerą 3D Intel Realsense d435i, ze względu na krótszy czas przechwytywania
reprezentacji 3D i akceptowalną dokładność. Model wirtualny obiektu został wykonany wcześniej
przy użyciu tej samej kamery 3D przez rekonstrukcję sekwencji RGB-D przedstawiającej obiekt
z wielu kierunków. Stanowisko przedstawiono na rys. 6.9.

104
Rys. 6.9. Testy metody opartej na lokalizacji obiektów przez sieć neuronową

Podstawowym problemem w zadaniu dopasowywania modeli, jak i w wielu innych


zagadnieniach uczenia maszynowego jest kwestia adaptacji domenowej. Model sieci neuronowej
jest uczony na pewnym zbiorze danych, a testowany i eksploatowany na danych pozyskanych
w innym otoczeniu i przy pomocy innych czujników, w innej domenie. Celem jest takie
przygotowanie algorytmu lub metod wstępnego przetwarzania danych, aby system był w stanie
sprawnie adaptować się do danych zebranych w zmienionych warunkach. Problem ten jest
szczególnie istotny w przypadku przetwarzania danych trójwymiarowych, gdzie niedoskonałość
czujników może w znaczący sposób wpływać na reprezentację trójwymiarowych obiektów.
Prezentowany w niniejszej rozprawie system został uczony na dużym i zróżnicowanym zbiorze
danych przestrzennych 3dscan z zamysłem działania uniwersalnego, bez wskazania konkretnych
kształtów i geometrii, na które miałby być wrażliwy. Obiekty znajdujące się w zbiorze trenującym
różnią się zarówno kształtem, jak i wymiarami od obiektów testowych. Okazuje się, że model
z powodzeniem przetwarza zarówno chmury punktów wygenerowane przez skanery laserowe
(zbiór UWA i chmury wygenerowane przez zrobotyzowany skaner opisany w rozdziale 3) jak i dane
wygenerowane kamerę 3D Intel Realsense D435i, czyli inną niż ta, która służyła do generowania
danych trenujących. Różnice w rozkładzie błędów i zmienna gęstość punktów wydają się nie
wpływać negatywnie na skuteczność deskryptorów. Jedyną kwestią, która wymaga ingerencji na
etapie wstępnego przetwarzania danych jest skala. W zbiorze trenującym dominują duże obiekty,
jak meble, samochody, podczas gdy docelowo system ma lokalizować obiekty w otoczeniu robota

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.

Dostosowanie algorytmu dopasowywania do specyfiki sieci neuronowej


Słabą stroną deskryptorów generowanych przez opracowaną sieć neuronową jest wrażliwość na
obroty wejściowej chmury punktów. Sieć po przetworzeniu dwóch chmur punktów
reprezentujących ten sam obiekt, ale po obrocie, wygeneruje nieco inne deskryptory. Podczas
testów na stanowisku zrobotyzowanym rozwiązano ten problem, poprzez dopasowywanie nie
jednego modelu, a kilku jego obróconych wersji. Jako finalny wynik wybierane jest najlepsze
dopasowanie do reprezentacji sceny. Wbrew pozorom, rozwiązanie to nie zwiększa znacząco czasu
obliczeń. Konieczność analizowania kilku modeli jest kompensowana przez możliwość stosowania
mniejszej liczby iteracji algorytmu dopasowywania RANSAC. Zabieg ten pozwolił uzyskać
wysoką skuteczność rozpoznawania obiektów w rozsądnym czasie. Dla testowego obiektu
dopasowywano 8 obróconych wersji. Dodatkowo zauważono, że lepsze wyniki dopasowywania
uzyskuje się, przy mniej rygorystycznych wartościach progów wczesnego odrzucania na podstawie
długości boków wielokątów i zgodności kierunków normalnych niż dla klasycznego deskryptora
FPFH. Jest to zgodne z intuicją i zasadą działania sieci neuronowej, która uwzględnia znacznie
szerszy kontekst niż typowe deskryptory lokalne. Istotę podejścia polegającego na obliczeniu cech
modelu przy kilku różnych jego pozycjach przedstawiono na rys. 6.10.
i dopasowanie
transformacja
deskryptory

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

Zgodnie z przewidywaniami, deskryptor generowany przez sieć neuronową charakteryzował się


mniejszą zdolnością do odzwierciedlania lokalnych cech obiektu i wymagał zdecydowanie większej
liczby iteracji algorytmu RANSAC, co przełożyło się na dłuższe czasy przetwarzania. Praktyczne
zastosowania sieci neuronowej do generowania lokalnych deskryptorów służących do wyznaczania
pozycji modeli w chmurach punktów jest możliwe, ale niezalecane.

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.

W ramach niniejszej pracy zrealizowano cele określone na podstawie analizy literatury


w rozdziale 2.6 (str. 46).

Cel I, opracowanie urządzenia do gromadzenia danych trójwymiarowych, zrealizowano poprzez


implementację nowego układu, w którym robot przenosi rzutnik linii laserowej, a dane gromadzone
są przez umieszczoną nad stanowiskiem kamerę. Układ charakteryzuje się cechami korzystnymi dla
zadań opisywanych w niniejszej pracy, co opisano w rozdziale 3. i w [94]. Zrobotyzowany skaner
o tej konstrukcji jest obecnie używany przez studentów kierunku Inżynieria Biomedyczna w ramach
laboratorium Roboty Medyczne i Rehabilitacyjne do weryfikacji efektów symulowanych
zrobotyzowanych operacji chirurgicznych.

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].

Cel III, zwiększenie niezawodności i szybkości działania metod wyznaczania położenia


obiektów w chmurach punktów, został zrealizowany poprzez dogłębną analizę dostępnych
klasycznych algorytmów i testy nad ich skutecznością zależną od doboru parametrów, co opisano
w rozdziale 5. Efektem jest wybór optymalnej kombinacji algorytmów przetwarzania wstępnego,
generowania deskryptorów, ich dopasowywania oraz wielu parametrów wpływających na
skuteczność systemu. Potwierdzeniem wniosków niech będzie użycie niemal identycznej
kombinacji, jako podstawowego rozwiązania przy dopasowywaniu chmur punktów, przez
opublikowaną później przez Intel Labs bibliotekę [129]. Wprowadzono również nową technikę,
wstępnego grupowania, czyli podziału reprezentacji sceny na bloki, niezależnie dopasowywane do
bazy danych modeli, co opisano w [112]. Skuteczność tego podejścia została potwierdzona przez
opublikowany rok później artykuł [134], gdzie zostało opisane bardzo podobne podejście.

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.

Ze względu na brak publikacji opisujących możliwość wyznaczania położenia obiektów


w chmurach punktów przy użyciu sieci neuronowych przetwarzających surowe dane, mimo dużego
zainteresowania naukowców i firm podobnymi problemami, uznaje się to za najważniejsze
osiągnięcie zrealizowane w ramach niniejszej pracy. Uzyskana metoda jest funkcjonalna, lecz wciąż
wymaga dopracowania. Jej skuteczność jest niższa niż obecnie stosowanych metod. Ze względu na
nowość i duże możliwości ulepszenia rozwiązania planuje się prowadzenie dalszych prac
obejmujących, modyfikacje architektury sieci neuronowej do generowania deskryptorów,
zwiększenie liczby przykładów trenujących i poszerzenie zbiorów danych oraz testowanie innych
technik uczenia.

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

You might also like