Data processing method and device, storage medium and electronic equipment

By dividing point cloud data into multiple map tiles and matching them with target map tiles, the problems of long registration time and low accuracy between map and point cloud data are solved, resulting in more stable matching results and more accurate positioning and navigation.

CN120852811APending Publication Date: 2025-10-28TENCENT TECHNOLOGY (SHENZHEN) CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202410519503.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-04-26
Publication Date
2025-10-28

AI Technical Summary

Technical Problem

In existing technologies, the large number of map tiles leads to long registration times between the map and point cloud data, high computational resource consumption, unstable registration results, and low accuracy.

Method used

By dividing the point cloud data into multiple map blocks and pre-determining the association between the map blocks and coordinate data according to the target size, the target map blocks are matched, the matching results are determined by using the ratio of the number of targets to the total number, and the pose data is optimized to improve the registration stability.

Benefits of technology

It improves the stability of the matching results between point cloud data and target map, avoids positioning deviation and error accumulation, and provides more accurate positioning and navigation information.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120852811A_ABST
    Figure CN120852811A_ABST
Patent Text Reader

Abstract

The invention discloses a data processing method and device, a storage medium and electronic equipment. The method comprises the following steps: acquiring point cloud data detected by a laser radar; determining a group of map blocks and target points according to the point cloud data; whether a target map block matched with the target point exists in the group of map blocks or not is determined, and if the target map block is matched with the target point, it is shown that a result obtained by processing the target point coordinate data according to the target size is the same as a result obtained by processing the target map block coordinate data according to the target size; and determining a matching result of the point cloud data and the target map according to the target number of the target points of the matched target map blocks in the point cloud data and the total number of the target points in the point cloud data. The technical problem that the registration accuracy is low due to the fact that the registration result is not stable enough is solved, and the method and device can be applied to various scenes such as the cloud technology, artificial intelligence, intelligent traffic and auxiliary driving.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of computers, and more specifically, to a data processing method and apparatus, a storage medium, and an electronic device. Background Technology

[0002] Currently, the main approach in related technologies is to first stitch together several map tiles, then perform localization and mapping. That is, after stitching together several map tiles to obtain the entire map, a full load is performed, and relevant algorithms are used to register the map and point cloud data using matrix condition numbers. Because the map tiles need to be loaded and stitched in real time, and the number of map tiles is large, the loading time is long. This results in the map-point cloud data registration consuming a lot of computing resources, and the registration results are not stable enough, leading to low registration accuracy.

[0003] To address the above-mentioned problems, no effective solutions have been proposed so far. Summary of the Invention

[0004] This application provides a data processing method and apparatus, a storage medium and an electronic device to at least solve the technical problem of low registration accuracy caused by unstable registration results.

[0005] According to one aspect of the embodiments of this application, a data processing method is provided, comprising: acquiring point cloud data detected by a lidar, wherein the point cloud data is used to represent spatial information of the environment in which the lidar is located; determining a set of map tiles and a target point based on the point cloud data, wherein a target map registered with the point cloud data is pre-divided into multiple map tiles according to a target size, the multiple map tiles including the set of map tiles, the set of map tiles being pre-associated with a set of map tile coordinate data, the target point representing any point in the point cloud data, and the point cloud data including target point coordinate data corresponding to the target point; determining... Does the set of map tiles contain a target map tile that matches the target point? A target map tile matching the target point means that the result of processing the target point coordinate data according to the target size is the same as the result of processing the target map tile coordinate data according to the target size. The target map tile coordinate data corresponds to the target map tile. The set of map tile coordinate data includes the target map tile coordinate data. The matching result between the point cloud data and the target map is determined by the number of target points in the point cloud data that match the target map tile and the total number of target points in the point cloud data.

[0006] According to another aspect of the embodiments of this application, a data processing apparatus is also provided, comprising: an acquisition module, configured to acquire point cloud data detected by a lidar, wherein the point cloud data is used to represent spatial information of the environment in which the lidar is located; and an execution module, configured to determine a set of map tiles and a target point based on the point cloud data, wherein a target map registered with the point cloud data is pre-divided into multiple map tiles according to a target size, the multiple map tiles include the set of map tiles, the set of map tiles is pre-associated with a set of map tile coordinate data, the target point represents any point in the point cloud data, and the point cloud data includes target point coordinate data corresponding to the target point; and processing. A module is used to determine whether there is a target map tile that matches the target point in the set of map tiles. A target map tile matching the target point means that the result of processing the target point coordinate data according to the target size is the same as the result of processing the target map tile coordinate data according to the target size. The target map tile coordinate data corresponds to the target map tile, and the set of map tile coordinate data includes the target map tile coordinate data. A determination module is used to determine the matching result between the point cloud data and the target map by the number of target points in the point cloud data that match the target map tile and the total number of target points in the point cloud data.

[0007] Optionally, the device is configured to determine whether there is a target map tile matching the target point in the set of map tiles by: acquiring the target point coordinate data corresponding to the target point; processing the target point coordinate data according to the target size to obtain the target point coordinate value; if there is a target map tile coordinate value in the set of map tile coordinate values ​​that is the same as the target point coordinate value, determining that the target point coordinate data matches the target map tile coordinate data, wherein the set of map tile coordinate values ​​are obtained in advance by processing the set of map tile coordinate data according to the target size, and the target map tile coordinate value corresponds to the target map tile coordinate data; if the target point coordinate data matches the target map tile coordinate data, determining that there is a target map tile matching the target point.

[0008] Optionally, the device is used to process the target point coordinate data according to the target size in the following manner to obtain the target point coordinate value: when the target size represents a length of N and a width of M, a first ratio of the target point's abscissa to N in the target point coordinate data is determined, and a second ratio of the target point's ordinate to M in the target point coordinate data is determined, where M and N are both positive integers; the integer parts of the first ratio and the second ratio are determined as the abscissa and ordinate of the target point coordinate value.

[0009] Optionally, the apparatus is further configured to: when there is a target map tile coordinate value in a set of map tile coordinate values ​​that is the same as the target point coordinate value, before determining that the target point coordinate data matches the target map tile coordinate data, determine a first set of ratios between the abscissa of each map tile coordinate data in the set of map tile coordinate data and the N, and determine a second set of ratios between the ordinate of each map tile coordinate data in the set of map tile coordinate data and the M; match the first set of ratios and the second set of ratios according to the corresponding map tile coordinate data to determine the set of map tile coordinate values, wherein one map tile coordinate value in the set of map tile coordinate values ​​includes the integer part of the third ratio in the first set of ratios as the abscissa and the integer part of the fourth ratio in the second set of ratios as the ordinate, and the third ratio and the fourth ratio correspond to the same map tile.

[0010] Optionally, the device is configured to determine that the target point coordinate data matches the target map tile coordinate data when a target map tile coordinate value with the same target point coordinate value exists in a set of map tile coordinate values ​​in the following manner: comparing the x-coordinate of the target point coordinate value with the x-coordinate of each map tile coordinate value in the set of map tile coordinate values ​​to determine intermediate map tile coordinate values ​​with the same x-coordinate; comparing the y-coordinate of the target point coordinate value with the y-coordinate of each map tile coordinate value in the intermediate map tile coordinate values ​​to determine the target map tile coordinate value with the same y-coordinate; and determining the target map tile coordinate data corresponding to the target map tile coordinate value as matching the target point coordinate data.

[0011] Optionally, the apparatus is further configured to: store the map tile coordinate data corresponding to each of the group of map tiles as a target array; establish a hash map based on the target array, wherein the hash map includes multiple sets of key-value pairs, and the key-value pairs include an index of the map tile coordinate data corresponding to each map tile in the group of map tiles; determine a target index value based on the target point coordinate value, and determine whether there is target map tile coordinate data that matches the target point coordinate data through the target index value and the hash map.

[0012] Optionally, the device is configured to determine the matching result between the point cloud data and the target map by the following methods: determining the number of target points in the point cloud data that match the target map tile and the total number of target points in the point cloud data; determining the total number of target points based on the point cloud data; obtaining a predetermined evaluation parameter threshold; determining a target evaluation parameter based on the number of target points and the total number of target points, and comparing the target evaluation parameter with the evaluation parameter threshold to determine the matching result.

[0013] Optionally, the device is configured to determine a target evaluation parameter based on the target quantity and the total quantity in the following manner, and compare the target evaluation parameter with the evaluation parameter threshold to determine the matching result: determining the ratio between the target quantity and the total quantity as the target evaluation parameter; comparing the magnitude relationship between the target evaluation parameter and the evaluation parameter threshold; if the target evaluation parameter is greater than or equal to the evaluation parameter threshold, determining that the matching result is that the point cloud data and the target map match; if the target evaluation parameter is less than the evaluation parameter threshold, determining that the matching result is that the point cloud data and the target map do not match.

[0014] Optionally, the device is configured to determine whether there is a target map tile matching the target point in the set of map tiles by: acquiring multiple sets of raster coordinate data corresponding to the set of map tile coordinate data, wherein one set of map tile coordinate data corresponds to one set of raster coordinate data; determining whether there is target raster coordinate data matching the target point coordinate data in the multiple sets of raster coordinate data, wherein the matching of the target raster coordinate data with the target point coordinate data means that the result obtained by processing the target point coordinate data according to the target size is the same as the result obtained by processing the target raster coordinate data according to the target size; if there is a target raster coordinate data matching the target point coordinate data, determining that the map tile coordinate data corresponding to the target raster coordinate data is the target map tile coordinate data, and the target map tile matches the target point.

[0015] Optionally, the apparatus is further configured to: acquire initial pose data corresponding to the point cloud data, wherein the initial pose data represents pose data corresponding to the point cloud data at the same time; determine the target points where there are matching target map tiles as target feature points; calculate target residual information using each target feature point and the corresponding target map tile; and optimize the initial pose data using the target residual information when the matching result between the point cloud data and the target map indicates that the point cloud data and the target map are matched, thereby obtaining target pose data.

[0016] Optionally, the device is configured to calculate target residual information using each of the target feature points and the corresponding target map tile in the following manner: calculating the target residual information using each of the target feature points and the target raster features in the corresponding target map tile; optimizing the initial pose data using the target residual information to obtain target pose data when the matching result of the point cloud data and the target map indicates that the point cloud data and the target map match; concatenating each of the target residual information to obtain a target residual matrix; and optimizing the initial pose data using the target residual matrix through a preset algorithm to obtain the target pose data.

[0017] According to another aspect of the embodiments of this application, a computer-readable storage medium is also provided, wherein a computer program is stored in the computer-readable storage medium, and the computer program is configured to execute the above-described data processing method when running.

