CN114283046A - Point cloud file registration method and device based on ICP algorithm and storage medium - Google Patents

Point cloud file registration method and device based on ICP algorithm and storage medium Download PDF

Info

Publication number
CN114283046A
CN114283046A CN202111408323.0A CN202111408323A CN114283046A CN 114283046 A CN114283046 A CN 114283046A CN 202111408323 A CN202111408323 A CN 202111408323A CN 114283046 A CN114283046 A CN 114283046A
Authority
CN
China
Prior art keywords
point cloud
registration
target point
variable
icp algorithm
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.)
Granted
Application number
CN202111408323.0A
Other languages
Chinese (zh)
Other versions
CN114283046B (en
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.)
Guangzhou Urban Planning Survey and Design Institute
Original Assignee
Guangzhou Urban Planning Survey and Design Institute
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 Guangzhou Urban Planning Survey and Design Institute filed Critical Guangzhou Urban Planning Survey and Design Institute
Priority to CN202111408323.0A priority Critical patent/CN114283046B/en
Publication of CN114283046A publication Critical patent/CN114283046A/en
Application granted granted Critical
Publication of CN114283046B publication Critical patent/CN114283046B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Processing (AREA)
  • Multi Processors (AREA)

Abstract

The invention discloses a point cloud file registration method based on an ICP (inductively coupled plasma) algorithm, which comprises the following steps of: acquiring a point cloud file set and starting a plurality of processes; dividing the point cloud file set into a plurality of point cloud segments, and sequentially pre-allocating the point cloud segments to corresponding processes; creating a shared memory containing a first variable and a second variable, and initializing the shared memory; respectively scheduling an idle GPU or a CPU in each process in real time to execute an ICP algorithm according to the first variable, and registering the target point cloud in each process through the ICP algorithm to obtain a point cloud file after registration; when any process finishes the registration of all the distributed target point clouds in advance, the point cloud section with the maximum number of the unregistered target point clouds is searched through the second variable, the unregistered target point clouds in the point cloud section are dynamically distributed to the idle process for registration, and therefore the parallelization degree of the registration of the series point cloud files, the utilization rate of computing resources and the efficiency of the parallel registration of the point cloud files can be improved.

Description

