Zaštita trodimenzijskih objekata vodenim žigom

 

Frekvencijsko područje

 

3D skeneri obično generiraju veliku količinu podataka o geometriji i atributima objekta. Geometrijski podaci opisuju oblik i dimenzije objekta, dok atributi opisuju svojstva površine kao što su boja, koordinate tekstura, temperaturu i sl. Višerezolucijski prikaz (ili analiza) efikasan je način za predstavljanje skupa podataka pri različitim razinama razlučivosti. U takvom prikazu početni skup podataka rastavlja se u niz aproksimacija i niz detalja. Svaka pojedina aproksimacija predstavlja početni skup podataka na pojedinoj razlučivosti. Skup detalja bilježi podatke izgubljene pri pojedinoj aproksimaciji. Glavna prednost višerezolucijskog prikaza je efikasnost u prikazu kao i računalna efikasnost. Višerezolucijski prikaz višefunkcionalan je alat i ima mnogobrojnu primjenu kao što su kompresija, uklanjanje šuma, editiranje i sl.

 

Progresivne mreže

 

Algoritmi opisani u ovom poglavlju koriste progresivne mreže s ograničenim kolapsiranjem bridova za frekvencijsku dekompoziciju. Ideju višerezolucijskog prikaza pomoću progresivnih mreža prvi put je predstavio Hugues Hoppe iz Microsofta na Siggraphu '96 [Hoppe96].

 

Modeli u računalnoj grafici vrlo često su prikazani upotrebom mreže trokuta. Geometrijski to je glatka linearna struktura koja se sastoji od trokuta spojenih zajedničkim bridovima. Detaljni modeli predstavljeni na ovaj način mogu se sastojati od stotina tisuća trokuta, pa je zbog njihove veličine takve modele vrlo problematično i vremenski zahtjevno prikazivati ili prenositi preko računalne mreže.

 

U rješavanju ovog problema Hoppes je predložio takvu optimizaciju mreže u kojoj bi se proizvoljna mreža M pohranila kao mnogo grublja mreža M0 zajedno s nizom od n zapis kako postepeno poboljšati mrežu M0 točno do razine početne mreže M= Mn.

Svaki od tih zapisa sadrži podatke povezane podjelom vrhova (engl. vertex split), elementarnom operacijom koja u mrežu dodaje jedan novi vrh. Takav prikaz naziva se progresivna mreža (PM). Možemo, prema tome, mrežu M u PM reprezentaciji zapisati kao niz mreža M0, M1, M2,..., Mn sve veće točnosti.

 

Da bi se proizvoljna mreža M pohranila u progresivnom obliku, koristi se topološka transformacija koja se naziva kolapsom brida (edge collapse).

 

Slika 3-4. Ilustracija kolapsa brida.

 

Kao što se vidi na slici 3-4 transformacija kolapsa brida ecol ({vs, vt}), spaja dva susjedna vrha vs i vt u jedinstveni vrh vs. vrh vt, a dva susjedna trokuta {vs, vt, vl} i {vt, vs, vr} u toku procesa nestanu. Za novi, jedinstveni vrh vs odredi se nova lokacija. Prema tome inicijalnu mrežu M =Mn možemo pojednostaviti kroz niz od n sukcesivnih kolapsa bridova:

 

*      

 

Konkretan izbor redoslijeda kolapsa bridova treba pažljivo odabrati, kako bi aproksimacije u pojedinim koracima (Mi, i<n) bile što kvalitetnije.


 

Ključna činjenica je da je operacija kolapsa brida reverzibilna. Inverzna operacija naziva se podjela vrhova (vrh split), koja je također prikazana na slici 3-4 podjela vrhova vsplit(s,l,r,t,A) u blizinu zajedničkog vrhova vs dodaje novi vrh vt i dva nova trokuta {vs, vt, vl} i {vt, vs, vr}. Ovakva transformacija također prepravlja atribute mreže u okolici transformacije (npr. poziciju vrhova vs i eventualne diskretne i skalarne atribute mreže kao što su normale, koordinate tekstura i sl.).

Sada možemo prikazati mrežu M kao jednostavnu mrežu M0 i niz od n vsplit zapisa:

 

 

Oblik (M0, {vsplit0,..., vsplitn-1}) naziva se progresivni oblik mreže M.

 

Na slici 3-5 dan je primjer PM zapisa jedne proizvoljne mreže M.

 

 Slika 3-5. PM zapis proizvoljne mreže M. Modeli imaju (slijeva na desno) 150, 500, 1000 i 13500 trokuta.


 

