CN116777961A - Parallelization point cloud registration method using KD tree search - Google Patents

Parallelization point cloud registration method using KD tree search Download PDF

Info

Publication number
CN116777961A
CN116777961A CN202310757773.3A CN202310757773A CN116777961A CN 116777961 A CN116777961 A CN 116777961A CN 202310757773 A CN202310757773 A CN 202310757773A CN 116777961 A CN116777961 A CN 116777961A
Authority
CN
China
Prior art keywords
point
point cloud
tree
node
matrix
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
Application number
CN202310757773.3A
Other languages
Chinese (zh)
Inventor
卞开春
李明
王嘉琛
吴言安
袁斌
叶周润
张树峰
崔浩
谢荣晖
李静
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Anhui Kaiyuan Highway And Bridge Co ltd
Hefei University of Technology
China Coal No 3 Construction Group Co Ltd
Original Assignee
Anhui Kaiyuan Highway And Bridge Co ltd
Hefei University of Technology
China Coal No 3 Construction Group Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Anhui Kaiyuan Highway And Bridge Co ltd, Hefei University of Technology, China Coal No 3 Construction Group Co Ltd filed Critical Anhui Kaiyuan Highway And Bridge Co ltd
Priority to CN202310757773.3A priority Critical patent/CN116777961A/en
Publication of CN116777961A publication Critical patent/CN116777961A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • G06T7/33Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/005Tree description, e.g. octree, quadtree
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds

Abstract

The invention relates to the technical field of civil engineering construction, and discloses a parallelization point cloud registration method using KD tree search, which comprises the following steps: firstly, reading point cloud data at a CPU end, and constructing a KD tree building function; opening up a memory space required by the point cloud at the GPU end, and transmitting data into the GPU by the CPU; searching corresponding points of the two point clouds in parallel by utilizing a KD tree at the GPU side; and step four, calculating a rotation translation matrix by an SVD method, transforming the source point cloud, and finishing iteration when the maximum iteration number or the distance threshold is met, otherwise, returning to the step three. The method can save a large amount of time in massive point cloud data registration, and provides a basis for subsequent point cloud processing work. The realization of the process is based on the GPU and the CUDA, the computing capability of the graphics processor can be fully exerted, a more efficient and accurate solution is provided for point cloud registration, and powerful support is provided for research and application in the related field.

Description