Point cloud file registration method and device based on ICP algorithm and storage medium
Technical Field
The invention relates to the technical field of signal processing, in particular to a point cloud file registration method and device based on an ICP (inductively coupled plasma) algorithm and a computer readable storage medium.
Background
At present, the method for registering a point cloud file set icp (iterative close point) mainly includes: a series point cloud file serial ICP registration algorithm and an ICP parallel algorithm. Serial ICP registration algorithm for series point cloud files: a Point cloud file library (PCL) provides a gradual matching scheme for every two Point cloud files, and the idea is to transform all the Point cloud files and finally unify all the Point cloud files into a coordinate system of a source Point cloud. ICP parallel algorithm: ICP parallel acceleration between two point cloud files is mainly studied, the idea being to use a GPU or multiple processor cores (the cores of a CPU) to perform parallel acceleration of certain steps in the ICP algorithm.
However, the two registration algorithms mentioned above are to use CPU + GPU or multiple CPU cores to perform accelerated registration on two continuous point cloud files in sequence, that is, only after completing the accelerated registration of a certain pair of continuous point cloud files, the accelerated registration of another pair of continuous point cloud files will be started, and the prior art mainly has two disadvantages:
1. the parallelization degree is insufficient, the prior art focuses on the parallel registration between two point cloud files, mainly accelerates certain steps of an ICP algorithm, is one-level parallel, has low parallel level, and is insufficient relative to the high-level point cloud file set registration.
2. The utilization rate of the computing resources of the computer is low, and the prior art mainly uses a CPU + GPU mode or a plurality of CPU kernel modes for parallel acceleration, so that the computing resources of the computer cannot be fully utilized. (1) The existing CPU + GPU mode is used for carrying out GPU acceleration on a part which is suitable for GPU acceleration in an ICP algorithm, and the rest part of the algorithm still keeps the serial running of a CPU. When the CPU serial execution is carried out, the computer only starts one CPU kernel for calculation, and the rest CPU kernels and the GPU are in an idle state; after serial execution of the CPU part is finished, the computer starts the GPU to accelerate the parallel part, all CPU kernels in the computer enter an idle or waiting state, namely in the whole registration process, the CPU and the GPU are asynchronous, only 1 CPU kernel or GPU runs at the same time, and the computing resources of the computer cannot be fully used. (2) The existing parallel mode of a plurality of CPU cores is used for paralleling a part which is suitable for multi-core paralleling in the ICP algorithm, and the rest part of the algorithm still keeps the serial running of the CPUs. Similarly, when the CPU serial execution is carried out, only one CPU kernel of the computer is in computation at the same time, and the rest CPU kernels and the GPU are in an idle state; when a plurality of CPU kernels are executed in parallel, the GPU of the computer is in an idle state, and the computing resources of the computer are not fully utilized.
Disclosure of Invention
The embodiment of the invention provides a point cloud file registration method and device based on an ICP (inductively coupled plasma) algorithm and a computer readable storage medium, which can improve the parallelization degree of series point cloud file registration, the utilization rate of computing resources and the efficiency of point cloud file parallelization registration.
In order to achieve the above object, an embodiment of the present invention provides a point cloud file registration method based on an ICP algorithm, including:
acquiring a point cloud file set, and starting a plurality of processes through a message transmission interface; the point cloud file set comprises 1 source point cloud and k target point clouds to be registered;
dividing the point cloud file set into a plurality of point cloud sections, and sequentially pre-distributing the point cloud sections to the corresponding processes;
creating a shared memory containing 1 first variable and k second variables, and initializing the shared memory; the first variable corresponds to the number of idle GPUs, and the second variable corresponds to the registration condition of the target point cloud one by one;
respectively scheduling an idle GPU or a CPU in each process in real time to execute an ICP algorithm according to the first variable, and registering the target point cloud in each process through the message transmission interface and the ICP algorithm to obtain k registered point cloud files;
when any one process finishes the registration of all the distributed target point clouds in advance, the point cloud section with the maximum number of the unregistered target point clouds is searched through the second variable, and the unregistered target point clouds in the point cloud section are dynamically distributed to the idle process for registration.
As an improvement of the above scheme, the initializing the shared memory specifically includes:
initializing the value of the first variable to be N; wherein N is the number of the computer GPUs;
initializing the values of k of the second variables to 0.
As an improvement of the above scheme, the scheduling, in real time, an idle GPU or a CPU in each process to execute an ICP algorithm according to the first variable specifically includes:
when any process reads that the second variable is 0, scheduling a CPU to execute an ICP algorithm in real time;
and when any process reads that the second variable is not 0, scheduling the GPU to execute the ICP algorithm in real time.
As an improvement of the above scheme, the registering of the target point cloud in each process through the message transmission interface and the ICP algorithm to obtain k registered point cloud files specifically includes:
carrying out local registration on the target point cloud in each process through the ICP algorithm to obtain a local transformation matrix corresponding to each target point cloud;
collecting a local transformation matrix corresponding to each target point cloud through the message transmission interface, and converting each local transformation matrix through a preset conversion formula to obtain a global transformation matrix corresponding to each target point cloud;
and performing global registration on each target point cloud through the global transformation matrix corresponding to each target point cloud to obtain k registered point cloud files.
As an improvement of the above scheme, when any one of the processes completes the registration of all the allocated target point clouds in advance, the point cloud segment with the largest number of unregistered target point clouds is searched through the second variable, and the unregistered target point clouds in the point cloud segment are dynamically allocated to the idle process for registration, specifically:
when any one process finishes the local registration of all the distributed target point clouds in advance, searching a point cloud section with the maximum number of the target point clouds which are not locally registered through the second variable, and dynamically distributing the target point clouds which are not locally registered in the point cloud section to an idle process for local registration;
when any one process completes the global registration of all the allocated target point clouds in advance, the point cloud section with the maximum number of target point clouds which are not subjected to global registration is searched through the second variable, and the target point clouds which are not subjected to global registration in the point cloud section are allocated to the idle process again for global registration.
As an improvement of the above scheme, the preset conversion formula specifically includes:
Figure BDA0003365060270000041
wherein, TiFor the local transformation matrix corresponding to the ith target point cloud, GiAnd the transformation matrix is a global transformation matrix corresponding to the ith target point cloud.
As an improvement of the above solution, the i-th target point cloud is globally registered according to the following formula:
Oi=Qi*Gi(1≤i≤k);
wherein, OiFor the registered point cloud file corresponding to the ith target point cloud, QiFor the ith target point cloud, the point cloud is,Giand the transformation matrix is a global transformation matrix corresponding to the ith target point cloud.
In order to achieve the above object, an embodiment of the present invention correspondingly provides a point cloud file registration apparatus based on an ICP algorithm, including:
the data preprocessing module is used for acquiring a point cloud file set and starting a plurality of processes through a message transmission interface; the point cloud file set comprises 1 source point cloud and k target point clouds to be registered;
the data pre-distribution module is used for dividing the point cloud file set into a plurality of point cloud sections and sequentially pre-distributing the point cloud sections to the corresponding processes;
the shared data module is used for creating a shared memory containing 1 first variable and k second variables and initializing the shared memory; the first variable corresponds to the number of idle GPUs, and the second variable corresponds to the registration condition of the target point cloud one by one;
the point cloud registration module is used for scheduling an idle GPU or a CPU in each process in real time to execute an ICP algorithm according to the first variable, and registering the target point cloud in each process through the message transmission interface and the ICP algorithm to obtain k registered point cloud files;
and the dynamic allocation module is used for searching a point cloud section with the maximum number of unregistered target point clouds through the second variable when any one process finishes the allocation of all the allocated target point clouds in advance, and dynamically allocating the unregistered target point clouds in the point cloud section to an idle process for the allocation.
As an improvement of the above solution, the point cloud registration module includes:
the local registration unit is used for carrying out local registration on the target point clouds in each process through the ICP algorithm to obtain a local transformation matrix corresponding to each target point cloud;
the matrix transformation unit is used for collecting a local transformation matrix corresponding to each target point cloud through the message transmission interface and transforming each local transformation matrix through a preset transformation formula to obtain a global transformation matrix corresponding to each target point cloud;
and the global registration unit is used for carrying out global registration on each target point cloud through a global transformation matrix corresponding to each target point cloud to obtain k registered point cloud files.
In order to achieve the above object, an embodiment of the present invention further provides a computer-readable storage medium, where the computer-readable storage medium includes a stored computer program, and when the computer program runs, the apparatus where the computer-readable storage medium is located is controlled to execute the ICP algorithm-based point cloud file registration method according to the above embodiment of the present invention.
Compared with the prior art, the point cloud file registration method, device and computer storage medium based on the ICP algorithm disclosed by the embodiment of the invention have the advantages that firstly, a plurality of processes are started through the message passing interface MPI, a series of point cloud files with continuous serial numbers are divided into a plurality of point cloud segments, and the point cloud segments distributed to each process are respectively subjected to parallel registration to realize primary parallel; secondly, real-time scheduling CPU and GPU computing resources of a computer according to a first variable, setting two paths of CPU execution and GPU acceleration for point cloud file registration, and realizing synchronous parallelism of a plurality of CPU kernels and a plurality of GPUs; the GPU realizes the two-stage parallel accelerated registration of two continuous point cloud files; and then, pre-allocating and dynamically allocating the registration task of the point cloud file to each process through a second variable in the shared memory, and realizing load balance of each process of the message passing interface MPI, so that the parallelization degree of point cloud file set registration, the utilization rate of computer computing resources and the efficiency of point cloud file parallelization registration can be improved.
Drawings
Fig. 1 is a schematic flow chart of a point cloud file registration method based on an ICP algorithm according to an embodiment of the present invention;
fig. 2 is a schematic flow chart of a point cloud file registration method based on an ICP algorithm according to an embodiment of the present invention;
FIG. 3 illustrates an ICP-CPU and ICP-GPU coordination processing framework according to an embodiment of the present invention;
FIG. 4 is a schematic flow chart of pre-allocation and dynamic allocation of a point cloud file according to an embodiment of the present invention;
FIG. 5 is a schematic flow chart of dynamic distribution of point cloud files according to an embodiment of the present invention;
fig. 6 is a schematic structural diagram of a point cloud file registration apparatus based on an ICP algorithm according to an embodiment of the present invention.
Detailed Description
The technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are only a part of the embodiments of the present invention, and not all of the embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
Fig. 1 is a schematic flow chart of a point cloud file registration method based on an ICP algorithm according to an embodiment of the present invention.
The point cloud file registration method based on the ICP algorithm provided by the embodiment of the invention comprises the following steps:
s11, acquiring a point cloud file set, and starting a plurality of processes through a message transmission interface; the point cloud file set comprises 1 source point cloud and k target point clouds to be registered;
s12, dividing the point cloud file set into a plurality of point cloud segments, and sequentially pre-allocating the point cloud segments to the corresponding processes;
s13, creating a shared memory containing 1 first variable and k second variables, and initializing the shared memory; the first variable corresponds to the number of idle GPUs, and the second variable corresponds to the registration condition of the target point cloud one by one;
s14, respectively scheduling an idle GPU or a CPU in each process in real time to execute an ICP algorithm according to the first variable, and registering the target point cloud in each process through the message transmission interface and the ICP algorithm to obtain k registered point cloud files; wherein the content of the first and second substances,
when any one process finishes the registration of all the distributed target point clouds in advance, the point cloud section with the maximum number of the unregistered target point clouds is searched through the second variable, and the unregistered target point clouds in the point cloud section are dynamically distributed to the idle process for registration.
It should be noted that the message passing interface MPI parallel mode adopts a peer-to-peer mode, and the function or the computation flow of each process is the same.
Preferably, the number of the processes is equal to the total core number of the computer or the number of the computer CPUs.
Further, in the step S12, a first parameter and a second parameter are obtained through a preset formula;
when the second parameter is 0, sequentially distributing m continuous point cloud files to each process;
when the second parameter is not 0, sequentially allocating m +1 continuous point cloud files to the first R processes, and sequentially allocating m continuous point cloud files to the remaining n +1-R processes; wherein m is a first parameter and R is a second parameter.
Specifically, the preset formula is as follows:
m=[(k+1)+n-1]/(n+1)LR;
wherein n +1 is the total process amount, k +1 is the total point cloud file amount, and k is a positive integer.
Illustratively, referring to fig. 2, first, k +1 point cloud files are divided into n +1 point cloud segments according to the total number of processes, and according to the formula m ═ ((k +1) + n-1)/(n +1), m point cloud files with consecutive sequence numbers are pre-allocated to each process, such as process P0Pre-distribution processing point cloud file [ Q0,Qm-1],P1Pre-distribution processing point cloud file [ Qm-1,Q2m-2],P2Pre-distribution processing point cloud file [ Q2m-2,Q3m-3]And so on, PnPre-distribution processing point cloud file [ Qn*m-n,Qk](ii) a When the formula m ═ ((k +1) + n-1)/(n +1) cannot be divided evenly and the second parameter is R, then from the first R processes [ P ═ P0,PR-1]Respectively pre-distributing and processing m +1 continuous point cloud files, and pre-distributing and processing m continuous point cloud files in other processes, such as: process P0Pre-distribution processing point cloud file [ Q0,Qm]Process P1Pre-allocation process [ Qm,Q2m]。
Referring to fig. 2, for the convenience of those skilled in the art, the reading and registration of the point cloud file will be briefly described below by taking the second parameter R as 0:
and each process of the message passing interface MPI reads the point cloud files pre-distributed to the process in sequence. In the first round of reading, each process first reads the first two files of the pre-assigned point cloud file, such as process P0Sequentially reading point cloud file Q0And Q1Process P1Sequentially reading point cloud file Qm-1And QmProcess PnSequentially reading point cloud file Qn*m-nAnd Qn*m-n+1(ii) a After the first round of reading is finished, each process takes the previous point cloud file as a source point cloud and the next point cloud file as a target point cloud in sequence, and registration is carried out according to an ICP (inductively coupled plasma) algorithm to obtain a local transformation matrix T corresponding to each target point cloud respectivelyi,TiRepresenting the next point cloud file QiRegistered to the previous point cloud file Qi-1. In the first round of computation, process P0Calculating to obtain a local transformation matrix T1Process P1Calculating to obtain a local transformation matrix TmProcess PnCalculating to obtain a local transformation matrix Tn*m-n+1
After the local transformation matrix of the first round is obtained, each process continuously reads the residual point cloud files according to the point cloud file serial numbers, which is different from the two files read in the first round, and only 1 point cloud file is read each time in the reading of the residual point cloud files. E.g. at round 2 reading, process P0Reading point cloud file Q2Process P1Reading point cloud file Qm+1Process PnReading point cloud file Qn*m-n+2After reading, the current point cloud file Q is readiAs target point cloud, point cloud file Q read in previous roundi-1As a source point cloudAnd (6) registering. Following with procedure P0For example, in the case of the 2 nd round alignment, Q is given2Is a target point cloud, Q1Registering the source point cloud to obtain a local transformation matrix T2(ii) a 3 rd round reading point cloud file Q3With Q3Is a target point cloud, Q2Registering the source point cloud to obtain a local transformation matrix T3(ii) a And circulating the steps until all the point cloud files pre-distributed by a certain process are read and processed by 1 process, ending the point cloud file pre-distribution reading stage and entering a point cloud file dynamic distribution stage. It should be noted that the dynamic allocation is because the workload and the computing resource allocated to each process are different, the time taken for each process to complete the pre-allocated task is different, and in order to balance the load of each process, the unprocessed point cloud file needs to be allocated again.
Specifically, in step S13, a shared memory including 1 first variable and k second variables is created through the MPI _ Win _ allocate _ shared () function.
It should be noted that the shared memory is used for process service, and the data in the shared memory is integer data, that is, the first variable and the second variable are integer data.
In some preferred embodiments, in step S13, the initializing the shared memory specifically includes:
initializing the value of the first variable to be N; wherein N is the number of the computer GPUs;
initializing the values of k of the second variables to 0.
Preferably, the first variable and the second variable are initialized by the 1 st process.
It can be understood that the first variable is used for informing the number of GPUs currently idle in the process in real time, so that the message passing interface MPI preferentially schedules the idle GPUs to execute a part applicable to GPU acceleration in the ICP algorithm, so as to accelerate the registration of the target point cloud; the second variable is used for recording the processing state of each current target point cloud so that each process can update and know the processing state of each point cloud file in real time, and dynamic task allocation among the processes is achieved.
In a specific embodiment, in step S14, the scheduling, in real time, an idle GPU or a CPU in each process according to the first variable to execute an ICP algorithm includes:
when any process reads that the second variable is 0, scheduling a CPU to execute an ICP algorithm in real time;
and when any process reads that the second variable is not 0, scheduling the GPU to execute the ICP algorithm in real time.
It is worth mentioning that before scheduling the idle GPUs to execute the ICP algorithm, a subtraction operation needs to be performed on the first variable, and after the accelerated computation of the GPUs is completed, one is added to the first variable to ensure that the first variable reflects the number of the idle GPUs in real time.
It is worth mentioning that an existing computer or single node generally consists of multiple cores and several GPUs, such as: the computer has A CPUs, 1 CPU is composed of B kernels, the number of the CPU kernels of the computer is A × B, and the number of the kernels generally far exceeds the number of the GPUs. Supposing that a computer has N CPU kernels and 1 GPU, N processes can be started by MPI, the N processes are synchronous and parallel, and each process is accelerated by the GPU in the calculation process; however, because the computer has only 1 GPU, it is impossible to accelerate the GPU in N processes simultaneously, each process can only queue up for using the GPU in turn, and each CPU core enters a waiting idle state while waiting for using the GPU, thereby seriously affecting the parallel effect. To solve the problem, as shown in fig. 3, in the ICP-CPU and ICP-GPU co-processing framework provided in an embodiment of the present invention, for a portion of the ICP algorithm suitable for GPU acceleration, a first variable S is determined first0If the numerical value is 0, all the GPUs are occupied by other processes, so that the CPU is adopted for execution; when the first variable S0If not 0, it indicates that there is an idle GPU in the computer, and the formula S is first followed0=S0-1 updating the number of idle GPUs, then accelerating the part using the GPU, releasing the GPU after the acceleration is finished, and performing the following formula S0=S0+1 updating the number of idle GPUs, and finally outputting the partial process result to the CPU. Through the ICP-CPU and ICP-GPU cooperative processing framework, two paths of CPU execution and GPU acceleration are set for the registration of the point cloud file, the computing resources of all CPU kernels and GPU in a computer can be fully utilized, the synchronous computation of the CPU and the GPU is realized, the idle time of the CPU and the GPU is greatly reduced, and the utilization rate of the CPU and the GPU is increased.
It should be noted that whether the GPU is used for acceleration or not depends on the ICP algorithm used, and the applicability of GPU acceleration is different and the acceleration method is also different depending on the different algorithms used. In addition, aiming at different ICP algorithms, a plurality of different GPU acceleration algorithms exist, so the ICP-CPU and ICP-GPU cooperative processing framework provided by the invention is not aiming at the specific ICP algorithm.
In some preferred embodiments, in step S14, the target point cloud in each process is registered through the message transmission interface and the ICP algorithm to obtain k registered point cloud files, specifically:
carrying out local registration on the target point cloud in each process through the ICP algorithm to obtain a local transformation matrix corresponding to each target point cloud;
collecting a local transformation matrix corresponding to each target point cloud through the message transmission interface, and converting each local transformation matrix through a preset conversion formula to obtain a global transformation matrix corresponding to each target point cloud;
and performing global registration on each target point cloud through a global transformation matrix corresponding to each target point cloud to obtain k registered point cloud files.
Further, before the target point cloud in each process is locally registered, the second variable corresponding to the target point cloud is updated to 1; and updating the second variable corresponding to each target point cloud to be 2 before carrying out global registration on each target point cloud through the global transformation matrix.
It should be noted that the ICP algorithm can be generally divided into 4 processes: 1, searching corresponding points of two point cloud files; process 2, estimating a transformation matrix; step 3, converting the target point cloud data by using the transformation matrix; and 4, judging whether the precision meets the requirement, outputting a transformation matrix if the precision meets the requirement, and returning to the process 1 for iteration if the precision does not meet the requirement. The specific implementation algorithm of ICP is many, such as: the conventional method (traversing all point cloud files), the space cell division method, the octree method, the kd-tree method and the like are used for searching corresponding points of the two point cloud files; the estimation transformation matrix includes an LM method, a unit quaternion method, an SVD singular value decomposition method, and the like.
In a specific embodiment, the step S15 specifically includes:
when any one process finishes the local registration of all the distributed target point clouds in advance, searching a point cloud section with the maximum number of the target point clouds which are not locally registered through the second variable, and dynamically distributing the target point clouds which are not locally registered in the point cloud section to an idle process for local registration;
when any one process completes the global registration of all the allocated target point clouds in advance, the point cloud section with the maximum number of target point clouds which are not subjected to global registration is searched through the second variable, and the target point clouds which are not subjected to global registration in the point cloud section are allocated to the idle process again for global registration.
Preferably, when the second variable is 0, the target point cloud corresponding to the second variable is not locally registered; when the second variable is 1, the target point cloud corresponding to the second variable is locally registered or is already locally registered; when the second variable is 2, the target point cloud corresponding to the second variable is undergoing global registration or has completed global registration.
Preferably, when any one of the processes completes the local registration of all the allocated target point clouds in advance, the point cloud segment with the maximum number of target point clouds which are not locally registered is searched through the second variable, and the target point clouds which are not locally registered in the point cloud segment are dynamically allocated to an idle process for local registration, specifically:
when any one process finishes the local registration of all the distributed target point clouds in advance, all the second variables are traversed, all the target point clouds with the second variable values being 0 are searched, and the point cloud section with the maximum number of the target point clouds which are not locally registered is obtained;
and starting from the last two target point clouds of the point cloud segment with the maximum number of the target point clouds which are not locally registered, dynamically allocating the target point clouds which are not locally registered to an idle process for local registration.
Preferably, when any one of the processes completes the global registration of all the allocated target point clouds in advance, the point cloud segment with the maximum number of target point clouds which are not globally registered is searched through the second variable, and the target point clouds which are not globally registered in the point cloud segment are reallocated to an idle process for global registration, specifically:
when the global registration of all the distributed target point clouds is completed in advance by any one process, all the target point clouds with the second variable values being 1 are searched through traversing all the second variables, and the point cloud section which is not subjected to global registration and has the maximum number of the target point clouds is obtained;
and starting from the last target point cloud of the point cloud segment with the maximum number of target point clouds which are not globally registered, dynamically allocating the target point clouds which are not globally registered to an idle process for global registration.
It can be understood that the invention divides the point cloud file registration process into two modes of pre-allocation and dynamic allocation. Pre-allocation mode: pre-distributing point cloud files for each process according to the total amount of the point cloud files and the total amount of MPI processes; dynamic allocation mode: and when one process in the processes finishes processing the pre-distributed point cloud files, searching the point cloud section with the largest unprocessed number of the point cloud files, and starting reading and registering from the last two point cloud files of the point cloud section.
Exemplary, such as: process P0Preparing to read a point cloud file Q2First accessing the second variable S2If S is2If 1, point cloud file Q is described2Registered or being registered by other processes, which indicates the point cloud file Q2Having entered the dynamic allocation phase, P0Traverse a second variable [ S ]1,Sk]Reading and registering from the last two point cloud files of the maximum continuous interval corresponding to the second variable value of 0; if S is2When the value is equal to 0, the order of S2Set as 1 and start reading the point cloud file Q2Calculating point cloud file Q2Conversion to a point cloud file Q1Local transformation matrix T of2
Illustratively, each process computes a registered point cloud file O according to a pre-assigned taskiBefore, the second variable S is readiSecond variable S i2 indicates the point cloud file O after registrationiHaving been calculated by other processes or being calculated, the second variable is traversed [ S ]1,Sk]Reading from the last 1 point cloud file of the maximum continuous interval with the second variable value of 1, and calculating and outputting the point cloud file O after the point cloud file corresponding to the point cloud file is registeredi(ii) a Second variable S i1 indicates the point cloud file O after registrationiIs not calculated, SiUpdating to 2, then calculating and outputting a point cloud file O after registrationi(ii) a The process is circulated until the second variable [ S ]1,Sk]All are 2, and all point cloud files [ O ] after registration are described1,Ok]Is being calculated or has been output.
In a specific embodiment, the preset conversion formula is specifically:
Figure BDA0003365060270000131
wherein, TiFor the local transformation matrix corresponding to the ith target point cloud, GiAnd the transformation matrix is a global transformation matrix corresponding to the ith target point cloud.
In a preferred embodiment, the i-th target point cloud is globally registered according to the following formula:
Oi=Qi*Gi(1≤i≤k);
wherein, OiRegistered point cloud text corresponding to ith target point cloudElement, QiFor the ith target point cloud, GiAnd the transformation matrix is a global transformation matrix corresponding to the ith target point cloud.
For convenience of explanation, the ICP registration process is divided into steps 1 to n, and the steps are not specific to a particular ICP algorithm, but are merely for simplicity of description. Referring to fig. 2 to 5, a specific flow of the point cloud file registration method based on the ICP algorithm is described below by a specific embodiment.
1) Message passing interface MPI starts n +1 processes P0,Pn]。
2) Performing point cloud file pre-distribution according to the total number of the point cloud files and the total number of the processes;
it should be noted that only the point cloud file serial number is pre-assigned, but the point cloud file is not read.
3) Utilizing MPI _ Win _ allocate _ shared (·) function to create shared memory for each process, making shared memory data be int integer, and storing k +1 integer data [ S ]0,Sk]。
4) Utilizing process P0Initializing integer data, wherein S0The number of GPUs in the computer is S0Carry out assignment, [ S ]1,Sk]All assigned values are 0, representing a point cloud file [ Q1,Qk]Not registered.
5) Each process carries out first round reading according to the point cloud file pre-distributed by each process;
it needs to be explained that the first round of reading needs to read two point cloud files, and when the 1 st point cloud file Q is readi-1Then, do not need to be [ S ]1,Sk]Performing any operation; reading 2 nd point cloud file QiBefore the file, the file needs to be paired with SiUpdated and assigned a value of 1, representing the point cloud file QiWill be read.
6) After the point cloud file is read in the first round, the ICP-CPU and ICP-GPU cooperative processing stage is started, wherein the data preprocessing, ICP registration and the like are included;
referring to fig. 3, it is analyzed whether each step is suitable for GPU acceleration and is not suitable for the ICP algorithm used specificallyThe part adopting the GPU for acceleration is still executed by adopting a CPU, and for the part adopting the GPU for acceleration, the integer data S is judged firstly0Whether the value of (A) is 0, integer data S0If the number is 0, all the GPUs are occupied by other processes, so that the CPU is adopted for execution; integer data S0If not 0, it indicates that there is an idle GPU in the computer, and the formula S is first followed0=S0-1 updating the number of idle GPUs, accelerating the part using the GPU, releasing the GPU after the acceleration is finished, and following the equation S0=S0+1, updating the number of idle GPUs, and finally outputting the process result of the part to the CPU; and continuously executing the rest steps of the ICP algorithm according to the ICP-CPU and ICP-GPU cooperative processing method until a first round local transformation matrix T is obtained.
7) After obtaining the first round of local transformation matrix T, each process starts to execute the 2 nd round of point cloud file reading;
such as: p0Preparing to read a point cloud file Q2Reading point cloud file Q2Before, the integer data S is accessed2If S is2If 1, point cloud file Q is described2Registered or being registered by other processes, which indicates that the point cloud file enters the dynamic allocation stage, P0Traverse [ S ]1,Sk]Reading and registering from the last two point cloud files of the maximum continuous interval with the integer data value of 0; if S is2When the value is equal to 0, the order of S 21 and starts reading Q2Then, Q is calculated according to the step 6) above2Conversion to Q1Local transformation matrix T of2Specific examples are shown with reference to fig. 4 and 5.
8) All processes are processed according to step 7) until [ S ]1,Sk]All the values of (1) indicate that all the point cloud files are registered or are being registered, the registration in this step is local registration, and the dynamic allocation is finished.
9) Collecting all local transformation matrices [ T ] using MPI _ Allgather (·) function1,Tk]And computing the ith global transformation matrix G according to equation (1)i
Figure BDA0003365060270000141
Wherein, T in the formula (1)iRepresenting point cloud files QiRegistering to a Point cloud File Qi-1Local transformation matrix of GiRepresenting point cloud files QiRegistering to a Point cloud File Q0Global transformation matrix (source point cloud).
10) Each process respectively uses the point cloud file Q according to the formula (2)iCoordinates unified to source point cloud Q0And outputting a point cloud file Oi after registration:
Oi=Qi*Gi(1. ltoreq. i. ltoreq.k) formula (2)
In this step, each process performs task allocation based on the local transformation matrix calculated by the process, and P is assumed to be0Calculate T1、T2、T5、T10Then P is pre-allocated0Calculating and outputting a registered point cloud file O1、O2、O5、O10. When a process firstly processes all pre-distributed tasks, assisting other processes to complete the rest tasks, and calculating the point cloud file O after registration according to the pre-distributed tasks by each processiFirst, the integer data S is readiIf the data S is integer i2, the point cloud file O after registration is showniHaving been computed by other processes or being computed, the integer data is traversed [ S ]1,Sk]Reading from the last 1 point cloud file of the maximum continuous interval with the integer data value of 1, and then calculating and outputting a corresponding point cloud file O after registration; integer data S i1 indicates the point cloud file O after registrationiIs not calculated, SiUpdating to 2, then calculating and outputting a point cloud file O after registrationi(ii) a The operation is circulated until the data is shaped1,Sk]If all are updated to 2, all the point cloud files after registration are indicated [ O ]1,Ok]Is calculating or has been output;
the processes are counted according to the formula (2)When calculating, the integer data S is accessed first0If the numerical value is 0, all the GPUs in the computer are occupied by other processes, so that the CPU is adopted for executing; integer data S0If not 0, it indicates that there is an idle GPU in the computer, and the formula S is first followed0=S0-1 updating the number of idle GPUs, accelerating the following equation using the GPU, releasing the GPU after the acceleration is finished, and following equation S0=S0+1 updating the number of idle GPUs, and finally outputting the point cloud file O after registrationi
To further describe the pre-allocation and dynamic allocation process of the point cloud file, 4 processes are adopted [ P ]0,P3]17 Point cloud File [ Q ]0,Q16]The description is given. Referring to fig. 4, each process pre-allocates and processes 5 point cloud files, process P0Responsible for point cloud document [ Q0,Q4]Process P1Responsible for point cloud document [ Q4,Q8]Process P2Responsible for point cloud document [ Q8,Q12]Process P3Responsible for point cloud document [ Q12,Q16](ii) a As shown in FIG. 4, each process reads the pre-distributed 1 st point cloud file as the source point cloud in parallel, and the process P0Reading point cloud file Q0Process P1Reading point cloud file Q4Process P2Reading point cloud file Q8Process P3Reading point cloud file Q12(ii) a After reading, updating the corresponding integer data of each process before reading the pre-distributed 2 nd point cloud file; by process P0For example, P0Will S1Firstly, updating to 1, and then reading the point cloud file Q1Read out Q1Then, a local transformation matrix T is calculated1(ii) a Then reading S2,S2When Q is 0, Q is described2If not registered, then S2Is updated to 1 and then Q is read2And calculate Q2Registration to Q1Local transformation matrix T of2(ii) a And circulating the steps until a certain process finishes the pre-allocation task first, and marking the end of the pre-allocation stage.
Because of the computing task of each process in the computing processDifferent amounts of calculation resources are allocated, as shown in fig. 3, the GPU cannot guarantee that the time and the number of times of using the GPU by each process are the same according to the first come first use principle, and the calculation schedules of the processes are different, for example: process P1Complete all pre-distribution point cloud files [ Q ]5,Q8]In the local registration of (2), process P0Q remains3And Q4Unregistered, process P2 still has Q remaining10、Q11And Q12Unregistered, process P3Q remains15Not registered. Process P1All pre-assigned tasks are completed first and other processes need to be assisted to complete the remaining tasks. First traverse the integer data [ S ]1,Sk]It can be found that there are 3 consecutive intervals of 0, respectively [ Q ]3,Q4]、[Q10,Q12]、[Q15]Due to P2Most outstanding tasks remain, [ Q ]10,Q12]In total 3 point cloud files are not registered, process P1 selects [ Q [ ]10,Q12]Last 1 point cloud file Q12Performing registration for registering Q12Like the first round of reading in step 5), it is necessary to read Q first12Corresponding Source Point cloud Q11Then, S is12Is updated to 1 and Q is read12Finally, a local transformation matrix T is calculated12. Other processes after completing the pre-allocation task, as process P1Similarly, other processes are assisted to complete unfinished tasks until S1,Sk]All the values are 1, which indicates that all the point cloud files are registered or are being registered, and the dynamic allocation is finished.
Correspondingly, the embodiment of the invention also provides a point cloud file registration device based on the ICP algorithm, which can realize all the processes of the point cloud file registration method based on the ICP algorithm.
Fig. 6 is a schematic structural diagram of a point cloud file registration apparatus based on an ICP algorithm according to an embodiment of the present invention.
The point cloud file registration device based on the ICP algorithm provided by the embodiment of the invention comprises:
the data preprocessing module 21 is configured to obtain a point cloud file set, and start multiple processes through a message transmission interface; the point cloud file set comprises 1 source point cloud and k target point clouds to be registered;
the data pre-distribution module 22 is configured to divide the point cloud file set into a plurality of point cloud segments, and sequentially pre-distribute the point cloud segments to the corresponding processes;
a shared data module 23, configured to create a shared memory including 1 first variable and k second variables, and initialize the shared memory; the first variable corresponds to the number of idle GPUs, and the second variable corresponds to the registration condition of the target point cloud one by one;
the point cloud registration module 24 is configured to respectively schedule an idle GPU or a CPU in each process in real time to execute an ICP algorithm according to the first variable, and register the target point cloud in each process through the message transmission interface and the ICP algorithm to obtain k registered point cloud files;
and the dynamic allocation module 25 is configured to, when any one of the processes completes the allocation of all the allocated target point clouds in advance, search a point cloud segment with the largest number of unregistered target point clouds through the second variable, and dynamically allocate the unregistered target point clouds in the point cloud segment to an idle process for the allocation.
As one optional implementation, the apparatus for registering a point cloud file based on an ICP algorithm further includes:
a data initialization module 26, configured to initialize a value of the first variable to be N; wherein N is the number of the computer GPUs; and is also used for initializing the values of k second variables to be 0.
As one of the optional embodiments, the point cloud registration module 24 includes:
the local registration unit is used for carrying out local registration on the target point clouds in each process through the ICP algorithm to obtain a local transformation matrix corresponding to each target point cloud;
the matrix transformation unit is used for collecting a local transformation matrix corresponding to each target point cloud through the message transmission interface and transforming each local transformation matrix through a preset transformation formula to obtain a global transformation matrix corresponding to each target point cloud;
and the global registration unit is used for carrying out global registration on each target point cloud through a global transformation matrix corresponding to each target point cloud to obtain k registered point cloud files.
As one optional implementation, the point cloud registration module 24 further includes:
the resource scheduling unit is used for scheduling the CPU to execute the ICP algorithm in real time when any process reads that the second variable is 0; and when any process reads that the second variable is not 0, scheduling the GPU to execute the ICP algorithm in real time.
Preferably, the dynamic allocation module 25 includes:
the local registration dynamic allocation unit is used for searching a point cloud section with the maximum number of target point clouds which are not locally registered through the second variable when any process finishes the local registration of all the distributed target point clouds in advance, and dynamically allocating the target point clouds which are not locally registered in the point cloud section to an idle process for local registration;
and the global registration dynamic allocation unit is used for searching a point cloud segment with the maximum number of target point clouds which are not subjected to global registration through the second variable when the global registration of all the target point clouds allocated to any process is completed in advance, and reallocating the target point clouds which are not subjected to global registration in the point cloud segment to an idle process for global registration.
Preferably, in the matrix transformation unit, the preset transformation formula specifically includes:
Figure BDA0003365060270000181
wherein, TiFor the local transformation matrix corresponding to the ith target point cloud, GiAnd the transformation matrix is a global transformation matrix corresponding to the ith target point cloud.
Further, the global registration unit is specifically configured to:
globally registering the ith target point cloud according to the following formula:
Oi=Qi*Gi(1≤i≤k);
wherein, OiFor the registered point cloud file corresponding to the ith target point cloud, QiFor the ith target point cloud, GiAnd the transformation matrix is a global transformation matrix corresponding to the ith target point cloud.
It should be noted that, for the specific description and the beneficial effects related to each embodiment of the point cloud file registration apparatus based on the ICP algorithm in this embodiment, reference may be made to the specific description and the beneficial effects related to each embodiment of the point cloud file registration method based on the ICP algorithm, which are not described herein again.
It should be noted that the above-described device embodiments are merely illustrative, where the units described as separate parts may or may not be physically separate, and the parts displayed as units may or may not be physical units, may be located in one place, or may be distributed on multiple network units. Some or all of the modules may be selected according to actual needs to achieve the purpose of the solution of the present embodiment. In addition, in the drawings of the embodiment of the apparatus provided by the present invention, the connection relationship between the modules indicates that there is a communication connection between them, and may be specifically implemented as one or more communication buses or signal lines. One of ordinary skill in the art can understand and implement it without inventive effort.
Accordingly, an embodiment of the present invention further provides a computer-readable storage medium, where the computer-readable storage medium includes a stored computer program; wherein the computer program controls, when running, a device where the computer readable storage medium is located to execute the ICP algorithm based point cloud file registration method according to any one of the above embodiments.
To sum up, according to the point cloud file registration method, device and computer-readable storage medium based on the ICP algorithm provided by the embodiments of the present invention, first, a plurality of processes are started through an message passing interface MPI, a series of point cloud files with continuous sequence numbers are divided into a plurality of point cloud segments, and the point cloud segments allocated to each process are respectively subjected to parallel registration to realize first-level parallelism; secondly, real-time scheduling CPU and GPU computing resources of a computer according to a first variable, setting two paths of CPU execution and GPU acceleration for point cloud file registration, and realizing synchronous parallelism of a plurality of CPU kernels and a plurality of GPUs; the GPU realizes the two-stage parallel accelerated registration of two continuous point cloud files; and then, pre-allocating and dynamically allocating the registration task of the point cloud file to each process through a second variable in the shared memory, and realizing load balance of each process of the message passing interface MPI, so that the parallelization degree of point cloud file set registration, the utilization rate of computer computing resources and the efficiency of point cloud file parallelization registration can be improved.
While the foregoing is directed to the preferred embodiment of the present invention, it will be understood by those skilled in the art that various changes and modifications may be made without departing from the spirit and scope of the invention.

