A new digital watermarking scheme for 3D triangular mesh models
Y6927448 Sharad Kohli Y6927023 Abhishek Rajput
Watermark Embedding Algorithm
Processing on Mesh Model
Read the given mesh model and obtain the vertex and faces
To get the neighbourhood of each vertex we compute α ring for each vertex
We have used α=1
Feature Point Selection The most appropriate vertexes that can be chosen as feature points of a 3D mesh model are located at regions with abrupt changing. • 3 Steps: 1. Construct the neighbourhood of each vertex(already done) 2. Calculate normal direction of each vertex: •
Feature Point Selection
2
• •
• •
vector nvi denotes the normal direction of vi Ni is the total number of the neighbourhood vertices of vi Vm is the average vector of all the vertices to the center of the 3D mesh model
Feature Point Selection Obtain D(vi) as follows:
3
•
•
• •
Cos-1(nvi, nvj) is the angle between the normal directions of vi and vj . Vertices are sequenced according to the decreasiong value of D(vi), and the first Nf vertices are selected as the feature points which can be denoted as Vn (n = 1,2,3,4,....Nf ). Nf can be set initially as per the need.
Voronoi Patch Generation •
•
•
•
Each feature point is employed as the centroid of a Voronoi patch. The *Euclidean distance between each vertex and every feature point is measured. A vertex will belong to a Voronoi patch if it has the minimum distance with the Voronoi centroid. * Author has used Geodesic distance, for simplicity we have used Euclidean distance.
Feature Point Selection
Watermark Embedding Algorithm Square Reference Planes Original Mesh Model
Feature Point Selection
α
Original Range Images
Partition/Vor onoi Patches
DCT β Watermark
High Frequency Coeffecients
IDCT Watermark Mesh Model
Vertex Perturbing
Watermark Ranged Images
Range Images
Square reference Plane is perpendicular to the normal direction of centroid Vn for each Voronoi patch. All the points of a voronoi patch are projected onto this plane. This list of 3D coordinates in the given reference frame (cloud of points) is our range image When an appropriate reference plane has been set, an x–y axis can be defined on the plane through the following 4 steps. •
•
•
•
Working on Range Image 1.
Find the centroid (denoted as Vi) that has the maximum euclidean/geodesic distance with centroid Vn Vi = Max(dg(Vn,Vk); k =1,2,3...Nf) where Max{} is the function to seek the maximum value dg() is the distance seeking function.
2.
Connect centroids Vn and Vi, project vector Vn Vi onto the reference plane along the normal direction to get a reference vector Vn` Vi`
3.
4.
The direction of x coordinate axis can be defined as along the direction of vector Vn` Vi` Y coordinate is perpendicular to the direction of x.
Working on Range Image •
•
So now we have transformed the projected list of 3D coordinates to 2D coordinates in the given reference plane (x‟,y‟,z‟) (f(x‟,y‟,z‟),h) in the given plane •
•
h is the perpendicular distance between the point (x,y,x) on the surface and its projection (x‟,y‟,z‟)
Since all transformations are relative to given coordinates, this is robust against rotation or translation of coordinates
Deviation from Paper
Author has used a different representation of range images. Our watermark embedding algorithm is different from author. We have used a variation of Reversible Watermarking of 2d Vector Data
Reversible Watermarking of 2d Vector Data •
•
•
•
Given 2D vector data of x-y coordinates, sort it according to x axis Let the sorted data be A i.e A contains the y values as sorted on x Now we divide A into small chunks of 8 elements each say Ai Apply DCT on Ai to obtain Ai‟
Reversible Watermarking of 2d Vector Data •
•
•
•
Select the highest frequency component of A i„ Ai„[8] = Ai„[8]+β*WatermarkBit Watermark Bit comes from the Watermark sequence (w1 , w2 , w3 ......) each extracted from N(0,1) Apply Inverse DCT now to Ai„ This is done for all the 8 element chunks and thus we get the watermarked voronoi patch. When repeated for all patches we get back the watermarked mesh model
Watermark Embedding Algorithm Square Reference Planes Original Mesh Model
Feature Point Selection
α
Original Range Images
Partition/Vor onoi Patches
DCT β Watermark
High Frequency Coeffecients
IDCT Watermark Mesh Model
Vertex Perturbing
Watermark Ranged Images
Surface Reconstruction •
As a result of above step we now have watermarked heights: (f(x‟,y‟,z‟),h) (f(x‟,y‟,z‟),h‟)
Now we reverse project this from the range image to the mesh model • Basically: (f(x‟,y‟,z‟),h‟)(xw ,yw ,zw ) This set of (xw ,yw ,zw ) is our watermarked mesh model •
Original Model
Venus
Projected Models
Watermarked Model
Β = .01
Watermarked Model
Β=.1
Watermarked Model
Β=1
Watermarking Detection Algorithm
Watermark Extraction Algorithm Square Reference Planes
Watermarked
Mesh Model
α
Feature Point Selection
Watermarked Range Images
Partition/Vor onoi Patches
DCT Watermark
Extracted Watermark
β
High Frequency Coeffecients
DCT
>T YES T, then watermark is detected
Peak Signal to Noise Ratio
PSNR = Peak Signal to Noise Ratio Between original
and watermarked mesh model
v = vertex farthest from center Vi* - Vi = perturbance N = Total vertex number of the model Larger the PSNR better is the watermarking
Some Results
β
PSNR
Correlation Coefficient
.01
67.7027
0.8302
.1
51.0723
0.7848
1
30.6755
0.2524
Thank You!!
References
“A new Digital Watermarking Scheme for 3D triangular mesh models” – Ai, Liu, Zhou, Yang, Xie, 2009 “Reversible watermarking of 2-D Vector Data” – Coigt, Yang, Busch.