1 / 23

Geometry-Based Watermarking of 3D Models

Geometry-Based Watermarking of 3D Models. Oliver Benedens. 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.

dara
Download Presentation

Geometry-Based Watermarking of 3D Models

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Geometry-BasedWatermarking of3D 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) • NB: the total number of bins :bin centers • : radius (an angle measured in radians; i = 1, …, NB) • Each bini (i = 1, …, NB) is assigned all the model’s normals whose angle difference to the center normal is less than Ri. • BNi: total number of normals sampled to bini. • : the normals sampled in bini.

  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 BPij (i = 1, …, NB, j = 1, …, BNi) into its 2D coordinate pair pij = (xij, yij) by : h = BCi * BPij , l1 = cos (h), P = BPij - h * BCi(hlies between 0 and 1)

  10. Embedding bit-string S=s1, …,sNB, , i=1, …, NBbe 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 w1,w2 [0,1] and w1+w2=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 NB • Their positions (bin center normals) BCi • Their radius Ri • Their original center of mass value comi = (cxi, cyi).

  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, …, NB. • The watermark contents S’ = s’1,…, s’NB, s’i {0,1}, i = 1, …, NBare 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. Experimental results

  22. Experimental results

  23. Experimental results

More Related