Parallelization point cloud registration method using KD tree search
Technical Field
The invention relates to the technical field of civil engineering construction, in particular to a parallelization point cloud registration method using KD tree search.
Background
The infrastructure is an important guarantee for the production and life of countries and people, such as roads, bridges, tunnels and the like. However, if these infrastructures are not managed effectively in time, security accidents may occur, which pose serious threats to lives and properties of people. Therefore, the construction and maintenance of the infrastructure requires a lot of resources such as manpower, material resources, financial resources, and the like. The reasonable utilization and management of the resources can reduce the cost, improve the efficiency and provide better support for the economic development. Conventional infrastructure management methods include visual inspection and model analysis, and although these methods have advantages and disadvantages, they all have problems of being subjective, not being fully detectable, requiring specialized skills, and the like. Modern technologies such as point cloud registration, machine learning, etc. are indispensable tools in order to improve the accuracy and efficiency of infrastructure management. Point cloud registration plays an important role in infrastructure management. For example, in road maintenance, laser scanners may be used to measure different parts of the road, and then point cloud registration techniques are used to integrate the measurement data to check the condition of the road and the parts that need maintenance. The ICP algorithm is used as the most classical point cloud registration algorithm, and can realize high-precision registration under certain conditions. However, the algorithm time complexity increases exponentially with the increase of the point cloud point number, and a great deal of time is required to be consumed in the registration of massive point clouds at present. In view of the above, infrastructure management is an important task, and management accuracy and efficiency are required to be continuously improved by means of modern technologies. The application of the point cloud registration, machine learning and other technologies can provide more accurate and comprehensive data support for infrastructure management and better service for production and life of people.
The ICP algorithm is used for giving a source point cloud P and a target point cloud Q; p is p i Is the point in P, find its corresponding point Q on the point cloud Q i The rotation matrix R and the translation matrix T are calculated, so that the Euclidean distance of the corresponding point pair is minimum, and the Euclidean distance dist is shown as (1.1).
R and T are required to satisfy the f (R, T) value minimum shown in the formula (1.2), and iterative operation is performed on the series of steps until a preset stop iteration condition is satisfied.
In the formula (1.2), f (R, T) is an objective function, which represents each point in the set after the rotation and translation of the source point cloud P and a point Q in the target point cloud Q i Squared sum of Euclidean distances, N p Corresponding to two point clouds. Generally, parameters e and N are set, e is a registration error threshold, N is the maximum iteration number, and when the error is smaller than e or the iteration number reaches N during registration, the registration is stopped. The specific flow is as follows:
(1) Point set P is fetched from source point cloud P i ∈P;
(2) Point collection Q in target point cloud Q i E Q, the two-point relationship of which satisfies p i -q i 2 =min;
(3) The rotation matrix R and the translation matrix T are calculated through the relation between the closest points, thereby meeting the following conditions
(4) P pair of i Using a transformation matrix meeting the condition in the step (3) to enable the source point cloud to obtain a new position;
(5) Calculating a registration error;
(6) And (3) stopping registration when the error is smaller than e or the iteration number reaches N during registration, outputting a final transformation matrix, otherwise returning to the step (2) until a given condition is met.
In this way, after each iteration, the corresponding points in the point cloud P and the point cloud Q are more and more close to overlap, and finally, a complete point cloud model is obtained. This is the basic idea of ICP, but conventional ICP algorithms require point-by-point traversal of point cloud data, which is inefficient.
Meanwhile, with the development of the GPU in recent years, the computing capability of the GPU is greatly improved, the traditional graphic computing can be processed, and the method is widely applied to the parallel computing of data. The unified computing device architecture (CUDA) of NVIDIA corporation can effectively address some complex computations.
Under the architecture of CUDA, a program can be divided into two parts, namely a Host (Host) end for controlling and managing the CUDA program and a Device (Device) end for executing a CUDA kernel function.
A thread (thread) is the smallest unit of a compute chip under the CUDA architecture. A thread runs a particular code segment and has access to its own registers and local memory. A block (block) is a thread group that is composed of multiple threads, all threads within a block share the same block of memory, and may cooperate through a synchronization mechanism. Grid (grid) is a two-dimensional grid of thread blocks. A grid is made up of a plurality of blocks, with different blocks being able to communicate with each other. Different grids may then execute different programs (i.e., kernel). The structure of the thread-block-grid is shown in fig. 6.
And the parallel program flow is as follows: the Host end firstly reads data, then opens up a required memory space in the GPU, copies the memory space into the memory of the GPU, then executes a Device end program by the GPU, returns an operation result to the Host end after execution is completed, and finally releases the memory opened by the GPU.
The scheme is based on the method, and is applied to point cloud registration to solve the problem that the efficiency of the traditional ICP algorithm in the point cloud registration work is low at present.
Disclosure of Invention
The invention provides a parallelization point cloud registration method using KD tree search, which aims to solve the technical problems that point-by-point traversal is needed for traversing point cloud data by a traditional ICP algorithm and the traversing mode is low in efficiency.
The invention is realized by adopting the following technical scheme: a method for parallelized point cloud registration using KD-tree search, comprising the steps of:
firstly, reading point cloud data at a CPU end, and constructing a KD tree building function;
opening up memory space required by the point cloud and the KD tree at the GPU end, and transmitting data from the CPU to the GPU;
searching corresponding points of the two point clouds in parallel by utilizing a KD tree at the GPU side;
and step four, calculating a rotation translation matrix by an SVD method, transforming the source point cloud, completing iteration when the maximum iteration times are met or the distance threshold is met, otherwise returning to the step three, and finally transmitting the registered point cloud data back to the CPU by the GPU and releasing the memory space opened by the GPU.
In the step 1:
firstly, reading point cloud data at a CPU (central processing unit) end, constructing a KD (key distribution) tree building function, writing codes by using C++ language, receiving a vector for storing a point set, a starting position and an ending position of the point set, an index of a current node, storing the vector and the current depth of the KD tree node as parameters, and dividing the point set into two subsets in a recursion mode, wherein each subset is a smaller KD tree;
the code sorts the point sets first according to the dimension of the current depth, then selects the intermediate point as the parent node and adds it to the KD-tree, then recursively performs the same operation on the left and right subtrees until all points are added to the KD-tree.
Nearest neighbor searching using a KD-tree follows the following steps: assuming that the query point is q, firstly, calculating and recording the distance between the point q and each node on the tree from the root node of the tree, and then recursively comparing the points down the tree until the leaf nodes;
in the process, the value of the query point q in the k dimension is required to be compared with the value m of the dimension corresponding to the current node, q (k) is used for representing the value of the query point q in the k dimension, if q (k) < m, a left subtree is entered, and otherwise, a right subtree is entered;
when the query point q reaches the leaf node, the distance between q and the leaf node needs to be calculated, and then the node closest to the query point q is recorded as the current nearest neighbor point and is recorded as p cur And record the minimum distance as d cur
The nearest neighbor searching by utilizing the KD tree further comprises backtracking operation, and the aim is that: finding out whether a node which is closer to the query point q than the current nearest neighbor point exists in the nodes which are not subjected to distance comparison;
specifically, a branch node is found that may have an uncompared distance closer to the point q than its parent node, which may be less than a given distance d from the point q cur And marks it as a potentially smaller branch. To determine whether or not there is a branchPoint p which is closer than the current nearest neighbor point 0 When the branch node is entered for comparison, if a more recent node exists, the current nearest neighbor point is updated to be p cur And update the distance to d cur . If the distance between the point q and the branch which is not compared under the father node is greater than d cur It can be considered that there is no point in the branch that is closer than point q. The entire traceback operation is performed from bottom to top until the root node is traced back or there is no branch closer to point p.
In the step 4, the rotation translation matrix is calculated by Singular Value Decomposition (SVD), which is a method commonly used for solving the matrix in the point cloud registration process, and the centroid m of the source point cloud P and the target point cloud Q is calculated first p 、m q And covariance matrix sigma (P, Q), see formulas (1.3), (1.4), (1.5);
after the covariance matrix is obtained, singular value decomposition E=UΛV is carried out on the covariance matrix T . Where U, V is an orthogonal matrix of 3*3, Λ is a diagonal matrix composed of covariance matrix eigenvalues, then the rotation matrix R and translation matrix T can be represented as shown in (1.6), (1.7):
R=UV T (1.6)
T=m p -Rm q (1.7)
transforming the source point cloud, wherein r×p+t represents a transformation process of rotation and translation from the source point cloud, and the transformation process needs to be completed by using a three-dimensional projective transformation matrix H, as shown in formula (1.8):
h can be simplified intoFor rotation matrix, t= [ T ] x t y t z ] T For rotation matrix, v= [ V ] x v y v z ]For perspective variable, s is a scaling factor, the patent researches a non-scaling rigid point cloud, so that perspective transformation is 0, and the scaling factor s=1, and the transformation matrix H is +.>
The rotation matrix can be expressed as the form of formula (1.9) when the rotation angles of the point cloud data along the X, Y, Z axis are alpha, beta and gamma respectively
And finishing iteration when the maximum iteration times are met or the distance threshold is met, otherwise, returning to the step of searching the corresponding points, and finally transmitting the registered point cloud data from the GPU to the CPU and releasing the memory space opened by the GPU.
Compared with the prior art, the invention has the beneficial effects that:
the point cloud ICP precision registration using KD tree search based on the GPU and the CUDA has the same precision as the traditional ICP algorithm, and can save a large amount of time and improve the registration efficiency.
The invention can save a great deal of time in massive point cloud data registration by using the parallelization point cloud registration flow, and provides a basis for the subsequent point cloud processing work. The realization of the process is based on the GPU and the CUDA, the computing capability of the graphics processor can be fully exerted, a more efficient and accurate solution is provided for point cloud registration, and powerful support is provided for research and application in the related field.
Compared with the traditional ICP algorithm, which needs to traverse all points in two point clouds, the process is the longest time-consuming in the traditional ICP algorithm, and the traversing efficiency of points by using a CPU only for the point clouds with large data volume is too low. Therefore, the calculation time consumption can be greatly reduced by calling a plurality of calculation cores of the GPU to calculate at the same time, and the ICP registration process can be accelerated by adopting the GPU.
Drawings
FIG. 1 is a diagram of the KD tree structure used in the present invention;
FIG. 2 is a schematic diagram of point clouds before registration, blue being the target point cloud and red being the source point cloud;
fig. 3 is a schematic diagram of a registered point cloud, red being the registered point cloud, and blue being the target point cloud;
FIG. 4 is a schematic diagram of registration time consumption at different point cloud numbers;
FIG. 5 is a flow chart of the present solution;
fig. 6 is a thread-block-grid block diagram.
Detailed Description
The present invention will be further described with reference to the accompanying drawings and detailed description, wherein it is to be understood that, on the premise of no conflict, the following embodiments or technical features may be arbitrarily combined to form new embodiments.
Example 1:
a method for parallelized point cloud registration using KD-tree search, comprising the steps of:
firstly, reading point cloud data at a CPU end, and constructing a KD tree building function;
opening up memory space required by the point cloud and the KD tree at the GPU end, and transmitting data from the CPU to the GPU;
searching corresponding points of the two point clouds in parallel by utilizing a KD tree at the GPU side;
and step four, calculating a rotation translation matrix by an SVD method, transforming the source point cloud, completing iteration when the maximum iteration times are met or the distance threshold is met, otherwise returning to the step three, and finally transmitting the registered point cloud data back to the CPU by the GPU and releasing the memory space opened by the GPU.
In the step 1:
firstly, reading point cloud data at a CPU (central processing unit) end, constructing a KD (key distribution) tree building function, writing codes by using C++ language, receiving a vector for storing a point set, a starting position and an ending position of the point set, an index of a current node, storing the vector and the current depth of the KD tree node as parameters, and dividing the point set into two subsets in a recursion mode, wherein each subset is a smaller KD tree;
the code sorts the point sets first according to the dimension of the current depth, then selects the intermediate point as the parent node and adds it to the KD-tree, then recursively performs the same operation on the left and right subtrees until all points are added to the KD-tree.
Nearest neighbor searching using a KD-tree follows the following steps: assuming that the query point is q, firstly, calculating and recording the distance between the point q and each node on the tree from the root node of the tree, and then recursively comparing the points down the tree until the leaf nodes;
in the process, the value of the query point q in the k dimension is required to be compared with the value m of the dimension corresponding to the current node, q (k) is used for representing the value of the query point q in the k dimension, if q (k) < m, a left subtree is entered, and otherwise, a right subtree is entered;
when the query point q reaches the leaf node, the distance between q and the leaf node needs to be calculated, and then the node closest to the query point q is recorded as the current nearest neighbor point and is recorded as p cur And record the minimum distance as d cur
The nearest neighbor searching by utilizing the KD tree further comprises backtracking operation, and the aim is that: finding out whether a node which is closer to the query point q than the current nearest neighbor point exists in the nodes which are not subjected to distance comparison;
specifically, the distance between the search and the branch node which is not compared with the distance under the point q and the parent node may be smaller than d cur To determine whether there is a point p in the branch that is closer than the current nearest neighbor point 0 When the branch node is entered for comparison, if a more recent node exists, the current nearest neighbor is updatedThe point is p cur And update the distance to d cur . If the distance between the point q and the branch which is not compared under the father node is greater than d cur It can be considered that there is no point in the branch that is closer than point q. The entire traceback operation is performed from bottom to top until the root node is traced back or there is no branch closer to point p.
In the step 4, the rotation translation matrix is calculated by Singular Value Decomposition (SVD), which is a method commonly used for solving the matrix in the point cloud registration process, and the centroid m of the source point cloud P and the target point cloud Q is calculated first p 、m q And covariance matrix sigma (P, Q), see formulas (1.3), (1.4), (1.5);
after the covariance matrix is obtained, singular value decomposition E=UΛV is carried out on the covariance matrix T . Where U, V is an orthogonal matrix of 3*3, Λ is a diagonal matrix composed of covariance matrix eigenvalues, then the rotation matrix R and translation matrix T can be represented as shown in (1.6), (1.7):
R=UV T (1.6)
T=m p -Rm q (1.7)
transforming the source point cloud, wherein r×p+t represents a transformation process of rotation and translation from the source point cloud, and the transformation process needs to be completed by using a three-dimensional projective transformation matrix H, as shown in formula (1.8):
h can be simplified intoFor rotation matrix, t= [ T ] x t y t z ] T For rotation matrix, v= [ V ] x v y v z ]For perspective variable, s is a scaling factor, the patent researches a non-scaling rigid point cloud, so that perspective transformation is 0, and the scaling factor s=1, and the transformation matrix H is +.>
The rotation matrix can be expressed as the form of formula (1.9) when the rotation angles of the point cloud data along the X, Y, Z axis are alpha, beta and gamma respectively
And finishing iteration when the maximum iteration times are met or the distance threshold is met, otherwise, returning to the step of searching the corresponding points, and finally transmitting the registered point cloud data from the GPU to the CPU and releasing the memory space opened by the GPU.
The scheme makes experiments with the point cloud data in fig. 2 and 3.
In the figure: (a) an aircraft; (b) armadillo; (c) ancient architecture; (d) a component; (e) asian dragon; (f) road.
FIG. 2 is original point cloud data, wherein the red point cloud in FIG. 2 is a source point cloud, and the blue point cloud is a target point cloud;
the point cloud registered by the scheme is shown in fig. 3, wherein the red point cloud is the registered point cloud, and the blue point cloud is the target point cloud in fig. 3. It can be seen from fig. 3 that after fine registration, the corresponding points in the two point clouds tend to coincide significantly.
And the research shows that the point cloud registration data and the analysis result are shown in table 1.
And ICP registration time consuming with the registration time consuming of the improved algorithm herein is shown in fig. 4. As can be seen from fig. 4, the acceleration effect is not obvious when the number of points is small, and the acceleration of the improved algorithm is more obvious as the number of point clouds increases.
The above embodiments are only preferred embodiments of the present invention, and the scope of the present invention is not limited thereto, but any insubstantial changes and substitutions made by those skilled in the art on the basis of the present invention are intended to be within the scope of the present invention as claimed.

