Download presentation
Presentation is loading. Please wait.
Published byShannon Lydia McGee Modified over 9 years ago
1
An Efficient Information Hiding Algorithm for Polygon Models EUROGRAPHICS 2005 Chung-Ming Wang and Yu-Ming Cheng Reporter: T. Y. Chen 9 March 2007
2
2 Outline Introduction Criteria The Proposed Scheme –Framework –Preprocessing –Sequence List –Multi-Level Embed Procedure (MLEP) –Data Storage Experimental Results Conclusions Reference
3
3 3D triangle meshes ~ Example : Sphere1
4
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
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
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
7 Information Hiding Process Cover Model Stego Model Secret Key Message Information Hiding ~ Information Hiding ~ Embedding
8
8 Recovery Model Information Extracting Process Secret Key Message Stego Model Information Hiding ~ Information Hiding ~ Extracting
9
9 Six Criteria Capacity Distortion Performance Security Robustness –Affine transformations: translation, rotation, scaling, these combined operations Reversibility
10
10 Framework of the scheme Cover Model Message Preprocessing Sequence List MLEP Data Storage Stego Model Recovery Key Preprocessing Sequence List MLEP Data Storage Recovery Model Message Embedding ProcedureExtraction Procedure Bit streams: (0, 1) 以 PCA 找出 initial △ Secrete key Hierarchical kd tree Triangle neighbor table advanced jump strategy
11
11 Preprocessing The principal component analysis (PCA) determines the initial triangle. First Second Third Initial triangle
12
12 Sequence List Initial 1 A B 2 3 4 5 6 7 9 10 1112 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 11 0 1 0 0 0 1 0 1 1 1 1 ABC1, AB C (Message vertex) Bit value = 0 Bit value = 1 clockwise order C, CBD0, D,D, CDE1, E,E, EDF0, F,F, EFG0, G,G, EGH0, EHC1, CHA0, CAB1, H, I, J, K BAI1, IAJ1, JAK1, KAH
13
13 Sequence 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
14 Hierarchical KD-Tree Capability: –Assume a set P of vertices in 3D space. –These vertices are preprocessed into the kd-tree structure. –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 triangle for triangle neighbor table(TNT). Practice: –Use the gravity center of a triangle instead of the triangle itself.
15
15 Triangle Neighbor Table (TNT) This table indicates the neighbors and connective relations of every triangle. IDNeighbors 123 215 314 43513 5264 4 5 3 1 2 6 7 8 12 11 10 9 Require large search and compare operations. k-d tree
16
16 TNT with Hierarchical KD-Tree Use the gravity center of a triangle instead of the triangle itself. 4 5 3 1 2 6 7 8 13 12 11 10 9
17
17 TNT with Hierarchical KD-Tree Using hierarchical kd-tree decreases the number of candidate neighbors of every triangle. IDNeighbors 1 2 3 4 5 3 13 1 2 4 5 6 7 8 12 11 10 9 1 2 3 2 1 5 3 1 4 4 3 5 13 5 2 6 4
18
18 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
19 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 principal 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
20 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
21 Advanced Jump Strategy (AJS) The AJS efficiently avoids retracing triangles that have already been traced. –This greatly improves performance, especially near the capacity limit. with accelerating strategy no accelerating strategy
22
22 Multi-Level Embed Procedure (MLEP) Sliding Extending Rotating
23
23 Sliding Each triangle is easily treated as a two-state geometrical object. AB C 0101 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
24 Extending Embed messages in the height of the triangle. AB 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: 0 Message: 1 V 0 1 0 1 virtual edge
25
25 Initial triangleRotating 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 θ AB C D E3 plane
26
26 Rotating Embed messages in the degree of the angle between both triangle planes. G θ AB C D E3 plane A G B C θ D
27
27 Rotating Embed messages in the degree of the angle between both triangle planes. A G B C θ D D C E3 plane
28
28 Rotating 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: 0 Message: 1 θ’θ’ C’ φ
29
29 Data Storage Capacity –M maxbits : the maximal # of bits embedded –N vertices : the # of vertices in the mesh –M maxbits = 3 (N vertices - 2) - 1 Recovery Key –A string containing bits indicating whether a change was needed for every shifted message vertex. –Reversibility
30
30 Distortion Shift the message vertex with respect to the Human Visual System. Anticipate possible distortion rate. a b c s
31
31 Cover Model Stego Model Results - Horse Vertices: 48485 Triangles: 96966 S dist : 0.00005396 RMS: 0.00000206 Time: 3.953 sec
32
32 Cover ModelStego Model Results - Rabbit Vertices: 67038 Triangles: 134074 S dist : 0.00000849 RMS: 0.00000074 Time: 5.593 sec
33
33
34
34 Information Hiding – Simple Classification for 3D Models Lin 2005 Chou 2006
35
35
36
36 References Cayre F., Macq B.: Data Hiding on 3-D Triangle Meshes. IEEE 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/
37
37 Triangle Order The next triangle in the list is selected depending on the bit value of the binary pseudo-noise sequence generator. AB C (Message vertex) Bit value = 0Bit value = 1 clockwise order
38
38 Recovery Key A string containing bits indicates whether a change was needed for every shifted message vertex. Cover Model Stego ModelRecovery Model 1 2 3 1 2 3 Recovery Key:101 1 2 3 Recovery Model = Cover Model
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.