#### Abstract

This study adopts a triangle subdivision scheme to achieve reversible data embedding. The secret message is embedded into the newly added vertices. The topology of added vertex is constructed by connecting it with the vertices of located triangle. For further raising the total embedding capacity, a recursive subdivision mechanism, terminated by a given criterion, is employed. Finally, a principal component analysis can make the stego model against similarity transformation and vertex/triangle reordering attacks. Our proposed algorithm can provide a high and adjustable embedding capacity with reversibility. The experimental results demonstrate the feasibility of our proposed algorithm.

#### 1. Introduction

Reversible data hiding algorithms [1–12] can recover the marked media to original one after the secret message is correctly extracted. The important media, such as those for medical or military applications, can apply such algorithms to carry the secret message. Therefore, researches on reversible data hiding have been springing up quickly in recent years.

Even though reversible image data hiding is a very hot research issue, algorithms for 3D models have not been intensively studied. Besides, most reversible data hiding algorithms for 3D models usually directly extended the ones for images to 3D models. For example, Jhou et al. [4] applied histogram modification on 3D models. They first calculate the gravity center of the input model and the embedding order for each vertex is then determined based on its distance to the center. Thereafter, the last -digit of all coordinate values is used for histogram construction. The message is embedded into the coordinate values whose last -digit is located at the peak point of the histogram. Chuang et al. [1] employed the Helmert transformation to raise the robustness against similarity transformation attacks. Their algorithm performs data embedding on the normalized distance between each vertex and the model center. Huang and Tsai [3] used the difference between each vertex and its neighboring ones for histogram construction. Experimental results prove that their proposed algorithm can achieve higher embedding capacity, acceptable distortion, and greater robustness. Nevertheless, Wu and Dugelay [9] proposed a reversible data hiding algorithm based on difference expansion. They first predict a vertex position by calculating the center of its traversed neighbors. The secret message is then embedded by expanding the difference between the predicted and the original coordinate values. Zhu et al. [12] expand half aforementioned prediction difference to embed the watermark. Their proposed algorithm can provide lower distortion and controllable distortion. In contrast to above methods, Ji et al. [5] expand the distance ratio for data embedding to raise the robustness against noise attacks. Wu and Wang [10] first form a sequence of vertices by adopting a mesh traversal strategy. The secret message is embedded into the difference between every two adjacent vertices based on difference expansion and difference shifting.

Recently, Jung and Yoo [6] proposed the first interpolation-based reversible data hiding algorithm for images. Some improved algorithms [7, 8] are then proposed to improve its performance. The interpolation-based reversible data hiding algorithms first enlarged the input image to cover image based on their proposed interpolation scheme. The secret message is embedded into the newly added interpolated pixels. In other words, more secret message can be embedded with larger magnifying factors. Because the pixels in the input image are not altered in the data embedding procedure, the input image can be recovered without any error. However, above proposed algorithm is currently applicable to grayscale images.

Similar interpolation concept for 3D models is so-called subdivision surface, representing a smooth surface via a recursive subdivision process on each given coarse polygonal face into smaller ones. Although some watermarking algorithms [13, 14] are operated on subdivision surface, they are either nonblind or irreversible or have low embedding capacity limited by the refinement process of subdivision surface.

This study extends the interpolation idea to triangular meshes. The algorithm first generates newly added vertices with the message embedded within one corresponding triangle. We then construct their topology with the vertices of located triangle. To raise the total embedding capacity, a recursive subdivision mechanism, terminated by a given criterion, is employed. Finally, a principal component analysis [15] makes our stego model against similarity transformation and reordering attacks.

This rest of this paper is organized as follows: Section 2 details the proposed technique; Section 3 presents a discussion on the experimental results; and, finally, Section 4 offers a conclusion and directions for future research.

#### 2. Proposed Method

This section details the proposed distortion-free data hiding algorithm for triangular meshes. A triangle subdivision approach is performed on triangle meshes and the secret message is embedded into the newly added vertices. Because the original vertex is not altered during the entire data embedding procedure, the original triangle meshes can be recovered without any error. Further, a recursive subdivision is employed to raise the embedding capacity. A given criterion terminates the recursion, considering the fixed number precision for representing the stego model. For being robust against the similarity transformation and vertex/triangle reordering attacks, a principal component analysis is used to solve this issue. Figure 1 shows a flowchart of the proposed algorithm. The following sections describe the proposed algorithm.

##### 2.1. Data Embedding Procedure

