Model alignment method

By identifying and matching the geometric features of the three-dimensional model, calculating the matching vectors and calculating the transformation matrix, the problem of difficulty in alignment of three-dimensional models in the prior art is solved, and higher accuracy and robustness are achieved.

CN119604901APending Publication Date: 2025-03-11HONG KONG CENT FOR LOGISTICS ROBOTICS LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202380010254.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-04-28
Publication Date
2025-03-11

AI Technical Summary

Technical Problem

The prior art has difficulties in aligning three-dimensional models of unknown relative orientations, especially in the case of planar or smooth surfaces and roughly symmetric models, which can lead to false alignment.

Method used

By identifying geometric features in the source model and the target model, assigning feature vectors to each feature, and calculating the paired vectors in pairs, identifying the matching paired vectors, and finally aligning the model based on these matching paired vectors.

Benefits of technology

This method can effectively solve the wrong alignment problem in cases such as roughly symmetric models, improve the accuracy and robustness of model alignment, and is suitable for models of any shape or type.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119604901A_ABST
    Figure CN119604901A_ABST
Patent Text Reader

Abstract

A computer-implemented method of aligning a source model with a target model includes receiving a source model and a target model; identifying geometric features in each of the source model and the target model; distributing a feature vector to each feature, and defining a geometric shape type, a position, a direction and a magnitude related to the feature; pairing each feature vector in the source model with each other feature vector in the source model, and pairing each feature vector in the target model with each other feature vector in the target model; calculating a pairing vector of each pair; defining a geometric form type of each feature vector in the pair, and a scale, a relative direction and a separation distance of each feature vector in the pair; identifying a matched pairing vector between the source model and the target model; and calculating a transformation matrix between the source model and the target model based on the matched pairing vectors.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to three-dimensional modeling, and in particular to the alignment of a source model with a target model without an external reference frame. Background Art

[0002] In many cases, it is beneficial to align two three-dimensional (3D) models of unknown relative orientation. For example, it is difficult to measure and assess the surface defects of complex mechanical components in 3D, and comparative measurement techniques are often used. 3D scanners are used to generate an actual model of a component, which can be compared with a scanned model or a template model of another component (such as a design model generated using computer-aided design (CAD) software). Using this technique, scale errors and surface defects can be found in the model differences, however, the models must be accurately aligned, and the rotation and transformation between the template model and the actual model are usually unknown.

[0003] US8830229B2 describes a "point pair feature" (PPF) method for aligning a template model and an actual model. The template model and the actual model are sampled and represented by discrete points with a point direction perpendicular to the surface at that point, and the template model is described using a PPF that defines the relative position and orientation of each pair of points in the model. The PPF of the template model is stored in a hash table so that one or more PPFs of the actual model can be used to retrieve the hash table to find similar PPFs from the template model.

[0004] Each point pair of the actual model is transformed by translating the first point of the points to the origin of the coordinates and then rotating so that the point direction is aligned with the coordinate axis (e.g., the x-axis), and the points of the template model with a similar PPF are transformed by translating the first point of the points to the origin of the coordinates and then rotating so that the point direction is aligned with the coordinate axis (e.g., the x-axis). A rotation angle α is calculated between the two transformed PPFs so as to calculate a series of rotation angles, and the angle α with the most votes can be found through a voting scheme to calculate a transformation matrix from a point pair in the actual model to a corresponding point pair in the template model.

[0005] Since there are many transformation matrices, the transformation matrices are classified and the average matrix of the most common category is used as the transformation matrix from the actual model to the template model.

[0006] This method has limitations for planar or smooth surfaces, for example, if two points come from a plane, the PPF has three ambiguous angles. To address this problem, Choi et al. described a boundary point to boundary point (B2B) feature in 2012 that uses only boundary points.

[0007] However, even with B2B features, there may still be misalignment problems, for example for roughly symmetrical models with fewer asymmetric features. If all boundary points are considered equally, the alignment result may be wrong because most points can be well aligned, but this is not the case for less asymmetric features. Therefore, the points in the less asymmetric features are more important, and the misalignment problem can be solved by assigning appropriate weights to the points or features. US9280827B2 describes a learning-based weighting method, however, since a lot of 3D data needs to be obtained for the actual model and the poses must be labeled as input to the training network, training the network requires a lot of effort.