[0018] According to another aspect of the embodiments of this application, a computer program product or computer program is provided, which includes computer instructions stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium and executes the computer instructions, causing the computer device to perform the data processing method described above.

[0019] According to another aspect of the embodiments of this application, an electronic device is also provided, including a memory and a processor, wherein the memory stores a computer program and the processor is configured to execute the data processing method described above through the computer program.

[0020] In this embodiment, point cloud data detected by a lidar is acquired, where the point cloud data represents the spatial information of the lidar's environment. A set of map tiles and target points are determined based on the point cloud data. The target map, registered with the point cloud data, is pre-divided into multiple map tiles according to the target size. These multiple map tiles include a set of map tiles, which are pre-associated with a set of map tile coordinate data. A target point represents any point in the point cloud data, which includes the target point coordinate data corresponding to that point. It is then determined whether a target map tile matches the target point within the set of map tiles. Matching a target map tile with a target point means that the result of processing the target point coordinate data according to the target size matches the target map tile coordinate data according to the target size. The processing results are the same, the target map tile coordinate data corresponds to the target map tile, and a set of map tile coordinate data includes the target map tile coordinate data; the matching result between point cloud data and target map is determined by the number of target points in the point cloud data that match the target map tile and the total number of target points in the point cloud data. By comparing each target point with a set of map tiles separately, the matching result is determined by the total number of target points in the point cloud data and the number of target points corresponding to the target map tile coordinate data. This achieves the purpose of improving the stability of the matching result between point cloud data and target map, avoiding positioning deviations and error accumulation caused by unstable matching results, and thus solving the technical problem of low registration accuracy due to unstable registration results.

[0021] On the other hand, the target point coordinates in the point cloud data can be matched with a set of map tiles to obtain the target map tiles. This allows for further calibration of the pose of the point cloud data, providing more accurate positioning, navigation, and other information. This is applicable to various application scenarios, such as autonomous driving, drones, and robots. Furthermore, it achieves the technical effect of improving the matching accuracy between point cloud data and target maps. Attached Figure Description

[0022] The accompanying drawings, which are included to provide a further understanding of this application and form part of this application, illustrate exemplary embodiments and are used to explain this application, but do not constitute an undue limitation of this application. In the drawings:

[0023] Figure 1 This is a schematic diagram of an application environment for an optional data processing method according to an embodiment of this application;

[0024] Figure 2 This is a flowchart illustrating an optional data processing method according to an embodiment of this application;

[0025] Figure 3This is a schematic diagram of an optional data processing method according to an embodiment of this application;

[0026] Figure 4 This is a schematic diagram of another optional data processing method according to an embodiment of this application;

[0027] Figure 5 This is a schematic diagram of another optional data processing method according to an embodiment of this application;

[0028] Figure 6 This is a schematic diagram of another optional data processing method according to an embodiment of this application;

[0029] Figure 7 This is a schematic diagram of another optional data processing method according to an embodiment of this application;

[0030] Figure 8 This is a schematic diagram of another optional data processing method according to an embodiment of this application;

[0031] Figure 9 This is a schematic diagram of another optional data processing method according to an embodiment of this application;

[0032] Figure 10 This is a schematic diagram of another optional data processing method according to an embodiment of this application;

[0033] Figure 11 This is a schematic diagram of the structure of an optional data processing apparatus according to an embodiment of this application;

[0034] Figure 12 This is a schematic diagram of the structure of an optional data processing product according to an embodiment of this application;

[0035] Figure 13 This is a schematic diagram of the structure of an optional electronic device according to an embodiment of this application. Detailed Implementation

[0036] To enable those skilled in the art to better understand the present application, the technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present application, and not all embodiments. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without creative effort should fall within the scope of protection of the present application.

[0037] It should be noted that the terms "first," "second," etc., in the specification, claims, and accompanying drawings of this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such data can be interchanged where appropriate so that the embodiments of this application described herein can be implemented in orders other than those illustrated or described herein. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover non-exclusive inclusion; for example, a process, method, system, product, or apparatus that comprises a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units not explicitly listed or inherent to such processes, methods, products, or apparatus.

[0038] The present application will be described below with reference to embodiments:

[0039] According to one aspect of the embodiments of this application, a data processing method is provided. Optionally, in this embodiment, the above-described data processing method can be applied to, for example... Figure 1 The hardware environment shown consists of server 101 and terminal device 103. For example... Figure 1 As shown, server 101 is connected to terminal device 103 via a network and can be used to provide services to terminal device or applications installed on terminal device. Applications can be video applications, instant messaging applications, browser applications, educational applications, game applications, etc. Database 105 can be set up on the server or independently of the server to provide data storage services for server 101, such as a game data storage server. The network mentioned above can include, but is not limited to, wired networks and wireless networks. The wired network includes local area networks, metropolitan area networks, and wide area networks. The wireless network includes Bluetooth, WIFI, and other networks that enable wireless communication. Terminal device 103 can be a terminal configured with an application, and can include, but is not limited to, at least one of the following: mobile phones (such as Android phones, iOS phones, etc.), laptops, tablets, handheld computers, MID (Mobile Internet Devices), PADs, desktop computers, smart TVs, smart voice interaction devices, smart home appliances, vehicle terminals, aircraft, virtual reality (VR) terminals, augmented reality (AR) terminals, mixed reality (MR) terminals, and other computer devices. The server mentioned above can be a single server, a server cluster composed of multiple servers, or a cloud server.

[0040] Combination Figure 1As shown, the above data processing method can be executed by an electronic device, which can be a terminal device or a server. The above data processing method can be implemented by the terminal device or the server respectively, or by the terminal device and the server together.

[0041] The above is merely an example, and this embodiment does not impose any specific limitations.

[0042] Alternatively, as an alternative implementation method, such as Figure 2 As shown, the data processing methods include:

[0043] S202, acquire point cloud data detected by the lidar, wherein the point cloud data is used to represent the spatial information of the environment in which the lidar is located;

[0044] Optionally, in the embodiments of this application, the point cloud data mentioned above may include, but is not limited to, data collected by LiDAR. The point cloud data can reflect the spatial information of the current LiDAR location, such as the three-dimensional coordinate information of the LiDAR. The point cloud data may be used for, but is not limited to, map making, navigation, building surveying and other fields to facilitate accurate spatial positioning and navigation. For example, point cloud data may be obtained through terminal devices, including but not limited to mobile phones, computers, smart voice interaction devices, smart home appliances, vehicle terminals, aircraft and so on.

[0045] Intelligent Traffic Systems (ITS), also known as Intelligent Transportation Systems, effectively integrate advanced technologies (information technology, computer technology, data communication technology, sensor technology, electronic control technology, automatic control theory, operations research, artificial intelligence, etc.) into transportation, service control, and vehicle manufacturing. This strengthens the connection between vehicles, roads, and users, thereby forming a comprehensive transportation system that ensures safety, improves efficiency, enhances the environment, and conserves energy. Alternatively;

[0046] Intelligent Vehicle Infrastructure Cooperative Systems (IVICS) are a development direction of Intelligent Transportation Systems (ITS). IVICS utilizes advanced wireless communication and next-generation Internet technologies to implement comprehensive, real-time dynamic information exchange between vehicles and infrastructure. Based on the collection and fusion of dynamic traffic information across all times and spaces, it conducts active vehicle safety control and cooperative road management, fully realizing effective collaboration between people, vehicles, and roads. This ensures traffic safety, improves traffic efficiency, and ultimately forms a safe, efficient, and environmentally friendly road traffic system.

[0047] For example, suppose there is a vehicle A in the field of intelligent transportation. This vehicle A is equipped with a LiDAR unit, an inertial measurement unit, etc. The LiDAR unit can emit laser beams to the surroundings and perceive the surrounding environment by receiving the reflected signals of the laser beams. Furthermore, since the LiDAR unit is deployed on the vehicle, it can further obtain the surrounding environment of the vehicle, realize obstacle detection and distance measurement. The inertial measurement unit can sense the acceleration, angular velocity and attitude changes of the vehicle, help the vehicle to locate and navigate. Based on the point cloud data obtained by the LiDAR, the current position of the vehicle is determined. This may include, but is not limited to, establishing a coordinate system with the vehicle as the origin, and then combining the data obtained by the inertial measurement unit to correct the vehicle's pose. In other words, the vehicle's pose is projected onto the map coordinate system to realize the real-time position acquisition of the vehicle.

[0048] S204, determine a set of map tiles and target points based on point cloud data. The target map registered with the point cloud data is pre-divided into multiple map tiles according to the target size. The multiple map tiles include a set of map tiles. The set of map tiles is pre-associated with a set of map tile coordinate data. The target point represents any point in the point cloud data. The point cloud data includes the target point coordinate data corresponding to the target point.

[0049] It should be noted that the above map tiles can be understood as map tiles corresponding to multiple areas in the target map, divided according to the preset size. Taking one map tile as an example, there are items within this map tile that are allowed to reflect lasers. Each item has relevant coordinate data, and the units on the items also have relevant coordinate data. The above multiple map tiles can be obtained in the following way:

[0050] S1, Data preprocessing, performs preprocessing operations such as denoising and filtering on the point cloud data corresponding to the target map to improve data quality and reduce interference;

[0051] S2, Feature Extraction: Through feature extraction algorithms, feature information such as edges, corners, and planes is extracted from point cloud data.

[0052] In this embodiment, the feature extraction algorithm can be understood as a method for extracting useful information from point cloud data. The extracted features can be used to describe the attributes of the point cloud data, such as shape, color, and texture. Feature extraction algorithms can be applied to various fields, including computer vision, pattern recognition, signal processing, and natural language processing. Feature extraction algorithms include, but are not limited to, edge detection algorithms for detecting edge information in images; corner detection algorithms for detecting corner information in images; scale-invariant feature transform algorithms for detecting key points and descriptors in images; principal component analysis algorithms for dimensionality reduction and extraction of main features of data; discrete wavelet transform algorithms for extracting frequency domain features of signals or images; and color histogram algorithms for describing color distribution features in images.

[0053] S3, Point cloud segmentation: The point cloud data is segmented into different blocks according to the target size mentioned above using a point cloud segmentation algorithm. Map blocks can be obtained by segmenting based on features such as color, density, and shape.

[0054] Point cloud segmentation algorithms are algorithms used to segment point cloud data into different parts or categories. They can be used to identify and separate different objects or parts of objects in point cloud data for subsequent processing and analysis. Point cloud segmentation algorithms include, but are not limited to, segmentation algorithms based on geometric features, segmentation algorithms based on deep learning, segmentation algorithms based on clustering, and segmentation tree-based algorithms.

