Zaštita trodimenzijskih objekata vodenim žigom

 

WatermarX

Aplikacije je izvedena kao Win32 aplikacija uz korištenje grafičkog standarda Direct3D koji je dio programskog sučelja DirectX 9.0b. Program prihvaća modele zapisane u .X formatu, što je DirectX format za zapis trodimenzijskih objekata. Ulazni modeli moraju biti formirani kao mreže trokuta, što je u slučaju .X modela u pravilu uvijek ispunjeno. Obzirom da aplikacija služi za umetanje vodenog žiga (engl. Watermark) u .X modele, za naziv aplikacije je izabrana složenica WatermarX.

 

Dominantni dio sučelja čini radna površina za prikaz i manipulaciju 3D objektom. Pomicanjem miša uz pritisnutu lijevu tipku izvodi se rotacija objekta oko bilo koje osi, pomicanjem miša uz pritisnutu srednju tipku (kotačić) izvodi se skaliranje objekta, dok se pomicanjem miša uz pritisnutu desnu tipku izvodi translacija objekta.

 

Slika 4-8. Izgled sučelja WatermarX aplikacije.

 

Izbornik se sastoji od tri skupa funkcija – File, Watermark i Help:

 

 

Izborom skupine funkcija "File" dolazi se do izbornika u kojem je moguće učitati izvorni i označeni model, kao i spremiti označeni model. Izborom skupine "Help" dolazi se do izbornika u kojem je moguće izabrati pomoć. Izbornik "Watermark" sadrži naredbe za umetanje i dohvat vodenog žiga, a tu se nalazi i opcije "WatermarX Options..." čijim izborom se otvara novi prozor u kojem je moguće podesiti parametre vodenog žiga.

 

Slika 4-9. Prozor za odabir parametara vodenog žiga.

 

U polje označeno "Watermark Strength" se unosi koeficijent . Pri tom je bitno napomenuti da je pretpostavljena vodeća nula (0.) pa nije svejedno se unese li se iznos 05 (=0.005) ili 5 (=0.5). Uobičajene vrijednost za taj parametar su između 0.005 i 0.01. U polje "Permutation value" unosi se koeficijent permutacije (uobičajena vrijednost je primjerice 100). Dok se u polje "Secret Key" unosi tajni ključ. Alternativno, moguće je odabrati da program sam generira tajni 160 bitni ključ kao SHA-1 sažetak izvornog dokumenta.

 

Prebacivanje između prikaza izvornog modela i označenog modela izvodi se tipkama 1 (izvorni model) i 2 (označeni model). Ako su učitana oba modela pritiskom na tipku 3 moguće je izabrati prikaz oba modela koji služi za potrebe procjene otpornosti algoritma na pogrešku registracije, ali se može iskoristiti i za potrebe ručne registracije dva modela. U tom načinu prikaza izvorni model stoji nepomičan, a označenim modelom se može manipulirati uz 7 uobičajenih 7 stupnjeva slobode (rotacija, translacija, skaliranje). Nakon što je postignuto zadovoljavajuće preklapanje potrebo je pritisnuti tipku R.

 

 

Slika 4-10. Prikaz oba modela odabire se pritiskom na tipku 3, i služi za potrebe procjene otpornosti algoritma na pogrešku registracije a može poslužiti i u svrhu ručne registracije modela.

 

Umetanje vodenog žiga izvodi se kombinacijom tipaka ctrl+x, dok se dohvat vodenog žiga izvodi kombinacijom tipaka ctrl+m ili iz izbornika "Watermark".

 

Tijekom postupka umetanja ili dohvata vodenog žiga, na dnu ekrana se pojavljuje traka napretka (engl. progress bar) koja pokazuje napredovanje postupka.

 

U tablici 4-1 dan je pregled još nekih opcija:

 

Tablica 4-1 Prikaz dodatnih opcija programa WatermarX:

 

Tipka

Svrha

W

Žičani prikaz modela

S

Prikaz modela plohama

X

Rotacija modela za 0.1 stupanj oko osi X

Y

Rotacija modela za 0.1 stupanj oko osi Y

Z

Rotacija modela za 0.1 stupanj oko osi Z

A

Rotacija modela za 0.1 stupanj oko sve tri osi

N

Unos šuma u označeni model, iznosa 0.1% promjera modela

P

Paljenje/gašenje spot-lighta

strelice

Usmjeravanje spot lighta po modelu

 

Rezultati pokusa

 

U svrhu testiranja implementacije algoritma korišten je model svemirskog broda iz DirectX kolekcije X modela koja se distribuira u sklopu DirectX 9.0 SDK (datoteka bigship1.X). Model se sastoji 4647 vrhova spojenih u 8686 trokuta. Umetnut je vodeni žig duljine 50 bitova uz  Na slici 4-12 (a) je prikazan izvorni model, dok je na slici 4-12 (b) prikazan model nakon umetanja vodenog žiga. Vizualna usporedba dva modela vidimo da je umetnuti žig vizualno gotovo neprimjetljiv. Ispitivani model podvrgnut je operacijama simplifikacije, odsijecanja, dodavanja šuma, kao i uniformnoj rotaciji duž sve tri osi, kako bi se ispitala otpornost algoritma na pogrešku registracije.

 

 

Slika 4-12. (a) Izvorni model .

Slika 4-12. (b) Model označen vodenim žigom.

 


 

 

 

Za potrebe simplifikacije upotrijebljena je pretvorba u progresivnu mrežu, nakon čega je model reduciran na 50%, 40%, 30%, 20% i 10% broja vrhova izvornog modela što je prikazano na slikama 4-13 (a) – (d). Pripadni rezultati korelacije, prikazani u tablici 4-2, pokazuju da takve simplifikacije nisu uništile vodeni žig.

 

 

Slika 4-13. (a) Model nakon uklanjanja 50% vrhova.

Slika 4-13. (b) Model nakon uklanjanja 60% vrhova.

 

 

Slika 4-13. (c) Model nakon uklanjanja 70% vrhova.

Slika 4-13. (d) Model nakon uklanjanja 80% vrhova.

 

Slika 4-13. (e) Model nakon uklanjanja 90% vrhova.

 

 

Tablica 4-2. Korelacija između umetnutog i dohvaćenog vodenog žiga nakon operacija poligonske simplifikacije. Korištena je linearna korelacija prema formuli 4.2 koja daje vrijednost između -1 i +1.

Preostalo vrhova (%)

50%

40%

30%

20%

10%

Preostalo vrhova (broj)

2322

1859

1395

930

465

Korelacija

1.0

1.0

0.85

0.96

0.7

 

 

Algoritam je testiran i na odsijecanje. Na slikama 4-14 (a) – (d) prikazan je testirani model nakon što je uklonjeno 15%, 30%, 45% i 60% modela. Rezultati, prikazani u tablici 4-3. Korištena je foruma za linearnu korelaciju (4.2) koja kao rezultat daje vrijednosti između
-1 i +1.

 

 

 

Slika 4-14. (a) Model nakon uklanjanja 15% modela.

Slika 4-14. (b) Model nakon uklanjanja 30% modela.

Slika 4-14. (c) Model nakon uklanjanja 45% modela.

Slika 4-14. (c) Model nakon uklanjanja 60% modela.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Tablica 4-3. Korelacija između umetnutog i dohvaćenog vodenog žiga nakon operacije odsijecanja modela.

Preostalo trokuta (%)

85

70

55

40

Preostalo trokuta (broj)

7400

6114

4857

3562

Korelacija

1.0

1.0

1.0

1.0

 

Testiranje na šum izvedeno je tako što je svaki vrh pomaknut u slučajnom smjeru za iznose 0.1%-0.5% promjera objekta (dobivenog kao promjer modelu opisane kružnice). Modeli su prikazani na slikama 4-15 (a) – (e) dok su rezultati dohvata vodenog žiga prikazani u
 tablici 4-4.

 

 

Slika 4-15. (a) Model nakon unesenog šuma 0.1%.

Slika 4-15. (b) Model nakon unesenog šuma 0.2%.

 

 

Slika 4-15. (c) Model nakon unesenog šuma 0.3%.

Slika 4-15. (d) Model nakon unesenog šuma 0.4%.

 

Slika 4-15. (d) Model nakon unesenog šuma 0.5%.

 

 

Tablica 4-4. Korelacija između umetnutog i dohvaćenog vodenog žiga nakon operacije unosa šuma.

Šum

0.1%

0.2%

0.3%

0.4%

0.5%

Korelacija

1.0

1.0

1.0

1.0

1.0

 

 

Ako je model napadnut transformacijama sličnosti (rotacija, translacija, uniformno skalirane duž sve tri osi) mora se model prije dohvata vodenog žiga vratiti na izvorni položaj, u izvornu orijentaciju i u izvorno mjerilo. Budući da se registracija izvodi između napadnutog i izvornog modela, moguće je da tijekom registracije dođe do pogrešaka. Zbog toga je algoritam testiran i na na transformacije sličnosti. Testiranje je izvedeno uniformnom rotacijom duž sve tri osi za 0.2, 04, 0.6, 0.8 i 1.0 stupanj. Rezultati dohvata vodenog žiga prikazani su tablici 4-5.

 

Tablica 4-5. Korelacija između umetnutog i dohvaćenog vodenog žiga nakon uniformne rotacije modela oko sve tri osi.

Stupanj rotacije

0.2

0.4

0.6

0.8

1.0

Korelacija

1.0

1.0

1.0

0.878

0.92

 

 

 

 
 
bottom graphic