[0008] An object of the present disclosure is to provide a model alignment method that can solve these problems. Summary of the invention

[0009] The features and advantages of the present disclosure will be explained in the following description, and part of them will be obvious in the description, or can be understood by practicing the principles disclosed herein. The features and advantages of the present disclosure can be realized and obtained by means of the instruments and combinations specifically pointed out in the appended claims.

[0010] According to a first aspect of the present disclosure, there is provided a computer-implemented method for aligning a source model with a target model, comprising: receiving the source model and the target model; identifying a plurality of geometric features in each of the source model and the target model; assigning a feature vector to each feature, defining the geometric type, position, direction and magnitude associated with the feature; pairing each feature vector in the source model with each other feature vector in the source model and pairing each feature vector in the target model with each other feature vector in the target model; calculating a pairing vector for each of the pairings, defining the geometric type of each feature vector in the pairing, the scale of each feature vector in the pairing, the relative direction and the separation distance; identifying one or more matching pairing vectors between the source model and the target model; and calculating a transformation matrix between the source model and the target model based on the matching pairing vectors.

[0011] At least one of the source model and the target model may be a point cloud model.

[0012] Identifying geometric features in the point cloud model may include assigning a local geometry to each point and grouping nearby points having the same local geometry.

[0013] At least one of the source model and the target model may be a 3D solid model.

[0014] Identifying geometric features in the 3D solid model may include detecting a plurality of edges, sampling each edge to generate a plurality of edge points, assigning a local geometry to each edge point, and grouping similar edge points having the same local geometry.

[0015] The local geometry of each point may be calculated using a plurality of nearby points within a predetermined radius.

[0016] Identifying geometric features in the 3D solid model may include detecting a plurality of edges and identifying one or more surfaces bounded by the detected edges.

[0017] Identifying geometric features in a model may include dividing the model into a plurality of voxels, analyzing the distribution of the model within each voxel, determining the local geometry of each voxel based on the distribution of the model in each voxel and each adjacent voxel, applying the determined local geometry of each voxel to the region of the model within the voxel, and grouping one or more adjacent regions of the model having the same local geometry.

[0018] The steps of analyzing the distribution of the model, determining the local geometry, and applying the determined local geometry to a region of the model may be performed in parallel for a plurality of voxels.

[0019] The geometric shape type may be selected from: 3D point, 3D line, 3D circle, 3D plane, 3D arbitrary surface, 3D object.

[0020] The corresponding dimensions may be: space for 3D points, length for 3D lines, diameter for 3D circles, and area or aspect ratio for 3D planes, 3D arbitrary surfaces or 3D objects.

[0021] Calculating the transformation matrix may include iterating the following steps: randomly selecting a plurality of sets of matched pairs, calculating a candidate transformation matrix for the selected matched pairs, applying the candidate transformation matrix to each other matched pair, and determining a corresponding number of the candidate transformation matrices by counting the number of matched pairs that fall within a tolerance threshold after applying the candidate transformation matrix; terminating the iteration after a predetermined condition is met; and selecting the candidate transformation matrix with the highest corresponding number as the output transformation matrix.

[0022] The candidate transformation matrix may be an average of transformation matrices calculated for each of a plurality of selected matched pairs.

[0023] The predetermined condition may be a threshold corresponding number or a fixed number of completed iterations.

[0024] The source model may be an actual model based on real-world data.

[0025] The target model may be a template model based on a computer-generated template or a second actual model based on other real-world data.