[0055] For example, Figure 3 This is a schematic diagram of an optional data processing method according to an embodiment of this application. Assume there exists a point cloud dataset corresponding to city A, containing coordinates (3D coordinates) and RGB (red, green, blue) color information. City A consists of districts A1, A2, and A3. This point cloud dataset includes point cloud data of buildings, roads, etc., within city A. Each point cloud data has corresponding 3D coordinates and color. For example, the coordinates of a point cloud data point are (2.5, 3.0, 1.8), and the color is represented as (255, 0, 0). The steps for determining map tiles based on this point cloud dataset are as follows: Figure 3 As shown:

[0056] S302, Read the point cloud dataset, which corresponds to the target map, and can be implemented using a point cloud processing library, including but not limited to.

[0057] S304, Divide the target map according to the target size mentioned above, dividing the entire point cloud dataset into multiple map tiles. This division can be based on attributes such as the spatial location of the point cloud data. For example, a spatial segmentation algorithm can be used to divide the point cloud data into different map tiles based on their coordinates, resulting in map tile A1 corresponding to city A1, map tile A2 corresponding to city A2, and map tile A3 corresponding to city A3. Spatial segmentation algorithms include, but are not limited to, the kd-tree algorithm or the octree algorithm. The kd-tree algorithm can be used to search and partition points in k-dimensional space. The kd-tree can be constructed based on the median of the data points in each dimension, dividing the data points into two subsets and recursively constructing subtrees until all data points are included in the tree. The octree algorithm divides the space into eight sub-cubes and places the data points in these sub-cubes according to their positions in each dimension.

[0058] S306, Create map blocks. Create map block objects for the point cloud data after the division is completed, namely map block A1, map block A2, and map block A3 mentioned above. Each map block contains the point cloud data of its corresponding urban area and other relevant information, such as color and normal vector.

[0059] S308, Visual Map Tile, visualizes and models the above-mentioned multiple map tiles after division, and obtains buildings, roads, etc. in different urban areas of city A for further analysis and processing.

[0060] Further, Figure 4 This is a schematic diagram of another optional data processing method according to an embodiment of this application. After the processing described in S302 to S308, as follows: Figure 4 As shown, point cloud dataset 402 will be transformed into map tiles A1, A2, and A3. Taking map tile A1 as an example, map tile A corresponds to urban area A. Urban area A contains roads 404, therefore, map tile A corresponds to point cloud region 406. Urban area A also contains buildings 408, therefore, map tile A corresponds to point cloud region 410. Furthermore, point cloud region 406 and point cloud region 410 are displayed in different colors. It can be understood that point cloud regions of the same type can use the same color or different colors, such as supermarket type, school type, office building type, road type, etc.

[0061] Furthermore, the point cloud data can be analyzed and processed to obtain the aforementioned set of point cloud blocks from the multiple map tiles. In this case, the 3D coordinate data within each map tile can form the aforementioned set of map tile coordinate data. For example, if there is a map tile A containing a car, and the car's 3D coordinate data is represented as (3,2,1), then the aforementioned set of map tile coordinate data contains a 3D coordinate data of (3,2,1). Further processing of the point cloud data can then yield the aforementioned set of map tiles.

[0062] Specifically, the steps for processing and analyzing point cloud data may include, but are not limited to:

[0063] Firstly, this can include, but is not limited to, dividing each of multiple map tiles into multiple grids in three-dimensional space. In actual processing, only the map tiles may be displayed, without showing the grids, which are only used for background processing logic. This application does not impose any limitations on the specific number or size of the grids. For example… Figure 5 This is a schematic diagram of another optional data processing method according to an embodiment of this application. The map tile 502 has dimensions of 100 meters long, 100 meters wide, and 100 meters high. Figure 5 As shown, map tile 502 can be divided into 4 grids, that is, each grid is 25 meters long, 25 meters wide and 25 meters high. For example, grid 504 is located at the upper right of map tile 502. It can be understood that the coordinates of vertex A in grid 504 are the coordinates of the upper right vertex of the map tile. It can be understood that a map tile is composed of multiple grids.

[0064] In an exemplary embodiment, suppose the aforementioned multiple map tiles consist of map tile A and map tile B, wherein map tile A is divided into 10 equal grids; map tile B is divided into 10 equal grids; and map tile C is divided into 10 equal grids. If any point in the point cloud data, i.e., the target point, falls into grid A1 of map tile A, then grid A1 is within map tile A. Therefore, map tile A can be identified as a map tile in the aforementioned group of map tiles. For example, if the target point does not fall into any grid of map tile B, then map tile B will not be identified as a map tile in the aforementioned group of map tiles. In other words, if the target point falls into any one or more grids of a map tile, then that map tile will be identified as a map tile in the aforementioned group of map tiles. Conversely, if the target point does not fall into any grid of a map tile, then that map tile will not be identified as a map tile in the aforementioned group of map tiles.

[0065] Specifically, each grid cell can contain items from the aforementioned map tiles. For example, grid A may contain building A but not road B, while grid B may contain road B and building A. Figure 6 This is a schematic diagram of another optional data processing method according to an embodiment of this application, such as... Figure 6 As shown, Figure 6 The image shown is a top-down cross-sectional view of the map tiles, revealing a large amount of point cloud data. The laser beam emitted by the aforementioned lidar can be represented as follows: Figure 6 The circle shown represents the area where the point cloud data falls on the map tile, including target point 602. Assuming the laser beam emitted by the lidar reaches road B but not building A, since grid 604 contains road B but not building A, and grid 606 contains building A but not road B, it means target point 602 falls within the area of ​​grid 604, matching target point 602. However, it does not fall within the area of ​​grid 606, so grid 606 does not match target point 602. Since map tile A includes grids 604 and 606, and the target point does not fall into any of the grids that make up map tile B, all grids in map tile B do not match target point 602. Therefore, map tile A will be identified as a map tile in the aforementioned set of map tiles, and map tile B will not be identified as a map tile in the aforementioned set of map tiles.

[0066] For example, any point in the aforementioned point cloud data can be used as the target point to determine the set of map tiles corresponding to the area indicated by the point cloud data. It is understood that points from different point cloud datasets can reside in different or the same map tiles. Therefore, this application does not limit the number of map tiles in the aforementioned set of map tiles. Figure 7 This is a schematic diagram of another optional data processing method according to an embodiment of this application, such as... Figure 7 As shown, assuming that by comparing whether the grid of each map tile matches the target point, 6 map tiles are determined as the above set of data tiles, namely map tile 1 to map tile 6.

[0067] Furthermore, each map tile in the aforementioned set of map tiles corresponds to a map coordinate data point. Therefore, the map coordinate data corresponding to each map tile in the set of map tiles is determined as the coordinate data of the aforementioned set of map tiles. Figure 7Taking map tile 1 as an example, the map coordinate data corresponding to map tile 1 can be the coordinate data of the grid 702 in the lower right corner of map tile 1, that is, coordinates 704 (X:500400, Y:40500). Additionally, the coordinate data of the grid in the lower right corner of map tile 2 can also be determined as the map coordinate data corresponding to map tile 2; the coordinate data of the grid in the lower left corner of map tile 3 can be determined as the map coordinate data corresponding to map tile 3. That is to say, the value of the map coordinate data corresponding to each map tile can include, but is limited to, the coordinate data of grids at the same position in each map tile, or the coordinate data of grids at different positions in each map tile. The target point also has a set of coordinate data, namely the target point coordinate data mentioned above. For example… Figure 8 This is a schematic diagram of another optional data processing method according to an embodiment of this application, such as... Figure 8 As shown, the target point coordinates corresponding to target point 802 are (X:500380, Y:40540), the map coordinates corresponding to map tile 1 may include, but are not limited to, coordinates 804 (X:500300, Y:40500) and 806 (X:500400, Y:40500), and the map coordinates corresponding to map tile 4 may include, but are not limited to, coordinates 808 (X:500300, Y:40500).

[0068] S206, determine whether a set of map tiles has a target map tile that matches the target point. Wherein, the target map tile matching the target point means that the result of processing the target point coordinate data according to the target size is the same as the result of processing the target map tile coordinate data according to the target size. The target map tile coordinate data corresponds to the target map tile. A set of map tile coordinate data includes the target map tile coordinate data.

[0069] In an exemplary embodiment, the process may include, but is not limited to, processing each map tile coordinate data in a set of map tile coordinate data to determine whether it matches the target point coordinate data. The map tile coordinate data that matches the target point coordinate data is taken as the target map tile coordinate data, and the map tile corresponding to the target map tile coordinate data is the target map tile. For example, the target map tile coordinate data is (1000, 2000), and the set of map tile coordinate data consists of map tile coordinate data A (1060, 2000), map tile coordinate data B (1005, 2005), and map tile coordinate data C (1000, 3500). The specific implementation steps may include, but are not limited to, the following steps:

[0070] S1, obtain the target size mentioned above. Assuming the target size is 100 meters * 100 meters, it means that the size of each map tile in the above set of map tiles is 100 meters * 100 meters.

[0071] S2, based on the target size preset value, this value can be set flexibly. Assuming the value is 10, divide the horizontal and vertical coordinate values ​​in the target map block coordinate data by 10 respectively and round the result to obtain the target point coordinate data processed according to the target size as (100, 200).

[0072] S3, take the x and y coordinates of each map tile in a set of map tile coordinate data, divide them by 10 and round the result to obtain the result of processing the coordinate data of map tile A according to the target size as (100, 200), the result of processing the coordinate data of map tile B according to the target size as (100, 200), and the result of processing the coordinate data of map tile C according to the target size as (100, 300).

[0073] S4. Since the results obtained by processing map blocks A and B according to the target size are the same as those obtained by processing according to the target size, the above target map block coordinate data are map block coordinate data A (1060, 2000) and map block coordinate data B (1005, 2005), indicating that map block coordinate data A and map block coordinate data B match the target point coordinate data. The above target map blocks are map blocks A and map blocks B.

[0074] In another exemplary embodiment, the target map tile coordinate data is (1000, 2000), and a set of map tile coordinate data consists of map tile coordinate data A (1060, 2000), map tile coordinate data B (1005, 2005), and map tile coordinate data C (1000, 4000). The specific implementation steps may include, but are not limited to, the following steps:

[0075] S1, obtain the target size mentioned above. Assuming the target size is 100 meters * 200 meters, it means that the size of each map tile in the above set of map tiles is 100 meters * 200 meters.

