Tworzenie Obrazów Panoramicznych (seminarium)

934 views

Published on

Published in: Art & Photos, Business, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
934
On SlideShare
0
From Embeds
0
Number of Embeds
22
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Tworzenie Obrazów Panoramicznych (seminarium)

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

×