Geometria obrazu
Wykład 13
Zdjęcia
1. Przestrzeń rzutowa.
2. Rzutowanie perspektywiczne.
3. Macierz projekcji.
4. Geometria wielobiegunowa (epipolarna).
Definicja.
Pierścień przemienny z jedynką (K,+,,1,0), w którym każdy element różny od zera jest odwracalny nazywamy ciałem.
Definicja.
Niech K będzie ciałem a R relacją taką, że dwa punkty a, b Kn- (0, ... , 0) są w relacji aRb gdy istnieje K takie, że (a1, ... ,an) = (b1, ... ,bn).
Iloraz Kn- (0, ... ,0)/R nazywamy przestrzenią rzutową (projective space).
Przykład.
https://www.youtube.com/watch?v=nrc7kcpO3y0
Na przykładzie przestrzeni dwuwymiarowej poznajmy niektóre własności przestrzeni rzutowej.
Jednorodna reprezentacja prostych i punktów.
Oznaczmy prostą ax+by+c = 0 jako (a,b,c)T.
Zauważmy, że dla każego k 0 (ka)x+(kb)y+kc = 0, czyli (a,b,c)T jest w relacji z k(a,b,c)T.
Zatem zbiór klas abstrakcji tej relacji na wektorach z R3-(0,0,0) tworzy przestrzeń rzutową P2.
Oznaczmy punkt (x,y) jako (x,y,1)T.
Lemat.
Punkt p leży na prostej l wtedy i tylko wtedy, gdy pTl = lTp = 0.
Lemat.
Przecięciem dwóch prostych l i l’ jest punkt p = l l’.
Przez punkty p i p’ przechodzi prosta l = p p’.
Wniosek.
Proste równoległe l = (a,b,c)T i l’ = (a,b,c’)T przecinają się w punkcie (b,-a,0)T.
Przez punkty w nieskończoności (punkty idealne) (p1,p2,0) i (r1,r2,0) przechodzi prosta (0,0,c)T.
Zasada dualności.
Każdemu twierdzeniu dotyczącemu dwuwymiarowej przestrzeni rzutowej odpowiada twierdzenie dualne, w którym zamieniono role prostych i
punktów.
„Znikający punkt” (vanishing point).
1. Każdy zbiór współpłaszczyznowych prostych równoległych przecina się w innym („znikającym”) punkcie.
2. Zbiory współpłaszczyznowych prostych równoległych przecinają się punktach współliniowych (nazywamy je horyzontem dla danej
płaszczyzny).
Horyzont jest linią przecięcia ekranu z płaszczyzną równoległą do danej, przechodzącą przez punkt położenia obserwatora.
Różne płaszczyzny wyznaczają różne horyzonty.
Przykład.
Rysowanie obiektów z perspektywą.
[„Projective geometry in computer vision”]
Przykład.
http://blogs.ubc.ca/etec565collab/tag/illusions/
Rzutowanie perspektywiczne (perspective projection).
Rozpatrzmy kamerę typu pinhole. Niech ekran będzie położony
prostopadle do osi z w odległości f od środka układu współrzędnych.
Wtedy (x,y,f) = (X,Y,Z), gdzie = Z/f .
Z dokładnością do współczynnika skalującego można to zapisać z pomocą współrzędnych jednorodnych.
[R.Hartley, A.Zisserman, „Multiple View Geometry”]
Przykład.
https://www.youtube.com/watch?v=
Eq43ufMCgbQ
Założenie o wykorzystaniu kamery typu pinhole jest mało realistyczne, gdyż przy zbyt dużym otworze do ekranu dociera zbyt dużo promieni powodując rozmycie obrazu.
Natomiast przy zbyt małym otworze jakość obrazu pogarsza zjawisko dyfrakcji.
Poza tym obraz jest ciemny z uwagi na małą liczbę promieni docierających do ekranu.
[„Projective geometry in computer vision”]
Kalibracja kamery (camera calibration).
Celem kalibracji jest wyznaczenie parametrów określających zależności między układem związanym ze sceną (podstawowym) a układem
związanym z kamerą, na które mają wpływ transformacja perspektywy oraz parametry związane z kamerą i układem optycznym.
Parametry kamery mające wpływ na proces kalibracji:
-zewnętrzne (extrinsic) – związane z przesunięciem i rotacją układu kamery względem układu związanego z obserwowaną sceną,
- wewnętrzne (intrinsic) – określające właściwości techniczne (optyczne, elektryczne itp.) kamery, w tym różne rodzaje zniekształceń obrazu.
Każda metoda kalibracji wymaga znajomości serii punktów w przestrzeni oraz współrzędnych ich rzutów na płaszczyznę obrazu. Ze względu na sposób określania punktów można wyróżnić trzy podstawowe metody:
-stosującą trójwymiarowy obiekt referencyjny (3D reference model), którego kształt i wymiary są znane z dużą precyzją lub płaski wzorzec ze znaną zmianą położenia podczas wyznaczania punktów do kalibracji,
-używającą wzorzec płaski (flat pattern) umieszczony w różnych
położeniach względem kamery (nie jest konieczna znajomość pozycji wzorca a jedynie rozmieszczenie punktów na wzorcu),
-samokalibrację (self-calibration), w której nie używa się żadnego obiektu, a wykonuje się ją na podstawie odpowiadających sobie punktów z obrazów rejestrowanych podczas ruchu kamery obserwującej statyczną scenę.
Przykład.
Wzorzec kalibrujący kamerę.
http://www.mathworks.com/videos/camera-calibration-with-matlab- 81233.html
[cyberfoto.pl]
Kalibracja kamery.
Zazwyczaj przyjmuje się, że obraz, jaki chcemy otrzymać jest równoważny temu, który pojawia się na ekranie podczas rzutowania.
Jednak w przypadku, gdy np. ogniskowa nie jest znormalizowana lub występują odchylenia w trakcie rzutowania (robienia zdjęcia), należy uwzględnić to w postaci macierzy kalibracji.
[M.Pollefeys, „Visual 3D Modelling from Images”]
px i py oznaczają wysokość i szerokość piksela na obrazie, c = (cx, cy, 1)T odpowiada położeniu osi rzutu na ekranie, f jest ogniskową,
odchyleniem obrazu od pionu, xR i yR współrzędnymi rzutu na ekranie, a x i y współrzędnymi obrazu.
Poprzednie równanie możemy zapisać w następującej postaci (gdzie zazwyczaj s, cx, cy są zerami)
[M.Pollefeys, „Visual 3D Modelling from Images”]
Zniekształcenia obrazu (image deformations):
- radialne – powodują przesunięcie współrzędnych na obrazie w sposób promienisty i można je aproksymować stosując równanie
gdzie k1, k2, … są pewnymi współczynnikami zniekształceń radialnych, a r oznacza odległość punktu (x0,y0) od środka układu współrzędnych,
- styczne - prostopadłe do radialnych są skutkiem tego, że środki krzywizn soczewek obiektywu nie zawsze są idealnie współliniowe oraz można je redukować z pomocą równania
gdzie p1 i p2 są pewnymi współczynnikami zniekształceń stycznych,
- liniowe – powstają, gdy osie układu związanego z kamerą nie są idealnie prostopadłe do siebie i można je opisać z pomocą pojedynczego
współczynnika krzywizny c.
...) (
...) (
4 2 2 1 0
4 2 2 1 0
r k r k y
r k r k x
r y r
x
0 0 2 2 0 2 1
2 0 2 2 0 0 1
2 ) 2 (
) 2 ( 2
y x p y
r p
x r p y x p
t y t
x
Przykład.
[http://etacar.put.poznan.pl/marcin.kielczewski/POiSW9.pdf]
Po uwzględnieniu wszystkich zniekształceń otrzymujemy następujące parametry wewnętrzne modelu kamery:
-wektor długości ogniskowej fc,
-wektor cc określający współrzędne położenia środka układu współrzędnych,
-współczynnik krzywizny c zniekształceń liniowych,
-wektor przekształceń kc=[k1, k2, k3, p1, p2]T zawierający współczynniki zniekształceń radialnych i stycznych.
Dystorsja (distortion).
Wada optyczna polegająca na różnym powiększeniu obrazu w zależności od jego odległości od osi optycznej instrumentu (zmieniająca się ogniskowa obiektywu lub okularu w zależności od odległości od osi optycznej), co powoduje powstawanie wyraźnych zniekształceń obrazu na brzegu pola widzenia. Rozróżniamy dystorsję beczkową (barrel distortion) i
poduszkową (pincushion distortion). Układy ze skorygowaną dystorsją nazywamy układami ortoskopowymi (orthoscopic arrangements).
[www.optyczne.pl]
Przykład.
https://www.youtube.com/watch?v=xL8AaGi8LPs
Ruch kamery (camera motion).
Zmianę położenia kamery kontrolujemy z pomocą następującej macierzy (gdzie R oznacza macierz obrotu, a t = [tx, ty, tz]T jest wektorem
przesunięcia)
(ruch sceny opisany jest macierzą ).
Macierz projekcji.
Uwzględniając wcześniejsze spostrzeżenia otrzymujemy macierz projekcji kamery o następującej postaci
[M.Pollefeys, „Visual 3D Modelling from Images”]
Geometria epipolarna (epipolar geometry).
Gdy scena jest obserwowana z więcej niż jednego punktu można
zauważyć wiele zależności między obrazami tych samych punktów.
Umożliwia to odtworzenie sceny na podstawie jej rzutów.
Zakładamy, że znana jest pozycja obserwatorów i płaszczyzn rzutowania.
Nawet gdy nie jest znane dokładne położenie punktu M odpowiadającego na obrazie punktowi m, musi on należeć do prostej l wyznaczanej przez m i pozycję obserwatora C. Zatem obraz punktu M względem drugiego
obserwatora C’ należy do prostej l’ będącej rzutem l na płaszczyznę R’.
[M.Pollefeys, „Visual 3D Modelling from Images”]
Przykład.
[R.Hartley, A.Zisserman, „Multiple View Geometry”]
Prosta łącząca pozycje obserwatorów C i C’ definiuje pęk zawierających ją płaszczyzn. Każda prosta należąca do którejś z tych płaszczyzn
występuje w obu obrazach. Nazywa się to epipolarną odpowiedniością.
Rzut każdej takiej prostej zawiera punkty e lub e’ będące przecięciem prostej łączącej C i C’ z odpowiednimi płaszczyznami rzutowymi.
Punkty e i e’ nazywamy epipolami.
[M.Pollefeys, „Visual 3D Modelling from Images”]
Z pomocą geometrii epipolarnej możemy starać się odtworzyć kształt sceny na podstawie posiadanych obrazów.
Ale osiągnięcie zadowalającego efektu wymaga sporego wysiłku.
[M.Pollefeys, „Visual 3D Modelling from Images”]
Przykłady.
https://www.youtube.com/watch?v=Vne-tScpFwU https://www.youtube.com/watch?v=BjwhMDhbqAs https://www.youtube.com/watch?v=cb8JDjnwgts https://www.youtube.com/watch?v=GMil9tpwE_Q
Wraz z rozwojem techniki pojawiają się nowe możliwości tworzenia obrazów trójwymiarowych.
Kamerę można sprząc z innymi urządzeniami, np. laserem, a dzięki cyfrowemu zapisowi obrazu możemy dodatkowe informacje, np.
dotyczące czasu.
Triangulacja laserowa polega na rzutowaniu na obiekt linii generowanych przez laser i na podstawie ich kształtu możliwe jest odtworzenie
trójwymiarowej sceny.
Time of light – generowane są błyski światła i na podstawie czasu dotarcia ich do kamery określana jest odległość od poszczególnych elementów sceny (metoda wrażliwa na odbicia światła).
Nowoczesne metody wymagają dużej precyzji i są skomplikowane technicznie, ale do nich należy przyszłość.