[0026] According to a second aspect of the present disclosure, a data processing device is provided, which includes a processor configured to perform the following operations: aligning a source model with a target model by receiving a source model and a target model; identifying multiple geometric features in each of the source model and the target model; assigning a feature vector to each feature, defining the geometric type, position, direction and magnitude associated with the feature; pairing each feature vector in the source model with each other feature vector in the source model and pairing each feature vector in the target model with each other feature vector in the target model; calculating a pairing vector for each of the pairings, defining the geometric type of each feature vector in the pairing, the scale of each feature vector in the pairing, the relative direction and the separation distance; identifying one or more matching pairing vectors between the source model and the target model; and calculating a transformation matrix between the source model and the target model based on the matching pairing vectors.

[0027] According to a third aspect of the present disclosure, a computer-readable medium is provided, comprising instructions that, when executed by a processor, cause the processor to perform the following operations: aligning a source model with a target model by receiving a source model and a target model; identifying multiple geometric features in each of the source model and the target model; assigning a feature vector to each feature, defining the geometric type, position, direction, and magnitude associated with the feature; pairing each feature vector in the source model with each other feature vector in the source model and pairing each feature vector in the target model with each other feature vector in the target model; calculating a pairing vector for each of the pairings, defining the geometric type of each feature vector in the pairing, the scale of each feature vector in the pairing, the relative direction, and the separation distance; identifying one or more matching pairing vectors between the source model and the target model; and calculating a transformation matrix between the source model and the target model based on the matching pairing vectors. BRIEF DESCRIPTION OF THE DRAWINGS

[0028] In order to describe the manner in which the above and other advantages and features of the present disclosure can be obtained, a more particular description of the principles briefly described above will be presented by reference to its specific embodiments shown in the accompanying drawings. It should be understood that these drawings depict only exemplary embodiments of the present disclosure and are not therefore to be considered as limiting the scope thereof, and the principles herein are described and illustrated with additional specific content and details through the use of the accompanying drawings.

[0029] Preferred embodiments of the present disclosure will be explained in more detail below by way of examples and with reference to the accompanying drawings, in which:

[0030] Figure 1 A data processing apparatus according to an embodiment is shown.

[0031] Figure 2 Examples of geometric features are shown.

[0032] Figure 3A and Figure 3B The process of identifying geometric features through voxelization is shown.

[0033] Figure 4A and Figure 4B An exemplary feature vector is shown.

[0034] Figure 5A and Figure 5B An exemplary feature vector is shown.

[0035] Fig. 6A and Figure 6B Exemplary feature pairs are shown.

[0036] Figure 7 A method of aligning a source model with a target model according to an embodiment is shown. DETAILED DESCRIPTION

[0037] Various embodiments of the present disclosure are discussed in detail below. When discussing specific implementations, it should be understood that this is only for illustrative purposes. Those of ordinary skill in the art will appreciate that other components and configurations may be used without departing from the scope of the present disclosure.

[0038] Referring to the accompanying drawings, Figure 1 2 shows a data processing device 1 for aligning a source model 10 with a target model 20. The data processing device 1 comprises an input terminal 100, a feature identifier 200, a feature coupler 300, a pair matcher 400 and a transformation calculator 500.

[0039] The input end 100 is configured to receive a source model 10 and a target model 20. In some examples, at least one of the source model 10 and the target model 20 may be a point cloud model. For example, the source model 10 and / or the target model 20 may be an actual model based on real-world data, such as where a 3D scanner may be used to generate an actual model of a complex mechanical component. In some examples, the data processing device 1 may be configured to align the models to perform a repeatability check on a plurality of real-world components.

[0040] In some examples, at least one of the source model 10 and the target model 20 may be a 3D solid model. For example, the source model 10 and / or the target model 20 may be a template model based on a computer-generated template (e.g., generated using computer-aided design (CAD) software). The data processing device may be configured to align the models to compare the differences between the real-world component and the corresponding design model.

[0041] The feature identifier 200 is configured to identify a plurality of geometric features in each of the source model 10 and the target model 20. The geometric features may be 3D points, 3D lines, 3D circles, 3D planes or flat surfaces, 3D smooth surfaces, 3D objects, or any other suitable features. In some examples, features may be overlapping, i.e., points or regions of the model may be assigned to multiple features.

