an efficient information hiding algorithm for polygon models eurographics 2005 chung-ming wang and...
Post on 04-Jan-2016
215 Views
Preview:
TRANSCRIPT
An Efficient Information Hiding Algorithm An Efficient Information Hiding Algorithm for Polygon Modelsfor Polygon Models
EUROGRAPHICS 2005 Chung-Ming Wang and Yu-Ming Cheng
Reporter: T. Y. Chen9 March 2007
2
OutlineOutline• Introduction• Criteria• The Proposed Scheme
– Framework– Preprocessing– Sequence List– Multi-Level Embed Procedure (MLEP)– Data Storage
• Experimental Results• Conclusions• Reference
3
3D triangle meshes ~ Example : Sphere1
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,
5
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,
6
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]• }• }• ]• }
7
Information Hiding Process
Cover Model
Stego Model
Secret Key
Message
Information HidingInformation Hiding ~~ Embedding
8
Recovery Model
Information
Extracting Process
Secret KeyMessage
Stego Model
Information HidingInformation Hiding ~~ Extracting
9
Six CriteriaSix Criteria• Capacity• Distortion• Performance• Security• Robustness
– Affine transformations: translation, rotation, scaling, these combined operations
• Reversibility
10
Framework of the schemeFramework of the schemeCover Model
Message
Preprocessing
Sequence List
MLEP
Data Storage
Stego ModelRecovery Key
Preprocessing
Sequence List
MLEP
Data Storage
Recovery Model
MessageEmbedding Procedure
Extraction Procedure
Bit streams: (0, 1)
Bit streams: (0, 1)
以 PCA 找出 initial △
Secrete keyHierarchical kd treeTriangle neighbor table advanced jump strategy
11
PreprocessingPreprocessing• The principal component analysis (PCA)
determines the initial triangle.
First
Second
Third
Initial triangle
12
Sequence ListSequence List
Initial
1
A
B
23
4
567
9
10
11 12
8
C
D
E
F
GH
K
J
I
Bit values:Traced triangles:
Message vertices:
1 0 1 0 0 0 1 0 1 1 1 1
ABC1,
A B
C (Message vertex)
Bit value = 0
Bit value = 1clockwise order
C,
CBD0,
D,
CDE1,
E,
EDF0,
F,
EFG0,
G,
EGH0, EHC1, CHA0, CAB1,
H, I, J, KBAI1, IAJ1, JAK1, KAH
13
Sequence ListSequence List• If the next decided upon △ has been traced before go on
through the with respect to the bit value△• If a △ cannot found in clockwise order get a new from △
another one of the current △• If some △ do not have the next on the 1st or 2nd side △
go back to the previous △ and trace another side for the next △
• Although this scheme can trace all the available triangles, it is time consuming.– Hierarchical kd-tree– Triangle neighbor table (TNT)– Advanced jump strategy (AJS)
14
Hierarchical KD-TreeHierarchical KD-Tree• Capability:
– Assume a set P of vertices in 3D space. – These vertices are preprocessed into the kd-tree structu
re.– Given any query vertex q, these vertices of P nearest to
q can be reported efficiently.
• Purpose:– Limit the number of candidate neighbors of every triangl
e for triangle neighbor table(TNT).
• Practice:– Use the gravity center of a triangle instead of the triangl
e itself.
15
Triangle Neighbor Table (TNT)Triangle Neighbor Table (TNT)• This table indicates the neighbors and connective
relations of every triangle.ID Neighbors
1 2 3
2 1 5
3 1 4
4 3 5 13
5 2 6 4
4 53
1 2
6 7
8
1312
1110
9
• Require large search and compare operations.k-d tree
16
TNT with Hierarchical KD-TreeTNT with Hierarchical KD-Tree• Use the gravity center of a triangle instead of the
triangle itself.
4 53
1 2
6 7
8
1312
1110
9
17
TNT with Hierarchical KD-TreeTNT with Hierarchical KD-Tree• Using hierarchical kd-tree decreases the number o
f candidate neighbors of every triangle.
ID Neighbors
1
2
3
4
53
13
1 2
4 5
6 7
812
1110
9
1
2 3
2
1 5
3
1 4
4
3 5 13
5 2 6 4
18
Advanced Jump Strategy (AJS)Advanced Jump Strategy (AJS)• Mesh traversal without accelerating strategy.
1. We assume only three triangles remain not traced.
2. Tracing triangles over and over takes a great deal of processing time.
19
Advanced Jump Strategy (AJS)Advanced Jump Strategy (AJS)• Mesh traversal with the accelerating strategy.
1. We assume only three triangles remain not traced.
2. Number of tracing triangles reaches threshold. Call AJS up and then use the gravity center of a triangle instead of the triangle itself.
First principa
l axis
3. Get the position of the orthogonal projection of the gravity center of every triangle on the first principal axis.4. Sort the values of the position.
1
2
3
5. Check validity and Jump!
20
Advanced Jump Strategy (AJS)Advanced Jump Strategy (AJS)• Tracing triangles over and over takes a great deal of
processing time.• The AJS chooses a new starting triangle based on PCA
ordering.– Decided according to the position of the orthogonal projection of
the gravity center of every triangle on the first principal axis.
• The AJS links this new triangle to the tail of the previous sequence list.– The resulting triangle has never been traced before, and it only has
one vertex that has never been used before.
21
Advanced Jump Strategy (AJS)Advanced Jump Strategy (AJS)• The AJS efficiently avoids retracing triangles that have
already been traced.– This greatly improves performance, especially near the capacity
limit.
Rabbit Dinosaur Horse Venus Bunny
0
2
4
0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%Fill rate of models
Tim
e (s
ec)
with accelerating
strategy
0
500
1000
1500
2000
0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
Fill rate of models
Tim
e (s
ec)
no accelerating
strategy
22
Multi-Level Embed Procedure (MLEP)Multi-Level Embed Procedure (MLEP)
• Sliding• Extending• Rotating
23
SlidingSliding• Each triangle is easily treated as a two-state
geometrical object.
A B
C
0 1 0 1
C’
1. We assume one triangle ABC, and we divide entry edge AB into four segments.
2. The position of the orthogonal projection of the triangle summit C on the entry edge AB is denoted as P(C)|AB.3. If the state of P(C)|AB is the same as message, then do nothing.entry edge
P(C)|AB P(C’)|AB 4. If not, then shift the message vertex across the closest axis.
Message: 1Message: 0
24
ExtendingExtending• Embed messages in the height of the triangle.
A B
C
C’
1. We assume one triangle ABC, and we let the line defined by V and B be orthogonal to entry edge AB.
2. The position of the orthogonal projection of the triangle summit C on the virtual edge VB is denoted as P(C)|VB.3. If the state of P(C)|VB is the same as message, then do nothing.entry edge
P(C)|VB
P(C’)|VB
4. If not, then shift the message vertex across the closest axis.
Message: 0Message: 1
V
01
01
virtual edge
25
Initial triangl
e
RotatingRotating• Embed messages in the degree of the angle
between both triangle planes.1. We assume one triangle ABC, and we let a reference vertex G be the gravity center of the initial triangle.
2. Both triangles ABC and ABG form two individual planes.
3. We define the degree of the angle between the two planes as θ.
4. Let E3 be a plane with the normal vector AB and C, D, C’ be the vertices on the same E3 plane.
G
θ
A B
C
DE3 plane
26
RotatingRotating• Embed messages in the degree of the angle
between both triangle planes.
G
θ
A B
C
DE3 plane
A
G
B
C
θ
D
E3 plane
27
RotatingRotating• Embed messages in the degree of the angle
between both triangle planes.
A
G
B
C
θ
D
D
C
E3 plane
E3 plane
28
RotatingRotating• Embed messages in the degree of the angle
between both triangle planes.5. We assume that the vertex D is the center of a sphere and the radius of it is length of line DC.6. If the value of the degree of the angle is the same as message, then do nothing.
7. If not, then shift the message vertex by adding or subtracting the degree of the angle φ.
θ
D
C
E3 plane
Message: 0Message: 1
02mod
12mod'
θ’
C’ φ
29
Data StorageData Storage• Capacity
– Mmaxbits: the maximal # of bits embedded
– Nvertices: the # of vertices in the mesh
– Mmaxbits = 3 (Nvertices - 2) - 1
• Recovery Key– A string containing bits indicating whether a change was
needed for every shifted message vertex.– Reversibility
30
DistortionDistortion• Shift the message vertex with respect to the
Human Visual System.• Anticipate possible distortion rate.
a
b
c
s222 cbaS
S a b c
31
Cover Model Stego Model
Results - HorseResults - Horse
Vertices: 48485
Triangles: 96966
Sdist: 0.00005396
RMS: 0.00000206
Time: 3.953 sec
32Cover Model Stego Model
Results - RabbitResults - Rabbit
Vertices: 67038
Triangles: 134074
Sdist: 0.00000849
RMS: 0.00000074
Time: 5.593 sec
33
34
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
35
36
ReferencesReferences• Cayre F., Macq B.: Data Hiding on 3-D Triangle Meshes. I
EEE Trans. Signal Processing 51, 4 (2003), pp. 939-949.
• Wang C. M., Cheng Y. M.: An Efficient Information Hiding Algorithm for Polygon Models. Computer Graphics Forum 24, 3 (2005).
• http://gmvr.cs.nchu.edu.tw/TT/
38
Recovery KeyRecovery Key• A string containing bits indicates whether a
change was needed for every shifted message vertex.
Cover Model Stego Model Recovery Model
1
2
3
1
2
3
Recovery Key: 1 0 1
1
2
3
Recovery Model = Cover Model
top related