A method and apparatus for constructing a map

CN116993931BActive Publication Date: 2026-11-03BEIJING SANKUAI ONLINE TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202210430003.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-04-22
Publication Date
2026-11-03
Estimated Expiration
2042-04-22

AI Technical Summary

Technical Problem

In autonomous driving devices, when there is a poor or no signal, existing technologies cannot accurately determine the pose, resulting in low accuracy of the constructed high-precision maps.

Method used

By performing semantic recognition on multiple frames of point cloud data, the laser points of the specified target objects are identified, and the target objects in two frames of point cloud data are aligned. The relative pose is determined by the pose constraints of the target object category, and a high-precision map is constructed.

Benefits of technology

It improves the accuracy of high-precision maps in signal-free environments and avoids dependence on the Global Positioning System and Inertial Measurement Unit.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116993931B_ABST
    Figure CN116993931B_ABST
Patent Text Reader

Abstract

The specification discloses a method and device for constructing a map. Firstly, for multiple frames of point cloud data, the frames of point cloud data are subjected to semantic recognition to identify laser points of at least one specified target object from the frames of point cloud data. Secondly, for any two frames of paired point cloud data, the laser points of the specified target object contained in the two frames of point cloud data are aligned, and the relative pose between the two frames of point cloud data is determined according to the pose constraint condition corresponding to the target object category of the target object involved in the two frames of point cloud data and the aligned two frames of point cloud data. Finally, a high-precision map is constructed according to the relative pose between any two frames of paired point cloud data and each frame of point cloud data collected by a specified device. The method can improve the precision of the high-precision map constructed by the specified device when the signal is poor or there is no signal.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This specification relates to the field of autonomous driving, and in particular to a method and apparatus for map construction. Background Technology

[0002] In the field of autonomous driving, the accuracy of the pose of designated equipment when collecting point cloud data will affect the accuracy of high-precision maps, thereby affecting the safety of unmanned equipment during operation.

[0003] In practical applications, designated devices typically determine their own pose using the Global Positioning System (GPS) and Inertial Measurement Unit (IMU). However, when the signal is poor (tree-lined roads, tall buildings obstructing the view) or there is no signal at all (basements, tunnels), the designated device cannot determine its own pose, resulting in lower accuracy of the constructed high-precision map.

[0004] Therefore, how to improve the accuracy of the constructed high-precision maps is an urgent problem to be solved. Summary of the Invention

[0005] This specification provides a method and apparatus for constructing maps, in order to partially solve the aforementioned problems existing in the prior art.

[0006] The following technical solution is adopted in this specification:

[0007] This manual provides a method for constructing maps, including:

[0008] For multi-frame point cloud data, semantic recognition is performed on the frame point cloud data to identify at least one laser point of a specified target object from the frame point cloud data;

[0009] For any two paired point cloud data frames, the laser points of the specified target objects contained in the two point cloud data frames are aligned, and the relative pose between the two point cloud data frames is determined according to the pose constraints corresponding to the target object categories involved in the two point cloud data frames and the aligned two point cloud data frames.

[0010] A high-precision map is constructed based on the relative pose between any two paired point cloud data frames and the point cloud data of each frame collected by the designated device.

[0011] Optionally, the designated target object includes: a planar target object;

[0012] For multi-frame point cloud data, semantic recognition is performed on each frame of point cloud data to identify at least one laser point of a specified target object from that frame. Specifically, this includes:

[0013] For this frame of point cloud data, determine the spatial location of each laser point contained in the frame of point cloud data and the normal vector of each laser point in space;

[0014] Laser points whose spatial distance is less than a set distance and whose angle between normal vectors is less than a set angle are identified as laser points of the planar target.

[0015] Optionally, the designated target object includes: a three-dimensional target object;

[0016] For multi-frame point cloud data, semantic recognition is performed on each frame of point cloud data to identify at least one laser point of a specified target object from the point cloud data, specifically including:

[0017] For each frame of point cloud data, identify each point cloud cluster from that frame of point cloud data;

[0018] If a point cloud cluster falls within a set angle range in the spatial angle of the point cloud data frame, the laser points contained in the point cloud cluster will be used as the laser points corresponding to the identified three-dimensional target.

[0019] Optionally, for any two paired point cloud data frames, the laser points of the specified target object contained in these two point cloud data frames are aligned, specifically including:

[0020] For any two pairs of point cloud data, determine whether the laser points of a specified target object contained in one of the two point cloud data frames satisfy the preset matching conditions with the laser points of the specified target object contained in the other point cloud data frame.

[0021] If the matching conditions are met, the laser points of the specified target object contained in these two frames of point cloud data are matched in multiple rounds.

[0022] Based on the pose relationship between the two frames of point cloud data calculated when the number of laser point matches is the maximum in the multi-round matching, the laser points of the specified target object contained in the two frames of point cloud data are aligned.

[0023] Optionally, when the designated target is a planar target, it is determined whether the laser points of the designated target contained in one frame of point cloud data satisfy a preset matching condition with the laser points of the designated target contained in the other frame of point cloud data, specifically including:

[0024] If it is determined that the position of any laser point of a planar target object contained in one frame of point cloud data is less than a set distance from the plane containing the laser point of the planar target object contained in the other frame of point cloud data, and / or

[0025] If the angle between the normal vector of the plane containing the laser point of the planar target object in one frame of point cloud data and the normal vector of the plane containing the laser point of the planar target object in the other frame of point cloud data is less than a set angle, then the matching condition is satisfied.

[0026] Optionally, when the designated target is a three-dimensional target, it is determined whether the laser points of the designated target contained in one frame of point cloud data satisfy a preset matching condition with the laser points of the designated target contained in the other frame of point cloud data, specifically including:

[0027] If it is determined that any point on the center line corresponding to the stereoscopic target object contained in one of the two point cloud data frames is less than a set distance from the center line corresponding to the stereoscopic target object contained in the other point cloud data frame, and / or