[0042] Figure 2 An exemplary grouping of points of similar geometric features is shown. Points with line distribution, smooth distribution, and sharp changes can be grouped separately. In addition, edge points can be detected in the sharp change group, lines can be extracted in the line group, and circles can be extracted from the smooth distribution group.

[0043] For a point cloud model, the feature identifier 200 may be configured to assign a local geometry to each point and group similar points with the same local geometry. The local geometry of each point may be calculated using a plurality of similar points within a predetermined radius.

[0044] For a 3D solid model, the feature identifier 200 may be configured to detect multiple edges. The feature identifier 200 may be configured to sample each edge to generate multiple edge points, assign a local geometry to each edge point, and group similar edge points with the same local geometry. The local geometry of each point may be calculated using multiple similar points within a predetermined radius.

[0045] Alternatively or additionally, the feature identifier 200 may be configured to identify one or more surfaces delimited by detected edges.

[0046] In some examples, the feature identifier 200 may be configured to divide the model into a plurality of voxels.

[0047] Figure 3A An exemplary model using voxel partitioning is shown. Voxels can be used to partition 2D or 3D space depending on the type of model.

[0048] The feature identifier 200 may be configured to analyze the distribution of the model within each voxel. In some examples, the feature identifier 200 may determine the local geometry of the voxel based on the distribution of the model within each voxel. In some examples, the feature identifier 200 may determine the local geometry of the voxel based on the distribution of the model in each voxel and each adjacent voxel.

[0049] Figure 3B The topology of the central voxel surrounded by neighbor voxels is shown. In 2D space, the central voxel can be surrounded by 8 neighbor voxels. In 3D space, the central voxel can be surrounded by 26 neighbor voxels. In some examples, the feature identifier 200 can additionally determine the local geometry based on the second and / or third level neighbor voxels.

[0050] Figure 3C An example is shown where a point in a central voxel has a line distribution and is collinear with two neighbor voxels that also have line distributions. Therefore, it can be concluded that these three voxels form the same line geometry. The feature identifier 200 can determine that the local geometry of the central voxel is a line.

[0051] The feature identifier 200 may be configured to fit lines, planes, circles, smooth surfaces, or any other suitable geometry within each voxel. The determined local geometry may be applied to the central voxel and may be different from the adjacent neighbor voxels, again referring to Figure 3A ,It can be seen that the voxels adjacent to the corners can be classified as sharp regions based on their neighbors being lines despite being within the center voxel.

[0052] The feature identifier 200 may be configured to apply the determined local geometry of each voxel to the region of the model within that voxel. For example, the local geometry may be applied to points of the point cloud model that fall within a voxel or a surface portion of a 3D solid model that is located within a voxel.

[0053] The feature identifier 200 may be configured to group one or more adjacent regions of the model that have the same local geometry. Regions may be grouped according to a number of criteria, for example, points or surface portions belonging to connected voxels and / or having similar determined local geometry. For line candidates, the feature identifier 200 may require that the points are co-linear. For plane candidates, the feature identifier 200 may require that the points or surface portions are co-planar. For circle candidates, the feature identifier 200 may require that the points have similar angular gradients. For smooth surface segmentation, the feature identifier 200 may require that the points or surface portions have smooth angular gradients.

[0054] By using this voxel-based approach, it is not necessary to analyze every point in the point cloud model or every sampled point in the 3D solid model. It is also not necessary to identify the neighboring points of each analyzed point. Since both of these processes are particularly time-consuming, the voxel-based approach can reduce the processing time of feature recognition.

[0055] The feature identifier 200 can be configured to analyze the distribution of the model, determine the local geometry, and apply the determined local geometry to regions of multiple voxels of the model in parallel. For example, the feature identifier 200 can use one or more multi-core processors to perform parallel processing of voxels. In this way, the feature identifier 200 using the voxel-based method can utilize parallel processing to further reduce the processing time of feature recognition.

[0056] The feature identifier 200 is also configured to assign a feature vector to each feature, defining the geometric type, position, direction and magnitude associated with the feature. The feature vector may have 8 scales arranged as (type, position, direction, magnitude). The geometric type may be selected from: 3D point, 3D line, 3D circle, 3D plane, 3D arbitrary surface, 3D object. The feature vector may use pre-assigned values ​​corresponding to each geometric type, such as 0 for 3D point, 1 for 3D line, 2 for 3D circle, 3 for 3D plane, 4 for 3D surface, etc.