[0076] S2, based on the target size preset value, this value can be set flexibly. Assuming the value is (10, 20), the horizontal coordinate value in the target map block coordinate data is divided by 10 and the value is rounded down. The vertical coordinate value is divided by 20 and the value is rounded down. The result of processing the above target point coordinate data according to the target size is (100, 100).

[0077] S3, for each map tile coordinate data in a set of map tile coordinate data, divide the x-coordinate value by 10 and round it down, and divide the y-coordinate value by 20 and round it down, to obtain the result of processing the coordinate data of map tile A according to the target size as (100, 100), the result of processing the coordinate data of map tile B according to the target size as (100, 100), and the result of processing the coordinate data of map tile C according to the target size as (100, 200).

[0078] S4. Since the results obtained by processing map blocks A and B according to the target size are the same as those obtained by processing according to the target size, the above target map block coordinate data are map block coordinate data A (1060, 2000) and map block coordinate data B (1005, 2005), indicating that map block coordinate data A and map block coordinate data B match the target point coordinate data. The above target map blocks are map blocks A and map blocks B.

[0079] S208, the matching result between point cloud data and target map is determined by the number of target points of matching target map blocks in point cloud data and the total number of target points in point cloud data.

[0080] For example, suppose the point cloud data consists of 4 points, where the target point coordinate data A corresponding to target point A matches the map tile coordinate data A in the aforementioned set of map tile coordinate data, the target point coordinate data B corresponding to target point B matches the map tile coordinate data B in the aforementioned set of map tile coordinate data, and there is no map tile coordinate data in the aforementioned set of map tile coordinate data that matches the target point coordinate data C corresponding to target point C, nor is there any map tile coordinate data in the aforementioned set of map tile coordinate data that matches the target point coordinate data D corresponding to target point D. Then, the number of targets is 2, corresponding to target point A and target point B, and the total number of target points in the aforementioned point cloud data is 4, corresponding to target point A, target point B, target point C, and target point D.

[0081] Furthermore, the ratio of the number of targets to the total number of target points determines the matching result between the point cloud data and the target map. Assuming a matching condition is set, when the ratio of the number of targets to the total number of target points is greater than or equal to 0.75, the matching degree between the point cloud data and the target map is considered high. In this case, since the number of targets is 2 and the total number of target points is 4, the ratio of the number of targets to the total number of target points is less than 0.75, and the matching degree between the point cloud data and the target map is low.

[0082] In one exemplary embodiment, Figure 9This is a schematic diagram of another optional data processing method according to an embodiment of this application. This application can be applied to the field of autonomous driving. Specifically, through the embodiments of this application, real-time positioning of vehicles and other objects can be performed during autonomous driving, quickly determining the specific location of the vehicle to achieve more accurate path planning and collision avoidance. It can also detect the vehicle's driving status, promptly identify and resolve potential problems during vehicle operation, and improve the safety and reliability of the autonomous driving system. Figure 9 As shown, this can be achieved through steps including but not limited to the following:

[0083] S902 acquires point cloud data through vehicle-mounted LiDAR;

[0084] S904, determine a set of map tiles and target points in the target map based on point cloud data, where the target point is any point in the point cloud data;

[0085] S906, determine whether each map tile coordinate data in a set of map tile coordinate data is the target map tile coordinate data. If it is, execute S908. Otherwise, if none of the map tile coordinate data in a set of map tile coordinate data is the target map tile coordinate data, execute S902 to obtain the point cloud data for the next cycle.

[0086] S908, determine the target number of target points and the total number of target points in the point cloud data based on the point cloud data;

[0087] S910 determines the matching result between point cloud data and target map by comparing the target quantity with the total quantity.

[0088] In yet another exemplary embodiment, this application can also be used in the field of smart homes. Specifically, through the embodiments of this application, users can accurately grasp the location information of smart home devices, thereby providing users with more intelligent home control and services, which can be achieved through steps including but not limited to the following:

[0089] S1 acquires point cloud data through the LiDAR configured in smart home devices;

[0090] S2, determine a set of map tiles and target points in the target map based on the point cloud data, where the target point is any point in the point cloud data;

[0091] S3, determine whether each map tile coordinate data in a set of map tile coordinate data is the target map tile coordinate data. If it exists, execute S908. Otherwise, if none of the map tile coordinate data in a set of map tile coordinate data is the target map tile coordinate data, execute S902 to obtain the point cloud data for the next cycle.

[0092] S4, determine the number of target points and the total number of target points in the point cloud data based on the point cloud data;

[0093] S5 determines the matching result between point cloud data and target map by comparing the target quantity with the total quantity.

[0094] In this embodiment, point cloud data detected by a lidar is acquired, where the point cloud data represents the spatial information of the lidar's environment. A set of map tiles and a target point are determined based on the point cloud data. The target map, registered with the point cloud data, is pre-divided into multiple map tiles according to the target size. These multiple map tiles include a set of map tiles, which are pre-associated with a set of map tile coordinate data. The target point represents any point in the point cloud data, which includes the target point's coordinate data. It is then determined whether a target map tile matches the target point within the set of map tiles. Matching a target map tile with a target point means that the result of processing the target point's coordinate data according to the target size matches the target map tile's coordinate data according to the target size. The processing yields the same result: the target map tile coordinate data corresponds to the target map tile, and a set of map tile coordinate data includes the target map tile coordinate data. The matching result between point cloud data and target map is determined by the number of target points in the point cloud data that match the target map tile and the total number of target points in the point cloud data. By comparing each target point with a set of map tiles separately, the matching result is determined by the total number of target points in the point cloud data and the number of target points corresponding to the target map tile coordinate data. This improves the stability of the matching result between point cloud data and target map, avoids positioning deviations and error accumulation caused by unstable matching results, and solves the technical problem of low accuracy due to unstable matching results.

[0095] On the other hand, the target point coordinate data in the point cloud data can be matched with a set of map tiles to obtain the target map tiles, thereby determining the specific location of the target point on the target map, so as to provide more accurate positioning, navigation and other information. It can be applied to a variety of application scenarios, such as autonomous driving, drones, robots and other fields. Furthermore, it achieves the technical effect of improving the matching accuracy between point cloud data and target maps.

[0096] As an optional approach, determining whether a target map tile matching the target point exists within the aforementioned set of map tiles includes: acquiring the target point coordinate data corresponding to the target point; processing the target point coordinate data according to the target size to obtain target point coordinate values; if a target map tile coordinate value with the same target point coordinate value exists within the set of map tile coordinate values, determining that the target point coordinate data matches the target map tile coordinate data, wherein the set of map tile coordinate values ​​is obtained by pre-processing the set of map tile coordinate data according to the target size, and the target map tile coordinate values ​​correspond to the target map tile coordinate data; and if the target point coordinate data matches the target map tile coordinate data, determining that a target map tile matching the target point exists.

[0097] Optionally, in this embodiment of the application, the target point coordinate data is used to represent the specific coordinate information of the target point. The target point coordinate data may include, but is not limited to, two-dimensional coordinate data and three-dimensional coordinate data. The target size is used to divide the target map. For example, the target map is divided into multiple map tiles of 100 meters * 100 meters, where the target size is 100 meters * 100 meters. Alternatively, the target map is divided into multiple map tiles of 100 meters * 200 meters, where the target size is 100 meters * 200 meters. The target point coordinate value can be understood as performing data processing on the target point coordinate data. For example, if the target size is 100 meters * 100 meters and the target point coordinate data includes coordinate values ​​(10000, 10000), then the target point coordinate value can be the integer value obtained by dividing the horizontal and vertical coordinates of the target point coordinate data by 10 respectively, resulting in the target point coordinate value of (100, 100).

[0098] Furthermore, each map tile in the aforementioned set of map tiles has a map tile coordinate value. The map tile coordinate value corresponding to each map tile is determined as the aforementioned set of map tile coordinate values. Moreover, each map tile coordinate value can be obtained based on the target size. For example, the target map tile coordinate data corresponding to map tile A includes coordinate values ​​(10030, 10000). Taking a target size of 100 meters * 100 meters as an example, the map tile coordinate value corresponding to map tile A is the integer part of the values ​​obtained by dividing the x-coordinate and y-coordinate of the target point coordinate data by 10, resulting in the map tile coordinate value (100, 100).

[0099] For example, if the coordinates of a map tile are the same as the coordinates of a target point, then the map tile corresponding to that coordinate value will be identified as the target map tile. The map tile coordinates are the target map tile coordinates, which means that the target point coordinate data matches the target map tile coordinate data, that is, the target point matches the target map tile.

[0100] Through the embodiments of this application, by processing the target point coordinate data and map tile coordinate data according to the target size, determining whether the target point coordinate data and map tile coordinate data match, and obtaining the degree of matching between the target point and the map tile, the accurate positioning and navigation of the target point are achieved, thereby improving the accuracy and practicality of the matching results.

[0101] As an optional approach, the above-mentioned processing of the target point coordinate data according to the target size to obtain the target point coordinate value includes: when the target size represents a length of N and a width of M, determining a first ratio of the target point's abscissa to N in the target point coordinate data, and determining a second ratio of the target point's ordinate to M in the target point coordinate data, wherein M and N are both positive integers; and determining the integer parts of the first ratio and the second ratio as the abscissa and ordinate of the target point coordinate value.

[0102] In an exemplary embodiment, the values ​​of M and N can be the same or different. Assuming N is 10 and M is 20, and the target point coordinate data includes, but is not limited to, the target point x-coordinate of 10000 and the target point y-coordinate of 20000, then the ratio of the target point x-coordinate to N can be used as the first ratio, which is 1000.0000. Similarly, the ratio of the target point y-coordinate to M can be used as the second ratio, which is 1000.0000. Further, the target point x-coordinate is represented as the integer part of the first ratio, 1000, and the target point y-coordinate is represented as the integer part of the second ratio, 1000. The target point coordinate value is determined to be (1000, 1000).

[0103] In another exemplary embodiment, assuming that N and M are both 10, and the target point coordinate data includes, but is not limited to, the target point x-coordinate of 10000 and the target point y-coordinate of 20000, then the ratio of the target point x-coordinate to N can be used as the first ratio, which is 1000.0000. Similarly, the ratio of the target point y-coordinate to M can be used as the second ratio, which is 2000.0000. Further, the target point coordinate value x-coordinate is represented as the integer part of the first ratio, 1000, and the target point coordinate value y-coordinate is represented as the integer part of the second ratio, 2000. The target point coordinate value is determined to be (1000, 2000).

