Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Térfogatvizualizáció Szirmay-Kalos László. Térfogati modellek (skalár mezők) 3D tér pontjaiban egy skalár érték Skalár: hőmérséklet, sűrűség nyomás, potenciál,

Hasonló előadás


Az előadások a következő témára: "Térfogatvizualizáció Szirmay-Kalos László. Térfogati modellek (skalár mezők) 3D tér pontjaiban egy skalár érték Skalár: hőmérséklet, sűrűség nyomás, potenciál,"— Előadás másolata:

1 Térfogatvizualizáció Szirmay-Kalos László

2 Térfogati modellek (skalár mezők) 3D tér pontjaiban egy skalár érték Skalár: hőmérséklet, sűrűség nyomás, potenciál, … Származás: Euler-i szimuláció, Rekonstrukció (tomográfia) tárolás: 3D textúra vagy „voxel tömb” x y z v(x,y,z)

3 Térfogati modell megjelenítése l Megjelenítés fényszóró anyag (participating media) analógiáját felhasználva (belsejébe belelátunk) l Adott szintfelület kiemelése (külsőt lehámozzuk) Transzfer függvény Sűrűség + deriváltak v grad v Optikai paraméterek Kép szintézis Kép Hesse

4 Fényszóró közeg l Albedo a: a nem-elnyelődés valószínűsége feltéve, hogy az ütközés bekövetkezett l Fekete test: albedo = 0 dsds A=1 Hatáskeresztmetszet, alias kioltási tényező  ·ds = P(ütközés)

5 Sugársűrűség változása dsds L(s)L(s) s L(s+ds) L(s+ds)= L(s) – L(s)·  (s)·ds + L e (s)·ds +  (s)·a(s)·ds·  f(  ‘,  )L i (  ‘)d  ‘ // Kiszóródás+abszorbció // Emisszió // Beszóródás dL(s)/ds = –L(s)·  (s) +L e (s)+L inscatter (s) Megoldás fényelnyelő közegre (emisszió és beszóródás nincs): L(s)= L(0)·exp(–  s  (s)ds)

6 Szóródás Érkező foton Szóródott foton z x y φ  ütközés E E’ Klein-Nishina: Compton formula: Rayleigh:

7 Sugár masírozás (ray marching) L(s +  s) L(s)L(s) C(s)C(s) (s)(s) L(s+  s) = L(s) – L(s)·  (s)·  s + (L e (s) + L inscatter (s))·  s ss opacitás hozzájárulás L(s+  s) = (1 –  (s)) · L(s) + C(s) átlátszóság L(0) Megoldás: dL(s)/ds = –L(s)·  (s) +L e (s)+L inscatter (s)

8 Back-to-front ray marching L = L 0 ; for(s = 0; s < T; s +=  s) { L = (1 –  (s)) · L + C(s); } C(s),  (s)) s=0 L(s+  s) = (1 –  (s)) · L(s) + C(s)

9 Front-to-back ray marching L*   0; for( s  T; s >0 ; s   s ) { L* +  (1   ) · C(s);  (1   ) · (  (s)); if (  break; } L*(s)  (s) L*(s  s)=L*(s)+(1   (s)) · C(s)  (s  s)=(  (s)) · (  (s))

10 Voxel szín és opacitás: Transfer func: (C,  )=T(v függv)·  s Röntgen: ( C,  )=T(v(x,y,z))·  s –opacitás = v(x,y,z)·  s –L(0) = I, egyébként C(s)=0 l Klasszikus árnyalási modellek –opacitás: v osztályozása –C = árnyalási modell (diffúz + Phong) l normál = grad v l opacitás *= | grad v | l Magasabb rendű derivált (görbület) l Transzlucens anyagok (subsurface scattering) grad v

11 ( C,  ) = T(v) ·  s  pow(v/vmax, aexp)·  s C = HLS((v/vmax+rot)·360, 0.5, 1)·  s

12 Klasszikus BRDF modellek Csont  : 1, másé 0 v két osztályba: kék-átlátszó, sárga-átlátszatlan Csont  =1, másé=0 Hús  =1, másé=0 First hit ray casting: Diffúz+Phong árnyalás

13 Illusztratív vizualizáció

14

15 Transzlucens megjelenítés Felező vektor

16 Transzlucens megjelenítés

17 Szintvonal, szintfelület

18 Marching cubes v(x,y,z) < szint v(x,y,z) > szint Eset: =14 2; 0-1; 0-3; 2-6; 0-3; 3-7; ; ;

19 Masírozó kockák Szintérték = 110 Szintérték = 60

20 First hit (isosurface) ray casting normal = grad v v(x,y,z) > szint v(x,y,z) < szint

21 GPU first hit ray-casting Egység kocka 3D textúrával eye lookat right up p = lookat + X right + Y up X, Y in [-1,1] p q entry exit v(x,y,z)

22 CPU first hit ray-casting For each pixel Find pixel center p raydir = normalize(p – eye); Find exit and entry for(t = entry; t < exit; t+=dt) { q = eye + raydir * t; if (volume[q] > isovalue) break; } normal vector estimation; illumination } Full screen quad Interpolation from the corners central differences

23 GPU Isosurface ray-casting CPU program Vertex shader Pixel shader Vertices of the window quad hpos=fullscreen textcoords volume eye, isolevel, material/light properties Rasterization Interpolation Volume ray/window Ray casting

