PV251 Vizualizace Jaro 2016 Výukový materiál 12. přednáška: Specifické aplikace vizualizace Dosud jsme se bavili o vizualizacích v obecném kontextu. Existují však oblasti, kde vizualizace slouží k velmi specifickým účelům a hraje zde nezastupitelnou roli. My se zaměříme na rozsáhlou disciplínu vizualizace vědeckých dat (scientific visualization), jejíž významnou součástí je vizualizace medicínských dat (visualization in medicine). Scientific visualization Vizualizace vědeckých dat je v podstatě grafická reprezentace jistých zkoumaných jevů. Samotná vizualizace pak může být součástí výzkumného procesu, protože slouží k pochopení, interpretaci a prozkoumání. Dokonce může významně ovlivňovat samotný směr výzkumu. Podobně může být vizualizace využita i přímo v aplikačním prostředí, například u chirurgických zákroků. V této části tedy představíme stručný úvod do oblasti scientific visualization. Scientific visualization pipeline Vizualizační pipeline pro scientific data je obohacena o část týkající se aplikace technik pro scientific visualization na připravená data. Tato fáze představuje konverzi ze specifických modelů ve vědecké doméně na modely v grafické doméně. Soubor technik, reprezentací a modelů pro tento účel vytváří jádro vizualizace vědeckých dat. Reprezentace dat U vizualizace vědeckých dat je daný jev často modelován za použití měření v diskrétní sadě bodů v prostoru. Výsledkem měření jsou vzorky reprezentující matematickou funkci generující daný jev. Často se jedná o mesh – síť či topologii asociovanou s body, na které je možné provést interpolaci. Z pohledu dat pracujeme se sadou atributů přiřazených sadě bodů v prostoru. Pozice těchto bodů může být zadána explicitně pomocí (x, y, z) souřadnic nebo může být definována implicitně (jako například pomocí pravidelné mřížky). Nyní se zaměříme na popis běžně používaných domén ve vizualizaci vědeckých dat. Pro jednoduchost budou ilustrace ukazovat domény ve 2D, ale budeme popisovat 3D verzi, protože právě ta se nejčastěji ve vědeckých vizualizacích vyskytuje. 1. Pravidelná mřížka Je jednou z nejpoužívanějších reprezentací v dané doméně, protože je velmi jednoduchá a přímočará při použití. Navíc velmi přirozeně odpovídá konceptu polí (arrays) v programovacích jazycích. Pro pravidelnou mřížku je rovněž definována celá řada matematických operací a tvrzení, která platí při uniformním vzorkování. Platí, že mřížka je zarovnaná na osy souřadnic, tedy že jednotlivé čáry mřížky jsou rovnoběžné s těmito osami. Dále musí platit, že vzdálenost mezi čarami mřížky, která odpovídá velikosti buňky mřížky, je ve všech osách stejná. Za topologii této mřížky můžeme považovat sadu samostatných buněk, které rozdělují danou doménu a mohou být využity například při interpolaci. Pozici libovolného bodu můžeme odvodit z jeho indexu a z omezení dané domény. Například ve 3D: x = xmin + ix*(xmax-xmin), ix in [0,...,nx-1] y = ymin + iy*(ymax-ymin), iy in [0,...,ny-1] z = zmin + iz*(zmax-zmin), iz in [0,...,nz-1] Umístění bodů může být buď v průsečících čar mřížky, nebo ve středu jednotlivých buněk. 2. Perimeter mesh (rectilinear lattice) Perimeter mesh označovaný také jako rectilinear lattice je mřížka s rovnoběžnými čarami, které ale nemusí být rozložený uniformně. Na rozdíl od pravidelné mřížky tedy musí tato struktura obsahovat informaci o pozicích čar mřížky ve všech osách. Reprezentace bodu ve 3D v perimeter síti: x = xgrid[ix] where ix in [0,...,nx-1] y = ygrid[iy] where iy in [0,...,ny-1] z = zgrid[iz] where iz in [0,...,nz-1] xgrid = (x0, ..., x{n-1}) ygrid = (y0, ..., y{n-1}) zgrid = (z0, ..., z{n-1}) 3. Nepravidelná mřížka Topologie je stejná jako u výše uvedených mřížek, ale body jsou rozmístěny libovolně. Konektivita mezi body je implicitně dána strukturou meshe, ale díky její nepravidelnosti je nutné zadávat souřadnice jednotlivých bodů explicitně. Ve všech dosud uvedených reprezentacích hraje důležitou roli uspořádání bodů do mřížky a to zejména při jejich implementaci. Při ukládání do seznamu sousední body odpovídají procházení mřížky v určitém směru – seznam tedy určitým způsobem reprezentuje část konektivity. 4. Trojúhelníková síť Tato síť je tvořena trojúhelníkovými buňkami. 5. Polygonální síť V této síti mají buňky libovolný počet vrcholů. Ve 2D stačí pro reprezentaci uspořádaný seznam vrcholů jednotlivých buněk. Tatáž reprezentace ve 3D je dostačující, pokud víme, že jednotlivé buňky jsou konvexní. V opačném případě musí být přidána informace o hranách a/nebo stěnách. 6. Diskrétní body Tato reprezentace se využívá v případech, kdy nemáme žádné informace o vzájemném vztahu mezi jednotlivými body. Takováto data můžeme získat výběrem náhodných vzorků, jako výstup ze senzorů apod. 7. Křivková reprezentace Křivky jsou považovány za po částech lineární objekty umístěné v rovině nebo v prostoru. Křivky jsou reprezentovány seznamem explicitně zadaných bodů nebo seznamem indexů do pole bodů. 8. Povrchová reprezentace Povrchy jsou reprezentovány sadou 2D objektů umístěných v prostoru. Geometrie je reprezentována stejným způsobem jako u výše zmíněných polygonálních sítí v rovině. Techniky pro scientific visualization Vědecká data nabývají různých tvarů a velikostí a jsou většinou prostorová. Zaměříme se na techniky pro reprezentaci skalárních a vektorových dat. Skalární data: - Slice planes - Domain clipping (region of interest - ROI) - Izopovrchy - Glyfy - Objemová vizualizace Vektorová data: - Glyfy - Streaklines (paprsky) - Ribbons (pásy) Skaláry – slice planes Slice planes neboli ořezávací roviny umožňují „nařezání“ 3D prostoru do 2D rovinných řezů. Na tyto řezy může být posléze namapována barevná škála. Orientace těchto rovin je nejčastěji horizontální, vertikální nebo můžeme využít více ořezávacích rovin najednou. Skaláry – domain clipping Domain clipping, neboli Region of interest (ROI), je technika velmi podobná ořezávacím rovinám. Nevytváříme však 2D řez, ale ořezávací rovinu využíváme k odřezání části domény. Takto vzniklá subdoména se nazývá oblastí zájmu (region of interest). Subdoména může vzniknout ořezáním podle určitého tělesa – kvádru, koule, … (viz obrázky). Skaláry – izopovrchy Izopovrch pro určitou hodnotu d je definován jako sada bodů v dané doméně, pro které má daná funkce hodnotu d. Výsledkem je povrch či sada povrchů. Ve 2D je tato situace definována pomocí izočar. Příklad izopovrchu: Kombinace s předchozími technikami Kombinace se dvěma ořezávacími rovinami: Kombinace s domain clipping: Izopovrch je renderován průhledně: Obarvení izopovrchu stejnou barevnou škálou, jaká je použita pro ořezávací roviny: Kombinace průhlednosti a obarvení izopovrchu: Vykreslení více vnořených izopovrchů za využití průhlednosti a mapování barevné škály: Kombinace zobrazení více vnořených izopovrchů s ořezávacími rovinami: Využití jiné barevné škály pro zvýraznění určité vlastnosti izopovrchu: Skaláry – glyfy V tomto případě je každý datový bod reprezentován malým objektem v prostoru, který je obarven podle zadané barevné škály na základě určité hodnoty uložené v tomto bodě. Obrázek zobrazuje každý bod vstupní datové množiny. Všimněte si Moiré efektu. Výběr náhodné podmnožiny vstupních bodů: Specifickým případem je zobrazení pouze hraničních bodů: Skaláry – vizualizace objemu U objemové vizualizace nejčastěji ovlivňujeme průhlednost a barvu materiálu, čímž simulujeme náhled skrz některé oblasti a naopak neprůhlednost jiných oblastí. Vizualizace objemu, průhlednost je využita pro možnost nahlédnutí dovnitř skrz oblasti obklopující střed zájmu. Ten by měl být červený, ale není vidět, protože se na něj díváme skrz „zelenou mlhu“. Kombinace s ořezávacími rovinami: Vektory – glyfy Pokud chceme vizualizovat atributy dat, které jsou zadány ve formě vektorů, musíme řešit jiný typ problému. Nejjednodušším a zároveň nejpřirozenějším způsobem reprezentace je znázornění vektorů pomocí šipek. Hedhehog – ježek: Kombinace s obarveným izopovrchem: Menší množství zobrazených vektorů zlepší vnímání. Vektory jsou rozmístěny stále v pravidelné mřížce: Kombinace předchozí techniky se dvěma ořezávacími rovinami: Vektory jsou rozmístěny náhodně, což zlepší vnímání toku: Složitější reprezentace ukazující sadu vnořených izopovrchů společně s vektory. Pro zlepšení interpretace je z vektorů odstraněna šipka: Vektory – streaklines (paprsky) Namísto vykreslení vektorového pole pomocí oddělených glyfů (jako například šipek v předchozím případě) použijeme křivky pro vykreslení lineárních prvků sledujících tyto křivky. Intuitivně můžeme tuto reprezentaci interpretovat jako umístění částice do toku a sledování její trasy. Paprsky vyzařující s jednoho bodu společně s ořezávacími rovinami: Paprsky vycházející z jednoho bodu obarvené podle skalárních dat: Stejný případ, paprsky jsou reprezentovány trubkami: Kombinace trubek s ořezávacími rovinami: Kombinace více izopovrchů s vizualizací vektorového toku pomocí trubek: Čáry reprezentující vektory jsou vykresleny pomocí glyfů (zde šipky) podél křivek: Předchozí technika v kombinaci s horizontální ořezávací rovinou: Vektory – ribbons (pásy) Pokud chceme ve vektorovém poli zobrazit i informaci o kroucení, musíme pro vizualizaci využít jinou reprezentaci než je čára nebo trubka. Stejná reprezentace v kombinaci se dvěma ořezávacími rovinami: Ukázky: V animaci trajektorie cyklonu ERICA z ledna 1989 čáry znázorňují trajektorie a změny teploty vzduchových mas, které vznikají u hladiny moře a vystupují nahoru do atmosféry: http://www.youtube.com/watch?v=eJy5dHMY-S4 Tornádo: http://www.youtube.com/watch?NR=1&feature=endscreen&v=D_f84nIB9J8 Medicínská vizualizace Medicínská vizualizace je speciální oblastí vizualizace vědeckých dat, jejíž kořeny byly položeny v 80. letech minulého století. Historie ale sahá hluboko do minulosti – anatomické ilustrace vznikaly již pod rukama Leonarda da Vinciho. My však bereme v potaz vztah scientific visualization k počítačové grafice, kdy hledáme vhodnou reprezentaci pro uložení 3D geometrie a efektivní algoritmy pro její renderování. Tento proces je dále ovlivněn technikami zpracování obrazu a přímo analýzou medicínského obrazu. Medicínská vizualizace se zabývá analýzou, vizualizací a prozkoumáváním výsledných vizualizací. Hlavní aplikační oblasti medicínské vizualizace jsou:  Výukové účely  Diagnóza  Plánování léčby  Podpora při operativních zákrocích Výukové účely Vizualizační techniky jsou podstatnou součástí všech anatomických a chirurgických výukových systémů. Příkladem je software VoxelMan: Hlavním rozdílem mezi anatomickými a chirurgickými trénovacími aplikacemi je skutečnost, že v anatomii pracujeme se statickými modely, zatímco v chirurgii musíme uvažovat deformovatelné objekty, které simulují měkkou tkáň při působení síly. Diagnóza Diagnóza odvozená z radiologických dat využívá interaktivní 2D i 3D vizualizace. Pokud je například stav pacienta nejasný (například se jedná o složitou zlomeninu), je využití 3D vizualizace velmi užitečná při získání všeobecného náhledu na daný problém. Plánování léčby Interaktivní 3D vizualizace relevantních anatomických struktur může vylepšit a zpřesnit plánování chirurgického zákroku, minimálně invazivních zákroků atd. Podpora při operativních zákrocích Medicínská vizualizace založená na 3D datech čím dál častěji vstupuje přímo na operační sál. Pracuje se se snímky získanými jak před operací, tak během operace. Jejich průběžné vyhodnocování poskytuje podporu přímo při zákroku. Pro toto využití je nutná hardwarová podpora v podobě různých speciálních obrazovek a jiných zařízení. Ukázky: Dentální haptika: http://www.youtube.com/watch?v=XvX6b3mRqns&list=PLBCF0D6066D7BB5AB&ind ex=13 Scientific visualization from the atom to the universe: https://www.youtube.com/watch?v=X_bFDebZALA Více informací například v knize Visualization in Medicine – Theory, Algorithms and Applications. Preim & Bartz, ISBN 9780123705969.