[0057] The corresponding scale may be: space for a 3D point, length for a 3D line, and diameter for a 3D circle.

[0058] Figure 4A An exemplary 3D line feature is shown. A 3D line can be defined as (1, xc, yc, zc, dx, dy, dz, length), where (xc, yc, zc) is the line center and (dx, dy, dz) is the line direction.

[0059] Figure 4BAn exemplary 3D circle feature is shown. The 3D circle can be defined as (2, xc, yc, zc, dx, dy, dz, diameter), where (xc, yc, zc) is the center of the circle and (dx, dy, dz) is the direction perpendicular to the plane of the circle.

[0060] The corresponding dimension may be the area or aspect ratio of a 3D plane, 3D arbitrary surface or 3D object. The choice to use the area or aspect ratio may be made by the user or may be preconfigured in the feature identifier 200. For non-planar surfaces, the area or aspect ratio of the bounding box may be used.

[0061] Figure 5A An exemplary 3D plane feature is shown. A 3D plane can be defined as (3, xc, yc, zc, dx, dy, dz, M), where (xc, yc, zc) is the center of the plane and (dx, dy, dz) is the normal to the plane at the center of the plane. The magnitude M can be an area or a width-to-length ratio.

[0062] Figure 5B An exemplary 3D arbitrary surface feature is shown. A 3D surface can be defined as (4, xc, yc, zc, dx, dy, dz, M), where (xc, yc, zc) is the center of the surface and (dx, dy, dz) is the normal to the surface at the center of the surface. The magnitude M can be the area or aspect ratio of the bounding box.

[0063] The feature coupler 300 is configured to pair each feature vector in the source model 10 with each other feature vector in the source model 10, and to pair each feature vector in the target model 20 with each other feature vector in the target model 20. The same geometry types may be paired, and different geometry types may be paired.

[0064] The feature coupler 300 is also configured to calculate the pairing vector of each pairing in the pairing, define the geometry type of each feature vector in the pairing, the scale of each feature vector in the pairing, the relative direction and the separation distance. The feature vector can have 8 scales arranged as (type 1, type 2, magnitude 1, magnitude 2, pose relationship). The pose relationship of the geometric pair can be described by a direction and distance vector (α, α1, α2, d), which uses the position and direction information of two geometric forms.

[0065] Fig. 6AAn exemplary plane-to-plane geometry pair is shown. It can be seen that α is the angle between the normal directions (dx, dy, dz) of each plane, α1 and α2 are the angles between the normal of the first plane and the normal of the second plane, respectively, and the line connecting the center points of each plane (xc, yc, zc), and d is the separation distance between the center points of the two planes.

[0066] Figure 6B An exemplary surface-to-surface geometry pair is shown. It can be seen that α is the angle between the normal directions (dx, dy, dz) of each surface, α1 and α2 are the angles between the normal of the first surface and the normal of the second surface, respectively, and the line connecting the center points (xc, yc, zc) of each surface, and d is the separation distance between the center points of the two surfaces.

[0067] The pair matcher 400 is configured to identify one or more matching pairing vectors between the source model 10 and the target model 20 .

[0068] The transformation calculator 500 is configured to calculate the transformation matrix 30 between the source model 10 and the target model 20 based on the matched pairing vectors.

[0069] By using matched pairing vectors, the process of determining the appropriate transformation matrix 30 can be significantly reduced because the pairing of feature vectors is highly constrained. Whereas point pair features may have many incorrect matches and even complex individual geometric forms may not be unique or may be incorrectly matched based on symmetry, geometric feature pairs are less likely to be incorrectly matched. Thus, a lower number of pairing vectors can be processed to determine the transformation matrix 30. In addition, pairs of geometric features are more robust to noise than single point pairs, so the accuracy of the match can be improved. In addition, the method can be generalized to models of any shape or type because any appropriate geometric feature can be used to generate the pair.

