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

Wydział Mechaniczny

Politechniki Białostockiej
Katedra Robotyki i Mechatroniki

Instrukcja do zajęć laboratoryjnych z przedmiotu:


SYSTEMY WIZYJNE

Ćwiczenie nr: 1

Kalibracja kamery

Kod przedmiotu: MK2S22005

Instrukcję opracował: dr inż. Jakub Augustyniak

Białystok 2022
Cel ćwiczenia

Celem ćwiczenia jest przeprowadzenie pełnego procesu kalibracji kamery jaką jest Kinect v1
oraz Kinect v2.

1. Wprowadzenie

Systemy wizyjne w połączeniu z analizą obrazów są podzbiorem informatyki, który


w uproszczeniu pozwala komputerom widzieć, rozumieć i analizować dane zawarte
w obrazach. Dzięki wizji komputerowej maszyna może wykonywać takie zadania, jak
klasyfikacja obrazów, rozpoznawanie twarzy, wykrywanie obiektów i oczywiście śledzenie
obiektów.
Kalibracja kamery to proces wyznaczania jej parametrów w celu wykonania operacji
z określonymi pomiarami wydajności. Procedurę kalibracji kamery można zdefiniować jako
technikę szacowania charakterystyki kamery. Oznacza to, że znane są wszystkie informacje
o kamerze, takie jak parametry lub współczynniki, które są potrzebne do określenia dokładnej
relacji między punktem 3D w świecie rzeczywistym a odpowiadającą mu projekcją 2D na
obrazie uzyskanym przez skalibrowaną kamerę.

W większości przypadków oznacza to uzyskanie dwóch rodzajów parametrów [1]:

• Parametry wewnętrzne

Umożliwiają mapowanie między współrzędnymi pikseli i współrzędnymi kamery w ramce


obrazu, np. centrum optyczne, ogniskowa i współczynniki dystorsji promieniowej obiektywu.
Parametry wewnętrzne określają zniekształcenia geometryczne wprowadzane przez układ
optyczny kamery. Część parametrów wewnętrznych zgrupowana jest w tzw. macierzy kamery:

 fx  x0 
A =  0 fy y0  , (1)
 0 0 1 

gdzie: fx, fy - ogniskowa kamery wyrażona w liczbie pikseli (dla osi x i y), x0, y0 - współrzędne
punktu głównego (punkt przecięcia osi kamery z płaszczyzną obrazu), γ - współczynnik
określający kąt między osiami x i y czujnika kamery (dla prostopadłych = 0).

Macierz ta, określa związek pomiędzy tzw. znormalizowanymi współrzędnymi punktu


w przestrzeni, danych wzorami: xn = X/Z i yn = Y/Z a odpowiadającymi im współrzędnymi
punktów rejestrowanego obrazu: xp, yp (rysunek 1):

 xp   xn 
y  = A  y  . (2)
 p  n
 1   1 
Rys. 1 Podstawowe parametry kamery

Pozostałe parametry wewnętrzne określają zniekształcenia radialne i tangencjalne


wprowadzane przez niedoskonałości układu optycznego kamery. Po ich uwzględnieniu,
współrzędne znormalizowane możemy wyznaczyć ze wzorów [2]:

 xd  4  n
x
 y  = (1 + k1r + k2r )  y  +  ,
2
(3)
 d  n
gdzie:
r 2 = xn2 + y n2 , (4)

2p1 xn yn + p2 ( r 2 + 2 xn2 ) 
= , (5)
2p2 xn yn + p1 ( r 2 + 2yn2 ) 
 

k1, k2 - współczynniki zniekształceń radialnych; p1, p2 - współczynniki zniekształceń


tangencjalnych; Δ - wektor zniekształceń tangencjalnych.

• Parametry zewnętrzne

Parametry zewnętrzne kamery określają pozycję i orientację kamery względem zewnętrznego


układu współrzędnych. Przejścia z jednego układu współrzędnych do drugiego można
dokonać poprzez złożenie translacji T oraz rotacji R. Wektor translacji T określa wzajemne
przesuniecie środków układów współrzędnych, z kolei rotacja R dokonuje przekształcenia
odpowiadających sobie osi [3]. Zależność między współrzędnymi punktu P w układzie
współrzędnych kamery, a jego współrzędnymi w układzie zewnętrznym Pz, wyraża się
następująco:
PZ = R  P + T . (6)

W układzie dwóch kamer można wyznaczyć ich wzajemne położenie, znając zewnętrzne
parametry obu kamer względem tego samego układu odniesienia.

R12 = R1R2T , (7)

T12 = T2 − R12TT1 , (8)

gdzie: R1, R2, T1, T2 - macierze rotacji oraz wektory translacji odpowiednio dla obu kamer; R12,
T12 - macierz rotacji i wektor translacji pierwszej kamery względem drugiej.
Przeliczanie współrzędnych z układu jednej kamery do drugiej odbywa się wtedy według
zależności:

P1 = R12 (P2 − T12 ) , (9)

gdzie: P1, P2 - współrzędne punktu P w układzie współrzędnych kamery pierwszej i drugiej.

2. Opis stanowiska pomiarowego

Kinect (Rys. 2) to seria urządzeń wejściowych wyprodukowanych przez firmę Microsoft i