[0028] If it is determined that the angle between the center line of the stereo target object contained in one frame of point cloud data and the center line of the stereo target object contained in the other frame of point cloud data is less than a set angle, then the matching condition is satisfied.

[0029] Optionally, a high-precision map is constructed based on the relative pose between any two paired point cloud data frames and the point cloud data of each frame collected by the designated device, specifically including:

[0030] Based on the relative pose between any two paired point cloud data frames, the pose on which the specified device collects each frame of point cloud data is optimized to obtain the optimized pose of the specified device collecting each frame of point cloud data.

[0031] A high-precision map is constructed based on the optimized pose and each frame of point cloud data collected by the designated device.

[0032] This specification provides an apparatus for constructing maps, comprising:

[0033] The identification module is used to perform semantic recognition on the point cloud data of multiple frames, so as to identify at least one laser point of a specified target object from the point cloud data of the frame.

[0034] The alignment module is used to align the laser points of the specified target objects contained in any two pairs of point cloud data, and determine the relative pose between the two point cloud data based on the pose constraints corresponding to the target object categories involved in the two point cloud data and the aligned two point cloud data.

[0035] The construction module is used to construct a high-precision map based on the relative pose between any two paired point cloud data frames and the point cloud data of each frame collected by the specified device.

[0036] This specification provides a computer-readable storage medium storing a computer program that, when executed by a processor, implements the above-described method for constructing a map.

[0037] This specification provides an electronic device including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the program to implement the above-described method for constructing a map.

[0038] The above-mentioned technical solutions adopted in this specification can achieve the following beneficial effects:

[0039] In the map construction method provided in this specification, firstly, for multiple frames of point cloud data, semantic recognition is performed on each frame of point cloud data to identify at least one laser point of a specified target object from the frame of point cloud data. Secondly, for any two paired frames of point cloud data, the laser points of the specified target objects contained in these two frames of point cloud data are aligned, and the relative pose between the two frames of point cloud data is determined based on the pose constraints corresponding to the target object categories involved in the two frames of point cloud data, and the aligned two frames of point cloud data. Finally, a high-precision map is constructed based on the relative pose between any two paired frames of point cloud data and each frame of point cloud data collected by the specified device.

[0040] As can be seen from the above method, this method can perform semantic recognition on multiple frames of point cloud data to identify the laser points of at least one specified target object from the frame. The laser points of the specified target object contained in any two frames of point cloud data are aligned, and the relative pose between the two frames is determined based on the pose constraints corresponding to the target object categories involved in these two frames, as well as the aligned two frames of point cloud data. This allows for the construction of a high-precision map. Compared to existing technologies, this method does not require the use of a Global Positioning System (GPS) and Inertial Measurement Unit (INS) to determine the pose of the specified device, thus improving the accuracy of the high-precision map constructed by the specified device when the signal is poor or absent. Attached Figure Description

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

[0042] Figure 1 This is a flowchart illustrating a method for constructing a map as described in this specification.

[0043] Figure 2 A schematic diagram of a planar target object provided in the embodiments of this specification;

[0044] Figure 3 A schematic diagram of a three-dimensional target object provided in the embodiments of this specification;

[0045] Figure 4 This is a schematic diagram of a map-building apparatus provided in this specification;

[0046] Figure 5 This specification provides a corresponding Figure 1 A schematic diagram of an electronic device. Detailed Implementation

[0047] To make the objectives, technical solutions, and advantages of this specification clearer, the technical solutions of this specification will be clearly and completely described below in conjunction with specific embodiments and corresponding drawings. Obviously, the described embodiments are only a part of the embodiments of this specification, and not all of them. Based on the embodiments in this specification, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this specification.

[0048] The technical solutions provided in the various embodiments of this specification are described in detail below with reference to the accompanying drawings.

[0049] Figure 1 This is a flowchart illustrating a method for constructing a map as described in this specification, including the following steps:

[0050] S100: For multi-frame point cloud data, perform semantic recognition on the frame point cloud data to identify at least one laser point of a specified target object from the frame point cloud data.

[0051] In this manual, the entity that performs the map construction can be a server or an electronic device such as a desktop computer or laptop. For ease of description, the following explanation will focus on the server as the entity performing the map construction method provided in this manual.

[0052] In the embodiments described in this specification, the server can acquire point cloud data from each frame collected by a designated device. The server can acquire point cloud data and laser reflectivity data through the LiDAR installed on the designated device. The designated device mentioned here can refer to a device that collects data during the construction of a high-precision map, such as a human-driven car, a manned robot, or an unmanned device.

[0053] It should be noted that the unmanned equipment mentioned in this specification can refer to devices capable of autonomous driving, such as driverless cars, robots, and automated delivery equipment. Based on this, unmanned equipment using the map-building method provided in this specification can be used to perform delivery tasks in the delivery field, such as in business scenarios involving express delivery, logistics, and food delivery.

[0054] In the embodiments of this specification, the server can perform semantic recognition on a frame of point cloud data from multiple frames to identify at least one laser point of a specified target object. The semantic recognition of a frame of point cloud data mentioned here can refer to performing semantic recognition on each frame of point cloud data separately.

[0055] In practical applications, servers typically match each laser point in one frame of point cloud data with the nearest laser point in the other frame. This method is computationally intensive and inefficient. Furthermore, dynamic obstacles in the point cloud data can cause significant errors in matching laser points between the two frames. Therefore, a better approach is to identify stationary obstacles that frequently appear around a specified device and match these obstacles with each target object in the two point cloud frames to determine their relative pose.

