Pose graph optimization methods, devices, electronic equipment, and autonomous vehicles
By segmenting high-precision maps into sub-pose graphs and performing hierarchical optimization, the problems of memory consumption and global consistency caused by the large number of pose nodes in high-precision maps are solved, and efficient pose graph optimization is achieved.
Patent Information
- Application Number
- CN202211519615.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-11-30
- Publication Date
- 2025-12-02
- Estimated Expiration
- 2042-11-30
AI Technical Summary
High-precision maps contain numerous pose nodes. Directly optimizing the pose graph would consume a large amount of memory, and the consistency of the global pose could not be guaranteed after segmentation, resulting in poor optimization results.
The pose graph to be optimized is divided into multiple sub-pose graphs. Hierarchical optimization is performed by determining the pose nodes of anchor frames. First, the first pose optimization is performed on the global anchor frames, and then the second pose optimization is performed on the key frames in the sub-pose graphs to ensure global pose consistency.
It effectively reduces memory usage, ensures the normal progress of pose optimization, and takes into account the consistency of global pose, thereby improving the optimization effect.
Smart Images

Figure CN115855024B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of data processing technology, and more particularly to the field of high-precision mapping or autonomous driving technology. Specifically, this disclosure relates to a pose graph optimization method, apparatus, electronic device, and autonomous vehicle. Background Technology
[0002] The construction of a high-precision point cloud map is a Simultaneous Localization and Mapping (SLAM) process, which typically includes three parts: odometry, loop closure detection, and pose graph optimization. Pose graph optimization involves finding a globally consistent set of absolute poses for a given pair of relative lidar poses.
[0003] Currently, high-precision point cloud maps are produced on a large scale, involving numerous pose nodes, which consumes a significant amount of memory during pose graph optimization. Summary of the Invention
[0004] To address at least one of the aforementioned deficiencies, this disclosure provides a pose graph optimization method, apparatus, electronic device, and autonomous vehicle.
[0005] According to a first aspect of this disclosure, a pose graph optimization method is provided, the method comprising:
[0006] The pose graph to be optimized is divided into multiple sub-pose graphs according to the preset segmentation method. The pose graph to be optimized uses the pose corresponding to the key frame as the key frame pose node, and the relative pose relationship between the key frame pose nodes is used as the edge.
[0007] Anchor frame pose nodes are determined from the keyframe pose nodes within the sub-pose graph. The sub-pose graph includes a boundary sub-pose graph that is close to the segmentation boundary of the sub-pose graph and an inner sub-pose graph located inside the boundary sub-pose graph. Anchor frame pose nodes include boundary anchor frame pose nodes determined from the keyframe pose nodes within the boundary sub-pose graph and inner anchor frame pose nodes determined from the keyframe pose nodes within the inner sub-pose graph.
[0008] Perform first pose optimization on all anchor frame pose nodes in the pose graph to be optimized;
[0009] The pose of the boundary anchor frame pose node after the first pose optimization is fixed, and the target key frame pose node in each sub-pose graph is optimized by the second pose optimization to obtain the optimized pose graph. The target key frame pose node is the key frame pose node in the sub-pose graph other than the anchor frame pose node and the internal anchor frame pose node after the first pose optimization.
[0010] According to a second aspect of this disclosure, a pose graph optimization apparatus is provided, the apparatus comprising:
[0011] The pose graph segmentation module is used to segment the pose graph to be optimized into multiple sub-pose graphs according to a preset segmentation method. The pose graph to be optimized uses the pose corresponding to the key frame as the key frame pose node, and the relative pose relationship between the key frame pose nodes is used as the edge.
[0012] Anchor frame pose node determination module is used to determine anchor frame pose nodes from key frame pose nodes within a sub-pose map. The sub-pose map includes a boundary sub-pose map close to the segmentation boundary of the sub-pose map and an inner sub-pose map located inside the boundary sub-pose map. The anchor frame pose nodes include boundary anchor frame pose nodes determined from key frame pose nodes within the boundary sub-pose map and inner anchor frame pose nodes determined from key frame pose nodes within the inner sub-pose map.
[0013] The first pose optimization module is used to perform first pose optimization on all anchor frame pose nodes in the pose graph to be optimized.
[0014] The second pose optimization module is used to fix the pose of the boundary anchor frame pose node after the first pose optimization, and to perform second pose optimization on the target key frame pose node in each sub-pose graph to obtain the optimized pose graph. The target key frame pose node is the key frame pose node in the sub-pose graph other than the anchor frame pose node and the internal anchor frame pose node after the first pose optimization.
[0015] According to a third aspect of this disclosure, an electronic device is provided, the electronic device comprising:
[0016] At least one processor; and
[0017] A memory communicatively connected to at least one of the aforementioned processors; wherein,
[0018] The memory stores instructions that can be executed by at least one processor, and the instructions are executed by at least one processor to enable at least one processor to perform the pose graph optimization method.
[0019] According to a fourth aspect of this disclosure, a non-transitory computer-readable storage medium is provided storing computer instructions, wherein the computer instructions are used to cause a computer to perform the above-described pose graph optimization method.
[0020] According to a fifth aspect of this disclosure, a computer program product is provided, including a computer program that, when executed by a processor, implements the above-described pose graph optimization method.
[0021] According to a sixth aspect of this disclosure, an autonomous vehicle is provided, including the electronic equipment described in the third aspect above.
[0022] It should be understood that the description in this section is not intended to identify key or essential features of the embodiments of this disclosure, nor is it intended to limit the scope of this disclosure. Other features of this disclosure will become readily apparent from the following description. Attached Figure Description
[0023] The accompanying drawings are provided to better understand this solution and do not constitute a limitation of this disclosure. Wherein:
[0024] Figure 1 This is a schematic flowchart of a pose graph optimization method provided in an embodiment of this disclosure;
[0025] Figure 2 This is a schematic diagram of a sub-pose diagram corresponding to a straight road provided in an embodiment of this disclosure;
[0026] Figure 3 This is a schematic diagram of a sub-pose diagram corresponding to an intersection area provided in an embodiment of this disclosure;
[0027] Figure 4 This is a schematic diagram of an intersection sub-pose diagram and a non-intersection sub-pose diagram provided in an embodiment of this disclosure;
[0028] Figure 5 This is a flowchart illustrating a specific implementation of a pose graph optimization method provided in this disclosure.
[0029] Figure 6 This is a schematic diagram of the structure of a pose graph optimization device provided in an embodiment of this disclosure;
[0030] Figure 7 This is a block diagram of an electronic device used to implement the pose graph optimization method of the embodiments of this disclosure. Detailed Implementation
[0031] The exemplary embodiments of this disclosure are described below with reference to the accompanying drawings, including various details of the embodiments to aid understanding, and should be considered merely exemplary. Therefore, those skilled in the art will recognize that various changes and modifications can be made to the embodiments described herein without departing from the scope and spirit of this disclosure. Similarly, for clarity and brevity, descriptions of well-known functions and structures are omitted in the following description.
[0032] Currently, high-precision maps are produced on a large scale, involving numerous pose nodes. For example, the map may cover thousands of kilometers, potentially involving hundreds of thousands of pose nodes. In such cases, directly optimizing the pose graph would consume a large amount of memory, and could even lead to memory exhaustion, preventing the pose graph optimization from proceeding smoothly.
[0033] If the pose graph is directly segmented and each sub-pose graph is optimized separately, the consistency of the global pose cannot be guaranteed, resulting in poor pose graph optimization performance.
[0034] The pose graph optimization method, apparatus, electronic device, and autonomous vehicle provided in this disclosure are intended to solve at least one of the above-mentioned technical problems in the prior art.
[0035] Figure 1 The following is a schematic flowchart of a pose graph optimization method provided in an embodiment of this disclosure, as shown in the figure. Figure 1 As shown, the method can mainly include:
[0036] Step S110: Divide the pose graph to be optimized into multiple sub-pose graphs according to the preset segmentation method. The pose graph to be optimized uses the pose corresponding to the key frame as the key frame pose node, and the relative pose relationship between the key frame pose nodes is used as the edge.
[0037] Step S120: Determine anchor frame pose nodes from the keyframe pose nodes within the sub-pose map. The sub-pose map includes a boundary sub-pose map that is close to the segmentation boundary of the sub-pose map and an inner sub-pose map located inside the boundary sub-pose map. The anchor frame pose nodes include boundary anchor frame pose nodes determined from the keyframe pose nodes within the boundary sub-pose map and inner anchor frame pose nodes determined from the keyframe pose nodes within the inner sub-pose map.
[0038] Step S130: Perform first pose optimization on all anchor frame pose nodes in the pose graph to be optimized.
[0039] Step S140: Fix the pose of the first pose optimized boundary anchor frame pose node, and perform second pose optimization on the target key frame pose node in each sub-pose graph to obtain the optimized pose graph. The target key frame pose node is the key frame pose node in the sub-pose graph other than the anchor frame pose node and the internal anchor frame pose node optimized by the first pose.
[0040] Keyframes can be extracted from point cloud frames. As an example, keyframes can be extracted from point cloud frames by downsampling. The downsampling sampling distance can be specified according to actual needs, for example, it can be 8 meters.
[0041] As an example, keyframes can be extracted from all point cloud frames involved in the current batch of processing. Then, the poses corresponding to all the extracted keyframes are used as nodes (i.e., keyframe pose nodes), and the relative pose relationships between keyframes are constructed as edges to obtain the pose graph to be optimized.
[0042] In this embodiment, the point cloud frames can be collected by a LiDAR device configured on an autonomous vehicle. This solution can be applied to build high-precision point cloud maps in real time on autonomous vehicles.
[0043] The pose graph to be optimized usually contains a large number of keyframe pose nodes. A preset segmentation method can be used to segment the pose graph to be optimized to obtain sub-pose graphs. The number of keyframe pose nodes in the sub-pose graphs is smaller than that in the pose graph to be optimized.
[0044] In this embodiment of the disclosure, anchor frame pose nodes can be determined from key frame pose nodes within each sub-pose graph.
[0045] Specifically, the sub-pose map can be divided into boundary sub-pose maps and internal sub-pose maps based on the boundary lines of the sub-pose map. As an example, the pose map consisting of all keyframe pose nodes and edges within a certain distance from the boundary lines of the sub-pose map can be considered as the boundary sub-pose map, and the pose map consisting of keyframe pose nodes and edges outside the boundary sub-pose map can be considered as the internal sub-pose map.
[0046] Anchor frame pose nodes can include boundary anchor frame pose nodes and internal anchor frame pose nodes. Boundary anchor frame pose nodes can be extracted from keyframe pose nodes within the boundary sub-pose graph, and internal anchor frame pose nodes can be extracted from keyframe pose nodes within the internal sub-pose graph.
[0047] For any sub-pose graph, the keyframe node near the boundary of the sub-pose graph will have a close relative pose relationship with the keyframe node at the boundary of the adjacent sub-pose graph. This can be used to connect adjacent sub-pose graphs to ensure the consistency of pose within adjacent sub-pose graphs.
[0048] In this embodiment, after determining all anchor frame pose nodes within the pose graph to be optimized, a first pose optimization can be performed on all anchor frame pose nodes. The anchor frame pose nodes optimized in the first pose contain global pose information. At this point, the boundary anchor frame pose nodes can be fixed, and the remaining keyframe nodes in the sub-pose graph (excluding the anchor frame pose nodes) along with the internal anchor frame pose nodes optimized in the first pose are collectively used as target keyframe pose nodes. A second pose optimization is then performed on these target keyframe pose nodes. By performing the second pose optimization on the target keyframe pose nodes, the global pose information carried by the internal anchor frame pose nodes can be transferred to the sub-pose graph for pose optimization. This transfer of global pose information to the sub-pose graph ensures that the keyframe nodes within the sub-pose graph maintain consistency with the global pose. Simultaneously, by fixing the boundary anchor frame pose nodes, the pose of keyframe nodes in adjacent sub-pose graphs remains consistent, thereby ensuring global pose consistency within the pose graph to be optimized after the second pose optimization.
[0049] In this embodiment of the disclosure, by first optimizing the pose of the anchor frame pose node frame and then optimizing the pose of each sub-pose graph, a hierarchical pose optimization of the pose graph to be optimized is achieved. This avoids optimizing all key frame pose nodes at the same time, reduces memory usage, and helps ensure the normal progress of pose optimization.
[0050] The method provided in this disclosure divides a pose map to be optimized into multiple sub-pose maps according to a preset segmentation method. The pose map to be optimized uses the pose corresponding to a keyframe as a keyframe pose node, and the relative pose relationships between keyframe pose nodes are used as edges. Anchor frame pose nodes are determined from the keyframe pose nodes within the sub-pose maps. Each sub-pose map includes a boundary sub-pose map close to the segmentation boundary and an internal sub-pose map located inside the boundary sub-pose map. Anchor frame pose nodes are determined from the keyframe pose nodes within the boundary sub-pose map. The method involves optimizing the pose nodes of the boundary anchor frames and the internal anchor frames determined from the keyframe pose nodes within the internal sub-pose graphs. First-stage pose optimization is performed on all anchor frame pose nodes in the pose graph to be optimized. The poses of the boundary anchor frame pose nodes after first-stage optimization are fixed, and second-stage pose optimization is performed on the target keyframe pose nodes in each sub-pose graph to obtain the optimized pose graph. The target keyframe pose nodes are the keyframe pose nodes in the sub-pose graphs excluding anchor frame pose nodes, as well as the internal anchor frame pose nodes after first-stage pose optimization. Based on this scheme, hierarchical pose optimization of the keyframe pose nodes in the pose graph to be optimized can be performed, avoiding the consumption of large amounts of memory during pose optimization.
[0051] In this embodiment, a first pose optimization is performed globally on the anchor frame pose nodes, ensuring that the optimized anchor frame pose nodes contain global pose information. Then, a second pose optimization is performed on the optimized anchor frame pose nodes together with the remaining keyframe nodes in the sub-pose graph, allowing global pose information to be transferred to the sub-pose graph. This ensures that the second-optimized sub-pose graph maintains consistency with the global pose. Based on this scheme, while optimizing each sub-pose graph separately, the consistency of the global pose is considered, effectively guaranteeing the pose optimization effect of the pose graph.
[0052] In one optional embodiment of this disclosure, determining the anchor frame pose node from the keyframe pose nodes within the sub-pose graph includes:
[0053] Using a preset downsampling method, the pose nodes of the internal anchor frame are determined from the pose nodes of the keyframe within the internal sub-pose graph.
[0054] In this embodiment of the disclosure, a downsampling method can be used to sample some key frame pose nodes from the key frame pose nodes in the internal sub-pose map as internal anchor frame pose nodes.
[0055] In one optional embodiment of this disclosure, the internal anchor frame pose node includes a first internal anchor frame pose node and a second internal anchor frame pose node. The internal anchor frame pose node is determined from the keyframe pose nodes within the internal sub-pose map using a preset downsampling method, including:
[0056] The internal sub-pose map is divided into intersection area sub-pose map and non-intersection area sub-pose map by a preset dividing line.
[0057] The key frame pose node group contained in the non-intersection area sub-pose map is downsampled according to the preset first sampling distance to obtain the target key frame pose node group. The key frame pose nodes in the target key frame pose node group are determined as the first internal anchor frame pose nodes. The key frame pose node group includes key frame pose nodes that are no more than a specified distance apart.
[0058] The key frame pose nodes in the sub-pose map of the intersection area are downsampled according to the preset second sampling distance to obtain the second internal anchor frame pose nodes.
[0059] In this embodiment of the disclosure, since the actual road conditions in the intersection area and the non-intersection area are quite different, the sub-pose map can be divided into an intersection area sub-pose map and a non-intersection area sub-pose map respectively. A first internal anchor frame pose node is determined for the non-intersection area sub-pose map, and a second internal anchor frame pose node is determined for the intersection area sub-pose map.
[0060] The location of the dividing line can be set according to actual needs. As an example, the dividing line can be 50 meters away from the center of the intersection and extend along the width of the road.
[0061] In this embodiment of the disclosure, a keyframe pose node group can be defined, which contains keyframe pose nodes that are no more than a specified distance apart. As an example, the keyframe pose node group may include all keyframe pose nodes within an area defined by a horizontal distance of 30 meters and a vertical distance of 8 meters.
[0062] For the non-intersection area sub-pose map, the key frame pose nodes can be pre-divided into key frame pose node groups. Then, the key frame pose node groups in the non-intersection area sub-pose map are downsampled to obtain the target key frame pose node group. The key frame pose nodes in the target key frame pose node group are determined as the first internal anchor frame pose nodes.
[0063] As an example, the first sampling distance can be 150 meters, that is, the interval between adjacent target keyframe pose node groups obtained after downsampling is 150 meters.
[0064] For the sub-pose map of the intersection area, the sub-pose of the intersection area Figure 1 They are usually located in the same keyframe pose node group. In this case, the keyframe pose nodes in the intersection area sub-pose map can be downsampled directly according to the second sampling distance to obtain the second internal anchor frame pose node.
[0065] As an example, the second sampling distance can be 10 meters, that is, the interval between the pose nodes of the second internal anchor frame obtained after downsampling is 10 meters.
[0066] In this embodiment of the disclosure, considering that the road conditions in the intersection area are more complex than those in the non-intersection area, in order to ensure that the pose optimization of the key frames in the intersection area can be performed more effectively, the first sampling distance and the second sampling distance can be reasonably configured so that the density of the pose nodes of the internal anchor frame in the sub-pose map of the intersection area is higher than that in the sub-pose map of the non-intersection area.
[0067] In one optional embodiment of this disclosure, determining the anchor frame pose node from the keyframe pose nodes within the sub-pose graph includes:
[0068] Keyframe pose nodes within the boundary sub-pose graph whose distance from the segmentation boundary of the sub-pose graph meets a preset distance condition are identified as boundary anchor frame pose nodes.
[0069] In this embodiment of the disclosure, the preset distance condition can be set according to actual needs. Meeting the preset distance condition indicates that the keyframe pose node is close to the boundary.
[0070] As an example, the keyframe node that is closest to the boundary of the sub-pose graph in a single trajectory can be used as the anchor frame pose node.
[0071] In one optional embodiment of this disclosure, before determining the anchor frame pose node from the keyframe pose nodes within each sub-pose map, the method further includes:
[0072] Obtain the inter-frame edges and loop edges between keyframe pose nodes in the sub-pose graph. Inter-frame edges are used to represent the relative pose relationship between keyframe pose nodes corresponding to two keyframes with adjacent acquisition times. Loop edges are used to represent the relative pose relationship between two keyframe pose nodes that are no more than a specified distance apart.
[0073] Based on the loop edges between keyframe pose nodes, a third pose optimization is performed on the inter-frame edges between keyframe pose nodes and anchor frame pose nodes.
[0074] Determine the anchor frame pose nodes from the keyframe pose nodes within each sub-pose graph, including:
[0075] The anchor frame pose nodes are determined from the keyframe pose nodes in each sub-pose graph after the third pose optimization.
[0076] In this embodiment of the disclosure, the inter-frame edges and loop edges between key frame pose nodes in the sub-pose graph can be obtained in advance, the key frame pose nodes in the sub-pose graph can be optimized for the third pose, and then the anchor frame pose nodes can be determined based on the key frame pose nodes optimized for the third pose, so that the accuracy of the anchor frame pose nodes is higher.
[0077] Odometry edge is used to characterize the relative pose relationship between keyframe pose nodes corresponding to two keyframes with adjacent acquisition times.
[0078] A loop closure edge is used to characterize the relative pose relationship between two keyframe pose nodes that are no more than a specified distance apart. Loop closure edges can represent the positional constraints between different keyframe pose nodes, which can be used for pose optimization.
[0079] As an example, Figure 2 The diagram shows a sub-pose diagram corresponding to a straight road according to an embodiment of the present disclosure.
[0080] like Figure 2As shown, the dashed lines with arrows represent the trajectory of the autonomous vehicle, and the direction of the arrows indicates the direction of movement. Dots represent point cloud frames acquired while moving along the trajectory, and pentagrams represent keyframe pose nodes corresponding to keyframes sampled from the point cloud frames. Dashed lines represent inter-frame edges between keyframe pose nodes, used to indicate the relative pose relationship between two temporally adjacent keyframe pose nodes. Solid lines represent loop edges between keyframe pose nodes, used to indicate the relative pose relationship between keyframe pose nodes that are geographically close. Figure 2 The keyframe pose node group consists of keyframe pose nodes within the square frame area.
[0081] As an example, Figure 3 The diagram shows a sub-pose map corresponding to an intersection area provided in an embodiment of this disclosure.
[0082] like Figure 3 As shown, dashed lines with arrows represent the trajectory of the autonomous vehicle, and the direction of the arrows indicates the direction of movement. Pentagrams represent keyframe pose nodes. Dashed lines represent inter-frame edges between keyframe pose nodes, used to indicate the relative pose relationship between two temporally adjacent keyframe pose nodes. Solid lines represent loop edges between keyframe pose nodes, used to indicate the relative pose relationship between keyframe pose nodes that are geographically close.
[0083] As an example, Figure 4 The diagram shows a schematic of an intersection sub-pose diagram and a non-intersection sub-pose diagram provided in an embodiment of the present disclosure.
[0084] like Figure 4 As shown, the intersection sub-pose map and the non-intersection sub-pose map are separated by a dividing line. The dashed line with an arrow represents the trajectory of the autonomous vehicle, and the direction of the arrow indicates the direction of movement. Smaller pentagrams represent keyframe pose nodes. Larger pentagrams represent anchor frame pose nodes. Dashed lines represent inter-frame edges between anchor frame pose nodes, used to indicate the relative pose relationship between two temporally adjacent anchor frame pose nodes. Solid lines represent loop edges between anchor frame pose nodes, used to indicate the relative pose relationship between anchor frame pose nodes that are geographically close.
[0085] In this embodiment of the disclosure, the specific method of third pose optimization can be: based on the loop edges between key frame pose nodes, perform pose optimization on the inter-frame edges between key frame pose nodes and anchor frame pose nodes.
[0086] In one optional embodiment of this disclosure, first pose optimization is performed on all anchor frame pose nodes in the pose graph to be optimized, including:
[0087] Obtain the inter-frame edges and loop closure edges between anchor frame pose nodes.
[0088] Based on the loop edges between anchor frame pose nodes, the first pose optimization is performed on the anchor frame pose nodes and the inter-frame edges between anchor frame pose nodes.
[0089] In this embodiment of the disclosure, the specific method for first pose optimization can be: based on the loop edges between anchor frame pose nodes, perform first pose optimization on the anchor frame pose nodes and the inter-frame edges between anchor frame pose nodes.
[0090] In this embodiment, the initial inter-frame edges and loop closure edges between each keyframe pose node can be used as initial values in the pose graph to be optimized. During the first pose optimization, the loop closure edges between anchor frame pose nodes can use the initial loop closure edges, or they can be re-detected based on the third optimized anchor frame. During the first pose optimization, since the distance between adjacent anchor frame pose nodes is significantly greater than the distance between adjacent keyframe pose nodes, using the initial inter-frame edges as the inter-frame edges between adjacent anchor frame pose nodes would cause a large cumulative error. Therefore, the inter-frame edges between anchor frame pose nodes can no longer use the initial inter-frame edges, but are recalculated recursively.
[0091] In one optional embodiment of this disclosure, obtaining the inter-frame edges between anchor frame pose nodes in the pose graph to be optimized includes:
[0092] Based on the relative pose relationship between the pose nodes of the internal anchor frame in the sub-pose graph after the first pose optimization, the inter-frame edges between the pose nodes of the internal anchor frame are constructed.
[0093] Based on the relative pose relationship between boundary anchor frame pose nodes in adjacent sub-pose graphs, inter-frame edges between boundary anchor frame pose nodes are constructed.
[0094] In this embodiment of the disclosure, the inter-frame edges between internal anchor point frame pose nodes and the inter-frame edges between boundary anchor point frames can be calculated recursively.
[0095] Since the inter-frame edges of the internal anchor frame pose nodes are generally located within the sub-pose graph, the relative pose relationships between the internal anchor frame pose nodes can be determined based on the internal anchor frame pose nodes within the sub-pose graph after the first pose optimization, and the inter-frame edges between the internal anchor frame pose nodes can be constructed.
[0096] In this embodiment of the disclosure, the inter-frame edges between boundary anchor frame pose nodes are generally between boundary anchor frame pose nodes in adjacent sub-pose graphs. Therefore, the relative pose relationship between boundary anchor frame pose nodes can be determined from the initial pose of each boundary anchor frame pose node in the pose graph to be optimized, and the inter-frame edges between boundary anchor frame pose nodes can be constructed.
[0097] In one optional embodiment of this disclosure, a second pose optimization is performed on the target keyframe pose nodes within each sub-pose map, including:
[0098] Obtain the inter-frame edges and loop closure edges between target keyframe pose nodes in each sub-pose graph;
[0099] Based on the loop edges between the target keyframe pose nodes, a second pose optimization is performed on the target keyframe pose nodes and the inter-frame edges between them.
[0100] In this embodiment, the target keyframe pose nodes include keyframe nodes within the sub-pose graph excluding anchor frame nodes, and internal anchor frame nodes after the first pose optimization. Inter-frame edges between each target keyframe pose node can be recursively derived, and loop closure detection can be performed on the target keyframe pose nodes to obtain the loop closure edges between them. Based on these loop closure edges, a second pose optimization is performed on the target keyframe pose nodes and the inter-frame edges between them.
[0101] In one optional embodiment of this disclosure, a second pose optimization is performed on the target keyframe pose nodes within each sub-pose map, including:
[0102] A parallel processing approach is adopted to perform second pose optimization on the target keyframe pose nodes in each sub-pose graph.
[0103] In this embodiment of the disclosure, the second pose optimization of the target keyframe pose nodes in each sub-pose map can be performed in parallel to improve processing efficiency.
[0104] In one optional embodiment of this disclosure, the pose graph to be optimized is divided into multiple sub-pose graphs according to a preset segmentation method, including:
[0105] The pose graph to be optimized is divided into multiple sub-pose graphs of preset sizes.
[0106] In this embodiment of the disclosure, when segmenting the pose graph to be optimized, pose graph blocks of a preset size can be segmented as sub-pose graphs. As an example, the segmented sub-pose graph can correspond to a geographical area with a length and width of one kilometer.
[0107] Figure 5 The diagram shows a flowchart illustrating a specific implementation of a pose graph optimization method provided in this disclosure.
[0108] like Figure 5 As shown, sub-pose Figure 1 ..., sub-pose graph n, representing multiple sub-pose graphs segmented from the pose graph to be optimized.
[0109] When performing pose graph optimization, the first pose optimization is performed on the global anchor frame pose nodes to ensure that the anchor frame pose nodes have global pose information. Then, the second pose optimization is performed on each pose graph to pass the global pose information to each sub-pose graph.
[0110] Based on and Figure 1 The method shown follows the same principle. Figure 6 A schematic diagram of a pose graph optimization device provided in an embodiment of this disclosure is shown, as follows: Figure 6 As shown, the pose graph optimization device 60 may include:
[0111] The pose graph segmentation module 610 is used to segment the pose graph to be optimized into multiple sub-pose graphs according to a preset segmentation method. The pose graph to be optimized uses the pose corresponding to the key frame as the key frame pose node, and the relative pose relationship between the key frame pose nodes is used as the edge.
[0112] Anchor frame pose node determination module 620 is used to determine anchor frame pose nodes from key frame pose nodes within a sub-pose map. The sub-pose map includes a boundary sub-pose map close to the segmentation boundary of the sub-pose map and an inner sub-pose map located inside the boundary sub-pose map. The anchor frame pose nodes include boundary anchor frame pose nodes determined from key frame pose nodes within the boundary sub-pose map and inner anchor frame pose nodes determined from key frame pose nodes within the inner sub-pose map.
[0113] The first pose optimization module 630 is used to perform first pose optimization on all anchor frame pose nodes in the pose graph to be optimized.
[0114] The second pose optimization module 640 is used to fix the pose of the boundary anchor frame pose node after the first pose optimization, and to perform second pose optimization on the target key frame pose node in each sub-pose graph to obtain the optimized pose graph. The target key frame pose node is the key frame pose node in the sub-pose graph other than the anchor frame pose node and the internal anchor frame pose node after the first pose optimization.
[0115] The apparatus provided in this disclosure divides a pose map to be optimized into multiple sub-pose maps according to a preset segmentation method. The pose map to be optimized uses the pose corresponding to a keyframe as a keyframe pose node, and the relative pose relationships between keyframe pose nodes are used as edges. Anchor frame pose nodes are determined from the keyframe pose nodes within the sub-pose maps. Each sub-pose map includes a boundary sub-pose map close to the segmentation boundary of the sub-pose map and an internal sub-pose map located inside the boundary sub-pose map. Anchor frame pose nodes are determined from the keyframe pose nodes within the boundary sub-pose map. The method involves optimizing the pose nodes of the boundary anchor frames and the internal anchor frames determined from the keyframe pose nodes within the internal sub-pose graphs. First-stage pose optimization is performed on all anchor frame pose nodes in the pose graph to be optimized. The poses of the boundary anchor frame pose nodes after first-stage optimization are fixed, and second-stage pose optimization is performed on the target keyframe pose nodes in each sub-pose graph to obtain the optimized pose graph. The target keyframe pose nodes are the keyframe pose nodes in the sub-pose graphs excluding anchor frame pose nodes, as well as the internal anchor frame pose nodes after first-stage pose optimization. Based on this scheme, hierarchical pose optimization of the keyframe pose nodes in the pose graph to be optimized can be performed, avoiding the consumption of large amounts of memory during pose optimization.
[0116] Optionally, when determining the anchor frame pose node from the keyframe pose nodes within each sub-pose graph, the anchor frame pose node determination module specifically performs the following:
[0117] Using a preset downsampling method, the pose nodes of the internal anchor frame are determined from the pose nodes of the keyframe within the internal sub-pose graph.
[0118] Optionally, the internal anchor frame pose node includes a first internal anchor frame pose node and a second internal anchor frame pose node. When the anchor frame pose node determination module determines the internal anchor frame pose node from the keyframe pose nodes within the internal sub-pose map using a preset downsampling method, it is specifically used for:
[0119] The internal sub-pose map is divided into intersection area sub-pose map and non-intersection area sub-pose map by a preset dividing line.
[0120] The key frame pose node group contained in the non-intersection area sub-pose map is downsampled according to the preset first sampling distance to obtain the target key frame pose node group. The key frame pose nodes in the target key frame pose node group are determined as the first internal anchor frame pose nodes. The key frame pose node group includes key frame pose nodes that are no more than a specified distance apart.
[0121] The key frame pose nodes in the sub-pose map of the intersection area are downsampled according to the preset second sampling distance to obtain the second internal anchor frame pose nodes.
[0122] Optionally, when determining the anchor frame pose node from the keyframe pose nodes within each sub-pose graph, the anchor frame pose node determination module specifically performs the following:
[0123] Keyframe pose nodes within the boundary sub-pose graph whose distance from the segmentation boundary of the sub-pose graph meets a preset distance condition are identified as boundary anchor frame pose nodes.
[0124] Optionally, the above-mentioned device further includes a third pose optimization module, which is used for:
[0125] Before determining the anchor frame pose node from the key frame pose nodes in each sub-pose graph, the inter-frame edges and loop edges between the key frame pose nodes in the sub-pose graph are obtained. The inter-frame edges are used to characterize the relative pose relationship between the key frame pose nodes corresponding to two key frames with adjacent acquisition times, and the loop edges are used to characterize the relative pose relationship between two key frame pose nodes that are no more than a specified distance apart.
[0126] Based on the loop edges between keyframe pose nodes, a third pose optimization is performed on the inter-frame edges between keyframe pose nodes and anchor frame pose nodes.
[0127] When determining anchor frame pose nodes from keyframe pose nodes within each sub-pose graph, the anchor frame pose node determination module is specifically used for:
[0128] The anchor frame pose nodes are determined from the keyframe pose nodes in each sub-pose graph after the third pose optimization.
[0129] Optionally, the first pose optimization module is specifically used for:
[0130] Obtain the inter-frame edges and loop closure edges between anchor frame pose nodes.
[0131] Based on the loop edges between anchor frame pose nodes, the first pose optimization is performed on the anchor frame pose nodes and the inter-frame edges between anchor frame pose nodes.
[0132] Optionally, when the first pose optimization module obtains the inter-frame edges between anchor frame pose nodes in the pose graph to be optimized, it is specifically used for:
[0133] Based on the relative pose relationship between the pose nodes of the internal anchor frame in the sub-pose graph after the first pose optimization, the inter-frame edges between the pose nodes of the internal anchor frame are constructed.
[0134] Based on the relative pose relationship between boundary anchor frame pose nodes in adjacent sub-pose graphs, inter-frame edges between boundary anchor frame pose nodes are constructed.
[0135] Optionally, when performing second pose optimization on the target keyframe pose nodes within each sub-pose graph, the second pose optimization module is specifically used for:
[0136] Obtain the inter-frame edges and loop closure edges between target keyframe pose nodes in each sub-pose graph;
[0137] Based on the loop edges between the target keyframe pose nodes, a second pose optimization is performed on the target keyframe pose nodes and the inter-frame edges between them.
[0138] Optionally, when performing second pose optimization on the target keyframe pose nodes within each sub-pose graph, the second pose optimization module is specifically used for:
[0139] A parallel processing approach is adopted to perform second pose optimization on the target keyframe pose nodes in each sub-pose graph.
[0140] Optionally, when the pose graph segmentation module segments the pose graph to be optimized into multiple sub-pose graphs according to a preset segmentation method, it is specifically used for:
[0141] The pose graph to be optimized is divided into multiple sub-pose graphs of preset sizes.
[0142] It is understood that the above-described modules of the pose graph optimization device in the embodiments of this disclosure have the ability to implement... Figure 1 The embodiments shown illustrate the functions of corresponding steps in the pose graph optimization method. These functions can be implemented in hardware or by hardware executing corresponding software. The hardware or software includes one or more modules corresponding to the above functions. These modules can be software and / or hardware, and each module can be implemented individually or multiple modules can be integrated. For a detailed description of the functions of each module in the above pose graph optimization device, please refer to [link to relevant documentation]. Figure 1 The corresponding description of the pose graph optimization method in the illustrated embodiments will not be repeated here.
[0143] The collection, storage, use, processing, transmission, provision, and disclosure of user personal information involved in the technical solution disclosed herein comply with the provisions of relevant laws and regulations and do not violate public order and good morals.
[0144] According to embodiments of this disclosure, this disclosure also provides an electronic device, a readable storage medium, a computer program product, and an autonomous vehicle.
[0145] The electronic device includes: 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, the instructions being executed by the at least one processor to enable the at least one processor to perform the pose graph optimization method as provided in the embodiments of this disclosure.
[0146] Compared with existing technologies, this electronic device divides the pose map to be optimized into multiple sub-pose maps according to a preset segmentation method. The pose map to be optimized uses the pose corresponding to a keyframe as the keyframe pose node, and the relative pose relationships between keyframe pose nodes are used as edges. Anchor frame pose nodes are determined from the keyframe pose nodes within the sub-pose maps. Each sub-pose map includes a boundary sub-pose map close to the segmentation boundary and an internal sub-pose map located inside the boundary sub-pose map. The anchor frame pose nodes are determined from the keyframe pose nodes within the boundary sub-pose map. The algorithm defines the boundary anchor frame pose nodes and the internal anchor frame pose nodes determined from the keyframe pose nodes within the internal sub-pose graphs. It then performs a first pose optimization on all anchor frame pose nodes in the pose graph to be optimized. Finally, it fixes the poses of the boundary anchor frame pose nodes after the first pose optimization and performs a second pose optimization on the target keyframe pose nodes in each sub-pose graph, resulting in an optimized pose graph. The target keyframe pose nodes are the keyframe pose nodes in the sub-pose graphs excluding the anchor frame pose nodes, as well as the internal anchor frame pose nodes after the first pose optimization. Based on this scheme, hierarchical pose optimization of the keyframe pose nodes in the pose graph to be optimized can be performed, avoiding excessive memory consumption during pose optimization.
[0147] The readable storage medium is a non-transitory computer-readable storage medium storing computer instructions, wherein the computer instructions are used to cause the computer to perform the pose graph optimization method provided in the embodiments of this disclosure.
[0148] Compared with existing technologies, this readable storage medium divides the pose map to be optimized into multiple sub-pose maps according to a preset segmentation method. The pose map to be optimized uses the pose corresponding to a keyframe as the keyframe pose node, and the relative pose relationships between keyframe pose nodes are used as edges. Anchor frame pose nodes are determined from the keyframe pose nodes within the sub-pose maps. Each sub-pose map includes a boundary sub-pose map close to the segmentation boundary and an inner sub-pose map located inside the boundary sub-pose map. The anchor frame pose nodes are determined from the keyframe pose nodes within the boundary sub-pose map. The method involves determining the boundary anchor frame pose nodes and the internal anchor frame pose nodes determined from the keyframe pose nodes within the internal sub-pose graphs. First-order pose optimization is performed on all anchor frame pose nodes in the pose graph to be optimized. The poses of the boundary anchor frame pose nodes after first-order pose optimization are fixed, and second-order pose optimization is performed on the target keyframe pose nodes in each sub-pose graph to obtain the optimized pose graph. The target keyframe pose nodes are the keyframe pose nodes in the sub-pose graphs excluding the anchor frame pose nodes, as well as the internal anchor frame pose nodes after first-order pose optimization. Based on this scheme, hierarchical pose optimization of the keyframe pose nodes in the pose graph to be optimized can be performed, avoiding the consumption of large amounts of memory during pose optimization.
[0149] The computer program product includes a computer program that, when executed by a processor, implements the pose graph optimization method as provided in the embodiments of this disclosure.
[0150] Compared with existing technologies, this computer program product divides the pose map to be optimized into multiple sub-pose maps according to a preset segmentation method. The pose map to be optimized uses the pose corresponding to a keyframe as the keyframe pose node, and the relative pose relationships between keyframe pose nodes are used as edges. Anchor frame pose nodes are determined from the keyframe pose nodes within the sub-pose maps. The sub-pose map includes a boundary sub-pose map close to the segmentation boundary and an inner sub-pose map located inside the boundary sub-pose map. Anchor frame pose nodes include keyframe pose nodes from the boundary sub-pose map. The algorithm identifies the boundary anchor frame pose nodes and the internal anchor frame pose nodes from the keyframe pose nodes within the internal sub-pose graphs. It then performs a first pose optimization on all anchor frame pose nodes in the pose graph to be optimized. Finally, it fixes the poses of the boundary anchor frame pose nodes after the first pose optimization and performs a second pose optimization on the target keyframe pose nodes in each sub-pose graph, resulting in an optimized pose graph. The target keyframe pose nodes are the keyframe pose nodes in the sub-pose graphs excluding the anchor frame pose nodes, as well as the internal anchor frame pose nodes after the first pose optimization. Based on this scheme, hierarchical pose optimization of the keyframe pose nodes in the pose graph to be optimized can be performed, avoiding excessive memory consumption during pose optimization.
[0151] The autonomous vehicle includes the aforementioned electronic equipment.
[0152] Compared with existing technologies, this autonomous vehicle divides the pose map to be optimized into multiple sub-pose maps according to a preset segmentation method. The pose map to be optimized uses the pose corresponding to a keyframe as the keyframe pose node, and the relative pose relationships between keyframe pose nodes are used as edges. Anchor frame pose nodes are determined from the keyframe pose nodes within the sub-pose maps. Each sub-pose map includes a boundary sub-pose map close to the segmentation boundary and an internal sub-pose map located inside the boundary sub-pose map. Anchor frame pose nodes are determined from the keyframe pose nodes within the boundary sub-pose map. The method involves determining the boundary anchor frame pose nodes and the internal anchor frame pose nodes determined from the keyframe pose nodes within the internal sub-pose graphs. First-order pose optimization is performed on all anchor frame pose nodes in the pose graph to be optimized. The poses of the boundary anchor frame pose nodes after first-order pose optimization are fixed, and second-order pose optimization is performed on the target keyframe pose nodes in each sub-pose graph to obtain the optimized pose graph. The target keyframe pose nodes are the keyframe pose nodes in the sub-pose graphs excluding the anchor frame pose nodes, as well as the internal anchor frame pose nodes after first-order pose optimization. Based on this scheme, hierarchical pose optimization of the keyframe pose nodes in the pose graph to be optimized can be performed, avoiding the consumption of large amounts of memory during pose optimization.
[0153] Figure 7 A schematic block diagram of an example electronic device 70 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 may also represent various forms of mobile devices, such as personal digital processors, cellular phones, smartphones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely illustrative and are not intended to limit the implementation of the present disclosure described and / or claimed herein.
[0154] like Figure 7 As shown, the electronic device 70 includes a computing unit 710, which can perform various appropriate actions and processes according to a computer program stored in a read-only memory (ROM) 720 or a computer program loaded from a storage unit 780 into a random access memory (RAM) 730. The RAM 730 may also store various programs and data required for the operation of the device 70. The computing unit 710, ROM 720, and RAM 730 are interconnected via a bus 740. An input / output (I / O) interface 750 is also connected to the bus 740.
[0155] Multiple components in device 70 are connected to I / O interface 750, including: input unit 760, such as keyboard, mouse, etc.; output unit 770, such as various types of monitors, speakers, etc.; storage unit 780, such as disk, optical disk, etc.; and communication unit 790, such as network card, modem, wireless transceiver, etc. Communication unit 790 allows device 70 to exchange information / data with other devices through computer networks such as the Internet and / or various telecommunications networks.
[0156] The computing unit 710 can be various general-purpose and / or special-purpose processing components with processing and computing capabilities. Some examples of the computing unit 710 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various special-purpose 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 710 executes the pose graph optimization method provided in the embodiments of this disclosure. For example, in some embodiments, executing the pose graph optimization method provided in the embodiments of this disclosure can be implemented as a computer software program, which is tangibly contained in a machine-readable medium, such as storage unit 780. In some embodiments, part or all of the computer program can be loaded and / or installed on device 70 via ROM 720 and / or communication unit 790. When the computer program is loaded into RAM 730 and executed by computing unit 710, one or more steps of the pose graph optimization method provided in the embodiments of this disclosure can be performed. Alternatively, in other embodiments, the computing unit 710 can be configured to execute the pose graph optimization method provided in the embodiments of this disclosure by any other suitable means (e.g., by means of firmware).
[0157] Various embodiments of the systems and techniques described above herein 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), systems-on-a-chip (SoCs), payload-programmable logic devices (CPLDs), computer hardware, firmware, software, and / or combinations thereof. These various embodiments may include implementations in one or more computer programs that can be executed and / or interpreted on a programmable system including at least one programmable processor, which may be a dedicated or general-purpose programmable processor, capable of receiving data and instructions from a storage system, at least one input device, and at least one output device, and transmitting data and instructions to the storage system, the at least one input device, and the at least one output device.
[0158] The program code used to implement the methods of this disclosure may be written in any combination of one or more programming languages. This program code may be provided to a processor or controller of a general-purpose computer, special-purpose computer, or other programmable data processing apparatus, such that when executed by the processor or controller, the program code causes the functions / operations specified in the flowcharts and / or block diagrams to be implemented. The program code may be executed entirely on a machine, partially on a machine, as a standalone software package partially on a machine and partially on a remote machine, or entirely on a remote machine or server.
[0159] In the context of this disclosure, a machine-readable medium can be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device. A machine-readable medium can be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium can be, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing. More specific examples of machine-readable storage media include electrical connections based on one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the foregoing.
[0160] To provide interaction with a user, the systems and techniques described herein can be implemented on a computer having: a display device for displaying information to the user (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor); and a keyboard and pointing device (e.g., a mouse or trackball) through which the user provides input to the computer. Other types of devices can also be used to provide interaction with the user; for example, 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 sound input, voice input, or tactile input).
[0161] The systems and technologies described herein can be implemented in computing systems that include backend components (e.g., as a data server), or computing systems that include middleware components (e.g., an application server), or computing systems that include frontend components (e.g., a user computer with a graphical user interface or web browser through which a user can interact with embodiments of the systems and technologies described herein), or any combination of such backend, middleware, or frontend components. The components of the system can be interconnected via digital data communication of any form or medium (e.g., a communication network). Examples of communication networks include local area networks (LANs), wide area networks (WANs), and the Internet.
[0162] Computer systems can include clients and servers. Clients and servers are generally located far apart and typically interact via communication networks. Client-server relationships are created by computer programs running on the respective computers and having a client-server relationship with each other. Servers can be cloud servers, servers in distributed systems, or servers incorporating blockchain technology.
[0163] It should be understood that the various forms of processes shown above can be used to rearrange, add, or delete steps. For example, the steps described in this disclosure can be executed in parallel, sequentially, or in different orders, as long as the desired result of the technical solution disclosed in this disclosure can be achieved, and this is not limited herein.
[0164] The specific embodiments described above do not constitute a limitation on the scope of protection of this 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 substitutions, and improvements made within the spirit and principles of this disclosure should be included within the scope of protection of this disclosure.
Claims
1. A pose graph optimization method, comprising: The pose graph to be optimized is divided into multiple sub-pose graphs according to a preset segmentation method. The pose graph to be optimized uses the pose corresponding to the key frame as the key frame pose node, and the relative pose relationship between the key frame pose nodes is used as the edge. Anchor frame pose nodes are determined from the keyframe pose nodes within the sub-pose graph. The sub-pose graph includes a boundary sub-pose graph that is close to the segmentation boundary of the sub-pose graph and an inner sub-pose graph located inside the boundary sub-pose graph. The anchor frame pose nodes include boundary anchor frame pose nodes determined from the keyframe pose nodes within the boundary sub-pose graph and inner anchor frame pose nodes determined from the keyframe pose nodes within the inner sub-pose graph. Perform first pose optimization on all anchor frame pose nodes in the pose graph to be optimized; The pose of the boundary anchor frame pose node after the first pose optimization is fixed, and the target key frame pose node in each sub-pose graph is optimized by the second pose optimization to obtain the optimized pose graph. The target key frame pose node is the key frame pose node in the sub-pose graph other than the anchor frame pose node and the internal anchor frame pose node after the first pose optimization.
2. The method according to claim 1, wherein, Determining the anchor frame pose node from the keyframe pose nodes within the sub-pose graph includes: Using a preset downsampling method, the internal anchor frame pose nodes are determined from the key frame pose nodes within the internal sub-pose graph.
3. The method according to claim 2, wherein, The internal anchor frame pose node includes a first internal anchor frame pose node and a second internal anchor frame pose node. The step of determining the internal anchor frame pose node from the keyframe pose nodes within the internal sub-pose map using a preset downsampling method includes: The internal sub-pose map is divided into intersection region sub-pose map and non-intersection region sub-pose map by a preset dividing line. The key frame pose node group contained in the non-intersection area sub-pose map is downsampled according to the preset first sampling distance to obtain the target key frame pose node group. The key frame pose nodes in the target key frame pose node group are determined as the first internal anchor frame pose nodes. The key frame pose node group includes key frame pose nodes that are no more than a specified distance apart. The key frame pose nodes in the sub-pose map of the intersection area are downsampled according to the preset second sampling distance to obtain the second internal anchor frame pose nodes.
4. The method according to any one of claims 1-3, wherein, Determining the anchor frame pose node from the keyframe pose nodes within the sub-pose graph includes: The keyframe pose nodes in the keyframe pose graph within the boundary sub-pose graph whose distance from the segmentation boundary of the sub-pose graph meets the preset distance condition are determined as boundary anchor frame pose nodes.
5. The method according to claim 1, wherein, Before determining the anchor frame pose node from the keyframe pose nodes within each of the sub-pose maps, the method further includes: The inter-frame edges and loop edges between keyframe pose nodes in the sub-pose graph are obtained. The inter-frame edges are used to represent the relative pose relationship between keyframe pose nodes corresponding to two keyframes with adjacent acquisition times. The loop edges are used to represent the relative pose relationship between two keyframe pose nodes that are no more than a specified distance apart. Based on the loop edges between the key frame pose nodes, a third pose optimization is performed on the inter-frame edges between the key frame pose nodes and the anchor frame pose nodes. Determining the anchor frame pose node from the keyframe pose nodes within each of the sub-pose maps includes: Anchor frame pose nodes are determined from the keyframe pose nodes within each of the sub-pose graphs after the third pose optimization.
6. The method according to claim 1, wherein, The first pose optimization of all anchor frame pose nodes in the pose graph to be optimized includes: Obtain the inter-frame edges and loop closure edges between the anchor frame pose nodes. Based on the loop edges between the anchor frame pose nodes, the first pose optimization is performed on the anchor frame pose nodes and the inter-frame edges between the anchor frame pose nodes.
7. The method according to claim 6, wherein, The step of obtaining the inter-frame edges between anchor frame pose nodes in the pose graph to be optimized includes: Based on the relative pose relationship between the internal anchor frame pose nodes in the sub-pose graph after the first pose optimization, inter-frame edges between the internal anchor frame pose nodes are constructed. Based on the relative pose relationship between the boundary anchor frame pose nodes in the adjacent sub-pose graphs, inter-frame edges between the boundary anchor frame pose nodes are constructed.
8. The method according to claim 1, wherein, The second pose optimization of the target keyframe pose nodes within each of the sub-pose maps includes: Obtain the inter-frame edges and loop closure edges between the target keyframe pose nodes in each of the sub-pose graphs; Based on the loop edges between the target keyframe pose nodes, a second pose optimization is performed on the target keyframe pose nodes and the inter-frame edges between them.
9. The method according to claim 1, wherein, The second pose optimization of the target keyframe pose nodes within each of the sub-pose maps includes: A parallel processing approach is adopted to perform second pose optimization on the target keyframe pose nodes in each sub-pose graph.
10. The method according to claim 1, wherein, The step of dividing the pose graph to be optimized into multiple sub-pose graphs according to a preset segmentation method includes: The pose graph to be optimized is divided into multiple sub-pose graphs of preset sizes.
11. A pose graph optimization device, comprising: The pose graph segmentation module is used to segment the pose graph to be optimized into multiple sub-pose graphs according to a preset segmentation method. The pose graph to be optimized uses the pose corresponding to the key frame as the key frame pose node, and the relative pose relationship between the key frame pose nodes is used as the edge. An anchor frame pose node determination module is used to determine anchor frame pose nodes from key frame pose nodes within the sub-pose map. The sub-pose map includes a boundary sub-pose map close to the segmentation boundary of the sub-pose map and an inner sub-pose map located inside the boundary sub-pose map. The anchor frame pose nodes include boundary anchor frame pose nodes determined from key frame pose nodes within the boundary sub-pose map and inner anchor frame pose nodes determined from key frame pose nodes within the inner sub-pose map. The first pose optimization module is used to perform first pose optimization on all anchor frame pose nodes in the pose graph to be optimized. The second pose optimization module is used to fix the pose of the boundary anchor frame pose node after the first pose optimization, and to perform second pose optimization on the target key frame pose node in each of the sub-pose graphs to obtain an optimized pose graph. The target key frame pose node is the key frame pose node in the sub-pose graph other than the anchor frame pose node and the internal anchor frame pose node after the first pose optimization.
12. The apparatus according to claim 11, wherein, When determining anchor frame pose nodes from keyframe pose nodes within each sub-pose graph, the anchor frame pose node determination module is specifically used for: Using a preset downsampling method, the internal anchor frame pose nodes are determined from the key frame pose nodes within the internal sub-pose graph.
13. The apparatus according to claim 12, wherein, The internal anchor frame pose node includes a first internal anchor frame pose node and a second internal anchor frame pose node. When the anchor frame pose node determination module determines the internal anchor frame pose node from the keyframe pose nodes within the internal sub-pose map using a preset downsampling method, it is specifically used for: The internal sub-pose map is divided into intersection area sub-pose map and non-intersection area sub-pose map by a preset dividing line. The key frame pose node group contained in the non-intersection area sub-pose map is downsampled according to the preset first sampling distance to obtain the target key frame pose node group. The key frame pose nodes in the target key frame pose node group are determined as the first internal anchor frame pose nodes. The key frame pose node group includes key frame pose nodes that are no more than a specified distance apart. The key frame pose nodes in the sub-pose map of the intersection area are downsampled according to the preset second sampling distance to obtain the second internal anchor frame pose nodes.
14. The apparatus according to any one of claims 11-13, wherein, When determining anchor frame pose nodes from keyframe pose nodes within each sub-pose graph, the anchor frame pose node determination module is specifically used for: The keyframe pose nodes in the keyframe pose graph within the boundary sub-pose graph whose distance from the segmentation boundary of the sub-pose graph meets the preset distance condition are determined as boundary anchor frame pose nodes.
15. The apparatus according to claim 11, further comprising a third pose optimization module, the third pose optimization module being used for: Before determining the anchor frame pose node from the key frame pose nodes in each of the sub-pose graphs, the inter-frame edges and loop edges between the key frame pose nodes in the sub-pose graphs are obtained. The inter-frame edges are used to characterize the relative pose relationship between the key frame pose nodes corresponding to two key frames with adjacent acquisition times. The loop edges are used to characterize the relative pose relationship between two key frame pose nodes that are no more than a specified distance apart. Based on the loop edges between the key frame pose nodes, a third pose optimization is performed on the inter-frame edges between the key frame pose nodes and the anchor frame pose nodes. When determining anchor frame pose nodes from keyframe pose nodes within each sub-pose graph, the anchor frame pose node determination module is specifically used for: Anchor frame pose nodes are determined from the keyframe pose nodes within each of the sub-pose graphs after the third pose optimization.
16. The apparatus according to claim 11, wherein, The first pose optimization module is specifically used for: Obtain the inter-frame edges and loop closure edges between the anchor frame pose nodes. Based on the loop edges between the anchor frame pose nodes, the first pose optimization is performed on the anchor frame pose nodes and the inter-frame edges between the anchor frame pose nodes.
17. 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 executable by the at least one processor, which, when executed by the at least one processor, enables the at least one processor to perform the method of any one of claims 1-10.
18. A non-transitory computer-readable storage medium storing computer instructions, wherein, The computer instructions are used to cause the computer to perform the method according to any one of claims 1-10.
19. A computer program product comprising a computer program that, when executed by a processor, implements the method according to any one of claims 1-10.
20. An autonomous vehicle, including the electronic equipment as claimed in claim 17.
Citation Information
Patent Citations
Distributed processing of pose graphs for generating high definition maps for navigating autonomous vehicles
CN113906414A
Special effect follow-up rendering method and device in augmented reality
CN113920278A