Claims (10)

1. An ICP algorithm-based point cloud file registration method is characterized by comprising the following steps:
acquiring a point cloud file set, and starting a plurality of processes through a message transmission interface; the point cloud file set comprises 1 source point cloud and k target point clouds to be registered;
dividing the point cloud file set into a plurality of point cloud sections, and sequentially pre-distributing the point cloud sections to the corresponding processes;
creating a shared memory containing 1 first variable and k second variables, and initializing the shared memory; the first variable corresponds to the number of idle GPUs, and the second variable corresponds to the registration condition of the target point cloud one by one;
respectively scheduling an idle GPU or a CPU in each process in real time to execute an ICP algorithm according to the first variable, and registering the target point cloud in each process through the message transmission interface and the ICP algorithm to obtain k registered point cloud files; wherein the content of the first and second substances,
when any one process finishes the registration of all the distributed target point clouds in advance, the point cloud section with the maximum number of the unregistered target point clouds is searched through the second variable, and the unregistered target point clouds in the point cloud section are dynamically distributed to the idle process for registration.
2. An ICP algorithm based point cloud file registration method according to claim 1, wherein the initializing the shared memory specifically comprises:
initializing the value of the first variable to be N; wherein N is the number of the computer GPUs;
initializing the values of k of the second variables to 0.
3. An ICP algorithm based point cloud file registration method according to claim 2, wherein the scheduling of an idle GPU or CPU in each process in real time to execute an ICP algorithm according to the first variable respectively is specifically:
when any process reads that the second variable is 0, scheduling a CPU to execute an ICP algorithm in real time;
and when any process reads that the second variable is not 0, scheduling the GPU to execute the ICP algorithm in real time.
4. The ICP algorithm based point cloud file registration method of claim 1, wherein the target point cloud in each process is registered through the message passing interface and the ICP algorithm to obtain k registered point cloud files, specifically:
carrying out local registration on the target point cloud in each process through the ICP algorithm to obtain a local transformation matrix corresponding to each target point cloud;
collecting a local transformation matrix corresponding to each target point cloud through the message transmission interface, and converting each local transformation matrix through a preset conversion formula to obtain a global transformation matrix corresponding to each target point cloud;
and performing global registration on each target point cloud through a global transformation matrix corresponding to each target point cloud to obtain k registered point cloud files.
5. The ICP algorithm-based point cloud file registration method according to claim 4, wherein when any one of the processes completes the registration of all the allocated target point clouds in advance, a point cloud segment with the largest number of unregistered target point clouds is searched through the second variable, and the unregistered target point clouds in the point cloud segment are dynamically allocated to an idle process for registration, specifically:
when any one process finishes the local registration of all the distributed target point clouds in advance, searching a point cloud section with the maximum number of the target point clouds which are not locally registered through the second variable, and dynamically distributing the target point clouds which are not locally registered in the point cloud section to an idle process for local registration;
when any one process completes the global registration of all the allocated target point clouds in advance, the point cloud section with the maximum number of target point clouds which are not subjected to global registration is searched through the second variable, and the target point clouds which are not subjected to global registration in the point cloud section are allocated to the idle process again for global registration.
6. An ICP algorithm based point cloud file registration method according to claim 4, wherein the preset conversion formula specifically is:
Figure FDA0003365060260000031
wherein, TiFor the local transformation matrix corresponding to the ith target point cloud, GiAnd the transformation matrix is a global transformation matrix corresponding to the ith target point cloud.
7. An ICP algorithm based point cloud file registration method according to claim 4, wherein the i-th target point cloud is globally registered according to the following formula:
Oi=Qi*Gi (1≤i≤k);
wherein, OiFor the registered point cloud file corresponding to the ith target point cloud, QiFor the ith target point cloud, GiAnd the transformation matrix is a global transformation matrix corresponding to the ith target point cloud.
8. An ICP algorithm-based point cloud file registration device is characterized by comprising:
the data preprocessing module is used for acquiring a point cloud file set and starting a plurality of processes through a message transmission interface; the point cloud file set comprises 1 source point cloud and k target point clouds to be registered;
the data pre-distribution module is used for dividing the point cloud file set into a plurality of point cloud sections and sequentially pre-distributing the point cloud sections to the corresponding processes;
the shared data module is used for creating a shared memory containing 1 first variable and k second variables and initializing the shared memory; the first variable corresponds to the number of idle GPUs, and the second variable corresponds to the registration condition of the target point cloud one by one;
the point cloud registration module is used for scheduling an idle GPU or a CPU in each process in real time to execute an ICP algorithm according to the first variable, and registering the target point cloud in each process through the message transmission interface and the ICP algorithm to obtain k registered point cloud files;
and the dynamic allocation module is used for searching a point cloud section with the maximum number of unregistered target point clouds through the second variable when any one process finishes the allocation of all the allocated target point clouds in advance, and dynamically allocating the unregistered target point clouds in the point cloud section to an idle process for the allocation.
9. An ICP algorithm based point cloud file registration apparatus as claimed in claim 8, wherein the point cloud registration module comprises:
the local registration unit is used for carrying out local registration on the target point clouds in each process through the ICP algorithm to obtain a local transformation matrix corresponding to each target point cloud;
the matrix transformation unit is used for collecting a local transformation matrix corresponding to each target point cloud through the message transmission interface and transforming each local transformation matrix through a preset transformation formula to obtain a global transformation matrix corresponding to each target point cloud;
and the global registration unit is used for carrying out global registration on each target point cloud through a global transformation matrix corresponding to each target point cloud to obtain k registered point cloud files.
10. A computer-readable storage medium, comprising a stored computer program, wherein the computer program, when executed, controls a device on which the computer-readable storage medium is located to perform the ICP algorithm based point cloud file registration method according to any one of claims 1 to 7.
CN202111408323.0A 2021-11-19 2021-11-19 Point cloud file registration method and device based on ICP (inductively coupled plasma) algorithm and storage medium Active CN114283046B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111408323.0A CN114283046B (en) 2021-11-19 2021-11-19 Point cloud file registration method and device based on ICP (inductively coupled plasma) algorithm and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111408323.0A CN114283046B (en) 2021-11-19 2021-11-19 Point cloud file registration method and device based on ICP (inductively coupled plasma) algorithm and storage medium

