an efficient information hiding algorithm for polygon models eurographics 2005 chung-ming wang and...

Post on 04-Jan-2016

216 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

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