WO2025201119A1 - 数据处理方法及装置、系统 - Google Patents

数据处理方法及装置、系统

Info

Publication number
WO2025201119A1
WO2025201119A1 PCT/CN2025/083257 CN2025083257W WO2025201119A1 WO 2025201119 A1 WO2025201119 A1 WO 2025201119A1 CN 2025083257 W CN2025083257 W CN 2025083257W WO 2025201119 A1 WO2025201119 A1 WO 2025201119A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
point cloud
registration
information
transformation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
PCT/CN2025/083257
Other languages
English (en)
French (fr)
Inventor
戚德振
林棋乐
丁涛
张韦妮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Yinwang Intelligent Technology Co Ltd
Original Assignee
Shenzhen Yinwang Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Yinwang Intelligent Technology Co Ltd filed Critical Shenzhen Yinwang Intelligent Technology Co Ltd
Publication of WO2025201119A1 publication Critical patent/WO2025201119A1/zh
Pending legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • G06T7/33Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods

Definitions

  • the present application relates to the field of data processing, and in particular to a data processing method, device, and system.
  • 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.
  • 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.
  • the first point cloud may be a source point cloud
  • the second point cloud may be a target point cloud.
  • the second point cloud may be a point cloud in the first frame of an autonomous driving scene
  • the first point cloud may be a point cloud in the Nth frame of an image, where N is an integer greater than 1.
  • the first data is the memory arrangement data obtained by converting the source point cloud.
  • the first coordinate is x
  • the second coordinate is y
  • 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...
  • the first data can be expressed as x1, x2, x3, x4... y1, y2, y3, y4... z1, z2, z3, z4...
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • the preset condition may be that a preset number of registrations has been reached.
  • the preset condition may be that a change in a preset optimization amount is less than a preset threshold.
  • 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.
  • the preset optimization amount may also be other parameters, which are not limited in this solution.
  • 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:
  • the registration of the first point cloud and the second point cloud can be achieved.
  • 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.
  • 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.
  • the first processing unit performs point cloud registration on the first data and the second data.
  • 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.
  • the first processing unit further performs rasterization processing on the second data to obtain third 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.
  • 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.
  • the performing a first registration on the third data and the first data based on the fourth data includes:
  • Second transformation parameters are obtained based on the first registration optimization parameters.
  • the calculating the first registration optimization parameter based on the fourth data and the fifth data includes:
  • the method further includes:
  • the second transformation parameter is used as the result of the first registration.
  • 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.
  • 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;
  • Second transformation parameters are obtained based on the first registration optimization parameters.
  • 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:
  • the second transformation parameter is used as the result of the first registration.
  • 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.
  • FIG1 is a schematic diagram of the architecture of a data processing system provided in an embodiment of the present application.
  • FIG2 is a flow chart of a data processing method provided in an embodiment of the present application.
  • FIG3 is a schematic diagram of an adaptive selection SIMD unit provided in an embodiment of the present application.
  • FIG4 is a flow chart of another data processing method provided in an embodiment of the present application.
  • FIG5 is a schematic structural diagram of a data processing device provided in an embodiment of the present application.
  • SIMD Single Instruction Multiple Data
  • the first data is the memory arrangement data obtained by converting the source point cloud.
  • the first coordinate is x
  • the second coordinate is y
  • 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...
  • the first data can be expressed as x1, x2, x3, x4... y1, y2, y3, y4... z1, z2, z3, z4...
  • 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.
  • first information can also be part of the first coordinates included in the corresponding first point cloud
  • second information can also be part of the second coordinates included in the corresponding first point cloud
  • third information can also be part of the third coordinates included in the corresponding first point cloud.
  • 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.
  • step 204 may include steps 2041-2043, which are specifically as follows:
  • 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).
  • 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.
  • 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:
  • A1. Obtain a first transformation parameter, and obtain fifth data based on the first transformation parameter and the first data.
  • 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.
  • the first registration optimization parameter may include, for example, one or more parameters selected from the group consisting of the probability density of the transformed point cloud, the Normal Distributions Transform (NDT) registration score, the gradient of the score (such as the Jacobian matrix), and the Hessian matrix.
  • NDT Normal Distributions Transform
  • 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.
  • the sixth data may be a grid containing the third data corresponding to the fifth data.
  • the first registration optimization parameter is obtained based on the sixth data and the fifth data.
  • the preset condition may be that a preset number of registrations has been reached.
  • the preset condition may be that a change in a preset optimization amount is less than a preset threshold.
  • 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.
  • the preset optimization amount may also be other parameters, which are not limited in this solution.
  • 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:
  • the data Yi -1 is the data obtained by performing the i-1th iterative registration on the fifth data and the third data
  • the transformation parameters Ti -1 are the transformation parameters obtained by performing the i-1th iterative registration on the fifth data and the third data based on the second transformation parameters.
  • This example uses a parallel traversal radius neighborhood search for data Yi as an example. Other search methods are also possible and are not limited in this solution.
  • Data Pi can also be referred to as a valid point cloud Pi . This search can filter out valid point clouds with a high probability of matching the current point cloud, thereby improving matching accuracy and stability.
  • the data pairs may include normal distribution parameters corresponding to the data Yi (i.e., data corresponding to the data Pi corresponding to the data Yi in the fourth data), parameters of the data Yi with respect to the transformation (such as gradient data and Hessian matrix parameters of the data Yi with respect to the transformation), etc.
  • the difference between the transformation parameter ti and the transformation parameter ti-1 is compared with a preset threshold to determine whether the preset condition is met.
  • the registration of the first point cloud and the second point cloud can be achieved.
  • a first point cloud and a second point cloud are respectively converted into first data and second data
  • 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
  • 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.
  • 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.
  • the first processing unit may include at least two SIMD units.
  • 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.
  • AI artificial intelligence
  • SVE scalable vector extension
  • 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 a SIMD instruction set supported by the CPU.
  • 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 .
  • the computing performance of the SVE is better than that of the AI Core and Vector Core, and thus the SVE is used to execute some or all of the steps in the data processing method shown in FIG2 .
  • the performance of the AI Core and Vector Core is significantly better than that of the SVE, and thus the AI Core is used to execute some or all of the steps in the data processing method shown in FIG2 , or the Vector Core is used to execute some or all of the steps in the data processing method shown in FIG2 , or the AI Core and Vector Core may be used together to execute some or all of the steps in the data processing method shown in FIG2 .
  • the data processing method can adaptively select different SIMD units based on the amount of first and second data during operation.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • FIG. 4 it is a flow chart of another data processing method provided by an embodiment of the present application.
  • 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.
  • 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:
  • 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.
  • 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.
  • 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.
  • the first processing unit obtains the first point cloud and the second point cloud from the second processing unit.
  • the first processing unit may include, for example, at least one SIMD unit.
  • 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.
  • step 202 in the embodiment shown in FIG. 2 , which will not be repeated here.
  • 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.
  • step 203 in the embodiment shown in FIG. 2 , which will not be repeated here.
  • the first processing unit performs point cloud registration on the first data and the second data.
  • 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 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.
  • step 204 in the embodiment shown in FIG. 2 (such as steps 2041 to 2043 ), which will not be repeated here.
  • the first processing unit uses the second transformation parameter as the result of the first registration.
  • the first processing unit when the preset condition is not met, iteratively aligns the fifth data with the third data based on the second transformation parameter, the fifth data, and the third data.
  • step 204 in the embodiment shown in FIG. 2 , which will not be repeated here.
  • 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.
  • 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.
  • 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.
  • some devices include a receiving unit and a sending unit.
  • 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.
  • 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.
  • 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;
  • the processing module 503 is configured to:
  • Point cloud registration is performed on the third data and the first data based on the fourth data.
  • the third data and the first data are initially registered based on the fourth data.
  • processing module 503 is further configured to:
  • Second transformation parameters are obtained based on the first registration optimization parameters.
  • processing module 503 is further configured to:
  • the first registration optimization parameter is obtained based on the sixth data and the fifth data.
  • processing module 503 is further configured to:
  • 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.
  • 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:
  • processing module 503 is further configured to:
  • the second transformation parameter is used as the result of the first registration.
  • 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.
  • 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.
  • the modules in the device may be implemented in the form of hardware circuits, and the functions of some or all of the units may be implemented by designing the hardware circuits.
  • the hardware circuits may be understood as one or more processors.
  • the hardware circuit is an application-specific integrated circuit (ASIC), and the functions of some or all of the above units may be implemented by designing the logical relationships between the components within the circuit.
  • the hardware circuit may be implemented by a programmable logic device (PLD).
  • PLD programmable logic device
  • FPGA field programmable gate array
  • All modules of the above devices may be implemented entirely by a processor calling software, or entirely by a hardware circuit, or partially by a processor calling software, with the remaining portion implemented by a hardware circuit.
  • A/B can mean A or B, where A and B can be singular or plural.
  • 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.
  • at least one of a, b, or c can mean: a, b, c, a-b, a-c, b-c, or a-b-c, where a, b, and c can be single or plural.
  • 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.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)

Abstract

一种数据处理方法及装置、系统,该方法包括:获取第一点云和第二点云,所述第一点云包括多个第一采样点,所述第二点云包括多个第二采样点,所述第一采样点包括第一三维坐标信息,所述第二采样点包括第二三维坐标信息;将所述第一点云转换为第一数据,所述第一数据包括按照顺序排列的第一信息、第二信息和第三信息;将所述第二点云转换为第二数据,所述第二数据包括按照顺序排列的第四信息、第五信息和第六信息;对所述第一数据和所述第二数据进行点云配准。采用该手段,提高了算法的实时性,而且提高了算法的部署性能,并且提高了点云配准的效率。

Description