Claims (5)

1. A method for parallelizing point cloud registration using KD-tree searching, comprising the steps of:
firstly, reading point cloud data at a CPU end, and constructing a KD tree building function;
opening up memory space required by the point cloud and the KD tree at the GPU end, and transmitting data from the CPU to the GPU;
searching corresponding points of the two point clouds in parallel by utilizing a KD tree at the GPU side;
and step four, calculating a rotation translation matrix by an SVD method, transforming the source point cloud, completing iteration when the maximum iteration times are met or the distance threshold is met, otherwise returning to the step three, and finally transmitting the registered point cloud data back to the CPU by the GPU and releasing the memory space opened by the GPU.
2. The method for parallelized point cloud registration using KD-tree search of claim 1,
in the step 1:
firstly, reading point cloud data at a CPU (central processing unit) end, constructing a KD (key distribution) tree building function, writing codes by using C++ language, receiving a vector for storing a point set, a starting position and an ending position of the point set, an index of a current node, storing the vector and the current depth of the KD tree node as parameters, and dividing the point set into two subsets in a recursion mode, wherein each subset is a smaller KD tree;
the code sorts the point sets first according to the dimension of the current depth, then selects the intermediate point as the parent node and adds it to the KD-tree, then recursively performs the same operation on the left and right subtrees until all points are added to the KD-tree.
3. The method for parallelized point cloud registration using KD-tree search of claim 1,
nearest neighbor searching using a KD-tree follows the following steps: assuming that the query point is q, firstly, calculating and recording the distance between the point q and each node on the tree from the root node of the tree, and then recursively comparing the points down the tree until the leaf nodes;
in the process, the value of the query point q in the k dimension is required to be compared with the value m of the dimension corresponding to the current node, q (k) is used for representing the value of the query point q in the k dimension, if q (k) < m, a left subtree is entered, and otherwise, a right subtree is entered;
when the query point q reaches the leaf node, the distance between q and the leaf node needs to be calculated, and then the node closest to the query point q is recorded as the current nearest neighbor point and is recorded as p cur And record the minimum distance as d cur
4. The method of parallelized point cloud registration using KD-tree search of claim 3,
the nearest neighbor searching by utilizing the KD tree further comprises backtracking operation, and the aim is that: finding out whether a node which is closer to the query point q than the current nearest neighbor point exists in the nodes which are not subjected to distance comparison;
specifically, the distance between the search and the branch node which is not compared with the distance under the point q and the parent node may be smaller than d cur To determine whether there is a point p in the branch that is closer than the current nearest neighbor point 0 When the branch node is entered for comparison, if a more recent node exists, the current nearest neighbor point is updated to be p cur And update the distance to d cur . If the distance between the point q and the branch under the parent node which is not compared is greater thand cur It can be considered that there is no point in the branch that is closer than point q. The entire traceback operation is performed from bottom to top until the root node is traced back or there is no branch closer to point p.
5. The method for parallelizing point cloud registration by KD-tree search according to claim 1, wherein in step 4, the rotation translation matrix is calculated by Singular Value Decomposition (SVD), which is a method commonly used for solving matrices in point cloud registration, and the centroid m of the source point cloud P and the target point cloud Q is calculated first p 、m q And covariance matrix sigma (P, Q), see formulas (1.3), (1.4), (1.5);
after the covariance matrix is obtained, singular value decomposition E=UΛV is carried out on the covariance matrix T . Where U, V is an orthogonal matrix of 3*3, Λ is a diagonal matrix composed of covariance matrix eigenvalues, then the rotation matrix R and translation matrix T can be represented as shown in (1.6), (1.7):
R=UV T (1.6)
T=m p -Rm q (1.7)
transforming the source point cloud, wherein r×p+t represents a transformation process of rotation and translation from the source point cloud, and the transformation process needs to be completed by using a three-dimensional projective transformation matrix H, as shown in formula (1.8):
h can be simplified into For rotation matrix, t= [ T ] x t y t z ] T For rotation matrix, v= [ V ] x v y v z ]For perspective variable, s is a scaling factor, the patent researches a non-scaling rigid point cloud, so that perspective transformation is 0, and the scaling factor s=1, and the transformation matrix H is +.>
The rotation matrix can be expressed as the form of formula (1.9) when the rotation angles of the point cloud data along the X, Y, Z axis are alpha, beta and gamma respectively
And finishing iteration when the maximum iteration number is met or the distance threshold is met, otherwise, returning to the step of searching the corresponding point.
CN202310757773.3A 2023-06-26 2023-06-26 Parallelization point cloud registration method using KD tree search Pending CN116777961A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310757773.3A CN116777961A (en) 2023-06-26 2023-06-26 Parallelization point cloud registration method using KD tree search

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310757773.3A CN116777961A (en) 2023-06-26 2023-06-26 Parallelization point cloud registration method using KD tree search