This section details the data embedding procedure. The procedure begins by preprocessing the topological information of the input triangular meshes. The model information can be also derived in this process. Each vertex and each triangle are then sorted with the help of the normal vector and the principal axis. The data embedding process generates three barycentric weights and two of them are with the secret message embedded. The final triangle subdivision process takes above data-embedded weights as input to produce a newly added vertex and the triangle is subdivided into three smaller ones. The embedding capacity can be further improved significantly by recursive subdivision. Finally, the stego model is generated after processing each triangle. For simplicity, this study illustrates the proposed technique using 2D triangles. However, this can be easily extended to a 3D space.

###### 2.1.1. Preprocessing Process

The relative information about the original triangular meshes is obtained in this process. Assume the triangular meshes consist of vertices and triangles. A principal component analysis is performed on the triangular meshes and one PCA coordinates system is generated. Obviously, the new coordinates system has a new origin, , which is a gravity center of the triangular meshes, and three principal axes, called , , and . Each vertex is sorted according to the angle between the principal axis and the vector . Each triangle is also sorted according to the angle between the principal axis and the vector , where is the gravity center of the triangle . The sorted result is the processing order for data embedding.

###### 2.1.2. Data Embedding Process

According to the processing order for each triangle, the data embedding process is initialized. Assume a triangle (see Figure 2(a)) is constructed by three vertices, , , and and two series of -bit secret message and are prepared for embedding. Three weights can be generated using (1) and the sum of them equals one, where is the decimal value converted from -bit binary secret message. For avoiding the unbalanced subdivision for each triangle, three temporary vertices , , and are first generated by (2) (see Figure 2(b)) and then sorted according to the angle between the principal axis and the vector . Assume that , , and are the sorted results. A new point , within the located triangle , is then obtained based on the concept of barycentric coordinates using (3). The vertex is now with -bit secret message embedded (see Figure 2(b)). Consider

**(a)**

**(b)**

**(c)**

###### 2.1.3. Triangle Subdivision Process

After the new point is generated, we then construct its topology with original vertices of located triangle . The triangle is subdivided into three smaller triangles , , and (see Figure 2(c)). The first iteration for data embedding is now finished.

Following above rules, we can subdivide each smaller triangle again to raise the embedding capacity. However, considering the number precision of the stego model, the triangle cannot be subdivided infinitely. Therefore, some criteria can be adopted for terminating the recursive triangle subdivision, such as total embedding capacity, the area of subdivided triangle, or the number of subdivision iteration. In this study, we adopt the ratio between the average triangle area of the triangular meshes and the area of subdivided triangle as the termination criterion. The triangle subdivision process is continued only when the area of subdivided triangle is larger than times of the average area ().

First, we sort three subdivided triangles and process each triangle sequentially. For example, in Figure 3(a), the triangle is assumed to be the next processing triangle. We then pick one additional point again using (1), (2), and (3) and then construct its topology with three vertices of located triangle. Three smaller triangles are then generated. The recursive triangle subdivision process is continued until the termination condition is reached. For example, in Figure 3(b), the triangle cannot be subdivided because its surface area termination condition is assumed to be reached. Otherwise, an insufficient number precision for representing the vertex coordinates of stego model may result in the failure of data extraction. Figure 3(c) shows the example subdivided result for the triangle . After processing the residual triangles and recursively, one example stego model is shown in Figure 3(d).

**(a)**

**(b)**

**(c)**

**(d)**

##### 2.2. Data Extraction Procedure

After the receiver obtained the stego model, the data extraction procedure is initialized to extract the secret message following the below steps. Because each added vertex is derived from the barycentric weights of planar triangle, the distance between the vertex and its located triangle equals 0. Therefore, we first remove all the added vertices to reconstruct the original triangular meshes and a principal component analysis is then performed to obtain the original PCA coordinates system. Thus, the data extraction order for each triangle can be obtained with the help of the angle between the principal axis and the vector .

Next, we adopt an iterative process to extract the secret message. It is obvious that the number of neighboring vertices for each added vertex is 3. Therefore, each iteration consists of four steps, including finding the added vertex, calculating its barycentric weights, extracting the secret message, and recovering the triangle. Above steps iteratively continue until all added vertices are removed. For example, in Figure 4(a), vertices , , and are found in the first iteration because of its three neighboring vertices. Take vertex , for example, we can calculate its three barycentric weights. However, only two of them are with the secret message embedded. By checking the processing order of vertices , , and , fortunately, we can obtain first two barycentric weights to extract secret message. Equation (4) shows the barycentric weight calculation formula, where , , and are the sorted results of three vertices of the processing triangle and is the processing vertex for data extraction. Equation (5) is used to extract two series of -bit secret message. Because the secret message is embedded according to the angle between the normal of the triangle and principal axis, we then first recover three smaller triangles into a bigger one by removing the vertex and its neighboring relationship. Two series of -bit secret message are then attached to the recovered angle. The first iteration is finished and current triangular meshes are shown in Figure 4(b). In the next iteration, vertices and are processed, whereas two triangles are recovered (see Figure 4(c)). Finally, vertex is processed (see Figure 4(d)) and the original triangle is recovered. The data extraction procedure is finished. Consider

