Tworzenie Obrazów Panoramicznych (seminarium)

Post on 05-Jul-2015

782 views 1 download

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