• Nie Znaleziono Wyników

Geometria obrazu

N/A
N/A
Protected

Academic year: 2021

Share "Geometria obrazu"

Copied!
23
0
0

Pełen tekst

(1)

Geometria obrazu

Wykład 12

Zderzenia 1. Bryły ograniczające.

2. Boundary volume hierarchy (BVH).

3. Funkcja kosztu kolizji.

4. Wykrywanie kolizji - metoda klasyczna,

- metoda stochastyczna,

- pole odleglości.

(2)

Definicja.

Bryłą ograniczającą (brzegową, bounding volume) dla zbioru obiektów S nazywamy domknięty wielościan zawierający wszystkie obiekty z danego zbioru.

Bryły ograniczające możemy definiować również dla podzbiorów zbioru S, w tym pojedynczych obiektów.

Powinny one spełniać następując wymagania:

- dobrze przybliżać aproksymowane obiekty, - być łatwe w konstrukcji,

- łatwo aktualizować się,

- pozwalać na efektywne sprawdzanie przecięć, - wymagać małej pamięci,

- łatwo łączyć się w grupy.

(3)

Najprostsze bryły ograniczające, dla których można łatwo sprawdzić przecięcie:

-kula – badamy odległość między środkami,

-prostopadłościan zorientowany zgodnie z kierunkiem osi – sprawdzamy zależności między współrzędnymi boków

-prostopadłościan dowolnie zorientowany - analizujemy przecięcia płaszczyzn wyznaczających boki prostopadłościanu.

[inst.eecs.berkeley.edu]

(4)

Przykłady brył ograniczających.

axis-aligned bounding box (AABB)

sphere

oriented

bounding box (OBB)

discrete oriented polytope

(k-DOP)

convex hull swept sphere

volume (SSV)

(5)

Przykład.

https://www.youtube.com/watch?v=aTbw71EpamY

(6)

Prostą rozdzielającą nazywamy prostą taką, że rzuty wielościanów w kierunku prostopadłym do prostej są rozłączne.

Twierdzenie (o osi rozdzielającej, Gottschalk et al. ’96).

Dwa wypukłe wielościany są rozłączne wtedy i tylko wtedy, gdy istnieje oś rozdzielająca prostopadła do ściany jednego z wielościanów lub

prostopadła do krawędzi obu wielościanów.

(7)

Dowód.

Właściwie wystarczy tylko pokazać, że dla wielościanów, które można rozdzielić, istnieje prosta rozdzielająca prostopadła do pary krawędzi z obu wielościanów.

Płaszczyznę rozdzielającą oba wielościany możemy przesunąć w stronę każdego z wielościanów aż będzie styczna do każdego z nich. Badamy płaszczyzny wyznaczone przez ściany przyległe do punktu (krawędzi) styczności. Można przyjąć, że zmiana zachodzi w sposób ciągły

(„owijamy” płaszczyznę wokół wielościanu). Niech żadna ściana

wielościanów nie wyznacza płaszczyzny rozdzielającej. Ale wzajemna orientacja przeciwległych płaszczyzn musi w pewnym momencie ulec zmianie. Wtedy dostajemy dwie równoległe płaszczyzny separujące wielościany zawierające krawędzie wielościanów. Zatem prosta

prostopadła do tych płaszczyzn jest prostą rozdzielającą i jest prostopadła do pary krawędzi obu wielościanów.

(8)

Bazując na bryłach ograniczających możemy stworzyć bounding volume hierarchy, czyli drzewiastą strukturę danych określoną na obiektach

geometrycznych w ten sposób, że

- każdemu wierzchołkowi v drzewa odpowiada bryła ograniczająca sumę obiektów wyznaczających bryły odpowiadające synom v,

- liście zawierają informacje o obiektach.

Struktura powinna mieć następujące własności:

- bryły ograniczające powinny dobrze aproksymować obiekty (jak najmniej nachodzić na siebie),

- na każdym poziomie każdy obiekt powinien należeć do co najwyżej jednej bryły pokrywającej,

- drzewo powinno być zbalansowane.

(9)

Przykład.

Trzy poziomy 18-DOP hierarchii.