[0104] As an optional approach, the method further includes: when there is a target map tile coordinate value in a set of map tile coordinate values ​​that is identical to the target point coordinate value, before determining that the target point coordinate data matches the target map tile coordinate data, determining a first set of ratios between the abscissa of each map tile coordinate data in the set of map tile coordinate data and the aforementioned N, and determining a second set of ratios between the ordinate of each map tile coordinate data in the set of map tile coordinate data and the aforementioned M; matching the first set of ratios and the second set of ratios according to the corresponding map tile coordinate data to determine the set of map tile coordinate values, wherein one map tile coordinate value in the set of map tile coordinate values ​​includes the integer part of the third ratio in the first set of ratios as the abscissa and the integer part of the fourth ratio in the second set of ratios as the ordinate, and the third ratio and the fourth ratio correspond to the same map tile.

[0105] For example, assuming the above set of map tile coordinate data includes 3 map tile coordinate data, the ratio of the horizontal coordinate of each of these 3 map tile coordinate data to the above N can be determined as the first ratio set, that is, the first ratio set consists of three first ratios. Similarly, the ratio of the vertical coordinate of each of these 3 map tile coordinate data to the above M can be determined as the second ratio set, that is, the second ratio set consists of three second ratios.

[0106] Furthermore, the above three map tile coordinate data correspond to three map tiles, namely map tile A, map tile B, and map tile C. The first ratio A in the first ratio set and the first ratio A in the second ratio set are determined as the map tile coordinate value A corresponding to map tile A. The first ratio B in the first ratio set and the first ratio B in the second ratio set are determined as the map tile coordinate value B corresponding to map tile B. The first ratio C in the first ratio set and the first ratio C in the second ratio set are determined as the map tile coordinate value C corresponding to map tile C. At this time, the above set of map tile coordinate values ​​consists of map tile coordinate value A, map tile coordinate value B, and map tile coordinate value C.

[0107] It is understandable that, taking map tile A as an example, map tile A corresponds to map tile coordinate data A. Therefore, map tile A has corresponding horizontal coordinate A and vertical coordinate A. The third ratio in the first ratio set represents the ratio of the horizontal coordinate A to N, and the fourth ratio in the second ratio set represents the ratio of the vertical coordinate A to M. Furthermore, the map tile coordinate value includes the integer part of the third ratio and the integer part of the fourth ratio. Therefore, the above-mentioned third ratio and the above-mentioned fourth ratio correspond to map tile A, and the above-mentioned third ratio and the above-mentioned fourth ratio can be obtained from the map tile coordinate data A.

[0108] In this embodiment of the application, a first ratio set and a second ratio set are determined based on map block coordinate data and target size. Then, the map block coordinate data can be determined as target map block coordinate data based on the parameter values ​​in the first ratio set and the second ratio set, thereby further determining the accuracy and completeness of the target map block coordinate data.

[0109] As an optional approach, when there is a target map tile coordinate value in a set of map tile coordinate values ​​that is identical to the target point coordinate value, determining that the target point coordinate data matches the target map tile coordinate data includes: comparing the x-coordinate of the target point coordinate value with the x-coordinate of each map tile coordinate value in the set of map tile coordinate values ​​to determine intermediate map tile coordinate values ​​with the same x-coordinate; comparing the y-coordinate of the target point coordinate value with the y-coordinate of each map tile coordinate value in the intermediate map tile coordinate values ​​to determine the target map tile coordinate values ​​with the same y-coordinate; and determining that the target map tile coordinate data corresponding to the target map tile coordinate values ​​matches the target point coordinate data.

[0110] It should be noted that the intermediate map tile coordinate values ​​mentioned above may include, but are not limited to, one or more map tile coordinate values. Furthermore, the x-coordinate of the intermediate map tile coordinate value is the same as the x-coordinate of the target point coordinate value. After determining the intermediate map tile coordinate value, the map tile coordinate value whose y-coordinate is the same as the y-coordinate of the target point coordinate value can be determined as the target map tile coordinate value. In this case, the target point coordinate data corresponding to the target point coordinate value matches the target map tile coordinate data corresponding to the target map tile coordinate value, indicating that the target point falls into the target map tile.

[0111] For example, it is possible to simultaneously determine whether the x-coordinate contained in each map tile coordinate value in a set of map tile coordinate values ​​is the same as the x-coordinate contained in the target point coordinate value, and whether the y-coordinate is the same as the y-coordinate contained in the target point coordinate value. This application does not limit this.

[0112] As an optional approach, the method further includes: storing the map tile coordinate data corresponding to each of the aforementioned set of map tiles as a target array; constructing a hash map based on the target array, wherein the hash map includes multiple sets of key-value pairs, and the key-value pairs include an index of the map tile coordinate data corresponding to each map tile in the aforementioned set of map tiles; determining a target index value based on the target point coordinate value, and determining whether there is target map tile coordinate data that matches the target point coordinate data through the target index value and the hash map.

[0113] For example, the target array described above may include, but is not limited to, storage of the aforementioned set of map tile coordinate data. Figure 10 This is a schematic diagram of another optional data processing method according to an embodiment of this application, such as... Figure 10 As shown, the hash map described above may include, but is not limited to, multiple sets of key-value pairs, where the key can represent a map tile and the key value can represent an index of the map tile coordinate data.

[0114] Furthermore, the map tile coordinate data corresponding to each map tile can be obtained based on the index of the map tile coordinate data, thereby determining whether the map tile coordinate data matches the target point coordinate data. For example, Figure 10 If the index of the map tile coordinate data corresponding to map tile 1 is 3, then we can check whether the coordinate data of map tile 1 corresponding to index 3 exists in the storage device, and denot it as map tile 1 coordinate data. Assuming that map tile 1 coordinate data exists, we can check whether map tile 1 coordinate data matches the target point coordinate data.

[0115] By using the embodiments of this application to store the target array using a hash map, it is possible to quickly obtain the index of map tile coordinate data by querying the hash map, thereby achieving the purpose of timely obtaining map tile coordinate data based on the index of map tile coordinate data, improving the efficiency of obtaining map tile coordinate data, and thus achieving the technical effect of accelerating the matching process between map tile coordinate data and point cloud data.

[0116] As an optional approach, determining the matching result between the point cloud data and the target map by the number of target points in the point cloud data that match the target map tiles and the total number of target points in the point cloud data includes: determining the number of target points in the point cloud data that match the target map tiles; determining the total number of target points based on the point cloud data; obtaining a predetermined evaluation parameter threshold; determining a target evaluation parameter based on the number of target points and the total number of target points, and comparing the target evaluation parameter with the evaluation parameter threshold to determine the matching result.

[0117] In an exemplary embodiment, assuming that multiple target map tiles match 10 target points in the point cloud data, and the point cloud data contains 12 target points, then the target quantity of the target points is determined to be 10. The aforementioned evaluation parameter threshold can be flexibly set, and this application does not impose any limitations on it. For example, if the evaluation parameter threshold is set to 0.75, the aforementioned target evaluation parameter can be determined as the ratio of the number of targets to the total number of target points, with a value of 0.83. In this case, since the target evaluation parameter value is greater than the evaluation parameter threshold, the matching result indicates that the point cloud data and the target map have a high degree of matching and the matching result has high credibility. Conversely, if the value is less than the threshold, it indicates that the point cloud data and the target map have a low degree of matching and the matching result has low credibility.

[0118] As an optional approach, the above-mentioned determination of target evaluation parameters based on the target quantity and the total quantity, and the comparison of the target evaluation parameters with the evaluation parameter threshold to determine the matching result, includes: determining the ratio between the target quantity and the total quantity as the target evaluation parameter; comparing the magnitude relationship between the target evaluation parameter and the evaluation parameter threshold; if the target evaluation parameter is greater than or equal to the evaluation parameter threshold, determining the matching result as a match between the point cloud data and the target map; if the target evaluation parameter is less than the evaluation parameter threshold, determining the matching result as a mismatch between the point cloud data and the target map.

[0119] In another exemplary embodiment, assuming that multiple target map tiles match 10 target points in the point cloud data, and the point cloud data contains 12 target points, then the target number of target points is determined to be 6. The aforementioned evaluation parameter threshold can be flexibly set, and this application does not impose any limitations on it. For example, the evaluation parameter threshold is set to 0.75, and the aforementioned target evaluation parameter can be determined as the ratio of the number of target points to the total number of target points, with a value of 0.50. In this case, since the target evaluation parameter value is less than the evaluation parameter threshold, the matching result indicates that the matching degree between the point cloud data and the target map is low, and the reliability of the matching result is low.

[0120] As an optional approach, determining whether the aforementioned set of map tiles contains a target map tile that matches the target point includes: acquiring multiple sets of raster coordinate data corresponding to the aforementioned set of map tile coordinate data, wherein one map tile coordinate data corresponds to one set of raster coordinate data; determining whether there is target raster coordinate data that matches the target point coordinate data among the multiple sets of raster coordinate data, wherein matching the target raster coordinate data with the target point coordinate data means that the result obtained by processing the target point coordinate data according to the target size is the same as the result obtained by processing the target raster coordinate data according to the target size; if there is a target raster coordinate data that matches the target point coordinate data, determining that the map tile coordinate data corresponding to the target raster coordinate data is the target map tile coordinate data, and the target map tile matches the target point.

[0121] For example, the aforementioned set of raster coordinate data may include, but is not limited to, one or more raster coordinate data. Specifically, a map tile can be divided into multiple graticles. Correspondingly, each map tile corresponds to one map tile coordinate data, and each raster corresponds to one raster coordinate data. Thus, multiple graticles have multiple raster coordinate data. The aforementioned set of raster coordinate data includes these multiple raster coordinate data. Therefore, a set of raster coordinate data corresponds to one map tile coordinate data, and different map tile coordinate data correspond to different or the same set of raster coordinate data.

[0122] Furthermore, assuming a set of raster coordinate data consists of raster coordinate data A, raster coordinate data B, and raster coordinate data C, we can determine whether each of these three raster coordinate data matches the target point coordinate data. If one or more raster coordinate data match the target point coordinate data, the raster coordinate data matching the target point coordinate data can be identified as the target raster coordinate data. It can be understood that the process for determining whether the target point coordinate data matches the raster coordinate data can be the same as the process for determining whether the target point coordinate data matches the map tile coordinate data. Specifically:

[0123] The target grid coordinate data corresponding to grid A includes coordinate values ​​(10030, 10000). Taking a target size of 100 meters * 100 meters as an example, the grid coordinate value corresponding to grid A is the integer value obtained by dividing the x-coordinate and y-coordinate of the target point coordinate data by 10, which is (100, 100).

