LU, Tong (No. 22, Hankou RoadNanjing, Jiangsu 3, 210093, CN)
| CLAIMS I claim: 1 . A method for comparing 3D models comprising: obtaining a first skeleton of a first 3D model; obtaining a second skeleton of a second 3D model; and calculating similarity between the first and the second 3D models based on the first and the second skeletons. 2. The method of claim 1 , wherein calculating similarity between the first and the second 3D models comprises: obtaining a first set of matrices of the first skeleton, where the first set of matrices comprises a matrix of distance related global constraint and a matrix of angle related global constraint of the first skeleton; obtaining a second set of matrices of the second skeleton, where the second set of matrices comprises a matrix of distance related global constraint and a matrix of angle related global constraint of the second skeleton; and calculating similarity between the first and the second 3D models using the first and the second sets of matrices. 3. The method of claim 2, wherein calculating similarity between the first and the second 3D models comprises summing up absolute values of differences between corresponding elements of the first and the second sets of matrices. 4. The method of claim 2, wherein the first set of matrices further comprises a matrix of weight related global constraint, and the second set of matrices further comprises a matrix of weight related global constraint. 5. The method of claim 4, wherein the weight related global constraint is inter-position related global constraint. 6. The method of claim 2, wherein obtaining the first set of matrices comprises: sampling the first skeleton to obtain a first set of points; and calculating the first set of matrices based on the first set of points. 7. The method of claim 6, wherein the first set of points includes the sampled points and end points of the first skeleton. 8. The method of claim 6, wherein distance related global constraint is defined as the following equation: Ly(Pk ) = where Ρ,, Ρ , and Pk are points among the first set of points, and where Pk is a reference point. 9. The method of claim 8, wherein obtaining a matrix of distance related global constraint comprises: dividing the range of L into s sub-regions; calculating the ratio of elements in the qth sub-region over the number of all elements using the following equation for each point: RLq(Pk ) =— — r∑ ∑Μ^(Ρ, )) , where h(^(Pk )) = l , \f L is in the qth sub-region, ( S 1 )( S Z) i =1 j=i +1 otherwise h(Lij(Pk )) = 0 ; and generating a matrix of distance related global constraint using the calculated ratios. 10. The method of claim 6, wherein angle related global constraint is defined as the following equation: Aij(Pk ) = PiPkPj , where P,, Pj, and Pk are points among the first set of points, and where Pk is a reference point. 1 1 . The method of claim 10, wherein obtaining a matrix of angle related global constraint comprises: dividing the range of Ay into s sub-regions; calculating the ratio of elements in the qth sub-region over the number of all elements using the following equation for each point: RAq(Pk ) = , 1 ∑MA Pk )) , where h( Pk )) = l , if A is in the qth ( S 1 )( S ) i =1 j=j +1 sub-region, otherwise h(Aij(Pk )) = 0 ; and generating a matrix of angle related global constraint using the calculated ratios. 12. The method of claim 7, wherein the first set of matrices further comprise a matrix of inter-position related global constraint, where inter-position related global constraint N(F ) + N(P. ) is defined as the following equation: NJPt ) = '■ - , where P,, Pi, and Pk are points among the first set of points, Pk is reference point, and N(P1 ) = Sv(P1 )/(Sm(P1 ) + l) + Sv(P1 )(yc(Sm(P1 ) + l) , where Sv(i>) is the number of lines for which Pi is one of the end points, S^) is the number of sample points being weighted towards P,. 13. The method of claim 12, wherein obtaining a matrix of inter-position related global constraint comprises: dividing the range of N into s sub-regions; calculating the ratio of elements in the qth sub-region over the number of all elements using the following equation for each point: RNQ(PK ) = , 1 ΣΜΝ, Ρ, )) , where h(N^Pk )) = l , if N is in the qth (S 1)(S ) i=1 j=j+1 sub-region, otherwise h(Nij(Pk )) = 0 ; and generating a matrix of inter-position related global constraint using the calculated ratios. 14. The method of claim 1 , wherein the similarity between the first and the second 3D models are calculated using distance, and angle related global constraints of the first and the second skeletons. 15. The method of claim 1 , wherein the similarity between the first and the second 3D models are calculated using distance, angle, and inter-position related global constraints of the first and the second skeletons. 16. A device for comparing 3D models comprising: means for obtaining skeletons of 3D models to be compared; and means for calculating similarity between the 3D models based on distance, angle, and inter-position related global constraints of the corresponding skeletons. 17. A system for comparing 3D models comprising: a global constraints matrices obtaining device to obtain distance, angle, and inter-position related global constraints matrices of skeletons of 3D models to be compared; and a similarity calculating device to calculate similarity between 3D models using matrices obtained by the global constraints matrices obtaining device. 18. The system of claim 17 further comprising: a sampling device to sample skeletons of 3D models to be compared to obtain corresponding sets of sample points; and the global constraints matrices obtaining device comprising: a distance related global constraint matrix generating device to generate matrices of distance related global constraint based on sample points obtained by the sampling device and end points of corresponding skeletons; an angle related global constraint matrix generating device to generate matrices of angle related global constraint based on sample points obtained by the sampling device and end points of corresponding skeletons; and an inter-position related global constraint matrix generating device to generate matrices of inter-position related global constraint based on sample points obtained by the sampling device and end points of corresponding skeletons. 19. The system of claim 17, wherein the similarity calculating device calculates similarity between 3D models by summing up absolute values of differences between corresponding elements of corresponding matrices of distance, angle, and inter-position related global constraints. 20. A computer readable medium having a computer program stored therein, when executed by a computer, the computer program will instruct the computer to conduct the method of claim 1 . |
BACKGROUND
[0001 ] There are three major categories of methods for comparing 3D models: (1 ) profile based methods, which may compare 3D models using distribution of vertices and meshes; (2) topology based methods, which may compare 3D models using topology characteristics; and (3) visual feature based methods, which may compare 3D models using visual features. However, these conventional methods all consume excessive calculation resources to compare 3D models due to 3D model surface complexity.
SUMMARY
[0002] In one aspect of the present disclosure, a method for comparing 3D models is provided. The method includes obtaining a first skeleton of a first 3D model; obtaining a second skeleton of a second 3D model; and calculating similarity between the first and the second 3D models based on the first and the second skeletons.
[0003] In some embodiments, calculating similarity between the first and the second 3D models includes obtaining a first set of matrices of the first skeleton, where the first set of matrices includes a matrix of distance related global constraint and a matrix of angle related global constraint of the first skeleton; obtaining a second set of matrices of the second skeleton, where the second set of matrices includes a matrix of distance related global constraint and a matrix of angle related global constraint of the second skeleton; and calculating similarity between the first and the second 3D models using the first and the second sets of matrices.
[0004] In some embodiments, calculating similarity between the first and the second 3D models includes summing up absolute values of differences between corresponding elements of the first and the second sets of matrices.
[0005] In some embodiments, the first set of matrices further includes a matrix of weight related global constraint, and the second set of matrices further includes a matrix of weight related global constraint. In some embodiments, weight related global constraint includes inter-position related global constraint.
[0006] In some embodiments, the operation of obtaining the first set of matrices includes the following operations: sampling the first skeleton to obtain a first set of points; and calculating the first set of matrices based on the first set of points. In some embodiments, the first set of points includes sampled points and the end points of the first skeleton.
[0007] In some embodiments, distance related global constraint is defined as:
L i P k ) = min^P^/^P j ^P^P^}, where Pk is reference point. In some embodiments, the operation of obtaining a matrix of distance related global constraint includes:
dividing the range of L into s sub-regions; calculating the ratio of elements in the q th sub-region over the number of all elements using the following equation for each point:
R Lq (P k ) = , 1
(s l){s Z -).∑ i=1 j ∑ =i+1 W ))■ where h W )) = 1 ■ if Ly is in the q th sub-region, otherwise h(L ij (P k )) = 0 ; and generating a matrix of distance related global constraint using the calculated ratios.
[0008] In some embodiments, angle related global constraint is defined as the following equation: ) = .P i P k P j , where Pk is a reference point. In some embodiments, the operation of obtaining a matrix of angle related global constraint includes: dividing the range of Ay into s sub-regions; calculating the ratio of elements in the q th sub-region over the number of all elements using the following equation for each point: R Aq (P k ) = 2 f ∑MA P k )) , where h(A i /P k )) = l , if Ay is in the q th
(S 1)(S Z) i=1 j=i+1
sub-region, otherwise h(A lj (P k )) = 0 ; and generating a matrix of angle related global constraint using the calculated ratios.
[0009] In some embodiments, the first set of matrices further include a matrix of inter-position related global constraint, and inter-position related global constraint is
N(P ) + N(P. )
defined as the following equation: N /P, ) = ' ■ 1 , where Pk is reference l J k WP + NW + WP j ) '
point, N(P J ) = S V (P J )/(SJP J ) + 1) + S V (P J )%(SJP J ) + 1) , where S v (P t ) is the number of lines for which P, is one of the end points, S m (^) is the number of sample points being weighted towards P,. In some embodiments, the operation of obtaining a matrix of inter-position related global constraint includes: dividing the range of N into s sub-regions; calculating the ratio of elements in the q th sub-region over the number of all elements using the following equation for each point:
R Nq (P k ) = — T^— TT∑ ∑m/P k )) , where h(N P k )) = l , if N is in the q th sub-region,
(S 1)(S Z) i=1 j=i+1
otherwise h(N 1J (P k )) = 0 ; and generating a matrix of inter-position related global constraint using the calculated ratios.
[0010] In some embodiments, the similarity between the first and the second 3D models are calculated using distance, and angle related global constraints of the first and the second skeletons.
[001 1 ] In some embodiments, the similarity between the first and the second 3D models are calculated using distance, angle, and inter-position related global constraints of the first and the second skeletons.
[0012] In another aspect of the present disclosure, a device for comparing 3D models is provided. The device includes: means for obtaining skeletons of 3D models; and means for calculating similarity between the 3D models based on distance, angle, and inter-position related global constraints of the corresponding skeletons. In some embodiments, the means for calculating similarity further includes: means for obtaining distance, angle, and inter-position related global constraints matrices of 3D models to be compared; and means for calculating similarity between 3D models using matrices obtained by the global constraints matrices obtaining device.
[0013] In another aspect of the present disclosure, a system for comparing 3D models is provided. The system includes: a global constraints matrices obtaining device to obtain distance, angle, and inter-position related global constraints matrices of 3D models; and a similarity calculating device to calculate similarity between 3D models using matrices obtained by the global constraints matrices obtaining device.
[0014] In some embodiments, the system further includes: a sampling device to sample skeletons of 3D models to obtain corresponding sets of sample points. The global constraints matrices obtaining device includes: a distance related global constraint matrix generating device to generate matrices of distance related global constraint based on sample points obtained by the sampling device and end points of corresponding skeletons; an angle related global constraint matrix generating device to generate matrices of angle related global constraint based on sample points obtained by the sampling device and end points of corresponding skeletons; and an inter-position related global constraint matrix generating device to generate matrices of inter-position related global constraint based on sample points obtained by the sampling device and end points of corresponding skeletons.
[0015] In some embodiments, the system further includes a skeleton receiving device for receiving skeletons.
[0016] In some embodiments, the system further includes a 3D model storage device for storing 3D models. In some embodiments, the 3D model storage device can also store corresponding skeletons.
[0017] In some embodiments, the similarity calculating device calculates similarity between 3D models by summing up absolute values of differences between
corresponding elements of corresponding matrices of distance, angle, and inter-position related global constraints.
[0018] In another aspect of the present disclosure, a computer readable medium having a computer program stored therein is provided. When executed by a computer, the computer program will instruct the computer to conduct a method for comparing 3D models based on distance, angle, and inter-position related global constraints of the corresponding skeletons.
[0019] The foregoing summary is illustrative only and is not intended to be in any way limiting. In addition to the illustrative aspects, embodiments, and features described above, further aspects, embodiments, and features will become apparent by reference to the drawings and the following detailed description.
BRIEF DESCRIPTION OF THE DRAWINGS
[0020] FIG. 1 shows a flowchart of an illustrative embodiment of a method for comparing 3D models.
[0021 ] FIG. 2 shows an example graph illustrating how to sample a line.
[0022] FIG. 3 shows an example graph illustrating how to weight an end point when the end point is a common end point of more than three lines.
[0023] FIG. 4 shows an example graph illustrating how to weight an end point when the end point is a common end point of three lines.
[0024] FIG. 5 shows an example graph illustrating how to weight an end point when the end point is a common end point of two lines.
[0025] FIG. 6 shows a block diagram of an illustrative embodiment of a computer system for comparing 3D models.
[0026] FIG. 7 shows a block diagram of an illustrative embodiment of a 3D model comparing device.
[0027] FIG. 8 shows a block diagram of an illustrative embodiment of a system for comparing 3D models.
DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS
[0028] In the following detailed description, reference is made to the accompanying drawings, which form a part hereof. In the drawings, similar symbols typically identify similar components, unless context dictates otherwise. The illustrative embodiments described in the detailed description, drawings, and claims are not meant to be limiting. Other embodiments may be utilized, and other changes may be made, without departing from the spirit or scope of the subject matter presented here. It will be readily understood that the aspects of the present disclosure, as generally described herein, and illustrated in the Figures, can be arranged, substituted, combined, and designed in a wide variety of different configurations, all of which are explicitly contemplated and make part of this disclosure.
[0029] Referring to FIG. 1 , a flowchart of an illustrative embodiment of a method 100 for comparing 3D models is shown. In block 101 , a first and a second mesh based 3D models are received for comparison. In block 103, a Laplacian smoothing operation is applied to the mesh surfaces of the first and the second 3D models to generate a first and a second contracted meshes. Application of the Laplacian smoothing operation moves the vertices along their approximate curvature normal direction, such that the details and noise are removed from the mesh surfaces so as to generate a first and a second contracted meshes. In block 105, a connectivity surgery operation is applied to the first and the second contracted meshes to generate corresponding first and second skeletons. In this operation, a series of edge-collapses are applied to remove collapsed faces from the first and the second contracted meshes, until almost all or all faces have been removed. One requirement here is to retain the shape of the contracted meshes during this operation, while keeping sufficient skeletal nodes to maintain a fine correspondence between corresponding skeleton and the original surface. In this operation, each skeleton node is moved to the approximate center of its corresponding local mesh region. Each boundary of a mesh region includes a loop of vertices that are contracted to roughly the same location, which may often be off center, hence their weighted average displacement represents the shifting of the skeletal node from the center. Further detail on obtaining skeletons can be found in Oscar Kin-Chung Au, Chiew-Lan Tai, Hung-Kuo Chu, Daniel Cohen-Or, and Tong-Yee Lee, "Skeleton
Extraction by Mesh Contraction", ACM Transactions on Graphics (SIGGRAPH 2008 issue), Vol. 27, No. 3, August 2008, pp. 44:1-44:10, which is incorporated by reference herein in its entirety.
[0030] In block 107, the first and the second skeletons are sampled to obtain corresponding first and second sets of sample points. A skeleton may include multiple lines, and each line may have corresponding end points. Referring to FIG. 2, which shows an example graph illustrating how to sample a line, it is assumed that Vi (xi ,yi ,zi) and V 2 (x2,y2,z 2 ) are two end points of a line of a skeleton. Assume that m points are sampled from the line V^ 2 , which points are noted as Ci , C 2 ...Ci...C m . When the line Ν Ν/2 is sampled in an evenly spaced way, sample point C, may be represented as the following equation (1 ).
C, = (xj +—^-(x 2 - xi ),yi +— -;(y2 - yi i +— l —(z 2 - z 1 )) equation (1 )
m + 1 m + 1 m + 1
[0031 ] Those of ordinary skill in the art will appreciate that the skeletons can be sampled in ways other than evenly spaced. In one example, each line of a skeleton may be sampled using approximately the same spacing. For example, if a line with a length of l_ 0 has m 0 sample points, then the number of sample points of another line with a length l_i may be m 0 * L L 0 . The number of sample points may be obtained after rounding in this case. A number of sample points may be given as an initial parameter, and the parameter may be adjusted by considering time cost, accuracy of
searching/retrieving or the like. [0032] Referring again to FIG. 1 , in block 109, a first and a second matrices of distance related global constraint of the first and the second skeletons, respectively, are generated. In this operation, assume that a sequence including all sample points and end points of a skeleton is P 0 , Pi ... P n- i , and one of the points is selected as reference point Pk. A distance related constraint between P, and P j may be defined as the following equation (2).
L i} (P k ) = equation (2) where represents the
distance between P k and P j .
[0033] Those of ordinary skill in the art will appreciate that the distance related constraint between P, and P j may be defined in other ways. Then distribution of the distance related global constraint of the sequence is generated. There are many distribution construction/analysis methods and, as will be appreciated by those of ordinary skill in art, although one example of which is described below, other applicable methods may be adopted as well.
[0034] In one embodiment, given L y e [o,l], the range is divided into s sub-regions
(the number s may be set with consideration of implementation requirement or user preference etc.), i.e., [χ 0 ,χ^ [χ ,χ^ ... [χ 5 _ ,χ 5 ] , where x 0 =0, x s =1 . The ratio of elements in the q th sub-region over the number of all elements may be calculated using the following equation (3). )) equation (3)
(s -l)(s -2) i fiii where h(L (P k )) = 1 , if L is in the q th sub-region i.e., otherwise h(L (P k )) = 0 , Pk is the reference point.
[0035] The distribution of the distance related constraint can be represented by a vector . Then n L based distributions can be obtained by respectively taking P 0 , Pi ...P n -i as reference points, that may be
{[R L1 (P k ),R L2 (P k )>->R Ls ( P k k = 0,l,...n-l]}, and a matrix of distance related global constraint may be generated as the following matrix (1). In one embodiment, each of the sample points and end points is taken as a reference point to generate a
corresponding row of the matrix (1). Alternatively, a portion of the points may be used as reference points to generate corresponding rows of the matrix (1).
R P 0 ) R L2 (P 0 ) R Po) R Po)
matrix (1)
R -2) R L2 (P n - 2 ) R Ls - 2 ) R - 2 )
R Pn-l) R n- )
[0036] Referring again to FIG.1 , in block 111 , a first and a second matrices of angle related global constraint of the first and the second skeletons, respectively, are generated. In this operation, assume that a sequence including all sample points and end points of a skeleton is P 0 , Pi...P n -i, and a point Pk is selected as the reference point. An angle related constraint between P, and P j may be defined as the following equation (4).
A l] (P k ) = ZP i P k P ] equation (4) where ZP i P k P j represents the angle between P k P, and PkP j .
[0037 In one embodiment, given e [θ,18θ] , the range is divided into s sub-regions, i.e., where y 0 =0, y s =180. The ratio of elements in the q th sub-region over the number of all elements may be calculated using the following equation (3).
R Aq (P k )=, 1 equation (3)
(s-l)(s-2) i fit! where h(A ij (P k )) = l , if Ay is in the q th sub-region i.e., [y q _ ] y J, otherwise h(A ij (P k )) = 0 , P k is the reference point.
[0038] The distribution of the angle related constraint can be represented by a vector [R A P k ),R A2 (P k )...R As (P k j . Then n Ay based distributions can be obtained by respectively taking P 0 , Pi ... P n -i as reference points, that may be
{[R A1 (P k ),R A2 (P k )>-> R As ( P k )\k = 0,l,...n -l]} , and a matrix of angle related global constraint may be generated as the following matrix (2). The similarity between the first and the second 3D models may be calculated using the first and the second matrices of distance related global constraint, and the first and the second matrices of angle related global constraint. In some embodiments, an inter-position related global constraint can be taken into consideration in the similarity calculation to improve the accuracy of the calculation.
matrix (2)
[0039] Referring again to FIG. 1 , in block 113, a first and a second matrices of inter-position related global constraint of the first and the second skeletons, respectively, are generated. In this operation, assume that a sequence including all sample points and end points of a skeleton is P 0 , Pi ... P n -i , and a point Pk is selected as the reference point. An inter-position related constraint between P, and P j may be defined as the following equation (5).
N(P,) + N(P I
N " ( ) = NiP^ NW + N^) eqUa i0n (5) where Ν(Ρ,) may be defined as the following equation (6). N(P l ) = S V (P, )/(S P l ) + !) + S V (P, )%(S P l ) + 1) equation (6) where Ξ ν (Ρ ; ) is the number of lines for which P, is one of the end points, S^) is the number of sample points being weighted towards P,, and % is modulation operator.
[0040] An example of weighting is described below, however as those of ordinary skill in the art will realize that other methods for weighting can also be used. Referring to FIG. 3, which shows an example graph illustrating how to weight an end point when the end point is a common end point of more than three lines, the end points of the lines are weighted by related sample points if N, the number of lines for which V, is an end point, is greater than 3. As illustrated in FIG. 3, assuming there is an end point V, as a common end point for N lines, i.e., ViVn , ViV T 2, ViV T 3...ViV T N, along each line there are sample points as discussed above with respect to the sampling operation (FIG. 1 , block 107). The middle points (in terms of length) of each of the N lines are connected to form a polygon ATI A T 2A T 3. . .ATN as shown in FIG. 3. Then the end point V, is weighted by the number of sample points within the polygon/triangle including those sample points on the edges and/or vertices of the polygon/triangle. For example, in FIG. 3, the middle point of line ν,ν Τ 2 is A T 2, the sample points, i.e., sample point set, of the whole line ν,ν Τ 2 are Ci , C 2 ...C n -i , and C n . Furthermore, one part of the line ViV T 2, i.e., ν,Α Τ 2, is within the polygon An Ατ2 Ατ 3 . . . ATN , then the sample points (Ci ,C 2 ...Ci, for example) on that part of the line are thus within the polygon. Therefore, those sample points within the polygon are weighted towards the end point V,. In one embodiment, if a sample point is on the boundary of the polygon, e.g., C, may overlap with A T 2, it is weighted towards the end point Vi as well. The above process similarly applies to other lines, i.e., V, V T i ,
ViVT2- - -V i V T N ! as well.
[0041 ] In case that N equals 3, after connecting the middle points, a triangle is formed. In case that N equals 2, after connecting the middle points of two lines, a triangle is formed as well. Those two cases are illustrated in FIG. 4, which shows an example graph illustrating how to weight an end point when the end point is a common end point of three lines, and FIG. 5, which shows an example graph illustrating how to weight an end point when the end point is a common end point of two lines. In one embodiment, in case that N equals 3, the sample points on BA T 2 are weighted towards V,, where B is the intersection point of An A T 3 and ViV T 2- In one embodiment, in case that N equals 2, the sample points on ν,Α τ 1 and ν,Α Τ 2 are weighted towards V,.
[0042] In one embodiment, given Ν ϋ e [o,l] , the range is divided into s sub-regions, i.e., [¾ > ¾] k > ¾] - " k-i > ¾ ] . where z 0 =0, z s =1 . The ratio of elements in the q th sub-region over the number of all elements may be calculated using the following equation (7).
2
R NG (P K ) ∑ Σ Ν, Ρ, )) equation (7)
(s - l)(s - 2) where h(N IJ (P K )) = l , if Ny is in the q sub-region, otherwise h(N IJ (P K )) = 0 , Pk is reference point.
[0043] The distribution of the angle related constraint can be represented by a vector Then n Ny based distributions can be obtained by respectively taking P 0 , Pi ... P n -i as referen points, that may be
{[R N1 (P k ),R N2 (P k ),..., R Ns (P k = 0,l,...n - l]}, and a matrix of angle related global constraint may be generated as the following matrix (3).
matrix (3)
[0044] Subsequent to the generation of a first and a second set of distance, angle, and inter-position related global constraints matrices of the first and the second skeletons (blocks 109, 111 , and 113, respectively), in block 11 5, the similarity between the first and the second 3D models is calculated using the matrices. In one
embodiment, the similarity between the first and the second 3D models is calculated using the following equation (8). d = sum[abs(L j - L 2 )] + sum[abs(A 1 - A 2 )] + sum[abs(N 1 - N 2 )]
equation (8) where represents a distance related global constraint matrix of the first skeleton, l_ 2 represents a distance related global constraint matrix of the second skeleton, A^ represents an angle related global constraint matrix of the first skeleton, A 2 represents an angle related global constraint matrix of the second skeleton, Ni represents an inter-position related global constraint matrix of the first skeleton, N 2 represents an inter-position related global constraint matrix of the second skeleton, and abs is absolute value operator.
[0045] One skilled in the art will appreciate that, for this and other processes and methods disclosed herein, the functions performed in the processes and methods may be implemented in differing order. Furthermore, the outlined steps and operations are only provided as examples, and some of the steps and operations may be optional, combined into fewer steps and operations, or expanded into additional steps and operations without detracting from the essence of the disclosed embodiments.
Moreover, some of the functions may be conducted in parallel. In some embodiments, the numbers of sub-regions of Ly, Ay, and Ny may be different from each other, and users may set the numbers according to their precision requirements and time requirements. Those of ordinary skill in the art will also appreciate that Ly, Ay, and Ny may be defined in other ways. In method 100, 3D models may be compared based on their skeletons.
[0046] In addition, similarity between the first and the second 3D models may be calculated using distance and angle related matrices without using inter-position related matrices. In some embodiments, similarity between the first and the second 3D models can also be calculated based on sample points without end points.
[0047] Referring to FIG. 6, a block diagram of an illustrative embodiment of a computer system 200 for comparing 3D models is shown. The computer system 200 includes a CPU (central processing unit) 201 , a memory 203 having a computer program 205 stored therein, a storage device 207, a network interface 209, and an I/O interface 211 connected together by a BUS 213. The computer system 200 further includes a display 215, an output device 217, and an input device 219 connected to the I/O interface 211 .
[0048] When executed by the CPU 201 , the computer program 205 may instruct the CPU 201 to conduct the 3D model comparing methods described above. The computer program 205 may be loaded from the storage device 207 or from internet 220 to which the computer system 200 is connected through the network interface 209. The display 215 may display information and data to facilitate the execution of the method 100 described above by, for example, users of the computer system 200. The output device 217 may output results of the comparison. The input device 219 may facilitate the reception (e.g., input) of instructions from, for example, users. User instructions may be instructions of starting or aborting the method 100, or various parameters to facilitate the execution of the method 100.
[0049] Those of ordinary skill in the art will appreciate that the computer system 200 may be any kind of personal computer, server, workstation, PDA, mobile phone, etc. suitable for executing 3D model comparing methods of the present disclosure.
[0050] Referring to FIG. 7, a block diagram of an illustrative embodiment of a 3D model comparing device 310 is shown. The device 310 includes a sampling device 311 , a distance related global constraint matrix generating device 313, an angle related global constraint matrix generating device 315, an inter-position related global constraint matrix generating device 317, and a similarity calculating device 319.
[0051 ] The sampling device 311 may sample a skeleton to obtain a corresponding set of sample points. The distance related global constraint matrix generating device 313 may generate a distance related global constraint matrix using a corresponding set of sample points obtained by the sampling device 311 , or using a corresponding set of sample points and end points, according to for example the operation of block 109 described above. The angle related global constraint matrix generating device 315 may generate an angle related global constraint matrix using a corresponding set of sample points obtained by the sampling device 311 , or using a corresponding set of sample points and end points, according to for example the operation of block 111 described above. The inter-position related global constraint matrix generating device 317 may generate an inter-position related global constraint matrix using a corresponding set of sample points obtained by the sampling device 311 , or using a corresponding set of sample points and end points, according to for example the operation of block 113 described above. The similarity calculating device 319 may calculate similarity between 3D models using corresponding distance, angle, and interposition related matrices according to for example the operation of block 115 described above.
[0052] In addition, a display 321 , an output device 323, an input device 325, and a skeleton receiving device 327 may be coupled to the 3D model comparing device 310. The display 321 may show information and data to facilitate the execution of the method 100 described above by, for example, users of the 3D model comparing device 310. The output device 323 may output the results of the calculation by the similarity calculating device 319. The input device 325 may facilitate the reception (e.g., input) of instructions from, for example, users. User instructions may be instructions of starting or aborting the method 100, or various parameters to facilitate the execution of the method 100. The skeleton receiving device 327 may receive skeletons of 3D models to be compared, and send the received skeletons to the sampling device 311 for sampling. Since the calculation of distance, angle, and inter-position related global constraints matrices may be similar, the distance related global constraint matrix generating device 313, the angle related global constraint matrix generating device 315, and the
inter-position related global constraint matrix generating device 317 may be integrated as a global constraints matrices obtaining device 330, or may share at least part of hardware or circuits.
[0053] In some embodiments, the 3D model comparing device 310 may be implemented as an Application Specific Integrated Circuit (ASIC), or a Field
Programmable Gate Array (FPGA), etc.
[0054] Referring to FIG. 8, a block diagram of an illustrative embodiment of a system 400 for comparing 3D models is shown. The system 400 includes a server 401 , client computers 403, 405, and 407, and the internet 410. The server 401 may store 3D models therein, and may calculate similarity between 3D models according to a user's request and send the calculated results back to the user. A user may request the server
401 to calculate similarity between 3D models using any one of the client computers 403, 405, and 407 through the internet 410.
[0055] Those of ordinary skill in the art will appreciate that any number and any kind of servers could be included in the system 400. For example, there may be a server for sampling skeletons, a server for calculating distance related global constraint matrices, a server for calculating angle related global constraint matrices, a server for calculating inter-position related global constraint matrices, and a server for storing data etc.
[0056] Because the present disclosure uses skeletons to calculate similarity between 3D models, one benefit is that calculation complexity is significantly reduced, therefore, allowing for a faster comparison of 3D models.
[0057] Industrial designers may use the techniques of the present disclosure to compare their industrial designs with conventional designs. The techniques of the present disclosure can also be used in facial recognition applications to access a physical location or a computer, etc. by comparing a 3D imaged face with stored faces of authorized persons. In another embodiment, the techniques of the present disclosure can be used to identify persons of interest e.g., criminals, in airports, train stations or other public spaces by comparing a 3D imaged face with stored faces of persons of interest. The disclosed techniques can also be used to provide location related data on objects/locations snapped by a camera phone etc. by comparing a 3D imaged object with stored 3D objects and providing related data of a corresponding stored 3D object that matches with the snapped 3D object.
[0058] The present disclosure is not to be limited in terms of the particular
embodiments described in this disclosure, which are intended as illustrations of various aspects. Many modifications and variations can be made without departing from its spirit and scope, as will be apparent to those skilled in the art. Functionally equivalent methods and apparatuses within the scope of the disclosure, in addition to those enumerated herein, will be apparent to those skilled in the art from the foregoing descriptions. Such modifications and variations are intended to fall within the scope of the appended claims. The present disclosure is to be limited only by the terms of the appended claims, along with the full scope of equivalents to which such claims are entitled. It is to be understood that this disclosure is not limited to particular methods, reagents, compounds, compositions or biological systems, which can, of course, vary. It is also to be understood that the terminology used herein is for the purpose of describing particular embodiments only, and is not intended to be limiting.
[0059] In an illustrative embodiment, any of the operations, processes, etc. described herein can be implemented as computer-readable instructions stored on a
computer-readable medium. The computer-readable instructions can be executed by a processor of a mobile unit, a network element, and/or any other computing device.
[0060] There is little distinction left between hardware and software implementations of aspects of systems; the use of hardware or software is generally (but not always, in that in certain contexts the choice between hardware and software can become significant) a design choice representing cost vs. efficiency tradeoffs. There are various vehicles by which processes and/or systems and/or other technologies described herein can be effected (e.g., hardware, software, and/or firmware), and that the preferred vehicle will vary with the context in which the processes and/or systems and/or other technologies are deployed. For example, if an implementer determines that speed and accuracy are paramount, the implementer may opt for a mainly hardware and/or firmware vehicle; if flexibility is paramount, the implementer may opt for a mainly software implementation; or, yet again alternatively, the implementer may opt for some combination of hardware, software, and/or firmware.
[0061 ] The foregoing detailed description has set forth various embodiments of the devices and/or processes via the use of block diagrams, flowcharts, and/or examples. Insofar as such block diagrams, flowcharts, and/or examples contain one or more functions and/or operations, it will be understood by those within the art that each function and/or operation within such block diagrams, flowcharts, or examples can be implemented, individually and/or collectively, by a wide range of hardware, software, firmware, or virtually any combination thereof. In one embodiment, several portions of the subject matter described herein may be implemented via Application Specific Integrated Circuits (ASICs), Field Programmable Gate Arrays (FPGAs), digital signal processors (DSPs), or other integrated formats. However, those skilled in the art will recognize that some aspects of the embodiments disclosed herein, in whole or in part, can be equivalently implemented in integrated circuits, as one or more computer programs running on one or more computers (e.g., as one or more programs running on one or more computer systems), as one or more programs running on one or more processors (e.g., as one or more programs running on one or more microprocessors), as firmware, or as virtually any combination thereof, and that designing the circuitry and/or writing the code for the software and or firmware would be well within the skill of one of skill in the art in light of this disclosure. In addition, those skilled in the art will appreciate that the mechanisms of the subject matter described herein are capable of being distributed as a program product in a variety of forms, and that an illustrative embodiment of the subject matter described herein applies regardless of the particular type of signal bearing medium used to actually carry out the distribution. Examples of a signal bearing medium include, but are not limited to, the following: a recordable type medium such as a floppy disk, a hard disk drive, a Compact Disc (CD), a Digital Video Disk (DVD), a digital tape, a computer memory, etc.; and a transmission type medium such as a digital and/or an analog communication medium (e.g., a fiber optic cable, a waveguide, a wired communications link, a wireless communication link, etc.).
[0062] Those skilled in the art will recognize that it is common within the art to describe devices and/or processes in the fashion set forth herein, and thereafter use engineering practices to integrate such described devices and/or processes into data processing systems. That is, at least a portion of the devices and/or processes described herein can be integrated into a data processing system via a reasonable amount of experimentation. Those having skill in the art will recognize that a typical data processing system generally includes one or more of a system unit housing, a video display device, a memory such as volatile and non-volatile memory, processors such as microprocessors and digital signal processors, computational entities such as operating systems, drivers, graphical user interfaces, and applications programs, one or more interaction devices, such as a touch pad or screen, and/or control systems including feedback loops and control motors (e.g., feedback for sensing position and/or velocity; control motors for moving and/or adjusting components and/or quantities). A typical data processing system may be implemented utilizing any suitable commercially available components, such as those typically found in data computing/communication and/or network computing/communication systems.
[0063] The herein described subject matter sometimes illustrates different
components contained within, or connected with, different other components. It is to be understood that such depicted architectures are merely exemplary, and that in fact many other architectures can be implemented which achieve the same functionality. In a conceptual sense, any arrangement of components to achieve the same functionality is effectively "associated" such that the desired functionality is achieved. Hence, any two components herein combined to achieve a particular functionality can be seen as "associated with" each other such that the desired functionality is achieved, irrespective of architectures or intermedial components. Likewise, any two components so associated can also be viewed as being "operably connected", or "operably coupled", to each other to achieve the desired functionality, and any two components capable of being so associated can also be viewed as being "operably couplable", to each other to achieve the desired functionality. Specific examples of operably couplable include but are not limited to physically mateable and/or physically interacting components and/or wirelessly interactable and/or wirelessly interacting components and/or logically interacting and/or logically interactable components.
[0064] With respect to the use of substantially any plural and/or singular terms herein, those having skill in the art can translate from the plural to the singular and/or from the singular to the plural as is appropriate to the context and/or application. The various singular/plural permutations may be expressly set forth herein for sake of clarity.
[0065] It will be understood by those within the art that, in general, terms used herein, and especially in the appended claims (e.g., bodies of the appended claims) are generally intended as "open" terms (e.g., the term "including" should be interpreted as "including but not limited to," the term "having" should be interpreted as "having at least," the term "includes" should be interpreted as "includes but is not limited to," etc.). It will be further understood by those within the art that if a specific number of an introduced claim recitation is intended, such an intent will be explicitly recited in the claim, and in the absence of such recitation no such intent is present. For example, as an aid to understanding, the following appended claims may contain usage of the introductory phrases "at least one" and "one or more" to introduce claim recitations. However, the use of such phrases should not be construed to imply that the introduction of a claim recitation by the indefinite articles "a" or "an" limits any particular claim containing such introduced claim recitation to disclosures containing only one such recitation, even when the same claim includes the introductory phrases "one or more" or "at least one" and indefinite articles such as "a" or "an" (e.g., "a" and/or "an" should typically be interpreted to mean "at least one" or "one or more"); the same holds true for the use of definite articles used to introduce claim recitations. In addition, even if a specific number of an introduced claim recitation is explicitly recited, those skilled in the art will recognize that such recitation should typically be interpreted to mean at least the recited number (e.g., the bare recitation of "two recitations," without other modifiers, typically means at least two recitations, or two or more recitations). In those instances where a convention analogous to "at least one of A, B, or C, etc." is used, in general such a construction is intended in the sense one having skill in the art would understand the convention (e.g., "a system having at least one of A, B, or C" would include but not be limited to systems that have A alone, B alone, C alone, A and B together, A and C together, B and C together, and/or A, B, and C together, etc.). It will be further understood by those within the art that virtually any disjunctive word and/or phrase presenting two or more alternative terms, whether in the description, claims, or drawings, should be understood to contemplate the possibilities of including one of the terms, either of the terms, or both terms. For example, the phrase "A or B" will be understood to include the possibilities of "A" or "B" or "A and B."
[0066] From the foregoing, it will be appreciated that various embodiments of the present disclosure have been described herein for purposes of illustration, and that various modifications may be made without departing from the scope and spirit of the present disclosure. Accordingly, the various embodiments disclosed herein are not intended to be limiting, with the true scope and spirit being indicated by the following claims.