Praun-Hoppeov algoritam

 

Osnovni uvjet da bi algoritam bio robustan, je da se vodeni žig pohrani što dublje u sam sadržaj objekta. Ideja ovog algoritma je da uz zadanu proizvoljnu mrežu trokuta v=(v1,...vn)T i zadani vodeni žig w=(w1... wm)T omogućimo da svaki od koeficijenata iz vodenog žiga wi izazove mali pomak određenog podskupa vrhova. Taj pomak postiže se generalizacijom opisane ideje raspršenog spektra. Za svaki koeficijent wi vodenog žiga, konstruira se po jedna skalarna funkcija baze . Tijekom proces umetanja vodenog, cilj je da se vrh vj pomjeri za vektor proporcionalan s widi, pri čemu je di vektor smjera pomaka, određen kao normala iz vrha cj. Osnovni problem je kako odrediti bazne funkcije Φ=(φ1 … φm).

 

 

Da bi cjelokupni ovakav model zaštite vodenim žigom bio robustan, bazne funkcije Φ moraju korespondirati vizualno značajnim odlikama modela, iz razloga opisanih u uvodu u ovo poglavlje. Kao što je već rečeno, kod 2D objekata to su DCT koeficijenti s najvećom amplitudom.

Pristup s progresivnim mrežama previđa da se odredi m kolapsa (odnosno m split operacija) koji uzrokuju najvidljivije promjene na modelu, odnosno najveću promjenu geometrije modela i te promjene označimo kao najvažnije. Za svaku takvu promjenu definira se po jedna bazna funkcija s područjem djelovanja na cijelom susjedstvu pripadajućeg vrhova u mreži M. Tih m baznih funkcija se tada upotrijebi za umetanje vodenog žiga od m članova.

 

Prvi korak algoritma je da se zadana mreža M pojednostavi prebacivanjem u PM prikaz, primjenom niza ograničenih kolapsa bridova. U svakoj takvoj operaciji po jedan brid se pretvara u jednu od svojih krajnjih točaka, kao što je prikazano na slici 3-6.

 

 

 

Slika 3-6. Prikazan je niz pojednostavljenja modela upotrebom kolapsa bridova. Crvenim obrubom prikazano je isto područje na modelima s različitim brojem bridova.

 

Veličinu promjene modela h nastale u pojedinoj operaciji podijele vrhova određujemo na način da predvidimo lokaciju na kojoj bi se mogao pojaviti novi vrh i onda izračunamo veličinu proporcionalnu udaljenosti predviđene i stvarne lokacije novog vrhova. Predviđenu lokaciju računamo kao koordinate centroida neposrednih susjeda vrhova koji se dijeli. Nakon toga izračunamo normalu na trokut u kojem se nalazila predviđena lokacija i konačno h izračunamo kao skalarni produkt vektora normale i vektora udaljenosti između predviđene i stvarne lokacije.

Nakon što smo odredili m podjela vrhova s najvećim h, možemo konstruirati m pripadajućih baznih funkcija φi. Budući da se koristi ograničeni kolaps bridova, svaki vrh ci koji se počne dijeliti u konačnici je povezan s skupom bridova u izvornoj mreži M koji su nastali zbog podijele tog vrhova i novih vrhova nastalih iz njega.

Susjedstvo Bi pripadajućeg vrhova ci određujemo kao prsten rubova oko vrhova ci koji se određuje tako da pratimo kako se šire neposredni bridovi vrha ci tijekom postupka: .

Na slici 3-6 crvenim rubom označeno je susjedstvo vrha ci u pojedinim koracima gore naznačenog postupka.

Susjedstva pojedinih baznih funkcija mogu se preklapati, kao što je to vidljivo na slici 3-7 gdje prikazan model s 50 baznih funkcija.

 

 Slika 3-7. susjedstva nad kojima su definirane funkcije φi.

 

U svakom susjedstvu konstruira se radijalno simetrična bazna funkcija. Za početak, mora se odrediti funkcija radijusa  za svaki vrh vj, takva da preslikava središnji vrh ci u 0, a vrhove s granice Bi u 1, dok između linearno raste. Preciznije, za svaki vrh vj definiramo funkciju preslikavanja u relativni radijus:

 

 

Pri tome je d(v, S) duljina najkraćeg puta između vrha v i bilo kojeg drugog vrha iz skupa S.

 

 