**(a)**

**(b)**

**(c)**

**(d)**

##### 2.3. Robustness Assessment

This section discusses the robustness of the proposed method. In this study, a principal component analysis is adopted to determine the processing order for each vertex and each triangle. In the beginning of the data extraction procedure, each added vertex can be removed because it is located on the triangle constructed by its neighboring vertices. The original cover model can be reconstructed and the same PCA coordinates system is obtained. Because the PCA coordinates system is robust against the rotation and translation operations, our stego model can resist above two attacks. Further, the barycentric weights are invariant before and after scaling operations; the same weights can be obtained.

Reordering attacks [3] modify the vertex/triangle representation orders in the model file but do not affect the appearance of 3D models. Figure 5 gives a 2D example of reordering attacks both on vertices and on triangles. The model in Figure 5(a) consists of four vertices and two triangles. Two examples for representing the model are shown in Figures 5(b) and 5(c). One of them can be the reordering attack of the other one. Although their vertex and triangle orders are different, the visual effects are the same. When performing our proposed data embedding and extraction procedure, each vertex and each triangle are sorted according to the angle between the normal vector and principal axis. The reconstructed extraction order is the same as the embedding order. Thus, our stego model can be robust against reordering attacks.

**(a)**

**(b)**

**(c)**

However, unlike watermarking algorithms with higher robustness against some intentional attacks, the proposed data embedding algorithm can provide more embedding capacity but with less robustness. Noise attacks cause some random disturbances on the vertex coordinates of 3D models. Even a noise attack for each vertex with small intensity can affect the integrity of extracted secret message. Some vertices with secret message embedded may be classified as ones without message embedded. However, if only part of vertices in the stego model is under the noise attack, we still have a chance to extract partial secret message. Finally, lossy compression attacks quantize the vertex coordinates, introduce new vertices, remove original vertices, or modify the topological relationship between vertices. The attacks seriously affect the generation of principal axis and the extraction order for each vertex is different from its embedding order. The extraction of the secret message from the attacked model fails.

#### 3. Experimental Results

This section presents the experimental results obtained from three 3D triangular meshes, called “bunny,” “cow,” and “hippo.” Table 1 shows the mesh information, including the number of vertices, , the number of triangles, , and model size (represented by the diagonal length of the bounding volume), of each mesh. We also show the file size for each test model, stored in PLY file format, for later comparing the one of each stego model. Microsoft Visual C++ programming language was used to implement the proposed algorithm on a personal computer with an Intel® Core*™* i7-6700K processor and 16 GB memory. Figure 6 shows the solid and solid wireframe shaded results for each cover triangular mesh. The embedded secret message was a randomly generated 0/1 bit string. The parameter is set as 10.

This section first presents the visual effects for three stego models. We also show the close-up views for each model for a better comparison. Second, this section also presents the embedding capacity for three triangular meshes with different embedding thresholds . Thereafter, the triangle area distribution for each mesh is shown to know the position of the embedding threshold. This section next presents the robustness assessment for our stego models. Finally, a comparison of this algorithm with current outstanding nonreversible/reversible algorithms demonstrates the feasibility of the proposed method.

Figure 7 shows the visual effects for three triangular meshes with secret message embedded. From Figures 6 and 7, the cover and stego models with different number of vertices and triangles can have the same rendering results. The reason is that the entire data embedding procedure makes all the added vertices and triangles being located on the original triangle. No influence is caused for visual effects. Figure 8 shows the close-up views of different meshes with different embedding thresholds, enabling a better comparison. Obviously, a close-up view for the wireframe shaded result of each model is quite different especially for small embedding threshold.

