3D polygonal meshes watermarking using normal vector distributions Suk-Hawn Lee, Tae-su Kim, Byung-Ju Kim, Seong-Geun Kwon The proposed 3D watermarking algorithm A block diagram of the proposed 3D watermark embedding algorithm. Patch classification (1) The 3D mesh model is divided into 6 patches using a distance measure. By embedding the same watermark into each patch, the proposed algorithm is robust against partial geometric deformation, such as cropping. Patch classification (2) The initial center points I as specified as the point with the maximum distance in the direction of 6 unit vector, (±x, ±y, ±z), from Origin and considered as the respective center point for each of the 6 patches. Pi {v : d (v, I i ) d (v, I j ), all j i, 1 j 6} Where d(v, I) || v - I || 2 Which has minimum distance among the initial center points I. Patch classification (3) I are updated to the new center point, after calculating the center of the clustered. Then, the clustering and updating process is iterated until the distortion measure Dm satisfies the condition, (Dm-1-Dm)/Dm+1 ≤ th ,where m is the number of iterations, the is the threshold value and Dm 6 i 1 vPi || I i v || 2 EGI per patch EGI (Extended Gaussian Image) of a 3D model is an orientation histogram that record the variation of surface area with surface orientation. The respective patch EGIs, PE={PE1,PE2,…,PE6} are obtained by mapping the mesh normal vector in P={p1,p2,…,p6} into the surface that the closest direction among the 240 surfaces. To calculate normal of meshes The unit normal vector nij and area Sij for the jth the mesh surface in the ith patch Pi are calculated as following: 2 nij ( I i v1 I i v2 ) ( I i v1 I i v3 ) / || nij || S ij ( I i v1 I i v2 ) ( I i v1 I i v3 ) / 2 The normal vector for a mesh surface includes nij and - nij according to two directions, inward and outward. Between two vectors, the normal vector is determined as the one with the higher value of the dot product of I j m , where mis the mean vector of v1, v2, v3. Mapping each normal into bin The normal vector n for each patch is mapped into bin Bi with thesmallest angle among the angles between nand the unit normal vector of bin BC ; Bi {n :|| BC i n || || BC j n || all j i, 1 j 240} The sampling of normal Half the angle between the BC of the neighborhood bin, Am, is the maximum value of BC i n , if nis mapped into Bi. is excluded from the EGI. naround Am Thus, only nwithin a certain range is selected as following: 0 cos ( BC n ) Amax , Amax Am 1 To determine the order of bit sequence The length of Bi is the sum of area for all the meshes that are mapped into Bi. There are 240 bins Bj={Bji | 0≤i<240} in the j-th patch EGI PEj. To sort length of Bi arranges the order of embedded bit sequences . Embedding watermark(1) The watermark, a 1-bit random sequence, is embedded in the ordered B of PE. The j-th watermark wj (1≤ j ≤ N) is embedded into the i-th ordered Bij (1≤ i ≤ 6) in each PE. Embedding watermark(2) All the normal vectors in the selected bin are changed according to the watermark bit. To change a normal vector , the position of the vertex needs to be changed. The optimum position is identified for all the vertices that satisfy the cost measure for the condition of watermark embedding within the search region. Embedding watermark(3) The search region for each coordinate of the current vertex v=(x,y,z) are x±Δx, y±Δy and z±Δz ; Δx= 0.5 min | x v | , Δy= 0.5 min | x v xi | , Δz= 0.5 min | x v xi | . vt is the t coordinate value of vertex which connected in v. in the 1-th step, 27 position for the vertex are selected for the initial search. i x v {( x, y, z ) | x {x x, x, x x}, y { y y, y, y y}, z {z z , z, z z}} Embedding watermark(4) The current vertex v is updated to position v’ . v' arg{ min {cos t (v) v { x , y , z} }} v the minimizing cost function cost(v): cos t (v) a is ( v ) i | Aw j Ai | where s(v) indicates the mesh surface connected to v and Ai is the angle between the normal vector n of the i-th mesh surface and the BC of bin Bi into which this vector is mapped among it patch EGI. If the BC i is included in the bins for watermark embedding, ai is1, otherwise, ai is 0. Plus, if the watermark bit of Bi is 1,Awi is 0,otherwise, Awi is Amax. Extraction(1) The normal vector and its EGI distribution are calculated after dividing the original model into 6 patches based on the known center point I of each patch. the watermark can be extracted based on the average difference of the angle between all the normal vectors mapped into each bin and the bin center point. Extraction(2) The watermark wij of the Bij bin with a j-th length for the i-th patch is extracted as 1,if (0≤ Aij ≤ Ath) , otherwise, it is extracted as 0. N Aij 1 / N cos 1 | BC n k | k 0 where N equals the number of all the mesh normal vectors mapped into the Bij bin. A watermark decision of 1 bit is performed based on the wij obtained from the 6 patches, wij is expressed as : 6 wij INT (1 / 6 wij 0.5) i 1 Experimental results (1) The 3D VRML data of the Stanford bunny model had 35,947 vertices and 69,451 faces. The experiment used a 1-bit watermark with 50 length WN=50 generated by a Gaussian random sequence. Experimental results (2)