Wizualizacja 3D obiektów i systemów biomedycznych Krzysztof Gdawiec Instytut Informatyki Uniwersytet Śląski
Co to jest wizualizacja danych? Wizualizacja danych jest rozległym obszarem nauki znajdującym się na przecięciu matematyki, informatyki, nauki percepcyjnej i poznawczej oraz inżynierii. Wizualizacja danych to informacja w postaci obrazu, komunikująca treść za pomocą barw, kształtów, linii, układu i hierarchii, najlepiej podana ze szczyptą kreatywności. Łączy techniczne umiejętności obróbki, analizy i interpretacji nierzadko olbrzymich ilości nieuporządkowanych danych z zasadami estetyki, innowacyjnym projektem i interakcją. W literaturze możemy znaleźć wiele innych definicji co to jest wizualizacja danych.
Poddziedziny wizualizacji danych Wyróżniamy dwie podstawowe poddziedziny: wizualizacja naukowa (ang. scientific visualization), wizualizacja informacji (ang. information visualization). W ostatnich latach pojawiła się trzecia poddziedzina, która leży pomiędzy dwoma pozostałymi. Jest to analityka wizualna (ang. visual analytics).
Wizualizacja naukowa Pojawiła się w latach 80. XX w. jako odpowiedź na rosnącą ilość danych generowanych w symulacjach komputerowych różnych procesów fizycznych, np. przepływu cieczy, konwekcji ciepła, deformacji materiału. Możemy ją opisać jako wizualizację trójwymiarowych zjawisk (architektonicznych, meteorologicznych, medycznych, biologicznych itp.), w których nacisk kładziemy na realistyczny rendering objętości, powierzchni, źródeł oświetlenia itd. Zatem dane są przestrzenne. Często spotykany skrót tego typu wizualizacji to scivis.
Wizualizacja informacji Wizualizacja bardziej abstrakcyjnych danych, np. dokumentów, relacji w postaci drzew, grafów czy sieci. Przetwarzamy dane abstrakcyjne w bardziej konkretną formę, która o wiele lepiej jest postrzegana przez obserwatora. W ostatnich latach za sprawą big data wizualizacje z tej poddziedziny zyskały na znaczeniu. Często spotykany skrót tego typu wizualizacji to infovis.
Analityka wizualna Powstała jako odpowiedź na potrzebę połączenia wizualizacji, analizy danych i eksploracji danych (ang. data mining). Najczęściej skupia się ona na procesach lub zbiorach danych, które są zbyt duże lub zbyt skomplikowane, aby je w pełni zrozumieć używając pojedynczego (statycznego) obrazu. W tym celu korzysta się z technik z eksploracji danych, wielu widoków oraz interaktywnych i iteracyjnych wizualnych oględzin.
Proces wizualizacji
Sposoby wizualizacji Wizualizacja interaktywna używana do odkrywania czegoś, przewidziana dla jednego badacza lub współpracowników, reaguje na interakcję z użytkownikiem, jakość prototypu. Wizualizacja prezentacyjna używana do komunikacji, przewidziana dla dużej grupy lub publiki, nie przewiduje interakcji z użytkownikiem, dopieszczona. Interaktywne opowiadanie prezentacja za pomocą interaktywnych stron internetowych.
Dlaczego wizualizacja danych jest przydatna? 1. Potwierdzenie znanego: potwierdzić (lub zaprzeczyć) dopasowanie danego modelu do danych, np. znaleźć rozkład wartości w danej dziedzinie, znaleźć korelację (lub jej brak) pomiędzy kilkoma zmiennymi, odpowiedzieć na precyzyjne (ilościowe) pytania. 2. Odkrycie nieznanego: pomoc w znalezieniu nowego modelu dla danych, np. znaleźć, który model najlepiej pasuje do danych, znaleźć zjawisko jakie stoi za danymi, odpowiedzieć na bardziej ogólnikowe (jakościowe) pytania.
Kiedy wizualizacja danych jest przydatna? 1. Zbyt duża ilość danych, np. nie mamy czasu na analizę wszystkich danych, chcemy pokazać przegląd, odkryć, które pytania są ważne, zawęzić poszukiwanie wizualnie lub analitycznie. 2. Jakościowe/złożone pytania, np. nie możemy uchwycić pytania w dokładne zapytanie, pytanie/cel jest jakościowe: chcemy zrozumieć co się dzieje, chcemy pokazać przegląd, odpowiedzieć na pytanie poprzez zobaczenie istotnych wzorców. 3. Komunikacja, np. chcemy pokazać rezultaty różnym (nietechnicznym) udziałowcom, chcemy nauczyć się czegoś o nowej dziedzinie, problemie.
Kiedy wizualizacja danych NIE jest przydatna? 1. Zapytania jeśli odpowiedź na pytanie może być zwarta, precyzyjna, to po co ją wizualizować? Np. Jaka jest wartość największa w zbiorze?. 2. Automatyczne podejmowanie decyzji jeśli decyzja może być zautomatyzowana, to po co używać człowieka w pętli decyzyjnej? Np. Jak zoptymalizować symulację numeryczną?. Należy zapamiętać, że wizualizacja jest głównie kompromisem pomiędzy kosztem i korzyściami koszt: wysiłek włożony w stworzenie i interpretację obrazu, korzyść: rozwiązany problem za pomocą interpretacji obrazu.
Przykłady wizualizacji danych
Powtórka z grafiki komputerowej Przestrzenie barw Przestrzeń RGB. Jest addytywną przestrzenią bazującą na trzech podstawowych barwach: czerwonej (ang. Red), zielonej (ang. Green) i niebieskiej (ang. Blue). żółty (1,1,0) biały (1,1,1) cyjan zielony (0,1,1) (0,1,0) czerwony (1,0,0) magenta (1,0,1) czarny (0,0,0) niebieski (0,0,1)
Przestrzeń HSB. Bazuje na trzech komponentach: barwie (ang. Hue), nasyceniu (ang. Saturation) i jasności (ang. Brightness). Jest to nieliniowa transformacja przestrzeni RGB. barwa N M B CZ nasycenie Ż CY Z jasność C
Grafika rastrowa i wektorowa Grafika rastrowa TV, monitory, telefony. Zdjęcia. GIF, JPG itp. Duża ilość pamięci (bufor ramki). Trudno narysować linię. Dowolne wypełnienie. Grafika wektorowa Plotery, laserowe wyświetlacze. Clip art, ilustracje. PostScript, PDF, SVG itp. Mała ilość pamięci (lista wyświetlania). Łatwo narysować linię. Wypełnienie jednym kolorem/gradientem/teksturą.
Grafika foto- i niefotorealistyczna
Grafika 3D Vertices Vertex Processor Transformed Vertices CPU Bus Assemble Geometry Assembled Primitive Rasterizer Interpolated Values Fragment Processor Pixels Monitor
Model oświetlenia Phonga: c = c d k d cos θ + c s k s (cos ϕ) m = c d k d (n l) + c s k s (r v) m, gdzie c d kolor światła rozproszonego, c s kolor światła odbitego, k d stopień rozproszenia światła, k s stopień odbicia światła. Do obliczenia wektora odbicia r stosuje się wzór: r = 2(n l)n l. l n θ θ ϕ r v oko
Obliczanie wektora normalnego dla trójkąta Niech P 1 = (x 1, y 1, z 1 ) T, P 2 = (x 2, y 2, z 2 ) T, P 3 = (x 3, y 3, z 3 ) T. Wówczas v 1 = [x 2 x 1, y 2 y 1, z 2 z 1 ] T, v 2 = [x 3 x 1, y 3 y 1, z 3 z 1 ] T oraz n = v 1 v 2, gdzie [v 1 x, v 1 y, v 1 z ] T [v 2 x, v 2 y, v 2 z ] T = P 2 v 1 n v 2 P 1 [v 1 y v 2 z v 1 z v 2 y, v 1 z v 2 x v 1 x v 2 z, v 1 x v 2 y v 1 y v 2 x ] T P 3
Uśrednianie wektorów normalnych n 34 n n 23 v 4 n 41 n 12 v 3 v 1 v 2
per face per vertex (uśrednianie normali)
Cieniowanie geometrii (płaskie, Gouraud, Phonga)
Reprezentacja danych Uporządkowane Nieuporządkowane Dyskretne Porządkowe (ang. ordinal), np. rozmiar S, M, L, XL,... Ilościowe (ang. quantitative), np. liczebność 1, 2, 3,... Nominalne (ang. nominal), np. kształty,,, Kategorie, np. narodowość Ciągłe Zakresowe, np. szerokość, temperatura Wartości cykliczne, np. kierunki, barwy
Zbiór danych (ang. dataset)