[Teschner et al. „Colision Detcttion for Deformable objeects”, 2005]

(10)

Bounding volume hierarchy tworzy się zwykle jedną z dwóch metod:

- bottom-up : najpierw znajdujemy bryły ograniczające małe grupy bliskich obiektów, a następnie łączymy je w coraz większe zbiory, - top-down : znajdujmy bryłę ograniczającą cały zbiór obiektów S, a następnie dzielimy S na podzbiory (np. minimalizując sumę rozmiarów brył ograniczających odpowiadających synom danego węzła lub

minimalizując rozmiar maksymalnej bryły ograniczającej odpowiadającej synowi danego węzła).

Metoda bottom-up jest zwykle kosztowniejsza, ale uwzględnia topologię zbioru. Drugą metodę łatwiej zaprogramować wybierając odpowiedni sposób podziału zbioru.

Przykłady.

https://www.youtube.com/watch?v=06VzKfrrvpg https://www.youtube.com/watch?v=nFd9BIcpHX4 https://www.youtube.com/watch?v=0rIqrxkKY50

(11)

W przypadku zmian położenia obiektu, struktura danych musi być aktualizowana. W zależności od rodzaju ruchu lepsze są różne bryły ograniczające. Np. w przypadku sztywnych obiektów:

- dla przesunięć i obrotów: sfera, SSV, OBB, - tylko dla przesunięć: AABB, DOP.

Wtedy bryły ograniczające dla obiektów nie ulegają dużej zmianie.

Zmieniają się bryły odpowiadające węzłom na ścieżce od analizowanego liścia do korzenia.

Podobnie jest w przypadku obiektów miękkich, z tym, że trzeba tu również zmienić postać liścia. Operacje te nie są zbyt trudne np. w

przypadku DOP, gdzie bryła ograniczająca odpowiadająca węzłowi jest

„sumą” brył odpowiadających synom tego węzła (ściany sumy wyznaczane są przez ściany brył składowych) .

(12)

Funkcja kosztu kolizji.

Funkcję kosztu kolizji definiujemy w następujący sposób (Weghorst, Gottschalk, Klosowski) :

T = NuCu + NvCv + NpCp, gdzie Nu - liczba aktualizowanych brył ograniczających,

Cu - oszacowanie kosztu aktualizacji bryły ograniczającej, Nv - liczba przecinających się brył ograniczających,

Cv - oszacowanie kosztu sprawdzenia, czy bryły ograniczające przecinają się,

Np - liczba par sprawdzanych obiektów,

Cp - oszacowanie kosztu sprawdzenia oddziaływania pary obiektów.

Niestety optymalizacja tej funkcji zależy zwykle od specyficznych własności problemu, a zmniejszenie jednego ze współczynników zazwyczaj zwiększa pozostałe.

(13)

Wykrywanie kolizji.

Niech BH(C) oznacza bryłę ogranicza- jącą odpowiadającą wierzchołkowi C.

procedure traverse(A,B);

if BH(A) i BH(B) nie przecinają się then return;

if A i B są liśćmi

then zbadaj przecięcia obiektów z BH(A) z obiektami z BH(B) else for wszyscy synowie A i B do traverse(syn(A),syn(B));

Możemy to nieco usprawnić.

Aby szybko minimalizować prawdo- podobieństwo przecięcia badamy prze- cięcie mniejszej bryły ograniczającej z bryłami „synów” drugiej.

[T.Mezger, Bounded Volume Hierarchies, 2005]

(14)

Przykład.

Binarne drzewo BVH.

[T.Mezger, Bounded Volume Hierarchies, 2005]

(15)

Przykład.

Czwórkowe drzewo BVH.

[T.Mezger, Bounded Volume Hierarchies, 2005]

(16)

Zalety i wady drzewa o większym stopniu:

- mniejsza głębokość rekursji,

- mniejsza liczba wierzchołków implikuje mniejsze Nu,

- szybsza analiza niż w drzewie binarnym, gdy Cv jest małe (np. dla k- DOP),

- większe Nv, gdy liście nie kolidują a ich przodkowie tak.

Przykład.

https://www.youtube.com/watch?v=UNdHaahy8P0

(17)

