Rectangling panoramic images via warping Mateusz Bujalski 50-519.

Slides:



Advertisements
Podobne prezentacje
RYSUNKU TECHNICZNEGO GEOMETRYCZNE ZASADY
Advertisements

Excel Narzędzia do analizy regresji
Wykład 4 2. Przykłady ruchu 1.5 Prędkość i przyśpieszenie c.d.
Sympleksy n=2.
II Tutorial z Metod Obliczeniowych
Metody rozwiązywania układów równań liniowych
Krzysztof Skabek, Przemysław Kowalski
Algorytm Dijkstry (przykład)
FIGURY PRZESTRZENNE.
W królestwie czworokątów
Maria Pera Bożena Hołownia Agnieszka Skibińska
Filip Starzyński Grafika 2d - Podstawy Filip Starzyński
Przekształcenia afiniczne
CZWOROKĄTY Patryk Madej Ia Rad Bahar Ia.
Bryły i figury w architekturze miasta Legionowo:
PRZYKŁAD ROZWIĄZANIA TARCZY
Ulepszenia metody Eigenfaces
Rozpoznawanie Twarzy i Systemy Biometryczne, 2005/2006
Rozpoznawanie Twarzy i Systemy Biometryczne, 2005/2006
1.
Eliminacja powierzchni niewidocznych Wyznaczanie powierzchni widocznych Które powierzchnie, krawędzie i punkty są widoczne ze środka rzutowania (albo wzdłuż.
Usuwanie zakłóceń Rysowanie w przestrzeni dyskretnej powoduje powstanie w obrazie zakłóceń (Aliasing) Metody odkłócania (Antyaliasing) zwiększenie rozdzielczości.
Paweł Kramarski Seminarium Dyplomowe Magisterskie 2
Geometria obrazu Wykład 13
Wielkości skalarne i wektorowe
Tworzenie nowej biblioteki
Pola czworokątów Skąd się biorą wzory?.
Grafika wektorowa i bitmapa
Wielokąty w naszym życiu
Wykład 11. Podstawy teoretyczne odwzorowań konforemnych
WYKŁAD 2 Pomiary Przemieszczeń Odkształcenia
Prezentacja A.Burghardt
Najprostszy instrument
Komputerowe metody przetwarzania obrazów cyfrowych
Kąty w wielościanach ©M.
Systemy wspomagania decyzji
Metody iteracyjne rozwiązywania układów równań liniowych
Wielokąty Wybierz czworokąt.
Autor: dr inż. Karol Plesiński
Prezentacja dla klasy V szkoły podstawowej
Zasady przywiązywania układów współrzędnych do członów.
Źródła błędów w obliczeniach numerycznych
Rozwiązywanie liniowych układów równań metodami iteracyjnymi.
Robust Image Retargeting via Axis-Aligned Deformation Mateusz Bujalski Daniele Panozzo Ofir Weber Olga Sorkine.
Aplikacje internetowe
Elementy multimedialne na stronie
Możesz kliknąć na odnośnik. Aby wyjść naciśnij Esc
Grafika i komunikacja człowieka z komputerem
Grafika i komunikacja człowieka z komputerem
Matematyka 4 Prostokąt i kwadrat
Grafika Komputerowa i wizualizacja
Wyznaczniki, równania liniowe, przestrzenie liniowe Algebra 1
Grafika i komunikacja człowieka z komputerem
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
Grafika i komunikacja człowieka z komputerem
Najważniejsze twierdzenia w geometrii
Vademecum: Bryły Zagadnienia.
Prezentacja dla klasy III gimnazjum Przedmiot: matematyka Dział: Funkcja liniowa Temat: Pole czworokąta a funkcja liniowa.
Materiały pochodzą z Platformy Edukacyjnej Portalu Wszelkie treści i zasoby edukacyjne publikowane na łamach Portalu
POLA FIGUR I RESZTA.
Warstwowe sieci jednokierunkowe – perceptrony wielowarstwowe
Przetwarzanie obrazów
Grafika 2d - Podstawy. Kontakt Daniel Sadowski FTP: draver/GRK - wyklady.
MAPA NUMERYCZNA: METODY TWORZENIA MAPY NUMERYCZNEJ WIELKOSKALOWEJ K Jarosław Bosy.
1.problem próbkowania (sampling problem) dobór charakterystycznych punktów powierzchni w celu uzyskania najlepszego efektu przy minimalizacji ilości danych.
GEODEZYJNE W PRZETRZENIACH METRYCZNYCH
Rzutowania Rzutowanie jest przekształceniem przestrzeni trójwymiarowej na przestrzeń dwuwymiarową. Rzutowanie polega na poprowadzeniu prostej przez dany.
Matematyka przed egzaminem czyli samouczek dla każdego
Metody matematyczne w Inżynierii Chemicznej
Twierdzenie Pitagorasa w układzie współrzędnych.
Zapis prezentacji:

Rectangling panoramic images via warping 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

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,v f(u,v) = (x, y)

Co to jest warping (bez dodatków)? – Korekcja dystorsji – Fajne efekty

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

Problem Ten jest lepszy?

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-aware fill

Problem Dodatkowe drzewko i budynek na niebie?

Opis algorytmu Dwie fazy: – Local warping – Global warping

Local warping

Local warping Drobna modyfikacja algorytmu seam carving Modyfikacja polega na pozwoleniu, aby szew nie przechodził przez cały obraz

Na czym polega seam carving? 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

Na czym polega seam carving?

Zaczynamy od obliczenia funkcji energii

Na czym polega seam carving? Wybieramy szew o najmniejszej energii (z reguły)

Na czym polega seam carving? To samo, tylko na oryginalnym obrazku

Na czym polega seam carving? Iterujemy wycinanie najmniej potrzebnych szwów do skutku

Na czym polega seam carving? Skoro można szwy usuwać, to można też wstawiać!

Local warping Wyznaczamy ramkę obrazka (bounding box) 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ą seam carving W podobrazku mogą znajdować się brakujące piksele, więc przypisujemy im duży koszt, żeby uniknąć ich przesuwania

Local warping – nieco matematyczniej – Obliczamy displacement field u=(u x, u y ) – Warping obrazka wejściowego: I out (x) = I in (x+u(x)) Obrazek (ii): Na prawo od szwu, przesuwamy piksele o jeden w prawo, reszta się nie rusza, w powstałą dziurę wstawiamy szew I out (x,y) = I in (x – 1, y) – przesunięcie pikseli w prawo

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

Nakładamy siatkę

Warpujemy w drugą stronę Używając displacement field: u, wracamy wierzchołkami siatki do pierwotnych pozycji pikseli

Global warping A tutaj opowiem trochę o optymalizacji

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

Global warping Oznaczenia: – Siatka: V = { v i }, gdzie v i = (x i,y i ) – pozycja wierzchołka siatki – V in – siatka wejściowa – V – siatka wyjściowa – ten parametr optymalizujemy

Global warping Zachowanie kształtów: – Jak wiemy translacja, obrót oraz skalowanie zachowują kształt – E s 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: x 0,..,x 3,y 0,...,y 3 – współrzędne wierzchołków czworokąta wyjściowego Z daszkami – współrzędne wierzchołków czworokąta wejściowego

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

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

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

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

Global warping Całkowita energia: – λ L, λ B – wagi – Ustawiamy λ B na dużą wartość np. (10 8 ) – λ 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

Optymalizacja E Inicjalizujemy wynikiem lokalnego warpingu (regularna siatka) 10 iteracji poniższego algorytmu: – Ustaw θ m i 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 θ m są niezależne względem siebie, możemy je optymalizować osobno:

Rezultaty i porównanie wyników

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

Pytania?

Dziękuję za uwagę!