płaszczyzna obrazu

Transkrypt

płaszczyzna obrazu
Symulator widoków wielościanów
uzyskiwanych za pomocą głowicy stereowizualnej
– implementacja i zastosowania.
KRZYSZTOF SKABEK*
AGNIESZKA TOMAKA*
*
Instytut Informatyki Teoretycznej i Stosowanej
Polskiej Akademii Nauk
ul. Bałtycka 5, 44-100 Gliwice
Streszczenie:
W artykule opisano symulator widoków wielościanów z głowicą stereowizualną przy założeniu
idealnych warunków obserwacyjnych. Symulator widoków wielościanów jest narzędziem umożliwiającym
generowanie stereoskopowych widoków dla zdefiniowanej sceny przestrzennej z dowolnego punktu
obserwacji umiejscowionego w otoczeniu sceny będącej zbiorem wielościanów. Zaproponowano
wektorowy algorytm znajdowania przesłonięć. Opisano sposób użycia oraz przykładowe wyniki działania
symulatora. Wskazano także na zastosowania narzędzia w widzeniu komputerowym.
Słowa kluczowe:
Stereowidzenie, symulator widoków, przesłonięcia wielościanów, usuwanie niewidocznych krawędzi.
1 Wprowadzenie
Obserwacje sceny przestrzennej za pomocą rzeczywistych urządzeń mechaniczno–
optycznych obarczone są błędami związanymi z trudnością dokładnego wykalibrowania kamer,
ograniczoną precyzją ruchów platformy przy przemieszczeniach (w szczególności przy
obrotach) [7][4] oraz zniekształceniami w samym torze optycznym [8].
Algorytmy obliczania map głębi [8][3], wyznaczania optymalnej trajektorii ruchu
platformy [4], bądź też składania widoków z różnych położeń obserwatora [5], wymagają, do
swego poprawnego działania przy rozwiązywaniu tych problemów, źródła dokładnych danych
testowych. W celu weryfikacji działania tych algorytmów konieczna była budowa narzędzia
programowego – symulatora, generującego obrazy zdefiniowanej sceny dla dowolnego
położenia platformy. Opracowano programowy model platformy z głowicą stereowizualną przy
założeniu idealnych warunków obserwacyjnych, tzn.: dokładnej kalibracji kamer, dokładnej
2
znajomości geometrii sceny, położenia sceny i kamer oraz przestrzennego przemieszczenia
głowicy.
Symulator widoków wielościanów jest narzędziem umożliwiającym generowanie
stereoskopowych widoków dla zdefiniowanej sceny przestrzennej z dowolnego punktu
obserwacji umiejscowionego w otoczeniu sceny.
Obserwowana scena jest zbiorem wielościanów rozmieszczonych w dowolnym, ale
znanym położeniu w układzie odniesienia sceny. W pierwszym przybliżeniu punkt obserwacji
(głowica stereowizualna) porusza się po okręgu dookoła pewnego punktu przyjętego jako
początek układu współrzędnych i możliwe jest dokonywanie obserwowacji analizowanej sceny
pod różnymi kątami. Kamery umieszczone są w stałej odległości od siebie.
W celu wyznaczenia stereoskopowego widoku sceny w obu kamerach głowicy należy
rozwiązać następujące zadania: wyznaczyć położenia rzutów wszystkich ścian i krawędzi
wielościanów na płaszczyznę obrazu oraz zbadać wzajemne przesłanianie poszczególnych ścian
i krawędzi.
2 Przekształcenie perspektywiczne
Z punktu widzenia geometrii rejestracja obrazu przez kamerę jest przekształceniem
perspektywicznym.
Na rysunku 1 przedstawiono model przekształcenia perspektywicznego. Przyjęto
otworkowy model kamery1 [1]. Rozważania przeprowadzono dla układu współrzędnych,
w którym oś Z stanowi oś optyczna układu a środek układu współrzędnych położony jest
w miejscu przecięcia osi optycznej z płaszczyzną rzutowania. Odległość pomiędzy otworem
obiektywu a płaszczyzną rzutowania wynosi f.
Rysunek 1 Schemat przekształcenia perspektywicznego
Otwór obiektywu kamery jest punktem centralnym rzutowania, stąd przedstawione na
rysunku odwzorowanie jest rzutem środkowym. Obraz punktu v uzyskiwany jest na przecięciu
płaszczyzny rzutowania z promieniem rzutowania przechodzącym przez punkt v i środek
rzutowania. Wyznaczony w ten sposób punkt vp jest rzutem punktu v na płaszczyznę obrazu.
1
ang. pinhole camera
3
Rzut środkowy jest przekształceniem jednoznacznym [6] tylko w jedną stronę, tzn. każdy
punkt obiektu ma ściśle określony odpowiednik na płaszczyźnie obrazu, jednakże każdy punkt
na płaszczyźnie rzutowania może być obrazem wielu punktów. Na podstawie położenia tego
punktu na obrazie oraz znajomości geometrii układu obrazowania, można jedynie wyznaczyć tę
prostą, jednak położenie obrazowanego punktu nie jest określone jednoznacznie.
Niech v = (x,y,z)t oraz vp = (xp,yp,zp)t. Współrzędne rzutu punktu z rys. 1 można obliczyć
korzystając z podobieństwa trójkątów [1].
f ⋅x
f ⋅y


 x p = f + z ; y p = f + z ; z p = 0