[0124] For example, if the raster coordinates are the same as the target point coordinates, then the raster corresponding to the raster coordinates will be identified as the target raster. The raster coordinates are the target raster coordinates, indicating that the target point coordinates match the target raster coordinates A. Since the target raster coordinates A corresponds to raster A, and raster A is assumed to be a raster in map tile A, then, since the target point coordinates match the target raster coordinates A, we can further conclude that the target map tile coordinates A corresponding to map tile A matches the target point coordinates. That is, map tile A is the target map tile, and map tile A matches the target point.

[0125] Through its own application embodiments, the method involves acquiring multiple sets of raster coordinate data corresponding to a set of map tile coordinate data; determining whether there is target raster coordinate data that matches the target point coordinate data among the multiple sets of raster coordinate data; if there is target raster coordinate data that matches the target point coordinate data, determining the map tile coordinate data corresponding to the target raster coordinate data as the target map tile coordinate data, and the target map tile matches the target point, thereby achieving the matching of target raster coordinate data and target point coordinate data. Furthermore, the target map tile that matches the target point can be determined based on the target raster coordinate data, improving the confirmation efficiency of the target map tile and shortening the generation time of the matching result.

[0126] As an optional approach, the method further includes: acquiring initial pose data corresponding to the point cloud data, wherein the initial pose data represents pose data corresponding to the point cloud data at the same time; identifying the target points that have matching target map blocks as target feature points; calculating target residual information using each of the target feature points and the corresponding target map blocks; and optimizing the initial pose data using the target residual information when the matching result between the point cloud data and the target map indicates that the point cloud data and the target map are matched, thereby obtaining target pose data.

[0127] Optionally, in the embodiments of this application, the aforementioned initial pose data, pose data and target pose data may include, but are not limited to, pose angle data, position data, acceleration data, pose change data, pose stability data, etc.

[0128] For example, when acquiring point cloud data, there is corresponding initial pose data, and the target point can be identified as the target feature point. Further, the LOAM algorithm can be used to extract the line and surface features of the target feature point. For example, the LOAM algorithm matches the target feature point corresponding to the point cloud data acquired in the current period with the target feature point corresponding to the point cloud data acquired in the previous period. Then, by calculating the residual information between each grid in each target map tile and the target feature point, the target residual information can be obtained. The target residual information can include, but is not limited to, line feature residual or surface feature residual.

[0129] The Loam algorithm is a LiDAR-based SLAM (Simultaneous Localization and Mapping) algorithm. It is primarily used for localization and mapping of autonomous mobile devices such as unmanned vehicles and robots. The Loam algorithm acquires point cloud data of the surrounding environment through LiDAR sensors and uses this data for real-time localization and mapping. This algorithm utilizes the feature point cloud data scanned by the LiDAR, and through feature matching and motion estimation, achieves mapping of its own position and the surrounding environment. The Loam algorithm is characterized by high real-time efficiency, robustness to dynamic environments, and accurate localization capabilities.

[0130] Furthermore, when the matching results between point cloud data and target map are highly reliable, the target residual information can be used to optimize the initial pose data, and the optimized initial pose data can be determined as the target pose data.

[0131] As an optional approach, the above-mentioned calculation of target residual information using each of the aforementioned target feature points and the corresponding target map tiles includes: calculating the target residual information using each of the aforementioned target feature points and the target raster features in the corresponding target map tiles; when the matching result of the aforementioned point cloud data and the aforementioned target map indicates that the aforementioned point cloud data and the aforementioned target map match, optimizing the aforementioned initial pose data using the aforementioned target residual information to obtain target pose data includes: when the matching result of the aforementioned point cloud data and the aforementioned target map indicates that the aforementioned point cloud data and the aforementioned target map match, stitching together the aforementioned target residual information to obtain a target residual matrix; and optimizing the aforementioned initial pose data using the aforementioned target residual matrix through a preset algorithm to obtain the aforementioned target pose data.

[0132] For example, the aforementioned preset algorithm may include, but is not limited to, using the Levenberg-Marquardt (LM) optimization algorithm to optimize the initial pose data. Specifically, the target feature points can be combined with the initial pose data by setting an objective function to construct the objective function. The objective function may include, but is not limited to, the sum of squares of the residuals, that is, the difference between the predicted position and the actual observation position of the target feature points in the initial pose data. Further, a residual matrix is ​​constructed, and the residuals of each target feature point are combined into a residual matrix, which is the target residual matrix. The dimension of this matrix is ​​determined by the number of feature points multiplied by the dimension of the residuals. The LM optimization algorithm is a nonlinear least squares method used to adjust the pose parameters to minimize the objective function.

[0133] Furthermore, the LM optimization algorithm is used for iteration. In each iteration, the Jacobian matrix and Hessian matrix are calculated based on the residual matrix, and the current pose estimate is updated using the LM algorithm. After each iteration, some convergence criteria can be used to determine whether the algorithm has converged, which may include, but is not limited to, calculating the change in the residual. When the change is less than a certain threshold, the algorithm is considered to have converged. If the algorithm has not converged, the target residual matrix is ​​recalculated, the initial pose data is adjusted, and the next iteration is performed until the convergence condition is met. The initial pose data corresponding to the convergence condition is determined as the target pose data.

[0134] For example, the data processing method proposed in this application can be applied to the field of autonomous driving. Specifically, when performing map tile matching for autonomous vehicles, map tile division, map loading, and matching can be implemented based on the NDT algorithm, realizing the function of roughly evaluating the vehicle positioning accuracy. This avoids the need to store large-area maps due to the wide range of areas involved in autonomous driving maps in related technologies, which would cause excessive storage resources and running time for map loading and matching. Furthermore, the data processing method proposed in this invention can realize map tile loading and matching, and proposes an algorithm for evaluating map matching effect based on the tiled map.

[0135] It should be noted that in this embodiment, it is not necessary to stitch together the point clouds of the map blocks to obtain the entire point cloud map. Matching can be performed by combining map blocks, including but not limited to. Specifically, the real-time point cloud can be transferred to the coordinate system of the initial map based on the initial value of the point cloud of the previous frame or the initial value of the inertial navigation. Map block matching is performed on each point on the map to determine the map block that matches the point. Then, the residual is calculated with the map block. Finally, all the residuals are combined and optimized by the Levenberg-Marvenquet optimization algorithm. Alternatively, the ratio of the number of point clouds participating in the residual calculation to the total number of point clouds in the combination of map blocks can be used as the point cloud quality value for quality judgment to evaluate the map matching quality. For example, when the point cloud quality value is greater than 0.75, it can be considered that the point cloud and the map can be matched.

[0136] In an exemplary embodiment, the storage and loading of point cloud maps may include, but is not limited to, segmenting them into blocks. In this embodiment, map blocks can be grouped into an array. Assuming six map blocks are loaded, since the spatial extent of each block is known, and the horizontal and vertical axes of each block are identical (meaning each block has the same size, for example, 100 meters long and 100 meters wide), the map blocks can be encoded, and the point cloud elements that will fall into those blocks can be identified. Figure 8As shown, assume the coordinates of the point cloud are Figure 8 The values ​​shown on the horizontal and vertical axes correspond to the values ​​indicated by the arrow tails in the point cloud on the map. Dividing each point by 100 determines its current map tile location. Since an array data structure is used to store map tiles, a hash map can be constructed, including but not limited to, encoding the map's horizontal and vertical axes and mapping them to the map tiles' positions within the array. Map tiles can be stored in a random order; for example, encoding map tile 1 would yield the form {X:5003, Y:405}, with the corresponding hash... The value of the mapping in the map is 3. Further, for each point, it can be calculated whether there is a matching map tile in the corresponding map tile. If there is a matching map tile, the residual of the feature in the map tile will be calculated. Finally, all points are traversed to count which point clouds participated in the calculation of the residual. The residual matrix composed of all the residuals that participated in the calculation is calculated. According to the LM optimization algorithm, the pose of the point cloud is calculated iteratively. After the iteration is completed, the ratio of the number of point clouds that participated in the calculation of the residual to the total number of point clouds is calculated as the evaluation feedback of the quality of point cloud registration.

[0137] It is understood that in the specific embodiments of this application, data such as user information are involved. When the above embodiments of this application are applied to specific products or technologies, user permission or consent is required, and the collection, use and processing of related data must comply with the relevant laws, regulations and standards of the relevant countries and regions.

[0138] It should be noted that, for the sake of simplicity, the foregoing method embodiments are all described as a series of actions. However, those skilled in the art should understand that this application is not limited to the described order of actions, as some steps may be performed in other orders or simultaneously according to this application. Furthermore, those skilled in the art should also understand that the embodiments described in the specification are preferred embodiments, and the actions and modules involved are not necessarily essential to this application.

[0139] According to another aspect of the embodiments of this application, a data processing apparatus for implementing the above-described data processing method is also provided. For example... Figure 11 As shown, the device includes:

[0140] The acquisition module 1102 is used to acquire point cloud data detected by the lidar, wherein the point cloud data is used to represent the spatial information of the environment in which the lidar is located.

[0141] Execution module 1104 is used to determine a set of map tiles and target points based on point cloud data. The target map registered with the point cloud data is pre-divided into multiple map tiles according to the target size. The multiple map tiles include a set of map tiles. The set of map tiles is pre-associated with a set of map tile coordinate data. The target point represents any point in the point cloud data. The point cloud data includes the target point coordinate data corresponding to the target point.

[0142] Processing module 1106 is used to determine whether a set of map tiles has a target map tile that matches the target point. The target map tile matching the target point means that the result of processing the target point coordinate data according to the target size is the same as the result of processing the target map tile coordinate data according to the target size. The target map tile coordinate data corresponds to the target map tile. A set of map tile coordinate data includes the target map tile coordinate data.

[0143] The determination module 1108 is used to determine the matching result between the point cloud data and the target map based on the number of target points in the point cloud data that match the target map block and the total number of target points in the point cloud data.

[0144] As an optional solution, the above-mentioned device is used to determine whether there is a target map tile matching the target point in the set of map tiles in the following manner: acquiring the target point coordinate data corresponding to the target point; processing the target point coordinate data according to the target size to obtain the target point coordinate value; if there is a target map tile coordinate value in the set of map tile coordinate values ​​that is the same as the target point coordinate value, determining that the target point coordinate data matches the target map tile coordinate data, wherein the set of map tile coordinate values ​​are obtained in advance by processing the set of map tile coordinate data according to the target size, and the target map tile coordinate value corresponds to the target map tile coordinate data; if the target point coordinate data matches the target map tile coordinate data, determining that there is a target map tile matching the target point.

