This invention relates to a method and apparatus for estimating an error metric for 3D models.
In practical applications, many 3D models consist of a large number of components. These multi-component 3D models usually contain many repetitive structures in various transformations, as shown in
Compression algorithms for multi-component 3D models that take advantage of repetitive structures in input models are known. Repetitive structures of a 3D model are discovered in various positions, orientations, and scaling factors. The 3D model is then organized into “pattern-instance” representation. A pattern is used to denote a representative geometry of the corresponding repetitive structure. Components belonging to a repetitive structure are denoted as instances of the corresponding pattern and may be represented by a pattern ID and transformation information, for example, reflection, translation, rotation and possible scaling with respect to the pattern. The instance transformation information may be organized into, for example, reflection part, translation part, rotation part, and possible scaling part. There might be some components of 3D models that are not repetitive, which are referred to as unique components.
The present principles provide a method for determining an error metric between a first 3D model and a second 3D model, comprising the steps of: accessing the first and second 3D models, wherein the first 3D model includes a first 3D component and at least another 3D component; determining sampling points in facets of the first 3D component and the at least another 3D component in the first 3D model, wherein the sampling points are uniformly distributed in the facets of the first 3D component and the at least another 3D component in the first 3D model; determining a point-to-surface error between each sampling point in the first 3D component in the first 3D model and the surface of a first 3D component in the second 3D model, the first 3D component in the second 3D model corresponding to the first 3D component in the first 3D model; and determining an error metric between the first 3D component in the first 3D model and the first 3D component in the second 3D model in response to the determined point-to-surface errors as described below. The present principles also provide an apparatus for performing these steps.
The present principles also provide a computer readable storage medium having stored thereon instructions for determining an error metric between a first 3D model and a second 3D model, according to the methods described above.
The present principles also provide a method for determining a normal variation between a first 3D model and a second 3D model, comprising the steps of: accessing a plurality of facet pairs from the first 3D model and the second 3D model, wherein each facet pair corresponds to a facet from the first 3D model and a corresponding facet from the second 3D model; determining an inner product of facet normal vectors for each of the plurality of facet pairs; and determining the normal variation between the first 3D model and the second 3D model in response to the inner products as described below. The present principles also provide an apparatus for performing these steps.
The present principles also provide a computer readable storage medium having stored thereon instructions for determining a normal variation between a first 3D model and a second 3D model, according to the methods described above.
As shown in
When an instance is represented by a pattern ID and a transformation matrix, the pattern ID and the transformation matrix are to be compressed when compressing the instance. Consequently, an instance may be reconstructed through the pattern ID and the decoded transformation matrix, that is, an instance may be reconstructed as transformation (from the decoded transformation matrix) of a decoded pattern indexed by the pattern ID.
In repetitive structure verifier 260 of the 3D model encoder 200, the error between the original instance component and the reconstructed component is compared. If the error is larger than what is set by quality requirement, the instance would be encoded as a unique component. In this application, both “distance” and “error” may refer to the distortion between two models, and the terms “distance”, “error”, and “distortion” are used interchangeably.
To measure the error between two 3D models, for example, between an original 3D model and a decompressed 3D model, some existing methods adopt a surface sampling approach to measure an error between surfaces. That is, the error between surfaces of two 3D models is computed based on point-to-surface distances for individual sampling points. In these existing approaches, sampling density depends on the size of the bounding box of the 3D model. Consequently, when verifying quality for individual instance components which may vary in sizes of the bounding boxes, the sampling density also varies with individual components.
TABLE 1 shows mean errors estimated by MESH, as described in N. Aspert, D. Santa-Cruz, and T. Ebrahimi, “MESH: Measuring errors between surfaces using the Hausdorff distance,” Proceedings of the IEEE International Conference in Multimedia and Expo (ICME), pp. 705-708, 2002, for an exemplary 3D model shown in
The distance between two sampling points may be determined based on sampling density, for example, the sampling distance may be calculated as a product of sampling density and the diagonal length of a bounding box. Depending on the sampling density, the errors measured for the apple, the leaf, and the apple and leaf vary significantly. Thus, if the components have different sampling density, the errors may not be comparable, and thus may not properly reflect the actual errors.
As discussed above, in encoder 200, a multi-component 3D model is coded component by component. For each instance component, the quality of the reconstructed component is measured to check whether it can be represented by the pattern-instance mode. To get consistent quality across different components, a quality measure needs to be comparable among individual components and provides a certain connection between the quality of individual components and the entire 3D model. Therefore, we attempt to design an error metric such that the error measure for the entire 3D model should be a weighted sum of errors for individual components.
That is, the present principles provide a metric to estimate the error between two 3D models. In one embodiment, when computing error metrics for the whole 3D model or its individual components, a unified sampling step and cell partition may be employed to estimate errors. Consequently, the error of the whole 3D model can be approximated by a weighted average of the errors computed for its individual components, wherein the weight may depend on the specific definition of errors. For example, the weight can be based on the surface area or the number of sampling points of a 3D component. When flip surfaces (i.e., corresponding surfaces from two 3D models have normals in opposite directions) exist, an additional error metric is defined in terms of the normal vectors.
The space of M2 is divided into cells at step 540, for example, to accelerate the computation. Step 540 may be optional. The distance from an individual sampling point on M1 to the surface of M2 is calculated at step 550. An overall error metric between models M1 and M2 is calculated at 560. Method 500 ends at step 599.
In the following, the steps of calculating (520) sampling step length, deciding (530) sampling points, cell partitioning (540), and calculating (550) point-to-surface error are described in further detail.
To sample on surface of model M1, the sampling step length (Step_len) can be defined in terms of the average edge length of model M1, and can be calculated as:
Step_len=Aver_edge*Sampling_freq, (1)
Using the sampling step length computed above, the number of sampling points can be determined during the sampling process. For an individual facet (for example, a triangle) on the surface of M1, the number of sampling points on each side edge can be calculated as:
n
spl=└√{square root over (0.25+2*Areai/Step_len2)}−0.51┘, (2)
Using the 3D model shown in
To calculate a point-to surface error between a sampling point in 3D model M1 and the surface of another 3D model M2, a greedy method, which finds the minimum from the errors between one point and all faces, may be used.
To accelerate computation, the object space of 3D model M2 can be divided into a number of cells. An individual cell contains a set of triangle facets. For example, as shown in
C_sz=Cell_Tri_Ratio*Aver_edge, (3)
To quickly compute the distance from a sampling point (for example, point 605) on M1 to the surface of M2, the nearest distance from the sampling point to the center of cells is first computed. Once the nearest cell is found, for example, cell 710 in
After computing the point-to-surface errors between individual sampling points on model M1 and the surface of model M2, the mean error or root mean square error between two 3D models can be calculated accordingly. Using the jth triangle on M1 for example, which contains nj sampling points on each side edge and whose area is Aj. After uniform sampling, (nj−1)2 interior triangles (for example, triangles formed by points {610, 620, 630}, {620, 640, 650},{620, 630, 650}, {630, 650, 660}, {640, 670, 680}, {640, 650, 680}, {650, 680, 690}, {650, 660, 690}, and {660, 690, 695} are interior triangles) are obtained, as shown in
me
i=(ei,k
mse
i=(ei,k
Subsequently, the mean error between models M1 and M2 can be computed as follows:
When the error is measured for individual components within the 3D models, the same uniform sampling is used. For example, when an error metric is measured for the leaf component, the same sampling that is used for measuring the error metric for the multi-component model (apple and leaf model) is used. That is, when measuring the error metric for the leaf component, for triangle 602, the sampling points as shown in
Advantageously, using uniform sampling over different 3D components in a multi-component 3D model, the present principles avoid the influence caused by different sampling step lengths, and thus provide a more accurate quality metric. The present principles determines the sampling density based on information of the entire multi-component 3D model. In addition, the cell partition step partitions the bounding box of the multi-component model. By using information of the entire components in both sampling and cell partition steps, the resulting error measurement for the multi-component model is a weighted sum of error measurements for its individual components. This property is very important for our 3D compression scheme, for example, as shown in
For the 3D model and components shown in
Weighting the mean errors of apple component and leaf component by their areas, a weighted sum of mean errors for individual components is calculated as follows:
weighted sum=(0.03214e-6*5.934+0.00133e-6*3.145)/(0.03214+0.00133) =5.823e-6
When the error measurements are calculated independently for individual components in the multi-component 3D model, that is, the sampling density and cell partition for the entire 3D model are determined based on the entire model, and the sampling density and cell partition for the individual components are determined independently based on the corresponding individual models, we observed from experiments that the error measurements did not have the above-mentioned property.
Because of the existence of flip surfaces in some 3D models, it is not always sufficient to measure the difference between surfaces of two 3D models with geometric distances. For example, normal variations can reflect the orientation difference between two surfaces, which can be measured using the average normal variations between corresponding facets.
To determine corresponding facet pairs, the distance from the centroid of a triangle facet f1,i on model M1 to the surface of model M2 is computed. The triangle facet f2,j on M2 with the minimum distance (for example, the two facets that are most similar facets on two models) is the corresponding triangle of facet f1,i.
NErr
i=1−({right arrow over (n1,i)}·{right arrow over (n2,j)}), (8)
Similar to the Hausdorff distance, the proposed error metrics are asymmetric in general, that is Err(M1, M2)≠Err(M2, M1). The symmetric error can be calculated as the maximum error between these two errors:
Err=max[Err(M1,M2),Err(M2,M1)], (10)
The error metrics can be used to verify whether a reconstructed instance component meets the quality requirement at repetitive structure verifier 260 of the 3D model encoder 200, for example, using an original instance as M1 and a reconstructed instance as M2. The error metrics can also be used for rate distortion optimization at the encoder. With the error metrics defined according to the present principles, the performance of compression algorithms may be evaluated fairly for multi-component 3D models. When computing the distances between the reconstructed models and the original ones, the sampling density and division of the object space have been unified for either the whole multi-component object or its individual components. The implementation has also verified the observation that the error for the whole multi-component model is equivalent to the weighted average of the errors for its individual components.
The error metrics may also be used in other applications, for example, to measure similarity in 3D shape retrieval, to define energy functions in 3D model simplification and deformation.
The implementations described herein may be implemented in, for example, a method or a process, an apparatus, a software program, a data stream, or a signal. Even if only discussed in the context of a single form of implementation (for example, discussed only as a method), the implementation of features discussed may also be implemented in other forms (for example, an apparatus or program). An apparatus may be implemented in, for example, appropriate hardware, software, and firmware. The methods may be implemented in, for example, an apparatus such as, for example, a processor, which refers to processing devices in general, including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. Processors also include communication devices, such as, for example, computers, cell phones, portable/personal digital assistants (“PDAs”), and other devices that facilitate communication of information between end-users.
Reference to “one embodiment” or “an embodiment” or “one implementation” or “an implementation” of the present principles, as well as other variations thereof, mean that a particular feature, structure, characteristic, and so forth described in connection with the embodiment is included in at least one embodiment of the present principles. Thus, the appearances of the phrase “in one embodiment” or “in an embodiment” or “in one implementation” or “in an implementation”, as well any other variations, appearing in various places throughout the specification are not necessarily all referring to the same embodiment.
Additionally, this application or its claims may refer to “determining” various pieces of information. Determining the information may include one or more of, for example, estimating the information, calculating the information, predicting the information, or retrieving the information from memory.
Further, this application or its claims may refer to “accessing” various pieces of information. Accessing the information may include one or more of, for example, receiving the information, retrieving the information (for example, from memory), storing the information, processing the information, transmitting the information, moving the information, copying the information, erasing the information, calculating the information, determining the information, predicting the information, or estimating the information.
Additionally, this application or its claims may refer to “receiving” various pieces of information. Receiving is, as with “accessing”, intended to be a broad term. Receiving the information may include one or more of, for example, accessing the information, or retrieving the information (for example, from memory). Further, “receiving” is typically involved, in one way or another, during operations such as, for example, storing the information, processing the information, transmitting the information, moving the information, copying the information, erasing the information, calculating the information, determining the information, predicting the information, or estimating the information.
As will be evident to one of skill in the art, implementations may produce a variety of signals formatted to carry information that may be, for example, stored or transmitted. The information may include, for example, instructions for performing a method, or data produced by one of the described implementations. For example, a signal may be formatted to carry the bitstream of a described embodiment. Such a signal may be formatted, for example, as an electromagnetic wave (for example, using a radio frequency portion of spectrum) or as a baseband signal. The formatting may include, for example, encoding a data stream and modulating a carrier with the encoded data stream. The information that the signal carries may be, for example, analog or digital information. The signal may be transmitted over a variety of different wired or wireless links, as is known. The signal may be stored on a processor-readable medium.
Number | Date | Country | Kind |
---|---|---|---|
PCT/CN2012/074370 | Apr 2012 | CN | national |
This application claims the benefit of International Patent Application No. PCT/CN2012/074370 filed Apr. 19, 2012, which is hereby incorporated by reference.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/CN2012/087936 | 12/29/2012 | WO | 00 |