Data processing method and apparatus, and system
By converting point cloud data into a parallel data format of SIMD architecture and combining it with rasterization and normal distribution calculation, the problem of high CPU load is solved, and efficient and high-precision processing of point cloud registration is achieved.
Patent Information
- Application Number
- PCT/CN2025/083257
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-03-25
- Filing Date
- 2025-03-18
- Publication Date
- 2025-10-02
AI Technical Summary
Existing point cloud registration algorithms suffer from high processing load on the central processing unit (CPU), resulting in low efficiency.
The SIMD architecture is used to convert point cloud data into a parallel data format, and point cloud registration is performed through multi-data parallel computing. Combined with rasterization processing and normal distribution calculation, efficient point cloud registration is achieved.
The efficiency and accuracy of point cloud registration are improved, the execution time of the algorithm is reduced, and the deployment performance of the algorithm is improved.
Smart Images

Figure CN2025083257_02102025_PF_FP_ABST
Abstract
Description
Data processing method, device and system
[0001] This application claims priority to the Chinese patent application with application number 202410349208.8 filed with the State Intellectual Property Office of China on March 25, 2024, and priority to the Chinese patent application with the invention name “Data processing method, device and system”, all contents of which are incorporated by reference into this application. Technical Field
[0002] The present application relates to the field of data processing, and in particular to a data processing method, device, and system. Background Art
[0003] In recent years, with the advancement of computer and artificial intelligence technologies, as well as the decreasing cost and increasing availability of 3D imaging sensors, point cloud imaging technology has been applied to various fields. However, since point cloud data is affected by factors such as the 3D imaging sensor itself, the measurement method, and the environment, problems such as translational and rotational misalignment, and key data loss often occur between previous and subsequent point cloud frames. Therefore, obtaining complete point cloud data requires powerful point cloud registration technology. Point cloud registration is a process that compares and adjusts two or more point cloud datasets to find the optimal correspondence between them.
[0004] The implementation of existing point cloud registration algorithms is generally based on the central processing unit (CPU) for processing, resulting in excessive CPU load. Summary of the Invention
[0005] The present application discloses a data processing method, device and system, which can realize multi-data parallel computing and improve data processing efficiency.
[0006] In a first aspect, embodiments of the present application provide a data processing method, applied to a first processing unit, the first processing unit including at least one SIMD unit. The method comprises: acquiring a first point cloud and a second point cloud. The first point cloud comprises a plurality of first sampling points. The second point cloud comprises a plurality of second sampling points. The first sampling points comprise first three-dimensional coordinate information. The second sampling points comprise second three-dimensional coordinate information. Then, converting the first point cloud into first data. The first data comprises first information, second information, and third information arranged in sequence. The first information corresponds to some or all of the first coordinates included in the first point cloud. The second information corresponds to some or all of the second coordinates included in the first point cloud. The third information corresponds to some or all of the third coordinates included in the first point cloud. The first, second, and third coordinates are included in the first three-dimensional coordinate information. The second point cloud is further converted into second data. The second data comprises fourth information, fifth information, and sixth information arranged in sequence. The fourth information corresponds to some or all of the fourth coordinates included in the second point cloud. The fifth information corresponds to some or all of the fifth coordinates included in the second point cloud. The sixth information corresponds to some or all of the sixth coordinates included in the second point cloud. The fourth coordinate, the fifth coordinate, and the sixth coordinate are included in the second three-dimensional coordinate information. Then, point cloud registration is performed on the first data and the second data.
[0007] In an embodiment of the present application, a first point cloud and a second point cloud are respectively converted into first data and second data, wherein the first data includes first information, second information, and third information arranged in sequence, wherein the first information corresponds to part or all of the first coordinates included in the first point cloud, the second information corresponds to part or all of the second coordinates included in the first point cloud, and the third information corresponds to part or all of the third coordinates included in the first point cloud; and the second data includes fourth information, fifth information, and sixth information arranged in sequence, wherein the fourth information corresponds to part or all of the fourth coordinates included in the second point cloud, the fifth information corresponds to part or all of the fifth coordinates included in the second point cloud, and the sixth information corresponds to part or all of the sixth coordinates included in the second point cloud, thereby performing point cloud registration on the first data and the second data. By adopting this method, since the first data and the second data are both parallel data compatible with the SIMD architecture, the real-time performance of the algorithm is improved, the deployment performance of the algorithm is improved, and the efficiency of point cloud registration is improved.
[0008] The first point cloud may be a source point cloud, and the second point cloud may be a target point cloud. For example, the second point cloud may be a point cloud in the first frame of an autonomous driving scene, and the first point cloud may be a point cloud in the Nth frame of an image, where N is an integer greater than 1.
[0009] The first data is the memory arrangement data obtained by converting the source point cloud. For example, the first coordinate is x, the second coordinate is y, and the third coordinate is z. The first point cloud includes point P1 (x1, y1, z1), point P2 (x2, y2, z2), point P3 (x3, y3, z3), point P4 (x4, y4, z4)... The first information can be expressed as x1, x2, x3, x4... The second information can be expressed as y1, y2, y3, y4... The third information can be expressed as z1, z2, z3, z4... Correspondingly, the first data can be expressed as x1, x2, x3, x4... y1, y2, y3, y4... z1, z2, z3, z4...
[0010] The first coordinates, second coordinates, and third coordinates corresponding to the first point cloud are sequentially arranged, the first coordinates corresponding to the first point cloud are marked together, the second coordinates corresponding to the first point cloud are marked together, and the third coordinates corresponding to the first point cloud are marked together to obtain first data. This first data is parallel data compatible with the SIMD architecture, which helps improve data processing efficiency and registration efficiency in subsequent point cloud registration.
[0011] The second data is the memory layout data obtained by converting the target point cloud. The second data is obtained by sequentially arranging the fourth, fifth, and sixth coordinates corresponding to the second point cloud. This second data is parallel data compatible with the SIMD architecture, which helps improve data processing efficiency and registration efficiency during subsequent point cloud registration.
[0012] In one possible implementation, performing point cloud registration on the first data and the second data includes: performing rasterization processing on the second data to obtain third data. Then, obtaining fourth data. The fourth data is associated with the third data and a normal distribution calculation. Furthermore, performing point cloud registration on the third data and the first data based on the fourth data.
[0013] This example is based on rasterizing the second data and then performing point cloud registration, which can effectively process large point clouds (point clouds in grid dimensions) and improve the accuracy and stability of matching.
[0014] In a possible implementation, performing point cloud registration on the third data and the first data based on the fourth data includes:
[0015] The third data and the first data are initially registered based on the fourth data.
[0016] The first registration, that is, the first registration of the third data and the first data, is to map the first data into the coordinate system of the third data.
[0017] In one possible implementation, performing a first registration of the third data with the first data based on the fourth data includes: obtaining first transformation parameters, and obtaining fifth data based on the first transformation parameters and the first data. Then, calculating first registration optimization parameters based on the fourth data and the fifth data. Furthermore, obtaining second transformation parameters based on the first registration optimization parameters.
[0018] The first transformation parameter may be an initial transformation parameter obtained by zero initialization or by using odometer data. The fifth data is a transformed point cloud obtained by first registering the first data.
[0019] Based on the above processing, the first registration is completed.
[0020] In one possible implementation, calculating the first registration optimization parameter based on the fourth data and the fifth data includes: obtaining sixth data based on the fourth data and the fifth data, where the sixth data is data in the third data corresponding to the fifth data. Furthermore, obtaining the first registration optimization parameter based on the sixth data and the fifth data. For example, the sixth data may be a grid containing the third data corresponding to the fifth data.
[0021] In one possible implementation, the method further includes: when a preset condition is not met, iteratively aligning the fifth data and the third data based on the second transformation parameter, the fifth data, and the third data, wherein the second transformation parameter and the fifth data are both obtained based on the first alignment, and the fifth data corresponds to the first data.
[0022] For example, the preset condition may be that a preset number of registrations has been reached. Alternatively, the preset condition may be that a change in a preset optimization amount is less than a preset threshold. For example, the preset optimization amount may be a transformation parameter. When the difference between two adjacent transformation parameters is less than a preset threshold, the preset condition is met. Of course, the preset optimization amount may also be other parameters, which are not limited in this solution. When the preset condition is met, registration is terminated.
[0023] In a possible implementation, the iterative registration includes an i-th iterative registration, where i is an integer not less than 1, and the i-th iterative registration includes the following steps:
[0024] S1, based on the transformation parameter t i-1 For data Y i-1 Align with the third data to obtain data Y i , the data Y i-1is the data after the fifth data and the third data are iteratively registered for the i-1th time; the transformation parameter t i-1 are the transformation parameters after performing the i-1th iterative registration on the fifth data and the third data based on the second transformation parameters;
[0025] S2. Parallel traversal search for the data Y i , get data P i , the data P i Including the data Y in the third data and the data Y in the traversal search i Data whose distance is not greater than the preset value;
[0026] By performing this search, valid point clouds that are likely to be matched with the current point cloud can be screened out, thereby improving the accuracy and stability of the matching.
[0027] S3, based on the data P i Arrange the data Y continuously i A data pair comprising the fourth data and the data Y i The corresponding data P i Corresponding data, the data Y i Regarding the transformation parameters, the data Y i The parameters of the transformation are based on the data Y i , the fourth data is obtained by parallel calculation;
[0028] By arranging the above data pairs continuously, the requirements of parallel computing can be met and the matching efficiency can be improved.
[0029] S4. Based on the data Y i The data pairs are parallel calculated to obtain the registration optimization parameter U i ;
[0030] S5, based on the registration optimization parameter U i Get the transformation parameter t i ;
[0031] S6, confirm whether the preset condition is met, if so, execute step S7; if not, execute step S8;
[0032] S7, stop the iterative registration, and set the transformation parameter t i As a result of said iterative registration;
[0033] S8, let i=i+1, and repeat steps S1-S6; wherein, when i=1, the transformation parameter t i-1 is the second transformation parameter, the data Y i-1is the fifth data.
[0034] Based on the above iterative registration, the registration of the first point cloud and the second point cloud can be achieved.
[0035] In a possible implementation manner, the method further includes: when a preset condition is met, using the second transformation parameter as a result of the first registration.
[0036] In one possible implementation, the first processing unit includes at least two SIMD units, wherein a target SIMD unit is selected from the at least two SIMD units based on at least one of the data volume of the first data and the second data and the computing power of the at least two SIMD units to execute part or all of the steps in the data processing method.
[0037] In this example, based on at least one of the data volume of the first data and the second data and the computing power of the at least two SIMD units, a target SIMD unit is selected from the at least two SIMD units to execute part or all of the steps in the data processing method, thereby enabling the coordinated deployment of adaptive heterogeneous hardware computing units.
[0038] Exemplarily, the at least two SIMD units may include one or more of an artificial intelligence (AI) core computing unit, a vector core computing unit, and a scalable vector extension (SVE) computing unit. Exemplarily, the AI Core computing unit is used for calculation and reasoning of artificial intelligence models. The Vector Core computing unit is used for vector calculations. SVE is the SIMD instruction set supported by the CPU.
[0039] In a second aspect, an embodiment of the present application provides a data processing method, characterized in that it is applied to a data processing system, the data processing system including a first processing unit and a second processing unit connected to each other, the first processing unit including at least one SIMD unit, the method comprising:
[0040] The second processing unit obtains a first point cloud and a second point cloud, wherein the first point cloud includes a plurality of first sampling points, the second point cloud includes a plurality of second sampling points, the first sampling points include first three-dimensional coordinate information, and the second sampling points include second three-dimensional coordinate information.
[0041] The first processing unit obtains the first point cloud and the second point cloud from the second processing unit.
[0042] The first processing unit converts the first point cloud into first data, and the first data includes first information, second information and third information arranged in sequence, wherein the first information corresponds to part or all of the first coordinates included in the first point cloud, the second information corresponds to part or all of the second coordinates included in the first point cloud, and the third information corresponds to part or all of the third coordinates included in the first point cloud, and the first coordinate, the second coordinate and the third coordinate are included in the first three-dimensional coordinate information.
[0043] The first processing unit converts the second point cloud into second data, and the second data includes fourth information, fifth information and sixth information arranged in sequence, wherein the fourth information corresponds to part or all of the fourth coordinates included in the second point cloud, the fifth information corresponds to part or all of the fifth coordinates included in the second point cloud, and the sixth information corresponds to part or all of the sixth coordinates included in the second point cloud, and the fourth coordinate, the fifth coordinate and the sixth coordinate are included in the second three-dimensional coordinate information.
[0044] The first processing unit performs point cloud registration on the first data and the second data.
[0045] In this embodiment of the present application, the second processing unit acquires a first point cloud and a second point cloud. The first processing unit then obtains the first and second point clouds from the second processing unit and converts the first and second point clouds into first and second data. The first processing unit then performs point cloud registration on the first and second data. This example fully leverages the capabilities of the SIMD architecture to improve algorithm deployment performance. Furthermore, heterogeneous algorithm deployment combines the flexibility of the CPU with the parallel computing capabilities of the SIMD architecture, further reducing algorithm execution time and improving algorithm deployment performance.
[0046] In a possible implementation, the first processing unit further performs rasterization processing on the second data to obtain third data;
[0047] The second processing unit obtains the third data from the first processing unit;
[0048] The second processing unit performs normal distribution calculation based on the third data to obtain fourth data;
[0049] The first processing unit obtains the fourth data from the second processing unit;
[0050] The first processing unit performs point cloud registration on the third data and the first data based on the fourth data.
[0051] In a possible implementation, performing point cloud registration on the third data and the first data based on the fourth data includes:
[0052] The third data and the first data are initially registered based on the fourth data.
[0053] In a possible implementation, the performing a first registration on the third data and the first data based on the fourth data includes:
[0054] Acquire a first transformation parameter, and obtain fifth data based on the first transformation parameter and the first data;
[0055] Calculate and obtain a first registration optimization parameter based on the fourth data and the fifth data;
[0056] Second transformation parameters are obtained based on the first registration optimization parameters.
[0057] In a possible implementation, the calculating the first registration optimization parameter based on the fourth data and the fifth data includes:
[0058] obtaining sixth data based on the fourth data and the fifth data, wherein the sixth data is data in the third data corresponding to the fifth data;
[0059] The first registration optimization parameter is obtained based on the sixth data and the fifth data.
[0060] In a possible implementation, the method further includes:
[0061] When the preset conditions are not met, the fifth data and the third data are iteratively aligned based on the second transformation parameters, the fifth data, and the third data, wherein the second transformation parameters and the fifth data are both obtained based on the first alignment, and the fifth data corresponds to the first data.
[0062] In a possible implementation, the iterative registration includes an i-th iterative registration, where i is an integer not less than 1, and the i-th iterative registration includes the following steps:
[0063] S1, based on the transformation parameter t i-1 For data Y i-1 Align with the third data to obtain data Y i , the data Y i-1 is the data after the fifth data and the third data are iteratively registered for the i-1th time; the transformation parameter t i-1 are the transformation parameters after performing the i-1th iterative registration on the fifth data and the third data based on the second transformation parameters;
[0064] S2. Parallel traversal search for the data Y i , get data P i , the data P i Including the data Y in the third data and the data Y in the traversal search i Data whose distance is not greater than the preset value;
[0065] S3, based on the data P i Arrange the data Y continuously i A data pair comprising the fourth data and the data Y i The corresponding data P i Corresponding data, the data Y i Regarding the transformation parameters, the data Y i The parameters of the transformation are based on the data Y i , the fourth data is obtained by parallel calculation;
[0066] S4. Based on the data Y i The data pairs are parallel calculated to obtain the registration optimization parameter U i ;
[0067] S5, based on the registration optimization parameter U i Get the transformation parameter t i ;
[0068] S6, confirm whether the preset condition is met, if so, execute step S7; if not, execute step S8;
[0069] S7, stop the iterative registration, and set the transformation parameter t i As a result of said iterative registration;
[0070] S8, let i=i+1, and repeat steps S1-S6; wherein, when i=1, the transformation parameter t i-1 is the second transformation parameter, the data Y i-1 is the fifth data.
[0071] In a possible implementation, the method further includes:
[0072] When a preset condition is met, the second transformation parameter is used as the result of the first registration.
[0073] In one possible implementation, the first processing unit includes at least two SIMD units, wherein a target SIMD unit is selected from the at least two SIMD units based on at least one of the data volume of the first data and the second data and the computing power of the at least two SIMD units to execute part or all of the steps in the data processing method.
[0074] In a third aspect, the present application provides a data processing device, comprising: an acquisition module, configured to acquire a first point cloud and a second point cloud, wherein the first point cloud includes a plurality of first sampling points, the second point cloud includes a plurality of second sampling points, the first sampling points include first three-dimensional coordinate information, and the second sampling points include second three-dimensional coordinate information;
[0075] a conversion module, configured to convert the first point cloud into first data, the first data comprising first information, second information, and third information arranged in sequence, wherein the first information corresponds to part or all of the first coordinates included in the first point cloud, the second information corresponds to part or all of the second coordinates included in the first point cloud, and the third information corresponds to part or all of the third coordinates included in the first point cloud, and the first coordinates, the second coordinates, and the third coordinates are included in the first three-dimensional coordinate information;
[0076] The conversion module is further configured to convert the second point cloud into second data, the second data comprising fourth information, fifth information, and sixth information arranged in sequence, wherein the fourth information corresponds to part or all of the fourth coordinates included in the second point cloud, the fifth information corresponds to part or all of the fifth coordinates included in the second point cloud, and the sixth information corresponds to part or all of the sixth coordinates included in the second point cloud, and the fourth coordinates, the fifth coordinates, and the sixth coordinates are included in the second three-dimensional coordinate information;
[0077] A processing module is used to perform point cloud registration on the first data and the second data.
[0078] In a possible implementation, the processing module is configured to:
[0079] performing rasterization processing on the second data to obtain third data;
[0080] Acquiring fourth data, wherein the fourth data is associated with the third data and a normal distribution calculation;
[0081] Point cloud registration is performed on the third data and the first data based on the fourth data.
[0082] In a possible implementation, the processing module is further configured to:
[0083] The third data and the first data are initially registered based on the fourth data.
[0084] In a possible implementation, the processing module is further configured to:
[0085] Acquire a first transformation parameter, and obtain fifth data based on the first transformation parameter and the first data;
[0086] Calculate and obtain a first registration optimization parameter based on the fourth data and the fifth data;
[0087] Second transformation parameters are obtained based on the first registration optimization parameters.
[0088] In a possible implementation, the processing module is further configured to:
[0089] obtaining sixth data based on the fourth data and the fifth data, wherein the sixth data is data in the third data corresponding to the fifth data;
[0090] The first registration optimization parameter is obtained based on the sixth data and the fifth data.
[0091] In a possible implementation, the processing module is further configured to:
[0092] When the preset conditions are not met, the fifth data and the third data are iteratively aligned based on the second transformation parameters, the fifth data, and the third data, wherein the second transformation parameters and the fifth data are both obtained based on the first alignment, and the fifth data corresponds to the first data.
[0093] In a possible implementation, the iterative registration includes an i-th iterative registration, where i is an integer not less than 1, and the processing module is further configured to:
[0094] S1, based on the transformation parameter t i-1 For data Y i-1 Align with the third data to obtain data Y i , the data Y i-1 is the data after the fifth data and the third data are iteratively registered for the i-1th time; the transformation parameter t i-1 are the transformation parameters after performing the i-1th iterative registration on the fifth data and the third data based on the second transformation parameters;
[0095] S2. Parallel traversal search for the data Y i , get data P i , the data P i Including the data Y in the third data and the data Y in the traversal search iData whose distance is not greater than the preset value;
[0096] S3, based on the data P i Arrange the data Y continuously i A data pair comprising the fourth data and the data Y i The corresponding data P i Corresponding data, the data Y i Regarding the transformation parameters, the data Y i The parameters of the transformation are based on the data Y i , the fourth data is obtained by parallel calculation;
[0097] S4. Based on the data Y i The data pairs are parallel calculated to obtain the registration optimization parameter U i ;
[0098] S5, based on the registration optimization parameter U i Get the transformation parameter t i ;
[0099] S6, confirm whether the preset condition is met, if so, execute step S7; if not, execute step S8;
[0100] S7, stop the iterative registration, and set the transformation parameter t i As a result of said iterative registration;
[0101] S8, let i=i+1, and repeat steps S1-S6; wherein, when i=1, the transformation parameter t i-1 is the second transformation parameter, the data Y i-1 is the fifth data.
[0102] In a possible implementation, the processing module is further configured to:
[0103] When a preset condition is met, the second transformation parameter is used as the result of the first registration.
[0104] In one possible implementation, the processing module is further used to select a target SIMD unit from the at least two SIMD units to run some or all of the steps in the data processing method based on at least one of the data volume of the first data and the second data and the computing power of the at least two SIMD units.
[0105] In a fourth aspect, the present application provides a data processing device comprising a processor and a memory; wherein the memory is used to store program code, and the processor is used to call the program code to execute a method provided in any possible implementation manner of the first aspect.
[0106] In a fifth aspect, the present application provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and the computer program is executed by a processor to implement the method provided in any possible implementation manner of the first aspect.
[0107] In a sixth aspect, the present application provides a computer program product, which, when executed on a computer, enables the computer to execute the method provided in any possible implementation of the first aspect.
[0108] In a seventh aspect, the present application provides a data processing system, which is used to execute the method provided in any possible implementation of the second aspect.
[0109] It is understandable that the apparatus described in the third aspect, the apparatus described in the fourth aspect, the computer-readable storage medium described in the fifth aspect, the computer program product described in the sixth aspect, or the data processing system described in the seventh aspect are all used to execute any of the methods provided in the first aspect or any of the methods provided in the second aspect. Therefore, the beneficial effects that can be achieved can be referenced to the beneficial effects of the corresponding methods and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS
[0110] The following is an introduction to the drawings used in the embodiments of this application.
[0111] FIG1 is a schematic diagram of the architecture of a data processing system provided in an embodiment of the present application;
[0112] FIG2 is a flow chart of a data processing method provided in an embodiment of the present application;
[0113] FIG3 is a schematic diagram of an adaptive selection SIMD unit provided in an embodiment of the present application;
[0114] FIG4 is a flow chart of another data processing method provided in an embodiment of the present application;
[0115] FIG5 is a schematic structural diagram of a data processing device provided in an embodiment of the present application;
[0116] FIG6 is a schematic structural diagram of another data processing device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0117] The following describes the embodiments of the present application in conjunction with the accompanying drawings. The terms used in the implementation methods of the embodiments of the present application are only used to explain the specific embodiments of the present application and are not intended to limit the present application.
[0118] For ease of understanding, the following examples provide some explanations of concepts related to the embodiments of the present application for reference.
[0119] 1. Single Instruction Multiple Data (SIMD) unit
[0120] For example, in a single-instruction, single-data (SI / DD) CPU, after decoding an addition instruction, the execution unit first accesses memory to obtain the first operand, then accesses memory again to obtain the second operand, and only then can the sum be performed. In contrast, in a SIMD unit, after instruction decoding, the execution unit accesses memory to obtain all operands at once for calculation. This feature makes SIMD particularly suitable for data-intensive operations such as multimedia applications.
[0121] The above exemplary description of the concepts can be applied in the following embodiments.
[0122] The system architecture of the embodiment of the present application will be described in detail below with reference to the accompanying drawings. Please refer to Figure 1, which is a schematic diagram of a data processing system applicable to the embodiment of the present application, the system including a first processing unit 101 and a second processing unit 102 connected. Among them: the first processing unit 101 includes at least one single instruction multiple data SIMD unit. For example, the at least one SIMD unit can be one or more of an artificial intelligence (AI) core Core, a vector Vector Core, and a scalable vector extension (SVE). The second processing unit 102 can be, for example, a CPU.
[0123] In the embodiment of the present application, multiple data can be calculated in parallel based on the first processing unit, which can improve data processing efficiency.
[0124] The above describes the architecture of the embodiment of the present application. The following describes the method of the embodiment of the present application in detail.
[0125] 2 , which is a flow chart of a data processing method provided by an embodiment of the present application. Optionally, the method can be applied to the aforementioned data processing system, such as the data processing system shown in FIG1 . The data processing method shown in FIG2 may include steps 201-204. It should be understood that this application is described in the order of 201-204 for the convenience of description, and is not intended to limit execution to the above order. The embodiment of the present application does not limit the order of execution, execution time, number of executions, etc. of the above one or more steps. The following description is made by taking the execution subject of steps 201-204 of the data processing method as the first processing unit as an example, and the present application is also applicable to other execution subjects. Steps 201-204 are as follows:
[0126] 201. Acquire a first point cloud and a second point cloud, where the first point cloud includes a plurality of first sampling points, the second point cloud includes a plurality of second sampling points, the first sampling points include first three-dimensional coordinate information, and the second sampling points include second three-dimensional coordinate information.
[0127] The first point cloud can be, for example, a source point cloud. The second point cloud can be, for example, a target point cloud (or referred to as a reference point cloud, a point cloud to be registered, etc.). For example, for an autonomous driving scenario, the first point cloud (such as a source point cloud) is usually the lidar scanning data of the vehicle at the current moment (the point cloud obtained by sensors such as lidar can construct a three-dimensional environment model around the vehicle); the second point cloud (such as a target point cloud) can be the lidar scanning data of the vehicle at a certain moment in the past. Exemplarily, the second point cloud can be the point cloud in the first frame image of the autonomous driving scene, and the first point cloud can be the point cloud in the Nth frame image, where N is an integer greater than 1.
[0128] The first sampling point includes first three-dimensional coordinate information, such as (x, y, z). Optionally, the first sampling point also includes other attribute information, such as point intensity or reflection intensity, which is not limited in this solution. For the second sampling point, please refer to the description of the first sampling point and will not be repeated here.
[0129] 202. Convert the first point cloud into first data, wherein the first data includes first information, second information, and third information arranged in order, wherein the first information corresponds to part or all of the first coordinates included in the first point cloud, the second information corresponds to part or all of the second coordinates included in the first point cloud, and the third information corresponds to part or all of the third coordinates included in the first point cloud, and the first coordinate, the second coordinate, and the third coordinate are included in the first three-dimensional coordinate information.
[0130] The first data is the memory arrangement data obtained by converting the source point cloud. For example, the first coordinate is x, the second coordinate is y, and the third coordinate is z. The first point cloud includes point P1 (x1, y1, z1), point P2 (x2, y2, z2), point P3 (x3, y3, z3), point P4 (x4, y4, z4)... The first information can be expressed as x1, x2, x3, x4... The second information can be expressed as y1, y2, y3, y4... The third information can be expressed as z1, z2, z3, z4... Correspondingly, the first data can be expressed as x1, x2, x3, x4... y1, y2, y3, y4... z1, z2, z3, z4...
[0131] The first coordinates, second coordinates, and third coordinates corresponding to the first point cloud are sequentially arranged, the first coordinates corresponding to the first point cloud are marked together, the second coordinates corresponding to the first point cloud are marked together, and the third coordinates corresponding to the first point cloud are marked together to obtain first data. This first data is parallel data compatible with the SIMD architecture, which helps improve data processing efficiency and registration efficiency in subsequent point cloud registration.
[0132] It can be understood that the first information can also be part of the first coordinates included in the corresponding first point cloud, the second information can also be part of the second coordinates included in the corresponding first point cloud, and the third information can also be part of the third coordinates included in the corresponding first point cloud. This solution does not impose any restrictions on this.
[0133] 203. Convert the second point cloud into second data, wherein the second data includes fourth information, fifth information and sixth information arranged in order, wherein the fourth information corresponds to part or all of the fourth coordinates included in the second point cloud, the fifth information corresponds to part or all of the fifth coordinates included in the second point cloud, and the sixth information corresponds to part or all of the sixth coordinates included in the second point cloud, and the fourth coordinate, the fifth coordinate and the sixth coordinate are included in the second three-dimensional coordinate information.
[0134] The second data is the memory arrangement data obtained by converting the target point cloud. For an introduction to the second data, please refer to the description of the first data above and will not be repeated here. It is understood that the fourth coordinate can correspond to the aforementioned x, the fifth coordinate can correspond to the aforementioned y, the sixth coordinate can correspond to the aforementioned z, and so on, and this solution does not impose any restrictions on this.
[0135] The fourth coordinate, the fifth coordinate, and the sixth coordinate corresponding to the second point cloud are arranged in sequence to obtain second data. This second data is parallel data compatible with the SIMD architecture, which helps improve data processing efficiency and registration efficiency in subsequent point cloud registration.
[0136] 204. Perform point cloud registration on the first data and the second data.
[0137] Performing point cloud registration based on the first data and the second data to obtain transformation parameters to achieve registration of the first point cloud and the second point cloud. The transformation parameters may be, for example, rotation and translation change parameters [R, t], where R is a rotation matrix and t is a translation variable.
[0138] Point cloud registration technology can effectively compare and fuse point cloud data acquired at different times and locations, enabling precise vehicle positioning and real-time perception of environmental changes. Furthermore, point cloud registration technology can be used for path planning and decision-making in autonomous vehicles. For example, by comparing the vehicle's current point cloud data with pre-set map data, it can identify road shape, lane markings, traffic signs, and other information, helping the vehicle make correct driving decisions.
[0139] In a possible implementation, step 204 may include steps 2041-2043, which are specifically as follows:
[0140] 2041. Perform rasterization processing on the second data to obtain third data.
[0141] For example, based on the resolution of the initialized grid, the second data is downsampled to a grid of fixed length to obtain the third data.
[0142] 2042. Obtain fourth data, wherein the fourth data is associated with the third data and a normal distribution calculation.
[0143] Exemplarily, the fourth data may be parameters of a normal distribution probability density function (PDF). For example, based on the mean and covariance matrix (reflecting the distribution discreteness of each grid) of the point cloud (i.e., the third data) in each grid, a normal distribution for each grid may be constructed.
[0144] In one possible implementation, the first processing unit may perform normal distribution calculation based on the third data to obtain the fourth data. In another possible implementation, the first processing unit may obtain the fourth data from another processing unit (such as the second processing unit).
[0145] 2043. Perform point cloud registration on the third data and the first data based on the fourth data.
[0146] This example is based on rasterizing the second data and then performing point cloud registration, which can effectively process large point clouds (point clouds in grid dimensions) and improve the accuracy and stability of matching.
[0147] In a possible implementation, step 2043 may include: performing a first registration on the third data and the first data based on the fourth data.
[0148] The first registration, that is, the first registration of the third data and the first data, is to map the first data into the coordinate system of the third data.
[0149] In a possible implementation, the performing the first registration of the third data and the first data based on the fourth data includes steps A1 to A3, which are specifically as follows:
[0150] A1. Obtain a first transformation parameter, and obtain fifth data based on the first transformation parameter and the first data.
[0151] The first transformation parameter may be an initial transformation parameter obtained by zero initialization or by using odometer data. The fifth data is a transformed point cloud obtained by first registering the first data.
[0152] A2. Calculate and obtain a first registration optimization parameter based on the fourth data and the fifth data.
[0153] The first registration optimization parameter may include, for example, one or more parameters of the transformed point cloud probability density, the Normal Distributions Transform (NDT) registration score, the gradient of the score (such as the Jacobian matrix), and the Hessian matrix.
[0154] In one possible implementation, sixth data is obtained based on the fourth data and the fifth data. The sixth data is data in the third data corresponding to the fifth data. For example, the sixth data may be a grid containing the third data corresponding to the fifth data. Furthermore, the first registration optimization parameter is obtained based on the sixth data and the fifth data.
[0155] A3. Obtain second transformation parameters based on the first registration optimization parameters.
[0156] That is, based on the first registration, updated transformation parameters (ie, second transformation parameters) can be obtained. Based on the above process, the first registration is completed.
[0157] In a possible implementation, when a preset condition is met, the second transformation parameter is used as the result of the first registration.
[0158] For example, the preset condition may be that a preset number of registrations has been reached. Alternatively, the preset condition may be that a change in a preset optimization amount is less than a preset threshold. For example, the preset optimization amount may be a transformation parameter. When the difference between two adjacent transformation parameters is less than a preset threshold, the preset condition is met. Of course, the preset optimization amount may also be other parameters, which are not limited in this solution. When the preset condition is met, registration is terminated.
[0159] In a possible implementation, when the preset condition is not met, the fifth data and the third data are iteratively registered based on the second transformation parameter, the fifth data, and the third data. The iterative registration is repeated multiple times.
[0160] In a possible implementation, the iterative registration includes an i-th iterative registration, where i is an integer not less than 1, and the i-th iterative registration includes the following steps:
[0161] S1, based on the transformation parameter t i-1 For data Y i-1 Align with the third data to obtain data Y i .
[0162] Among them, the data Y i-1 The transformation parameter t is the data obtained by performing the i-1th iteration registration on the fifth data and the third data. i-1 are transformation parameters obtained after the fifth data and the third data are iteratively registered for the i-1th time based on the second transformation parameters.
[0163] S2. Parallel traversal search for the data Y i , get data P i , the data P i Including the data Y in the third data and the data Y in the traversal search i Data whose distance is not greater than the preset value.
[0164] This example uses the data Y i The parallel traversal radius neighborhood search is used as an example to introduce it. Of course, other search methods can also be used, and this solution does not limit this. i It can also be called the effective point cloud P i By performing this search, valid point clouds that the current point cloud can be matched with with a high probability can be screened out, thereby improving the matching accuracy and stability.
[0165] S3, based on the data P i Arrange the data Y continuously i A data pair comprising the fourth data and the data Y iThe corresponding data P i Corresponding data, the data Y i Regarding the transformation parameters, the data Y i The parameters of the transformation are based on the data Y i , the fourth data is obtained by parallel calculation.
[0166] Among them, for any source point cloud, based on the above radius neighborhood search, multiple valid point clouds can be obtained. By arranging the multiple valid point clouds corresponding to the source point cloud, multiple data pairs can be obtained. The data pair may include data Y i The corresponding normal distribution parameter (i.e. the fourth data and the data Y i The corresponding data P i Corresponding data), data Y i Regarding the parameters of the transformation (such as data Y i About the transformed gradient data and Hessian matrix parameters) etc.
[0167] By arranging the above data pairs continuously, the requirements of parallel computing can be met and the matching efficiency can be improved.
[0168] S4. Based on the data Y i The data pairs are parallel calculated to obtain the registration optimization parameter U i .
[0169] S5, based on the registration optimization parameter U i Get the transformation parameter t i .
[0170] S6. Confirm whether the preset condition is met. If so, execute step S7; if not, execute step S8.
[0171] For example, it is determined whether the current number of iterations i has reached the preset number of registrations. Or, based on the transformation parameter t i and transformation parameter t i-1 The difference between the values of the transformation parameters obtained by the iterative registration at the i-1th time is compared with a preset threshold to determine whether the preset condition is met.
[0172] S7, stop the iterative registration, and set the transformation parameter t i As a result of the iterative registration.
[0173] S8, let i=i+1, and repeat steps S1-S6; wherein, when i=1, the transformation parameter t i-1 is the second transformation parameter, and the data Yi-1 is the fifth data.
[0174] Based on the above iterative registration, the registration of the first point cloud and the second point cloud can be achieved.
[0175] In an embodiment of the present application, a first point cloud and a second point cloud are respectively converted into first data and second data, wherein the first data includes first information, second information, and third information arranged in sequence, wherein the first information corresponds to part or all of the first coordinates included in the first point cloud, the second information corresponds to part or all of the second coordinates included in the first point cloud, and the third information corresponds to part or all of the third coordinates included in the first point cloud; and the second data includes fourth information, fifth information, and sixth information arranged in sequence, wherein the fourth information corresponds to part or all of the fourth coordinates included in the second point cloud, the fifth information corresponds to part or all of the fifth coordinates included in the second point cloud, and the sixth information corresponds to part or all of the sixth coordinates included in the second point cloud, thereby performing point cloud registration on the first data and the second data. By adopting this method, since the first data and the second data (as well as the third data, the fourth data, the fifth data, the sixth data, etc.) are all parallel data compatible with the SIMD architecture, the real-time performance of the algorithm is improved, the deployment performance of the algorithm is improved, and the efficiency of point cloud registration is improved.
[0176] Among them, the embodiment shown in Figure 2 is introduced by taking the first processing unit to perform data processing as an example. In one possible implementation, the first processing unit may include at least two SIMD units. Exemplarily, the at least two SIMD units may include one or more of an artificial intelligence (AI) core Core computing unit, a vector Vector Core computing unit, and a scalable vector extension (SVE) computing unit. Exemplarily, the AI Core computing unit is used for calculation, reasoning, etc. of artificial intelligence models. The Vector Core computing unit is used for vector calculations. SVE is a SIMD instruction set supported by the CPU.
[0177] In a possible implementation, as shown in FIG3 , a target SIMD unit is selected from the at least two SIMD units based on the data amounts of the first data and the second data to execute part or all of the steps in the data processing method shown in FIG2 .
[0178] For example, when the amount of the first data and the second data is small (e.g., less than a preset value), the computing performance of the SVE is better than that of the AI Core and the Vector Core, and therefore the SVE is used to execute some or all of the steps in the data processing method shown in Figure 2. For another example, when the amount of the first data and the second data is large (e.g., greater than a preset value), the performance of the AI Core and the Vector Core is significantly better than that of the SVE, and therefore the AI Core is used to execute some or all of the steps in the data processing method shown in Figure 2, or the Vector Core is used to execute some or all of the steps in the data processing method shown in Figure 2, or the AI Core and the Vector Core can be used together to execute some or all of the steps in the data processing method shown in Figure 2.
[0179] Optionally, by extracting parallel acceleration operators from the data processing method shown in Figure 2, and providing multiple sets of different implementations (such as different codes or instructions, etc.) to adapt to the three SIMD units of AI Core, Vector Core and SVE. Then, a mapping table is established according to the data volume of different input data and its performance on the three SIMD units. Ultimately, the above data processing method can adaptively select different SIMD units according to the data volume of the first data and the second data during operation.
[0180] In another possible implementation, based on the computing power of the at least two SIMD units, a target SIMD unit is selected from the at least two SIMD units to execute part or all of the steps in the data processing method.
[0181] The target SIMD unit is determined based on the different computing power of the SIMD units. For example, although different chips may have AI Cores, the number of cores may vary, and the performance computing power of each core may also vary.
[0182] Of course, the target SIMD unit can also be determined based on the different architectures of the hardware resources. Different architectures will have different performance for different computations (the design of the computing architecture includes the number of processor cores, the type of arithmetic units (such as floating-point units, vector arithmetic units, etc.), the memory hierarchy, the interconnection network, etc.). This solution does not impose any restrictions on this.
[0183] In another possible implementation, based on the data volume of the first data and the second data and the computing power of the at least two SIMD units, a target SIMD unit is selected from the at least two SIMD units to execute some or all of the steps in the data processing method. That is, the target SIMD unit is comprehensively selected based on the above two aspects. For example, when the data volume of the first data and the second data is small and the computing power of the SVE is adapted to the current needs, the SVE is used to execute some or all of the steps in the data processing method shown in Figure 2.
[0184] In this example, based on at least one of the data volume of the first data and the second data and the computing power of the at least two SIMD units, a target SIMD unit is selected from the at least two SIMD units to execute part or all of the steps in the data processing method, thereby enabling the coordinated deployment of adaptive heterogeneous hardware computing units.
[0185] Referring to Figure 4, it is a flow chart of another data processing method provided by an embodiment of the present application. Optionally, the method can be applied to the aforementioned data processing system, such as the data processing system shown in Figure 1. The data processing method shown in Figure 4 may include steps 401-405. It should be understood that this application is described in the order of 401-405 for the convenience of description, and is not intended to limit execution to the above order. The embodiment of the present application does not limit the order of execution, execution time, number of executions, etc. of the above one or more steps. The following description is based on the example that the execution subject of step 401 of the data processing method is the second processing unit and the execution subject of 402-405 is the first processing unit. This application is also applicable to other execution subjects. Steps 401-405 are as follows:
[0186] 401. A second processing unit obtains a first point cloud and a second point cloud, where the first point cloud includes a plurality of first sampling points, the second point cloud includes a plurality of second sampling points, the first sampling points include first three-dimensional coordinate information, and the second sampling points include second three-dimensional coordinate information.
[0187] For example, the second processing unit may be a CPU. It may obtain the first point cloud and the second point cloud from a memory or a lidar. For an introduction to the first point cloud and the second point cloud, please refer to the description of step 201 in the embodiment shown in FIG. 2 , and will not be repeated here.
[0188] 402. The first processing unit obtains the first point cloud and the second point cloud from the second processing unit.
[0189] The first processing unit may include, for example, at least one SIMD unit.
[0190] 403. The first processing unit converts the first point cloud into first data, wherein the first data includes first information, second information, and third information arranged in sequence, wherein the first information corresponds to part or all of the first coordinates included in the first point cloud, the second information corresponds to part or all of the second coordinates included in the first point cloud, and the third information corresponds to part or all of the third coordinates included in the first point cloud, and the first coordinate, the second coordinate, and the third coordinate are included in the first three-dimensional coordinate information.
[0191] For the introduction of this part, please refer to the description of step 202 in the embodiment shown in FIG. 2 , which will not be repeated here.
[0192] 404. The first processing unit converts the second point cloud into second data, the second data including fourth information, fifth information and sixth information arranged in sequence, wherein the fourth information corresponds to part or all of the fourth coordinates included in the second point cloud, the fifth information corresponds to part or all of the fifth coordinates included in the second point cloud, the sixth information corresponds to part or all of the sixth coordinates included in the second point cloud, and the fourth coordinate, the fifth coordinate and the sixth coordinate are included in the second three-dimensional coordinate information.
[0193] For the introduction of this part, please refer to the description of step 203 in the embodiment shown in FIG. 2 , which will not be repeated here.
[0194] 405. The first processing unit performs point cloud registration on the first data and the second data.
[0195] For the introduction of this part, please refer to the description of step 204 in the embodiment shown in FIG. 2 , which will not be repeated here.
[0196] In a possible implementation, the first processing unit further performs rasterization processing on the second data to obtain third data.
[0197] The second processing unit obtains the third data from the first processing unit and performs a normal distribution calculation based on the third data to obtain fourth data. For example, the second processing unit obtains the mean and covariance matrix (reflecting the distribution discreteness of each grid) of the point cloud (i.e., the third data) in each grid, and then constructs a normal distribution (i.e., the fourth data) for each grid.
[0198] The first processing unit obtains the fourth data from the second processing unit. Furthermore, the first processing unit performs point cloud registration on the third data and the first data based on the fourth data.
[0199] For the introduction of this part, please refer to the description of step 204 in the embodiment shown in FIG. 2 (such as steps 2041 to 2043 ), which will not be repeated here.
[0200] In a possible implementation, the first processing unit performs point cloud registration on the third data and the first data based on the fourth data, including: performing a first registration on the third data and the first data based on the fourth data.
[0201] Regarding the manner in which the first processing unit performs the first registration, reference may be made to the description of step 204 in the embodiment shown in FIG. 2 , which will not be repeated here.
[0202] In a possible implementation, when a preset condition is met, the first processing unit uses the second transformation parameter as the result of the first registration.
[0203] In a possible implementation, when the preset condition is not met, the first processing unit iteratively aligns the fifth data with the third data based on the second transformation parameter, the fifth data, and the third data.
[0204] Regarding the manner in which the first processing unit performs iterative registration, reference may be made to the description of step 204 in the embodiment shown in FIG. 2 , which will not be repeated here.
[0205] In this embodiment of the present application, the second processing unit acquires a first point cloud and a second point cloud. The first processing unit then obtains the first and second point clouds from the second processing unit and converts the first and second point clouds into first and second data. The first processing unit then performs point cloud registration on the first and second data. This example fully leverages the capabilities of the SIMD architecture to improve algorithm deployment performance. Furthermore, heterogeneous algorithm deployment combines the flexibility of the CPU with the parallel computing capabilities of the SIMD architecture, further reducing algorithm execution time and improving algorithm deployment performance.
[0206] It should be noted that in the various embodiments of the present application, unless otherwise specified or there is a logical conflict, the terms and / or descriptions between the various embodiments are consistent and can be referenced by each other. The technical features in different embodiments can be combined to form new embodiments according to their internal logical relationships.
[0207] The above describes in detail the method of the embodiment of the present application, and the following provides the device of the embodiment of the present application. It will be understood that in the various device embodiments of the present application, the division of multiple units or modules is only a logical division based on function, and is not intended to limit the specific structure of the device. In a specific implementation, some functional modules may be subdivided into more small functional modules, and some functional modules may be combined into one functional module, but no matter whether these functional modules are subdivided or combined, the general process performed by the device is the same. For example, some devices include a receiving unit and a sending unit. In some designs, the sending unit and the receiving unit can also be integrated into a communication unit, which can implement the functions implemented by the receiving unit and the sending unit. Typically, each unit corresponds to its own program code (or program instructions), and when the program code corresponding to each of these units runs on the processor, the unit is controlled by the processing unit to execute the corresponding process to implement the corresponding function.
[0208] The embodiments of the present application also provide an apparatus for implementing any of the above methods. For example, a data processing apparatus is provided that includes modules (or means) for implementing each step performed by the first processing unit in any of the above methods.
[0209] For example, referring to Figure 5 , which is a schematic diagram of the structure of a data processing device provided in an embodiment of the present application, the data processing device is used to implement the aforementioned data processing method, such as the data processing method shown in Figure 2 .
[0210] As shown in FIG5 , the apparatus may include an acquisition module 501, a conversion module 502, and a processing module 503, specifically as follows:
[0211] An acquisition module 501 is configured to acquire a first point cloud and a second point cloud, wherein the first point cloud includes a plurality of first sampling points, the second point cloud includes a plurality of second sampling points, the first sampling points include first three-dimensional coordinate information, and the second sampling points include second three-dimensional coordinate information;
[0212] a conversion module 502 configured to convert the first point cloud into first data, the first data comprising first information, second information, and third information arranged in sequence, wherein the first information corresponds to part or all of the first coordinates included in the first point cloud, the second information corresponds to part or all of the second coordinates included in the first point cloud, and the third information corresponds to part or all of the third coordinates included in the first point cloud, and the first coordinates, the second coordinates, and the third coordinates are included in the first three-dimensional coordinate information;
[0213] The conversion module 502 is further configured to convert the second point cloud into second data, the second data including fourth information, fifth information, and sixth information arranged in sequence, wherein the fourth information corresponds to part or all of the fourth coordinates included in the second point cloud, the fifth information corresponds to part or all of the fifth coordinates included in the second point cloud, and the sixth information corresponds to part or all of the sixth coordinates included in the second point cloud, and the fourth coordinates, the fifth coordinates, and the sixth coordinates are included in the second three-dimensional coordinate information;
[0214] The processing module 503 is configured to perform point cloud registration on the first data and the second data.
[0215] In a possible implementation, the processing module 503 is configured to:
[0216] performing rasterization processing on the second data to obtain third data;
[0217] Acquiring fourth data, wherein the fourth data is associated with the third data and a normal distribution calculation;
[0218] Point cloud registration is performed on the third data and the first data based on the fourth data.
[0219] In a possible implementation, the processing module 503 is further configured to:
[0220] The third data and the first data are initially registered based on the fourth data.
[0221] In a possible implementation, the processing module 503 is further configured to:
[0222] Acquire a first transformation parameter, and obtain fifth data based on the first transformation parameter and the first data;
[0223] Calculate and obtain a first registration optimization parameter based on the fourth data and the fifth data;
[0224] Second transformation parameters are obtained based on the first registration optimization parameters.
[0225] In a possible implementation, the processing module 503 is further configured to:
[0226] obtaining sixth data based on the fourth data and the fifth data, wherein the sixth data is data in the third data corresponding to the fifth data;
[0227] The first registration optimization parameter is obtained based on the sixth data and the fifth data.
[0228] In a possible implementation, the processing module 503 is further configured to:
[0229] When the preset conditions are not met, the fifth data and the third data are iteratively aligned based on the second transformation parameters, the fifth data, and the third data, wherein the second transformation parameters and the fifth data are both obtained based on the first alignment, and the fifth data corresponds to the first data.
[0230] In a possible implementation, the iterative registration includes an i-th iterative registration, where i is an integer not less than 1, and the processing module 503 is further configured to:
[0231] S1, based on the transformation parameter t i-1 For data Y i-1 Align with the third data to obtain data Y i , the data Y i-1 is the data after the fifth data and the third data are iteratively registered for the i-1th time; the transformation parameter t i-1 are the transformation parameters after performing the i-1th iterative registration on the fifth data and the third data based on the second transformation parameters;
[0232] S2. Parallel traversal search for the data Y i , get data P i , the data P i Including the data Y in the third data and the data Y in the traversal search i Data whose distance is not greater than the preset value;
[0233] S3, based on the data P i Arrange the data Y continuously i A data pair comprising the fourth data and the data Y i The corresponding data P i Corresponding data, the data Y i Regarding the transformation parameters, the data Y i The parameters of the transformation are based on the data Y i , the fourth data is obtained by parallel calculation;
[0234] S4. Based on the data Y i The data pairs are parallel calculated to obtain the registration optimization parameter U i ;
[0235] S5, based on the registration optimization parameter U i Get the transformation parameter t i ;
[0236] S6, confirm whether the preset condition is met, if so, execute step S7; if not, execute step S8;
[0237] S7, stop the iterative registration, and set the transformation parameter t i As a result of said iterative registration;
[0238] S8, let i=i+1, and repeat steps S1-S6; wherein, when i=1, the transformation parameter t i-1 is the second transformation parameter, the data Y i-1 is the fifth data.
[0239] In a possible implementation, the processing module 503 is further configured to:
[0240] When a preset condition is met, the second transformation parameter is used as the result of the first registration.
[0241] In one possible implementation, the processing module 503 is further used to select a target SIMD unit from the at least two SIMD units to run some or all of the steps in the data processing method based on at least one of the data volume of the first data and the second data and the computing power of the at least two SIMD units.
[0242] The introduction of the above modules can be found in the description of the above embodiments and will not be repeated here.
[0243] It should be understood that the division of the modules in the above-mentioned devices is merely a division of logical functions. In actual implementation, they may be fully or partially integrated into a single physical entity, or they may be physically separated. In addition, the modules in the data processing device may be implemented in the form of a processor calling software; for example, the data processing device includes a processor, the processor is connected to a memory, and the memory stores instructions. The processor calls the instructions stored in the memory to implement any of the above methods or the functions of the modules of the device, wherein the processor is, for example, a general-purpose processor such as a SIMD, a central processing unit (CPU), or a microprocessor, and the memory is a memory within the device or a memory outside the device. Alternatively, the modules in the device can be implemented in the form of hardware circuits, and the functions of some or all units can be realized by designing the hardware circuits. The hardware circuit can be understood as one or more processors. For example, in one implementation, the hardware circuit is an application-specific integrated circuit (ASIC), which realizes the functions of some or all of the above units by designing the logical relationship of the components in the circuit. For another example, in another implementation, the hardware circuit can be implemented by a programmable logic device (PLD). Taking a field programmable gate array (FPGA) as an example, it can include a large number of logic gate circuits, and the connection relationship between the logic gate circuits is configured by configuring the configuration file, thereby realizing the functions of some or all of the above units. All modules of the above devices can be implemented in the form of software called by the processor, or in the form of hardware circuits, or in part by the form of software called by the processor, and the rest by hardware circuits.
[0244] 6 is a schematic diagram of the hardware structure of another data processing device provided in an embodiment of the present application. The data processing device 600 shown in FIG6 (the device 600 may be a computer device) includes a memory 601, a processor 602, a communication interface 603, and a bus 604. The memory 601, the processor 602, and the communication interface 603 are connected to each other via the bus 604.
[0245] The memory 601 may be a read-only memory (ROM), a static storage device, a dynamic storage device, or a random access memory (RAM).
[0246] The memory 601 can store programs. When the program stored in the memory 601 is executed by the processor 602, the processor 602 and the communication interface 603 are used to perform the various steps of the data processing method of the embodiment of the present application.
[0247] The processor 602 is a circuit with signal processing capabilities. In one implementation, the processor 602 can be a circuit with instruction reading and execution capabilities, such as a SIMD, a central processing unit (CPU), a microprocessor, a graphics processing unit (GPU) (which can be understood as a microprocessor), or a digital signal processor (DSP). In another implementation, the processor 602 can implement certain functions through the logical relationship of a hardware circuit. The logical relationship of the hardware circuit is fixed or reconfigurable. For example, the processor 602 is a hardware circuit implemented by an ASIC or a programmable logic device (PLD), such as an FPGA. In a reconfigurable hardware circuit, the process of the processor loading a configuration file and implementing the hardware circuit configuration can be understood as the process of the processor loading instructions to implement the functions of some or all of the above modules. In addition, it can also be a hardware circuit designed for artificial intelligence, which can be understood as an ASIC, such as a neural network processing unit (NPU), a tensor processing unit (TPU), a deep learning processing unit (DPU), etc. The processor 602 is used to execute relevant programs to implement the functions required to be performed by the units in the data processing device of the embodiment of the present application, or to execute the data processing method of the method embodiment of the present application.
[0248] It can be seen that each module in the above device can be one or more processors (or processing circuits) configured to implement the above method, such as: CPU, GPU, NPU, TPU, DPU, microprocessor, DSP, ASIC, FPGA, or a combination of at least two of these processor forms.
[0249] In addition, the modules in the above device can be fully or partially integrated together, or can be implemented independently. In one implementation, these modules are integrated together and implemented in the form of a system-on-a-chip (SOC). The SOC may include at least one processor for implementing any of the above methods or implementing the functions of the modules of the device. The type of the at least one processor can be different, for example, including a CPU and FPGA, a CPU and an artificial intelligence processor, a CPU and a GPU, etc.
[0250] The communication interface 603 uses a transceiver device such as, but not limited to, a transceiver to implement communication between the apparatus 600 and other devices or a communication network. For example, data can be obtained through the communication interface 603 .
[0251] The bus 604 may include a path for transmitting information between various components of the device 600 (eg, the memory 601 , the processor 602 , and the communication interface 603 ).
[0252] It should be noted that although the device 600 shown in FIG6 only shows a memory, a processor, and a communication interface, during the specific implementation process, those skilled in the art will understand that the device 600 also includes other components necessary for normal operation. At the same time, according to specific needs, those skilled in the art will understand that the device 600 may also include hardware components that implement other additional functions. In addition, those skilled in the art will understand that the device 600 may also include only the components necessary to implement the embodiments of the present application, and does not necessarily include all the components shown in FIG6.
[0253] An embodiment of the present application also provides a computer-readable storage medium, which stores instructions. When the computer-readable storage medium is executed on a computer or a processor, the computer or processor executes one or more steps in any of the above methods.
[0254] The present application also provides a computer program product comprising instructions, which, when executed on a computer or processor, causes the computer or processor to execute one or more steps in any of the above methods.
[0255] It should be understood that in the description of this application, unless otherwise specified, " / " indicates that the objects associated with each other are in an "or" relationship. For example, A / B can mean A or B; where A and B can be singular or plural. Also, in the description of this application, unless otherwise specified, "multiple" means two or more than two. "At least one of the following" or similar expressions refers to any combination of these items, including any combination of single or plural items. For example, at least one of a, b, or c can mean: a, b, c, ab, ac, bc, or abc, where a, b, and c can be single or plural. In addition, to facilitate the clear description of the technical solutions of the embodiments of this application, in the embodiments of this application, words such as "first" and "second" are used to distinguish between identical or similar items with substantially the same functions and effects. Those skilled in the art will understand that words such as "first" and "second" do not limit the quantity or execution order, and words such as "first" and "second" do not necessarily mean different. At the same time, in the embodiments of this application, words such as "exemplary" or "for example" are used to indicate examples, illustrations, or descriptions. Any embodiment or design described as "exemplary" or "for example" in the embodiments of this application should not be interpreted as being more preferred or more advantageous than other embodiments or designs. Rather, the use of words such as "exemplary" or "for example" is intended to present the relevant concepts in a concrete manner to facilitate understanding.
[0256] In the several embodiments provided in this application, it should be understood that the disclosed systems, devices, and methods can be implemented in other ways. For example, the division of the units is only a logical function division, and there may be other division methods in actual implementation. For example, multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. The mutual coupling, direct coupling, or communication connection shown or discussed can be through some interface, indirect coupling or communication connection of devices or units, and can be electrical, mechanical or other forms.
[0257] Units described as separate components may or may not be physically separate, and components shown as units may or may not be physical units, that is, they may be located in one place or distributed across multiple network units. Some or all of these units may be selected to achieve the purpose of this embodiment according to actual needs.
[0258] In the above embodiments, all or part of the embodiments may be implemented by software, hardware, firmware, or any combination thereof. When implemented using software, all or part of the embodiments may be implemented in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the processes or functions according to the embodiments of the present application are generated. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions may be stored in a computer-readable storage medium or transmitted via the computer-readable storage medium. The computer instructions may be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via a wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) method. The computer-readable storage medium may be any available medium that a computer can access or a data storage device such as a server or data center that includes one or more available media integrated therein. The available medium may be a read-only memory (ROM), a random access memory (RAM), a magnetic medium such as a floppy disk, a hard disk, a tape, a magnetic disk, or an optical medium such as a digital versatile disc (DVD), or a semiconductor medium such as a solid state disk (SSD).
[0259] The above description is merely a specific embodiment of the present invention, but the scope of protection of the present invention is not limited thereto. Any changes or substitutions within the technical scope disclosed in the present invention should be included in the scope of protection of the present invention. Therefore, the scope of protection of the present invention should be based on the scope of protection of the claims.
Claims
1. A data processing method, characterized in that: Applied to a first processing unit, the first processing unit including at least one SIMD unit, the method comprising: Acquire a first point cloud and a second point cloud, wherein the first point cloud includes a plurality of first sampling points, the second point cloud includes a plurality of second sampling points, the first sampling points include first three-dimensional coordinate information, and the second sampling points include second three-dimensional coordinate information; Converting the first point cloud into first data, the first data including first information, second information, and third information arranged in sequence, wherein the first information corresponds to part or all of the first coordinates included in the first point cloud, the second information corresponds to part or all of the second coordinates included in the first point cloud, and the third information corresponds to part or all of the third coordinates included in the first point cloud, and the first coordinates, the second coordinates, and the third coordinates are included in the first three-dimensional coordinate information; Converting the second point cloud into second data, the second data comprising fourth information, fifth information, and sixth information arranged in sequence, wherein the fourth information corresponds to part or all of the fourth coordinates included in the second point cloud, the fifth information corresponds to part or all of the fifth coordinates included in the second point cloud, and the sixth information corresponds to part or all of the sixth coordinates included in the second point cloud, and the fourth coordinates, the fifth coordinates, and the sixth coordinates are included in the second three-dimensional coordinate information; Point cloud registration is performed on the first data and the second data.
2. The method according to claim 1, characterized in that The performing point cloud registration on the first data and the second data includes: performing rasterization processing on the second data to obtain third data; Acquiring fourth data, wherein the fourth data is associated with the third data and a normal distribution calculation; Point cloud registration is performed on the third data and the first data based on the fourth data.
3. The method according to claim 2, characterized in that The performing point cloud registration on the third data and the first data based on the fourth data includes: The third data and the first data are initially registered based on the fourth data.
4. The method according to claim 3, characterized in that The first registering the third data and the first data based on the fourth data includes: Acquire a first transformation parameter, and obtain fifth data based on the first transformation parameter and the first data; Calculate and obtain a first registration optimization parameter based on the fourth data and the fifth data; Second transformation parameters are obtained based on the first registration optimization parameters.
5. The method according to claim 4, characterized in that The calculating and obtaining the first registration optimization parameter based on the fourth data and the fifth data includes: obtaining sixth data based on the fourth data and the fifth data, wherein the sixth data is data in the third data corresponding to the fifth data; The first registration optimization parameter is obtained based on the sixth data and the fifth data.
6. The method according to any one of claims 3 to 5, characterized in that The method further comprises: When the preset conditions are not met, the fifth data and the third data are iteratively aligned based on the second transformation parameters, the fifth data, and the third data, wherein the second transformation parameters and the fifth data are both obtained based on the first alignment, and the fifth data corresponds to the first data.
7. The method according to claim 6, characterized in that The iterative registration includes an i-th iterative registration, where i is an integer not less than 1, and the i-th iterative registration includes the following steps: S1, based on the transformation parameter t i-1 For data Y i-1 Align with the third data to obtain data Y i , the data Y i-1 is the data after the fifth data and the third data are iteratively registered for the i-1th time; the transformation parameter t i-1 are the transformation parameters after performing the i-1th iterative registration on the fifth data and the third data based on the second transformation parameters; S2. Parallel traversal search for the data Y i , get data P i , the data P i Including the data Y in the third data and the data Y in the traversal search i Data whose distance is not greater than the preset value; S3, based on the data P i Arrange the data Y continuously i A data pair comprising the fourth data and the data Y i The corresponding data P i Corresponding data, the data Y i Regarding the transformation parameters, the data Y i The parameters of the transformation are based on the data Y i , the fourth data is obtained by parallel calculation; S4. Based on the data Y i The data pairs are parallel calculated to obtain the registration optimization parameter U i ; S5, based on the registration optimization parameter U i Get the transformation parameter t i ; S6, confirm whether the preset condition is met, if so, execute step S7; if not, execute step S8; S7, stop the iterative registration, and set the transformation parameter t i As a result of said iterative registration; S8, let i=i+1, and repeat steps S1-S6; wherein, when i=1, the transformation parameter t i-1 is the second transformation parameter, the data Y i-1 is the fifth data.
8. The method according to claim 4 or 5, characterized in that The method further comprises: When a preset condition is met, the second transformation parameter is used as the result of the first registration.
9. The method according to any one of claims 1 to 8, characterized in that The first processing unit includes at least two SIMD units, wherein a target SIMD unit is selected from the at least two SIMD units based on at least one of the data amount of the first data and the second data and the computing power of the at least two SIMD units to execute part or all of the steps in the data processing method.
10. A data processing method, characterized in that: The invention is applied to a data processing system, wherein the data processing system comprises a first processing unit and a second processing unit connected to each other, wherein the first processing unit comprises at least one SIMD unit, The method comprises: The second processing unit acquires a first point cloud and a second point cloud, the first point cloud includes a plurality of first sampling points, the second point cloud includes a plurality of second sampling points, the first sampling points include first three-dimensional coordinate information, and the second sampling points include second three-dimensional coordinate information; The first processing unit obtains the first point cloud and the second point cloud from the second processing unit; The first processing unit converts the first point cloud into first data, the first data including first information, second information, and third information arranged in sequence, wherein the first information corresponds to part or all of the first coordinates included in the first point cloud, the second information corresponds to part or all of the second coordinates included in the first point cloud, and the third information corresponds to part or all of the third coordinates included in the first point cloud, and the first coordinates, the second coordinates, and the third coordinates are included in the first three-dimensional coordinate information; The first processing unit converts the second point cloud into second data, where the second data includes fourth information, fifth information, and sixth information arranged in sequence, wherein the fourth information corresponds to part or all of the fourth coordinates included in the second point cloud, the fifth information corresponds to part or all of the fifth coordinates included in the second point cloud, and the sixth information corresponds to part or all of the sixth coordinates included in the second point cloud, and the fourth coordinates, the fifth coordinates, and the sixth coordinates are included in the second three-dimensional coordinate information; The first processing unit performs point cloud registration on the first data and the second data.
11. The method according to claim 10, characterized in that The first processing unit further performs rasterization processing on the second data to obtain third data; The second processing unit obtains the third data from the first processing unit; The second processing unit performs normal distribution calculation based on the third data to obtain fourth data; The first processing unit obtains the fourth data from the second processing unit; The first processing unit performs point cloud registration on the third data and the first data based on the fourth data.
12. The method according to claim 11, characterized in that The performing point cloud registration on the third data and the first data based on the fourth data includes: The third data and the first data are initially registered based on the fourth data.
13. The method according to claim 12, characterized in that The first registering the third data and the first data based on the fourth data includes: Acquire a first transformation parameter, and obtain fifth data based on the first transformation parameter and the first data; Calculate and obtain a first registration optimization parameter based on the fourth data and the fifth data; Second transformation parameters are obtained based on the first registration optimization parameters.
14. The method according to claim 13, characterized in that The calculating and obtaining the first registration optimization parameter based on the fourth data and the fifth data includes: obtaining sixth data based on the fourth data and the fifth data, wherein the sixth data is data in the third data corresponding to the fifth data; The first registration optimization parameter is obtained based on the sixth data and the fifth data.
15. The method according to any one of claims 12 to 14, characterized in that The method further comprises: When the preset conditions are not met, the fifth data and the third data are iteratively aligned based on the second transformation parameters, the fifth data, and the third data, wherein the second transformation parameters and the fifth data are both obtained based on the first alignment, and the fifth data corresponds to the first data.
16. The method according to claim 15, characterized in that The iterative registration includes an i-th iterative registration, where i is an integer not less than 1, and the i-th iterative registration includes the following steps: S1, based on the transformation parameter t i-1 For data Y i-1 Align with the third data to obtain data Y i , the data Y i-1 is the data after the fifth data and the third data are iteratively registered for the i-1th time; the transformation parameter t i-1 are the transformation parameters after performing the i-1th iterative registration on the fifth data and the third data based on the second transformation parameters; S2. Parallel traversal search for the data Y i , get data P i , the data P i Including the data Y in the third data and the data Y in the traversal search i Data whose distance is not greater than the preset value; S3, based on the data P i Arrange the data Y continuously i A data pair comprising the fourth data and the data Y i The corresponding data P i Corresponding data, the data Y i Regarding the transformation parameters, the data Y i The parameters of the transformation are based on the data Y i , the fourth data is obtained by parallel calculation; S4. Based on the data Y i The data pairs are parallel calculated to obtain the registration optimization parameter U i ; S5, based on the registration optimization parameter U i Get the transformation parameter t i ; S6, confirm whether the preset condition is met, if so, execute step S7; if not, execute step S8; S7, stop the iterative registration, and set the transformation parameter t i As a result of said iterative registration; S8, let i=i+1, and repeat steps S1-S6; wherein, when i=1, the transformation parameter t i-1 is the second transformation parameter, the data Y i-1 is the fifth data.
17. The method according to claim 13 or 14, characterized in that The method further comprises: When a preset condition is met, the second transformation parameter is used as the result of the first registration.
18. The method according to any one of claims 10 to 17, characterized in that The first processing unit includes at least two SIMD units, wherein a target SIMD unit is selected from the at least two SIMD units based on at least one of the data amount of the first data and the second data and the computing power of the at least two SIMD units to execute part or all of the steps in the data processing method.
19. A data processing device, characterized in that: The device is used to perform the method according to any one of claims 1 to 9.
20. A data processing device, characterized in that: The method comprises a processor and a memory; wherein the memory is used to store program code, and the processor is used to call the program code to execute the method according to any one of claims 1 to 9.
21. A data processing system, characterized in that: The system is used to perform the method according to any one of claims 10 to 18.
22. A computer-readable storage medium, characterized in that The computer-readable storage medium stores a computer program, and the computer program is executed by a processor to implement the method according to any one of claims 1 to 9.
23. A computer program product, characterized in that When the computer program product is run on a computer, the computer is enabled to perform the method according to any one of claims 1 to 9.
Citation Information
Patent Citations
FPGA-based point cloud feature matching method and system and path planning system
CN112182042A
Three-dimensional human body point cloud obtaining method and device, equipment and computer storage medium
CN112200903A
Mapping method and device based on normal distribution transformation and intelligent vehicle
CN114170285A
Point cloud registration method and system for precise optical coordinate system measurement
CN117611641A
Apparatus and method for searching for global minimum of point cloud registration error
US20220254095A1