Publications (2)

Publication Number Publication Date
CN114283046A true CN114283046A (en) 2022-04-05
CN114283046B CN114283046B (en) 2022-08-19

Family

ID=80870293

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111408323.0A Active CN114283046B (en) 2021-11-19 2021-11-19 Point cloud file registration method and device based on ICP (inductively coupled plasma) algorithm and storage medium

Country Status (1)

Country Link
CN (1) CN114283046B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115586968A (en) * 2022-10-12 2023-01-10 北京斯年智驾科技有限公司 ICP parallel accelerated computing method, system, terminal and medium

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101009642A (en) * 2006-12-31 2007-08-01 华为技术有限公司 A resource allocation method and device based on the task packet
CN104268096A (en) * 2014-09-26 2015-01-07 西南科技大学 Rapid large-scale point-cloud data reading method based on memory pre-distribution and multi-point writing technology
CN106201696A (en) * 2016-07-15 2016-12-07 东软集团股份有限公司 Method and apparatus for thread
CN106548509A (en) * 2016-10-20 2017-03-29 中国科学院光电研究院 A kind of 3-dimensional image generation method based on CUDA and three-dimensional imaging load
CN110097582A (en) * 2019-05-16 2019-08-06 广西师范大学 A kind of spots cloud optimization registration and real-time display system and working method
US20190319851A1 (en) * 2018-04-11 2019-10-17 Nvidia Corporation Fast multi-scale point cloud registration with a hierarchical gaussian mixture
CN110880185A (en) * 2019-11-08 2020-03-13 南京理工大学 High-precision dynamic real-time 360-degree all-dimensional point cloud acquisition method based on fringe projection
CN111539997A (en) * 2020-04-23 2020-08-14 中国科学院自动化研究所 Image parallel registration method, system and device based on GPU computing platform

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101009642A (en) * 2006-12-31 2007-08-01 华为技术有限公司 A resource allocation method and device based on the task packet
CN104268096A (en) * 2014-09-26 2015-01-07 西南科技大学 Rapid large-scale point-cloud data reading method based on memory pre-distribution and multi-point writing technology
CN106201696A (en) * 2016-07-15 2016-12-07 东软集团股份有限公司 Method and apparatus for thread
CN106548509A (en) * 2016-10-20 2017-03-29 中国科学院光电研究院 A kind of 3-dimensional image generation method based on CUDA and three-dimensional imaging load
US20190319851A1 (en) * 2018-04-11 2019-10-17 Nvidia Corporation Fast multi-scale point cloud registration with a hierarchical gaussian mixture
CN110097582A (en) * 2019-05-16 2019-08-06 广西师范大学 A kind of spots cloud optimization registration and real-time display system and working method
CN110880185A (en) * 2019-11-08 2020-03-13 南京理工大学 High-precision dynamic real-time 360-degree all-dimensional point cloud acquisition method based on fringe projection
CN111539997A (en) * 2020-04-23 2020-08-14 中国科学院自动化研究所 Image parallel registration method, system and device based on GPU computing platform

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
MD MUSHFIQUR RAHMAN: ""A Fast GPU Point-cloud Registration Algorithm"", 《2018 19TH IEEE SNPD》 *
崔家武: ""MPI并行技术在测绘数据处理中的应用"", 《中国优秀硕士学位论文全文数据库基础科学辑》 *
杨群: ""基于GPU的4PCS点云配准并行算法研究"", 《中国优秀硕士学位论文全文数据库信息科技辑》 *
王敏: ""基于PCL的大规模点云配准局部并行化研究"", 《中国优秀硕士学位论文全文数据库工程科技Ⅱ辑》 *
荆锐: ""基于GPU的实时三维点云数据配准研究"", 《计算机工程》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115586968A (en) * 2022-10-12 2023-01-10 北京斯年智驾科技有限公司 ICP parallel accelerated computing method, system, terminal and medium
CN115586968B (en) * 2022-10-12 2023-10-27 北京斯年智驾科技有限公司 ICP parallel acceleration computing method, system, terminal and medium