Podejście stochastyczne.

Zdefiniujmy prawdopodobieństwo przecięcia się dwóch brył ograniczających w następujący sposób:

P(Ai,Bj) = (Vol (Ai) + Vol (Bj) )/(Vol(A) + Vol(B)),

gdzie A i B są przecinającymi się przodkami Ai i Bj (w przeciwnym przypadku P(Ai,Bj) = 0).

Poszukując najbardziej prawdopodobnych miejsc kolizji będziemy wybierać w drzewie BVH ścieżki o największym

prawdopodobieństwie sukcesu.

Niech q oznacza kolejkę priorytetową par węzłów uporządkowaną względem prawdopodobieństwa przecięć odpowiednich brył ograniczających.

(18)

Algorytm.

procedure traverse(A, B);

while q nie jest pusta do begin

A, B  q.pop;

for wszyscy synowie A i B do

if P(Ai,Bj) jest dostatecznie duże then return „kolizja”

else if P(Ai,Bj) > 0

then q.insert((Ai,Bj) , P(Ai,Bj));

end;

(19)

Metoda elastycznych powierzchni.

Badamy mniej zależności między obszarami, które są względnie daleko i zwiększamy liczbę punktów kontrolnych w miarę zbliżania się

obiektów.

[Teschner et al. „Colision Detcttion for Deformable objects”, 2005]

(20)

Pole odległości.

Definiujemy funkcję D: R3  R w następujący sposób:

D(p) = sign(p)dist(p),

Gdzie dist( ) oznacza odległość do najbliższego punktu powierzchni, a sign( ) przyjmuje wartość ujemną wewnątrz obiektu.

Pole odległości określamy z pomocą drzew ósemkowych, BSP lub np.

diagramów Voronoi, dzieląc przestrzeń na obszary, w których będzie obliczana funkcja odległości.

Chcąc wykryć kolizję badamy pary obiektów i analizujemy ich położenie względem pól odległości.

(21)

Możemy też określać pola odległości względem konkretnych obiektów.

Przykłady.

https://www.youtube.com/watch?v=-yxF7r9hxPg

[Teschner et al. „Colision Detcttion for Deformable objeects”, 2005]

(22)

Podział przestrzeni z pomocą drzew czwórkowych.

Przestrzeń, w której badamy zderzenia możemy podzielić na obszary w zależności od liczby znajdujących się w nich obiektów - im więcej

obiektów, tym podział jest gęstszy.

Wtedy możemy ograniczyć się jedynie do badania przecięć obiektów należących do tego samego obszaru.

Przykład.

https://www.youtube.com/watch?v=fuexOsLOfl0

(23)

Dziękuję za uwagę.

Cytaty

Powiązane dokumenty

Wynikiem działania tego filtru jest wybranie piksela o wartości środkowej wszystkich pikseli pod maską, czyli dla filtru 3x3 będzie to taka wartość punktu, że wśród

strukturującego a o ij odpowiednich pikseli obrazu, to piksel wskazywany przez punkt początkowy przyjmuje wartość (s ij o ij

Zaletą stosowania transformaty DCT w kompresji jest to, że większość współczynników jest zwykle bliska 0 – po kwantyzacji wyzerują się, co redukuje liczbę bitów potrzebną

Jest to model wynikający z właściwości odbiorczych ludzkiego oka, w którym wrażenie widzenia dowolnej barwy można wywołać przez zmieszanie w ustalonych proporcjach trzech

Obraz dzieli się na obszary zatopione i nie, które wyznaczają podział „geodezyjny”.. W zależności od wybranej strategii otrzymujemy

gradientu (prostopadłego do szukanej krawędzi), dla których wartość gradientu nie jest większa (lub jednostronnie równa) od wartości gradientu sąsiadów.. W ten sposób

3.Wyznaczamy zbiór S’ lokalnych minimów w triangulacji Delaunay oraz podzbiór E’ zbioru E krawędzi, które łączą punkty z S’ z punktem o..

Wyznaczenie mierników dla działania Zapewnienie odpowiedzialności za dzia realizację łań Dokonanie pomiaru Zapewnienie odpowiednich warunków Porównanie osiągniętych wyników