Udaljenosti d(vj, {ci}) i d(vj,Bi) mogu se lagano izračunati primjenom Dijkstrinog algoritma na bridove mreže.

 

Dvije su bitne odlike važne kod konstrukcije baznih funkcija. Kao prvo promjene izazvane na 3D objektu ne bi smjele biti vizualno uočljive i kao drugo ne bi se smio mijenjati volumen objekta (što bi značilo da se dio objekta skalirao u nekom smjeru).

 

 

 Kako su poligonalne mreže i same po sebi C0 kontinuiteta, nije potrebno da bazna funkcija bude primjerice n kontinuirana, ali iskustveno je utvrđeno da ljudsko oko vrlo dobo zamjećuje diskontinuitete derivacija, tako da funkcije koje nemaju barem C1 kontinuitet izazivaju vidljive distorzije na modelu. Da bi se eliminirali te te diskontinuitete može se upotrijebiti polinom trećeg stupnja =2*r3-3*r3+1 koji ima oblik polucilindra (slika 3-8).

Kako je na početku postavljeno još jedno ograničenje da bazna funkcija ne smije mijenjati volumen objekta, integral funkcije unutar radijusa  mora biti 0. To rezultira funkcijom koja liči na sombrero. Da bi se takva funkcija izgladila, postavljen je dodatni uvjet da druga derivacija u vrhu bude 0, čime je dobiven konačni oblik funkcije =-21*r5 + 45*r4 – 25*r3 +1. Sve tri funkcije i njihovo djelovanje na vrhove unutar relativnog radijusa r prikazane su na slici 3-8.

 

Slika 3-8 Moguće bazne funkcije i njihovo djelovanje na model.


 

Postupak umetanja vodenog žiga

Text Box: Smjer vektora di
i

 

 

Slika 3-9. Pomak svakoj pojedinog vrha vj određen je zajedničkim utjecajem svih baznih funkcija unutar čijih se dosega nalazi vrh. (odnosno ako su unutar relativnog radijusa manjeg ili jednakog 1).

 

Svaka bazna funkcija množi se pripadnim koeficijentom wi iz vodenog žiga. Koeficijenti wi su realni brojevi, dobiveni slučajno odabrani po normalnoj razdiobi s srednjom vrijednošću 0 i standardnim odstupanjem (varijancom) 1.

U matričnom zapisu, umetanje vodenog žiga možemo zapisati ovako (za X koordinatu):

 

 su X koordinate dobivene nakon umetanja vodenog žiga.

 vx su X koordinate vrha v u nemodificiranom (izvornom) objektu.

 ε je korisnički zadan parametar koji služi za skaliranje energije vodenog žiga.

 Φ je n x m matrica čiji su stupci skalarne funkcije φi

 hidix je m x m dijagonalna matrica čiji su elementi X komponente vektora smjera di, skalirane veličinom bazne funkcije hi koja određuje veličinu utjecaja pojedine bazne funkcije

w je vektor stupac vodenog žiga

 

 

Ako konkateniramo matrice za sve prostorne komponente (X,Y,Z) proces umetanja vodenog žiga možemo opisati matričnom jednadžbom:

 

v' = v + B w

 

Izvorni model w, zajedno s vodenim žigom pohrani se na sigurno mjesto, a dokument v' sa umetnutim vodenim žigom se objavi.

 

Dohvat vodenog žiga

Prije nego što pokušamo dohvatiti vodeni žig iz sumnjivog dokumenta, moramo obadva dokumenta postaviti u isti koordinatni prostor (i prema potrebi ponovno uzorkovati kako bi dobili model s geometrijom modela koji ispitujemo i topologijom našeg originalnog dokumenta).

Upotrebom istog skupa baznih funkcija tj. matrice B, iz gornje jednadžbe kojom je opisano umetanje vodenog žiga dobivamo :

 

B w* =(v*-v)

 

Izraz na desnoj strani ove jednakosti opisuje pomak vrhova sumnjivog modela u odnosu na naš originalni dokument. Rješavanjem te jednadžbe dobivamo koeficijente w* koje usporedimo s koeficijentima w našeg pohranjenog vodenog žiga.

 

 

KangKangov algoritam

 

KangKangov algoritam vrlo je sličan Praunovom modelu, ali se bazira na Burt-Adelsonovoj piramidi. B-A piramida je piramidalna shema koju su razvili Burt i Adelson [Burt83] za sažeto kodiranje slika, a Guskov [Guskov99] ju je prilagodio mrežama trokuta definiranjem neuniformnog operatora relaksacije.

 

  • 3D operator relaksacije

 

