5.3 Embedding and Eliminating 3D Visible Watermarks in KINECT
5.3.4 Experimental results
At the beginning of the experiment, the result of combining the original KINECT images, which include a depth image and a color image, to be a 3D image I by the proposed process is shown in Figure 5.4. And the input 3D visible watermark is shown in Figure 5.5. Then, we embed the 3D visible watermark into the 3D image I and hide the information of covered region into the watermarked 3D image I' by Algorithm 5.3.1.
The result of the watermarked 3D image I' is shown in Figure 5.6 and the result of hiding the recovery information into I' by the difference expansion method is shown in Figure 5.7. Then, we extract the hidden data string S by Algorithm 5.3.2 and use the secret key K to resume the order of extracted string S. By using the string S, we can recover the covered region and eliminate the 3D watermark from the watermarked 3D
66
image I'. The result of eliminating the 3D watermark and recover of the covered region is shown in Figure 5.8.
Figure 5.4 The result of combining the original depth and color image into a 3D image.
Figure 5.5 The 3D visible watermark.
67
Figure 5.6 The result of the watermarked 3D image.
Figure 5.7 The watermarked 3D image in which the recovery data string is embedded by the difference expansion method.
68
Figure 5.8 The result of eliminating the 3D watermark and recovering the covered region.
5.4 Embedding and Eliminating 3D
Visible Watermarks in KINECT Images by Reversible Contrast Mapping
In this section, the details of the proposed method for embedding and eliminating a 3D visible watermark in a 3D image constructed from KINECT images (color and depth images) by the reversible contrast mapping method are described. The detailed process of embedding a 3D visible watermark into a 3D image and hiding the recovery information in the watermarked 3D image is described in Section 5.4.1. In Section 5.4.2, the process of extracting the recovery information from the watermarked 3D image is described. And in Section 5.4.3, the process of eliminating the 3D visible watermark and recovering the covered region is described. Some experimental results of applying the proposed algorithms are given in Section 5.4.4.
69
5.4.1 Embedding of 3D Visible Watermarks
In the process of embedding of a 3D visible watermark into a 3D image (a color image or a depth image), at first we transform every pixel value in the depth image into the corresponding 3D real-world coordinates (x, y, z). Then, according to these coordinates, we try to find the corresponding color information (r, g, b) for each pixel.
In this way, the original depth and color images are combined together into a 3D image I, which includes all the information of the KINECT images, with its coordinates formatted as (x, y, z, r, g, b).
In addition, the information of the 3D visible watermark is also formatted as (x, y, z, r, g, b), such that we can embed the 3D visible watermark W into the 3D image I.
Then, the 3D visible watermark W will cover some region of the original 3D image I.
And we transform the data, which are covered by the 3D visible watermark W, into a recovery-data string S and use a secret key K to randomize the order of the bits in the string S. Finally, we hide the string S into the watermarked 3D image I' by the reversible contrast mapping method proposed by Coltuc and Chassery [8].
During the hiding process, at first we partition the watermarked 3D image I' into point pairs. Each point pair consists of two neighboring points and the pairing is done horizontally. Then, in a raster-scan order, we index each pair in the watermarked 3D image I'. Next, we use a secret key K and a random number generator fr to generate a random number sequence H. According to the order of the random sequence H, we use an index i of H to find a pair of two neighboring points V1(x1, y1, z1, r1, g1, b1) and V2(x2, y2, z2, r2, g2, b2) with V1 being with the index i.
In addition, according to the different range of values between the 3D coordinates (x, y, z) and the color information (r, g, b), two domains D1 and D2 are defined. And if a pair is in the corresponding domain, we hide the bit, which is taken from string S, into
70
this pair; otherwise, we do not hide the bit in this pair. Specifically, for the 3D coordinate pair (x1, x2), the domain D1 is defined by 02x1x28000 and
8000 2
0 x2x1 . And for the color information pair (r1, r2), the domain D2 is defined by 02r1r2 255 and 02r2r1 255. The restrictions on the domains D1 and D2 prevent occurrences of overflows or/and underflows when data transformations during data hiding are conducted. When we hide a bit into a pair, three conditions will be encountered, as explained next.
For a 3D coordinate pair (x1, x2), (a) if (x1, x2)D1 and if either x1 and x2 is not an odd value , then we transform (x1, x2) into (x1', x2') by x1' = 2x1x2 and x2' = 2x2x1, set the LSB of x1' to be “1,” and hide the bit in the LSB of x2'; (b) if (x1, x2) D1 and if both x1 and x2 are odd values, then we set the LSB of x1 to “0” and hide the bit in the LSB of x2; (c) if (x1, x2) D1, set the LSB of x1 to “0” and append the original LSB of x1 to the end of the data string for hiding in order to losslessly recover the original LSB of x1 later during the extraction process. In this way, we can hide the string S into the watermarked 3D image I'. As for a color information pair (r1, r2), its use of data embedding is similar to the use of the 3D coordinate pair (x1, x2) described above except that the domain D2 is used rather than D1.
For instants, (a) if a pair (r1, r2) = (3, 6) and a bit “1” taken from the string to be hidden, then because 02r1r20255 and 02r2r19255, we get to know that (r1, r2) D2. Also, r2 is not an odd value, so we transform (r1, r2) into (r1', r2') by r1' = 2r1r2 = 0, and r2' = 2r2r1 = 9; and set the LSB of r1' to be “1,” and hide the bit
“1” in the LSB of r2', such that we take the pair (r1', r2') = (1, 9) as the final result of data embedding. (b) If a pair (r1, r2) = (7, 5) and a bit “1” is taken from the string to be hidden, then because 02r1r29255 and 02r2r13255, we get to know that (r1, r2)D2. Also, both r1 and r2 are odd values, so we set the LSB of r1 to “0” and hide the bit “1” in the LSB of r2, such that we take the pair (r1', r2') = (6, 5) as the final
71
result of data embedding. (c) If a pair (r1, r2) = (2, 5), because 2r1r2 10, we get to know that (r1, r2)D2. So, we set the LSB of r1 to be “0” and append the original LSB of r1 to the end of the data string for hiding, such that we take the pair (2, 5) as the final result of data embedding.
The detail of the above proposed process for embedding a 3D visible watermark is presented as an algorithm, Algorithm 5.4.1, below.
Algorithm 5.4.1: embedding of the 3D watermark.
Input: a KINECT image, which includes a depth image and a color image, a secret key K, a random number generator f, and a 3D visible watermark W.
Output: a 3D watermarked image I' with the recovery information embedded.
Steps:
Step 1. Transform the depth image and the color image into a 3D image I which is formatted as (x, y, z, r, g, b) by the transformation process described in Section 5.2.
Step 2. According to the positions described by (xw, yw, zw, rw, gw, bw) of all the pixels of W, deicide a region R in I whose pixels’ coordinates are computed by the following formulas which are derived in a way similar to that discussed in Section 5.2:
72
pixel at (ur, vr) in the depth image for reducing the data that need be hidden;
and then transform every (d, r, g, b) into a recovery binary string S by the following steps: (1) transform each d into a 13-bit string S1; (2) transform each of r, g, and b into three 8-bit strings S2, S3, and S4; (3) combine S1
through S4 into a string T; and (4) append T to string S.
Step 4. Embed the 3D watermark W into the 3D image I by replacing the data of region R in I with the data in W.
Step 5. Use the secret key K to randomize the order of string S and use the random number generator f and secret key K to generate a random sequence H.
Step 6. Hide the recovery string S into the 3D watermarking image I' by the reversible contrast mapping method by Coltuc and Chassery [8] as follows.
6.1 In the order of H, take a number i from H and find a pair of two neighboring points V1(x1, y1, z1, r1, g1, b1) and V2,( x2, y2, z2, r2, g2, b2) in I' with V1 being indexed by i.
6.2 If 0 x '1 8000, 0x '2 8000 where
1 2 1 2
x ' x x , x '2 2x2 x1 (1) and if either x1 and x2 is not an odd value, then transform (x1, x2) into (x1', x2') by (1) above, set the LSB of x1' to be “1,” and take one bit from string S and embed it into the LSB of x2'.
6.3 If 0 x '1 8000, 0x '2 8000 and if both x1 and x2 are odd values, set the LSB of x1 to be “0,” and take one bit from string S and embed it into the LSB of x2.
6.4 If x '1 8000 or x '1 0 and x '2 8000 or x '2 0, set the LSB of x1
to be “0,” and append the original LSB of x1 to the end of string S.
6.5 Perform the process of Steps 6.2 through 6.4 above to y1, y2 and z1, z2 in a similar way.
73
6.6 If 0r1'255, 0r2'255 where
r1' = 2r1r2, r2' = 2r2r1, (2) and if either r1 and r2 is not an odd value, transform (r1, r2) by (2), set the LSB of r1' to be “1,” and take one bit from string S and embed it into the LSB of r2'.
6.7 If 0r1'255, 0r2'255 and if both r1 and r2 are odd values, set the LSB of r1 to be “0,” and take one bit from string S and embed it into the LSB of r2.
6.8 If r1' > 255 or r1' < 0 and r2' > 255 or r2' < 0 , set the LSB of r1 to be “0,”
and append the original LSB of r1 to the end of string S..
6.9 Perform the process of Steps 6.6 through 6.8 above to g1, g2 and b1, b2 in a similar way.
Step 7. If there remain unprocessed bits in S, then go to Step 6.1; otherwise, take the processed I' as the desired image I' with the recovery information S hidden.
5.4.2 Extraction of Information for Recovery
In the extraction process, at first we partition the watermarked 3D image I' into pairs with a pair consisting of two neighboring points and the pairing is done horizontally. Then, in a raster-scan order, we index each pair in the watermarked 3D image I'. Next, we use a secret key K and a random number generator fr to generate a random number sequence H. In the order of the random sequence H, we take a number i from H and find accordingly a pair of two neighboring points V1'(x1', y1', z1', r1', g1', b1') and V2'(x2', y2', z2', r2', g2', b2') with V1' being indexed by i. Then, we extract the hidden information in V1'(x1', y1', z1', r1', g1', b1') and V2'(x2', y2', z2', r2', g2', b2') by the inverse of reversible contrast mapping method proposed by Coltuc and Chassery [8]. In this way,
74
we can extract all the recovery information in I'.
For example, in the pair (x1', x2'), (a) if the LSB of x1' is “1,” then we can extract
The detail of the proposed process for extraction the recovery information in the 3D watermarking image I' is described as an algorithm, Algorithm 5.3.2, below.
Algorithm 5.4.2: extraction of the hidden data.
Input: the 3D watermarked image I' with the recovery information embedded, a random number generator f, and a secret key K.
Output: a string Sr of recovery information.
Steps:
Step 1. Use the random number generator f and secret key K to generate a random sequence H.
Step 2. In the order of H, take out a number i in H and find accordingly a pair of two neighboring points V1'(x1', y1', z1', r1', g1', b1') and V2'( x2', y2', z2', r2', g2', b2') in the 3D watermarked image I' with V1' being indexed by i.
Step 3. If the LSB of x1' is “1,” then extract the LSB of x2', append it to the extracted string S, set the LSBs of x1' and x2' to be “0,” and recover the original pair (x1, x2) by
75 corresponding original value extracted from the extracted string S.
Step 6. Perform the process of Steps 3 through 5 above to y1, y2 and z1, z2 in a similar
then extract the LSB of r2' and add it to the extracted string S, and restore the original pair (r1', r2') with the LSBs of r1' and r2' set to “1”.
Step 9. If the LSB of r1' is “0” and the pair (r1', r2') with the LSBs of r1' and r2' set to be “1” does not satisfy 0r1 255, 0r2 255, where
r1 = 2r1'r2', r2 = 2r2'r1',
then recover the original (r1, r2) by replacing the LSB of r1' with the corresponding original value extracted from the extracted string S.
76
Step 10. Perform the process of Steps 7 through 9 above to g1, g2 and b1, b2 in a similar way.
Step 11. If there remain unprocessed pair in I', then go to Step 2; otherwise, take the string S as the desired string Sr.
5.4.3 Eliminating 3D Watermarks and Recovery of
KINECT Images
In the proposed process for eliminating the 3D watermark and recovering the original KINECT image, at first we use the secret key K to resume the order of the extracted string Sr. Then, according to the 3D watermark W, we compute the covered region in the watermarked 3D image I'. Next, we find the position of the covered region in the raster-scan order, transform Sr into the original coordinates (x, y, z, r, g, b) in order, and recover the pixels’ values of the covered region with the original coordinates.
In this way, we can recover the covered region with the original 3D image data and remove the 3D watermark from the watermarked 3D image I'.
The detail of the proposed process for eliminating the 3D watermark in the 3D watermarking image I' and recovering the covert region of the 3D watermark is described as an algorithm, Algorithm 5.4.3, below.
Algorithm 5.4.3: eliminating the 3D watermark and recovering the covert region.
Input: the watermarked 3D image I' with the recovery information embedded, a secret key K, and a string Sr including the recovery information.
Output: the original 3D image Ir.
77
Steps:
Step 1. Use the secret key K to reorder the string Sr.
Step 2. Extract 37 bits from string S in order, and transform them bits into the format of (r, g, b, d).
Step 3. In a raster-scan order, find the covered region R of the 3D watermarking image I' by the following formulas:
2 are the coordinates of the covered region in I'.
Step 4. According to the coordinates (uc, vc), transform the extracted (r, g, b, d) into
where f is the focal length of the IR camera in the KINECT device.
Step 5. Use the recovery information (x, y, z, r, g, b) to recover the covered region in the watermarked 3D image I' by replacing the covered region with the corresponding recovery information (x, y, z, r, g, b).
Step 6. If there remain bits in S, then go to Step 2; otherwise, go to Step 7.
Step 7. Eliminate the 3D watermark by removing the data of the 3D watermark in I' and take the processed I' as the desired image Ir.
78
5.4.4 Experimental results
At the beginning of the experiment, the result of combining the original KINECT images into a 3D image I by the proposed process as described in Section 5.3.4 is shown in Figure 5.9. And 3D visible watermark is the same as that we use in Section 5.3.4, as shown in Figure 5.10. Then, we also embed the 3D visible watermark into the same position of 3D image I and hide the information of the covered region into the watermarked 3D image I' by Algorithm 5.4.1. The result of the watermarked 3D image I' is shown in Figure 5.11, and the result of hiding the recovery information into I' by the reversible contrast mapping method is shown in Figure 5.12. Then, we extract the hidden data string S by Algorithm 5.4.2 and use the secret key K to resume the order of extracted string S. By using the string S, we recovered the covered region and eliminate the 3D watermark from the watermarked 3D image I'. The result of eliminating the 3D watermark and recovering the covered region is shown in Figure 5.13.
Figure 5.9 The result of combining the original depth and color image into a 3D image.
79
Figure 5.10 The 3D visible watermark.
Figure 5.11 The result of the watermarked 3D image.
80
Figure 5.12 The watermarked 3D image in which the recovery data string is embedded by the reversible contrast mapping method.
Figure 5.13 The result of eliminating the 3D watermark and recovering the covered region.
81
5.5 Experimental Results
In this section, some more experimental results of applying the above proposed method for copyright protection of KINECT images by 3D visible watermarking are shown in Figures 5.14 through 5.19. We will present the experimental results of the generating 3D images in the different viewpoints, and also those of embedding the 3D watermark into the different positions of the KINECT images.
At the beginning of the experiments, the result of combining the original KINECT images, which includes a depth and a color image, to form a 3D image I by the proposed process is shown in Figure 5.14. Then, we embedded the 3D visible watermark into the left part of 3D image I and hide the information of the covered region into the watermarked 3D image I'. The result of the watermarked 3D image I' is shown in Figure 5.15. In addition, the result of hiding the recovery information into I' by the reversible contrast mapping method is shown in Figure 5.16. Then, we extracted the hidden data string S by Algorithm 5.4.2 and used the secret key K to resume the bit order of the extracted string S. By using the string S, we recovered the covered region and eliminated the 3D watermark from the watermarked 3D image I'. The results of the watermarked 3D image I' resulting from the extraction process with the different viewpoints are shown in Figure 5.17. And the result of eliminating the 3D watermark and recovery of the covered region is shown in Figure 5.18. In addition, the result of eliminating the 3D watermark and recovery of the covered region by using the wrong secret key to extract the hidden data is shown in Figure 5.19.
We also embedded the 3D watermark into the right part of the 3D image I. Then, we hide the information of the covered region into the watermarked 3D image I' by the difference expansion method. The result of the watermarked 3D image I' with the recovery information embedded is shown in Figure 5.20. Then, we extracted the hidden
82
information from the watermarked 3D image I' and eliminated the 3D watermark from the watermarked 3D image by the eliminating process. And the result of the 3D image resulting from the eliminating process is shown in Figure 5.21. Besides, the result of eliminating the 3D watermark and recovery of the covered region by using the wrong secret key to extract the hidden data is shown in Figure 5.22.
Figure 5.14 The original 3D image.
83
Figure 5.15 Watermarked 3D image and the position of the watermark is in the left side of the image.
Figure 5.16 The watermarked 3D image with the recovery information embedding by the reversible contrast mapping method.
84
(a) (b)
(c) (d)
Figure 5.17 The results of the watermarked 3D image with the recovery information is embedded after the extraction process in different viewpoints. (a) the view of the position in front of the 3D image. (b) the view of the lowwer position in front of the 3D image. (c) the view of right position of the 3D image. (d) the view of left position of the 3D image.
Figure 5.18 The result of eliminating the 3D watermark and recovering the covered region.
85
Figure 5.19 The result of eliminating the 3D watermark and recovering the covered region by using the wrong secret key to extract the hidden data.
Figure 5.20 The watermarked 3D image with the recovery information embedding by the difference expansion method.
86
Figure 5.21 The result of eliminating the 3D watermark and recovering the covered region.
Figure 5.22 The result of eliminating the 3D watermark and recovering the covered region by using the wrong secret key to extract the hidden data.
87
5.6 Discussions and Summary
In this study, a method for copyright protection of KINECT images by 3D visible watermarking has been proposed. The proposed method embeds a 3D visible watermark into a 3D image, which results from combining the depth image and the color image acquired with a KINECT device, for protecting the copyright of the KINECT images. In addition, embedding the 3D visible watermark into the 3D image will cover some region of the original KINECT image. So we transform the information of the covered region into a data string S and hide it in the watermarked 3D image by the difference expansion method proposed by Tian [6] or by the reversible contrast mapping method proposed by Coltuc and Chassery [8], respectively. Besides, only authorized users who have the secret key can extract the recovery information from the watermarked 3D image. Then, the 3D watermark can be removed and the covered region can be recovered losslessly by using the recovery information. Consequently, only the authorized users can remove the 3D watermark losslessly.
88
Chapter 6
Conclusions and Suggestions for Future Works
6.1 Conclusions
In this study, realizing the importance and popularity of images acquired with KINECT devices, we have proposed several methods for data hiding via KINECT images and their applications, which includes authentication, covert communication, and copyright protection.
For authentication, a data hiding method for authentication of KINECT images by embedding authentication signals into the depth and color images acquired by the KINECT device is proposed. To achieve the goal of protecting the depth and the color image together, the proposed method utilizes the depth image to generate authentication signals and embedding them into the color image; and reversely uses the color image to generate authentication signals and embedding them into the depth image. Besides, the proposed method selects randomly the positions in the depth and
For authentication, a data hiding method for authentication of KINECT images by embedding authentication signals into the depth and color images acquired by the KINECT device is proposed. To achieve the goal of protecting the depth and the color image together, the proposed method utilizes the depth image to generate authentication signals and embedding them into the color image; and reversely uses the color image to generate authentication signals and embedding them into the depth image. Besides, the proposed method selects randomly the positions in the depth and