Tworzenie Obrazów Panoramicznych (seminarium)
-
Upload
arkadiusz-janicki -
Category
Art & Photos
-
view
782 -
download
1
Transcript of Tworzenie Obrazów Panoramicznych (seminarium)
Tworzenie obrazów panoramicznychi map otoczenia
Creating Full View Panoramic Image Mosaic and Environment Maps
Richard SzeliskiHeung-Yeung ShumMicrosoft Research
PrezentacjaArkadiusz Janicki
O czym opowiemy?
• Panoramy cylindryczne i sferyczne• Reprezentacja 8-parametrowa• Reprezentacja 3-parametrowa• Obliczanie ogniskowej• Redukcja „dziur” między zdjęciami• Rzutowanie mapy na figury
Metody pobierania obrazów
• Film (pojedyncze klatki)• Obiektyw szerokokątny - rybie oko
(jedno zdjęcie, kilka zdjęć)• Lustra (w kształcie piramidy, paraboliczne)• Seria zdjęć (np. z aparatu cyfrowego)
Tworzenie mozaiki z obrazów- metoda geometryczna
• Przekształcamy współrzędne (X,Y,Z) na współrzędne cylindryczne (Θ; v)
• Przekształcenie (X,Y,Z) na współrzędne sferyczne (Θ; v)
(proste poziome linie zostają zakrzywione)
Dla każdego zdjęcia obliczamy przesunięcie δtOraz błąd względny E(δt)
xi=(xi, yi) = x’i=(x’i, y’i) - odpowiednie punkty na dwóch obrazkach
po przekształceniach wzór przyjmuje postać:
ei = I1(x’i) – I0(xi) – błąd koloru i/lub natężeniagi
T = ΔI1(x’i) – gradient I1 w x’i
Minimalizacja błędu sprowadza się do rozwiązania równania:
Panorama skonstruowana za pomocą prostego algorytmu
Ograniczenia panoram opartych na wsp. cylindrycznych i sferycznych
• Możemy jedynie uzyskać efekt przewijania obrazu
• Duże błędy w okolicach biegunów• Wymagana znajomość ogniskowej obiektywu
Panoramy perspektywiczne(8-parametrowe)
• Perspektywa powstaje poprzez przekształcenie obrazu za pomocą 8 parametrów
Minimalizacja błędu
Minimalizujemy błąd E(d) poprzez iteracyjne poprawianie parametru d
Współrzędne Jd (Jacobian) odpowiadają optycznym przekształceniom spowodowanym przez obrót płaszczyzny w 3D.
8-parametrowa reprezentacja
• Dobrze oblicza przesunięcia dla mało oddalonych punktów
• Duża złożoność obliczeniowa• W niektórych przypadkach zawodzi
Rozwiązanie?
Panoramy obrotowe (3-parametrowe)
Dla aparatu umieszczonego w centrum relacje pomiędzy punktem p(X,Y,Z) i współrzędnymi na ekranie x=(x,y,1) mogą być opisane przez:
T – przemieszczenie obrazuV – skalowanie ogniskowejR - obrót
Panoramy obrotowe (3-parametrowe)
Obracając kamerę wokół środka sceny mapowanie pomiędzy dwoma obrazkami k i l wyraża się przez M ~ VkRkRl
−1Vl-1
Zakładając, że ogniskowa jest taka sama dla wszystkich zdjęć uaktualniamy Rk za pomocą Ω=(ω1, ω2, ω3) M ~ VR(Ω )RkRl
−1V-1
Uaktualniamy Rk za pomocą Ω
Panoramy 3-parametrowe wykrywanie obrotów
Następnie ta wartość posłuży nam do uaktualnienia zmiennej Rk
Rejestracja czterech dowolnie obróconych zdjęć
Obliczanie ogniskowej
Aby zastosować technikę obrotów 3D musimy znać ogniskową aparatu. Z 8-parametrowego algorytmu mamy:
i po przekształceniach otrzymujemy
lub
Podobnie dla f1. Jeśli f0 i f1 różnią się, możemy przyjąć f = (f1f0)1/2
Dla większej ilości zdjęć za ogniskową przyjmujemy medianę wartości.
Usuwanie „dziur” między zdjęciami
• Rejestrowanie obrazka z obu stron - na początku i na końcu sekwencji
• Globalnie obliczony błąd jest dzielony uczciwie na wszystkie obrazki
• Na podstawie błędu możemy też zaktualizować ogniskową
Usuwanie „dziur” między zdjęciami
Błąd pomiędzy ostatnim a pierwszym zdjęciem w sekwencji (32o) spowodowany przyjęciem złej ogniskowej.
Widok rejestracji po poprawieniu błędu (9%).
Tworzenie map otoczenia
• Konwersja do cylindrycznej bądź sferycznej mapy (do oglądania wymagane jest odpowiednie oprogramowanie)
• Obliczanie kolorów za pomocą promieni 3D• ...
Tworzenie map otoczenia
• Alternatywne rozwiązanie wykorzystuje tradycyjne techniki – wyświetlanie wielokątów z nałożonymi teksturami
• Figurą na którą jest mapowana tekstura może być prosty sześcian, podzielona na małe trójkąty sfera, lub podobna figura
• Wykorzystanie trójkątów pozwala na sprzętową akcelerację wyświetlania
• Dobór modelu zależy od potrzeb (bardziej skomplikowane mają lepszą jakość, mniej skomplikowane lepiej sprawdzają się np. przy zastosowaniach sieciowych
Rzutowanie obrazu na figurę
Rzutowanie następuje w czterech krokach:2. Malujemy każdy trójkąt w przestrzeni (u,v) unikalnym kolorem3. Dla każdego trójkąta oblicz mapowanie (u,v,1) -> (X,Y,Z)4. Oblicz teksturę dla każdego trójkąta5. Zamaluj każdy trójkąt obliczoną teksturą
Eliminowanie artefaktów
• Generujemy tekstury odrobinę większe, aby wystawały poza trójkąt (bilinear texturing, MIP mapping)
• Powiększamy nieco trójkąty aby generowany obraz powstawał ze zmiksowania kolorów
• Algorytm może być zastosowany również do mapowania obrazu na specyficzny obiekt (inverse texture mapping)
Obrazy rzutowane na sześcian
syntetyczny cukierek