3D relaksacija površine mreže je operacija koja pomiče vrhove 3D mreže kako bi minimizirala energetsku funkciju takve mreže. Ta operacija vrlo je često korištena u postupcima zaglađivanja 3D modela, jer se operatorom relaksacije minimizira zakrivljenost mreže i dobiva glatki objekt. U Burt-Adelsonovoj mrežnoj piramidi operator relaksacije koristi se za konstrukciju neuniformne sheme kojom se generiraju glatke aproksimacije izvorne mreže.

 

Slika 3-10. SOD relaksacija vrha pi. Na slici se vidi izgled proširenog susjedstva vrha pri operaciji SOD relaksacije.

 

Guskov je opisao neuniformni operator relaksacije koji minimizira diferenciju drugog reda D2e svakog brida e u mreži. Zbog toga je uobičajeni naziv za ovu vrstu relaksacije SOD (engl. second order differences) relaksacija. Ako je položaj vrha vi zadan s pi = {x, y, z} tada će položaj relaksiranog vrha Rpi biti izabran na način da je

 uz

 

 

Pri tome je v2(i) prošireno prstenasto susjedstvo 1 reda oko vrha vi kako je to prikazano na slici 3.10. su težinski koeficijenti operatora relaksacije, a koeficijenti  o položaju vrha vi


 

 

 

Slika 3-11. Višerezolucijski prikaz upotrebom Burt-Adelsonove piramide

Višerezolucijska shema bazirana na Burt-Adelsonovoj piramidi započinje od najfinije mreže M0 iz koje se računa sekvenca mreža Mk () kao i razlika između mreža Dk. Razina rezolucije određena je parom (Mk, Dk), osim za najfiniju mrežu M0. Dekompozicija se sastoji od 3 koraka:

 

  • Simplifikacija: U ovom koraku se inicijalna mreža, uklanjanjem određenih vrhova, uzorkuje naniže (engl. downsampling) u grublju mrežu Mk+1. Za grublju mrežu Mk+1 kažemo da je aproksimacija inicijalne mreže Mk.

 

  • Podjela: U ovom koraku se grublja mreža Mk+1umetanjem prethodno uklonjenih vrhova i relaksacijom svih vrhova uzorkuje naviše (engl. upsamling), čime se dobiva aproksimacija Sk inicijalne mreže M0.

 

  • Izračun detalja: U ovom se koraku proračunavaju razlike u mreži Mk i mreži Sk čime se dobivaju koeficjenti Dk+1 vezani za mrežu Mk+1. Detalji se računaju za svaki vrh mreže Mk.

 

Rekonstrukcija se izvodi obrnutim izvođenjem gornje sheme: započinjemo od grublje mreže Mk+, podijelimo ju i dodamo detalje Dk+1 kako bi rekonstuirali finiju mrežu Mk.

Glavni korak ovakvog višerezolucijskog prikaza je uzorkovanje nadolje kojim se iz mreže izbacuje neovisni skup vrhova (vrhova koji međusobno nisu povezani zajedničkim bridom). Ovu metodu osmislio je Kobbelt [Kobbelt98] za potrebe njegovog višerazinskog algoritma zaglađivanja. Vrhovi koji će biti maknuti nizom kolapsa bridova nazivaju se neparni vrhovi. Kako bi se stvorila glatka aproksimacija u svakom koraku se izvodi relaksacija vrhova. Skup neparnih vrhova koji će biti izbačeni može se odrediti na različite načine, ali se u konkretno slučaju koristi Garlandova kvadratna metrika [Garland97], kojom se zadržavaju vizualno najuočljivija svojstva mreže.

 

Sam postupak umetanja vodenog žiga, nakon što je konstruirana B-A piramida i odabrana grublja mreža željenog stupnja, sličan je metodi koju koristi Praun. Glavna razlika je u tome što Praun et al. najznačajnije komponente za umetanje vodenog žiga nalazi prateći niz kolapsa bridova i odabirući one u kojima je položaj novog vrha najteže predvidjeti, dok se ovdje vodeni žig umeće izravno u jednu od grubljih mreža iz B-A piramide, nakon čega se piramida izvrće i rekonstruira se fina mreža. Na taj način kod KangKangovog modela energija umetnuta u vrhove grube mreže širi se u finijim mrežama u svoju okolinu. Taj postupak naziva se višerezolucijsko uređenje (engl. multiresolution edit).


 

 

Prethodna

 
 
bottom graphic