24 CPU program - OpenGL display void Display( ) { // PASS: non uniform parameters glBegin( GL_QUADS ); Vector p = lookat - Right + Up; glTexCoord3f(p.x, p.y. p.z); glVertex3f(-1, 1, 0); p = lookat - Right - Up; glTexCoord3f(p.x, p.y. p.z); glVertex3f(-1, -1, 0); p = lookat + Right - Up; glTexCoord3f(p.x, p.y. p.z); glVertex3f(1, -1, 0); p = lookat + Right + Up; glTexCoord3f(p.x, p.y. p.z); glVertex3f(1, 1, 0); glEnd(); } Full screen quadCamera window as texture coordinates

25 Ray casting: vertex shader void VertexShader( in float4 hPosIn : POSITION, in float3 wPosIn : TEXCOORD0, out float4 hPosOut : POSITION, out float3 wPosOut : TEXCOORD0 ) { hPosOut = hPosIn; wPosOut = wPosIn; }

26 void FragmentShader( in float3 p : TEXCOORD0, // point on window uniform float3 eye, uniform sampler3D volume, // voxels uniform float isolevel, uniform float3 lightdir, lightint, kd  out float3 color : COLOR ) { float3 raydir = normalize(p – eye); float3 t0 = (float3(0,0,0)-eye)/raydir; float3 t1 = (float3(1,1,1)-eye)/raydir; float3 ti = min(t0, t1); float3 to = max(t0, t1); float entry = max(max(ti.x, ti.y), ti.z); float exit = min(min(to.x, to.y), to.z); color = float(0, 0, 0); bool found = (exit <= entry); cont’d… Ray casting: fragment shader t0.x t1.x t0.y t1.y ti.x  to.x ti.y  to.y

27 Ray casting fragment shader cont’d if ( !found ) { float3 q, normal; float dt = (exit – entry) / STEPS; for(t = entry; t < exit; t += dt) { if ( !found ) { q = eye + raydir * t; if (tex3D(volume, q).r > isolevel) found = true; } if ( found ) { normal.x =tex3d(volume, q + float3(1/RES,0,0)) – tex3d(volume, q - float3(1/RES,0,0)); normal.y =tex3d(volume, q + float3(0,1/RES,0)) – tex3d(volume, q - float3(0,1/RES,0)); normal.z =tex3d(volume, q + float3(0,0,1/RES)) – tex3d(volume, q - float3(0,0,1/RES)); normal = normalize( normal ); color = lightint * kd * max(dot(lightdir, normal), 0); } q

28 Tomográfia L(s)= L(0)·exp(–  (s)ds)  (s)ds = – log(L(s)/L(0)) L(s)=  L e (s)ds Abszorpciós Emissziós LOR

29 X-ray Computed Tomography sugarak Detektorok X-ray forrás (CRT) Forgatás

30 Mediso NanoPET/CT

31 Bigger boys need big toys: AnyScan PET/CT

32 Tomográfiás rekonstrukció

33 Szűrt visszavetítés (FBP=Filtered backprojection) Mérés + Visszavetítés w(x,y)=w(r)  1/r i(x,y)=  (x,y)  w(x,y) dxdy=  2   R w(r) rdrd  = =2   R w(r)r dr  R R kör: Súlyfüggvény: Korrekció Fourier térben: o(x,y)=i(x,y)  w(x,y) F x F y o[  x,  y ] = F x F y i[  x,  y ]  F x F y w[  x,  y ] 1/|  | F x F y i[  x,  y ] = F x F y o[  x,  y ]  |  | drdr rdrd r Rámpa szűrő

34 Zaj! Becsapódások véletlen események! Emissziós tomográfia: Poisson eloszlás Nagy számok törvénye?

35 Algebrai visszavetítés v1v1 v2v2 v3v3 v4v4 d 1 = A 11 v 1 +A 13 v 3 d2d2 d3d3 d4d4 Lin egyenlet (V

36 Expectation Maximization Mi a v ha tudjuk d-t? Aktivitás: v Véletlen mérési folyamat eredmény: d Amelyik éppen a mérési eredményt maximálja P(d|v) Likelihood maximalizálás: logP Előny: a mérés statisztikai modelljét is figyelembe veszi

37 PET: iteratív séma LOR L voxel V : annak valószínűsége, hogy a V voxelben bekövetkezett bomlást az L LOR detektálja Poisson és pozitivitási kényszer

38 Iteratív séma Skalármező korrekciója Projekció Összevetés a mért értékekkel

39 Inverz problémák l Ill-posed: nincs megoldás vagy nem egyértelmű. l Nem ismerjük n-et (zaj). l Közelítő megoldásokból melyik (zaj hatása)? l Plusz információ bevitele: regularizáció Beütések száma a detektorokban Aktivitás eloszlás Projekció (Tomográf)

40 Megoldási sémák AlgebraiValószínűségi 2-es norma Kullback-Leibler divergencia y Gauss eloszlású y Poisson eloszlású

41 Overfitting

42 Regularizáció l R(x) „rossz” megoldásoknál nagy, „jó” megoldásoknál kicsi (tökéletes megoldást ne büntesd, de nem ismerjük), konvex függvény. –Teljes variáció (TV): Likelihood Zajos megoldások büntetése Regularizációs paraméter

43 PET Line Of Response (LOR) P e-e- e+e+ P N

44 Nincs szóródás 324×315×315 voxels

45 Positron range Nélküle Vele

46 Szóródás a testben Nélküle Vele

47 Szóródás a detektorban … + scattering in detectors With 324×315×315 resolution x 845 res <0.1 mm voxels


Letölteni ppt "Térfogatvizualizáció Szirmay-Kalos László. Térfogati modellek (skalár mezők) 3D tér pontjaiban egy skalár érték Skalár: hőmérséklet, sűrűség nyomás, potenciál,"

Hasonló előadás


Google Hirdetések