Also Published As

Publication number Publication date
CN114283046B (en) 2022-08-19

Similar Documents

Publication Publication Date Title
US9038088B2 (en) Load balancing on hetrogenous processing cluster based on exceeded load imbalance factor threshold determined by total completion time of multiple processing phases
CN105022670B (en) Heterogeneous distributed task processing system and its processing method in a kind of cloud computing platform
JPH0830561A (en) Method and compiler for parallel execution of program
CN112162854A (en) Method, system and medium for scheduling calculation tasks between CPU-GPU
CN112764893B (en) Data processing method and data processing system
CN109918182A (en) More GPU task dispatching methods under virtualization technology
CN114647515A (en) GPU cluster-oriented dynamic resource scheduling method
CN114283046B (en) Point cloud file registration method and device based on ICP (inductively coupled plasma) algorithm and storage medium
CN115016938A (en) Calculation graph automatic partitioning method based on reinforcement learning
CN116684420A (en) Cluster resource scheduling method, device, cluster system and readable storage medium
Ranaweera et al. Scheduling of periodic time critical applications for pipelined execution on heterogeneous systems
Aksenova et al. The models and methods of optimal control of three work-stealing deques located in a shared memory
CN113222099A (en) Convolution operation method and chip
CN113222136A (en) Convolution operation method and chip
CN116701001A (en) Target task allocation method and device, electronic equipment and storage medium
Schmidt et al. Load-balanced parallel constraint-based causal structure learning on multi-core systems for high-dimensional data
CN107992821B (en) Image identification method and system
CN115034365A (en) Multi-core parallel computing method for neural network processor
US11010202B2 (en) Distributed physical processing of matrix sum operation
Kedad-Sidhoum et al. Fast biological sequence comparison on hybrid platforms
Al Maruf et al. Optimizing DNNs Model Partitioning for Enhanced Performance on Edge Devices
CN114579284A (en) Task scheduling method and device
CN114691142A (en) Compiling method of execution program, chip, electronic device, and computer-readable storage medium
CN115269163A (en) Resource allocation method and device for computer graph, computer equipment and storage medium
CN117194041B (en) Parallel optimization method and system for high-performance computer

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
GR01 Patent grant
GR01 Patent grant