数据处理方法及装置、系统
本申请要求在2024年3月25日提交中国国家知识产权局、申请号为202410349208.8的中国专利申请的优先权,发明名称为“数据处理方法及装置、系统”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及数据处理领域,尤其涉及一种数据处理方法及装置、系统。
背景技术
近年来,随着计算机技术和人工智能技术的发展以及三维成像传感器的成本降低和普及,点云成像技术被应用到各个领域。由于点云数据受到三维成像传感器本身、测量方式以及环境等因素影响,往往前后帧点云数据存在平移错位、旋转错位和关键数据丢失等问题,因此想要得到完整点云数据就需要强大的点云配准技术来支撑。点云配准技术是一种通过比较和调整两个或多个点云数据集以找到它们之间最佳对应关系的过程。
现有点云配准算法的实现一般基于中央处理单元(Central Processing Unit,CPU)进行处理,导致CPU负载过高。
发明内容
本申请公开了一种数据处理方法及装置、系统,可以实现多数据并行计算,提高数据处理效率。
第一方面,本申请实施例提供一种数据处理方法,应用于第一处理单元,所述第一处理单元包括至少一个SIMD单元,所述方法包括:获取第一点云和第二点云。所述第一点云包括多个第一采样点。所述第二点云包括多个第二采样点。所述第一采样点包括第一三维坐标信息。所述第二采样点包括第二三维坐标信息。然后,将所述第一点云转换为第一数据。其中,所述第一数据包括按照顺序排列的第一信息、第二信息和第三信息。所述第一信息对应所述第一点云包括的部分或所有第一坐标。所述第二信息对应所述第一点云包括的部分或所有第二坐标。所述第三信息对应所述第一点云包括的部分或所有第三坐标。所述第一坐标、所述第二坐标、所述第三坐标包含于所述第一三维坐标信息中。还将所述第二点云转换为第二数据。所述第二数据包括按照顺序排列的第四信息、第五信息和第六信息。所述第四信息对应所述第二点云包括的部分或所有第四坐标。所述第五信息对应所述第二点云包括的部分或所有第五坐标。所述第六信息对应所述第二点云包括的部分或所有第六坐标。所述第四坐标、所述第五坐标、所述第六坐标包含于所述第二三维坐标信息中。进而,对所述第一数据和所述第二数据进行点云配准。
本申请实施例,通过将第一点云和第二点云分别转换为第一数据、第二数据,该第一数据包括按照顺序排列的第一信息、第二信息和第三信息,其中第一信息对应第一点云包括的部分或所有第一坐标,所第二信息对应第一点云包括的部分或所有第二坐标,第三信息对应第一点云包括的部分或所有第三坐标;第二数据包括按照顺序排列的第四信息、第五信息和第六信息,其中第四信息对应第二点云包括的部分或所有第四坐标,第五信息对应第二点云包括的部分或所有第五坐标,第六信息对应第二点云包括的部分或所有第六坐标,进而对第一数据和第二数据进行点云配准。采用该手段,由于第一数据和第二数据都是亲和SIMD架构的并行数据,这样提高了算法的实时性,而且提高了算法的部署性能,并且提高了点云配准的效率。
其中,该第一点云可以是源点云。该第二点云可以是目标点云。示例性的,该第二点云可以是自动驾驶场景第1帧图像中的点云,该第一点云可以是第N帧图像中的点云,N为大于1的整数。
该第一数据,即为源点云转换得到的内存排布数据。示例性的,该第一坐标为x,第二坐标为y,第三坐标为z。该第一点云包括点P1(x1、y1、z1)、点P2(x2、y2、z2)、点P3(x3、y3、z3)、点P4(x4、y4、z4)……该第一信息可表示为x1、x2、x3、x4……该第二信息可表示为y1、y2、y3、y4……该第三信息可表示为z1、z2、z3、z4……相应地,该第一数据可表示为x1、x2、x3、x4……y1、y2、y3、y4……z1、z2、z3、z4……
通过将第一点云对应的第一坐标、第二坐标和第三坐标分别按照顺序进行排列,将第一点云对应的第一坐标记在一起,将第一点云对应的第二坐标记在一起,将第一点云对应的第三坐标记在一起,以得到第一数据。该第一数据是亲和SIMD架构的并行数据,这样,有助于后续进行点云配准时提高数据处理的效率,提高配准的效率。
该第二数据,即为目标点云转化得到的内存排布数据。通过将第二点云对应的第四坐标、第五坐标和第六坐标分别按照顺序进行排列,进而得到第二数据。该第二数据是亲和SIMD架构的并行数据,这样,有助于后续进行点云配准时提高数据处理的效率,提高配准的效率。
在一种可能的实现方式中,所述对所述第一数据和所述第二数据进行点云配准,包括:对所述第二数据进行栅格化处理,得到第三数据。然后,获取第四数据。其中,所述第四数据与所述第三数据和正态分布计算相关联。进而,基于所述第四数据对所述第三数据和所述第一数据进行点云配准。
该示例,基于对第二数据进行栅格化处理,进而进行点云配准,这样可以有效地处理大型点云(栅格维度的点云),可以提高匹配的精度和稳定性。
在一种可能的实现方式中,所述基于所述第四数据对所述第三数据和所述第一数据进行点云配准,包括:
基于所述第四数据对所述第三数据和所述第一数据进行首次配准。
该首次配准,也即第一次对第三数据和第一数据进行配准,即将第一数据映射到第三数据的坐标系中。
在一种可能的实现方式中,所述基于所述第四数据对所述第三数据和所述第一数据进行首次配准,包括:获取第一变换参数,并基于所述第一变化参数和所述第一数据得到第五数据。然后,基于所述第四数据和所述第五数据计算得到第一配准优化参数。进而,基于所述第一配准优化参数得到第二变换参数。
其中,该第一变换参数,可以是经由零初始化或者利用里程计数据得到的初始变换参数。该第五数据,也即第一数据经由首次配准后得到的变换点云。
基于上述处理,即完成了首次配准。
在一种可能的实现方式中,所述基于所述第四数据和所述第五数据计算得到第一配准优化参数,包括:基于所述第四数据和所述第五数据,得到第六数据,所述第六数据为所述第三数据中与所述第五数据对应的数据。进而,基于所述第六数据和所述第五数据,得到所述第一配准优化参数。例如,该第六数据可以是与第五数据对应的第三数据所在的栅格。
在一种可能的实现方式中,所述方法还包括:在未达到预设条件时,基于第二变换参数、第五数据、所述第三数据对所述第五数据和所述第三数据进行迭代配准,所述第二变换参数、所述第五数据均是基于所述首次配准得到的,所述第五数据与所述第一数据对应。
示例性的,该预设条件可以是达到了预设的配准次数。或者,该预设条件可以是预设优化量的变化量小于预设阈值,例如预设优化量可以是变换参数,当相邻两个变换参数之间的差距小于预设阈值时,则达到上述预设条件;当然,预设优化量还可以是其他参数,本方案对此不作限制。在达到上述预设条件时,则停止配准。
在一种可能的实现方式中,所述迭代配准,包括第i次迭代配准,i为不小于1的整数,所述第i次迭代配准包括以下步骤:
S1、基于变换参数ti-1对数据Yi-1和所述第三数据进行配准,得到数据Yi,所述数据Yi-1为对所述第五数据和所述第三数据进行第i-1次迭代配准后的数据;所述变换参数ti-1为基于所述第二变换参数对所述第五数据和所述第三数据进行第i-1次迭代配准后的变换参数;
S2、并行遍历搜索所述数据Yi,得到数据Pi,所述数据Pi包括所述第三数据中与所述遍历搜索的所述数据Yi距离不大于预设数值的数据;
通过进行该搜索,这样可以筛选出当前点云大概率可以匹配到的有效点云,进而可以提高匹配的精度和稳定性。
S3、基于所述数据Pi连续排列所述数据Yi的数据对,所述数据对包括所述第四数据中与所述数据Yi对应的所述数据Pi对应的数据、所述数据Yi关于变换的参数,所述数据Yi关于变换的参数是基于所述数据Yi、所述第四数据进行并行计算得到的;
通过连续排列上述数据对,这样可以满足并行计算的需求,提高匹配效率。
S4、基于所述数据Yi的数据对进行并行计算,得到配准优化参数Ui
S5、基于所述配准优化参数Ui得到变换参数ti
S6、确认是否达到所述预设条件,若达到所述预设条件,执行步骤S7;若未达到所述预设条件,执行步骤S8;
S7、停止所述迭代配准,并将所述变换参数ti作为所述迭代配准的结果;
S8、令i=i+1,并重复执行步骤S1-S6;其中,i=1时,所述变换参数ti-1为所述第二变换参数,所述数据Yi-1为所述第五数据。
基于上述迭代配准,即可实现第一点云和第二点云的配准。
在一种可能的实现方式中,所述方法还包括:在达到预设条件时,将所述第二变换参数作为所述首次配准的结果。
在一种可能的实现方式中,所述第一处理单元包括至少两个SIMD单元,其中,基于所述第一数据和所述第二数据的数据量、所述至少两个SIMD单元的算力中的至少一项,从所述至少两个SIMD单元中选择目标SIMD单元以运行所述数据处理方法中的部分或全部步骤。
该示例,基于第一数据和第二数据的数据量、至少两个SIMD单元的算力中的至少一项,从至少两个SIMD单元中选择目标SIMD单元以运行数据处理方法中的部分或全部步骤,这样可以自适应异构硬件计算单元的协调部署。
示例性的,该至少两个SIMD单元可包括人工智能(Artificial Intelligence,AI)核Core计算单元、矢量Vector Core计算单元和可伸缩矢量扩展(Scalable Vector Extension,SVE)计算单元中的一项或多项。示例性的,AI Core计算单元用于人工智能模型的计算、推理等。Vector Core计算单元用于矢量计算。SVE为CPU支持的SIMD指令集。
第二方面,本申请实施例提供一种数据处理方法,其特征在于,应用于数据处理系统,所述数据处理系统包括相连的第一处理单元和第二处理单元,所述第一处理单元包括至少一个SIMD单元,所述方法包括:
所述第二处理单元获取第一点云和第二点云,所述第一点云包括多个第一采样点,所述第二点云包括多个第二采样点,所述第一采样点包括第一三维坐标信息,所述第二采样点包括第二三维坐标信息。
所述第一处理单元从所述第二处理单元获取所述第一点云和所述第二点云。
所述第一处理单元将所述第一点云转换为第一数据,所述第一数据包括按照顺序排列的第一信息、第二信息和第三信息,其中所述第一信息对应所述第一点云包括的部分或所有第一坐标,所述第二信息对应所述第一点云包括的部分或所有第二坐标,所述第三信息对应所述第一点云包括的部分或所有第三坐标,所述第一坐标、所述第二坐标、所述第三坐标包含于所述第一三维坐标信息中。
所述第一处理单元将所述第二点云转换为第二数据,所述第二数据包括按照顺序排列的第四信息、第五信息和第六信息,其中所述第四信息对应所述第二点云包括的部分或所有第四坐标,所述第五信息对应所述第二点云包括的部分或所有第五坐标,所述第六信息对应所述第二点云包括的部分或所有第六坐标,所述第四坐标、所述第五坐标、所述第六坐标包含于所述第二三维坐标信息中。
所述第一处理单元对所述第一数据和所述第二数据进行点云配准。
本申请实施例,第二处理单元获取第一点云和第二点云,第一处理单元从所述第二处理单元获取所述第一点云和所述第二点云,并将第一点云和第二点云转换为第一数据和第二数据,进而第一处理单元对第一数据和所述第二数据进行点云配准。该示例,充分发挥SIMD架构的能力,提高算法的部署性能;而且,算法异构部署,结合CPU灵活性与SIMD架构的并行计算能力,进一步降低算法执行耗时,提升算法部署性能。
在一种可能的实现方式中,所述第一处理单元还对所述第二数据进行栅格化处理,得到第三数据;
所述第二处理单元从所述第一处理单元获取所述第三数据;
所述第二处理单元基于所述第三数据进行正态分布计算得到第四数据;
所述第一处理单元从所述第二处理单元获取所述第四数据;
所述第一处理单元基于所述第四数据对所述第三数据和所述第一数据进行点云配准。
在一种可能的实现方式中,所述基于所述第四数据对所述第三数据和所述第一数据进行点云配准,包括:
基于所述第四数据对所述第三数据和所述第一数据进行首次配准。
在一种可能的实现方式中,所述基于所述第四数据对所述第三数据和所述第一数据进行首次配准,包括:
获取第一变换参数,并基于所述第一变化参数和所述第一数据得到第五数据;
基于所述第四数据和所述第五数据计算得到第一配准优化参数;
基于所述第一配准优化参数得到第二变换参数。
在一种可能的实现方式中,所述基于所述第四数据和所述第五数据计算得到第一配准优化参数,包括:
基于所述第四数据和所述第五数据,得到第六数据,所述第六数据为所述第三数据中与所述第五数据对应的数据;
基于所述第六数据和所述第五数据,得到所述第一配准优化参数。
在一种可能的实现方式中,所述方法还包括:
在未达到预设条件时,基于第二变换参数、第五数据、所述第三数据对所述第五数据和所述第三数据进行迭代配准,所述第二变换参数、所述第五数据均是基于所述首次配准得到的,所述第五数据与所述第一数据对应。
在一种可能的实现方式中,所述迭代配准,包括第i次迭代配准,i为不小于1的整数,所述第i次迭代配准包括以下步骤:
S1、基于变换参数ti-1对数据Yi-1和所述第三数据进行配准,得到数据Yi,所述数据Yi-1为对所述第五数据和所述第三数据进行第i-1次迭代配准后的数据;所述变换参数ti-1为基于所述第二变换参数对所述第五数据和所述第三数据进行第i-1次迭代配准后的变换参数;
S2、并行遍历搜索所述数据Yi,得到数据Pi,所述数据Pi包括所述第三数据中与所述遍历搜索的所述数据Yi距离不大于预设数值的数据;
S3、基于所述数据Pi连续排列所述数据Yi的数据对,所述数据对包括所述第四数据中与所述数据Yi对应的所述数据Pi对应的数据、所述数据Yi关于变换的参数,所述数据Yi关于变换的参数是基于所述数据Yi、所述第四数据进行并行计算得到的;
S4、基于所述数据Yi的数据对进行并行计算,得到配准优化参数Ui
S5、基于所述配准优化参数Ui得到变换参数ti
S6、确认是否达到所述预设条件,若达到所述预设条件,执行步骤S7;若未达到所述预设条件,执行步骤S8;
S7、停止所述迭代配准,并将所述变换参数ti作为所述迭代配准的结果;
S8、令i=i+1,并重复执行步骤S1-S6;其中,i=1时,所述变换参数ti-1为所述第二变换参数,所述数据Yi-1为所述第五数据。
在一种可能的实现方式中,所述方法还包括:
在达到预设条件时,将所述第二变换参数作为所述首次配准的结果。
在一种可能的实现方式中,所述第一处理单元包括至少两个SIMD单元,其中,基于所述第一数据和所述第二数据的数据量、所述至少两个SIMD单元的算力中的至少一项,从所述至少两个SIMD单元中选择目标SIMD单元以运行所述数据处理方法中的部分或全部步骤。
第三方面,本申请提供了一种数据处理装置,包括:获取模块,用于获取第一点云和第二点云,所述第一点云包括多个第一采样点,所述第二点云包括多个第二采样点,所述第一采样点包括第一三维坐标信息,所述第二采样点包括第二三维坐标信息;
转换模块,用于将所述第一点云转换为第一数据,所述第一数据包括按照顺序排列的第一信息、第二信息和第三信息,其中所述第一信息对应所述第一点云包括的部分或所有第一坐标,所述第二信息对应所述第一点云包括的部分或所有第二坐标,所述第三信息对应所述第一点云包括的部分或所有第三坐标,所述第一坐标、所述第二坐标、所述第三坐标包含于所述第一三维坐标信息中;
所述转换模块,还用于将所述第二点云转换为第二数据,所述第二数据包括按照顺序排列的第四信息、第五信息和第六信息,其中所述第四信息对应所述第二点云包括的部分或所有第四坐标,所述第五信息对应所述第二点云包括的部分或所有第五坐标,所述第六信息对应所述第二点云包括的部分或所有第六坐标,所述第四坐标、所述第五坐标、所述第六坐标包含于所述第二三维坐标信息中;
处理模块,用于对所述第一数据和所述第二数据进行点云配准。
在一种可能的实现方式中,所述处理模块,用于:
对所述第二数据进行栅格化处理,得到第三数据;
获取第四数据,其中,所述第四数据与所述第三数据和正态分布计算相关联;
基于所述第四数据对所述第三数据和所述第一数据进行点云配准。
在一种可能的实现方式中,所述处理模块,还用于:
基于所述第四数据对所述第三数据和所述第一数据进行首次配准。
在一种可能的实现方式中,所述处理模块,还用于:
获取第一变换参数,并基于所述第一变化参数和所述第一数据得到第五数据;
基于所述第四数据和所述第五数据计算得到第一配准优化参数;
基于所述第一配准优化参数得到第二变换参数。
在一种可能的实现方式中,所述处理模块,还用于:
基于所述第四数据和所述第五数据,得到第六数据,所述第六数据为所述第三数据中与所述第五数据对应的数据;
基于所述第六数据和所述第五数据,得到所述第一配准优化参数。
在一种可能的实现方式中,所述处理模块,还用于:
在未达到预设条件时,基于第二变换参数、第五数据、所述第三数据对所述第五数据和所述第三数据进行迭代配准,所述第二变换参数、所述第五数据均是基于所述首次配准得到的,所述第五数据与所述第一数据对应。
在一种可能的实现方式中,所述迭代配准,包括第i次迭代配准,i为不小于1的整数,所述处理模块,还用于:
S1、基于变换参数ti-1对数据Yi-1和所述第三数据进行配准,得到数据Yi,所述数据Yi-1为对所述第五数据和所述第三数据进行第i-1次迭代配准后的数据;所述变换参数ti-1为基于所述第二变换参数对所述第五数据和所述第三数据进行第i-1次迭代配准后的变换参数;
S2、并行遍历搜索所述数据Yi,得到数据Pi,所述数据Pi包括所述第三数据中与所述遍历搜索的所述数据Yi距离不大于预设数值的数据;
S3、基于所述数据Pi连续排列所述数据Yi的数据对,所述数据对包括所述第四数据中与所述数据Yi对应的所述数据Pi对应的数据、所述数据Yi关于变换的参数,所述数据Yi关于变换的参数是基于所述数据Yi、所述第四数据进行并行计算得到的;
S4、基于所述数据Yi的数据对进行并行计算,得到配准优化参数Ui
S5、基于所述配准优化参数Ui得到变换参数ti
S6、确认是否达到所述预设条件,若达到所述预设条件,执行步骤S7;若未达到所述预设条件,执行步骤S8;
S7、停止所述迭代配准,并将所述变换参数ti作为所述迭代配准的结果;
S8、令i=i+1,并重复执行步骤S1-S6;其中,i=1时,所述变换参数ti-1为所述第二变换参数,所述数据Yi-1为所述第五数据。
在一种可能的实现方式中,所述处理模块,还用于:
在达到预设条件时,将所述第二变换参数作为所述首次配准的结果。
在一种可能的实现方式中,所述处理模块,还用于基于所述第一数据和所述第二数据的数据量、所述至少两个SIMD单元的算力中的至少一项,从所述至少两个SIMD单元中选择目标SIMD单元以运行所述数据处理方法中的部分或全部步骤。
第四方面,本申请提供了一种数据处理装置,包括处理器和存储器;其中,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行如第一方面任一种可能的实施方式提供的方法。
第五方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现如第一方面任一种可能的实施方式提供的方法。
第六方面,本申请提供了一种计算机程序产品,当计算机程序产品在计算机上运行时,使得所述计算机执行如第一方面任一种可能的实施方式提供的方法。
第七方面,本申请提供了一种数据处理系统,所述系统用于执行如第二方面任一种可能的实施方式提供的方法。
可以理解地,上述提供的第三方面所述的装置、第四方面所述的装置、第五方面所述的计算机可读存储介质、第六方面所述的计算机程序产品或者第七方面所述的数据处理系统均用于执行第一方面中任一所提供的方法或第二方面中任一所提供的方法。因此,其所能达到的有益效果可参考对应方法中的有益效果,此处不再赘述。
附图说明
下面对本申请实施例用到的附图进行介绍。
图1是本申请实施例提供的一种数据处理系统的架构示意图;
图2是本申请实施例提供的一种数据处理方法的流程示意图;
图3是本申请实施例提供的一种自适应选择SIMD单元的示意图;
图4是本申请实施例提供的另一种数据处理方法的流程示意图;
图5是本申请实施例提供的一种数据处理装置的结构示意图;
图6是本申请实施例提供的另一种数据处理装置的结构示意图。
具体实施方式
下面结合本申请实施例中的附图对本申请实施例进行描述。本申请实施例的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。
为了便于理解,以下示例地给出了部分与本申请实施例相关概念的说明以供参考。如下所述:
1.单指令多数据(Single Instruction Multiple Data,SIMD)单元
以加法指令为例,单指令单数据的CPU对加法指令译码后,执行部件先访问内存,取得第一个操作数;之后再一次访问内存,取得第二个操作数;随后才能进行求和运算。而对于SIMD单元,指令译码后执行部件访问内存,一次性获得所有操作数进行运算。这个特点使SIMD特别适合于多媒体应用等数据密集型运算。
上述对概念的示例性说明可以应用在下文的实施例中。
以下将结合附图,来详细介绍本申请实施例的系统架构。请参见图1,图1是本申请实施例适用的一种数据处理系统的示意图,该系统包括相连的第一处理单元101和第二处理单元102。其中:第一处理单元101包括至少一个单指令多数据SIMD单元。例如,该至少一个SIMD单元可以为人工智能(Artificial Intelligence,AI)核Core、矢量Vector Core和可伸缩矢量扩展(Scalable Vector Extension,SVE)中的一项或多项。第二处理单元102例如可以是CPU。
本申请实施例,通过基于第一处理单元可以多数据并行计算,这样可以提高数据处理效率。
上面说明了本申请实施例的架构,下面对本申请实施例的方法进行详细介绍。
参照图2所示,是本申请实施例提供的一种数据处理方法的流程示意图。可选的,该方法可以应用于前述的数据处理系统,例如图1所示的数据处理系统。如图2所示的数据处理方法可以包括步骤201-204。应理解,本申请为了方便描述,故通过201-204这一顺序进行描述,并不旨在限定一定通过上述顺序进行执行。本申请实施例对于上述一个或多个步骤的执行的先后顺序、执行的时间、执行的次数等不做限定。下文以数据处理方法的步骤201-204的执行主体为第一处理单元为例进行描述,对于其他执行主体本申请同样也适用。步骤201-204具体如下:
201、获取第一点云和第二点云,所述第一点云包括多个第一采样点,所述第二点云包括多个第二采样点,所述第一采样点包括第一三维坐标信息,所述第二采样点包括第二三维坐标信息。
该第一点云,例如可以是源点云。该第二点云,例如可以是目标点云(或称为参考点云、待配准的点云等)。例如,对于自动驾驶场景,第一点云(如源点云)通常是车辆在当前时刻的激光雷达扫描数据(通过激光雷达等传感器获取的点云可以构建出车辆周围的三维环境模型);第二点云(如目标点云)可以是车辆在过去某个时刻的激光雷达扫描数据。示例性的,该第二点云可以是自动驾驶场景第1帧图像中的点云,该第一点云可以是第N帧图像中的点云,N为大于1的整数。
该第一采样点包括第一三维坐标信息,该第一三维坐标信息例如为(x,y,z)。可选的,该第一采样点还包括其他属性信息,例如包括点的强度或反射强度Intensity等,本方案对此不作限制。针对第二采样点可参阅该第一采样点的描述,在此不再赘述。
202、将所述第一点云转换为第一数据,所述第一数据包括按照顺序排列的第一信息、第二信息和第三信息,其中所述第一信息对应所述第一点云包括的部分或所有第一坐标,所述第二信息对应所述第一点云包括的部分或所有第二坐标,所述第三信息对应所述第一点云包括的部分或所有第三坐标,所述第一坐标、所述第二坐标、所述第三坐标包含于所述第一三维坐标信息中。
该第一数据,即为源点云转换得到的内存排布数据。示例性的,该第一坐标为x,第二坐标为y,第三坐标为z。该第一点云包括点P1(x1、y1、z1)、点P2(x2、y2、z2)、点P3(x3、y3、z3)、点P4(x4、y4、z4)……该第一信息可表示为x1、x2、x3、x4……该第二信息可表示为y1、y2、y3、y4……该第三信息可表示为z1、z2、z3、z4……相应地,该第一数据可表示为x1、x2、x3、x4……y1、y2、y3、y4……z1、z2、z3、z4……
通过将第一点云对应的第一坐标、第二坐标和第三坐标分别按照顺序进行排列,将第一点云对应的第一坐标记在一起,将第一点云对应的第二坐标记在一起,将第一点云对应的第三坐标记在一起,以得到第一数据。该第一数据是亲和SIMD架构的并行数据,这样,有助于后续进行点云配准时提高数据处理的效率,提高配准的效率。
可以理解的,该第一信息还可以是对应第一点云包括的部分第一坐标,该第二信息还可以是对应第一点云包括的部分第二坐标,该第三信息还可以是对应第一点云包括的部分第三坐标,本方案对此不作限制。
203、将所述第二点云转换为第二数据,所述第二数据包括按照顺序排列的第四信息、第五信息和第六信息,其中所述第四信息对应所述第二点云包括的部分或所有第四坐标,所述第五信息对应所述第二点云包括的部分或所有第五坐标,所述第六信息对应所述第二点云包括的部分或所有第六坐标,所述第四坐标、所述第五坐标、所述第六坐标包含于所述第二三维坐标信息中。
该第二数据,即为目标点云转化得到的内存排布数据。针对第二数据的介绍可参阅上述第一数据的记载,在此不再赘述。可以理解的,该第四坐标可以对应上述x,该第五坐标可以对应上述y,该第六坐标可以对应上述z等,本方案对此不作限制。
通过将第二点云对应的第四坐标、第五坐标和第六坐标分别按照顺序进行排列,进而得到第二数据。该第二数据是亲和SIMD架构的并行数据,这样,有助于后续进行点云配准时提高数据处理的效率,提高配准的效率。
204、对所述第一数据和所述第二数据进行点云配准。
基于第一数据和第二数据进行点云配准,得到变换参数,实现第一点云和第二点云的配准。其中,该变换参数例如可以是旋转平移变化参数[R,t],R是旋转矩阵,t是平移变量。
通过点云配准技术,可以将不同时间、不同位置获取的点云数据进行有效对比和融合,从而实现车辆的精确定位和环境变化的实时感知。此外,点云配准技术还可以用于自动驾驶车辆的路径规划和决策,例如通过对比车辆当前的点云数据和预设的地图数据,可以识别出路面的形状、车道线、交通标志等信息,从而帮助车辆做出正确的驾驶决策。
在一种可能的实现方式中,步骤204可包括步骤2041-2043,具体如下:
2041、对所述第二数据进行栅格化处理,得到第三数据。
例如,基于初始化的栅格的分辨率,将第二数据下采样到固定长度的栅格中,得到该第三数据。
2042、获取第四数据,其中,所述第四数据与所述第三数据和正态分布计算相关联。
示例性的,该第四数据可以是正态分布概率密度函数(probability density function,PDF)的参数。例如,基于每个栅格中点云(即第三数据)的均值和协方差矩阵(反映每个网格的分布离散情况),可构建每个栅格的正态分布。
在一种可能的实现方式中,第一处理单元可以基于第三数据进行正态分布计算得到该第四数据。在另一种可能的实现方式中,第一处理单元可以从其他处理单元(如第二处理单元)获取该第四数据。
2043、基于所述第四数据对所述第三数据和所述第一数据进行点云配准。
该示例,基于对第二数据进行栅格化处理,进而进行点云配准,这样可以有效地处理大型点云(栅格维度的点云),可以提高匹配的精度和稳定性。
在一种可能的实现方式中,步骤2043可包括:基于所述第四数据对所述第三数据和所述第一数据进行首次配准。
该首次配准,也即第一次对第三数据和第一数据进行配准,即将第一数据映射到第三数据的坐标系中。
在一种可能的实现方式中,所述基于所述第四数据对所述第三数据和所述第一数据进行首次配准,包括步骤A1-A3,具体如下:
A1、获取第一变换参数,并基于所述第一变化参数和所述第一数据得到第五数据。
其中,该第一变换参数,可以是经由零初始化或者利用里程计数据得到的初始变换参数。该第五数据,也即第一数据经由首次配准后得到的变换点云。
A2、基于所述第四数据和所述第五数据计算得到第一配准优化参数。
该第一配准优化参数例如可以包括变换点云的概率密度、正态分布变换(Normal Distributions Transform,NDT)配准得分、得分的梯度(如雅可比Jacobian矩阵)与海森Hessian矩阵等中的一项或多项参数。
在一种可能的实现方式中,基于所述第四数据和所述第五数据,得到第六数据。其中,该第六数据为所述第三数据中与所述第五数据对应的数据。例如,该第六数据可以是与第五数据对应的第三数据所在的栅格。进而,基于所述第六数据和所述第五数据,得到所述第一配准优化参数。
A3、基于所述第一配准优化参数得到第二变换参数。
也就是说,基于该首次配准可得到更新的变换参数(即第二变换参数)。基于上述处理,即完成了首次配准。
在一种可能的实现方式中,在达到预设条件时,将所述第二变换参数作为所述首次配准的结果。
示例性的,该预设条件可以是达到了预设的配准次数。或者,该预设条件可以是预设优化量的变化量小于预设阈值,例如预设优化量可以是变换参数,当相邻两个变换参数之间的差距小于预设阈值时,则达到上述预设条件;当然,预设优化量还可以是其他参数,本方案对此不作限制。在达到上述预设条件时,则停止配准。
在一种可能的实现方式中,在未达到预设条件时,基于上述第二变换参数、上述第五数据、所述第三数据对所述第五数据和所述第三数据进行迭代配准。该迭代配准,也即重复多次配准。
在一种可能的实现方式中,所述迭代配准,包括第i次迭代配准,i为不小于1的整数,所述第i次迭代配准包括以下步骤:
S1、基于变换参数ti-1对数据Yi-1和所述第三数据进行配准,得到数据Yi
其中,所述数据Yi-1为对所述第五数据和所述第三数据进行第i-1次迭代配准后的数据。所述变换参数ti-1为基于所述第二变换参数对所述第五数据和所述第三数据进行第i-1次迭代配准后的变换参数。
S2、并行遍历搜索所述数据Yi,得到数据Pi,所述数据Pi包括所述第三数据中与所述遍历搜索的所述数据Yi距离不大于预设数值的数据。
该示例以对数据Yi并行遍历半径邻域搜索为例进行介绍,当然还可以采用其他搜索方式,本方案对此不作限制。该数据Pi还可以称为有效点云Pi,通过进行该搜索,这样可以筛选出当前点云大概率可以匹配到的有效点云,进而可以提高匹配的精度和稳定性。
S3、基于所述数据Pi连续排列所述数据Yi的数据对,所述数据对包括所述第四数据中与所述数据Yi对应的所述数据Pi对应的数据、所述数据Yi关于变换的参数,所述数据Yi关于变换的参数是基于所述数据Yi、所述第四数据进行并行计算得到的。
其中,对于任意一个源点云,基于上述半径邻域搜索,可得到多个有效点云。通过对该源点云对应的多个有效点云进行排列,可得到多个数据对。该数据对可包括数据Yi对应的正态分布参数(即所述第四数据中与所述数据Yi对应的所述数据Pi对应的数据)、数据Yi关于变换的参数(如数据Yi关于变换的梯度数据和Hessian矩阵参数)等。
通过连续排列上述数据对,这样可以满足并行计算的需求,提高匹配效率。
S4、基于所述数据Yi的数据对进行并行计算,得到配准优化参数Ui
S5、基于所述配准优化参数Ui得到变换参数ti
S6、确认是否达到所述预设条件,若达到所述预设条件,执行步骤S7;若未达到所述预设条件,执行步骤S8。
例如判断当前迭代次数i是否达到了预设的配准次数。或者,基于变换参数ti和变换参数ti-1(即第i-1次迭代配准得到的变换参数)之间的差值与预设阈值进行比较,以确定是否达到预设条件。
S7、停止所述迭代配准,并将所述变换参数ti作为所述迭代配准的结果。
S8、令i=i+1,并重复执行步骤S1-S6;其中,i=1时,所述变换参数ti-1为所述第二变换参数,所述数据Yi-1为所述第五数据。
基于上述迭代配准,即可实现第一点云和第二点云的配准。
本申请实施例,通过将第一点云和第二点云分别转换为第一数据、第二数据,该第一数据包括按照顺序排列的第一信息、第二信息和第三信息,其中第一信息对应第一点云包括的部分或所有第一坐标,所第二信息对应第一点云包括的部分或所有第二坐标,第三信息对应第一点云包括的部分或所有第三坐标;第二数据包括按照顺序排列的第四信息、第五信息和第六信息,其中第四信息对应第二点云包括的部分或所有第四坐标,第五信息对应第二点云包括的部分或所有第五坐标,第六信息对应第二点云包括的部分或所有第六坐标,进而对第一数据和第二数据进行点云配准。采用该手段,由于第一数据和第二数据(以及第三数据、第四数据、第五数据、第六数据等)都是亲和SIMD架构的并行数据,这样提高了算法的实时性,而且提高了算法的部署性能,并且提高了点云配准的效率。
其中,图2所示实施例以第一处理单元来执行数据处理为例进行介绍。在一种可能的实现方式中,所述第一处理单元可包括至少两个SIMD单元。示例性的,该至少两个SIMD单元可包括人工智能(Artificial Intelligence,AI)核Core计算单元、矢量Vector Core计算单元和可伸缩矢量扩展(Scalable Vector Extension,SVE)计算单元中的一项或多项。示例性的,AI Core计算单元用于人工智能模型的计算、推理等。Vector Core计算单元用于矢量计算。SVE为CPU支持的SIMD指令集。
在一种可能的实现方式中,如图3所示,基于所述第一数据和所述第二数据的数据量从所述至少两个SIMD单元中选择目标SIMD单元以运行图2所示数据处理方法中的部分或全部步骤。
示例性的,当第一数据和第二数据的数据量较小时(例如小于某一预设值),SVE的计算性能优于AI Core和Vector Core,因此采用SVE来执行图2所示数据处理方法中的部分或全部步骤。再如,当第一数据和第二数据的数据量较大时(例如大于某一预设值),AI Core和Vector Core的性能明显优于SVE,因此采用AI Core来执行图2所示数据处理方法中的部分或全部步骤,或者采用Vector Core来执行图2所示数据处理方法中的部分或全部步骤,还可以采用AI Core和Vector Core一起执行图2所示数据处理方法中的部分或全部步骤。
可选的,通过从图2所示数据处理方法中提取并行加速算子,并提供多套不同实现(如不同代码或指令等)以适配AI Core、Vector Core和SVE三种SIMD单元。进而根据不同输入数据的数据量及其在三种SIMD单元上的性能表现建立映射表。最终实现上述数据处理方法在运行中可以通过第一数据和第二数据的数据量来自适应选择不同SIMD单元。
在另一种可能的实现方式中,基于所述至少两个SIMD单元的算力,从所述至少两个SIMD单元中选择目标SIMD单元以运行所述数据处理方法中的部分或全部步骤。
其中,基于SIMD单元的不同算力确定目标SIMD单元。例如不同芯片上虽然都有AI Core,但是核数可能不同,单核的性能算力也可能不同等。
当然,还可以基于硬件资源的不同架构确定目标SIMD单元。不同的架构针对不同的计算也会有不同的性能(计算架构的设计,包括处理器的核心数,运算单元的类型(例如浮点运算单元、向量运算单元等)、内存层次结构、互联网络等)。本方案对此不作限制。
在又一种可能的实现方式中,基于所述第一数据和所述第二数据的数据量、所述至少两个SIMD单元的算力,从所述至少两个SIMD单元中选择目标SIMD单元以运行所述数据处理方法中的部分或全部步骤。也即基于上述两个方面来综合选择目标SIMD单元。例如,在第一数据和第二数据的数据量较小且SVE的算力适配当前需求时,则采用SVE来执行图2所示数据处理方法中的部分或全部步骤等。
该示例,基于第一数据和第二数据的数据量、至少两个SIMD单元的算力中的至少一项,从至少两个SIMD单元中选择目标SIMD单元以运行数据处理方法中的部分或全部步骤,这样可以自适应异构硬件计算单元的协调部署。
参照图4所示,是本申请实施例提供的另一种数据处理方法的流程示意图。可选的,该方法可以应用于前述的数据处理系统,例如图1所示的数据处理系统。如图4所示的数据处理方法可以包括步骤401-405。应理解,本申请为了方便描述,故通过401-405这一顺序进行描述,并不旨在限定一定通过上述顺序进行执行。本申请实施例对于上述一个或多个步骤的执行的先后顺序、执行的时间、执行的次数等不做限定。下文以数据处理方法的步骤401的执行主体为第二处理单元、402-405的执行主体为第一处理单元为例进行描述,对于其他执行主体本申请同样也适用。步骤401-405具体如下:
401、第二处理单元获取第一点云和第二点云,所述第一点云包括多个第一采样点,所述第二点云包括多个第二采样点,所述第一采样点包括第一三维坐标信息,所述第二采样点包括第二三维坐标信息。
例如,第二处理单元可以是CPU。其可以从内存或激光雷达获取第一点云和第二点云。针对第一点云和第二点云的介绍,可参阅前述图2所示实施例中步骤201的记载,在此不再赘述。
402、第一处理单元从所述第二处理单元获取所述第一点云和所述第二点云。
该第一处理单元例如可以包括至少一个SIMD单元。
403、所述第一处理单元将所述第一点云转换为第一数据,所述第一数据包括按照顺序排列的第一信息、第二信息和第三信息,其中所述第一信息对应所述第一点云包括的部分或所有第一坐标,所述第二信息对应所述第一点云包括的部分或所有第二坐标,所述第三信息对应所述第一点云包括的部分或所有第三坐标,所述第一坐标、所述第二坐标、所述第三坐标包含于所述第一三维坐标信息中。
针对该部分的介绍可参阅前述图2所示实施例中步骤202的记载,在此不再赘述。
404、所述第一处理单元将所述第二点云转换为第二数据,所述第二数据包括按照顺序排列的第四信息、第五信息和第六信息,其中所述第四信息对应所述第二点云包括的部分或所有第四坐标,所述第五信息对应所述第二点云包括的部分或所有第五坐标,所述第六信息对应所述第二点云包括的部分或所有第六坐标,所述第四坐标、所述第五坐标、所述第六坐标包含于所述第二三维坐标信息中。
针对该部分的介绍可参阅前述图2所示实施例中步骤203的记载,在此不再赘述。
405、所述第一处理单元对所述第一数据和所述第二数据进行点云配准。
针对该部分的介绍可参阅前述图2所示实施例中步骤204的记载,在此不再赘述。
在一种可能的实现方式中,所述第一处理单元还对所述第二数据进行栅格化处理,得到第三数据。
所述第二处理单元从所述第一处理单元获取所述第三数据,并基于所述第三数据进行正态分布计算得到第四数据。例如,第二处理单元获取每个栅格中点云(即第三数据)的均值和协方差矩阵(反映每个网格的分布离散情况),进而可构建每个栅格的正态分布(即第四数据)。
所述第一处理单元从所述第二处理单元获取所述第四数据。进而,所述第一处理单元基于所述第四数据对所述第三数据和所述第一数据进行点云配准。
针对该部分的介绍可参阅前述图2所示实施例中步骤204的记载(如步骤2041-步骤2043),在此不再赘述。
在一种可能的实现方式中,所述第一处理单元基于所述第四数据对所述第三数据和所述第一数据进行点云配准,包括:基于所述第四数据对所述第三数据和所述第一数据进行首次配准。
针对第一处理单元进行首次配准的方式,可参阅前述图2所示实施例中步骤204的记载,在此不再赘述。
在一种可能的实现方式中,在达到预设条件时,所述第一处理单元将所述第二变换参数作为所述首次配准的结果。
在一种可能的实现方式中,在未达到预设条件时,所述第一处理单元基于上述第二变换参数、上述第五数据、所述第三数据对所述第五数据和所述第三数据进行迭代配准。
针对第一处理单元进行迭代配准的方式,可参阅前述图2所示实施例中步骤204的记载,在此不再赘述。
本申请实施例,第二处理单元获取第一点云和第二点云,第一处理单元从所述第二处理单元获取所述第一点云和所述第二点云,并将第一点云和第二点云转换为第一数据和第二数据,进而第一处理单元对第一数据和所述第二数据进行点云配准。该示例,充分发挥SIMD架构的能力,提高算法的部署性能;而且,算法异构部署,结合CPU灵活性与SIMD架构的并行计算能力,进一步降低算法执行耗时,提升算法部署性能。
需要说明的是,在本申请的各个实施例中,如果没有特殊说明以及逻辑冲突,各个实施例之间的术语和/或描述具有一致性、且可以相互引用,不同的实施例中的技术特征根据其内在的逻辑关系可以组合形成新的实施例。
上述详细阐述了本申请实施例的方法,下面提供了本申请实施例的装置。可以理解的,本申请各个装置实施例中,对多个单元或者模块的划分仅是一种根据功能进行的逻辑划分,不作为对装置具体的结构的限定。在具体实现中,其中部分功能模块可能被细分为更多细小的功能模块,部分功能模块也可能组合成一个功能模块,但无论这些功能模块是进行了细分还是组合,装置所执行的大致流程是相同的。例如,一些装置中包含接收单元和发送单元。一些设计中,发送单元和接收单元也可以集成为通信单元,该通信单元可以实现接收单元和发送单元所实现的功能。通常,每个单元都对应有各自的程序代码(或者说程序指令),这些单元各自对应的程序代码在处理器上运行时,使得该单元受处理单元的控制而执行相应的流程从而实现相应功能。
本申请实施例还提供用于实现以上任一种方法的装置,例如,提供一种数据处理装置包括用以实现以上任一种方法中第一处理单元所执行的各步骤的模块(或手段)。
例如,参照图5所示,是本申请实施例提供的一种数据处理装置的结构示意图。该数据处理装置用于实现前述的数据处理方法,例如图2所示的数据处理方法。
如图5所示,该装置可包括获取模块501、转换模块502和处理模块503,具体如下:
获取模块501,用于获取第一点云和第二点云,所述第一点云包括多个第一采样点,所述第二点云包括多个第二采样点,所述第一采样点包括第一三维坐标信息,所述第二采样点包括第二三维坐标信息;
转换模块502,用于将所述第一点云转换为第一数据,所述第一数据包括按照顺序排列的第一信息、第二信息和第三信息,其中所述第一信息对应所述第一点云包括的部分或所有第一坐标,所述第二信息对应所述第一点云包括的部分或所有第二坐标,所述第三信息对应所述第一点云包括的部分或所有第三坐标,所述第一坐标、所述第二坐标、所述第三坐标包含于所述第一三维坐标信息中;
所述转换模块502,还用于将所述第二点云转换为第二数据,所述第二数据包括按照顺序排列的第四信息、第五信息和第六信息,其中所述第四信息对应所述第二点云包括的部分或所有第四坐标,所述第五信息对应所述第二点云包括的部分或所有第五坐标,所述第六信息对应所述第二点云包括的部分或所有第六坐标,所述第四坐标、所述第五坐标、所述第六坐标包含于所述第二三维坐标信息中;
处理模块503,用于对所述第一数据和所述第二数据进行点云配准。
在一种可能的实现方式中,所述处理模块503,用于:
对所述第二数据进行栅格化处理,得到第三数据;
获取第四数据,其中,所述第四数据与所述第三数据和正态分布计算相关联;
基于所述第四数据对所述第三数据和所述第一数据进行点云配准。
在一种可能的实现方式中,所述处理模块503,还用于:
基于所述第四数据对所述第三数据和所述第一数据进行首次配准。
在一种可能的实现方式中,所述处理模块503,还用于:
获取第一变换参数,并基于所述第一变化参数和所述第一数据得到第五数据;
基于所述第四数据和所述第五数据计算得到第一配准优化参数;
基于所述第一配准优化参数得到第二变换参数。
在一种可能的实现方式中,所述处理模块503,还用于:
基于所述第四数据和所述第五数据,得到第六数据,所述第六数据为所述第三数据中与所述第五数据对应的数据;
基于所述第六数据和所述第五数据,得到所述第一配准优化参数。
在一种可能的实现方式中,所述处理模块503,还用于:
在未达到预设条件时,基于第二变换参数、第五数据、所述第三数据对所述第五数据和所述第三数据进行迭代配准,所述第二变换参数、所述第五数据均是基于所述首次配准得到的,所述第五数据与所述第一数据对应。
在一种可能的实现方式中,所述迭代配准,包括第i次迭代配准,i为不小于1的整数,所述处理模块503,还用于:
S1、基于变换参数ti-1对数据Yi-1和所述第三数据进行配准,得到数据Yi,所述数据Yi-1为对所述第五数据和所述第三数据进行第i-1次迭代配准后的数据;所述变换参数ti-1为基于所述第二变换参数对所述第五数据和所述第三数据进行第i-1次迭代配准后的变换参数;
S2、并行遍历搜索所述数据Yi,得到数据Pi,所述数据Pi包括所述第三数据中与所述遍历搜索的所述数据Yi距离不大于预设数值的数据;
S3、基于所述数据Pi连续排列所述数据Yi的数据对,所述数据对包括所述第四数据中与所述数据Yi对应的所述数据Pi对应的数据、所述数据Yi关于变换的参数,所述数据Yi关于变换的参数是基于所述数据Yi、所述第四数据进行并行计算得到的;
S4、基于所述数据Yi的数据对进行并行计算,得到配准优化参数Ui
S5、基于所述配准优化参数Ui得到变换参数ti
S6、确认是否达到所述预设条件,若达到所述预设条件,执行步骤S7;若未达到所述预设条件,执行步骤S8;
S7、停止所述迭代配准,并将所述变换参数ti作为所述迭代配准的结果;
S8、令i=i+1,并重复执行步骤S1-S6;其中,i=1时,所述变换参数ti-1为所述第二变换参数,所述数据Yi-1为所述第五数据。
在一种可能的实现方式中,所述处理模块503,还用于:
在达到预设条件时,将所述第二变换参数作为所述首次配准的结果。
在一种可能的实现方式中,所述处理模块503,还用于基于所述第一数据和所述第二数据的数据量、所述至少两个SIMD单元的算力中的至少一项,从所述至少两个SIMD单元中选择目标SIMD单元以运行所述数据处理方法中的部分或全部步骤。
上述各模块的介绍可参阅前述实施例的记载,在此不再赘述。
应理解以上各个装置中各模块的划分仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。此外,数据处理装置中的模块可以以处理器调用软件的形式实现;例如数据处理装置包括处理器,处理器与存储器连接,存储器中存储有指令,处理器调用存储器中存储的指令,以实现以上任一种方法或实现该装置各模块的功能,其中处理器例如为通用处理器,比如SIMD、中央处理单元CPU或微处理器,存储器为装置内的存储器或装置外的存储器。或者,装置中的模块可以以硬件电路的形式实现,可以通过对硬件电路的设计实现部分或全部单元的功能,该硬件电路可以理解为一个或多个处理器;例如,在一种实现中,该硬件电路为专用集成电路(application-specific integrated circuit,ASIC),通过对电路内元件逻辑关系的设计,实现以上部分或全部单元的功能;再如,在另一种实现中,该硬件电路为可以通过可编程逻辑器件(programmable logic device,PLD)实现,以现场可编程门阵列(field programmable gate array,FPGA)为例,其可以包括大量逻辑门电路,通过配置文件来配置逻辑门电路之间的连接关系,从而实现以上部分或全部单元的功能。以上装置的所有模块可以全部通过处理器调用软件的形式实现,或全部通过硬件电路的形式实现,或部分通过处理器调用软件的形式实现,剩余部分通过硬件电路的形式实现。
参照图6所示,是本申请实施例提供的又一种数据处理装置的硬件结构示意图。如图6所示的数据处理装置600(该装置600具体可以是一种计算机设备)包括存储器601、处理器602、通信接口603以及总线604。其中,存储器601、处理器602、通信接口603通过总线604实现彼此之间的通信连接。
存储器601可以是只读存储器(read only memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(random access memory,RAM)。
存储器601可以存储程序,当存储器601中存储的程序被处理器602执行时,处理器602和通信接口603用于执行本申请实施例的数据处理方法的各个步骤。
处理器602是一种具有信号的处理能力的电路,在一种实现中,处理器602可以是具有指令读取与运行能力的电路,例如SIMD、中央处理单元CPU、微处理器、图形处理器(graphics processing unit,GPU)(可以理解为一种微处理器)、或数字信号处理器(digital signal processor,DSP)等;在另一种实现中,处理器602可以通过硬件电路的逻辑关系实现一定功能,该硬件电路的逻辑关系是固定的或可以重构的,例如处理器602为ASIC或可编程逻辑器件PLD实现的硬件电路,比如FPGA。在可重构的硬件电路中,处理器加载配置文档,实现硬件电路配置的过程,可以理解为处理器加载指令,以实现以上部分或全部模块的功能的过程。此外,还可以是针对人工智能设计的硬件电路,其可以理解为一种ASIC,例如神经网络处理单元(neural network processing unit,NPU)、张量处理单元(tensor processing unit,TPU)、深度学习处理单元(deep learning processing unit,DPU)等。处理器602用于执行相关程序,以实现本申请实施例的数据处理装置中的单元所需执行的功能,或者执行本申请方法实施例的数据处理方法。
可见,以上装置中的各模块可以是被配置成实施以上方法的一个或多个处理器(或处理电路),例如:CPU、GPU、NPU、TPU、DPU、微处理器、DSP、ASIC、FPGA,或这些处理器形式中至少两种的组合。
此外,以上装置中的各模块可以全部或部分可以集成在一起,或者可以独立实现。在一种实现中,这些模块集成在一起,以片上系统(system-on-a-chip,SOC)的形式实现。该SOC中可以包括至少一个处理器,用于实现以上任一种方法或实现该装置各模块的功能,该至少一个处理器的种类可以不同,例如包括CPU和FPGA,CPU和人工智能处理器,CPU和GPU等。
通信接口603使用例如但不限于收发器一类的收发装置,来实现装置600与其他设备或通信网络之间的通信。例如,可以通过通信接口603获取数据。
总线604可包括在装置600各个部件(例如,存储器601、处理器602、通信接口603)之间传送信息的通路。
应注意,尽管图6所示的装置600仅仅示出了存储器、处理器、通信接口,但是在具体实现过程中,本领域的技术人员应当理解,装置600还包括实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当理解,装置600还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当理解,装置600也可仅仅包括实现本申请实施例所必须的器件,而不必包括图6中所示的全部器件。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机或处理器上运行时,使得计算机或处理器执行上述任一个方法中的一个或多个步骤。
本申请实施例还提供了一种包含指令的计算机程序产品。当该计算机程序产品在计算机或处理器上运行时,使得计算机或处理器执行上述任一个方法中的一个或多个步骤。
应理解,在本申请的描述中,除非另有说明,“/”表示前后关联的对象是一种“或”的关系,例如,A/B可以表示A或B;其中A,B可以是单数或者复数。并且,在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。同时,在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念,便于理解。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。所显示或讨论的相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者通过该计算机可读存储介质进行传输。该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是只读存储器(read-only memory,ROM),或随机存取存储器(random access memory,RAM),或磁性介质,例如,软盘、硬盘、磁带、磁碟、或光介质,例如,数字通用光盘(digital versatile disc,DVD)、或者半导体介质,例如,固态硬盘(solid state disk,SSD)等。
以上所述,仅为本申请实施例的具体实施方式,但本申请实施例的保护范围并不局限于此,任何在本申请实施例揭露的技术范围内的变化或替换,都应涵盖在本申请实施例的保护范围之内。因此,本申请实施例的保护范围应以所述权利要求的保护范围为准。

Claims (23)

  1. 一种数据处理方法,其特征在于,应用于第一处理单元,所述第一处理单元包括至少一个SIMD单元,所述方法包括:
    获取第一点云和第二点云,所述第一点云包括多个第一采样点,所述第二点云包括多个第二采样点,所述第一采样点包括第一三维坐标信息,所述第二采样点包括第二三维坐标信息;
    将所述第一点云转换为第一数据,所述第一数据包括按照顺序排列的第一信息、第二信息和第三信息,其中所述第一信息对应所述第一点云包括的部分或所有第一坐标,所述第二信息对应所述第一点云包括的部分或所有第二坐标,所述第三信息对应所述第一点云包括的部分或所有第三坐标,所述第一坐标、所述第二坐标、所述第三坐标包含于所述第一三维坐标信息中;
    将所述第二点云转换为第二数据,所述第二数据包括按照顺序排列的第四信息、第五信息和第六信息,其中所述第四信息对应所述第二点云包括的部分或所有第四坐标,所述第五信息对应所述第二点云包括的部分或所有第五坐标,所述第六信息对应所述第二点云包括的部分或所有第六坐标,所述第四坐标、所述第五坐标、所述第六坐标包含于所述第二三维坐标信息中;
    对所述第一数据和所述第二数据进行点云配准。
  2. 根据权利要求1所述的方法,其特征在于,所述对所述第一数据和所述第二数据进行点云配准,包括:
    对所述第二数据进行栅格化处理,得到第三数据;
    获取第四数据,其中,所述第四数据与所述第三数据和正态分布计算相关联;
    基于所述第四数据对所述第三数据和所述第一数据进行点云配准。
  3. 根据权利要求2所述的方法,其特征在于,所述基于所述第四数据对所述第三数据和所述第一数据进行点云配准,包括:
    基于所述第四数据对所述第三数据和所述第一数据进行首次配准。
  4. 根据权利要求3所述的方法,其特征在于,所述基于所述第四数据对所述第三数据和所述第一数据进行首次配准,包括:
    获取第一变换参数,并基于所述第一变化参数和所述第一数据得到第五数据;
    基于所述第四数据和所述第五数据计算得到第一配准优化参数;
    基于所述第一配准优化参数得到第二变换参数。
  5. 根据权利要求4所述的方法,其特征在于,所述基于所述第四数据和所述第五数据计算得到第一配准优化参数,包括:
    基于所述第四数据和所述第五数据,得到第六数据,所述第六数据为所述第三数据中与所述第五数据对应的数据;
    基于所述第六数据和所述第五数据,得到所述第一配准优化参数。
  6. 根据权利要求3至5任一项所述的方法,其特征在于,所述方法还包括:
    在未达到预设条件时,基于第二变换参数、第五数据、所述第三数据对所述第五数据和所述第三数据进行迭代配准,所述第二变换参数、所述第五数据均是基于所述首次配准得到的,所述第五数据与所述第一数据对应。
  7. 根据权利要求6所述的方法,其特征在于,所述迭代配准,包括第i次迭代配准,i为不小于1的整数,所述第i次迭代配准包括以下步骤:
    S1、基于变换参数ti-1对数据Yi-1和所述第三数据进行配准,得到数据Yi,所述数据Yi-1为对所述第五数据和所述第三数据进行第i-1次迭代配准后的数据;所述变换参数ti-1为基于所述第二变换参数对所述第五数据和所述第三数据进行第i-1次迭代配准后的变换参数;
    S2、并行遍历搜索所述数据Yi,得到数据Pi,所述数据Pi包括所述第三数据中与所述遍历搜索的所述数据Yi距离不大于预设数值的数据;
    S3、基于所述数据Pi连续排列所述数据Yi的数据对,所述数据对包括所述第四数据中与所述数据Yi对应的所述数据Pi对应的数据、所述数据Yi关于变换的参数,所述数据Yi关于变换的参数是基于所述数据Yi、所述第四数据进行并行计算得到的;
    S4、基于所述数据Yi的数据对进行并行计算,得到配准优化参数Ui
    S5、基于所述配准优化参数Ui得到变换参数ti
    S6、确认是否达到所述预设条件,若达到所述预设条件,执行步骤S7;若未达到所述预设条件,执行步骤S8;
    S7、停止所述迭代配准,并将所述变换参数ti作为所述迭代配准的结果;
    S8、令i=i+1,并重复执行步骤S1-S6;其中,i=1时,所述变换参数ti-1为所述第二变换参数,所述数据Yi-1为所述第五数据。
  8. 根据权利要求4或5所述的方法,其特征在于,所述方法还包括:
    在达到预设条件时,将所述第二变换参数作为所述首次配准的结果。
  9. 根据权利要求1至8任一项所述的方法,其特征在于,所述第一处理单元包括至少两个SIMD单元,其中,基于所述第一数据和所述第二数据的数据量、所述至少两个SIMD单元的算力中的至少一项,从所述至少两个SIMD单元中选择目标SIMD单元以运行所述数据处理方法中的部分或全部步骤。
  10. 一种数据处理方法,其特征在于,应用于数据处理系统,所述数据处理系统包括相连的第一处理单元和第二处理单元,所述第一处理单元包括至少一个SIMD单元,
    所述方法包括:
    所述第二处理单元获取第一点云和第二点云,所述第一点云包括多个第一采样点,所述第二点云包括多个第二采样点,所述第一采样点包括第一三维坐标信息,所述第二采样点包括第二三维坐标信息;
    所述第一处理单元从所述第二处理单元获取所述第一点云和所述第二点云;
    所述第一处理单元将所述第一点云转换为第一数据,所述第一数据包括按照顺序排列的第一信息、第二信息和第三信息,其中所述第一信息对应所述第一点云包括的部分或所有第一坐标,所述第二信息对应所述第一点云包括的部分或所有第二坐标,所述第三信息对应所述第一点云包括的部分或所有第三坐标,所述第一坐标、所述第二坐标、所述第三坐标包含于所述第一三维坐标信息中;
    所述第一处理单元将所述第二点云转换为第二数据,所述第二数据包括按照顺序排列的第四信息、第五信息和第六信息,其中所述第四信息对应所述第二点云包括的部分或所有第四坐标,所述第五信息对应所述第二点云包括的部分或所有第五坐标,所述第六信息对应所述第二点云包括的部分或所有第六坐标,所述第四坐标、所述第五坐标、所述第六坐标包含于所述第二三维坐标信息中;
    所述第一处理单元对所述第一数据和所述第二数据进行点云配准。
  11. 根据权利要求10所述的方法,其特征在于,所述第一处理单元还对所述第二数据进行栅格化处理,得到第三数据;
    所述第二处理单元从所述第一处理单元获取所述第三数据;
    所述第二处理单元基于所述第三数据进行正态分布计算得到第四数据;
    所述第一处理单元从所述第二处理单元获取所述第四数据;
    所述第一处理单元基于所述第四数据对所述第三数据和所述第一数据进行点云配准。
  12. 根据权利要求11所述的方法,其特征在于,所述基于所述第四数据对所述第三数据和所述第一数据进行点云配准,包括:
    基于所述第四数据对所述第三数据和所述第一数据进行首次配准。
  13. 根据权利要求12所述的方法,其特征在于,所述基于所述第四数据对所述第三数据和所述第一数据进行首次配准,包括:
    获取第一变换参数,并基于所述第一变化参数和所述第一数据得到第五数据;
    基于所述第四数据和所述第五数据计算得到第一配准优化参数;
    基于所述第一配准优化参数得到第二变换参数。
  14. 根据权利要求13所述的方法,其特征在于,所述基于所述第四数据和所述第五数据计算得到第一配准优化参数,包括:
    基于所述第四数据和所述第五数据,得到第六数据,所述第六数据为所述第三数据中与所述第五数据对应的数据;
    基于所述第六数据和所述第五数据,得到所述第一配准优化参数。
  15. 根据权利要求12至14任一项所述的方法,其特征在于,所述方法还包括:
    在未达到预设条件时,基于第二变换参数、第五数据、所述第三数据对所述第五数据和所述第三数据进行迭代配准,所述第二变换参数、所述第五数据均是基于所述首次配准得到的,所述第五数据与所述第一数据对应。
  16. 根据权利要求15所述的方法,其特征在于,所述迭代配准,包括第i次迭代配准,i为不小于1的整数,所述第i次迭代配准包括以下步骤:
    S1、基于变换参数ti-1对数据Yi-1和所述第三数据进行配准,得到数据Yi,所述数据Yi-1为对所述第五数据和所述第三数据进行第i-1次迭代配准后的数据;所述变换参数ti-1为基于所述第二变换参数对所述第五数据和所述第三数据进行第i-1次迭代配准后的变换参数;
    S2、并行遍历搜索所述数据Yi,得到数据Pi,所述数据Pi包括所述第三数据中与所述遍历搜索的所述数据Yi距离不大于预设数值的数据;
    S3、基于所述数据Pi连续排列所述数据Yi的数据对,所述数据对包括所述第四数据中与所述数据Yi对应的所述数据Pi对应的数据、所述数据Yi关于变换的参数,所述数据Yi关于变换的参数是基于所述数据Yi、所述第四数据进行并行计算得到的;
    S4、基于所述数据Yi的数据对进行并行计算,得到配准优化参数Ui
    S5、基于所述配准优化参数Ui得到变换参数ti
    S6、确认是否达到所述预设条件,若达到所述预设条件,执行步骤S7;若未达到所述预设条件,执行步骤S8;
    S7、停止所述迭代配准,并将所述变换参数ti作为所述迭代配准的结果;
    S8、令i=i+1,并重复执行步骤S1-S6;其中,i=1时,所述变换参数ti-1为所述第二变换参数,所述数据Yi-1为所述第五数据。
  17. 根据权利要求13或14所述的方法,其特征在于,所述方法还包括:
    在达到预设条件时,将所述第二变换参数作为所述首次配准的结果。
  18. 根据权利要求10至17任一项所述的方法,其特征在于,所述第一处理单元包括至少两个SIMD单元,其中,基于所述第一数据和所述第二数据的数据量、所述至少两个SIMD单元的算力中的至少一项,从所述至少两个SIMD单元中选择目标SIMD单元以运行所述数据处理方法中的部分或全部步骤。
  19. 一种数据处理装置,其特征在于,所述装置用于执行如权利要求1-9任一项所述的方法。
  20. 一种数据处理装置,其特征在于,包括处理器和存储器;其中,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行如权利要求1-9任一项所述的方法。
  21. 一种数据处理系统,其特征在于,所述系统用于执行如权利要求10-18任一项所述的方法。
  22. 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现如权利要求1-9任一项所述的方法。
  23. 一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如权利要求1-9任一项所述的方法。
PCT/CN2025/083257 2024-03-25 2025-03-18 数据处理方法及装置、系统 Pending WO2025201119A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202410349208.8 2024-03-25
CN202410349208.8A CN120747176A (zh) 2024-03-25 2024-03-25 数据处理方法及装置、系统

Publications (1)

Publication Number Publication Date
WO2025201119A1 true WO2025201119A1 (zh) 2025-10-02

Family

ID=97182504

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2025/083257 Pending WO2025201119A1 (zh) 2024-03-25 2025-03-18 数据处理方法及装置、系统

Country Status (2)

Country Link
CN (1) CN120747176A (zh)
WO (1) WO2025201119A1 (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112182042A (zh) * 2020-10-12 2021-01-05 上海扬灵能源科技有限公司 基于fpga的点云特征匹配方法、系统和路径规划系统
CN112200903A (zh) * 2020-08-27 2021-01-08 深圳市太赫兹科技创新研究院有限公司 三维人体点云的获取方法、装置、设备及计算机存储介质
CN114170285A (zh) * 2021-11-24 2022-03-11 深圳一清创新科技有限公司 一种基于正态分布变换的建图方法、装置及智能车
US20220254095A1 (en) * 2021-02-03 2022-08-11 Electronics And Telecommunications Research Institute Apparatus and method for searching for global minimum of point cloud registration error
CN117611641A (zh) * 2023-11-22 2024-02-27 西安交通大学 一种精密光学坐标系统测量用点云配准方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112200903A (zh) * 2020-08-27 2021-01-08 深圳市太赫兹科技创新研究院有限公司 三维人体点云的获取方法、装置、设备及计算机存储介质
CN112182042A (zh) * 2020-10-12 2021-01-05 上海扬灵能源科技有限公司 基于fpga的点云特征匹配方法、系统和路径规划系统
US20220254095A1 (en) * 2021-02-03 2022-08-11 Electronics And Telecommunications Research Institute Apparatus and method for searching for global minimum of point cloud registration error
CN114170285A (zh) * 2021-11-24 2022-03-11 深圳一清创新科技有限公司 一种基于正态分布变换的建图方法、装置及智能车
CN117611641A (zh) * 2023-11-22 2024-02-27 西安交通大学 一种精密光学坐标系统测量用点云配准方法及系统

Also Published As

Publication number Publication date
CN120747176A (zh) 2025-10-03

Similar Documents

Publication Publication Date Title
US12321857B2 (en) Methods and apparatus to perform machine-learning model operations on sparse accelerators
US10657306B1 (en) Deep learning testability analysis with graph convolutional networks
EP4113463A1 (en) Methods, systems, articles of manufacture and apparatus to decode receipts based on neural graph architecture
WO2023048824A1 (en) Methods, apparatus, and articles of manufacture to increase utilization of neural network (nn) accelerator circuitry for shallow layers of an nn by reformatting one or more tensors
CN115456159A (zh) 一种数据处理方法和数据处理设备
KR20220029582A (ko) 컴포징 가능한 신경망 커널
CN113449859A (zh) 一种数据处理方法及其装置
US20220012579A1 (en) Neural network accelerator system for improving semantic image segmentation
Hosseiny et al. Hardware acceleration of YOLOv7-tiny using high-level synthesis tools
CN113139617A (zh) 一种输电线路自主定位方法、装置及终端设备
WO2024065848A1 (en) Improving accuracy of machine learning operations by compensating for lower precision with scale shifting
CN118097322B (zh) 基于神经网络的阿尔兹海默症分类模型构建方法及系统
Pham-Quoc et al. Towards an FPGA-targeted hardware/software co-design framework for CNN-based edge computing
US11470298B2 (en) Method and apparatus with updating of algorithm for generating disparity image
Tomasi et al. FPGA–DSP co-processing for feature tracking in smart video sensors
WO2025201119A1 (zh) 数据处理方法及装置、系统
WO2023044707A1 (en) Methods and apparatus to accelerate convolution
US20240412366A1 (en) Detection of anomalies in three-dimensional images
WO2024124365A1 (en) Methods and apparatus to perform convert operations using direct memory access
Brandalero et al. AITIA: Embedded AI techniques for industrial applications
CN114219091A (zh) 网络模型推理加速的方法、装置、设备及存储介质
WO2024065536A1 (en) Methods and apparatus for image segmentation on small datasets
WO2023236008A1 (en) Methods and apparatus for small object detection in images and videos
US12619721B2 (en) Methods and apparatus for malware classification through convolutional neural networks using raw bytes
US20220318383A1 (en) Methods and apparatus for malware classification through convolutional neural networks using raw bytes

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 25777686

Country of ref document: EP

Kind code of ref document: A1