[0056] In the embodiments of this specification, the designated target object includes: a planar target object. For the frame of point cloud data, the server determines the spatial position of each laser point contained in the frame of point cloud data and the normal vector of each laser point in space. Laser points whose spatial distance is less than a set distance and whose angle between normal vectors is less than a set angle are identified as laser points of the planar target object. The planar target object mentioned here can also be composed of laser points reflected from planar target objects surrounding the designated device. For example, if there are buildings surrounding the designated device, the laser points reflected from the walls of those buildings can constitute a planar target object.

[0057] The spatial position of each laser point is (X, Y, Z). The server can calculate the spatial distance between any two laser points based on their spatial positions ((X1, Y1, Z1), (X2, Y2, Z2)). For example,

[0058] It can be seen that if the spatial distance between each laser point in the point cloud data frame is less than the set distance, and for each laser point, the angle between the normal vector corresponding to the laser point and the normal vector corresponding to other laser points within a certain range around the laser point is less than the set angle, then it can be determined that the laser point and other laser points within a certain range around the laser point belong to the laser points reflected by the same plane target object.

[0059] Furthermore, if the spatial distance between each laser point in the point cloud data frame is less than a set distance, the spatial height of each laser point is less than a set height, and for each laser point, the angle between the normal vector corresponding to that laser point and the normal vectors corresponding to other laser points within a certain range around that laser point is less than a set angle, then it can be determined that the laser point and the other laser points within a certain range around that laser point belong to ground-reflected laser points. Specifically, as follows... Figure 2 As shown.

[0060] Figure 2 This is a schematic diagram of a planar target object provided for an embodiment of this specification.

[0061] exist Figure 2 In this context, a parallelogram can refer to the set of laser points reflected from the ground in reality or the set of laser points reflected from a plane on an obstacle surrounding a specified device, and a dot can refer to a laser point. It can be seen that if it is determined that the spatial distance between each laser point in the frame of point cloud data is less than a set distance, and the angle between the normal vectors of each laser point is less than a set angle, then the set of laser points can be used to represent a plane on an obstacle surrounding a specified device. Similarly, if it is determined that the spatial distance between each laser point in the frame of point cloud data is less than a set distance, the spatial height of each laser point's spatial position is less than a set height, and the angle between the normal vectors corresponding to each laser point is less than a set angle, then the set of laser points can be used to represent the ground surrounding a specified device.

[0062] In the embodiments of this specification, the designated target object includes: a three-dimensional target object. The server can identify each point cloud cluster from each frame of point cloud data. If a point cloud cluster's spatial angle within the frame of point cloud data falls within a set angle range, the laser points contained in that point cloud cluster are used as the laser points corresponding to the identified three-dimensional target object. The point cloud cluster mentioned here can refer to a collection of several laser points. The three-dimensional target object mentioned here can be composed of laser points reflected from the surface of an obstacle with a fixed shape around the designated device. For example, if there is a tree trunk around the designated device, the laser points reflected from the tree trunk's surface can form a three-dimensional target object. As another example, if there is a lamppost around the designated device, the laser points reflected from the lamppost's surface can form a three-dimensional target object.

[0063] Furthermore, for each point cloud cluster, if it is determined that the point cloud cluster is perpendicular to the space corresponding to the point cloud data of that frame, and the deviation between the shapes formed by the laser points at different heights on the point cloud cluster is less than a set deviation threshold, then the laser points contained in the point cloud cluster are taken as the laser points corresponding to the identified three-dimensional target.

[0064] Specifically, the server can identify point cloud clusters from the point cloud data frame and determine the spatial orientation of each cluster perpendicular to the corresponding frame using principal component analysis (PCA). Secondly, the server can determine whether the point cloud cluster satisfies the structure corresponding to the target object. If the point cloud cluster satisfies the structure, meaning the deviation between the shapes formed by laser points at different heights on the cluster is less than a set deviation threshold, then the laser points contained in the cluster are identified as the laser points corresponding to the three-dimensional target object.

[0065] For example, if the 3D target is a tree trunk, the corresponding structure of the tree trunk can be a semi-cylinder. Based on this, the shape formed by laser points at different heights on the point cloud cluster is always a semi-circle. As another example, if the 3D target is a trash can, the corresponding structure of the trash can can be a cuboid. Based on this, the shape formed by laser points at different heights on the point cloud cluster is always a rectangle. Specifically... Figure 3 As shown.

[0066] Figure 3 This is a schematic diagram of a three-dimensional target object provided for an embodiment of this specification.

[0067] exist Figure 3 In this context, the cylinder can refer to a real tree trunk. The dots can refer to laser points. The dashed line at the center of the cylinder can be the center line formed by the center points determined by the laser points at each height on the cylinder's surface. It can be seen that if the point cloud cluster is perpendicular to the space corresponding to the point cloud data of that frame, and the deviation between the semicircles formed by laser points at different heights on that point cloud cluster is less than a set deviation threshold, then that point cloud cluster can be used to represent the tree trunk around an obstacle. Furthermore, if the shape of the real tree trunk is different, the center line determined by the point cloud cluster will also be different.

[0068] Of course, the server can input point cloud data into a pre-trained deep learning model and use semantic segmentation to identify the laser points of at least one target object from the point cloud data in that frame.

[0069] S102: For any two pairs of point cloud data, align the laser points of the specified target objects contained in the two point cloud data, and determine the relative pose between the two point cloud data based on the pose constraints corresponding to the target object categories involved in the two point cloud data and the aligned two point cloud data.

[0070] In the embodiments of this specification, for any two paired point cloud data frames, the server can align the laser points of the specified target objects contained in these two point cloud data frames, and determine the corresponding relative pose between the two point cloud data frames based on the pose constraints corresponding to the target object categories involved in the two point cloud data frames, and the aligned two point cloud data frames. The "any two paired point cloud data frames" mentioned here can refer to any two point cloud data frames containing at least one identical target object.