wydanych po raz pierwszy w 2010 roku. Urządzenia te zawierają kamery RGB oraz projektory
i detektory podczerwieni, które mapują głębię obrazu za pomocą obliczeń światła
strukturalnego lub czasu lotu. Zebrane dzięki nim informacje mogą być wykorzystywane np.
do np. rozpoznawania gestów i wykrywania szkieletu ciała w czasie rzeczywistym. Kinect
zawiera również mikrofony, których można używać do rozpoznawania mowy i sterowania
głosowego.

Rys. 2 Wygląd kamery Kinect: a) Kinect v1; b) Kinect v2

Technologia wykrywania głębi i ruchu stanowiąca podstawę sensora Kinect jest dostępna
dzięki czujnikowi głębi. Oryginalny sensor Kinect v1 (Rys. 3) wykorzystuje w tym celu światło
strukturalne: urządzenie używa wzoru w bliskiej podczerwieni wyświetlanego w przestrzeni
przed sensorem Kinect, podczas gdy czujnik podczerwieni wychwytuje wzór odbitego światła.
Wzór światła jest zniekształcony przez względną głębokość obiektów znajdujących się przed
nim, a do oszacowania tej głębokości można użyć zależności matematycznych związanych
z układem sprzętowym sensora Kinect. Kinect v2 (Rys. 4) używa pomiarów czasu lotu.
Projektor podczerwieni w sensorze Kinect wysyła modulowane światło podczerwone, które
jest następnie przechwytywane przez czujnik. Światło podczerwone odbijające się od bliższych
obiektów będzie miało krótszy czas lotu niż to odbite od elementów bardziej odległych. Czujnik
podczerwieni rejestruje, jak bardzo wzór modulacji został zdeformowany
w zależności od czasu lotu, piksel po pikselu. Pomiary głębokości w czasie lotu mogą być
dokładniejsze i obliczone w krótszym czasie, co pozwala na wykrycie większej liczby klatek na
sekundę [3].

Rys. 3 Budowa kamery Kinect v1

Rys. 4 Budowa kamery Kinect v2

3. Przebieg ćwiczenia
Ćwiczenie należy rozpocząć od uruchomienia programu Matlab i narzędzia Camera Calibrator
w zakładce APPS (rys. 5).

Rys. 5 Widok interfejsu programu Matlab w zakładce APPS

UWAGA. Jeśli w zakładce APPS nie ma narzędzia Camera Calibrator należy doinstalować
brakując dodatki jak: Computer Vision Toolbox oraz Webcam Toolbox.

Kolejne etapy:

1) Po uruchomieniu narzędzia Camera Calibrator załadować co najmniej 10 różnych ujęć


wzorca kalibracyjnego w różnych pozycjach oraz orientacjach poprzez naciśnięcie
ikony ADD IMAGES i wyborze FROM CAMERA.
2) Określić lokalizację zapisu uchwyconych zdjęć, interwał z jakim będą wykonywane
zdjęcia wzorca kalibracyjnego oraz ilość wykonanych ujęć po czym uruchomić zapis
naciskając ikonę CAPTURE.
3) Określić wielkości elementu na wzorcu kalibracyjnym oraz ustalić, czy obraz był
zniekształcony (przy obiektywach typu rybie oko).
4) Oszacować liczbę ujęć, które nie zostały prawidłowo odwzorowane. Dla prawidłowo
rozpoznanych zamknąć proces wyboru ujęć i uruchomić opcję Calibrate.
5) Eksportować do przestrzeni Matlab ustawienia parametrów uzyskanych z kalibracji.
6) Wyznaczyć: parametry kamery (długość ogniskowej, główny punkt, zniekształcenie
promieniowe, wektor obrotu, wektor translacji), błąd estymatora parametrów.
4. Opracować wyniki

Na podstawie przeprowadzonej kalibracji kamery Kinect przedstawić graficznie błąd


reprojekcji (różnica między punktami wykrytymi na obrazie i punktami po korekcie
parametrami z kalibracji) z określeniem obrazu z najgorszą wartością błędu reprojekcji. Należy
również przedstawić i opisać zewnętrzne parametry kamery (Extrinsic Parameter) w celu
ustalenia położenia oraz kątów w jakich kalibracja poradziła sobie najlepiej.

Sprawozdanie powinno zawierać:

1. Temat ćwiczenia.
2. Datę wykonania ćwiczenia.
3. Przebieg realizacji ćwiczenia.
4. Wyniki pomiarów i identyfikacji wzorców kalibracyjnych.
5. Określenie parametrów kalibracyjnych kamery Kinect v1 oraz Kinect v2.
6. Wnioski.

5. Pytania kontrolne
1) Co to jest kalibracja?
2) Opisać rodzaje parametrów kamery.
3) Jak wyznaczyć wzajemne położenie w układzie dwóch kamer?
4) Jaka jest różnica pomiędzy kamerą Kinect v1 a Kinect v2?

6. Literatura

[1] M. Panuś, Stereowizja z wykorzystaniem wielu kamer, Praca magisterska, Katedra


Automatyki, AGH, Kraków, 2012

[2] J.-Y. Bouguet. Camera Calibration Toolbox for Matlab. http://www.vision.caltech.


edu/bouguetj/calib_doc/index.html.

[3] B. Cyganek. Komputerowe przetwarzanie obrazów trójwymiarowych. Akademicka Oficyna


Wydawnicza, EXIT, Warszawa 2002.

[4] Z. Cai, J. Han, Li Liu, Ling Shao, RGB-D datasets using microsoft kinect or similarsensors: a
survey, Multimed Tools Appl, 76:4313–4355, 2017.

You might also like