[0145] As an optional solution, the above-mentioned device is used to process the target point coordinate data according to the target size in the following manner to obtain the target point coordinate value: when the target size represents a length of N and a width of M, a first ratio of the target point's abscissa to N in the target point coordinate data is determined, and a second ratio of the target point's ordinate to M in the target point coordinate data is determined, where M and N are both positive integers; the integer parts of the first ratio and the second ratio are determined as the abscissa and ordinate of the target point coordinate value.

[0146] As an optional solution, the above-mentioned apparatus is further configured to: when there is a target map tile coordinate value in a set of map tile coordinate values ​​that is the same as the target point coordinate value, before determining that the target point coordinate data matches the target map tile coordinate data, determine a first set of ratios between the map tile abscissa of each map tile coordinate data in the set of map tile coordinate data and the above-mentioned N, and determine a second set of ratios between the map tile ordinate of each map tile coordinate data in the set of map tile coordinate data and the above-mentioned M; match the first set of ratios and the second set of ratios according to the corresponding map tile coordinate data to determine the set of map tile coordinate values, wherein one map tile coordinate value in the set of map tile coordinate values ​​includes the integer part of the third ratio in the first set of ratios as the abscissa and the integer part of the fourth ratio in the second set of ratios as the ordinate, and the third ratio and the fourth ratio correspond to the same map tile.

[0147] As an optional solution, the above-described device is used to determine that the target point coordinate data matches the target map tile coordinate data when there is a target map tile coordinate value in a set of map tile coordinate values ​​that is the same as the target point coordinate value: comparing the x-coordinate of the target point coordinate value with the x-coordinate of each map tile coordinate value in the set of map tile coordinate values ​​to determine the intermediate map tile coordinate value with the same x-coordinate; comparing the y-coordinate of the target point coordinate value with the y-coordinate of each intermediate map tile coordinate value to determine the target map tile coordinate value with the same y-coordinate; and determining the target map tile coordinate data corresponding to the target map tile coordinate value as matching the target point coordinate data.

[0148] As an optional solution, the above-mentioned apparatus is further configured to: store the map tile coordinate data corresponding to each of the above-mentioned group of map tiles as a target array; establish a hash map based on the target array, wherein the hash map includes multiple sets of key-value pairs, and the key-value pairs include an index of the map tile coordinate data corresponding to each map tile in the above-mentioned group of map tiles; determine a target index value based on the target point coordinate value, and determine whether there is target map tile coordinate data that matches the target point coordinate data through the target index value and the hash map.

[0149] As an optional solution, the above-mentioned device is used to determine the matching result between the point cloud data and the target map by the following method: determining the number of target points in the point cloud data that match the target map tiles and the total number of target points in the point cloud data; determining the total number of target points based on the point cloud data; obtaining a predetermined evaluation parameter threshold; determining a target evaluation parameter based on the number of target points and the total number of target points, and comparing the target evaluation parameter with the evaluation parameter threshold to determine the matching result.

[0150] As an optional solution, the above-mentioned device is used to determine the target evaluation parameter based on the target quantity and the total quantity in the following manner, and to determine the matching result by comparing the target evaluation parameter with the evaluation parameter threshold: the ratio between the target quantity and the total quantity is determined as the target evaluation parameter; the magnitude relationship between the target evaluation parameter and the evaluation parameter threshold is compared; if the target evaluation parameter is greater than or equal to the evaluation parameter threshold, the matching result is determined to be that the point cloud data and the target map match; if the target evaluation parameter is less than the evaluation parameter threshold, the matching result is determined to be that the point cloud data and the target map do not match.

[0151] As an optional solution, the above-mentioned device is used to determine whether there is a target map tile matching the target point in the above-mentioned set of map tiles in the following manner: acquiring multiple sets of raster coordinate data corresponding to the coordinate data of the above-mentioned set of map tiles, wherein one set of map tile coordinate data corresponds to one set of raster coordinate data; determining whether there is target raster coordinate data matching the target point coordinate data in the multiple sets of raster coordinate data, wherein the matching of the target raster coordinate data with the target point coordinate data means that the result obtained by processing the target point coordinate data according to the target size is the same as the result obtained by processing the target raster coordinate data according to the target size; if there is a target raster coordinate data matching the target point coordinate data, determining that the map tile coordinate data corresponding to the target raster coordinate data is the target map tile coordinate data, and the target map tile matches the target point.

[0152] As an optional solution, the above-mentioned apparatus is further configured to: acquire initial pose data corresponding to the point cloud data, wherein the initial pose data represents pose data corresponding to the point cloud data at the same time; determine the target points that have matching target map blocks as target feature points; calculate target residual information using each of the target feature points and the corresponding target map blocks; and optimize the initial pose data using the target residual information when the matching result between the point cloud data and the target map indicates that the point cloud data and the target map are matched, thereby obtaining target pose data.

[0153] As an optional solution, the above-mentioned device is used to calculate target residual information by using each of the target feature points and the corresponding target map tiles in the following manner: calculating the target residual information by using each of the target feature points and the target raster features in the corresponding target map tiles; when the matching result of the point cloud data and the target map indicates that the point cloud data and the target map are matched, optimizing the initial pose data using the target residual information to obtain target pose data; when the matching result of the point cloud data and the target map indicates that the point cloud data and the target map are matched, stitching together the target residual information to obtain a target residual matrix; optimizing the initial pose data using the target residual matrix through a preset algorithm to obtain the target pose data.

[0154] In this application embodiment, the terms "module" or "unit" refer to a computer program or part of a computer program that has a predetermined function and works with other related parts to achieve a predetermined goal, and can be implemented wholly or partially using software, hardware (such as processing circuitry or memory), or a combination thereof. Similarly, a processor (or multiple processors or memory) can be used to implement one or more modules or units. Furthermore, each module or unit can be part of an overall module or unit that includes the functionality of that module or unit.

[0155] Regarding the apparatus in the above embodiments, the specific manner in which each module performs its operation has been described in detail in the embodiments related to the method, and will not be elaborated upon here.

[0156] According to one aspect of this application, a computer program product is provided, the computer program product comprising a computer program.

[0157] The sequence numbers of the embodiments in this application are for descriptive purposes only and do not represent the superiority or inferiority of the embodiments.

[0158] Figure 12 A schematic block diagram of a computer system architecture for implementing an electronic device according to embodiments of the present application is shown.

[0159] It should be noted that, Figure 12 The computer system 1200 of the electronic device shown is merely an example and should not impose any limitation on the functionality and scope of use of the embodiments of this application.

[0160] like Figure 12 As shown, the computer system 1200 includes a central processing unit (CPU) 1201, which can perform various appropriate actions and processes based on programs stored in read-only memory (ROM) 1202 or programs loaded from storage section 1208 into random access memory (RAM). The RAM 1203 also stores various programs and data required for system operation. The CPU 1201, ROM 1202, and RAM 1203 are interconnected via a bus 1204. An input / output interface 1205 (I / O interface) is also connected to the bus 1204.

[0161] The following components are connected to the input / output interface 1205: an input section 1206 including a keyboard, mouse, etc.; an output section 1207 including a cathode ray tube (CRT), liquid crystal display (LCD), etc., and speakers, etc.; a storage section 1208 including a hard disk, etc.; and a communication section 1209 including a network interface card such as a local area network card, modem, etc. The communication section 1209 performs communication processing via a network such as the Internet. A drive 1210 is also connected to the input / output interface 1205 as needed. A removable medium 1211, such as a disk, optical disk, magneto-optical disk, semiconductor memory, etc., is installed on the drive 1210 as needed so that computer programs read from it can be installed into the storage section 1208 as needed.

[0162] Specifically, according to embodiments of this application, the processes described in the various method flowcharts can be implemented as computer software programs. For example, embodiments of this application include a computer program product comprising a computer program carried on a computer-readable medium, the computer program containing program code for performing the methods shown in the flowcharts. In such embodiments, the computer program can be downloaded and installed from a network via communication section 1209, and / or installed from removable medium 1211. When the computer program is executed by central processing unit 1201, it performs various functions defined in the system of this application.

[0163] In such an embodiment, the computer program can be downloaded and installed from a network via the communication section 1209, and / or installed from the removable medium 1211. When the computer program is executed by the central processing unit 1201, it performs various functions provided in the embodiments of this application.

[0164] According to another aspect of the embodiments of this application, an electronic device for implementing the above-described data processing method is also provided. This electronic device may be... Figure 1 The terminal device or server shown. This embodiment uses this electronic device as an example for illustration. Figure 13 As shown, the electronic device includes a memory 1302 and a processor 1304. The memory 1302 stores a computer program, and the processor 1304 is configured to execute the steps of any of the above method embodiments through the computer program.

[0165] Optionally, in this embodiment, the aforementioned electronic device may be located in at least one of a plurality of network devices in a computer network.

[0166] Optionally, in this embodiment, the processor may be configured to execute the methods in the embodiments of this application via a computer program.

[0167] Alternatively, as those skilled in the art will understand, Figure 13 The structure shown is for illustrative purposes only. Figure 13 This does not limit the structure of the aforementioned electronic devices. For example, the electronic device may also include components that are more... Figure 13 The more or fewer components shown (such as network interfaces, etc.), or having the same Figure 13 The different configurations shown.

[0168] The memory 1302 can be used to store software programs and modules, such as the program instructions / modules corresponding to the data processing methods and apparatus in this embodiment. The processor 1304 executes various functional applications and data processing by running the software programs and modules stored in the memory 1302, thereby implementing the aforementioned data processing methods. The memory 1302 may include high-speed random access memory and may also include non-volatile memory, such as one or more magnetic storage devices, flash memory, or other non-volatile solid-state memory. In some instances, the memory 1302 may further include memory remotely located relative to the processor 1304, and these remote memories can be connected to the terminal via a network. Examples of such networks include, but are not limited to, the Internet, corporate intranets, local area networks, mobile communication networks, and combinations thereof. Specifically, the memory 1302 may be used, but is not limited to, to store target maps, point cloud data, and other information. As an example, such as... Figure 13As shown, the memory 1302 may include, but is not limited to, the acquisition module 1102, execution module 1104, processing module 1106, and determination module 1108 in the data processing device. Furthermore, it may include, but is not limited to, other module units in the data processing device, which will not be described in detail in this example.

[0169] Optionally, the transmission device 1306 described above is used to receive or send data via a network. Specific examples of the network described above may include wired networks and wireless networks. In one example, the transmission device 1306 includes a Network Interface Controller (NIC), which can be connected to other network devices and a router via a network cable to communicate with the Internet or a local area network. In another example, the transmission device 1306 is a Radio Frequency (RF) module, used for wireless communication with the Internet.