[0070] In some examples, the transformation calculator 500 can be configured to randomly select a plurality of sets of matched pairs, calculate a candidate transformation matrix for the selected matched pairs, and apply the candidate transformation matrix to each other matched pair. The candidate transformation matrix can be an average of the transformation matrices calculated for each of the plurality of selected matched pairs. In this way, since the matched pair vectors are constrained, the transformation matrix 30 can be more accurately calculated using a smaller subset of the total number of matched pairs, so the processing required to calculate the transformation matrix 30 can be significantly reduced.

[0071] The transform calculator 500 may be configured to determine the corresponding number of candidate transform matrices by counting the number of matched pairs that fall within a tolerance threshold after applying the candidate transform matrices.

[0072] The transformation calculator 500 may be configured to iterate these steps and terminate the iteration after a predetermined condition is met. For example, the predetermined condition may be a threshold corresponding number or a fixed number of completed iterations.

[0073] The transform calculator 500 may be configured to select the candidate transform matrix 30 having the highest corresponding number as output.

[0074] Figure 7 A method for aligning a source model with a target model according to an embodiment is shown. The method starts at step S01.

[0075] In step S02, a source model and a target model are received.

[0076] In step S03 , a plurality of geometric features are identified in each of the source model and the target model.

[0077] In step S04, a feature vector is assigned to each feature, defining the geometric type, position, direction and magnitude associated with the feature.

[0078] In step S05, each feature vector in the source model is paired with each other feature vector in the source model. Each feature vector in the target model is paired with each other feature vector in the target model.

[0079] In step S06, the pairing vector of each pair in the pairing is calculated, and the geometric type of each feature vector in the pairing, the scale, relative direction and separation distance of each feature vector in the pairing are defined.

[0080] In step S07, one or more matching pair vectors are identified between the source model and the target model.

[0081] In step S08, a transformation matrix is ​​calculated between the source model and the target model based on the matching pair vectors.

[0082] The method is completed at step S13.

[0083] The above embodiments are described by way of example only. Many variations are possible without departing from the scope of the present disclosure as defined in the appended claims.

[0084] For clarity of explanation, in some cases, the technology of the present invention may be presented as including separate functional blocks, including functional blocks in devices, device components, steps or routines in methods implemented in software or a combination of hardware and software.

[0085] The method of the example described above can be implemented using computer executable instructions stored or otherwise available from a computer readable medium. The instructions may, for example, include instructions and data that enable or otherwise configure a general-purpose computer, a special-purpose computer, or a special-purpose processing device to perform a certain function or group of functions. Parts of the computer resources used can be accessible via a network. The computer executable instructions may, for example, be binary, intermediate format instructions such as assembly language, firmware, or source code. Examples of computer readable media that can be used to store instructions, information used, and / or information created during the method according to the example described include disks or optical disks, flash memory, universal serial bus (USB) devices equipped with non-volatile memory, network storage devices, etc.

[0086] Devices implementing methods according to these disclosures may include hardware, firmware, and / or software, and may take any of a variety of form factors. Typical examples of such form factors include laptops, smart phones, smaller form factor personal computers, personal digital assistants, etc. The functionality described herein may also be implemented in peripheral devices or plug-in cards. By way of other examples, such functionality may also be implemented on circuit boards in different chips or different processes running in a single device.

[0087] The instructions, the media for transmitting such instructions, the computing resources for executing them, and other structures for supporting such computing resources are the means for providing the functionality described in these disclosures.

[0088] Although various examples and other information have been used to illustrate aspects within the scope of the appended claims, no limitations on the claims should be implied based on the specific features or arrangements in such examples, because those of ordinary skill in the art will be able to derive multiple implementations using these examples. In addition and although certain subject matter has been described in language specific to examples of structural features and / or method steps, it should be understood that the subject matter defined in the appended claims is not necessarily limited to these described features or actions. For example, such functionality may be distributed differently in or performed in components other than those identified herein. Specifically, the described features and steps are disclosed as examples of components of systems and methods within the scope of the appended claims.

