Pose graph generation method, high-definition map generation method and device
By detecting closed loops and evaluating the accuracy of edges during the point cloud stitching process and optimizing the pose graph, the problem of large relative pose errors in point cloud data is solved, and the efficiency and accuracy of high-precision map generation are improved.
Patent Information
- Application Number
- CN202210777156.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-06-30
- Publication Date
- 2025-10-10
- Estimated Expiration
- 2042-06-30
AI Technical Summary
When existing technologies generate high-precision maps, the relative pose error of point cloud data is large, resulting in problems such as point cloud ghosting in the generated maps, and a large amount of computing resources are occupied.
By splicing the source point cloud and the target point cloud, edges representing relative poses are generated, and closed loops are detected in the local pose graph. The accuracy of the edges is evaluated based on the sum of the relative poses of multiple edges in the closed loop, and the pose graph is optimized to improve accuracy.
It reduces the amount of calculation, saves computing resources, improves the accuracy of pose graphs and high-precision maps, and reduces point cloud ghosting.
Smart Images

Figure CN115147561B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present disclosure relates to automatic driving and intelligent transportation technology. More specifically, the present disclosure provides a pose graph generation method, a map generation method, an apparatus, an electronic device and a storage medium. BACKGROUND
[0002] In the field of automatic driving, a special map for an automatic driving vehicle can be referred to as a high-precision map, which can also be referred to as a high-accuracy map. The high-precision map can be generated by using point cloud data collected by a point cloud collection device on a vehicle at different times. The high-precision map has accurate vehicle position information and rich road element data information, which can help the vehicle to predict complex road information such as slope, curvature, heading, etc., and better avoid potential risks. SUMMARY
[0003] The present disclosure provides a pose graph generation method, a map generation method, an apparatus, a device and a storage medium.
[0004] According to a first aspect, a pose graph generation method is provided, which comprises: in response to a request for splicing a source point cloud and a target point cloud, connecting source points in the source point cloud and target points in the target point cloud one by one, generating edges for representing relative poses between the source points and the target points, and adding the source points, the target points and the edges to a local pose graph; in response to each edge being generated, determining at least one closed loop containing the edge in the local pose graph, and determining an evaluation value of each edge in all closed loops according to respective relative poses of the multiple edges in each closed loop, the evaluation value being used to indicate accuracy of the relative pose represented by the edge; in response to the source point cloud being spliced with the target point cloud, determining the local pose graph as a complete pose graph; for each edge in the complete pose graph, determining accuracy of the edge according to the evaluation value of the edge; and optimizing the complete pose graph according to the accuracy.
[0005] According to a second aspect, a map generation method is provided, which comprises: obtaining a pose graph; and generating a map according to the pose graph; the pose graph is one of a local pose graph, a complete pose graph and an optimized complete pose graph generated according to the pose graph generation method described above.
[0006] According to a third aspect, a map generation device is provided, which includes: a first generation module for connecting source points in the source point cloud and target points in the target point cloud one by one in response to a request for splicing a source point cloud and a target point cloud, generating edges for representing the relative pose between the source point and the target point, and adding the source point, the target point and the edge to a local pose graph; a first determination module for determining at least one closed loop containing the edge in the local pose graph in response to each generated edge, and determining an evaluation value of each edge in all closed loops based on the relative poses of multiple edges in each closed loop, the evaluation value being used to indicate the accuracy of the relative pose represented by the edge; a second generation module for determining the local pose graph as a complete pose graph in response to the completion of splicing the source point cloud and the target point cloud; a second determination module for determining the accuracy of each edge in the complete pose graph based on the evaluation value of the edge; and an optimization module for optimizing the complete pose graph based on the accuracy.
[0007] According to a fourth aspect, a map generation device is provided, which includes: an acquisition module for acquiring a pose graph; and a third generation module for generating a map based on the pose graph; the pose graph is one of a local pose graph, a complete pose graph, and an optimized complete pose graph generated by the above-mentioned pose graph generation device.
[0008] According to a fifth aspect, an electronic device is provided, comprising: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to execute the method provided according to the present disclosure.
[0009] According to a sixth aspect, a non-transitory computer-readable storage medium storing computer instructions is provided, wherein the computer instructions are used to cause a computer to execute the method provided according to the present disclosure.
[0010] According to a seventh aspect, a computer program product is provided, comprising a computer program, which implements the method provided according to the present disclosure when executed by a processor.
[0011] It should be understood that the contents described in this section are not intended to identify the key or important features of the embodiments of the present disclosure, nor are they intended to limit the scope of the present disclosure. Other features of the present disclosure will become readily understood through the following description. BRIEF DESCRIPTION OF THE DRAWINGS
[0012] The accompanying drawings are provided to facilitate a better understanding of the present invention and do not constitute a limitation of the present disclosure.
[0013] Figure 1is an exemplary scene schematic diagram to which a pose graph generation method and a map generation method and device according to one embodiment of the present disclosure can be applied;
[0014] Figure 2 is a flowchart of a pose graph generation method according to one embodiment of the present disclosure;
[0015] Figure 3 is a schematic diagram of a method for determining an evaluation value of an edge according to one embodiment of the present disclosure;
[0016] Figure 4A is a relationship diagram of a translation error of a relative pose and an accuracy of an edge according to one embodiment of the present disclosure;
[0017] Figure 4B is a relationship diagram of a rotation error of a relative pose and an accuracy of an edge according to one embodiment of the present disclosure;
[0018] Figure 5 is a flowchart of a map generation method according to one embodiment of the present disclosure;
[0019] Figure 6 is a block diagram of a pose graph generation device according to one embodiment of the present disclosure;
[0020] Figure 7 is a block diagram of a map generation device according to one embodiment of the present disclosure;
[0021] Figure 8 is a block diagram of an electronic device for a pose graph generation method and / or a map generation method according to one embodiment of the present disclosure. DETAILED DESCRIPTION
[0022] Exemplary embodiments of the present disclosure are described below with reference to the accompanying drawings, which include various details of the embodiments of the present disclosure to help in understanding, and should be considered as merely exemplary. Thus, those of ordinary skill in the art will recognize that various changes and modifications of the embodiments described herein can be made without departing from the scope and spirit of the present disclosure. Also, for the sake of brevity and clarity, descriptions of well-known functions and constructions are omitted from the following description.
[0023] In the technical solutions of the present disclosure, the collection, storage, use, processing, transmission, provision and disclosure of user personal information involved in the technical solutions comply with relevant laws and regulations and do not violate public order and good customs.
[0024] In the technical solutions of the present disclosure, the authorization or consent of the user is obtained before the user's personal information is acquired or collected.
[0025] Figure 1is a schematic diagram of an exemplary scenario to which the map generation method and apparatus according to one embodiment of the present disclosure can be applied. It should be noted that Figure 1 The system architecture shown is merely an example of a system architecture to which embodiments of the present disclosure can be applied, to help those skilled in the art understand the technical content of the present disclosure, but does not mean that embodiments of the present disclosure cannot be used in other devices, systems, environments or scenarios.
[0026] As shown in Figure 1 Embodiment 100 can include a road, an autonomous vehicle 110 driving on the road, an arrow road sign 120 in the road, and a point cloud collection device 111 located on the autonomous vehicle 110. The point cloud collection device 111 can include a LiDAR (Light Detection and Ranging) sensor, which can continuously emit a laser sensing beam during driving of the autonomous vehicle 110 to scan point cloud data of the surrounding environment. The point cloud is data recorded in the form of points, and each point can contain three-dimensional coordinates, color, reflectivity, etc. The coordinate system in which the three-dimensional coordinates of the point cloud are located can be referred to as the coordinate system of the point cloud collection device 111.
[0027] Since the autonomous vehicle 110 is in motion, the point cloud collection device 111 is also in motion, so that the coordinate system of the point cloud collection device 111 is changing, and thus the coordinate system of the point cloud collected by the point cloud collection device 111 at different times is also changing. The relative pose of the coordinate system of the point cloud collected at different times can be referred to as the relative pose of the point cloud at the above-mentioned different times. The relative poses of the point clouds collected at different times can be used to construct a pose graph, and the pose graph can be used to perform local or global mapping of a high-definition map.
[0028] Therefore, the accuracy of the relative pose between the point clouds at different times has a direct impact on the accuracy of the generated map, and if the relative pose has a large error, it can cause the generated high-definition map to have problems such as point cloud ghosting.
[0029] One method of determining the accuracy of the relative pose is to splice two frames of point clouds, and to determine the accuracy according to the relative pose error calculated from the splicing result, such as calculating the splicing residual, the number of inliers, the information entropy of the point cloud, etc. However, the data calculation amount is relatively large, and a large amount of computing resources are occupied.
[0030] Figure 2 is a flowchart of a pose graph generation method according to one embodiment of the present disclosure.
[0031] As shown in Figure 2 The pose graph generation method 200 can include operation S210 to operation S240.
[0032] In operation S210, in response to a request to stitch the source point cloud and the target point cloud, source points in the source point cloud and target points in the target point cloud are connected one by one, edges representing the relative poses between the source points and the target points are generated, and the source points, target points and edges are added to the local pose graph.
[0033] It can be understood that point cloud stitching is to stitch the source point cloud and the target point cloud. Specifically, for the points in the source point cloud (which can be called source points), the points that match the source points in the target point cloud (which can be called target points) are found. The change in posture between the source point and the target point is used as the relative posture of the source point and the target point, and the source point and the target point are stitched together according to the relative posture.
[0034] During the concatenation of the source and target point clouds, if a source point in the source point cloud matches a target point in the target point cloud, the source and target points are connected, generating an edge between them. This edge represents the relative pose between the source and target points. Matching source and target points are connected one by one, and the source, target, and edges are added to a local pose graph, which can reflect the trajectory of the autonomous vehicle.
[0035] It should be noted that the local pose graph initially only includes the first newly generated edge and the source and target points. Each time a new edge is generated, the new edge and its source and target points are added to the local pose graph, gradually completing the local pose graph. After the source and target point clouds are concatenated, the local pose graph can be determined to be complete.
[0036] In operation S220 , in response to each generated edge, at least one closed loop containing the edge is determined in the local pose graph, and an evaluation value of each edge in all closed loops is determined based on the relative poses of the multiple edges in each closed loop.
[0037] For example, in the process of splicing the source point cloud and the target point cloud, each time a pair of source point cloud and target point cloud is spliced, an edge representing the relative position between the source point cloud and the target point cloud is generated.
[0038] For example, each time a new edge is generated, all closed loops containing the new edge can be detected in the generated local pose graph. A closed loop can be understood as a path that starts from the source of the new edge and passes through multiple edges back to the source of the new edge. For example, a breadth-first traversal algorithm can be used to detect all closed loops containing the new edge.
[0039] It can be understood that for each closed loop, if the relative poses between the nodes in the closed loop are accurate, the sum of the relative poses of the nodes should be close to 0. Therefore, the accuracy of the relative poses represented by each edge in the closed loop can be evaluated based on the sum of the relative poses represented by each edge in the closed loop. For example, an evaluation value can be assigned to each edge based on the sum of the relative poses represented by each edge in the closed loop to obtain the evaluation value of each edge in the closed loop. Then, the evaluation value of each edge in all closed loops can be obtained. The evaluation value of each edge indicates the accuracy of the relative pose represented by the edge.
[0040] For example, for a new edge, New-edge, the closed loops containing it are detected as loop A, loop B, and loop C. For each closed loop, the evaluation value of each edge in the loop can be determined based on the sum of the relative poses of all edges in the loop. The following uses loop A as an example. Loops B and C are similar and are not described here.
[0041] For example, closed loop A includes a new edge New-edge, edge a1, and edge a2. The sum of the relative positions of the new edge New-edge, edge a1, and edge a2 can be calculated. If the sum of the relative positions is less than a first threshold (e.g., 0.1), an evaluation value can be assigned to the edge New-edge (e.g., if the initial evaluation value is 0, the evaluation value can be increased by 1). The evaluation values of edges a1 and a2 are also updated (e.g., the evaluation value of edge a1 is increased by 1 on the original basis, and the evaluation value of edge a2 is increased by 1 on the original basis). Similarly, the evaluation value of each edge in closed loops B and C can be determined.
[0042] For the new edge New-edge, the evaluation value of the new edge in closed loop A, the evaluation value in closed loop B, and the evaluation value in closed loop C can be added (or weighted summed) to obtain the evaluation value of the new edge New-edge in all closed loops detected this time. For edge a1, the evaluation value of edge a1 in closed loop A can be added to the original evaluation value of edge a1. If edge a1 also exists in closed loop B or closed loop C, the evaluation value of edge a1 in closed loop B or closed loop C can also be added to obtain the evaluation value of edge a1 in all closed loops detected this time. The process for edge a2 is similar to that for edge a1 and will not be repeated here.
[0043] In operation S230 , in response to the completion of stitching the source point cloud and the target point cloud, the local pose graph is determined as a complete pose graph.
[0044] For example, after the source and target point clouds are stitched together, a complete pose graph is obtained. Since each edge is continuously evaluated during the process of forming the complete pose graph from the local pose graphs, each edge in the complete pose graph has a final evaluation result.
[0045] In operation S240 , for each edge in the complete pose graph, the accuracy of the edge is determined according to the evaluation value of the edge.
[0046] For example, the final evaluation result for each edge in the complete pose graph can represent the accuracy of that edge. For example, the evaluation value can include positive and negative evaluation values. For each edge, each loop closure detection can assign a positive or negative evaluation value to the edge. In the complete pose graph, the accuracy of each edge can be comprehensively determined based on all positive and negative evaluation values for that edge.
[0047] In operation S250 , the complete pose graph is optimized based on accuracy.
[0048] For example, a threshold for accuracy can be set (e.g., 50%). Edges with an accuracy greater than the threshold have a smaller relative pose error, indicating that the source and target points connecting the edge are accurately matched. Edges with an accuracy not greater than the threshold have a larger relative pose error, indicating that the source and target points connecting the edge are not accurately matched. Edges with larger relative pose errors can be removed from the complete pose graph to optimize the pose graph.
[0049] In the process of generating a pose graph, the embodiments of the present disclosure detect all closed loops containing each new edge whenever a new edge is generated, and perform an accuracy evaluation on each edge in the closed loop. In the pose graph finally generated, the pose graph is optimized based on the accuracy of each edge. Compared with the optimization method of calculating matching residuals, this can reduce the amount of calculation and save computing resources.
[0050] It can be understood that each time a new edge is generated in the embodiment of the present disclosure, all closed loops containing the new edge are detected, and then the accuracy of the edge is evaluated based on the closed loops. Compared with the method of performing closed loop detection and accuracy evaluation after the source point cloud and the target point cloud are completely spliced together, the computing efficiency can be improved.
[0051] It can be understood that by optimizing the pose graph according to the accuracy of the edges, the relative pose represented by each edge in the optimized pose graph has a higher accuracy. Therefore, the accuracy of the pose graph is higher, which in turn can improve the accuracy of the high-precision map.
[0052] According to an embodiment of the present disclosure, operation S220 includes, in response to the sum of the relative poses of the plurality of edges in the closed loop being less than a first threshold, increasing the positive evaluation value of each edge in the closed loop by 1. In response to the sum of the relative poses of the plurality of edges in the closed loop being greater than a second threshold, increasing the negative evaluation value of each edge in the closed loop by 1.
[0053] For example, a first threshold may be set for the sum of the relative postures of the closed loop to determine whether the relative posture of each edge of the closed loop is highly accurate, and a second threshold may be set to determine whether the relative posture of each edge in the closed loop has a large error.
[0054] For example, the relative posture may include the translation distance and the rotation angle, the sum of the relative postures may include the sum of the translation distances and the sum of the rotation angles, the relative posture may be represented by a transformation matrix (including a translation matrix and a rotation matrix), and the sum of the relative postures may be obtained by multiplying the transformation matrices.
[0055] Since the relative pose may include a translation distance and a rotation angle, the first threshold may include a first translation threshold and a first rotation threshold. The first translation threshold may be the product of the first distance and the number of edges (edge_count) in the closed loop (e.g., 0.1 meters * edge_count), and the first rotation threshold may be the product of the first angle and the number of edges (edge_count) in the closed loop (e.g., 0.1 degrees * edge_count).
[0056] The second threshold may include a second translation threshold and a second rotation threshold, wherein the second translation threshold may be the product of the second distance and the number of edges (edge_count) in the closed loop (e.g., 0.4 meters * edge_count), and the second rotation threshold may be the product of the second angle and the number of edges (edge_count) in the closed loop (e.g., 0.3 degrees * edge_count).
[0057] The method for determining the evaluation value of an edge provided by the present disclosure is described in detail below with reference to specific examples.
[0058] Figure 3 is a schematic diagram of a method for determining an evaluation value of an edge according to an embodiment of the present disclosure.
[0059] like Figure 3 As shown, the pose graph 300 may be a local pose graph, including node a, node b, node c, node d, and edges 301 - 306 .
[0060] For example, for each edge, a breadth-first traversal algorithm can be used to detect all closed loops containing that edge. Taking edge 301 as an example, three closed loops containing edge 301 are detected: the first closed loop: node a - edge 301 - edge 302 - edge 304 - node a; the second closed loop: node a - edge 301 - edge 302 - edge 303 - edge 306 - node a; and the third closed loop: node a - edge 301 - edge 305 - edge 306 - node a.
[0061] Among them, for the first closed loop, the sum of the relative postures of edge 301, edge 302 and edge 304 can be calculated, including the sum of the translation distances and the sum of the rotation angles. If the sum of the translation distances of the first closed loop is less than the first translation threshold (for example, 0.1 meters * edge_count) or the sum of the rotation angles is less than the first rotation threshold (for example, 0.1 degrees * edge_count), then it can be considered that the sum of the relative postures of all edges in the first closed loop is close to 0, and it can be considered that the relative postures of all edges in the first closed loop are relatively accurate. Therefore, the positive evaluation value (good_count) of each edge in the first closed loop can be increased by 1 (for example, the positive evaluation values of edge 301, edge 302 and edge 304 are all increased by 1, wherein the initial positive evaluation value of each edge is 0).
[0062] If the sum of the translation distances of the first closed loop is greater than the second translation threshold (e.g., 0.4 meters * edge_count) or the sum of the rotation angles is greater than the second rotation threshold (e.g., 0.3 degrees * edge_count), then the sum of the relative poses of all edges in the first closed loop can be considered to be relatively large, and the relative poses of all edges in the first closed loop can be considered to be inaccurate. Therefore, the negative evaluation value (bad_count) of each edge in the first closed loop can be increased by 1 (e.g., the negative evaluation values of edges 301, 302, and 304 can all be increased by 1, where the initial negative evaluation value of each edge is 0).
[0063] If the sum of the translation distances of the first closed loop is between the first translation threshold and the second translation threshold, and the sum of the rotation angles of the first closed loop is between the first rotation threshold and the second rotation threshold, no operation needs to be performed on each edge in the first closed loop.
[0064] For the second closed loop and the third closed loop, a similar method as above may be adopted to determine the evaluation value of each edge in the second closed loop and the third closed loop.
[0065] Similarly, for the case where other edges are new edges, the method of detecting the closed loop and the method of assigning an evaluation value to each edge in the closed loop can refer to the specific implementation method of the above-mentioned edge 301 being a new edge.
[0066] like Figure 3 As shown, in addition to the first, second, and third closed loops, pose graph 300 also includes a fourth and fifth closed loops. The fourth closed loop is formed by edges 302, 303, and 305, and the fifth closed loop is formed by edges 304, 303, and 306. The start (end) node of the fifth and sixth closed loops depends on which edge is the new edge.
[0067] According to an embodiment of the present disclosure, after obtaining a complete pose graph, the sum of the positive evaluation values (e.g., the number of good_counts, as a positive evaluation result) and the sum of the negative evaluation values (e.g., the number of bad_counts, as a negative evaluation result) for each edge can be determined. The accuracy of the edge can be determined based on the difference between the positive and negative evaluation results.
[0068] For example, if the number of good_count of an edge is greater than the number of bad_count, it can be determined that the relative pose of the edge is accurate; if the number of good_count is not greater than the number of bad_count, it can be determined that the relative pose of the edge is inaccurate.
[0069] Figures 4A-4B is a graph showing the relationship between the true error of the relative pose and the accuracy of the edge according to one embodiment of the present disclosure.
[0070] Figure 4A is a graph showing the relationship between the translation error of the relative pose and the accuracy of the edge according to one embodiment of the present disclosure.
[0071] like Figure 4A As shown, the horizontal axis of Example 401 is the difference between the number of good loops and bad loops in the closed loop where the relative posture is located (good_loops_count-bad_loops_count), and the vertical axis is the relative posture translation error (translation error) calculated using the true value. Among them, the number of good loops in the closed loop where the relative posture is located, good_loops_count, is equal to the number of good_count of the relative posture, and the number of bad loops in the closed loop where the relative posture is located, bad_loops_count, is equal to the number of bad_count of the relative posture.
[0072] like Figure 4A As shown in , the number of relative poses where bad_loops_count is greater than good_loops_count is small, for example, Figure 4A There are fewer relative poses in the left half of , and the translation errors of these relative poses are relatively large (for example, greater than 2.5 meters). Most of the relative poses are distributed in Figure 4A The right half of the image (good_loops_count is greater than bad_loops_count) shows that the translation error of this type of relative pose is relatively small (for example, less than 0.5 meters).
[0073] Figure 4B is a graph showing the relationship between the rotation error of the relative pose and the accuracy of the edge according to one embodiment of the present disclosure.
[0074] likeFigure 4B As shown, in Example 402, the horizontal axis is the difference between the number of good loops and bad loops in the closed loop where the relative posture is located (good_loops_count-bad_loops_count), and the vertical axis is the relative posture rotation error (rotation error) calculated using the true value. The number of good loops in the closed loop where the relative posture is located (good_loops_count) is equal to the number of good_counts of the relative posture, and the number of bad loops in the closed loop where the relative posture is located (bad_loops_count) is equal to the number of bad_counts of the relative posture.
[0075] like Figure 4B As shown in , the number of relative poses where bad_loops_count is greater than good_loops_count is small, for example, Figure 4B There are fewer relative poses in the left half of , and the rotation errors of these relative poses are relatively large (for example, greater than 2 degrees). Most of the relative poses are distributed in Figure 4B The right half of the image (good_loops_count is greater than bad_loops_count) has a relatively small rotation error (e.g., less than 1 degree) in this type of relative pose.
[0076] The disclosed embodiment evaluates the accuracy of each edge through closed-loop detection and the use of the sum of relative poses. It can evaluate the accuracy of the relative pose in the point cloud stitching process when the true value (the actual relative pose) is unknown, thereby improving the accuracy of the pose graph.
[0077] Figure 5 is a flowchart of a map generation method according to an embodiment of the present disclosure.
[0078] like Figure 5 As shown, the map generating method 500 includes operations S510 to S520.
[0079] In operation S510 , a pose graph is acquired.
[0080] In operation S520 , a map is generated according to the pose graph.
[0081] The pose graph may be one of a local pose graph, a complete pose graph, and an optimized complete pose graph generated by the pose graph generation method, and the map may be a high-precision map for an autonomous vehicle. A local high-precision map may be constructed using the local pose graph, and a complete high-precision map may be constructed using the complete pose graph.
[0082] For example, the source point cloud and target point cloud are data collected by the autonomous vehicle at different times regarding surrounding objects, including color information and location information (such as coordinates and distance to surrounding objects). Therefore, by splicing the source point cloud and target point cloud, we can obtain the real scene of the autonomous vehicle.
[0083] Deep learning models can be used to identify or classify elements from point cloud data. For example, traffic lights and signboards can be identified or classified. By identifying various elements from the point cloud, a map can be constructed. During the map construction process, manual or automatic annotation and data correction can be performed to improve map accuracy.
[0084] After the source and target point clouds are stitched together, a pose graph is generated, which reflects the motion trajectory of the autonomous vehicle. Therefore, a high-precision map for the autonomous vehicle can be generated based on the identified elements and the generated pose graph.
[0085] Figure 6 4 is a block diagram of a pose graph generating apparatus according to an embodiment of the present disclosure.
[0086] like Figure 6 As shown, the pose graph generating device 600 includes a first generating module 601 , a first determining module 602 , a second generating module 603 , a second determining module 604 and an optimizing module 605 .
[0087] The first generation module 601 is used to respond to a request for splicing the source point cloud and the target point cloud, connect the source points in the source point cloud and the target points in the target point cloud one by one, generate edges for representing the relative pose between the source points and the target points, and add the source points, target points and edges to the local pose graph.
[0088] The first determination module 602 is used to determine at least one closed loop containing the edge in the local pose graph in response to each edge generated, and determine the evaluation value of each edge in all closed loops based on the relative poses of multiple edges in each closed loop. The evaluation value is used to indicate the accuracy of the relative pose represented by the edge.
[0089] The second generating module 603 is configured to determine the local pose graph as a complete pose graph in response to completion of the splicing of the source point cloud and the target point cloud.
[0090] The second determination module 604 is configured to determine the accuracy of each edge in the complete pose graph according to the evaluation value of the edge.
[0091] The optimization module 605 is used to optimize the complete pose graph based on accuracy.
[0092] According to an embodiment of the present disclosure, the first determining module 602 includes a first determining unit and a second determining unit.
[0093] The first determining unit is configured to determine, for each closed loop, an evaluation value of each edge in the closed loop according to the sum of relative positions of multiple edges in the closed loop.
[0094] The second determining unit is configured to determine the evaluation value of each edge in all closed loops according to the evaluation value of each edge in at least one closed loop.
[0095] The evaluation value includes a positive evaluation value and a negative evaluation value; the first determination unit includes a first evaluation subunit and a second evaluation subunit.
[0096] The first evaluation subunit is configured to increase the forward evaluation value of each edge in the closed loop by one in response to the sum of the relative positions of the plurality of edges in the closed loop being less than a first threshold.
[0097] The second evaluation subunit is configured to, in response to a sum of relative positions of multiple edges in the closed loop being greater than a second threshold, increase the negative evaluation value of each edge in the closed loop by one.
[0098] The relative posture includes a translation distance and a rotation angle, the first threshold includes a first translation threshold and a first rotation threshold, and the second threshold includes a second translation threshold and a second rotation threshold.
[0099] The sum of the relative postures of multiple edges in the closed loop is less than the first threshold, which includes: the sum of the translation distances of the multiple edges in the closed loop is less than the first translation threshold, or the sum of the rotation angles of the multiple edges in the closed loop is less than at least one of the first rotation threshold.
[0100] The sum of the relative postures of multiple edges in the closed loop is greater than the second threshold, including: the sum of the translation distances of the multiple edges in the closed loop is greater than the second translation threshold, or the sum of the rotation angles of the multiple edges in the closed loop is greater than at least one of the second rotation threshold.
[0101] Among them, the first translation threshold is the product of the first distance and the number of edges in the closed loop, the first rotation threshold is the product of the first angle and the number of edges in the closed loop, the second translation threshold is the product of the second distance and the number of edges in the closed loop, and the second rotation threshold is the product of the second angle and the number of edges in the closed loop.
[0102] According to an embodiment of the present disclosure, the second determination module 604 is configured to determine, for each edge in the complete pose graph, the accuracy of the edge according to the difference between the positive evaluation value and the negative evaluation value of the edge.
[0103] Figure 7 is a block diagram of a map generating apparatus according to an embodiment of the present disclosure.
[0104] like Figure 7 As shown, the map generating device 700 includes an acquisition module 701 and a third generating module 702 .
[0105] The acquisition module 701 is used to obtain a pose graph.
[0106] The third generation module 702 is used to generate a map according to the pose graph.
[0107] The pose graph is one of a local pose graph, a complete pose graph, and an optimized complete pose graph generated by the pose graph generating device.
[0108] According to an embodiment of the present disclosure, the present disclosure also provides an electronic device, a readable storage medium, and a computer program product.
[0109] Figure 8 A schematic block diagram of an example electronic device 800 that can be used to implement embodiments of the present disclosure is shown. The electronic device is intended to represent various forms of digital computers, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The electronic device can also represent various forms of mobile devices, such as personal digital assistants, cellular phones, smartphones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are provided as examples only and are not intended to limit the implementation of the present disclosure described and / or claimed herein.
[0110] like Figure 8 As shown, the device 800 includes a computing unit 801, which can perform various appropriate actions and processes according to a computer program stored in a read-only memory (ROM) 802 or a computer program loaded from a storage unit 808 into a random access memory (RAM) 803. Various programs and data required for the operation of the device 800 can also be stored in the RAM 803. The computing unit 801, the ROM 802, and the RAM 803 are connected to each other via a bus 804. An input / output (I / O) interface 805 is also connected to the bus 804.
[0111] Various components in device 800 are connected to I / O interface 805, including an input unit 806, such as a keyboard, mouse, etc.; an output unit 807, such as various types of displays, speakers, etc.; a storage unit 808, such as a magnetic disk, optical disk, etc.; and a communication unit 809, such as a network card, modem, wireless communication transceiver, etc. The communication unit 809 allows device 800 to exchange information / data with other devices via a computer network such as the Internet and / or various telecommunication networks.
[0112] The computing unit 801 can be any general-purpose and / or specialized processing component with processing and computing capabilities. Some examples of the computing unit 801 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various specialized artificial intelligence (AI) computing chips, various computing units running machine learning model algorithms, a digital signal processor (DSP), and any suitable processor, controller, microcontroller, etc. The computing unit 801 performs the various methods and processes described above, such as the pose graph generation method and / or the map generation method. For example, in some embodiments, the pose graph generation method and / or the map generation method can be implemented as a computer software program tangibly embodied in a machine-readable medium, such as the storage unit 808. In some embodiments, part or all of the computer program can be loaded and / or installed onto the device 800 via the ROM 802 and / or the communication unit 809. When the computer program is loaded into the RAM 803 and executed by the computing unit 801, one or more steps of the pose graph generation method and / or the map generation method described above can be performed. Alternatively, in other embodiments, the computing unit 801 may be configured to execute the pose graph generation method and / or the map generation method in any other appropriate manner (eg, by means of firmware).
[0113] Various embodiments of the systems and techniques described above can be implemented in digital electronic circuit systems, integrated circuit systems, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), system-on-chip systems (SOCs), complex programmable logic devices (CPLDs), computer hardware, firmware, software, and / or combinations thereof. These various embodiments can include being implemented in one or more computer programs that are executable and / or interpreted on a programmable system that includes at least one programmable processor, which can be a special purpose or general purpose programmable processor that can receive data and instructions from a storage system, at least one input device, and at least one output device, and transmit data and instructions to the storage system, the at least one input device, and the at least one output device.
[0114] The program code for implementing the method of the present disclosure can be written in any combination of one or more programming languages. These program codes can be provided to a processor or controller of a general-purpose computer, a special-purpose computer, or other programmable data processing device so that when the program code is executed by the processor or controller, the functions / operations specified in the flow chart and / or block diagram are implemented. The program code can be executed entirely on the machine, partially on the machine, as a stand-alone software package, partially on the machine and partially on a remote machine, or entirely on a remote machine or server.
[0115] In the context of the present disclosure, a machine-readable medium can be a tangible medium that can contain or store a program for use by or in conjunction with an instruction execution system, device or equipment. A machine-readable medium can be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium can include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, device or equipment, or any suitable combination of the foregoing. A more specific example of a machine-readable storage medium can include an electrical connection based on one or more lines, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
[0116] To provide interaction with a user, the systems and techniques described herein can be implemented on a computer having: a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user; and a keyboard and pointing device (e.g., a mouse or trackball) through which the user can provide input to the computer. Other types of devices can also be used to provide interaction with the user; for example, the feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form (including acoustic input, voice input, or tactile input).
[0117] The systems and techniques described herein can be implemented in a computing system that includes back-end components (e.g., as a data server), or a computing system that includes middleware components (e.g., an application server), or a computing system that includes front-end components (e.g., a user computer having a graphical user interface or a web browser through which a user can interact with implementations of the systems and techniques described herein), or a computing system that includes any combination of such back-end components, middleware components, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network (LAN), a wide area network (WAN), and the Internet.
[0118] Computer systems may include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The client and server relationship arises through computer programs running on the respective computers and having a client-server relationship to each other.
[0119] It should be understood that the various forms of flow shown above can be used to reorder, add, or remove steps. For example, the steps recited in the present disclosure can be performed in parallel, in series, or in a different order, as long as the desired results of the technology disclosed in the present disclosure are achieved, which is not limited herein.
[0120] The specific implementation described above does not constitute a limitation on the protection scope of the present disclosure. Those skilled in the art should understand that various modifications, combinations, sub-combinations, and substitutions can be made according to design requirements and other factors. Any modifications, equivalent replacements, and improvements made within the spirit and principles of the present disclosure shall be included in the protection scope of the present disclosure.
Claims
1. A pose graph generation method, comprising: In response to a request to stitch a source point cloud and a target point cloud, connect source points in the source point cloud and target points in the target point cloud one by one, generate edges representing relative poses between the source points and the target points, and add the source points, the target points, and the edges to a local pose graph; In response to each generated edge, determining at least one closed loop containing the edge in the local pose graph, and determining an evaluation value for each edge in all the closed loops based on the relative poses of the multiple edges in each of the closed loops, wherein the evaluation value is used to indicate the accuracy of the relative pose represented by the edge; In response to completion of splicing the source point cloud and the target point cloud, determining the local pose graph as a complete pose graph; For each edge in the complete pose graph, determining the accuracy of the edge according to the evaluation value of the edge; and The complete pose graph is optimized based on the accuracy.
2. The method according to claim 1, wherein Determining the evaluation value of each edge in all the closed loops according to the relative positions of the multiple edges in each closed loop includes: For each of the closed loops, determining an evaluation value of each edge in the closed loop according to the sum of the relative positions of the multiple edges in the closed loop; The evaluation value of each edge in all the closed loops is determined according to the evaluation value of each edge in the at least one closed loop.
3. The method according to claim 2, wherein: The evaluation value includes a positive evaluation value and a negative evaluation value; for each closed loop, determining the evaluation value of each edge in the closed loop according to the sum of the relative positions of multiple edges in the closed loop includes: for each closed loop, In response to the sum of the relative positions of the plurality of edges in the closed loop being less than a first threshold, increasing the forward evaluation value of each edge in the closed loop by one; In response to the sum of the relative postures of the multiple edges in the closed loop being greater than a second threshold, the negative evaluation value of each edge in the closed loop is increased by one.
4. The method according to claim 3, wherein: The relative posture includes a translation distance and a rotation angle, the first threshold includes a first translation threshold and a first rotation threshold, and the second threshold includes a second translation threshold and a second rotation threshold; The sum of the relative positions of the multiple edges in the closed loop being less than the first threshold includes: the sum of the translation distances of the multiple edges in the closed loop being less than the first translation threshold, or the sum of the rotation angles of the multiple edges in the closed loop being less than the first rotation threshold; The sum of the relative postures of the multiple edges in the closed loop is greater than the second threshold, which includes: the sum of the translation distances of the multiple edges in the closed loop is greater than the second translation threshold, or the sum of the rotation angles of the multiple edges in the closed loop is greater than at least one of the second rotation threshold.
5. The method according to claim 4, wherein The first translation threshold is the product of a first distance and the number of edges in the closed loop, the first rotation threshold is the product of a first angle and the number of edges in the closed loop, the second translation threshold is the product of a second distance and the number of edges in the closed loop, and the second rotation threshold is the product of a second angle and the number of edges in the closed loop.
6. The method according to claim 3, wherein: For each edge in the complete pose graph, determining the accuracy of the edge according to the evaluation value of the edge includes: For each edge in the complete pose graph, the accuracy of the edge is determined according to the difference between the positive evaluation value and the negative evaluation value of the edge.
7. A map generation method, comprising: Get the pose graph; as well as generating a map according to the pose graph; The pose graph is one of a local pose graph, a complete pose graph, and an optimized complete pose graph generated according to any one of claims 1 to 6.
8. A pose graph generating apparatus, comprising: a first generation module, configured to, in response to a request for splicing a source point cloud and a target point cloud, connect source points in the source point cloud and target points in the target point cloud one by one, generate edges representing relative poses between the source points and the target points, and add the source points, the target points, and the edges to a local pose graph; a first determining module configured to, in response to each generated edge, determine at least one closed loop containing the edge in the local pose graph, and determine an evaluation value of each edge in all the closed loops based on the relative poses of the multiple edges in each of the closed loops, wherein the evaluation value is used to indicate the accuracy of the relative pose represented by the edge; a second generating module, configured to determine the local pose graph as a complete pose graph in response to completion of splicing the source point cloud and the target point cloud; A second determination module is configured to determine, for each edge in the complete pose graph, the accuracy of the edge according to the evaluation value of the edge; as well as An optimization module is configured to optimize the complete pose graph according to the accuracy.
9. The device according to claim 8, wherein The first determining module includes: a first determining unit, configured to determine, for each closed loop, an evaluation value of each edge in the closed loop according to the sum of relative positions of a plurality of edges in the closed loop; The second determining unit is configured to determine the evaluation value of each edge in all the closed loops according to the evaluation value of each edge in at least one closed loop.
10. The device according to claim 9, wherein The evaluation value includes a positive evaluation value and a negative evaluation value; the first determining unit includes: a first evaluation subunit, configured to, in response to a sum of relative positions of a plurality of edges in the closed loop being less than a first threshold, increase a positive evaluation value of each edge in the closed loop by one; The second evaluation subunit is configured to, in response to the sum of the relative positions of the multiple edges in the closed loop being greater than a second threshold, increase the negative evaluation value of each edge in the closed loop by one.
11. The device according to claim 10, wherein The relative posture includes a translation distance and a rotation angle, the first threshold includes a first translation threshold and a first rotation threshold, and the second threshold includes a second translation threshold and a second rotation threshold; The sum of the relative positions of the multiple edges in the closed loop being less than the first threshold includes: the sum of the translation distances of the multiple edges in the closed loop being less than the first translation threshold, or the sum of the rotation angles of the multiple edges in the closed loop being less than the first rotation threshold; The sum of the relative postures of the multiple edges in the closed loop is greater than the second threshold, which includes: the sum of the translation distances of the multiple edges in the closed loop is greater than the second translation threshold, or the sum of the rotation angles of the multiple edges in the closed loop is greater than at least one of the second rotation threshold.
12. The device according to claim 11, wherein The first translation threshold is the product of a first distance and the number of edges in the closed loop, the first rotation threshold is the product of a first angle and the number of edges in the closed loop, the second translation threshold is the product of a second distance and the number of edges in the closed loop, and the second rotation threshold is the product of a second angle and the number of edges in the closed loop.
13. The device according to claim 10, wherein The second determination module is used to determine the accuracy of each edge in the complete pose graph according to the difference between the positive evaluation value and the negative evaluation value of the edge.
14. A map generating device, comprising: Acquisition module, used to obtain the pose graph; as well as A third generation module is used to generate a map according to the pose graph; The pose graph is one of a local pose graph, a complete pose graph, and an optimized complete pose graph generated by the apparatus according to any one of claims 8 to 13.
15. An electronic device comprising: at least one processor; as well as a memory communicatively connected to the at least one processor; wherein, The memory stores instructions that can be executed by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to perform the method according to any one of claims 1 to 7.
16. A non-transitory computer-readable storage medium storing computer instructions, wherein: The computer instructions are used to cause a computer to execute the method according to any one of claims 1 to 7.
17. A computer program product comprising a computer program, which, when executed by a processor, implements the method according to any one of claims 1 to 7.
Citation Information
Patent Citations
Loopback detection method and device and computer equipment
CN113160130A
High-precision map construction method and device and electronic equipment
CN113989451A