Valasek Gábor valasek@inf.elte.hu Eötvös Loránd Tudományegyetem Informatikai Kar 2016-2017 tavaszi félév
Tartalom Görbék és felületek vizuális anaĺızise Szórt adat interpoláció Műveletek görbékkel és felületekkel
Görbék és felületek vizuális anaĺızise Tartalom Görbék és felületek vizuális anaĺızise Szórt adat interpoláció Műveletek görbékkel és felületekkel
Görbék és felületek vizuális anaĺızise Szép görbék Bizonyos tervezői feladatok esztétikai értelemben véve igényelnek szép görbéket Ennek egyik matematikai megfogalmazása Farintól: A görbe görbületfüggvénye folytonos és kevés, monoton szakaszból áll
Görbék és felületek vizuális anaĺızise Szép görbék előálĺıtása Kétféle megközeĺıtés: globális: ponthalmazra görbe illesztése úgy, hogy valamilyen valósértékű funkcionált minimalizáljon a görbe lokális: adott görbe kontrollpontjainak módosítása
Görbék és felületek vizuális anaĺızise Funkcionálok Tegyük fel, hogy közeĺıtően egyenletes sebességű görbét szeretnénk, azaz olyat, amelyre r (t) c teljesül t [0, 1], c > 0 konstans Ha r (t) c, akkor r 0, azaz a min 1 0 r (x) r (c) dx minimalizálással közeĺıtően egyenletes sebességű görbét kapunk
Görbék és felületek vizuális anaĺızise Konstans sebesség funkcionál - előtte
Görbék és felületek vizuális anaĺızise Konstans sebesség funkcionál - utána
Görbék és felületek vizuális anaĺızise Lehetséges funkcionálok Adott r : [0, 1] E 3 görbe esetén néhány példa funkcionálokra: konstans sebesség: 1 0 r (t) r (t) dt görbület minimalizálása: min 1 0 κ(x) dx, az egyenes görbéket favorizálja görbület ívhossz szerinti deriváltjának minimalizálása: min 1 0 ˆκ (x) dx a Farin által is használt értelemben szép görbékért Ezek beépíthetőek pontközeĺıtésbe célfüggvénykomponensként (*) vagy feltételes optimalizálás célfüggvényeként is használhatóak, amennyiben garantált egy valahány paraméteres megoldássereg létezése (pl. szimmetrikus végpontbeli G 2 esetén az ötödfokú polinomok).
Görbék és felületek vizuális anaĺızise Membrán, rugalmas lap és görbületvariácós energiákat minimalizáló felületek
Görbék és felületek vizuális anaĺızise Izofoto vonalak A felület azon pontjainak a vizualizálása amelyek valamilyen fényforrásból megvilágítva azonos intenzitással verik vissza a beeső fényt Legyen m(u, v) a felületi egységnormális, l R 3 pedig egy irányfényforrás egységhosszú irányvektora Ekkor minden c [0, 1] értékre definiálható a m(u, v) l = c differenciálegyenlettel megadott izofotó vonal. Ha a felület C n (G n ), akkor az izofotó vonal C n 1 (G n 1 ) kell, hogy legyen
Görbék és felületek vizuális anaĺızise Reflexiós vonalak Párhuzamos irányú fények felületi tükörképének megfelelője Tekintsük a q i (t) felületi görbéket, amik a felület és valamilyen v irányvektorú sík metszeteként adódik Ekkor minden φ [ q (t) ] 0 v = cos φ egy-egy felületi reflexiós vonalat határoz meg
Görbék és felületek vizuális anaĺızise Izofoto vonalak
Görbék és felületek vizuális anaĺızise Görbületi metrikák és izofoto vonalak
Görbék és felületek vizuális anaĺızise Görbületi ábrák A görbe minden pontjából normális irányba egy görbülettel egyenesen arányos hosszú egyenes szakaszt rajzolunk Az ilyen ábrákon jól látható a görbület változása illetve az inflexiós pontok
Görbék és felületek vizuális anaĺızise Görbületi ábrák
Szórt adat interpoláció Tartalom Görbék és felületek vizuális anaĺızise Szórt adat interpoláció Műveletek görbékkel és felületekkel
Szórt adat interpoláció Irodalom Érdeklődőknek: K. Anjyo, J.P. Lewis, F. Pighin: Scattered Data Interpolation for Computer Graphics A téma mélyebb kifutása iránt érdeklődőknek pedig a RKHS-ek MIT diák és egy rövid bizonyítás a szükséges elmélethez A még mélyebb kontextus pedig az univerzális függvényapproximáció problémája, aminek az egyik fontos alaperedménye a Kolmogorov-Arnold féle reprezentációs tétel
Szórt adat interpoláció Jelölés Adott néhány x k E q megfigyelési pont és hozzájuk tartozó f k R megfigyelés, k = 0,.., N. Keressük azt az f : R q R leképezést, amire f (x k ) = f k (vagy legalább f (x k ) f k ) Tehát egyértékű, többváltozós függvényeket próbálunk közeĺıteni, azaz f : R q R alakú megoldást keresünk Abban az esetben, ha a feladat l-értékű, egyszerűen futtathatjuk az itt látott módszereket l alkalommal és a végén összerakjuk a l darab f i : R q R leképezést
Szórt adat interpoláció Shepard módszer Legyen a közeĺıtésünk f (x) = N k=0 w k (x) N j=0 w j(x) f k ahol w k (x) = x x k p a k-adik megfigyeléshez rendelt súlyfüggvény, p > 0 megfelelően választott konstans: 0 < p 1 éles éleket csinál p > 1 simább, de a derivált az adatpontokban eltűnik (kilapul az interpoláns az adatpontok körül)
Szórt adat interpoláció Shepard módszer p = 1-re Ekkor az interpoláns f (x) = ahol d k = 1 x x k. Ha x x l, akkor d l N k=0 d k N j=0 d f k j Az interpolánst határértékből számolhatjuk alappontban: d k lim x x l k j d f k = lim j x xl k d k d l j f dj k = lim dl x xl k d k d l }{{} δ kl 1 j dj dl }{{} 1 f k = f l
Szórt adat interpoláció Shepard módszer p = 1-re
Szórt adat interpoláció Módosított Shepard módszer Az előző módszer érzékeny a távoli pontokra, illetve sok pont esetén elég drága is Csak azokat a megfigyeléseket vegyük figyelembe, amik az x lekérdezési pont valamilyen előre rögzített r > 0 sugarú környezetében vannak Ekkor a módosított súlyfüggvény p = 2 esetre w k (x) = r x x k x x k Valamilyen térpartícionáló adatszerkezettel gyorsítsuk fel a keresést! 2
Szórt adat interpoláció Módosított Shepard módszer p = 2-re
Szórt adat interpoláció Kernel módszerek A Shepard módszer általánosításaként is tekinthető, általában approximáló megoldás Valamilyen megfelelően választott K(x, x k ) kernel függvényre a közeĺıtésünk legyen f (x) = N k=0 K(x, x k ) N j=0 K(x, x j) f k A kernel feladatfüggő (itt most normalizálás nélküli példákat írunk): uniform: K(x, x k ) r, ahol r > 0 rögzített háromszög: K(x, xk ) = r x x k, ha x x k < r Gauss: K(x, x k ) = e x x k 2
Szórt adat interpoláció Mozgó LSQ A globális megoldás álljon több, lokális megoldásból, amit a lekérdezési pont környezetében illesztünk a mért adatokra Például ha adott egy F n i (x) bázis, akkor keressük azt az a = arg min c R n N w i x x i f T (x i ) c f i 2 i=0 F0 n(x) ahol f(x) = F1 n(x).., a w i-k pedig megfelelően választott Fn n (x) súlyok (például w i = x x i 1 ).
Szórt adat interpoláció Mozgó LSQ A korábban látottakhoz hasonlóan oldható meg: c N w i x x i f T (x i ) c f i 2 = 0 i=0 N w i x x i f(x i ) (f T (x i ) c f i ) = 0 i=0 N w i x x i f(x i ) f T (x i ) c = i=0 } {{ } A N f i w i x x i f(x i ) i=0 } {{ } d
Szórt adat interpoláció Mozgó LSQ Teljes rangnál megoldható Cholesky-val is Különben a Moore-Penrose pszeudoinverzet kell használni a súlyokat tartalmazó diagonális mátrixszal előszorzott A-ra Amennyiben lokálisan konstans F i (x) bázisban oldjuk meg, akkor visszakapjuk a Shepard interpolációt
Szórt adat interpoláció Mozgó LSQ
Szórt adat interpoláció Egységosztó módszerek Az előző két módszer általános kerete az egységosztó (partition of unity) módszerek Ezek lokális általános megoldásokat simítanak össze f (x) k φ k q k (x) alakban, ahol φ k = 1 k valamilyen Ω R q tartományon értelmezett súlyok és q k (x) : R q R lokáls megoldások sora valamilyen Ω tartományokon értelmezve.
Szórt adat interpoláció Egységosztó módszerek
Szórt adat interpoláció Radial Basis Function (RBF) megoldások A megoldást f (x) = alakban keressük, ahol N w k φ( x x k ) k=0 φ : [0, ) R A mért függvényértékektől függően kell beálĺıtani a w i súlyokat
Szórt adat interpoláció RBF súlyok megtalálása Keressük w i -ket úgy, hogy teljesüljön f (x i ) = N w k φ( x i x k ) = f i k=0 Felhasználva a φ ik = x i x k jelölést, a fenti egyenletrendszer alakban írható fel. φ 11 φ 12.. w 1 f 1 φ 21 φ 12.. w 2 = f 2 }.... {{.. }.. }{{}.. Φ w
Szórt adat interpoláció RBF regularizálás Előfordulhat, hogy a Φ mátrix rosszul kondicionált Ekkor regularizálással segíthetünk: ahol λ > 0 min w Φ w d 2 + λ w 2
Szórt adat interpoláció RBF kernelfüggvények Gauss: φ(r) = e ( r c ) 2 Hardy multiquadric: φ(r) = r 2 + c 2 Inverz multiquadric: φ(r) = 1 r 2 +c 2 Thin plate: φ(r) = r 2 log r polinomok: mindenképp kell, ha az RBF kernel valamilyen deriváltaktól függő mennyiség minimalizálásával származtatott
Szórt adat interpoláció RBF súlyok - Gauss
Szórt adat interpoláció RBF súlyok - Gauss, másik c paraméterrel
Szórt adat interpoláció RBF kernelfüggvények Kutatás tárgya, hogy milyen függvények jók RBF kernelnek Például a pozitív definit függvényeket szeretik, mert ekkor a Φ mátrix nem szinguláris, de vannak olyan gyakorlatban használt kernelek amik ezt mégsem teljesítik
Műveletek görbékkel és felületekkel Tartalom Görbék és felületek vizuális anaĺızise Szórt adat interpoláció Műveletek görbékkel és felületekkel
Műveletek görbékkel és felületekkel Offset Egy r : [0, 1] E 2 síkgörbe d R távolságú offsetje r d (t) = r(t) + dn(t) ahol n(t) az r(t) görbe egységhosszú normálvektora Az offset kísérő triédere (a tetszőleges sebességű Frenet-Serret formulák alapján) t d = [ r d ]0 = 1 + κd 1 + κd t n d = t d k = 1 + κd 1 + κd n κ κ d = 1 + κd ahol k a görbe síkjára merőleges vektor
Műveletek görbékkel és felületekkel Offset szingularitásai Irreguláris pontok: izolált pontok: ha nincs a környezetében az offset másik pontja (például egy R sugarú kör esetén egy d = R sugarú offset után) fordulópont (cusp): amikor eltűnik a tangensvektor. Kétféle van (közönséges, azaz κ 0 és nem közönséges, azaz κ = 0, κ 0) Önmetszések: lokális: olyan pontokban, ahol az eredeti görbe görbületi sugarát eléri vagy meghaladja az offset sugara (d) globális: amikor két különböző pontból induló offset szaksz metszi egymást
Műveletek görbékkel és felületekkel Offset önmetszések
Műveletek görbékkel és felületekkel Offset algebrailag Az offset általában algebrailag bonyolultabb, mint az eredeti görbe Például sem az egész, sem a racionális polinomok nem zártak az offset műveletére Ha t = [t x, t y ] T tangensből származtatjuk az n = [ t y, t x ] T normálist, akkor az offset [ ] ty [ ] t x ty r d = r + tx 2 + ty 2 t x
Műveletek görbékkel és felületekkel Pitagorászi hodográf (PH) [ ] x(t) Olyan r(t) = görbék, amelyekre létezik olyan y(t) τ : R R + polinom, hogy ẋ(t) 2 + ẏ(t) 2 = τ(t) 2 Belátható, hogy ez teljesül, hogy ha léteznek a(t), b(t), c(t) polinomok, amelyekre GCD(a, b) = 1 és max{deg(a), deg(b)} 1, hogy ẋ(t) = ( a(t) 2 b(t) 2) c(t) ẏ(t) = 2a(t)b(t)c(t) τ(t) = ( a(t) 2 + b(t) 2) c(t)
Műveletek görbékkel és felületekkel Pitagorászi hodográf (PH) A Farouki féle eredeti definícióval a PH görbék offsetje már racionális polinom lesz Pottmann ezt általánosította racionális PH görbékre az eredeti görbe tangensegyeneseinek burkolójaként való feĺırásával Így a racionális PH görbék már zártak voltak az offsetelés műveletére!
Műveletek görbékkel és felületekkel Lekerekítések Osztályozhatjuk a testet határoló felületeket funkcionalitás szerint: elsődleges vagy funkcionális felületek lekerekítések amelyek elsődleges felületeket kötnek össze esztétikai (G n, class A surfaces stb.), technológiai/gyártási megkötésekből származó, balesetveszély csökkentését figyelembe vevő vagy egyéb funkciót mevalósító (például áramló közegben a funkcionális felületek között ne keletkezzen turublencia) szempontok szerint
Műveletek görbékkel és felületekkel Lekerekítések jellemzői Az offset-hez hasonlóan általában bonyolultabbak, mint az alapfelületek (például poliéderek lekerekítése az éleknél hengeresedik ) Fontos, hogy a lekerekítés művelete kevés, szemantikusan egyértelmű paraméterrel legyen vezérelhető: állandó sugárral, egyszerűen változó sugárral a kapcsolódás helyével (direkt vagy segédfelületek metszésével megadott görbékkel) profil-kitöltöttség (thumbweight)
Műveletek görbékkel és felületekkel Állandó sugarú lekerekítés Offset segítségével: jelölje a valamilyen mértékű pozitív, pedig az ugyanilyen mértékű negatív sugarú offset-et Ekkor a lekerekítés }{{} konkav }{{} konvex }{{} meret
Műveletek görbékkel és felületekkel Lekerekítés offsetből
Műveletek görbékkel és felületekkel Lekerekítés offsetből
Műveletek görbékkel és felületekkel Lekerekítés offsetből
Műveletek görbékkel és felületekkel Lekerekítés offsetből
Műveletek görbékkel és felületekkel Lekerekítés offsetből
Műveletek görbékkel és felületekkel Lekerekítés állandú sugarú gördülő gömbbel Egy adott pályán mozgó gömb által kimetszett felület A gömb középpontja az offsetfelületek metszésén fut (amekkora lekerekítés kell) Ábra