Data processing method and device
By building feature index trees in unmanned driving systems and using heterogeneous acceleration solutions, the problems of high complexity and time-consuming processing of KNN models are solved, which reduces processor requirements, saves costs, and improves data processing efficiency.
Patent Information
- Application Number
- CN202111101993.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-09-18
- Publication Date
- 2025-01-10
- Estimated Expiration
- 2041-09-18
AI Technical Summary
The KNN model has high processing complexity and time-consuming in autonomous driving technology, resulting in high requirements for processor computing capabilities and bandwidth, increasing the costs of autonomous driving enterprises.
By building a feature index tree in the data control module, the processing complexity of the classification model is reduced, and the target data is obtained based on the classification model in the data calculation module, and a heterogeneous acceleration scheme is adopted to reduce the requirements for processor computing capabilities and bandwidth.
It effectively reduces the processing complexity and time-consuming of classification models, saves the costs of driverless enterprises, and improves data processing efficiency.
Smart Images

Figure CN113901157B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of data processing technology, and more particularly to a data processing method. The present invention also relates to a data processing device, a computing device, and a computer-readable storage medium. Background Art
[0002] With the development of Internet technology, driverless technology has become increasingly mature. In driverless technology, classification models (such as KNN models) play a core algorithm role; but because the KNN model needs to calculate and process a large amount of data, the processing complexity of the KNN model is relatively high and the execution time is relatively long.
[0003] Therefore, the KNN model places high demands on the computing power and bandwidth of the processor, causing many autonomous driving companies to adopt processors with better computing power and bandwidth to support the execution of the KNN model, further increasing the costs of autonomous driving companies. Summary of the invention
[0004] In view of this, the embodiments of this specification provide a data processing method. This specification also relates to a data processing device, a computing device, and a computer-readable storage medium to solve the technical defects existing in the prior art.
[0005] According to a first aspect of an embodiment of this specification, a data processing method is provided, which is applied to an autonomous driving system, wherein the system includes a data control module and a data calculation module, wherein:
[0006] The data control module acquires current environment data and map data of the target object, and constructs a feature index tree of the target object based on the map data;
[0007] The data calculation module obtains the current environment data and the feature index tree, and detects the feature index tree based on the current environment data, determines the leaf nodes of the feature index tree corresponding to the current environment data, and inputs the current environment data and the corresponding leaf nodes into the classification model to obtain the target data corresponding to the current environment data.
[0008] According to a second aspect of the embodiments of this specification, there is provided a data processing device, which is applied to an automatic driving system and includes a data control module and a data calculation module, wherein:
[0009] The data control module is configured to obtain current environment data and map data of the target object, and construct a feature index tree of the target object based on the map data;
[0010] The data calculation module is configured to obtain the current environment data and the feature index tree, and detect the feature index tree based on the current environment data, determine the leaf nodes of the feature index tree corresponding to the current environment data, and input the current environment data and the corresponding leaf nodes into a classification model to obtain the target data corresponding to the current environment data.
[0011] According to a third aspect of an embodiment of this specification, a computing device is provided, including:
[0012] Memory and processor;
[0013] The memory is used to store computer-executable instructions, and the processor is used to execute the computer-executable instructions. When the computer-executable instructions are executed by the processor, the steps of any of the data processing methods are implemented.
[0014] According to a fourth aspect of the embodiments of this specification, a computer-readable storage medium is provided, which stores computer-executable instructions, and when the computer-executable instructions are executed by a processor, the steps of any of the data processing methods are implemented.
[0015] The data processing method provided in this specification is applied to an autonomous driving system, wherein the system includes a data control module and a data calculation module, wherein the data control module obtains current environmental data of a target object, and sends the current environmental data and a feature index tree to the data calculation module, wherein the feature index tree is constructed based on map data corresponding to the target object; the data calculation module detects the feature index tree based on the current environmental data, determines the leaf nodes of the feature index tree corresponding to the current environmental data, and inputs the current environmental data and the corresponding leaf nodes into a classification model to obtain target data corresponding to the current environmental data.
[0016] Specifically, the data control module in the data processing method pre-classifies the map data corresponding to the target object by constructing a feature index tree, so that the data calculation module can determine the leaf nodes corresponding to the current environment data (i.e., the classified map data) through the feature index tree, thereby effectively reducing the processing complexity of the classification model during the process of the classification model processing the current environment data and the corresponding leaf nodes, and avoiding the problem of time-consuming execution of the classification model.
[0017] In addition, the data processing method adopts a heterogeneous approach, constructs a feature index tree in the data control module, and obtains the target data corresponding to the current environmental data based on the classification model in the data calculation module, further reducing the requirements for the computing power and bandwidth of the processor, and saving the cost of unmanned driving companies. BRIEF DESCRIPTION OF THE DRAWINGS
[0018] Figure 1 It is a flow chart of an algorithm acceleration process using a DSVS data structure provided in an embodiment of this specification;
[0019] Figure 2 It is a schematic diagram of the structure of an FPGA in the process of algorithm acceleration for constructing a KD tree based on FPGA provided in an embodiment of this specification;
[0020] Figure 3 is a flow chart of a data processing method provided by an embodiment of this specification;
[0021] Figure 4 It is a schematic diagram of segmenting map data using a data processing method provided in an embodiment of this specification;
[0022] Figure 5 is a schematic diagram of a feature index tree in a data processing method provided in an embodiment of this specification;
[0023] Figure 6 is a schematic diagram of executing a KNN model in a data processing method provided in an embodiment of this specification;
[0024] Figure 7 is a processing flow chart of a data processing method applied to a vehicle automatic driving scenario provided in an embodiment of this specification;
[0025] Figure 8 It is a schematic diagram of a downlink BD interface in a data processing method provided in an embodiment of this specification;
[0026] Fig. 9 It is a schematic diagram of an uplink / downlink data interface in a data processing method provided in an embodiment of this specification;
[0027] Fig.10 It is a structural schematic diagram of a data processing device provided in an embodiment of this specification;
[0028] Fig.11 It is a structural block diagram of a computing device provided in an embodiment of this specification. DETAILED DESCRIPTION
[0029] Many specific details are described in the following description to facilitate a full understanding of this specification. However, this specification can be implemented in many other ways than those described herein, and those skilled in the art can make similar generalizations without violating the connotation of this specification, so this specification is not limited to the specific implementation disclosed below.
[0030] The terms used in one or more embodiments of this specification are only for the purpose of describing specific embodiments, and are not intended to limit one or more embodiments of this specification. The singular forms of "a", "said" and "the" used in one or more embodiments of this specification and the appended claims are also intended to include plural forms, unless the context clearly indicates other meanings. It should also be understood that the term "and / or" used in one or more embodiments of this specification refers to and includes any or all possible combinations of one or more associated listed items.
[0031] It should be understood that although the terms first, second, etc. may be used to describe various information in one or more embodiments of this specification, this information should not be limited to these terms. These terms are only used to distinguish the same type of information from each other. For example, without departing from the scope of one or more embodiments of this specification, the first may also be referred to as the second, and similarly, the second may also be referred to as the first. Depending on the context, the word "if" as used herein may be interpreted as "at the time of" or "when" or "in response to determining".
[0032] First, the terms involved in one or more embodiments of this specification are explained.
[0033] Self-driving delivery vehicle: refers to an autonomous terminal logistics vehicle.
[0034] Computing platform: This is the platform that carries the autonomous driving algorithm. In a broad sense, it refers to the hardware and software system that controls the vehicle. In a narrow sense, it mainly includes FPGA and heterogeneous SOC boards.
[0035] KNN algorithm: KNearest Neighbors algorithm, referred to as KNN. As the name implies, K nearest neighbors means k nearest neighbors; that is, in a data set, each sample is considered to be represented by the k closest neighbors to it. KNN is the simplest and most understandable machine learning algorithm. Proposed by Cover and Hart in 1968, KNN can be applied in scenarios including character recognition, text classification, image recognition and other fields.
[0036] ANN: Approximate KNN, referred to as ANN, is not the globally better KNN; since the KNN data set is usually very large, some approximate methods are usually needed to reduce the amount of calculation.
[0037] KD-Tree: KD tree is a tree data structure that stores instance points in k-dimensional space for fast retrieval.
[0038] SOC: System-on-a-Chip, abbreviated as SOC, is an integrated circuit chip.
[0039] MPSOC: Adaptive SOC, the MPSOC can be composed of two parts: PS and PL.
[0040] PS: Processing System, referred to as PS, is the processor system of the MPSOC chip, which can be based on 4 ARMA53 (processors). It can be understood as a chip, which is mainly used to build an operating system and control PL.
[0041] PL: Programmable Logic, referred to as PL, is the programmable logic part of the MPSOC chip, that is, the FPGA part of the SOC chip, mainly used for algorithm acceleration
[0042] BD: Block Descriptor.
[0043] MPI: Miles Per Intervention, an indicator used to represent the level of intelligence of autonomous driving.
[0044] FPGA: Field Programmable Gate Array, referred to as FPGA, can be understood as a chip or a highly customized hardware.
[0045] KITTI dataset: a dataset for evaluating computer vision algorithms in autonomous driving scenarios.
[0046] LUT: A type of random access memory.
[0047] HLS: High Level Synthesis, a code synthesis technology
[0048] SystemVerilog: A hardware description and verification language based on the Verilog language, referred to as SV language.
[0049] Verilog: A hardware description language.
[0050] DDR BandWidth: memory bandwidth.
[0051] BRAM: A type of block memory.
[0052] Performance: a performance.
[0053] CLK Freq: Clock signal frequency.
[0054] DMA: Direct Memory Access.
[0055] I / O: Input / Output, divided into two parts: IO devices and IO interfaces.
[0056] C-model: specifically refers to the software C code corresponding to the hardened accelerator.
[0057] APU: Accelerated Processing Unit.
[0058] With the development of driverless technology, many driverless companies have launched "autonomous driving delivery vehicles" for terminal logistics, aiming to reduce the delivery cost of the last mile of the package, improve the delivery quality, and bring service upgrades through technical means. At present, the "autonomous driving delivery vehicles" of many driverless companies are in the stage of mass production evolution, and have customized their own vehicle hardware and computing platforms, striving to build the world's largest autonomous driving fleet.
[0059] However, there are some challenges in the mass production evolution of "autonomous driving delivery vehicles", specifically, the hardware acceleration of the KNN algorithm; the essence of the KNN algorithm is to search for the point with the closest "distance" to the target point (that is, the most similar point) in a known multidimensional data set, and it plays an extremely important role in many fields of machine learning such as data retrieval, data classification, clustering, etc. It can be said that the KNN algorithm builds the application foundation of computer vision (CV), so the KNN algorithm is also a basic algorithm in the field of autonomous driving.
[0060] In the autonomous driving algorithm of the "autonomous driving delivery car", the KNN algorithm plays a core algorithm role in functions such as point cloud positioning and decision planning, especially in the positioning algorithm. However, since the KNN algorithm needs to search for the most similar points in a large data set at the same time (for example, the data set of the positioning algorithm is at the level of 1 million), the amount of calculation is huge; at the same time, the computing performance of 10Hz (that is, the delay index of 100ms) must be guaranteed, resulting in the highest execution complexity and the longest execution time of the KNN algorithm. The KNN algorithm execution performance, delay and other indicators also directly affect the overall MPI of the "autonomous driving delivery car". Therefore, very high requirements are placed on the computing power and bandwidth of the processor. However, when using a processor with better performance to support the execution of the KNN model, such as a GPU processor or a Xeon processor, it also means high costs and high power consumption.
[0061] The goal of unmanned driving companies for "autonomous driving delivery vehicles" is mass production and operation. Due to power consumption and cost constraints, they will choose to use stable and low-cost embedded computing platforms. However, the limited computing power of embedded platforms and the low cost and stability requirements of mass production have posed challenges to the efficient execution of the KNN algorithm.
[0062] Based on the above problems, a solution uses the DSVS data structure to manage data, referred to as the DSVS (Dual Segment Voxel Structure) solution. The architecture design of this solution is to perform data management on the management module (PS) and perform accelerated computing on the computing module (PL); see Figure 1 , Figure 1 It is a flowchart of using a DSVS data structure to accelerate an algorithm provided in an embodiment of this specification.
[0063] The management module sends the reference data set and the query data set to the calculation module, which constructs a dual-segmented voxel structure based on the reference data set and the query data set, and configures the dual-segmented voxel structure while sending the constructed dual-segmented voxel structure to the management module.
[0064] After receiving the dual-segmented voxel structure, the management module sorts the reference data set and the query data set respectively based on the dual-segmented voxel structure, and sends the sorted reference data set and the query data set to the calculation module.
[0065] The computing module stores the received reference data set and query data set in the data set cache. The computing module searches for neighborhood candidate points based on the configured dual-segmented voxel structure and the reference data set and query data set stored in the data set cache. The computing module accelerates KNN through hardware parallel KNN acceleration and sends the results of the KNN search to the management module.
[0066] Based on the above introduction, although the solution mentions heterogeneous acceleration processing, the use of high-level synthesis (HLS) technology leads to low processing efficiency and requires more computing resources. In actual applications, the solution takes about 100ms (milliseconds) to process 400,000 map points and 10,000 search points in the Kitti data set. In addition, the number of BRAM resources and LUTs required is large (more than 700 BRAMs and more than 60,000 LUTs), which further leads to an excessively large chip area.
[0067] The other solution is to use FPGA to accelerate KNN design, referred to as QuickNN solution. Figure 2 , Figure 2This is a schematic diagram of the structure of an FPGA in the process of accelerating the algorithm for building a KD tree based on FPGA, provided in an embodiment of this specification. Among them, the FPGA of this solution is the development board of VCU118; see Figure 2 , Figure 2 The upper left side is a complete FPGA architecture diagram. According to the FPGA architecture diagram, the FPGA includes a KD tree construction module, a KNN search module, a memory controller, and external memory. Figure 2 The upper right side is the architecture diagram for building the KD tree module; Figure 2 The bottom is the architecture diagram of the KNN search module.
[0068] Specifically, the KD tree construction module can obtain search points from the external memory based on the memory controller, and store the search points in the sample point cache and the tree storage, wherein the sample point cache is multiple and is controlled by the sample point control submodule; the tree storage includes multiple tree storage engines; after the search points are stored in the sample point cache and the tree storage, the control submodule in the KD tree construction module accelerates the construction of the KD tree through the start point sample submodule, the KD tree construction submodule, the tree storage and the KD tree on-chip cache; and the constructed KD tree is stored in the bucket cache, wherein. The KD tree construction submodule can fuse and sort the sample points; the bucket cache is controlled by the bucket control submodule; after the KD tree is stored in the bucket cache, the data in the bucket cache can be aggregated by the aggregation writing submodule, and the aggregated data can be uniformly written to the external memory to increase the read and write efficiency of the external memory. At the same time, the KD tree in the bucket cache is sent to the KNN search module.
[0069] The KNN search module can obtain the points to be matched and the search points in the leaf nodes from the external memory through the memory controller (i.e. the points to be matched enter and the points in the leaf nodes enter). And through the multiple tree search engines in the tree search submodule of the KNN search module, the data in the KD tree on-chip cache and the points to be matched are processed, and the processing results are sent to the multiple leaf node on-chip caches for storage, wherein the multiple leaf node on-chip caches include a single leaf node cache and aggregate read external memory; the leaf node internal point traversal sorting engine can calculate the points in the leaf nodes and the processed points to be matched stored in the multiple leaf node on-chip caches to obtain the KNN search results.
[0070] Based on the above introduction, it can be seen that this solution has three shortcomings. The first aspect is that this solution adopts a full logic acceleration solution, a non-heterogeneous design, which results in a huge chip area. In addition, this solution accelerates the construction of the KD tree. In actual applications, the construction of the KD tree module takes a long time to calculate once, but each construction is performed only once at a long interval (such as 1 second). Instead, the KNN search is executed more times per second (several thousand times), so the KNN search process has a higher acceleration significance. This solution is not reasonable for the hardware acceleration solution for the construction of the KD tree module.
[0071] The second aspect is that the solution uses logic units instead of heterogeneous processor ARM units to accelerate the construction of the KD tree module, so it is inflexible and inefficient.
[0072] The third aspect is that the solution uses the VCU118 development board for design and verification and cannot be used for end-side acceleration.
[0073] Based on the above problems, the data processing method provided in the embodiment of this specification, through performance testing (profiling) of the KNN model, found that the parallel calculation and search of the KNN model consumes more computing resources. In the process of building the KD tree, although the single resource consumption is greater, the tree building frequency is very low (1Hz), so it will not have much impact on the overall computing resource consumption; at the same time, due to the difficulty of parallel execution of the tree building algorithm, it is not suitable for accelerating the KD tree construction process. In addition, it is determined that the bottleneck of KNN algorithm acceleration is not computing resources (DSP), but insufficient bandwidth. Bandwidth consumption includes obtaining KD tree from external memory, obtaining points to be matched, obtaining leaf node data, and returning matching result data. Therefore, the data processing method provided in the embodiment of this specification adopts a heterogeneous acceleration solution, which is responsible for the construction of the KD tree, overall control and command issuance through the data control module, and performs parallel matching search and calculation of point cloud data through the data calculation module.
[0074] In specific implementation, the performance parameters of the chip when the data processing method provided in the embodiment of this specification is adopted, and the specific situation of the performance parameters of the chip using the above two solutions are as shown in Table 1:
[0075] Table 1
[0076]
[0077] Among them, DSVS in Table 1 is the performance parameter of the chip when the DSVS solution is adopted, QuickNN is the performance parameter of the chip when the QuickNN solution is adopted; Proposed is the performance parameter of the chip when the data processing method provided in this specification is adopted. The "?" symbol in Table 1 indicates that the performance parameter information has not been obtained. It should be noted that this specification only takes the performance parameters in Table 1 as an example to further explain the data processing method provided in this specification. In different actual application scenarios, the performance parameter information is also different.
[0078] Based on Table 1 above, it can be seen that the chip area occupied by the DSVS solution and the QuickNN solution after implementation is too large, and some resources such as DSP and BRAM are 40 times and 20 times that of the data processing method provided in this specification. The data processing method provided in this specification first uses ANN to replace KNN on the premise of sacrificing very little accuracy, and through heterogeneous design, the KNN task is reasonably divided between PS and PL, saving a lot of chip resources. Under the same chip performance, the chip area used is less than 1 / 10 of the chip area in the above two solutions, while the area occupied by the above two solutions is about 10 times that of this design, and there is no actual end-side deployment value.
[0079] However, the DSVS solution uses the HLS method, which results in large resources and weak performance, and cannot meet real-time requirements. In addition, the DSVS solution does not specifically optimize system bottlenecks and bandwidth. The data processing method provided in this specification designs multiple leaf node caches in the data calculation module. Since similar point cloud data is likely to fall into the same leaf node, the consumption of leaf node loading is eliminated, saving a lot of intra-frame bandwidth. At the same time, through the refined inter-frame reset logic, the current frame can reuse the on-chip cache of the previous frame, further compressing the bandwidth demand.
[0080] Specifically, in this specification, a data processing method is provided. This specification also relates to a data processing apparatus, a computing device, and a computer-readable storage medium, which are described in detail one by one in the following embodiments.
[0081] See also Figure 3 , Figure 3 A flow chart of a data processing method provided according to an embodiment of the present specification is shown. The data processing method is applied to an autonomous driving system. The system includes a data control module and a data calculation module, and specifically includes the following steps:
[0082] Step 302: The data control module obtains current environment data and map data of the target object, and constructs a feature index tree of the target object based on the map data.
[0083] In specific implementation, the data processing method can be applied to an autonomous driving system, which can be an integrated circuit chip. The integrated circuit chip can be configured according to actual applications, and the embodiments of this specification do not limit this. For example, the integrated circuit chip includes an MPSOC chip, a SOC chip, and an FPGA chip.
[0084] The data control module can be understood as a module for controlling the data calculation module. When the data processing method is applied to the MPSOC chip, the data control module can be understood as a PS module in the MPSOC chip.
[0085] The data calculation module can be understood as a module that can calculate data based on the instructions of the data control module. When the data processing method is applied to the MPSOC chip, the data control module can be understood as the PL module in the MPSOC chip.
[0086] The target object can be understood as a mobile robot, which can be any type of mobile robot, including but not limited to wheeled mobile robots, walking mobile robots (single-legged, two-legged and multi-legged), tracked mobile robots, etc. For ease of understanding, this specification only takes the target object as a wheeled mobile robot as an example to introduce the data processing method in detail. Moreover, the application scenarios of the data processing method are different, and the corresponding target objects are also different; for example, the data processing method is applied to the vehicle automatic driving scenario, and the target object can be an automatic driving delivery vehicle or an automatic driving car; the data processing method is applied to the intelligent cleaning service scenario, and the target object can be a cleaning robot, a sweeping robot, etc.
[0087] When the target object is an autonomous driving delivery vehicle, the current environmental information can be understood as information about the environment in which the autonomous driving delivery vehicle is located, for example, real-time point cloud data of the environment in which the autonomous driving delivery vehicle is located; in actual applications, the real-time point cloud data can be acquired by a detection tool deployed on the autonomous driving delivery vehicle, and the detection tool can be a lidar.
[0088] The map data can be understood as the map point cloud data in the offline high-definition map of the movable area of the target object.
[0089] The feature index tree can be understood as a tree data structure constructed based on the map point cloud data for quickly searching the map point cloud data. For example, the feature index tree can be a KD tree.
[0090] Specifically, the data control module can obtain the current environment data of the target object's current environment and the map data corresponding to the target object, and the data control module can also construct a feature index tree of the target object according to the map data corresponding to the target object.
[0091] For example, taking the data processing method applied to the scene of vehicle autonomous driving as an example, the data control module obtains the current environment data and map data, and constructs a feature index tree to further explain. The target object can be an autonomous driving delivery vehicle, which uses an MPSOC chip, and the MPSOC chip includes a data control module and a data calculation module; the current environment data can be real-time point cloud data, and the map data can be map point cloud data in an offline high-definition map; the feature index tree can be a KD tree.
[0092] The data control module can obtain all points (about several thousand) in each frame of real-time point cloud data detected by the laser radar deployed on the autonomous driving delivery vehicle, where the real-time point cloud data is the real-time point cloud data of the current environment of the autonomous driving delivery vehicle.
[0093] At the same time, the data control module can obtain the map point cloud data in the offline high-definition map corresponding to the autonomous driving delivery vehicle, and construct the KD tree corresponding to the autonomous driving delivery vehicle based on the map point cloud data.
[0094] In the embodiments of the present specification, since the amount of map data is large, if the classification model is used to directly process the map data and the current environment data, it will lead to problems such as excessive calculation of the classification model and long calculation time, further increasing the requirements for the computing power and bandwidth of the processor. Therefore, in order to reduce the calculation amount and calculation time of the classification model and reduce the requirements for the computing power and bandwidth of the processor, the data processing method chooses to construct a feature index tree of the target object based on the acquired map data to solve the above problems; and the specific way in which the data control module obtains the map data of the target object is as follows.
[0095] The data control module obtains map data of the target object, including:
[0096] The data control module determines the map data of the target object based on the current position of the target object and the preset moving track of the target object.
[0097] Among them, when the target object is an autonomous driving delivery vehicle, the current position of the target object can be understood as the coordinate information of the current position of the autonomous driving delivery vehicle; correspondingly, the preset movement trajectory can be understood as the pre-set movement path of the autonomous driving delivery vehicle.
[0098] Specifically, the data control module can determine the map data of the target object based on the current position of the target object and the preset movement trajectory of the target object;
[0099] Furthermore, the data control module determines the map data of the target object based on the current position of the target object and the preset moving track of the target object, including:
[0100] The data control module determines the current position of the target object, determines the next moving area of the target object from a preset moving track based on the current position, and obtains map data corresponding to the next moving area of the target object.
[0101] Among them, when the target object is an autonomous driving delivery vehicle, the next moving area can be understood as the next moving area to which the autonomous driving vehicle will move from the current moving area.
[0102] Specifically, the data control module can determine the current position of the target object, and based on the current position, determine the next moving area to which the target object is about to move from a preset moving trajectory, and obtain map data corresponding to the next moving area.
[0103] Using the above example, the data control module obtains the map data corresponding to the next moving area of the target object, which is further explained. The preset moving trajectory can be a driving path pre-configured for the autonomous driving delivery vehicle.
[0104] The data control module first needs to determine the coordinate information of the current location of the autonomous driving delivery vehicle, and based on the preset driving path pre-configured for the autonomous driving delivery vehicle, determine the current area corresponding to the coordinate information of the autonomous driving delivery vehicle; then, based on the current area of the autonomous driving delivery vehicle, determine the next area to which the autonomous driving delivery vehicle is about to drive, and obtain the offline point cloud data in the offline high-definition map corresponding to the next area.
[0105] In the embodiment of the present specification, the data control module determines the next moving area of the target object from the preset moving trajectory based on the current position of the target object, and obtains the map data corresponding to the next moving area of the target object; this facilitates the subsequent data control module to construct a feature index tree based on the map data. Moreover, the data control module obtains the map data corresponding to the next moving area of the target object instead of directly obtaining the map data corresponding to all moving areas of the target object, thereby avoiding the problem of long time and excessive calculation in constructing the feature index tree due to excessive amount of map data, and further improving the efficiency of obtaining target data.
[0106] In specific implementation, there are multiple methods to realize the classification model. One is the linear scanning method, which is to compare the distance between the offline point cloud data in the map data set and the real-time point cloud data one by one, that is, exhaustive enumeration; but the disadvantage of this method is obvious. The linear scanning method does not use any structural information contained in the map data set itself, and the search efficiency is low; the second type is to establish a data index, and then quickly match based on the data index. Because the offline point cloud data in the actual offline high-definition map generally presents a clustered clustering form, the speed of data retrieval can be greatly accelerated by designing an effective index structure. The construction of a feature index tree belongs to the second category. Therefore, in the embodiment of this specification, the method of constructing a feature index tree of the target object based on map data is adopted to reduce the calculation amount and calculation time of the classification model, and reduce the computing power and bandwidth requirements of the processor; and the specific method of the data control module to construct a feature index tree of the target object based on map data is as follows.
[0107] The step of constructing a feature index tree of the target object based on the map data includes:
[0108] The data control module constructs a feature index tree of the target object based on the coordinate information of the map data.
[0109] Among them, the coordinate information of the map data can be understood as the coordinates carried by the map data. When the map data is offline point cloud data, the coordinate information can be the coordinates of each point cloud data; in actual applications, the coordinate information can be one-dimensional, two-dimensional or three-dimensional coordinates.
[0110] Specifically, after obtaining the map data corresponding to the target object, the data control module constructs a feature index tree of the target object based on the coordinate information of the map data.
[0111] Furthermore, the specific manner in which the data control module constructs the feature index tree based on the coordinate information of the map data is as follows.
[0112] The data control module constructs a feature index tree of the target object based on the coordinate information of the map data, including:
[0113] The data control module classifies the map data based on the coordinate information of the map data, and constructs a feature index tree of the target object based on the classified map data.
[0114] Specifically, after receiving the map data, the data control module classifies the map data based on the coordinate information of the map data to obtain multiple types of map data; and constructs a feature index tree based on each type of map data generated after classification, thereby obtaining a feature index tree corresponding to the target object.
[0115] Continuing with the above example, the data control module will further explain how it constructs a feature index tree for the target object based on the classified map data.
[0116] After receiving the offline point cloud data in the offline high-definition map, the data control module classifies the offline point cloud data based on the features of the offline point cloud data (such as coordinate information) by evenly segmenting the offline point cloud data, thereby obtaining multiple types of offline point cloud data. After classifying the offline point cloud data, the data control module constructs a KD tree based on each type of segmented offline point cloud data, thereby obtaining the KD tree corresponding to the autonomous driving delivery vehicle.
[0117] In the embodiment of this specification, the data control module classifies the map data based on the coordinate information of the map data, and constructs a feature index tree of the target object based on the classified map data, which effectively improves the processing speed of the classification model and reduces the processing complexity of the classification model, greatly speeding up the search efficiency for the target data.
[0118] In addition, the data control module may classify the map data based on the coordinate information of the map data, or may classify the map data by using the initial median coordinate information corresponding to the map data. The specific implementation method is as follows.
[0119] The data control module classifies the map data based on the coordinate information of the map data, including:
[0120] The data control module determines a first target coordinate in the coordinate information of the map data, and determines initial median coordinate information of the map data based on the first target coordinate;
[0121] The data control module classifies the map data based on the initial median coordinate information to obtain two types of map data;
[0122] The data control module determines a second target coordinate in the coordinate information of each type of map data, determines target median coordinate information of each type of map data based on the second target coordinate, and classifies each type of map data based on the target median coordinate information until the amount of each type of map data is equal to a preset amount threshold.
[0123] Among them, the first target coordinate can be understood as the coordinate axis corresponding to the coordinate information of the map data. When the coordinate information of the map data is a two-dimensional coordinate, the first target coordinate can be the coordinate axis X or the coordinate axis Y; when the coordinate information of the map data is a three-dimensional coordinate, the first target coordinate can be the coordinate axis X, the coordinate axis Y or the coordinate axis Z.
[0124] When the first target coordinate is the coordinate axis X, the initial median coordinate information can be understood as the coordinate information of the map data that is closest to the middle number of the coordinate axis X among the coordinate information of all the map data; in actual applications, the data control module determines the distribution range of the coordinates of the offline point cloud data on the coordinate axis X, and calculates the median of the range; and determines the coordinate information of the offline point cloud data that is closest to the median, that is, the initial median coordinate information.
[0125] The second target coordinates may be understood as coordinate axes corresponding to coordinate information of each type of map data.
[0126] In the case where the second target coordinate is the coordinate axis X, the target median coordinate information may be understood as the coordinate information of the map data closest to the middle number of the coordinate axis X among the coordinate information of each type of map data.
[0127] The preset number threshold can be set according to actual application, and this specification embodiment does not impose any limitation on this. For example, the preset number threshold can be 128.
[0128] Specifically, the data control module first determines the first target coordinates in the coordinate information of the map data, and determines the initial median coordinate information of the map data based on the first target coordinates; secondly, classifies the map data based on the initial median coordinate information to obtain two types of map data;
[0129] After obtaining two types of map data, the data control module determines the second target coordinates in the coordinate information of each type of map data, determines the target median coordinate information of each type of map data based on the second target coordinates, and classifies each type of map data based on the target median coordinate information until the amount of each type of map data is equal to a preset amount threshold.
[0130] Continuing with the above example, the classification of map data by the data control module based on target coordinates and median coordinate information is further explained.
[0131] See also Figure 4 , Figure 4 This is a schematic diagram of a data processing method provided in an embodiment of this specification for segmenting map data. The offline point cloud data in the offline high-definition map can be represented by N data points in a K-dimensional space, that is, a set of data points in the K-dimensional space, where K can be 1, 2 or 3; N can be any positive integer. This specification embodiment takes the offline point cloud data as data points in a two-dimensional space as an example to illustrate the data processing method; the number of offline point cloud data is 6. The coordinate information of each offline point cloud data is (2,3), (5,4), (9,6), (4,7), (8,1), (7,2).
[0132] The data control module can first select the coordinate axis X in the two-dimensional space as the first target coordinate in the coordinate information of the offline point cloud data, and determine that the median of the coordinate axis X of the six offline point cloud data is 6 based on the corresponding coordinates of the offline point cloud data on the coordinate axis X, and then select the coordinate information of the offline point cloud data (7, 2) closest to the median 6 as the initial median coordinate information of the offline point cloud data.
[0133] After the data control module determines the initial median coordinate information (7, 2), (7, 2) is used as the segmentation point, and a segmentation line A is determined based on the coordinate axis X and the segmentation point (7, 2). The segmentation line A passes through the selected segmentation point (7, 2) and is perpendicular to the selected coordinate axis X. The two-dimensional space corresponding to the offline point cloud data is divided into two rectangles through the segmentation line A. The two rectangles are two types of map data, wherein the number of offline point cloud data in the rectangle on the left side of the segmentation line A is 4; the number of offline point cloud data in the rectangle on the right side of the segmentation line A is 2.
[0134] In practical applications, when offline point cloud data is represented by data points in three-dimensional space, a hyperplane can be determined based on the coordinate axis X and the dividing point (7, 2). The hyperplane passes through the selected dividing point (7, 2) and is perpendicular to the selected coordinate axis X. The three-dimensional space corresponding to the offline point cloud data is divided into two regions through the hyperplane.
[0135] After the data control module divides the two-dimensional space into two rectangles, for each rectangle, the coordinate axis Y can be selected as the second target coordinate corresponding to each rectangle, and based on the coordinates corresponding to each rectangle on the coordinate axis Y, the median of the coordinate axis Y of the offline point cloud data in each rectangle is determined, and then the coordinate information of the offline point cloud data closest to the median is selected as the target median coordinate information of the offline point cloud data in each rectangle. Figure 4 , the target median coordinate information of the offline point cloud data in the rectangle on the left side of the dividing line A can be (5,4); the target median coordinate information of the offline point cloud data in the rectangle on the right side of the dividing line A can be (9,6).
[0136] After the data control module determines the target median coordinate information, it uses the target median coordinate information as the dividing point, and determines a dividing line based on the coordinate axis Y and the dividing point. The dividing line passes through the selected dividing point and is perpendicular to the selected coordinate axis Y. Each rectangle is divided into two rectangles again through the dividing line. The two rectangles are two types of map data.
[0137] After the data control module divides each rectangle into two rectangles again through the dividing line, it continues to perform the above-mentioned rectangle segmentation operation for the two rectangles divided again. When the data of the offline point cloud data in each rectangle is equal to the preset data threshold, the classification of the offline point cloud data is completed.
[0138] In the embodiment of the specification, the data control module classifies the map data based on the initial median coordinate information of the map data determined by the first target coordinate, and again classifies each type of map data based on the target median coordinate information determined by the second target coordinate in the coordinate information of each type of map data, until the number of each type of map data is equal to the preset number threshold. Accurate classification of map data is achieved, which facilitates the subsequent construction of a feature index tree through the classified map data, and further improves the efficiency of obtaining target data.
[0139] Furthermore, the data control module constructs a feature index tree of the target object based on the classified map data. The feature index tree of the target object can also be constructed by using the initial median coordinate information corresponding to the map data, the target median coordinate information, and each type of map data. The specific implementation method is as follows.
[0140] The step of constructing a feature index tree of the target object based on the classified map data includes:
[0141] The data control module determines the initial median coordinate information of the map data as the root node of the feature index tree, determines the target median coordinate information of each type of map data as a child node of the feature index tree, and determines each type of map data as a leaf node of the feature index tree;
[0142] The data control module constructs a feature index tree of the target object according to the root node, the child nodes and the leaf nodes.
[0143] Among them, the root node can be understood as the node at the top of the feature index tree; the child node can be understood as the node connected below the root node in the feature index tree; and the leaf node can be understood as the node at the end of the feature index tree.
[0144] Specifically, after completing the classification of the map data, the data control module determines the initial median coordinate information of the map data as the root node of the feature index tree; determines the target median coordinate information of each type of map data as the child node of the feature index tree; determines each type of map data as the leaf node of the feature index tree; and constructs the feature index tree of the target object according to the root node, the child node and the leaf node.
[0145] Using the above example, the construction of the feature index tree of the target object based on the root node, the child node and the leaf node is further explained.
[0146] See also Figure 5 , Figure 5 It is a schematic diagram of a feature index tree in a data processing method provided in an embodiment of this specification.
[0147] After completing the classification of the offline point cloud data in the offline high-definition map, the data control module determines the initial median coordinate information (7,2) of the offline point cloud data as the root node of the KD tree, and determines the target median coordinate information (5,4) and (9,6) of the offline point cloud data in each rectangle as the child node of the KD tree. The offline point cloud data in each rectangle that meets the preset data threshold is determined as the leaf node of the KD tree. Each rectangle that meets the preset data threshold is the rectangle corresponding to the coordinates (2,3), (4,7) and (8,1).
[0148] After determining the root node, child node, and leaf node corresponding to the KD tree, the data control module constructs the KD tree corresponding to the autonomous driving delivery vehicle based on the root node, the child node, and the leaf node.
[0149] In the embodiment of the present specification, the data control module completes the construction of the feature index tree by determining the root node, child nodes and leaf nodes corresponding to the feature index tree, thereby realizing rapid acquisition of target data corresponding to the target object based on the feature index tree, further improving the efficiency of acquiring the target data.
[0150] Furthermore, considering the accuracy loss caused by the use of the ANN model, the size of each leaf node of the KD tree is set equal to a preset number threshold to further reduce the search complexity of the ANN algorithm.
[0151] Furthermore, after constructing the feature index tree of the target object based on the map data, the method further includes:
[0152] The data control module stores the current environment data and the feature index tree in the data storage module, generates a data processing instruction based on the current environment data and the feature index tree, and sends the data processing instruction to the data calculation module.
[0153] In which, when the data processing method is applied to an MPSOC chip, the data storage module can be understood as an internal memory corresponding to the MPSOC chip.
[0154] Specifically, after obtaining the current environment data and feature index tree of the target object, the data control module stores the current environment data and feature index tree in the data storage module, generates data processing instructions based on the current environment data and feature index tree, and sends the data processing instructions to the data calculation module.
[0155] Continuing with the above example, the data control module stores the current environment data and the feature index tree in the data storage module, and sends a data processing instruction to the data calculation module to further illustrate.
[0156] The data control module obtains the real-time point cloud data corresponding to the autonomous driving delivery vehicle, and after completing the construction of the KD tree based on the offline point cloud data, stores the real-time point cloud data and the KD tree in the internal memory corresponding to the MPSOC chip; and generates data processing instructions based on the real-time point cloud data and the KD tree, and sends the instructions to the data calculation module.
[0157] In the embodiment of the present specification, the data control module stores the current environment data and the feature index tree in the data storage module, and generates a data processing instruction based on the current environment data and the feature index tree and sends it to the data calculation module. The data calculation module can obtain the current environment data and the feature index tree from the data storage module based on the data processing instruction, which reduces the bandwidth pressure between the data control module and the data calculation module and improves the efficiency of data transmission.
[0158] Furthermore, before the data calculation module detects the feature index tree based on the current environment data, it also includes:
[0159] The data calculation module obtains the current environment data and the feature index tree from the data storage module based on the received data processing instruction.
[0160] During the specific implementation process, the data calculation module can obtain the current environment data and feature index tree corresponding to the target object from the data storage module based on the data processing instructions, thereby reducing the bandwidth pressure between the data control module and the data calculation module and improving the efficiency of data transmission.
[0161] In another embodiment, the generating of data processing instructions based on the current environment data and the feature index tree includes:
[0162] The data control module determines the storage locations of the current environment data and the feature index tree in the data storage module, and generates a data processing instruction based on the storage locations.
[0163] Specifically, after storing the current environment data and the feature index tree in the data storage module, the data control module can determine the storage location of the current environment data and the feature index tree in the data storage module, and generate a data processing instruction based on the storage location.
[0164] Continuing with the above example, the data control module generates data processing instructions based on the current environment data and the storage location of the feature index tree to further illustrate.
[0165] After the data control module stores the real-time point cloud data and the KD tree in the internal memory corresponding to the MPSOC chip, the data control module can determine the corresponding storage location of the real-time point cloud data and the KD tree in the internal memory, and generate data processing instructions based on the storage location.
[0166] In the embodiment of the present specification, the data control module determines the storage location of the current environment data and the feature index tree in the data storage module, and generates a data processing instruction based on the storage location, so that the data calculation module can quickly and accurately obtain the current environment data and the feature index tree in the data storage module based on the storage location of the current environment data and the feature index tree.
[0167] Furthermore, before the data calculation module detects the feature index tree based on the current environment data, it also includes:
[0168] The data calculation module obtains the current environment data and the feature index tree from the data storage module based on the storage location carried in the received data processing instruction.
[0169] In specific implementation, after receiving the data processing instruction, the data calculation module can quickly and accurately obtain the current environment data and feature index tree corresponding to the target object from the data storage module based on the storage location of the current environment data and feature index tree carried in the data processing instruction, further improving the efficiency of obtaining the target data corresponding to the target object.
[0170] Step 304: The data calculation module obtains the current environment data and the feature index tree, and detects the feature index tree based on the current environment data, determines the leaf nodes of the feature index tree corresponding to the current environment data, and inputs the current environment data and the corresponding leaf nodes into the classification model to obtain the target data corresponding to the current environment data.
[0171] The classification model may be understood as a model capable of performing data classification, and the classification model includes but is not limited to a KNN model and an ANN model.
[0172] When the map data is offline point cloud data, the target data may be understood as offline point cloud data having a high degree of similarity to the current environment data.
[0173] Specifically, after the data control module obtains the current environmental data corresponding to the target object and completes the construction of the feature index tree, the data calculation module can obtain the current environmental data and the feature index tree of the target object; and detect the feature index tree based on the current environmental data, so as to determine the leaf nodes of the feature index tree corresponding to the current environmental data, and input the current environmental data and the corresponding leaf nodes into the classification model, so as to obtain the target data corresponding to the current environmental data.
[0174] Using the above example, the data control module obtains the target data corresponding to the current environment data based on the current environment data and the feature index tree to further illustrate that the classification model is an ANN model.
[0175] After acquiring the real-time point cloud data and KD tree of the autonomous delivery vehicle, the data calculation module searches for the leaf nodes corresponding to the real-time point cloud data in the KD tree based on the real-time point cloud data. After determining the leaf nodes corresponding to the real-time point cloud data, the real-time point cloud data and the corresponding leaf nodes are input into the ANN model to obtain K offline point cloud data with a high degree of familiarity with the real-time point cloud data, where K can be set according to the actual application, and this specification embodiment does not impose any restrictions on this. For example, K = 5.
[0176] When the ANN model is implemented, it can match the offline point cloud data of the leaf node with the offline point cloud data that has a high degree of familiarity with the real-time point cloud data; see Figure 6 , Figure 6 This is a schematic diagram of executing an ANN model in a data processing method provided in an embodiment of this specification; wherein the square and triangle are data sets to be searched (i.e., offline point cloud data in leaf nodes), and the circle is the target point (i.e., real-time point cloud data). When you want to find the K offline point cloud data closest to the target point, you need to calculate the distance between each offline point cloud data in the leaf node and the real-time point cloud data, and sort and compare the calculated distance values in ascending order.
[0177] If K=2, the target data is the offline point cloud data corresponding to the two triangles in the solid circle; if K=3, the target data is the offline point cloud data corresponding to all triangles and squares in the solid circle; if K=5, the target data is the offline point cloud data corresponding to all triangles and squares in the dotted circle, and so on.
[0178] In practical applications, the ANN model needs to be trained. The training method of the ANN model can be: first load the data; second, initialize the K value of the ANN model; then, in order to obtain the prediction result, the ANN model can be iteratively trained through the training data. Among them, the iterative training of the ANN model can be: first calculate the distance between the test data and each row of training data, and sort the calculated distances in ascending order according to the distance value; secondly, obtain the first k rows of training data according to the sorting result, and then output the prediction result, and iteratively train the ANN model according to the prediction result.
[0179] Further, the data calculation module detects the feature index tree based on the current environment data to determine the leaf node of the feature index tree corresponding to the current environment data, including:
[0180] The data calculation module detects the feature index tree based on the coordinate information of the current environment data, and determines the leaf node of the feature index tree corresponding to the current environment data.
[0181] The coordinate information of the current environment data may be understood as the coordinate information of the real-time point cloud data, and the coordinate information may be one-dimensional, two-dimensional or three-dimensional coordinates.
[0182] Specifically, the data calculation module can detect the feature index tree based on the coordinate information of the current environment data, and determine the leaf nodes of the feature index tree corresponding to the current environment data.
[0183] During specific implementation, the data calculation module determines the leaf node corresponding to the current environment data in the following manner.
[0184] The data calculation module detects the feature index tree based on the coordinate information of the current environment data, and determines the leaf node of the feature index tree corresponding to the current environment data, including:
[0185] The data calculation module determines an initial leaf node corresponding to the current environment data, and determines a target distance value between the current environment data and the initial leaf node based on coordinate information of the current environment data;
[0186] The data calculation module determines the distance value between the current environment data and other leaf nodes in the feature index tree, and compares the distance value with the target distance value;
[0187] The data calculation module determines the initial leaf node as a leaf node of the feature index tree corresponding to the current environment data when the distance value is greater than or equal to the target distance value;
[0188] When the distance value is less than the target distance value, the data calculation module determines the leaf node corresponding to the distance value as the initial leaf node, and continues to determine the target distance value between the current environment data and the initial leaf node based on the coordinate information of the current environment data.
[0189] Among them, the initial leaf node can be understood as the leaf node that the current environment data initially corresponds to in the process of determining the leaf node that the current environment data corresponds to.
[0190] The target distance value can be understood as the distance between the current environment data and the initial leaf node.
[0191] The distance values of other leaf nodes can be understood as the distance between the current environment data and other leaf nodes except the initial leaf node.
[0192] Specifically, the data calculation module determines the initial leaf node corresponding to the current environment data, and determines the target distance value between the current environment data and the initial leaf node based on the coordinate information of the current environment data;
[0193] The data calculation module determines the distance value between the current environment data and other leaf nodes in the feature index tree, and compares the distance value with the target distance value;
[0194] When the distance value is greater than or equal to the target distance value, the initial leaf node is determined as a leaf node of the feature index tree corresponding to the current environment data;
[0195] When the distance value is less than the target distance value, the leaf node corresponding to the distance value is determined as the initial leaf node, and the target distance value between the current environment data and the initial leaf node is further determined based on the coordinate information of the current environment data.
[0196] Using the above example, the data calculation module determines the leaf nodes of the feature index tree corresponding to the current environment data to further illustrate.
[0197] The data calculation node determines the initial leaf node corresponding to the real-time point cloud data in the feature index tree, and calculates the target distance value between the real-time point cloud data and the initial leaf node according to the coordinate information of the real-time point cloud data.
[0198] After determining the target distance value, the data calculation node calculates the distance value between the real-time point cloud data and other leaf nodes according to the coordinate information of the real-time point cloud data, and compares the distance value with the target distance value.
[0199] When the distance value is greater than or equal to the target distance value, it means that the initial leaf node has the highest familiarity with the real-time point cloud data, so the initial leaf node is determined as the leaf node of the KD tree corresponding to the real-time point cloud data.
[0200] When the distance value is less than the target distance value, it means that the initial leaf node is not the leaf node with the highest familiarity with the real-time point cloud data. Therefore, the leaf node corresponding to the distance value is determined as the initial leaf node, and the target distance value between the real-time point cloud data and the initial leaf node is further determined based on the coordinate information of the real-time point cloud data.
[0201] In an embodiment of the present specification, the data calculation module determines the target distance value from the initial leaf node based on the coordinate information of the current environmental data; and compares the distance value between the current environmental data and other leaf nodes in the feature index tree with the target distance value; thereby, based on the comparison result, the leaf node of the feature index tree corresponding to the current environmental data is accurately determined, further improving the accuracy of obtaining the target data.
[0202] In the embodiment of the present specification, after the data calculation module obtains the target data corresponding to the current environment data, the target data can be stored in the data storage module. The specific implementation method is as follows.
[0203] After obtaining the target data corresponding to the current environment data, the method further includes:
[0204] The data calculation module stores the target data in the data storage module, and sends a processing completion instruction carrying the storage location of the target data to the data control module.
[0205] Specifically, after obtaining the target data corresponding to the current environment data, the data calculation module may store the target data in the data storage module, and send a processing completion instruction carrying the storage location of the target data to the data control module.
[0206] In the embodiment of this specification, the data calculation module stores the target data to the data storage module, and sends the processing completion instruction carrying the storage location of the target data to the data control module, thereby reducing the bandwidth pressure between the data control module and the data calculation module and improving the efficiency of data transmission.
[0207] In addition, in the process of obtaining the current environment data of the target object by the data control module, the amount of the current environment data of the target object may be large. Therefore, in order to alleviate the calculation amount of the data calculation module and reduce the time consumption of the data calculation module, the data control module can pre-screen the current environment data of the target object. The specific implementation method is as follows:
[0208] The data control module obtains the current environment data of the target object, including:
[0209] The data control module obtains the initial current environment data of the target object and determines the data content of the initial current environment data;
[0210] The data control module obtains target current environment data from the initial current environment data based on the data content.
[0211] Among them, the initial current environment data can be understood as all point cloud data detected by the target object, and the initial current link data has not been screened.
[0212] The data content can be understood as the data carried by the current environment data, for example, the coordinate information and color of the current environment data.
[0213] Specifically, the data control module can obtain the initial current environment data of the target object and determine the data content in the initial current environment data; and obtain the target current environment data from the initial current environment data based on the data content.
[0214] Continuing with the above example, the data control module is further explained to obtain the target current environment data from the initial current environment data based on the data content, wherein the initial current environment data is all point cloud data detected by the laser radar configured on the autonomous driving delivery vehicle.
[0215] The data control module can obtain all the point cloud data in each frame acquired by the autonomous driving delivery vehicle through the lidar, and determine the data content corresponding to all the point cloud data, which may be the color information carried in the point cloud data.
[0216] When the color information satisfies the preset color condition, the point cloud data corresponding to the color information is used to determine the real-time point cloud data corresponding to the target object. The preset color condition can be set according to actual application, and the embodiments of this specification do not impose any limitation on this.
[0217] In the embodiment of this specification, the data control module obtains the target current environment data from the initial current environment data based on the data content of the initial current environment data. This avoids the problem of increasing the amount of calculation of the classification model due to the large amount of current environment data, alleviates the amount of calculation of the data calculation module, and reduces the time consumption of the data calculation module.
[0218] The data processing method provided in this specification pre-classifies the map data corresponding to the target object by constructing a feature index tree through the data control module, so that the data calculation module can determine the leaf nodes corresponding to the current environmental data (i.e., the classified map data) through the feature index tree, thereby effectively reducing the processing complexity of the classification model and avoiding the problem of time-consuming execution of the classification model during the process of the classification model processing the current environmental data and the corresponding leaf nodes.
[0219] In addition, the data processing method adopts a heterogeneous approach, constructs a feature index tree in the data control module, and obtains the target data corresponding to the current environmental data based on the classification model in the data calculation module, further reducing the requirements for the computing power and bandwidth of the processor, and saving the cost of unmanned driving companies.
[0220] The following combination Figure 7 , taking the application of the data processing method provided in this specification in the vehicle automatic driving scenario as an example, the data processing method is further explained. Figure 7 A flow chart of a data processing method for a vehicle autonomous driving scenario provided by an embodiment of the present specification is shown. Referring to the flow chart, the data processing method for a vehicle autonomous driving scenario provided by the present specification includes two modules: a processor system and an algorithm acceleration module; wherein the processor system and the algorithm acceleration module are both configured with an MPSOC chip ( Figure 7 In the solid line part), the processor memory is configured outside the solid line part to facilitate data sharing between the processor system and the algorithm acceleration module.
[0221] Among them, the algorithm acceleration module may include multiple sub-modules, which may be a KNN frame-level task management sub-module, a KNN search tree management sub-module, a KNN search tree search sub-module, a KNN to-be-matched point management sub-module, a KNN leaf node management sub-module, a KNN calculation array sub-module, a KNN result reporting sub-module, and a direct memory access interconnection sub-module.
[0222] Based on the above introduction, the data processing method provided in this specification for use in a vehicle autonomous driving scenario specifically includes the following steps:
[0223] Step 702: Processor system.
[0224] The processor system may be understood as the data control module in the above embodiments.
[0225] Specifically, during the execution process, the processor system can realize functions such as building a KD tree, point cloud memory management, and positioning interaction.
[0226] The constructed KD tree can obtain offline point cloud data in the offline high-definition map corresponding to the autonomous driving delivery vehicle for the processor system, and construct the KD tree once every 1 second based on the offline point cloud data.
[0227] Point cloud memory management can obtain 1 frame of real-time point cloud data every 100ms (milliseconds) for the processor system, and store the real-time point cloud data and the constructed KD tree in the processor memory.
[0228] The positioning interaction can generate a task descriptor (BD) for the processor system based on the real-time point cloud data and the physical address of the KD tree in the processor memory, and send the task descriptor to the algorithm acceleration module.
[0229] After the processor system sends the task descriptor to the algorithm acceleration module, the algorithm acceleration module can obtain real-time point cloud data and KD tree based on the received task descriptor, calculate point by point through the KNN model, and write the processing result back to the physical address of the processor memory specified by the processor system. After the writing is completed, the processing completion instruction is sent to the processor system; specifically, the following steps are included:
[0230] Step 704: KNN frame-level task management submodule.
[0231] Among them, the algorithm acceleration module can be understood as the data calculation module in the above embodiment.
[0232] Specifically, the KNN frame-level task management submodule executes KNN task management on the algorithm acceleration module; it receives the KNN task descriptor sent by the PS, which carries data such as the KD tree address, the address of the point to be searched (offline point cloud data), the address of the point to be matched (real-time point cloud data), the leaf node address, the return data address, and the number of points to be searched.
[0233] Step 706: KNN search tree management submodule.
[0234] Specifically, the KNN search tree management submodule is responsible for the on-chip management of the KD tree. The KNN search tree management submodule obtains the constructed KD tree from the processor memory through the direct memory access interconnection submodule based on the KD tree address, leaf node address and address of the point to be searched.
[0235] Step 708: KNN search tree finds submodule.
[0236] Specifically, the KNN search tree search submodule is responsible for the tree search logic, that is, finding the leaf node corresponding to each point to be searched.
[0237] Step 710: KNN to-be-matched point management submodule.
[0238] Specifically, the KNN to-be-matched point management submodule obtains the to-be-matched point from the outside of the processor through the direct memory access interconnection submodule based on the to-be-matched point address.
[0239] Step 712: KNN leaf node management submodule.
[0240] Specifically, the KNN leaf node management submodule is responsible for obtaining the leaf nodes in the processor memory and performing on-chip cache management to determine the leaf node corresponding to each point to be matched.
[0241] Step 714: KNN calculation array submodule.
[0242] Specifically, the KNN calculation array submodule may be responsible for parallel KNN distance calculation and send the calculation result to the KNN result reporting submodule; wherein the KNN distance calculation method may be:
[0243] The point to be matched P and the leaf node L corresponding to the point to be matched P are input into the KNN model. The KNN model can calculate the distance between P and all the points to be searched in L. The distance calculation adopts the geometric distance, that is, (P_x-Li_x)*(P_x-Li_x)+(P_y-Li_y)*(P_y-Li_y)+(P_z-Li_z)*(P_z-Li_z).
[0244] Among them, P_x is the coordinate of the to-be-matched point P on the X-axis, P_Y is the coordinate of the to-be-matched point P on the Y-axis, and P_z is the coordinate of the to-be-matched point P on the Z-axis; correspondingly, Li_x is the coordinate of each to-be-searched point in the leaf node on the X-axis, Li_y is the coordinate of each to-be-searched point in the leaf node on the Y-axis; Li_z is the coordinate of each to-be-searched point in the leaf node on the Z-axis.
[0245] After calculating the distances between P and all the points to be searched in L, the KNN model sorts all the distances, finds the K distances with the smallest distance to P, and returns the points to be searched corresponding to the K distances.
[0246] Step 716: KNN result reporting submodule.
[0247] Specifically, after receiving the calculation result sent by the KNN calculation array submodule, the KNN result reporting submodule stores the calculation result to the return data address in the processor memory specified by the processor system based on the direct memory access interconnection.
[0248] Furthermore, during specific implementation, the ANN model may be used to calculate the real-time point cloud data and the KD tree, and the processing results may be written back to the physical address of the processor memory specified by the processor system.
[0249] The data processing method provided in this specification adopts the KNN heterogeneous acceleration solution to accelerate the point cloud positioning algorithm when the KNN algorithm is applied to the point cloud positioning algorithm of the autonomous driving delivery vehicle. The offline point cloud data (between hundreds of thousands and two million) in the offline high-precision map is constructed into a KD tree, and all the points (roughly thousands) in each frame of real-time point cloud data obtained from the lidar are found in the high-precision map. The nearest K matching points (offline point cloud data) facilitate the subsequent positioning of the autonomous driving delivery vehicle based on the K matching points. In addition, in order to take into account the acceleration efficiency of the KNN search, the size of each leaf node of the KD tree is equal to the preset number threshold, further reducing the search complexity of the KNN algorithm.
[0250] In addition, in the asynchronous acceleration process of the data processing method, an efficient acceleration logic and data interaction play an important role. Due to the heterogeneous properties of the data processing method provided in the embodiment of this specification, an efficient and concise interactive interface design is required between the data control module and the data calculation module. Based on this, in the embodiment of this specification, three interfaces are designed between the data control module and the data calculation module: a downlink BD interface, an up / downlink data interface, and an interrupt interface.
[0251] Among them, the downlink BD interface is responsible for the data control module (PS) to send the task BD to the data calculation module (PL), that is, to accelerate the task description; see Figure 8 , Figure 8 It is a schematic diagram of a downlink BD interface in a data processing method provided in an embodiment of this specification.
[0252] Specifically, Figure 8 The interface corresponding to A1 is the downlink BD interface. The data control module sends the task descriptor to the data computing module through the hardware interface corresponding to A1, and passes the data information that needs to be accelerated to the data computing module.
[0253] In the specific implementation, the data control module and the data calculation module distribute tasks in an asynchronous manner. The data control module is only responsible for sending the task descriptor BD; and the data movement work is all completed by the data calculation module. That is, as long as the data control module receives the task, it can send the task descriptor BD to the data calculation module for calculation, without waiting for the data control module to complete the KNN task of the current frame.
[0254] At the same time, in actual applications, the data control module needs to continuously transmit two 128-bit task descriptors (BD), that is, 32-byte task descriptors to the data calculation module; after the data calculation module obtains the task descriptor, it parses it to obtain the corresponding address and quantity information. Among them, the message of the task descriptor (BD) sent by the data control module can carry interface data, interface legitimacy, interface status, interface data transmission end, interface address and interface width, among which interface legitimacy, interface status and interface data transmission end are all signals for indicating the operating status of the interface; the interface data carries tree address, map data address, search point address, distance, number of child nodes, tree size, number of points to be matched, number of leaf nodes, address of points to be matched, and the size of each information; the interface address can be (Base_addr_***), and the interface width can be (0**).
[0255] Among them, the uplink / downlink data interface is responsible for the data calculation module (PL) to return data to the data control module (PS), and obtain the KD tree and real-time point cloud data in the data storage module (PS DDR memory). Fig. 9 , Fig. 9 It is a schematic diagram of an uplink / downlink data interface in a data processing method provided in an embodiment of this specification.
[0256] Specifically, Fig. 9 The interface corresponding to B1 is the uplink / downlink data interface. The data processed by the data calculation module can be DMAed back to the physical address of the data storage module corresponding to the data control module through the channel corresponding to B1. And after the DMA is completed, the data control module is notified through the shared interrupt interface.
[0257] Among them, the interrupt interface is responsible for the data calculation module (PL) notifying the data control module (PS) that the acceleration task has been completed.
[0258] Specifically, the interrupt interface is responsible for transmitting interrupt messages between the data control module and the data computing module. The interrupt message sent from the data control module I / O peripheral (IOP) can be routed to the data computing module. Correspondingly, the data computing module can asynchronously send the interrupt message to the data control module. Among them, the interrupt message can be assigned a priority, and the interrupt message with the assigned priority can be routed to the interrupt controller, which aggregates the interrupt message and routes it to the module corresponding to the interrupt message. The parameter information of the interrupt message is shown in Table 2:
[0259] Table 2
[0260]
[0261] It should be noted that this specification only takes the parameters in Table 2 as an example to further explain the interrupt message in the data processing method provided in this specification. In different actual application scenarios, the parameter information is also different.
[0262] Furthermore, in the embodiment of the present specification, when the data control module and the data calculation module obtain the data stored in the memory, they need to obtain the data from the memory through the base address corresponding to the data. After the data calculation module completes the calculation of the data, the target data needs to be stored in the data storage module. Specifically, the data calculation module stores the offline point cloud data with a high degree of familiarity with the real-time point cloud data and the distance value corresponding to the offline point cloud data searched by KNN in the specified address of the data storage module, thereby generating two base addresses, which are sent by the data control module to the data calculation module through the task descriptor; wherein, the base address and the corresponding data information are shown in Table 3:
[0263] Table 3
[0264]
[0265] The interface name is the name of the interface that sends data to the data storage module; the size is the size of the data; and the start address and the end address are the base addresses corresponding to the data.
[0266] It should be noted that this specification only takes the information in Table 3 as an example to further explain the base address and corresponding data information in the data processing method provided in this specification. In different actual application scenarios, the information is also different.
[0267] Furthermore, when the data calculation module stores the offline point cloud data with a high degree of familiarity with the real-time point cloud data and the distance value corresponding to the offline point cloud data searched by KNN into the data storage module, corresponding data will be generated in the C-model corresponding to the autonomous driving system, and the data will be stored in R_idx** and R_dis_Addr** in the C-model.
[0268] In the embodiment of this specification, through the data communication interface between PS and PL, PS sends task BD to PL, PL parses task BD and independently accesses and processes data, releasing the burden of PS; PL notifies PS of task completion through interruption, and can obtain acceleration results. Specifically, by designing an asynchronous interface, PS and PL can work independently without blocking, and the command interaction format is simple, and data transmission is completely completed by PL's own DMA, avoiding excessive involvement of PS in data interaction with PL, and releasing PS processing capacity.
[0269] Corresponding to the above method embodiment, this specification also provides a data processing device embodiment, Fig.10 FIG. 1 shows a schematic diagram of the structure of a data processing device provided by an embodiment of the present specification. Fig.10 As shown, the device is applied to an automatic driving system, including a data control module 1002 and a data calculation module 1004, wherein:
[0270] The data control module 1002 is configured to obtain current environment data and map data of the target object, and construct a feature index tree of the target object based on the map data;
[0271] The data calculation module 1004 is configured to obtain the current environment data and the feature index tree, and detect the feature index tree based on the current environment data, determine the leaf nodes of the feature index tree corresponding to the current environment data, and input the current environment data and the corresponding leaf nodes into a classification model to obtain the target data corresponding to the current environment data.
[0272] Optionally, the data control module 1002 is further configured to construct a feature index tree of the target object based on the coordinate information of the map data.
[0273] Optionally, the data control module 1002 is further configured to determine the map data of the target object based on the current position of the target object and the preset moving track of the target object.
[0274] Optionally, the data control module 1002 is further configured to determine the current position of the target object, determine the next moving area of the target object from a preset moving trajectory based on the current position, and obtain map data corresponding to the next moving area of the target object.
[0275] Optionally, the data control module 1002 is further configured to classify the map data based on the coordinate information of the map data, and construct a feature index tree of the target object based on the classified map data.
[0276] Optionally, the data control module 1002 is further configured to:
[0277] Determine a first target coordinate in the coordinate information of the map data, and determine initial median coordinate information of the map data based on the first target coordinate;
[0278] Classifying the map data based on the initial median coordinate information to obtain two types of map data;
[0279] Determine a second target coordinate in the coordinate information of each type of map data, determine target median coordinate information of each type of map data based on the second target coordinate, and classify each type of map data based on the target median coordinate information until the amount of each type of map data is equal to a preset amount threshold.
[0280] Optionally, the data control module 1002 is further configured to:
[0281] Determine the initial median coordinate information of the map data as the root node of the feature index tree, determine the target median coordinate information of each type of map data as a child node of the feature index tree, and determine each type of map data as a leaf node of the feature index tree;
[0282] A feature index tree of the target object is constructed according to the root node, the child nodes, and the leaf nodes.
[0283] Optionally, the data control module 1002 is also configured to store the current environment data and the feature index tree in a data storage module, generate data processing instructions based on the current environment data and the feature index tree, and send the data processing instructions to the data calculation module.
[0284] Optionally, the data calculation module 1004 is further configured to obtain the current environment data and the feature index tree from the data storage module based on the received data processing instruction.
[0285] Optionally, the data control module 1002 is further configured to determine the storage location of the current environment data and the feature index tree in the data storage module, and generate a data processing instruction based on the storage location.
[0286] Optionally, the data calculation module 1004 is further configured to obtain the current environment data and the feature index tree from the data storage module based on the storage location carried in the received data processing instruction.
[0287] Optionally, the data calculation module 1004 is further configured to detect the feature index tree based on the coordinate information of the current environment data, and determine the leaf node of the feature index tree corresponding to the current environment data.
[0288] Optionally, the data calculation module 1004 is further configured to:
[0289] Determine an initial leaf node corresponding to the current environment data, and determine a target distance value between the current environment data and the initial leaf node based on coordinate information of the current environment data;
[0290] Determine the distance value between the current environment data and other leaf nodes in the feature index tree, and compare the distance value with the target distance value;
[0291] In a case where the distance value is greater than or equal to the target distance value, determining the initial leaf node as a leaf node of the feature index tree corresponding to the current environment data;
[0292] When the distance value is less than the target distance value, the leaf node corresponding to the distance value is determined as the initial leaf node, and the target distance value between the current environment data and the initial leaf node is further determined based on the coordinate information of the current environment data.
[0293] Optionally, the data calculation module 1004 is further configured to store the target data in the data storage module, and send a processing completion instruction carrying the storage location of the target data to the data control module.
[0294] Optionally, the data control module 1002 is further configured to:
[0295] Acquire initial current environment data of the target object, and determine the data content of the initial current environment data;
[0296] Target current environment data is acquired from the initial current environment data based on the data content.
[0297] A data processing device provided in this specification is applied to an automatic driving system, and the data processing device includes a data control module and a data calculation module. By using the data control module to construct a feature index tree, the map data corresponding to the target object is pre-classified, so that the data calculation module can determine the leaf node corresponding to the current environmental data (i.e., the classified map data) through the feature index tree, so that in the process of the classification model processing the current environmental data and the corresponding leaf node, the processing complexity of the classification model is effectively reduced, and the problem of the classification model taking a long time to execute is avoided. In addition, the data processing device adopts a heterogeneous method to construct the feature index tree in the data control module, and obtains the target data corresponding to the current environmental data based on the classification model in the data calculation module, further reducing the requirements for the computing power and bandwidth of the processor, and saving the cost of the unmanned driving enterprise.
[0298] The above is a schematic scheme of a data processing device of this embodiment. It should be noted that the technical scheme of the data processing device and the technical scheme of the above data processing method belong to the same concept, and the details of the technical scheme of the data processing device that are not described in detail can be referred to the description of the technical scheme of the above data processing method.
[0299] Fig.11 The block diagram of a computing device 1100 according to one embodiment of the present specification is shown. The components of the computing device 1100 include but are not limited to a memory 1110 and a processor 1120. The processor 1120 is connected to the memory 1110 via a bus 1130, and a database 1150 is used to store data.
[0300] The computing device 1100 also includes an access device 1140 that enables the computing device 1100 to communicate via one or more networks 1060. Examples of these networks include a public switched telephone network (PSTN), a local area network (LAN), a wide area network (WAN), a personal area network (PAN), or a combination of communication networks such as the Internet. The access device 1140 may include one or more of any type of network interface (e.g., a network interface card (NIC)) whether wired or wireless, such as an IEEE 802.11 wireless local area network (WLAN) wireless interface, a World Wide Interoperability for Microwave Access (Wi-MAX) interface, an Ethernet interface, a universal serial bus (USB) interface, a cellular network interface, a Bluetooth interface, a near field communication (NFC) interface, and the like.
[0301] In one embodiment of the present specification, the above components of the computing device 1100 and Fig.11 Other components not shown in the figure may also be connected to each other, for example, via a bus. It should be understood that Fig.11 The computing device structure block diagram shown is only for the purpose of illustration, and is not intended to limit the scope of this specification. Those skilled in the art can add or replace other components as needed.
[0302] The computing device 1100 may be any type of stationary or mobile computing device, including a mobile computer or mobile computing device (e.g., a tablet computer, a personal digital assistant, a laptop computer, a notebook computer, a netbook, etc.), a mobile phone (e.g., a smart phone), a wearable computing device (e.g., a smart watch, smart glasses, etc.), or other types of mobile devices, or a stationary computing device such as a desktop computer or PC. The computing device 1100 may also be a mobile or stationary server.
[0303] The processor 1120 is used to execute computer executable instructions, which, when executed by the processor 1120, implement the steps of any of the data processing methods.
[0304] The above is a schematic scheme of a computing device of this embodiment. It should be noted that the technical scheme of the computing device and the technical scheme of the above data processing method belong to the same concept, and the details not described in detail in the technical scheme of the computing device can be referred to the description of the technical scheme of the above data processing method.
[0305] An embodiment of the present specification further provides a computer-readable storage medium storing computer-executable instructions, which can implement any step of the data processing method when executed by a processor.
[0306] The above is a schematic scheme of a computer-readable storage medium of this embodiment. It should be noted that the technical scheme of the storage medium and the technical scheme of the above data processing method belong to the same concept, and the details not described in detail in the technical scheme of the storage medium can be referred to the description of the technical scheme of the above data processing method.
[0307] The above is a description of a specific embodiment of the specification. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps recorded in the claims can be performed in an order different from that in the embodiments and still achieve the desired results. In addition, the processes depicted in the drawings do not necessarily require the specific order or continuous order shown to achieve the desired results. In some embodiments, multitasking and parallel processing are also possible or may be advantageous.
[0308] The computer instructions include computer program codes, which may be in source code form, object code form, executable files or some intermediate forms, etc. The computer-readable medium may include: any entity or device capable of carrying the computer program code, recording medium, USB flash drive, mobile hard disk, magnetic disk, optical disk, computer memory, read-only memory (ROM), random access memory (RAM), electric carrier signal, telecommunication signal and software distribution medium, etc. It should be noted that the content contained in the computer-readable medium may be appropriately increased or decreased according to the requirements of legislation and patent practice in the jurisdiction. For example, in some jurisdictions, according to legislation and patent practice, computer-readable media do not include electric carrier signals and telecommunication signals.
[0309] It should be noted that, for the convenience of description, the aforementioned method embodiments are all described as a series of action combinations, but those skilled in the art should be aware that this specification is not limited by the order of the actions described, because according to this specification, some steps can be performed in other orders or simultaneously. Secondly, those skilled in the art should also be aware that the embodiments described in the specification are all preferred embodiments, and the actions and modules involved are not necessarily required by this specification.
[0310] In the above embodiments, the description of each embodiment has its own emphasis. For parts that are not described in detail in a certain embodiment, reference can be made to the relevant descriptions of other embodiments.
[0311] The preferred embodiments of this specification disclosed above are only used to help explain this specification. The optional embodiments do not describe all the details in detail, nor do they limit the invention to only the specific implementation methods described. Obviously, many modifications and changes can be made according to the content of this specification. This specification selects and specifically describes these embodiments in order to better explain the principles and practical applications of this specification, so that technicians in the relevant technical field can well understand and use this specification. This specification is limited only by the claims and their full scope and equivalents.
Claims
1. A data processing method is applied to an autonomous driving system, wherein the system comprises a data control module and a data calculation module, wherein: The data control module acquires current environment data and map data of the target object, and constructs a feature index tree of the target object based on the map data; The data calculation module obtains the current environment data and the feature index tree, and detects the feature index tree based on the current environment data, determines the leaf nodes of the feature index tree corresponding to the current environment data, and inputs the current environment data and the corresponding leaf nodes into the classification model to obtain the target data corresponding to the current environment data, wherein the current environment data is real-time point cloud data, the target data is offline point cloud data, and the leaf nodes are classified map data.
2. The data processing method according to claim 1, wherein constructing a feature index tree of the target object based on the map data comprises: The data control module constructs a feature index tree of the target object based on the coordinate information of the map data.
3. The data processing method according to claim 1, wherein the data control module obtains the map data of the target object, comprising: The data control module determines the map data of the target object based on the current position of the target object and the preset moving track of the target object.
4. The data processing method according to claim 3, wherein the data control module determines the map data of the target object based on the current position of the target object and the preset moving track of the target object, comprising: The data control module determines the current position of the target object, determines the next moving area of the target object from a preset moving track based on the current position, and obtains map data corresponding to the next moving area of the target object.
5. The data processing method according to claim 2, wherein the data control module constructs a feature index tree of the target object based on the coordinate information of the map data, comprising: The data control module classifies the map data based on the coordinate information of the map data, and constructs a feature index tree of the target object based on the classified map data.
6. The data processing method according to claim 5, wherein the data control module classifies the map data based on the coordinate information of the map data, comprising: The data control module determines a first target coordinate in the coordinate information of the map data, and determines initial median coordinate information of the map data based on the first target coordinate; The data control module classifies the map data based on the initial median coordinate information to obtain two types of map data; The data control module determines a second target coordinate in the coordinate information of each type of map data, determines target median coordinate information of each type of map data based on the second target coordinate, and classifies each type of map data based on the target median coordinate information until the amount of each type of map data is equal to a preset amount threshold.
7. The data processing method according to claim 6, wherein constructing a feature index tree of the target object based on the classified map data comprises: The data control module determines the initial median coordinate information of the map data as the root node of the feature index tree, determines the target median coordinate information of each type of map data as a child node of the feature index tree, and determines each type of map data as a leaf node of the feature index tree; The data control module constructs a feature index tree of the target object according to the root node, the child nodes and the leaf nodes.
8. The data processing method according to claim 1, after constructing the feature index tree of the target object based on the map data, further comprising: The data control module stores the current environment data and the feature index tree in the data storage module, generates a data processing instruction based on the current environment data and the feature index tree, and sends the data processing instruction to the data calculation module.
9. The data processing method according to claim 8, before the data calculation module detects the feature index tree based on the current environment data, further comprising: The data calculation module obtains the current environment data and the feature index tree from the data storage module based on the received data processing instruction.
10. The data processing method according to claim 8, wherein generating data processing instructions based on the current environment data and the feature index tree comprises: The data control module determines the storage locations of the current environment data and the feature index tree in the data storage module, and generates a data processing instruction based on the storage locations.
11. The data processing method according to claim 10, before the data calculation module detects the feature index tree based on the current environment data, further comprising: The data calculation module obtains the current environment data and the feature index tree from the data storage module based on the storage location carried in the received data processing instruction.
12. The data processing method according to claim 1, wherein the data calculation module detects the feature index tree based on the current environment data to determine the leaf node of the feature index tree corresponding to the current environment data, comprising: The data calculation module detects the feature index tree based on the coordinate information of the current environment data, and determines the leaf node of the feature index tree corresponding to the current environment data.
13. The data processing method according to claim 12, wherein the data calculation module detects the feature index tree based on the coordinate information of the current environment data to determine the leaf node of the feature index tree corresponding to the current environment data, comprising: The data calculation module determines an initial leaf node corresponding to the current environment data, and determines a target distance value between the current environment data and the initial leaf node based on coordinate information of the current environment data; The data calculation module determines the distance value between the current environment data and other leaf nodes in the feature index tree, and compares the distance value with the target distance value; The data calculation module determines the initial leaf node as a leaf node of the feature index tree corresponding to the current environment data when the distance value is greater than or equal to the target distance value; When the distance value is less than the target distance value, the data calculation module determines the leaf node corresponding to the distance value as the initial leaf node, and continues to determine the target distance value between the current environment data and the initial leaf node based on the coordinate information of the current environment data.
14. The data processing method according to claim 8, after obtaining the target data corresponding to the current environment data, further comprising: The data calculation module stores the target data in the data storage module, and sends a processing completion instruction carrying the storage location of the target data to the data control module.
15. The data processing method according to claim 1, wherein the data control module obtains the current environment data of the target object, comprising: The data control module obtains the initial current environment data of the target object and determines the data content of the initial current environment data; The data control module obtains target current environment data from the initial current environment data based on the data content.
16. A data processing device, applied to an automatic driving system, comprising a data control module and a data calculation module, wherein: The data control module is configured to obtain current environment data and map data of the target object, and construct a feature index tree of the target object based on the map data; The data calculation module is configured to obtain the current environment data and the feature index tree, and detect the feature index tree based on the current environment data, determine the leaf nodes of the feature index tree corresponding to the current environment data, and input the current environment data and the corresponding leaf nodes into a classification model to obtain target data corresponding to the current environment data, wherein the current environment data is real-time point cloud data, the target data is offline point cloud data, and the leaf nodes are classified map data.
17. A computing device comprising: Memory and processor; The memory is used to store computer-executable instructions, and the processor is used to execute the computer-executable instructions. When the computer-executable instructions are executed by the processor, the steps of the data processing method described in any one of claims 1 to 15 are implemented.
18. A computer-readable storage medium storing computer-executable instructions, which, when executed by a processor, implement the steps of the data processing method according to any one of claims 1 to 15.
Citation Information
Patent Citations
Unstructured point cloud storage method and device, equipment and medium
CN113094463A
Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
US20200374566A1