Table 2 shows the embedding capacity, number of processed triangles, and final number of vertices/triangles for each test model. With the increase of the embedding threshold, the number of triangles which can be processed is less and the embedding capacity is decreased. Because each added vertex can be with -bit secret message embedded, the total embedding capacity equals . Further, the file size of each stego model is increased because of storing the coordinate values of newly added points and their topological relationship. Figure 9 shows the histogram of the area distribution of each triangle for different models. We also indicate the position of the embedding threshold to show the located region used for data embedding. For each example in Figure 9, each triangle located at the gray region cannot be with message embedded because the embedding criterion is not reached. With the increasing of the embedding threshold, the number of embeddable triangles decreases and less secret message can be embedded. Only the triangle with an area located at the blue region can perform data embedding when the embedding threshold is set as 3 for the bunny/cow models and is set as 15 for the hippo model. More triangles can be processed with message embedded with smaller threshold. For example, when the embedding threshold is set as 2 for the bunny/cow models and is set as 10 for the hippo model, the triangles with an area located within the green region can be additionally used for data embedding.

This section next presents the robustness assessment for our proposed algorithm. As mentioned above, each added vertex is derived from the barycentric weights of planar triangle; the distance between the vertex and its located triangle equals 0. Therefore, we can reconstruct the original model by removing all the added vertices. The same PCA coordinates system is then obtained and the extraction order for each vertex is determined with no error. Further, to test the robustness of our scheme, we randomly rotate, translate, and uniformly scale each 3D stego model. Figure 10 shows the visual effects after similarity transformation attacks. The experimental results show that no error is in the extracted secret message. However, the number precision of the stego model must be increased properly under downscaling attack. For reordering attacks, vertices and triangles in the model file were reordered randomly for several times according to the scenario illustrated in Section 2.3. The embedded secret message can be extracted without any error. That is, the proposed scheme is robust against reordering attacks. For the experiment of our proposed method under noise attacks, we add random noise within the interval to all the three coordinates of percentage of vertices in the model and record the ratio of the vertices for correct message extraction, where is the amplitude of noise. Table 3 shows the experimental results of bunny model under above scenarios. Other test models have similar results. As the value of parameter increases, the ratio of the vertices for correct message extraction is apparently lower. Further, when the value of parameter is larger, indicating that each vertex can be with larger displacement for its coordinates, the ratio of the vertices for correct message extraction is also lower. As a result, the proposed algorithm has weak resistance to noise attacks.

Finally, this section compares the proposed algorithm with other existing outstanding algorithms in terms of embedding capacity, robustness, processed domain, and reversibility (Table 4). From the aspect of embedding capacity, Huang et al. introduced the permutation steganography for data embedding; each vertex can be with -bit message embedded in the representation domain. However, the original orders for each vertex and triangle cannot be recovered after the message is embedded. Huang and Tsai proposed a reversible data hiding scheme for 3D polygonal models based on histogram shifting. The embedding capacity is unsatisfactorily only from 0.09 to 0.51 bit per vertex. Ji et al. adopted the difference expansion to achieve reversible data embedding with the embedding capacity of 1.01 to 1.09 bit per vertex. Our proposed algorithm derives the newly added points for data embedding; each can be with -bit secret message embedded. From the aspect of robustness, four algorithms are all robust against similarity transformation (ST) attacks. Huang et al.’s proposed algorithm can withstand similarity transformation attacks since the representation order of vertices and polygons is not modified after translation, scaling, and rotation attacks. The distance ratio in Ji et al.’s proposed method is invariant after the similarity transformation attacks. Noising attack can be also resisted in their proposed algorithm. The remaining two algorithms employ principal component analysis to make their algorithms robust against similarity transformation attacks. Our proposed algorithm can additionally be robust against reordering attack, because each processing vertex and each triangle are determined by the principal axis.

#### 4. Conclusions and Future Work

This study proposes a novel reversible data hiding algorithm for 3D triangular meshes based on recursive subdivision. The proposed algorithm can provide reversibility, high embedding capacity, no visual distortion, and the greater robustness. For each triangle, a threshold is employed to recursively subdivide the triangle and the secret message is embedded into the added vertex. A principal component analysis can help the stego model against similarity transformation and vertex reordering attacks. The experimental results in this study demonstrate the feasibility of the proposed technique for reversible data hiding.

However, in the future, we hope to integrate the concept of subdivision surface to generate high-quality smooth meshes. Further, a novel systematic way to determine the appropriate threshold is also an interesting problem deserving investigation. Finally, improvements on raising the robustness against cropping or noising attacks may be considered.

#### Competing Interests

The author declares that there are no competing interests regarding the publication of this paper.

#### Acknowledgments

This work was supported by Ministry of Science and Technology of Taiwan under Grant nos. MOST 103-2221-E-468-021 and MOST 104-2218-E-468-001.