Claims

1. A computer-implemented method of aligning a source model with a target model, the method comprising: Receiving the source model and the target model; identifying a plurality of geometric features in each of the source model and the target model; Assigning a feature vector to each feature, defining the geometric type, location, orientation and magnitude associated with the feature; pairing each feature vector in the source model with each other feature vector in the source model, and pairing each feature vector in the target model with each other feature vector in the target model; calculating a pairing vector for each of the pairings, defining a geometric type of each eigenvector in the pairing, a scale, a relative orientation, and a separation distance of each eigenvector in the pairing; identifying one or more matching pairing vectors between the source model and the target model; and A transformation matrix between the source model and the target model is calculated based on the matched pairing vectors.

2. The computer-implemented method of claim 1 , wherein: At least one of the source model and the target model is a point cloud model, and identifying geometric features in the point cloud model includes assigning a local geometry to each point and grouping similar points having the same local geometry.

3. The computer-implemented method of claim 1 or claim 2, wherein at least one of the source model and the target model is a 3D solid model, and identifying geometric features in the 3D solid model comprises: A plurality of edges are detected, each edge is sampled to generate a plurality of edge points, a local geometry is assigned to each edge point, and close edge points having the same local geometry are grouped.

4. A computer-implemented method according to claim 2 or claim 3, wherein: The local geometry of each point is calculated using multiple nearby points within a predefined radius.

5. A computer-implemented method according to any preceding claim, wherein: At least one of the source model and the target model is a 3D solid model, and identifying geometric features in the 3D solid model includes detecting a plurality of edges, and identifying one or more surfaces bounded by the detected edges.

6. A computer-implemented method according to any preceding claim, wherein: Identifying geometric features in a model includes dividing the model into a plurality of voxels, analyzing the distribution of the model within each voxel, determining the local geometry of each voxel based on the distribution of the model in each voxel and each adjacent voxel, applying the determined local geometry of each voxel to the region of the model within the voxel, and grouping one or more adjacent regions of the model having the same local geometry.

7. The computer-implemented method of claim 6, wherein: The steps of analyzing the distribution of the model, determining the local geometry, and applying the determined local geometry to regions of the model are performed in parallel for a plurality of voxels.

8. A computer-implemented method according to any preceding claim, wherein: The geometric shape type is selected from the following: 3D point, 3D line, 3D circle, 3D plane, 3D arbitrary surface, 3D object.

9. The computer-implemented method of claim 8, wherein the corresponding dimensions are space for 3D points, length for 3D lines, diameter for 3D circles, and area or aspect ratio for 3D planes, 3D arbitrary surfaces, or 3D objects.

10. A computer-implemented method according to any preceding claim, wherein: Calculating the transformation matrix includes: Iterate the following steps: Randomly select matched pairs from multiple sets, Compute a candidate transformation matrix for the selected matched pair, applying the candidate transformation matrix to each other matched pair, and determining a corresponding number of the candidate transformation matrices by counting the number of matched pairs that fall within a tolerance threshold after applying the candidate transformation matrices; The iteration is terminated after a predetermined condition is met; and the candidate transformation matrix having the highest corresponding number is selected as the output transformation matrix.

11. The computer-implemented method of claim 10, wherein: The candidate transformation matrix is ​​an average of transformation matrices calculated for each of a plurality of selected matched pairs.

12. A computer implemented method according to claim 10 or claim 11, wherein the predetermined condition is a threshold corresponding number or a fixed number of completed iterations.

13. A computer-implemented method according to any preceding claim, wherein: The source model is an actual model based on real-world data, and the target model is a template model based on a computer-generated template or a second actual model based on other real-world data.

14. A data processing apparatus comprising a processor configured to perform the computer implemented method of any preceding claim.

15. A computer readable medium comprising instructions which, when executed by a processor, cause the processor to perform the method of any one of claims 1 to 13.

Citation Information

Patent Citations

  • Recognition and pose determination of 3D objects in 3D scenes

    US8830229B2

  • Method for determining object poses using weighted features

    US9280827B2