A public fragile watermarking scheme for 3D model authentication
Chang-Min Chou, Din-Chang Tseng Computer-Aided Design
Vol. 38 (Nov. 2006) 1154–1165
Reporter: T. Y. Chen11 JUNE 2007
2
Information Hiding – Simple Classification for 3D Models
Information hiding
Steganography Watermarking
Spatial domain
Transform domain
Spatial domain
Transform domain
Robustwatermarking
Fragilewatermarking
Cayr2003aChen2006Tsai2006Wang2005aWang2005bWang2006WangP2006aWangP2006bWu2005b
Aspe2002aMare2004
Asho2004Bene1999aBene1999bBene1999cBors2006Kali2003
Cayr2003bCott2004Jin2004Kana1998Kim2000Ohbu2004
Bene2000Cayr2004Forn2000Lee2004Lin2005Wu2005a
Spatial domain
Transform domain
Yeo1999
Lin 2005Chou 2006
3
OutlineOutline• Introduction• The Proposed Scheme
– The watermark embedding scheme• The multi-function embedding method• The adjusting-vertex method
– The watermark extraction scheme and tamper detection
• Distortion Control• Experimental Results• Conclusions
4
Introduction~3D triangle meshesIntroduction~3D triangle meshes (1/4) Example : Sphere1
5
Introduction~3D triangle meshesIntroduction~3D triangle meshes (2/4) Sphere1.WRL
• #VRML V2.0 utf8
• # Produced by 3D Studio MAX VRML97 exporter, Version 8, Revision 0.92• # MAX File: sphere1.max, Date: Thu Dec 14 18:43:31 2006
• DEF Sphere01 Transform {• translation -0.3831 0 -1.533• children [• Shape {• appearance Appearance {• material Material {• diffuseColor 0.6 0.8941 0.6• }• }• geometry DEF Sphere01-FACES IndexedFaceSet {• ccw TRUE• solid TRUE• coord DEF Sphere01-COORD Coordinate { point [• 0 27.08 0, 0 23.45 -13.54, -6.77 23.45 -11.73, -11.73 23.45 -6.77, • -13.54 23.45 0, -11.73 23.45 6.77, -6.77 23.45 11.73, • 0 23.45 13.54, 6.77 23.45 11.73, 11.73 23.45 6.77, • 13.54 23.45 0, 11.73 23.45 -6.77, 6.77 23.45 -11.73, • 0 13.54 -23.45, -11.73 13.54 -20.31, -20.31 13.54 -11.73, • -23.45 13.54 0, -20.31 13.54 11.73, -11.73 13.54 20.31,
6
Introduction~3D triangle meshesIntroduction~3D triangle meshes (3/4) Sphere1.WRL
• 0 13.54 23.45, 11.73 13.54 20.31, 20.31 13.54 11.73, • 23.45 13.54 0, 20.31 13.54 -11.73, 11.73 13.54 -20.31, • 0 0 -27.08, -13.54 0 -23.45, -23.45 0 -13.54, -27.08 0 0, • -23.45 0 13.54, -13.54 0 23.45, 0 0 27.08, 13.54 0 23.45, • 23.45 0 13.54, 27.08 0 0, 23.45 0 -13.54, 13.54 0 -23.45, • 0 -13.54 -23.45, -11.73 -13.54 -20.31, -20.31 -13.54 -11.73, • -23.45 -13.54 0, -20.31 -13.54 11.73, -11.73 -13.54 20.31, • 0 -13.54 23.45, 11.73 -13.54 20.31, 20.31 -13.54 11.73, • 23.45 -13.54 0, 20.31 -13.54 -11.73, 11.73 -13.54 -20.31, • 0 -23.45 -13.54, -6.77 -23.45 -11.73, -11.73 -23.45 -6.77, • -13.54 -23.45 0, -11.73 -23.45 6.77, -6.77 -23.45 11.73, • 0 -23.45 13.54, 6.77 -23.45 11.73, 11.73 -23.45 6.77, • 13.54 -23.45 0, 11.73 -23.45 -6.77, 6.77 -23.45 -11.73, • 0 -27.08 0]• }• coordIndex [• 0, 1, 2, -1, 0, 2, 3, -1, 0, 3, 4, -1, 0, 4, 5, -1, 0, 5, 6, -1, • 0, 6, 7, -1, 0, 7, 8, -1, 0, 8, 9, -1, 0, 9, 10, -1, • 0, 10, 11, -1, 0, 11, 12, -1, 0, 12, 1, -1, 1, 13, 14, -1, • 1, 14, 2, -1, 2, 14, 15, -1, 2, 15, 3, -1, 3, 15, 16, -1, • 3, 16, 4, -1, 4, 16, 17, -1, 4, 17, 5, -1, 5, 17, 18, -1, • 5, 18, 6, -1, 6, 18, 19, -1, 6, 19, 7, -1, 7, 19, 20, -1, • 7, 20, 8, -1, 8, 20, 21, -1, 8, 21, 9, -1, 9, 21, 22, -1,
7
Introduction~3D triangle meshesIntroduction~3D triangle meshes (4/4) Sphere1.WRL
• 9, 22, 10, -1, 10, 22, 23, -1, 10, 23, 11, -1, 11, 23, 24, -1, • 11, 24, 12, -1, 12, 24, 13, -1, 12, 13, 1, -1, 13, 25, 26, -1, • 13, 26, 14, -1, 14, 26, 27, -1, 14, 27, 15, -1, 15, 27, 28, -1, • 15, 28, 16, -1, 16, 28, 29, -1, 16, 29, 17, -1, 17, 29, 30, -1, • 17, 30, 18, -1, 18, 30, 31, -1, 18, 31, 19, -1, 19, 31, 32, -1, • 19, 32, 20, -1, 20, 32, 33, -1, 20, 33, 21, -1, 21, 33, 34, -1, • 21, 34, 22, -1, 22, 34, 35, -1, 22, 35, 23, -1, 23, 35, 36, -1, • 23, 36, 24, -1, 24, 36, 25, -1, 24, 25, 13, -1, 25, 37, 38, -1, • 25, 38, 26, -1, 26, 38, 39, -1, 26, 39, 27, -1, 27, 39, 40, -1, • 27, 40, 28, -1, 28, 40, 41, -1, 28, 41, 29, -1, 29, 41, 42, -1, • 29, 42, 30, -1, 30, 42, 43, -1, 30, 43, 31, -1, 31, 43, 44, -1, • 31, 44, 32, -1, 32, 44, 45, -1, 32, 45, 33, -1, 33, 45, 46, -1, • 33, 46, 34, -1, 34, 46, 47, -1, 34, 47, 35, -1, 35, 47, 48, -1, • 35, 48, 36, -1, 36, 48, 37, -1, 36, 37, 25, -1, 37, 49, 50, -1, • 37, 50, 38, -1, 38, 50, 51, -1, 38, 51, 39, -1, 39, 51, 52, -1, • 39, 52, 40, -1, 40, 52, 53, -1, 40, 53, 41, -1, 41, 53, 54, -1, • 41, 54, 42, -1, 42, 54, 55, -1, 42, 55, 43, -1, 43, 55, 56, -1, • 43, 56, 44, -1, 44, 56, 57, -1, 44, 57, 45, -1, 45, 57, 58, -1, • 45, 58, 46, -1, 46, 58, 59, -1, 46, 59, 47, -1, 47, 59, 60, -1, • 47, 60, 48, -1, 48, 60, 49, -1, 48, 49, 37, -1, 61, 50, 49, -1, • 61, 51, 50, -1, 61, 52, 51, -1, 61, 53, 52, -1, 61, 54, 53, -1, • 61, 55, 54, -1, 61, 56, 55, -1, 61, 57, 56, -1, 61, 58, 57, -1, • 61, 59, 58, -1, 61, 60, 59, -1, 61, 49, 60, -1]• }• }• ]• }
8
Introduction~ wmk. Introduction~ wmk. categorycategory• The application purpose
– Robust watermarking • To achieve intellectual property protection of digital contents.• To make the embedded watermarks remain detectable after being
attacked.
– Fragile watermarking• To authenticate the integrity of digital contents.• To detect the unauthorized modifications and locate the changed regions.
• The extraction strategies– Private (blind): Need the original model and watermark. – Public: In the absence of the original model and watermark.– Semi-public: Does not need the original model, but the original
watermark is necessary.
• The embedding strategies– Geometry: To modifying the vertex coordinates.– Topology: To modifying the vertex connectivity.
9
• The causality problem– Arises when the neighboring relationship of a former
processed vertex is influenced by the perturbing of its later processed neighboring vertices.
• The convergence problem– The original model has been heavily distorted before
some vertices reach the predefined relationship.
IntroductionIntroduction (2/2)(2/2)
10
The Proposed SchemeThe Proposed Scheme
• The watermark embedding scheme• The multi-function embedding method• The adjusting-vertex method
• The watermark extraction scheme and tamper detection
Watermarked mesh M ’
Watermark embedding Watermark extraction
12
The Proposed Scheme (embedding)The Proposed Scheme (embedding)
• A mesh M(V,C)– V is the vertex set, a vertex v(x1,x2,x3)v’(x1’,x2’,x3’)
– C is the connectivity relationship
• A watermark W=(w1,w2, … ,wn)
• Keys: kw, kjq, kj
d, h( ), j =2,3
13
The Proposed Scheme (embedding)The Proposed Scheme (embedding)
• A vertex v(x1,x2,x3)v’(x1’,x2’,x3’)
– x1 is used to indicate if v is a mark vertex
– x2 is used for embedding watermark wi
– x3 is used for embedding h(wi)
• If v is a mark vertex, x1/ kw must be odd; otherwise x1’ = x1 + kw
• If v is a non-mark vertex, x1/ kw must be even; otherwise x1’ = x1 + kw
1
1'1
1
mod 2 ,
, ( 1 ) ( 0 )
,
w
x
k
w
m and
x if m and v is a mark vertex orx m and v is not a mark vertex
x k otherwise
14
The Proposed Scheme (embedding)The Proposed Scheme (embedding)For a mark vertex v(x1,x2,x3), • Calculate the barycenters x2
c and x3c
xjc (the barycenter of xj): the centroid of xj’s neighbors
1| ( )|
( )
, 2,3cj jN v
N v
x x j • xj is moved toward xj
c to xje, s.t. | xj
c - xje | is divisible by kj
q
- (| - | mod ),
(| - | mod ),
c q cj j j j j je
j c qj j j j
x x x k if x xx
x x x k otherwise
Xjq
dj
Xje
XjqXj
qXj
c Xj
Xj’
kjq kj
q kjq
15
The Proposed Scheme (embedding)The Proposed Scheme (embedding)
• Move xje to xj
’ for embedding wi and hi(=h(wi))
Xjq
dj
Xje
XjqXj
qXj
c Xj
Xj’
',
, 2,3- ,
j
j
e cj j j
j ej
x d if x xx j
x d otherwise
2 3
32
2
2 23 3 3
3
2
2
3
, , ( ) , ,
, ,
0
0 , , , , ) (
d d
qqd
i ik
kki i
d qi
ik
d d qi i
w w k
w
h
h k h k d k
d dwhere h h w
k N d k
kjq kj
q kjq
16
The Proposed Scheme The Proposed Scheme (The causality problem ~ The “adjusting vertex” method
))• The barycenters (x2 and x3) of a former processed vert
ex will be changed when any of its neighboring vertices was selected to be a mark vertex too and need to be perturbed.
• For each chosen mark vertex, we randomly assign an adjusting vertex from its neighboring vertices.
• The function of the adjusting vertex is to keep the barycenters of the mark vertex unchanged.
• To avoid the causality problem, the neighboring vertices of the previously selected mark vertices can’t be taken as adjusting vertices for later mark vertices.
Watermarked mesh M ’
Watermark embedding Watermark extraction
19
The Proposed Scheme (extraction)The Proposed Scheme (extraction)
• For each vertex, check its x1 to see if it is a mark vertex
• For each mark vertex,
– Extract w’ from x2
– Extract h’ from x3
– If h(w’) ≠h’, set the vertex and all its neighbors as suspicious vertices
• Report all the suspicious vertex
2
2
3
3
'2 2 2
'3 3 3
' (| - | mod )
' (| - | mod )
d
q
d
q
kc q
k
kc q
k
w x x k
h x x k
Detect and locate the modificationDetect and locate the modification
Distortion controlDistortion control1
1'1
1
mod 2 ,
, ( 1 ) ( 0 )
,
w
x
k
w
m and
x if m and v is a mark vertex orx m and v is not a mark vertex
x otherwk ise
Xjq
dj
Xje
XjqXj
qXj
c Xj
Xj’
',
, 2,3- ,
j
j
e cj j j
j ej
x d if x xx j
x d otherwise
32
2 3
2 3
2 3 2
3
, , ( ) , ,
, , ,,
0
0 ) ( ,
d d
kki i i ik k
d d
di
di i i
qj j
w kwhere w h
w h k k Nh k
h wd
k
hd
d
- (| - | mod ),
(| - | mod ),
c q cj j j j j je
j c qj j j j
x x x k if x xx
x x x k otherwise
kjq kj
q kjq
22
Distortion controlDistortion control
The smaller the values of kw and kqs are, the smaller the distortion is.
d<10-3
Kw=10-3
Kq=10-3.5
(vs. PSNR)
23
The watermark digest method (invariant)
WD:
• wm: the indices of the mark vertices
• wp: the required perturbing displacements
24
Experimental ResultsExperimental Results
25
ConclusionsConclusions1. The traverse order is not needed in the watermark
extraction stage. 2. The adjusting vertex method can effectively limit the
distortion ratio caused by watermark embedding. 3. Different functions are defined for the three coordinates
of vertices.4. The average distortion of the marked models is under
user control.5. The proposed scheme can detect and locate all
unauthorized modifications.6. The proposed scheme is public and a relative small key
is needed for the watermark extraction.7. The watermark digest method is proposed.
26
• 1999, IEEE Computer Graphics and Applications, Watermarking 3D Objects for Verification, Boon-Lock Yeo and Minerva M. Yeung
• 2004, LNCS 2939, Authentication of 3-D Polygonal Meshes, Hsueh-Yi Lin, Hong-Yuan Mark Liao, Chun-Shien Lu and Ja-Chen Lin
• 2005, IEEE TRANSACTIONS ON MULTIMEDIA, Fragile Watermarking for Authenticating 3-D Polygonal Meshes, Hsueh-Yi Sean Lin, Hong-Yuan Mark Liao, Chun-Shien Lu, and Ja-Chen Lin
• 2005, International Multimedia Conference Proceedings of the 7th workshop on Multimedia and security, A fragile watermarking scheme for 3D meshes, Hao-Tian Wu , Yiu-Ming Cheung
• 2006, Computer-Aided Design, A public fragile watermarking scheme for 3D model authentication, Chang-Min Chou, Din-Chang Tseng
• 2007, IJCSNS, Technologies for 3D Model Watermarking: A Survey, Chang-Min Chou and Din-Chang Tseng
27
Information Hiding – Simple Classification for 3D Models
Information hiding
Steganography Watermarking
Spatial domain
Transform domain
Spatial domain
Transform domain
Robustwatermarking
Fragilewatermarking
Cayr2003aChen2006Tsai2006Wang2005aWang2005bWang2006WangP2006aWangP2006bWu2005b
Aspe2002aMare2004
Asho2004Bene1999aBene1999bBene1999cBors2006Kali2003
Cayr2003bCott2004Jin2004Kana1998Kim2000Ohbu2004
Bene2000Cayr2004Forn2000Lee2004Lin2005Wu2005a
Spatial domain
Transform domain
Yeo1999
Lin 2005Chou 2006
Transform domain?
28
• The scheme is not suitable for those models with flat surfaces. Those models cannot tolerate a small distortion. – Improve it or the phenomenon cannot be avoided. (compare with
other schemes) – Perhaps, it raised by few adjusting vertices. Average them to all
vertices not qualified as mark vertices.• Combine some proposed schemes (proposed in this pap
er and that was reported last time) to develop an invertible fragile watermarking scheme.
• To develop a Semi-fragile watermarking scheme which is immune to affine transformation.
• …• Read some outstanding 2d wmk schemes, usage, constr
ains• Read more robust, transform domain, hiding schemes