[0170] In addition, the aforementioned electronic device also includes: a display 1308 for displaying the target map and point cloud data; and a connection bus 1310 for connecting the various module components in the aforementioned electronic device.

[0171] In other embodiments, the aforementioned terminal device or server can be a node in a distributed system, wherein the distributed system can be a blockchain system, which is a distributed system formed by connecting multiple nodes through network communication. The nodes can form a peer-to-peer network, and any form of computing device, such as a server, terminal, or other electronic device, can become a node in the blockchain system by joining this peer-to-peer network.

[0172] According to one aspect of this application, a computer-readable storage medium is provided, wherein a processor of an electronic device reads computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, causing the electronic device to perform a data processing method provided in various alternative implementations of the above-described data processing aspect.

[0173] Optionally, in this embodiment, the computer-readable storage medium described above may be configured to store methods for performing the embodiments of this application.

[0174] Optionally, in this embodiment, those skilled in the art will understand that all or part of the steps in the various methods of the above embodiments can be implemented by a program instructing the hardware related to the terminal device. The program can be stored in a computer-readable storage medium, which may include: flash drive, read-only memory (ROM), random access memory (RAM), disk or optical disk, etc.

[0175] The sequence numbers of the embodiments in this application are for descriptive purposes only and do not represent the superiority or inferiority of the embodiments.

[0176] If the integrated units in the above embodiments are implemented as software functional units and sold or used as independent products, they can be stored in the aforementioned computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause one or more electronic devices to execute all or part of the steps of the methods described in the various embodiments of this application.

[0177] In the above embodiments of this application, the descriptions of each embodiment have different focuses. For parts not described in detail in a certain embodiment, please refer to the relevant descriptions of other embodiments.

[0178] In the several embodiments provided in this application, it should be understood that the disclosed application can be implemented in other ways. The device embodiments described above are merely illustrative; for example, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the displayed or discussed mutual couplings, direct couplings, or communication connections may be through some interfaces; indirect couplings or communication connections between units or modules may be electrical or other forms.

[0179] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.

[0180] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.

[0181] The above description is only a preferred embodiment of this application. It should be noted that for those skilled in the art, several improvements and modifications can be made without departing from the principle of this application, and these improvements and modifications should also be considered within the scope of protection of this application.

Claims

1. A data processing method, characterized in that, include: Acquire point cloud data detected by lidar, wherein the point cloud data is used to represent the spatial information of the environment in which the lidar is located; A set of map tiles and target points are determined based on the point cloud data. The target map registered with the point cloud data is pre-divided into multiple map tiles according to the target size. The multiple map tiles include the set of map tiles. The set of map tiles is pre-associated with a set of map tile coordinate data. The target point represents any point in the point cloud data. The point cloud data includes target point coordinate data corresponding to the target point. Determine whether there is a target map tile in the set of map tiles that matches the target point, wherein the target map tile matching the target point means that the result of processing the target point coordinate data according to the target size is the same as the result of processing the target map tile coordinate data according to the target size, the target map tile coordinate data corresponds to the target map tile, and the set of map tile coordinate data includes the target map tile coordinate data; The matching result between the point cloud data and the target map is determined by the number of target points in the point cloud data that match the target map tile and the total number of target points in the point cloud data.

2. The method according to claim 1, characterized in that, Determining whether the set of map tiles contains a target map tile that matches the target point includes: Obtain the target point coordinate data corresponding to the target point; The target point coordinate data is processed according to the target size to obtain the target point coordinate values; If a target map tile coordinate value exists in a set of map tile coordinate values ​​that is identical to the target point coordinate value, the target point coordinate data is determined to match the target map tile coordinate data. The set of map tile coordinate values ​​is obtained by pre-processing the set of map tile coordinate data according to the target size, and the target map tile coordinate value corresponds to the target map tile coordinate data. If the target point coordinate data matches the target map tile coordinate data, it is determined that there exists a target map tile that matches the target point.

3. The method according to claim 2, characterized in that, The step of processing the target point coordinate data according to the target size to obtain the target point coordinate values ​​includes: Given that the target size represents a length of N and a width of M, a first ratio of the x-coordinate of the target point in the target point coordinate data to N is determined, and a second ratio of the y-coordinate of the target point in the target point coordinate data to M is determined, where M and N are both positive integers; The integer parts of the first ratio and the second ratio are determined as the x-coordinate and y-coordinate of the target point coordinates.

4. The method according to claim 3, characterized in that, Before determining that the target point coordinate data matches the target map tile coordinate data when a target map tile coordinate value exists in a set of map tile coordinate values ​​that is identical to the target point coordinate value, the method further includes: Determine a first set of ratios between the abscissa of each map tile in the set of map tile coordinate data and N, and determine a second set of ratios between the ordinate of each map tile in the set of map tile coordinate data and M; The first ratio set and the second ratio set are matched according to the corresponding map tile coordinate data to determine the set of map tile coordinate values. The map tile coordinate value in the set of map tile coordinate values ​​includes the integer part of the third ratio in the first ratio set as the horizontal axis and the integer part of the fourth ratio in the second ratio set as the vertical axis. The third ratio and the fourth ratio correspond to the same map tile.

5. The method according to claim 2, characterized in that, The step of determining that the target point coordinate data matches the target map tile coordinate data when a target map tile coordinate value exists in a set of map tile coordinate values ​​that is identical to the target point coordinate value includes: The x-coordinate of the target point coordinate value is compared with the x-coordinate of each map tile coordinate value in the set of map tile coordinate values ​​to determine the intermediate map tile coordinate values ​​with the same x-coordinate. The ordinate of the target point coordinate value is compared with the ordinate of each map tile coordinate value in the intermediate map tile coordinate values ​​to determine the target map tile coordinate values ​​with the same ordinate. The target map tile coordinate data corresponding to the target map tile coordinate value is determined to match the target point coordinate data.

6. The method according to claim 2, characterized in that, The method further includes: Store the map tile coordinate data corresponding to each of the group of map tiles into a target array; A hash map is constructed based on the target array, wherein the hash map includes multiple sets of key-value pairs, and the key-value pairs include the index of the map block coordinate data corresponding to each map block in the set of map blocks; The target index value is determined based on the target point coordinates, and the existence of target map tile coordinate data that matches the target point coordinate data is determined using the target index value and the hash map.

7. The method according to claim 1, characterized in that, The determination of the matching result between the point cloud data and the target map, based on the number of target points in the point cloud data that match the target map tile and the total number of target points in the point cloud data, includes: Determine the number of target points in the point cloud data that match the target map tile. The total number of target points is determined based on the point cloud data; Obtain predetermined evaluation parameter thresholds; The target evaluation parameters are determined based on the target quantity and the total quantity, and the target evaluation parameters are compared with the evaluation parameter threshold to determine the matching result.

8. The method according to claim 7, characterized in that, The step of determining the target evaluation parameter based on the target quantity and the total quantity, and comparing the target evaluation parameter with the evaluation parameter threshold to determine the matching result includes: The ratio between the target quantity and the total quantity is determined as the target evaluation parameter; Compare the magnitudes of the target evaluation parameter and the evaluation parameter threshold; If the target evaluation parameter is greater than or equal to the evaluation parameter threshold, the matching result is determined to be that the point cloud data and the target map are matched. If the target evaluation parameter is less than the evaluation parameter threshold, the matching result is determined to be that the point cloud data and the target map do not match.

9. The method according to claim 1, characterized in that, Determining whether the set of map tiles contains a target map tile that matches the target point includes: Obtain multiple sets of raster coordinate data corresponding to the set of map tile coordinate data, wherein one set of map tile coordinate data corresponds to one set of raster coordinate data; Determine whether there is target raster coordinate data in the multiple sets of raster coordinate data that matches the target point coordinate data, wherein the target raster coordinate data matching the target point coordinate data means that the result obtained by processing the target point coordinate data according to the target size is the same as the result obtained by processing the target raster coordinate data according to the target size; If there is a match between the target raster coordinate data and the target point coordinate data, the map tile coordinate data corresponding to the target raster coordinate data is determined as the target map tile coordinate data, and the target map tile matches the target point.

10. The method according to claim 1, characterized in that, The method further includes: Obtain initial pose data corresponding to the point cloud data, wherein the initial pose data represents pose data corresponding to the point cloud data at the same time. The target point that has a matching target map tile is identified as the target feature point; Calculate the target residual information using each of the target feature points and the corresponding target map blocks; If the matching result between the point cloud data and the target map indicates that the point cloud data and the target map are matched, the initial pose data is optimized using the target residual information to obtain the target pose data.

11. The method according to claim 10, characterized in that, The step of calculating target residual information using each of the target feature points and the corresponding target map blocks includes: calculating the target residual information using each of the target feature points and the target raster features in the corresponding target map blocks; When the matching result between the point cloud data and the target map indicates that the point cloud data and the target map are matched, the initial pose data is optimized using the target residual information to obtain target pose data. This includes: when the matching result between the point cloud data and the target map indicates that the point cloud data and the target map are matched, concatenating each of the target residual information to obtain a target residual matrix; and using the target residual matrix to optimize the initial pose data using a preset algorithm to obtain the target pose data.

12. A data processing apparatus, characterized in that, include: An acquisition module is used to acquire point cloud data detected by the lidar, wherein the point cloud data is used to represent the spatial information of the environment in which the lidar is located; An execution module is used to determine a set of map tiles and a target point based on the point cloud data. The target map registered with the point cloud data is pre-divided into multiple map tiles according to the target size. The multiple map tiles include the set of map tiles. The set of map tiles is pre-associated with a set of map tile coordinate data. The target point represents any point in the point cloud data. The point cloud data includes target point coordinate data corresponding to the target point. The processing module is used to determine whether there is a target map tile in the set of map tiles that matches the target point. The target map tile matching the target point means that the result of processing the target point coordinate data according to the target size is the same as the result of processing the target map tile coordinate data according to the target size. The target map tile coordinate data corresponds to the target map tile. The set of map tile coordinate data includes the target map tile coordinate data. The determination module is used to determine the matching result between the point cloud data and the target map by the number of target points of the target points that match the target map block in the point cloud data and the total number of target points in the point cloud data.

13. A computer-readable storage medium, characterized in that, The computer-readable storage medium includes a stored computer program, wherein the computer program can be executed by an electronic device to perform the method described in any one of claims 1 to 11.

14. A computer program product, comprising a computer program, characterized in that, When executed by a processor, the computer program performs the steps of the method described in any one of claims 1 to 11.

15. An electronic device comprising a memory and a processor, characterized in that, The memory stores a computer program, and the processor is configured to execute the method described in any one of claims 1 to 11 through the computer program.