[0071] In practical applications, since the designated device collects point cloud data during operation, some laser points in the two frames of point cloud data are reflected from different obstacles. The server cannot determine which laser points in the two frames of point cloud data belong to the same target object. Therefore, the server needs to determine whether the laser points of the designated target object in one frame of point cloud data meet preset matching conditions with the laser points of the designated target object in the other frame of point cloud data, thus determining which laser points in the two frames of point cloud data belong to the same target object.

[0072] In the embodiments of this specification, for any two paired point cloud data frames, the server can determine whether the laser points of a specified target object contained in one of the two point cloud data frames satisfy a preset matching condition with the laser points of a specified target object contained in the other point cloud data frame.

[0073] Secondly, if the matching conditions are met, the server can perform multiple rounds of matching on the laser points of the specified target object contained in these two frames of point cloud data.

[0074] Finally, the server can align the laser points of the specified target object contained in the two frames of point cloud data based on the pose relationship corresponding to the two frames of point cloud data calculated when the number of laser point matches is the maximum in the multi-round matching.

[0075] Specifically, the server can determine whether a specified target object contained in one frame of point cloud data matches a specified target object contained in the other frame of point cloud data through several rounds of random matching, determining the matching specified target object for each round. For each round, the server can determine whether the laser point of the specified target object in one frame of point cloud data satisfies a preset matching condition with the laser point of the specified target object in the other frame of point cloud data, based on the matching specified target object for that round. If the matching condition is satisfied, the server determines the number of matching specified target objects for that round. From several rounds, the round with the largest number of matching specified target objects in the two frames of point cloud data is selected, and the laser points of the specified target objects in the two frames of point cloud data in that round are aligned.

[0076] In the embodiments of this specification, there are multiple categories of designated target objects, and the preset matching conditions for different categories of designated target objects are not the same. When the designated target object is a planar target object, if it is determined that the distance between the position of any laser point of the planar target object contained in one frame of point cloud data and the plane containing the laser point of the planar target object contained in the other frame of point cloud data is less than a set distance, and / or if the angle between the normal vector of the plane containing the laser point of the planar target object contained in one frame of point cloud data and the normal vector of the plane containing the laser point of the planar target object contained in the other frame of point cloud data is less than a set angle, then it is determined that the matching condition is met.

[0077] To determine whether the distance between the position of any laser point of a planar target object contained in one frame of point cloud data and the plane containing the laser point of the planar target object contained in the other frame of point cloud data is less than a set distance, the specific formula is as follows:

[0078] {(x i x j )|‖x i -x j ||<δ}

[0079] In the above formula, x i It can be used to characterize the position of the i-th laser point of a planar target object contained in one of the two frames of point cloud data. j δ can be used to characterize the position of the j-th laser point of a planar target object contained in one of the two frames of point cloud data. δ can be used to characterize a set distance. The server can determine the distance between the two points using the positions of the i-th laser point of the planar target object contained in one of the two frames of point cloud data and the j-th laser point of the planar target object contained in one of the two frames of point cloud data.

[0080] Furthermore, it is determined whether the angle between the normal vector of the plane containing the laser point of the planar target object in one frame of point cloud data and the normal vector of the plane containing the laser point of the planar target object in the other frame of point cloud data is less than a set angle. The specific formula is as follows:

[0081]

[0082] In the above formula, It can be used to characterize the normal vector of the plane containing the laser point of the planar target object in one of the two frames of point cloud data. It can be used to characterize the normal vector of the plane containing the laser point of a planar target object contained in another frame of point cloud data. cosε can be used to characterize the cosine value of a set angle. Since the smaller the angle, the larger cosε is, the cosine value of the angle between the normal vector of the plane containing the laser point of a planar target object contained in one frame of point cloud data and the normal vector of the plane containing the laser point of a planar target object contained in the other frame of point cloud data needs to be greater than cosε.

[0083] Using the above formula, if the server determines that the distance between the position of any laser point of a planar target object contained in one frame of point cloud data and the plane containing the laser point of the planar target object contained in the other frame of point cloud data is less than a set distance, and / or if the angle between the normal vector of the plane containing the laser point of the planar target object contained in one frame of point cloud data and the normal vector of the plane containing the laser point of the planar target object contained in the other frame of point cloud data is less than a set angle, then it is determined that the two planar target objects matched in the two frames of point cloud data are obtained by reflection from the same obstacle.

[0084] Furthermore, the server can determine whether the distance between the position of the laser point corresponding to the center point of the planar target object in one frame of the two point cloud data and the plane containing the laser point of the planar target object in the other frame of the two point cloud data is less than a set distance, based on the normal vector of the plane containing the laser point of the planar target object in one frame of the two point cloud data and the position of the laser point corresponding to the center point of the planar target object in one frame of the two point cloud data. The specific formula is as follows:

[0085] |n x x+n y y+n z z+d|<δ

[0086] In the above formula, (n x n y n zThe values ​​(x, y, z) can be used to characterize the normal vector of the plane containing the laser point of the planar target object in one of the two point cloud data frames. The values ​​(x, y, z) can be used to characterize the position of the laser point corresponding to the center point of the planar target object in one of the two point cloud data frames. δ can be used to characterize a set distance. The server can use the normal vector of the plane containing the laser point of the planar target object in one of the two point cloud data frames, and the position of the laser point corresponding to the center point of the planar target object in one of the two point cloud data frames, along with the point-to-plane distance formula, to determine the distance between the position of the laser point corresponding to the center point of the planar target object in one of the two point cloud data frames and the plane containing the laser point of the planar target object in the other point cloud data frame.

[0087] In the embodiments of this specification, when the specified target object is a three-dimensional target object, the server can determine that the matching condition is met if it is determined that the distance between any point on the center line corresponding to the three-dimensional target object contained in one frame of point cloud data and the center line corresponding to the three-dimensional target object contained in the other frame of point cloud data is less than a set distance, and / or if it is determined that the angle between the center line corresponding to the three-dimensional target object contained in one frame of point cloud data and the center line corresponding to the three-dimensional target object contained in the other frame of point cloud data is less than a set angle. The center line mentioned here can refer to the center line formed by the center points determined based on laser points at different heights within the three-dimensional target object.

[0088] Determine the distance between any point on the centerline of the stereoscopic object contained in one of the two point cloud data frames and the corresponding centerline of the stereoscopic object contained in the other point cloud data frame. The specific formula is as follows:

[0089]

[0090] In the above formula, It can be used to characterize the normal vector of the center line of the three-dimensional target contained in one of the two frames of point cloud data. It can be used to characterize the position of any point on the center line of a three-dimensional target object contained in one of the two frames of point cloud data. It can be used to characterize the position of any point on the centerline of a stereoscopic object contained in another frame of point cloud data. The server can, based on the normal vector of the centerline of the stereoscopic object contained in one frame of point cloud data, the position of any point on the centerline of the stereoscopic object contained in one frame of point cloud data, and the position of any point on the centerline of the stereoscopic object contained in the other frame of point cloud data, calculate the distance between any point on the centerline of the stereoscopic object contained in one frame of point cloud data and the centerline of the stereoscopic object contained in the other frame of point cloud data using the point-to-line distance formula.

[0091] Determine the angle between the centerline of the stereo target object contained in one frame of point cloud data and the centerline of the stereo target object contained in the other frame of point cloud data. The specific formula is as follows:

[0092]

[0093] In the above formula, It can be used to characterize the normal vector of the center line of the three-dimensional target contained in one of the two frames of point cloud data. It can be used to characterize the normal vector of the centerline of the stereo target contained in another frame of point cloud data. cosε can be used to characterize the cosine value of a set angle. Since the smaller the angle, the larger cosε is, the cosine value of the angle between the centerline of the stereo target contained in one frame of point cloud data and the centerline of the stereo target contained in the other frame of point cloud data needs to be greater than cosε.

[0094] Using the above formula, if the server determines that the distance between any point on the center line of the stereo target contained in one frame of point cloud data and the center line of the stereo target contained in the other frame of point cloud data is less than a set distance, and / or if it determines that the angle between the center line of the stereo target contained in one frame of point cloud data and the center line of the stereo target contained in the other frame of point cloud data is less than a set angle, then the two stereo targets matched in the two frames of point cloud data are obtained by reflection from the same obstacle.

[0095] In practical applications, since the matching results differ across rounds, the server needs to determine the quality of the matching results for each round. Based on this, the server can determine the quality of the matching results for each round by analyzing the number of matching laser points of a specified target object that appear in the two frames of point cloud data for each round.

[0096] In the embodiments of this specification, for any two paired point cloud data frames, the server can match the laser points of a specified target object contained in these two point cloud data frames to determine the number of matching laser points of the specified target object in these two point cloud data frames. Then, it determines the round with the largest number of matching laser points of the specified target object in these two point cloud data frames, and decides to align the laser points of the specified target object contained in these two point cloud data frames.

[0097] It should be noted that when the number of laser points matching the specified target in the two frames of point cloud data approaches a certain value, the server can redetermine the set distance and set angle based on the matching specified target in the two frames of point cloud data, so as to make the relative pose between the two frames of point cloud data more accurate.

[0098] In practical applications, the more matching laser points of the specified target object are in these two frames of point cloud data, the more accurate the relative pose between the two frames of point cloud data will be. Based on this, the server can determine a more accurate relative pose between the two frames of point cloud data.

[0099] In the embodiments of this specification, the server can construct several linear equations based on the specified target objects that match in the two frames of point cloud data that meet the preset matching conditions, so as to determine the corresponding relative pose between the two frames of point cloud data.

[0100] If the specified target objects include planar targets, since there is only one dimension (height) constraint between the laser points on one planar target object and the plane corresponding to another planar target object, and the normal vectors corresponding to the two planar targets have constraints in three directions, the server can determine that a planar target object composed of n laser points corresponds to n+3 linear equations.

[0101] If the specified target object includes a three-dimensional target object, since each laser point on the centerline of one three-dimensional target object has a constraint relationship in two dimensions (longitude and latitude) to the centerline of another three-dimensional target object, and the normal vectors corresponding to the two three-dimensional target objects have a constraint relationship in three directions, the server can determine that a three-dimensional target object composed of n laser points corresponds to 2n+3 linear equations.

[0102] Furthermore, the server can directly determine the distance between each laser point corresponding to one 3D target and each laser point of another 3D target. Therefore, there are constraints in three dimensions (longitude, latitude, and altitude) between each laser point of one 3D target and each laser point of another 3D target. Additionally, the normal vectors corresponding to the two 3D targets have constraints in three directions. Based on this, the server can determine that a 3D target composed of n laser points corresponds to 3n+3 linear equations.

[0103] As can be seen from the above process, the server can construct several linear equations based on these two frames of point cloud data to determine the relative pose between them. The relative pose mentioned here can refer to the rigid body transformation matrix. The server can use Singular Value Decomposition (SVD) to solve for the relative pose of the specified device when acquiring these two frames of point cloud data.

[0104] S104: Construct a high-precision map based on the relative pose between any two paired point cloud data frames and the point cloud data collected by the designated device for each frame.

[0105] In the embodiments of this specification, the server can construct a high-precision map based on the relative pose between any two paired point cloud data frames and the point cloud data of each frame collected by a specified device.

[0106] Furthermore, the server can optimize the pose used by the specified device when acquiring each frame of point cloud data based on the relative pose between any two paired point cloud data frames, thus obtaining the optimized pose for each frame of point cloud data acquired by the specified device. Secondly, the server can construct a high-precision map based on the optimized pose and each frame of point cloud data acquired by the specified device.

[0107] Specifically, the server can optimize the pose used by the specified device when collecting each frame of point cloud data by using the least squares method based on the relative pose between any two paired point cloud data frames, thus obtaining the optimized pose of each frame of point cloud data collected by the specified device.

[0108] In practical applications, the trajectory of a designated device collecting point cloud data is typically a closed loop, and it will travel along the same trajectory multiple times, collecting point cloud data from the same trajectory repeatedly. Based on this, the server can optimize the device's determined pose by considering both the relative pose between two frames of point cloud data collected multiple times at similar locations or times, and the pose corresponding to each frame of point cloud data collected multiple times at similar locations or times. In other words, the optimization uses both relative pose error and pose error as constraints to obtain the optimized, accurate pose.

[0109] In the embodiments of this specification, the server can determine the overlap between two frames of point cloud data collected multiple times by a specified device at similar locations or at similar times. Based on the overlap between the two frames of point cloud data, the server determines the confidence level corresponding to these two frames of point cloud data, wherein a higher overlap corresponds to a higher confidence level.

[0110] Furthermore, in the embodiments of this specification, the server can determine the pose of a specified device by combining the pose determined by the positioning data collected by the specified device. The positioning data mentioned here can refer to combined inertial navigation data obtained through the inertial navigation system and satellite positioning system set on the specified device, or GPS data, etc., which are used for positioning of unmanned equipment.

[0111] In practical applications, a designated device may experience poor signal strength during the data acquisition process. Therefore, the server can determine the confidence level of the positioning data based on the number of satellites receiving satellite signals from the designated device. The more satellites, the higher the confidence level of the positioning data.

[0112] Based on this, the server can determine the pose of the specified device when acquiring each frame of point cloud data, according to the confidence levels of the two point cloud data frames, the confidence levels of the positioning data, and the two point cloud data frames themselves. Then, the server can construct a high-precision map based on each frame of point cloud data and the pose of the specified device when acquiring each frame of point cloud data.

[0113] As can be seen from the above process, this method can perform semantic recognition on multiple frames of point cloud data to identify the laser points of at least one specified target object from the frame. The laser points of the specified target object contained in any two frames of point cloud data are aligned, and the relative pose between the two frames is determined based on the pose constraints corresponding to the target object categories involved in these two frames, as well as the aligned two frames of point cloud data, thereby constructing a high-precision map. Therefore, this method does not require the use of a Global Positioning System (GPS) and Inertial Measurement Unit (INS) to determine the pose of a specified device, which can improve the accuracy of the high-precision map constructed by the specified device when the signal is poor or absent.

[0114] The above describes a method for constructing a map according to one or more embodiments of this specification. Based on the same idea, this specification also provides a corresponding apparatus for constructing a map, such as... Figure 4 As shown.

[0115] Figure 4 A schematic diagram of a map-building apparatus provided in this specification includes:

[0116] The identification module 400 is used to perform semantic recognition on the point cloud data of multiple frames, so as to identify at least one laser point of a specified target object from the point cloud data of the frame.

[0117] Alignment module 402 is used to align the laser points of the specified target object contained in any two pairs of point cloud data, and determine the relative pose between the two point cloud data based on the pose constraints corresponding to the target object category involved in the two point cloud data and the aligned two point cloud data.

[0118] The construction module 404 is used to construct a high-precision map based on the relative pose between any two paired point cloud data frames and the point cloud data of each frame collected by the specified device.

[0119] Optionally, the identification module 400 is specifically used for the designated target object, which includes: a planar target object;

[0120] For the point cloud data in this frame, determine the spatial position of each laser point contained in the point cloud data in this frame and the normal vector of each laser point in the frame in space. Laser points whose spatial distance is less than a set distance and whose angle between normal vectors is less than a set angle are identified as laser points of the planar target.

[0121] Optionally, the identification module 400 is specifically used to specify that the designated target object includes: a three-dimensional target object;

[0122] For each frame of point cloud data, each point cloud cluster is identified from the point cloud data of that frame. If the spatial angle of the point cloud cluster in the point cloud data of that frame falls within the set angle range, the laser points contained in the point cloud cluster are taken as the laser points corresponding to the identified three-dimensional target.

[0123] Optionally, the alignment module 402 is specifically used to, for any two paired point cloud data frames, determine whether the laser points of a specified target object contained in one of the two point cloud data frames satisfy a preset matching condition with the laser points of a specified target object contained in the other point cloud data frame. If it is determined that the matching condition is satisfied, perform multiple rounds of matching on the laser points of the specified target object contained in the two point cloud data frames, and align the laser points of the specified target object contained in the two point cloud data frames based on the pose relationship corresponding to the two point cloud data frames calculated when the number of laser point matches is the maximum in the multiple rounds of matching.

[0124] Optionally, the alignment module 402 is specifically used to, when the specified target object is a planar target object, determine that the matching condition is satisfied if, when it is determined that the distance between the position of any laser point of the planar target object contained in one frame of point cloud data and the plane containing the laser point of the planar target object contained in the other frame of point cloud data is less than a set distance, and / or if the angle between the normal vector of the plane containing the laser point of the planar target object contained in one frame of point cloud data and the normal vector of the plane containing the laser point of the planar target object contained in the other frame of point cloud data is less than a set angle.

[0125] Optionally, the alignment module 402 is specifically used to, when the specified target object is a three-dimensional target object, determine that the matching condition is met if, when it is determined that, any point on the center line corresponding to the three-dimensional target object contained in one frame of point cloud data is less than a set distance, and / or if it is determined that the angle between the center line corresponding to the three-dimensional target object contained in one frame of point cloud data and the center line corresponding to the three-dimensional target object contained in the other frame of point cloud data is less than a set angle, the matching condition is met.

[0126] Optionally, the construction module 404 is specifically used to optimize the pose on which the designated device collects each frame of point cloud data based on the relative pose between any two paired point cloud data frames, to obtain the optimized pose of the designated device collecting each frame of point cloud data, and to construct a high-precision map based on the optimized pose and each frame of point cloud data collected by the designated device.

[0127] This specification also provides a computer-readable storage medium storing a computer program that can be used to execute the above-described... Figure 1 This provides a method for building maps.

[0128] This instruction manual also provides Figure 5 One of the corresponding Figure 1 A schematic diagram of the structure of an electronic device. (e.g.) Figure 5 At the hardware level, the electronic device includes a processor, internal bus, network interface, memory, and non-volatile memory, and may also include other hardware required for the business operations. The processor reads the corresponding computer program from the non-volatile memory into memory and then runs it to achieve the above-mentioned functions. Figure 1 The method for constructing the map is described above. Of course, in addition to software implementation, this specification does not exclude other implementation methods, such as logic devices or a combination of hardware and software, etc. That is to say, the execution subject of the following processing flow is not limited to each logic unit, but can also be hardware or logic devices.

[0129] In the 1990s, improvements to a technology could be clearly distinguished as either hardware improvements (e.g., improvements to the circuit structure of diodes, transistors, switches, etc.) or software improvements (improvements to the methodology). However, with technological advancements, many methodological improvements today can be considered direct improvements to the hardware circuit structure. Designers almost always obtain the corresponding hardware circuit structure by programming the improved methodology into the hardware circuit. Therefore, it cannot be said that a methodological improvement cannot be implemented using hardware physical modules. For example, a Programmable Logic Device (PLD) (such as a Field Programmable Gate Array (FPGA)) is such an integrated circuit whose logic function is determined by the user programming the device. Designers can program and "integrate" a digital system onto a PLD themselves, without needing chip manufacturers to design and manufacture dedicated integrated circuit chips. Furthermore, nowadays, instead of manually manufacturing integrated circuit chips, this programming is mostly implemented using "logic compiler" software. Similar to the software compiler used in program development, the original code before compilation must be written in a specific programming language, called a Hardware Description Language (HDL). There are many HDLs, such as ABEL (Advanced Boolean Expression Language), AHDL (Altera Hardware Description Language), Confluence, CUPL (Cornell University Programming Language), HDCal, JHDL (Java Hardware Description Language), Lava, Lola, MyHDL, PALASM, and RHDL (Ruby Hardware Description Language). Currently, the most commonly used are VHDL (Very-High-Speed ​​Integrated Circuit Hardware Description Language) and Verilog. Those skilled in the art should understand that by simply performing some logic programming on the method flow using one of these hardware description languages ​​and programming it into an integrated circuit, the hardware circuit implementing the logical method flow can be easily obtained.

[0130] The controller can be implemented in any suitable manner. For example, it can take the form of a microprocessor or processor and a computer-readable medium storing computer-readable program code (e.g., software or firmware) executable by the (micro)processor, logic gates, switches, application-specific integrated circuits (ASICs), programmable logic controllers, and embedded microcontrollers. Examples of controllers include, but are not limited to, the following microcontrollers: ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20, and Silicon Labs C8051F320. A memory controller can also be implemented as part of the control logic of the memory. Those skilled in the art will also recognize that, in addition to implementing the controller in purely computer-readable program code form, the same functionality can be achieved by logically programming the method steps to make the controller take the form of logic gates, switches, application-specific integrated circuits, programmable logic controllers, and embedded microcontrollers. Therefore, such a controller can be considered a hardware component, and the means included therein for implementing various functions can also be considered as structures within the hardware component. Alternatively, the means for implementing various functions can be considered as both software modules implementing the method and structures within the hardware component.

[0131] The systems, devices, modules, or units described in the above embodiments can be implemented by computer chips or entities, or by products with certain functions. A typical implementation device is a computer. Specifically, a computer can be, for example, a personal computer, laptop computer, cellular phone, camera phone, smartphone, personal digital assistant, media player, navigation device, email device, game console, tablet computer, wearable device, or any combination of these devices.

[0132] For ease of description, the above devices are described in terms of function, divided into various units. Of course, in implementing this specification, the functions of each unit can be implemented in one or more software and / or hardware components.

[0133] Those skilled in the art will understand that embodiments of this specification can be provided as methods, systems, or computer program products. Therefore, this specification may take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, this specification may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.

[0134] This specification is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this specification. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create a machine for implementing the flowchart illustrations and / or block diagrams. Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.

[0135] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.

[0136] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.

[0137] In a typical configuration, a computing device includes one or more processors (CPU), input / output interfaces, network interfaces, and memory.

[0138] Memory may include non-persistent storage in computer-readable media, such as random access memory (RAM) and / or non-volatile memory, such as read-only memory (ROM) or flash RAM. Memory is an example of computer-readable media.

[0139] Computer-readable media includes both permanent and non-permanent, removable and non-removable media that can store information using any method or technology. Information can be computer-readable instructions, data structures, modules of programs, or other data. Examples of computer storage media include, but are not limited to, phase-change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, CD-ROM, digital versatile optical disc (DVD) or other optical storage, magnetic tape, magnetic magnetic disk storage or other magnetic storage devices, or any other non-transferable medium that can be used to store information accessible by a computing device. As defined herein, computer-readable media does not include transient computer-readable media, such as modulated data signals and carrier waves.

[0140] It should also be noted that the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.

[0141] Those skilled in the art will understand that the embodiments of this specification can be provided as methods, systems, or computer program products. Therefore, this specification may take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, this specification may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.

[0142] This specification can be described in the general context of computer-executable instructions that are executed by a computer, such as program modules. Generally, program modules include routines, programs, objects, components, data structures, etc., that perform a specific task or implement a specific abstract data type. This specification can also be practiced in distributed computing environments, where tasks are performed by remote processing devices connected via a communication network. In distributed computing environments, program modules can reside in local and remote computer storage media, including storage devices.

[0143] The various embodiments in this specification are described in a progressive manner. Similar or identical parts between embodiments can be referred to interchangeably. Each embodiment focuses on describing the differences from other embodiments. In particular, the system embodiments are basically similar to the method embodiments, so the description is relatively simple; relevant parts can be referred to the descriptions in the method embodiments.

[0144] The above description is merely an embodiment of this specification and is not intended to limit this specification. Various modifications and variations can be made to this specification by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this specification should be included within the scope of the claims of this specification.

Claims

1. A method for constructing a map, characterized in that, include: For multi-frame point cloud data, semantic recognition is performed on the frame point cloud data to identify at least one laser point of a specified target object from the frame point cloud data; For any two paired point cloud data frames, the laser points of the specified target objects contained in the two point cloud data frames are aligned. Based on the pose constraints corresponding to the target object categories involved in the two point cloud data frames, and the aligned two point cloud data frames, the relative pose between the two point cloud data frames is determined. Different categories of target objects correspond to different numbers of linear constraint equations. The linear constraint equations are constructed based on the spatial dimension constraints and normal vector direction constraints of the laser points of the target object, and the relative pose is determined by singular value decomposition. The target objects include planar target objects and three-dimensional target objects with corresponding center lines. A high-precision map is constructed based on the relative pose between any two paired point cloud data frames and the point cloud data of each frame collected by a specified device.

2. The method as described in claim 1, characterized in that, The designated target object is the planar target object; For multi-frame point cloud data, semantic recognition is performed on the frame point cloud data to identify at least one laser point of a specified target object from the frame point cloud data; For each frame of point cloud data, semantic recognition is performed on that frame of point cloud data to identify at least one laser point of a target object from that frame of point cloud data, specifically including: For this frame of point cloud data, determine the spatial location of each laser point contained in the frame of point cloud data and the normal vector of each laser point in space; Laser points whose spatial distance is less than a set distance and whose angle between normal vectors is less than a set angle are identified as laser points of the planar target.

3. The method as described in claim 1, characterized in that, The designated target object is the three-dimensional target object; For multi-frame point cloud data, semantic recognition is performed on each frame of point cloud data to identify at least one laser point of a specified target object from the point cloud data, specifically including: For each frame of point cloud data, identify each point cloud cluster from that frame of point cloud data; If a point cloud cluster falls within a set angle range in the spatial angle of the point cloud data frame, the laser points contained in the point cloud cluster will be used as the laser points corresponding to the identified three-dimensional target.

4. The method as described in claim 1, characterized in that, For any two paired point cloud data frames, align the laser points of the specified target object contained in these two point cloud data frames, specifically including: For any two pairs of point cloud data, determine whether the laser points of a specified target object contained in one of the two point cloud data frames satisfy the preset matching conditions with the laser points of the specified target object contained in the other point cloud data frame. If the matching conditions are met, the laser points of the specified target object contained in these two frames of point cloud data are matched in multiple rounds. Based on the pose relationship between the two frames of point cloud data calculated when the number of laser point matches is the maximum in the multi-round matching, the laser points of the specified target object contained in the two frames of point cloud data are aligned.

5. The method as described in claim 4, characterized in that, When the designated target is a planar target, it is determined whether the laser points of the designated target contained in one frame of point cloud data satisfy a preset matching condition with the laser points of the designated target contained in the other frame of point cloud data. Specifically, this includes: If it is determined that the position of any laser point of a planar target object contained in one frame of point cloud data is less than a set distance from the plane containing the laser point of the planar target object contained in the other frame of point cloud data, and / or If the angle between the normal vector of the plane containing the laser point of the planar target object in one frame of point cloud data and the normal vector of the plane containing the laser point of the planar target object in the other frame of point cloud data is less than a set angle, then the matching condition is satisfied.

6. The method as described in claim 4, characterized in that, When the designated target is a three-dimensional target, it is determined whether the laser points of the designated target contained in one frame of point cloud data satisfy a preset matching condition with the laser points of the designated target contained in the other frame of point cloud data. Specifically, this includes: If it is determined that any point on the center line corresponding to the stereoscopic target object contained in one of the two point cloud data frames is less than a set distance from the center line corresponding to the stereoscopic target object contained in the other point cloud data frame, and / or If it is determined that the angle between the center line of the stereo target object contained in one frame of point cloud data and the center line of the stereo target object contained in the other frame of point cloud data is less than a set angle, then the matching condition is satisfied.

7. The method as described in claim 1, characterized in that, A high-precision map is constructed based on the relative pose between any two paired point cloud data frames and the point cloud data of each frame collected by a specified device, specifically including: Based on the relative pose between any two paired point cloud data frames, the pose on which the specified device collects each frame of point cloud data is optimized to obtain the optimized pose of the specified device collecting each frame of point cloud data. A high-precision map is constructed based on the optimized pose and each frame of point cloud data collected by the designated device.

8. An apparatus for constructing a map, characterized in that, include: The identification module is used to perform semantic recognition on a frame of point cloud data for multiple frames of point cloud data, so as to identify at least one laser point of a specified target object from the frame of point cloud data. The alignment module is used to align the laser points of a specified target object contained in any two paired point cloud data frames. Based on the pose constraints corresponding to the target object categories involved in the two point cloud data frames, and the aligned two point cloud data frames, the module determines the relative pose between the two point cloud data frames. Different target object categories correspond to different numbers of linear constraint equations. The linear constraint equations are constructed based on the spatial dimension constraints and normal vector direction constraints of the laser points of the target object, and the relative pose is determined by singular value decomposition. The target objects include planar target objects and three-dimensional target objects with corresponding center lines. The construction module is used to build a high-precision map based on the relative pose between any two paired point cloud data frames and the point cloud data of each frame collected by a specified device.

9. A computer-readable storage medium, characterized in that, The storage medium stores a computer program, which, when executed by a processor, implements the method described in any one of claims 1 to 7.

10. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, When the processor executes the program, it implements the method described in any one of claims 1 to 7.