3 Algorytm znajdowania przesłonięć
Prawa geometrii projekcyjnej oraz znajomość relacji: obiekt przestrzenny – położenie
obserwatora – płaszczyzna rzutowania, pozwalają na wyznaczenie obrazów wszystkich
krawędzi tego obiektu. Dla niektórych reprezentacji jest to wystarczające do znalezienia obrazu
tego obiektu, np. dla reprezentacji kuli w postaci funkcji analitycznej. Jednak że w przypadku
reprezentacji brył wielościennych, bądź scen złożonych z większej liczby obiektów, konieczne
jest określenie, które ze ścian są z danego punktu obserwacji widoczne i w jakim zakresie.
Istnieją dwie grupy metod rozwiązania tego problemu: rastrowe [2][10][11] oraz
wektorowe [2][9].
Algorytmy pierwszej grupy polegają na potraktowaniu obiektu jako zbioru
k-krawędziowych ścian oraz ustaleniu, dla każdego punktu rastra obrazu, która z powierzchni
jest widoczna. Wykonanie tej operacji dla pojedynczego punktu rastra wymaga przejrzenia
wszystkich n ścian i określenia, która z nich leży najbliżej obserwatora. Złożoność
obliczeniowa tych algortmów jest rzędu nN, gdzie N – liczba punktów rastra. Metody z tej
grupy są szeroko stosowane w systemach projektowania i wizualizacji przestrzennej 2.
Metody drugiej grupy polegają na porównaniu każdej z n ścian z pozostałymi n-1 ścianami
w celu wyeliminowania tych ścian (bądź ich części), które sa niewidoczne. Złożoność
obliczeniowa wynosi tutaj n2. Podejście to jest bardziej uniwersalne w stosunku do metod
pierwszej grupy oraz nieczułe na rozdzielczość rastra. Niestety odbywa się to kosztem bardziej
skomplikowanych obliczeń.
Zaprezentowany poniżej algorytm należy do drugiej z opisanych grup. W odróżnieniu od
algorytmu zamieszczonego w publikacji [9], w prezentowanym podejściu nie jest wymagany
podział obiektu na wielościany wypukłe. Ściany rozpatrywanych obiektów przestrzennych
mogą być dowolnymi wielokątami.
W przypadku reprezentacji wielościennej obrazami poszczególnych ścian na płaszczyźnie
rzutowania są obszary ograniczone poprzez rzuty krawędzi ścian. Całkowite lub częściowe
przesłonięcie danej ściany sprowadza się do nakładania całości lub fragmentów poszczególnych
rzutów krawędzi tej ściany poprzez rzuty innych ścian (rys. 2).
Rysunek 2 Rodzaje przesłonięć krawędzi obiektów
2
M.in. systemy: AutoCAD, ARRIS, I-DEAS Artisan Modeling.
4
Takie rzuty krawędzi lub ich fragmenty nazwano w dalszych opisach segmentami.
Idea wyznaczania poszczególnych przesłonięć polega więc na znalezieniu części
wspólnych rzutów obszarów na płaszczyznę obrazu, a następnie na ustaleniu, który obszar w
danym położeniu leży bliżej kamer.
Algorytm wyznaczania widocznych segmentów w rzucie sceny na płaszczyznę należy do
grupy wektorowych metod wyznaczania obszarów przesłoniętych. Danymi wejściowymi są,
oprócz informacji o położeniu segmentów rzutu, dane o rzeczywistym położeniu
odpowiedników tych segmentów w przestrzeni.
Wykorzystano następujęce struktury danych: LK – lista segmentów widocznych, LKP –
lista segmentów przesłoniętych. W pamięci komputera obie struktury są macierzami
o wymiarrach 4× n i postaci:
[Xpo1 Ypo1 Xko1 Yko1; Xpo2 Ypo2 Xko2 Yko2; ...; Xpon Ypon Xkon Ykon].
Opis działania algorytmu:
- Utworzenie listy LK wszystkich segmentów rzutu,
- Dla każdej ze ścian obiektów sceny wykonanie następujących operacji:
- Zerowanie listy segmentów przesłoniętych LKP,
- Wyznaczenie równania płaszczyzny ściany,
- Wyznaczenie zakresu zawierania segmentów z LK w rzucie ściany (procedura opisana
w rozdziale 3.1),
- Dla wszystkich wybranych w poprzednim punkcie fragmentow segmentów wykonanie
następujących operacji:
- obliczenie współrzędnej z (głębokości) dla geometrycznego środka segmentu,
- sprawdzenie warunku widoczności;
w przypadku wystąpienia przesłonięcia: uzupełnienie listy segmentów
przesłoniętych LKP,
- geometryczne wyłączenie segmentów niewidocznych LKP ze zbioru segmentów
wyświetlanych LK (patrz rozdział 3.3)
3.1 Procedura ustalania części wspólnej rzutu segmentu krawędzi
z obszarem na płaszczyźnie
Niech obszar F będzie zdefiniowany jako wielokąt o k wierzchołkach, a odcinek AB
będzie zdefiniowany przez parę punktów początku – A i końca – B. Na pytanie o część wspólną
odcinka AB i figury F oczekiwana jest odpowiedź w postaci listy odcinków LO.
Rozwiązanie zadania przeprowadzane jest w następujący sposób:
- Sprawdzana jest przynależność końców odcinka: punktów A i B do obszaru (patrz rozdział
3.2). Jeśli którykolwiek z nich należy do obszaru, dopisywany jest do listy punktów
podziału odcinka LP.
- Dla wszystkich prostych ai wyznaczanych przez poszczególne krawędzie figury F, badana
jest ich część wspólna z prostą b wyznaczaną przez odcinek AB.
- Jeżeli częścią wspólną prostej utworzonej przez krawędź ai i prostej b, na której leży
odcinek, jest punkt, sprawdzana jest jego przynależność do obszaru figury.
W przypadku, gdy punkt należy do figury dopisywany jest do listy punktów podziału
odcinka LP.
- Jeżeli proste ai oraz b pokrywają się, wyznaczany jest wspólny fragment obu odcinków
i jego końce dopisywane są do listy punktów podziału odcinka LP.
- Po przeglądnięciu wszystkich krawędzi, z listy LP usuwane są powtarzające się punkty, a
następnie lista jest porządkowana wg jednej ze współrzędnych punktów np. x dla odcinka
niepionowego, y dla odcinka pionowego.
5
-
Dla każdej kolejnej pary punktów z uporzadkowanej listy punktów podziału odcinka LP
sprawdzana jest przynależność środka odcinka utworzonego przez tą parę punktów do
obszaru figury F.
- Jeśli środek tego odcinka należy do figury F, a lista odcinków LO jest pusta,
dopisywany jest on do listy odcinków LO,
- Jeśli środek odcinka należy do figury F, a lista odcinków LO nie jest pusta, sprawdzane
jest, czy koniec ostatniego odcinka z listy LO pokrywa się z początkiem odcinka
analizowanego.
- Jeśli się pokrywa, modyfikowany jest koniec ostaniego odcinka listy LO przez
wpisanie współrzednych końca odcinka analizowanego.
- Jeśli się koniec ostaniego odcinka listy i początek analizowanego są różne,
wówczas odcinek dopisywany jest do listy LO.
3.2 Procedura ustalania przynależności punktu do obszaru na
płaszczyźnie.
Niech obszar F będzie zdefiniowany jako wielokąt o k wierzchołkach. Na pytanie
o przynależność punktu P do danego obszaru oczekiwana jest jedna z trzech odpowiedzi:
- leży poza obszarem
- należy do brzegu wielokąta
- należy do wnętrza wielokąta.
Każdy wielokąt o k wierzchołkach przekształcany jest na listę k krawędzi, dla każdej
z nich znajdowane są współrzędne punktów końcowych oraz równanie opisujące prostą
wyznaczoną przez te punkty.
Można wyróżnić następujące przypadki:
- Jeżeli jakakolwiek współrzędna punktu P leży poza zakresem zdefiniowanym przez
najmniejsze i największe współrzędne zbioru wszystkich wierzchołków wielokąta wówczas
punkt P nie należy do figury F.
- Jeżeli współrzędne punktu P spełniają równanie prostej, na której leży i-ta krawędź oraz
jeśli współrzędne tego punktu leżą w zakresie definiowanym przez współrzędne tej
krawędzi, wówczas punkt należy do brzegu figury.
- W pozostałych sytuacjach należy:
- podzielić figurę na zakresy ze względu na położenie jednej ze współrzędnych np. x, tak
aby zbiory numerów poszczególnych krawędzi przechodzących przez dany zakres były
różne dla poszczególnych zakresów.
- znaleźć zakres Zx do którego należy punkt P.
- dla wszytkich niepionowych krawędzi przechodzących przez zakres Zx wyznaczyć
przecięcie się tych krawędzi z prostą wyznaczoną przez współrzędną x punktu P. Zbiór
tych przecięć będzie liczbą parzystą
- z listy przecięć stworzyć uprządkowaną listę zakresów dla współrzędnej y. Jeśli
współrzędna y punktu P należy do zakresu Zy o nieparzystym numerze wówczas punkt
P należy do obszaru, w przeciwnym razie leży poza obszarem.
6
3.3 Procedura wyłączania segmentów niewidocznych
Dany jest zbiór odcinków: [k1 ... kn], będących rzutami wszystkich krawędzi obiektów sceny na
płaszczyznę obrazu oraz zbiór segmentów rzutu sceny zapisany w macierzy o postaci:
[Xpo1,1 Ypo1,1 Xko1,1 Ypo1,1; Xpo1,2 Ypo1,2 Xko1,2 Yko1,2; ...; Xpo1,m1 Ypo1,m1 Xko1,m1 Yko1,m1;
Xpo2,1 Ypo2,1 Xko2,1 Ypo2,1; Xpo2,2 Ypo2,2 Xko2,2 Yko2,2; ...; Xpo2,m2 Ypo2,m2 Xko2,m2 Yko2,m2;
...
Xpon,1 Ypon,1 Xkon,1 Ypon,1; Xpon,2 Ypon,2 Xkon,2 Ykon,2; ...; Xpon,mn Ypon,mn Xkon,mn Ykon,mn],
gdzie: pojedynczy segment opisany jest za pomoca współrzędnych początku i końca
(Xpo i,j Ypo i,j Xko i,j Ypo i,j), natomiast [m1 ... mn] – wektor liczbności segmentów do wyłączenia dla
poszczególnych odcinków (k1 ... kn).
Wynikiem działania procedury jest zbiór [s1 ... sp] segmentów widocznych (nieprzesłoniętych)
na płaszczyźnie obrazu.
Algorytm wyłączania segmentów polega na usunięciu segmentów składowych
uj:(Xpo j Ypo j Xko j Ypo j ) z poszczególnych odcinków obrazu ki:(Xpo i Ypo i Xko i Ypo i ).
Opis działania algorytmu:
- zapisanie zbioru odcinków [k1 ... kn] jako zbioru segmentów wyjściowych [s1 ... sp],
wypełnienie wektora liczebności segmentów wyjściowych wartościami 1,
- dla poszczególnych odcinków obrazu ki sprawdzenie odpowiadających im segmentów uj:
- jeżeli początek segmentu uj jest jednocześnie początkiem segmentu si , to segment
wyjściowy przyjmuje następującą postać si: (Xpo j Ypo j Xko i Ypo i )
- jeżeli koniec segmentu uj jest jednocześnie końcem segmentu si , to segment wyjściowy
przyjmuje następującą postać si: (Xpo i Ypo i Xko j Ypo j )
- jeżeli segment uj zawiera segment si , to następuje podział segmentu wyjściowego na
dwie części si: (Xpo j Ypo j Xko i Ypo i ) oraz si’: (Xpo i Ypo i Xko j Ypo j ), dodatkowo zwiększana
jest odpowiednia składowa wektora określająca liczebność segmentów wyjściowych.
- jeżeli segment uj jest zawarty w segmencie si , to segment si jest usuwany ze zbioru
segmentów wyjściowych, dodatkowo zmniejszana jest odpowiednia składowa wektora
określająca liczebność segmentów wyjściowych.
4 Opis techniczny
Funkcje wykonujące opisane powyżej zadania zostały zaimplementowane w postaci
przybornika Symulator działającego w systemie Matlab 5.1, a składającego się z zestawu
różnorodnych makr i funkcji 3.
4.1 Moduł symulatora (symulator.m)
Makro główne służące do generacji widokow sceny o zadanych parametrach.
Zadaniem symulatora jest wyznaczenie rzutów sceny widzianych przez obie kamery głowicy
stereowizualnej. Do użytkownika należy zdefiniowanie parametrów potrzebnych do działania
tego programu, a mianowicie:
- sceny – określenie listy wierzchołków oraz listy połączeń pomiędzy tymi wierzchołkami,
- parametrów położenia głowicy na okręgu widokowym – odległości głowicy od środka
sceny, położenia głowicy na okręgu widokowym (kąt obrotu po okręgu widokowym
względem położenia początkowego głowicy), nachylenia głowicy, a także parametrów
związanych z kamerami: ich ogniskowej oraz wzajemnej odległości.
3
Pakiet programowy symulatora widoków udostępniono
http://www.iitis.gliwice.pl/zksw/symulator/index.htm.
w
sieci
Internet
pod
adresem:
7
Postać funkcji:
function [WW, NS, NS1]
= symulator (pr, d, f, observarc, rotationarc,
fnazwa_we, fnazwa_wy)
Dane wejściowe:
pr
d
f
observarc
rotationarc
fnazwa_we
fnazwa_wy
–
–
–
–
–
–
–
odległość głowicy od środka sceny, promień okręgu widokowego,
odległość między kamerami,
ogniskowa,
kąt nachylenia kamer względem pionu,
pozycja głowicy na okręgu widokowym.
nazwa pliku z opisem sceny
nazwa pliku wynikowego
Dane wyjściowe:
WW – macierz wierzchołków,
NS – macierz odcinków widocznych dla lewej kamery
NS1 – macierz odcinków widocznych dla prawej kamery
Przykładowe wywołanie:
Symulator(150, 10, 0.5, 0, [0, 30, 60],’ostroslup.out’)
Wykonanie polecenia spowoduje wygenerowanie pliku ostroslup.out zawierającego trzy widoki
sceny (różniące się pozycją obserwacji na okręgu widokowym: 0, 30 i 60 stopni) dla zadanej
odległości obserwatora od sceny: 150 cm, odległości między kamerami 10 cm i ogniskowej
kamer 0.5 cm.
Działanie:
- pobranie danych o strukturze przestrzennej sceny,
- obliczenie położenia punktów w rzucie perspektywicznym o zadanych parametrach,
- wywołanie procedur wskazujących obszary widoczne i przesłonięte (visib.m),
- zapisanie wyników do pliku w postaci odcinków na płaszczyźnie.
Funkcja wykorzystuje następujące makra pomocnicze:
- polygoninterior.m – funkcja sprawdzająca przynależność punktu do obszaru figury,
- sectorpolygonproduct.m – funkcja wyznaczająca cześci wspólne odcinka i obszaru ,
- testsectorpolygonproduct.m – funkcja testujaca funkcję sectorpolygonproduct.
- wsplaszczyzny.m – funkcja odczytu współczynników równania płaszczyzny z równania
płaszczyzny w postaci symbolicznej,
- wsprostej.m –funkcja odczytu współczynników równania prostej z równania prostej w
postaci symbolicznej,
- visib.m – funkcja wyznaczająca widoczne segmenty obrazu sceny.
4.2 Moduł wizualizacji (wizualizacja.m)
Funkcja do prezentacji wyników działania Symulatora Widoków na ekranie. Prezentowane są
kolejno wszystkie zapisane w pliku widoki.
8
Postać funkcji:
function n = wizualizacja(fnazwa)
Dane wejsciowe:
fnazwa – nazwa pliku danych wyjściowych Symulatora
Dane wyjściowe:
n – macierz segmentów ostatniego widoku.
4.3 Format pliku opisu sceny przestrzennej
<liczba wierzchołków w scenie (n)>
<współrzędne X1>
...
<współrzędne Xn>
<liczba ścian w scenie (k)>
<maksymalna liczba krawędzi pojedynczej ściany w scenie (m)>
<wierzchołki ściany S1>
...
<wierzchołki ściany Sk>
gdzie:
<współrzędne Xi> ::= xi yi zi 1
<wierzchołki ściany Sj> ::= wj1 wj2 ... wjk 4
4.4 Format pliku danych wyjściowych Symulatora Widoków
<liczba wierzchołków widocznych (n)>
<liczba znaków przeznaczonych na opis pojedynczego wierzchołka (z)>
<opis w1>
...
<opis wn>
<liczba segmentów (m)>
<segment s1>
...
<segment sm>
gdzie:
<segment si> ::= xpocz,i ypocz,i xkon,i ykon,i
5 Przykłady wyznaczania rzutów scen
Działanie algorytmów przetestowano na przykładach scen złożonych z brył
wielościennych. Na rys. 3 zaprezentowano widoki prostej sceny (prostopadłościan i ostrosłup)
o następujących parametrach: odległość od środka sceny – 150 cm, rozstaw kamer – 10 cm,
ogniskowa kamery – 0.5 cm, pionowy kąt obserwacji – 0 st., poziomy kąt ustawienia
obserwatora – 30, 60, 120, 310 st.
4
Jeśli liczba wierzchołków ściany j, oznaczona jako e,jest mniejsza od k, to warości wje wynoszą 0.
9
widok lewy
pion.kąt: 0; poz.kąt:30
widok prawy
widok lewy
pion.kąt: 0; poz.kąt:60
widok prawy
widok lewy
pion.kąt: 0; poz.kąt:120
widok prawy
widok lewy
pion.kąt: 0; poz.kąt:310
widok prawy
Rysunek 3 Wybrane widoki perspektywiczne prostej sceny
widok lewy
pion.kąt: 0; poz.kąt:75
widok prawy
widok lewy
pion.kąt: 0; poz.kąt:165
widok prawy
widok lewy
pion.kąt: 0; poz.kąt:255
widok prawy
widok lewy
pion.kąt: 0; poz.kąt:345
widok prawy
Rysunek 4 Wybrane widoki perspektywiczne sceny złożonej
10
Na rys. 4 zamieszczono wybrane widoki sceny testowej złożonej z ośmiu wielościanów.
Dobrano następujące parametry obserwacyjne sceny: odległość od środka sceny – 200 cm,
rozstaw kamer – 30 cm, ogniskowa kamery – 0.5 cm, pionowy kąt obserwacji – 0 st., poziomy
kąt ustawienia obserwatora – 75, 165, 255, 345 st.
6 Zastosowania
Najważniejszym zastosowaniem, będącym jednocześnie inspiracją do powstania,
symulatora widoków jest testowanie algorytmów z dziedziny widzenia komputerowego. Są to
m.in. algorytmy obliczania map głębi, wyznaczania optymalnej trajektorii ruchu platformy,
bądź też składania widoków z różnych położeń obserwatora.
Algorytmy wyznaczania map głębi na podstawie obrazów stereowizualnych [3] znajdują
odpowiedniość pomiędzy punktami obu obrazów, a następnie dzięki znajomości parametrów
toru wizualnego są w stanie wyznaczyć przybliżoną odległość danego elementu sceny od
kamery. Sprawdzenie algorytmu polega na wyznaczeniu tych odległości i porównaniu ich
z odległościami rzeczywistymi. Testowanie algorytmu na obrazach rzeczywistych może być
utrudnione przez inne czynniki nie związane bezpośrednio z tymi algorytmami, a wynikające z
niedoskonałości rzeczywistej platformy – trudności z kalibracją, konieczność wykonywania
pomiarów i ich skończona dokładność dla każdego nowego położenia platformy; oraz
wstępnego przetwarzania obrazów – algorytmów segmentacji itp.
Sprawdzenie poprawności działania algorytmów wybierających kolejne położenia
ruchomej platformy na podstawie widoku danej sceny z danego po łożenia [4] w rzeczywistych
warunkach również obarczone jest niedokładnościami związanymi z kalibracją, błędami
segmentacji, wyznaczania mapy głębi, nieznajomością dokładnego położenia głowicy
względem sceny.
Z kolei na działanie algorytmów składania widoków [5] mają wpływ wymienione powyżej
czynniki a także niedokładności wszystkich powyższych algorytmów, co więcej, nie tylko
nieznane jest dokładne położenie głowicy względem sceny, ale również wielkość
przemieszczenia głowicy pomiędzy poszczególnymi punktami.
Nasuwającym się zastosowaniem jest weryfikacja i korekcja położenia platformy
obserwacyjnej na podstawie konfrontacji rzeczywistego obrazu z kamer z obrazami
generowanymi za pomocą symulatora widoków. Możliwe staje się też oszacowanie błędu
przemieszczenia platformy.
W powyższych sytuacjach konieczne staje się sięgnięcie do danych testowych
pochodzących z symulatora w celu ujawnienia rzeczywistej dokładnosci działania algorytmów,
na podstawie nie obarczonych błędami danych, oraz oszacowanie wpływu błędów
z poszczególnych etapów pomiarowych na system działający w warunkach rzeczywistych.
Bibliografia
[1]
[2]
[3]
[4]
Duda, R.O., Hart, P.E., Pattern Classification and Scene Analysis, John Willey & Sons,
1973.
Foley, J.D., van Dam, A., Fundamentals of Interactive Computer Graphics, AddisonWesley Publishing Company, 1982.
Philipp, M., Metoda aktywnych struktur w ustalaniu odpowiedniości obrazów
stereoskopowych, Komputerowe Systemy Rozpoznawania, Wrocław 1999.
Luchowski, L.(ed.), Kowalski, P., Tomaka, A., Philipp, M., Pojda, D., Skabek, K.,
Mobile Stereovision Strategies, II Krajowa Konferencja: Metody i systemy komputerowe
w badaniach naukowych i projektowaniu inżynierskim, Kraków 1999.
11
[5]
Skabek, K., Rozpoznawanie obiektów przestrzennych metodą pokryć stereogramów, II
Krajowa Konferencja: Metody i systemy komputerowe w badaniach naukowych
i projektowaniu inżynierskim, Kraków 1999.
[6] Mohr, R., Triggs B., Projective Geometry for Image Analysis, ISPRS, Vienna, July 1996.
[7] Kowalski, P., Oprogramowanie dla sterowania aktywną głowicą stereowizyjną, Zeszyty
Naukowe Politechniki Śląskiej, Seria: Informatyka z. 38, Gliwice 2000.
[8] Keltte, R., Schlüns, K., Koschan, A., Computer Vision: Three-Dimsional Data from
Images, Springer-Verlag 1998.
[9] Lo, S.H., Perspective Projection of Non-Convex Polyhedra, Internetional Journal For
Numerical Methods in Engineering, John Wiley and Sons, Ltd, Vol. 26, 1988.
[10] Attarwala, Y., Rendering Hidden Lines, Iris Universe, Sommer: 40-41, 1989.
[11] Herrel, R., Baldwin, J., Wilcox, Ch., High Quality Polygon Edging, IEEE Computer
Graphics and Applications, 15(4): 68-74, July 1995.

Podobne dokumenty