CN118229995A - Method, device, computer equipment and medium for extracting key points in 3D model - Google Patents
Method, device, computer equipment and medium for extracting key points in 3D model Download PDFInfo
- Publication number
- CN118229995A CN118229995A CN202410347324.6A CN202410347324A CN118229995A CN 118229995 A CN118229995 A CN 118229995A CN 202410347324 A CN202410347324 A CN 202410347324A CN 118229995 A CN118229995 A CN 118229995A
- Authority
- CN
- China
- Prior art keywords
- points
- point
- key
- normal vector
- calculating
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 239000013598 vector Substances 0.000 claims abstract description 116
- 238000004590 computer program Methods 0.000 claims abstract description 26
- 238000004364 calculation method Methods 0.000 claims abstract description 19
- 239000011159 matrix material Substances 0.000 claims description 37
- 238000000354 decomposition reaction Methods 0.000 claims description 12
- 238000000605 extraction Methods 0.000 abstract description 10
- 230000008569 process Effects 0.000 abstract description 9
- 238000012545 processing Methods 0.000 abstract description 8
- 238000012216 screening Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000000691 measurement method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/46—Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
- G06V10/462—Salient features, e.g. scale invariant feature transforms [SIFT]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Mathematical Physics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Image Processing (AREA)
Abstract
The application relates to a method, a device, a computer device, a storage medium and a computer program product for extracting key points in a 3D model, wherein the method comprises the following steps: and selecting random key points of the point cloud data in the 3D model, searching and obtaining a group of contour points based on normal vectors of the key points, and finally obtaining descriptors of the key points according to the key points and angle values of the contour points. In the whole process, the descriptors of the key points can be obtained based on simple normal vector calculation and search and angle value screening without complex data processing and calculation processes, and the efficient extraction of the key points in the 3D model can be realized.
Description
Technical Field
The present application relates to the field of three-dimensional image processing technology, and in particular, to a method, an apparatus, a computer device, a storage medium, and a computer program product for extracting key points in a 3D model.
Background
With the increasing heat of the 3D modeling research field, how to extract key points and describe key points of the 3D model becomes the key point and the difficulty of the computer vision field research. However, there are different disadvantages to the conventional scale invariant description to the scale variant description.
The most representative of the conventional art is the genus SPIN IMAGE. The method expresses the 3D surface shape in the searched area through a searching radius and a histogram, thereby achieving the purpose of describing the searching circle center. Although the scheme can realize the extraction of key points in the 3D model, a great deal of calculation is needed in the searching process.
Therefore, no efficient scheme for extracting key points in the 3D model exists at present.
Disclosure of Invention
Based on this, it is necessary to provide an efficient method, apparatus, computer device, storage medium and computer program product for extracting key points in a 3D model in view of the above technical problems.
In a first aspect, the present application provides a method for extracting key points in a 3D model. The method comprises the following steps:
acquiring point cloud data of a 3D model;
Randomly selecting any point in the point cloud data as a key point based on a preset target, and calculating a normal vector of the key point;
Searching normal vectors of other points perpendicular to the normal vector in the point cloud data to obtain a group of contour points;
And calculating descriptors of the key points according to the angle values of the key points and the contour points.
In one embodiment, randomly selecting any point in the point cloud data as a key point based on a preset target, and calculating a normal vector of the key point includes:
randomly selecting any point in the point cloud data as a key point based on a preset target;
identifying neighboring points of the key points, and constructing a covariance matrix based on the neighboring points;
and decomposing the covariance matrix, and calculating to obtain the normal vector of the key point.
In one embodiment, the identifying neighboring points of the keypoint and constructing the covariance matrix based on the neighboring points comprises:
Determining the key point and centroid points of a plurality of adjacent points of the key point;
Calculating the maximum distance from the key point in the plurality of adjacent points, and taking the maximum distance as a Gaussian weight;
and constructing and obtaining a covariance matrix based on the plurality of adjacent points, the centroid points and the Gaussian weights.
In one embodiment, the decomposing the covariance matrix, and calculating the normal vector of the key point includes:
Performing eigenvalue decomposition on the covariance matrix to obtain a plurality of eigenvalues and eigenvectors corresponding to the eigenvalues;
And determining a feature vector corresponding to the minimum feature value in the plurality of feature values, and taking the determined feature vector as a normal vector of the key point.
In one embodiment, the calculating the descriptor of the keypoint according to the angle values of the keypoint and the contour point includes:
calculating the distance and angle value between the key point and the contour point, and respectively obtaining a distance sequence and an angle sequence of the contour point around the key point;
and forming descriptors of the key points based on the distance sequence and the angle sequence.
In one embodiment, the number of the preset targets is a plurality of the preset targets; the method for extracting the key points in the 3D model further comprises the following steps:
searching the contour points of different preset targets by using vertical normal vector points to determine the searching radius of the different preset targets;
and searching normal vectors of other points perpendicular to the normal vector in the point cloud data based on the searching radius of the preset target.
In a second aspect, the application further provides a device for extracting the key points in the 3D model. The device comprises:
the data acquisition module is used for acquiring point cloud data of the 3D model;
the normal vector calculation module is used for randomly selecting any point in the point cloud data as a key point based on a preset target and calculating the normal vector of the key point;
the contour searching module is used for searching normal vectors of other points perpendicular to the normal vector in the point cloud data to obtain a group of contour points;
And the calculation module is used for calculating descriptors of the key points according to the angle values of the key points and the contour points.
In a third aspect, the present application also provides a computer device. The computer device comprises a memory storing a computer program and a processor which when executing the computer program performs the steps of:
acquiring point cloud data of a 3D model;
Randomly selecting any point in the point cloud data as a key point based on a preset target, and calculating a normal vector of the key point;
Searching normal vectors of other points perpendicular to the normal vector in the point cloud data to obtain a group of contour points;
And calculating descriptors of the key points according to the angle values of the key points and the contour points.
In a fourth aspect, the present application also provides a computer-readable storage medium. The computer readable storage medium having stored thereon a computer program which when executed by a processor performs the steps of:
acquiring point cloud data of a 3D model;
Randomly selecting any point in the point cloud data as a key point based on a preset target, and calculating a normal vector of the key point;
Searching normal vectors of other points perpendicular to the normal vector in the point cloud data to obtain a group of contour points;
And calculating descriptors of the key points according to the angle values of the key points and the contour points.
In a fifth aspect, the present application also provides a computer program product. The computer program product comprises a computer program which, when executed by a processor, implements the steps of:
acquiring point cloud data of a 3D model;
Randomly selecting any point in the point cloud data as a key point based on a preset target, and calculating a normal vector of the key point;
Searching normal vectors of other points perpendicular to the normal vector in the point cloud data to obtain a group of contour points;
And calculating descriptors of the key points according to the angle values of the key points and the contour points.
According to the method, the device, the computer equipment, the storage medium and the computer program product for extracting the key points in the 3D model, the random key point selection is carried out on the point cloud data in the 3D model, a group of contour points are obtained by searching based on normal vectors of the key points, and finally descriptors of the key points can be obtained according to the key points and angle values of the contour points. In the whole process, the descriptors of the key points can be obtained based on simple normal vector calculation and search and angle value screening without complex data processing and calculation processes, and the efficient extraction of the key points in the 3D model can be realized.
Drawings
FIG. 1 is an application environment diagram of a method for extracting key points in a 3D model in one embodiment;
FIG. 2 is a flow chart of a method for extracting key points in a 3D model according to an embodiment;
FIG. 3 is a flowchart of a method for extracting keypoints in a 3D model according to another embodiment;
FIG. 4 is a block diagram of a key point extraction device in a 3D model according to an embodiment;
Fig. 5 is an internal structural diagram of a computer device in one embodiment.
Detailed Description
The present application will be described in further detail with reference to the drawings and examples, in order to make the objects, technical solutions and advantages of the present application more apparent. It should be understood that the specific embodiments described herein are for purposes of illustration only and are not intended to limit the scope of the application.
The method for extracting the key points in the 3D model provided by the embodiment of the application can be applied to an application environment shown in figure 1. Wherein the terminal 102 communicates with the server 104 via a network. The data storage system may store data that the server 104 needs to process. The data storage system may be integrated on the server 104 or may be located on a cloud or other network server. The terminal 102 sends a request for extracting key points in the 3D model to the server 104, and the server 104 responds to the request to acquire point cloud data of the 3D model; randomly selecting any point in the point cloud data as a key point based on a preset target, and calculating a normal vector of the key point; searching normal vectors of other points perpendicular to the normal vector in the point cloud data to obtain a group of contour points; and calculating descriptors of the key points according to the angle values of the key points and the contour points. The terminal 102 may be, but not limited to, various personal computers, notebook computers, smart phones, tablet computers, internet of things devices, and portable wearable devices, where the internet of things devices may be smart speakers, smart televisions, smart air conditioners, smart vehicle devices, and the like. The portable wearable device may be a smart watch, smart bracelet, headset, or the like. The server 104 may be implemented as a stand-alone server or as a server cluster of multiple servers.
In one embodiment, as shown in fig. 2, a method for extracting key points in a 3D model is provided, and the method is applied to the server 104 in fig. 1 for illustration, and includes the following steps:
s200: and acquiring point cloud data of the 3D model.
Acquiring point cloud data for a 3D model typically involves capturing the shape and surface details of an object using a 3D scanning device or technique. The following are some common methods to obtain 3D point cloud data: 3D laser scanner: the 3D laser scanner calculates the distance of the object surface by emitting a laser beam and measuring the time it is reflected back. These scanners can quickly acquire the coordinates of a large number of points, thereby generating point cloud data. They are commonly used for outdoor large object or scene measurements. Structured light scanner: structured light scanners infer the shape of an object by projecting specific light patterns onto the object and observing how these patterns deform. This approach is very effective in indoor environments and is typically used to capture smaller objects or detailed scenes. Stereoscopic vision system: stereoscopic vision systems use two or more cameras to capture the same object from different angles and then calculate depth information by comparing differences in the images. Such methods are commonly used in unmanned aerial vehicles, robots, or other autonomous systems. Hand-held 3D scanner: hand-held 3D scanners allow a user to manually scan objects, which devices typically incorporate structured light and/or laser technology so that the user can easily acquire point cloud data without specialized equipment. Photogrammetry: a 3D model of an object is reconstructed by taking multiple pictures of the object and using computer vision techniques. While this approach may not directly generate point cloud data, it may be obtained by converting the model to a point cloud format.
S400: and randomly selecting any point in the point cloud data as a key point based on a preset target, and calculating the normal vector of the key point.
Randomly selecting any point in the point cloud data as a key point based on a preset target, and calculating a normal vector of the key point, wherein the method generally comprises the following steps of: 1. and randomly selecting key points. First, a pre-set target is determined, which may be a key point selected based on a certain condition or probability distribution. If there is no specific condition, you can simply randomly choose any point in the point cloud as a key point. Specifically, a random number generator is used to select an index, and then the index is used to acquire corresponding points from the point cloud data as key points; 2. and calculating the normal vector of the key point. The normal vector is a vector perpendicular to the tangent plane of the object surface at the point of interest. In point cloud data, the normal vector is typically estimated by calculating the distribution of points within the neighborhood of the keypoint.
S600: and searching normal vectors of other points perpendicular to the normal vector in the point cloud data to obtain a group of contour points.
Determining search conditions perpendicular to the normal vector of the key point: with the normal vector of the keypoint, a search criteria is determined to find points perpendicular to the normal vector of the keypoint. This typically means that the dot product of the normal vector for each dot and the normal vector for the keypoint is calculated and a threshold is set to filter out those nearly perpendicular dots. Searching and screening points: and traversing each point in the point cloud data, and calculating the dot product of the normal vector and the normal vector of the key point. If the absolute value of the dot product is smaller than a certain threshold (representing that the two vectors are almost perpendicular), the dot is considered as a candidate contour dot. Obtaining a contour point set: all points meeting the conditions are collected to form a set of contour points.
S800: and calculating descriptors of the key points according to the angle values of the key points and the contour points.
Computing descriptors of keypoints typically involves extracting features of the keypoints and their surrounding areas so that the keypoints can be uniquely identified or matched. A descriptor is typically a vector that contains the spatial distribution, shape, color, or other relevant information of the keypoint and its neighbors. In 3D point cloud processing, descriptors may need to consider the position, normal direction, curvature, etc. of points.
Specifically, the entire process includes the steps of: 1. a neighborhood is determined. First, a local neighborhood of keypoints is determined. 2. And extracting angle information of the contour points. For each contour point, the relative angle between it and the keypoint is calculated. This angle may be calculated based on their position in the local coordinate system, for example, by calculating the angle between the normal vector of the contour point and the vector pointing from the keypoint to the contour point. 3. Constructing an angle histogram: the relative angles are divided into different histogram bins and the number of angles within each bin is counted. This forms a histogram of the angular distribution describing the spatial distribution of the contour points around the keypoints. 4. Normalized histogram: in order to make the descriptor robust to scale, rotation, etc. transformations, the histogram may be normalized. This typically involves converting the values of the histogram into relative frequencies or probabilities and may involve smoothing or filtering operations. 5. Forming a descriptor vector: the normalized histogram is converted into a vector, which is the descriptor of the keypoint. The length of the descriptor (i.e. the dimension of the vector) depends on the number of bins of the histogram.
According to the method for extracting the key points in the 3D model, random key point selection is performed on the point cloud data in the 3D model, a group of contour points are obtained by searching based on normal vectors of the key points, and finally descriptors of the key points can be obtained according to the key points and angle values of the contour points. In the whole process, the descriptors of the key points can be obtained based on simple normal vector calculation and search and angle value screening without complex data processing and calculation processes, and the efficient extraction of the key points in the 3D model can be realized.
As shown in fig. 3, in one embodiment, S400 includes:
S420: randomly selecting any point in the point cloud data as a key point based on a preset target;
s440: identifying neighbor points of the key points, and constructing a covariance matrix based on the neighbor points;
S460: and decomposing the covariance matrix, and calculating to obtain the normal vector of the key point.
In order to randomly select any point in the point cloud data as a key point based on a preset target and calculate a normal vector of the key point, the following steps can be performed: randomly selecting key points: first, a point is randomly selected from the point cloud data as a key point. This may be achieved by randomly generating an index that corresponds to a certain point in the point cloud data. Identifying neighboring points of the keypoint: next, neighboring points of the keypoint are determined. This is typically accomplished by calculating the distance between the keypoint and other points and selecting points whose distance is within a certain threshold as neighboring points. Common distance measurement methods include euclidean distance and the like. Constructing a covariance matrix: with neighboring points of the keypoint, a covariance matrix can be constructed based on the neighboring points. Covariance matrices are a matrix that describes the relationship between data points and can reflect the distribution and variation of data points. For three-dimensional point cloud data, the covariance matrix may be a 3x3 matrix. Decomposing covariance matrix: next, the covariance matrix is decomposed. The decomposition method may be eigenvalue decomposition or Singular Value Decomposition (SVD). By decomposing the covariance matrix, the eigenvectors and eigenvalues thereof can be obtained. Calculating a vector: and finally, calculating the normal vector of the key point by using the characteristic vector obtained by decomposition. In general, the normal vector is a feature vector corresponding to the minimum feature value obtained by covariance matrix decomposition. This is because the feature vector corresponding to the minimum feature value represents the direction in which the data point variation is smallest, i.e., the normal direction of the surface.
In one embodiment, identifying neighboring points of the keypoint and constructing the covariance matrix based on the neighboring points comprises:
Determining a key point and centroid points of a plurality of adjacent points of the key point; calculating the maximum distance from the key point in the plurality of adjacent points, and taking the maximum distance as Gaussian weight; and constructing and obtaining a covariance matrix based on the plurality of adjacent points, the centroid points and the Gaussian weights.
First, it is necessary to determine which points are neighbors of the keypoint. This is typically accomplished by calculating the distance between the keypoint and other points and selecting points whose distance is within a certain threshold as neighboring points; the centroid point is a center point of the neighboring point set and can be obtained by calculating the average value of neighboring point coordinates; in order to account for the different effects of neighboring points on keypoint normal vector computation, gaussian weights may be used herein. Gaussian weights are typically determined based on the distance between the neighboring points and the keypoints, with closer points being weighted more heavily. Here, the distance farthest from the key point in the neighboring points is selected as a parameter of the gaussian weight, and is used for adjusting the weight function; finally, a covariance matrix is constructed using the neighbor points, centroid points, and Gaussian weights. Covariance matrices are a matrix that describes the relationship between data points and can reflect the distribution and variation of data points.
In one embodiment, decomposing the covariance matrix, and calculating the normal vector of the key point includes:
Performing eigenvalue decomposition on the covariance matrix to obtain a plurality of eigenvalues and eigenvectors corresponding to the eigenvalues; and determining a feature vector corresponding to the minimum feature value in the plurality of feature values, and taking the determined feature vector as a normal vector of the key point.
The normal vector for eigenvalue decomposition of the covariance matrix to calculate key points specifically includes: calculating a covariance matrix: first, a set of key points and their neighbors is obtained. A covariance matrix of the points can then be calculated, which describes the distribution of the points within their local neighbors. Characteristic value decomposition: eigenvalue decomposition of the covariance matrix results in a set of eigenvalues (each eigenvalue representing the magnitude of the variance in one principal direction) and corresponding eigenvectors (each eigenvector representing one principal direction). Determining a normal vector: in three-dimensional space, the feature vector corresponding to the minimum feature value generally represents the direction in which the data change is smallest, that is, the normal direction of the surface. Therefore, this feature vector is taken as the normal vector of the key point.
In one embodiment, calculating the descriptors of the keypoints from the angle values of the keypoints and the contour points comprises:
Calculating the distance and angle value between the key point and the contour point, and respectively obtaining the distance sequence and the angle sequence of the contour point around the key point; descriptors of the keypoints are composed based on distance sequences and angle sequences.
Specifically, calculating descriptors of keypoints from angle values of keypoints and contour points typically involves the steps of: 1. calculating the distance between the key point and the contour point: for each contour point around the keypoint, their Euclidean distance to the keypoint is calculated. This can be obtained by calculating the coordinate difference between the two points and then applying the Pythagorean theorem or a model length calculation using vectors. 2. Calculating an angle value between the key point and the contour point: also for each contour point, the angle between them and the keypoint is calculated. This typically involves taking the keypoints as the origin and calculating the angle between the contour point vector and some reference vector (such as the x-axis or a specific direction vector). This angle value may be an absolute angle with respect to the key point or a relative angle with respect to the previous contour point. 3. Acquiring a distance sequence and an angle sequence of the contour point around the key point: all the contour points are ordered according to their distances to the key points, so that a distance sequence is obtained. At the same time, angle values corresponding to these distances are recorded, forming an angle sequence. Together, these two sequences describe the position and orientation of the contour points relative to the keypoints. 4. The descriptors of the key points are formed based on the distance sequence and the angle sequence: the distance sequence and the angle sequence are used to construct a feature vector or data structure describing the keypoints. This descriptor should be able to uniquely or as uniquely as possible identify the keypoints and maintain a certain stability in the different images or views. The descriptors may contain the original values of the distance and angle, statistics of these values (e.g., mean, standard deviation, histogram, etc.), or some converted or encoded value.
In one embodiment, the number of preset targets is a plurality; the method for extracting the key points in the 3D model further comprises the following steps:
searching the contour points of different preset targets by using the vertical normal vector points to determine the searching radius of the different preset targets; and searching normal vectors of other points perpendicular to the normal vector in the point cloud data based on the searching radius of the preset target.
In order to reduce the data processing amount, the profile points of different preset targets are searched for vertical normal vector points to determine the search radius of the different preset targets, and then the normal vectors of other points perpendicular to the normal vector in the point cloud data are searched for based on the search radius of the preset targets.
It should be understood that, although the steps in the flowcharts related to the above embodiments are sequentially shown as indicated by arrows, these steps are not necessarily sequentially performed in the order indicated by the arrows. The steps are not strictly limited to the order of execution unless explicitly recited herein, and the steps may be executed in other orders. Moreover, at least some of the steps in the flowcharts described in the above embodiments may include a plurality of steps or a plurality of stages, which are not necessarily performed at the same time, but may be performed at different times, and the order of the steps or stages is not necessarily performed sequentially, but may be performed alternately or alternately with at least some of the other steps or stages.
Based on the same inventive concept, the embodiment of the application also provides a device for extracting the key points in the 3D model, which is used for realizing the method for extracting the key points in the 3D model. The implementation of the solution provided by the device is similar to the implementation described in the above method, so the specific limitation of the embodiments of the key point extraction device in one or more 3D models provided below may be referred to the limitation of the method for extracting a key point in a 3D model hereinabove, and will not be repeated here.
In one embodiment, as shown in fig. 4, there is provided a key point extraction device in a 3D model, including:
The data acquisition module 200 is used for acquiring point cloud data of the 3D model;
The normal vector calculation module 400 is configured to randomly select any point in the point cloud data as a key point based on a preset target, and calculate a normal vector of the key point;
The contour searching module 600 is configured to search normal vectors of other points perpendicular to the normal vector in the point cloud data to obtain a set of contour points;
the calculation module 800 is configured to calculate a descriptor of the keypoint according to the angle values of the keypoint and the contour point.
In one embodiment, the normal vector calculation module 400 is further configured to randomly select any point in the point cloud data as a key point based on a preset target; identifying neighbor points of the key points, and constructing a covariance matrix based on the neighbor points; and decomposing the covariance matrix, and calculating to obtain the normal vector of the key point.
In one embodiment, the normal vector calculation module 400 is further configured to determine a keypoint and centroid points of a plurality of neighboring points of the keypoint; calculating the maximum distance from the key point in the plurality of adjacent points, and taking the maximum distance as Gaussian weight; and constructing and obtaining a covariance matrix based on the plurality of adjacent points, the centroid points and the Gaussian weights.
In one embodiment, the normal vector calculation module 400 is further configured to perform eigenvalue decomposition on the covariance matrix to obtain a plurality of eigenvalues and eigenvectors corresponding to the eigenvalues; and determining a feature vector corresponding to the minimum feature value in the plurality of feature values, and taking the determined feature vector as a normal vector of the key point.
In one embodiment, the calculation module 800 is further configured to calculate a distance and an angle value between the key point and the contour point, and obtain a distance sequence and an angle sequence of the contour point around the key point respectively; descriptors of the keypoints are composed based on distance sequences and angle sequences.
In one embodiment, the number of preset targets is a plurality; the normal vector calculation module 400 is further configured to search for vertical normal vector points for contour points of different preset targets to determine search radii of the different preset targets; and searching normal vectors of other points perpendicular to the normal vector in the point cloud data based on the searching radius of the preset target.
The above-mentioned each module in the key point extraction device in the 3D model may be implemented in whole or in part by software, hardware, and combinations thereof. The above modules may be embedded in hardware or may be independent of a processor in the computer device, or may be stored in software in a memory in the computer device, so that the processor may call and execute operations corresponding to the above modules.
In one embodiment, a computer device is provided, which may be a server, the internal structure of which may be as shown in fig. 5. The computer device includes a processor, a memory, and a network interface connected by a system bus. Wherein the processor of the computer device is configured to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system, computer programs, and a database. The internal memory provides an environment for the operation of the operating system and computer programs in the non-volatile storage media. The database of the computer device is used for storing preset data. The network interface of the computer device is used for communicating with an external terminal through a network connection. The computer program, when executed by a processor, implements a method for extracting keypoints in a 3D model.
It will be appreciated by those skilled in the art that the structure shown in FIG. 5 is merely a block diagram of some of the structures associated with the present inventive arrangements and is not limiting of the computer device to which the present inventive arrangements may be applied, and that a particular computer device may include more or fewer components than shown, or may combine some of the components, or have a different arrangement of components.
In one embodiment, a computer device is provided, including a memory and a processor, where the memory stores a computer program, and the processor implements the method for extracting key points in the 3D model when the processor executes the computer program.
In one embodiment, a computer readable storage medium is provided having a computer program stored thereon, which when executed by a processor implements a method of keypoint extraction in a 3D model.
In one embodiment, a computer program product is provided, comprising a computer program which, when executed by a processor, implements a method of keypoint extraction in a 3D model.
The user information (including but not limited to user equipment information, user personal information, etc.) and the data (including but not limited to data for analysis, stored data, presented data, etc.) related to the present application are information and data authorized by the user or sufficiently authorized by each party.
Those skilled in the art will appreciate that implementing all or part of the above-described methods may be accomplished by way of a computer program stored on a non-transitory computer readable storage medium, which when executed may comprise the steps of the embodiments of the methods described above. Any reference to memory, database, or other medium used in embodiments provided herein may include at least one of non-volatile and volatile memory. The nonvolatile Memory may include Read-Only Memory (ROM), magnetic tape, floppy disk, flash Memory, optical Memory, high density embedded nonvolatile Memory, resistive random access Memory (ReRAM), magneto-resistive random access Memory (Magnetoresistive RandomAccess Memory, MRAM), ferroelectric Memory (Ferroelectric RandomAccess Memory, FRAM), phase change Memory (PHASE CHANGE Memory, PCM), graphene Memory, and the like. Volatile memory can include random access memory (RandomAccess Memory, RAM) or external cache memory, and the like. By way of illustration, and not limitation, RAM can be in various forms such as static random access memory (Static RandomAccess Memory, SRAM) or dynamic random access memory (Dynamic RandomAccess Memory, DRAM), etc. The databases referred to in the embodiments provided herein may include at least one of a relational database and a non-relational database. The non-relational database may include, but is not limited to, a blockchain-based distributed database, and the like. The processor referred to in the embodiments provided in the present application may be a general-purpose processor, a central processing unit, a graphics processor, a digital signal processor, a programmable logic unit, a data processing logic unit based on quantum computing, or the like, but is not limited thereto.
The technical features of the above embodiments may be arbitrarily combined, and all possible combinations of the technical features in the above embodiments are not described for brevity of description, however, as long as there is no contradiction between the combinations of the technical features, they should be considered as the scope of the description.
The foregoing examples illustrate only a few embodiments of the application, which are described in detail and are not to be construed as limiting the scope of the application. It should be noted that it will be apparent to those skilled in the art that several variations and modifications can be made without departing from the spirit of the application, which are all within the scope of the application. Accordingly, the scope of the application should be assessed as that of the appended claims.
Claims (10)
1. The method for extracting the key points in the 3D model is characterized by comprising the following steps of:
acquiring point cloud data of a 3D model;
Randomly selecting any point in the point cloud data as a key point based on a preset target, and calculating a normal vector of the key point;
Searching normal vectors of other points perpendicular to the normal vector in the point cloud data to obtain a group of contour points;
And calculating descriptors of the key points according to the angle values of the key points and the contour points.
2. The method of claim 1, wherein randomly selecting any point in the point cloud data as a keypoint based on a preset target, and calculating a normal vector for the keypoint comprises:
Randomly selecting any point in the point cloud data as a key point;
identifying neighboring points of the key points, and constructing a covariance matrix based on the neighboring points;
and decomposing the covariance matrix, and calculating to obtain the normal vector of the key point.
3. The method of claim 2, wherein the identifying neighboring points of the keypoint and constructing a covariance matrix based on the neighboring points comprises:
Determining the key point and centroid points of a plurality of adjacent points of the key point;
Calculating the maximum distance from the key point in the plurality of adjacent points, and taking the maximum distance as a Gaussian weight;
and constructing and obtaining a covariance matrix based on the plurality of adjacent points, the centroid points and the Gaussian weights.
4. The method of claim 2, wherein said decomposing the covariance matrix, and calculating a normal vector for the keypoint comprises:
Performing eigenvalue decomposition on the covariance matrix to obtain a plurality of eigenvalues and eigenvectors corresponding to the eigenvalues;
And determining a feature vector corresponding to the minimum feature value in the plurality of feature values, and taking the determined feature vector as a normal vector of the key point.
5. The method of claim 1, wherein calculating the descriptors of the keypoints from the angle values of the keypoints and the contour points comprises:
calculating the distance and angle value between the key point and the contour point, and respectively obtaining a distance sequence and an angle sequence of the contour point around the key point;
and forming descriptors of the key points based on the distance sequence and the angle sequence.
6. The method of claim 1, wherein the number of preset targets is a plurality;
The method further comprises the steps of:
searching the contour points of different preset targets by using vertical normal vector points to determine the searching radius of the different preset targets;
and searching normal vectors of other points perpendicular to the normal vector in the point cloud data based on the searching radius of the preset target.
7. A device for extracting key points in a 3D model, the device comprising:
the data acquisition module is used for acquiring point cloud data of the 3D model;
the normal vector calculation module is used for randomly selecting any point in the point cloud data as a key point based on a preset target and calculating the normal vector of the key point;
the contour searching module is used for searching normal vectors of other points perpendicular to the normal vector in the point cloud data to obtain a group of contour points;
And the calculation module is used for calculating descriptors of the key points according to the angle values of the key points and the contour points.
8. A computer device comprising a memory and a processor, the memory storing a computer program, characterized in that the processor implements the steps of the method of any of claims 1 to 6 when the computer program is executed.
9. A computer readable storage medium, on which a computer program is stored, characterized in that the computer program, when being executed by a processor, implements the steps of the method of any of claims 1 to 6.
10. A computer program product comprising a computer program, characterized in that the computer program, when being executed by a processor, implements the steps of the method of any of claims 1 to 6.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410347324.6A CN118229995A (en) | 2024-03-26 | 2024-03-26 | Method, device, computer equipment and medium for extracting key points in 3D model |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410347324.6A CN118229995A (en) | 2024-03-26 | 2024-03-26 | Method, device, computer equipment and medium for extracting key points in 3D model |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118229995A true CN118229995A (en) | 2024-06-21 |
Family
ID=91510672
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410347324.6A Pending CN118229995A (en) | 2024-03-26 | 2024-03-26 | Method, device, computer equipment and medium for extracting key points in 3D model |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118229995A (en) |
-
2024
- 2024-03-26 CN CN202410347324.6A patent/CN118229995A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6216508B2 (en) | Method for recognition and pose determination of 3D objects in 3D scenes | |
US20110286628A1 (en) | Systems and methods for object recognition using a large database | |
JP5261501B2 (en) | Permanent visual scene and object recognition | |
CN111179433A (en) | Three-dimensional modeling method and device for target object, electronic device and storage medium | |
Sveier et al. | Object detection in point clouds using conformal geometric algebra | |
CN116246119A (en) | 3D target detection method, electronic device and storage medium | |
CN112017219B (en) | Laser point cloud registration method | |
Paradowski et al. | Local keypoints and global affine geometry: Triangles and ellipses for image fragment matching | |
Günen et al. | Comparison of point cloud filtering methods with data acquired by photogrammetric method and RGB-D sensors | |
Nguyen et al. | Focustune: Tuning visual localization through focus-guided sampling | |
Srivastava et al. | Drought stress classification using 3D plant models | |
Siritanawan et al. | 3d feature points detection on sparse and non-uniform pointcloud for slam | |
CN118229995A (en) | Method, device, computer equipment and medium for extracting key points in 3D model | |
CN111414802B (en) | Protein data characteristic extraction method | |
Hlubik et al. | Advanced point cloud estimation based on multiple view geometry | |
Mei et al. | A new spin-image based 3D Map registration algorithm using low-dimensional feature space | |
Pham et al. | Feature descriptors: A review of multiple cues approaches | |
Al-Temeemy et al. | Invariant chromatic descriptor for LADAR data processing | |
Sales et al. | 3D shape descriptor for objects recognition | |
Rozsa et al. | Exploring in partial views: Prediction of 3D shapes from partial scans | |
Graehling et al. | FEAR: feature extraction for aerial registration in large-scale LiDAR point clouds | |
CN113543307B (en) | Visual information feature fingerprint database construction method, positioning method and device | |
Ali et al. | A Comparative Survey on 3D Models Retrieval Methods | |
Guodong et al. | A stereo vision tracking algorithm based on 3-dimensional delaunay triangulation | |
Kabbour et al. | Human ear surface reconstruction through morphable model deformation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |