3D polygonal meshes watermarking using normal vector distributions

advertisement
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
vPi
|| 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 thesmallest 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
is ( 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)
Download