1 / 38

Rectangling panoramic images via warping

Rectangling panoramic images via warping. 50-519. Mateusz Bujalski. Plan prezentacji. Co to jest warping ? Opis głównego algorytmu Local warping Co to jest seam carving ? Global warping Rezultaty i porównanie wyników. 50-519. Co to jest warping (bez dodatków)?.

garron
Download Presentation

Rectangling panoramic images via warping

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Rectanglingpanoramicimages via warping 50-519 Mateusz Bujalski

  2. Plan prezentacji • Co to jest warping? • Opis głównego algorytmu • Localwarping • Co to jest seamcarving? • Global warping • Rezultaty i porównanie wyników 50-519

  3. Co to jest warping (bez dodatków)? Przekształcenie obrazu, w którym definiujemy funkcję „przesuwającą” piksel (bez żadnych zmian koloru) w inne miejsce • ∀u,vf(u,v) = (x’, y’) 50-519

  4. Co to jest warping (bez dodatków)? • Korekcja dystorsji • Fajne efekty 50-519

  5. Problem Nie bardzo się taki obrazek ludziom podoba z reguły, szczególnie w albumie

  6. Problem Ten jest lepszy?

  7. Problem • Wg „badań statystycznych” na próbce 10 osób przeprowadzonych przez autorów pracy, ludziom mniej przeszkadzają zniekształcenia obrazu (dystorsja) spowodowana algorytmem, niż artefakty wprowadzane przez algorytmy „content-awarefill”

  8. Problem Dodatkowe drzewko i budynek na niebie?

  9. Opis algorytmu Dwie fazy: • Localwarping • Global warping 50-519

  10. Localwarping 50-519

  11. Localwarping • Drobna modyfikacja algorytmu „seamcarving” • Modyfikacja polega na pozwoleniu, aby „szew” nie przechodził przez cały obraz

  12. Na czym polega seamcarving? • Algorytm powstał w celu zmniejszania obrazków na potrzeby małych wyświetlaczy bez obcinania i skalowania • Polega na znajdowaniu tzw. szwów – ścieżki złożonej z pikseli idących przez cały obrazek o „najmniejszej wartości”

  13. Na czym polega seamcarving?

  14. Na czym polega seamcarving? Zaczynamy od obliczenia funkcji energii

  15. Na czym polega seamcarving? Wybieramy szew o najmniejszej energii (z reguły)

  16. Na czym polega seamcarving? To samo, tylko na oryginalnym obrazku

  17. Na czym polega seamcarving? Iterujemy wycinanie najmniej potrzebnych szwów do skutku

  18. Na czym polega seamcarving? Skoro można szwy usuwać, to można też wstawiać!

  19. Localwarping • Wyznaczamy ramkę obrazka (boundingbox) w postaci prostokąta • Definiujemy „odcinek brzegowy” jako sekwencję brakujących pikseli na krawędzi docelowej ramki • Iterujemy, aż do wypełnienia całego obrazka: • Wybieramy najdłuższy „odcinek brzegowy” w danej iteracji • Wstawiamy szew w „podobrazku” za pomocą seamcarving • W podobrazku mogą znajdować się brakujące piksele, więc przypisujemy im duży koszt, żeby uniknąć ich przesuwania

  20. Localwarping – nieco matematyczniej • Obliczamy „displacement field” u=(ux,uy) • Warping obrazka wejściowego: • Iout(x) = Iin(x+u(x)) Obrazek (ii): Na prawo od szwu, przesuwamy piksele o jeden w prawo, reszta się nie rusza, w powstałą dziurę wstawiamy szew Iout(x,y) = Iin(x – 1, y) – przesunięcie pikseli w prawo

  21. Jeszcze raz Na zdjęciu zaznaczone wszystkie szwy. Widać, że powstało trochę nieakceptowalnych deformacji 50-519

  22. Nakładamy siatkę 50-519

  23. Warpujemy w drugą stronę Używając „displacement field”: u, wracamy wierzchołkami siatki do pierwotnych pozycji pikseli 50-519

  24. Global warping A tutaj opowiem trochę o optymalizacji 50-519

  25. Global warping • Potrzebujemy funkcji, która: • Wymusi na siatce prostokątny kształt obrazka – wierzchołki na krawędzi obrazka oryginalnego, muszą trafić na krawędź docelową • Funkcja będzie zachowywać kształty i linie proste 50-519

  26. Global warping • Oznaczenia: • Siatka: V = { vi }, gdzie vi = (xi,yi) – pozycja wierzchołka siatki • Vin– siatka wejściowa • V – siatka wyjściowa – ten parametr optymalizujemy 50-519

  27. Global warping • Zachowanie kształtów: • Jak wiemy translacja, obrót oraz skalowanie zachowują kształt • Es definiuje funkcję energii, która jest niska, jeśli czworokąty definiujące siatkę przechodzą transformacje jak najbliższe wymienionym trzem • N – liczba czworokątów w siatce • Zhang et All w 2009 roku wymyślił poniższy wzór: x0,..,x3,y0,...,y3 – współrzędne wierzchołków czworokąta wyjściowego Z daszkami – współrzędne wierzchołków czworokąta wejściowego

  28. Zachowanie kształtów - uzasadnienie • Nie bijcie jeśli okaże się, że nie pamiętam algebry: • (AqTAq)-1 = Aq-1 (AqT)-1= Aq-1Aq (ostatnie przy założeniu, że macierz Aqjest ortogonalna, czyli np. translacja, obrót… • AqAq-1 (AqAqT) = zał. j.w. = AqAq-1I = I • Czyli w przypadku, gdy macierz Aq, jest ortogonalna, czyli w przypadku translacji, obrotu, skalowania składnik się zeruje. Gdyby wszystkie czworokąty przechodziły tylko takie transformacje, to Es(V) = 0

  29. Global warping • Zachowanie prostych i równoległych linii: • Wykrywamy linie w obrazku wejściowym (oryginalnym) • Przecinamy wszystkie linie krawędziami siatki wejściowej, żeby każdy powstały odcinek był całkowicie wewnątrz dokładnie jednego czworokąta (po ludzku, jak linia przechodzi przez dwa czworokąty, to dzielimy ją na dwie części) • Dyskretyzujemy kierunek linii [-pi/2, pi/2] wg 50 kubełków • Zapewniamy (poprzez optymalizację), że wszystkie proste z danego kubełka (ale różnych czworokątów) dostają wspólny kąt obrotu

  30. Global warping • Zachowanie prostych i równoległych linii (oznaczenia) • Dla każdego odcinka j, ej – wektor kierunku tego odcinka • q(j) – czworokąt zawierający odcinek j • m – numer kubełka • NL – liczba odcinków • θm – kąt obrotu kubełka m

  31. Global warping • Warunki brzegowe • L/R/T/B – left/right/top/bottom– wierzchołki brzegowe wejściowej siatki • w/h – szerokość/wysokość docelowego prostokąta • Chcemy przyciągnąć wierzchołki brzegowe siatki na obrazku oryginalnym, na brzeg obrazka docelowego • Wymuszamy tylko jedną współrzędną, nie chcemy wepchnąć wszystkich do rogów

  32. Global warping • Całkowita energia: • λL, λB – wagi • Ustawiamy λB na dużą wartość np. (108) • λL– w eksperymentach wyszło, że >= 10 działa dość dobrze – parametr mówiący jak bardzo chcemy zachowywać linie, to odzwierciedla pogląd autorów, że ludzkie oko jest bardziej wrażliwe na pokrzywione linie niż zniekształcone kształty

  33. Optymalizacja E • Inicjalizujemy wynikiem lokalnego warpingu (regularna siatka) • 10 iteracji poniższego algorytmu: • Ustaw θmi zaktualizuj V – w tym wypadku E jest funkcją kwadratową względem V i może zostać zoptymalizowana przez rozwiązanie układu równań liniowych (V ustawione na 400 wierzchołków ponoć działa dość szybko) • Ustaw V i zaktualizuj θm– Ponieważ wszystkie θmsą niezależne względem siebie, możemy je optymalizować osobno:

  34. Rezultaty i porównanie wyników

  35. Rezultaty i porównanie wyników

  36. Problemy Za duże braki w obrazku powodują widoczne skrzywienia

  37. Pytania?

  38. Dziękuję za uwagę!

More Related