Publications (1)

Publication Number Publication Date
CN116777961A true CN116777961A (en) 2023-09-19

Family

ID=88007720

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310757773.3A Pending CN116777961A (en) 2023-06-26 2023-06-26 Parallelization point cloud registration method using KD tree search

Country Status (1)

Country Link
CN (1) CN116777961A (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105976312A (en) * 2016-05-30 2016-09-28 北京建筑大学 Point cloud automatic registering method based on point characteristic histogram
CN109559340A (en) * 2018-11-29 2019-04-02 东北大学 A kind of parallel three dimensional point cloud automation method for registering
CN110070567A (en) * 2019-04-28 2019-07-30 中铁七局集团有限公司 A kind of ground laser point cloud method for registering
US20190355152A1 (en) * 2017-07-28 2019-11-21 Peking University Shenzen Graduate School Point cloud attribute compression method based on kd tree and optimized graph transformation
CN114677418A (en) * 2022-04-18 2022-06-28 南通大学 Registration method based on point cloud feature point extraction
CN114779264A (en) * 2022-03-15 2022-07-22 南京航空航天大学 Laser radar positioning method based on ICP (inductively coupled plasma) and KD (K-dimensional) trees
CN115797414A (en) * 2022-10-31 2023-03-14 西北工业大学 Complex curved surface measurement point cloud data registration method considering measuring head radius

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105976312A (en) * 2016-05-30 2016-09-28 北京建筑大学 Point cloud automatic registering method based on point characteristic histogram
US20190355152A1 (en) * 2017-07-28 2019-11-21 Peking University Shenzen Graduate School Point cloud attribute compression method based on kd tree and optimized graph transformation
CN109559340A (en) * 2018-11-29 2019-04-02 东北大学 A kind of parallel three dimensional point cloud automation method for registering
CN110070567A (en) * 2019-04-28 2019-07-30 中铁七局集团有限公司 A kind of ground laser point cloud method for registering
CN114779264A (en) * 2022-03-15 2022-07-22 南京航空航天大学 Laser radar positioning method based on ICP (inductively coupled plasma) and KD (K-dimensional) trees
CN114677418A (en) * 2022-04-18 2022-06-28 南通大学 Registration method based on point cloud feature point extraction
CN115797414A (en) * 2022-10-31 2023-03-14 西北工业大学 Complex curved surface measurement point cloud data registration method considering measuring head radius

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘泽伟: ""三维散乱点云配准理论与灰狼 ICP 算法研究"", 《中国优秀硕士学位论文全文数据库 信息科技辑》, pages 2 *

Similar Documents

Publication Publication Date Title
CN106709503B (en) Large-scale spatial data clustering algorithm K-DBSCAN based on density
CN102915347A (en) Distributed data stream clustering method and system
CN109033340A (en) A kind of searching method and device of the point cloud K neighborhood based on Spark platform
CN110059264A (en) Location search method, equipment and the computer storage medium of knowledge based map
CN102682089A (en) Method for data dimensionality reduction by identifying random neighbourhood embedding analyses
Wang et al. Fast gunrock subgraph matching (gsm) on gpus
CN106503811A (en) A kind of infrastructure full life cycle management method based on big data
CN110264392B (en) Strong connection graph detection method based on multiple GPUs
Chaturvedi et al. An improvement in K-mean clustering algorithm using better time and accuracy
Meyer et al. Warp-centric k-nearest neighbor graphs construction on GPU
Xie et al. Scalable clustering by aggregating representatives in hierarchical groups
Sui et al. Learning 3-opt heuristics for traveling salesman problem via deep reinforcement learning
CN117009038B (en) Graph computing platform based on cloud native technology
Chen et al. DBSCAN-PSM: an improvement method of DBSCAN algorithm on Spark
CN116777961A (en) Parallelization point cloud registration method using KD tree search
CN112163641A (en) High-dimensional data visualization method based on probability multi-level graph structure
Müller et al. Extracting knowledge from life courses: Clustering and visualization
Böhm Space-filling curves for high-performance data mining
CN113609806B (en) Quantum circuit program general transformation method combining sub-graph isomorphism
Naitzat et al. M-Boost: Profiling and refining deep neural networks with topological data analysis
Zhu et al. Effective clustering analysis based on new designed clustering validity index and revised K-means algorithm for big data
Ma et al. Parallel exact inference on multicore using mapreduce
Mulesa et al. Development of the group problem solving method in designing traffic flows
Dabah et al. Efficient parallel branch-and-bound approaches for exact graph edit distance problem
Ma et al. A succinct distributive big data clustering algorithm based on local-remote coordination

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