Presentation is loading. Please wait.

Presentation is loading. Please wait.

Geometry-Based Watermarking of 3D Models Oliver Benedens.

Similar presentations


Presentation on theme: "Geometry-Based Watermarking of 3D Models Oliver Benedens."— Presentation transcript:

1 Geometry-Based Watermarking of 3D Models Oliver Benedens

2 Induction The idea is to use collections of surfaces as an embedding primitive. A bin is the entity for embedding one bit of watermark data. The discrete approximation of the EGI (Extended Gaussian Image), called an orientation histogram, provides a graphical representation of the described sampling of model normals.

3 Define a bin A center normal in 3D space normal and possibly a radius define a bin. The bins can be constructed in a general way by tessellating the unit sphere.

4 The embedding procedure (E1) Calculate consistent surface patch normals. (E2) Sample model normals to bins. (E3) Apply core watermark embedding algorithm.

5 Calculating consistent surface normals (E1) The method depends on consistent surface patch normal directions. Modelers (or attackers) may produce models with patch normals not pointing in an outward direction; in the extreme, normals point randomly inwards or outwards.

6 Calculating consistent surface normals (E1) For each patch cast a ray from the center of mass through the center of the patch and determine angles to both possible normals. Choose the normal with the greater angle as the surface patch normal. The triangle points are ordered counterclockwise.

7 Sample model normals to bins (E2) N B : the total number of bins : bin centers : radius (an angle measured in radians; i = 1, …, N B ) Each bin i (i = 1, …, N B ) is assigned all the model’s normals whose angle difference to the center normal is less than R i. BN i : total number of normals sampled to bin i. : the normals sampled in bin i.

8 Core watermark embedding algorithm (E3) the center of mass

9 Transforming bin normals from a sphere surface representation onto a circle Normalized 3D vectors BP ij (i = 1, …, N B, j = 1, …, BN i ) into its 2D coordinate pair p ij = (x ij, y ij ) by : h = BC i * BP ij, l 1 = cos (h), P = BP ij - h * BC i (h lies between 0 and 1)

10 Embedding bit-string S= s1, …, s N B,, i=1, …, N B be the bit-string to be embedded in model M. Embedding one bit of information in a bin by pushing the center of mass in a certain direction. You’ve successfully coded a “1” bit if the center of mass moves into the marked section of the circle.

11 Detailed description of the embedding process function optimizeVertex() to search a vertex’s surroundings for a local cost minimum and itself calls costFunc() to evaluate the costs of certain vertex displacements. The process also maintains sets containing the original and normal values of triangles as well as their 2D counterparts. main(): d = initial search range for i = 1; i < number of iterations; i++ for each point P in model for j = 1; j < number of refinements; j++ optimizeVertex (P, d) reduce d

12 optimizeVertex() optimizeVertex() to find a new local minimum. The coordinates of point P are updated by replacing P with P’. the multidimensional downhill simplex lets you explore a given vertex’s neighborhood for a local minimum of costs. initialCosts = costs(P) P’ = multidimensionalDownhillSimplex ( initialCosts, P, d) alter mesh by exchanging P with P’

13 costFunc (Vertex P) costFunc() checks for violations of the general constraints. maxCosts=0 if search space exceeded return 2 /* 2 is max value for costs */ for all triangles normals TN adjacent to point P if TN not contained in marked bin if difference (actual TN and original TN) >a return 2 if TN cotained in marked bin if difference (TN and original TN > b) or TN left bin return 2 else c = costs (TN) if (c > maxCosts) maxCosts = c return maxCosts a and b are maximum tolerated normal differences for normals not contained in bins and normals contained in bins, respectively.

14 costs (Normal N) The costs c returned to the caller are calculated as follows: with certain weights w 1,w 2 [0,1] and w 1 +w 2 =1

15 The actual values of variables used in experiments follow The number of iterations (through the point set) in main() was 3, the number of refinements was 2. max was 0.3, a= 5 degrees, b = 10 degrees, and d remained constant through all iterations.

16 Retrieving the watermark Retrieving a watermark requires the reader to know the following a priori information: The number of bins N B Their positions (bin center normals) BC i Their radius R i Their original center of mass value com i = (cx i, cy i ).

17 The retrieval algorithm Calculate consistent surface normal patches (R1). Transform model into spherical representation and adjust orientation (R2). Sample model normals to bins (R3). Core watermark retrieval algorithm (R4).

18 Core watermark retrieval algorithm (R4) The bin contents are transformed from 3D to a 2D representation and the center of mass is calculated. Denote the calculated center of mass values with com’ i = (cx’ i, cy’ i ), i = 1, …, N B. The watermark contents S’ = s’1,…, s’N B, s’i {0,1}, i = 1, …, N B are simply calculated by

19 The watermarking system wanted primarily to achieve robustness against Randomization of points Mesh altering (re-meshing) operations or attacks Polygon simplification

20 Experimental results

21

22

23


Download ppt "Geometry-Based Watermarking of 3D Models Oliver Benedens."

Similar presentations


Ads by Google